diff --git a/CMakeLists.txt b/CMakeLists.txt index edbc082bd29..606b9494c48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,13 +13,13 @@ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) endif() if(DEFINED ENV{SLIC3R_STATIC}) - set(SLIC3R_STATIC_INITIAL $ENV{SLIC3R_STATIC}) + set(SLIC3R_STATIC_INITIAL $ENV{SLIC3R_STATIC}) else() - if (MSVC OR MINGW OR APPLE) - set(SLIC3R_STATIC_INITIAL 1) - else() - set(SLIC3R_STATIC_INITIAL 0) - endif() + if (MSVC OR MINGW OR APPLE) + set(SLIC3R_STATIC_INITIAL 1) + else() + set(SLIC3R_STATIC_INITIAL 0) + endif() endif() option(SLIC3R_STATIC "Compile Slic3r with static libraries (Boost, TBB, glew)" ${SLIC3R_STATIC_INITIAL}) @@ -52,21 +52,9 @@ if (SLIC3R_GUI) add_definitions(-DSLIC3R_GUI) endif () -if (MSVC AND CMAKE_CXX_COMPILER_ID STREQUAL Clang) - set(IS_CLANG_CL TRUE) - - # clang-cl can interpret SYSTEM header paths if -imsvc is used - set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-imsvc") - - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall \ - -Wno-old-style-cast -Wno-reserved-id-macro -Wno-c++98-compat-pedantic") -else () - set(IS_CLANG_CL FALSE) -endif () - if (MSVC) - if (SLIC3R_MSVC_COMPILE_PARALLEL AND NOT IS_CLANG_CL) - add_compile_options(/MP) + if (SLIC3R_MSVC_COMPILE_PARALLEL) + add_compile_options(/MP) endif () # /bigobj (Increase Number of Sections in .Obj file) # error C3859: virtual memory range for PCH exceeded; please recompile with a command line option of '-Zm90' or greater @@ -74,10 +62,6 @@ if (MSVC) add_compile_options(-bigobj -Zm520 /Zi) endif () -if (MINGW) - add_compile_options(-Wa,-mbig-obj) -endif () - # Display and check CMAKE_PREFIX_PATH message(STATUS "SLIC3R_STATIC: ${SLIC3R_STATIC}") if (NOT "${CMAKE_PREFIX_PATH}" STREQUAL "") @@ -117,17 +101,17 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # WIN10SDK_PATH is used to point CMake to the WIN10 SDK installation directory. # We pick it from environment if it is not defined in another way if(WIN32) - if(NOT DEFINED WIN10SDK_PATH) - if(DEFINED ENV{WIN10SDK_PATH}) - set(WIN10SDK_PATH "$ENV{WIN10SDK_PATH}") - endif() - endif() - if(DEFINED WIN10SDK_PATH AND NOT EXISTS "${WIN10SDK_PATH}/include/winrt/windows.graphics.printing3d.h") - message("WIN10SDK_PATH is invalid: ${WIN10SDK_PATH}") - message("${WIN10SDK_PATH}/include/winrt/windows.graphics.printing3d.h was not found") - message("STL fixing by the Netfabb service will not be compiled") - unset(WIN10SDK_PATH) - endif() + if(NOT DEFINED WIN10SDK_PATH) + if(DEFINED ENV{WIN10SDK_PATH}) + set(WIN10SDK_PATH "$ENV{WIN10SDK_PATH}") + endif() + endif() + if(DEFINED WIN10SDK_PATH AND NOT EXISTS "${WIN10SDK_PATH}/include/winrt/windows.graphics.printing3d.h") + message("WIN10SDK_PATH is invalid: ${WIN10SDK_PATH}") + message("${WIN10SDK_PATH}/include/winrt/windows.graphics.printing3d.h was not found") + message("STL fixing by the Netfabb service will not be compiled") + unset(WIN10SDK_PATH) + endif() if(WIN10SDK_PATH) message("Building with Win10 Netfabb STL fixing service support") add_definitions(-DHAS_WIN10SDK) @@ -164,19 +148,17 @@ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUXX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals" ) endif() -if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")) - if (NOT MINGW) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" ) - endif () +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder" ) # On GCC and Clang, no return from a non-void function is a warning only. Here, we make it an error. add_compile_options(-Werror=return-type) #removes LOTS of extraneous Eigen warnings (GCC only supports it since 6.1) - #if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6.1) - # add_compile_options(-Wno-ignored-attributes) # Tamas: Eigen include dirs are marked as SYSTEM - #endif() + if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6.1) + add_compile_options(-Wno-ignored-attributes) # Tamas: Eigen include dirs are marked as SYSTEM + endif() #GCC generates loads of -Wunknown-pragmas when compiling igl. The fix is not easy due to a bug in gcc, see # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66943 or @@ -186,6 +168,7 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP add_compile_options(-Wno-unknown-pragmas) endif() + if (SLIC3R_ASAN) add_compile_options(-fsanitize=address -fno-omit-frame-pointer) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") @@ -213,12 +196,9 @@ include_directories(${LIBDIR_BIN}/platform) include_directories(${LIBDIR}/clipper ${LIBDIR}/polypartition) if(WIN32) - add_definitions(-D_USE_MATH_DEFINES -D_WIN32 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS) - if(MSVC) - # BOOST_ALL_NO_LIB: Avoid the automatic linking of Boost libraries on Windows. Rather rely on explicit linking. - add_definitions(-DBOOST_ALL_NO_LIB -DBOOST_USE_WINAPI_VERSION=0x601 ) - endif(MSVC) -endif(WIN32) + # BOOST_ALL_NO_LIB: Avoid the automatic linking of Boost libraries on Windows. Rather rely on explicit linking. + add_definitions(-D_USE_MATH_DEFINES -D_WIN32 -DBOOST_ALL_NO_LIB -DBOOST_USE_WINAPI_VERSION=0x601 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS) +endif() add_definitions(-DwxUSE_UNICODE -D_UNICODE -DUNICODE -DWXINTL_NO_GETTEXT_MACRO) @@ -249,7 +229,7 @@ if(SLIC3R_STATIC) # set(Boost_USE_STATIC_RUNTIME ON) endif() #set(Boost_DEBUG ON) -# set(Boost_COMPILER "-mgw81") +# set(Boost_COMPILER "-vc120") if(NOT WIN32) # boost::process was introduced first in version 1.64.0 set(MINIMUM_BOOST_VERSION "1.64.0") @@ -271,7 +251,7 @@ endif() if(TARGET Boost::system) message(STATUS "Boost::boost exists") target_link_libraries(boost_headeronly INTERFACE Boost::boost) - target_link_libraries(boost_libs INTERFACE + target_link_libraries(boost_libs INTERFACE boost_headeronly # includes the custom compile definitions as well Boost::system Boost::filesystem @@ -368,7 +348,7 @@ target_include_directories(cereal INTERFACE include) # l10n set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization") add_custom_target(pot - COMMAND xgettext --keyword=L --keyword=L_CONTEXT:1,2c --keyword=_L_PLURAL:1,2 --add-comments=TRN --from-code=UTF-8 --debug + COMMAND xgettext --keyword=L --add-comments=TRN --from-code=UTF-8 --debug -f "${L10N_DIR}/list.txt" -o "${L10N_DIR}/Slic3r++.pot" WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} @@ -398,10 +378,8 @@ endif() # Resources install target, configure fhs.hpp on UNIX if (WIN32) install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/resources") -elseif (SLIC3R_FHS) +else () set(SLIC3R_FHS_RESOURCES "${CMAKE_INSTALL_FULL_DATAROOTDIR}/slic3r++") install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${SLIC3R_FHS_RESOURCES}") -else () - install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/resources") endif () configure_file(${LIBDIR}/platform/unix/fhs.hpp.in ${LIBDIR_BIN}/platform/unix/fhs.hpp) diff --git a/cmake/modules/PrecompiledHeader.cmake b/cmake/modules/PrecompiledHeader.cmake index 2f62a7dbeb6..e4630214411 100644 --- a/cmake/modules/PrecompiledHeader.cmake +++ b/cmake/modules/PrecompiledHeader.cmake @@ -105,9 +105,6 @@ function(add_precompiled_header _target _input) cmake_parse_arguments(_PCH "FORCEINCLUDE" "SOURCE_CXX;SOURCE_C" "" ${ARGN}) get_filename_component(_input_we ${_input} NAME_WE) - get_filename_component(_input_full ${_input} ABSOLUTE) - file(TO_NATIVE_PATH "${_input_full}" _input_fullpath) - if(NOT _PCH_SOURCE_CXX) set(_PCH_SOURCE_CXX "${_input_we}.cpp") endif() @@ -141,16 +138,16 @@ function(add_precompiled_header _target _input) set_source_files_properties("${_source}" PROPERTIES OBJECT_OUTPUTS "${_pch_c_pch}") else() if(_source MATCHES \\.\(cpp|cxx|cc\)$) - set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_cxx_pch}\" \"/Yu${_input_fullpath}\"") + set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_cxx_pch}\" \"/Yu${_input}\"") set(_pch_source_cxx_needed TRUE) set_source_files_properties("${_source}" PROPERTIES OBJECT_DEPENDS "${_pch_cxx_pch}") else() - set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_c_pch}\" \"/Yu${_input_fullpath}\"") + set(_pch_compile_flags "${_pch_compile_flags} \"/Fp${_pch_c_pch}\" \"/Yu${_input}\"") set(_pch_source_c_needed TRUE) set_source_files_properties("${_source}" PROPERTIES OBJECT_DEPENDS "${_pch_c_pch}") endif() if(_PCH_FORCEINCLUDE) - set(_pch_compile_flags "${_pch_compile_flags} /FI${_input_fullpath}") + set(_pch_compile_flags "${_pch_compile_flags} /FI${_input}") endif(_PCH_FORCEINCLUDE) endif() diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 9da42446d71..ba01c0a7ec6 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -75,10 +75,7 @@ elseif (APPLE) endif () include("deps-macos.cmake") -elseif (MINGW) - message(STATUS "Building for MinGW...") - include("deps-mingw.cmake") -else() +else () include("deps-linux.cmake") endif() diff --git a/deps/deps-mingw.cmake b/deps/deps-mingw.cmake deleted file mode 100644 index bfe5f9fe436..00000000000 --- a/deps/deps-mingw.cmake +++ /dev/null @@ -1,76 +0,0 @@ -set(DEP_CMAKE_OPTS "-DCMAKE_POSITION_INDEPENDENT_CODE=ON") -set(DEP_BOOST_TOOLSET "gcc") -set(DEP_BITS 64) - -find_package(Git REQUIRED) - -# TODO make sure to build tbb with -flifetime-dse=1 -include("deps-unix-common.cmake") - -ExternalProject_Add(dep_boost - EXCLUDE_FROM_ALL 1 - URL "https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz" - URL_HASH SHA256=882b48708d211a5f48e60b0124cf5863c1534cd544ecd0664bb534a4b5d506e9 - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND bootstrap.bat - BUILD_COMMAND b2.exe - -j "${NPROC}" - --with-system - --with-filesystem - --with-thread - --with-log - --with-locale - --with-regex - "--prefix=${DESTDIR}/usr/local" - "address-model=${DEPS_BITS}" - "toolset=${DEP_BOOST_TOOLSET}" - link=static - define=BOOST_USE_WINAPI_VERSION=0x0502 - variant=release - threading=multi - boost.locale.icu=off - "${DEP_BOOST_DEBUG}" release install - INSTALL_COMMAND "" # b2 does that already -) - -ExternalProject_Add(dep_libcurl - EXCLUDE_FROM_ALL 1 - URL "https://curl.haxx.se/download/curl-7.58.0.tar.gz" - URL_HASH SHA256=cc245bf9a1a42a45df491501d97d5593392a03f7b4f07b952793518d97666115 - CMAKE_ARGS - -DBUILD_SHARED_LIBS=OFF - -DBUILD_TESTING=OFF - -DCURL_STATICLIB=ON - -DCURL_STATIC_CRT=ON - -DENABLE_THREADED_RESOLVER=ON - -DCURL_DISABLE_FTP=ON - -DCURL_DISABLE_LDAP=ON - -DCURL_DISABLE_LDAPS=ON - -DCURL_DISABLE_TELNET=ON - -DCURL_DISABLE_DICT=ON - -DCURL_DISABLE_FILE=ON - -DCURL_DISABLE_TFTP=ON - -DCURL_DISABLE_RTSP=ON - -DCURL_DISABLE_POP3=ON - -DCURL_DISABLE_IMAP=ON - -DCURL_DISABLE_SMTP=ON - -DCURL_DISABLE_GOPHER=ON - -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local - ${DEP_CMAKE_OPTS} -) - -ExternalProject_Add(dep_wxwidgets - EXCLUDE_FROM_ALL 1 - GIT_REPOSITORY "https://github.com/prusa3d/wxWidgets" - GIT_TAG v3.1.1-patched -# URL "https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.1/wxWidgets-3.1.1.tar.bz2" -# URL_HASH SHA256=c925dfe17e8f8b09eb7ea9bfdcfcc13696a3e14e92750effd839f5e10726159e -# PATCH_COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_SOURCE_DIR}\\wxwidgets-pngprefix.h" src\\png\\pngprefix.h - CMAKE_ARGS - -DBUILD_SHARED_LIBS=OFF - -DwxUSE_LIBPNG=builtin - -DwxUSE_ZLIB=builtin - -DwxUSE_OPENGL=ON - -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local - ${DEP_CMAKE_OPTS} -) \ No newline at end of file diff --git a/deps/deps-unix-common.cmake b/deps/deps-unix-common.cmake index 6e559d05a37..e323460a6d4 100644 --- a/deps/deps-unix-common.cmake +++ b/deps/deps-unix-common.cmake @@ -1,12 +1,6 @@ # The unix common part expects DEP_CMAKE_OPTS to be set -if (MINGW) - set(TBB_MINGW_WORKAROUND "-flifetime-dse=1") -else () - set(TBB_MINGW_WORKAROUND "") -endif () - ExternalProject_Add(dep_tbb EXCLUDE_FROM_ALL 1 URL "https://github.com/wjakob/tbb/archive/a0dc9bf76d0120f917b641ed095360448cabc85b.tar.gz" @@ -14,7 +8,6 @@ ExternalProject_Add(dep_tbb CMAKE_ARGS -DTBB_BUILD_SHARED=OFF -DTBB_BUILD_TESTS=OFF - -DCMAKE_CXX_FLAGS=${TBB_MINGW_WORKAROUND} -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local ${DEP_CMAKE_OPTS} ) diff --git a/deps/deps-windows.cmake b/deps/deps-windows.cmake index 2c65fc81f4a..4162488cd88 100644 --- a/deps/deps-windows.cmake +++ b/deps/deps-windows.cmake @@ -19,10 +19,6 @@ else () message(FATAL_ERROR "Unsupported MSVC version") endif () -if (CMAKE_CXX_COMPILER_ID STREQUAL Clang) - set(DEP_BOOST_TOOLSET "clang-win") -endif () - if (${DEPS_BITS} EQUAL 32) set(DEP_MSVC_GEN "Visual Studio ${DEP_VS_VER}") # set(DEP_PLATFORM "Win32") diff --git a/resources/icons/edit_layers_all.svg b/resources/icons/edit_layers_all.svg index fe4f26c52cc..4fccc1388d9 100644 --- a/resources/icons/edit_layers_all.svg +++ b/resources/icons/edit_layers_all.svg @@ -3,23 +3,39 @@ - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/resources/icons/edit_layers_some.svg b/resources/icons/edit_layers_some.svg index fb1e7f8b178..7db56b3f098 100644 --- a/resources/icons/edit_layers_some.svg +++ b/resources/icons/edit_layers_some.svg @@ -2,13 +2,68 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/icons/eye_closed.svg b/resources/icons/eye_closed.svg deleted file mode 100644 index 127d53ca3b7..00000000000 --- a/resources/icons/eye_closed.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/resources/icons/eye_open.svg b/resources/icons/eye_open.svg deleted file mode 100644 index a87cf3a83fa..00000000000 --- a/resources/icons/eye_open.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/resources/icons/lock_closed_f.svg b/resources/icons/lock_closed_f.svg deleted file mode 100644 index 2920ea0aae3..00000000000 --- a/resources/icons/lock_closed_f.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/resources/icons/lock_open_f.svg b/resources/icons/lock_open_f.svg deleted file mode 100644 index 9440d9266dd..00000000000 --- a/resources/icons/lock_open_f.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/resources/icons/mirroring_off.svg b/resources/icons/mirroring_off.svg index 4ed9da74829..b68748e90ae 100644 --- a/resources/icons/mirroring_off.svg +++ b/resources/icons/mirroring_off.svg @@ -4,19 +4,19 @@ viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"> - + - + - + - - + + diff --git a/resources/icons/mirroring_on.svg b/resources/icons/mirroring_on.svg index 8481246a3c8..55ea49516ca 100644 --- a/resources/icons/mirroring_on.svg +++ b/resources/icons/mirroring_on.svg @@ -2,21 +2,21 @@ - + - + - + - + - - + + diff --git a/resources/icons/redo_menu.svg b/resources/icons/redo_menu.svg deleted file mode 100644 index ed1fe75c8f5..00000000000 --- a/resources/icons/redo_menu.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/resources/icons/redo_toolbar.svg b/resources/icons/redo_toolbar.svg index d005f83736c..ad073244f86 100644 --- a/resources/icons/redo_toolbar.svg +++ b/resources/icons/redo_toolbar.svg @@ -1,13 +1,12 @@ - + - + + + + + diff --git a/resources/icons/undo_menu.svg b/resources/icons/undo_menu.svg deleted file mode 100644 index 99241bcaeed..00000000000 --- a/resources/icons/undo_menu.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/resources/icons/undo_toolbar.svg b/resources/icons/undo_toolbar.svg index 15778a7baf7..699ccd807fe 100644 --- a/resources/icons/undo_toolbar.svg +++ b/resources/icons/undo_toolbar.svg @@ -1,13 +1,12 @@ - + - + + + + + diff --git a/resources/localization/PrusaSlicer.pot b/resources/localization/PrusaSlicer.pot index 9a01d213de2..30c41434f8f 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: 2019-09-09 16:39+0200\n" +"POT-Creation-Date: 2019-05-20 15:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,48 +16,47 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: src/slic3r/GUI/AboutDialog.cpp:39 src/slic3r/GUI/AboutDialog.cpp:291 +#: src/slic3r/GUI/AboutDialog.cpp:39 src/slic3r/GUI/AboutDialog.cpp:286 msgid "Portions copyright" msgstr "" -#: src/slic3r/GUI/AboutDialog.cpp:127 src/slic3r/GUI/AboutDialog.cpp:256 +#: src/slic3r/GUI/AboutDialog.cpp:122 src/slic3r/GUI/AboutDialog.cpp:251 msgid "Copyright" msgstr "" #. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:129 +#: src/slic3r/GUI/AboutDialog.cpp:124 msgid "" "License agreements of all following programs (libraries) are part of " "application license agreement" msgstr "" -#: src/slic3r/GUI/AboutDialog.cpp:199 +#: src/slic3r/GUI/AboutDialog.cpp:194 #, possible-c-format msgid "About %s" msgstr "" -#: src/slic3r/GUI/AboutDialog.cpp:231 src/slic3r/GUI/MainFrame.cpp:62 +#: src/slic3r/GUI/AboutDialog.cpp:226 src/slic3r/GUI/MainFrame.cpp:59 msgid "Version" msgstr "" #. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:258 +#: src/slic3r/GUI/AboutDialog.cpp:253 msgid "is licensed under the" msgstr "" -#: src/slic3r/GUI/AboutDialog.cpp:259 +#: src/slic3r/GUI/AboutDialog.cpp:254 msgid "GNU Affero General Public License, version 3" msgstr "" -#: src/slic3r/GUI/AboutDialog.cpp:260 +#: src/slic3r/GUI/AboutDialog.cpp:255 msgid "" "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap " "community." msgstr "" -#: src/slic3r/GUI/AboutDialog.cpp:261 +#: src/slic3r/GUI/AboutDialog.cpp:256 msgid "" "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, " "Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and " @@ -65,13 +64,12 @@ msgid "" msgstr "" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:92 -msgid "" -"Copying of the temporary G-code to the output G-code failed. Maybe the SD " -"card is write locked?" +#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:408 +msgid "Copying of the temporary G-code to the output G-code failed" msgstr "" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:93 -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:415 +#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:406 msgid "Running post-processing scripts" msgstr "" @@ -88,160 +86,115 @@ msgstr "" msgid "Masked SLA file exported to %1%" msgstr "" -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:155 -#, possible-c-format -msgid "" -"%s has encountered an error. It was likely caused by running out of memory. " -"If you are sure you have enough RAM on your system, this may also be a bug " -"and we would be glad if you reported it." -msgstr "" - #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:417 -msgid "Copying of the temporary G-code to the output G-code failed" -msgstr "" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:426 msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:65 +#: src/slic3r/GUI/BedShapeDialog.cpp:60 msgid "Shape" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:72 +#: src/slic3r/GUI/BedShapeDialog.cpp:68 msgid "Rectangular" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:76 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:393 src/slic3r/GUI/Plater.cpp:145 -#: src/slic3r/GUI/Tab.cpp:2524 +#: src/slic3r/GUI/BedShapeDialog.cpp:72 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:232 src/slic3r/GUI/Plater.cpp:136 +#: src/slic3r/GUI/Tab.cpp:2294 msgid "Size" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:77 +#: src/slic3r/GUI/BedShapeDialog.cpp:73 msgid "Size in X and Y of the rectangular plate." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:83 +#: src/slic3r/GUI/BedShapeDialog.cpp:79 msgid "Origin" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:84 +#: src/slic3r/GUI/BedShapeDialog.cpp:80 msgid "" "Distance of the 0,0 G-code coordinate from the front left corner of the " "rectangle." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:88 +#: src/slic3r/GUI/BedShapeDialog.cpp:84 msgid "Circular" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:91 src/slic3r/GUI/ConfigWizard.cpp:123 -#: src/slic3r/GUI/ConfigWizard.cpp:576 src/slic3r/GUI/ConfigWizard.cpp:590 -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:135 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:390 -#: src/slic3r/GUI/WipeTowerDialog.cpp:84 src/slic3r/GUI/wxExtensions.cpp:509 -#: src/libslic3r/PrintConfig.cpp:70 src/libslic3r/PrintConfig.cpp:77 -#: src/libslic3r/PrintConfig.cpp:86 src/libslic3r/PrintConfig.cpp:220 -#: src/libslic3r/PrintConfig.cpp:295 src/libslic3r/PrintConfig.cpp:303 -#: src/libslic3r/PrintConfig.cpp:353 src/libslic3r/PrintConfig.cpp:363 -#: src/libslic3r/PrintConfig.cpp:488 src/libslic3r/PrintConfig.cpp:499 -#: src/libslic3r/PrintConfig.cpp:517 src/libslic3r/PrintConfig.cpp:695 -#: src/libslic3r/PrintConfig.cpp:1215 src/libslic3r/PrintConfig.cpp:1276 -#: src/libslic3r/PrintConfig.cpp:1294 src/libslic3r/PrintConfig.cpp:1312 -#: src/libslic3r/PrintConfig.cpp:1364 src/libslic3r/PrintConfig.cpp:1374 -#: src/libslic3r/PrintConfig.cpp:1495 src/libslic3r/PrintConfig.cpp:1503 -#: src/libslic3r/PrintConfig.cpp:1544 src/libslic3r/PrintConfig.cpp:1552 -#: src/libslic3r/PrintConfig.cpp:1562 src/libslic3r/PrintConfig.cpp:1570 -#: src/libslic3r/PrintConfig.cpp:1578 src/libslic3r/PrintConfig.cpp:1661 -#: src/libslic3r/PrintConfig.cpp:1878 src/libslic3r/PrintConfig.cpp:1948 -#: src/libslic3r/PrintConfig.cpp:1982 src/libslic3r/PrintConfig.cpp:2176 -#: src/libslic3r/PrintConfig.cpp:2183 src/libslic3r/PrintConfig.cpp:2190 -#: src/libslic3r/PrintConfig.cpp:2220 src/libslic3r/PrintConfig.cpp:2230 -#: src/libslic3r/PrintConfig.cpp:2240 src/libslic3r/PrintConfig.cpp:2403 -#: src/libslic3r/PrintConfig.cpp:2510 src/libslic3r/PrintConfig.cpp:2519 -#: src/libslic3r/PrintConfig.cpp:2528 src/libslic3r/PrintConfig.cpp:2538 -#: src/libslic3r/PrintConfig.cpp:2582 src/libslic3r/PrintConfig.cpp:2592 -#: src/libslic3r/PrintConfig.cpp:2604 src/libslic3r/PrintConfig.cpp:2624 -#: src/libslic3r/PrintConfig.cpp:2634 src/libslic3r/PrintConfig.cpp:2644 -#: src/libslic3r/PrintConfig.cpp:2662 src/libslic3r/PrintConfig.cpp:2677 -#: src/libslic3r/PrintConfig.cpp:2691 src/libslic3r/PrintConfig.cpp:2704 -#: src/libslic3r/PrintConfig.cpp:2742 src/libslic3r/PrintConfig.cpp:2752 -#: src/libslic3r/PrintConfig.cpp:2761 src/libslic3r/PrintConfig.cpp:2771 +#: src/slic3r/GUI/BedShapeDialog.cpp:87 src/slic3r/GUI/ConfigWizard.cpp:118 +#: src/slic3r/GUI/ConfigWizard.cpp:565 src/slic3r/GUI/ConfigWizard.cpp:579 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:229 +#: src/slic3r/GUI/WipeTowerDialog.cpp:84 src/libslic3r/PrintConfig.cpp:60 +#: src/libslic3r/PrintConfig.cpp:67 src/libslic3r/PrintConfig.cpp:76 +#: src/libslic3r/PrintConfig.cpp:211 src/libslic3r/PrintConfig.cpp:286 +#: src/libslic3r/PrintConfig.cpp:294 src/libslic3r/PrintConfig.cpp:344 +#: src/libslic3r/PrintConfig.cpp:354 src/libslic3r/PrintConfig.cpp:474 +#: src/libslic3r/PrintConfig.cpp:485 src/libslic3r/PrintConfig.cpp:503 +#: src/libslic3r/PrintConfig.cpp:681 src/libslic3r/PrintConfig.cpp:1201 +#: src/libslic3r/PrintConfig.cpp:1262 src/libslic3r/PrintConfig.cpp:1280 +#: src/libslic3r/PrintConfig.cpp:1298 src/libslic3r/PrintConfig.cpp:1350 +#: src/libslic3r/PrintConfig.cpp:1360 src/libslic3r/PrintConfig.cpp:1481 +#: src/libslic3r/PrintConfig.cpp:1489 src/libslic3r/PrintConfig.cpp:1530 +#: src/libslic3r/PrintConfig.cpp:1538 src/libslic3r/PrintConfig.cpp:1548 +#: src/libslic3r/PrintConfig.cpp:1556 src/libslic3r/PrintConfig.cpp:1564 +#: src/libslic3r/PrintConfig.cpp:1647 src/libslic3r/PrintConfig.cpp:1863 +#: src/libslic3r/PrintConfig.cpp:1933 src/libslic3r/PrintConfig.cpp:1967 +#: src/libslic3r/PrintConfig.cpp:2160 src/libslic3r/PrintConfig.cpp:2167 +#: src/libslic3r/PrintConfig.cpp:2174 src/libslic3r/PrintConfig.cpp:2204 +#: src/libslic3r/PrintConfig.cpp:2214 src/libslic3r/PrintConfig.cpp:2224 +#: src/libslic3r/PrintConfig.cpp:2332 src/libslic3r/PrintConfig.cpp:2407 +#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2425 +#: src/libslic3r/PrintConfig.cpp:2435 src/libslic3r/PrintConfig.cpp:2479 +#: src/libslic3r/PrintConfig.cpp:2489 src/libslic3r/PrintConfig.cpp:2508 +#: src/libslic3r/PrintConfig.cpp:2518 src/libslic3r/PrintConfig.cpp:2527 +#: src/libslic3r/PrintConfig.cpp:2545 src/libslic3r/PrintConfig.cpp:2560 +#: src/libslic3r/PrintConfig.cpp:2574 src/libslic3r/PrintConfig.cpp:2587 +#: src/libslic3r/PrintConfig.cpp:2597 msgid "mm" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:92 src/libslic3r/PrintConfig.cpp:692 +#: src/slic3r/GUI/BedShapeDialog.cpp:88 src/libslic3r/PrintConfig.cpp:678 msgid "Diameter" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:93 +#: src/slic3r/GUI/BedShapeDialog.cpp:89 msgid "" "Diameter of the print bed. It is assumed that origin (0,0) is located in the " "center." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:97 src/slic3r/GUI/GUI_Preview.cpp:247 -#: src/libslic3r/GCode/PreviewData.cpp:159 +#: src/slic3r/GUI/BedShapeDialog.cpp:93 src/slic3r/GUI/GUI_Preview.cpp:245 +#: src/libslic3r/GCode/PreviewData.cpp:175 msgid "Custom" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:101 +#: src/slic3r/GUI/BedShapeDialog.cpp:97 msgid "Load shape from STL..." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:154 +#: src/slic3r/GUI/BedShapeDialog.cpp:143 msgid "Settings" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:171 -msgid "Texture" -msgstr "" - -#: src/slic3r/GUI/BedShapeDialog.cpp:181 src/slic3r/GUI/BedShapeDialog.cpp:249 -msgid "Load..." -msgstr "" - -#: src/slic3r/GUI/BedShapeDialog.cpp:189 src/slic3r/GUI/BedShapeDialog.cpp:257 -#: src/slic3r/GUI/Tab.cpp:3286 -msgid "Remove" -msgstr "" - -#: src/slic3r/GUI/BedShapeDialog.cpp:239 -msgid "Model" -msgstr "" - -#: src/slic3r/GUI/BedShapeDialog.cpp:464 -msgid "Choose an STL file to import bed shape from:" -msgstr "" - -#: src/slic3r/GUI/BedShapeDialog.cpp:471 src/slic3r/GUI/BedShapeDialog.cpp:520 -#: src/slic3r/GUI/BedShapeDialog.cpp:543 -msgid "Invalid file format." +#: src/slic3r/GUI/BedShapeDialog.cpp:316 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:482 -msgid "Error! Invalid model" +#: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1442 +msgid "Error!" msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:490 +#: src/slic3r/GUI/BedShapeDialog.cpp:342 msgid "The selected file contains no geometry." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:494 +#: src/slic3r/GUI/BedShapeDialog.cpp:346 msgid "" "The selected file contains several disjoint areas. This is not supported." msgstr "" -#: src/slic3r/GUI/BedShapeDialog.cpp:509 -msgid "Choose a file to import bed texture from (PNG/SVG):" -msgstr "" - -#: src/slic3r/GUI/BedShapeDialog.cpp:532 -msgid "Choose an STL file to import bed model from:" -msgstr "" - -#: src/slic3r/GUI/BedShapeDialog.hpp:59 src/slic3r/GUI/ConfigWizard.cpp:535 +#: src/slic3r/GUI/BedShapeDialog.hpp:45 src/slic3r/GUI/ConfigWizard.cpp:530 msgid "Bed Shape" msgstr "" @@ -315,7 +268,7 @@ msgstr "" msgid "slic3r version" msgstr "" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:46 src/slic3r/GUI/Preset.cpp:1311 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:46 src/slic3r/GUI/Preset.cpp:1282 msgid "print" msgstr "" @@ -323,11 +276,11 @@ msgstr "" msgid "filaments" msgstr "" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:48 src/slic3r/GUI/Preset.cpp:1315 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:48 src/slic3r/GUI/Preset.cpp:1286 msgid "printer" msgstr "" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 src/slic3r/GUI/Tab.cpp:961 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 src/slic3r/GUI/Tab.cpp:934 msgid "vendor" msgstr "" @@ -364,93 +317,93 @@ msgstr "" msgid "Configuration Snapshots" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:123 +#: src/slic3r/GUI/ConfigWizard.cpp:118 msgid "nozzle" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:127 +#: src/slic3r/GUI/ConfigWizard.cpp:122 msgid "Alternate nozzles:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:193 +#: src/slic3r/GUI/ConfigWizard.cpp:188 msgid "All standard" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:194 src/slic3r/GUI/Tab.cpp:3336 +#: src/slic3r/GUI/ConfigWizard.cpp:189 src/slic3r/GUI/Tab.cpp:3038 msgid "All" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:195 src/slic3r/GUI/Plater.cpp:469 -#: src/slic3r/GUI/Plater.cpp:607 src/libslic3r/GCode/PreviewData.cpp:146 +#: src/slic3r/GUI/ConfigWizard.cpp:190 src/slic3r/GUI/Plater.cpp:432 +#: src/libslic3r/GCode/PreviewData.cpp:162 msgid "None" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:301 +#: src/slic3r/GUI/ConfigWizard.cpp:296 #, possible-c-format msgid "Welcome to the %s Configuration Assistant" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:303 +#: src/slic3r/GUI/ConfigWizard.cpp:298 #, possible-c-format msgid "Welcome to the %s Configuration Wizard" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:305 +#: src/slic3r/GUI/ConfigWizard.cpp:300 msgid "Welcome" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:309 src/slic3r/GUI/GUI_App.cpp:793 +#: src/slic3r/GUI/ConfigWizard.cpp:304 src/slic3r/GUI/GUI_App.cpp:713 #, possible-c-format msgid "Run %s" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:311 +#: src/slic3r/GUI/ConfigWizard.cpp:306 #, possible-c-format msgid "" "Hello, welcome to %s! This %s helps you with the initial configuration; just " "a few settings and you will be ready to print." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:316 +#: src/slic3r/GUI/ConfigWizard.cpp:311 msgid "" "Remove user profiles - install from scratch (a snapshot will be taken " "beforehand)" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:347 +#: src/slic3r/GUI/ConfigWizard.cpp:342 #, possible-c-format msgid "%s Family" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:384 +#: src/slic3r/GUI/ConfigWizard.cpp:379 msgid "Custom Printer Setup" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:384 +#: src/slic3r/GUI/ConfigWizard.cpp:379 msgid "Custom Printer" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:386 +#: src/slic3r/GUI/ConfigWizard.cpp:381 msgid "Define a custom printer profile" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:388 +#: src/slic3r/GUI/ConfigWizard.cpp:383 msgid "Custom profile name:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:412 +#: src/slic3r/GUI/ConfigWizard.cpp:407 msgid "Automatic updates" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:412 +#: src/slic3r/GUI/ConfigWizard.cpp:407 msgid "Updates" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:420 src/slic3r/GUI/Preferences.cpp:69 +#: src/slic3r/GUI/ConfigWizard.cpp:415 src/slic3r/GUI/Preferences.cpp:61 msgid "Check for application updates" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:424 +#: src/slic3r/GUI/ConfigWizard.cpp:419 #, possible-c-format msgid "" "If enabled, %s checks for new application versions online. When a new " @@ -459,11 +412,11 @@ msgid "" "notification mechanisms, no automatic installation is done." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:430 src/slic3r/GUI/Preferences.cpp:77 +#: src/slic3r/GUI/ConfigWizard.cpp:425 src/slic3r/GUI/Preferences.cpp:69 msgid "Update built-in Presets automatically" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:434 +#: src/slic3r/GUI/ConfigWizard.cpp:429 #, possible-c-format msgid "" "If enabled, %s downloads updates of built-in system presets in the " @@ -472,225 +425,221 @@ msgid "" "startup." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:437 +#: src/slic3r/GUI/ConfigWizard.cpp:432 msgid "" "Updates are never applied without user's consent and never overwrite user's " "customized settings." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:442 +#: src/slic3r/GUI/ConfigWizard.cpp:437 msgid "" "Additionally a backup snapshot of the whole configuration is created before " "an update is applied." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:449 +#: src/slic3r/GUI/ConfigWizard.cpp:444 msgid "Other Vendors" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:451 +#: src/slic3r/GUI/ConfigWizard.cpp:446 #, possible-c-format msgid "Pick another vendor supported by %s:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:497 +#: src/slic3r/GUI/ConfigWizard.cpp:492 msgid "Firmware Type" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:497 src/slic3r/GUI/Tab.cpp:2149 +#: src/slic3r/GUI/ConfigWizard.cpp:492 src/slic3r/GUI/Tab.cpp:1957 msgid "Firmware" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:501 +#: src/slic3r/GUI/ConfigWizard.cpp:496 msgid "Choose the type of firmware used by your printer." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:535 +#: src/slic3r/GUI/ConfigWizard.cpp:530 msgid "Bed Shape and Size" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:538 +#: src/slic3r/GUI/ConfigWizard.cpp:533 msgid "Set the shape of your printer's bed." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:558 +#: src/slic3r/GUI/ConfigWizard.cpp:547 msgid "Filament and Nozzle Diameters" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:558 +#: src/slic3r/GUI/ConfigWizard.cpp:547 msgid "Print Diameters" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:572 +#: src/slic3r/GUI/ConfigWizard.cpp:561 msgid "Enter the diameter of your printer's hot end nozzle." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:575 +#: src/slic3r/GUI/ConfigWizard.cpp:564 msgid "Nozzle Diameter:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:585 +#: src/slic3r/GUI/ConfigWizard.cpp:574 msgid "Enter the diameter of your filament." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:586 +#: src/slic3r/GUI/ConfigWizard.cpp:575 msgid "" "Good precision is required, so use a caliper and do multiple measurements " "along the filament, then compute the average." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:589 +#: src/slic3r/GUI/ConfigWizard.cpp:578 msgid "Filament Diameter:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:623 +#: src/slic3r/GUI/ConfigWizard.cpp:612 msgid "Extruder and Bed Temperatures" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:623 +#: src/slic3r/GUI/ConfigWizard.cpp:612 msgid "Temperatures" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:639 +#: src/slic3r/GUI/ConfigWizard.cpp:628 msgid "Enter the temperature needed for extruding your filament." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:640 +#: src/slic3r/GUI/ConfigWizard.cpp:629 msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:643 +#: src/slic3r/GUI/ConfigWizard.cpp:632 msgid "Extrusion Temperature:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:644 src/slic3r/GUI/ConfigWizard.cpp:658 +#: src/slic3r/GUI/ConfigWizard.cpp:633 src/slic3r/GUI/ConfigWizard.cpp:647 msgid "°C" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:653 +#: src/slic3r/GUI/ConfigWizard.cpp:642 msgid "" "Enter the bed temperature needed for getting your filament to stick to your " "heated bed." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:654 +#: src/slic3r/GUI/ConfigWizard.cpp:643 msgid "" "A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have " "no heated bed." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:657 +#: src/slic3r/GUI/ConfigWizard.cpp:646 msgid "Bed Temperature:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1138 +#: src/slic3r/GUI/ConfigWizard.cpp:1109 msgid "Select all standard printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1141 +#: src/slic3r/GUI/ConfigWizard.cpp:1112 msgid "< &Back" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1142 +#: src/slic3r/GUI/ConfigWizard.cpp:1113 msgid "&Next >" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1143 +#: src/slic3r/GUI/ConfigWizard.cpp:1114 msgid "&Finish" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1144 src/slic3r/GUI/FirmwareDialog.cpp:151 -#: src/slic3r/GUI/ProgressStatusBar.cpp:27 +#: src/slic3r/GUI/ConfigWizard.cpp:1115 src/slic3r/GUI/FirmwareDialog.cpp:147 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:37 +#: src/slic3r/GUI/ProgressStatusBar.cpp:28 msgid "Cancel" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1158 +#: src/slic3r/GUI/ConfigWizard.cpp:1129 msgid "Prusa FFF Technology Printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1161 +#: src/slic3r/GUI/ConfigWizard.cpp:1132 msgid "Prusa MSLA Technology Printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1230 +#: src/slic3r/GUI/ConfigWizard.cpp:1201 msgid "Configuration Assistant" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1231 +#: src/slic3r/GUI/ConfigWizard.cpp:1202 msgid "Configuration &Assistant" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1233 +#: src/slic3r/GUI/ConfigWizard.cpp:1204 msgid "Configuration Wizard" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1234 +#: src/slic3r/GUI/ConfigWizard.cpp:1205 msgid "Configuration &Wizard" msgstr "" -#: src/slic3r/GUI/Field.cpp:125 +#: src/slic3r/GUI/Field.cpp:117 msgid "default value" msgstr "" -#: src/slic3r/GUI/Field.cpp:128 +#: src/slic3r/GUI/Field.cpp:120 msgid "parameter name" msgstr "" -#: src/slic3r/GUI/Field.cpp:139 src/slic3r/GUI/OptionsGroup.cpp:569 -msgid "N/A" -msgstr "" - -#: src/slic3r/GUI/Field.cpp:158 +#: src/slic3r/GUI/Field.cpp:148 #, possible-c-format msgid "%s doesn't support percentage" msgstr "" -#: src/slic3r/GUI/Field.cpp:174 src/slic3r/GUI/Field.cpp:197 -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:337 +#: src/slic3r/GUI/Field.cpp:162 src/slic3r/GUI/Field.cpp:185 msgid "Invalid numeric input." msgstr "" -#: src/slic3r/GUI/Field.cpp:179 +#: src/slic3r/GUI/Field.cpp:167 msgid "Input value is out of range" msgstr "" -#: src/slic3r/GUI/Field.cpp:206 +#: src/slic3r/GUI/Field.cpp:193 #, possible-c-format msgid "" -"Do you mean %s%% instead of %s %s?\n" -"Select YES if you want to change this value to %s%%, \n" -"or NO if you are sure that %s %s is a correct value." +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." msgstr "" -#: src/slic3r/GUI/Field.cpp:209 +#: src/slic3r/GUI/Field.cpp:196 msgid "Parameter validation" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:150 +#: src/slic3r/GUI/FirmwareDialog.cpp:146 msgid "Flash!" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:152 +#: src/slic3r/GUI/FirmwareDialog.cpp:148 msgid "Flashing in progress. Please do not disconnect the printer!" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:199 +#: src/slic3r/GUI/FirmwareDialog.cpp:192 msgid "Flashing failed" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:282 +#: src/slic3r/GUI/FirmwareDialog.cpp:273 msgid "Flashing succeeded!" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:283 +#: src/slic3r/GUI/FirmwareDialog.cpp:274 msgid "Flashing failed. Please see the avrdude log below." msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:284 +#: src/slic3r/GUI/FirmwareDialog.cpp:275 msgid "Flashing cancelled." msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:332 +#: src/slic3r/GUI/FirmwareDialog.cpp:313 #, possible-c-format msgid "" "This firmware hex file does not match the printer model.\n" @@ -701,13 +650,13 @@ msgid "" "Please only continue if you are sure this is the right thing to do." msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:419 src/slic3r/GUI/FirmwareDialog.cpp:454 +#: src/slic3r/GUI/FirmwareDialog.cpp:400 src/slic3r/GUI/FirmwareDialog.cpp:436 #, possible-c-format msgid "" "Multiple %s devices found. Please only connect one at a time for flashing." msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:436 +#: src/slic3r/GUI/FirmwareDialog.cpp:417 #, possible-c-format msgid "" "The %s device was not found.\n" @@ -715,1330 +664,947 @@ msgid "" "connector ..." msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:548 +#: src/slic3r/GUI/FirmwareDialog.cpp:530 #, possible-c-format msgid "The %s device could not have been found" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:645 +#: src/slic3r/GUI/FirmwareDialog.cpp:608 #, possible-c-format msgid "Error accessing port at %s: %s" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:647 +#: src/slic3r/GUI/FirmwareDialog.cpp:610 #, possible-c-format msgid "Error: %s" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:777 +#: src/slic3r/GUI/FirmwareDialog.cpp:740 msgid "Firmware flasher" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:802 +#: src/slic3r/GUI/FirmwareDialog.cpp:765 msgid "Firmware image:" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:805 src/slic3r/GUI/Tab.cpp:1870 -#: src/slic3r/GUI/Tab.cpp:1926 +#: src/slic3r/GUI/FirmwareDialog.cpp:768 src/slic3r/GUI/Tab.cpp:1718 +#: src/slic3r/GUI/Tab.cpp:1774 msgid "Browse" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:807 +#: src/slic3r/GUI/FirmwareDialog.cpp:770 msgid "Serial port:" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:809 +#: src/slic3r/GUI/FirmwareDialog.cpp:772 msgid "Autodetected" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:810 +#: src/slic3r/GUI/FirmwareDialog.cpp:773 msgid "Rescan" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:817 +#: src/slic3r/GUI/FirmwareDialog.cpp:780 msgid "Progress:" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:820 +#: src/slic3r/GUI/FirmwareDialog.cpp:783 msgid "Status:" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:821 +#: src/slic3r/GUI/FirmwareDialog.cpp:784 msgid "Ready" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:841 +#: src/slic3r/GUI/FirmwareDialog.cpp:804 msgid "Advanced: Output log" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:852 +#: src/slic3r/GUI/FirmwareDialog.cpp:815 #: src/slic3r/GUI/PrintHostDialogs.cpp:161 msgid "Close" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:903 +#: src/slic3r/GUI/FirmwareDialog.cpp:863 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:904 +#: src/slic3r/GUI/FirmwareDialog.cpp:864 msgid "Confirmation" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:907 +#: src/slic3r/GUI/FirmwareDialog.cpp:867 msgid "Cancelling..." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:534 -msgid "Layers heights" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:631 +#: src/slic3r/GUI/GLCanvas3D.cpp:720 msgid "An object outside the print area was detected" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:632 +#: src/slic3r/GUI/GLCanvas3D.cpp:721 msgid "A toolpath outside the print area was detected" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:633 +#: src/slic3r/GUI/GLCanvas3D.cpp:722 msgid "SLA supports outside the print area were detected" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:634 +#: src/slic3r/GUI/GLCanvas3D.cpp:723 msgid "Some objects are not visible when editing supports" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:636 +#: src/slic3r/GUI/GLCanvas3D.cpp:725 msgid "" "An object outside the print area was detected\n" "Resolve the current problem to continue slicing" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:1733 -msgid "Mirror Object" +#: src/slic3r/GUI/GLCanvas3D.cpp:1694 +msgid "Last frame" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:2970 -msgid "Move Object" +#: src/slic3r/GUI/GLCanvas3D.cpp:1698 +msgid "ms" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3506 -msgid "Undo History" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3506 -msgid "Redo History" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3524 -#, possible-c-format -msgid "Undo %1$d Action" -msgid_plural "Undo %1$d Actions" -msgstr[0] "" -msgstr[1] "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3524 -#, possible-c-format -msgid "Redo %1$d Action" -msgid_plural "Redo %1$d Actions" -msgstr[0] "" -msgstr[1] "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3571 +#: src/slic3r/GUI/GLCanvas3D.cpp:3434 msgid "Add..." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3579 src/slic3r/GUI/GUI_ObjectList.cpp:1501 -#: src/slic3r/GUI/Plater.cpp:3520 src/slic3r/GUI/Plater.cpp:3539 -#: src/slic3r/GUI/Tab.cpp:3286 +#: src/slic3r/GUI/GLCanvas3D.cpp:3444 src/slic3r/GUI/GUI_ObjectList.cpp:1277 +#: src/slic3r/GUI/Plater.cpp:2994 src/slic3r/GUI/Plater.cpp:3013 +#: src/slic3r/GUI/Tab.cpp:2988 msgid "Delete" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3588 src/slic3r/GUI/Plater.cpp:4172 +#: src/slic3r/GUI/GLCanvas3D.cpp:3455 src/slic3r/GUI/Plater.cpp:3375 msgid "Delete all" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3597 src/slic3r/GUI/KBShortcutsDialog.cpp:137 -#: src/slic3r/GUI/Plater.cpp:2681 +#: src/slic3r/GUI/GLCanvas3D.cpp:3466 src/slic3r/GUI/KBShortcutsDialog.cpp:134 msgid "Arrange" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3597 src/slic3r/GUI/KBShortcutsDialog.cpp:138 -msgid "Arrange selection" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3609 +#: src/slic3r/GUI/GLCanvas3D.cpp:3480 msgid "Copy" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3618 +#: src/slic3r/GUI/GLCanvas3D.cpp:3491 msgid "Paste" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3630 src/slic3r/GUI/Plater.cpp:3400 -#: src/slic3r/GUI/Plater.cpp:3412 src/slic3r/GUI/Plater.cpp:3526 +#: src/slic3r/GUI/GLCanvas3D.cpp:3505 msgid "Add instance" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3641 src/slic3r/GUI/Plater.cpp:3528 +#: src/slic3r/GUI/GLCanvas3D.cpp:3517 msgid "Remove instance" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3654 +#: src/slic3r/GUI/GLCanvas3D.cpp:3532 msgid "Split to objects" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3664 src/slic3r/GUI/GUI_ObjectList.cpp:1340 +#: src/slic3r/GUI/GLCanvas3D.cpp:3544 src/slic3r/GUI/GUI_ObjectList.cpp:1129 msgid "Split to parts" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3677 src/slic3r/GUI/GUI_ObjectList.cpp:2203 -msgid "Height ranges" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3728 src/slic3r/GUI/MainFrame.cpp:570 -msgid "Undo" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3728 src/slic3r/GUI/GLCanvas3D.cpp:3761 -msgid "Click right mouse button to open History" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3745 -msgid "Next Undo action: %1%" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3761 src/slic3r/GUI/MainFrame.cpp:573 -msgid "Redo" +#: src/slic3r/GUI/GLCanvas3D.cpp:3559 +msgid "Layers editing" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3777 -msgid "Next Redo action: %1%" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5555 -msgid "Selection-Add from rectangle" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5574 -msgid "Selection-Remove from rectangle" -msgstr "" - -#: src/slic3r/GUI/GLCanvas3DManager.cpp:273 -#, possible-c-format -msgid "" -"PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \n" -"while OpenGL version %s, render %s, vendor %s was detected." -msgstr "" - -#: src/slic3r/GUI/GLCanvas3DManager.cpp:276 -msgid "You may need to update your graphics card driver." +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:35 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:195 +msgid "Rotate lower part upwards" msgstr "" -#: src/slic3r/GUI/GLCanvas3DManager.cpp:279 -msgid "" -"As a workaround, you may run PrusaSlicer with a software rendered 3D " -"graphics by running prusa-slicer.exe with the --sw_renderer parameter." +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:36 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:198 +msgid "Perform cut" msgstr "" -#: src/slic3r/GUI/GLCanvas3DManager.cpp:281 -msgid "Unsupported OpenGL version" +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:40 -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:145 src/libslic3r/PrintConfig.cpp:3212 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3049 msgid "Cut" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:150 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:193 msgid "Keep upper part" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:151 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:194 msgid "Keep lower part" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:152 -msgid "Rotate lower part upwards" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:155 -msgid "Perform cut" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:45 +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 msgid "Place on face" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:48 +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:52 msgid "Move" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:177 +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:178 msgid "Position (mm)" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:177 +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:178 msgid "Displacement (mm)" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:449 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:477 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:496 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:514 -#: src/libslic3r/PrintConfig.cpp:3261 +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:305 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:324 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:342 +#: src/libslic3r/PrintConfig.cpp:3098 msgid "Rotate" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:482 +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:491 msgid "Rotation (deg)" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:47 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:392 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:497 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:515 -#: src/libslic3r/PrintConfig.cpp:3276 +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:53 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:231 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:325 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:343 +#: src/libslic3r/PrintConfig.cpp:3113 msgid "Scale" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:292 +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:291 msgid "Scale (%)" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:44 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:840 msgid "Head diameter" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:45 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:856 msgid "Lock supports under new islands" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:46 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1449 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:860 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1249 msgid "Remove selected points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:47 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:864 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:921 msgid "Remove all points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:48 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1452 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:869 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1252 msgid "Apply changes" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:49 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1453 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:874 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1253 msgid "Discard changes" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:50 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:881 msgid "Minimal points distance" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:51 -#: src/libslic3r/PrintConfig.cpp:2651 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:882 +#: src/libslic3r/PrintConfig.cpp:2534 msgid "Support points density" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:52 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1455 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:911 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1255 msgid "Auto-generate points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:53 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:917 msgid "Manual editing" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:54 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:934 msgid "Clipping of view" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:55 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:935 msgid "Reset direction" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:531 -msgid "Add support point" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:719 -msgid "Delete support point" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:920 -msgid "Change point head diameter" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:986 -msgid "Support parameter change" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1094 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1007 msgid "SLA Support Points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1115 -msgid "SLA gizmo turned on" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1137 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1034 msgid "Do you want to save your manually edited support points?" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1138 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1035 msgid "Save changes?" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1150 -msgid "SLA gizmo turned off" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1187 -msgid "Move support point" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1286 -msgid "Support points edit" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1355 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1178 msgid "" "Autogeneration will erase all manually edited points.\n" "\n" "Are you sure you want to do it?\n" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1357 src/slic3r/GUI/GUI.cpp:289 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1180 src/slic3r/GUI/GUI.cpp:283 #: src/slic3r/GUI/WipeTowerDialog.cpp:44 src/slic3r/GUI/WipeTowerDialog.cpp:328 msgid "Warning" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1360 -msgid "Autogenerate support points" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1412 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1212 msgid "SLA gizmo keyboard shortcuts" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1423 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1223 msgid "Note: some shortcuts work in (non)editing mode only." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1441 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1444 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1445 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1241 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1244 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1245 msgid "Left click" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1441 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1241 msgid "Add point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1442 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1242 msgid "Right click" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1442 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1242 msgid "Remove point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1443 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1446 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1447 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1243 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1246 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1247 msgid "Drag" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1443 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1243 msgid "Move point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1444 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1244 msgid "Add point to selection" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1445 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1245 msgid "Remove point from selection" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1446 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1246 msgid "Select by rectangle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1447 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1247 msgid "Deselect by rectangle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1448 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1248 msgid "Select all points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1450 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1250 msgid "Mouse wheel" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1450 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1250 msgid "Move clipping plane" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1451 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1251 msgid "Reset clipping plane" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1454 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1254 msgid "Switch to editing mode" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:569 -msgid "Gizmo-Place on Face" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:641 -msgid "Gizmo-Move" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:646 -msgid "Gizmo-Scale" -msgstr "" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:651 -msgid "Gizmo-Rotate" -msgstr "" - -#: src/slic3r/GUI/GUI.cpp:141 src/slic3r/GUI/Tab.cpp:3145 +#: src/slic3r/GUI/GUI.cpp:142 src/slic3r/GUI/Tab.cpp:2847 msgid "It's impossible to print multi-part object(s) with SLA technology." msgstr "" -#: src/slic3r/GUI/GUI.cpp:142 +#: src/slic3r/GUI/GUI.cpp:143 msgid "Please check and fix your object list." msgstr "" -#: src/slic3r/GUI/GUI.cpp:143 src/slic3r/GUI/Plater.cpp:2246 -#: src/slic3r/GUI/Tab.cpp:3147 +#: src/slic3r/GUI/GUI.cpp:144 src/slic3r/GUI/Tab.cpp:2849 msgid "Attention!" msgstr "" -#: src/slic3r/GUI/GUI.cpp:283 +#: src/slic3r/GUI/GUI.cpp:277 msgid "Notice" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:132 -#, possible-c-format -msgid "" -"%s has encountered an error. It was likely caused by running out of memory. " -"If you are sure you have enough RAM on your system, this may also be a bug " -"and we would be glad if you reported it.\n" -"\n" -"The application will now terminate." -msgstr "" - -#: src/slic3r/GUI/GUI_App.cpp:135 -msgid "Fatal error" -msgstr "" - -#: src/slic3r/GUI/GUI_App.cpp:442 +#: src/slic3r/GUI/GUI_App.cpp:401 msgid "Changing of an application language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:450 src/slic3r/GUI/GUI_App.cpp:459 +#: src/slic3r/GUI/GUI_App.cpp:409 src/slic3r/GUI/GUI_App.cpp:418 msgid "Recreating" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:463 +#: src/slic3r/GUI/GUI_App.cpp:422 msgid "Loading of current presets" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:471 +#: src/slic3r/GUI/GUI_App.cpp:430 msgid "Loading of a mode view" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:551 +#: src/slic3r/GUI/GUI_App.cpp:510 msgid "Choose one file (3MF/AMF):" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:563 +#: src/slic3r/GUI/GUI_App.cpp:522 msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:625 +#: src/slic3r/GUI/GUI_App.cpp:564 msgid "Select the language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:625 +#: src/slic3r/GUI/GUI_App.cpp:565 msgid "Language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:796 +#: src/slic3r/GUI/GUI_App.cpp:716 msgid "&Configuration Snapshots" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:796 +#: src/slic3r/GUI/GUI_App.cpp:716 msgid "Inspect / activate configuration snapshots" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:797 +#: src/slic3r/GUI/GUI_App.cpp:717 msgid "Take Configuration &Snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:797 +#: src/slic3r/GUI/GUI_App.cpp:717 msgid "Capture a configuration snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:800 +#: src/slic3r/GUI/GUI_App.cpp:720 msgid "&Preferences" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:806 +#: src/slic3r/GUI/GUI_App.cpp:726 msgid "Application preferences" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:809 src/slic3r/GUI/wxExtensions.cpp:3043 +#: src/slic3r/GUI/GUI_App.cpp:729 src/slic3r/GUI/wxExtensions.cpp:2555 msgid "Simple" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:809 +#: src/slic3r/GUI/GUI_App.cpp:729 msgid "Simple View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:810 src/slic3r/GUI/GUI_ObjectList.cpp:97 -#: src/slic3r/GUI/GUI_ObjectList.cpp:620 src/slic3r/GUI/Tab.cpp:1061 -#: src/slic3r/GUI/Tab.cpp:1076 src/slic3r/GUI/Tab.cpp:1174 -#: src/slic3r/GUI/Tab.cpp:1177 src/slic3r/GUI/Tab.cpp:1685 -#: src/slic3r/GUI/Tab.cpp:2169 src/slic3r/GUI/Tab.cpp:3785 -#: src/slic3r/GUI/wxExtensions.cpp:3044 src/libslic3r/PrintConfig.cpp:83 -#: src/libslic3r/PrintConfig.cpp:197 src/libslic3r/PrintConfig.cpp:360 -#: src/libslic3r/PrintConfig.cpp:1013 src/libslic3r/PrintConfig.cpp:2226 +#: src/slic3r/GUI/GUI_App.cpp:730 src/slic3r/GUI/GUI_ObjectList.cpp:85 +#: src/slic3r/GUI/GUI_ObjectList.cpp:541 src/slic3r/GUI/Tab.cpp:1032 +#: src/slic3r/GUI/Tab.cpp:1047 src/slic3r/GUI/Tab.cpp:1145 +#: src/slic3r/GUI/Tab.cpp:1148 src/slic3r/GUI/Tab.cpp:1551 +#: src/slic3r/GUI/Tab.cpp:1977 src/slic3r/GUI/Tab.cpp:3492 +#: src/slic3r/GUI/wxExtensions.cpp:2556 src/libslic3r/PrintConfig.cpp:73 +#: src/libslic3r/PrintConfig.cpp:188 src/libslic3r/PrintConfig.cpp:351 +#: src/libslic3r/PrintConfig.cpp:999 src/libslic3r/PrintConfig.cpp:2210 msgid "Advanced" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:810 +#: src/slic3r/GUI/GUI_App.cpp:730 msgid "Advanced View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:811 src/slic3r/GUI/wxExtensions.cpp:3045 +#: src/slic3r/GUI/GUI_App.cpp:731 src/slic3r/GUI/wxExtensions.cpp:2557 msgid "Expert" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:811 +#: src/slic3r/GUI/GUI_App.cpp:731 msgid "Expert View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:816 +#: src/slic3r/GUI/GUI_App.cpp:736 msgid "Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:816 +#: src/slic3r/GUI/GUI_App.cpp:736 #, possible-c-format msgid "%s View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:818 +#: src/slic3r/GUI/GUI_App.cpp:738 msgid "Change Application &Language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:820 +#: src/slic3r/GUI/GUI_App.cpp:740 msgid "Flash printer &firmware" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:820 +#: src/slic3r/GUI/GUI_App.cpp:740 msgid "Upload a firmware image into an Arduino based printer" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:832 +#: src/slic3r/GUI/GUI_App.cpp:752 msgid "Taking configuration snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:832 +#: src/slic3r/GUI/GUI_App.cpp:752 msgid "Snapshot name" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:875 +#: src/slic3r/GUI/GUI_App.cpp:795 msgid "" "Switching the language will trigger application restart.\n" "You will lose content of the plater." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:877 +#: src/slic3r/GUI/GUI_App.cpp:797 msgid "Do you want to proceed?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:878 +#: src/slic3r/GUI/GUI_App.cpp:798 msgid "Language selection" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:901 +#: src/slic3r/GUI/GUI_App.cpp:817 msgid "&Configuration" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:923 +#: src/slic3r/GUI/GUI_App.cpp:837 msgid "The presets on the following tabs were modified" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:923 src/slic3r/GUI/Tab.cpp:3133 +#: src/slic3r/GUI/GUI_App.cpp:837 src/slic3r/GUI/Tab.cpp:2835 msgid "Discard changes and continue anyway?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:926 +#: src/slic3r/GUI/GUI_App.cpp:838 msgid "Unsaved Presets" msgstr "" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Start at height" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Stop at height" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 src/slic3r/GUI/Tab.cpp:1033 -#: src/libslic3r/PrintConfig.cpp:66 -msgid "Layer height" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:153 -msgid "Remove layer range" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:162 -msgid "Add layer range" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:34 src/slic3r/GUI/GUI_ObjectList.cpp:88 -#: src/slic3r/GUI/GUI_ObjectList.cpp:611 src/libslic3r/PrintConfig.cpp:67 -#: src/libslic3r/PrintConfig.cpp:160 src/libslic3r/PrintConfig.cpp:392 -#: src/libslic3r/PrintConfig.cpp:453 src/libslic3r/PrintConfig.cpp:461 -#: src/libslic3r/PrintConfig.cpp:867 src/libslic3r/PrintConfig.cpp:1051 -#: src/libslic3r/PrintConfig.cpp:1354 src/libslic3r/PrintConfig.cpp:1420 -#: src/libslic3r/PrintConfig.cpp:1601 src/libslic3r/PrintConfig.cpp:2037 -#: src/libslic3r/PrintConfig.cpp:2095 +#: src/slic3r/GUI/GUI_ObjectList.cpp:28 src/slic3r/GUI/GUI_ObjectList.cpp:77 +#: src/slic3r/GUI/GUI_ObjectList.cpp:533 src/libslic3r/PrintConfig.cpp:57 +#: src/libslic3r/PrintConfig.cpp:151 src/libslic3r/PrintConfig.cpp:382 +#: src/libslic3r/PrintConfig.cpp:439 src/libslic3r/PrintConfig.cpp:447 +#: src/libslic3r/PrintConfig.cpp:853 src/libslic3r/PrintConfig.cpp:1037 +#: src/libslic3r/PrintConfig.cpp:1340 src/libslic3r/PrintConfig.cpp:1406 +#: src/libslic3r/PrintConfig.cpp:1587 src/libslic3r/PrintConfig.cpp:2022 +#: src/libslic3r/PrintConfig.cpp:2079 msgid "Layers and Perimeters" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:89 -#: src/slic3r/GUI/GUI_ObjectList.cpp:612 src/slic3r/GUI/Plater.cpp:497 -#: src/slic3r/GUI/Tab.cpp:1065 src/slic3r/GUI/Tab.cpp:1066 -#: src/libslic3r/PrintConfig.cpp:177 src/libslic3r/PrintConfig.cpp:400 -#: src/libslic3r/PrintConfig.cpp:420 src/libslic3r/PrintConfig.cpp:754 -#: src/libslic3r/PrintConfig.cpp:768 src/libslic3r/PrintConfig.cpp:805 -#: src/libslic3r/PrintConfig.cpp:958 src/libslic3r/PrintConfig.cpp:968 -#: src/libslic3r/PrintConfig.cpp:986 src/libslic3r/PrintConfig.cpp:1004 -#: src/libslic3r/PrintConfig.cpp:1023 src/libslic3r/PrintConfig.cpp:1708 -#: src/libslic3r/PrintConfig.cpp:1725 +#: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:78 +#: src/slic3r/GUI/GUI_ObjectList.cpp:534 src/slic3r/GUI/Plater.cpp:446 +#: src/slic3r/GUI/Tab.cpp:1036 src/slic3r/GUI/Tab.cpp:1037 +#: src/slic3r/GUI/Tab.cpp:1395 src/libslic3r/PrintConfig.cpp:168 +#: src/libslic3r/PrintConfig.cpp:390 src/libslic3r/PrintConfig.cpp:740 +#: src/libslic3r/PrintConfig.cpp:754 src/libslic3r/PrintConfig.cpp:791 +#: src/libslic3r/PrintConfig.cpp:944 src/libslic3r/PrintConfig.cpp:954 +#: src/libslic3r/PrintConfig.cpp:972 src/libslic3r/PrintConfig.cpp:990 +#: src/libslic3r/PrintConfig.cpp:1009 src/libslic3r/PrintConfig.cpp:1694 +#: src/libslic3r/PrintConfig.cpp:1711 msgid "Infill" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:36 src/slic3r/GUI/GUI_ObjectList.cpp:90 -#: src/slic3r/GUI/GUI_ObjectList.cpp:613 src/slic3r/GUI/GUI_Preview.cpp:244 -#: src/slic3r/GUI/Tab.cpp:1094 src/slic3r/GUI/Tab.cpp:1095 -#: src/libslic3r/PrintConfig.cpp:344 src/libslic3r/PrintConfig.cpp:1481 -#: src/libslic3r/PrintConfig.cpp:1830 src/libslic3r/PrintConfig.cpp:1836 -#: src/libslic3r/PrintConfig.cpp:1844 src/libslic3r/PrintConfig.cpp:1856 -#: src/libslic3r/PrintConfig.cpp:1866 src/libslic3r/PrintConfig.cpp:1874 -#: src/libslic3r/PrintConfig.cpp:1889 src/libslic3r/PrintConfig.cpp:1910 -#: src/libslic3r/PrintConfig.cpp:1921 src/libslic3r/PrintConfig.cpp:1937 -#: src/libslic3r/PrintConfig.cpp:1946 src/libslic3r/PrintConfig.cpp:1955 -#: src/libslic3r/PrintConfig.cpp:1966 src/libslic3r/PrintConfig.cpp:1980 -#: src/libslic3r/PrintConfig.cpp:1988 src/libslic3r/PrintConfig.cpp:1989 -#: src/libslic3r/PrintConfig.cpp:1998 src/libslic3r/PrintConfig.cpp:2006 -#: src/libslic3r/PrintConfig.cpp:2020 src/libslic3r/GCode/PreviewData.cpp:156 +#: src/slic3r/GUI/GUI_ObjectList.cpp:30 src/slic3r/GUI/GUI_ObjectList.cpp:79 +#: src/slic3r/GUI/GUI_ObjectList.cpp:535 src/slic3r/GUI/GUI_Preview.cpp:242 +#: src/slic3r/GUI/Tab.cpp:1065 src/slic3r/GUI/Tab.cpp:1066 +#: src/libslic3r/PrintConfig.cpp:335 src/libslic3r/PrintConfig.cpp:1467 +#: src/libslic3r/PrintConfig.cpp:1815 src/libslic3r/PrintConfig.cpp:1821 +#: src/libslic3r/PrintConfig.cpp:1829 src/libslic3r/PrintConfig.cpp:1841 +#: src/libslic3r/PrintConfig.cpp:1851 src/libslic3r/PrintConfig.cpp:1859 +#: src/libslic3r/PrintConfig.cpp:1874 src/libslic3r/PrintConfig.cpp:1895 +#: src/libslic3r/PrintConfig.cpp:1906 src/libslic3r/PrintConfig.cpp:1922 +#: src/libslic3r/PrintConfig.cpp:1931 src/libslic3r/PrintConfig.cpp:1940 +#: src/libslic3r/PrintConfig.cpp:1951 src/libslic3r/PrintConfig.cpp:1965 +#: src/libslic3r/PrintConfig.cpp:1973 src/libslic3r/PrintConfig.cpp:1974 +#: src/libslic3r/PrintConfig.cpp:1983 src/libslic3r/PrintConfig.cpp:1991 +#: src/libslic3r/PrintConfig.cpp:2005 src/libslic3r/GCode/PreviewData.cpp:172 msgid "Support material" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:39 src/slic3r/GUI/GUI_ObjectList.cpp:94 -#: src/slic3r/GUI/GUI_ObjectList.cpp:617 src/libslic3r/PrintConfig.cpp:2202 -#: src/libslic3r/PrintConfig.cpp:2210 -msgid "Wipe options" +#: src/slic3r/GUI/GUI_ObjectList.cpp:33 src/slic3r/GUI/GUI_ObjectList.cpp:81 +#: src/slic3r/GUI/GUI_ObjectList.cpp:537 src/slic3r/GUI/Tab.cpp:1125 +#: src/slic3r/GUI/Tab.cpp:1881 src/libslic3r/PrintConfig.cpp:457 +#: src/libslic3r/PrintConfig.cpp:965 src/libslic3r/PrintConfig.cpp:1375 +#: src/libslic3r/PrintConfig.cpp:1703 src/libslic3r/PrintConfig.cpp:1887 +#: src/libslic3r/PrintConfig.cpp:1913 src/libslic3r/PrintConfig.cpp:2186 +#: src/libslic3r/PrintConfig.cpp:2194 +msgid "Extruders" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:45 +#: src/slic3r/GUI/GUI_ObjectList.cpp:39 msgid "Pad and Support" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:51 +#: src/slic3r/GUI/GUI_ObjectList.cpp:45 msgid "Add part" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:52 +#: src/slic3r/GUI/GUI_ObjectList.cpp:46 msgid "Add modifier" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:53 +#: src/slic3r/GUI/GUI_ObjectList.cpp:47 msgid "Add support enforcer" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:54 +#: src/slic3r/GUI/GUI_ObjectList.cpp:48 msgid "Add support blocker" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:91 src/slic3r/GUI/GUI_ObjectList.cpp:614 -#: src/slic3r/GUI/GUI_Preview.cpp:223 src/slic3r/GUI/Tab.cpp:1119 -#: src/libslic3r/PrintConfig.cpp:209 src/libslic3r/PrintConfig.cpp:441 -#: src/libslic3r/PrintConfig.cpp:896 src/libslic3r/PrintConfig.cpp:1024 -#: src/libslic3r/PrintConfig.cpp:1410 src/libslic3r/PrintConfig.cpp:1647 -#: src/libslic3r/PrintConfig.cpp:1696 src/libslic3r/PrintConfig.cpp:1747 -#: src/libslic3r/PrintConfig.cpp:2080 +#: src/slic3r/GUI/GUI_ObjectList.cpp:80 src/slic3r/GUI/GUI_ObjectList.cpp:536 +#: src/slic3r/GUI/GUI_Preview.cpp:221 src/slic3r/GUI/Tab.cpp:1090 +#: src/libslic3r/PrintConfig.cpp:200 src/libslic3r/PrintConfig.cpp:427 +#: src/libslic3r/PrintConfig.cpp:882 src/libslic3r/PrintConfig.cpp:1010 +#: src/libslic3r/PrintConfig.cpp:1396 src/libslic3r/PrintConfig.cpp:1633 +#: src/libslic3r/PrintConfig.cpp:1682 src/libslic3r/PrintConfig.cpp:1733 +#: src/libslic3r/PrintConfig.cpp:2064 msgid "Speed" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:92 src/slic3r/GUI/GUI_ObjectList.cpp:615 -#: src/slic3r/GUI/Tab.cpp:1154 src/slic3r/GUI/Tab.cpp:2043 -#: src/libslic3r/PrintConfig.cpp:471 src/libslic3r/PrintConfig.cpp:979 -#: src/libslic3r/PrintConfig.cpp:1389 src/libslic3r/PrintConfig.cpp:1717 -#: src/libslic3r/PrintConfig.cpp:1902 src/libslic3r/PrintConfig.cpp:1928 -msgid "Extruders" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:93 src/slic3r/GUI/GUI_ObjectList.cpp:616 -#: src/libslic3r/PrintConfig.cpp:431 src/libslic3r/PrintConfig.cpp:538 -#: src/libslic3r/PrintConfig.cpp:855 src/libslic3r/PrintConfig.cpp:987 -#: src/libslic3r/PrintConfig.cpp:1398 src/libslic3r/PrintConfig.cpp:1737 -#: src/libslic3r/PrintConfig.cpp:1911 src/libslic3r/PrintConfig.cpp:2069 +#: src/slic3r/GUI/GUI_ObjectList.cpp:82 src/slic3r/GUI/GUI_ObjectList.cpp:538 +#: src/libslic3r/PrintConfig.cpp:417 src/libslic3r/PrintConfig.cpp:524 +#: src/libslic3r/PrintConfig.cpp:841 src/libslic3r/PrintConfig.cpp:973 +#: src/libslic3r/PrintConfig.cpp:1384 src/libslic3r/PrintConfig.cpp:1723 +#: src/libslic3r/PrintConfig.cpp:1896 src/libslic3r/PrintConfig.cpp:2053 msgid "Extrusion Width" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:99 src/slic3r/GUI/GUI_ObjectList.cpp:622 -#: src/slic3r/GUI/Plater.cpp:465 src/slic3r/GUI/Tab.cpp:3737 -#: src/slic3r/GUI/Tab.cpp:3738 src/libslic3r/PrintConfig.cpp:2501 -#: src/libslic3r/PrintConfig.cpp:2508 src/libslic3r/PrintConfig.cpp:2517 -#: src/libslic3r/PrintConfig.cpp:2526 src/libslic3r/PrintConfig.cpp:2536 -#: src/libslic3r/PrintConfig.cpp:2562 src/libslic3r/PrintConfig.cpp:2569 -#: src/libslic3r/PrintConfig.cpp:2580 src/libslic3r/PrintConfig.cpp:2590 -#: src/libslic3r/PrintConfig.cpp:2599 src/libslic3r/PrintConfig.cpp:2612 -#: src/libslic3r/PrintConfig.cpp:2622 src/libslic3r/PrintConfig.cpp:2631 -#: src/libslic3r/PrintConfig.cpp:2641 src/libslic3r/PrintConfig.cpp:2652 -#: src/libslic3r/PrintConfig.cpp:2660 +#: src/slic3r/GUI/GUI_ObjectList.cpp:87 src/slic3r/GUI/GUI_ObjectList.cpp:543 +#: src/slic3r/GUI/Plater.cpp:428 src/slic3r/GUI/Tab.cpp:3454 +#: src/slic3r/GUI/Tab.cpp:3455 src/libslic3r/PrintConfig.cpp:2398 +#: src/libslic3r/PrintConfig.cpp:2405 src/libslic3r/PrintConfig.cpp:2414 +#: src/libslic3r/PrintConfig.cpp:2423 src/libslic3r/PrintConfig.cpp:2433 +#: src/libslic3r/PrintConfig.cpp:2459 src/libslic3r/PrintConfig.cpp:2466 +#: src/libslic3r/PrintConfig.cpp:2477 src/libslic3r/PrintConfig.cpp:2487 +#: src/libslic3r/PrintConfig.cpp:2496 src/libslic3r/PrintConfig.cpp:2506 +#: src/libslic3r/PrintConfig.cpp:2515 src/libslic3r/PrintConfig.cpp:2525 +#: src/libslic3r/PrintConfig.cpp:2535 src/libslic3r/PrintConfig.cpp:2543 msgid "Supports" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:100 src/slic3r/GUI/GUI_ObjectList.cpp:623 -#: src/slic3r/GUI/Plater.cpp:603 src/slic3r/GUI/Tab.cpp:3769 -#: src/slic3r/GUI/Tab.cpp:3770 src/libslic3r/PrintConfig.cpp:2668 -#: src/libslic3r/PrintConfig.cpp:2675 src/libslic3r/PrintConfig.cpp:2689 -#: src/libslic3r/PrintConfig.cpp:2699 src/libslic3r/PrintConfig.cpp:2721 -#: src/libslic3r/PrintConfig.cpp:2732 src/libslic3r/PrintConfig.cpp:2739 -#: src/libslic3r/PrintConfig.cpp:2750 src/libslic3r/PrintConfig.cpp:2759 -#: src/libslic3r/PrintConfig.cpp:2768 +#: src/slic3r/GUI/GUI_ObjectList.cpp:88 src/slic3r/GUI/GUI_ObjectList.cpp:544 +#: src/slic3r/GUI/Tab.cpp:3482 src/slic3r/GUI/Tab.cpp:3483 +#: src/libslic3r/PrintConfig.cpp:2551 src/libslic3r/PrintConfig.cpp:2558 +#: src/libslic3r/PrintConfig.cpp:2572 src/libslic3r/PrintConfig.cpp:2582 +#: src/libslic3r/PrintConfig.cpp:2595 src/libslic3r/PrintConfig.cpp:2604 msgid "Pad" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:260 +#: src/slic3r/GUI/GUI_ObjectList.cpp:205 msgid "Name" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:271 src/slic3r/GUI/GUI_ObjectList.cpp:373 -msgid "Editing" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:318 +#: src/slic3r/GUI/GUI_ObjectList.cpp:259 #, possible-c-format msgid "Auto-repaired (%d errors):\n" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:325 +#: src/slic3r/GUI/GUI_ObjectList.cpp:266 msgid "degenerate facets" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:326 +#: src/slic3r/GUI/GUI_ObjectList.cpp:267 msgid "edges fixed" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:327 +#: src/slic3r/GUI/GUI_ObjectList.cpp:268 msgid "facets removed" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:328 +#: src/slic3r/GUI/GUI_ObjectList.cpp:269 msgid "facets added" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:329 +#: src/slic3r/GUI/GUI_ObjectList.cpp:270 msgid "facets reversed" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:330 +#: src/slic3r/GUI/GUI_ObjectList.cpp:271 msgid "backwards edges" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:338 +#: src/slic3r/GUI/GUI_ObjectList.cpp:279 msgid "Right button click the icon to fix STL through Netfabb" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:375 +#: src/slic3r/GUI/GUI_ObjectList.cpp:308 msgid "Right button click the icon to change the object settings" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:377 -msgid "Click the icon to change the object settings" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:381 -msgid "Right button click the icon to change the object printable property" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:383 -msgid "Click the icon to change the object printable property" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:428 src/slic3r/GUI/GUI_ObjectList.cpp:449 -#: src/slic3r/GUI/GUI_ObjectList.cpp:461 src/slic3r/GUI/GUI_ObjectList.cpp:3642 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3652 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3684 src/slic3r/GUI/wxExtensions.cpp:603 -#: src/slic3r/GUI/wxExtensions.cpp:660 src/slic3r/GUI/wxExtensions.cpp:685 -#: src/slic3r/GUI/wxExtensions.cpp:893 +#: src/slic3r/GUI/GUI_ObjectList.cpp:359 src/slic3r/GUI/GUI_ObjectList.cpp:380 +#: src/slic3r/GUI/GUI_ObjectList.cpp:392 src/slic3r/GUI/GUI_ObjectList.cpp:2850 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2860 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2892 src/slic3r/GUI/wxExtensions.cpp:543 +#: src/slic3r/GUI/wxExtensions.cpp:568 msgid "default" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:433 src/slic3r/GUI/Tab.cpp:1649 -#: src/libslic3r/PrintConfig.cpp:470 +#: src/slic3r/GUI/GUI_ObjectList.cpp:364 src/slic3r/GUI/Tab.cpp:1515 +#: src/libslic3r/PrintConfig.cpp:456 msgid "Extruder" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:546 -msgid "Rename Object" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:546 -msgid "Rename Sub-object" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:987 src/slic3r/GUI/GUI_ObjectList.cpp:3464 -msgid "Instances to Separated Objects" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1005 -msgid "Volumes in Object reordered" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1005 -msgid "Object reordered" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1060 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1376 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1382 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1623 +#: src/slic3r/GUI/GUI_ObjectList.cpp:883 src/slic3r/GUI/GUI_ObjectList.cpp:1159 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1165 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1388 #, possible-c-format msgid "Quick Add Settings (%s)" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1137 +#: src/slic3r/GUI/GUI_ObjectList.cpp:946 msgid "Select showing settings" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1186 -msgid "Add Settings for Layers" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1187 -msgid "Add Settings for Sub-object" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1188 -msgid "Add Settings for Object" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1249 -msgid "Add Settings Bundle for Height range" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1250 -msgid "Add Settings Bundle for Sub-object" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1251 -msgid "Add Settings Bundle for Object" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1290 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1079 msgid "Load" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1295 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1320 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1323 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1084 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1109 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1112 msgid "Box" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1295 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1084 msgid "Cylinder" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1295 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1084 msgid "Sphere" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1295 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1084 msgid "Slab" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1347 -msgid "Height range Modifier" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1355 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1138 msgid "Add settings" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1422 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1205 msgid "Change type" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1429 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1577 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1212 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1342 msgid "Set as a Separated Object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1435 -msgid "Printable" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1442 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1218 msgid "Rename" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1453 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1229 msgid "Fix through the Netfabb" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1463 src/slic3r/GUI/Plater.cpp:3552 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1239 src/slic3r/GUI/Plater.cpp:3023 msgid "Export as STL" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1470 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1246 msgid "Change extruder" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1489 src/libslic3r/PrintConfig.cpp:309 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1265 src/libslic3r/PrintConfig.cpp:300 msgid "Default" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1495 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1271 msgid "Select new extruder for the object/part" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1507 -msgid "Scale to print volume" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1507 -msgid "Scale the selected object to fit the print volume" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1577 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1342 msgid "Set as a Separated Objects" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1652 -msgid "Load Part" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1687 -msgid "Error!" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1732 -msgid "Add Generic Subobject" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1739 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1555 msgid "Generic" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1843 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1945 -msgid "Last instance of an object cannot be deleted." +#: src/slic3r/GUI/GUI_ObjectList.cpp:1698 +msgid "You can't delete the last solid part from object." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1855 -msgid "Delete Settings" +#: src/slic3r/GUI/GUI_ObjectList.cpp:1715 +msgid "You can't delete the last intance from object." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1879 -msgid "Delete All Instances from Object" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1895 -msgid "Delete Height Range" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1926 -msgid "From Object List You can't delete the last solid part from object." -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1930 -msgid "Delete Subobject" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1949 -msgid "Delete Instance" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1973 src/slic3r/GUI/Plater.cpp:2838 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1741 src/slic3r/GUI/Plater.cpp:2343 msgid "" "The selected object couldn't be split because it contains only one part." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1977 -msgid "Split to Parts" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2025 -msgid "Add Layers" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2150 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1850 msgid "Group manipulation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2162 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1862 msgid "Object manipulation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2175 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1872 msgid "Object Settings to modify" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2179 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1876 msgid "Part Settings to modify" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2184 -msgid "Layer range Settings to modify" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2190 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1885 msgid "Part manipulation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2196 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1891 msgid "Instance manipulation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2203 -msgid "Settings for height range" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2388 -msgid "Delete Selected Item" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2525 -msgid "Delete Selected" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2584 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2613 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2631 -msgid "Add Height Range" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2690 -msgid "Edit Height Range" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2974 -msgid "Selection-Remove from list" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2982 -msgid "Selection-Add from list" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3100 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2416 msgid "Object or Instance" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3101 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3234 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2416 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 msgid "Part" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3101 -msgid "Layer" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3103 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2418 msgid "Unsupported selection" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3104 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2419 #, possible-c-format msgid "You started your selection with %s Item." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3105 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2420 #, possible-c-format msgid "In this mode you can select only other %s Items%s" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3108 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2423 msgid "of a current Object" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3113 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3188 src/slic3r/GUI/Plater.cpp:126 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2428 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2501 src/slic3r/GUI/Plater.cpp:117 msgid "Info" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3229 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2542 msgid "You can't change a type of the last solid part of the object." msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3234 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 msgid "Modifier" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3234 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 msgid "Support Enforcer" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3234 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 msgid "Support Blocker" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3236 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2549 msgid "Type:" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3236 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2549 msgid "Select type of part" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3241 -msgid "Change Part Type" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3486 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2713 msgid "Enter new name" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3486 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2713 msgid "Renaming" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3502 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3608 src/slic3r/GUI/Tab.cpp:3618 -#: src/slic3r/GUI/Tab.cpp:3622 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2729 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2823 src/slic3r/GUI/Tab.cpp:3335 +#: src/slic3r/GUI/Tab.cpp:3339 msgid "The supplied name is not valid;" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3503 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3609 src/slic3r/GUI/Tab.cpp:3619 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2730 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2824 src/slic3r/GUI/Tab.cpp:3336 msgid "the following characters are not allowed:" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3632 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2840 msgid "Set extruder for selected items" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3633 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2841 msgid "Select extruder number for selected objects and/or parts" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3646 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2854 msgid "Select extruder number:" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3647 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2855 msgid "This extruder will be set for selected items" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 src/slic3r/GUI/Selection.cpp:1473 -msgid "Set Printable" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 src/slic3r/GUI/Selection.cpp:1473 -msgid "Set Unprintable" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:62 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:105 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:40 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:83 msgid "World coordinates" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:63 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:106 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:41 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 msgid "Local coordinates" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:82 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:60 msgid "Select coordinate space, in which the transformation will be performed." msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:125 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:102 msgid "Object Manipulation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:178 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:153 msgid "Object name" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:214 -#, possible-c-format -msgid "Toggle %c axis mirroring" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:247 -msgid "Set Mirror" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:287 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:292 -msgid "Reset scale" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:305 -msgid "Reset rotation" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:330 -msgid "Reset Rotation" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:342 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:357 -msgid "Drop to bed" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:390 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:454 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:229 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:282 msgid "Position" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:391 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:455 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:230 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:283 msgid "Rotation" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:456 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:284 msgid "Scale factors" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:513 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:341 msgid "Translate" msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:565 -msgid "" -"You cannot use non-uniform scaling mode for multiple objects/parts selection" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:735 -msgid "Set Position" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:766 -msgid "Set Orientation" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:831 -msgid "Set Scale" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:915 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640 msgid "" "The currently manipulated object is tilted (rotation angles are not " "multiples of 90°).\n" @@ -2047,275 +1613,261 @@ msgid "" "once the rotation is embedded into the object coordinates." msgstr "" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:918 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:643 msgid "" "This operation is irreversible.\n" "Do you want to proceed?" msgstr "" -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:59 +#: src/slic3r/GUI/GUI_ObjectSettings.cpp:58 msgid "Additional Settings" msgstr "" -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:95 +#: src/slic3r/GUI/GUI_ObjectSettings.cpp:83 msgid "Remove parameter" msgstr "" -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:101 -#, possible-c-format -msgid "Delete Option %s" -msgstr "" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:146 -#, possible-c-format -msgid "Change Option %s" -msgstr "" - -#: src/slic3r/GUI/GUI_Preview.cpp:217 +#: src/slic3r/GUI/GUI_Preview.cpp:215 msgid "View" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:220 src/slic3r/GUI/GUI_Preview.cpp:569 -#: src/libslic3r/GCode/PreviewData.cpp:378 +#: src/slic3r/GUI/GUI_Preview.cpp:218 src/slic3r/GUI/GUI_Preview.cpp:544 +#: src/libslic3r/GCode/PreviewData.cpp:394 msgid "Feature type" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:221 src/libslic3r/PrintConfig.cpp:483 +#: src/slic3r/GUI/GUI_Preview.cpp:219 src/libslic3r/PrintConfig.cpp:469 msgid "Height" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:222 src/libslic3r/PrintConfig.cpp:2188 +#: src/slic3r/GUI/GUI_Preview.cpp:220 src/libslic3r/PrintConfig.cpp:2172 msgid "Width" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:224 +#: src/slic3r/GUI/GUI_Preview.cpp:222 msgid "Volumetric flow rate" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:225 src/slic3r/GUI/GUI_Preview.cpp:333 -#: src/slic3r/GUI/GUI_Preview.cpp:515 src/slic3r/GUI/GUI_Preview.cpp:568 -#: src/slic3r/GUI/GUI_Preview.cpp:774 src/libslic3r/GCode/PreviewData.cpp:388 +#: src/slic3r/GUI/GUI_Preview.cpp:223 src/slic3r/GUI/GUI_Preview.cpp:321 +#: src/slic3r/GUI/GUI_Preview.cpp:487 src/slic3r/GUI/GUI_Preview.cpp:544 +#: src/slic3r/GUI/GUI_Preview.cpp:720 src/libslic3r/GCode/PreviewData.cpp:404 msgid "Tool" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:226 src/slic3r/GUI/GUI_Preview.cpp:566 -#: src/libslic3r/GCode/PreviewData.cpp:390 +#: src/slic3r/GUI/GUI_Preview.cpp:224 src/slic3r/GUI/GUI_Preview.cpp:542 +#: src/libslic3r/GCode/PreviewData.cpp:406 msgid "Color Print" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:229 +#: src/slic3r/GUI/GUI_Preview.cpp:227 msgid "Show" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:232 src/slic3r/GUI/GUI_Preview.cpp:233 +#: src/slic3r/GUI/GUI_Preview.cpp:230 src/slic3r/GUI/GUI_Preview.cpp:231 msgid "Feature types" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:235 src/libslic3r/GCode/PreviewData.cpp:147 +#: src/slic3r/GUI/GUI_Preview.cpp:233 src/libslic3r/GCode/PreviewData.cpp:163 msgid "Perimeter" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:236 src/libslic3r/GCode/PreviewData.cpp:148 +#: src/slic3r/GUI/GUI_Preview.cpp:234 src/libslic3r/GCode/PreviewData.cpp:164 msgid "External perimeter" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:237 src/libslic3r/GCode/PreviewData.cpp:149 +#: src/slic3r/GUI/GUI_Preview.cpp:235 src/libslic3r/GCode/PreviewData.cpp:165 msgid "Overhang perimeter" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:238 src/libslic3r/GCode/PreviewData.cpp:150 +#: src/slic3r/GUI/GUI_Preview.cpp:236 src/libslic3r/GCode/PreviewData.cpp:166 msgid "Internal infill" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:239 src/libslic3r/PrintConfig.cpp:1736 -#: src/libslic3r/PrintConfig.cpp:1746 src/libslic3r/GCode/PreviewData.cpp:151 +#: src/slic3r/GUI/GUI_Preview.cpp:237 src/libslic3r/PrintConfig.cpp:1722 +#: src/libslic3r/PrintConfig.cpp:1732 src/libslic3r/GCode/PreviewData.cpp:167 msgid "Solid infill" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:240 src/libslic3r/PrintConfig.cpp:2068 -#: src/libslic3r/PrintConfig.cpp:2079 src/libslic3r/GCode/PreviewData.cpp:152 +#: src/slic3r/GUI/GUI_Preview.cpp:238 src/libslic3r/PrintConfig.cpp:2052 +#: src/libslic3r/PrintConfig.cpp:2063 src/libslic3r/GCode/PreviewData.cpp:168 msgid "Top solid infill" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:241 src/libslic3r/GCode/PreviewData.cpp:153 +#: src/slic3r/GUI/GUI_Preview.cpp:239 src/libslic3r/GCode/PreviewData.cpp:169 msgid "Bridge infill" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:242 src/libslic3r/PrintConfig.cpp:895 -#: src/libslic3r/GCode/PreviewData.cpp:154 +#: src/slic3r/GUI/GUI_Preview.cpp:240 src/libslic3r/PrintConfig.cpp:881 +#: src/libslic3r/GCode/PreviewData.cpp:170 msgid "Gap fill" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:243 src/slic3r/GUI/Tab.cpp:1085 -#: src/libslic3r/GCode/PreviewData.cpp:155 +#: src/slic3r/GUI/GUI_Preview.cpp:241 src/slic3r/GUI/Tab.cpp:1056 +#: src/libslic3r/GCode/PreviewData.cpp:171 msgid "Skirt" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:245 src/libslic3r/PrintConfig.cpp:1954 -#: src/libslic3r/GCode/PreviewData.cpp:157 +#: src/slic3r/GUI/GUI_Preview.cpp:243 src/libslic3r/PrintConfig.cpp:1939 +#: src/libslic3r/GCode/PreviewData.cpp:173 msgid "Support material interface" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:246 src/slic3r/GUI/Tab.cpp:1165 -#: src/libslic3r/GCode/PreviewData.cpp:158 +#: src/slic3r/GUI/GUI_Preview.cpp:244 src/slic3r/GUI/Tab.cpp:1136 +#: src/libslic3r/GCode/PreviewData.cpp:174 msgid "Wipe tower" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:251 src/libslic3r/PrintConfig.cpp:2102 +#: src/slic3r/GUI/GUI_Preview.cpp:249 src/libslic3r/PrintConfig.cpp:2086 msgid "Travel" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:252 +#: src/slic3r/GUI/GUI_Preview.cpp:250 msgid "Retractions" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:253 +#: src/slic3r/GUI/GUI_Preview.cpp:251 msgid "Unretractions" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:254 +#: src/slic3r/GUI/GUI_Preview.cpp:252 msgid "Shells" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:255 -msgid "Legend" -msgstr "" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:14 src/slic3r/GUI/MainFrame.cpp:683 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 src/slic3r/GUI/MainFrame.cpp:608 msgid "Keyboard Shortcuts" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:107 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:104 msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:108 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:105 msgid "Import STL/OBJ/AMF/3MF without config, keep bed" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:109 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:106 msgid "Load Config from .ini/amf/3mf/gcode" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:110 src/slic3r/GUI/Plater.cpp:837 -#: src/slic3r/GUI/Plater.cpp:4822 src/libslic3r/PrintConfig.cpp:3163 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:107 src/slic3r/GUI/Plater.cpp:740 +#: src/slic3r/GUI/Plater.cpp:3907 src/libslic3r/PrintConfig.cpp:3000 msgid "Export G-code" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:111 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:108 msgid "Save project (3MF)" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:109 msgid "Load Config from .ini/amf/3mf/gcode and merge" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:113 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:110 msgid "(Re)slice" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:116 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:113 msgid "Select Plater Tab" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:118 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 msgid "Select Print Settings Tab" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:119 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:116 msgid "Select Filament Settings Tab" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:120 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:117 msgid "Select Printer Settings Tab" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:121 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:118 msgid "Switch to 3D" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:119 msgid "Switch to Preview" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 src/slic3r/GUI/Preferences.cpp:10 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:120 src/slic3r/GUI/Preferences.cpp:10 msgid "Preferences" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:121 #: src/slic3r/GUI/PrintHostDialogs.cpp:136 msgid "Print host upload queue" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 msgid "Camera view" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:126 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 msgid "Add Instance of the selected object" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 msgid "Remove Instance of the selected object" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:128 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 msgid "Show keyboard shortcuts list" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:129 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:126 msgid "Press to select multiple object or move multiple object with mouse" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:131 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:128 msgid "Main Shortcuts" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:139 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:135 msgid "Select All objects" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:136 msgid "Delete selected" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:141 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:137 msgid "Delete All" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:142 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:138 msgid "Copy to clipboard" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:139 msgid "Paste from clipboard" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:144 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 msgid "Gizmo move" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:145 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:141 msgid "Gizmo scale" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:142 msgid "Gizmo rotate" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 msgid "Gizmo cut" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:148 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:144 msgid "Gizmo Place face on bed" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:149 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:145 msgid "Gizmo SLA support points" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:150 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 #, possible-c-format msgid "" "Press to activate selection rectangle\n" @@ -2323,685 +1875,644 @@ msgid "" "or to snap by 1mm in Gizmo move" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:151 -msgid "" -"Press to scale selection to fit print volume\n" -"in Gizmo scale" -msgstr "" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:152 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 msgid "" "Press to activate deselection rectangle\n" "or to scale or rotate selected objects\n" "around their own center" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:153 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:148 msgid "Press to activate one direction scaling in Gizmo scale" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Change camera type (perspective, orthographic)" -msgstr "" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:155 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:149 msgid "Zoom to Bed" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:156 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:150 msgid "Zoom to all objects in scene, if none selected" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:157 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:151 msgid "Zoom to selected object" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:158 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:152 msgid "Zoom in" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:159 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:153 msgid "Zoom out" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:160 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 msgid "Unselect gizmo / Clear selection" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:166 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:156 msgid "Plater Shortcuts" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:181 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:193 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:171 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 msgid "Arrow Up" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:181 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:183 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:171 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:173 msgid "Upper Layer" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:194 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:172 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:183 msgid "Arrow Down" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:184 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:172 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:174 msgid "Lower Layer" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 -msgid "Show/Hide (L)egend" -msgstr "" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:187 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 msgid "Preview Shortcuts" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:193 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 msgid "Move current slider thumb Up" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:194 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:183 msgid "Move current slider thumb Down" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:195 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:184 msgid "Arrow Left" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:195 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:184 msgid "Set upper thumb to current slider thumb" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:196 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 msgid "Arrow Right" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:196 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 msgid "Set lower thumb to current slider thumb" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:197 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:186 msgid "Add color change marker for current layer" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:198 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:187 msgid "Delete color change marker for current layer" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:200 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:189 msgid "Layers Slider Shortcuts" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:64 +#: src/slic3r/GUI/MainFrame.cpp:61 msgid "" " - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/" "releases" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:159 +#: src/slic3r/GUI/MainFrame.cpp:150 msgid "based on Slic3r" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:189 +#: src/slic3r/GUI/MainFrame.cpp:180 msgid "Plater" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:400 +#: src/slic3r/GUI/MainFrame.cpp:374 msgid "&New Project" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:400 +#: src/slic3r/GUI/MainFrame.cpp:374 msgid "Start a new project" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:403 +#: src/slic3r/GUI/MainFrame.cpp:377 msgid "&Open Project" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:403 +#: src/slic3r/GUI/MainFrame.cpp:377 msgid "Open a project file" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:408 -msgid "Recent projects" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:417 -msgid "The selected project is no more available" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:417 src/slic3r/GUI/MainFrame.cpp:755 -#: src/slic3r/GUI/PrintHostDialogs.cpp:231 -msgid "Error" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:441 +#: src/slic3r/GUI/MainFrame.cpp:380 msgid "&Save Project" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:441 +#: src/slic3r/GUI/MainFrame.cpp:380 msgid "Save current project file" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:445 src/slic3r/GUI/MainFrame.cpp:447 +#: src/slic3r/GUI/MainFrame.cpp:384 src/slic3r/GUI/MainFrame.cpp:386 msgid "Save Project &as" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:445 src/slic3r/GUI/MainFrame.cpp:447 +#: src/slic3r/GUI/MainFrame.cpp:384 src/slic3r/GUI/MainFrame.cpp:386 msgid "Save current project file as" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:455 +#: src/slic3r/GUI/MainFrame.cpp:394 msgid "Import STL/OBJ/AM&F/3MF" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:455 +#: src/slic3r/GUI/MainFrame.cpp:394 msgid "Load a model" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:459 +#: src/slic3r/GUI/MainFrame.cpp:398 msgid "Import &Config" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:459 +#: src/slic3r/GUI/MainFrame.cpp:398 msgid "Load exported configuration file" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:461 +#: src/slic3r/GUI/MainFrame.cpp:400 msgid "Import Config from &project" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:461 +#: src/slic3r/GUI/MainFrame.cpp:400 msgid "Load configuration from project file" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:464 +#: src/slic3r/GUI/MainFrame.cpp:403 msgid "Import Config &Bundle" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:464 +#: src/slic3r/GUI/MainFrame.cpp:403 msgid "Load presets from a bundle" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:466 +#: src/slic3r/GUI/MainFrame.cpp:405 msgid "&Import" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:469 src/slic3r/GUI/MainFrame.cpp:719 +#: src/slic3r/GUI/MainFrame.cpp:408 src/slic3r/GUI/MainFrame.cpp:644 msgid "Export &G-code" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:469 +#: src/slic3r/GUI/MainFrame.cpp:408 msgid "Export current plate as G-code" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:473 src/slic3r/GUI/MainFrame.cpp:720 -msgid "S&end G-code" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:473 -msgid "Send to print current plate as G-code" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:478 +#: src/slic3r/GUI/MainFrame.cpp:413 msgid "Export plate as &STL" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:478 +#: src/slic3r/GUI/MainFrame.cpp:413 msgid "Export current plate as STL" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export plate as STL &including supports" +#: src/slic3r/GUI/MainFrame.cpp:416 +msgid "Export plate as STL including supports" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:481 +#: src/slic3r/GUI/MainFrame.cpp:416 msgid "Export current plate as STL including supports" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:484 +#: src/slic3r/GUI/MainFrame.cpp:419 msgid "Export plate as &AMF" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:484 +#: src/slic3r/GUI/MainFrame.cpp:419 msgid "Export current plate as AMF" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export &toolpaths as OBJ" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export toolpaths as OBJ" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:492 +#: src/slic3r/GUI/MainFrame.cpp:423 msgid "Export &Config" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:492 +#: src/slic3r/GUI/MainFrame.cpp:423 msgid "Export current configuration to file" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:494 +#: src/slic3r/GUI/MainFrame.cpp:425 msgid "Export Config &Bundle" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:494 +#: src/slic3r/GUI/MainFrame.cpp:425 msgid "Export all presets to file" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:496 +#: src/slic3r/GUI/MainFrame.cpp:427 msgid "&Export" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:502 +#: src/slic3r/GUI/MainFrame.cpp:433 msgid "Quick Slice" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:502 +#: src/slic3r/GUI/MainFrame.cpp:433 msgid "Slice a file into a G-code" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:508 +#: src/slic3r/GUI/MainFrame.cpp:439 msgid "Quick Slice and Save As" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:508 +#: src/slic3r/GUI/MainFrame.cpp:439 msgid "Slice a file into a G-code, save as" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:514 +#: src/slic3r/GUI/MainFrame.cpp:445 msgid "Repeat Last Quick Slice" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:514 +#: src/slic3r/GUI/MainFrame.cpp:445 msgid "Repeat last quick slice" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:522 +#: src/slic3r/GUI/MainFrame.cpp:453 msgid "(Re)Slice No&w" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:522 +#: src/slic3r/GUI/MainFrame.cpp:453 msgid "Start new slicing process" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:526 +#: src/slic3r/GUI/MainFrame.cpp:457 msgid "&Repair STL file" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:526 +#: src/slic3r/GUI/MainFrame.cpp:457 msgid "Automatically repair an STL file" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:529 +#: src/slic3r/GUI/MainFrame.cpp:460 msgid "&Quit" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:529 +#: src/slic3r/GUI/MainFrame.cpp:460 #, possible-c-format msgid "Quit %s" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:554 +#: src/slic3r/GUI/MainFrame.cpp:485 msgid "&Select all" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:555 +#: src/slic3r/GUI/MainFrame.cpp:488 msgid "Selects all objects" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:557 +#: src/slic3r/GUI/MainFrame.cpp:491 msgid "D&eselect all" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:558 +#: src/slic3r/GUI/MainFrame.cpp:492 msgid "Deselects all objects" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:561 +#: src/slic3r/GUI/MainFrame.cpp:496 msgid "&Delete selected" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:562 +#: src/slic3r/GUI/MainFrame.cpp:497 msgid "Deletes the current selection" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:564 +#: src/slic3r/GUI/MainFrame.cpp:499 msgid "Delete &all" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:565 +#: src/slic3r/GUI/MainFrame.cpp:500 msgid "Deletes all objects" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:569 -msgid "&Undo" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:572 -msgid "&Redo" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:577 +#: src/slic3r/GUI/MainFrame.cpp:504 msgid "&Copy" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:578 +#: src/slic3r/GUI/MainFrame.cpp:505 msgid "Copy selection to clipboard" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:580 +#: src/slic3r/GUI/MainFrame.cpp:507 msgid "&Paste" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:581 +#: src/slic3r/GUI/MainFrame.cpp:508 msgid "Paste clipboard" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:590 +#: src/slic3r/GUI/MainFrame.cpp:517 msgid "&Plater Tab" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:590 +#: src/slic3r/GUI/MainFrame.cpp:517 msgid "Show the plater" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:597 +#: src/slic3r/GUI/MainFrame.cpp:524 msgid "P&rint Settings Tab" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:597 +#: src/slic3r/GUI/MainFrame.cpp:524 msgid "Show the print settings" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:599 src/slic3r/GUI/MainFrame.cpp:722 +#: src/slic3r/GUI/MainFrame.cpp:526 src/slic3r/GUI/MainFrame.cpp:648 msgid "&Filament Settings Tab" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:599 +#: src/slic3r/GUI/MainFrame.cpp:526 msgid "Show the filament settings" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:602 +#: src/slic3r/GUI/MainFrame.cpp:529 msgid "Print&er Settings Tab" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:602 +#: src/slic3r/GUI/MainFrame.cpp:529 msgid "Show the printer settings" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:606 +#: src/slic3r/GUI/MainFrame.cpp:533 msgid "3&D" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:606 +#: src/slic3r/GUI/MainFrame.cpp:533 msgid "Show the 3D editing view" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:609 +#: src/slic3r/GUI/MainFrame.cpp:536 msgid "Pre&view" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:609 +#: src/slic3r/GUI/MainFrame.cpp:536 msgid "Show the 3D slices preview" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:628 +#: src/slic3r/GUI/MainFrame.cpp:555 msgid "Print &Host Upload Queue" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:628 +#: src/slic3r/GUI/MainFrame.cpp:555 msgid "Display the Print Host Upload Queue window" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:637 +#: src/slic3r/GUI/MainFrame.cpp:564 msgid "Iso" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:637 +#: src/slic3r/GUI/MainFrame.cpp:564 msgid "Iso View" msgstr "" #. TRN To be shown in the main menu View->Top +#: src/slic3r/GUI/MainFrame.cpp:568 +msgid "Top" +msgstr "" + #. TRN To be shown in Print Settings "Top solid layers" -#: src/slic3r/GUI/MainFrame.cpp:641 src/libslic3r/PrintConfig.cpp:2094 +#: src/libslic3r/PrintConfig.cpp:2078 +msgctxt "Layers" msgid "Top" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:641 +#: src/slic3r/GUI/MainFrame.cpp:568 msgid "Top View" msgstr "" #. TRN To be shown in the main menu View->Bottom +#: src/slic3r/GUI/MainFrame.cpp:571 +msgid "Bottom" +msgstr "" + #. TRN To be shown in Print Settings "Bottom solid layers" -#: src/slic3r/GUI/MainFrame.cpp:644 src/libslic3r/PrintConfig.cpp:159 +#: src/libslic3r/PrintConfig.cpp:150 +msgctxt "Layers" msgid "Bottom" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:644 +#: src/slic3r/GUI/MainFrame.cpp:571 msgid "Bottom View" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:646 +#: src/slic3r/GUI/MainFrame.cpp:573 msgid "Front" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:646 +#: src/slic3r/GUI/MainFrame.cpp:573 msgid "Front View" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:648 src/libslic3r/PrintConfig.cpp:1611 +#: src/slic3r/GUI/MainFrame.cpp:575 src/libslic3r/PrintConfig.cpp:1597 msgid "Rear" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:648 +#: src/slic3r/GUI/MainFrame.cpp:575 msgid "Rear View" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:650 +#: src/slic3r/GUI/MainFrame.cpp:577 msgid "Left" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:650 +#: src/slic3r/GUI/MainFrame.cpp:577 msgid "Left View" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:652 +#: src/slic3r/GUI/MainFrame.cpp:579 msgid "Right" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:652 +#: src/slic3r/GUI/MainFrame.cpp:579 msgid "Right View" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:659 +#: src/slic3r/GUI/MainFrame.cpp:586 msgid "Prusa 3D &Drivers" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:659 +#: src/slic3r/GUI/MainFrame.cpp:586 msgid "Open the Prusa3D drivers download page in your browser" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:661 +#: src/slic3r/GUI/MainFrame.cpp:588 msgid "Software &Releases" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:661 +#: src/slic3r/GUI/MainFrame.cpp:588 msgid "Open the software releases page in your browser" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:667 +#: src/slic3r/GUI/MainFrame.cpp:594 #, possible-c-format msgid "%s &Website" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:668 +#: src/slic3r/GUI/MainFrame.cpp:595 #, possible-c-format msgid "Open the %s website in your browser" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:674 +#: src/slic3r/GUI/MainFrame.cpp:601 msgid "System &Info" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:674 +#: src/slic3r/GUI/MainFrame.cpp:601 msgid "Show system information" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:676 +#: src/slic3r/GUI/MainFrame.cpp:603 msgid "Show &Configuration Folder" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:676 +#: src/slic3r/GUI/MainFrame.cpp:603 msgid "Show user configuration folder (datadir)" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:678 +#: src/slic3r/GUI/MainFrame.cpp:605 msgid "Report an I&ssue" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:678 +#: src/slic3r/GUI/MainFrame.cpp:605 #, possible-c-format msgid "Report an issue on %s" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:680 +#: src/slic3r/GUI/MainFrame.cpp:607 #, possible-c-format msgid "&About %s" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:680 +#: src/slic3r/GUI/MainFrame.cpp:607 msgid "Show about dialog" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:683 +#: src/slic3r/GUI/MainFrame.cpp:610 msgid "Show the list of the keyboard shortcuts" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:691 +#: src/slic3r/GUI/MainFrame.cpp:618 msgid "&File" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:692 +#: src/slic3r/GUI/MainFrame.cpp:619 msgid "&Edit" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:693 +#: src/slic3r/GUI/MainFrame.cpp:620 msgid "&Window" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:694 +#: src/slic3r/GUI/MainFrame.cpp:621 msgid "&View" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:697 +#: src/slic3r/GUI/MainFrame.cpp:624 msgid "&Help" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:719 -msgid "E&xport" -msgstr "" - -#: src/slic3r/GUI/MainFrame.cpp:720 -msgid "S&end to print" +#: src/slic3r/GUI/MainFrame.cpp:646 src/slic3r/GUI/Plater.cpp:3907 +msgid "Export" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:722 +#: src/slic3r/GUI/MainFrame.cpp:648 msgid "Mate&rial Settings Tab" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:743 +#: src/slic3r/GUI/MainFrame.cpp:669 msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:754 +#: src/slic3r/GUI/MainFrame.cpp:683 msgid "No previously sliced file." msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:760 +#: src/slic3r/GUI/MainFrame.cpp:684 src/slic3r/GUI/PrintHostDialogs.cpp:231 +msgid "Error" +msgstr "" + +#: src/slic3r/GUI/MainFrame.cpp:689 msgid "Previously sliced file (" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:760 +#: src/slic3r/GUI/MainFrame.cpp:689 msgid ") not found." msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:761 +#: src/slic3r/GUI/MainFrame.cpp:690 msgid "File Not Found" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:796 +#: src/slic3r/GUI/MainFrame.cpp:725 #, possible-c-format msgid "Save %s file as:" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:796 +#: src/slic3r/GUI/MainFrame.cpp:725 msgid "SVG" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:796 +#: src/slic3r/GUI/MainFrame.cpp:725 msgid "G-code" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:808 +#: src/slic3r/GUI/MainFrame.cpp:740 msgid "Save zip file as:" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:817 src/slic3r/GUI/Plater.cpp:2981 -#: src/slic3r/GUI/Plater.cpp:4533 src/slic3r/GUI/Tab.cpp:1194 -#: src/slic3r/GUI/Tab.cpp:3786 +#: src/slic3r/GUI/MainFrame.cpp:750 src/slic3r/GUI/Plater.cpp:2476 +#: src/slic3r/GUI/Plater.cpp:3695 src/slic3r/GUI/Tab.cpp:1165 +#: src/slic3r/GUI/Tab.cpp:3493 msgid "Slicing" msgstr "" #. TRN "Processing input_file_basename" -#: src/slic3r/GUI/MainFrame.cpp:819 +#: src/slic3r/GUI/MainFrame.cpp:754 #, possible-c-format msgid "Processing %s" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:842 +#: src/slic3r/GUI/MainFrame.cpp:777 msgid " was successfully sliced." msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:844 +#: src/slic3r/GUI/MainFrame.cpp:779 msgid "Slicing Done!" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:859 +#: src/slic3r/GUI/MainFrame.cpp:794 msgid "Select the STL file to repair:" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:869 +#: src/slic3r/GUI/MainFrame.cpp:807 msgid "Save OBJ file (less prone to coordinate errors than STL) as:" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:881 +#: src/slic3r/GUI/MainFrame.cpp:822 msgid "Your file was repaired." msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:881 src/libslic3r/PrintConfig.cpp:3257 +#: src/slic3r/GUI/MainFrame.cpp:822 src/libslic3r/PrintConfig.cpp:3094 msgid "Repair" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:895 +#: src/slic3r/GUI/MainFrame.cpp:836 msgid "Save configuration as:" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:914 src/slic3r/GUI/MainFrame.cpp:976 +#: src/slic3r/GUI/MainFrame.cpp:856 src/slic3r/GUI/MainFrame.cpp:920 msgid "Select configuration to load:" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:950 +#: src/slic3r/GUI/MainFrame.cpp:893 msgid "Save presets bundle as:" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:997 +#: src/slic3r/GUI/MainFrame.cpp:944 #, possible-c-format msgid "%d presets successfully imported." msgstr "" @@ -3016,608 +2527,493 @@ msgstr "" msgid "%s has encountered an error" msgstr "" -#: src/slic3r/GUI/OptionsGroup.cpp:249 -msgctxt "Layers" -msgid "Top" -msgstr "" - -#: src/slic3r/GUI/OptionsGroup.cpp:249 -msgctxt "Layers" -msgid "Bottom" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:146 +#: src/slic3r/GUI/Plater.cpp:137 msgid "Volume" msgstr "" -#: src/slic3r/GUI/Plater.cpp:147 +#: src/slic3r/GUI/Plater.cpp:138 msgid "Facets" msgstr "" -#: src/slic3r/GUI/Plater.cpp:148 +#: src/slic3r/GUI/Plater.cpp:139 msgid "Materials" msgstr "" -#: src/slic3r/GUI/Plater.cpp:151 +#: src/slic3r/GUI/Plater.cpp:142 msgid "Manifold" msgstr "" -#: src/slic3r/GUI/Plater.cpp:201 +#: src/slic3r/GUI/Plater.cpp:192 msgid "Sliced Info" msgstr "" -#: src/slic3r/GUI/Plater.cpp:220 src/slic3r/GUI/Plater.cpp:1150 +#: src/slic3r/GUI/Plater.cpp:211 src/slic3r/GUI/Plater.cpp:1049 msgid "Used Filament (m)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:221 +#: src/slic3r/GUI/Plater.cpp:212 msgid "Used Filament (mm³)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:222 +#: src/slic3r/GUI/Plater.cpp:213 msgid "Used Filament (g)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:223 +#: src/slic3r/GUI/Plater.cpp:214 msgid "Used Material (unit)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:224 src/slic3r/GUI/Plater.cpp:1165 -#: src/libslic3r/PrintConfig.cpp:742 +#: src/slic3r/GUI/Plater.cpp:215 src/slic3r/GUI/Plater.cpp:1064 +#: src/libslic3r/PrintConfig.cpp:728 msgid "Cost" msgstr "" -#: src/slic3r/GUI/Plater.cpp:225 src/slic3r/GUI/Plater.cpp:1137 -#: src/slic3r/GUI/Plater.cpp:1179 +#: src/slic3r/GUI/Plater.cpp:216 src/slic3r/GUI/Plater.cpp:1036 +#: src/slic3r/GUI/Plater.cpp:1078 msgid "Estimated printing time" msgstr "" -#: src/slic3r/GUI/Plater.cpp:226 +#: src/slic3r/GUI/Plater.cpp:217 msgid "Number of tool changes" msgstr "" -#: src/slic3r/GUI/Plater.cpp:316 +#: src/slic3r/GUI/Plater.cpp:291 msgid "Click to edit preset" msgstr "" -#: src/slic3r/GUI/Plater.cpp:468 +#: src/slic3r/GUI/Plater.cpp:431 msgid "Select what kind of support do you need" msgstr "" -#: src/slic3r/GUI/Plater.cpp:470 src/libslic3r/PrintConfig.cpp:1865 -#: src/libslic3r/PrintConfig.cpp:2561 +#: src/slic3r/GUI/Plater.cpp:433 src/libslic3r/PrintConfig.cpp:1850 +#: src/libslic3r/PrintConfig.cpp:2458 msgid "Support on build plate only" msgstr "" -#: src/slic3r/GUI/Plater.cpp:471 src/slic3r/GUI/Plater.cpp:592 +#: src/slic3r/GUI/Plater.cpp:434 src/slic3r/GUI/Plater.cpp:527 msgid "For support enforcers only" msgstr "" -#: src/slic3r/GUI/Plater.cpp:472 +#: src/slic3r/GUI/Plater.cpp:435 msgid "Everywhere" msgstr "" -#: src/slic3r/GUI/Plater.cpp:504 src/slic3r/GUI/Tab.cpp:1091 +#: src/slic3r/GUI/Plater.cpp:453 src/slic3r/GUI/Tab.cpp:1062 msgid "Brim" msgstr "" -#: src/slic3r/GUI/Plater.cpp:506 +#: src/slic3r/GUI/Plater.cpp:455 msgid "" "This flag enables the brim that will be printed around each object on the " "first layer." msgstr "" -#: src/slic3r/GUI/Plater.cpp:514 +#: src/slic3r/GUI/Plater.cpp:463 msgid "Purging volumes" msgstr "" -#: src/slic3r/GUI/Plater.cpp:606 -msgid "Select what kind of pad do you need" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:608 -msgid "Below object" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:609 -msgid "Around object" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:781 +#: src/slic3r/GUI/Plater.cpp:688 msgid "Print settings" msgstr "" -#: src/slic3r/GUI/Plater.cpp:782 src/slic3r/GUI/Tab.cpp:1640 -#: src/slic3r/GUI/Tab.cpp:1641 +#: src/slic3r/GUI/Plater.cpp:689 src/slic3r/GUI/Tab.cpp:1506 +#: src/slic3r/GUI/Tab.cpp:1507 msgid "Filament" msgstr "" -#: src/slic3r/GUI/Plater.cpp:783 +#: src/slic3r/GUI/Plater.cpp:690 msgid "SLA print settings" msgstr "" -#: src/slic3r/GUI/Plater.cpp:784 src/slic3r/GUI/Preset.cpp:1314 +#: src/slic3r/GUI/Plater.cpp:691 src/slic3r/GUI/Preset.cpp:1285 msgid "SLA material" msgstr "" -#: src/slic3r/GUI/Plater.cpp:785 +#: src/slic3r/GUI/Plater.cpp:692 msgid "Printer" msgstr "" -#: src/slic3r/GUI/Plater.cpp:835 src/slic3r/GUI/Plater.cpp:4823 +#: src/slic3r/GUI/Plater.cpp:738 src/slic3r/GUI/Plater.cpp:3908 msgid "Send to printer" msgstr "" -#: src/slic3r/GUI/Plater.cpp:838 src/slic3r/GUI/Plater.cpp:2981 -#: src/slic3r/GUI/Plater.cpp:4536 +#: src/slic3r/GUI/Plater.cpp:741 src/slic3r/GUI/Plater.cpp:2476 +#: src/slic3r/GUI/Plater.cpp:3698 msgid "Slice now" msgstr "" -#: src/slic3r/GUI/Plater.cpp:978 +#: src/slic3r/GUI/Plater.cpp:881 msgid "Hold Shift to Slice & Export G-code" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1083 +#: src/slic3r/GUI/Plater.cpp:982 #, possible-c-format msgid "%d (%d shells)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1088 +#: src/slic3r/GUI/Plater.cpp:987 #, possible-c-format msgid "Auto-repaired (%d errors)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1091 +#: src/slic3r/GUI/Plater.cpp:990 #, possible-c-format msgid "" "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d " "facets reversed, %d backwards edges" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1101 +#: src/slic3r/GUI/Plater.cpp:1000 msgid "Yes" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1124 +#: src/slic3r/GUI/Plater.cpp:1023 msgid "Used Material (ml)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1127 +#: src/slic3r/GUI/Plater.cpp:1026 msgid "object(s)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1127 +#: src/slic3r/GUI/Plater.cpp:1026 msgid "supports and pad" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1152 src/slic3r/GUI/Plater.cpp:1167 +#: src/slic3r/GUI/Plater.cpp:1051 src/slic3r/GUI/Plater.cpp:1066 msgid "objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1152 src/slic3r/GUI/Plater.cpp:1167 +#: src/slic3r/GUI/Plater.cpp:1051 src/slic3r/GUI/Plater.cpp:1066 msgid "wipe tower" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1182 +#: src/slic3r/GUI/Plater.cpp:1081 msgid "normal mode" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1186 src/slic3r/GUI/Plater.cpp:1195 -#: src/libslic3r/PrintConfig.cpp:565 -msgid "Color" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:1191 +#: src/slic3r/GUI/Plater.cpp:1085 msgid "stealth mode" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1286 -msgid "Load File" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:1290 -msgid "Load Files" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:1519 -msgid "ERROR: not enough resources to execute a new job." -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:2089 -msgid "New Project" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:2206 +#: src/slic3r/GUI/Plater.cpp:1631 msgid "Loading" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2216 +#: src/slic3r/GUI/Plater.cpp:1641 #, possible-c-format msgid "Processing input file %s\n" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2244 -msgid "" -"You can't load SLA project if there is at least one multi-part object on the " -"bed" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:2245 src/slic3r/GUI/Tab.cpp:3146 -msgid "Please check your object list before preset changing." -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:2288 +#: src/slic3r/GUI/Plater.cpp:1699 msgid "" "This file contains several objects positioned at multiple heights. Instead " "of considering them as multiple objects, should I consider\n" "this file as a single object having multiple parts?\n" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2291 src/slic3r/GUI/Plater.cpp:2343 +#: src/slic3r/GUI/Plater.cpp:1702 src/slic3r/GUI/Plater.cpp:1810 msgid "Multi-part object detected" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2298 +#: src/slic3r/GUI/Plater.cpp:1753 msgid "" "This file cannot be loaded in a simple mode. Do you want to switch to an " "advanced mode?\n" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2299 +#: src/slic3r/GUI/Plater.cpp:1754 msgid "Detected advanced data" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2320 +#: src/slic3r/GUI/Plater.cpp:1787 #, possible-c-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:2340 +#: src/slic3r/GUI/Plater.cpp:1807 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?\n" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2356 +#: src/slic3r/GUI/Plater.cpp:1823 msgid "Loaded" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2458 +#: src/slic3r/GUI/Plater.cpp:1921 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:2459 +#: src/slic3r/GUI/Plater.cpp:1922 msgid "Object too large?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2517 +#: src/slic3r/GUI/Plater.cpp:1979 msgid "Export STL file:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2524 +#: src/slic3r/GUI/Plater.cpp:1986 msgid "Export AMF file:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2530 +#: src/slic3r/GUI/Plater.cpp:1992 msgid "Save file as:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2536 -msgid "Export OBJ file:" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:2638 -msgid "Delete Object" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:2649 -msgid "Reset Project" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:2688 -msgid "Optimize Rotation" +#: src/slic3r/GUI/Plater.cpp:2160 +msgid "Arranging canceled" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2734 +#: src/slic3r/GUI/Plater.cpp:2163 msgid "Arranging" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2757 +#: src/slic3r/GUI/Plater.cpp:2200 msgid "Could not arrange model objects! Some geometries may be invalid." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2763 -msgid "Arranging canceled." -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:2764 +#: src/slic3r/GUI/Plater.cpp:2207 msgid "Arranging done." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2780 -msgid "Searching for optimal orientation" +#: src/slic3r/GUI/Plater.cpp:2248 +msgid "Orientation search canceled" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2813 -msgid "Orientation search canceled." +#: src/slic3r/GUI/Plater.cpp:2253 +msgid "Searching for optimal orientation" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2814 +#: src/slic3r/GUI/Plater.cpp:2315 msgid "Orientation found." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2830 +#: src/slic3r/GUI/Plater.cpp:2335 msgid "" "The selected object can't be split because it contains more than one volume/" "material." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2841 -msgid "Split to Objects" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:2966 +#: src/slic3r/GUI/Plater.cpp:2461 msgid "Invalid data" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2975 +#: src/slic3r/GUI/Plater.cpp:2470 msgid "Ready to slice" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3013 src/slic3r/GUI/PrintHostDialogs.cpp:232 +#: src/slic3r/GUI/Plater.cpp:2508 src/slic3r/GUI/PrintHostDialogs.cpp:232 msgid "Cancelling" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3030 +#: src/slic3r/GUI/Plater.cpp:2525 msgid "Another export job is currently running." msgstr "" -#: src/slic3r/GUI/Plater.cpp:3084 src/slic3r/GUI/Plater.cpp:3549 -msgid "Reload from Disk" +#: src/slic3r/GUI/Plater.cpp:2786 +msgid "Export failed" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3120 -msgid "Fix Throught NetFabb" +#: src/slic3r/GUI/Plater.cpp:2791 src/slic3r/GUI/PrintHostDialogs.cpp:233 +msgid "Cancelled" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3307 -msgid "Export failed" +#: src/slic3r/GUI/Plater.cpp:2877 src/slic3r/GUI/Plater.cpp:2889 +#: src/slic3r/GUI/Plater.cpp:3000 +msgid "Increase copies" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3312 src/slic3r/GUI/PrintHostDialogs.cpp:233 -msgid "Cancelled" +#: src/slic3r/GUI/Plater.cpp:2994 src/slic3r/GUI/Plater.cpp:3013 +msgid "Remove the selected object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3520 src/slic3r/GUI/Plater.cpp:3539 -msgid "Remove the selected object" +#: src/slic3r/GUI/Plater.cpp:3000 +msgid "Place one more copy of the selected object" +msgstr "" + +#: src/slic3r/GUI/Plater.cpp:3002 +msgid "Decrease copies" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3526 -msgid "Add one more instance of the selected object" +#: src/slic3r/GUI/Plater.cpp:3002 +msgid "Remove one copy of the selected object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3528 -msgid "Remove one instance of the selected object" +#: src/slic3r/GUI/Plater.cpp:3004 +msgid "Set number of copies" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3530 -msgid "Set number of instances" +#: src/slic3r/GUI/Plater.cpp:3004 +msgid "Change the number of copies of the selected object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3530 -msgid "Change the number of instances of the selected object" +#: src/slic3r/GUI/Plater.cpp:3020 +msgid "Reload from Disk" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3549 +#: src/slic3r/GUI/Plater.cpp:3020 msgid "Reload the selected file from Disk" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3552 +#: src/slic3r/GUI/Plater.cpp:3023 msgid "Export the selected object as STL file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3577 +#: src/slic3r/GUI/Plater.cpp:3035 msgid "Along X axis" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3577 +#: src/slic3r/GUI/Plater.cpp:3035 msgid "Mirror the selected object along the X axis" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3579 +#: src/slic3r/GUI/Plater.cpp:3037 msgid "Along Y axis" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3579 +#: src/slic3r/GUI/Plater.cpp:3037 msgid "Mirror the selected object along the Y axis" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3581 +#: src/slic3r/GUI/Plater.cpp:3039 msgid "Along Z axis" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3581 +#: src/slic3r/GUI/Plater.cpp:3039 msgid "Mirror the selected object along the Z axis" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3584 +#: src/slic3r/GUI/Plater.cpp:3042 msgid "Mirror" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3584 +#: src/slic3r/GUI/Plater.cpp:3042 msgid "Mirror the selected object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3596 +#: src/slic3r/GUI/Plater.cpp:3054 msgid "To objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3596 src/slic3r/GUI/Plater.cpp:3616 +#: src/slic3r/GUI/Plater.cpp:3054 src/slic3r/GUI/Plater.cpp:3070 msgid "Split the selected object into individual objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3598 +#: src/slic3r/GUI/Plater.cpp:3056 msgid "To parts" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3598 src/slic3r/GUI/Plater.cpp:3630 +#: src/slic3r/GUI/Plater.cpp:3056 src/slic3r/GUI/Plater.cpp:3084 msgid "Split the selected object into individual sub-parts" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3601 src/slic3r/GUI/Plater.cpp:3616 -#: src/slic3r/GUI/Plater.cpp:3630 src/libslic3r/PrintConfig.cpp:3281 +#: src/slic3r/GUI/Plater.cpp:3059 src/slic3r/GUI/Plater.cpp:3070 +#: src/slic3r/GUI/Plater.cpp:3084 src/libslic3r/PrintConfig.cpp:3118 msgid "Split" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3601 +#: src/slic3r/GUI/Plater.cpp:3059 msgid "Split the selected object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3622 +#: src/slic3r/GUI/Plater.cpp:3076 msgid "Optimize orientation" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3622 +#: src/slic3r/GUI/Plater.cpp:3076 msgid "Optimize the rotation of the object for better print results." msgstr "" -#: src/slic3r/GUI/Plater.cpp:3662 +#: src/slic3r/GUI/Plater.cpp:3127 msgid "3D editor view" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3670 src/slic3r/GUI/Tab.cpp:2590 +#: src/slic3r/GUI/Plater.cpp:3138 src/slic3r/GUI/Tab.cpp:2325 msgid "Preview" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3907 -msgid "" -"%1% printer was active at the time the target Undo / Redo snapshot was " -"taken. Switching to %1% printer requires reloading of %1% presets." -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4081 -msgid "Load Project" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4109 -msgid "Import Object" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4113 -msgid "Import Objects" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4172 +#: src/slic3r/GUI/Plater.cpp:3375 msgid "All objects will be removed, continue ?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4180 -msgid "Delete Selected Objects" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4188 -msgid "Increase Instances" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4224 -msgid "Decrease Instances" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4260 -#, possible-c-format -msgid "Set numbers of copies to %d" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4290 -msgid "Cut by Plane" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4322 +#: src/slic3r/GUI/Plater.cpp:3511 msgid "Save G-code file as:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4322 +#: src/slic3r/GUI/Plater.cpp:3511 msgid "Save SL1 file as:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4434 +#: src/slic3r/GUI/Plater.cpp:3623 #, possible-c-format msgid "STL file exported to %s" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4450 +#: src/slic3r/GUI/Plater.cpp:3639 #, possible-c-format msgid "AMF file exported to %s" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4453 +#: src/slic3r/GUI/Plater.cpp:3642 #, possible-c-format msgid "Error exporting AMF file %s" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4479 +#: src/slic3r/GUI/Plater.cpp:3668 #, possible-c-format msgid "3MF file exported to %s" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4484 +#: src/slic3r/GUI/Plater.cpp:3673 #, possible-c-format msgid "Error exporting 3MF file %s" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4822 -msgid "Export" -msgstr "" - -#: src/slic3r/GUI/Plater.cpp:4823 +#: src/slic3r/GUI/Plater.cpp:3908 msgid "Send G-code" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4907 -msgid "Paste From Clipboard" -msgstr "" - -#: src/slic3r/GUI/Preferences.cpp:22 src/slic3r/GUI/Tab.cpp:2001 -#: src/slic3r/GUI/Tab.cpp:2242 +#: src/slic3r/GUI/Preferences.cpp:19 src/slic3r/GUI/Tab.cpp:1849 +#: src/slic3r/GUI/Tab.cpp:2050 msgid "General" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:44 +#: src/slic3r/GUI/Preferences.cpp:36 msgid "Remember output directory" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:46 +#: src/slic3r/GUI/Preferences.cpp:38 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:52 +#: src/slic3r/GUI/Preferences.cpp:44 msgid "Auto-center parts" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:54 +#: src/slic3r/GUI/Preferences.cpp:46 msgid "" "If this is enabled, Slic3r will auto-center objects around the print bed " "center." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:60 +#: src/slic3r/GUI/Preferences.cpp:52 msgid "Background processing" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:62 +#: src/slic3r/GUI/Preferences.cpp:54 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:71 +#: src/slic3r/GUI/Preferences.cpp:63 msgid "" "If enabled, PrusaSlicer will check for the new versions of itself online. " "When a new version becomes available a notification is displayed at the next " @@ -3625,7 +3021,7 @@ msgid "" "notification mechanisms, no automatic installation is done." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:79 +#: src/slic3r/GUI/Preferences.cpp:71 msgid "" "If enabled, Slic3r downloads updates of built-in system presets in the " "background. These updates are downloaded into a separate temporary location. " @@ -3633,90 +3029,76 @@ msgid "" "startup." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:84 +#: src/slic3r/GUI/Preferences.cpp:76 msgid "Suppress \" - default - \" presets" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:86 +#: src/slic3r/GUI/Preferences.cpp:78 msgid "" "Suppress \" - default - \" presets in the Print / Filament / Printer " "selections once there are any other valid presets available." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:92 +#: src/slic3r/GUI/Preferences.cpp:84 msgid "Show incompatible print and filament presets" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:94 +#: src/slic3r/GUI/Preferences.cpp:86 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:101 -msgid "Use Retina resolution for the 3D scene" +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "Use legacy OpenGL 1.1 rendering" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:103 +#: src/slic3r/GUI/Preferences.cpp:95 msgid "" -"If enabled, the 3D scene will be rendered in Retina resolution. If you are " -"experiencing 3D performance problems, disabling this option may help." +"If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may " +"try to check this checkbox. This will disable the layer height editing and " +"anti aliasing, so it is likely better to upgrade your graphics driver." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:110 -msgid "Use perspective camera" +#: src/slic3r/GUI/Preferences.cpp:103 +msgid "Use Retina resolution for the 3D scene" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:112 +#: src/slic3r/GUI/Preferences.cpp:105 msgid "" -"If enabled, use perspective camera. If not enabled, use orthographic camera." -msgstr "" - -#: src/slic3r/GUI/Preferences.cpp:117 -msgid "Use custom size for toolbar icons" -msgstr "" - -#: src/slic3r/GUI/Preferences.cpp:119 -msgid "If enabled, you can change size of toolbar icons manually." +"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:144 +#: src/slic3r/GUI/Preferences.cpp:130 #, possible-c-format msgid "You need to restart %s to make the changes effective." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:192 -msgid "Icon size in a respect to the default size" -msgstr "" - -#: src/slic3r/GUI/Preferences.cpp:207 -msgid "Select toolbar icon size in respect to the default one." -msgstr "" - #: src/slic3r/GUI/Preset.cpp:212 msgid "modified" msgstr "" -#: src/slic3r/GUI/Preset.cpp:967 src/slic3r/GUI/Preset.cpp:1007 -#: src/slic3r/GUI/Preset.cpp:1072 src/slic3r/GUI/Preset.cpp:1104 -#: src/slic3r/GUI/PresetBundle.cpp:1484 src/slic3r/GUI/PresetBundle.cpp:1559 +#: src/slic3r/GUI/Preset.cpp:938 src/slic3r/GUI/Preset.cpp:978 +#: src/slic3r/GUI/Preset.cpp:1043 src/slic3r/GUI/Preset.cpp:1075 +#: src/slic3r/GUI/PresetBundle.cpp:1478 src/slic3r/GUI/PresetBundle.cpp:1543 msgid "System presets" msgstr "" -#: src/slic3r/GUI/Preset.cpp:1011 src/slic3r/GUI/Preset.cpp:1108 -#: src/slic3r/GUI/PresetBundle.cpp:1564 +#: src/slic3r/GUI/Preset.cpp:982 src/slic3r/GUI/Preset.cpp:1079 +#: src/slic3r/GUI/PresetBundle.cpp:1548 msgid "User presets" msgstr "" -#: src/slic3r/GUI/Preset.cpp:1040 src/slic3r/GUI/Tab.cpp:243 +#: src/slic3r/GUI/Preset.cpp:1011 src/slic3r/GUI/Tab.cpp:241 msgid "Add a new printer" msgstr "" -#: src/slic3r/GUI/Preset.cpp:1312 +#: src/slic3r/GUI/Preset.cpp:1283 msgid "filament" msgstr "" -#: src/slic3r/GUI/Preset.cpp:1313 +#: src/slic3r/GUI/Preset.cpp:1284 msgid "SLA print" msgstr "" @@ -3911,12 +3293,10 @@ msgid "Time" msgstr "" #: src/slic3r/GUI/RammingChart.cpp:76 src/slic3r/GUI/WipeTowerDialog.cpp:82 -#: src/libslic3r/PrintConfig.cpp:627 src/libslic3r/PrintConfig.cpp:671 -#: src/libslic3r/PrintConfig.cpp:686 src/libslic3r/PrintConfig.cpp:2349 -#: src/libslic3r/PrintConfig.cpp:2358 src/libslic3r/PrintConfig.cpp:2418 -#: src/libslic3r/PrintConfig.cpp:2426 src/libslic3r/PrintConfig.cpp:2434 -#: src/libslic3r/PrintConfig.cpp:2441 src/libslic3r/PrintConfig.cpp:2449 -#: src/libslic3r/PrintConfig.cpp:2457 +#: src/libslic3r/PrintConfig.cpp:613 src/libslic3r/PrintConfig.cpp:657 +#: src/libslic3r/PrintConfig.cpp:672 src/libslic3r/PrintConfig.cpp:2278 +#: src/libslic3r/PrintConfig.cpp:2287 src/libslic3r/PrintConfig.cpp:2347 +#: src/libslic3r/PrintConfig.cpp:2354 msgid "s" msgstr "" @@ -3924,64 +3304,20 @@ msgstr "" msgid "Volumetric speed" msgstr "" -#: src/slic3r/GUI/RammingChart.cpp:81 src/libslic3r/PrintConfig.cpp:584 -#: src/libslic3r/PrintConfig.cpp:1234 +#: src/slic3r/GUI/RammingChart.cpp:81 src/libslic3r/PrintConfig.cpp:570 +#: src/libslic3r/PrintConfig.cpp:1220 msgid "mm³/s" msgstr "" -#: src/slic3r/GUI/Selection.cpp:146 -msgid "Selection-Add" -msgstr "" - -#: src/slic3r/GUI/Selection.cpp:187 -msgid "Selection-Remove" -msgstr "" - -#: src/slic3r/GUI/Selection.cpp:219 -msgid "Selection-Add Object" -msgstr "" - -#: src/slic3r/GUI/Selection.cpp:238 -msgid "Selection-Remove Object" -msgstr "" - -#: src/slic3r/GUI/Selection.cpp:256 -msgid "Selection-Add Instance" -msgstr "" - -#: src/slic3r/GUI/Selection.cpp:275 -msgid "Selection-Remove Instance" -msgstr "" - -#: src/slic3r/GUI/Selection.cpp:376 -msgid "Selection-Add All" -msgstr "" - -#: src/slic3r/GUI/Selection.cpp:402 -msgid "Selection-Remove All" -msgstr "" - -#: src/slic3r/GUI/Selection.cpp:939 -msgid "Scale To Fit" -msgstr "" - -#: src/slic3r/GUI/Selection.cpp:1474 -msgid "Set Printable Instance" -msgstr "" - -#: src/slic3r/GUI/Selection.cpp:1474 -msgid "Set Unprintable Instance" -msgstr "" - -#: src/slic3r/GUI/SysInfoDialog.cpp:78 +#: src/slic3r/GUI/SysInfoDialog.cpp:44 msgid "System Information" msgstr "" -#: src/slic3r/GUI/SysInfoDialog.cpp:154 +#: src/slic3r/GUI/SysInfoDialog.cpp:120 msgid "Copy to Clipboard" msgstr "" -#: src/slic3r/GUI/Tab.cpp:52 src/libslic3r/PrintConfig.cpp:239 +#: src/slic3r/GUI/Tab.cpp:52 src/libslic3r/PrintConfig.cpp:230 msgid "Compatible printers" msgstr "" @@ -3989,7 +3325,7 @@ msgstr "" msgid "Select the printers this profile is compatible with." msgstr "" -#: src/slic3r/GUI/Tab.cpp:58 src/libslic3r/PrintConfig.cpp:254 +#: src/slic3r/GUI/Tab.cpp:58 src/libslic3r/PrintConfig.cpp:245 msgid "Compatible print profiles" msgstr "" @@ -3998,300 +3334,363 @@ msgid "Select the print profiles this profile is compatible with." msgstr "" #. TRN "Save current Settings" -#: src/slic3r/GUI/Tab.cpp:135 +#: src/slic3r/GUI/Tab.cpp:133 #, possible-c-format msgid "Save current %s" msgstr "" -#: src/slic3r/GUI/Tab.cpp:136 +#: src/slic3r/GUI/Tab.cpp:134 msgid "Delete this preset" msgstr "" -#: src/slic3r/GUI/Tab.cpp:141 +#: src/slic3r/GUI/Tab.cpp:139 msgid "" "Hover the cursor over buttons to find more information \n" "or click this button." msgstr "" -#: src/slic3r/GUI/Tab.cpp:943 -msgid "This is a default preset." +#: src/slic3r/GUI/Tab.cpp:920 +msgid "It's a default preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:945 -msgid "This is a system preset." +#: src/slic3r/GUI/Tab.cpp:921 +msgid "It's a system preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:947 -msgid "Current preset is inherited from the default preset." +#: src/slic3r/GUI/Tab.cpp:922 +#, possible-c-format +msgid "Current preset is inherited from %s" msgstr "" -#: src/slic3r/GUI/Tab.cpp:950 -#, possible-c-format -msgid "" -"Current preset is inherited from:\n" -"\t%s" +#: src/slic3r/GUI/Tab.cpp:923 +msgid "default preset" msgstr "" -#: src/slic3r/GUI/Tab.cpp:954 +#: src/slic3r/GUI/Tab.cpp:927 msgid "It can't be deleted or modified." msgstr "" -#: src/slic3r/GUI/Tab.cpp:955 +#: src/slic3r/GUI/Tab.cpp:928 msgid "" "Any modifications should be saved as a new preset inherited from this one." msgstr "" -#: src/slic3r/GUI/Tab.cpp:956 +#: src/slic3r/GUI/Tab.cpp:929 msgid "To do that please specify a new name for the preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:960 +#: src/slic3r/GUI/Tab.cpp:933 msgid "Additional information:" msgstr "" -#: src/slic3r/GUI/Tab.cpp:966 +#: src/slic3r/GUI/Tab.cpp:939 msgid "printer model" msgstr "" -#: src/slic3r/GUI/Tab.cpp:974 +#: src/slic3r/GUI/Tab.cpp:947 msgid "default print profile" msgstr "" -#: src/slic3r/GUI/Tab.cpp:977 +#: src/slic3r/GUI/Tab.cpp:950 msgid "default filament profile" msgstr "" -#: src/slic3r/GUI/Tab.cpp:991 +#: src/slic3r/GUI/Tab.cpp:964 msgid "default SLA material profile" msgstr "" -#: src/slic3r/GUI/Tab.cpp:995 +#: src/slic3r/GUI/Tab.cpp:968 msgid "default SLA print profile" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1032 src/slic3r/GUI/Tab.cpp:3731 +#: src/slic3r/GUI/Tab.cpp:1003 src/slic3r/GUI/Tab.cpp:3419 msgid "Layers and perimeters" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1037 +#: src/slic3r/GUI/Tab.cpp:1004 src/slic3r/GUI/Tab.cpp:1253 +#: src/libslic3r/PrintConfig.cpp:56 +msgid "Layer height" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1008 msgid "Vertical shells" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1048 +#: src/slic3r/GUI/Tab.cpp:1019 msgid "Horizontal shells" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1049 src/libslic3r/PrintConfig.cpp:1759 +#: src/slic3r/GUI/Tab.cpp:1020 src/libslic3r/PrintConfig.cpp:1745 msgid "Solid layers" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1054 +#: src/slic3r/GUI/Tab.cpp:1025 msgid "Quality (slower slicing)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1072 +#: src/slic3r/GUI/Tab.cpp:1043 msgid "Reducing printing time" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1084 +#: src/slic3r/GUI/Tab.cpp:1055 msgid "Skirt and brim" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1101 +#: src/slic3r/GUI/Tab.cpp:1072 msgid "Raft" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1105 +#: src/slic3r/GUI/Tab.cpp:1076 msgid "Options for support material and raft" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1120 +#: src/slic3r/GUI/Tab.cpp:1091 msgid "Speed for print moves" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1132 +#: src/slic3r/GUI/Tab.cpp:1103 msgid "Speed for non-print moves" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1135 +#: src/slic3r/GUI/Tab.cpp:1106 msgid "Modifiers" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1138 +#: src/slic3r/GUI/Tab.cpp:1109 msgid "Acceleration control (advanced)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1145 +#: src/slic3r/GUI/Tab.cpp:1116 msgid "Autospeed (advanced)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1153 +#: src/slic3r/GUI/Tab.cpp:1124 msgid "Multiple Extruders" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1161 +#: src/slic3r/GUI/Tab.cpp:1132 msgid "Ooze prevention" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1178 +#: src/slic3r/GUI/Tab.cpp:1149 msgid "Extrusion width" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1188 +#: src/slic3r/GUI/Tab.cpp:1159 msgid "Overlap" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1191 +#: src/slic3r/GUI/Tab.cpp:1162 msgid "Flow" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1200 +#: src/slic3r/GUI/Tab.cpp:1171 msgid "Other" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1203 src/slic3r/GUI/Tab.cpp:3789 +#: src/slic3r/GUI/Tab.cpp:1174 src/slic3r/GUI/Tab.cpp:3496 msgid "Output options" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1204 +#: src/slic3r/GUI/Tab.cpp:1175 msgid "Sequential printing" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1206 +#: src/slic3r/GUI/Tab.cpp:1177 msgid "Extruder clearance (mm)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1215 src/slic3r/GUI/Tab.cpp:3790 +#: src/slic3r/GUI/Tab.cpp:1186 src/slic3r/GUI/Tab.cpp:3497 msgid "Output file" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1222 src/libslic3r/PrintConfig.cpp:1432 +#: src/slic3r/GUI/Tab.cpp:1193 src/libslic3r/PrintConfig.cpp:1418 msgid "Post-processing scripts" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1228 src/slic3r/GUI/Tab.cpp:1229 -#: src/slic3r/GUI/Tab.cpp:1752 src/slic3r/GUI/Tab.cpp:1753 -#: src/slic3r/GUI/Tab.cpp:2214 src/slic3r/GUI/Tab.cpp:2215 -#: src/slic3r/GUI/Tab.cpp:2328 src/slic3r/GUI/Tab.cpp:2329 -#: src/slic3r/GUI/Tab.cpp:3668 src/slic3r/GUI/Tab.cpp:3669 +#: src/slic3r/GUI/Tab.cpp:1199 src/slic3r/GUI/Tab.cpp:1200 +#: src/slic3r/GUI/Tab.cpp:1612 src/slic3r/GUI/Tab.cpp:1613 +#: src/slic3r/GUI/Tab.cpp:2022 src/slic3r/GUI/Tab.cpp:2023 +#: src/slic3r/GUI/Tab.cpp:2116 src/slic3r/GUI/Tab.cpp:2117 +#: src/slic3r/GUI/Tab.cpp:3385 src/slic3r/GUI/Tab.cpp:3386 msgid "Notes" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1235 src/slic3r/GUI/Tab.cpp:1760 -#: src/slic3r/GUI/Tab.cpp:2221 src/slic3r/GUI/Tab.cpp:2335 -#: src/slic3r/GUI/Tab.cpp:3676 src/slic3r/GUI/Tab.cpp:3795 +#: src/slic3r/GUI/Tab.cpp:1206 src/slic3r/GUI/Tab.cpp:1620 +#: src/slic3r/GUI/Tab.cpp:2029 src/slic3r/GUI/Tab.cpp:2123 +#: src/slic3r/GUI/Tab.cpp:3393 src/slic3r/GUI/Tab.cpp:3502 msgid "Dependencies" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1236 src/slic3r/GUI/Tab.cpp:1761 -#: src/slic3r/GUI/Tab.cpp:2222 src/slic3r/GUI/Tab.cpp:2336 -#: src/slic3r/GUI/Tab.cpp:3677 src/slic3r/GUI/Tab.cpp:3796 +#: src/slic3r/GUI/Tab.cpp:1207 src/slic3r/GUI/Tab.cpp:1621 +#: src/slic3r/GUI/Tab.cpp:2030 src/slic3r/GUI/Tab.cpp:2124 +#: src/slic3r/GUI/Tab.cpp:3394 src/slic3r/GUI/Tab.cpp:3503 msgid "Profile dependencies" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1538 src/slic3r/GUI/Tab.cpp:1593 -msgid "Filament Overrides" +#: src/slic3r/GUI/Tab.cpp:1253 +msgid "" +"Layer height can't be equal to zero.\n" +"\n" +"Shall I set its value to minimum (0.01)?" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1539 src/slic3r/GUI/Tab.cpp:1598 -#: src/slic3r/GUI/Tab.cpp:2570 -msgid "Retraction" +#: src/slic3r/GUI/Tab.cpp:1266 +msgid "" +"First layer height can't be equal to zero.\n" +"\n" +"Shall I set its value to minimum (0.01)?" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1268 src/libslic3r/PrintConfig.cpp:852 +msgid "First layer height" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1284 +#, possible-c-format +msgid "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1291 +msgid "Spiral Vase" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1312 +msgid "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool " +"change.\n" +"(both support_material_extruder and support_material_interface_extruder need " +"to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1316 src/slic3r/GUI/Tab.cpp:1333 +msgid "Wipe Tower" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1330 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1348 +msgid "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1351 +msgid "Support Generator" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1393 +msgid "" +"The %1% infill pattern is not supposed to work at 100%% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1648 src/libslic3r/PrintConfig.cpp:2030 +#: src/slic3r/GUI/Tab.cpp:1514 src/libslic3r/PrintConfig.cpp:2015 msgid "Temperature" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1654 +#: src/slic3r/GUI/Tab.cpp:1520 msgid "Bed" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1659 +#: src/slic3r/GUI/Tab.cpp:1525 msgid "Cooling" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1660 src/libslic3r/PrintConfig.cpp:1335 -#: src/libslic3r/PrintConfig.cpp:2150 +#: src/slic3r/GUI/Tab.cpp:1526 src/libslic3r/PrintConfig.cpp:1321 +#: src/libslic3r/PrintConfig.cpp:2134 msgid "Enable" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1671 +#: src/slic3r/GUI/Tab.cpp:1537 msgid "Fan settings" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1672 +#: src/slic3r/GUI/Tab.cpp:1538 msgid "Fan speed" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1680 +#: src/slic3r/GUI/Tab.cpp:1546 msgid "Cooling thresholds" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1686 +#: src/slic3r/GUI/Tab.cpp:1552 msgid "Filament properties" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1690 +#: src/slic3r/GUI/Tab.cpp:1556 msgid "Print speed override" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1700 -msgid "Wipe tower parameters" -msgstr "" - -#: src/slic3r/GUI/Tab.cpp:1703 +#: src/slic3r/GUI/Tab.cpp:1566 msgid "Toolchange parameters with single extruder MM printers" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1717 +#: src/slic3r/GUI/Tab.cpp:1581 msgid "Ramming settings" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1739 src/slic3r/GUI/Tab.cpp:2177 +#: src/slic3r/GUI/Tab.cpp:1599 src/slic3r/GUI/Tab.cpp:1985 msgid "Custom G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1740 src/slic3r/GUI/Tab.cpp:2178 -#: src/libslic3r/PrintConfig.cpp:1785 src/libslic3r/PrintConfig.cpp:1800 +#: src/slic3r/GUI/Tab.cpp:1600 src/slic3r/GUI/Tab.cpp:1986 +#: src/libslic3r/PrintConfig.cpp:1771 src/libslic3r/PrintConfig.cpp:1786 msgid "Start G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1746 src/slic3r/GUI/Tab.cpp:2184 -#: src/libslic3r/PrintConfig.cpp:369 src/libslic3r/PrintConfig.cpp:379 +#: src/slic3r/GUI/Tab.cpp:1606 src/slic3r/GUI/Tab.cpp:1992 +#: src/libslic3r/PrintConfig.cpp:360 src/libslic3r/PrintConfig.cpp:370 msgid "End G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1803 -msgid "Volumetric flow hints not available" -msgstr "" - -#: src/slic3r/GUI/Tab.cpp:1889 src/slic3r/GUI/Tab.cpp:2117 +#: src/slic3r/GUI/Tab.cpp:1737 src/slic3r/GUI/Tab.cpp:1925 msgid "Test" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1899 +#: src/slic3r/GUI/Tab.cpp:1747 msgid "Could not get a valid Printer Host reference" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1905 src/slic3r/GUI/Tab.cpp:2130 +#: src/slic3r/GUI/Tab.cpp:1753 src/slic3r/GUI/Tab.cpp:1938 msgid "Success!" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1920 +#: src/slic3r/GUI/Tab.cpp:1768 msgid "" "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-" "signed certificate." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1933 +#: src/slic3r/GUI/Tab.cpp:1781 msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1934 +#: src/slic3r/GUI/Tab.cpp:1782 msgid "Open CA certificate file" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1962 +#: src/slic3r/GUI/Tab.cpp:1810 #, possible-c-format msgid "" "HTTPS CA File:\n" @@ -4301,293 +3700,278 @@ msgid "" "Store / Keychain." msgstr "" -#: src/slic3r/GUI/Tab.cpp:2002 src/slic3r/GUI/Tab.cpp:2243 +#: src/slic3r/GUI/Tab.cpp:1850 src/slic3r/GUI/Tab.cpp:2051 msgid "Size and coordinates" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2007 src/slic3r/GUI/Tab.cpp:2248 -#: src/slic3r/GUI/Tab.cpp:3338 +#: src/slic3r/GUI/Tab.cpp:1855 src/slic3r/GUI/Tab.cpp:2056 +#: src/slic3r/GUI/Tab.cpp:3040 msgid "Set" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2039 +#: src/slic3r/GUI/Tab.cpp:1877 msgid "Capabilities" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2044 +#: src/slic3r/GUI/Tab.cpp:1882 msgid "Number of extruders of the printer." msgstr "" -#: src/slic3r/GUI/Tab.cpp:2069 -msgid "" -"Single Extruder Multi Material is selected, \n" -"and all extruders must have the same diameter.\n" -"Do you want to change the diameter for all extruders to first extruder " -"nozzle diameter value?" -msgstr "" - -#: src/slic3r/GUI/Tab.cpp:2072 src/slic3r/GUI/Tab.cpp:2540 -#: src/libslic3r/PrintConfig.cpp:1310 -msgid "Nozzle diameter" -msgstr "" - -#: src/slic3r/GUI/Tab.cpp:2102 +#: src/slic3r/GUI/Tab.cpp:1910 msgid "USB/Serial connection" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2103 src/libslic3r/PrintConfig.cpp:1640 +#: src/slic3r/GUI/Tab.cpp:1911 src/libslic3r/PrintConfig.cpp:1626 msgid "Serial port" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2108 +#: src/slic3r/GUI/Tab.cpp:1916 msgid "Rescan serial ports" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2130 +#: src/slic3r/GUI/Tab.cpp:1938 msgid "Connection to printer works correctly." msgstr "" -#: src/slic3r/GUI/Tab.cpp:2133 +#: src/slic3r/GUI/Tab.cpp:1941 msgid "Connection failed." msgstr "" -#: src/slic3r/GUI/Tab.cpp:2146 src/slic3r/GUI/Tab.cpp:2323 +#: src/slic3r/GUI/Tab.cpp:1954 src/slic3r/GUI/Tab.cpp:2111 msgid "Print Host upload" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2190 src/libslic3r/PrintConfig.cpp:138 +#: src/slic3r/GUI/Tab.cpp:1998 src/libslic3r/PrintConfig.cpp:129 msgid "Before layer change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2196 src/libslic3r/PrintConfig.cpp:1056 +#: src/slic3r/GUI/Tab.cpp:2004 src/libslic3r/PrintConfig.cpp:1042 msgid "After layer change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2202 src/libslic3r/PrintConfig.cpp:2056 +#: src/slic3r/GUI/Tab.cpp:2010 src/libslic3r/PrintConfig.cpp:2041 msgid "Tool change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2208 +#: src/slic3r/GUI/Tab.cpp:2016 msgid "Between objects G-code (for sequential printing)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2280 +#: src/slic3r/GUI/Tab.cpp:2078 msgid "Display" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2295 +#: src/slic3r/GUI/Tab.cpp:2089 msgid "Tilt" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2296 +#: src/slic3r/GUI/Tab.cpp:2090 msgid "Tilt time" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2302 src/slic3r/GUI/Tab.cpp:3650 +#: src/slic3r/GUI/Tab.cpp:2096 src/slic3r/GUI/Tab.cpp:3367 msgid "Corrections" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2317 src/slic3r/GUI/Tab.cpp:3646 -msgid "Exposure" -msgstr "" - -#: src/slic3r/GUI/Tab.cpp:2388 src/slic3r/GUI/Tab.cpp:2473 -#: src/libslic3r/PrintConfig.cpp:1106 src/libslic3r/PrintConfig.cpp:1124 -#: src/libslic3r/PrintConfig.cpp:1142 src/libslic3r/PrintConfig.cpp:1159 -#: src/libslic3r/PrintConfig.cpp:1170 src/libslic3r/PrintConfig.cpp:1181 -#: src/libslic3r/PrintConfig.cpp:1192 +#: src/slic3r/GUI/Tab.cpp:2173 src/slic3r/GUI/Tab.cpp:2246 +#: src/libslic3r/PrintConfig.cpp:1092 src/libslic3r/PrintConfig.cpp:1110 +#: src/libslic3r/PrintConfig.cpp:1128 src/libslic3r/PrintConfig.cpp:1145 +#: src/libslic3r/PrintConfig.cpp:1156 src/libslic3r/PrintConfig.cpp:1167 +#: src/libslic3r/PrintConfig.cpp:1178 msgid "Machine limits" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2402 +#: src/slic3r/GUI/Tab.cpp:2187 msgid "Values in this column are for Normal mode" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2403 +#: src/slic3r/GUI/Tab.cpp:2188 msgid "Normal" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2408 +#: src/slic3r/GUI/Tab.cpp:2193 msgid "Values in this column are for Stealth mode" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2409 +#: src/slic3r/GUI/Tab.cpp:2194 msgid "Stealth" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2417 +#: src/slic3r/GUI/Tab.cpp:2202 msgid "Maximum feedrates" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2422 +#: src/slic3r/GUI/Tab.cpp:2207 msgid "Maximum accelerations" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2429 +#: src/slic3r/GUI/Tab.cpp:2214 msgid "Jerk limits" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2434 +#: src/slic3r/GUI/Tab.cpp:2219 msgid "Minimum feedrates" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2498 src/slic3r/GUI/Tab.cpp:2506 +#: src/slic3r/GUI/Tab.cpp:2268 src/slic3r/GUI/Tab.cpp:2276 msgid "Single extruder MM setup" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2507 +#: src/slic3r/GUI/Tab.cpp:2277 msgid "Single extruder multimaterial parameters" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2520 src/libslic3r/GCode/PreviewData.cpp:461 +#: src/slic3r/GUI/Tab.cpp:2290 src/libslic3r/GCode/PreviewData.cpp:475 #, possible-c-format msgid "Extruder %d" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2538 -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:2562 +#: src/slic3r/GUI/Tab.cpp:2297 msgid "Layer height limits" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2567 +#: src/slic3r/GUI/Tab.cpp:2302 msgid "Position (for multi-extruder printers)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2573 +#: src/slic3r/GUI/Tab.cpp:2305 +msgid "Retraction" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:2308 msgid "Only lift Z" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2586 +#: src/slic3r/GUI/Tab.cpp:2321 msgid "" "Retraction when tool is disabled (advanced settings for multi-extruder " "setups)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2594 -msgid "Reset to Filament Color" -msgstr "" - -#: src/slic3r/GUI/Tab.cpp:2775 +#: src/slic3r/GUI/Tab.cpp:2480 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:2777 +#: src/slic3r/GUI/Tab.cpp:2482 msgid "Firmware Retraction" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3106 +#: src/slic3r/GUI/Tab.cpp:2808 #, possible-c-format msgid "Default preset (%s)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3107 +#: src/slic3r/GUI/Tab.cpp:2809 #, possible-c-format msgid "Preset (%s)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3124 +#: src/slic3r/GUI/Tab.cpp:2826 msgid "has the following unsaved changes:" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3127 +#: src/slic3r/GUI/Tab.cpp:2829 msgid "is not compatible with printer" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3128 +#: src/slic3r/GUI/Tab.cpp:2830 msgid "is not compatible with print profile" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3130 +#: src/slic3r/GUI/Tab.cpp:2832 msgid "and it has the following unsaved changes:" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3134 +#: src/slic3r/GUI/Tab.cpp:2836 msgid "Unsaved Changes" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3225 +#: src/slic3r/GUI/Tab.cpp:2848 +msgid "Please check your object list before preset changing." +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:2927 msgid "%1% - Copy" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3248 +#: src/slic3r/GUI/Tab.cpp:2950 msgid "The supplied name is empty. It can't be saved." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3253 +#: src/slic3r/GUI/Tab.cpp:2955 msgid "Cannot overwrite a system profile." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3257 +#: src/slic3r/GUI/Tab.cpp:2959 msgid "Cannot overwrite an external profile." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3283 +#: src/slic3r/GUI/Tab.cpp:2985 msgid "remove" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3283 +#: src/slic3r/GUI/Tab.cpp:2985 msgid "delete" msgstr "" #. TRN remove/delete -#: src/slic3r/GUI/Tab.cpp:3285 +#: src/slic3r/GUI/Tab.cpp:2987 msgid "Are you sure you want to %1% the selected preset?" msgstr "" +#: src/slic3r/GUI/Tab.cpp:2988 +msgid "Remove" +msgstr "" + #. TRN Remove/Delete -#: src/slic3r/GUI/Tab.cpp:3288 +#: src/slic3r/GUI/Tab.cpp:2990 msgid "%1% Preset" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3414 +#: src/slic3r/GUI/Tab.cpp:3116 msgid "LOCKED LOCK" msgstr "" #. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3416 +#: src/slic3r/GUI/Tab.cpp:3118 msgid "" -"indicates that the settings are the same as the system (or default) values " -"for the current option group" +"indicates that the settings are the same as the system values for the " +"current option group" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3418 +#: src/slic3r/GUI/Tab.cpp:3120 msgid "UNLOCKED LOCK" msgstr "" #. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3420 +#: src/slic3r/GUI/Tab.cpp:3122 msgid "" "indicates that some settings were changed and are not equal to the system " -"(or default) values for the current option group.\n" +"values for the current option group.\n" "Click the UNLOCKED LOCK icon to reset all settings for current option group " -"to the system (or default) values." +"to the system values." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3425 +#: src/slic3r/GUI/Tab.cpp:3127 msgid "WHITE BULLET" msgstr "" #. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3427 +#: src/slic3r/GUI/Tab.cpp:3129 msgid "" -"for the left button: \tindicates a non-system (or non-default) preset,\n" +"for the left button: \tindicates a non-system preset,\n" "for the right button: \tindicates that the settings hasn't been modified." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3430 +#: src/slic3r/GUI/Tab.cpp:3103 msgid "BACK ARROW" msgstr "" #. TRN Description for "BACK ARROW" -#: src/slic3r/GUI/Tab.cpp:3432 +#: src/slic3r/GUI/Tab.cpp:3134 msgid "" "indicates that the settings were changed and are not equal to the last saved " "preset for the current option group.\n" @@ -4595,31 +3979,30 @@ msgid "" "to the last saved preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3442 +#: src/slic3r/GUI/Tab.cpp:3159 msgid "" -"LOCKED LOCK icon indicates that the settings are the same as the system (or " -"default) values for the current option group" +"LOCKED LOCK icon indicates that the settings are the same as the system " +"values for the current option group" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3444 +#: src/slic3r/GUI/Tab.cpp:3161 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" -"Click to reset all settings for current option group to the system (or " -"default) values." +"equal to the system values for the current option group.\n" +"Click to reset all settings for current option group to the system values." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3447 -msgid "WHITE BULLET icon indicates a non system (or non default) preset." +#: src/slic3r/GUI/Tab.cpp:3164 +msgid "WHITE BULLET icon indicates a non system preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3450 +#: src/slic3r/GUI/Tab.cpp:3167 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:3452 +#: src/slic3r/GUI/Tab.cpp:3169 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" @@ -4627,26 +4010,25 @@ msgid "" "preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3458 +#: src/slic3r/GUI/Tab.cpp:3175 msgid "" -"LOCKED LOCK icon indicates that the value is the same as the system (or " -"default) value." +"LOCKED LOCK icon indicates that the value is the same as the system value." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3459 +#: src/slic3r/GUI/Tab.cpp:3176 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." +"the system value.\n" +"Click to reset current value to the system value." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3465 +#: src/slic3r/GUI/Tab.cpp:3182 msgid "" "WHITE BULLET icon indicates that the value is the same as in the last saved " "preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3466 +#: src/slic3r/GUI/Tab.cpp:3183 msgid "" "BACK ARROW icon indicates that the value was changed and is not equal to the " "last saved preset.\n" @@ -4654,61 +4036,80 @@ msgid "" msgstr "" #. TRN Preset -#: src/slic3r/GUI/Tab.cpp:3579 +#: src/slic3r/GUI/Tab.cpp:3296 #, possible-c-format msgid "Save %s as:" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3623 +#: src/slic3r/GUI/Tab.cpp:3340 msgid "the following suffix is not allowed:" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3627 +#: src/slic3r/GUI/Tab.cpp:3344 msgid "The supplied name is not available." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3640 +#: src/slic3r/GUI/Tab.cpp:3357 msgid "Material" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3642 src/slic3r/GUI/Tab.cpp:3733 -#: src/slic3r/GUI/wxExtensions.cpp:482 +#: src/slic3r/GUI/Tab.cpp:3359 src/slic3r/GUI/Tab.cpp:3450 msgid "Layers" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3741 +#: src/slic3r/GUI/Tab.cpp:3363 +msgid "Exposure" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:3458 msgid "Support head" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3746 +#: src/slic3r/GUI/Tab.cpp:3463 msgid "Support pillar" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3760 +#: src/slic3r/GUI/Tab.cpp:3473 msgid "Connection of the support sticks and junctions" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3765 +#: src/slic3r/GUI/Tab.cpp:3478 msgid "Automatic generation" msgstr "" -#: src/slic3r/GUI/Tab.hpp:328 src/slic3r/GUI/Tab.hpp:428 +#: src/slic3r/GUI/Tab.cpp:3540 +msgid "Head penetration should not be greater than the head width." +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:3541 +msgid "Invalid Head penetration" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:3553 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:3554 +msgid "Invalid pinhead diameter" +msgstr "" + +#: src/slic3r/GUI/Tab.hpp:318 src/slic3r/GUI/Tab.hpp:411 msgid "Print Settings" msgstr "" -#: src/slic3r/GUI/Tab.hpp:353 +#: src/slic3r/GUI/Tab.hpp:337 msgid "Filament Settings" msgstr "" -#: src/slic3r/GUI/Tab.hpp:389 +#: src/slic3r/GUI/Tab.hpp:372 msgid "Printer Settings" msgstr "" -#: src/slic3r/GUI/Tab.hpp:413 +#: src/slic3r/GUI/Tab.hpp:396 msgid "Material Settings" msgstr "" -#: src/slic3r/GUI/Tab.hpp:440 +#: src/slic3r/GUI/Tab.hpp:423 msgid "Save preset" msgstr "" @@ -4721,39 +4122,39 @@ msgstr "" msgid "New version of %s is available" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:45 +#: src/slic3r/GUI/UpdateDialogs.cpp:46 msgid "Current version:" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:47 +#: src/slic3r/GUI/UpdateDialogs.cpp:48 msgid "New version:" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:55 +#: src/slic3r/GUI/UpdateDialogs.cpp:56 msgid "Changelog && Download" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:62 src/slic3r/GUI/UpdateDialogs.cpp:127 +#: src/slic3r/GUI/UpdateDialogs.cpp:63 src/slic3r/GUI/UpdateDialogs.cpp:126 msgid "Open changelog page" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:67 +#: src/slic3r/GUI/UpdateDialogs.cpp:68 msgid "Open download page" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:73 +#: src/slic3r/GUI/UpdateDialogs.cpp:74 msgid "Don't notify about new releases any more" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:91 src/slic3r/GUI/UpdateDialogs.cpp:207 +#: src/slic3r/GUI/UpdateDialogs.cpp:92 src/slic3r/GUI/UpdateDialogs.cpp:206 msgid "Configuration update" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:91 +#: src/slic3r/GUI/UpdateDialogs.cpp:92 msgid "Configuration update is available" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:94 +#: src/slic3r/GUI/UpdateDialogs.cpp:95 msgid "" "Would you like to install it?\n" "\n" @@ -4763,21 +4164,21 @@ msgid "" "Updated configuration bundles:" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:115 +#: src/slic3r/GUI/UpdateDialogs.cpp:116 msgid "Comment:" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:151 +#: src/slic3r/GUI/UpdateDialogs.cpp:150 #, possible-c-format msgid "%s incompatibility" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:152 +#: src/slic3r/GUI/UpdateDialogs.cpp:151 #, possible-c-format msgid "%s configuration is incompatible" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:157 +#: src/slic3r/GUI/UpdateDialogs.cpp:156 #, possible-c-format msgid "" "This version of %s is not compatible with currently installed configuration " @@ -4790,25 +4191,25 @@ msgid "" "existing configuration before installing files compatible with this %s.\n" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:166 +#: src/slic3r/GUI/UpdateDialogs.cpp:165 #, possible-c-format msgid "This %s version: %s" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:171 +#: src/slic3r/GUI/UpdateDialogs.cpp:170 msgid "Incompatible bundles:" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:187 +#: src/slic3r/GUI/UpdateDialogs.cpp:186 #, possible-c-format msgid "Exit %s" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:190 +#: src/slic3r/GUI/UpdateDialogs.cpp:189 msgid "Re-configure" msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:211 +#: src/slic3r/GUI/UpdateDialogs.cpp:210 #, possible-c-format msgid "" "%s now uses an updated configuration structure.\n" @@ -4824,7 +4225,7 @@ msgid "" "choose whether to enable automatic preset updates." msgstr "" -#: src/slic3r/GUI/UpdateDialogs.cpp:227 +#: src/slic3r/GUI/UpdateDialogs.cpp:226 msgid "For more information please visit our wiki page:" msgstr "" @@ -4917,37 +4318,21 @@ msgstr "" msgid "Show advanced settings" msgstr "" -#: src/slic3r/GUI/wxExtensions.cpp:471 +#: src/slic3r/GUI/wxExtensions.cpp:444 msgid "Instances" msgstr "" -#: src/slic3r/GUI/wxExtensions.cpp:475 src/slic3r/GUI/wxExtensions.cpp:619 +#: src/slic3r/GUI/wxExtensions.cpp:451 src/slic3r/GUI/wxExtensions.cpp:518 #, possible-c-format msgid "Instance %d" msgstr "" -#: src/slic3r/GUI/wxExtensions.cpp:509 -msgid "Range" -msgstr "" - -#: src/slic3r/GUI/wxExtensions.cpp:2731 -msgid "One layer mode" -msgstr "" - -#: src/slic3r/GUI/wxExtensions.cpp:2732 -msgid "Add/Del color change" -msgstr "" - -#: src/slic3r/GUI/wxExtensions.cpp:2733 -msgid "Discard all color changes" -msgstr "" - -#: src/slic3r/GUI/wxExtensions.cpp:2993 +#: src/slic3r/GUI/wxExtensions.cpp:2508 #, possible-c-format msgid "Switch to the %s mode" msgstr "" -#: src/slic3r/GUI/wxExtensions.cpp:2994 +#: src/slic3r/GUI/wxExtensions.cpp:2509 #, possible-c-format msgid "Current mode is %s" msgstr "" @@ -4972,42 +4357,42 @@ msgstr "" msgid "Could not get resources to create a new connection" msgstr "" -#: src/slic3r/Utils/OctoPrint.cpp:70 +#: src/slic3r/Utils/OctoPrint.cpp:69 #, possible-c-format msgid "Mismatched type of print host: %s" msgstr "" -#: src/slic3r/Utils/OctoPrint.cpp:85 +#: src/slic3r/Utils/OctoPrint.cpp:84 msgid "Connection to OctoPrint works correctly." msgstr "" -#: src/slic3r/Utils/OctoPrint.cpp:91 +#: src/slic3r/Utils/OctoPrint.cpp:90 msgid "Could not connect to OctoPrint" msgstr "" -#: src/slic3r/Utils/OctoPrint.cpp:91 +#: src/slic3r/Utils/OctoPrint.cpp:90 msgid "Note: OctoPrint version at least 1.1.0 is required." msgstr "" -#: src/slic3r/Utils/OctoPrint.cpp:196 +#: src/slic3r/Utils/OctoPrint.cpp:195 msgid "Connection to Prusa SL1 works correctly." msgstr "" -#: src/slic3r/Utils/OctoPrint.cpp:201 +#: src/slic3r/Utils/OctoPrint.cpp:200 msgid "Could not connect to Prusa SLA" msgstr "" -#: src/slic3r/Utils/PresetUpdater.cpp:614 +#: src/slic3r/Utils/PresetUpdater.cpp:584 #, possible-c-format msgid "requires min. %s and max. %s" msgstr "" -#: src/slic3r/Utils/PresetUpdater.cpp:619 +#: src/slic3r/Utils/PresetUpdater.cpp:589 #, possible-c-format msgid "requires min. %s" msgstr "" -#: src/slic3r/Utils/PresetUpdater.cpp:621 +#: src/slic3r/Utils/PresetUpdater.cpp:591 #, possible-c-format msgid "requires max. %s" msgstr "" @@ -5093,227 +4478,215 @@ msgstr "" msgid "Model repair failed: \n" msgstr "" -#: src/libslic3r/Zipper.cpp:32 +#: src/libslic3r/Zipper.cpp:35 msgid "undefined error" msgstr "" -#: src/libslic3r/Zipper.cpp:34 +#: src/libslic3r/Zipper.cpp:37 msgid "too many files" msgstr "" -#: src/libslic3r/Zipper.cpp:36 +#: src/libslic3r/Zipper.cpp:39 msgid "file too large" msgstr "" -#: src/libslic3r/Zipper.cpp:38 +#: src/libslic3r/Zipper.cpp:41 msgid "unsupported method" msgstr "" -#: src/libslic3r/Zipper.cpp:40 +#: src/libslic3r/Zipper.cpp:43 msgid "unsupported encryption" msgstr "" -#: src/libslic3r/Zipper.cpp:42 +#: src/libslic3r/Zipper.cpp:45 msgid "unsupported feature" msgstr "" -#: src/libslic3r/Zipper.cpp:44 +#: src/libslic3r/Zipper.cpp:47 msgid "failed finding central directory" msgstr "" -#: src/libslic3r/Zipper.cpp:46 +#: src/libslic3r/Zipper.cpp:49 msgid "not a ZIP archive" msgstr "" -#: src/libslic3r/Zipper.cpp:48 +#: src/libslic3r/Zipper.cpp:51 msgid "invalid header or archive is corrupted" msgstr "" -#: src/libslic3r/Zipper.cpp:50 +#: src/libslic3r/Zipper.cpp:53 msgid "unsupported multidisk archive" msgstr "" -#: src/libslic3r/Zipper.cpp:52 +#: src/libslic3r/Zipper.cpp:55 msgid "decompression failed or archive is corrupted" msgstr "" -#: src/libslic3r/Zipper.cpp:54 +#: src/libslic3r/Zipper.cpp:57 msgid "compression failed" msgstr "" -#: src/libslic3r/Zipper.cpp:56 +#: src/libslic3r/Zipper.cpp:59 msgid "unexpected decompressed size" msgstr "" -#: src/libslic3r/Zipper.cpp:58 +#: src/libslic3r/Zipper.cpp:61 msgid "CRC-32 check failed" msgstr "" -#: src/libslic3r/Zipper.cpp:60 +#: src/libslic3r/Zipper.cpp:63 msgid "unsupported central directory size" msgstr "" -#: src/libslic3r/Zipper.cpp:62 +#: src/libslic3r/Zipper.cpp:65 msgid "allocation failed" msgstr "" -#: src/libslic3r/Zipper.cpp:64 +#: src/libslic3r/Zipper.cpp:67 msgid "file open failed" msgstr "" -#: src/libslic3r/Zipper.cpp:66 +#: src/libslic3r/Zipper.cpp:69 msgid "file create failed" msgstr "" -#: src/libslic3r/Zipper.cpp:68 +#: src/libslic3r/Zipper.cpp:71 msgid "file write failed" msgstr "" -#: src/libslic3r/Zipper.cpp:70 +#: src/libslic3r/Zipper.cpp:73 msgid "file read failed" msgstr "" -#: src/libslic3r/Zipper.cpp:72 +#: src/libslic3r/Zipper.cpp:75 msgid "file close failed" msgstr "" -#: src/libslic3r/Zipper.cpp:74 +#: src/libslic3r/Zipper.cpp:77 msgid "file seek failed" msgstr "" -#: src/libslic3r/Zipper.cpp:76 +#: src/libslic3r/Zipper.cpp:79 msgid "file stat failed" msgstr "" -#: src/libslic3r/Zipper.cpp:78 +#: src/libslic3r/Zipper.cpp:81 msgid "invalid parameter" msgstr "" -#: src/libslic3r/Zipper.cpp:80 +#: src/libslic3r/Zipper.cpp:83 msgid "invalid filename" msgstr "" -#: src/libslic3r/Zipper.cpp:82 +#: src/libslic3r/Zipper.cpp:85 msgid "buffer too small" msgstr "" -#: src/libslic3r/Zipper.cpp:84 +#: src/libslic3r/Zipper.cpp:87 msgid "internal error" msgstr "" -#: src/libslic3r/Zipper.cpp:86 +#: src/libslic3r/Zipper.cpp:89 msgid "file not found" msgstr "" -#: src/libslic3r/Zipper.cpp:88 +#: src/libslic3r/Zipper.cpp:91 msgid "archive is too large" msgstr "" -#: src/libslic3r/Zipper.cpp:90 +#: src/libslic3r/Zipper.cpp:93 msgid "validation failed" msgstr "" -#: src/libslic3r/Zipper.cpp:92 +#: src/libslic3r/Zipper.cpp:95 msgid "write calledback failed" msgstr "" -#: src/libslic3r/Zipper.cpp:102 +#: src/libslic3r/Zipper.cpp:105 msgid "Error with zip archive" msgstr "" -#: src/libslic3r/Print.cpp:1112 +#: src/libslic3r/Print.cpp:1135 msgid "All objects are outside of the print volume." msgstr "" -#: src/libslic3r/Print.cpp:1139 +#: src/libslic3r/Print.cpp:1162 msgid "Some objects are too close; your extruder will collide with them." msgstr "" -#: src/libslic3r/Print.cpp:1154 +#: src/libslic3r/Print.cpp:1177 msgid "" "Some objects are too tall and cannot be printed without extruder collisions." msgstr "" -#: src/libslic3r/Print.cpp:1164 +#: src/libslic3r/Print.cpp:1187 msgid "The Spiral Vase option can only be used when printing a single object." msgstr "" -#: src/libslic3r/Print.cpp:1171 +#: src/libslic3r/Print.cpp:1189 msgid "" "The Spiral Vase option can only be used when printing single material " "objects." msgstr "" -#: src/libslic3r/Print.cpp:1184 +#: src/libslic3r/Print.cpp:1195 msgid "" -"The wipe tower is only supported if all extruders have the same nozzle " -"diameter and use filaments of the same diameter." +"All extruders must have the same diameter for single extruder multimaterial " +"printer." msgstr "" -#: src/libslic3r/Print.cpp:1189 +#: src/libslic3r/Print.cpp:1200 msgid "" "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter " "and Repetier G-code flavors." msgstr "" -#: src/libslic3r/Print.cpp:1191 +#: src/libslic3r/Print.cpp:1202 msgid "" "The Wipe Tower is currently only supported with the relative extruder " "addressing (use_relative_e_distances=1)." msgstr "" -#: src/libslic3r/Print.cpp:1193 -msgid "Ooze prevention is currently not supported with the wipe tower enabled." -msgstr "" - -#: src/libslic3r/Print.cpp:1214 +#: src/libslic3r/Print.cpp:1223 msgid "" "The Wipe Tower is only supported for multiple objects if they have equal " "layer heights" msgstr "" -#: src/libslic3r/Print.cpp:1216 +#: src/libslic3r/Print.cpp:1225 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:1218 +#: src/libslic3r/Print.cpp:1227 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:1220 +#: src/libslic3r/Print.cpp:1229 msgid "" "The Wipe Tower is only supported for multiple objects if they are sliced " "equally." msgstr "" -#: src/libslic3r/Print.cpp:1248 +#: src/libslic3r/Print.cpp:1258 msgid "" "The Wipe tower is only supported if all objects have the same layer height " "profile" msgstr "" -#: src/libslic3r/Print.cpp:1258 +#: src/libslic3r/Print.cpp:1268 msgid "The supplied settings will cause an empty print." msgstr "" -#: src/libslic3r/Print.cpp:1275 +#: src/libslic3r/Print.cpp:1285 msgid "" "One or more object were assigned an extruder that the printer does not have." msgstr "" -#: src/libslic3r/Print.cpp:1284 -msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm" -msgstr "" - -#: src/libslic3r/Print.cpp:1287 -msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm" -msgstr "" - -#: src/libslic3r/Print.cpp:1298 +#: src/libslic3r/Print.cpp:1294 msgid "" "Printing with multiple extruders of differing nozzle diameters. If support " "is to be printed with the current extruder (support_material_extruder == 0 " @@ -5321,13 +4694,13 @@ msgid "" "same diameter." msgstr "" -#: src/libslic3r/Print.cpp:1306 +#: src/libslic3r/Print.cpp:1302 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:1310 +#: src/libslic3r/Print.cpp:1306 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 " @@ -5335,100 +4708,83 @@ msgid "" "set to 0)." msgstr "" -#: src/libslic3r/Print.cpp:1332 +#: src/libslic3r/Print.cpp:1328 msgid "First layer height can't be greater than nozzle diameter" msgstr "" -#: src/libslic3r/Print.cpp:1337 +#: src/libslic3r/Print.cpp:1332 msgid "Layer height can't be greater than nozzle diameter" msgstr "" -#: src/libslic3r/Print.cpp:1492 +#: src/libslic3r/Print.cpp:1476 msgid "Infilling layers" msgstr "" -#: src/libslic3r/Print.cpp:1500 +#: src/libslic3r/Print.cpp:1484 msgid "Generating skirt" msgstr "" -#: src/libslic3r/Print.cpp:1508 +#: src/libslic3r/Print.cpp:1492 msgid "Generating brim" msgstr "" -#: src/libslic3r/Print.cpp:1536 +#: src/libslic3r/Print.cpp:1520 msgid "Exporting G-code" msgstr "" -#: src/libslic3r/Print.cpp:1540 +#: src/libslic3r/Print.cpp:1524 msgid "Generating G-code" msgstr "" -#: src/libslic3r/SLAPrint.cpp:64 +#: src/libslic3r/SLAPrint.cpp:57 msgid "Slicing model" msgstr "" -#: src/libslic3r/SLAPrint.cpp:65 src/libslic3r/SLAPrint.cpp:899 +#: src/libslic3r/SLAPrint.cpp:58 src/libslic3r/SLAPrint.cpp:819 msgid "Generating support points" msgstr "" -#: src/libslic3r/SLAPrint.cpp:66 +#: src/libslic3r/SLAPrint.cpp:59 msgid "Generating support tree" msgstr "" -#: src/libslic3r/SLAPrint.cpp:67 +#: src/libslic3r/SLAPrint.cpp:60 msgid "Generating pad" msgstr "" -#: src/libslic3r/SLAPrint.cpp:68 +#: src/libslic3r/SLAPrint.cpp:61 msgid "Slicing supports" msgstr "" -#: src/libslic3r/SLAPrint.cpp:85 +#: src/libslic3r/SLAPrint.cpp:78 msgid "Merging slices and calculating statistics" msgstr "" -#: src/libslic3r/SLAPrint.cpp:86 +#: src/libslic3r/SLAPrint.cpp:79 msgid "Rasterizing layers" msgstr "" -#: src/libslic3r/SLAPrint.cpp:661 +#: src/libslic3r/SLAPrint.cpp:622 msgid "" "Cannot proceed without support points! Add support points or disable support " "generation." msgstr "" -#: src/libslic3r/SLAPrint.cpp:678 -msgid "" -"Elevation is too low for object. Use the \"Pad around object\" feature to " -"print the object without elevation." -msgstr "" - -#: src/libslic3r/SLAPrint.cpp:684 -msgid "" -"The endings of the support pillars will be deployed on the gap between the " -"object and the pad. 'Support base safety distance' has to be greater than " -"the 'Pad object gap' parameter to avoid this." -msgstr "" - -#: src/libslic3r/SLAPrint.cpp:696 -msgid "Exposition time is out of printer profile bounds." +#: src/libslic3r/SLAPrint.cpp:634 +msgid "Elevation is too low for object." msgstr "" -#: src/libslic3r/SLAPrint.cpp:703 -msgid "Initial exposition time is out of printer profile bounds." +#. TRN To be shown at the status bar on SLA slicing error. +#: src/libslic3r/SLAPrint.cpp:719 +msgid "Slicing had to be stopped due to an internal error." msgstr "" -#: src/libslic3r/SLAPrint.cpp:787 -msgid "" -"Slicing had to be stopped due to an internal error: Inconsistent slice index." -msgstr "" - -#: src/libslic3r/SLAPrint.cpp:982 src/libslic3r/SLAPrint.cpp:992 -#: src/libslic3r/SLAPrint.cpp:1033 +#: src/libslic3r/SLAPrint.cpp:867 src/libslic3r/SLAPrint.cpp:877 +#: src/libslic3r/SLAPrint.cpp:925 msgid "Visualizing supports" msgstr "" -#: src/libslic3r/SLAPrint.cpp:1566 +#: src/libslic3r/SLAPrint.cpp:1463 msgid "Slicing done" msgstr "" @@ -5444,109 +4800,101 @@ msgstr "" msgid "Bed shape" msgstr "" -#: src/libslic3r/PrintConfig.cpp:56 -msgid "Bed custom texture" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:61 -msgid "Bed custom model" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:68 +#: src/libslic3r/PrintConfig.cpp:58 msgid "" "This setting controls the height (and thus the total number) of the slices/" "layers. Thinner layers give better accuracy but take more time to print." msgstr "" -#: src/libslic3r/PrintConfig.cpp:75 +#: src/libslic3r/PrintConfig.cpp:65 msgid "Max print height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:76 +#: src/libslic3r/PrintConfig.cpp:66 msgid "" "Set this to the maximum height that can be reached by your extruder while " "printing." msgstr "" -#: src/libslic3r/PrintConfig.cpp:82 +#: src/libslic3r/PrintConfig.cpp:72 msgid "Slice gap closing radius" msgstr "" -#: src/libslic3r/PrintConfig.cpp:84 +#: src/libslic3r/PrintConfig.cpp:74 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:92 +#: src/libslic3r/PrintConfig.cpp:82 msgid "Hostname, IP or URL" msgstr "" -#: src/libslic3r/PrintConfig.cpp:93 +#: src/libslic3r/PrintConfig.cpp:83 msgid "" "Slic3r can upload G-code files to a printer host. This field should contain " "the hostname, IP address or URL of the printer host instance." msgstr "" -#: src/libslic3r/PrintConfig.cpp:99 +#: src/libslic3r/PrintConfig.cpp:89 msgid "API Key / Password" msgstr "" -#: src/libslic3r/PrintConfig.cpp:100 +#: src/libslic3r/PrintConfig.cpp:90 msgid "" "Slic3r can upload G-code files to a printer host. This field should contain " "the API Key or the password required for authentication." msgstr "" -#: src/libslic3r/PrintConfig.cpp:106 +#: src/libslic3r/PrintConfig.cpp:96 msgid "HTTPS CA File" msgstr "" -#: src/libslic3r/PrintConfig.cpp:107 +#: src/libslic3r/PrintConfig.cpp:97 msgid "" "Custom CA certificate file can be specified for HTTPS OctoPrint connections, " "in crt/pem format. If left blank, the default OS CA certificate repository " "is used." msgstr "" -#: src/libslic3r/PrintConfig.cpp:121 +#: src/libslic3r/PrintConfig.cpp:112 msgid "Avoid crossing perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:122 +#: src/libslic3r/PrintConfig.cpp:113 msgid "" "Optimize travel moves in order to minimize the crossing of perimeters. This " "is mostly useful with Bowden extruders which suffer from oozing. This " "feature slows down both the print and the G-code generation." msgstr "" -#: src/libslic3r/PrintConfig.cpp:129 src/libslic3r/PrintConfig.cpp:2027 +#: src/libslic3r/PrintConfig.cpp:120 src/libslic3r/PrintConfig.cpp:2012 msgid "Other layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:130 +#: src/libslic3r/PrintConfig.cpp:121 msgid "" "Bed temperature for layers after the first one. Set this to zero to disable " "bed temperature control commands in the output." msgstr "" -#: src/libslic3r/PrintConfig.cpp:132 +#: src/libslic3r/PrintConfig.cpp:123 msgid "Bed temperature" msgstr "" -#: src/libslic3r/PrintConfig.cpp:139 +#: src/libslic3r/PrintConfig.cpp:130 msgid "" "This custom code is inserted at every layer change, right before the Z move. " "Note that you can use placeholder variables for all Slic3r settings as well " "as [layer_num] and [layer_z]." msgstr "" -#: src/libslic3r/PrintConfig.cpp:149 +#: src/libslic3r/PrintConfig.cpp:140 msgid "Between objects G-code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:150 +#: src/libslic3r/PrintConfig.cpp:141 msgid "" "This code is inserted between objects when using sequential printing. By " "default extruder and bed temperature are reset using non-wait command; " @@ -5556,70 +4904,70 @@ msgid "" "S[first_layer_temperature]\" command wherever you want." msgstr "" -#: src/libslic3r/PrintConfig.cpp:161 +#: src/libslic3r/PrintConfig.cpp:152 msgid "Number of solid layers to generate on bottom surfaces." msgstr "" -#: src/libslic3r/PrintConfig.cpp:162 +#: src/libslic3r/PrintConfig.cpp:153 msgid "Bottom solid layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:167 +#: src/libslic3r/PrintConfig.cpp:158 msgid "Bridge" msgstr "" -#: src/libslic3r/PrintConfig.cpp:168 +#: src/libslic3r/PrintConfig.cpp:159 msgid "" "This is the acceleration your printer will use for bridges. Set zero to " "disable acceleration control for bridges." msgstr "" -#: src/libslic3r/PrintConfig.cpp:170 src/libslic3r/PrintConfig.cpp:313 -#: src/libslic3r/PrintConfig.cpp:840 src/libslic3r/PrintConfig.cpp:961 -#: src/libslic3r/PrintConfig.cpp:1130 src/libslic3r/PrintConfig.cpp:1183 -#: src/libslic3r/PrintConfig.cpp:1194 src/libslic3r/PrintConfig.cpp:1383 +#: src/libslic3r/PrintConfig.cpp:161 src/libslic3r/PrintConfig.cpp:304 +#: src/libslic3r/PrintConfig.cpp:826 src/libslic3r/PrintConfig.cpp:947 +#: src/libslic3r/PrintConfig.cpp:1116 src/libslic3r/PrintConfig.cpp:1169 +#: src/libslic3r/PrintConfig.cpp:1180 src/libslic3r/PrintConfig.cpp:1369 msgid "mm/s²" msgstr "" -#: src/libslic3r/PrintConfig.cpp:176 +#: src/libslic3r/PrintConfig.cpp:167 msgid "Bridging angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:178 +#: src/libslic3r/PrintConfig.cpp:169 msgid "" "Bridging angle override. If left to zero, the bridging angle will be " "calculated automatically. Otherwise the provided angle will be used for all " "bridges. Use 180° for zero angle." msgstr "" -#: src/libslic3r/PrintConfig.cpp:181 src/libslic3r/PrintConfig.cpp:758 -#: src/libslic3r/PrintConfig.cpp:1619 src/libslic3r/PrintConfig.cpp:1629 -#: src/libslic3r/PrintConfig.cpp:1858 src/libslic3r/PrintConfig.cpp:2012 -#: src/libslic3r/PrintConfig.cpp:2197 src/libslic3r/PrintConfig.cpp:2614 -#: src/libslic3r/PrintConfig.cpp:2724 +#: src/libslic3r/PrintConfig.cpp:172 src/libslic3r/PrintConfig.cpp:744 +#: src/libslic3r/PrintConfig.cpp:1605 src/libslic3r/PrintConfig.cpp:1615 +#: src/libslic3r/PrintConfig.cpp:1843 src/libslic3r/PrintConfig.cpp:1997 +#: src/libslic3r/PrintConfig.cpp:2181 src/libslic3r/PrintConfig.cpp:2498 +#: src/libslic3r/PrintConfig.cpp:2607 msgid "°" msgstr "" -#: src/libslic3r/PrintConfig.cpp:187 +#: src/libslic3r/PrintConfig.cpp:178 msgid "Bridges fan speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:188 +#: src/libslic3r/PrintConfig.cpp:179 msgid "This fan speed is enforced during all bridges and overhangs." msgstr "" -#: src/libslic3r/PrintConfig.cpp:189 src/libslic3r/PrintConfig.cpp:770 -#: src/libslic3r/PrintConfig.cpp:1203 src/libslic3r/PrintConfig.cpp:1266 -#: src/libslic3r/PrintConfig.cpp:1511 src/libslic3r/PrintConfig.cpp:2366 -#: src/libslic3r/PrintConfig.cpp:2654 +#: src/libslic3r/PrintConfig.cpp:180 src/libslic3r/PrintConfig.cpp:756 +#: src/libslic3r/PrintConfig.cpp:1189 src/libslic3r/PrintConfig.cpp:1252 +#: src/libslic3r/PrintConfig.cpp:1497 src/libslic3r/PrintConfig.cpp:2295 +#: src/libslic3r/PrintConfig.cpp:2537 msgid "%" msgstr "" -#: src/libslic3r/PrintConfig.cpp:196 +#: src/libslic3r/PrintConfig.cpp:187 msgid "Bridge flow ratio" msgstr "" -#: src/libslic3r/PrintConfig.cpp:198 +#: src/libslic3r/PrintConfig.cpp:189 msgid "" "This factor affects the amount of plastic for bridging. You can decrease it " "slightly to pull the extrudates and prevent sagging, although default " @@ -5627,83 +4975,83 @@ msgid "" "before tweaking this." msgstr "" -#: src/libslic3r/PrintConfig.cpp:208 +#: src/libslic3r/PrintConfig.cpp:199 msgid "Bridges" msgstr "" -#: src/libslic3r/PrintConfig.cpp:210 +#: src/libslic3r/PrintConfig.cpp:201 msgid "Speed for printing bridges." msgstr "" -#: src/libslic3r/PrintConfig.cpp:211 src/libslic3r/PrintConfig.cpp:592 -#: src/libslic3r/PrintConfig.cpp:600 src/libslic3r/PrintConfig.cpp:609 -#: src/libslic3r/PrintConfig.cpp:617 src/libslic3r/PrintConfig.cpp:644 -#: src/libslic3r/PrintConfig.cpp:663 src/libslic3r/PrintConfig.cpp:899 -#: src/libslic3r/PrintConfig.cpp:1026 src/libslic3r/PrintConfig.cpp:1112 -#: src/libslic3r/PrintConfig.cpp:1148 src/libslic3r/PrintConfig.cpp:1161 -#: src/libslic3r/PrintConfig.cpp:1172 src/libslic3r/PrintConfig.cpp:1225 -#: src/libslic3r/PrintConfig.cpp:1284 src/libslic3r/PrintConfig.cpp:1412 -#: src/libslic3r/PrintConfig.cpp:1586 src/libslic3r/PrintConfig.cpp:1595 -#: src/libslic3r/PrintConfig.cpp:1991 src/libslic3r/PrintConfig.cpp:2104 +#: src/libslic3r/PrintConfig.cpp:202 src/libslic3r/PrintConfig.cpp:578 +#: src/libslic3r/PrintConfig.cpp:586 src/libslic3r/PrintConfig.cpp:595 +#: src/libslic3r/PrintConfig.cpp:603 src/libslic3r/PrintConfig.cpp:630 +#: src/libslic3r/PrintConfig.cpp:649 src/libslic3r/PrintConfig.cpp:885 +#: src/libslic3r/PrintConfig.cpp:1012 src/libslic3r/PrintConfig.cpp:1098 +#: src/libslic3r/PrintConfig.cpp:1134 src/libslic3r/PrintConfig.cpp:1147 +#: src/libslic3r/PrintConfig.cpp:1158 src/libslic3r/PrintConfig.cpp:1211 +#: src/libslic3r/PrintConfig.cpp:1270 src/libslic3r/PrintConfig.cpp:1398 +#: src/libslic3r/PrintConfig.cpp:1572 src/libslic3r/PrintConfig.cpp:1581 +#: src/libslic3r/PrintConfig.cpp:1976 src/libslic3r/PrintConfig.cpp:2088 msgid "mm/s" msgstr "" -#: src/libslic3r/PrintConfig.cpp:218 +#: src/libslic3r/PrintConfig.cpp:209 msgid "Brim width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:219 +#: src/libslic3r/PrintConfig.cpp:210 msgid "" "Horizontal width of the brim that will be printed around each object on the " "first layer." msgstr "" -#: src/libslic3r/PrintConfig.cpp:226 +#: src/libslic3r/PrintConfig.cpp:217 msgid "Clip multi-part objects" msgstr "" -#: src/libslic3r/PrintConfig.cpp:227 +#: src/libslic3r/PrintConfig.cpp:218 msgid "" "When printing multi-material objects, this settings will make Slic3r to clip " "the overlapping object parts one by the other (2nd part will be clipped by " "the 1st, 3rd part will be clipped by the 1st and 2nd etc)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:234 +#: src/libslic3r/PrintConfig.cpp:225 msgid "Colorprint height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:235 +#: src/libslic3r/PrintConfig.cpp:226 msgid "Heights at which a filament change is to occur." msgstr "" -#: src/libslic3r/PrintConfig.cpp:245 +#: src/libslic3r/PrintConfig.cpp:236 msgid "Compatible printers condition" msgstr "" -#: src/libslic3r/PrintConfig.cpp:246 +#: src/libslic3r/PrintConfig.cpp:237 msgid "" "A boolean expression using the configuration values of an active printer " "profile. If this expression evaluates to true, this profile is considered " "compatible with the active printer profile." msgstr "" -#: src/libslic3r/PrintConfig.cpp:260 +#: src/libslic3r/PrintConfig.cpp:251 msgid "Compatible print profiles condition" msgstr "" -#: src/libslic3r/PrintConfig.cpp:261 +#: src/libslic3r/PrintConfig.cpp:252 msgid "" "A boolean expression using the configuration values of an active print " "profile. If this expression evaluates to true, this profile is considered " "compatible with the active print profile." msgstr "" -#: src/libslic3r/PrintConfig.cpp:278 +#: src/libslic3r/PrintConfig.cpp:269 msgid "Complete individual objects" msgstr "" -#: src/libslic3r/PrintConfig.cpp:279 +#: src/libslic3r/PrintConfig.cpp:270 msgid "" "When printing multiple objects or copies, this feature will complete each " "object before moving onto next one (and starting it from its bottom layer). " @@ -5711,178 +5059,177 @@ msgid "" "warn and prevent you from extruder collisions, but beware." msgstr "" -#: src/libslic3r/PrintConfig.cpp:287 +#: src/libslic3r/PrintConfig.cpp:278 msgid "Enable auto cooling" msgstr "" -#: src/libslic3r/PrintConfig.cpp:288 +#: src/libslic3r/PrintConfig.cpp:279 msgid "" "This flag enables the automatic cooling logic that adjusts print speed and " "fan speed according to layer printing time." msgstr "" -#: src/libslic3r/PrintConfig.cpp:293 +#: src/libslic3r/PrintConfig.cpp:284 msgid "Cooling tube position" msgstr "" -#: src/libslic3r/PrintConfig.cpp:294 +#: src/libslic3r/PrintConfig.cpp:285 msgid "Distance of the center-point of the cooling tube from the extruder tip." msgstr "" -#: src/libslic3r/PrintConfig.cpp:301 +#: src/libslic3r/PrintConfig.cpp:292 msgid "Cooling tube length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:302 +#: src/libslic3r/PrintConfig.cpp:293 msgid "Length of the cooling tube to limit space for cooling moves inside it." msgstr "" -#: src/libslic3r/PrintConfig.cpp:310 +#: src/libslic3r/PrintConfig.cpp:301 msgid "" "This is the acceleration your printer will be reset to after the role-" "specific acceleration values are used (perimeter/infill). Set zero to " "prevent resetting acceleration at all." msgstr "" -#: src/libslic3r/PrintConfig.cpp:319 +#: src/libslic3r/PrintConfig.cpp:310 msgid "Default filament profile" msgstr "" -#: src/libslic3r/PrintConfig.cpp:320 +#: src/libslic3r/PrintConfig.cpp:311 msgid "" "Default filament profile associated with the current printer profile. On " "selection of the current printer profile, this filament profile will be " "activated." msgstr "" -#: src/libslic3r/PrintConfig.cpp:326 +#: src/libslic3r/PrintConfig.cpp:317 msgid "Default print profile" msgstr "" -#: src/libslic3r/PrintConfig.cpp:327 src/libslic3r/PrintConfig.cpp:2479 -#: src/libslic3r/PrintConfig.cpp:2490 +#: src/libslic3r/PrintConfig.cpp:318 src/libslic3r/PrintConfig.cpp:2376 +#: src/libslic3r/PrintConfig.cpp:2387 msgid "" "Default print profile associated with the current printer profile. On " "selection of the current printer profile, this print profile will be " "activated." msgstr "" -#: src/libslic3r/PrintConfig.cpp:333 +#: src/libslic3r/PrintConfig.cpp:324 msgid "Disable fan for the first" msgstr "" -#: src/libslic3r/PrintConfig.cpp:334 +#: src/libslic3r/PrintConfig.cpp:325 msgid "" "You can set this to a positive value to disable fan at all during the first " "layers, so that it does not make adhesion worse." msgstr "" -#: src/libslic3r/PrintConfig.cpp:336 src/libslic3r/PrintConfig.cpp:971 -#: src/libslic3r/PrintConfig.cpp:1484 src/libslic3r/PrintConfig.cpp:1669 -#: src/libslic3r/PrintConfig.cpp:1730 src/libslic3r/PrintConfig.cpp:1894 -#: src/libslic3r/PrintConfig.cpp:1939 +#: src/libslic3r/PrintConfig.cpp:327 src/libslic3r/PrintConfig.cpp:957 +#: src/libslic3r/PrintConfig.cpp:1470 src/libslic3r/PrintConfig.cpp:1655 +#: src/libslic3r/PrintConfig.cpp:1716 src/libslic3r/PrintConfig.cpp:1879 +#: src/libslic3r/PrintConfig.cpp:1924 msgid "layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:343 +#: src/libslic3r/PrintConfig.cpp:334 msgid "Don't support bridges" msgstr "" -#: src/libslic3r/PrintConfig.cpp:345 +#: src/libslic3r/PrintConfig.cpp:336 msgid "" "Experimental option for preventing support material from being generated " "under bridged areas." msgstr "" -#: src/libslic3r/PrintConfig.cpp:351 +#: src/libslic3r/PrintConfig.cpp:342 msgid "Distance between copies" msgstr "" -#: src/libslic3r/PrintConfig.cpp:352 +#: src/libslic3r/PrintConfig.cpp:343 msgid "Distance used for the auto-arrange feature of the plater." msgstr "" -#: src/libslic3r/PrintConfig.cpp:359 +#: src/libslic3r/PrintConfig.cpp:350 msgid "Elephant foot compensation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:361 +#: src/libslic3r/PrintConfig.cpp:352 msgid "" "The first layer will be shrunk in the XY plane by the configured value to " "compensate for the 1st layer squish aka an Elephant Foot effect." msgstr "" -#: src/libslic3r/PrintConfig.cpp:370 +#: src/libslic3r/PrintConfig.cpp:361 msgid "" "This end procedure is inserted at the end of the output file. Note that you " -"can use placeholder variables for all PrusaSlicer settings." +"can use placeholder variables for all Slic3r settings." msgstr "" -#: src/libslic3r/PrintConfig.cpp:380 +#: src/libslic3r/PrintConfig.cpp:371 msgid "" "This end procedure is inserted at the end of the output file, before the " -"printer end gcode (and before any toolchange from this filament in case of " -"multimaterial printers). Note that you can use placeholder variables for all " -"PrusaSlicer settings. If you have multiple extruders, the gcode is processed " -"in extruder order." +"printer end gcode. Note that you can use placeholder variables for all " +"Slic3r settings. If you have multiple extruders, the gcode is processed in " +"extruder order." msgstr "" -#: src/libslic3r/PrintConfig.cpp:391 +#: src/libslic3r/PrintConfig.cpp:381 msgid "Ensure vertical shell thickness" msgstr "" -#: src/libslic3r/PrintConfig.cpp:393 +#: src/libslic3r/PrintConfig.cpp:383 msgid "" "Add solid infill near sloping surfaces to guarantee the vertical shell " "thickness (top+bottom solid layers)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:399 +#: src/libslic3r/PrintConfig.cpp:389 msgid "Top fill pattern" msgstr "" -#: src/libslic3r/PrintConfig.cpp:401 +#: src/libslic3r/PrintConfig.cpp:391 msgid "" "Fill pattern for top infill. This only affects the top visible layer, and " "not its adjacent solid shells." msgstr "" -#: src/libslic3r/PrintConfig.cpp:409 src/libslic3r/PrintConfig.cpp:821 -#: src/libslic3r/PrintConfig.cpp:1972 +#: src/libslic3r/PrintConfig.cpp:399 src/libslic3r/PrintConfig.cpp:807 +#: src/libslic3r/PrintConfig.cpp:1957 msgid "Rectilinear" msgstr "" -#: src/libslic3r/PrintConfig.cpp:410 src/libslic3r/PrintConfig.cpp:827 +#: src/libslic3r/PrintConfig.cpp:400 src/libslic3r/PrintConfig.cpp:813 msgid "Concentric" msgstr "" -#: src/libslic3r/PrintConfig.cpp:411 src/libslic3r/PrintConfig.cpp:831 +#: src/libslic3r/PrintConfig.cpp:401 src/libslic3r/PrintConfig.cpp:817 msgid "Hilbert Curve" msgstr "" -#: src/libslic3r/PrintConfig.cpp:412 src/libslic3r/PrintConfig.cpp:832 +#: src/libslic3r/PrintConfig.cpp:402 src/libslic3r/PrintConfig.cpp:818 msgid "Archimedean Chords" msgstr "" -#: src/libslic3r/PrintConfig.cpp:413 src/libslic3r/PrintConfig.cpp:833 +#: src/libslic3r/PrintConfig.cpp:403 src/libslic3r/PrintConfig.cpp:819 msgid "Octagram Spiral" msgstr "" -#: src/libslic3r/PrintConfig.cpp:419 +#: src/libslic3r/PrintConfig.cpp:410 msgid "Bottom fill pattern" msgstr "" -#: src/libslic3r/PrintConfig.cpp:421 +#: src/libslic3r/PrintConfig.cpp:411 msgid "" "Fill pattern for bottom infill. This only affects the bottom external " "visible layer, and not its adjacent solid shells." msgstr "" -#: src/libslic3r/PrintConfig.cpp:430 src/libslic3r/PrintConfig.cpp:440 +#: src/libslic3r/PrintConfig.cpp:416 src/libslic3r/PrintConfig.cpp:426 msgid "External perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:432 +#: src/libslic3r/PrintConfig.cpp:418 msgid "" "Set this to a non-zero value to set a manual extrusion width for external " "perimeters. If left zero, default extrusion width will be used if set, " @@ -5890,43 +5237,43 @@ msgid "" "(for example 200%), it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:435 src/libslic3r/PrintConfig.cpp:543 -#: src/libslic3r/PrintConfig.cpp:860 src/libslic3r/PrintConfig.cpp:872 -#: src/libslic3r/PrintConfig.cpp:992 src/libslic3r/PrintConfig.cpp:1017 -#: src/libslic3r/PrintConfig.cpp:1403 src/libslic3r/PrintConfig.cpp:1741 -#: src/libslic3r/PrintConfig.cpp:1847 src/libslic3r/PrintConfig.cpp:1915 -#: src/libslic3r/PrintConfig.cpp:2074 +#: src/libslic3r/PrintConfig.cpp:421 src/libslic3r/PrintConfig.cpp:529 +#: src/libslic3r/PrintConfig.cpp:846 src/libslic3r/PrintConfig.cpp:858 +#: src/libslic3r/PrintConfig.cpp:978 src/libslic3r/PrintConfig.cpp:1003 +#: src/libslic3r/PrintConfig.cpp:1389 src/libslic3r/PrintConfig.cpp:1727 +#: src/libslic3r/PrintConfig.cpp:1832 src/libslic3r/PrintConfig.cpp:1900 +#: src/libslic3r/PrintConfig.cpp:2058 msgid "mm or %" msgstr "" -#: src/libslic3r/PrintConfig.cpp:442 +#: src/libslic3r/PrintConfig.cpp:428 msgid "" "This separate setting will affect the speed of external perimeters (the " "visible ones). 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:445 src/libslic3r/PrintConfig.cpp:881 -#: src/libslic3r/PrintConfig.cpp:1700 src/libslic3r/PrintConfig.cpp:1751 -#: src/libslic3r/PrintConfig.cpp:1958 src/libslic3r/PrintConfig.cpp:2086 +#: src/libslic3r/PrintConfig.cpp:431 src/libslic3r/PrintConfig.cpp:867 +#: src/libslic3r/PrintConfig.cpp:1686 src/libslic3r/PrintConfig.cpp:1737 +#: src/libslic3r/PrintConfig.cpp:1943 src/libslic3r/PrintConfig.cpp:2070 msgid "mm/s or %" msgstr "" -#: src/libslic3r/PrintConfig.cpp:452 +#: src/libslic3r/PrintConfig.cpp:438 msgid "External perimeters first" msgstr "" -#: src/libslic3r/PrintConfig.cpp:454 +#: src/libslic3r/PrintConfig.cpp:440 msgid "" "Print contour perimeters from the outermost one to the innermost one instead " "of the default inverse order." msgstr "" -#: src/libslic3r/PrintConfig.cpp:460 +#: src/libslic3r/PrintConfig.cpp:446 msgid "Extra perimeters if needed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:462 +#: src/libslic3r/PrintConfig.cpp:448 #, possible-c-format msgid "" "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r " @@ -5934,14 +5281,14 @@ msgid "" "is supported." msgstr "" -#: src/libslic3r/PrintConfig.cpp:472 +#: src/libslic3r/PrintConfig.cpp:458 msgid "" "The extruder to use (unless more specific extruder settings are specified). " "This value overrides perimeter and infill extruders, but not the support " "extruders." msgstr "" -#: src/libslic3r/PrintConfig.cpp:484 +#: src/libslic3r/PrintConfig.cpp:470 msgid "" "Set this to the vertical distance between your nozzle tip and (usually) the " "X carriage rods. In other words, this is the height of the clearance " @@ -5949,30 +5296,30 @@ msgid "" "extruder can peek before colliding with other printed objects." msgstr "" -#: src/libslic3r/PrintConfig.cpp:494 +#: src/libslic3r/PrintConfig.cpp:480 msgid "Radius" msgstr "" -#: src/libslic3r/PrintConfig.cpp:495 +#: src/libslic3r/PrintConfig.cpp:481 msgid "" "Set this to the clearance radius around your extruder. If the extruder is " "not centered, choose the largest value for safety. This setting is used to " "check for collisions and to display the graphical preview in the plater." msgstr "" -#: src/libslic3r/PrintConfig.cpp:505 +#: src/libslic3r/PrintConfig.cpp:491 msgid "Extruder Color" msgstr "" -#: src/libslic3r/PrintConfig.cpp:506 src/libslic3r/PrintConfig.cpp:566 +#: src/libslic3r/PrintConfig.cpp:492 src/libslic3r/PrintConfig.cpp:552 msgid "This is only used in the Slic3r interface as a visual help." msgstr "" -#: src/libslic3r/PrintConfig.cpp:512 +#: src/libslic3r/PrintConfig.cpp:498 msgid "Extruder offset" msgstr "" -#: src/libslic3r/PrintConfig.cpp:513 +#: src/libslic3r/PrintConfig.cpp:499 msgid "" "If your firmware doesn't handle the extruder displacement you need the G-" "code to take it into account. This option lets you specify the displacement " @@ -5980,21 +5327,21 @@ msgid "" "coordinates (they will be subtracted from the XY coordinate)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:522 +#: src/libslic3r/PrintConfig.cpp:508 msgid "Extrusion axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:523 +#: src/libslic3r/PrintConfig.cpp:509 msgid "" "Use this option to set the axis letter associated to your printer's extruder " "(usually E but some printers use A)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:528 +#: src/libslic3r/PrintConfig.cpp:514 msgid "Extrusion multiplier" msgstr "" -#: src/libslic3r/PrintConfig.cpp:529 +#: src/libslic3r/PrintConfig.cpp:515 msgid "" "This factor changes the amount of flow proportionally. You may need to tweak " "this setting to get nice surface finish and correct single wall widths. " @@ -6002,11 +5349,11 @@ msgid "" "more, check filament diameter and your firmware E steps." msgstr "" -#: src/libslic3r/PrintConfig.cpp:537 +#: src/libslic3r/PrintConfig.cpp:523 msgid "Default extrusion width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:539 +#: src/libslic3r/PrintConfig.cpp:525 msgid "" "Set this to a non-zero value to allow a manual extrusion width. If left to " "zero, Slic3r derives extrusion widths from the nozzle diameter (see the " @@ -6015,119 +5362,123 @@ msgid "" "height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:548 +#: src/libslic3r/PrintConfig.cpp:534 msgid "Keep fan always on" msgstr "" -#: src/libslic3r/PrintConfig.cpp:549 +#: src/libslic3r/PrintConfig.cpp:535 msgid "" "If this is enabled, fan will never be disabled and will be kept running at " "least at its minimum speed. Useful for PLA, harmful for ABS." msgstr "" -#: src/libslic3r/PrintConfig.cpp:554 +#: src/libslic3r/PrintConfig.cpp:540 msgid "Enable fan if layer print time is below" msgstr "" -#: src/libslic3r/PrintConfig.cpp:555 +#: src/libslic3r/PrintConfig.cpp:541 msgid "" "If layer print time is estimated below this number of seconds, fan will be " "enabled and its speed will be calculated by interpolating the minimum and " "maximum speeds." msgstr "" -#: src/libslic3r/PrintConfig.cpp:557 src/libslic3r/PrintConfig.cpp:1687 +#: src/libslic3r/PrintConfig.cpp:543 src/libslic3r/PrintConfig.cpp:1673 msgid "approximate seconds" msgstr "" -#: src/libslic3r/PrintConfig.cpp:571 +#: src/libslic3r/PrintConfig.cpp:551 +msgid "Color" +msgstr "" + +#: src/libslic3r/PrintConfig.cpp:557 msgid "Filament notes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:572 +#: src/libslic3r/PrintConfig.cpp:558 msgid "You can put your notes regarding the filament here." msgstr "" -#: src/libslic3r/PrintConfig.cpp:580 src/libslic3r/PrintConfig.cpp:1231 +#: src/libslic3r/PrintConfig.cpp:566 src/libslic3r/PrintConfig.cpp:1217 msgid "Max volumetric speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:581 +#: src/libslic3r/PrintConfig.cpp:567 msgid "" "Maximum volumetric speed allowed for this filament. Limits the maximum " "volumetric speed of a print to the minimum of print and filament volumetric " "speed. Set to zero for no limit." msgstr "" -#: src/libslic3r/PrintConfig.cpp:590 +#: src/libslic3r/PrintConfig.cpp:576 msgid "Loading speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:591 +#: src/libslic3r/PrintConfig.cpp:577 msgid "Speed used for loading the filament on the wipe tower." msgstr "" -#: src/libslic3r/PrintConfig.cpp:598 +#: src/libslic3r/PrintConfig.cpp:584 msgid "Loading speed at the start" msgstr "" -#: src/libslic3r/PrintConfig.cpp:599 +#: src/libslic3r/PrintConfig.cpp:585 msgid "Speed used at the very beginning of loading phase." msgstr "" -#: src/libslic3r/PrintConfig.cpp:606 +#: src/libslic3r/PrintConfig.cpp:592 msgid "Unloading speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:607 +#: src/libslic3r/PrintConfig.cpp:593 msgid "" "Speed used for unloading the filament on the wipe tower (does not affect " "initial part of unloading just after ramming)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:615 +#: src/libslic3r/PrintConfig.cpp:601 msgid "Unloading speed at the start" msgstr "" -#: src/libslic3r/PrintConfig.cpp:616 +#: src/libslic3r/PrintConfig.cpp:602 msgid "" "Speed used for unloading the tip of the filament immediately after ramming." msgstr "" -#: src/libslic3r/PrintConfig.cpp:623 +#: src/libslic3r/PrintConfig.cpp:609 msgid "Delay after unloading" msgstr "" -#: src/libslic3r/PrintConfig.cpp:624 +#: src/libslic3r/PrintConfig.cpp:610 msgid "" "Time to wait after the filament is unloaded. May help to get reliable " "toolchanges with flexible materials that may need more time to shrink to " "original dimensions." msgstr "" -#: src/libslic3r/PrintConfig.cpp:633 +#: src/libslic3r/PrintConfig.cpp:619 msgid "Number of cooling moves" msgstr "" -#: src/libslic3r/PrintConfig.cpp:634 +#: src/libslic3r/PrintConfig.cpp:620 msgid "" "Filament is cooled by being moved back and forth in the cooling tubes. " "Specify desired number of these moves." msgstr "" -#: src/libslic3r/PrintConfig.cpp:642 +#: src/libslic3r/PrintConfig.cpp:628 msgid "Speed of the first cooling move" msgstr "" -#: src/libslic3r/PrintConfig.cpp:643 +#: src/libslic3r/PrintConfig.cpp:629 msgid "Cooling moves are gradually accelerating beginning at this speed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:650 +#: src/libslic3r/PrintConfig.cpp:636 msgid "Minimal purge on wipe tower" msgstr "" -#: src/libslic3r/PrintConfig.cpp:651 +#: src/libslic3r/PrintConfig.cpp:637 msgid "" "After a tool change, the exact position of the newly loaded filament inside " "the nozzle may not be known, and the filament pressure is likely not yet " @@ -6136,62 +5487,62 @@ msgid "" "to produce successive infill or sacrificial object extrusions reliably." msgstr "" -#: src/libslic3r/PrintConfig.cpp:655 +#: src/libslic3r/PrintConfig.cpp:641 msgid "mm³" msgstr "" -#: src/libslic3r/PrintConfig.cpp:661 +#: src/libslic3r/PrintConfig.cpp:647 msgid "Speed of the last cooling move" msgstr "" -#: src/libslic3r/PrintConfig.cpp:662 +#: src/libslic3r/PrintConfig.cpp:648 msgid "Cooling moves are gradually accelerating towards this speed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:669 +#: src/libslic3r/PrintConfig.cpp:655 msgid "Filament load time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:670 +#: src/libslic3r/PrintConfig.cpp:656 msgid "" "Time for the printer firmware (or the Multi Material Unit 2.0) to load a new " "filament during a tool change (when executing the T code). This time is " "added to the total print time by the G-code time estimator." msgstr "" -#: src/libslic3r/PrintConfig.cpp:677 +#: src/libslic3r/PrintConfig.cpp:663 msgid "Ramming parameters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:678 +#: src/libslic3r/PrintConfig.cpp:664 msgid "" "This string is edited by RammingDialog and contains ramming specific " "parameters." msgstr "" -#: src/libslic3r/PrintConfig.cpp:684 +#: src/libslic3r/PrintConfig.cpp:670 msgid "Filament unload time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:685 +#: src/libslic3r/PrintConfig.cpp:671 msgid "" "Time for the printer firmware (or the Multi Material Unit 2.0) to unload a " "filament during a tool change (when executing the T code). This time is " "added to the total print time by the G-code time estimator." msgstr "" -#: src/libslic3r/PrintConfig.cpp:693 +#: src/libslic3r/PrintConfig.cpp:679 msgid "" "Enter your filament diameter here. Good precision is required, so use a " "caliper and do multiple measurements along the filament, then compute the " "average." msgstr "" -#: src/libslic3r/PrintConfig.cpp:700 +#: src/libslic3r/PrintConfig.cpp:686 msgid "Density" msgstr "" -#: src/libslic3r/PrintConfig.cpp:701 +#: src/libslic3r/PrintConfig.cpp:687 msgid "" "Enter your filament density here. This is only for statistical information. " "A decent way is to weigh a known length of filament and compute the ratio of " @@ -6199,113 +5550,113 @@ msgid "" "displacement." msgstr "" -#: src/libslic3r/PrintConfig.cpp:704 +#: src/libslic3r/PrintConfig.cpp:690 msgid "g/cm³" msgstr "" -#: src/libslic3r/PrintConfig.cpp:709 +#: src/libslic3r/PrintConfig.cpp:695 msgid "Filament type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:710 +#: src/libslic3r/PrintConfig.cpp:696 msgid "The filament material type for use in custom G-codes." msgstr "" -#: src/libslic3r/PrintConfig.cpp:736 +#: src/libslic3r/PrintConfig.cpp:722 msgid "Soluble material" msgstr "" -#: src/libslic3r/PrintConfig.cpp:737 +#: src/libslic3r/PrintConfig.cpp:723 msgid "Soluble material is most likely used for a soluble support." msgstr "" -#: src/libslic3r/PrintConfig.cpp:743 +#: src/libslic3r/PrintConfig.cpp:729 msgid "" "Enter your filament cost per kg here. This is only for statistical " "information." msgstr "" -#: src/libslic3r/PrintConfig.cpp:744 +#: src/libslic3r/PrintConfig.cpp:730 msgid "money/kg" msgstr "" -#: src/libslic3r/PrintConfig.cpp:753 +#: src/libslic3r/PrintConfig.cpp:739 msgid "Fill angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:755 +#: src/libslic3r/PrintConfig.cpp:741 msgid "" "Default base angle for infill orientation. Cross-hatching will be applied to " "this. Bridges will be infilled using the best direction Slic3r can detect, " "so this setting does not affect them." msgstr "" -#: src/libslic3r/PrintConfig.cpp:767 +#: src/libslic3r/PrintConfig.cpp:753 msgid "Fill density" msgstr "" -#: src/libslic3r/PrintConfig.cpp:769 +#: src/libslic3r/PrintConfig.cpp:755 msgid "Density of internal infill, expressed in the range 0% - 100%." msgstr "" -#: src/libslic3r/PrintConfig.cpp:804 +#: src/libslic3r/PrintConfig.cpp:790 msgid "Fill pattern" msgstr "" -#: src/libslic3r/PrintConfig.cpp:806 +#: src/libslic3r/PrintConfig.cpp:792 msgid "Fill pattern for general low-density infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:822 +#: src/libslic3r/PrintConfig.cpp:808 msgid "Grid" msgstr "" -#: src/libslic3r/PrintConfig.cpp:823 +#: src/libslic3r/PrintConfig.cpp:809 msgid "Triangles" msgstr "" -#: src/libslic3r/PrintConfig.cpp:824 +#: src/libslic3r/PrintConfig.cpp:810 msgid "Stars" msgstr "" -#: src/libslic3r/PrintConfig.cpp:825 +#: src/libslic3r/PrintConfig.cpp:811 msgid "Cubic" msgstr "" -#: src/libslic3r/PrintConfig.cpp:826 +#: src/libslic3r/PrintConfig.cpp:812 msgid "Line" msgstr "" -#: src/libslic3r/PrintConfig.cpp:828 src/libslic3r/PrintConfig.cpp:1974 +#: src/libslic3r/PrintConfig.cpp:814 src/libslic3r/PrintConfig.cpp:1959 msgid "Honeycomb" msgstr "" -#: src/libslic3r/PrintConfig.cpp:829 +#: src/libslic3r/PrintConfig.cpp:815 msgid "3D Honeycomb" msgstr "" -#: src/libslic3r/PrintConfig.cpp:830 +#: src/libslic3r/PrintConfig.cpp:816 msgid "Gyroid" msgstr "" -#: src/libslic3r/PrintConfig.cpp:837 src/libslic3r/PrintConfig.cpp:846 -#: src/libslic3r/PrintConfig.cpp:854 src/libslic3r/PrintConfig.cpp:887 +#: src/libslic3r/PrintConfig.cpp:823 src/libslic3r/PrintConfig.cpp:832 +#: src/libslic3r/PrintConfig.cpp:840 src/libslic3r/PrintConfig.cpp:873 msgid "First layer" msgstr "" -#: src/libslic3r/PrintConfig.cpp:838 +#: src/libslic3r/PrintConfig.cpp:824 msgid "" "This is the acceleration your printer will use for first layer. Set zero to " "disable acceleration control for first layer." msgstr "" -#: src/libslic3r/PrintConfig.cpp:847 +#: src/libslic3r/PrintConfig.cpp:833 msgid "" "Heated build plate temperature for the first layer. Set this to zero to " "disable bed temperature control commands in the output." msgstr "" -#: src/libslic3r/PrintConfig.cpp:856 +#: src/libslic3r/PrintConfig.cpp:842 msgid "" "Set this to a non-zero value to set a manual extrusion width for first " "layer. You can use this to force fatter extrudates for better adhesion. If " @@ -6313,11 +5664,7 @@ msgid "" "layer height. If set to zero, it will use the default extrusion width." msgstr "" -#: src/libslic3r/PrintConfig.cpp:866 -msgid "First layer height" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:868 +#: src/libslic3r/PrintConfig.cpp:854 msgid "" "When printing with very low layer heights, you might still want to print a " "thicker bottom layer to improve adhesion and tolerance for non perfect build " @@ -6325,63 +5672,63 @@ msgid "" "example: 150%) over the default layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:877 +#: src/libslic3r/PrintConfig.cpp:863 msgid "First layer speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:878 +#: src/libslic3r/PrintConfig.cpp:864 msgid "" "If expressed as absolute value in mm/s, this speed will be applied to all " "the print moves of the first layer, regardless of their type. If expressed " "as a percentage (for example: 40%) it will scale the default speeds." msgstr "" -#: src/libslic3r/PrintConfig.cpp:888 +#: src/libslic3r/PrintConfig.cpp:874 msgid "" "Extruder temperature for first layer. If you want to control temperature " "manually during print, set this to zero to disable temperature control " "commands in the output file." msgstr "" -#: src/libslic3r/PrintConfig.cpp:897 +#: src/libslic3r/PrintConfig.cpp:883 msgid "" "Speed for filling small gaps using short zigzag moves. Keep this reasonably " "low to avoid too much shaking and resonance issues. Set zero to disable gaps " "filling." msgstr "" -#: src/libslic3r/PrintConfig.cpp:905 +#: src/libslic3r/PrintConfig.cpp:891 msgid "Verbose G-code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:906 +#: src/libslic3r/PrintConfig.cpp:892 msgid "" "Enable this to get a commented G-code file, with each line explained by a " "descriptive text. If you print from SD card, the additional weight of the " "file could make your firmware slow down." msgstr "" -#: src/libslic3r/PrintConfig.cpp:913 +#: src/libslic3r/PrintConfig.cpp:899 msgid "G-code flavor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:914 +#: src/libslic3r/PrintConfig.cpp:900 msgid "" "Some G/M-code commands, including temperature control and others, are not " "universal. Set this option to your printer's firmware to get a compatible " -"output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any " +"output. The \"No extrusion\" flavor prevents Slic3r from exporting any " "extrusion value at all." msgstr "" -#: src/libslic3r/PrintConfig.cpp:937 +#: src/libslic3r/PrintConfig.cpp:923 msgid "No extrusion" msgstr "" -#: src/libslic3r/PrintConfig.cpp:942 +#: src/libslic3r/PrintConfig.cpp:928 msgid "Label objects" msgstr "" -#: src/libslic3r/PrintConfig.cpp:943 +#: src/libslic3r/PrintConfig.cpp:929 msgid "" "Enable this to add comments into the G-Code labeling print moves with what " "object they belong to, which is useful for the Octoprint CancelObject " @@ -6389,46 +5736,46 @@ msgid "" "setup and Wipe into Object / Wipe into Infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:950 +#: src/libslic3r/PrintConfig.cpp:936 msgid "High extruder current on filament swap" msgstr "" -#: src/libslic3r/PrintConfig.cpp:951 +#: src/libslic3r/PrintConfig.cpp:937 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:959 +#: src/libslic3r/PrintConfig.cpp:945 msgid "" "This is the acceleration your printer will use for infill. Set zero to " "disable acceleration control for infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:967 +#: src/libslic3r/PrintConfig.cpp:953 msgid "Combine infill every" msgstr "" -#: src/libslic3r/PrintConfig.cpp:969 +#: src/libslic3r/PrintConfig.cpp:955 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:972 +#: src/libslic3r/PrintConfig.cpp:958 msgid "Combine infill every n layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:978 +#: src/libslic3r/PrintConfig.cpp:964 msgid "Infill extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:980 +#: src/libslic3r/PrintConfig.cpp:966 msgid "The extruder to use when printing infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:988 +#: src/libslic3r/PrintConfig.cpp:974 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 " @@ -6437,32 +5784,32 @@ msgid "" "example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:997 +#: src/libslic3r/PrintConfig.cpp:983 msgid "Infill before perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:998 +#: src/libslic3r/PrintConfig.cpp:984 msgid "" "This option will switch the print order of perimeters and infill, making the " "latter first." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1003 +#: src/libslic3r/PrintConfig.cpp:989 msgid "Only infill where needed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1005 +#: src/libslic3r/PrintConfig.cpp:991 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:1012 +#: src/libslic3r/PrintConfig.cpp:998 msgid "Infill/perimeters overlap" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1014 +#: src/libslic3r/PrintConfig.cpp:1000 msgid "" "This setting applies an additional overlap between infill and perimeters for " "better bonding. Theoretically this shouldn't be needed, but backlash might " @@ -6470,30 +5817,30 @@ msgid "" "perimeter extrusion width." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1025 +#: src/libslic3r/PrintConfig.cpp:1011 msgid "Speed for printing the internal fill. Set to zero for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1033 +#: src/libslic3r/PrintConfig.cpp:1019 msgid "Inherits profile" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1034 +#: src/libslic3r/PrintConfig.cpp:1020 msgid "Name of the profile, from which this profile inherits." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1047 +#: src/libslic3r/PrintConfig.cpp:1033 msgid "Interface shells" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1048 +#: src/libslic3r/PrintConfig.cpp:1034 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:1057 +#: src/libslic3r/PrintConfig.cpp:1043 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 " @@ -6501,11 +5848,11 @@ msgid "" "[layer_z]." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1068 +#: src/libslic3r/PrintConfig.cpp:1054 msgid "Supports remaining times" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1069 +#: src/libslic3r/PrintConfig.cpp:1055 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. " @@ -6513,151 +5860,151 @@ msgid "" "firmware supports M73 Qxx Sxx for the silent mode." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1077 +#: src/libslic3r/PrintConfig.cpp:1063 msgid "Supports stealth mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1078 +#: src/libslic3r/PrintConfig.cpp:1064 msgid "The firmware supports stealth mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1102 +#: src/libslic3r/PrintConfig.cpp:1088 msgid "Maximum feedrate X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1103 +#: src/libslic3r/PrintConfig.cpp:1089 msgid "Maximum feedrate Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1104 +#: src/libslic3r/PrintConfig.cpp:1090 msgid "Maximum feedrate Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1105 +#: src/libslic3r/PrintConfig.cpp:1091 msgid "Maximum feedrate E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1108 +#: src/libslic3r/PrintConfig.cpp:1094 msgid "Maximum feedrate of the X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1109 +#: src/libslic3r/PrintConfig.cpp:1095 msgid "Maximum feedrate of the Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1110 +#: src/libslic3r/PrintConfig.cpp:1096 msgid "Maximum feedrate of the Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1111 +#: src/libslic3r/PrintConfig.cpp:1097 msgid "Maximum feedrate of the E axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1120 +#: src/libslic3r/PrintConfig.cpp:1106 msgid "Maximum acceleration X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1121 +#: src/libslic3r/PrintConfig.cpp:1107 msgid "Maximum acceleration Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1122 +#: src/libslic3r/PrintConfig.cpp:1108 msgid "Maximum acceleration Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1123 +#: src/libslic3r/PrintConfig.cpp:1109 msgid "Maximum acceleration E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1126 +#: src/libslic3r/PrintConfig.cpp:1112 msgid "Maximum acceleration of the X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1127 +#: src/libslic3r/PrintConfig.cpp:1113 msgid "Maximum acceleration of the Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1128 +#: src/libslic3r/PrintConfig.cpp:1114 msgid "Maximum acceleration of the Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1129 +#: src/libslic3r/PrintConfig.cpp:1115 msgid "Maximum acceleration of the E axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1138 +#: src/libslic3r/PrintConfig.cpp:1124 msgid "Maximum jerk X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1139 +#: src/libslic3r/PrintConfig.cpp:1125 msgid "Maximum jerk Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1140 +#: src/libslic3r/PrintConfig.cpp:1126 msgid "Maximum jerk Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1141 +#: src/libslic3r/PrintConfig.cpp:1127 msgid "Maximum jerk E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1144 +#: src/libslic3r/PrintConfig.cpp:1130 msgid "Maximum jerk of the X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1145 +#: src/libslic3r/PrintConfig.cpp:1131 msgid "Maximum jerk of the Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1146 +#: src/libslic3r/PrintConfig.cpp:1132 msgid "Maximum jerk of the Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1147 +#: src/libslic3r/PrintConfig.cpp:1133 msgid "Maximum jerk of the E axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1158 +#: src/libslic3r/PrintConfig.cpp:1144 msgid "Minimum feedrate when extruding" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1160 +#: src/libslic3r/PrintConfig.cpp:1146 msgid "Minimum feedrate when extruding (M205 S)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1169 +#: src/libslic3r/PrintConfig.cpp:1155 msgid "Minimum travel feedrate" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1171 +#: src/libslic3r/PrintConfig.cpp:1157 msgid "Minimum travel feedrate (M205 T)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1180 +#: src/libslic3r/PrintConfig.cpp:1166 msgid "Maximum acceleration when extruding" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1182 +#: src/libslic3r/PrintConfig.cpp:1168 msgid "Maximum acceleration when extruding (M204 S)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1191 +#: src/libslic3r/PrintConfig.cpp:1177 msgid "Maximum acceleration when retracting" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1193 +#: src/libslic3r/PrintConfig.cpp:1179 msgid "Maximum acceleration when retracting (M204 T)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1201 src/libslic3r/PrintConfig.cpp:1210 +#: src/libslic3r/PrintConfig.cpp:1187 src/libslic3r/PrintConfig.cpp:1196 msgid "Max" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1202 +#: src/libslic3r/PrintConfig.cpp:1188 msgid "This setting represents the maximum speed of your fan." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1211 +#: src/libslic3r/PrintConfig.cpp:1197 #, possible-c-format msgid "" "This is the highest printable layer height for this extruder, used to cap " @@ -6666,28 +6013,28 @@ msgid "" "adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1221 +#: src/libslic3r/PrintConfig.cpp:1207 msgid "Max print speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1222 +#: src/libslic3r/PrintConfig.cpp:1208 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:1232 +#: src/libslic3r/PrintConfig.cpp:1218 msgid "" "This experimental setting is used to set the maximum volumetric speed your " "extruder supports." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1241 +#: src/libslic3r/PrintConfig.cpp:1227 msgid "Max volumetric slope positive" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1242 src/libslic3r/PrintConfig.cpp:1253 +#: src/libslic3r/PrintConfig.cpp:1228 src/libslic3r/PrintConfig.cpp:1239 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 " @@ -6695,95 +6042,99 @@ msgid "" "s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1246 src/libslic3r/PrintConfig.cpp:1257 +#: src/libslic3r/PrintConfig.cpp:1232 src/libslic3r/PrintConfig.cpp:1243 msgid "mm³/s²" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1252 +#: src/libslic3r/PrintConfig.cpp:1238 msgid "Max volumetric slope negative" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1264 src/libslic3r/PrintConfig.cpp:1273 +#: src/libslic3r/PrintConfig.cpp:1250 src/libslic3r/PrintConfig.cpp:1259 msgid "Min" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1265 +#: src/libslic3r/PrintConfig.cpp:1251 msgid "This setting represents the minimum PWM your fan needs to work." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1274 +#: src/libslic3r/PrintConfig.cpp:1260 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:1282 +#: src/libslic3r/PrintConfig.cpp:1268 msgid "Min print speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1283 +#: src/libslic3r/PrintConfig.cpp:1269 msgid "Slic3r will not scale speed down below this speed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1290 +#: src/libslic3r/PrintConfig.cpp:1276 msgid "Minimal filament extrusion length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1291 +#: src/libslic3r/PrintConfig.cpp:1277 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:1300 +#: src/libslic3r/PrintConfig.cpp:1286 msgid "Configuration notes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1301 +#: src/libslic3r/PrintConfig.cpp:1287 msgid "" "You can put here your personal notes. This text will be added to the G-code " "header comments." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1311 +#: src/libslic3r/PrintConfig.cpp:1296 +msgid "Nozzle diameter" +msgstr "" + +#: src/libslic3r/PrintConfig.cpp:1297 msgid "" "This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1316 +#: src/libslic3r/PrintConfig.cpp:1302 msgid "Host Type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1317 +#: src/libslic3r/PrintConfig.cpp:1303 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:1328 +#: src/libslic3r/PrintConfig.cpp:1314 msgid "Only retract when crossing perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1329 +#: src/libslic3r/PrintConfig.cpp:1315 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:1336 +#: src/libslic3r/PrintConfig.cpp:1322 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:1343 +#: src/libslic3r/PrintConfig.cpp:1329 msgid "Output filename format" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1344 +#: src/libslic3r/PrintConfig.cpp:1330 msgid "" "You can use all configuration options as variables inside this template. For " "example: [layer_height], [fill_density] etc. You can also use [timestamp], " @@ -6791,31 +6142,31 @@ msgid "" "[input_filename], [input_filename_base]." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1353 +#: src/libslic3r/PrintConfig.cpp:1339 msgid "Detect bridging perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1355 +#: src/libslic3r/PrintConfig.cpp:1341 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:1361 +#: src/libslic3r/PrintConfig.cpp:1347 msgid "Filament parking position" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1362 +#: src/libslic3r/PrintConfig.cpp:1348 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:1370 +#: src/libslic3r/PrintConfig.cpp:1356 msgid "Extra loading distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1371 +#: src/libslic3r/PrintConfig.cpp:1357 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 " @@ -6823,28 +6174,28 @@ msgid "" "than unloading." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1379 src/libslic3r/PrintConfig.cpp:1397 -#: src/libslic3r/PrintConfig.cpp:1409 src/libslic3r/PrintConfig.cpp:1419 +#: src/libslic3r/PrintConfig.cpp:1365 src/libslic3r/PrintConfig.cpp:1383 +#: src/libslic3r/PrintConfig.cpp:1395 src/libslic3r/PrintConfig.cpp:1405 msgid "Perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1380 +#: src/libslic3r/PrintConfig.cpp:1366 msgid "" "This is the acceleration your printer will use for perimeters. A high value " "like 9000 usually gives good results if your hardware is up to the job. Set " "zero to disable acceleration control for perimeters." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1388 +#: src/libslic3r/PrintConfig.cpp:1374 msgid "Perimeter extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1390 +#: src/libslic3r/PrintConfig.cpp:1376 msgid "" "The extruder to use when printing perimeters and brim. First extruder is 1." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1399 +#: src/libslic3r/PrintConfig.cpp:1385 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 " @@ -6853,12 +6204,12 @@ msgid "" "it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1411 +#: src/libslic3r/PrintConfig.cpp:1397 msgid "" "Speed for perimeters (contours, aka vertical shells). Set to zero for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1421 +#: src/libslic3r/PrintConfig.cpp:1407 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 " @@ -6866,11 +6217,11 @@ msgid "" "Perimeters option is enabled." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1425 +#: src/libslic3r/PrintConfig.cpp:1411 msgid "(minimum)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1433 +#: src/libslic3r/PrintConfig.cpp:1419 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. " @@ -6879,55 +6230,55 @@ msgid "" "environment variables." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1445 +#: src/libslic3r/PrintConfig.cpp:1431 msgid "Printer type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1446 +#: src/libslic3r/PrintConfig.cpp:1432 msgid "Type of the printer." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1451 +#: src/libslic3r/PrintConfig.cpp:1437 msgid "Printer notes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1452 +#: src/libslic3r/PrintConfig.cpp:1438 msgid "You can put your notes regarding the printer here." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1460 +#: src/libslic3r/PrintConfig.cpp:1446 msgid "Printer vendor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1461 +#: src/libslic3r/PrintConfig.cpp:1447 msgid "Name of the printer vendor." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1466 +#: src/libslic3r/PrintConfig.cpp:1452 msgid "Printer variant" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1467 +#: src/libslic3r/PrintConfig.cpp:1453 msgid "" "Name of the printer variant. For example, the printer variants may be " "differentiated by a nozzle diameter." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1480 +#: src/libslic3r/PrintConfig.cpp:1466 msgid "Raft layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1482 +#: src/libslic3r/PrintConfig.cpp:1468 msgid "" "The object will be raised by this number of layers, and support material " "will be generated under it." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1490 +#: src/libslic3r/PrintConfig.cpp:1476 msgid "Resolution" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1491 +#: src/libslic3r/PrintConfig.cpp:1477 msgid "" "Minimum detail resolution, used to simplify the input file for speeding up " "the slicing job and reducing memory usage. High-resolution models often " @@ -6935,278 +6286,278 @@ msgid "" "simplification and use full resolution from input." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1501 +#: src/libslic3r/PrintConfig.cpp:1487 msgid "Minimum travel after retraction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1502 +#: src/libslic3r/PrintConfig.cpp:1488 msgid "" "Retraction is not triggered when travel moves are shorter than this length." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1508 +#: src/libslic3r/PrintConfig.cpp:1494 msgid "Retract amount before wipe" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1509 +#: src/libslic3r/PrintConfig.cpp:1495 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:1516 +#: src/libslic3r/PrintConfig.cpp:1502 msgid "Retract on layer change" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1517 +#: src/libslic3r/PrintConfig.cpp:1503 msgid "This flag enforces a retraction whenever a Z move is done." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1522 src/libslic3r/PrintConfig.cpp:1530 +#: src/libslic3r/PrintConfig.cpp:1508 src/libslic3r/PrintConfig.cpp:1516 msgid "Length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1523 +#: src/libslic3r/PrintConfig.cpp:1509 msgid "Retraction Length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1524 +#: src/libslic3r/PrintConfig.cpp:1510 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:1526 src/libslic3r/PrintConfig.cpp:1535 +#: src/libslic3r/PrintConfig.cpp:1512 src/libslic3r/PrintConfig.cpp:1521 msgid "mm (zero to disable)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1531 +#: src/libslic3r/PrintConfig.cpp:1517 msgid "Retraction Length (Toolchange)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1532 +#: src/libslic3r/PrintConfig.cpp:1518 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:1540 +#: src/libslic3r/PrintConfig.cpp:1526 msgid "Lift Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1541 +#: src/libslic3r/PrintConfig.cpp:1527 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:1548 +#: src/libslic3r/PrintConfig.cpp:1534 msgid "Above Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1549 +#: src/libslic3r/PrintConfig.cpp:1535 msgid "Only lift Z above" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1550 +#: src/libslic3r/PrintConfig.cpp:1536 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:1557 +#: src/libslic3r/PrintConfig.cpp:1543 msgid "Below Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1558 +#: src/libslic3r/PrintConfig.cpp:1544 msgid "Only lift Z below" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1559 +#: src/libslic3r/PrintConfig.cpp:1545 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:1567 src/libslic3r/PrintConfig.cpp:1575 +#: src/libslic3r/PrintConfig.cpp:1553 src/libslic3r/PrintConfig.cpp:1561 msgid "Extra length on restart" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1568 +#: src/libslic3r/PrintConfig.cpp:1554 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:1576 +#: src/libslic3r/PrintConfig.cpp:1562 msgid "" "When the retraction is compensated after changing tool, the extruder will " "push this additional amount of filament." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1583 src/libslic3r/PrintConfig.cpp:1584 +#: src/libslic3r/PrintConfig.cpp:1569 src/libslic3r/PrintConfig.cpp:1570 msgid "Retraction Speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1585 +#: src/libslic3r/PrintConfig.cpp:1571 msgid "The speed for retractions (it only applies to the extruder motor)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1591 src/libslic3r/PrintConfig.cpp:1592 +#: src/libslic3r/PrintConfig.cpp:1577 src/libslic3r/PrintConfig.cpp:1578 msgid "Deretraction Speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1593 +#: src/libslic3r/PrintConfig.cpp:1579 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:1600 +#: src/libslic3r/PrintConfig.cpp:1586 msgid "Seam position" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1602 +#: src/libslic3r/PrintConfig.cpp:1588 msgid "Position of perimeters starting points." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1608 +#: src/libslic3r/PrintConfig.cpp:1594 msgid "Random" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1609 +#: src/libslic3r/PrintConfig.cpp:1595 msgid "Nearest" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1610 +#: src/libslic3r/PrintConfig.cpp:1596 msgid "Aligned" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1618 +#: src/libslic3r/PrintConfig.cpp:1604 msgid "Direction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1620 +#: src/libslic3r/PrintConfig.cpp:1606 msgid "Preferred direction of the seam" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1621 +#: src/libslic3r/PrintConfig.cpp:1607 msgid "Seam preferred direction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1628 +#: src/libslic3r/PrintConfig.cpp:1614 msgid "Jitter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1630 +#: src/libslic3r/PrintConfig.cpp:1616 msgid "Seam preferred direction jitter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1631 +#: src/libslic3r/PrintConfig.cpp:1617 msgid "Preferred direction of the seam - jitter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1641 +#: src/libslic3r/PrintConfig.cpp:1627 msgid "USB/serial port for printer connection." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1648 +#: src/libslic3r/PrintConfig.cpp:1634 msgid "Serial port speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1649 +#: src/libslic3r/PrintConfig.cpp:1635 msgid "Speed (baud) of USB/serial port for printer connection." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1658 +#: src/libslic3r/PrintConfig.cpp:1644 msgid "Distance from object" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1659 +#: src/libslic3r/PrintConfig.cpp:1645 msgid "" "Distance between skirt and object(s). Set this to zero to attach the skirt " "to the object(s) and get a brim for better adhesion." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1666 +#: src/libslic3r/PrintConfig.cpp:1652 msgid "Skirt height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1667 +#: src/libslic3r/PrintConfig.cpp:1653 msgid "" "Height of skirt expressed in layers. Set this to a tall value to use skirt " "as a shield against drafts." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1674 +#: src/libslic3r/PrintConfig.cpp:1660 msgid "Loops (minimum)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1675 +#: src/libslic3r/PrintConfig.cpp:1661 msgid "Skirt Loops" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1676 +#: src/libslic3r/PrintConfig.cpp:1662 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:1684 +#: src/libslic3r/PrintConfig.cpp:1670 msgid "Slow down if layer print time is below" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1685 +#: src/libslic3r/PrintConfig.cpp:1671 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:1695 +#: src/libslic3r/PrintConfig.cpp:1681 msgid "Small perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1697 +#: src/libslic3r/PrintConfig.cpp:1683 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:1707 +#: src/libslic3r/PrintConfig.cpp:1693 msgid "Solid infill threshold area" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1709 +#: src/libslic3r/PrintConfig.cpp:1695 msgid "" "Force solid infill for regions having a smaller area than the specified " "threshold." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1710 +#: src/libslic3r/PrintConfig.cpp:1696 msgid "mm²" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1716 +#: src/libslic3r/PrintConfig.cpp:1702 msgid "Solid infill extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1718 +#: src/libslic3r/PrintConfig.cpp:1704 msgid "The extruder to use when printing solid infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1724 +#: src/libslic3r/PrintConfig.cpp:1710 msgid "Solid infill every" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1726 +#: src/libslic3r/PrintConfig.cpp:1712 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 " @@ -7214,7 +6565,7 @@ msgid "" "according to nozzle diameter and layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1738 +#: src/libslic3r/PrintConfig.cpp:1724 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, " @@ -7222,22 +6573,22 @@ msgid "" "(for example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1748 +#: src/libslic3r/PrintConfig.cpp:1734 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:1760 +#: src/libslic3r/PrintConfig.cpp:1746 msgid "Number of solid layers to generate on top and bottom surfaces." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1766 +#: src/libslic3r/PrintConfig.cpp:1752 msgid "Spiral vase" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1767 +#: src/libslic3r/PrintConfig.cpp:1753 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, " @@ -7246,128 +6597,127 @@ msgid "" "when printing more than an object." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1775 +#: src/libslic3r/PrintConfig.cpp:1761 msgid "Temperature variation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1776 +#: src/libslic3r/PrintConfig.cpp:1762 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:1786 +#: src/libslic3r/PrintConfig.cpp:1772 msgid "" "This start procedure is inserted at the beginning, after bed has reached the " "target temperature and extruder just started heating, and before extruder " -"has finished heating. If PrusaSlicer detects M104 or M190 in your custom " -"codes, such commands will not be prepended automatically so you're free to " +"has finished heating. If Slic3r detects M104 or M190 in your custom codes, " +"such commands will not be prepended automatically so you're free to " "customize the order of heating commands and other custom actions. Note that " -"you can use placeholder variables for all PrusaSlicer settings, so you can " -"put a \"M109 S[first_layer_temperature]\" command wherever you want." +"you can use placeholder variables for all Slic3r settings, so you can put a " +"\"M109 S[first_layer_temperature]\" command wherever you want." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1801 +#: src/libslic3r/PrintConfig.cpp:1787 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 " -"printers). This is used to override settings for a specific filament. If " -"PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such " -"commands will not be prepended automatically so you're free to customize the " -"order of heating commands and other custom actions. Note that you can use " -"placeholder variables for all PrusaSlicer settings, so you can put a \"M109 " +"gcode. This is used to override settings for a specific filament. If Slic3r " +"detects M104, M109, M140 or M190 in your custom codes, such commands will " +"not be prepended automatically so you're free to customize the order of " +"heating commands and other custom actions. Note that you can use placeholder " +"variables for all Slic3r settings, so you can put a \"M109 " "S[first_layer_temperature]\" command wherever you want. If you have multiple " "extruders, the gcode is processed in extruder order." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1817 +#: src/libslic3r/PrintConfig.cpp:1802 msgid "Single Extruder Multi Material" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1818 +#: src/libslic3r/PrintConfig.cpp:1803 msgid "The printer multiplexes filaments into a single hot end." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1823 +#: src/libslic3r/PrintConfig.cpp:1808 msgid "Prime all printing extruders" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1824 +#: src/libslic3r/PrintConfig.cpp:1809 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:1829 +#: src/libslic3r/PrintConfig.cpp:1814 msgid "Generate support material" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1831 +#: src/libslic3r/PrintConfig.cpp:1816 msgid "Enable support material generation." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1835 +#: src/libslic3r/PrintConfig.cpp:1820 msgid "Auto generated supports" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1837 +#: src/libslic3r/PrintConfig.cpp:1822 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:1843 +#: src/libslic3r/PrintConfig.cpp:1828 msgid "XY separation between an object and its support" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1845 +#: src/libslic3r/PrintConfig.cpp:1830 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:1855 +#: src/libslic3r/PrintConfig.cpp:1840 msgid "Pattern angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1857 +#: src/libslic3r/PrintConfig.cpp:1842 msgid "" "Use this setting to rotate the support material pattern on the horizontal " "plane." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1867 src/libslic3r/PrintConfig.cpp:2563 +#: src/libslic3r/PrintConfig.cpp:1852 src/libslic3r/PrintConfig.cpp:2460 msgid "" "Only create support if it lies on a build plate. Don't create support on a " "print." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1873 +#: src/libslic3r/PrintConfig.cpp:1858 msgid "Contact Z distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1875 +#: src/libslic3r/PrintConfig.cpp:1860 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:1882 +#: src/libslic3r/PrintConfig.cpp:1867 msgid "0 (soluble)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1883 +#: src/libslic3r/PrintConfig.cpp:1868 msgid "0.2 (detachable)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1888 +#: src/libslic3r/PrintConfig.cpp:1873 msgid "Enforce support for the first" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1890 +#: src/libslic3r/PrintConfig.cpp:1875 msgid "" "Generate support material for the specified number of layers counting from " "bottom, regardless of whether normal support material is enabled or not and " @@ -7375,21 +6725,21 @@ msgid "" "of objects having a very thin or poor footprint on the build plate." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1895 +#: src/libslic3r/PrintConfig.cpp:1880 msgid "Enforce support for the first n layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1901 +#: src/libslic3r/PrintConfig.cpp:1886 msgid "Support material/raft/skirt extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1903 +#: src/libslic3r/PrintConfig.cpp:1888 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:1912 +#: src/libslic3r/PrintConfig.cpp:1897 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, " @@ -7397,89 +6747,89 @@ msgid "" "example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1920 +#: src/libslic3r/PrintConfig.cpp:1905 msgid "Interface loops" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1922 +#: src/libslic3r/PrintConfig.cpp:1907 msgid "" "Cover the top contact layer of the supports with loops. Disabled by default." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1927 +#: src/libslic3r/PrintConfig.cpp:1912 msgid "Support material/raft interface extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1929 +#: src/libslic3r/PrintConfig.cpp:1914 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:1936 +#: src/libslic3r/PrintConfig.cpp:1921 msgid "Interface layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1938 +#: src/libslic3r/PrintConfig.cpp:1923 msgid "" "Number of interface layers to insert between the object(s) and support " "material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1945 +#: src/libslic3r/PrintConfig.cpp:1930 msgid "Interface pattern spacing" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1947 +#: src/libslic3r/PrintConfig.cpp:1932 msgid "Spacing between interface lines. Set zero to get a solid interface." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1956 +#: src/libslic3r/PrintConfig.cpp:1941 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:1965 +#: src/libslic3r/PrintConfig.cpp:1950 msgid "Pattern" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1967 +#: src/libslic3r/PrintConfig.cpp:1952 msgid "Pattern used to generate support material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1973 +#: src/libslic3r/PrintConfig.cpp:1958 msgid "Rectilinear grid" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1979 +#: src/libslic3r/PrintConfig.cpp:1964 msgid "Pattern spacing" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1981 +#: src/libslic3r/PrintConfig.cpp:1966 msgid "Spacing between support material lines." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1990 +#: src/libslic3r/PrintConfig.cpp:1975 msgid "Speed for printing support material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1997 +#: src/libslic3r/PrintConfig.cpp:1982 msgid "Synchronize with object layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1999 +#: src/libslic3r/PrintConfig.cpp:1984 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:2005 +#: src/libslic3r/PrintConfig.cpp:1990 msgid "Overhang threshold" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2007 +#: src/libslic3r/PrintConfig.cpp:1992 msgid "" "Support material will not be generated for overhangs whose slope angle (90° " "= vertical) is above the given threshold. In other words, this value " @@ -7488,53 +6838,50 @@ msgid "" "detection (recommended)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2019 +#: src/libslic3r/PrintConfig.cpp:2004 msgid "With sheath around the support" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2021 +#: src/libslic3r/PrintConfig.cpp:2006 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:2028 +#: src/libslic3r/PrintConfig.cpp:2013 msgid "" "Extruder temperature for layers after the first one. Set this to zero to " "disable temperature control commands in the output." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2036 +#: src/libslic3r/PrintConfig.cpp:2021 msgid "Detect thin walls" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2038 +#: src/libslic3r/PrintConfig.cpp:2023 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:2044 +#: src/libslic3r/PrintConfig.cpp:2029 msgid "Threads" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2045 +#: src/libslic3r/PrintConfig.cpp:2030 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:2057 +#: src/libslic3r/PrintConfig.cpp:2042 msgid "" -"This custom code is inserted before every toolchange. Placeholder variables " -"for all PrusaSlicer settings as well as {previous_extruder} and " -"{next_extruder} can be used. When a tool-changing command which changes to " -"the correct extruder is included (such as T{next_extruder}), PrusaSlicer " -"will emit no other such command. It is therefore possible to script custom " -"behaviour both before and after the toolchange." +"This custom code is inserted right before every extruder change. Note that " +"you can use placeholder variables for all Slic3r settings as well as " +"[previous_extruder] and [next_extruder]." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2070 +#: src/libslic3r/PrintConfig.cpp:2054 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 " @@ -7543,7 +6890,7 @@ msgid "" "percentage (for example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2081 +#: src/libslic3r/PrintConfig.cpp:2065 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 " @@ -7552,43 +6899,43 @@ msgid "" "for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2096 +#: src/libslic3r/PrintConfig.cpp:2080 msgid "Number of solid layers to generate on top surfaces." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2097 +#: src/libslic3r/PrintConfig.cpp:2081 msgid "Top solid layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2103 +#: src/libslic3r/PrintConfig.cpp:2087 msgid "Speed for travel moves (jumps between distant extrusion points)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2111 +#: src/libslic3r/PrintConfig.cpp:2095 msgid "Use firmware retraction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2112 +#: src/libslic3r/PrintConfig.cpp:2096 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:2118 +#: src/libslic3r/PrintConfig.cpp:2102 msgid "Use relative E distances" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2119 +#: src/libslic3r/PrintConfig.cpp:2103 msgid "" "If your firmware requires relative E values, check this, otherwise leave it " "unchecked. Most firmwares use absolute values." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2125 +#: src/libslic3r/PrintConfig.cpp:2109 msgid "Use volumetric E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2126 +#: src/libslic3r/PrintConfig.cpp:2110 msgid "" "This experimental setting uses outputs the E values in cubic millimeters " "instead of linear millimeters. If your firmware doesn't already know " @@ -7598,127 +6945,127 @@ msgid "" "only supported in recent Marlin." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2136 +#: src/libslic3r/PrintConfig.cpp:2120 msgid "Enable variable layer height feature" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2137 +#: src/libslic3r/PrintConfig.cpp:2121 msgid "" "Some printers or printer setups may have difficulties printing with a " "variable layer height. Enabled by default." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2143 +#: src/libslic3r/PrintConfig.cpp:2127 msgid "Wipe while retracting" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2144 +#: src/libslic3r/PrintConfig.cpp:2128 msgid "" "This flag will move the nozzle while retracting to minimize the possible " "blob on leaky extruders." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2151 +#: src/libslic3r/PrintConfig.cpp:2135 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:2157 +#: src/libslic3r/PrintConfig.cpp:2141 msgid "Purging volumes - load/unload volumes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2158 +#: src/libslic3r/PrintConfig.cpp:2142 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:2164 +#: src/libslic3r/PrintConfig.cpp:2148 msgid "Purging volumes - matrix" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2165 +#: src/libslic3r/PrintConfig.cpp:2149 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:2174 +#: src/libslic3r/PrintConfig.cpp:2158 msgid "Position X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2175 +#: src/libslic3r/PrintConfig.cpp:2159 msgid "X coordinate of the left front corner of a wipe tower" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2181 +#: src/libslic3r/PrintConfig.cpp:2165 msgid "Position Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2182 +#: src/libslic3r/PrintConfig.cpp:2166 msgid "Y coordinate of the left front corner of a wipe tower" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2189 +#: src/libslic3r/PrintConfig.cpp:2173 msgid "Width of a wipe tower" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2195 +#: src/libslic3r/PrintConfig.cpp:2179 msgid "Wipe tower rotation angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2196 +#: src/libslic3r/PrintConfig.cpp:2180 msgid "Wipe tower rotation angle with respect to x-axis." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2203 +#: src/libslic3r/PrintConfig.cpp:2187 msgid "Wipe into this object's infill" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2204 +#: src/libslic3r/PrintConfig.cpp:2188 msgid "" "Purging after toolchange will 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:2211 +#: src/libslic3r/PrintConfig.cpp:2195 msgid "Wipe into this object" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2212 +#: src/libslic3r/PrintConfig.cpp:2196 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:2218 +#: src/libslic3r/PrintConfig.cpp:2202 msgid "Maximal bridging distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2219 +#: src/libslic3r/PrintConfig.cpp:2203 msgid "Maximal distance between supports on sparse infill sections." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2225 +#: src/libslic3r/PrintConfig.cpp:2209 msgid "XY Size Compensation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2227 +#: src/libslic3r/PrintConfig.cpp:2211 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:2235 +#: src/libslic3r/PrintConfig.cpp:2219 msgid "Z offset" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2236 +#: src/libslic3r/PrintConfig.cpp:2220 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 " @@ -7726,361 +7073,308 @@ msgid "" "print bed, set this to -0.3 (or fix your endstop)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2294 +#: src/libslic3r/PrintConfig.cpp:2237 msgid "Display width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2295 +#: src/libslic3r/PrintConfig.cpp:2238 msgid "Width of the display" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2300 +#: src/libslic3r/PrintConfig.cpp:2243 msgid "Display height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2301 +#: src/libslic3r/PrintConfig.cpp:2244 msgid "Height of the display" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2306 +#: src/libslic3r/PrintConfig.cpp:2249 msgid "Number of pixels in" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2308 +#: src/libslic3r/PrintConfig.cpp:2251 msgid "Number of pixels in X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2314 +#: src/libslic3r/PrintConfig.cpp:2257 msgid "Number of pixels in Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2319 -msgid "Display horizontal mirroring" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2320 -msgid "Mirror horizontally" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2321 -msgid "Enable horizontal mirroring of output images" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2326 -msgid "Display vertical mirroring" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2327 -msgid "Mirror vertically" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2328 -msgid "Enable vertical mirroring of output images" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2333 +#: src/libslic3r/PrintConfig.cpp:2262 msgid "Display orientation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2334 +#: src/libslic3r/PrintConfig.cpp:2263 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:2340 +#: src/libslic3r/PrintConfig.cpp:2269 msgid "Landscape" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2341 +#: src/libslic3r/PrintConfig.cpp:2270 msgid "Portrait" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2346 +#: src/libslic3r/PrintConfig.cpp:2275 msgid "Fast" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2347 +#: src/libslic3r/PrintConfig.cpp:2276 msgid "Fast tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2348 +#: src/libslic3r/PrintConfig.cpp:2277 msgid "Time of the fast tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2355 +#: src/libslic3r/PrintConfig.cpp:2284 msgid "Slow" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2356 +#: src/libslic3r/PrintConfig.cpp:2285 msgid "Slow tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2357 +#: src/libslic3r/PrintConfig.cpp:2286 msgid "Time of the slow tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2364 +#: src/libslic3r/PrintConfig.cpp:2293 msgid "Area fill" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2365 +#: src/libslic3r/PrintConfig.cpp:2294 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:2372 src/libslic3r/PrintConfig.cpp:2373 -#: src/libslic3r/PrintConfig.cpp:2374 +#: src/libslic3r/PrintConfig.cpp:2301 src/libslic3r/PrintConfig.cpp:2302 +#: src/libslic3r/PrintConfig.cpp:2303 msgid "Printer scaling correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2380 src/libslic3r/PrintConfig.cpp:2381 +#: src/libslic3r/PrintConfig.cpp:2309 src/libslic3r/PrintConfig.cpp:2310 msgid "Printer absolute correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2382 +#: src/libslic3r/PrintConfig.cpp:2311 msgid "" "Will inflate or deflate the sliced 2D polygons according to the sign of the " "correction." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2388 src/libslic3r/PrintConfig.cpp:2389 +#: src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2318 msgid "Printer gamma correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2390 +#: src/libslic3r/PrintConfig.cpp:2319 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:2401 src/libslic3r/PrintConfig.cpp:2402 +#: src/libslic3r/PrintConfig.cpp:2330 src/libslic3r/PrintConfig.cpp:2331 msgid "Initial layer height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2408 +#: src/libslic3r/PrintConfig.cpp:2337 msgid "Faded layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2409 +#: src/libslic3r/PrintConfig.cpp:2338 msgid "" "Number of the layers needed for the exposure time fade from initial exposure " "time to the exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2417 -msgid "Minimum exposure time" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2425 -msgid "Maximum exposure time" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2432 src/libslic3r/PrintConfig.cpp:2433 +#: src/libslic3r/PrintConfig.cpp:2345 src/libslic3r/PrintConfig.cpp:2346 msgid "Exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2439 src/libslic3r/PrintConfig.cpp:2440 -msgid "Minimum initial exposure time" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2447 src/libslic3r/PrintConfig.cpp:2448 -msgid "Maximum initial exposure time" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2455 src/libslic3r/PrintConfig.cpp:2456 +#: src/libslic3r/PrintConfig.cpp:2352 src/libslic3r/PrintConfig.cpp:2353 msgid "Initial exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2462 src/libslic3r/PrintConfig.cpp:2463 +#: src/libslic3r/PrintConfig.cpp:2359 src/libslic3r/PrintConfig.cpp:2360 msgid "Correction for expansion" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2469 +#: src/libslic3r/PrintConfig.cpp:2366 msgid "SLA print material notes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2470 +#: src/libslic3r/PrintConfig.cpp:2367 msgid "You can put your notes regarding the SLA print material here." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2478 src/libslic3r/PrintConfig.cpp:2489 +#: src/libslic3r/PrintConfig.cpp:2375 src/libslic3r/PrintConfig.cpp:2386 msgid "Default SLA material profile" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2500 +#: src/libslic3r/PrintConfig.cpp:2397 msgid "Generate supports" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2502 +#: src/libslic3r/PrintConfig.cpp:2399 msgid "Generate supports for the models" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2507 +#: src/libslic3r/PrintConfig.cpp:2404 msgid "Support head front diameter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2509 +#: src/libslic3r/PrintConfig.cpp:2406 msgid "Diameter of the pointing side of the head" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2516 +#: src/libslic3r/PrintConfig.cpp:2413 msgid "Support head penetration" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2518 +#: src/libslic3r/PrintConfig.cpp:2415 msgid "How much the pinhead has to penetrate the model surface" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2525 +#: src/libslic3r/PrintConfig.cpp:2422 msgid "Support head width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2527 +#: src/libslic3r/PrintConfig.cpp:2424 msgid "Width from the back sphere center to the front sphere center" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2535 +#: src/libslic3r/PrintConfig.cpp:2432 msgid "Support pillar diameter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2537 +#: src/libslic3r/PrintConfig.cpp:2434 msgid "Diameter in mm of the support pillars" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2545 +#: src/libslic3r/PrintConfig.cpp:2442 msgid "Support pillar connection mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2546 +#: src/libslic3r/PrintConfig.cpp:2443 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:2554 +#: src/libslic3r/PrintConfig.cpp:2451 msgid "Zig-Zag" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2555 +#: src/libslic3r/PrintConfig.cpp:2452 msgid "Cross" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2556 +#: src/libslic3r/PrintConfig.cpp:2453 msgid "Dynamic" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2568 +#: src/libslic3r/PrintConfig.cpp:2465 msgid "Pillar widening factor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2570 +#: src/libslic3r/PrintConfig.cpp:2467 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:2579 +#: src/libslic3r/PrintConfig.cpp:2476 msgid "Support base diameter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2581 +#: src/libslic3r/PrintConfig.cpp:2478 msgid "Diameter in mm of the pillar base" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2589 +#: src/libslic3r/PrintConfig.cpp:2486 msgid "Support base height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2591 +#: src/libslic3r/PrintConfig.cpp:2488 msgid "The height of the pillar base cone" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2598 -msgid "Support base safety distance" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2601 -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:2611 +#: src/libslic3r/PrintConfig.cpp:2495 msgid "Critical angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2613 +#: src/libslic3r/PrintConfig.cpp:2497 msgid "The default angle for connecting support sticks and junctions." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2621 +#: src/libslic3r/PrintConfig.cpp:2505 msgid "Max bridge length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2623 +#: src/libslic3r/PrintConfig.cpp:2507 msgid "The max length of a bridge" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2630 +#: src/libslic3r/PrintConfig.cpp:2514 msgid "Max pillar linking distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2632 +#: src/libslic3r/PrintConfig.cpp:2516 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:2640 +#: src/libslic3r/PrintConfig.cpp:2524 msgid "Object elevation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2642 -msgid "" -"How much the supports should lift up the supported object. If \"Pad around " -"object\" is enabled, this value is ignored." +#: src/libslic3r/PrintConfig.cpp:2526 +msgid "How much the supports should lift up the supported object." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2653 +#: src/libslic3r/PrintConfig.cpp:2536 msgid "This is a relative measure of support points density." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2659 +#: src/libslic3r/PrintConfig.cpp:2542 msgid "Minimal distance of the support points" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2661 +#: src/libslic3r/PrintConfig.cpp:2544 msgid "No support points will be placed closer than this threshold." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2667 +#: src/libslic3r/PrintConfig.cpp:2550 msgid "Use pad" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2669 +#: src/libslic3r/PrintConfig.cpp:2552 msgid "Add a pad underneath the supported model" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2674 +#: src/libslic3r/PrintConfig.cpp:2557 msgid "Pad wall thickness" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2676 +#: src/libslic3r/PrintConfig.cpp:2559 msgid "The thickness of the pad and its optional cavity walls." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2684 +#: src/libslic3r/PrintConfig.cpp:2567 msgid "Pad wall height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2685 +#: src/libslic3r/PrintConfig.cpp:2568 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 " @@ -8088,320 +7382,279 @@ msgid "" "difficult." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2698 +#: src/libslic3r/PrintConfig.cpp:2581 msgid "Max merge distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2700 +#: src/libslic3r/PrintConfig.cpp:2583 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:2720 +#: src/libslic3r/PrintConfig.cpp:2594 +msgid "Pad edge radius" +msgstr "" + +#: src/libslic3r/PrintConfig.cpp:2603 msgid "Pad wall slope" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2722 +#: src/libslic3r/PrintConfig.cpp:2605 msgid "" "The slope of the pad wall relative to the bed plane. 90 degrees means " "straight walls." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2731 -msgid "Pad around object" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2733 -msgid "Create pad around object and ignore the support elevation" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2738 -msgid "Pad object gap" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2740 -msgid "" -"The gap between the object bottom and the generated pad in zero elevation " -"mode." -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2749 -msgid "Pad object connector stride" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2751 -msgid "" -"Distance between two connector sticks which connect the object and the " -"generated pad." -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2758 -msgid "Pad object connector width" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2760 -msgid "" -"Width of the connector sticks which connect the object and the generated pad." -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2767 -msgid "Pad object connector penetration" -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:2770 -msgid "How much should the tiny connectors penetrate into the model body." -msgstr "" - -#: src/libslic3r/PrintConfig.cpp:3130 +#: src/libslic3r/PrintConfig.cpp:2967 msgid "Export OBJ" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3131 +#: src/libslic3r/PrintConfig.cpp:2968 msgid "Export the model(s) as OBJ." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3142 +#: src/libslic3r/PrintConfig.cpp:2979 msgid "Export SLA" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3143 +#: src/libslic3r/PrintConfig.cpp:2980 msgid "Slice the model and export SLA printing layers as PNG." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3148 +#: src/libslic3r/PrintConfig.cpp:2985 msgid "Export 3MF" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3149 +#: src/libslic3r/PrintConfig.cpp:2986 msgid "Export the model(s) as 3MF." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3153 +#: src/libslic3r/PrintConfig.cpp:2990 msgid "Export AMF" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3154 +#: src/libslic3r/PrintConfig.cpp:2991 msgid "Export the model(s) as AMF." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3158 +#: src/libslic3r/PrintConfig.cpp:2995 msgid "Export STL" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3159 +#: src/libslic3r/PrintConfig.cpp:2996 msgid "Export the model(s) as STL." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3164 +#: src/libslic3r/PrintConfig.cpp:3001 msgid "Slice the model and export toolpaths as G-code." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3169 +#: src/libslic3r/PrintConfig.cpp:3006 msgid "Slice" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3170 +#: src/libslic3r/PrintConfig.cpp:3007 msgid "" "Slice the model as FFF or SLA based on the printer_technology configuration " "value." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3175 +#: src/libslic3r/PrintConfig.cpp:3012 msgid "Help" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3176 +#: src/libslic3r/PrintConfig.cpp:3013 msgid "Show this help." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3181 +#: src/libslic3r/PrintConfig.cpp:3018 msgid "Help (FFF options)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3182 +#: src/libslic3r/PrintConfig.cpp:3019 msgid "Show the full list of print/G-code configuration options." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3186 +#: src/libslic3r/PrintConfig.cpp:3023 msgid "Help (SLA options)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3187 +#: src/libslic3r/PrintConfig.cpp:3024 msgid "Show the full list of SLA print configuration options." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3191 +#: src/libslic3r/PrintConfig.cpp:3028 msgid "Output Model Info" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3192 +#: src/libslic3r/PrintConfig.cpp:3029 msgid "Write information about the model to the console." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3196 +#: src/libslic3r/PrintConfig.cpp:3033 msgid "Save config file" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3197 +#: src/libslic3r/PrintConfig.cpp:3034 msgid "Save configuration to the specified file." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3207 +#: src/libslic3r/PrintConfig.cpp:3044 msgid "Align XY" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3208 +#: src/libslic3r/PrintConfig.cpp:3045 msgid "Align the model to the given point." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3213 +#: src/libslic3r/PrintConfig.cpp:3050 msgid "Cut model at the given Z." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3234 +#: src/libslic3r/PrintConfig.cpp:3071 msgid "Center" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3235 +#: src/libslic3r/PrintConfig.cpp:3072 msgid "Center the print around the given center." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3239 +#: src/libslic3r/PrintConfig.cpp:3076 msgid "Don't arrange" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3240 +#: src/libslic3r/PrintConfig.cpp:3077 msgid "" "Do not rearrange the given models before merging and keep their original XY " "coordinates." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3243 +#: src/libslic3r/PrintConfig.cpp:3080 msgid "Duplicate" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3244 +#: src/libslic3r/PrintConfig.cpp:3081 msgid "Multiply copies by this factor." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3248 +#: src/libslic3r/PrintConfig.cpp:3085 msgid "Duplicate by grid" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3249 +#: src/libslic3r/PrintConfig.cpp:3086 msgid "Multiply copies by creating a grid." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3252 +#: src/libslic3r/PrintConfig.cpp:3089 msgid "Merge" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3253 +#: src/libslic3r/PrintConfig.cpp:3090 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:3258 +#: src/libslic3r/PrintConfig.cpp:3095 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:3262 +#: src/libslic3r/PrintConfig.cpp:3099 msgid "Rotation angle around the Z axis in degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3266 +#: src/libslic3r/PrintConfig.cpp:3103 msgid "Rotate around X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3267 +#: src/libslic3r/PrintConfig.cpp:3104 msgid "Rotation angle around the X axis in degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3271 +#: src/libslic3r/PrintConfig.cpp:3108 msgid "Rotate around Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3272 +#: src/libslic3r/PrintConfig.cpp:3109 msgid "Rotation angle around the Y axis in degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3277 +#: src/libslic3r/PrintConfig.cpp:3114 msgid "Scaling factor or percentage." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3282 +#: src/libslic3r/PrintConfig.cpp:3119 msgid "" "Detect unconnected parts in the given model(s) and split them into separate " "objects." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3285 +#: src/libslic3r/PrintConfig.cpp:3122 msgid "Scale to Fit" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3286 +#: src/libslic3r/PrintConfig.cpp:3123 msgid "Scale to fit the given volume." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3295 +#: src/libslic3r/PrintConfig.cpp:3132 msgid "Ignore non-existent config files" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3296 +#: src/libslic3r/PrintConfig.cpp:3133 msgid "Do not fail if a file supplied to --load does not exist." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3299 +#: src/libslic3r/PrintConfig.cpp:3136 msgid "Load config file" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3300 +#: src/libslic3r/PrintConfig.cpp:3137 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:3303 +#: src/libslic3r/PrintConfig.cpp:3140 msgid "Output File" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3304 +#: src/libslic3r/PrintConfig.cpp:3141 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:3314 +#: src/libslic3r/PrintConfig.cpp:3151 msgid "Data directory" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3315 +#: src/libslic3r/PrintConfig.cpp:3152 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:3318 +#: src/libslic3r/PrintConfig.cpp:3155 msgid "Logging level" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3319 +#: src/libslic3r/PrintConfig.cpp:3156 msgid "" "Messages with severity lower or eqal to the loglevel will be printed out. 0:" "trace, 1:debug, 2:info, 3:warning, 4:error, 5:fatal" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3324 +#: src/libslic3r/PrintConfig.cpp:3161 msgid "Render with a software renderer" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3325 +#: src/libslic3r/PrintConfig.cpp:3162 msgid "" "Render with a software renderer. The bundled MESA software renderer is " "loaded instead of the default OpenGL driver." @@ -8423,41 +7676,41 @@ msgstr "" msgid "Generating support material" msgstr "" -#: src/libslic3r/GCode/PreviewData.cpp:160 +#: src/libslic3r/GCode/PreviewData.cpp:176 msgid "Mixed" msgstr "" -#: src/libslic3r/GCode/PreviewData.cpp:380 +#: src/libslic3r/GCode/PreviewData.cpp:396 msgid "Height (mm)" msgstr "" -#: src/libslic3r/GCode/PreviewData.cpp:382 +#: src/libslic3r/GCode/PreviewData.cpp:398 msgid "Width (mm)" msgstr "" -#: src/libslic3r/GCode/PreviewData.cpp:384 +#: src/libslic3r/GCode/PreviewData.cpp:400 msgid "Speed (mm/s)" msgstr "" -#: src/libslic3r/GCode/PreviewData.cpp:386 +#: src/libslic3r/GCode/PreviewData.cpp:402 msgid "Volumetric flow rate (mm3/s)" msgstr "" -#: src/libslic3r/GCode/PreviewData.cpp:477 +#: src/libslic3r/GCode/PreviewData.cpp:491 msgid "Default print color" msgstr "" -#: src/libslic3r/GCode/PreviewData.cpp:484 +#: src/libslic3r/GCode/PreviewData.cpp:495 #, possible-c-format msgid "up to %.2f mm" msgstr "" -#: src/libslic3r/GCode/PreviewData.cpp:488 +#: src/libslic3r/GCode/PreviewData.cpp:499 #, possible-c-format msgid "above %.2f mm" msgstr "" -#: src/libslic3r/GCode/PreviewData.cpp:493 +#: src/libslic3r/GCode/PreviewData.cpp:504 #, possible-c-format msgid "%.2f - %.2f mm" msgstr "" diff --git a/resources/localization/cs/PrusaSlicer.mo b/resources/localization/cs/PrusaSlicer.mo deleted file mode 100644 index e1998662043..00000000000 Binary files a/resources/localization/cs/PrusaSlicer.mo and /dev/null differ diff --git a/resources/localization/cs_CZ/PrusaSlicer.mo b/resources/localization/cs_CZ/PrusaSlicer.mo new file mode 100644 index 00000000000..d63ee85af06 Binary files /dev/null and b/resources/localization/cs_CZ/PrusaSlicer.mo differ diff --git a/resources/localization/cs/PrusaSlicer_cs.po b/resources/localization/cs_CZ/PrusaSlicer_cs.po similarity index 77% rename from resources/localization/cs/PrusaSlicer_cs.po rename to resources/localization/cs_CZ/PrusaSlicer_cs.po index e4e56d8b312..300934d594e 100644 --- a/resources/localization/cs/PrusaSlicer_cs.po +++ b/resources/localization/cs_CZ/PrusaSlicer_cs.po @@ -5,24 +5,171 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: PhraseApp (phraseapp.com)\n" +"X-Generator: Poedit 2.0.8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Oleksandra Iushchenko \n" +"Language-Team: \n" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"and it has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"a má neuložené následující změny:" + +#: xs/src/slic3r/GUI/Tab.cpp:2152 +msgid "" +"\n" +"\n" +"Discard changes and continue anyway?" +msgstr "" +"\n" +"\n" +"Zahodit změny a přesto pokračovat?" + +#: xs/src/slic3r/GUI/Tab.cpp:2150 +msgid "" +"\n" +"\n" +"has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"má neuložené následující změny:" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"is not compatible with printer\n" +msgstr "" +"\n" +"\n" +"není kompatibilní s tiskárnou\n" + +#: src/slic3r/GUI/PresetHints.cpp:36 +msgid "" +"\n" +"During the other layers, fan " +msgstr "" +"\n" +"V průběhu ostaních vrstev, ventilátor " #: src/slic3r/GUI/PresetHints.cpp:39 -msgid "\nDuring the other layers, fan" -msgstr "\nV průběhu ostaních vrstev, ventilátor" +msgid "" +"\n" +"During the other layers, fan" +msgstr "" +"\n" +"V průběhu ostaních vrstev, ventilátor" #: src/slic3r/GUI/PresetHints.cpp:35 -msgid "\nIf estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." -msgstr "\nPokud je odhadovaný čas vrstvy delší, ale stále pod ~%1%s, bude ventilátor pracovat s plynule klesající rychlostí mezi %2%%% a %3%%%." +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." +msgstr "" +"\n" +"Pokud je odhadovaný čas vrstvy delší, ale stále pod ~%1%s, bude ventilátor pracovat s plynule klesající rychlostí mezi %2%%% a %3%%%." + +#: src/slic3r/GUI/PresetHints.cpp:32 +#, c-format +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%ds, fan will run at a proportionally decreasing speed between %d%% and %d%%." +msgstr "" +"\n" +"Pokud je odhadovaný čas vrstvy delší, ale stále pod ~%ds, bude ventilátor pracovat s plynule klesající rychlostí mezi %d%% a %d%%." + +#: lib/Slic3r/GUI/Plater.pm:1019 +msgid "" +"\n" +"Non-positive value." +msgstr "" +"\n" +"Nezáporná hodnota." + +#: lib/Slic3r/GUI/Plater.pm:1020 +msgid "" +"\n" +"Not a numeric value." +msgstr "" +"\n" +"Nečíselná hodnota." #: src/slic3r/GUI/MainFrame.cpp:61 msgid " - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/releases" msgstr " - Nezapomeňte zkontrolovat aktualizace na http://github.com/prusa3d/PrusaSlicer/releases" +#: src/slic3r/GUI/MainFrame.cpp:55 +msgid " - Remember to check for updates at http://github.com/prusa3d/slic3r/releases" +msgstr " - Nezapomeňte zkontrolovat aktualizace na http://github.com/prusa3d/slic3r/releases" + +#: src/slic3r/GUI/Tab.cpp:3239 +msgid " as:" +msgstr " jako:" + +#: src/slic3r/GUI/PresetHints.cpp:228 +#, c-format +msgid " at filament speed %3.2f mm/s." +msgstr " při rychlosti filamentu %3.2f mm/s." + +#: src/slic3r/GUI/Tab.cpp:1737 +msgid " Browse " +msgstr " Procházet " + +#: src/slic3r/GUI/MainFrame.cpp:677 +msgid " file as:" +msgstr " soubor jako:" + +#: src/slic3r/GUI/PresetHints.cpp:217 +msgid " flow rate is maximized " +msgstr "průtok je maximalizován " + +#: src/slic3r/GUI/Tab.cpp:1358 +#, no-c-format +msgid "" +" infill pattern is not supposed to work at 100% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +" vzor výplně není určen pro práci se 100% hustotou.\n" +"\n" +"Mám přejít na vzor výplně rectilinear?" + +#: xs/src/slic3r/GUI/Tab.cpp:2131 +msgid " preset\n" +msgstr " přednastavení\n" + +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid " preset" +msgstr " přednastavení" + +#: src/slic3r/GUI/Tab.cpp:2938 +msgid " Preset" +msgstr " Přednastavení" + +#: src/slic3r/GUI/Tab.cpp:1818 src/slic3r/GUI/Tab.cpp:2019 +#: src/slic3r/GUI/Tab.cpp:2988 +msgid " Set " +msgstr " Nastavit " + +#: src/slic3r/GUI/Tab.cpp:2936 +msgid " the selected preset?" +msgstr " zvolené přednastavení?" + #: src/slic3r/GUI/MainFrame.cpp:727 msgid " was successfully sliced." msgstr " byl úspěšně slicován." +#: src/slic3r/GUI/PresetHints.cpp:222 +msgid " with a volumetric rate " +msgstr "s objemovou rychlostí " + #: src/libslic3r/PrintConfig.cpp:179 src/libslic3r/PrintConfig.cpp:745 #: src/libslic3r/PrintConfig.cpp:1154 src/libslic3r/PrintConfig.cpp:1217 #: src/libslic3r/PrintConfig.cpp:1462 src/libslic3r/PrintConfig.cpp:2260 @@ -31,7 +178,7 @@ msgid "%" msgstr "%" #: src/libslic3r/GCode/PreviewData.cpp:504 -#, possible-c-format +#, c-format msgid "%.2f - %.2f mm" msgstr "%.2f - %.2f mm" @@ -44,99 +191,112 @@ msgstr "%1% - Kopírovat" msgid "%1% Preset" msgstr "%1% Přednastavení" -#: src/slic3r/GUI/Plater.cpp:3831 -msgid "%1% printer was active at the time the target Undo / Redo snapshot was taken. Switching to %1% printer requires reloading of %1% presets." -msgstr "%1% tiskárna byla aktivní v době, kdy byly pořízeny kroky Zpět / Vpřed. Přepnutí na tiskárnu %1% vyžaduje opětovné načtení předvoleb %1%." - -#: src/libslic3r/Print.cpp:1282 -msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm" -msgstr "%1%=%2% mm je příliš nízké na to, aby bylo možné tisknout ve výšce vrstvy %3% mm" +#: src/slic3r/GUI/PresetHints.cpp:226 +#, c-format +msgid "%3.2f mm³/s" +msgstr "%3.2f mm³/s" #: src/slic3r/GUI/PresetHints.cpp:228 -#, possible-c-format +#, c-format msgid "%3.2f mm³/s at filament speed %3.2f mm/s." msgstr "%3.2f mm³/s při rychlosti filamentu %3.2f mm/s." #: src/slic3r/GUI/Plater.cpp:974 -#, possible-c-format +#, c-format msgid "%d (%d shells)" msgstr "%d (%d obalů)" #: src/slic3r/GUI/Plater.cpp:982 -#, possible-c-format +#, c-format msgid "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards edges" msgstr "%d poškozených faset, %d okrajů opraveno, %d faset odstraněno, %d faset přidáno, %d faset navráceno, %d zadních okrajů" #: src/slic3r/GUI/PresetHints.cpp:268 -#, possible-c-format +#, c-format msgid "%d lines: %.2f mm" -msgstr "%d perimetry: %.2f mm" +msgstr "%d linie: %.2f mm" + +#: src/slic3r/GUI/PresetHints.cpp:271 +#, c-format +msgid "%d lines: %.2lf mm" +msgstr "%d linie: %.2lf mm" #: src/slic3r/GUI/MainFrame.cpp:894 -#, possible-c-format +#, c-format msgid "%d presets successfully imported." msgstr "%d přednastavení úspěšně importováno." +#: src/slic3r/GUI/MainFrame.cpp:553 +#, c-format +msgid "%s &Manual" +msgstr "%s Návod" + #: src/slic3r/GUI/MainFrame.cpp:550 -#, possible-c-format +#, c-format msgid "%s &Website" msgstr "%s &Webová stránka" #: src/slic3r/GUI/UpdateDialogs.cpp:113 -#, possible-c-format +#, c-format msgid "%s configuration is incompatible" msgstr "Konfigurace %s není kompatibilní" #: src/slic3r/GUI/Field.cpp:136 -#, possible-c-format +#, c-format msgid "%s doesn't support percentage" msgstr "%s nepodporuje procenta" #: src/slic3r/GUI/MsgDialog.cpp:73 -#, possible-c-format +#, c-format msgid "%s error" msgstr "%s chyba" #: src/slic3r/GUI/ConfigWizard.cpp:336 -#, possible-c-format +#, c-format msgid "%s Family" msgstr "%s Rodina" #: src/slic3r/GUI/MsgDialog.cpp:74 -#, possible-c-format +#, c-format msgid "%s has encountered an error" msgstr "Došlo k chybě v programu %s" -#: src/slic3r/GUI/GUI_App.cpp:132 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n\nThe application will now terminate." -msgstr "%s zaznamenal chybu. Bylo to pravděpodobně způsobeno nedostatkem paměti. Pokud jste si jisti, že máte v systému dostatek paměti RAM, může to být také chyba programu a v takovém případě bychom byli rádi, kdybyste nám to nahlásili.\n\nAplikace se nyní ukončí." - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:155 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it." -msgstr "%s zaznamenal chybu. Bylo to pravděpodobně způsobeno nedostatkem paměti. Pokud jste si jisti, že máte v systému dostatek paměti RAM, může to být také chyba programu a v takovém případě bychom byli rádi, kdybyste nám to nahlásili." - #: src/slic3r/GUI/UpdateDialogs.cpp:112 -#, possible-c-format +#, c-format msgid "%s incompatibility" msgstr "Není kompatibilní s %s" #: src/slic3r/GUI/UpdateDialogs.cpp:172 -#, possible-c-format -msgid "%s now uses an updated configuration structure.\n\nSo called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\nAn inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n\nPlease proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." -msgstr "%s nyní používá aktualizovanou konfigurační strukturu.\n\nByly uvedeny takzvaná \"Systémová přednastavení\", která obsahují výchozí nastavení pro rozličné tiskárny. Tato systémová přednastavení nemohou být upravena, místo toho si nyní uživatel může vytvořit svá vlastní přednastavení tím, že zdědí nastavení z jednoho ze systémových přednastavení.\nNově vytvořené přednastavení může buď zdědit určitou hodnotu od svého předchůdce nebo ji přepsat upravenou hodnotou.\n\nPři nastavování nových předvoleb postupujte podle pokynů v %s a vyberte, zda chcete povolit automatické přednastavené aktualizace." +#, c-format +msgid "" +"%s now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"%s nyní používá aktualizovanou konfigurační strukturu.\n" +"\n" +"Byly uvedeny takzvaná \"Systémová přednastavení\", která obsahují výchozí nastavení pro rozličné tiskárny. Tato systémová přednastavení nemohou být upravena, místo toho si nyní uživatel může vytvořit svá vlastní přednastavení tím, že zdědí nastavení z jednoho ze systémových přednastavení.\n" +"Nově vytvořené přednastavení může buď zdědit určitou hodnotu od svého předchůdce nebo ji přepsat upravenou hodnotou.\n" +"\n" +"Při nastavování nových předvoleb postupujte podle pokynů v %s a vyberte, zda chcete povolit automatické přednastavené aktualizace." #: src/slic3r/GUI/GUI_App.cpp:681 -#, possible-c-format +#, c-format msgid "%s View Mode" msgstr "%s Režim zobrazení" #: src/slic3r/GUI/MainFrame.cpp:563 -#, possible-c-format +#, c-format msgid "&About %s" msgstr "O %s" +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "&About Slic3r" +msgstr "&O Slic3ru" + #: src/slic3r/GUI/GUI_App.cpp:769 msgid "&Configuration" msgstr "&Konfigurace" @@ -161,6 +321,14 @@ msgstr "&Editovat" msgid "&Export" msgstr "&Exportovat" +#: lib/Slic3r/GUI/MainFrame.pm:227 +msgid "&Export Config Bundle…" +msgstr "&Exportovat Konfigurační Balík…" + +#: lib/Slic3r/GUI/MainFrame.pm:221 +msgid "&Export Config…\tCtrl+E" +msgstr "&Exportovat Konfiguraci…\tCtrl+E" + #: src/slic3r/GUI/MainFrame.cpp:480 src/slic3r/GUI/MainFrame.cpp:604 msgid "&Filament Settings Tab" msgstr "Panel nastavení &filamentu" @@ -181,6 +349,14 @@ msgstr "&Pomoc" msgid "&Import" msgstr "&Importovat" +#: lib/Slic3r/GUI/MainFrame.pm:224 +msgid "&Load Config Bundle…" +msgstr "&Načíst Konfigurační Balík…" + +#: lib/Slic3r/GUI/MainFrame.pm:218 +msgid "&Load Config…\tCtrl+L" +msgstr "&Načíst Konfiguraci…\tCtrl+L" + #: src/slic3r/GUI/MainFrame.cpp:376 msgid "&New Project" msgstr "&Nový projekt" @@ -189,6 +365,10 @@ msgstr "&Nový projekt" msgid "&Next >" msgstr "&Další>" +#: lib/Slic3r/GUI/MainFrame.pm:376 +msgid "&Object" +msgstr "&Objekt" + #: src/slic3r/GUI/MainFrame.cpp:339 msgid "&Open Project" msgstr "&Otevřít projekt" @@ -197,6 +377,10 @@ msgstr "&Otevřít projekt" msgid "&Paste" msgstr "Vložit" +#: lib/Slic3r/GUI/MainFrame.pm:375 +msgid "&Plater" +msgstr "&Podložka" + #: src/slic3r/GUI/MainFrame.cpp:471 msgid "&Plater Tab" msgstr "&Panel Podložka" @@ -209,14 +393,14 @@ msgstr "Nastavení" msgid "&Quit" msgstr "&Ukončit" -#: src/slic3r/GUI/MainFrame.cpp:561 -msgid "&Redo" -msgstr "Vp&řed" - #: src/slic3r/GUI/MainFrame.cpp:406 msgid "&Repair STL file" msgstr "Op&ravit soubor STL" +#: lib/Slic3r/GUI/MainFrame.pm:244 +msgid "&Repeat Last Quick Slice\tCtrl+Shift+U" +msgstr "&Opakovat Poslední Slicování\tCtrl+Shift+U" + #: src/slic3r/GUI/MainFrame.cpp:341 msgid "&Save Project" msgstr "Uložit projekt" @@ -225,10 +409,6 @@ msgstr "Uložit projekt" msgid "&Select all" msgstr "Vybrat vše" -#: src/slic3r/GUI/MainFrame.cpp:558 -msgid "&Undo" -msgstr "&Zpět" - #: src/slic3r/GUI/MainFrame.cpp:577 msgid "&View" msgstr "&Zobrazení" @@ -237,6 +417,14 @@ msgstr "&Zobrazení" msgid "&Window" msgstr "&Okno" +#: lib/Slic3r/GUI/MainFrame.pm:255 +msgid "(&Re)Slice Now\tCtrl+S" +msgstr "(&Znovu)Slicovat\tCtrl+S" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:89 +msgid "(default)" +msgstr "(výchozí)" + #: src/libslic3r/PrintConfig.cpp:1376 msgid "(minimum)" msgstr "(minimálně)" @@ -245,6 +433,10 @@ msgstr "(minimálně)" msgid "(Re)slice" msgstr "(Znovu)Slicovat" +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "(Re)Slice &Now" +msgstr "(Z&novu)Slicovat" + #: src/slic3r/GUI/MainFrame.cpp:455 msgid "(Re)Slice No&w" msgstr "(Znovu) S&licovat" @@ -253,6 +445,10 @@ msgstr "(Znovu) S&licovat" msgid ") not found." msgstr ") nebyl nalezen." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid ". Discard changes and continue anyway?" +msgstr ". Pokračovat i přes zahození změn?" + #: src/libslic3r/PrintConfig.cpp:1857 msgid "0 (soluble)" msgstr "0 (rozpustné)" @@ -261,10 +457,22 @@ msgstr "0 (rozpustné)" msgid "0.2 (detachable)" msgstr "0.2 (oddělitelné)" +#: lib/Slic3r/GUI/Plater/3DPreview.pm:69 +msgid "1 Layer" +msgstr "1 Vrstva" + +#: lib/Slic3r/GUI/Plater.pm:206 +msgid "2D" +msgstr "2D" + #: src/slic3r/GUI/MainFrame.cpp:487 msgid "3&D" msgstr "3&D" +#: lib/Slic3r/GUI/Plater.pm:164 lib/Slic3r/GUI/Plater.pm:2323 +msgid "3D" +msgstr "3D" + #: src/slic3r/GUI/Plater.cpp:3074 msgid "3D editor view" msgstr "Zobrazení 3D editoru" @@ -273,11 +481,27 @@ msgstr "Zobrazení 3D editoru" msgid "3D Honeycomb" msgstr "3D Plástev" +#: src/slic3r/GUI/GUI_App.cpp:741 +msgid "3D-Scene will be cleaned." +msgstr "3D-scéna bude smazána." + +#: lib/Slic3r/GUI/Plater.pm:1756 +msgid "3MF file exported to " +msgstr "Soubor 3MF byl exportován do " + #: src/slic3r/GUI/Plater.cpp:3590 -#, possible-c-format +#, c-format msgid "3MF file exported to %s" msgstr "Soubor 3MF byl exportován do %s" +#: lib/Slic3r/GUI/Plater.pm:258 +msgid "45° ccw" +msgstr "45° doleva" + +#: lib/Slic3r/GUI/Plater.pm:259 +msgid "45° cw" +msgstr "45° doprava" + #: src/slic3r/GUI/ConfigWizard.cpp:1092 msgid "< &Back" msgstr "<&Zpět" @@ -302,13 +526,21 @@ msgstr "Obecným pravidlem je 160 až 230° pro PLA a 215 až 250° pro ABS. Zad msgid "A toolpath outside the print area was detected" msgstr "Byla detekována dráha mimo tiskovou oblast" +#: src/libslic3r/SLA/SLASupportTree.cpp:2162 +msgid "Abort" +msgstr "Přerušit" + #: src/slic3r/GUI/AboutDialog.cpp:35 -#, possible-c-format +#, c-format msgid "About %s" msgstr "O %s" +#: src/slic3r/GUI/AboutDialog.cpp:35 +msgid "About Slic3r" +msgstr "O Slic3ru" + #: src/libslic3r/GCode/PreviewData.cpp:499 -#, possible-c-format +#, c-format msgid "above %.2f mm" msgstr "nad %.2f mm" @@ -328,6 +560,10 @@ msgstr "Aktivovat" msgid "Active" msgstr "Aktivní" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:39 +msgid "Active: " +msgstr "Aktivní: " + #: src/slic3r/GUI/Preset.cpp:1003 src/slic3r/GUI/Tab.cpp:237 msgid "Add a new printer" msgstr "Přidat novou tiskárnu" @@ -344,16 +580,6 @@ msgstr "Přidá pouzdro (jednu obvodovou čáru) kolem podpěr. Díky tomu je po msgid "Add color change marker for current layer" msgstr "Přidat značku změny barvy pro aktuální vrstvu" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1662 -msgid "Add Generic Subobject" -msgstr "Přidání obecného Dílčího objektu" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2584 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2613 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2631 -msgid "Add Height Range" -msgstr "Přidání Rozsahu vrstev" - #: src/slic3r/GUI/GLCanvas3D.cpp:3463 msgid "Add instance" msgstr "Přidat instanci" @@ -362,13 +588,9 @@ msgstr "Přidat instanci" msgid "Add Instance of the selected object" msgstr "Přidat instanci vybraného objektu" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:162 -msgid "Add layer range" -msgstr "Přidat rozsah vrstev" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1950 -msgid "Add Layers" -msgstr "Přidat Vrstvy" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Add Instance to selected object " +msgstr "Přidat instanci vybraného objektu" #: src/slic3r/GUI/GUI_ObjectList.cpp:1067 msgid "Add modifier" @@ -379,10 +601,6 @@ msgstr "Přidat modifikátor" msgid "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps adding perimeters, until more than 70% of the loop immediately above is supported." msgstr "Přidání více perimetrů, pokud je potřeba, pro vyvarování se tvorbě mezer v šikmých plochách. Slic3r pokračuje v přidávání perimetrů, dokud není podepřeno více než 70% perimetrů v následující vrstvě." -#: src/slic3r/GUI/Plater.cpp:3516 -msgid "Add one more instance of the selected object" -msgstr "Přidejte jednu nebo více instancí vybraného objektu" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1066 #: src/slic3r/GUI/GUI_ObjectList.cpp:1082 msgid "Add part" @@ -400,30 +618,6 @@ msgstr "Přidat bod k výběru" msgid "Add settings" msgstr "Přidat nastavení" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1252 -msgid "Add Settings Bundle for Height range" -msgstr "Přidání Skupiny nastavení pro Výškový rozsah" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1191 -msgid "Add Settings Bundle for Object" -msgstr "Přidání skupiny nastavení pro Objekt" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1190 -msgid "Add Settings Bundle for Sub-object" -msgstr "Přidání skupiny nastavení pro Dílčí objekt" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1126 -msgid "Add Settings for Layers" -msgstr "Přidání nastavení pro Vrstvy" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1128 -msgid "Add Settings for Object" -msgstr "Přidání nastavení pro Objekty" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1127 -msgid "Add Settings for Sub-object" -msgstr "Přidání nastavení pro Dílčí objeky" - #: src/libslic3r/PrintConfig.cpp:382 msgid "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)." msgstr "Přidá plnou výplň u šikmých ploch pro garanci tloušťky svislých stěn (vrchních a spodních plných vrstev)." @@ -438,18 +632,10 @@ msgstr "Přidat blokátor podpěr" msgid "Add support enforcer" msgstr "Přidat vynucení podpěr" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:531 -msgid "Add support point" -msgstr "Přidání podpěrného bodu" - #: src/slic3r/GUI/GLCanvas3D.cpp:3392 msgid "Add..." msgstr "Přidat..." -#: src/slic3r/GUI/wxExtensions.cpp:2571 -msgid "Add/Del color change" -msgstr "Přidat/odebrat změnu barvy vrstvy" - #: src/slic3r/GUI/Tab.cpp:920 msgid "Additional information:" msgstr "Doplňující informace:" @@ -466,6 +652,10 @@ msgstr "Dále je před nainstalováním aktualizace vytvořena záloha veškeré msgid "Address" msgstr "Adresa" +#: lib/Slic3r/GUI/Plater.pm:250 lib/Slic3r/GUI/Plater.pm:268 +msgid "Add…" +msgstr "Přidat…" + #: src/slic3r/GUI/GUI_App.cpp:675 src/slic3r/GUI/GUI_ObjectList.cpp:76 #: src/slic3r/GUI/GUI_ObjectList.cpp:517 src/slic3r/GUI/Tab.cpp:1026 #: src/slic3r/GUI/Tab.cpp:1041 src/slic3r/GUI/Tab.cpp:1139 @@ -481,6 +671,10 @@ msgstr "Pokročilý" msgid "Advanced View Mode" msgstr "Pokročilý režim" +#: xs/src/slic3r/GUI/FirmwareDialog.cpp:400 +msgid "Advanced: avrdude output log" +msgstr "Pokročilé: výstupní log avrdude" + #: src/slic3r/GUI/FirmwareDialog.cpp:803 msgid "Advanced: Output log" msgstr "Pokročilý:  Výstupní log" @@ -509,6 +703,10 @@ msgstr "Zarovnaný" msgid "All" msgstr "Všechny" +#: src/libslic3r/Print.cpp:1195 +msgid "All extruders must have the same diameter for single extruder multimaterial printer." +msgstr "Všechny průměry trysek musí být pro multimateriálovou tiskárnu s jedním extrudérem stejné." + #: src/libslic3r/Print.cpp:1135 msgid "All objects are outside of the print volume." msgstr "Všechny objekty jsou mimo tiskový prostor." @@ -529,26 +727,49 @@ msgstr "alokace selhala" msgid "Along X axis" msgstr "Podél osy X" +#: lib/Slic3r/GUI/Plater.pm:2251 lib/Slic3r/GUI/Plater.pm:2267 +#: lib/Slic3r/GUI/Plater.pm:2283 +msgid "Along X axis…" +msgstr "Podél osy X…" + #: src/slic3r/GUI/Plater.cpp:2941 msgid "Along Y axis" msgstr "Podél osy Y" +#: lib/Slic3r/GUI/Plater.pm:2254 lib/Slic3r/GUI/Plater.pm:2270 +#: lib/Slic3r/GUI/Plater.pm:2286 +msgid "Along Y axis…" +msgstr "Podél osy Y…" + #: src/slic3r/GUI/Plater.cpp:2943 msgid "Along Z axis" msgstr "Podél osy Z" +#: lib/Slic3r/GUI/Plater.pm:2257 lib/Slic3r/GUI/Plater.pm:2273 +#: lib/Slic3r/GUI/Plater.pm:2289 +msgid "Along Z axis…" +msgstr "Podél osy Z…" + #: src/slic3r/GUI/ConfigWizard.cpp:122 msgid "Alternate nozzles:" msgstr "Alternativní trysky:" +#: lib/Slic3r/GUI/Plater.pm:1740 +msgid "AMF file exported to " +msgstr "Soubor AMF byl exportován do " + #: src/slic3r/GUI/Plater.cpp:3561 -#, possible-c-format +#, c-format msgid "AMF file exported to %s" msgstr "Soubor AMF byl exportován do %s" #: src/slic3r/GUI/GLCanvas3D.cpp:725 -msgid "An object outside the print area was detected\nResolve the current problem to continue slicing" -msgstr "Byl detekován objekt mimo tiskovou oblast\nPro pokračování ve slicování vyřešte tento problém" +msgid "" +"An object outside the print area was detected\n" +"Resolve the current problem to continue slicing" +msgstr "" +"Byl detekován objekt mimo tiskovou oblast\n" +"Pro pokračování ve slicování vyřešte tento problém" #: src/slic3r/GUI/GLCanvas3D.cpp:720 msgid "An object outside the print area was detected" @@ -562,10 +783,18 @@ msgstr "a má neuložené následující změny:" msgid "Another export job is currently running." msgstr "V současné době běží jiná úloha exportu." +#: src/slic3r/GUI/Tab.cpp:915 +msgid "Any modifications should be saved as a new preset inherited from this one. " +msgstr "Jakékoliv úpravy by měly být uloženy jako nové přednastavení zděděná z tohoto. " + #: src/slic3r/GUI/Tab.cpp:926 msgid "Any modifications should be saved as a new preset inherited from this one." msgstr "Jakékoliv úpravy by měly být uloženy jako nové přednastavení zděděná z tohoto." +#: xs/src/libslic3r/PrintConfig.cpp:1109 +msgid "API Key" +msgstr "Klíč API" + #: src/libslic3r/PrintConfig.cpp:88 msgid "API Key / Password" msgstr "API klíč / Heslo" @@ -574,6 +803,14 @@ msgstr "API klíč / Heslo" msgid "Application preferences" msgstr "Nastavení aplikace" +#: xs/src/slic3r/GUI/GUI.cpp:406 +msgid "Application will be restarted" +msgstr "Aplikace bude restartována" + +#: src/slic3r/GUI/GUI_App.cpp:740 +msgid "Application will be restarted after language change." +msgstr "Aplikace bude po změně jazyka restartována." + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:864 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Apply changes" @@ -591,31 +828,43 @@ msgstr "Archimedean Chords" msgid "archive is too large" msgstr "archiv je moc velký" +#: src/slic3r/GUI/Tab.cpp:2936 +msgid "Are you sure you want to " +msgstr "Jste si jistý že chcete " + #. TRN remove/delete #: src/slic3r/GUI/Tab.cpp:2955 msgid "Are you sure you want to %1% the selected preset?" msgstr "Opravdu chcete %1% vybrané přednastavení?" #: src/slic3r/GUI/FirmwareDialog.cpp:862 -msgid "Are you sure you want to cancel firmware flashing?\nThis could leave your printer in an unusable state!" -msgstr "Opravdu chcete ukončit nahrávání firmware?\nTiskárna může zůstat v nefunkčním stavu!" +msgid "" +"Are you sure you want to cancel firmware flashing?\n" +"This could leave your printer in an unusable state!" +msgstr "" +"Opravdu chcete ukončit nahrávání firmware?\n" +"Tiskárna může zůstat v nefunkčním stavu!" #: src/libslic3r/PrintConfig.cpp:2258 msgid "Area fill" msgstr "Zaplněná plocha" -#: src/slic3r/GUI/Plater.cpp:609 -msgid "Around object" -msgstr "Okolo objektu" +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Around X axis…" +msgstr "Okolo osy X…" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Around Y axis…" +msgstr "Okolo osy Y…" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Around Z axis…" +msgstr "Okolo osy Z…" #: src/slic3r/GUI/KBShortcutsDialog.cpp:135 msgid "Arrange" msgstr "Uspořádat" -#: src/slic3r/GUI/GLCanvas3D.cpp:3486 -msgid "Arrange selection" -msgstr "Uspořádat výběr" - #: src/libslic3r/PrintConfig.cpp:3054 msgid "Arrange the supplied models in a plate and merge them in a single model in order to perform actions once." msgstr "Uspořádejte modely na tiskovou podložku a slučte je do jednoho modelu, abyste s nimi mohli provádět akce jednou." @@ -624,14 +873,18 @@ msgstr "Uspořádejte modely na tiskovou podložku a slučte je do jednoho model msgid "Arranging" msgstr "Uspořádávání" -#: src/slic3r/GUI/Plater.cpp:2718 -msgid "Arranging canceled." -msgstr "Uspořádávání zrušeno." +#: src/slic3r/GUI/Plater.cpp:2103 +msgid "Arranging canceled" +msgstr "Uspořádávání bylo zrušeno" #: src/slic3r/GUI/Plater.cpp:2144 msgid "Arranging done." msgstr "Uspořádávání dokončeno." +#: src/slic3r/GUI/GUI_App.cpp:514 +msgid "Array of language names and identifiers should have the same size." +msgstr "Pole jazykových jmen a identifikátorů by měla mít stejnou velikost." + #: src/slic3r/GUI/KBShortcutsDialog.cpp:172 #: src/slic3r/GUI/KBShortcutsDialog.cpp:183 msgid "Arrow Down" @@ -650,9 +903,9 @@ msgstr "Šipka vpravo" msgid "Arrow Up" msgstr "Šipka nahoru" -#: src/slic3r/GUI/GUI_App.cpp:303 -msgid "As a workaround, you may run PrusaSlicer with a software rendered 3D graphics by running prusa-slicer.exe with the --sw_renderer parameter." -msgstr "Řešením může být spuštění PrusaSliceru se softwarovým vykreslováním 3D grafiky a to spuštěním prusa-slicer.exe s parametrem --sw_renderer." +#: xs/src/slic3r/GUI/GUI.cpp:660 +msgid "Attempt to free unreferenced scalar" +msgstr "Attempt to free unreferenced scalar" #: src/slic3r/GUI/GUI.cpp:144 src/slic3r/GUI/GUI_App.cpp:743 #: src/slic3r/GUI/Tab.cpp:2798 @@ -672,13 +925,17 @@ msgstr "Auto-centrování objektů" msgid "Auto-generate points" msgstr "Automatické generování bodů" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:669 +msgid "Auto-generate points [A]" +msgstr "Automatické generování bodů [A]" + #: src/slic3r/GUI/Plater.cpp:979 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors)" msgstr "Automaticky opraveno (%d chyb)" #: src/slic3r/GUI/GUI_ObjectList.cpp:230 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors):\n" msgstr "Automaticky opraveno ( %d chyb):\n" @@ -686,13 +943,15 @@ msgstr "Automaticky opraveno ( %d chyb):\n" msgid "Autodetected" msgstr "Automaticky detekováno" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1338 -msgid "Autogenerate support points" -msgstr "Automatické generování podpěrných bodů" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1166 -msgid "Autogeneration will erase all manually edited points.\n\nAre you sure you want to do it?\n" -msgstr "Automatické generování vymaže všechny ručně vytvořené body. \n\nOpravdu to chcete udělat?\n" +msgid "" +"Autogeneration will erase all manually edited points.\n" +"\n" +"Are you sure you want to do it?\n" +msgstr "" +"Automatické generování vymaže všechny ručně vytvořené body. \n" +"\n" +"Opravdu to chcete udělat?\n" #: src/slic3r/GUI/Tab.cpp:3421 msgid "Automatic generation" @@ -719,12 +978,26 @@ msgid "BACK ARROW" msgstr "ŠIPKA ZPĚT" #: src/slic3r/GUI/Tab.cpp:3113 -msgid "BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick to reset all settings for the current option group to the last saved preset." -msgstr "Ikona ŠIPKY ZPĚT indikuje, že došlo ke změně nastavení, které není shodné s naposledy uloženým přednastavením pro aktuální skupinu nastavení.\nKlikněte pro reset všech nastavení pro aktuální skupinu nastavení na naposledy uložené přednastavení." +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" +"Click to reset all settings for the current option group to the last saved preset." +msgstr "" +"Ikona ŠIPKY ZPĚT indikuje, že došlo ke změně nastavení, které není shodné s naposledy uloženým přednastavením pro aktuální skupinu nastavení.\n" +"Klikněte pro reset všech nastavení pro aktuální skupinu nastavení na naposledy uložené přednastavení." #: src/slic3r/GUI/Tab.cpp:3127 -msgid "BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\nClick to reset current value to the last saved preset." -msgstr "Ikona ŠIPKY ZPĚT indikuje, že se hodnota změnila a není shodná s naposledy uloženým přednastavením.\nKlikněte pro reset současné hodnoty na naposledy uložené přednastavení." +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 "" +"Ikona ŠIPKY ZPĚT indikuje, že se hodnota změnila a není shodná s naposledy uloženým přednastavením.\n" +"Klikněte pro reset současné hodnoty na naposledy uložené přednastavení." + +#: src/slic3r/GUI/Tab.cpp:3077 +msgid "" +"BACK ARROW;indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "ŠIPKA ZPĚT;indikuje, že došlo ke změně nastavení, které není shodné s naposledy uloženým přednastavením pro aktuální skupinu nastavení. Klikněte na ikonu ŠIPKY ZPĚT pro reset všech nastavení pro aktuální skupinu nastavení na naposledy uložené přednastavení." #: src/slic3r/GUI/Preferences.cpp:52 msgid "Background processing" @@ -742,14 +1015,6 @@ msgstr "založený na Slic3r" msgid "Bed" msgstr "Tisková podložka" -#: src/libslic3r/PrintConfig.cpp:61 -msgid "Bed custom model" -msgstr "Vlastní model podložky" - -#: src/libslic3r/PrintConfig.cpp:56 -msgid "Bed custom texture" -msgstr "Vlastní textura podložky" - #: src/slic3r/GUI/BedShapeDialog.hpp:45 src/slic3r/GUI/ConfigWizard.cpp:524 msgid "Bed Shape" msgstr "Tvar tiskové podložky" @@ -782,10 +1047,6 @@ msgstr "G-code před změnou vrstvy" msgid "Before roll back" msgstr "Před vrácením zpět" -#: src/slic3r/GUI/Plater.cpp:608 -msgid "Below object" -msgstr "Pod objektem" - #: src/libslic3r/PrintConfig.cpp:1508 msgid "Below Z" msgstr "Pod Z" @@ -877,6 +1138,10 @@ msgstr "Barvy pro textové popisky a tlačítka" msgid "by the print profile maximum" msgstr "maximem pro profil tisku" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 +msgid "Camera view " +msgstr "Pohled kamery" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:123 msgid "Camera view" msgstr "Pohled kamery" @@ -923,6 +1188,10 @@ msgstr "Možnosti" msgid "Capture a configuration snapshot" msgstr "Vytvořit aktuální zálohu konfigurace" +#: src/libslic3r/SLA/SLASupportTree.cpp:2159 +msgid "Cascading pillars" +msgstr "Kaskádové sloupy" + #: src/libslic3r/PrintConfig.cpp:3035 msgid "Center" msgstr "Střed" @@ -939,30 +1208,17 @@ msgstr "Soubory s certifikátem (*.crt, *.pem)|*.crt;*.pem|Všechny soubory|*.*" msgid "Change Application &Language" msgstr "Změnit jazyk ap&likace" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Change camera type (perspective, orthographic)" -msgstr "Změna typu kamery (perspektivní, ortografická)" +#: xs/src/slic3r/GUI/GUI.cpp:354 +msgid "Change Application Language" +msgstr "Změnit jazyk aplikace" #: src/slic3r/GUI/GUI_ObjectList.cpp:1226 msgid "Change extruder" msgstr "Změnit extruder" -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:144 -#, possible-c-format -msgid "Change Option %s" -msgstr "Změna parametru %s" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3134 -msgid "Change Part Type" -msgstr "Změna typu části" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:925 -msgid "Change point head diameter" -msgstr "Změna průměru hrotu" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Change the number of instances of the selected object" -msgstr "Změní počet instancí vybraného objektu" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Change the number of copies of the selected object" +msgstr "Změňte počet kopií vybraného objektu" #: src/slic3r/GUI/GUI_ObjectList.cpp:1185 msgid "Change type" @@ -980,21 +1236,17 @@ msgstr "Změnit jazyk aplikace" msgid "Check for application updates" msgstr "Zkontrolovat aktualizace aplikace" -#: src/slic3r/GUI/BedShapeDialog.cpp:509 -msgid "Choose a file to import bed texture from (PNG/SVG):" -msgstr "Vyberte soubor, ze kterého chcete importovat texturu pro tiskovou podložku (PNG/SVG):" +#: src/slic3r/GUI/BedShapeDialog.cpp:316 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Vyberte soubor pro import tvaru tiskové podložky z (STL/OBJ/AMF/3MF/PRUSA):" #: src/slic3r/GUI/MainFrame.cpp:621 msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" msgstr "Zvolit soubor ke slicování (STL/OBJ/AMF/3MF/PRUSA):" -#: src/slic3r/GUI/BedShapeDialog.cpp:532 -msgid "Choose an STL file to import bed model from:" -msgstr "Vyberte STL soubor, ze kterého chcete importovat model tiskové podložky:" - -#: src/slic3r/GUI/BedShapeDialog.cpp:464 -msgid "Choose an STL file to import bed shape from:" -msgstr "Vyberte STL soubor, ze kterého chcete importovat tvar tiskové podložky:" +#: src/slic3r/GUI/GUI_App.cpp:489 +msgid "Choose one file (3MF):" +msgstr "Vyberte jeden soubor (3MF):" #: src/slic3r/GUI/GUI_App.cpp:510 msgid "Choose one file (3MF/AMF):" @@ -1012,17 +1264,9 @@ msgstr "Vyberte typ firmware používaný vaší tiskárnou." msgid "Circular" msgstr "Kruhový" -#: src/slic3r/GUI/GLCanvas3D.cpp:3701 src/slic3r/GUI/GLCanvas3D.cpp:3734 -msgid "Click right mouse button to open History" -msgstr "Stiskem pravého tlačítka myši se zobrazí Historie" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:383 -msgid "Click the icon to change the object printable property" -msgstr "Klepnutím na ikonu změníte příznak objektu, zda se bude tisknout či nikoliv" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:377 -msgid "Click the icon to change the object settings" -msgstr "Pro změnu nastavení objektu klikněte na ikonu" +#: src/libslic3r/SLA/SLASupportTree.cpp:2156 +msgid "Classification" +msgstr "Klasifikace" #: src/slic3r/GUI/Plater.cpp:292 msgid "Click to edit preset" @@ -1036,6 +1280,10 @@ msgstr "Připnutí objektů z více částí k sobě" msgid "Clipping of view" msgstr "Řezová rovina" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:926 +msgid "Clipping of view:" +msgstr "Řezová rovina:" + #: src/slic3r/GUI/FirmwareDialog.cpp:814 #: src/slic3r/GUI/PrintHostDialogs.cpp:160 msgid "Close" @@ -1158,6 +1406,10 @@ msgstr "Připojení k tiskárně pracuje správně." msgid "Connection to Prusa SL1 works correctly." msgstr "Připojení k tiskárně Prusa SL1 funguje správně." +#: src/slic3r/Utils/OctoPrint.cpp:195 +msgid "Connection to Prusa SLA works correctly." +msgstr "Připojení k tiskárně Prusa SLA pracuje správně." + #: src/libslic3r/PrintConfig.cpp:1823 msgid "Contact Z distance" msgstr "Mezera mezi podpěrami a objektem v ose Z" @@ -1166,6 +1418,14 @@ msgstr "Mezera mezi podpěrami a objektem v ose Z" msgid "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and numerous others." msgstr "Příspěvky od Henrika Brixa Andersena, Nicolase Dandrimonta, Marka Hindessa, Petra Ledviny, Josefa Lenoxe, Y. Sapira, Mika Sheldrakeho, Vojtěcha Bubnika a mnoha dalších." +#: lib/Slic3r/GUI/MainFrame.pm:137 +msgid "Controller" +msgstr "Ovladač" + +#: src/libslic3r/PrintConfig.cpp:2408 +msgid "Controls the bridge type between two neigboring 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 "Řídí typ mostu mezi dvěma sousedními sloupky. Může být zig-zag, cross (double zig-zag) nebo dynamic. Typ automaticky přepíná mezi prvními dvěma v závislosti na vzdálenosti dvou sloupků." + #: src/libslic3r/PrintConfig.cpp:2433 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 "Řídí typ mostu mezi dvěma sousedními sloupky. Může být zig-zag, cross (dvojitý zig-zag) nebo dynamic, který automaticky přepíná mezi prvními dvěma v závislosti na vzdálenosti dvou sloupků." @@ -1174,10 +1434,18 @@ msgstr "Řídí typ mostu mezi dvěma sousedními sloupky. Může být zig-zag, msgid "Cooling" msgstr "Chlazení" +#: src/libslic3r/PrintConfig.cpp:628 +msgid "Cooling moves are gradually accelerating beginning at this speed. " +msgstr "Chladicí pohyby se postupně zrychlují a začínají touto rychlostí." + #: src/libslic3r/PrintConfig.cpp:629 msgid "Cooling moves are gradually accelerating beginning at this speed." msgstr "Chladicí pohyby se postupně zrychlují a začínají touto rychlostí." +#: src/libslic3r/PrintConfig.cpp:647 +msgid "Cooling moves are gradually accelerating towards this speed. " +msgstr "Chladící pohyby se postupně zrychlují až k této rychlosti." + #: src/libslic3r/PrintConfig.cpp:648 msgid "Cooling moves are gradually accelerating towards this speed." msgstr "Chladící pohyby se postupně zrychlují až k této rychlosti." @@ -1194,6 +1462,10 @@ msgstr "Délka chladící trubičky" msgid "Cooling tube position" msgstr "Pozice chladící trubičky" +#: lib/Slic3r/GUI/Plater.pm:304 lib/Slic3r/GUI/Plater.pm:992 +msgid "Copies" +msgstr "Kopií" + #: src/slic3r/GUI/Tab.cpp:2878 msgid "Copy" msgstr "Kopírovat" @@ -1215,10 +1487,6 @@ msgstr "Kopírovat do Schránky" msgid "Copying of the temporary G-code to the output G-code failed" msgstr "Kopírování dočasného G-codu do výstupního G-codu selhalo" -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:92 -msgid "Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?" -msgstr "Kopírování dočasného G-codu do výstupního G-codu se nezdařilo. Není SD karta chráněná proti zápisu?" - #: src/slic3r/GUI/AboutDialog.cpp:92 msgid "Copyright" msgstr "Autorská práva" @@ -1272,10 +1540,6 @@ msgstr "Praskliny menší než 2x poloměr uzavření mezery se vyplní během s msgid "CRC-32 check failed" msgstr "CRC-32 kontrola selhala" -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "Create pad around object and ignore the support elevation" -msgstr "Vytvoří podložku kolem objektu a ignorujte nadzvednutí objektu podpěrami" - #: src/libslic3r/PrintConfig.cpp:2460 msgid "Critical angle" msgstr "Kritický úhel" @@ -1289,18 +1553,18 @@ msgid "Cubic" msgstr "Kubická" #: src/slic3r/GUI/wxExtensions.cpp:2413 -#, possible-c-format +#, c-format msgid "Current mode is %s" msgstr "Aktuální režim je %s" -#: src/slic3r/GUI/Tab.cpp:925 -msgid "Current preset is inherited from the default preset." -msgstr "Aktuální nastavení je zděděno z výchozího nastavení." +#: src/slic3r/GUI/Tab.cpp:909 +msgid "Current preset is inherited from " +msgstr "Aktuální nastavení je zděděno od " -#: src/slic3r/GUI/Tab.cpp:928 -#, possible-c-format -msgid "Current preset is inherited from:\n\t%s" -msgstr "Aktuální nastavení je zděděné od:\n%s" +#: src/slic3r/GUI/Tab.cpp:920 +#, c-format +msgid "Current preset is inherited from %s" +msgstr "Aktuální nastavení je zděděno od %s" #: src/slic3r/GUI/UpdateDialogs.cpp:45 msgid "Current version:" @@ -1331,18 +1595,31 @@ msgstr "Vlastní nastavení tiskárny" msgid "Custom profile name:" msgstr "Vlastní název profilu:" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:254 +msgid "Custom setup" +msgstr "Vlastní nastavení" + #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3013 msgid "Cut" msgstr "Řezat" -#: src/slic3r/GUI/Plater.cpp:4193 -msgid "Cut by Plane" -msgstr "Řez Rovinou" - #: src/libslic3r/PrintConfig.cpp:3014 msgid "Cut model at the given Z." msgstr "Rozříznout model v dané výšce Z." +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" +msgstr "Řezat objekt:" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +msgid "Cut [C]" +msgstr "Řezat [C]" + +#: lib/Slic3r/GUI/Plater.pm:262 lib/Slic3r/GUI/Plater.pm:278 +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Cut…" +msgstr "Řezat…" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1055 msgid "Cylinder" msgstr "Válec" @@ -1359,15 +1636,19 @@ msgstr "Složka Data" msgid "decompression failed or archive is corrupted" msgstr "dekomprese selhala nebo je archiv poškozen" -#: src/slic3r/GUI/Plater.cpp:4127 -msgid "Decrease Instances" -msgstr "Odebrání Instancí" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Decrease copies" +msgstr "Odebrat kopie" #: src/slic3r/GUI/GUI_App.cpp:594 src/slic3r/GUI/GUI_ObjectList.cpp:1245 #: src/libslic3r/PrintConfig.cpp:299 msgid "Default" msgstr "Výchozí" +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid "Default " +msgstr "Výchozí " + #: xs/src/slic3r/GUI/Field.cpp:98 msgid "default" msgstr "výchozí" @@ -1392,11 +1673,19 @@ msgstr "Výchozí profil filamentu" msgid "Default filament profile associated with the current printer profile. On selection of the current printer profile, this filament profile will be activated." msgstr "Výchozí materiálový profil spojený se současným profilem tiskárny. Při výběru současného profilu tiskárny se aktivuje tento materiálový profil." +#: src/slic3r/GUI/Tab.cpp:921 +msgid "default preset" +msgstr "výchozí přednastavení" + #: src/slic3r/GUI/Tab.cpp:2757 -#, possible-c-format +#, c-format msgid "Default preset (%s)" msgstr "Výchozí přednastavení (%s)" +#: xs/src/slic3r/GUI/Tab.cpp:2410 xs/src/slic3r/GUI/Tab.cpp:2496 +msgid "Default presets" +msgstr "Výchozí přednastavení" + #: src/libslic3r/GCode/PreviewData.cpp:491 msgid "Default print color" msgstr "Výchozí barva tisku" @@ -1434,6 +1723,14 @@ msgstr "výchozí hodnota" msgid "Define a custom printer profile" msgstr "Vytvořit vlastní tiskový profil" +#: src/libslic3r/PrintConfig.cpp:2529 +msgid "Defines the cavity depth. Set to zero to disable the cavity." +msgstr "Definuje hloubku dutiny. Chcete-li dutinu vypnout, nastavte ji na nulu." + +#: src/libslic3r/PrintConfig.cpp:2533 +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 effect inside the cavity, which makes pealing the print off the vat foil difficult." +msgstr "Definuje hloubku dutiny. Chcete-li dutinu vypnout, nastavte ji na nulu. Při povolování této funkce buďte opatrní, protože některé pryskyřice mohou způsobit extrémní sací efekt uvnitř dutiny, což ztěžuje odlupování tisku z fólie ve vaničce." + #: src/libslic3r/PrintConfig.cpp:2558 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 effect inside the cavity, which makes peeling the print off the vat foil difficult." msgstr "Definuje hloubku dutiny. Chcete-li dutinu vypnout, nastavte ji na nulu. Při povolování této funkce buďte opatrní, protože některé pryskyřice mohou způsobit extrémní sací efekt uvnitř dutiny, což ztěžuje odlupování tisku z fólie ve vaničce." @@ -1442,6 +1739,10 @@ msgstr "Definuje hloubku dutiny. Chcete-li dutinu vypnout, nastavte ji na nulu. msgid "degenerate facets" msgstr "degenerace facetů" +#: src/libslic3r/PrintConfig.cpp:2572 +msgid "degrees" +msgstr "stupňů" + #: src/libslic3r/PrintConfig.cpp:608 msgid "Delay after unloading" msgstr "Zpoždění po vyjmutí" @@ -1467,59 +1768,14 @@ msgstr "Smazat vše" msgid "Delete all" msgstr "Smazat vše" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1806 -msgid "Delete All Instances from Object" -msgstr "Smazat všechny instance objektu" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:187 msgid "Delete color change marker for current layer" msgstr "Odebrat značku změny barvy pro aktuální vrstvu" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1898 -msgid "Delete Height Range" -msgstr "Odstranění Rozsahu vrstev" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1876 -msgid "Delete Instance" -msgstr "Smazání Instance" - -#: src/slic3r/GUI/Plater.cpp:2592 -msgid "Delete Object" -msgstr "Smazat Objekt" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:100 -#, possible-c-format -msgid "Delete Option %s" -msgstr "Odebrání parametru %s" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:137 msgid "Delete selected" msgstr "Smazat vybrané" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -msgid "Delete Selected" -msgstr "Smazání vybraných" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2303 -msgid "Delete Selected Item" -msgstr "Smazat vybrané položky" - -#: src/slic3r/GUI/Plater.cpp:4083 -msgid "Delete Selected Objects" -msgstr "Odstranit vybrané objekty" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1782 -msgid "Delete Settings" -msgstr "Smazat Nastavení" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1857 -msgid "Delete Subobject" -msgstr "Smazání dílčího objektu" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:720 -msgid "Delete support point" -msgstr "Odebrání podpěrného bodu" - #: src/slic3r/GUI/Tab.cpp:131 msgid "Delete this preset" msgstr "Smazat přednastavení" @@ -1558,6 +1814,10 @@ msgstr "Odznačit obdélníkovým výběrem myši" msgid "Deselects all objects" msgstr "Odznačit všechny objekty" +#: src/libslic3r/PrintConfig.cpp:1833 +msgid "detachable" +msgstr "oddělitelný" + #: src/libslic3r/PrintConfig.cpp:1304 msgid "Detect bridging perimeters" msgstr "Detekovat perimetry přemostění" @@ -1578,6 +1838,22 @@ msgstr "Rozpoznat nepřipojené části daného modelu(ů) a rozdělit je do sam msgid "Detected advanced data" msgstr "Byla detekována data z pokročilého režimu" +#: src/slic3r/GUI/GLCanvas3D.cpp:723 +msgid "" +"Detected object outside print volume\n" +"Resolve a clash to continue slicing/export process correctly" +msgstr "" +"Detekován objekt mimo tiskový prostor\n" +"Vyřešte konflikt, abyste mohli správně pokračovat v procesu slicování/exportu" + +#: src/slic3r/GUI/GLCanvas3D.cpp:719 +msgid "Detected object outside print volume" +msgstr "Detekován objekt mimo tiskový prostor" + +#: src/slic3r/GUI/GLCanvas3D.cpp:720 +msgid "Detected toolpath outside print volume" +msgstr "Byla detekována cesta mimo tiskový objem" + #: src/slic3r/GUI/BedShapeDialog.cpp:88 src/libslic3r/PrintConfig.cpp:677 msgid "Diameter" msgstr "Průměr" @@ -1602,18 +1878,22 @@ msgstr "Průměr tiskové podložky. Přepokládaný počátek (0,0) je umístě msgid "Direction" msgstr "Směr" +#: xs/src/slic3r/GUI/Preferences.cpp:76 +msgid "Disable communication with the printer over a serial / USB cable. This simplifies the user interface in case the printer is never attached to the computer." +msgstr "Zakázat komunikaci s tiskárnou přes sériový / USB kabel. To zjednodušuje uživatelské rozhraní v případě, že tiskárna není nikdy připojena k počítači." + #: src/libslic3r/PrintConfig.cpp:323 msgid "Disable fan for the first" msgstr "Vypnutí chlazení pro prvních" +#: xs/src/slic3r/GUI/Preferences.cpp:74 +msgid "Disable USB/serial connection" +msgstr "Vypnout USB/sériové připojení" + #: src/libslic3r/PrintConfig.cpp:1280 msgid "Disables retraction when the travel path does not exceed the upper layer's perimeters (and thus any ooze will be probably invisible)." msgstr "Vypne retrakce, pokud dráha nepřekročí perimetr vrchní vrstvy (a proto bude pravděpodobně jakékoliv odkapávání neviditelné)." -#: src/slic3r/GUI/wxExtensions.cpp:2572 -msgid "Discard all color changes" -msgstr "Odstranit všechny změny barev" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:869 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1241 msgid "Discard changes" @@ -1635,10 +1915,6 @@ msgstr "Displej" msgid "Display height" msgstr "Výška displeje" -#: src/libslic3r/PrintConfig.cpp:2319 -msgid "Display horizontal mirroring" -msgstr "Horizontální zrcadlení displeje" - #: src/libslic3r/PrintConfig.cpp:2227 msgid "Display orientation" msgstr "Orientace displeje" @@ -1647,10 +1923,6 @@ msgstr "Orientace displeje" msgid "Display the Print Host Upload Queue window" msgstr "Zobrazit okno s frontou nahrávání do tiskového serveru" -#: src/libslic3r/PrintConfig.cpp:2326 -msgid "Display vertical mirroring" -msgstr "Vertikální zrcadlení displeje" - #: src/libslic3r/PrintConfig.cpp:2202 msgid "Display width" msgstr "Šířka displeje" @@ -1663,10 +1935,6 @@ msgstr "Vzdálenost mezi kopiemi" msgid "Distance between skirt and object(s). Set this to zero to attach the skirt to the object(s) and get a brim for better adhesion." msgstr "Vzdálenost mezi obrysem a objektem (objekty). Nastavte tuto hodnotu na nulu, pro sloučení obrysu s předmětem (předměty) a tvorbu límce pro dosažení lepší přilnavosti." -#: src/libslic3r/PrintConfig.cpp:2752 -msgid "Distance between two connector sticks which connect the object and the generated pad." -msgstr "Rozteč mezi dvěmi spojkami, které spojují objekt s vygenerovanou podložkou." - #: src/libslic3r/PrintConfig.cpp:1609 msgid "Distance from object" msgstr "Vzdálenost od objektu" @@ -1675,10 +1943,18 @@ msgstr "Vzdálenost od objektu" msgid "Distance of the 0,0 G-code coordinate from the front left corner of the rectangle." msgstr "Vzdálenost souřadnice 0,0 G-code od předního levého rohu obdélníku." +#: src/libslic3r/PrintConfig.cpp:284 +msgid "Distance of the center-point of the cooling tube from the extruder tip " +msgstr "Vzdálenost ze středu chladící trubičky ke špičce extruderu " + #: src/libslic3r/PrintConfig.cpp:285 msgid "Distance of the center-point of the cooling tube from the extruder tip." msgstr "Vzdálenost ze středu chladící trubičky ke špičce extruderu." +#: src/libslic3r/PrintConfig.cpp:1313 +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 "Vzdálenost špičky extruderu od místa, kde je zaparkován filament při vytažení. Měla by se shodovat s hodnotou ve firmware tiskárny. " + #: src/libslic3r/PrintConfig.cpp:1338 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 "Vzdálenost špičky extruderu od místa, kde je zaparkován filament při vytažení. Měla by se shodovat s hodnotou ve firmware tiskárny." @@ -1695,15 +1971,24 @@ msgstr "Nepodaří se, pokud neexistuje soubor dodaný k přepínači --load." msgid "Do not rearrange the given models before merging and keep their original XY coordinates." msgstr "Nepřeuspořádávejte modely před sloučením a tím ponecháním jejich původních souřadnic v XY." -#: src/slic3r/GUI/Field.cpp:206 -#, possible-c-format -msgid "Do you mean %s%% instead of %s %s?\nSelect YES if you want to change this value to %s%%, \nor NO if you are sure that %s %s is a correct value." -msgstr "Myslíte %s%% namísto %s %s?\nVyberte ANO, pokud chcete změnit tuto hodnotu na %s%%,\nnebo NE, pokud jste si jisti, že %s %s je správná hodnota." +#: src/slic3r/GUI/Field.cpp:181 +#, c-format +msgid "" +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." +msgstr "" +"Myslíte %d%% namísto %d %s?\n" +"Vyberte ANO, pokud chcete změnit tuto hodnotu na %d%% nebo NE, pokud jste si jisti, že %d %s je správná hodnota." #: src/slic3r/GUI/GUI_App.cpp:754 msgid "Do you want to proceed?" msgstr "Chcete pokračovat?" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1022 +msgid "Do you want to save your manually edited support points ?\n" +msgstr "Chcete uložit ručně upravované podpěrné body?\n" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1024 msgid "Do you want to save your manually edited support points?" msgstr "Chcete uložit ručně upravené podpěrné body?" @@ -1720,6 +2005,10 @@ msgstr "Neupozorňovat na nové verze" msgid "Don't support bridges" msgstr "Nevytvářet podpěry pod mosty" +#: src/libslic3r/SLA/SLASupportTree.cpp:2161 +msgid "Done" +msgstr "Dokončeno" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:20 msgid "Downgrade" msgstr "Downgrade" @@ -1730,10 +2019,9 @@ msgstr "Downgrade" msgid "Drag" msgstr "Tažení" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:340 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:355 -msgid "Drop to bed" -msgstr "Spadnout na podložku" +#: lib/Slic3r/GUI/Plater/2D.pm:132 +msgid "Drag your objects here" +msgstr "Přetáhněte své objekty sem" #: src/libslic3r/PrintConfig.cpp:3044 msgid "Duplicate" @@ -1747,33 +2035,17 @@ msgstr "Duplikovat mřížkou" msgid "Dynamic" msgstr "Dynamic" -#: src/slic3r/GUI/MainFrame.cpp:708 -msgid "E&xport" -msgstr "E&xportovat" - #: src/slic3r/GUI/GUI_ObjectList.cpp:238 msgid "edges fixed" msgstr "hrany opraveny" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2690 -msgid "Edit Height Range" -msgstr "Úprava Rozsahu vrstev" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:373 -msgid "Editing" -msgstr "Editace" - #: src/libslic3r/PrintConfig.cpp:349 msgid "Elephant foot compensation" msgstr "Kompenzace rozplácnutí první vrstvy" -#: src/libslic3r/SLAPrint.cpp:681 -msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation." -msgstr "Vzdálenost od podložky je příliš nízká. Zvolte funkci \"Podložka okolo objektu\" pro tisk objektu bez nadzvednutí." - -#: src/libslic3r/SLAPrint.cpp:678 -msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation." -msgstr "Nadzvednutí objektu je příliš malé. Pomocí funkce „Podložka okolo objektu“ můžete objekt vytisknout bez nadzvednutí nad podložku." +#: src/libslic3r/SLAPrint.cpp:624 +msgid "Elevation is too low for object." +msgstr "Výška od podložky je pro objekt příliš nízká." #: src/libslic3r/PrintConfig.cpp:1044 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. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode." @@ -1792,10 +2064,6 @@ msgstr "Zapnutí automatického chlazení" msgid "Enable fan if layer print time is below" msgstr "Zapnout ventilátor, pokud je doba tisku vrstvy kratší než" -#: src/libslic3r/PrintConfig.cpp:2321 -msgid "Enable horizontal mirroring of output images" -msgstr "Zapne horizontální zrcadlení výstupních obrázků" - #: src/libslic3r/PrintConfig.cpp:1781 msgid "Enable support material generation." msgstr "Zapne generování podpěr." @@ -1812,10 +2080,6 @@ msgstr "Aktivací získáte komentovaný soubor G-code, přičemž každý řád msgid "Enable variable layer height feature" msgstr "Zapnout variabilní výšku vrstev" -#: src/libslic3r/PrintConfig.cpp:2328 -msgid "Enable vertical mirroring of output images" -msgstr "Zapne vertikální zrcadlení výstupních obrázků" - #: src/slic3r/GUI/Tab.cpp:1570 src/slic3r/GUI/Tab.cpp:1955 #: src/libslic3r/PrintConfig.cpp:359 src/libslic3r/PrintConfig.cpp:369 msgid "End G-code" @@ -1854,6 +2118,28 @@ msgstr "Zadejte průměr vašeho filamentu." msgid "Enter the diameter of your printer's hot end nozzle." msgstr "Zadejte průměr trysky hotendu vaší tiskárny." +#: lib/Slic3r/GUI/Plater.pm:1158 +msgid "Enter the new max size for the selected object:" +msgstr "Zvolte nový maximální rozměr pro zvolný objekt:" + +#: lib/Slic3r/GUI/Plater.pm:1132 +#, perl-format +msgid "Enter the new size for the selected object (print bed: %smm):" +msgstr "Zadejte novou velikost vybraného objektu (tisková podložka: %smm):" + +#: lib/Slic3r/GUI/Plater.pm:992 +msgid "Enter the number of copies of the selected object:" +msgstr "Zadejte počet kopií pro vybraný objekt:" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Enter the rotation angle:" +msgstr "Zadejte úhel natočení:" + +#: lib/Slic3r/GUI/Plater.pm:1137 lib/Slic3r/GUI/Plater.pm:1163 +#, no-perl-format +msgid "Enter the scale % for the selected object:" +msgstr "Zadejte rozměr % pro zvolený objekt:" + #: src/slic3r/GUI/ConfigWizard.cpp:608 msgid "Enter the temperature needed for extruding your filament." msgstr "Zadejte požadovanou teplotu pro extruzi vašeho filamentu." @@ -1875,17 +2161,25 @@ msgid "Error" msgstr "Chyba" #: src/slic3r/GUI/FirmwareDialog.cpp:608 -#, possible-c-format +#, c-format msgid "Error accessing port at %s: %s" msgstr "Chyba při přístupu k portu na %s : %s" +#: lib/Slic3r/GUI/Plater.pm:1760 +msgid "Error exporting 3MF file " +msgstr "Chyba při exportu souboru 3MF " + #: src/slic3r/GUI/Plater.cpp:3593 -#, possible-c-format +#, c-format msgid "Error exporting 3MF file %s" msgstr "Chyba při exportu souboru 3MF %s" +#: lib/Slic3r/GUI/Plater.pm:1744 +msgid "Error exporting AMF file " +msgstr "Chyba při exportu souboru AMF " + #: src/slic3r/GUI/Plater.cpp:3564 -#, possible-c-format +#, c-format msgid "Error exporting AMF file %s" msgstr "Chyba při exportu souboru AMF %s" @@ -1897,32 +2191,40 @@ msgstr "Chybová hláška" msgid "Error uploading to print host:" msgstr "Chyba při nahrávání do tiskového serveru:" +#: xs/src/slic3r/Utils/OctoPrint.cpp:98 +msgid "Error while uploading to the OctoPrint server" +msgstr "Chyba při nahrávání na server OctoPrint" + #: src/libslic3r/Zipper.cpp:105 msgid "Error with zip archive" msgstr "Chyba v zip archivu" +#: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1431 +msgid "Error! " +msgstr "Chyba! " + #: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1443 msgid "Error!" msgstr "Chyba!" -#: src/slic3r/GUI/BedShapeDialog.cpp:482 -msgid "Error! Invalid model" -msgstr "Chyba! Neplatný model" - #: src/slic3r/GUI/FirmwareDialog.cpp:610 -#, possible-c-format +#, c-format msgid "Error: %s" msgstr "Chyba: %s" -#: src/slic3r/GUI/Plater.cpp:1503 -msgid "ERROR: not enough resources to execute a new job." -msgstr "CHYBA: nedostatek prostředků ke spuštění nové úlohy." - #: src/slic3r/GUI/Plater.cpp:217 src/slic3r/GUI/Plater.cpp:1028 #: src/slic3r/GUI/Plater.cpp:1070 msgid "Estimated printing time" msgstr "Odhadovaný čas tisku" +#: lib/Slic3r/GUI/Plater.pm:1618 +msgid "Estimated printing time (normal mode)" +msgstr "Předpokládaná doba tisku (normální režim)" + +#: lib/Slic3r/GUI/Plater.pm:1620 +msgid "Estimated printing time (silent mode)" +msgstr "Předpokládaná doba tisku (tichý režim)" + #: src/slic3r/GUI/Plater.cpp:424 msgid "Everywhere" msgstr "Všude" @@ -1931,19 +2233,28 @@ msgstr "Všude" msgid "except for the first %1% layers." msgstr "s výjimkou prvních %1% vrstev." +#: src/slic3r/GUI/PresetHints.cpp:46 +#, c-format +msgid "except for the first %d layers" +msgstr "s výjimkou prvních %d vrstev" + +#: src/slic3r/GUI/PresetHints.cpp:50 +msgid "except for the first layer" +msgstr "vyjma první vrstvy" + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "except for the first layer." msgstr "vyjma první vrstvy." -#: src/libslic3r/Print.cpp:1285 -msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm" -msgstr "Příliš velká hodnota proměnné %1% =%2% mm pro tisk s průměrem trysky %3% mm" - #: src/slic3r/GUI/UpdateDialogs.cpp:148 -#, possible-c-format +#, c-format msgid "Exit %s" msgstr "Ukončit %s" +#: src/slic3r/GUI/UpdateDialogs.cpp:144 +msgid "Exit Slic3r" +msgstr "Ukončit Slic3r" + #: src/libslic3r/PrintConfig.cpp:335 msgid "Experimental option for preventing support material from being generated under bridged areas." msgstr "Experimentální nastavení pro zabránění tvorbě podpěr v oblastech po mosty." @@ -1972,10 +2283,6 @@ msgstr "Exportovat Konfigura&ci" msgid "Export &G-code" msgstr "Exportovat &G-code" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export &toolpaths as OBJ" -msgstr "Exportovat tras&sy extruderu jako OBJ" - #: src/libslic3r/PrintConfig.cpp:2949 msgid "Export 3MF" msgstr "Exportovat 3MF" @@ -1996,6 +2303,10 @@ msgstr "Exportovat AMF soubor:" msgid "Export as STL" msgstr "Exportovat jako STL" +#: lib/Slic3r/GUI/Plater.pm:1416 +msgid "Export cancelled" +msgstr "Export zrušen" + #: src/slic3r/GUI/MainFrame.cpp:375 msgid "Export Config &Bundle" msgstr "Exportovat Konfigurační &Balík" @@ -2004,6 +2315,10 @@ msgstr "Exportovat Konfigurační &Balík" msgid "Export current configuration to file" msgstr "Exportovat současnou konfiguraci do souboru" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export current plate as 3MF" +msgstr "Exportovat stávající plochu jako 3MF" + #: src/slic3r/GUI/MainFrame.cpp:370 msgid "Export current plate as AMF" msgstr "Exportovat stávající plochu jako AMF" @@ -2029,13 +2344,21 @@ msgstr "Exportování selhalo" msgid "Export G-code" msgstr "Exportovat G-code" +#: lib/Slic3r/GUI/MainFrame.pm:272 +msgid "Export G-code..." +msgstr "Exportovat G-code…" + +#: lib/Slic3r/GUI/Plater.pm:322 +msgid "Export G-code…" +msgstr "Exportovat G-code…" + #: src/libslic3r/PrintConfig.cpp:2931 msgid "Export OBJ" msgstr "Exportovat OBJ" -#: src/slic3r/GUI/Plater.cpp:2531 -msgid "Export OBJ file:" -msgstr "Exportovat OBJ soubor:" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export object as STL…" +msgstr "Exportovat objekt jako STL…" #: src/slic3r/Utils/FixModelByWin10.cpp:368 msgid "Export of a temporary 3mf file failed" @@ -2049,9 +2372,25 @@ msgstr "Exportovat plochu jako &AMF" msgid "Export plate as &STL" msgstr "Exportovat plochu jako &STL" -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export plate as STL &including supports" -msgstr "Exportovat t&iskovou plochu včetně podpěr jako STL" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export plate as 3MF..." +msgstr "Exportovat plochu jako 3MF..." + +#: lib/Slic3r/GUI/MainFrame.pm:278 +msgid "Export plate as AMF..." +msgstr "Exportovat plochu jako AMF..." + +#: src/slic3r/GUI/MainFrame.cpp:368 +msgid "Export plate as STL including supports" +msgstr "Exportovat plochu včetně podpěr jako STL soubor" + +#: lib/Slic3r/GUI/MainFrame.pm:275 +msgid "Export plate as STL..." +msgstr "Exportovat plochu jako STL..." + +#: xs/src/slic3r/GUI/GUI.cpp:930 +msgid "Export print config" +msgstr "Exportovat nastavení tisku" #: src/libslic3r/PrintConfig.cpp:2943 msgid "Export SLA" @@ -2065,6 +2404,14 @@ msgstr "Exportovat STL" msgid "Export STL file:" msgstr "Exportovat STL soubor:" +#: lib/Slic3r/GUI/Plater.pm:326 +msgid "Export STL…" +msgstr "Exportovat STL…" + +#: src/libslic3r/PrintConfig.cpp:2924 +msgid "Export SVG" +msgstr "Exportovat SVG" + #: src/libslic3r/PrintConfig.cpp:2950 msgid "Export the model(s) as 3MF." msgstr "Exportovat model(y) jako 3MF." @@ -2085,9 +2432,9 @@ msgstr "Exportovat model(y) jako STL." msgid "Export the selected object as STL file" msgstr "Exportovat vybrané objekty jako STL soubor" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export toolpaths as OBJ" -msgstr "Exportovat trasy extruderu jako OBJ" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export this single object as STL file" +msgstr "Exportovat tento jediný objekt jako STL soubor" #: src/libslic3r/Print.cpp:1517 msgid "Exporting G-code" @@ -2102,10 +2449,6 @@ msgstr "Exportování modelu..." msgid "Exporting source model" msgstr "Exportování zdrojového modelu" -#: src/libslic3r/SLAPrint.cpp:700 -msgid "Exposition time is out of printer profile bounds." -msgstr "Doba osvitu je mimo rozsah profilu tiskárny." - #: src/slic3r/GUI/Tab.cpp:3306 msgid "Exposure" msgstr "Osvit" @@ -2148,7 +2491,7 @@ msgid "Extruder" msgstr "Extruder" #: src/slic3r/GUI/Tab.cpp:2253 src/libslic3r/GCode/PreviewData.cpp:475 -#, possible-c-format +#, c-format msgid "Extruder %d" msgstr "Extruder %d" @@ -2246,6 +2589,10 @@ msgstr "Načtení vstupního modelu se nezdařilo." msgid "Failed processing of the output_filename_format template." msgstr "Zpracování šablony output_filename_format selhalo." +#: src/slic3r/GUI/PresetHints.cpp:38 +msgid "Fan " +msgstr "Ventilátor " + #: src/slic3r/GUI/PresetHints.cpp:41 msgid "Fan" msgstr "Ventilátor" @@ -2266,10 +2613,6 @@ msgstr "Rychlý" msgid "Fast tilt" msgstr "Rychlý náklon" -#: src/slic3r/GUI/GUI_App.cpp:135 -msgid "Fatal error" -msgstr "Fatální chyba" - #: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:537 #: src/libslic3r/GCode/PreviewData.cpp:394 msgid "Feature type" @@ -2279,6 +2622,10 @@ msgstr "Typ" msgid "Feature types" msgstr "Typy extruzí" +#: lib/Slic3r/GUI/Plater.pm:256 +msgid "Fewer" +msgstr "Méně" + #: src/slic3r/GUI/Plater.cpp:682 src/slic3r/GUI/Tab.cpp:1470 #: src/slic3r/GUI/Tab.cpp:1471 msgid "Filament" @@ -2296,6 +2643,10 @@ msgstr "Průměry filamentu a trysky" msgid "Filament Diameter:" msgstr "Průměr filamentu:" +#: src/libslic3r/PrintConfig.cpp:619 +msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves " +msgstr "Filament je chlazen pohyby tam a zpět v chladicí trubičce. Zadejte požadovaný počet těchto pohybů" + #: src/libslic3r/PrintConfig.cpp:620 msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves." msgstr "Filament je chlazen pohyby tam a zpět v chladicí trubičce. Zadejte požadovaný počet těchto pohybů." @@ -2308,10 +2659,6 @@ msgstr "Doba zavádění filamentu" msgid "Filament notes" msgstr "Poznámky k filamentu" -#: src/slic3r/GUI/Tab.cpp:1502 src/slic3r/GUI/Tab.cpp:1557 -msgid "Filament Overrides" -msgstr "Přepsání globálních hodnot" - #: src/libslic3r/PrintConfig.cpp:1312 msgid "Filament parking position" msgstr "Parkovací pozice filamentu" @@ -2336,6 +2683,10 @@ msgstr "Doba vysouvání filamentu" msgid "filaments" msgstr "filamenty" +#: lib/Slic3r/GUI/Plater.pm:1555 +msgid "File added to print queue" +msgstr "Soubor byl přidán do tiskové fronty" + #: src/libslic3r/Zipper.cpp:75 msgid "file close failed" msgstr "zavření souboru selhalo" @@ -2404,6 +2755,14 @@ msgstr "Vzor výplně pro obecnou výplň s nízkou hustotou." msgid "Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells." msgstr "Nastavte vzor pro horní výplň. Ovlivňuje pouze horní viditelnou vrstvu a ne její sousední plné vrstvy." +#: xs/src/libslic3r/PrintConfig.cpp:285 +msgid "Fill pattern for top/bottom infill. This only affects the external visible layer, and not its adjacent solid shells." +msgstr "Vzor výplně pro vrchní/spodní vrstvy. Ovlivňuje pouze vnější viditelné vrstvy. Neovlivňuje sousední plné vrstvy." + +#: src/libslic3r/SLA/SLASupportTree.cpp:2154 +msgid "Filtering" +msgstr "Filtrování" + #: src/slic3r/GUI/BonjourDialog.cpp:225 msgid "Finished" msgstr "Dokončeno" @@ -2437,6 +2796,16 @@ msgstr "První vrstva" msgid "First layer height" msgstr "Výška první vrstvy" +#: src/slic3r/GUI/Tab.cpp:1266 +msgid "" +"First layer height can't be equal to zero.\n" +"\n" +"Shall I set its value to minimum (0.01)?" +msgstr "" +"Výška první vrstvy nemůže být rovna nule.\n" +"\n" +"Mám nastavit její hodnotu na minimum (0.01)?" + #: src/libslic3r/Print.cpp:1328 msgid "First layer height can't be greater than nozzle diameter" msgstr "Výška první vrstvy nesmí být větší než průměr trysky" @@ -2449,18 +2818,30 @@ msgstr "Rychlost první vrstvy" msgid "First layer volumetric" msgstr "Volumetrická hodnota první vrstvy" +#: src/libslic3r/Print.cpp:1313 +msgid "first_layer_height" +msgstr "first_layer_height" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix STL through Netfabb" +msgstr "Opravit STL pomocí služby Netfabb" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix the model by sending it to a Netfabb cloud service through Windows 10 API" +msgstr "Opravit model zasláním do cloudové služby Netfabb pomocí Window 10 API" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1210 msgid "Fix through the Netfabb" msgstr "Opravit pomocí služby Netfabb" -#: src/slic3r/GUI/Plater.cpp:3072 -msgid "Fix Throught NetFabb" -msgstr "Opravit pomocí Netfabb" - #: src/slic3r/GUI/GUI_App.cpp:685 msgid "Flash printer &firmware" msgstr "Nahrát &firmware tiskárny" +#: xs/src/slic3r/GUI/GUI.cpp:356 +msgid "Flash printer firmware" +msgstr "Nahrát firmware tiskárny" + #: src/slic3r/GUI/FirmwareDialog.cpp:146 msgid "Flash!" msgstr "Nahrát!" @@ -2477,6 +2858,10 @@ msgstr "Nahrávání selhalo" msgid "Flashing failed. Please see the avrdude log below." msgstr "Nahrání selhalo. Projděte si prosím avrdude log níže." +#: src/slic3r/GUI/FirmwareDialog.cpp:192 +msgid "Flashing failed: " +msgstr "Nahrávání selhalo:" + #: src/slic3r/GUI/FirmwareDialog.cpp:148 msgid "Flashing in progress. Please do not disconnect the printer!" msgstr "Probíhá nahrávání firmware. Prosím neodpojujte tiskárnu!" @@ -2502,13 +2887,31 @@ msgid "For support enforcers only" msgstr "Pouze pro vynucené podpěry" #. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3345 -msgid "for the left button: \tindicates a non-system (or non-default) preset,\nfor the right button: \tindicates that the settings hasn't been modified." -msgstr "na levé straně: indikuje nesystémové (jiné než výchozí) přednastavení,\nna pravé straně: indikuje, že nastavení nebylo změněno." +#: src/slic3r/GUI/Tab.cpp:3078 +msgid "" +"for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"na levé straně: indikuje nesystémové přednastavení,\n" +"na pravé straně: indikuje, že nastavení nebylo změněno." + +#: src/slic3r/GUI/Tab.cpp:1295 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "" +"U čistící věže pokud pracujte s rozpustnými materiály, je třeba\n" +"synchronizovat vrstvy podpěr s vrstvami objektů.\n" +"\n" +"Mám synchronizovat vrstvy podpěr, aby bylo možné zapnout Čistící věž?" #: src/libslic3r/Print.cpp:1302 msgid "For the Wipe Tower to work with the soluble supports, the support layers need to be synchronized with the object layers." -msgstr "U čistící věže pokud pracujte s rozpustnými materiály, je třeba\nsynchronizovat vrstvy podpěr s vrstvami objektů." +msgstr "" +"U čistící věže pokud pracujte s rozpustnými materiály, je třeba\n" +"synchronizovat vrstvy podpěr s vrstvami objektů." #: src/libslic3r/PrintConfig.cpp:1660 msgid "Force solid infill for regions having a smaller area than the specified threshold." @@ -2522,10 +2925,6 @@ msgstr "Vynucení vytváření pevných skořepin mezi sousedními materiály/ob msgid "From" msgstr "Předchozí extruder" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1853 -msgid "From Object List You can't delete the last solid part from object." -msgstr "Ze seznamu objektů nemůžete smazat poslední část objektu." - #: src/slic3r/GUI/MainFrame.cpp:525 msgid "Front" msgstr "Zepředu" @@ -2534,10 +2933,18 @@ msgstr "Zepředu" msgid "Front View" msgstr "Pohled zepředu" +#: src/slic3r/GUI/Tab.cpp:2151 +msgid "Full Power" +msgstr "Plný výkon (režim Normal)" + #: src/slic3r/GUI/MainFrame.cpp:677 msgid "G-code" msgstr "G-code" +#: lib/Slic3r/GUI/Plater.pm:1561 +msgid "G-code file exported to " +msgstr "Soubor G-code byl exportován do " + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:87 msgid "G-code file exported to %1%" msgstr "G-code byl exportován do %1%" @@ -2564,6 +2971,10 @@ msgstr "Obecné" 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 "Nevygenerovat méně, než počet obrysových smyček, potřebných ke spotřebování specifikovaného množství filamentu na spodní vrstvu. U strojů s více extrudery platí toto minimum pro každý extruder." +#: src/libslic3r/SLA/SLASupportTree.cpp:2155 +msgid "Generate pinheads" +msgstr "Generovat podpůrné hroty" + #: src/libslic3r/PrintConfig.cpp:1779 msgid "Generate support material" msgstr "Generovat podpěry" @@ -2640,22 +3051,6 @@ msgstr "Gizmo měřítko" msgid "Gizmo SLA support points" msgstr "Gizmo SLA podpěrné body" -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:641 -msgid "Gizmo-Move" -msgstr "Gizmo-Posuv" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:569 -msgid "Gizmo-Place on Face" -msgstr "Gizmo-Umístit plochou na podložku" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:651 -msgid "Gizmo-Rotate" -msgstr "Gizmo-Otáčení" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:646 -msgid "Gizmo-Scale" -msgstr "Gizmo-Měřítko" - #: src/slic3r/GUI/AboutDialog.cpp:95 msgid "GNU Affero General Public License, version 3" msgstr "GNU Affero General Public License, verze 3" @@ -2684,6 +3079,14 @@ msgstr "má neuložené následující změny:" msgid "Head diameter" msgstr "Průměr hrotu" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:838 +msgid "Head diameter: " +msgstr "Průměr hrotu:" + +#: src/slic3r/GUI/Tab.cpp:3483 +msgid "Head penetration should not be greater than the head width." +msgstr "Průnik podpěry do modelu by neměl být větší než je tloušťka hrotu podpěry." + #: src/libslic3r/PrintConfig.cpp:822 msgid "Heated build plate temperature for the first layer. Set this to zero to disable bed temperature control commands in the output." msgstr "Teplota vyhřívané tiskové podložky pro první vrstvu. Nastavením tuto hodnoty na nulu vypnete příkazy pro řízení teploty ve vrstvě ve výstupu." @@ -2704,23 +3107,24 @@ msgstr "Výška obrysu vyjádřená ve vrstvách. Nastavte tuto hodnotu vysokou, msgid "Height of the display" msgstr "Výška displeje" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1350 -msgid "Height range Modifier" -msgstr "Modifikátor Výškového rozsahu" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3650 src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Height ranges" -msgstr "Výškové rozsahy" +#: src/libslic3r/PrintConfig.cpp:225 +msgid "Heights at which a filament change is to occur. " +msgstr "Výšky, při kterých má dojít ke změně filamentu." #: src/libslic3r/PrintConfig.cpp:226 msgid "Heights at which a filament change is to occur." msgstr "Výšky, při kterých má dojít ke změně filamentu." #: src/slic3r/GUI/ConfigWizard.cpp:300 -#, possible-c-format +#, c-format msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print." msgstr "Zdravím, vítejte v %s! Tento %s vám pomůže se základní konfigurací; jen několik nastavení a budete připraveni k tisku." +#: src/slic3r/GUI/ConfigWizard.cpp:290 +#, c-format +msgid "Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial configuration; just a few settings and you will be ready to print." +msgstr "Zdravím, vítejte ve Slic3r Prusa Edition! Tento %s vám pomůže se základní konfigurací; jen několik nastavení a budete připraveni k tisku." + #: src/libslic3r/PrintConfig.cpp:2976 msgid "Help" msgstr "Nápověda" @@ -2778,20 +3182,20 @@ msgid "Hostname, IP or URL" msgstr "Název serveru, IP nebo URL" #: src/slic3r/GUI/Tab.cpp:136 -msgid "Hover the cursor over buttons to find more information \nor click this button." -msgstr "Pro více informací přejeďte kurzorem nad tlačítky\nnebo na tlačítko klikněte." - -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "How much should the tiny connectors penetrate into the model body." -msgstr "Jak hluboko mají spojky proniknou do modelu." +msgid "" +"Hover the cursor over buttons to find more information \n" +"or click this button." +msgstr "" +"Pro více informací přejeďte kurzorem nad tlačítky\n" +"nebo na tlačítko klikněte." #: src/libslic3r/PrintConfig.cpp:2380 msgid "How much the pinhead has to penetrate the model surface" msgstr "Jak moc hrot podpěry pronikne do povrchu modelu" -#: src/libslic3r/PrintConfig.cpp:2642 -msgid "How much the supports should lift up the supported object. If \"Pad around object\" is enabled, this value is ignored." -msgstr "O kolik mají podpěry nadzvednout podporovaný objekt. V případě zvolení možnosti \"Podložka okolo objektu\" bude tato hodnota ignorována." +#: src/libslic3r/PrintConfig.cpp:2491 +msgid "How much the supports should lift up the supported object." +msgstr "O jakou vzdálenost mají podpěry zvednout objekt." #: src/libslic3r/PrintConfig.cpp:95 msgid "HTTPS CA File" @@ -2802,13 +3206,23 @@ msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self msgstr "Soubor HTTPS CA je volitelný. Je nutný pouze pokud použijte HTTPS certifikát s vlastním podpisem." #: src/slic3r/GUI/Tab.cpp:1773 -#, possible-c-format -msgid "HTTPS CA File:\n \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." -msgstr "Soubor HTTPS CA:\nV tomto systému používá %s certifikáty HTTPS ze systému Certificate Store nebo Keychain. Chcete-li použít vlastní soubor CA, importujte soubor CA do Certificate Store / Keychain." +#, c-format +msgid "" +"HTTPS CA File:\n" +" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n" +" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"Soubor HTTPS CA:\n" +"V tomto systému používá %s certifikáty HTTPS ze systému Certificate Store nebo Keychain. Chcete-li použít vlastní soubor CA, importujte soubor CA do Certificate Store / Keychain." -#: src/slic3r/GUI/Preferences.cpp:192 -msgid "Icon size in a respect to the default size" -msgstr "Velikost ikon vůči výchozí velikosti" +#: src/slic3r/GUI/Tab.cpp:1725 +msgid "" +"HTTPS CA File:\n" +"\tOn this system, Slic3r uses HTTPS certificates from the system Certificate Store or Keychain.\n" +"\tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"Soubor HTTPS CA:\n" +"V tomto systému používá Slic3r certifikáty HTTPS ze systému Certificate Store nebo Keychain. Chcete-li použít vlastní soubor CA, importujte soubor CA do Certificate Store / Keychain." #: src/slic3r/GUI/PrintHostDialogs.cpp:148 msgid "ID" @@ -2819,12 +3233,12 @@ msgid "If checked, supports will be generated automatically based on the overhan msgstr "Pokud je zaškrtnuto, budou podpěry generovány automaticky na základě prahové hodnoty převisu. Pokud není zaškrtnuto, bude podpěra generována pouze v místech, kde je umístěn objekt pro \"Vynucení podpěr\"." #: src/slic3r/GUI/ConfigWizard.cpp:413 -#, possible-c-format +#, c-format msgid "If enabled, %s checks for new application versions online. When a new version becomes available, a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." msgstr "Pokud je povoleno, kontroluje %s nově dostupné verze. V případě, že je nová verze k dispozici, zobrazí se notifikace při dalším startu programu (nikdy během užívání aplikace). Tento systém slouží pouze pro upozornění uživatele, nedochází k automatické instalaci." #: src/slic3r/GUI/ConfigWizard.cpp:423 -#, possible-c-format +#, c-format msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup." msgstr "Pokud je povoleno, stáhne %s na pozadí aktualizace vestavěných systémových přednastavení. Tyto aktualizace jsou staženy do dočasného umístění. Pokud je k dispozici nové přednastavení, zobrazí se upozornění při startu programu." @@ -2836,6 +3250,14 @@ msgstr "Pokud je tato možnost povolena, všechny tiskové extrudery na začátk msgid "If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." msgstr "Pokud je povoleno, PrusaSlicer kontroluje nově dostupné verze programu. V případě, že je nová verze k dispozici, zobrazí se notifikace při dalším startu programu (nikdy během užívání aplikace). Tento systém slouží pouze pro upozornění uživatele, nedochází k automatické instalaci." +#: src/slic3r/GUI/Preferences.cpp:63 +msgid "If enabled, Slic3r checks for new versions of " +msgstr "Pokud je povoleno, Slic3r kontroluje dostupnost nové verze" + +#: src/slic3r/GUI/ConfigWizard.cpp:401 src/slic3r/GUI/Preferences.cpp:61 +msgid "If enabled, Slic3r checks for new versions of Slic3r PE online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." +msgstr "Pokud je povoleno, kontroluje Slic3r nově dostupné verze Slic3r PE. V případě, že je nová verze k dispozici, zobrazí se notifikace při dalším startu programu (nikdy během užívání aplikace). Tento systém slouží pouze pro upozornění uživatele, nedochází k automatické instalaci." + #: src/slic3r/GUI/Preferences.cpp:71 msgid "If enabled, Slic3r downloads updates of built-in system presets in the background. These updates are downloaded into a separate temporary location. When a new preset version becomes available it is offered at application startup." msgstr "Pokud je povoleno, stáhne Slic3r na pozadí aktualizace vestavěných systémových přednastavení. Tyto aktualizace jsou staženy do dočasného umístění. Pokud je k dispozici nové přednastavení, zobrazí se upozornění při startu programu." @@ -2844,18 +3266,15 @@ msgstr "Pokud je povoleno, stáhne Slic3r na pozadí aktualizace vestavěných s 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 "Pokud je tato volba povolena, bude 3D scéna vykreslena v rozlišení Retina. Pokud dochází k potížím s výkonem, zkuste tuto volbu vypnout." -#: src/slic3r/GUI/Preferences.cpp:112 -msgid "If enabled, use perspective camera. If not enabled, use orthographic camera." -msgstr "Pokud je zaškrtnuto, použijte perspektivní kameru. Pokud není, použijte ortografickou kameru." - -#: src/slic3r/GUI/Preferences.cpp:119 -msgid "If enabled, you can change size of toolbar icons manually." -msgstr "Pokud je zaškrtnuto, můžete nastavit velikost ikon na panelu nástrojů." - #: src/slic3r/GUI/PresetHints.cpp:28 msgid "If estimated layer time is below ~%1%s, fan will run at %2%%% and print speed will be reduced so that no less than %3%s are spent on that layer (however, speed will never be reduced below %4%mm/s)." msgstr "Pokud je odhadovaný čas vrstvy nižší než ~%1%s, bude ventilátor pracovat na %2%%% a rychlost tisku bude snížena tak, aby na tuto vrstvu nebylo použito méně než %3%s (rychlost však nikdy nebude snížena pod %4%mm/s)." +#: src/slic3r/GUI/PresetHints.cpp:28 +#, c-format +msgid "If estimated layer time is below ~%ds, fan will run at %d%% and print speed will be reduced so that no less than %ds are spent on that layer (however, speed will never be reduced below %dmm/s)." +msgstr "Pokud je odhadovaný čas vrstvy nižší než ~% ds, bude ventilátor pracovat na %d%% a rychlost tisku bude snížena tak, aby na tuto vrstvu nebylo použito méně než %ds (rychlost však nikdy nebude snížena pod %dmm/s)." + #: src/libslic3r/PrintConfig.cpp:853 msgid "If expressed as absolute value in mm/s, this speed will be applied to all the print moves of the first layer, regardless of their type. If expressed as a percentage (for example: 40%) it will scale the default speeds." msgstr "Pokud je vyjádřena jako absolutní hodnota v mm / s, bude tato rychlost použita pro všechny pohyby tisku první vrstvy bez ohledu na jejich typ. Pokud je hodnota vyjádřena procenty (například: 40%), změní v závislosti na výchozích rychlostech." @@ -2884,6 +3303,10 @@ msgstr "Pokud je tato možnost povolena, Slic3r předprojektuje objekty, jakmile msgid "If this is enabled, Slic3r will prompt the last output directory instead of the one containing the input files." msgstr "Pokud je tato volba povolena, Slic3r vyvolá poslední výstupní adresář namísto toho, který obsahuje vstupní soubory." +#: src/slic3r/GUI/Preferences.cpp:95 +msgid "If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may try to check this checkbox. This will disable the layer height editing and anti aliasing, so it is likely better to upgrade your graphics driver." +msgstr "Pokud máte problémy s vykreslováním způsobené chybným ovladačem OpenGL 2.0, můžete se pokusit zaškrtnout toto políčko. Tím se vypnou úpravy výšky hladiny a vyhlazení, takže je lepší upgradovat grafický ovladač." + #: src/libslic3r/PrintConfig.cpp:1492 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 "Zadáním kladné hodnoty, se Z rychle přizvedne při každém vyvolání retrakce. Při použití více extruderů bude použito pouze nastavení pro první extruder." @@ -2924,14 +3347,6 @@ msgstr "Importovat Konfigurační &Balík" msgid "Import Config from &project" msgstr "Načíst konfiguraci z &projektu" -#: src/slic3r/GUI/Plater.cpp:4016 -msgid "Import Object" -msgstr "Importovat Objekt" - -#: src/slic3r/GUI/Plater.cpp:4020 -msgid "Import Objects" -msgstr "Importovat Objekty" - #: src/slic3r/Utils/FixModelByWin10.cpp:383 msgid "Import of the repaired 3mf file failed" msgstr "Import opraveného 3MF souboru selhal" @@ -2945,7 +3360,7 @@ msgid "Import STL/OBJ/AMF/3MF without config, keep bed" msgstr "Nahrát soubor STL/OBJ/AMF/3MF bez konfigurace (zachová stávající tiskovou plochu)" #: src/slic3r/GUI/GUI_ObjectList.cpp:2416 -#, possible-c-format +#, c-format msgid "In this mode you can select only other %s Items%s" msgstr "V tomto režimu můžete vybrat pouze jinou/jiný %s %s" @@ -2954,27 +3369,38 @@ msgid "Incompatible bundles:" msgstr "Nekompatibilní balíky:" #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70 -#, possible-c-format +#, c-format msgid "Incompatible with this %s" msgstr "Nekompatibilní s tímto %s" -#: src/slic3r/GUI/Plater.cpp:4091 -msgid "Increase Instances" -msgstr "Přidání Instancí" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 +msgid "Incompatible with this Slic3r" +msgstr "Nekompatibilní s tímto Slic3rem" + +#: src/slic3r/GUI/Plater.cpp:2813 src/slic3r/GUI/Plater.cpp:2825 +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Increase copies" +msgstr "Přidat kopie" #. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3338 -msgid "indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\nClick the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values." -msgstr "indikuje, že některá nastavení byla změněna a nejsou shodná se systémovými (výchozími) hodnotami pro danou skupinu nastavení.\nKlikněte na ikonu ODEMKNUTÉHO ZÁMKU pro reset všech nastavení aktuální skupiny nastavení na systémové (nebo výchozí) hodnoty." +#: src/slic3r/GUI/Tab.cpp:3071 +msgid "" +"indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"indikuje, že některá nastavení byla změněna a nejsou shodná se systémovými hodnotami pro danou skupinu nastavení.\n" +"Klikněte na ikonu ODEMKNUTÉHO ZÁMKU pro reset všech nastavení aktuální skupiny nastavení na systémové hodnoty." #. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3334 -msgid "indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "indikuje, že nastavení jsou stejná jako systémové (výchozí) hodnoty pro aktuální skupinu nastavení" +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "indicates that the settings are the same as the system values for the current option group" +msgstr "indikuje, že nastavení jsou stejná jako systémové hodnoty pro aktuální skupinu nastavení" #. TRN Description for "BACK ARROW" #: src/slic3r/GUI/Tab.cpp:3083 -msgid "indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgid "" +"indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." msgstr "indikuje, že došlo ke změně nastavení, které není shodné s naposledy uloženým přednastavením pro aktuální skupinu nastavení. Klikněte na ikonu ŠIPKY ZPĚT pro reset všech nastavení pro aktuální skupinu nastavení na naposledy uložené přednastavení." #: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:69 @@ -3019,10 +3445,6 @@ msgstr "Info" msgid "Inherits profile" msgstr "Zdědí profil" -#: src/libslic3r/SLAPrint.cpp:707 -msgid "Initial exposition time is out of printer profile bounds." -msgstr "Doba počátečního osvitu je mimo rozsah profilu tiskárny." - #: src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2318 msgid "Initial exposure time" msgstr "Doba počátečního osvitu" @@ -3040,7 +3462,7 @@ msgid "Inspect / activate configuration snapshots" msgstr "Zkontrolovat / aktivovat zálohy konfigurace" #: src/slic3r/GUI/wxExtensions.cpp:407 src/slic3r/GUI/wxExtensions.cpp:474 -#, possible-c-format +#, c-format msgid "Instance %d" msgstr "Instance %d" @@ -3052,9 +3474,10 @@ msgstr "Manipulace s instancí objektu" msgid "Instances" msgstr "Instance" -#: src/slic3r/GUI/GUI_ObjectList.cpp:934 src/slic3r/GUI/GUI_ObjectList.cpp:3346 -msgid "Instances to Separated Objects" -msgstr "Změna instance na samostatný objekt" +#: src/slic3r/GUI/wxExtensions.cpp:365 +#, c-format +msgid "Instance_%d" +msgstr "Instance_%d" #: src/libslic3r/PrintConfig.cpp:1886 msgid "Interface layers" @@ -3080,19 +3503,22 @@ msgstr "interní chyba" msgid "Internal infill" msgstr "Vnitřní výplň" +#: xs/src/slic3r/Utils/OctoPrint.cpp:120 +msgid "Invalid API key" +msgstr "Neplatný API klíč" + #: src/slic3r/GUI/Plater.cpp:2397 msgid "Invalid data" msgstr "Neplatná data" -#: src/slic3r/GUI/BedShapeDialog.cpp:471 src/slic3r/GUI/BedShapeDialog.cpp:520 -#: src/slic3r/GUI/BedShapeDialog.cpp:543 -msgid "Invalid file format." -msgstr "Neplatný formát souboru." - #: src/libslic3r/Zipper.cpp:83 msgid "invalid filename" msgstr "neplatný název souboru" +#: src/slic3r/GUI/Tab.cpp:3484 +msgid "Invalid Head penetration" +msgstr "Neplatný průnik podpěry do modelu" + #: src/libslic3r/Zipper.cpp:51 msgid "invalid header or archive is corrupted" msgstr "neplatná hlavička nebo je archiv poškozen" @@ -3105,6 +3531,19 @@ msgstr "Neplatný číselný vstup." msgid "invalid parameter" msgstr "neplatný parametr" +#: src/slic3r/GUI/Tab.cpp:3497 +msgid "Invalid pinhead diameter" +msgstr "Neplatný průměr hrotu" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Invalid rotation angle entered" +msgstr "Zadán neplatný úhel natočení" + +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +#: lib/Slic3r/GUI/Plater.pm:1158 lib/Slic3r/GUI/Plater.pm:1163 +msgid "Invalid scaling value entered" +msgstr "Zadána neplatná hodnota pro úpravu rozměru" + #. TRN "Slic3r _is licensed under the_ License" #: src/slic3r/GUI/AboutDialog.cpp:94 msgid "is licensed under the" @@ -3126,6 +3565,10 @@ msgstr "Izometrické" msgid "Iso View" msgstr "Izometrické zobrazení" +#: src/slic3r/GUI/Tab.cpp:914 +msgid "It can't be deleted or modified. " +msgstr "Nelze smazat nebo upravit. " + #: src/slic3r/GUI/Tab.cpp:925 msgid "It can't be deleted or modified." msgstr "Nelze smazat nebo upravit." @@ -3134,6 +3577,14 @@ msgstr "Nelze smazat nebo upravit." 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 "Může být užitečné zvýšit proud motoru extruderu během sekvence výměny filamentu, aby se umožnily vysoké rychlosti zavádění filamentu a aby se překonal odpor při zavádění filamentu s ošklivě tvarovanou špičkou." +#: src/slic3r/GUI/Tab.cpp:907 +msgid "It's a default preset." +msgstr "Je to výchozí přednastavení." + +#: src/slic3r/GUI/Tab.cpp:908 +msgid "It's a system preset." +msgstr "Jedná se o systémové přednastavení." + #: src/slic3r/GUI/GUI.cpp:142 src/slic3r/GUI/Tab.cpp:2796 msgid "It's impossible to print multi-part object(s) with SLA technology." msgstr "SLA technologií nelze tisknout vícedílné objekty." @@ -3178,19 +3629,32 @@ msgstr "Jazyk" msgid "Language selection" msgstr "Výběr jazyka" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1770 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1872 -msgid "Last instance of an object cannot be deleted." -msgstr "Poslední instanci objektu nelze odstranit." +#: src/slic3r/GUI/GLCanvas3D.cpp:1694 +msgid "Last frame" +msgstr "Poslední snímek" + +#: lib/Slic3r/GUI/Plater.pm:265 +msgid "Layer Editing" +msgstr "Vyhlazení vrstev" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2994 -msgid "Layer" -msgstr "Vrstva" +#: lib/Slic3r/GUI/Plater.pm:280 +msgid "Layer editing" +msgstr "Vyhlazení vrstev" #: src/slic3r/GUI/Tab.cpp:998 src/libslic3r/PrintConfig.cpp:55 msgid "Layer height" msgstr "Výška vrstvy" +#: src/slic3r/GUI/Tab.cpp:1253 +msgid "" +"Layer height can't be equal to zero.\n" +"\n" +"Shall I set its value to minimum (0.01)?" +msgstr "" +"Výška vrstvy nemůže být rovna nule.\n" +"\n" +"Mám nastavit její hodnotu na minimum (0.01)?" + #: src/libslic3r/Print.cpp:1332 msgid "Layer height can't be greater than nozzle diameter" msgstr "Výška vrstvy nemůže být větší než je průměr trysky" @@ -3199,10 +3663,6 @@ msgstr "Výška vrstvy nemůže být větší než je průměr trysky" msgid "Layer height limits" msgstr "Výškové limity vrstvy" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2109 -msgid "Layer range Settings to modify" -msgstr "Nastavení pro vrstvy v rozsahu" - #: src/libslic3r/PrintConfig.cpp:326 src/libslic3r/PrintConfig.cpp:946 #: src/libslic3r/PrintConfig.cpp:1435 src/libslic3r/PrintConfig.cpp:1620 #: src/libslic3r/PrintConfig.cpp:1681 src/libslic3r/PrintConfig.cpp:1844 @@ -3229,9 +3689,9 @@ msgstr "Vrstvy a perimetry" msgid "Layers and Perimeters" msgstr "Vrstvy a perimetry" -#: src/slic3r/GUI/GLCanvas3D.cpp:526 -msgid "Layers heights" -msgstr "Výšky vrstev" +#: src/slic3r/GUI/GLCanvas3D.cpp:3517 +msgid "Layers editing" +msgstr "Vyhlazení vrstev" #: src/slic3r/GUI/KBShortcutsDialog.cpp:189 msgid "Layers Slider Shortcuts" @@ -3259,18 +3719,22 @@ msgstr "Zleva" msgid "Left click" msgstr "Levý klik" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:597 +msgid "Left mouse click - add point" +msgstr "Kliknutí levým tlačítkem myši - přidání bodu" + #: src/slic3r/GUI/MainFrame.cpp:527 msgid "Left View" msgstr "Pohled zleva" -#: src/slic3r/GUI/GUI_Preview.cpp:255 -msgid "Legend" -msgstr "Legenda" - #: src/libslic3r/PrintConfig.cpp:1473 src/libslic3r/PrintConfig.cpp:1481 msgid "Length" msgstr "Vzdálenost" +#: src/libslic3r/PrintConfig.cpp:292 +msgid "Length of the cooling tube to limit space for cooling moves inside it " +msgstr "Délka kovové trubičky určené pro ochlazení a zformování filamentu po vytažení z extruderu " + #: src/libslic3r/PrintConfig.cpp:293 msgid "Length of the cooling tube to limit space for cooling moves inside it." msgstr "Délka kovové trubičky určené pro ochlazení a zformování filamentu po vytažení z extruderu." @@ -3324,33 +3788,17 @@ msgstr "Načíst konfiguraci ze zadaného souboru. Může být použito vícekr msgid "Load exported configuration file" msgstr "Načíst exportovaný konfigurační soubor" -#: src/slic3r/GUI/Plater.cpp:1271 -msgid "Load File" -msgstr "Načtení souboru" - -#: src/slic3r/GUI/Plater.cpp:1275 -msgid "Load Files" -msgstr "Naštení souborů" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1585 -msgid "Load Part" -msgstr "Přidání části" - #: src/slic3r/GUI/MainFrame.cpp:357 msgid "Load presets from a bundle" msgstr "Načíst přednastavení z balíku" -#: src/slic3r/GUI/Plater.cpp:3992 -msgid "Load Project" -msgstr "Načíst Projekt" - #: src/slic3r/GUI/BedShapeDialog.cpp:97 msgid "Load shape from STL..." msgstr "Načíst tvar ze souboru STL…" -#: src/slic3r/GUI/BedShapeDialog.cpp:181 src/slic3r/GUI/BedShapeDialog.cpp:249 -msgid "Load..." -msgstr "Načíst..." +#: lib/Slic3r/GUI/Plater.pm:779 +msgid "Loaded " +msgstr "Načteno " #: src/slic3r/GUI/WipeTowerDialog.cpp:235 msgid "loaded" @@ -3364,6 +3812,10 @@ msgstr "Načteno" msgid "Loading" msgstr "Načítání" +#: src/slic3r/GUI/GUI_App.cpp:339 +msgid "Loading of a current presets" +msgstr "Načítání aktuálních předvoleb" + #: src/slic3r/GUI/GUI_App.cpp:407 msgid "Loading of a mode view" msgstr "Načítání režimu zobrazení" @@ -3385,6 +3837,10 @@ msgstr "Rychlost zavádění" msgid "Loading speed at the start" msgstr "Počáteční rychlost zavádění" +#: lib/Slic3r/GUI/Plater.pm:713 +msgid "Loading…" +msgstr "Načítání…" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:41 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 msgid "Local coordinates" @@ -3398,13 +3854,17 @@ msgstr "Ukotvi podpěry pod novými ostrůvky" msgid "LOCKED LOCK" msgstr "ZAMČENÝ ZÁMEK" -#: src/slic3r/GUI/Tab.cpp:3360 -msgid "LOCKED LOCK icon indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "Ikona ZAMKNUTÉHO ZÁMKU indikuje, že nastavení jsou stejná jako systémové (nebo výchozí) hodnoty pro aktuální skupinu nastavení" +#: src/slic3r/GUI/Tab.cpp:3103 +msgid "LOCKED LOCK icon indicates that the settings are the same as the system values for the current option group" +msgstr "Ikona ZAMKNUTÉHO ZÁMKU indikuje, že nastavení jsou stejná jako systémové hodnoty pro aktuální skupinu nastavení" -#: src/slic3r/GUI/Tab.cpp:3376 -msgid "LOCKED LOCK icon indicates that the value is the same as the system (or default) value." -msgstr "Ikona ZAMKNUTÉHO ZÁMKU indikuje, že hodnota je shodná se systémovou (výchozí) hodnotou." +#: src/slic3r/GUI/Tab.cpp:3119 +msgid "LOCKED LOCK icon indicates that the value is the same as the system value." +msgstr "Ikona ZAMKNUTÉHO ZÁMKU indikuje, že hodnota je shodná se systémovou hodnotou." + +#: src/slic3r/GUI/Tab.cpp:3064 +msgid "LOCKED LOCK;indicates that the settings are the same as the system values for the current option group" +msgstr "ZAMKNUTÝ ZÁMEK; indikuje, že nastavení jsou stejná jako systémové hodnoty pro aktuální skupinu nastavení" #: src/libslic3r/PrintConfig.cpp:3119 msgid "Logging level" @@ -3439,6 +3899,10 @@ msgstr "Model OK" msgid "Manual editing" msgstr "Manuální úprava" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:675 +msgid "Manual editing [M]" +msgstr "Ruční úprava [M]" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:105 msgid "Masked SLA file exported to %1%" msgstr "Soubor pro SLA byl exportován do %1%" @@ -3503,14 +3967,26 @@ msgstr "Maximální objemová rychlost" msgid "Maximal bridging distance" msgstr "Maximální vzdálenost přemostění" +#: src/libslic3r/PrintConfig.cpp:2168 +msgid "Maximal distance between supports on sparse infill sections. " +msgstr "Maximální vzdálenost mezi podpěrami u částí s řídkou výplní. " + #: src/libslic3r/PrintConfig.cpp:2193 msgid "Maximal distance between supports on sparse infill sections." msgstr "Maximální vzdálenost mezi podpěrami u částí s řídkou výplní." +#: src/libslic3r/PrintConfig.cpp:1086 +msgid "Maximum acceleration %1%" +msgstr "Maximální zrychlení %1%" + #: src/libslic3r/PrintConfig.cpp:1099 msgid "Maximum acceleration E" msgstr "Maximální zrychlení E" +#: src/libslic3r/PrintConfig.cpp:1088 +msgid "Maximum acceleration of the %1% axis" +msgstr "Maximální zrychlení osy %1%" + #: src/libslic3r/PrintConfig.cpp:1105 msgid "Maximum acceleration of the E axis" msgstr "Maximální zrychlení osy E" @@ -3559,14 +4035,18 @@ msgstr "Maximální zrychlení Z" msgid "Maximum accelerations" msgstr "Maximální zrychlení" -#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2425 -msgid "Maximum exposure time" -msgstr "Maximální doba osvitu" +#: src/libslic3r/PrintConfig.cpp:1076 +msgid "Maximum feedrate %1%" +msgstr "Maximální rychlost posuvu %1%" #: src/libslic3r/PrintConfig.cpp:1081 msgid "Maximum feedrate E" msgstr "Maximální rychlost posuvu E" +#: src/libslic3r/PrintConfig.cpp:1078 +msgid "Maximum feedrate of the %1% axis" +msgstr "Maximální rychlost posuvu osy %1%" + #: src/libslic3r/PrintConfig.cpp:1087 msgid "Maximum feedrate of the E axis" msgstr "Maximální rychlost posuvu osy E" @@ -3599,14 +4079,18 @@ msgstr "Maximální rychlost posuvu Z" msgid "Maximum feedrates" msgstr "Maximální rychlosti posuvu" -#: src/libslic3r/PrintConfig.cpp:2447 src/libslic3r/PrintConfig.cpp:2448 -msgid "Maximum initial exposure time" -msgstr "Maximální doba počátečního osvitu" +#: src/libslic3r/PrintConfig.cpp:1096 +msgid "Maximum jerk %1%" +msgstr "Maximální ryv (jerk) %1%" #: src/libslic3r/PrintConfig.cpp:1117 msgid "Maximum jerk E" msgstr "Maximální ryv E" +#: src/libslic3r/PrintConfig.cpp:1098 +msgid "Maximum jerk of the %1% axis" +msgstr "Maximální ryv (jerk) osy %1%" + #: src/libslic3r/PrintConfig.cpp:1123 msgid "Maximum jerk of the E axis" msgstr "Maximální ryv (jerk) osy E" @@ -3683,6 +4167,10 @@ msgstr "Minimální délka extruze filamentu" msgid "Minimal points distance" msgstr "Minimální vzdálenost bodů" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:877 +msgid "Minimal points distance: " +msgstr "Minimální vzdálenost bodů:" + #: src/libslic3r/PrintConfig.cpp:635 msgid "Minimal purge on wipe tower" msgstr "Minimální vytlačený objem na čistící věži" @@ -3691,10 +4179,6 @@ msgstr "Minimální vytlačený objem na čistící věži" msgid "Minimum detail resolution, used to simplify the input file for speeding up the slicing job and reducing memory usage. High-resolution models often carry more detail than printers can render. Set to zero to disable any simplification and use full resolution from input." msgstr "Minimální rozlišení detailů, které se používají pro zjednodušení vstupního souboru pro urychlení slicovací úlohy a snížení využití paměti. Modely s vysokým rozlišením často obsahují více detailů než tiskárny dokážou vykreslit. Nastavte na nulu, chcete-li zakázat jakékoli zjednodušení a použít vstup v plném rozlišení." -#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2417 -msgid "Minimum exposure time" -msgstr "Minimální doba osvitu" - #: src/libslic3r/PrintConfig.cpp:1109 src/libslic3r/PrintConfig.cpp:1111 msgid "Minimum feedrate when extruding" msgstr "Minimální rychlosti posuvu během extruze" @@ -3707,10 +4191,6 @@ msgstr "Minimální rychlosti posuvu během extruze (M205 S)" msgid "Minimum feedrates" msgstr "Minimální rychlosti posuvu" -#: src/libslic3r/PrintConfig.cpp:2439 src/libslic3r/PrintConfig.cpp:2440 -msgid "Minimum initial exposure time" -msgstr "Minimální doba počátečního osvitu" - #: src/libslic3r/PrintConfig.cpp:1452 msgid "Minimum travel after retraction" msgstr "Minimální dráha extruderu po retrakci" @@ -3727,14 +4207,6 @@ msgstr "Minimální rychlost při přesunu (M205 T)" msgid "Mirror" msgstr "Zrcadlit" -#: src/libslic3r/PrintConfig.cpp:2320 -msgid "Mirror horizontally" -msgstr "Zrcadlit horizontálně" - -#: src/slic3r/GUI/GLCanvas3D.cpp:1711 -msgid "Mirror Object" -msgstr "Zrcadlit Objekt" - #: src/slic3r/GUI/Plater.cpp:2946 msgid "Mirror the selected object" msgstr "Zrcadlit vybraný objekt" @@ -3751,12 +4223,8 @@ msgstr "Zrcadlit rozměr vybraného objektu podél osy Y" msgid "Mirror the selected object along the Z axis" msgstr "Zrcadlit rozměr vybraného objektu podél osy Z" -#: src/libslic3r/PrintConfig.cpp:2327 -msgid "Mirror vertically" -msgstr "Zrcadlit vertikálně" - #: src/slic3r/Utils/OctoPrint.cpp:69 -#, possible-c-format +#, c-format msgid "Mismatched type of print host: %s" msgstr "Nesprávný typ tiskového serveru: % s" @@ -3805,6 +4273,17 @@ msgstr "mm (nula pro vypnutí)" msgid "mm or %" msgstr "mm nebo %" +#: src/libslic3r/PrintConfig.cpp:528 +msgid "mm or % (leave 0 for auto)" +msgstr "mm nebo % (pro automatické ponechte 0)" + +#: src/libslic3r/PrintConfig.cpp:420 src/libslic3r/PrintConfig.cpp:835 +#: src/libslic3r/PrintConfig.cpp:967 src/libslic3r/PrintConfig.cpp:1354 +#: src/libslic3r/PrintConfig.cpp:1692 src/libslic3r/PrintConfig.cpp:1865 +#: src/libslic3r/PrintConfig.cpp:2023 +msgid "mm or % (leave 0 for default)" +msgstr "mm nebo % (ponechte 0 jako výchozí)" + #: src/libslic3r/PrintConfig.cpp:201 src/libslic3r/PrintConfig.cpp:577 #: src/libslic3r/PrintConfig.cpp:585 src/libslic3r/PrintConfig.cpp:594 #: src/libslic3r/PrintConfig.cpp:602 src/libslic3r/PrintConfig.cpp:629 @@ -3855,10 +4334,6 @@ msgstr "Režim" msgid "model" msgstr "model" -#: src/slic3r/GUI/BedShapeDialog.cpp:239 -msgid "Model" -msgstr "Model" - #: src/slic3r/Utils/FixModelByWin10.cpp:340 msgid "Model fixing" msgstr "Opravování modelu" @@ -3900,6 +4375,10 @@ msgstr "Modifikátory" msgid "money/kg" msgstr "korun/kg" +#: lib/Slic3r/GUI/Plater.pm:255 +msgid "More" +msgstr "Více" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Mouse wheel" msgstr "Kolečko myši" @@ -3920,17 +4399,25 @@ msgstr "Posunout aktivní posuvník dolů" msgid "Move current slider thumb Up" msgstr "Posunout aktivní posuvník nahoru" -#: src/slic3r/GUI/GLCanvas3D.cpp:2872 -msgid "Move Object" -msgstr "Posunutí Objektu" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Move current slider thump Down" +msgstr "Posunout aktivní posuvník dolů" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Move current slider thump Up" +msgstr "Posunout aktivní posuvník nahoru" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 msgid "Move point" msgstr "Posunout bod" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1183 -msgid "Move support point" -msgstr "Posun podpěrného bodu" +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:51 +msgid "Move [M]" +msgstr "Přesunout [M]" + +#: src/slic3r/GUI/GLCanvas3D.cpp:1698 +msgid "ms" +msgstr "ms" #: src/libslic3r/PrintConfig.cpp:2100 msgid "Multi material printers may need to prime or purge extruders on tool changes. Extrude the excess material into the wipe tower." @@ -3941,7 +4428,7 @@ msgid "Multi-part object detected" msgstr "Detekován objekt obsahující více částí" #: src/slic3r/GUI/FirmwareDialog.cpp:400 src/slic3r/GUI/FirmwareDialog.cpp:436 -#, possible-c-format +#, c-format msgid "Multiple %s devices found. Please only connect one at a time for flashing." msgstr "Bylo nalezeno více zařízení %s . Během flashování mějte připojené pouze jedno." @@ -3950,8 +4437,14 @@ msgid "Multiple Extruders" msgstr "Více Extruderů" #: src/slic3r/GUI/Plater.cpp:1766 -msgid "Multiple objects were loaded for a multi-material printer.\nInstead of considering them as multiple objects, should I consider\nthese files to represent a single object having multiple parts?\n" -msgstr "Bylo nahráno více objektů pro multi materiálovou tiskárnu.\nMají být vloženy jako jeden objekt obsahující více částí, \nnamísto vložení několika objektů?\n" +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?\n" +msgstr "" +"Bylo nahráno více objektů pro multi materiálovou tiskárnu.\n" +"Mají být vloženy jako jeden objekt obsahující více částí, \n" +"namísto vložení několika objektů?\n" #: src/libslic3r/PrintConfig.cpp:3050 msgid "Multiply copies by creating a grid." @@ -3961,10 +4454,6 @@ msgstr "Vynásobí kopie vytvořením mřížky." msgid "Multiply copies by this factor." msgstr "Vynásobí kopie tímto číslem." -#: src/slic3r/GUI/Field.cpp:139 -msgid "N/A" -msgstr "N/A" - #: src/slic3r/GUI/GUI_ObjectList.cpp:176 msgid "Name" msgstr "Název" @@ -3989,27 +4478,19 @@ msgstr "Nejbližší" msgid "Network lookup" msgstr "Hledání v síti" -#: src/slic3r/GUI/Plater.cpp:2056 -msgid "New Project" -msgstr "Nový Projekt" - #: src/slic3r/GUI/UpdateDialogs.cpp:30 -#, possible-c-format +#, c-format msgid "New version of %s is available" msgstr "Je dostupná nová verze %s" +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "New version of Slic3r PE is available" +msgstr "Je dostupná nová verze Slic3r PE" + #: src/slic3r/GUI/UpdateDialogs.cpp:47 msgid "New version:" msgstr "Nová verze:" -#: src/slic3r/GUI/GLCanvas3D.cpp:3750 -msgid "Next Redo action: %1%" -msgstr "Akce vpřed: %1%" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3718 -msgid "Next Undo action: %1%" -msgstr "Akce zpět: %1%" - #: src/libslic3r/PrintConfig.cpp:912 msgid "No extrusion" msgstr "Žádná extruze" @@ -4143,10 +4624,6 @@ msgstr "Jméno objektu" msgid "Object or Instance" msgstr "Objekt nebo Instanci" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Object reordered" -msgstr "Zěna pořadí objektů" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1868 msgid "Object Settings to modify" msgstr "Změna nastavení objektu" @@ -4167,10 +4644,22 @@ msgstr "objekt(y)" msgid "objects" msgstr "objekty" +#: xs/src/libslic3r/PrintConfig.cpp:2006 +msgid "Objects will be used to wipe 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 "Objekty budou použity k vyčištění barvy filamentu v trysce po změně extruderu, aby se ušetřil materiál, který by jinak skončil v čistící věži. Výsledkem budou objekty s náhodně mixovanými barvami." + #: src/libslic3r/PrintConfig.cpp:402 src/libslic3r/PrintConfig.cpp:808 msgid "Octagram Spiral" msgstr "Octagram Spiral" +#: xs/src/slic3r/GUI/Tab.cpp:1520 xs/src/slic3r/Utils/OctoPrint.cpp:110 +msgid "OctoPrint upload" +msgstr "OctoPrint nahrávání" + +#: lib/Slic3r/GUI/Plater.pm:1576 +msgid "OctoPrint upload finished." +msgstr "Nahrávání do OctoPrintu dokončeno." + #: src/slic3r/GUI/BonjourDialog.cpp:76 msgid "OctoPrint version" msgstr "Verze OctoPrintu" @@ -4179,10 +4668,6 @@ msgstr "Verze OctoPrintu" msgid "of a current Object" msgstr "současného Objektu" -#: src/slic3r/GUI/wxExtensions.cpp:2570 -msgid "One layer mode" -msgstr "Zobrazení po jedné vrstvě" - #: src/libslic3r/Print.cpp:1285 msgid "One or more object were assigned an extruder that the printer does not have." msgstr "Jeden nebo více objektů bylo přiřazeno extruderu, který tiskárna nemá." @@ -4215,9 +4700,9 @@ msgstr "Provést retrakci pouze při přejíždění perimetrů" msgid "Ooze prevention" msgstr "Prevence odkapávání" -#: src/libslic3r/Print.cpp:1193 -msgid "Ooze prevention is currently not supported with the wipe tower enabled." -msgstr "V současné době není funkce \"Prevence odkapávání\" filamentu podporována společně s povolenou čistící věží." +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open a model" +msgstr "Otevřít model" #: src/slic3r/GUI/MainFrame.cpp:339 msgid "Open a project file" @@ -4239,15 +4724,44 @@ msgstr "Otevře stránku pro stažení programu" msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" msgstr "Otevřít soubor STL/OBJ/AMF/3MF s konfigurací (smaže tiskovou plochu)" +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open STL/OBJ/AMF/3MF…\tCtrl+O" +msgstr "Otevřít STL/OBJ/AMF/3MF… Ctrl+O" + +#: src/slic3r/GUI/MainFrame.cpp:554 +#, c-format +msgid "Open the %s manual in your browser" +msgstr "Otevřít návod k %s v prohlížeči" + #: src/slic3r/GUI/MainFrame.cpp:551 -#, possible-c-format +#, c-format msgid "Open the %s website in your browser" msgstr "Otevřít webovou stránku %s v prohlížeči" +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Open the 3D cutting tool" +msgstr "Otevřete nástroj 3D řezání" + +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Open the object editor dialog" +msgstr "Otevře dialogové okno editoru objektů" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Open the Prusa Edition releases page in your browser" +msgstr "Otevřít stránku vydání Prusa Edice ve vašem prohlížeči" + #: src/slic3r/GUI/MainFrame.cpp:542 msgid "Open the Prusa3D drivers download page in your browser" msgstr "Otevřít stránku pro stahování Prusa 3D ovladačů ve vašem prohlížeči" +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Open the Slic3r manual in your browser" +msgstr "Otevřít Slic3r návod ve vašem prohlížeči" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Open the Slic3r website in your browser" +msgstr "Otevřít webovou stránku Slic3ru ve vašem prohlížeči" + #: src/slic3r/GUI/MainFrame.cpp:549 msgid "Open the software releases page in your browser" msgstr "Otevřít stránku s verzemi tohoto softwaru ve vašem prohlížeči" @@ -4256,10 +4770,6 @@ msgstr "Otevřít stránku s verzemi tohoto softwaru ve vašem prohlížeči" msgid "Optimize orientation" msgstr "Optimalizovat orientaci" -#: src/slic3r/GUI/Plater.cpp:2643 -msgid "Optimize Rotation" -msgstr "Optimalizovat Orientaci" - #: src/slic3r/GUI/Plater.cpp:2994 msgid "Optimize the rotation of the object for better print results." msgstr "Optimalizujte rotaci objektu pro lepší výsledky tisku." @@ -4276,9 +4786,9 @@ msgstr "Volby pro podpěry a raft" msgid "Orientation found." msgstr "Orientace nalezena." -#: src/slic3r/GUI/Plater.cpp:2768 -msgid "Orientation search canceled." -msgstr "Hledání optimální orientace zrušeno." +#: src/slic3r/GUI/Plater.cpp:2185 +msgid "Orientation search canceled" +msgstr "Hledávání optimální orientace bylo zrušeno" #: src/slic3r/GUI/BedShapeDialog.cpp:79 msgid "Origin" @@ -4292,6 +4802,10 @@ msgstr "Ostatní" msgid "Other layers" msgstr "Ostatní vrstvy" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:252 +msgid "Other vendors" +msgstr "Ostatní výrobci" + #: src/slic3r/GUI/ConfigWizard.cpp:438 msgid "Other Vendors" msgstr "Ostatní výrobci" @@ -4342,27 +4856,11 @@ msgstr "Podložka" #: src/slic3r/GUI/GUI_ObjectList.cpp:39 msgid "Pad and Support" -msgstr "Podložka a Podpěry" - -#: src/libslic3r/PrintConfig.cpp:2732 -msgid "Pad around object" -msgstr "Podložka okolo objektu" +msgstr "Podložka a Podppěry" -#: src/libslic3r/PrintConfig.cpp:2731 -msgid "Pad object connector penetration" -msgstr "Průnik spojky Podložka-Objekt" - -#: src/libslic3r/PrintConfig.cpp:2711 -msgid "Pad object connector stride" -msgstr "Rozteč spojek Podložka-Objekt" - -#: src/libslic3r/PrintConfig.cpp:2721 -msgid "Pad object connector width" -msgstr "Šířka spojky Podložka-Objekt" - -#: src/libslic3r/PrintConfig.cpp:2700 -msgid "Pad object gap" -msgstr "Mezera Podložka-Objekt" +#: src/libslic3r/PrintConfig.cpp:2559 +msgid "Pad edge radius" +msgstr "Poloměr hrany podložky" #: src/libslic3r/PrintConfig.cpp:2532 msgid "Pad wall height" @@ -4408,10 +4906,6 @@ msgstr "Vložit ze schránky" msgid "Paste from clipboard" msgstr "Vložit ze schránky" -#: src/slic3r/GUI/Plater.cpp:4772 -msgid "Paste From Clipboard" -msgstr "Vložení ze schránky" - #: src/libslic3r/PrintConfig.cpp:1915 msgid "Pattern" msgstr "Vzor" @@ -4451,18 +4945,34 @@ msgid "Perimeters" msgstr "Perimetry" #: src/slic3r/GUI/ConfigWizard.cpp:440 -#, possible-c-format +#, c-format msgid "Pick another vendor supported by %s:" msgstr "Vyberte si jiného prodejce podporovaného v %s:" +#: src/slic3r/GUI/ConfigWizard.cpp:423 +msgid "Pick another vendor supported by Slic3r PE:" +msgstr "Vyberte si jiného prodejce podporovaného v Slic3r PE:" + #: src/libslic3r/PrintConfig.cpp:2430 msgid "Pillar widening factor" msgstr "Koeficient rozšiřování podpěry" +#: src/slic3r/GUI/Tab.cpp:3496 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "Průměr hrotu by měl být menší než průměr podpěry." + #: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 msgid "Place on face" msgstr "Umístit plochou na podložku" +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 +msgid "Place on face [F]" +msgstr "Umístit plochou na podložku [F]" + +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Place one more copy of the selected object" +msgstr "Přidá jednu kopii vybraného objektu" + #: src/slic3r/GUI/MainFrame.cpp:161 msgid "Plater" msgstr "Podložka" @@ -4479,6 +4989,14 @@ msgstr "Zkontrolujte a opravte seznam objektů." msgid "Please check your object list before preset changing." msgstr "Před změnou nastavení zkontrolujte prosím seznam objektů." +#: lib/Slic3r/GUI/Plater.pm:1897 +msgid "Please install the OpenGL modules to use this feature (see build instructions)." +msgstr "Pro použití této funkce prosím nainstalujte OpenGL moduly (viz instrukce vlastního sestavení)." + +#: src/slic3r/GUI/GUI_App.cpp:742 +msgid "Please, check your changes before." +msgstr "Prosím, nejdříve zkontrolujte provedené změny." + #: src/slic3r/GUI/AboutDialog.cpp:39 src/slic3r/GUI/AboutDialog.cpp:286 msgid "Portions copyright" msgstr "Autorská práva" @@ -4537,31 +5055,54 @@ msgid "Preparing infill" msgstr "Příprava výplně" #: src/slic3r/GUI/Tab.cpp:2758 -#, possible-c-format +#, c-format msgid "Preset (%s)" msgstr "Přednastavení (%s)" #: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center" -msgstr "Stiskem aktivujete obdélníkové odstranění \nvýběru nebo změnu velikosti nebo otočení \nvybraných objektů kolem vlastních středů" +msgid "" +"Press to activate deselection rectangle\n" +"or to scale or rotate selected objects\n" +"around their own center" +msgstr "" +"Stiskem aktivujete obdélníkové odstranění \n" +"výběru nebo změnu velikosti nebo otočení \n" +"vybraných objektů kolem vlastních středů" #: src/slic3r/GUI/KBShortcutsDialog.cpp:148 msgid "Press to activate one direction scaling in Gizmo scale" msgstr "Stiskem aktivujete změnu velikosti pouze v jednom směru" #: src/slic3r/GUI/KBShortcutsDialog.cpp:146 -#, possible-c-format -msgid "Press to activate selection rectangle\nor to snap by 5% in Gizmo scale\nor to snap by 1mm in Gizmo move" -msgstr "Stiskem aktivujete obdélníkvý výběr\nnebo 5% krok při změně velikosti\nnebo 1mm krok při posunu" +#, no-c-format +msgid "" +"Press to activate selection rectangle\n" +"or to snap by 5% in Gizmo scale\n" +"or to snap by 1mm in Gizmo move" +msgstr "" +"Stiskem aktivujete obdélníkvý výběr\n" +"nebo 5% krok při změně velikosti\n" +"nebo 1 mm krok při posunu" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to scale selection to fit print volume\nin Gizmo scale" -msgstr "Stiskem v režimu Gizmo měřítko vyplní tiskovou\nplochu aktivním výběrem" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:148 +msgid "" +"Press to scale or rotate selected objects\n" +"around their own center" +msgstr "Stisknutím změníte velikost nebo otočíte vybranými objekty kolem vlastního středu" #: src/slic3r/GUI/KBShortcutsDialog.cpp:127 msgid "Press to select multiple object or move multiple object with mouse" msgstr "Stisknutím vyberte více objektů nebo přesuňte více objektů pomocí myši" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +#, no-c-format +msgid "" +"Press to snap by 5% in Gizmo scale\n" +"or by 1mm in Gizmo move" +msgstr "" +"Stiskněte pro změnu velikosti s krokem 5%\n" +"nebo pro posun s krokem 1mm" + #: src/slic3r/GUI/Tab.cpp:2288 msgid "Preview" msgstr "Náhled" @@ -4619,10 +5160,6 @@ msgstr "Přepsání rychlosti tisku" msgid "Print&er Settings Tab" msgstr "Panel nastavení tiskárny" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1438 -msgid "Printable" -msgstr "Tisknout objekt" - #: src/slic3r/GUI/Plater.cpp:685 msgid "Printer" msgstr "Tiskárna" @@ -4676,17 +5213,33 @@ msgstr "Prodejce tiskárny" msgid "Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current extruder (support_material_extruder == 0 or support_material_interface_extruder == 0), all nozzles have to be of the same diameter." msgstr "Tisk s více extrudery různých průměrů trysek. Má-li být podpěra tisknuta aktuálním extruderem (support_material_extruder == 0 nebo support_material_interface_extruder == 0), musí mít všechny trysky stejný průměr." +#: lib/Slic3r/GUI/Plater.pm:324 +msgid "Print…" +msgstr "Tisk…" + +#: src/slic3r/GUI/MainFrame.cpp:704 +msgid "Processing " +msgstr "Zpracovávám " + #. TRN "Processing input_file_basename" #: src/slic3r/GUI/MainFrame.cpp:715 -#, possible-c-format +#, c-format msgid "Processing %s" msgstr "Zpracovávám %s" +#: lib/Slic3r/GUI/Plater.pm:713 lib/Slic3r/GUI/Plater.pm:727 +msgid "Processing input file\n" +msgstr "Zpracovávám vstupní soubor\n" + #: src/slic3r/GUI/Plater.cpp:1600 -#, possible-c-format +#, c-format msgid "Processing input file %s\n" msgstr "Zpracovávám vstupní soubor %s\n" +#: src/libslic3r/SLA/SLASupportTree.cpp:2160 +msgid "Processing small holes" +msgstr "Zpracování malých otvorů" + #: src/libslic3r/PrintObject.cpp:110 msgid "Processing triangulated mesh" msgstr "Zpracovávám tringulační sítě" @@ -4709,6 +5262,18 @@ msgstr "Průběh:" msgid "Prusa 3D &Drivers" msgstr "Prusa 3&D Ovladače" +#: lib/Slic3r/GUI/MainFrame.pm:338 +msgid "Prusa 3D Drivers" +msgstr "Prusa 3D Ovladače" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Prusa Edition &Releases" +msgstr "Vydání P&rusa Edice" + +#: lib/Slic3r/GUI/MainFrame.pm:341 +msgid "Prusa Edition Releases" +msgstr "Vydání Prusa Edice" + #: src/slic3r/GUI/ConfigWizard.cpp:1109 msgid "Prusa FFF Technology Printers" msgstr "Prusa tiskárny technologie FFF" @@ -4721,15 +5286,18 @@ msgstr "Prusa tiskárny technologie MSLA" msgid "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community." msgstr "PrusaSlicer je založen na Slic3r od Alessandra Ranellucciho a RepRap komunity." -#: src/slic3r/GUI/GUI_App.cpp:297 -#, possible-c-format -msgid "PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \nwhile OpenGL version %s, render %s, vendor %s was detected." -msgstr "PrusaSlicer vyžaduje grafický ovladač s funkčním OpenGL 2.0. Zatímco byla detekována verze OpenGL %s, render %s, výrobce %s." - #: src/libslic3r/PrintConfig.cpp:2153 msgid "Purging after toolchange will 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 "Vyčištění trysky po výměně filamentu se provede uvnitř výplní tohoto objektu. Tím se snižuje množství odpadu, ale může to mít za následek delší dobu tisku v důsledku dodatečných pohybů." +#: xs/src/libslic3r/PrintConfig.cpp:1996 +msgid "Purging into infill" +msgstr "Čištění do výplně" + +#: xs/src/libslic3r/PrintConfig.cpp:2005 +msgid "Purging into objects" +msgstr "Čištění do objektů" + #: src/slic3r/GUI/Plater.cpp:456 msgid "Purging volumes" msgstr "Objemy čištění" @@ -4742,6 +5310,10 @@ msgstr "Objemy čištění - zaváděné / vyjmuté objemy" msgid "Purging volumes - matrix" msgstr "Objemy čištění - matice" +#: lib/Slic3r/GUI/MainFrame.pm:232 +msgid "Q&uick Slice…\tCtrl+U" +msgstr "R&ychlé Slicování…\tCtrl+U" + #: src/slic3r/GUI/Tab.cpp:1019 msgid "Quality (slower slicing)" msgstr "Kvalita (pomalejší slicing)" @@ -4749,23 +5321,39 @@ msgstr "Kvalita (pomalejší slicing)" #: src/slic3r/GUI/GUI_ObjectList.cpp:854 src/slic3r/GUI/GUI_ObjectList.cpp:1139 #: src/slic3r/GUI/GUI_ObjectList.cpp:1145 #: src/slic3r/GUI/GUI_ObjectList.cpp:1377 -#, possible-c-format +#, c-format msgid "Quick Add Settings (%s)" msgstr "Rychlé přidání nastavení (%s)" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +msgid "Quick slice" +msgstr "Rychlé slicování" + #: src/slic3r/GUI/MainFrame.cpp:383 msgid "Quick Slice" msgstr "Rychlé Slicování" +#: lib/Slic3r/GUI/MainFrame.pm:238 +msgid "Quick Slice and Save &As…\tCtrl+Alt+U" +msgstr "Rychlé Slicování a Uložit &jako…\tCtrl+Alt+U" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 +msgid "Quick slice and Save as" +msgstr "Rychlé Slicování a Uložit jako" + #: src/slic3r/GUI/MainFrame.cpp:389 msgid "Quick Slice and Save As" msgstr "Rychlé Slicování a Uložit jako" #: src/slic3r/GUI/MainFrame.cpp:409 -#, possible-c-format +#, c-format msgid "Quit %s" msgstr "Ukončit %s" +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "Quit Slic3r" +msgstr "Ukončit Slic3r" + #: src/libslic3r/PrintConfig.cpp:479 msgid "Radius" msgstr "Rádius" @@ -4778,13 +5366,23 @@ msgstr "Raft" msgid "Raft layers" msgstr "Vrstev raftu" +#: xs/src/slic3r/GUI/Tab.cpp:1299 +msgid "Ramming" +msgstr "Rapidní extruze" + #: src/slic3r/GUI/WipeTowerDialog.cpp:14 msgid "Ramming customization" msgstr "Přizpůsobení rapidní extruze" #: src/slic3r/GUI/WipeTowerDialog.cpp:40 -msgid "Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n\nThis is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." -msgstr "Rapidní extruze označuje rychlé vytlačení filamentu těsně před jeho výměnou za jiný v multi material tiskárně s jedním extruderem. Účelem je správně vytvarovat konec vysouvaného filamentu tak, aby neblokoval zasunutí nového filamentu a také mohl být sám později opětovně zasunut. Tento proces je důležitý a rozdílné materiály mohou pro získání optimálního tvaru vyžadovat různé rychlosti extruze. Z tohoto důvodu jsou objemové průtoky při rapidní extruzi uživatelsky upravitelné.\n\nToto nastavení je určeno pro pokročilé uživatele, nesprávné nastavení velmi pravděpodobně povede k zaseknutí filamentu, vybroušení filamentu podávacím kolečkem, atd." +msgid "" +"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n" +"\n" +"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." +msgstr "" +"Rapidní extruze označuje rychlé vytlačení filamentu těsně před jeho výměnou za jiný v multi material tiskárně s jedním extruderem. Účelem je správně vytvarovat konec vysouvaného filamentu tak, aby neblokoval zasunutí nového filamentu a také mohl být sám později opětovně zasunut. Tento proces je důležitý a rozdílné materiály mohou pro získání optimálního tvaru vyžadovat různé rychlosti extruze. Z tohoto důvodu jsou objemové průtoky při rapidní extruzi uživatelsky upravitelné.\n" +"\n" +"Toto nastavení je určeno pro pokročilé uživatele, nesprávné nastavení velmi pravděpodobně povede k zaseknutí filamentu, vybroušení filamentu podávacím kolečkem, atd." #: src/slic3r/GUI/WipeTowerDialog.cpp:90 msgid "Ramming line spacing" @@ -4806,10 +5404,6 @@ msgstr "Nastavení rapidní extruze" msgid "Random" msgstr "Náhodný" -#: src/slic3r/GUI/wxExtensions.cpp:486 -msgid "Range" -msgstr "Rozsah" - #: src/libslic3r/SLAPrint.cpp:72 msgid "Rasterizing layers" msgstr "Rasterizace vrstev" @@ -4834,12 +5428,13 @@ msgstr "Zezadu" msgid "Rear View" msgstr "Pohled zezadu" -#: src/slic3r/GUI/MainFrame.cpp:401 -msgid "Recent projects" -msgstr "Poslední projekty" +#: src/slic3r/GUI/PresetHints.cpp:264 +#, c-format +msgid "Recommended object thin wall thickness for layer height %.2f and " +msgstr "Doporučená tloušťka stěny objektu pro výšku vrstvy %.2f a" #: src/slic3r/GUI/PresetHints.cpp:262 -#, possible-c-format +#, c-format msgid "Recommended object thin wall thickness for layer height %.2f and" msgstr "Doporučená tloušťka stěny objektu pro výšku vrstvy %.2f a" @@ -4864,23 +5459,6 @@ msgstr "Přímočará" msgid "Rectilinear grid" msgstr "Přímočará mřížka" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3639 -#: src/slic3r/GUI/MainFrame.cpp:562 -msgid "Redo" -msgstr "Vpřed" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Redo %1$d Action" -msgid_plural "Redo %1$d Actions" -msgstr[0] "%1$d Akce Vpřed" -msgstr[1] "%1$d Akce Vpřed" -msgstr[2] "%1$d Akcí Vpřed" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Redo History" -msgstr "Historie operací Vpřed" - #: src/slic3r/GUI/Tab.cpp:1037 msgid "Reducing printing time" msgstr "Zkracování tiskového času" @@ -4915,16 +5493,16 @@ msgid "Remove instance" msgstr "Odebrat instanci" #: src/slic3r/GUI/KBShortcutsDialog.cpp:125 -msgid "Remove Instance of the selected object" +msgid "Remove Instance from selected object" msgstr "Odebrat instanci vybraného objektu" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:153 -msgid "Remove layer range" -msgstr "Odstranit rozsah vrstev" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 +msgid "Remove Instance of the selected object" +msgstr "Odebrat instanci vybraného objektu" -#: src/slic3r/GUI/Plater.cpp:3518 -msgid "Remove one instance of the selected object" -msgstr "Odebere jednu instanci vybraného objektu" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Remove one copy of the selected object" +msgstr "Odstraní jednu kopii vybraného objektu" #: src/slic3r/GUI/GUI_ObjectSettings.cpp:83 msgid "Remove parameter" @@ -4955,14 +5533,6 @@ msgstr "Odstranit uživatelské profily - čistá instalace (nejprve bude proved msgid "Rename" msgstr "Přejmenovat" -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Object" -msgstr "Přejmenování objektu" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Sub-object" -msgstr "Přejmenování dílčího objektu" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2709 msgid "Renaming" msgstr "Přejmenování" @@ -4979,6 +5549,10 @@ msgstr "Vykreslení pomocí softwaru. Namísto výchozího ovladače OpenGL je n msgid "Repair" msgstr "Oprava" +#: lib/Slic3r/GUI/MainFrame.pm:258 +msgid "Repair STL file…" +msgstr "Opravit soubor STL…" + #: src/slic3r/Utils/FixModelByWin10.cpp:387 msgid "Repaired 3MF file contains more than one object" msgstr "Opravený soubor 3MF obsahuje více než jeden objekt" @@ -5011,23 +5585,31 @@ msgstr "Opakovat poslední rychlé slicování" msgid "Report an I&ssue" msgstr "Nahlá&sit chybu" +#: lib/Slic3r/GUI/MainFrame.pm:361 +msgid "Report an Issue" +msgstr "Nahlásit chybu" + #: src/slic3r/GUI/MainFrame.cpp:561 -#, possible-c-format +#, c-format msgid "Report an issue on %s" msgstr "Nahlásit chybu v programu %s" +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an issue on the Slic3r Prusa Edition" +msgstr "Nahlásit chybu ve Slic3eru Prusa Edice" + #: src/slic3r/Utils/PresetUpdater.cpp:590 -#, possible-c-format +#, c-format msgid "requires max. %s" msgstr "vyžaduje max. %s" #: src/slic3r/Utils/PresetUpdater.cpp:588 -#, possible-c-format +#, c-format msgid "requires min. %s" msgstr "vyžaduje min. %s" #: src/slic3r/Utils/PresetUpdater.cpp:583 -#, possible-c-format +#, c-format msgid "requires min. %s and max. %s" msgstr "vyžaduje min. %s a max. %s" @@ -5047,27 +5629,6 @@ msgstr "Obnovit řezovou rovinu" msgid "Reset direction" msgstr "Resetovat směr" -#: src/slic3r/GUI/Plater.cpp:2603 -msgid "Reset Project" -msgstr "Resetovat Projekt" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:303 -msgid "Reset rotation" -msgstr "Výchozí natočení" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:328 -msgid "Reset Rotation" -msgstr "Výchozí Natočení" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:285 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:290 -msgid "Reset scale" -msgstr "Výchozí měřítko" - -#: src/slic3r/GUI/Tab.cpp:2584 -msgid "Reset to Filament Color" -msgstr "Obnovit barvu filamentu" - #: src/libslic3r/PrintConfig.cpp:1441 msgid "Resolution" msgstr "Rozlišení" @@ -5112,10 +5673,6 @@ msgstr "Retrakce" msgid "Right" msgstr "Zprava" -#: src/slic3r/GUI/GUI_ObjectList.cpp:381 -msgid "Right button click the icon to change the object printable property" -msgstr "Klepnutím pravým tlačítkem myši na ikonu změníte nastavení tisku pro objekt" - #: src/slic3r/GUI/GUI_ObjectList.cpp:279 msgid "Right button click the icon to change the object settings" msgstr "Klepnutím pravým tlačítkem myši na ikonu změníte nastavení objektu" @@ -5128,6 +5685,10 @@ msgstr "Klepnutím pravým tlačítkem myši se spustí oprava STL souboru pomoc msgid "Right click" msgstr "Pravý klik" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:598 +msgid "Right mouse click - remove point" +msgstr "Kliknutí pravým tlačítkem myši - odebrání bodu" + #: src/slic3r/GUI/MainFrame.cpp:528 msgid "Right View" msgstr "Pohled zprava" @@ -5138,6 +5699,18 @@ msgstr "Pohled zprava" msgid "Rotate" msgstr "Otočit" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate 45° clockwise" +msgstr "Otočit o 45° ve směru hodinových ručiček" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate 45° counter-clockwise" +msgstr "Otočit o 45° proti směru hodinových ručiček" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Rotate around " +msgstr "Otočit okolo" + #: src/libslic3r/PrintConfig.cpp:3067 msgid "Rotate around X" msgstr "Otočit okolo osy X" @@ -5151,6 +5724,34 @@ msgstr "Otočit okolo osy Y" msgid "Rotate lower part upwards" msgstr "Otočit spodní část řezem dolů" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate the selected object by 45° clockwise" +msgstr "Otočit vybraný objekt o 45° ve směru hodinových ručiček" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate the selected object by 45° counter-clockwise" +msgstr "Otočit vybraný objekt o 45° proti směru hodinových ručiček" + +#: lib/Slic3r/GUI/Plater.pm:2236 +msgid "Rotate the selected object by an arbitrary angle" +msgstr "Otočit vybraným objektem o libovolný úhel" + +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Rotate the selected object by an arbitrary angle around X axis" +msgstr "Otočit vybraným objektem o libovolný úhel kolem osy X" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Rotate the selected object by an arbitrary angle around Y axis" +msgstr "Otočit vybraným objektem o libovolný úhel kolem osy Y" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Rotate the selected object by an arbitrary angle around Z axis" +msgstr "Otočit vybraným objektem o libovolný úhel kolem osy Z" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +msgid "Rotate [R]" +msgstr "Otočit [R]" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:151 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:194 msgid "Rotation" @@ -5172,8 +5773,16 @@ msgstr "Úhel otočení kolem osy Y ve stupních." msgid "Rotation angle around the Z axis in degrees." msgstr "Úhel otočení kolem osy Z ve stupních." +#: src/libslic3r/SLA/SLASupportTree.cpp:2158 +msgid "Routing supports to model surface" +msgstr "Směrování podpěr k povrchu modelu" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2157 +msgid "Routing to ground" +msgstr "Směrování k zemi" + #: src/slic3r/GUI/ConfigWizard.cpp:298 src/slic3r/GUI/GUI_App.cpp:658 -#, possible-c-format +#, c-format msgid "Run %s" msgstr "Spustit %s" @@ -5190,22 +5799,18 @@ msgstr "Vykonávají se postprodukční skripty" msgid "s" msgstr "s" -#: src/slic3r/GUI/MainFrame.cpp:466 src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end G-code" -msgstr "Od&eslat G-code" - -#: src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end to print" -msgstr "Od&eslat do tiskárny" +#: src/slic3r/GUI/MainFrame.cpp:677 src/slic3r/GUI/Tab.cpp:3239 +msgid "Save " +msgstr "Uložit " #. TRN Preset #: src/slic3r/GUI/Tab.cpp:3264 -#, possible-c-format +#, c-format msgid "Save %s as:" msgstr "Uložit %s jako:" #: src/slic3r/GUI/MainFrame.cpp:686 -#, possible-c-format +#, c-format msgid "Save %s file as:" msgstr "Uložit %s soubor jako:" @@ -5225,9 +5830,13 @@ msgstr "Uložit konfiguraci jako:" msgid "Save configuration to the specified file." msgstr "Uložit konfiguraci do zadaného souboru." +#: src/slic3r/GUI/Tab.cpp:130 +msgid "Save current " +msgstr "Uložit stávající " + #. TRN "Save current Settings" #: src/slic3r/GUI/Tab.cpp:133 -#, possible-c-format +#, c-format msgid "Save current %s" msgstr "Uložit stávající %s" @@ -5292,29 +5901,53 @@ msgstr "Měřítko" msgid "Scale (%)" msgstr "Měřítko (%)" +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +msgid "Scale along " +msgstr "Upravit rozměr podél " + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:195 msgid "Scale factors" msgstr "Měřítka" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale the selected object to fit the print volume" -msgstr "Přizpůsobit měřítko vybraného objektu, aby se objekt vešel do tiksového objemu" +#: lib/Slic3r/GUI/Plater.pm:2262 lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale the selected object along a single axis" +msgstr "Změnit rozměr vybraného objektu podél jedné osy" + +#: lib/Slic3r/GUI/Plater.pm:2267 lib/Slic3r/GUI/Plater.pm:2283 +msgid "Scale the selected object along the X axis" +msgstr "Změnit rozměr vybraného objektu podél osy X" + +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Scale the selected object along the XYZ axes" +msgstr "Změnit rozměr vybraného objektu podél os XYZ" + +#: lib/Slic3r/GUI/Plater.pm:2270 lib/Slic3r/GUI/Plater.pm:2286 +msgid "Scale the selected object along the Y axis" +msgstr "Změnit rozměr vybraného objektu podél osy Y" + +#: lib/Slic3r/GUI/Plater.pm:2273 lib/Slic3r/GUI/Plater.pm:2289 +msgid "Scale the selected object along the Z axis" +msgstr "Změnit rozměr vybraného objektu podél osy Z" #: src/libslic3r/PrintConfig.cpp:3086 msgid "Scale to Fit" -msgstr "Vyplnit tiskový objem" - -#: src/slic3r/GUI/Selection.cpp:947 -msgid "Scale To Fit" -msgstr "Vyplnit tiskový objem" +msgstr "Změnit měřítko, aby se objekt vešel do tiskového prostoru" #: src/libslic3r/PrintConfig.cpp:3087 msgid "Scale to fit the given volume." msgstr "Změnit velikost, aby se objekt vešel do zadaného tiskového prostoru." -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale to print volume" -msgstr "Změnit velikost podle tiskového objemu" +#: lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale to size" +msgstr "Upravit do rozměru" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:51 +msgid "Scale [S]" +msgstr "Upravit velikost [S]" + +#: lib/Slic3r/GUI/Plater.pm:260 lib/Slic3r/GUI/Plater.pm:276 +msgid "Scale…" +msgstr "Velikost…" #: src/libslic3r/PrintConfig.cpp:3078 msgid "Scaling factor or percentage." @@ -5344,6 +5977,22 @@ msgstr "Hledám zařízení" msgid "Searching for optimal orientation" msgstr "Hledání optimální orientace" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Select &Controller Tab\tCtrl+T" +msgstr "Zobrazit panel Ovladač\tCtrl+T" + +#: lib/Slic3r/GUI/MainFrame.pm:311 +msgid "Select &Filament Settings Tab\tCtrl+3" +msgstr "Zobrazit panel Nastavení filamentu\tCtrl+3" + +#: lib/Slic3r/GUI/MainFrame.pm:294 +msgid "Select &Plater Tab\tCtrl+1" +msgstr "Zobrazit panel Podložka\tCtrl+1" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:108 +msgid "Select all" +msgstr "Vybrat vše" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:136 msgid "Select All objects" msgstr "Vybrat všechny objekty" @@ -5380,10 +6029,22 @@ msgstr "Vyberte číslo extruderu:" msgid "Select Filament Settings Tab" msgstr "Zobrazit panel Nastavení filamentu" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 +msgid "Select multiple object/Move multiple object" +msgstr "Vybrat více objektů/Přesunout více objektů" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1251 msgid "Select new extruder for the object/part" msgstr "Vyberte nový extruder pro objekt/část" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:109 +msgid "Select none" +msgstr "Odznačit vše" + +#: lib/Slic3r/GUI/MainFrame.pm:308 +msgid "Select P&rint Settings Tab\tCtrl+2" +msgstr "Zobrazit panel Nastavení tisku\tCtrl+2" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:114 msgid "Select Plater Tab" msgstr "Zobrazit panel Podložka" @@ -5392,6 +6053,10 @@ msgstr "Zobrazit panel Podložka" msgid "Select Print Settings Tab" msgstr "Zobrazit panel Nastavení tisku" +#: lib/Slic3r/GUI/MainFrame.pm:314 +msgid "Select Print&er Settings Tab\tCtrl+4" +msgstr "Zobrazit panel Nastavení tiskárny\tCtrl+4" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:118 msgid "Select Printer Settings Tab" msgstr "Zobrazit panel Nastavení tiskárny" @@ -5416,70 +6081,14 @@ msgstr "Vyberte tiskárny, s nimiž je tento profil kompatibilní." msgid "Select the STL file to repair:" msgstr "Vyberte STL soubor k opravě:" -#: src/slic3r/GUI/Preferences.cpp:207 -msgid "Select toolbar icon size in respect to the default one." -msgstr "Vyberte velikost ikon na panelu nástrojů vzhledem k výchozí velikosti." - #: src/slic3r/GUI/GUI_ObjectList.cpp:2545 msgid "Select type of part" msgstr "Vyberte typ součásti" -#: src/slic3r/GUI/Plater.cpp:606 -msgid "Select what kind of pad do you need" -msgstr "Vyberte, jaký typ podložky potřebujete" - #: src/slic3r/GUI/Plater.cpp:421 msgid "Select what kind of support do you need" msgstr "Vyberte typ podpěr, které potřebujete" -#: src/slic3r/GUI/Selection.cpp:146 -msgid "Selection-Add" -msgstr "Výběř - Přidání" - -#: src/slic3r/GUI/Selection.cpp:384 -msgid "Selection-Add All" -msgstr "Výběr - Označení všeho" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2875 -msgid "Selection-Add from list" -msgstr "Výběr - Přidání v seznamu" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5623 -msgid "Selection-Add from rectangle" -msgstr "Výběr - Přidání obdélníkovým výběrem" - -#: src/slic3r/GUI/Selection.cpp:256 -msgid "Selection-Add Instance" -msgstr "Výběr - Přidání Instance" - -#: src/slic3r/GUI/Selection.cpp:219 -msgid "Selection-Add Object" -msgstr "Výběr - Přidání Objektu" - -#: src/slic3r/GUI/Selection.cpp:187 -msgid "Selection-Remove" -msgstr "Výběr - Odebrání" - -#: src/slic3r/GUI/Selection.cpp:410 -msgid "Selection-Remove All" -msgstr "Výběr - Zrušení" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2867 -msgid "Selection-Remove from list" -msgstr "Výběr - Odebrání v seznamu" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5642 -msgid "Selection-Remove from rectangle" -msgstr "Výběr - Odebrání obdélníkovým výběrem" - -#: src/slic3r/GUI/Selection.cpp:275 -msgid "Selection-Remove Instance" -msgstr "Výběr - Odebrání Instance" - -#: src/slic3r/GUI/Selection.cpp:238 -msgid "Selection-Remove Object" -msgstr "Výběr - Odebrání Objektu" - #: src/slic3r/GUI/MainFrame.cpp:444 msgid "Selects all objects" msgstr "Vybrat všechny objekty" @@ -5488,18 +6097,22 @@ msgstr "Vybrat všechny objekty" msgid "Send G-code" msgstr "Odeslat G-code" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Send G-Code to printer" +msgstr "Odeslat G-code do tiskárny" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Send G-Code to printer host" msgstr "Odeslat G-Code do tiskového serveru" -#: src/slic3r/GUI/MainFrame.cpp:466 -msgid "Send to print current plate as G-code" -msgstr "Odeslat k tisku stávající plochu jako G-code" - #: src/slic3r/GUI/Plater.cpp:731 src/slic3r/GUI/Plater.cpp:3822 msgid "Send to printer" msgstr "Odeslat do tiskárny" +#: xs/src/slic3r/Utils/OctoPrint.cpp:111 lib/Slic3r/GUI/Plater.pm:1558 +msgid "Sending G-code file to the OctoPrint server..." +msgstr "Odesílání souboru G-code na server OctoPrint…" + #: src/slic3r/GUI/Tab.cpp:1169 msgid "Sequential printing" msgstr "Sekvenční tisk" @@ -5528,7 +6141,7 @@ msgstr "Nastavit" #: src/slic3r/GUI/GUI_ObjectList.cpp:1192 #: src/slic3r/GUI/GUI_ObjectList.cpp:1331 msgid "Set as a Separated Object" -msgstr "Změnit na samostatný objekt" +msgstr "Změnit na oddělený objekt" #: src/slic3r/GUI/GUI_ObjectList.cpp:1331 msgid "Set as a Separated Objects" @@ -5542,38 +6155,17 @@ msgstr "Zvolte extruder pro vybrané položky" msgid "Set lower thumb to current slider thumb" msgstr "Aktivovat spodní ukazatel aktivního posuvníku" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:245 -msgid "Set Mirror" -msgstr "Zrcadlení" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Set number of instances" -msgstr "Zadat počet instancí" - -#: src/slic3r/GUI/Plater.cpp:4163 -#, possible-c-format -msgid "Set numbers of copies to %d" -msgstr "Nastavení počtu kopií na %d" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:746 -msgid "Set Orientation" -msgstr "Změna orientace" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Set number of copies" +msgstr "Zadat počet kopií" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:715 -msgid "Set Position" -msgstr "Nastavení pozice" +#: lib/Slic3r/GUI/Plater.pm:2224 +msgid "Set number of copies…" +msgstr "Zadat počet kopií…" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Printable" -msgstr "Zvolen příznak Tisknout objekt" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Printable Instance" -msgstr "Zvolen příznak Tisknout Instanci" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:811 -msgid "Set Scale" -msgstr "Nastavení měřítka" +#: src/libslic3r/PrintConfig.cpp:1053 +msgid "Set silent mode for the G-code flavor" +msgstr "Nastavit přiznak G-codu pro tichý režim" #: src/libslic3r/PrintConfig.cpp:2228 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." @@ -5627,14 +6219,6 @@ msgstr "Nastavte tuto hodnotu na maximální výšku, která může být dosaže msgid "Set this to the vertical distance between your nozzle tip and (usually) the X carriage rods. In other words, this is the height of the clearance cylinder around your extruder, and it represents the maximum depth the extruder can peek before colliding with other printed objects." msgstr "Zadejte vertikální vzdálenost mezi tryskou a (obvykle) tyčemi osy X. Jinými slovy, je to výška kolizního prostoru okolo extruderu a představuje maximální hloubku, které může extruder dosáhnout před kolizí s jinými, již vytištěnými, objekty." -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Unprintable" -msgstr "Odebrán příznak Tisknout objekt" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Unprintable Instance" -msgstr "Odebrán příznak Tisknout Instanci" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:184 msgid "Set upper thumb to current slider thumb" msgstr "Aktivovat horní ukazatel aktivního posuvníku" @@ -5643,9 +6227,10 @@ msgstr "Aktivovat horní ukazatel aktivního posuvníku" msgid "Settings" msgstr "Nastavení" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Settings for height range" -msgstr "Nastavení pro výškový rozsah" +#: lib/Slic3r/GUI/Plater.pm:264 lib/Slic3r/GUI/Plater.pm:279 +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Settings…" +msgstr "Nastavení…" #: src/slic3r/GUI/BedShapeDialog.cpp:60 msgid "Shape" @@ -5655,6 +6240,10 @@ msgstr "Tvar" msgid "Shells" msgstr "Skořápky" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:599 +msgid "Shift + Left (+ drag) - select point(s)" +msgstr "Shift + Levé tlačítko (klik nebo tažení) - výběr bodu(ů)" + #: src/slic3r/GUI/GUI_Preview.cpp:221 msgid "Show" msgstr "Zobrazit" @@ -5723,6 +6312,10 @@ msgstr "Zobrazit podložku" msgid "Show the print settings" msgstr "Zobrazit nastavení tisku" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Show the printer controller" +msgstr "Zobrazit ovladač tiskárny" + #: src/slic3r/GUI/MainFrame.cpp:483 msgid "Show the printer settings" msgstr "Zobrazit nastavení tiskárny" @@ -5735,9 +6328,13 @@ msgstr "Zobrazí tuto nápovědu." msgid "Show user configuration folder (datadir)" msgstr "Zobrazit uživatelský adresář konfigurace (datadir)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 -msgid "Show/Hide (L)egend" -msgstr "Zobrazit/Skrýt (L)egendu" +#: src/slic3r/GUI/Tab.cpp:2157 +msgid "Silent" +msgstr "Tichý" + +#: src/slic3r/GUI/Plater.cpp:1077 +msgid "silent mode" +msgstr "tichý režim" #: src/slic3r/GUI/GUI_App.cpp:674 src/slic3r/GUI/wxExtensions.cpp:2459 msgid "Simple" @@ -5755,10 +6352,6 @@ msgstr "Nastavení jednoho extruderu MM" msgid "Single Extruder Multi Material" msgstr "MultiMaterial tisk s jedním extrudérem" -#: src/slic3r/GUI/Tab.cpp:2023 -msgid "Single Extruder Multi Material is selected, \nand all extruders must have the same diameter.\nDo you want to change the diameter for all extruders to first extruder nozzle diameter value?" -msgstr "Je zvolená Multi Materiálová tiskárna s jedním extruderem,\na proto všechny extrudery musí mít stejný průměr.\nChcete nastavit průměry všech extruderových trysek podle průměru prvního extruderu?" - #: src/slic3r/GUI/Tab.cpp:2240 msgid "Single extruder multimaterial parameters" msgstr "Parametry jednoho multi materiálového extruderu" @@ -5798,14 +6391,6 @@ msgstr "Počet obrysových smyček" msgid "SLA gizmo keyboard shortcuts" msgstr "Klávesové zkratky pro SLA gizma" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1150 -msgid "SLA gizmo turned off" -msgstr "Ukončení režimu SLA gizmo" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1115 -msgid "SLA gizmo turned on" -msgstr "Vstup do režimu SLA gizmo" - #: src/slic3r/GUI/Plater.cpp:684 src/slic3r/GUI/Preset.cpp:1277 msgid "SLA material" msgstr "SLA materiál" @@ -5826,6 +6411,10 @@ msgstr "Nastavení SLA tisku" msgid "SLA Support Points" msgstr "SLA Podpěrné Body" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:995 +msgid "SLA Support Points [L]" +msgstr "SLA Podpěrné Body [L]" + #: src/slic3r/GUI/GLCanvas3D.cpp:722 msgid "SLA supports outside the print area were detected" msgstr "Byly zjištěny SLA podpěry mimo tiskovou oblast" @@ -5834,6 +6423,22 @@ msgstr "Byly zjištěny SLA podpěry mimo tiskovou oblast" msgid "Slab" msgstr "Deska" +#: src/slic3r/GUI/Tab.hpp:389 +msgid "sla_material" +msgstr "sla_materiál" + +#: src/slic3r/GUI/Tab.hpp:403 +msgid "sla_print" +msgstr "sla_tiskové_nastavení" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Slic3r &Manual" +msgstr "Slic3r návod" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Slic3r &Website" +msgstr "Slic3r &Webová stránka" + #: src/libslic3r/PrintConfig.cpp:1268 msgid "Slic3r can upload G-code files to a printer host. This field must contain the kind of the host." msgstr "Slic3r může nahrát soubory G-code do tiskového serveru. Toto pole musí obsahovat druh tiskového serveru." @@ -5846,10 +6451,67 @@ msgstr "Slic3r může nahrát soubory do tiskového serveru. Toto pole by mělo msgid "Slic3r can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance." msgstr "Slic3r může nahrát soubory G-code do tiskového serveru. Toto pole by mělo obsahovat název serveru (hostname), IP adresu nebo URL tiskového serveru." +#: xs/src/libslic3r/PrintConfig.cpp:1110 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the API Key required for authentication." +msgstr "Slic3r může nahrát soubory G-code do OctoPrintu. Toto pole by mělo obsahovat klíč API požadovaný pro ověření." + +#: xs/src/libslic3r/PrintConfig.cpp:1124 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the hostname, IP address or URL of the OctoPrint instance." +msgstr "Slic3r může nahrát soubory G-code do OctoPrintu. Toto pole by mělo obsahovat název hosta (hostname), IP adresu nebo URL instance OctoPrint." + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r configuration is incompatible" +msgstr "Konfigurace Slic3ru není kompatibilní" + +#: lib/Slic3r/GUI/Plater.pm:1021 +msgid "Slic3r Error" +msgstr "Chyba Slic3ru" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r error" +msgstr "Chyba Slic3ru" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r has encountered an error" +msgstr "Došlo k chybě Slic3ru" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r incompatibility" +msgstr "Nekompatibilita Slic3ru" + +#: src/slic3r/GUI/UpdateDialogs.cpp:168 +#, c-format +msgid "" +"Slic3r PE now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"Slic3r PE nyní používá aktualizovanou konfigurační strukturu.\n" +"\n" +"Byly uvedeny takzvaná \"Systémová přednastavení\", která obsahují výchozí nastavení pro rozličné tiskárny. Tato systémová přednastavení nemohou být upravena, místo toho si nyní uživatel může vytvořit svá vlastní přednastavení tím, že zdědí nastavení z jednoho ze systémových přednastavení.\n" +"Nově vytvořené přednastavení může buď zdědit určitou hodnotu od svého předchůdce nebo ji přepsat upravenou hodnotou.\n" +"\n" +"Prosím postupujte dle %s, který následuje pro nastavení nových přednastavení a vyberte si, zdali chcete jejich automatickou aktualizaci." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 +msgid "Slic3r Prusa Edition - Keyboard Shortcuts" +msgstr "Slic3r Prusa Edition - Klávesové zkratky" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "Slic3r Prusa Edition - System Information" +msgstr "Slic3r Prusa Edition - Systémové informace" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 msgid "slic3r version" msgstr "verze slic3ru" +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Slic3r View Mode" +msgstr "Režim zobrazení Slic3ru" + #: src/libslic3r/PrintConfig.cpp:1234 msgid "Slic3r will not scale speed down below this speed." msgstr "Slic3r nebude měnit rychlost pod tuto rychlost." @@ -5866,6 +6528,10 @@ msgstr "Slicovat soubor do G-code" msgid "Slice a file into a G-code, save as" msgstr "Slicovat soubor do G-code, uložit jako" +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice file to a multi-layer SVG" +msgstr "Slicovat soubor do více-vrstvého SVG" + #: src/libslic3r/PrintConfig.cpp:71 msgid "Slice gap closing radius" msgstr "Poloměr uzavření mezery v tiskové vrstvě" @@ -5881,12 +6547,16 @@ msgstr "Naslicuje model a exportuje SLA tiskové vrstvy jako PNG soubory." #: src/libslic3r/PrintConfig.cpp:2965 msgid "Slice the model and export toolpaths as G-code." -msgstr "Naslicujte model a exportujte trasy jako G-code." +msgstr "Naslicujte model a exportujte cesty jako G-code." #: src/libslic3r/PrintConfig.cpp:2971 msgid "Slice the model as FFF or SLA based on the printer_technology configuration value." msgstr "Slicovat model jako FFF nebo SLA tisk na základě konfigurační hodnoty printer_technology." +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice to SV&G…\tCtrl+G" +msgstr "Slicovat do SV&G…\tCtrl+G" + #: src/slic3r/GUI/Plater.cpp:193 msgid "Sliced Info" msgstr "Informace o slicování" @@ -5897,6 +6567,10 @@ msgstr "Informace o slicování" msgid "Slicing" msgstr "Slicování" +#: lib/Slic3r/GUI/Plater.pm:1391 +msgid "Slicing cancelled" +msgstr "Slicování zrušeno" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:91 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:109 msgid "Slicing complete" @@ -5910,9 +6584,10 @@ msgstr "Slicování dokončeno" msgid "Slicing Done!" msgstr "Slicování dokončeno!" -#: src/libslic3r/SLAPrint.cpp:759 -msgid "Slicing had to be stopped due to an internal error: Inconsistent slice index." -msgstr "Slicování muselo být zastaveno kvůli vnitřní chybě: Nekonzistentní index řezů." +#. TRN To be shown at the status bar on SLA slicing error. +#: src/libslic3r/SLAPrint.cpp:709 +msgid "Slicing had to be stopped due to an internal error." +msgstr "Slicování muselo být zastaveno kvůli vnitřní chybě." #: src/libslic3r/SLAPrint.cpp:55 msgid "Slicing model" @@ -5922,6 +6597,10 @@ msgstr "Slicuji model" msgid "Slicing supports" msgstr "Slicování podpěr" +#: lib/Slic3r/GUI/MainFrame.pm:483 +msgid "Slicing…" +msgstr "Slicování…" + #: src/libslic3r/PrintConfig.cpp:2249 msgid "Slow" msgstr "Pomalý" @@ -5971,6 +6650,10 @@ msgstr "Prahová hodnota plochy pro plnou výplň" msgid "Solid layers" msgstr "Plných vrstev" +#: src/libslic3r/PrintConfig.cpp:1832 +msgid "soluble" +msgstr "rozpustný" + #: src/libslic3r/PrintConfig.cpp:711 msgid "Soluble material" msgstr "Rozpustný materiál" @@ -5979,9 +6662,9 @@ msgstr "Rozpustný materiál" msgid "Soluble material is most likely used for a soluble support." msgstr "Rozpustný materiál je převážně používán pro tisk rozpustných podpěr." -#: src/libslic3r/PrintConfig.cpp:914 -msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any extrusion value at all." -msgstr "Některé příkazy G/M-code, včetně řízení teplot a další, nejsou univerzální. Vyberte typ firmware, který používá vaše tiskárna pro dosažení kompatibilního výstupu. Příkazy typu \"No extrusion\" zabraňují PrusaSliceru zcela exportovat jakoukoliv hodnotu extruze." +#: src/libslic3r/PrintConfig.cpp:889 +msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents Slic3r from exporting any extrusion value at all." +msgstr "Některé příkazy G/M code, včetně řízení teploty a jiné, nejsou univerzální. Vyberte typ firmwaru který používá vaše tiskárna pro dosažení kompatibilního výstupu. Příkazy typu “No extrusion” zabraňují Slic3ru zcela exportovat jakoukoliv hodnotu extruze." #: src/slic3r/GUI/GLCanvas3D.cpp:721 msgid "Some objects are not visible when editing supports" @@ -6081,18 +6764,34 @@ msgstr "Rychlost prvního pohybu chlazení" msgid "Speed of the last cooling move" msgstr "Rychlost posledního pohybu chlazení" +#: src/libslic3r/PrintConfig.cpp:584 +msgid "Speed used at the very beginning of loading phase. " +msgstr "Rychlost použitá na samém počátku zaváděcí fáze" + #: src/libslic3r/PrintConfig.cpp:585 msgid "Speed used at the very beginning of loading phase." msgstr "Rychlost použitá na samém počátku zaváděcí fáze." +#: src/libslic3r/PrintConfig.cpp:576 +msgid "Speed used for loading the filament on the wipe tower. " +msgstr "Rychlost použitá pro zavádění filamentu na čistící věž. " + #: src/libslic3r/PrintConfig.cpp:577 msgid "Speed used for loading the filament on the wipe tower." msgstr "Rychlost použitá pro zavádění filamentu na čistící věž." +#: src/libslic3r/PrintConfig.cpp:592 +msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming). " +msgstr "Rychlost vysouvání filamentu při výměně na čistící věži (úvodní část vysunutí okamžitě po rapidní extruzi není ovlivněna). " + #: src/libslic3r/PrintConfig.cpp:593 msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)." msgstr "Rychlost vysouvání filamentu při výměně na čistící věži (úvodní část vysunutí okamžitě po rapidní extruzi není ovlivněna)." +#: src/libslic3r/PrintConfig.cpp:601 +msgid "Speed used for unloading the tip of the filament immediately after ramming. " +msgstr "Rychlost použitá při vysouvání špičky filamentu bezprostředně po rapidní extruzi." + #: src/libslic3r/PrintConfig.cpp:602 msgid "Speed used for unloading the tip of the filament immediately after ramming." msgstr "Rychlost použitá při vysouvání špičky filamentu bezprostředně po rapidní extruzi." @@ -6101,6 +6800,10 @@ msgstr "Rychlost použitá při vysouvání špičky filamentu bezprostředně p msgid "Sphere" msgstr "Koule" +#: src/slic3r/GUI/Tab.cpp:1254 +msgid "Spiral Vase" +msgstr "Spirálová váza" + #: src/libslic3r/PrintConfig.cpp:1717 msgid "Spiral vase" msgstr "Spirálová váza" @@ -6118,6 +6821,10 @@ msgstr "Rozdělit vybraný objekt" msgid "Split the selected object into individual objects" msgstr "Rozdělit vybraný objekt na jednotlivé objekty" +#: lib/Slic3r/GUI/Plater.pm:2293 +msgid "Split the selected object into individual parts" +msgstr "Rozdělit vybraný objekt na jednotlivé části" + #: src/slic3r/GUI/Plater.cpp:2968 src/slic3r/GUI/Plater.cpp:3008 msgid "Split the selected object into individual sub-parts" msgstr "Rozdělit vybraný objekt na jednotlivé dílčí části" @@ -6126,18 +6833,10 @@ msgstr "Rozdělit vybraný objekt na jednotlivé dílčí části" msgid "Split to objects" msgstr "Rozdělit na objekty" -#: src/slic3r/GUI/Plater.cpp:2796 -msgid "Split to Objects" -msgstr "Rozdělit na Objekty" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1110 msgid "Split to parts" msgstr "Rozdělit na části" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1904 -msgid "Split to Parts" -msgstr "Rozdělit na Části" - #: src/libslic3r/PrintConfig.cpp:799 msgid "Stars" msgstr "Hvězdy" @@ -6146,10 +6845,6 @@ msgstr "Hvězdy" msgid "Start a new project" msgstr "Vytvořit nový projekt" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Start at height" -msgstr "Začít ve výšce" - #: src/slic3r/GUI/Tab.cpp:1564 src/slic3r/GUI/Tab.cpp:1949 #: src/libslic3r/PrintConfig.cpp:1736 src/libslic3r/PrintConfig.cpp:1751 msgid "Start G-code" @@ -6163,6 +6858,10 @@ msgstr "Zahájit nový slicovací proces" msgid "Start printing after upload" msgstr "Spustit tisk po nahrání" +#: src/libslic3r/SLA/SLASupportTree.cpp:2153 +msgid "Starting" +msgstr "Spuštění" + #: src/slic3r/GUI/PrintHostDialogs.cpp:150 msgid "Status" msgstr "Stav" @@ -6179,15 +6878,15 @@ msgstr "Tichý" msgid "stealth mode" msgstr "tichý režim" +#: lib/Slic3r/GUI/Plater.pm:1659 lib/Slic3r/GUI/Plater.pm:1701 +msgid "STL file exported to " +msgstr "Soubor STL byl exportován do " + #: src/slic3r/GUI/Plater.cpp:3545 -#, possible-c-format +#, c-format msgid "STL file exported to %s" msgstr "Soubor STL exportován do %s" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Stop at height" -msgstr "Skončit ve výšce" - #: src/slic3r/GUI/Tab.cpp:1716 src/slic3r/GUI/Tab.cpp:1901 msgid "Success!" msgstr "Úspěch!" @@ -6196,6 +6895,10 @@ msgstr "Úspěch!" msgid "support" msgstr "podpěry" +#: xs/src/slic3r/GUI/GUI.cpp:859 +msgid "Support" +msgstr "Podpěra" + #: src/libslic3r/PrintConfig.cpp:2441 msgid "Support base diameter" msgstr "Průměr podpěrné základny" @@ -6204,10 +6907,6 @@ msgstr "Průměr podpěrné základny" msgid "Support base height" msgstr "Výška podpěrné základny" -#: src/libslic3r/PrintConfig.cpp:2566 -msgid "Support base safety distance" -msgstr "Bezpečná vzdálenost podpěrné základny" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2547 msgid "Support Blocker" msgstr "Blokátor podpěr" @@ -6216,13 +6915,17 @@ msgstr "Blokátor podpěr" msgid "Support Enforcer" msgstr "Vynucení podpěr" +#: src/slic3r/GUI/Tab.cpp:1316 +msgid "Support Generator" +msgstr "Generátor Podpěr" + #: src/slic3r/GUI/Tab.cpp:3401 msgid "Support head" msgstr "Hrot podpěry" #: src/libslic3r/PrintConfig.cpp:2369 msgid "Support head front diameter" -msgstr "Průměr hrotu podpěry" +msgstr "Délka hrotu podpěry" #: src/libslic3r/PrintConfig.cpp:2378 msgid "Support head penetration" @@ -6275,10 +6978,6 @@ msgstr "Extruder pro podpěry/raft/obrys" msgid "Support on build plate only" msgstr "Pouze na tiskové podložce" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:991 -msgid "Support parameter change" -msgstr "Změna nastavení podpěr" - #: src/slic3r/GUI/Tab.cpp:3406 msgid "Support pillar" msgstr "Podpěrný pilíř" @@ -6295,9 +6994,13 @@ msgstr "Tloušťka podpěry" msgid "Support points density" msgstr "Hustota podpěrných bodů" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1282 -msgid "Support points edit" -msgstr "Úprava podpěrných bodů" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:888 +msgid "Support points density: " +msgstr "Hustota podpěrných bodů:" + +#: xs/src/libslic3r/PrintConfig.cpp:896 +msgid "Support silent mode" +msgstr "Podpora tichého režimu" #: src/slic3r/GUI/GUI_ObjectList.cpp:78 src/slic3r/GUI/GUI_ObjectList.cpp:519 #: src/slic3r/GUI/Plater.cpp:418 src/slic3r/GUI/Tab.cpp:3397 @@ -6320,10 +7023,26 @@ msgstr "podpěry a podložka" msgid "Supports remaining times" msgstr "Podpora zbývajících tiskových časů" +#: src/libslic3r/PrintConfig.cpp:1052 +msgid "Supports silent mode" +msgstr "Podporuje tichý režim" + #: src/libslic3r/PrintConfig.cpp:1053 msgid "Supports stealth mode" msgstr "Podporuje tichý režim" +#: src/slic3r/GUI/Tab.cpp:1313 +msgid "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" +msgstr "" +"Podpěry fungují lépe, pokud je povolena následující funkce:\n" +"- Zjistit přemosťovací perimetry\n" +"\n" +"Mám tyto nastavení pro podpěry upravit?" + #: src/slic3r/GUI/Preferences.cpp:76 msgid "Suppress \" - default - \" presets" msgstr "Potlačit “ - výchozí - “ přednastavení" @@ -6349,17 +7068,27 @@ msgid "Switch to Preview" msgstr "Přepnout do náhledu" #: src/slic3r/GUI/wxExtensions.cpp:2412 -#, possible-c-format +#, c-format msgid "Switch to the %s mode" msgstr "Přepnout do režimu %s" #: src/slic3r/GUI/GUI_App.cpp:752 -msgid "Switching the language will trigger application restart.\nYou will lose content of the plater." -msgstr "Přepnutím jazyka se aplikace restartuje.\nZtratíte obsah scény." +msgid "" +"Switching the language will trigger application restart.\n" +"You will lose content of the plater." +msgstr "" +"Přepnutím jazyka se aplikace restartuje.\n" +"Ztratíte obsah scény." #: src/slic3r/GUI/WipeTowerDialog.cpp:327 -msgid "Switching to simple settings will discard changes done in the advanced mode!\n\nDo you want to proceed?" -msgstr "Přepnutím do jednoduchého nastavení ztratíte změny provedené v pokročilém režimu!\n\nOpravdu chcete pokračovat?" +msgid "" +"Switching to simple settings will discard changes done in the advanced mode!\n" +"\n" +"Do you want to proceed?" +msgstr "" +"Přepnutím do jednoduchého nastavení ztratíte změny provedené v pokročilém režimu!\n" +"\n" +"Opravdu chcete pokračovat?" #: src/libslic3r/PrintConfig.cpp:1949 msgid "Synchronize support layers with the object print layers. This is useful with multi-material printers, where the extruder switch is expensive." @@ -6373,6 +7102,10 @@ msgstr "Synchronizovat s vrstvami objektu" msgid "System &Info" msgstr "&Informace o systému" +#: lib/Slic3r/GUI/MainFrame.pm:355 +msgid "System Info" +msgstr "Informace o systému" + #: src/slic3r/GUI/SysInfoDialog.cpp:44 msgid "System Information" msgstr "Systémové informace" @@ -6387,10 +7120,18 @@ msgstr "Systémová přednastavení" msgid "Take Configuration &Snapshot" msgstr "Prové&st Zálohu Konfigurace" +#: xs/src/slic3r/GUI/GUI.cpp:350 +msgid "Take Configuration Snapshot" +msgstr "Provést Zálohu Konfigurace" + #: src/slic3r/GUI/GUI_App.cpp:697 msgid "Taking configuration snapshot" msgstr "Ukládání zálohy nastavení" +#: src/slic3r/GUI/Tab.cpp:1478 +msgid "Temperature " +msgstr "Teplota " + #: src/libslic3r/PrintConfig.cpp:1980 msgid "Temperature" msgstr "Teplota" @@ -6411,32 +7152,39 @@ msgstr "Teploty" msgid "Test" msgstr "Test" -#: src/slic3r/GUI/BedShapeDialog.cpp:171 -msgid "Texture" -msgstr "Textura" +#: src/slic3r/GUI/Tab.cpp:1362 +msgid "" +"The %1% infill pattern is not supposed to work at 100%% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +"Vzor výplně %1% není určen pro práci se 100%% hustotou.\n" +"\n" +"Mám přejít na vzor výplně rectilinear?" #: src/slic3r/GUI/FirmwareDialog.cpp:530 -#, possible-c-format +#, c-format msgid "The %s device could not have been found" msgstr "Zařízení %s nebylo nalezeno" #: src/slic3r/GUI/FirmwareDialog.cpp:417 -#, possible-c-format -msgid "The %s device was not found.\nIf the device is connected, please press the Reset button next to the USB connector ..." +#, c-format +msgid "" +"The %s device was not found.\n" +"If the device is connected, please press the Reset button next to the USB connector ..." msgstr "Zařízení %s nebylo nalezeno. Pokud je zařízení připojeno, stiskněte tlačítko Reset vedle USB konektoru ..." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640 -msgid "The currently manipulated object is tilted (rotation angles are not multiples of 90°).\nNon-uniform scaling of tilted objects is only possible in the World coordinate system,\nonce the rotation is embedded into the object coordinates." +msgid "" +"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n" +"Non-uniform scaling of tilted objects is only possible in the World coordinate system,\n" +"once the rotation is embedded into the object coordinates." msgstr "Momentálně upravovaný objekt je pootočený (rotační úhly nejsou násobky 90°). Nejednotné škálování nakloněných objektů je ve světových koordinátech možné pouze tehdy, když je informace o rotacích zapsána do koordinátů daného objektu." #: src/libslic3r/PrintConfig.cpp:2462 msgid "The default angle for connecting support sticks and junctions." msgstr "Výchozí úhel pro připojení nosných tyčí a spojek." -#: src/libslic3r/SLAPrint.cpp:670 -msgid "The endings of the support pillars will be deployed on the gap between the object and the pad. 'Support base safety distance' has to be greater than the 'Pad object gap' parameter to avoid this." -msgstr "Konce podpěrných sloupů budou rozmístěny mezi předmět a podložku. Proto musí být „Bezpečná vzdálenost podpěrné základny“ větší než parametr „Mezera Podložka-Objekt“." - #: src/libslic3r/PrintConfig.cpp:457 msgid "The extruder to use (unless more specific extruder settings are specified). This value overrides perimeter and infill extruders, but not the support extruders." msgstr "Extruder, který chcete použít (pokud nejsou zvoleny specifičtější nastavení extruderu). Tato hodnota přepíše nastavení perimetrového a výplňového exrtuderu, ale ne nastavení extruderu pro podpěry." @@ -6482,14 +7230,22 @@ msgstr "První vrstva bude v rovině XY zmenšena nakonfigurovanou hodnotou, kte msgid "the following characters are not allowed:" msgstr "následující znaky nejsou povolené:" +#: src/slic3r/GUI/Tab.cpp:3283 +msgid "the following postfix are not allowed:" +msgstr "následující postfixy nejsou povolené:" + +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified" +msgstr "Byly upraveny následující přednastavení" + +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified: " +msgstr "Byly upraveny následující přednastavení:" + #: src/slic3r/GUI/Tab.cpp:3311 msgid "the following suffix is not allowed:" msgstr "následující přípona není povolená:" -#: src/libslic3r/PrintConfig.cpp:2702 -msgid "The gap between the object bottom and the generated pad in zero elevation mode." -msgstr "Mezera mezi spodkem objektu a generovanou podložkou v režimu nulového nadzvednutí." - #: src/libslic3r/PrintConfig.cpp:2453 msgid "The height of the pillar base cone" msgstr "Výška ukotvení podpěrného kužele" @@ -6502,10 +7258,6 @@ msgstr "Maximální vzdálenost dvou podpůrných pilířů pro vzájemné prov msgid "The max length of a bridge" msgstr "Maximální délka přemostění" -#: src/libslic3r/PrintConfig.cpp:2569 -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 "Minimální vzdálenost základny podpěr od modelu v mm. Dává smysl v režimu nulového nadzvednutí nad podložku, kde je mezera podle tohoto parametru vložena mezi model a podložku." - #: src/libslic3r/PrintConfig.cpp:2176 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 "Objekt bude roztažen / smrštěn v rovině XY nastavenou hodnotou (negativní = směrem dovnitř, pozitivní = směrem ven). To může být užitečné pro jemné doladění otvorů." @@ -6515,8 +7267,14 @@ msgid "The object will be raised by this number of layers, and support material msgstr "Objekt se zvýší tímto počtem vrstev a pod ním bude vytvořen podpůrný materiál." #: src/libslic3r/PrintConfig.cpp:2259 -msgid "The percentage of the bed area. \nIf the print area exceeds the specified value, \nthen a slow tilt will be used, otherwise - a fast tilt" -msgstr "Procentuálně vyjádřená zabraná tisková plocha.\nPokud tisk zabere více než je zadaná hodnota,\nbude použit pomalý náklon. V ostatních případech bude použit rychlý náklon" +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 "" +"Procentuálně vyjádřená zabraná tisková plocha.\n" +"Pokud tisk zabere více než je zadaná hodnota,\n" +"bude použit pomalý náklon. V ostatních případech bude použit rychlý náklon" #: src/slic3r/GUI/GUI_App.cpp:831 msgid "The presets on the following tabs were modified" @@ -6542,10 +7300,6 @@ msgstr "Vybraný objekt nemůže být rozdělen, protože obsahuje více než je msgid "The selected object couldn't be split because it contains only one part." msgstr "Vybraný objekt nemůže být rozdělen, protože obsahuje pouze jednu část." -#: src/slic3r/GUI/MainFrame.cpp:410 -msgid "The selected project is no more available" -msgstr "Vybraný projekt již není dostupný" - #: src/libslic3r/PrintConfig.cpp:2570 msgid "The slope of the pad wall relative to the bed plane. 90 degrees means straight walls." msgstr "Sklon bočnic vzhledem k podložce. 90 stupňů znamená kolmé stěny." @@ -6558,6 +7312,27 @@ msgstr "Rychlost vtlačení filamentu do extruderu po retrakci (vztahuje se pouz msgid "The speed for retractions (it only applies to the extruder motor)." msgstr "Rychlost retrakce (toto nastavení platí pouze pro motor extruderu)." +#: src/slic3r/GUI/Tab.cpp:1247 +#, no-c-format +msgid "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" +msgstr "" +"Mód spirálové vázy vyžaduje:\n" +"- jeden perimetr\n" +"- žádné plné vrchní vrstvy\n" +"- 0% hustota výplně\n" +"- žádné podpěry\n" +"- nezjišťování vertikální tloušťky pláště\n" +"\n" +"Mám tyto nastavení upravit tak, aby bylo možné mód spirálové vázy zapnout?" + #: src/libslic3r/Print.cpp:1187 msgid "The Spiral Vase option can only be used when printing a single object." msgstr "Možnost \"Spirálová váza\" lze použít pouze při tisku jednoho objektu." @@ -6580,6 +7355,10 @@ msgstr "Zadaný název není dostupný." msgid "The supplied name is not valid;" msgstr "Zadaný název není platný;" +#: c:\src\Slic3r\xs\src\slic3r\GUI\Tab.cpp:1785 +msgid "The supplied name is not valid; the following characters are not allowed:" +msgstr "Zadaný název je neplatný; následující znaky nejsou povoleny:" + #: src/libslic3r/Print.cpp:1268 msgid "The supplied settings will cause an empty print." msgstr "Zadané nastavení způsobí prázdný tisk." @@ -6593,12 +7372,39 @@ msgid "The vertical distance between object and support material interface. Sett msgstr "Vertikální vzdálenost mezi objektem a podpěrami. Nastavením tohoto parametru na hodnotu 0 se také zabrání tomu, aby Slic3r použil parametry průtoku a rychlosti pro mosty při tisku první vrstvy objektu." #: src/slic3r/GUI/Tab.cpp:2429 -msgid "The Wipe option is not available when using the Firmware Retraction mode.\n\nShall I disable it in order to enable Firmware Retraction?" -msgstr "Možnost Očistit není k dispozici při použití režimu retrakcí z firmwaru.\n\nMám ji deaktivovat, aby bylo možné povolit retrakce z firmwaru?" +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 "" +"Možnost Očistit není k dispozici při použití režimu retrakcí z firmwaru.\n" +"\n" +"Mám ji deaktivovat, aby bylo možné povolit retrakce z firmwaru?" + +#: src/slic3r/GUI/Tab.cpp:1277 +msgid "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool change.\n" +"(both support_material_extruder and support_material_interface_extruder need to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" +msgstr "" +"Čistící věž v současné době podporuje pouze nerozpustné podpěry\n" +"pokud jsou vytištěny s aktuálním extrudérem bez spuštění výměny nástroje.\n" +"(jak extruder pro tisk podpěr tak extruder pro tisk kontaktních podpěr je třeba nastavit na 0).\n" +"\n" +"Mám tyto nastavení upravit tak, aby bylo možné zapnout Čistící věž?" #: src/libslic3r/Print.cpp:1306 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 support_material_extruder and support_material_interface_extruder need to be set to 0)." -msgstr "Čistící věž v současné době podporuje pouze nerozpustné podpěry\npokud jsou vytištěny s aktuálním extrudérem bez spuštění výměny nástroje.\n(jak extruder pro tisk podpor tak extruder pro tisk kontaktních podpěr je třeba nastavit na 0)." +msgstr "" +"Čistící věž v současné době podporuje pouze nerozpustné podpěry\n" +"pokud jsou vytištěny s aktuálním extrudérem bez spuštění výměny nástroje.\n" +"(jak extruder pro tisk podpor tak extruder pro tisk kontaktních podpěr je třeba nastavit na 0)." + +#: xs/src/libslic3r/Print.cpp:617 +msgid "The Wipe Tower is currently only supported for the Marlin and RepRap/Sprinter G-code flavors." +msgstr "Čistící věž je v současné době možná pouze pro G-cody určené pro Marlin a RepRap/Sprinter." #: src/libslic3r/Print.cpp:1200 msgid "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors." @@ -6624,16 +7430,16 @@ msgstr "Čistící věž je při více objektech možná pouze v případě, že msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heights" msgstr "Čistící věž je při více objektech možná pouze v případě, že objekty mají všechny vrstvy stejné výšky" -#: src/libslic3r/Print.cpp:1155 -msgid "The wipe tower is only supported if all extruders have the same nozzle diameter and use filaments of the same diameter." -msgstr "Čistící věž je podporována pouze v případě, že všechny extrudery mají stejné průměry trysek a používají filamenty stejných průměrů." +#: src/libslic3r/Print.cpp:1223 +msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heigths" +msgstr "Čistící věž je při více objektech možná pouze v případě, že objekty mají všechny vrstvy stejné výšky" #: src/libslic3r/Print.cpp:1258 msgid "The Wipe tower is only supported if all objects have the same layer height profile" msgstr "Čistící věž je podporována pouze v případě, že všechny objekty mají stejný výškový profil" #: src/slic3r/GUI/UpdateDialogs.cpp:127 -#, possible-c-format +#, c-format msgid "This %s version: %s" msgstr "Tento %s verze: %s" @@ -6641,10 +7447,6 @@ msgstr "Tento %s verze: %s" msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." msgstr "Tento kód je vložen mezi objekty, pokud je použit sekvenční tisk. Ve výchozím nastavení je resetován extruder a tisková podložka pomocí non-wait (nečekacím) příkazem; nicméně pokud jsou příkazy M104, M109, 140 nebo M190 detekovány v tomto vlastním kódu, Slic3r nebude přidávat teplotní příkazy. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru, takže můžete vložit příkaz “M109 S[first_layer_temperature]” kamkoliv chcete." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted at every extruder change. If you don't leave this empty, you are expected to take care of the toolchange yourself - PrusaSlicer will not output any other G-code to change the filament. You can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder], so e.g. the standard toolchange command can be scripted as T[next_extruder]." -msgstr "Tento vlastní kód je vložen při každé změně extruderu. Pokud toto nenecháte prázdné, očekává se, že se o výměnu nástroje postaráte sami - PrusaSlicer nevytvoří žádný jiný G-kód, který by měnil filament. Proměnné zástupných symbolů můžete použít pro všechna nastavení Slic3r, jakož i [previous_extruder] a [next_extruder], např. standardní příkaz výměny nástroje lze skriptovat jako T[next_extruder]." - #: src/libslic3r/PrintConfig.cpp:1032 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 use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Tento vlastní kód je vložen při každé změně vrstvy, hned po pohybu Z a předtím, než se extruder přesune na první bod vrstvy. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru, stejně tak jako [layer_num] a [layer_z]." @@ -6653,17 +7455,17 @@ msgstr "Tento vlastní kód je vložen při každé změně vrstvy, hned po pohy msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Tento vlastní kód je vložen pro každou změnu vrstvy, předtím než se pohne Z. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru stejně tak jako [layer_num] a [layer_z]." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange." -msgstr "Tento vlastní kód je vložen při každé změně nástroje (extruderu). Lze používat zástupné proměnné pro všechna nastavení PrusaSliceru stejně jako {previous_extruder} a {next_extruder}. Když je použit příkaz pro výměnu extruderu, který mění na požadovaný extruder (jako je T {next_extruder}), PrusaSlicer nevytvoří žádný jiný takový příkaz. Je tedy možné skriptovat vlastní chování před i po výměně nástroje." - -#: src/libslic3r/PrintConfig.cpp:380 -msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Tento kód je vložen na konec výstupního souboru před tím, než tiskárna dokončí gcode (a před všechny změny extruderu z tohoto filamentu v případě multimateriálových tiskáren). Můžete přidávat zástupné proměnné pro veškeré nastavení PrusaSliceru. Pokud máte tiskárnu s více extrudery, G-code je zpracováván v pořadí extruderů." +#: src/libslic3r/PrintConfig.cpp:2007 +msgid "This custom code is inserted right before every extruder change. Note that you can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder]." +msgstr "Tento vlastní kód je vložen těsně před každou změnou extruderu. Můžete použít zástupné proměnné pro všechna nastavení Slic3ru, stejně jako [previous_extruder] a [next_extruder]." #: src/libslic3r/PrintConfig.cpp:370 -msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all PrusaSlicer settings." -msgstr "Tento kód je vložen na konec výstupního souboru. Můžete také přidávat zástupné proměnné pro veškeré nastavení PrusaSliceru." +msgid "This end procedure is inserted at the end of the output file, before the printer end gcode. Note that you can use placeholder variables for all Slic3r settings. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Tato ukončovací procedura je vložena na konec výstupního souboru, před konečným G-code tiskárny. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru. Pokud máte tiskárnu s více extrudery, G-code je zpracován v pořadí extruderů." + +#: src/libslic3r/PrintConfig.cpp:360 +msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all Slic3r settings." +msgstr "Tato ukončovací procedura je vložena na konec výstupního souboru. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru." #: src/libslic3r/PrintConfig.cpp:1193 src/libslic3r/PrintConfig.cpp:1204 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 of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." @@ -6713,14 +7515,34 @@ msgstr "Tato funkce zvýší postupně Z při tisku jednovrstvého objektu, aby msgid "This file cannot be loaded in a simple mode. Do you want to switch to an advanced mode?\n" msgstr "Tento soubor nelze načíst v jednoduchém režimu. Chcete přepnout do pokročilého režimu?\n" +#: src/slic3r/GUI/Plater.cpp:1650 +msgid "This file cannot be loaded in simple mode. Do you want to switch to expert mode?\n" +msgstr "Tento soubor nelze načíst v jednoduchém režimu. Chcete přepnout do expert režimu?\n" + #: src/slic3r/GUI/Plater.cpp:1658 -msgid "This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\nthis file as a single object having multiple parts?\n" -msgstr "Tento soubor obsahuje několik objektů umístěných v různých výškách. Mají být vloženy jako jeden objekt obsahující více částí,\nnamísto vložení několika objektů?\n" +msgid "" +"This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\n" +"this file as a single object having multiple parts?\n" +msgstr "" +"Tento soubor obsahuje několik objektů umístěných v různých výškách. Mají být vloženy jako jeden objekt obsahující více částí,\n" +"namísto vložení několika objektů?\n" #: src/slic3r/GUI/FirmwareDialog.cpp:313 -#, possible-c-format -msgid "This firmware hex file does not match the printer model.\nThe hex file is intended for: %s\nPrinter reported: %s\n\nDo you want to continue and flash this hex file anyway?\nPlease only continue if you are sure this is the right thing to do." -msgstr "Tento hex soubor s firmware neodpovídá modelu tiskárny.\nSoubor hex je určen pro: %s\nTiskárna oznámila: %s\n\nChcete i přesto pokračovat a nahrát do tiskárny hex soubor?\nPokračujte prosím, pouze pokud jste si jisti, že je to správný soubor." +#, c-format +msgid "" +"This firmware hex file does not match the printer model.\n" +"The hex file is intended for: %s\n" +"Printer reported: %s\n" +"\n" +"Do you want to continue and flash this hex file anyway?\n" +"Please only continue if you are sure this is the right thing to do." +msgstr "" +"Tento hex soubor s firmware neodpovídá modelu tiskárny.\n" +"Soubor hex je určen pro: %s\n" +"Tiskárna oznámila: %s\n" +"\n" +"Chcete i přesto pokračovat a nahrát do tiskárny hex soubor?\n" +"Pokračujte prosím, pouze pokud jste si jisti, že je to správný soubor." #: src/libslic3r/PrintConfig.cpp:278 msgid "This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer printing time." @@ -6738,22 +7560,10 @@ msgstr "Tato možnost vyvolá retrakci, kdykoli je proveden pohyb Z." msgid "This flag will move the nozzle while retracting to minimize the possible blob on leaky extruders." msgstr "Toto nastavení přemístí trysku při retrakci, aby se minimalizovalo možné vytékání materiálu." -#: src/slic3r/GUI/Tab.cpp:921 -msgid "This is a default preset." -msgstr "Toto je výchozí přednastavení." - #: src/libslic3r/PrintConfig.cpp:2501 msgid "This is a relative measure of support points density." msgstr "Relativní míra hustoty podpěrných bodů." -#: src/slic3r/GUI/Tab.cpp:2528 -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 "Jedná se o multimateriálovou tiskárnu s jedním extruderem, průměry všech extruderů se nastaví na novou hodnotu. Chcete pokračovat?" - -#: src/slic3r/GUI/Tab.cpp:923 -msgid "This is a system preset." -msgstr "Toto je systémové přednastavení." - #: src/libslic3r/PrintConfig.cpp:491 src/libslic3r/PrintConfig.cpp:551 msgid "This is only used in the Slic3r interface as a visual help." msgstr "Toto je v Slic3ru jako názorná pomoc." @@ -6791,13 +7601,21 @@ msgstr "Toto je největší možná výška vrstvy pro tento extruder, který se 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 "Nejmenší tisknutelná výška vrstvy pro tento extruder. Omezuje rozlišení pro výšku proměnné vrstvy. Typické hodnoty jsou mezi 0,05 mm a 0,1 mm." +#: src/libslic3r/PrintConfig.cpp:2114 +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 "Tato matice popisuje objemy (v kubických milimetrech) nutné k vyčištění nového filamentu na čistící věži pro danou dvojici nástrojů. " + #: src/libslic3r/PrintConfig.cpp:2139 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 "Tato matice popisuje objemy (v kubických milimetrech) nutné k vyčištění nového filamentu na čistící věži pro danou dvojici nástrojů." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:643 -msgid "This operation is irreversible.\nDo you want to proceed?" -msgstr "Tato operace je nevratná.\nChcete pokračovat?" +msgid "" +"This operation is irreversible.\n" +"Do you want to proceed?" +msgstr "" +"Tato operace je nevratná.\n" +"Chcete pokračovat?" #: src/libslic3r/PrintConfig.cpp:1372 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 surfaces which benefit from a higher number of perimeters if the Extra Perimeters option is enabled." @@ -6839,13 +7657,22 @@ msgstr "Toto nastavení vyjadřuje maximální rychlost ventilátoru." msgid "This setting represents the minimum PWM your fan needs to work." msgstr "Toto nastavení představuje minimální hodnotu PWM, kterou ventilátor potřebuje, aby pracoval." -#: src/libslic3r/PrintConfig.cpp:1801 -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 printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Tento kód je vložen na začátek tisku. Jakmile tiskárna začne zpracovávat gcode (a po jakékoliv změně extruderu na tento filament v případě multimateriálového tisku). Slouží k přepsání nastavení pro konkrétní filament. Pokud PrusaSlicer detekuje příkazy M104, M109, M140 nebo M190 v uživatelsky definovaném kódu, tyto příkazy nebudou automaticky připojeny, takže si můžete přizpůsobit pořadí příkazů předehřevu a dalších vlastních akcí. Také můžete přidávat zástupné proměnné pro veškeré nastavení PrusaSliceru, takže můžete vložit příkaz “M109 S[first_layer_temperature]” kamkoliv chcete. Pokud máte tiskárnu s více extrudery, G-code je zpracováván v pořadí extruderů." +#: src/slic3r/GUI/UpdateDialogs.cpp:123 +#, c-format +msgid "This Slic3r PE version: %s" +msgstr "Tato verze Slic3r PE: %s" + +#: src/libslic3r/PrintConfig.cpp:1752 +msgid "This start procedure is inserted at the beginning, after any printer start gcode. This is used to override settings for a specific filament. If Slic3r detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Tento postup spuštění je vložen na začátku, po každém spuštění G-code tiskárny. Toto slouží k přepsání nastavení pro konkrétní filament. Pokud Slic3r detekuje M104, M109, M140 nebo M190 ve vašich vlastních kódech, takové příkazy nebudou automaticky předkládány, takže máte možnost přizpůsobit pořadí příkazů k ohřevu a další vlastní akce. Pro všechny nastavení Slic3ru můžete použít zástupné proměnné, takže můžete zadat příkaz “M109 S [first_layer_temperature]” kdekoli chcete. Pokud máte více extruderů, G-code se zpracovává v pořadí extruderů." -#: src/libslic3r/PrintConfig.cpp:1786 -msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." -msgstr "Tento kód je vložen na začátek tisku. Po okamžiku dosažení požadované teploty podložky a začátku nahřívání extruderu a před dokončení předehřevu trysky. Pokud PrusaSlicer detekuje příkazy M104, M190 v uživatelsky definovaném kódu, tyto příkazy nebudou automaticky připojeny, takže si můžete přizpůsobit pořadí příkazů předehřevu a dalších vlastních akcí. Také můžete přidávat zástupné proměnné pro veškeré nastavení PrusaSliceru, takže můžete vložit příkaz “M109 S[first_layer_temperature]” kamkoliv chcete." +#: src/libslic3r/PrintConfig.cpp:1737 +msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If Slic3r detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "Tento spouštěcí postup je vložen na začátku, poté, co vyhřívaná tisková podložka dosáhla cílové teploty a extruder se právě začal ohřívat a předtím, než dosáhl cílové teploty extruder. Pokud Slic3r detekuje M104 nebo M190 ve vašich vlastních kódech, takové příkazy nebudou automaticky předkládány, takže máte možnost upravit pořadí příkazů pro vytápění a další vlastní akce. Pro všechny nastavení Slic3ru můžete použít zástupné proměnné, takže můžete zadat příkaz “M109 S [first_layer_temperature]” kdekoli chcete." + +#: src/libslic3r/PrintConfig.cpp:663 +msgid "This string is edited by RammingDialog and contains ramming specific parameters " +msgstr "This string is edited by RammingDialog and contains ramming specific parameters " #: src/libslic3r/PrintConfig.cpp:664 msgid "This string is edited by RammingDialog and contains ramming specific parameters." @@ -6855,14 +7682,42 @@ msgstr "This string is edited by RammingDialog and contains ramming specific par 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 example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)." msgstr "Tato hodnota bude přidána (nebo odečtena) ze všech souřadnic Z ve výstupním G-code. Používá se ke kompenzování špatné pozice endstopu Z. Například pokud endstop 0 skutečně ponechá trysku 0,3 mm daleko od tiskové podložky, nastavte hodnotu -0,3 (nebo dolaďte svůj koncový doraz)." +#: src/libslic3r/PrintConfig.cpp:2107 +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 "Tento vektor ukládá potřebné objemy pro změnu z/na každý extruder používaný na čistící věži. Tyto hodnoty jsou použity pro zjednodušení vytvoření celkových objemů čištění níže. " + #: src/libslic3r/PrintConfig.cpp:2132 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 "Tento vektor ukládá potřebné objemy pro změnu z/na každý extruder používaný na čistící věži. Tyto hodnoty jsou použity pro zjednodušení vytvoření celkových objemů čištění níže." #: src/slic3r/GUI/UpdateDialogs.cpp:118 -#, possible-c-format -msgid "This version of %s is not compatible with currently installed configuration bundles.\nThis probably happened as a result of running an older %s after using a newer one.\n\nYou may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" -msgstr "Tato verze %s není kompatibilní se současně nainstalovanými balíčky nastavení.\nTato situace nejspíše nastala spuštěním starší verze %s po používání novější verze.\n\nMůžete buď ukončit %s a zkusit to znovu s novou verzí, nebo můžete znovu spustit výchozí konfiguraci. Před instalací kompatibilního nastavení s touto verzí %s dojde k vytvoření zálohy současné konfigurace.\n" +#, c-format +msgid "" +"This version of %s is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older %s after using a newer one.\n" +"\n" +"You may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" +msgstr "" +"Tato verze %s není kompatibilní se současně nainstalovanými balíčky nastavení.\n" +"Tato situace nejspíše nastala spuštěním starší verze %s po používání novější verze.\n" +"\n" +"Můžete buď ukončit %s a zkusit to znovu s novou verzí, nebo můžete znovu spustit výchozí konfiguraci. Před instalací kompatibilního nastavení s touto verzí %s dojde k vytvoření zálohy současné konfigurace.\n" + +#: src/slic3r/GUI/UpdateDialogs.cpp:114 +msgid "" +"This version of Slic3r PE is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older Slic3r PE after using a newer one.\n" +"\n" +"You may either exit Slic3r and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this Slic3r.\n" +msgstr "" +"Tato verze Slic3r PE není kompatibilní se současně nainstalovanými balíčky nastavení.\n" +"Tato situace nejspíše nastala spuštěním starší verze Slic3r PE po používání novější verze.\n" +"\n" +"Můžete buď ukončit Slic3r a zkusit to znovu s novou verzí, nebo můžete znovu spustit výchozí konfiguraci. Před instalací kompatibilního nastavení s touto verzí Slic3ru dojde k vytvoření zálohy současné konfigurace.\n" + +#: src/libslic3r/PrintConfig.cpp:2282 +msgid "This will apply a gamm correction to the rasterized 2D polygons." +msgstr "Aplikuje korekci gamma na rastrové 2D polygony." #: src/libslic3r/PrintConfig.cpp:2284 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." @@ -6904,6 +7759,10 @@ msgstr "Doba trvání rychlého náklonu" msgid "Time of the slow tilt" msgstr "Doba trvání pomalého náklonu" +#: src/libslic3r/PrintConfig.cpp:609 +msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions. " +msgstr "Doba čekání po vysunutí filamentu. Může pomoci ke spolehlivé změně extruderu s flexibilními materiály, které potřebují více času ke smrštění na původní rozměry. " + #: src/libslic3r/PrintConfig.cpp:610 msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions." msgstr "Doba čekání po vysunutí filamentu. Může pomoci ke spolehlivé změně extruderu s flexibilními materiály, které potřebují více času ke smrštění na původní rozměry." @@ -6912,6 +7771,10 @@ msgstr "Doba čekání po vysunutí filamentu. Může pomoci ke spolehlivé změ msgid "To do that please specify a new name for the preset." msgstr "Chcete-li akci provést, prosím nejdříve zadejte nový název přednastavení." +#: src/slic3r/GUI/UpdateDialogs.cpp:37 +msgid "To download, follow the link below." +msgstr "Pro stažení, klikněte na odkaz níže." + #: src/slic3r/GUI/Plater.cpp:2966 msgid "To objects" msgstr "Objektům" @@ -6920,11 +7783,6 @@ msgstr "Objektům" msgid "To parts" msgstr "Na části" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:212 -#, possible-c-format -msgid "Toggle %c axis mirroring" -msgstr "Přepnout zrcadlení podle osy %c" - #: src/libslic3r/Zipper.cpp:37 msgid "too many files" msgstr "příliš mnoho souborů" @@ -6973,6 +7831,10 @@ msgstr "Vrchních plných vrstev" msgid "Top View" msgstr "Pohled svrchu" +#: xs/src/libslic3r/PrintConfig.cpp:283 +msgid "Top/bottom fill pattern" +msgstr "Vzor výplně horní/spodní vrstvy" + #: src/slic3r/GUI/WipeTowerDialog.cpp:247 msgid "Total purging volume is calculated by summing two values below, depending on which tools are loaded/unloaded." msgstr "Celkový objem čištění je spočítán jako součet dvou hodnot níže v závislosti na tom, které extrudery jsou zavedeny/vyjmuty." @@ -7013,27 +7875,14 @@ msgstr "Typ:" msgid "undefined error" msgstr "nedefinovaná chyba" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3609 -#: src/slic3r/GUI/MainFrame.cpp:559 -msgid "Undo" -msgstr "Zpět" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Undo %1$d Action" -msgid_plural "Undo %1$d Actions" -msgstr[0] "%1$d Akce Zpět" -msgstr[1] "%1$d Akce Zpět" -msgstr[2] "%1$d Akcí Zpět" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Undo History" -msgstr "Historie operací Zpět" - #: src/libslic3r/Zipper.cpp:59 msgid "unexpected decompressed size" msgstr "neočekávaná dekomprimovaná velikost" +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Uniformly…" +msgstr "Souměrně…" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:27 msgid "Unknown" msgstr "Neznámý" @@ -7058,13 +7907,27 @@ msgstr "Počáteční rychlost vysouvání filamentu" msgid "UNLOCKED LOCK" msgstr "ODEMČENÝ ZÁMEK" -#: src/slic3r/GUI/Tab.cpp:3362 -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.\nClick to reset all settings for current option group to the system (or default) values." -msgstr "Ikona ODEMKNUTÉHO ZÁMKU indikuje, že některá nastavení byla změněna a nejsou shodná se systémovými (výchozími) hodnotami pro danou skupinu nastavení. Klikněte pro reset všech nastavení aktuální skupiny nastavení na systémové hodnoty." +#: src/slic3r/GUI/Tab.cpp:3105 +msgid "" +"UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click to reset all settings for current option group to the system values." +msgstr "Ikona ODEMKNUTÉHO ZÁMKU indikuje, že některá nastavení byla změněna a nejsou shodná se systémovými hodnotami pro danou skupinu nastavení. Klikněte pro reset všech nastavení aktuální skupiny nastavení na systémové hodnoty." + +#: src/slic3r/GUI/Tab.cpp:3120 +msgid "" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system value.\n" +"Click to reset current value to the system value." +msgstr "" +"Ikona ODEMKNUTÉHO ZÁMKU indikuje, že se hodnota změnila a není shodná se systémovou hodnotou.\n" +"Klikněte pro reset současné hodnoty na systémovou hodnotu." -#: src/slic3r/GUI/Tab.cpp:3377 -msgid "UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\nClick to reset current value to the system (or default) value." -msgstr "Ikona ODEMKNUTÉHO ZÁMKU indikuje, že se hodnota změnila a není shodná se systémovou (nebo výchozí) hodnotou.\nKlikněte pro reset současné hodnoty na systémovou hodnotu." +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "" +"UNLOCKED LOCK;indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"ODEMKNUTÝ ZÁMEK;indikuje, že některá nastavení byla změněna a nejsou shodná se systémovými hodnotami pro danou skupinu nastavení.\n" +"Klikněte na ikonu ODEMKNUTÉHO ZÁMKU pro reset všech nastavení aktuální skupiny nastavení na systémové hodnoty." #: src/slic3r/GUI/GUI_Preview.cpp:245 msgid "Unretractions" @@ -7082,6 +7945,10 @@ msgstr "Neuložená přednastavení" msgid "Unselect gizmo / Clear selection" msgstr "Zrušit gizmo / Zrušit výběr" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 +msgid "Unselect gizmo, keep object selection" +msgstr "Zrušit gizmo, zachovat výběr objektů" + #: src/libslic3r/Zipper.cpp:63 msgid "unsupported central directory size" msgstr "nepodporovaná velikost centrálního adresáře" @@ -7102,16 +7969,12 @@ msgstr "nepodporovaná metoda" msgid "unsupported multidisk archive" msgstr "nepodporovaný multidisk archiv" -#: src/slic3r/GUI/GUI_App.cpp:305 -msgid "Unsupported OpenGL version" -msgstr "Nepodporovaná verze OpenGL" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2414 msgid "Unsupported selection" msgstr "Nepodporovaný výběr" #: src/libslic3r/GCode/PreviewData.cpp:495 -#, possible-c-format +#, c-format msgid "up to %.2f mm" msgstr "do % .2f mm" @@ -7139,6 +8002,10 @@ msgstr "Aktualizovat" msgid "Upload a firmware image into an Arduino based printer" msgstr "Nahrát firmware do tiskárny s Arduinem" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Upload to OctoPrint with the following filename:" +msgstr "Nahrát do OctoPrintu s následujícím názvem:" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Upload to Printer Host with the following filename:" msgstr "Nahrát soubor do tiskového serveru se jménem:" @@ -7160,10 +8027,6 @@ msgstr "USB/Sériové připojení" msgid "USB/serial port for printer connection." msgstr "USB/sériový port pro připojení tiskárny." -#: src/slic3r/GUI/Preferences.cpp:117 -msgid "Use custom size for toolbar icons" -msgstr "Použít vlastní velikost ikon na panelu nástrojů" - #: src/libslic3r/PrintConfig.cpp:2060 msgid "Use firmware retraction" msgstr "Použít retrakce z firmwaru" @@ -7172,14 +8035,14 @@ msgstr "Použít retrakce z firmwaru" msgid "Use forward slashes ( / ) as a directory separator if needed." msgstr "Pokud je to nutné, použijte pro oddělení složek lomítko ( / )." +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "Use legacy OpenGL 1.1 rendering" +msgstr "Použijte historické OpenGL 1.1 vykreslování" + #: src/libslic3r/PrintConfig.cpp:2515 msgid "Use pad" msgstr "Použít podložku" -#: src/slic3r/GUI/Preferences.cpp:110 -msgid "Use perspective camera" -msgstr "Perspektivní zobrazení" - #: src/libslic3r/PrintConfig.cpp:2067 msgid "Use relative E distances" msgstr "Použít relativní E vzdálenosti" @@ -7241,10 +8104,18 @@ msgstr "Hodnota je shodná se systémovou hodnotou" msgid "Value was changed and is not equal to the system value or the last saved preset" msgstr "Hodnota byla změněna a není shodná se systémovou hodnotou nebo naposled uloženým přednastavením" +#: src/slic3r/GUI/Tab.cpp:2150 +msgid "Values in this column are for Full Power mode" +msgstr "Hodnoty v tomto sloupci jsou určeny pro režim plného výkonu (normal režim)" + #: src/slic3r/GUI/Tab.cpp:2151 msgid "Values in this column are for Normal mode" msgstr "Hodnoty v tomto sloupci jsou pro Normální režim" +#: src/slic3r/GUI/Tab.cpp:2156 +msgid "Values in this column are for Silent mode" +msgstr "Hodnoty v tomto sloupci jsou pro Tichý režim" + #: src/slic3r/GUI/Tab.cpp:2157 msgid "Values in this column are for Stealth mode" msgstr "Hodnoty v tomto sloupci jsou pro Tichý režim" @@ -7261,6 +8132,10 @@ msgstr "prodejce" msgid "Verbose G-code" msgstr "Komentáře do G-code" +#: lib/Slic3r/GUI/MainFrame.pm:66 +msgid "Version " +msgstr "Verze " + #: src/slic3r/GUI/AboutDialog.cpp:67 src/slic3r/GUI/MainFrame.cpp:53 msgid "Version" msgstr "Verze" @@ -7290,18 +8165,10 @@ msgstr "Obsah" msgid "Volume to purge (mm³) when the filament is being" msgstr "Objem k vyčištění (mm³) pokud je filament" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Volumes in Object reordered" -msgstr "Změna pořadí Těles v Objektu" - #: src/slic3r/GUI/PresetHints.cpp:216 msgid "Volumetric" msgstr "Volumetrický" -#: src/slic3r/GUI/Tab.cpp:1800 -msgid "Volumetric flow hints not available" -msgstr "Doporučení pro objemový průtok nejsou k dispozici" - #: src/slic3r/GUI/GUI_Preview.cpp:216 msgid "Volumetric flow rate" msgstr "Objemový průtok" @@ -7323,24 +8190,46 @@ msgstr "Varování" msgid "Welcome" msgstr "Vítejte" +#: src/slic3r/GUI/ConfigWizard.cpp:294 +#, c-format +msgid "Welcome to the %s %s" +msgstr "Vítejte v %s %s" + #: src/slic3r/GUI/ConfigWizard.cpp:296 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Assistant" msgstr "Vítejte v %s Konfiguračním Asistentu" #: src/slic3r/GUI/ConfigWizard.cpp:298 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Wizard" msgstr "Vítejte v %s Konfiguračním průvodci" +#: src/slic3r/GUI/ConfigWizard.cpp:284 +#, c-format +msgid "Welcome to the Slic3r %s" +msgstr "Vítejte v Slic3r %s" + +#: lib/Slic3r/GUI/Plater/2D.pm:131 +msgid "What do you want to print today? ™" +msgstr "Co chcete dnes tisknout? ™" + #: src/slic3r/GUI/Preferences.cpp:86 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 "Pokud je zaškrtnuto, přednastavení tisku a filamentu se zobrazují v editoru přednastavení, i když jsou označeny jako nekompatibilní s aktivní tiskárnou" +#: src/slic3r/GUI/PresetHints.cpp:221 +msgid "when printing " +msgstr "při tisku " + #: src/slic3r/GUI/PresetHints.cpp:223 msgid "when printing" msgstr "při tisku" +#: src/libslic3r/PrintConfig.cpp:216 +msgid "When printing multi-material objects, this settings will make slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "Připnutí překrývajících se objektů jeden k druhému při Multimateriálovém tisku. (Druhá část se připne k první, třetí část k první a druhé, atd)." + #: src/libslic3r/PrintConfig.cpp:217 msgid "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." msgstr "Připnutí překrývajících se objektů jeden k druhému při Multimateriálovém tisku. (Druhá část se připne k první, třetí část k první a druhé, atd)." @@ -7361,6 +8250,10 @@ msgstr "Při výměně nástroje se spustí retrakce a filament se zatáhne zpě 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 "Při spuštění retrakce se filament zatáhne zpět o zadané množství (délka se měří na surovém filamentu, než vstoupí do extruderu)." +#: src/libslic3r/PrintConfig.cpp:1322 +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 positive, it is loaded further, if negative, the loading move is shorter than unloading. " +msgstr "Když je hodnota nastavena na nulu, vzdálenost o kterou se filament posune během zavádění, je stejná, jako zpětný posun během vysouvání filamentu. Je-li hodnota kladná, je filament posunut více,. Je-li hodnota záporná, posun při zavádění je kratší než při vysouvání." + #: src/libslic3r/PrintConfig.cpp:1347 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 positive, it is loaded further, if negative, the loading move is shorter than unloading." msgstr "Když je hodnota nastavena na nulu, vzdálenost o kterou se filament posune během zavádění, je stejná, jako zpětný posun během vysouvání filamentu. Je-li hodnota kladná, je filament posunut více,. Je-li hodnota záporná, posun při zavádění je kratší než při vysouvání." @@ -7381,9 +8274,9 @@ msgstr "Když je retrakce kompenzována po rychloposunu, extruder vytlačuje tot msgid "WHITE BULLET" msgstr "BÍLÁ TEČKA" -#: src/slic3r/GUI/Tab.cpp:3365 -msgid "WHITE BULLET icon indicates a non system (or non default) preset." -msgstr "Ikona BÍLÉ TEČKY indikuje nesystémové (nebo jiné než výchozí) přednastavení." +#: src/slic3r/GUI/Tab.cpp:3108 +msgid "WHITE BULLET icon indicates a non system preset." +msgstr "Ikona BÍLÉ TEČKY indikuje nesystémové přednastavení." #: src/slic3r/GUI/Tab.cpp:3111 msgid "WHITE BULLET icon indicates that the settings are the same as in the last saved preset for the current option group." @@ -7393,6 +8286,14 @@ msgstr "Ikona BÍLÉ TEČKY indikuje, že nastavení jsou shodná s naposledy ul msgid "WHITE BULLET icon indicates that the value is the same as in the last saved preset." msgstr "Ikona BÍLÉ TEČKY indikuje, že je hodnota shodná s naposledy uloženým přednastavením." +#: src/slic3r/GUI/Tab.cpp:3073 +msgid "" +"WHITE BULLET;for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"BÍLÁ TEČKA;pro levé tlačítko: indikuje nesystémové přednastavení,\n" +"pro pravé tlačítko: indikuje, že nastavení nebylo změněno." + #: src/slic3r/GUI/GUI_Preview.cpp:214 src/libslic3r/PrintConfig.cpp:2137 msgid "Width" msgstr "Šířka" @@ -7409,10 +8310,6 @@ msgstr "Šířka od středu zadní koule ke středu přední koule" msgid "Width of a wipe tower" msgstr "Šířka čistící věže" -#: src/libslic3r/PrintConfig.cpp:2761 -msgid "Width of the connector sticks which connect the object and the generated pad." -msgstr "Šířka spojek, které spojují objekt s vygenerovanou podložkou." - #: src/libslic3r/PrintConfig.cpp:2203 msgid "Width of the display" msgstr "Šířka displeje" @@ -7421,6 +8318,11 @@ msgstr "Šířka displeje" msgid "will always run at %1%%%" msgstr "bude vždy běžet na %1%%%" +#: src/slic3r/GUI/PresetHints.cpp:43 +#, c-format +msgid "will always run at %d%% " +msgstr "bude vždy běžet na %d%% " + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "will be turned off." msgstr "bude vypnut." @@ -7437,17 +8339,15 @@ msgstr "Vyčistit do tohoto objektu" msgid "Wipe into this object's infill" msgstr "Vyčištění do výplně tohoto objektu" -#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:90 -#: src/slic3r/GUI/GUI_ObjectList.cpp:564 src/libslic3r/PrintConfig.cpp:2202 -#: src/libslic3r/PrintConfig.cpp:2210 -msgid "Wipe options" -msgstr "Možnosti čištění" - #: src/slic3r/GUI/GUI_Preview.cpp:238 src/slic3r/GUI/Tab.cpp:1130 #: src/libslic3r/GCode/PreviewData.cpp:174 msgid "Wipe tower" msgstr "Čistící věž" +#: src/slic3r/GUI/Tab.cpp:1281 src/slic3r/GUI/Tab.cpp:1298 +msgid "Wipe Tower" +msgstr "Čistící věž" + #: src/slic3r/GUI/Plater.cpp:1043 src/slic3r/GUI/Plater.cpp:1058 msgid "wipe tower" msgstr "čistící věž" @@ -7456,14 +8356,14 @@ msgstr "čistící věž" msgid "Wipe tower - Purging volume adjustment" msgstr "Čistící věž - Úprava objemu čištění" -#: src/slic3r/GUI/Tab.cpp:1664 -msgid "Wipe tower parameters" -msgstr "Parametry čistící věže" - #: src/libslic3r/PrintConfig.cpp:2144 msgid "Wipe tower rotation angle" msgstr "Úhel natočení čistící věže" +#: src/libslic3r/PrintConfig.cpp:2145 +msgid "Wipe tower rotation angle with respect to x-axis " +msgstr "Úhel natočení čistící věže s ohledem na osu X " + #: src/libslic3r/PrintConfig.cpp:2170 msgid "Wipe tower rotation angle with respect to x-axis." msgstr "Úhel natočení čistící věže s ohledem na osu X." @@ -7472,6 +8372,10 @@ msgstr "Úhel natočení čistící věže s ohledem na osu X." msgid "Wipe while retracting" msgstr "Očistit při retrakci" +#: xs/src/libslic3r/PrintConfig.cpp:1997 +msgid "Wiping after toolchange will be preferentially done inside infills. This lowers the amount of waste but may result in longer print time due to additional travel moves." +msgstr "Čištění po výměně extruderu bude přednostně prováděno do vnitřních výplní. Tím se snižuje množství odpadu, ale může to mít za následek delší dobu tisku v důsledku dodatečných pohybů." + #: src/slic3r/GUI/PresetHints.cpp:224 msgid "with a volumetric rate" msgstr "s objemovou rychlostí" @@ -7490,8 +8394,18 @@ msgid "World coordinates" msgstr "Světové souřadnice" #: src/slic3r/GUI/UpdateDialogs.cpp:76 -msgid "Would you like to install it?\n\nNote that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n\nUpdated configuration bundles:" -msgstr "Přejete si spustit instalaci?\n\nNejprve bude provedena kompletní záloha nastavení. V případě problémů s novou verzí ji bude možné kdykoliv obnovit.\n\nAktualizované balíčky nastavení:" +msgid "" +"Would you like to install it?\n" +"\n" +"Note that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n" +"\n" +"Updated configuration bundles:" +msgstr "" +"Přejete si spustit instalaci?\n" +"\n" +"Nejprve bude provedena kompletní záloha nastavení. V případě problémů s novou verzí ji bude možné kdykoliv obnovit.\n" +"\n" +"Aktualizované balíčky nastavení:" #: src/libslic3r/Zipper.cpp:95 msgid "write calledback failed" @@ -7557,30 +8471,34 @@ msgstr "V této šabloně můžete použít všechny možnosti konfigurace jako msgid "You can't change a type of the last solid part of the object." msgstr "Nelze změnit typ poslední plné části objektu." -#: src/slic3r/GUI/Plater.cpp:2243 -msgid "You can't load SLA project if there is at least one multi-part object on the bed" -msgstr "Nemůžete načíst SLA projekt, pokud je na tiskové ploše vícedílný objekt" +#: src/slic3r/GUI/GUI_ObjectList.cpp:1711 +msgid "You can't delete the last intance from object." +msgstr "Nelze smazat poslední instanci z objektu." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1694 +msgid "You can't delete the last solid part from object." +msgstr "Nelze smazat poslední část z objektu." #: src/slic3r/GUI/Plater.cpp:1746 -#, possible-c-format +#, c-format msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part" msgstr "Nemůžete přidat objekt(y) z %s, protože jeden nebo některé z nich je(jsou) vícedílné" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:565 -msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection" -msgstr "Nemůžete použít nestejnoměrnou změnu měřítka pro více vybraných objektů/částí" - -#: src/slic3r/GUI/GUI_App.cpp:300 -msgid "You may need to update your graphics card driver." -msgstr "Možná budete muset aktualizovat ovladač grafické karty." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid "You have unsaved changes " +msgstr "Máte neuložené změny " #: src/slic3r/GUI/Preferences.cpp:130 -#, possible-c-format +#, c-format msgid "You need to restart %s to make the changes effective." msgstr "Chcete-li provést změny, musíte restartovat aplikaci %s." +#: src/slic3r/GUI/Preferences.cpp:126 +msgid "You need to restart Slic3r to make the changes effective." +msgstr "Chcete-li provést změny, musíte restartovat aplikaci Slic3r." + #: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -#, possible-c-format +#, c-format msgid "You started your selection with %s Item." msgstr "Začali jste výběr s položkou %s." diff --git a/resources/localization/cs_CZ/Slic3rPE_cs.po b/resources/localization/cs_CZ/Slic3rPE_cs.po new file mode 100644 index 00000000000..7c5da27bb5c --- /dev/null +++ b/resources/localization/cs_CZ/Slic3rPE_cs.po @@ -0,0 +1,7419 @@ +msgid "" +msgstr "" +"Language: cs_CZ\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: PhraseApp (phraseapp.com)\n" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "\n\nand it has the following unsaved changes:" +msgstr "\n\na má neuložené následující změny:" + +#: xs/src/slic3r/GUI/Tab.cpp:2152 +msgid "\n\nDiscard changes and continue anyway?" +msgstr "\n\nZahodit změny a přesto pokračovat?" + +#: xs/src/slic3r/GUI/Tab.cpp:2150 +msgid "\n\nhas the following unsaved changes:" +msgstr "\n\nmá neuložené následující změny:" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "\n\nis not compatible with printer\n" +msgstr "\n\nnení kompatibilní s tiskárnou\n" + +#: src/slic3r/GUI/PresetHints.cpp:36 +msgid "\nDuring the other layers, fan " +msgstr "\nV průběhu ostaních vrstev, ventilátor " + +#: src/slic3r/GUI/PresetHints.cpp:32 +#, possible-c-format +msgid "\nIf estimated layer time is greater, but still below ~%ds, fan will run at a proportionally decreasing speed between %d%% and %d%%." +msgstr "\nPokud je odhadovaný čas vrstvy delší, ale stále pod ~%ds, bude ventilátor pracovat s plynule klesající rychlostí mezi %d%% a %d%%." + +#: lib/Slic3r/GUI/Plater.pm:1019 +msgid "\nNon-positive value." +msgstr "\nNezáporná hodnota." + +#: lib/Slic3r/GUI/Plater.pm:1020 +msgid "\nNot a numeric value." +msgstr "\nNečíselná hodnota." + +#: src/slic3r/GUI/MainFrame.cpp:55 +msgid " - Remember to check for updates at http://github.com/prusa3d/slic3r/releases" +msgstr " - Nezapomeňte zkontrolovat aktualizace na http://github.com/prusa3d/slic3r/releases" + +#: src/slic3r/GUI/Tab.cpp:3239 +msgid " as:" +msgstr " jako:" + +#: src/slic3r/GUI/PresetHints.cpp:228 +#, possible-c-format +msgid " at filament speed %3.2f mm/s." +msgstr " při rychlosti filamentu %3.2f mm/s." + +#: src/slic3r/GUI/Tab.cpp:1737 +msgid " Browse " +msgstr " Procházet " + +#: src/slic3r/GUI/MainFrame.cpp:677 +msgid " file as:" +msgstr " soubor jako:" + +#: src/slic3r/GUI/PresetHints.cpp:217 +msgid " flow rate is maximized " +msgstr " průtok je maximalizován " + +#: src/slic3r/GUI/Tab.cpp:1358 +#, no-c-format +msgid " infill pattern is not supposed to work at 100% density.\n\nShall I switch to rectilinear fill pattern?" +msgstr " vzor výplně není určen pro práci se 100% hustotou.\n\nMám přejít na vzor výplně rectilinear?" + +#: xs/src/slic3r/GUI/Tab.cpp:2131 +msgid " preset\n" +msgstr " přednastavení\n" + +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid " preset" +msgstr " přednastavení" + +#: src/slic3r/GUI/Tab.cpp:2938 +msgid " Preset" +msgstr " Přednastavení" + +#: src/slic3r/GUI/Tab.cpp:1818 src/slic3r/GUI/Tab.cpp:2019 +#: src/slic3r/GUI/Tab.cpp:2988 +msgid " Set " +msgstr " Nastavit " + +#: src/slic3r/GUI/Tab.cpp:2936 +msgid " the selected preset?" +msgstr " zvolené přednastavení?" + +#: src/slic3r/GUI/MainFrame.cpp:727 +msgid " was successfully sliced." +msgstr " byl úspěšně slicován." + +#: src/slic3r/GUI/PresetHints.cpp:222 +msgid " with a volumetric rate " +msgstr " s objemovou rychlostí " + +#: src/libslic3r/PrintConfig.cpp:179 src/libslic3r/PrintConfig.cpp:745 +#: src/libslic3r/PrintConfig.cpp:1154 src/libslic3r/PrintConfig.cpp:1217 +#: src/libslic3r/PrintConfig.cpp:1462 src/libslic3r/PrintConfig.cpp:2260 +#: src/libslic3r/PrintConfig.cpp:2502 +msgid "%" +msgstr "%" + +#: src/libslic3r/GCode/PreviewData.cpp:504 +#, possible-c-format +msgid "%.2f - %.2f mm" +msgstr "%.2f - %.2f mm" + +#: src/slic3r/GUI/PresetHints.cpp:226 +#, possible-c-format +msgid "%3.2f mm³/s" +msgstr "%3.2f mm³/s" + +#: src/slic3r/GUI/Plater.cpp:974 +#, possible-c-format +msgid "%d (%d shells)" +msgstr "%d (%d obalů)" + +#: src/slic3r/GUI/Plater.cpp:982 +#, possible-c-format +msgid "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards edges" +msgstr "%d poškozených faset, %d okrajů opraveno, %d faset odstraněno, %d faset přidáno, %d faset navráceno, %d zadních okrajů" + +#: src/slic3r/GUI/PresetHints.cpp:271 +#, possible-c-format +msgid "%d lines: %.2lf mm" +msgstr "%d linie: %.2lf mm" + +#: src/slic3r/GUI/MainFrame.cpp:894 +#, possible-c-format +msgid "%d presets successfully imported." +msgstr "%d přednastavení úspěšně importováno." + +#: src/slic3r/GUI/MainFrame.cpp:553 +#, possible-c-format +msgid "%s &Manual" +msgstr "%s Návod" + +#: src/slic3r/GUI/MainFrame.cpp:550 +#, possible-c-format +msgid "%s &Website" +msgstr "%s &Webová stránka" + +#: src/slic3r/GUI/UpdateDialogs.cpp:113 +#, possible-c-format +msgid "%s configuration is incompatible" +msgstr "Konfigurace %s není kompatibilní" + +#: src/slic3r/GUI/Field.cpp:136 +#, possible-c-format +msgid "%s doesn't support percentage" +msgstr "%s nepodporuje procenta" + +#: src/slic3r/GUI/MsgDialog.cpp:73 +#, possible-c-format +msgid "%s error" +msgstr "%s chyba" + +#: src/slic3r/GUI/ConfigWizard.cpp:336 +#, possible-c-format +msgid "%s Family" +msgstr "%s Rodina" + +#: src/slic3r/GUI/MsgDialog.cpp:74 +#, possible-c-format +msgid "%s has encountered an error" +msgstr "Došlo k chybě v programu %s" + +#: src/slic3r/GUI/UpdateDialogs.cpp:112 +#, possible-c-format +msgid "%s incompatibility" +msgstr "Není kompatibilní s %s" + +#: src/slic3r/GUI/UpdateDialogs.cpp:172 +#, possible-c-format +msgid "%s now uses an updated configuration structure.\n\nSo called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\nAn inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n\nPlease proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "%s nyní používá aktualizovanou konfigurační strukturu.\n\nByly uvedeny takzvaná \"Systémová přednastavení\", která obsahují výchozí nastavení pro rozličné tiskárny. Tato systémová přednastavení nemohou být upravena, místo toho si nyní uživatel může vytvořit svá vlastní přednastavení tím, že zdědí nastavení z jednoho ze systémových přednastavení.\nNově vytvořené přednastavení může buď zdědit určitou hodnotu od svého předchůdce nebo ji přepsat upravenou hodnotou.\n\nPři nastavování nových předvoleb postupujte podle pokynů v %s a vyberte, zda chcete povolit automatické přednastavené aktualizace." + +#: src/slic3r/GUI/GUI_App.cpp:681 +#, possible-c-format +msgid "%s View Mode" +msgstr "%s Režim zobrazení" + +#: src/slic3r/GUI/MainFrame.cpp:563 +#, possible-c-format +msgid "&About %s" +msgstr "O %s" + +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "&About Slic3r" +msgstr "&O Slic3ru" + +#: src/slic3r/GUI/GUI_App.cpp:769 +msgid "&Configuration" +msgstr "&Konfigurace" + +#: src/slic3r/GUI/GUI_App.cpp:661 +msgid "&Configuration Snapshots" +msgstr "Záloha konfigura&ce" + +#: src/slic3r/GUI/MainFrame.cpp:454 +msgid "&Copy" +msgstr "Kopírovat" + +#: src/slic3r/GUI/MainFrame.cpp:447 +msgid "&Delete selected" +msgstr "&Smazat vybrané" + +#: src/slic3r/GUI/MainFrame.cpp:575 +msgid "&Edit" +msgstr "&Editovat" + +#: src/slic3r/GUI/MainFrame.cpp:377 +msgid "&Export" +msgstr "&Exportovat" + +#: lib/Slic3r/GUI/MainFrame.pm:227 +msgid "&Export Config Bundle…" +msgstr "&Exportovat Konfigurační Balík…" + +#: lib/Slic3r/GUI/MainFrame.pm:221 +msgid "&Export Config…\tCtrl+E" +msgstr "&Exportovat Konfiguraci…\tCtrl+E" + +#: src/slic3r/GUI/MainFrame.cpp:480 src/slic3r/GUI/MainFrame.cpp:604 +msgid "&Filament Settings Tab" +msgstr "Panel nastavení &filamentu" + +#: src/slic3r/GUI/MainFrame.cpp:574 +msgid "&File" +msgstr "&Soubor" + +#: src/slic3r/GUI/ConfigWizard.cpp:1094 +msgid "&Finish" +msgstr "&Dokončit" + +#: src/slic3r/GUI/MainFrame.cpp:580 +msgid "&Help" +msgstr "&Pomoc" + +#: src/slic3r/GUI/MainFrame.cpp:359 +msgid "&Import" +msgstr "&Importovat" + +#: lib/Slic3r/GUI/MainFrame.pm:224 +msgid "&Load Config Bundle…" +msgstr "&Načíst Konfigurační Balík…" + +#: lib/Slic3r/GUI/MainFrame.pm:218 +msgid "&Load Config…\tCtrl+L" +msgstr "&Načíst Konfiguraci…\tCtrl+L" + +#: src/slic3r/GUI/ConfigWizard.cpp:1093 +msgid "&Next >" +msgstr "&Další>" + +#: lib/Slic3r/GUI/MainFrame.pm:376 +msgid "&Object" +msgstr "&Objekt" + +#: src/slic3r/GUI/MainFrame.cpp:339 +msgid "&Open Project" +msgstr "&Otevřít projekt" + +#: src/slic3r/GUI/MainFrame.cpp:456 +msgid "&Paste" +msgstr "Vložit" + +#: lib/Slic3r/GUI/MainFrame.pm:375 +msgid "&Plater" +msgstr "&Podložka" + +#: src/slic3r/GUI/MainFrame.cpp:471 +msgid "&Plater Tab" +msgstr "&Panel Podložka" + +#: src/slic3r/GUI/GUI_App.cpp:665 +msgid "&Preferences" +msgstr "Nastavení" + +#: src/slic3r/GUI/MainFrame.cpp:409 +msgid "&Quit" +msgstr "&Ukončit" + +#: src/slic3r/GUI/MainFrame.cpp:406 +msgid "&Repair STL file" +msgstr "Op&ravit soubor STL" + +#: lib/Slic3r/GUI/MainFrame.pm:244 +msgid "&Repeat Last Quick Slice\tCtrl+Shift+U" +msgstr "&Opakovat Poslední Slicování\tCtrl+Shift+U" + +#: src/slic3r/GUI/MainFrame.cpp:341 +msgid "&Save Project" +msgstr "Uložit projekt" + +#: src/slic3r/GUI/MainFrame.cpp:444 +msgid "&Select all" +msgstr "Vybrat vše" + +#: src/slic3r/GUI/MainFrame.cpp:577 +msgid "&View" +msgstr "&Zobrazení" + +#: src/slic3r/GUI/MainFrame.cpp:576 +msgid "&Window" +msgstr "&Okno" + +#: lib/Slic3r/GUI/MainFrame.pm:255 +msgid "(&Re)Slice Now\tCtrl+S" +msgstr "(&Znovu)Slicovat\tCtrl+S" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:89 +msgid "(default)" +msgstr "(výchozí)" + +#: src/libslic3r/PrintConfig.cpp:1376 +msgid "(minimum)" +msgstr "(minimálně)" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:111 +msgid "(Re)slice" +msgstr "(Znovu)Slicovat" + +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "(Re)Slice &Now" +msgstr "(Z&novu)Slicovat" + +#: src/slic3r/GUI/MainFrame.cpp:641 +msgid ") not found." +msgstr ") nebyl nalezen." + +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid ". Discard changes and continue anyway?" +msgstr ". Pokračovat i přes zahození změn?" + +#: lib/Slic3r/GUI/Plater/3DPreview.pm:69 +msgid "1 Layer" +msgstr "1 Vrstva" + +#: lib/Slic3r/GUI/Plater.pm:206 +msgid "2D" +msgstr "2D" + +#: src/slic3r/GUI/MainFrame.cpp:487 +msgid "3&D" +msgstr "3&D" + +#: lib/Slic3r/GUI/Plater.pm:164 lib/Slic3r/GUI/Plater.pm:2323 +msgid "3D" +msgstr "3D" + +#: src/libslic3r/PrintConfig.cpp:804 +msgid "3D Honeycomb" +msgstr "3D Plástev" + +#: src/slic3r/GUI/GUI_App.cpp:741 +msgid "3D-Scene will be cleaned." +msgstr "3D-scéna bude smazána." + +#: lib/Slic3r/GUI/Plater.pm:1756 +msgid "3MF file exported to " +msgstr "Soubor 3MF byl exportován do " + +#: src/slic3r/GUI/Plater.cpp:3590 +#, possible-c-format +msgid "3MF file exported to %s" +msgstr "Soubor 3MF byl exportován do %s" + +#: lib/Slic3r/GUI/Plater.pm:258 +msgid "45° ccw" +msgstr "45° doleva" + +#: lib/Slic3r/GUI/Plater.pm:259 +msgid "45° cw" +msgstr "45° doprava" + +#: src/slic3r/GUI/ConfigWizard.cpp:1092 +msgid "< &Back" +msgstr "<&Zpět" + +#: src/libslic3r/PrintConfig.cpp:251 +msgid "A boolean expression using the configuration values of an active print profile. If this expression evaluates to true, this profile is considered compatible with the active print profile." +msgstr "Logický výraz může používat konfigurační hodnoty aktivního profilu tiskárny. Pokud je tento logický výraz pravdivý, potom je tento profil považován za kompatibilní s aktivním profilem tiskárny." + +#: src/libslic3r/PrintConfig.cpp:236 +msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile." +msgstr "Logický výraz může používat konfigurační hodnoty aktivního profilu tiskárny. Pokud je tento logický výraz pravdivý, potom je tento profil považován za kompatibilní s aktivním profilem tiskárny." + +#: src/slic3r/GUI/ConfigWizard.cpp:609 +msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS." +msgstr "Obecným pravidlem je 160 až 230° pro PLA a 215 až 250° pro ABS." + +#: src/slic3r/GUI/ConfigWizard.cpp:623 +msgid "A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have no heated bed." +msgstr "Obecným pravidlem je 160 až 230° pro PLA a 215 až 250° pro ABS. Zadejte nula, pokud nemáte vyhřívanou podložku." + +#: src/libslic3r/SLA/SLASupportTree.cpp:2162 +msgid "Abort" +msgstr "Přerušit" + +#: src/slic3r/GUI/AboutDialog.cpp:35 +#, possible-c-format +msgid "About %s" +msgstr "O %s" + +#: src/slic3r/GUI/AboutDialog.cpp:35 +msgid "About Slic3r" +msgstr "O Slic3ru" + +#: src/libslic3r/GCode/PreviewData.cpp:499 +#, possible-c-format +msgid "above %.2f mm" +msgstr "nad %.2f mm" + +#: src/libslic3r/PrintConfig.cpp:1499 +msgid "Above Z" +msgstr "Nad Z" + +#: src/slic3r/GUI/Tab.cpp:1103 +msgid "Acceleration control (advanced)" +msgstr "Kontrola akcelerací (pokročilé)" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:73 +msgid "Activate" +msgstr "Aktivovat" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:39 +msgid "Active: " +msgstr "Aktivní: " + +#: src/slic3r/GUI/Preset.cpp:1003 src/slic3r/GUI/Tab.cpp:237 +msgid "Add a new printer" +msgstr "Přidat novou tiskárnu" + +#: src/libslic3r/PrintConfig.cpp:2517 +msgid "Add a pad underneath the supported model" +msgstr "Pod podepíraný model přidá podložku" + +#: src/libslic3r/PrintConfig.cpp:1971 +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 "Přidá pouzdro (jednu obvodovou čáru) kolem podpěr. Díky tomu je podpora spolehlivější, ale také obtížnější na odstranění." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:186 +msgid "Add color change marker for current layer" +msgstr "Přidat značku změny barvy pro aktuální vrstvu" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Add Instance to selected object " +msgstr "Přidat instanci vybraného objektu" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1067 +msgid "Add modifier" +msgstr "Přidat modifikátor" + +#: src/libslic3r/PrintConfig.cpp:447 +#, no-c-format +msgid "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps adding perimeters, until more than 70% of the loop immediately above is supported." +msgstr "Přidání více perimetrů, pokud je potřeba, pro vyvarování se tvorbě mezer v šikmých plochách. Slic3r pokračuje v přidávání perimetrů, dokud není podepřeno více než 70% perimetrů v následující vrstvě." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1066 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1082 +msgid "Add part" +msgstr "Přidat díl" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1229 +msgid "Add point" +msgstr "Přidat bod" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1232 +msgid "Add point to selection" +msgstr "Přidat bod k výběru" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1118 +msgid "Add settings" +msgstr "Přidat nastavení" + +#: src/libslic3r/PrintConfig.cpp:382 +msgid "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)." +msgstr "Přidá plnou výplň u šikmých ploch pro garanci tloušťky svislých stěn (vrchních a spodních plných vrstev)." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1069 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1089 +msgid "Add support blocker" +msgstr "Přidat blokátor podpěr" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1068 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1086 +msgid "Add support enforcer" +msgstr "Přidat vynucení podpěr" + +#: src/slic3r/GUI/Tab.cpp:920 +msgid "Additional information:" +msgstr "Doplňující informace:" + +#: src/slic3r/GUI/GUI_ObjectSettings.cpp:58 +msgid "Additional Settings" +msgstr "Další nastavení" + +#: src/slic3r/GUI/ConfigWizard.cpp:431 +msgid "Additionally a backup snapshot of the whole configuration is created before an update is applied." +msgstr "Dále je před nainstalováním aktualizace vytvořena záloha veškerého nastavení." + +#: src/slic3r/GUI/BonjourDialog.cpp:72 +msgid "Address" +msgstr "Adresa" + +#: lib/Slic3r/GUI/Plater.pm:250 lib/Slic3r/GUI/Plater.pm:268 +msgid "Add…" +msgstr "Přidat…" + +#: src/slic3r/GUI/GUI_App.cpp:675 src/slic3r/GUI/GUI_ObjectList.cpp:76 +#: src/slic3r/GUI/GUI_ObjectList.cpp:517 src/slic3r/GUI/Tab.cpp:1026 +#: src/slic3r/GUI/Tab.cpp:1041 src/slic3r/GUI/Tab.cpp:1139 +#: src/slic3r/GUI/Tab.cpp:1142 src/slic3r/GUI/Tab.cpp:1515 +#: src/slic3r/GUI/Tab.cpp:1940 src/slic3r/GUI/Tab.cpp:3435 +#: src/slic3r/GUI/wxExtensions.cpp:2460 src/libslic3r/PrintConfig.cpp:72 +#: src/libslic3r/PrintConfig.cpp:187 src/libslic3r/PrintConfig.cpp:350 +#: src/libslic3r/PrintConfig.cpp:988 src/libslic3r/PrintConfig.cpp:2175 +msgid "Advanced" +msgstr "Pokročilý" + +#: src/slic3r/GUI/GUI_App.cpp:675 +msgid "Advanced View Mode" +msgstr "Pokročilý režim" + +#: xs/src/slic3r/GUI/FirmwareDialog.cpp:400 +msgid "Advanced: avrdude output log" +msgstr "Pokročilé: výstupní log avrdude" + +#: src/slic3r/GUI/FirmwareDialog.cpp:803 +msgid "Advanced: Output log" +msgstr "Pokročilý:  Výstupní log" + +#: src/libslic3r/PrintConfig.cpp:636 +msgid "After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Slic3r will always prime this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably." +msgstr "Po výměně nástroje nemusí být známa přesná poloha nově zavedeného filamentu uvnitř trysky a tlak filamentu pravděpodobně ještě není stabilní. Před vyčištěním tiskové hlavy do výplně nebo do objektu bude Slic3r toto množství materiálu vždy vytlačovat do čistící věže, aby se spolehlivě vytvořily následné výplně nebo objekty." + +#: src/slic3r/GUI/Tab.cpp:1967 src/libslic3r/PrintConfig.cpp:1031 +msgid "After layer change G-code" +msgstr "G-code po změně vrstvy" + +#: src/libslic3r/PrintConfig.cpp:3009 +msgid "Align the model to the given point." +msgstr "Zarovnejte model s daným bodem." + +#: src/libslic3r/PrintConfig.cpp:3008 +msgid "Align XY" +msgstr "Zarovnat XY" + +#: src/libslic3r/PrintConfig.cpp:1561 +msgid "Aligned" +msgstr "Zarovnaný" + +#: src/slic3r/GUI/ConfigWizard.cpp:189 src/slic3r/GUI/Tab.cpp:2986 +msgid "All" +msgstr "Všechny" + +#: src/libslic3r/Print.cpp:1195 +msgid "All extruders must have the same diameter for single extruder multimaterial printer." +msgstr "Všechny průměry trysek musí být pro multimateriálovou tiskárnu s jedním extrudérem stejné." + +#: src/libslic3r/Print.cpp:1135 +msgid "All objects are outside of the print volume." +msgstr "Všechny objekty jsou mimo tiskový prostor." + +#: src/slic3r/GUI/Plater.cpp:3298 +msgid "All objects will be removed, continue ?" +msgstr "Všechny objekty budou obebrány, pokračovat?" + +#: src/slic3r/GUI/ConfigWizard.cpp:188 +msgid "All standard" +msgstr "Všechny běžné" + +#: src/libslic3r/Zipper.cpp:65 +msgid "allocation failed" +msgstr "alokace selhala" + +#: src/slic3r/GUI/Plater.cpp:2939 +msgid "Along X axis" +msgstr "Podél osy X" + +#: lib/Slic3r/GUI/Plater.pm:2251 lib/Slic3r/GUI/Plater.pm:2267 +#: lib/Slic3r/GUI/Plater.pm:2283 +msgid "Along X axis…" +msgstr "Podél osy X…" + +#: src/slic3r/GUI/Plater.cpp:2941 +msgid "Along Y axis" +msgstr "Podél osy Y" + +#: lib/Slic3r/GUI/Plater.pm:2254 lib/Slic3r/GUI/Plater.pm:2270 +#: lib/Slic3r/GUI/Plater.pm:2286 +msgid "Along Y axis…" +msgstr "Podél osy Y…" + +#: src/slic3r/GUI/Plater.cpp:2943 +msgid "Along Z axis" +msgstr "Podél osy Z" + +#: lib/Slic3r/GUI/Plater.pm:2257 lib/Slic3r/GUI/Plater.pm:2273 +#: lib/Slic3r/GUI/Plater.pm:2289 +msgid "Along Z axis…" +msgstr "Podél osy Z…" + +#: src/slic3r/GUI/ConfigWizard.cpp:122 +msgid "Alternate nozzles:" +msgstr "Alternativní trysky:" + +#: lib/Slic3r/GUI/Plater.pm:1740 +msgid "AMF file exported to " +msgstr "Soubor AMF byl exportován do " + +#: src/slic3r/GUI/Plater.cpp:3561 +#, possible-c-format +msgid "AMF file exported to %s" +msgstr "Soubor AMF byl exportován do %s" + +#: src/slic3r/GUI/Tab.cpp:2781 +msgid "and it has the following unsaved changes:" +msgstr "a má neuložené následující změny:" + +#: src/slic3r/GUI/Plater.cpp:2461 +msgid "Another export job is currently running." +msgstr "V současné době běží jiná úloha exportu." + +#: src/slic3r/GUI/Tab.cpp:915 +msgid "Any modifications should be saved as a new preset inherited from this one. " +msgstr "Jakékoliv úpravy by měly být uloženy jako nové přednastavení zděděná z tohoto. " + +#: xs/src/libslic3r/PrintConfig.cpp:1109 +msgid "API Key" +msgstr "Klíč API" + +#: src/libslic3r/PrintConfig.cpp:88 +msgid "API Key / Password" +msgstr "API klíč / Heslo" + +#: src/slic3r/GUI/GUI_App.cpp:671 +msgid "Application preferences" +msgstr "Nastavení aplikace" + +#: xs/src/slic3r/GUI/GUI.cpp:406 +msgid "Application will be restarted" +msgstr "Aplikace bude restartována" + +#: src/slic3r/GUI/GUI_App.cpp:740 +msgid "Application will be restarted after language change." +msgstr "Aplikace bude po změně jazyka restartována." + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:864 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 +msgid "Apply changes" +msgstr "Aplikovat změny" + +#: src/libslic3r/PrintConfig.cpp:542 src/libslic3r/PrintConfig.cpp:1638 +msgid "approximate seconds" +msgstr "vteřin přibližně" + +#: src/libslic3r/PrintConfig.cpp:401 src/libslic3r/PrintConfig.cpp:807 +msgid "Archimedean Chords" +msgstr "Archimedean Chords" + +#: src/libslic3r/Zipper.cpp:91 +msgid "archive is too large" +msgstr "archiv je moc velký" + +#: src/slic3r/GUI/Tab.cpp:2936 +msgid "Are you sure you want to " +msgstr "Jste si jistý že chcete " + +#: src/slic3r/GUI/FirmwareDialog.cpp:862 +msgid "Are you sure you want to cancel firmware flashing?\nThis could leave your printer in an unusable state!" +msgstr "Opravdu chcete ukončit nahrávání firmware?\nTiskárna může zůstat v nefunkčním stavu!" + +#: src/libslic3r/PrintConfig.cpp:2258 +msgid "Area fill" +msgstr "Zaplněná plocha" + +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Around X axis…" +msgstr "Okolo osy X…" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Around Y axis…" +msgstr "Okolo osy Y…" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Around Z axis…" +msgstr "Okolo osy Z…" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:135 +msgid "Arrange" +msgstr "Uspořádat" + +#: src/libslic3r/PrintConfig.cpp:3054 +msgid "Arrange the supplied models in a plate and merge them in a single model in order to perform actions once." +msgstr "Uspořádejte modely na tiskovou podložku a slučte je do jednoho modelu, abyste s nimi mohli provádět akce jednou." + +#: src/slic3r/GUI/Plater.cpp:2106 +msgid "Arranging" +msgstr "Uspořádávání" + +#: src/slic3r/GUI/Plater.cpp:2103 +msgid "Arranging canceled" +msgstr "Uspořádávání bylo zrušeno" + +#: src/slic3r/GUI/Plater.cpp:2144 +msgid "Arranging done." +msgstr "Uspořádávání dokončeno." + +#: src/slic3r/GUI/GUI_App.cpp:514 +msgid "Array of language names and identifiers should have the same size." +msgstr "Pole jazykových jmen a identifikátorů by měla mít stejnou velikost." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:172 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:183 +msgid "Arrow Down" +msgstr "Šipka dolů" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:184 +msgid "Arrow Left" +msgstr "Šipka vlevo" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 +msgid "Arrow Right" +msgstr "Šipka vpravo" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:171 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 +msgid "Arrow Up" +msgstr "Šipka nahoru" + +#: xs/src/slic3r/GUI/GUI.cpp:660 +msgid "Attempt to free unreferenced scalar" +msgstr "Attempt to free unreferenced scalar" + +#: src/slic3r/GUI/GUI.cpp:144 src/slic3r/GUI/GUI_App.cpp:743 +#: src/slic3r/GUI/Tab.cpp:2798 +msgid "Attention!" +msgstr "Pozor!" + +#: src/libslic3r/PrintConfig.cpp:1785 +msgid "Auto generated supports" +msgstr "Automaticky generované podpěry" + +#: src/slic3r/GUI/Preferences.cpp:44 +msgid "Auto-center parts" +msgstr "Auto-centrování objektů" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:902 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1243 +msgid "Auto-generate points" +msgstr "Automatické generování bodů" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:669 +msgid "Auto-generate points [A]" +msgstr "Automatické generování bodů [A]" + +#: src/slic3r/GUI/Plater.cpp:979 +#, possible-c-format +msgid "Auto-repaired (%d errors)" +msgstr "Automaticky opraveno (%d chyb)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:230 +#, possible-c-format +msgid "Auto-repaired (%d errors):\n" +msgstr "Automaticky opraveno ( %d chyb):\n" + +#: src/slic3r/GUI/FirmwareDialog.cpp:771 +msgid "Autodetected" +msgstr "Automaticky detekováno" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1166 +msgid "Autogeneration will erase all manually edited points.\n\nAre you sure you want to do it?\n" +msgstr "Automatické generování vymaže všechny ručně vytvořené body. \n\nOpravdu to chcete udělat?\n" + +#: src/slic3r/GUI/Tab.cpp:3421 +msgid "Automatic generation" +msgstr "Automatické generování" + +#: src/slic3r/GUI/ConfigWizard.cpp:401 +msgid "Automatic updates" +msgstr "Automatické aktualizace" + +#: src/slic3r/GUI/MainFrame.cpp:406 +msgid "Automatically repair an STL file" +msgstr "Automaticky opravit STL soubor" + +#: src/slic3r/GUI/Tab.cpp:1110 +msgid "Autospeed (advanced)" +msgstr "Automatická rychlost (pokročilé)" + +#: src/libslic3r/PrintConfig.cpp:111 +msgid "Avoid crossing perimeters" +msgstr "Vyhnout se přejíždění perimetrů" + +#: src/slic3r/GUI/Tab.cpp:3113 +msgid "BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick to reset all settings for the current option group to the last saved preset." +msgstr "Ikona ŠIPKY ZPĚT indikuje, že došlo ke změně nastavení, které není shodné s naposledy uloženým přednastavením pro aktuální skupinu nastavení.\nKlikněte pro reset všech nastavení pro aktuální skupinu nastavení na naposledy uložené přednastavení." + +#: src/slic3r/GUI/Tab.cpp:3127 +msgid "BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\nClick to reset current value to the last saved preset." +msgstr "Ikona ŠIPKY ZPĚT indikuje, že se hodnota změnila a není shodná s naposledy uloženým přednastavením.\nKlikněte pro reset současné hodnoty na naposledy uložené přednastavení." + +#: src/slic3r/GUI/Tab.cpp:3077 +msgid "BACK ARROW;indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "ŠIPKA ZPĚT;indikuje, že došlo ke změně nastavení, které není shodné s naposledy uloženým přednastavením pro aktuální skupinu nastavení. Klikněte na ikonu ŠIPKY ZPĚT pro reset všech nastavení pro aktuální skupinu nastavení na naposledy uložené přednastavení." + +#: src/slic3r/GUI/Preferences.cpp:52 +msgid "Background processing" +msgstr "Zpracování na pozadí" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:242 +msgid "backwards edges" +msgstr "zadní okraje" + +#: src/slic3r/GUI/Tab.cpp:1484 +msgid "Bed" +msgstr "Tisková podložka" + +#: src/slic3r/GUI/BedShapeDialog.hpp:45 src/slic3r/GUI/ConfigWizard.cpp:524 +msgid "Bed Shape" +msgstr "Tvar tiskové podložky" + +#: src/libslic3r/PrintConfig.cpp:50 +msgid "Bed shape" +msgstr "Tvar tiskové podložky" + +#: src/slic3r/GUI/ConfigWizard.cpp:524 +msgid "Bed Shape and Size" +msgstr "Tvar a rozměr podložky" + +#: src/libslic3r/PrintConfig.cpp:122 +msgid "Bed temperature" +msgstr "Teplota tiskové podložky" + +#: src/libslic3r/PrintConfig.cpp:120 +msgid "Bed temperature for layers after the first one. Set this to zero to disable bed temperature control commands in the output." +msgstr "Teplota tiskové podložky pro další vrstvy po první vrstvě. Nastavením na hodnotu nula vypnete ovládací příkazy teploty tiskové podložky ve výstupu." + +#: src/slic3r/GUI/ConfigWizard.cpp:626 +msgid "Bed Temperature:" +msgstr "Teplota tiskové podložky:" + +#: src/slic3r/GUI/Tab.cpp:1961 src/libslic3r/PrintConfig.cpp:128 +msgid "Before layer change G-code" +msgstr "G-code před změnou vrstvy" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:22 +msgid "Before roll back" +msgstr "Před vrácením zpět" + +#: src/libslic3r/PrintConfig.cpp:1508 +msgid "Below Z" +msgstr "Pod Z" + +#: src/libslic3r/PrintConfig.cpp:139 +msgid "Between objects G-code" +msgstr "G-code mezi objekty" + +#: src/slic3r/GUI/Tab.cpp:1979 +msgid "Between objects G-code (for sequential printing)" +msgstr "G-code mezi objekty (pro sekvenční tisk)" + +#. TRN To be shown in the main menu View->Bottom +#: src/slic3r/GUI/MainFrame.cpp:524 +msgid "Bottom" +msgstr "Zespod" + +#: src/libslic3r/PrintConfig.cpp:409 +msgid "Bottom fill pattern" +msgstr "Vzor spodní výplně" + +#: src/libslic3r/PrintConfig.cpp:152 +msgid "Bottom solid layers" +msgstr "Plné spodní vrstvy" + +#: src/slic3r/GUI/MainFrame.cpp:524 +msgid "Bottom View" +msgstr "Pohled zespod" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1055 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1087 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1090 +msgid "Box" +msgstr "Kostka" + +#: src/libslic3r/PrintConfig.cpp:157 +msgid "Bridge" +msgstr "Most" + +#: src/libslic3r/PrintConfig.cpp:186 +msgid "Bridge flow ratio" +msgstr "Poměr průtoku při vytváření mostů" + +#: src/slic3r/GUI/GUI_Preview.cpp:233 src/libslic3r/GCode/PreviewData.cpp:169 +msgid "Bridge infill" +msgstr "Výplň mostů" + +#: src/libslic3r/PrintConfig.cpp:198 +msgid "Bridges" +msgstr "Mosty" + +#: src/libslic3r/PrintConfig.cpp:177 +msgid "Bridges fan speed" +msgstr "Rychlost ventilátoru při vytváření mostů" + +#: src/libslic3r/PrintConfig.cpp:166 +msgid "Bridging angle" +msgstr "Úhel vytváření mostů" + +#: src/libslic3r/PrintConfig.cpp:168 +msgid "Bridging angle override. If left to zero, the bridging angle will be calculated automatically. Otherwise the provided angle will be used for all bridges. Use 180° for zero angle." +msgstr "Přepsání úhlu vytváření mostů. Nastavením hodnoty na nulu se bude úhel vytváření mostů vypočítávat automaticky. Při zadání jiného úhlu, bude pro všechny mosty použitý zadaný úhel. Pro nulový úhel zadejte 180°." + +#: src/slic3r/GUI/PresetHints.cpp:216 +msgid "Bridging volumetric" +msgstr "Volumetrická hodnota mostů" + +#: src/slic3r/GUI/Plater.cpp:446 src/slic3r/GUI/Tab.cpp:1056 +msgid "Brim" +msgstr "Límec" + +#: src/libslic3r/PrintConfig.cpp:208 +msgid "Brim width" +msgstr "Šířka límce" + +#: src/slic3r/GUI/Tab.cpp:1681 +msgid "Browse" +msgstr "Procházet" + +#: src/libslic3r/Zipper.cpp:85 +msgid "buffer too small" +msgstr "buffer je příliš malý" + +#: src/slic3r/GUI/ButtonsDescription.cpp:16 +msgid "Buttons And Text Colors Description" +msgstr "Barvy pro textové popisky a tlačítka" + +#: src/slic3r/GUI/PresetHints.cpp:220 +msgid "by the print profile maximum" +msgstr "maximem pro profil tisku" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 +msgid "Camera view " +msgstr "Pohled kamery" + +#: src/slic3r/GUI/ConfigWizard.cpp:1095 src/slic3r/GUI/FirmwareDialog.cpp:147 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:37 +#: src/slic3r/GUI/ProgressStatusBar.cpp:28 +msgid "Cancel" +msgstr "Zrušit" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:156 +msgid "Cancel selected" +msgstr "Zrušit vybrané" + +#: src/slic3r/GUI/Plater.cpp:2727 src/slic3r/GUI/PrintHostDialogs.cpp:232 +msgid "Cancelled" +msgstr "Zrušeno" + +#: src/slic3r/GUI/Plater.cpp:2444 src/slic3r/GUI/PrintHostDialogs.cpp:231 +msgid "Cancelling" +msgstr "Zrušení" + +#: src/slic3r/GUI/FirmwareDialog.cpp:866 +msgid "Cancelling..." +msgstr "Ukončování..." + +#: src/slic3r/GUI/Tab.cpp:2905 +msgid "Cannot overwrite a system profile." +msgstr "Nelze přepsat systémový profil." + +#: src/slic3r/GUI/Tab.cpp:2909 +msgid "Cannot overwrite an external profile." +msgstr "Nelze přepsat externí profil." + +#: src/libslic3r/SLAPrint.cpp:612 +msgid "Cannot proceed without support points! Add support points or disable support generation." +msgstr "Nelze pokračovat bez podpěrných bodů! Přidejte podpěrné body nebo zakažte generování podpěr." + +#: src/slic3r/GUI/Tab.cpp:1840 +msgid "Capabilities" +msgstr "Možnosti" + +#: src/slic3r/GUI/GUI_App.cpp:662 +msgid "Capture a configuration snapshot" +msgstr "Vytvořit aktuální zálohu konfigurace" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2159 +msgid "Cascading pillars" +msgstr "Kaskádové sloupy" + +#: src/libslic3r/PrintConfig.cpp:3035 +msgid "Center" +msgstr "Střed" + +#: src/libslic3r/PrintConfig.cpp:3036 +msgid "Center the print around the given center." +msgstr "Vycentrujte tisk kolem daného středu." + +#: src/slic3r/GUI/Tab.cpp:1744 +msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" +msgstr "Soubory s certifikátem (*.crt, *.pem)|*.crt;*.pem|Všechny soubory|*.*" + +#: src/slic3r/GUI/GUI_App.cpp:683 +msgid "Change Application &Language" +msgstr "Změnit jazyk ap&likace" + +#: xs/src/slic3r/GUI/GUI.cpp:354 +msgid "Change Application Language" +msgstr "Změnit jazyk aplikace" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1226 +msgid "Change extruder" +msgstr "Změnit extruder" + +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Change the number of copies of the selected object" +msgstr "Změňte počet kopií vybraného objektu" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1185 +msgid "Change type" +msgstr "Změnit typ" + +#: src/slic3r/GUI/GUI_App.cpp:378 +msgid "Changing of an application language" +msgstr "Změnit jazyk aplikace" + +#: src/slic3r/GUI/ConfigWizard.cpp:409 src/slic3r/GUI/Preferences.cpp:61 +msgid "Check for application updates" +msgstr "Zkontrolovat aktualizace aplikace" + +#: src/slic3r/GUI/BedShapeDialog.cpp:316 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Vyberte soubor pro import tvaru tiskové podložky z (STL/OBJ/AMF/3MF/PRUSA):" + +#: src/slic3r/GUI/MainFrame.cpp:621 +msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Zvolit soubor ke slicování (STL/OBJ/AMF/3MF/PRUSA):" + +#: src/slic3r/GUI/GUI_App.cpp:489 +msgid "Choose one file (3MF):" +msgstr "Vyberte jeden soubor (3MF):" + +#: src/slic3r/GUI/GUI_App.cpp:501 +msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Vyberte jeden nebo více souborů (STL/OBJ/AMF/3MF/PRUSA):" + +#: src/slic3r/GUI/ConfigWizard.cpp:490 +msgid "Choose the type of firmware used by your printer." +msgstr "Vyberte typ firmware používaný vaší tiskárnou." + +#: src/slic3r/GUI/BedShapeDialog.cpp:84 +msgid "Circular" +msgstr "Kruhový" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2156 +msgid "Classification" +msgstr "Klasifikace" + +#: src/slic3r/GUI/Plater.cpp:292 +msgid "Click to edit preset" +msgstr "Klikněte pro editaci přednastavení" + +#: src/libslic3r/PrintConfig.cpp:216 +msgid "Clip multi-part objects" +msgstr "Připnutí objektů z více částí k sobě" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:926 +msgid "Clipping of view:" +msgstr "Řezová rovina:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:814 +#: src/slic3r/GUI/PrintHostDialogs.cpp:160 +msgid "Close" +msgstr "Zavřít" + +#: src/libslic3r/PrintConfig.cpp:550 +msgid "Color" +msgstr "Barva" + +#: src/slic3r/GUI/GUI_Preview.cpp:218 src/slic3r/GUI/GUI_Preview.cpp:535 +#: src/libslic3r/GCode/PreviewData.cpp:406 +msgid "Color Print" +msgstr "Color Print" + +#: src/libslic3r/PrintConfig.cpp:224 +msgid "Colorprint height" +msgstr "Výška barevného tisku" + +#: src/libslic3r/PrintConfig.cpp:942 +msgid "Combine infill every" +msgstr "Kombinovat výplň každou" + +#: src/libslic3r/PrintConfig.cpp:947 +msgid "Combine infill every n layers" +msgstr "Kombinovat výplň každou n vrstvu" + +#: src/slic3r/GUI/Tab.cpp:56 src/libslic3r/PrintConfig.cpp:244 +msgid "Compatible print profiles" +msgstr "Kompatibilní tiskové profily" + +#: src/libslic3r/PrintConfig.cpp:250 +msgid "Compatible print profiles condition" +msgstr "Stav kompatibilních tiskových profilů" + +#: src/slic3r/GUI/Tab.cpp:50 src/libslic3r/PrintConfig.cpp:229 +msgid "Compatible printers" +msgstr "Kompatibilní tiskárny" + +#: src/libslic3r/PrintConfig.cpp:235 +msgid "Compatible printers condition" +msgstr "Stav kompatibilních tiskáren" + +#: src/libslic3r/PrintConfig.cpp:268 +msgid "Complete individual objects" +msgstr "Dokončení individuálních objektů" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:233 +msgid "Completed" +msgstr "Dokončeno" + +#: src/libslic3r/Zipper.cpp:57 +msgid "compression failed" +msgstr "komprese se nezdařila" + +#: src/libslic3r/PrintConfig.cpp:399 src/libslic3r/PrintConfig.cpp:802 +msgid "Concentric" +msgstr "Koncentrická" + +#: src/slic3r/GUI/ConfigWizard.cpp:1185 +msgid "Configuration &Assistant" +msgstr "Průvodce n&astavením" + +#: src/slic3r/GUI/ConfigWizard.cpp:1182 +msgid "Configuration &Wizard" +msgstr "Průvodce nastavením" + +#: src/slic3r/GUI/ConfigWizard.cpp:1184 +msgid "Configuration Assistant" +msgstr "Průvodce nastavení tiskárny" + +#: src/libslic3r/PrintConfig.cpp:1251 +msgid "Configuration notes" +msgstr "Konfigurační poznámky" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:99 +msgid "Configuration Snapshots" +msgstr "Záloha konfigurace" + +#: src/slic3r/GUI/UpdateDialogs.cpp:73 src/slic3r/GUI/UpdateDialogs.cpp:168 +msgid "Configuration update" +msgstr "Aktualizace nastavení" + +#: src/slic3r/GUI/UpdateDialogs.cpp:73 +msgid "Configuration update is available" +msgstr "Je k dispozici aktualizace nastavení" + +#: src/slic3r/GUI/ConfigWizard.cpp:1181 +msgid "Configuration Wizard" +msgstr "Průvodce nastavením" + +#: src/slic3r/GUI/FirmwareDialog.cpp:863 +msgid "Confirmation" +msgstr "Potvrzení" + +#: src/slic3r/GUI/Tab.cpp:1904 +msgid "Connection failed." +msgstr "Připojení selhalo." + +#: src/slic3r/GUI/Tab.cpp:3416 +msgid "Connection of the support sticks and junctions" +msgstr "Spojení podpůrných tyčí a spojek" + +#: src/slic3r/Utils/Duet.cpp:51 +msgid "Connection to Duet works correctly." +msgstr "Připojení k Duet funguje správně." + +#: src/slic3r/Utils/OctoPrint.cpp:84 +msgid "Connection to OctoPrint works correctly." +msgstr "Připojení k OctoPrint pracuje správně." + +#: src/slic3r/GUI/Tab.cpp:1901 +msgid "Connection to printer works correctly." +msgstr "Připojení k tiskárně pracuje správně." + +#: src/slic3r/Utils/OctoPrint.cpp:195 +msgid "Connection to Prusa SLA works correctly." +msgstr "Připojení k tiskárně Prusa SLA pracuje správně." + +#: src/libslic3r/PrintConfig.cpp:1823 +msgid "Contact Z distance" +msgstr "Mezera mezi podpěrami a objektem v ose Z" + +#: lib/Slic3r/GUI/MainFrame.pm:137 +msgid "Controller" +msgstr "Ovladač" + +#: src/libslic3r/PrintConfig.cpp:2408 +msgid "Controls the bridge type between two neigboring 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 "Řídí typ mostu mezi dvěma sousedními sloupky. Může být zig-zag, cross (double zig-zag) nebo dynamic. Typ automaticky přepíná mezi prvními dvěma v závislosti na vzdálenosti dvou sloupků." + +#: src/slic3r/GUI/Tab.cpp:1489 +msgid "Cooling" +msgstr "Chlazení" + +#: src/libslic3r/PrintConfig.cpp:628 +msgid "Cooling moves are gradually accelerating beginning at this speed. " +msgstr "Chladicí pohyby se postupně zrychlují a začínají touto rychlostí." + +#: src/libslic3r/PrintConfig.cpp:647 +msgid "Cooling moves are gradually accelerating towards this speed. " +msgstr "Chladící pohyby se postupně zrychlují až k této rychlosti." + +#: src/slic3r/GUI/Tab.cpp:1510 +msgid "Cooling thresholds" +msgstr "Podmínky chlazení" + +#: src/libslic3r/PrintConfig.cpp:291 +msgid "Cooling tube length" +msgstr "Délka chladící trubičky" + +#: src/libslic3r/PrintConfig.cpp:283 +msgid "Cooling tube position" +msgstr "Pozice chladící trubičky" + +#: lib/Slic3r/GUI/Plater.pm:304 lib/Slic3r/GUI/Plater.pm:992 +msgid "Copies" +msgstr "Kopií" + +#: src/slic3r/GUI/Tab.cpp:2878 +msgid "Copy" +msgstr "Kopírovat" + +#: src/slic3r/GUI/MainFrame.cpp:454 +msgid "Copy selection to clipboard" +msgstr "Kopírovat výběr do schránky" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:139 +msgid "Copy to clipboard" +msgstr "Kopírovat do schránky" + +#: src/libslic3r/PrintConfig.cpp:2324 src/libslic3r/PrintConfig.cpp:2325 +msgid "Correction for expansion" +msgstr "Korekce expanze" + +#: src/slic3r/GUI/Tab.cpp:2059 src/slic3r/GUI/Tab.cpp:3310 +msgid "Corrections" +msgstr "Korekce" + +#: src/slic3r/GUI/Plater.cpp:216 src/slic3r/GUI/Plater.cpp:1056 +#: src/libslic3r/PrintConfig.cpp:717 +msgid "Cost" +msgstr "Náklady" + +#: src/slic3r/GUI/Plater.cpp:2140 +msgid "Could not arrange model objects! Some geometries may be invalid." +msgstr "Objekty nelze uspořádat! Některé geometrie mohou být neplatné." + +#: src/slic3r/Utils/Duet.cpp:56 +msgid "Could not connect to Duet" +msgstr "Nelze se připojit k Duet" + +#: src/slic3r/Utils/OctoPrint.cpp:90 +msgid "Could not connect to OctoPrint" +msgstr "Nelze se spojit s OctoPrintem" + +#: src/slic3r/Utils/OctoPrint.cpp:200 +msgid "Could not connect to Prusa SLA" +msgstr "Nelze se připojit k Prusa SLA" + +#: src/slic3r/GUI/Tab.cpp:1710 +msgid "Could not get a valid Printer Host reference" +msgstr "Nelze získat platný odkaz na tiskový server" + +#: src/slic3r/Utils/Duet.cpp:151 +msgid "Could not get resources to create a new connection" +msgstr "Nelze získat prostředky pro vytvoření nového spojení" + +#: src/libslic3r/PrintConfig.cpp:1872 +msgid "Cover the top contact layer of the supports with loops. Disabled by default." +msgstr "Zakrýt smyčkami horní kontaktní vrstvu podpěr. Ve výchozím nastavení zakázáno." + +#: src/libslic3r/PrintConfig.cpp:73 +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 "Praskliny menší než 2x poloměr uzavření mezery se vyplní během slicování trojúhelníkových sítí. Operace uzavírání mezery může snížit konečné rozlišení tisku, proto je vhodné udržovat rozumně nízkou hodnotu." + +#: src/libslic3r/Zipper.cpp:61 +msgid "CRC-32 check failed" +msgstr "CRC-32 kontrola selhala" + +#: src/libslic3r/PrintConfig.cpp:2460 +msgid "Critical angle" +msgstr "Kritický úhel" + +#: src/libslic3r/PrintConfig.cpp:2417 +msgid "Cross" +msgstr "Cross" + +#: src/libslic3r/PrintConfig.cpp:800 +msgid "Cubic" +msgstr "Kubická" + +#: src/slic3r/GUI/wxExtensions.cpp:2413 +#, possible-c-format +msgid "Current mode is %s" +msgstr "Aktuální režim je %s" + +#: src/slic3r/GUI/Tab.cpp:909 +msgid "Current preset is inherited from " +msgstr "Aktuální nastavení je zděděno od " + +#: src/slic3r/GUI/UpdateDialogs.cpp:45 +msgid "Current version:" +msgstr "Aktuální verze:" + +#: src/slic3r/GUI/BedShapeDialog.cpp:93 src/slic3r/GUI/GUI_Preview.cpp:239 +#: src/libslic3r/GCode/PreviewData.cpp:175 +msgid "Custom" +msgstr "Vlastní" + +#: src/libslic3r/PrintConfig.cpp:96 +msgid "Custom CA certificate file can be specified for HTTPS OctoPrint connections, in crt/pem format. If left blank, the default OS CA certificate repository is used." +msgstr "Pro HTTPS připojení OctoPrintu lze zadat vlastní CA certifikát ve formátu crt/pem. Pokud zůstane pole prázdné, použije se výchozí úložiště certifikátů OS CA." + +#: src/slic3r/GUI/Tab.cpp:1563 src/slic3r/GUI/Tab.cpp:1948 +msgid "Custom G-code" +msgstr "Vlastní G-code" + +#: src/slic3r/GUI/ConfigWizard.cpp:373 +msgid "Custom Printer" +msgstr "Vlastní tiskárna" + +#: src/slic3r/GUI/ConfigWizard.cpp:373 +msgid "Custom Printer Setup" +msgstr "Vlastní nastavení tiskárny" + +#: src/slic3r/GUI/ConfigWizard.cpp:377 +msgid "Custom profile name:" +msgstr "Vlastní název profilu:" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:254 +msgid "Custom setup" +msgstr "Vlastní nastavení" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3013 +msgid "Cut" +msgstr "Řezat" + +#: src/libslic3r/PrintConfig.cpp:3014 +msgid "Cut model at the given Z." +msgstr "Rozříznout model v dané výšce Z." + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" +msgstr "Řezat objekt:" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +msgid "Cut [C]" +msgstr "Řezat [C]" + +#: lib/Slic3r/GUI/Plater.pm:262 lib/Slic3r/GUI/Plater.pm:278 +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Cut…" +msgstr "Řezat…" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1055 +msgid "Cylinder" +msgstr "Válec" + +#: src/libslic3r/PrintConfig.cpp:3115 +msgid "Data directory" +msgstr "Složka Data" + +#: src/libslic3r/Zipper.cpp:55 +msgid "decompression failed or archive is corrupted" +msgstr "dekomprese selhala nebo je archiv poškozen" + +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Decrease copies" +msgstr "Odebrat kopie" + +#: src/slic3r/GUI/GUI_App.cpp:594 src/slic3r/GUI/GUI_ObjectList.cpp:1245 +#: src/libslic3r/PrintConfig.cpp:299 +msgid "Default" +msgstr "Výchozí" + +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid "Default " +msgstr "Výchozí " + +#: xs/src/slic3r/GUI/Field.cpp:98 +msgid "default" +msgstr "výchozí" + +#: src/libslic3r/PrintConfig.cpp:730 +msgid "Default base angle for infill orientation. Cross-hatching will be applied to this. Bridges will be infilled using the best direction Slic3r can detect, so this setting does not affect them." +msgstr "Výchozí úhel pro orientaci výplně. Bude pro něj použito křížové šrafování. Mosty budou vyplněny nejlepším směrem, který Slic3r dokáže rozpoznat, takže toto nastavení je neovlivní." + +#: src/libslic3r/PrintConfig.cpp:522 +msgid "Default extrusion width" +msgstr "Výchozí šířka extruze" + +#: src/slic3r/GUI/Tab.cpp:937 +msgid "default filament profile" +msgstr "výchozí profil filamentu" + +#: src/libslic3r/PrintConfig.cpp:309 +msgid "Default filament profile" +msgstr "Výchozí profil filamentu" + +#: src/libslic3r/PrintConfig.cpp:310 +msgid "Default filament profile associated with the current printer profile. On selection of the current printer profile, this filament profile will be activated." +msgstr "Výchozí materiálový profil spojený se současným profilem tiskárny. Při výběru současného profilu tiskárny se aktivuje tento materiálový profil." + +#: src/slic3r/GUI/Tab.cpp:2757 +#, possible-c-format +msgid "Default preset (%s)" +msgstr "Výchozí přednastavení (%s)" + +#: xs/src/slic3r/GUI/Tab.cpp:2410 xs/src/slic3r/GUI/Tab.cpp:2496 +msgid "Default presets" +msgstr "Výchozí přednastavení" + +#: src/libslic3r/GCode/PreviewData.cpp:491 +msgid "Default print color" +msgstr "Výchozí barva tisku" + +#: src/slic3r/GUI/Tab.cpp:934 +msgid "default print profile" +msgstr "výchozí tiskový profil" + +#: src/libslic3r/PrintConfig.cpp:316 +msgid "Default print profile" +msgstr "Výchozí tiskový profil" + +#: src/libslic3r/PrintConfig.cpp:317 src/libslic3r/PrintConfig.cpp:2341 +#: src/libslic3r/PrintConfig.cpp:2352 +msgid "Default print profile associated with the current printer profile. On selection of the current printer profile, this print profile will be activated." +msgstr "Výchozí tiskový profil spojený se současným profilem tiskárny. Při výběru současného profilu tiskárny se aktivuje tento tiskový profil." + +#: src/slic3r/GUI/Tab.cpp:951 +msgid "default SLA material profile" +msgstr "výchozí profil pro SLA materiál" + +#: src/libslic3r/PrintConfig.cpp:2340 src/libslic3r/PrintConfig.cpp:2351 +msgid "Default SLA material profile" +msgstr "Výchozí profil pro SLA materiál" + +#: src/slic3r/GUI/Tab.cpp:955 +msgid "default SLA print profile" +msgstr "výchozí SLA tiskový profil" + +#: src/slic3r/GUI/Field.cpp:105 +msgid "default value" +msgstr "výchozí hodnota" + +#: src/slic3r/GUI/ConfigWizard.cpp:375 +msgid "Define a custom printer profile" +msgstr "Vytvořit vlastní tiskový profil" + +#: src/libslic3r/PrintConfig.cpp:2529 +msgid "Defines the cavity depth. Set to zero to disable the cavity." +msgstr "Definuje hloubku dutiny. Chcete-li dutinu vypnout, nastavte ji na nulu." + +#: src/libslic3r/PrintConfig.cpp:2533 +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 effect inside the cavity, which makes pealing the print off the vat foil difficult." +msgstr "Definuje hloubku dutiny. Chcete-li dutinu vypnout, nastavte ji na nulu. Při povolování této funkce buďte opatrní, protože některé pryskyřice mohou způsobit extrémní sací efekt uvnitř dutiny, což ztěžuje odlupování tisku z fólie ve vaničce." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:237 +msgid "degenerate facets" +msgstr "Degenerace facetů" + +#: src/libslic3r/PrintConfig.cpp:2572 +msgid "degrees" +msgstr "stupňů" + +#: src/libslic3r/PrintConfig.cpp:608 +msgid "Delay after unloading" +msgstr "Zpoždění po vyjmutí" + +#: src/slic3r/GUI/Tab.cpp:2935 +msgid "delete" +msgstr "smazat" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1257 src/slic3r/GUI/Plater.cpp:2891 +#: src/slic3r/GUI/Plater.cpp:2909 src/slic3r/GUI/Tab.cpp:2937 +msgid "Delete" +msgstr "Smazat" + +#: src/slic3r/GUI/MainFrame.cpp:449 +msgid "Delete &all" +msgstr "Sm&azat vše" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:138 +msgid "Delete All" +msgstr "Smazat Vše" + +#: src/slic3r/GUI/Plater.cpp:3298 +msgid "Delete all" +msgstr "Smazat vše" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:187 +msgid "Delete color change marker for current layer" +msgstr "Odebrat značku změny barvy pro aktuální vrstvu" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:137 +msgid "Delete selected" +msgstr "Smazat vybrané" + +#: src/slic3r/GUI/Tab.cpp:131 +msgid "Delete this preset" +msgstr "Smazat přednastavení" + +#: src/slic3r/GUI/MainFrame.cpp:449 +msgid "Deletes all objects" +msgstr "Smazat všechny objekty" + +#: src/slic3r/GUI/MainFrame.cpp:447 +msgid "Deletes the current selection" +msgstr "Smaže aktuální výběr" + +#: src/libslic3r/PrintConfig.cpp:685 +msgid "Density" +msgstr "Hustota" + +#: src/libslic3r/PrintConfig.cpp:744 +msgid "Density of internal infill, expressed in the range 0% - 100%." +msgstr "Hustota vnitřní výplně, vyjádřená v rozmezí 0% až 100%." + +#: src/slic3r/GUI/Tab.cpp:1200 src/slic3r/GUI/Tab.cpp:1584 +#: src/slic3r/GUI/Tab.cpp:1992 src/slic3r/GUI/Tab.cpp:2086 +#: src/slic3r/GUI/Tab.cpp:3336 src/slic3r/GUI/Tab.cpp:3445 +msgid "Dependencies" +msgstr "Závislosti" + +#: src/libslic3r/PrintConfig.cpp:1542 src/libslic3r/PrintConfig.cpp:1543 +msgid "Deretraction Speed" +msgstr "Rychlost deretrakce" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1235 +msgid "Deselect by rectangle" +msgstr "Odznačit obdélníkovým výběrem myši" + +#: src/libslic3r/PrintConfig.cpp:1833 +msgid "detachable" +msgstr "oddělitelný" + +#: src/libslic3r/PrintConfig.cpp:1304 +msgid "Detect bridging perimeters" +msgstr "Detekovat perimetry přemostění" + +#: src/libslic3r/PrintConfig.cpp:1988 +msgid "Detect single-width walls (parts where two extrusions don't fit and we need to collapse them into a single trace)." +msgstr "Detekuje stěny o tloušťce jedné čáry (části, kam se dvě čáry nemohou vejít a je potřeba sloučit je do čáry jedné)." + +#: src/libslic3r/PrintConfig.cpp:1986 +msgid "Detect thin walls" +msgstr "Detekovat tenké zdi" + +#: src/libslic3r/PrintConfig.cpp:3083 +msgid "Detect unconnected parts in the given model(s) and split them into separate objects." +msgstr "Rozpoznat nepřipojené části daného modelu(ů) a rozdělit je do samostatných objektů." + +#: src/slic3r/GUI/Plater.cpp:1713 +msgid "Detected advanced data" +msgstr "Byla detekována data z pokročilého režimu" + +#: src/slic3r/GUI/GLCanvas3D.cpp:723 +msgid "Detected object outside print volume\nResolve a clash to continue slicing/export process correctly" +msgstr "Detekován objekt mimo tiskový prostor\nVyřešte konflikt, abyste mohli správně pokračovat v procesu slicování/exportu" + +#: src/slic3r/GUI/GLCanvas3D.cpp:719 +msgid "Detected object outside print volume" +msgstr "Detekován objekt mimo tiskový prostor." + +#: src/slic3r/GUI/GLCanvas3D.cpp:720 +msgid "Detected toolpath outside print volume" +msgstr "Byla detekována cesta mimo tiskový objem" + +#: src/slic3r/GUI/BedShapeDialog.cpp:88 src/libslic3r/PrintConfig.cpp:677 +msgid "Diameter" +msgstr "Průměr" + +#: src/libslic3r/PrintConfig.cpp:2443 +msgid "Diameter in mm of the pillar base" +msgstr "Průměr základny podpěr v mm" + +#: src/libslic3r/PrintConfig.cpp:2399 +msgid "Diameter in mm of the support pillars" +msgstr "Průměr podpěrných sloupů v mm" + +#: src/libslic3r/PrintConfig.cpp:2371 +msgid "Diameter of the pointing side of the head" +msgstr "Průměr konce podpůrného hrotu" + +#: src/slic3r/GUI/BedShapeDialog.cpp:89 +msgid "Diameter of the print bed. It is assumed that origin (0,0) is located in the center." +msgstr "Průměr tiskové podložky. Přepokládaný počátek (0,0) je umístěn uprostřed." + +#: src/libslic3r/PrintConfig.cpp:1569 +msgid "Direction" +msgstr "Směr" + +#: xs/src/slic3r/GUI/Preferences.cpp:76 +msgid "Disable communication with the printer over a serial / USB cable. This simplifies the user interface in case the printer is never attached to the computer." +msgstr "Zakázat komunikaci s tiskárnou přes sériový / USB kabel. To zjednodušuje uživatelské rozhraní v případě, že tiskárna není nikdy připojena k počítači." + +#: src/libslic3r/PrintConfig.cpp:323 +msgid "Disable fan for the first" +msgstr "Vypnutí chlazení pro prvních" + +#: xs/src/slic3r/GUI/Preferences.cpp:74 +msgid "Disable USB/serial connection" +msgstr "Vypnout USB/sériové připojení" + +#: src/libslic3r/PrintConfig.cpp:1280 +msgid "Disables retraction when the travel path does not exceed the upper layer's perimeters (and thus any ooze will be probably invisible)." +msgstr "Vypne retrakce, pokud dráha nepřekročí perimetr vrchní vrstvy (a proto bude pravděpodobně jakékoliv odkapávání neviditelné)." + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:869 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1241 +msgid "Discard changes" +msgstr "Zahodit změny" + +#: src/slic3r/GUI/Tab.cpp:2784 +msgid "Discard changes and continue anyway?" +msgstr "Zahodit změny a pokračovat?" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:177 +msgid "Displacement (mm)" +msgstr "Posunutí (mm)" + +#: src/slic3r/GUI/Tab.cpp:2041 +msgid "Display" +msgstr "Displej" + +#: src/libslic3r/PrintConfig.cpp:2208 +msgid "Display height" +msgstr "Výška displeje" + +#: src/libslic3r/PrintConfig.cpp:2227 +msgid "Display orientation" +msgstr "Orientace displeje" + +#: src/slic3r/GUI/MainFrame.cpp:510 +msgid "Display the Print Host Upload Queue window" +msgstr "Zobrazit okno s frontou nahrávání do tiskového serveru." + +#: src/libslic3r/PrintConfig.cpp:2202 +msgid "Display width" +msgstr "Šířka displeje" + +#: src/libslic3r/PrintConfig.cpp:341 +msgid "Distance between copies" +msgstr "Vzdálenost mezi kopiemi" + +#: src/libslic3r/PrintConfig.cpp:1610 +msgid "Distance between skirt and object(s). Set this to zero to attach the skirt to the object(s) and get a brim for better adhesion." +msgstr "Vzdálenost mezi obrysem a objektem (objekty). Nastavte tuto hodnotu na nulu, pro sloučení obrysu s předmětem (předměty) a tvorbu límce pro dosažení lepší přilnavosti." + +#: src/libslic3r/PrintConfig.cpp:1609 +msgid "Distance from object" +msgstr "Vzdálenost od objektu" + +#: src/slic3r/GUI/BedShapeDialog.cpp:80 +msgid "Distance of the 0,0 G-code coordinate from the front left corner of the rectangle." +msgstr "Vzdálenost souřadnice 0,0 G-code od předního levého rohu obdélníku." + +#: src/libslic3r/PrintConfig.cpp:284 +msgid "Distance of the center-point of the cooling tube from the extruder tip " +msgstr "Vzdálenost ze středu chladící trubičky ke špičce extruderu " + +#: src/libslic3r/PrintConfig.cpp:1313 +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 "Vzdálenost špičky extruderu od místa, kde je zaparkován filament při vytažení. Měla by se shodovat s hodnotou ve firmware tiskárny. " + +#: src/libslic3r/PrintConfig.cpp:342 +msgid "Distance used for the auto-arrange feature of the plater." +msgstr "Vzdálenost, použitá pro funkci automatického rozmístění po podložce." + +#: src/libslic3r/PrintConfig.cpp:3097 +msgid "Do not fail if a file supplied to --load does not exist." +msgstr "Nepodaří se, pokud neexistuje soubor dodaný k přepínači --load." + +#: src/libslic3r/PrintConfig.cpp:3041 +msgid "Do not rearrange the given models before merging and keep their original XY coordinates." +msgstr "Nepřeuspořádávejte modely před sloučením a tím ponecháním jejich původních souřadnic v XY." + +#: src/slic3r/GUI/Field.cpp:181 +#, possible-c-format +msgid "Do you mean %d%% instead of %d %s?\nSelect YES if you want to change this value to %d%%, \nor NO if you are sure that %d %s is a correct value." +msgstr "Myslíte %d%% namísto %d %s?\nVyberte ANO, pokud chcete změnit tuto hodnotu na %d%% nebo NE, pokud jste si jisti, že %d %s je správná hodnota." + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1022 +msgid "Do you want to save your manually edited support points ?\n" +msgstr "Chcete uložit ručně upravované podpěrné body?\n" + +#: src/libslic3r/PrintConfig.cpp:3040 +msgid "Don't arrange" +msgstr "Neuspořádávat" + +#: src/slic3r/GUI/UpdateDialogs.cpp:55 +msgid "Don't notify about new releases any more" +msgstr "Neupozorňovat na nové verze" + +#: src/libslic3r/PrintConfig.cpp:333 +msgid "Don't support bridges" +msgstr "Nevytvářet podpěry pod mosty" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2161 +msgid "Done" +msgstr "Dokončeno" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:20 +msgid "Downgrade" +msgstr "Downgrade" + +#: lib/Slic3r/GUI/Plater/2D.pm:132 +msgid "Drag your objects here" +msgstr "Přetáhněte své objekty sem" + +#: src/libslic3r/PrintConfig.cpp:3044 +msgid "Duplicate" +msgstr "Duplikovat" + +#: src/libslic3r/PrintConfig.cpp:3049 +msgid "Duplicate by grid" +msgstr "Duplikovat mřížkou" + +#: src/libslic3r/PrintConfig.cpp:2418 +msgid "Dynamic" +msgstr "Dynamic" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:238 +msgid "edges fixed" +msgstr "hrany opraveny" + +#: src/libslic3r/PrintConfig.cpp:349 +msgid "Elephant foot compensation" +msgstr "Kompenzace rozplácnutí první vrstvy" + +#: src/libslic3r/SLAPrint.cpp:624 +msgid "Elevation is too low for object." +msgstr "Výška od podložky je pro objekt příliš nízká." + +#: src/libslic3r/PrintConfig.cpp:1044 +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. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode." +msgstr "Vkládání M73 P[počet vytištěných procent] R[zbývající čas v minutách] v 1 minutových intervalech do G-codu, aby firmware ukázal přesný zbývající čas. M73 nyní rozpoznává pouze firmware tiskárny Prusa i3 MK3. Firmware i3 MK3 také podporuje M73 Qxx Sxx pro tichý režim." + +#: src/slic3r/GUI/Tab.cpp:1490 src/libslic3r/PrintConfig.cpp:1286 +#: src/libslic3r/PrintConfig.cpp:2099 +msgid "Enable" +msgstr "Zapnout" + +#: src/libslic3r/PrintConfig.cpp:277 +msgid "Enable auto cooling" +msgstr "Zapnutí automatického chlazení" + +#: src/libslic3r/PrintConfig.cpp:539 +msgid "Enable fan if layer print time is below" +msgstr "Zapnout ventilátor, pokud je doba tisku vrstvy kratší než" + +#: src/libslic3r/PrintConfig.cpp:1781 +msgid "Enable support material generation." +msgstr "Zapne generování podpěr." + +#: src/libslic3r/PrintConfig.cpp:918 +msgid "Enable this to add comments into the G-Code labeling print moves with what object they belong to, which is useful for the Octoprint CancelObject plugin. This settings is NOT compatible with Single Extruder Multi Material setup and Wipe into Object / Wipe into Infill." +msgstr "Zapněte tuto možnost, chcete-li do G-Code přidávat komentáře, které budou určovat, příslušnost tiskových pohybů k jednotlivým objektům. To je užitečné pro Octoprint plugin CancelObject. Nastavení NENÍ kompatibilní se Single Extruder Multi Material konfigurací a s čištěním trysky do objektu / výplně." + +#: src/libslic3r/PrintConfig.cpp:881 +msgid "Enable this to get a commented G-code file, with each line explained by a descriptive text. If you print from SD card, the additional weight of the file could make your firmware slow down." +msgstr "Aktivací získáte komentovaný soubor G-code, přičemž každý řádek je doplněn popisným textem. Pokud tisknete z SD karty, dodatečné informace v souboru můžou zpomalit firmware." + +#: src/libslic3r/PrintConfig.cpp:2085 +msgid "Enable variable layer height feature" +msgstr "Zapnout variabilní výšku vrstev" + +#: src/slic3r/GUI/Tab.cpp:1570 src/slic3r/GUI/Tab.cpp:1955 +#: src/libslic3r/PrintConfig.cpp:359 src/libslic3r/PrintConfig.cpp:369 +msgid "End G-code" +msgstr "Konec G-code" + +#: src/libslic3r/PrintConfig.cpp:1838 +msgid "Enforce support for the first" +msgstr "Zesílit podpěry pro prvních" + +#: src/libslic3r/PrintConfig.cpp:1845 +msgid "Enforce support for the first n layers" +msgstr "Vynucení podpěr pro prvních n vrstev" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:197 +#: src/slic3r/GUI/PrintHostDialogs.cpp:228 +msgid "Enqueued" +msgstr "Zařazeno do fronty" + +#: src/libslic3r/PrintConfig.cpp:380 +msgid "Ensure vertical shell thickness" +msgstr "Zajistit tloušťku svislých stěn" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2709 +msgid "Enter new name" +msgstr "Zadejte nový název" + +#: src/slic3r/GUI/ConfigWizard.cpp:622 +msgid "Enter the bed temperature needed for getting your filament to stick to your heated bed." +msgstr "Zadejte požadovanou teplotu filamentu, aby se spojil s vyhřívanou podložkou." + +#: src/slic3r/GUI/ConfigWizard.cpp:570 +msgid "Enter the diameter of your filament." +msgstr "Zadejte průměr vašeho filamentu." + +#: src/slic3r/GUI/ConfigWizard.cpp:557 +msgid "Enter the diameter of your printer's hot end nozzle." +msgstr "Zadejte průměr trysky hotendu vaší tiskárny." + +#: lib/Slic3r/GUI/Plater.pm:1158 +msgid "Enter the new max size for the selected object:" +msgstr "Zvolte nový maximální rozměr pro zvolný objekt:" + +#: lib/Slic3r/GUI/Plater.pm:1132 +#, possible-perl-format +msgid "Enter the new size for the selected object (print bed: %smm):" +msgstr "Zadejte novou velikost vybraného objektu (tisková podložka: %smm):" + +#: lib/Slic3r/GUI/Plater.pm:992 +msgid "Enter the number of copies of the selected object:" +msgstr "Zadejte počet kopií pro vybraný objekt:" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Enter the rotation angle:" +msgstr "Zadejte úhel natočení:" + +#: lib/Slic3r/GUI/Plater.pm:1137 lib/Slic3r/GUI/Plater.pm:1163 +#, no-perl-format +msgid "Enter the scale % for the selected object:" +msgstr "Zadejte rozměr % pro zvolený objekt:" + +#: src/slic3r/GUI/ConfigWizard.cpp:608 +msgid "Enter the temperature needed for extruding your filament." +msgstr "Zadejte požadovanou teplotu pro extruzi vašeho filamentu." + +#: src/libslic3r/PrintConfig.cpp:718 +msgid "Enter your filament cost per kg here. This is only for statistical information." +msgstr "Zde zadejte cenu filamentu za kg. Slouží pouze pro statistické informace." + +#: src/libslic3r/PrintConfig.cpp:686 +msgid "Enter your filament density here. This is only for statistical information. A decent way is to weigh a known length of filament and compute the ratio of the length to volume. Better is to calculate the volume directly through displacement." +msgstr "Zde zadejte hustotu filamentu. Toto je pouze pro statistické informace. Přípustný způsob je zvážit známou délku filamentu a vypočítat poměr délky k objemu. Je lepší vypočítat objem přímo přes posun." + +#: src/libslic3r/PrintConfig.cpp:678 +msgid "Enter your filament diameter here. Good precision is required, so use a caliper and do multiple measurements along the filament, then compute the average." +msgstr "Zde zadejte průměr filamentu. Je zapotřebí správné přesnosti, proto použijte šupleru a proveďte několik měření podél filamentu, poté vypočtete průměr." + +#: src/slic3r/GUI/MainFrame.cpp:636 src/slic3r/GUI/PrintHostDialogs.cpp:230 +msgid "Error" +msgstr "Chyba" + +#: src/slic3r/GUI/FirmwareDialog.cpp:608 +#, possible-c-format +msgid "Error accessing port at %s: %s" +msgstr "Chyba při přístupu k portu na %s : %s" + +#: lib/Slic3r/GUI/Plater.pm:1760 +msgid "Error exporting 3MF file " +msgstr "Chyba při exportu souboru 3MF " + +#: src/slic3r/GUI/Plater.cpp:3593 +#, possible-c-format +msgid "Error exporting 3MF file %s" +msgstr "Chyba při exportu souboru 3MF %s" + +#: lib/Slic3r/GUI/Plater.pm:1744 +msgid "Error exporting AMF file " +msgstr "Chyba při exportu souboru AMF " + +#: src/slic3r/GUI/Plater.cpp:3564 +#, possible-c-format +msgid "Error exporting AMF file %s" +msgstr "Chyba při exportu souboru AMF %s" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:271 +msgid "Error uploading to print host:" +msgstr "Chyba při nahrávání do tiskového serveru:" + +#: xs/src/slic3r/Utils/OctoPrint.cpp:98 +msgid "Error while uploading to the OctoPrint server" +msgstr "Chyba při nahrávání na server OctoPrint" + +#: src/libslic3r/Zipper.cpp:105 +msgid "Error with zip archive" +msgstr "Chyba v zip archivu" + +#: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1431 +msgid "Error! " +msgstr "Chyba! " + +#: src/slic3r/GUI/FirmwareDialog.cpp:610 +#, possible-c-format +msgid "Error: %s" +msgstr "Chyba: %s" + +#: src/slic3r/GUI/Plater.cpp:217 src/slic3r/GUI/Plater.cpp:1028 +#: src/slic3r/GUI/Plater.cpp:1070 +msgid "Estimated printing time" +msgstr "Odhadovaný čas tisku" + +#: lib/Slic3r/GUI/Plater.pm:1618 +msgid "Estimated printing time (normal mode)" +msgstr "Předpokládaná doba tisku (normální režim)" + +#: lib/Slic3r/GUI/Plater.pm:1620 +msgid "Estimated printing time (silent mode)" +msgstr "Předpokládaná doba tisku (tichý režim)" + +#: src/slic3r/GUI/Plater.cpp:424 +msgid "Everywhere" +msgstr "Všude" + +#: src/slic3r/GUI/PresetHints.cpp:46 +#, possible-c-format +msgid "except for the first %d layers" +msgstr "s výjimkou prvních %d vrstev" + +#: src/slic3r/GUI/PresetHints.cpp:50 +msgid "except for the first layer" +msgstr "vyjma první vrstvy" + +#: src/slic3r/GUI/UpdateDialogs.cpp:148 +#, possible-c-format +msgid "Exit %s" +msgstr "Ukončit %s" + +#: src/slic3r/GUI/UpdateDialogs.cpp:144 +msgid "Exit Slic3r" +msgstr "Ukončit Slic3r" + +#: src/libslic3r/PrintConfig.cpp:335 +msgid "Experimental option for preventing support material from being generated under bridged areas." +msgstr "Experimentální nastavení pro zabránění tvorbě podpěr v oblastech po mosty." + +#: src/libslic3r/PrintConfig.cpp:1306 +msgid "Experimental option to adjust flow for overhangs (bridge flow will be used), to apply bridge speed to them and enable fan." +msgstr "Experimentální volba pro nastavení průtoku pro přesahy (použije se průtok jako u mostů), aplikuje se na ně rychlost mostu a spustí se ventilátor." + +#: src/slic3r/GUI/GUI_App.cpp:676 src/slic3r/GUI/wxExtensions.cpp:2461 +msgid "Expert" +msgstr "Expert" + +#: src/slic3r/GUI/GUI_App.cpp:676 +msgid "Expert View Mode" +msgstr "Režim Expert" + +#: src/slic3r/GUI/MainFrame.cpp:602 src/slic3r/GUI/Plater.cpp:3821 +msgid "Export" +msgstr "Exportovat" + +#: src/slic3r/GUI/MainFrame.cpp:373 +msgid "Export &Config" +msgstr "Exportovat Konfigura&ci" + +#: src/slic3r/GUI/MainFrame.cpp:362 src/slic3r/GUI/MainFrame.cpp:602 +msgid "Export &G-code" +msgstr "Exportovat &G-code" + +#: src/libslic3r/PrintConfig.cpp:2949 +msgid "Export 3MF" +msgstr "Exportovat 3MF" + +#: src/slic3r/GUI/MainFrame.cpp:375 +msgid "Export all presets to file" +msgstr "Exportovat všechna přednastavení do souboru" + +#: src/libslic3r/PrintConfig.cpp:2954 +msgid "Export AMF" +msgstr "Exportovat AMF" + +#: src/slic3r/GUI/Plater.cpp:1932 +msgid "Export AMF file:" +msgstr "Exportovat AMF soubor:" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1219 src/slic3r/GUI/Plater.cpp:2927 +msgid "Export as STL" +msgstr "Exportovat jako STL" + +#: lib/Slic3r/GUI/Plater.pm:1416 +msgid "Export cancelled" +msgstr "Export zrušen" + +#: src/slic3r/GUI/MainFrame.cpp:375 +msgid "Export Config &Bundle" +msgstr "Exportovat Konfigurační &Balík" + +#: src/slic3r/GUI/MainFrame.cpp:373 +msgid "Export current configuration to file" +msgstr "Exportovat současnou konfiguraci do souboru" + +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export current plate as 3MF" +msgstr "Exportovat stávající plochu jako 3MF" + +#: src/slic3r/GUI/MainFrame.cpp:370 +msgid "Export current plate as AMF" +msgstr "Exportovat stávající plochu jako AMF" + +#: src/slic3r/GUI/MainFrame.cpp:362 +msgid "Export current plate as G-code" +msgstr "Exportovat stávající plochu do G-code" + +#: src/slic3r/GUI/MainFrame.cpp:366 +msgid "Export current plate as STL" +msgstr "Exportovat stávající plochu jako STL" + +#: src/slic3r/GUI/MainFrame.cpp:368 +msgid "Export current plate as STL including supports" +msgstr "Exportovat stávající plochu včetně podpěr jako STL" + +#: src/slic3r/GUI/Plater.cpp:2722 +msgid "Export failed" +msgstr "Exportování selhalo" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:108 src/slic3r/GUI/Plater.cpp:733 +#: src/slic3r/GUI/Plater.cpp:3821 src/libslic3r/PrintConfig.cpp:2964 +msgid "Export G-code" +msgstr "Exportovat G-code" + +#: lib/Slic3r/GUI/MainFrame.pm:272 +msgid "Export G-code..." +msgstr "Exportovat G-code…" + +#: lib/Slic3r/GUI/Plater.pm:322 +msgid "Export G-code…" +msgstr "Exportovat G-code…" + +#: src/libslic3r/PrintConfig.cpp:2931 +msgid "Export OBJ" +msgstr "Exportovat OBJ" + +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export object as STL…" +msgstr "Exportovat objekt jako STL…" + +#: src/slic3r/Utils/FixModelByWin10.cpp:368 +msgid "Export of a temporary 3mf file failed" +msgstr "Export dočasného 3MF souboru selhalo." + +#: src/slic3r/GUI/MainFrame.cpp:370 +msgid "Export plate as &AMF" +msgstr "Exportovat plochu jako &AMF" + +#: src/slic3r/GUI/MainFrame.cpp:366 +msgid "Export plate as &STL" +msgstr "Exportovat plochu jako &STL" + +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export plate as 3MF..." +msgstr "Exportovat plochu jako 3MF..." + +#: lib/Slic3r/GUI/MainFrame.pm:278 +msgid "Export plate as AMF..." +msgstr "Exportovat plochu jako AMF..." + +#: src/slic3r/GUI/MainFrame.cpp:368 +msgid "Export plate as STL including supports" +msgstr "Exportovat plochu včetně podpěr jako STL soubor" + +#: lib/Slic3r/GUI/MainFrame.pm:275 +msgid "Export plate as STL..." +msgstr "Exportovat plochu jako STL..." + +#: xs/src/slic3r/GUI/GUI.cpp:930 +msgid "Export print config" +msgstr "Exportovat nastavení tisku" + +#: src/libslic3r/PrintConfig.cpp:2943 +msgid "Export SLA" +msgstr "Exportovat SLA" + +#: src/libslic3r/PrintConfig.cpp:2959 +msgid "Export STL" +msgstr "Exportovat STL" + +#: src/slic3r/GUI/Plater.cpp:1925 +msgid "Export STL file:" +msgstr "Exportovat STL soubor:" + +#: lib/Slic3r/GUI/Plater.pm:326 +msgid "Export STL…" +msgstr "Exportovat STL…" + +#: src/libslic3r/PrintConfig.cpp:2924 +msgid "Export SVG" +msgstr "Exportovat SVG" + +#: src/libslic3r/PrintConfig.cpp:2950 +msgid "Export the model(s) as 3MF." +msgstr "Exportovat model(y) jako 3MF." + +#: src/libslic3r/PrintConfig.cpp:2955 +msgid "Export the model(s) as AMF." +msgstr "Exportovat model(y) jako AMF." + +#: src/libslic3r/PrintConfig.cpp:2932 +msgid "Export the model(s) as OBJ." +msgstr "Exportovat model(y) jako OBJ." + +#: src/libslic3r/PrintConfig.cpp:2960 +msgid "Export the model(s) as STL." +msgstr "Exportovat model(y) jako STL." + +#: src/slic3r/GUI/Plater.cpp:2927 +msgid "Export the selected object as STL file" +msgstr "Exportovat vybrané objekty jako STL soubor" + +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export this single object as STL file" +msgstr "Exportovat tento jediný objekt jako STL soubor" + +#: src/libslic3r/Print.cpp:1517 +msgid "Exporting G-code" +msgstr "Exportování souboru G-code" + +#: src/slic3r/Utils/FixModelByWin10.cpp:341 +msgid "Exporting model..." +msgstr "Exportování modelu..." + +#: src/slic3r/Utils/FixModelByWin10.cpp:219 +#: src/slic3r/Utils/FixModelByWin10.cpp:359 +msgid "Exporting source model" +msgstr "Exportování zdrojového modelu" + +#: src/slic3r/GUI/Tab.cpp:3306 +msgid "Exposure" +msgstr "Osvit" + +#: src/libslic3r/PrintConfig.cpp:2310 src/libslic3r/PrintConfig.cpp:2311 +msgid "Exposure time" +msgstr "Doba osvitu" + +#: src/slic3r/GUI/GUI_Preview.cpp:228 src/libslic3r/GCode/PreviewData.cpp:164 +msgid "External perimeter" +msgstr "Vnější perimetr" + +#: src/slic3r/GUI/PresetHints.cpp:153 +msgid "external perimeters" +msgstr "vnější perimetry" + +#: src/libslic3r/PrintConfig.cpp:415 src/libslic3r/PrintConfig.cpp:425 +msgid "External perimeters" +msgstr "Vnější perimetry" + +#: src/libslic3r/PrintConfig.cpp:437 +msgid "External perimeters first" +msgstr "Nejprve tisknout vnější perimetry" + +#: src/libslic3r/PrintConfig.cpp:1518 src/libslic3r/PrintConfig.cpp:1526 +msgid "Extra length on restart" +msgstr "Extra vzdálenost při návratu" + +#: src/libslic3r/PrintConfig.cpp:1321 +msgid "Extra loading distance" +msgstr "Extra délka při zavádění" + +#: src/libslic3r/PrintConfig.cpp:445 +msgid "Extra perimeters if needed" +msgstr "Extra perimetry (pokud jsou potřeba)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:335 src/slic3r/GUI/Tab.cpp:1479 +#: src/libslic3r/PrintConfig.cpp:455 +msgid "Extruder" +msgstr "Extruder" + +#: src/slic3r/GUI/Tab.cpp:2253 src/libslic3r/GCode/PreviewData.cpp:475 +#, possible-c-format +msgid "Extruder %d" +msgstr "Extruder %d" + +#: src/slic3r/GUI/ConfigWizard.cpp:592 +msgid "Extruder and Bed Temperatures" +msgstr "Teploty extruderu a podložky" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:226 +msgid "Extruder changed to" +msgstr "Extruder změněn na" + +#: src/slic3r/GUI/Tab.cpp:1171 +msgid "Extruder clearance (mm)" +msgstr "Kolizní oblast extruderu (mm)" + +#: src/libslic3r/PrintConfig.cpp:490 +msgid "Extruder Color" +msgstr "Barva extruderu" + +#: src/libslic3r/PrintConfig.cpp:497 +msgid "Extruder offset" +msgstr "Odsazení extruderu" + +#: src/libslic3r/PrintConfig.cpp:863 +msgid "Extruder temperature for first layer. If you want to control temperature manually during print, set this to zero to disable temperature control commands in the output file." +msgstr "Teplota extruderu pro první vrstvu. Chcete-li během tisku ručně ovládat teplotu, nastavte tuto hodnotu na nulu, aby se ve výstupním souboru zakázaly příkazy pro řízení teploty." + +#: src/libslic3r/PrintConfig.cpp:1978 +msgid "Extruder temperature for layers after the first one. Set this to zero to disable temperature control commands in the output." +msgstr "Teplota extruderu pro následující vrstvy po vrstvě první. Nastavte tuto hodnotu na nulu, abyste zakázali příkazy pro řízení teploty na výstupu." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:33 src/slic3r/GUI/GUI_ObjectList.cpp:72 +#: src/slic3r/GUI/GUI_ObjectList.cpp:513 src/slic3r/GUI/Tab.cpp:1119 +#: src/slic3r/GUI/Tab.cpp:1844 src/libslic3r/PrintConfig.cpp:456 +#: src/libslic3r/PrintConfig.cpp:954 src/libslic3r/PrintConfig.cpp:1340 +#: src/libslic3r/PrintConfig.cpp:1668 src/libslic3r/PrintConfig.cpp:1852 +#: src/libslic3r/PrintConfig.cpp:1878 src/libslic3r/PrintConfig.cpp:2151 +#: src/libslic3r/PrintConfig.cpp:2159 +msgid "Extruders" +msgstr "Extrudery" + +#: src/libslic3r/PrintConfig.cpp:507 +msgid "Extrusion axis" +msgstr "Osa extruderu" + +#: src/libslic3r/PrintConfig.cpp:513 +msgid "Extrusion multiplier" +msgstr "Násobič extruze" + +#: src/slic3r/GUI/ConfigWizard.cpp:612 +msgid "Extrusion Temperature:" +msgstr "Teplota extruze:" + +#: src/slic3r/GUI/Tab.cpp:1143 +msgid "Extrusion width" +msgstr "Šířka extruze" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:73 src/slic3r/GUI/GUI_ObjectList.cpp:514 +#: src/libslic3r/PrintConfig.cpp:416 src/libslic3r/PrintConfig.cpp:523 +#: src/libslic3r/PrintConfig.cpp:830 src/libslic3r/PrintConfig.cpp:962 +#: src/libslic3r/PrintConfig.cpp:1349 src/libslic3r/PrintConfig.cpp:1688 +#: src/libslic3r/PrintConfig.cpp:1861 src/libslic3r/PrintConfig.cpp:2018 +msgid "Extrusion Width" +msgstr "Šíře extruze" + +#: src/slic3r/GUI/Plater.cpp:139 +msgid "Facets" +msgstr "Facety" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:240 +msgid "facets added" +msgstr "facety přidány" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:239 +msgid "facets removed" +msgstr "facety odebrány" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:241 +msgid "facets reversed" +msgstr "facety otočeny" + +#: src/libslic3r/PrintConfig.cpp:2302 +msgid "Faded layers" +msgstr "Vrstvy počátečního osvitu" + +#: src/libslic3r/Zipper.cpp:47 +msgid "failed finding central directory" +msgstr "selhalo nalezení kořenového adresáře" + +#: src/slic3r/Utils/FixModelByWin10.cpp:235 +msgid "Failed loading the input model." +msgstr "Načtení vstupního modelu se nezdařilo." + +#: src/libslic3r/PrintBase.cpp:65 +msgid "Failed processing of the output_filename_format template." +msgstr "Zpracování šablony output_filename_format selhalo." + +#: src/slic3r/GUI/PresetHints.cpp:38 +msgid "Fan " +msgstr "Ventilátor " + +#: src/slic3r/GUI/Tab.cpp:1501 +msgid "Fan settings" +msgstr "Nastavení ventilátoru" + +#: src/slic3r/GUI/Tab.cpp:1502 +msgid "Fan speed" +msgstr "Rychlost ventilátoru" + +#: src/libslic3r/PrintConfig.cpp:2240 +msgid "Fast" +msgstr "Rychlý" + +#: src/libslic3r/PrintConfig.cpp:2241 +msgid "Fast tilt" +msgstr "Rychlý náklon" + +#: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:537 +#: src/libslic3r/GCode/PreviewData.cpp:394 +msgid "Feature type" +msgstr "Typ" + +#: src/slic3r/GUI/GUI_Preview.cpp:224 src/slic3r/GUI/GUI_Preview.cpp:225 +msgid "Feature types" +msgstr "Typy extruzí" + +#: lib/Slic3r/GUI/Plater.pm:256 +msgid "Fewer" +msgstr "Méně" + +#: src/slic3r/GUI/Plater.cpp:682 src/slic3r/GUI/Tab.cpp:1470 +#: src/slic3r/GUI/Tab.cpp:1471 +msgid "Filament" +msgstr "Filament" + +#: src/slic3r/GUI/Preset.cpp:1275 +msgid "filament" +msgstr "filament" + +#: src/slic3r/GUI/ConfigWizard.cpp:541 +msgid "Filament and Nozzle Diameters" +msgstr "Průměry filamentu a trysky" + +#: src/slic3r/GUI/ConfigWizard.cpp:574 +msgid "Filament Diameter:" +msgstr "Průměr filamentu:" + +#: src/libslic3r/PrintConfig.cpp:619 +msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves " +msgstr "Filament je chlazen pohyby tam a zpět v chladicí trubičce. Zadejte požadovaný počet těchto pohybů" + +#: src/libslic3r/PrintConfig.cpp:654 +msgid "Filament load time" +msgstr "Doba zavádění filamentu" + +#: src/libslic3r/PrintConfig.cpp:556 +msgid "Filament notes" +msgstr "Poznámky k filamentu" + +#: src/libslic3r/PrintConfig.cpp:1312 +msgid "Filament parking position" +msgstr "Parkovací pozice filamentu" + +#: src/slic3r/GUI/Tab.cpp:1516 +msgid "Filament properties" +msgstr "Vlastnosti filamentu" + +#: src/slic3r/GUI/Tab.hpp:335 +msgid "Filament Settings" +msgstr "Nastavení filamentu" + +#: src/libslic3r/PrintConfig.cpp:694 +msgid "Filament type" +msgstr "Typ filamentu" + +#: src/libslic3r/PrintConfig.cpp:669 +msgid "Filament unload time" +msgstr "Doba vysouvání filamentu" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:47 +msgid "filaments" +msgstr "filamenty" + +#: lib/Slic3r/GUI/Plater.pm:1555 +msgid "File added to print queue" +msgstr "Soubor byl přidán do tiskové fronty" + +#: src/libslic3r/Zipper.cpp:75 +msgid "file close failed" +msgstr "zavření souboru selhalo" + +#: src/libslic3r/Zipper.cpp:69 +msgid "file create failed" +msgstr "vytvoření souboru selhalo" + +#: src/slic3r/GUI/MainFrame.cpp:642 +msgid "File Not Found" +msgstr "Soubor nenalezen" + +#: src/libslic3r/Zipper.cpp:89 +msgid "file not found" +msgstr "Soubor nenalezen" + +#: src/libslic3r/Zipper.cpp:67 +msgid "file open failed" +msgstr "otevření souboru selhalo" + +#: src/libslic3r/Zipper.cpp:73 +msgid "file read failed" +msgstr "čtení souboru se nezdařilo" + +#: src/libslic3r/Zipper.cpp:77 +msgid "file seek failed" +msgstr "hledání souboru selhalo" + +#: src/libslic3r/Zipper.cpp:79 +msgid "file stat failed" +msgstr "soubor stat selhal" + +#: src/libslic3r/Zipper.cpp:39 +msgid "file too large" +msgstr "soubor je příliš velký" + +#: src/libslic3r/Zipper.cpp:71 +msgid "file write failed" +msgstr "zápis souboru se nezdařil" + +#: src/libslic3r/PrintConfig.cpp:728 +msgid "Fill angle" +msgstr "Úhel výplně" + +#: src/libslic3r/PrintConfig.cpp:742 +msgid "Fill density" +msgstr "Hustota výplně" + +#: src/libslic3r/PrintConfig.cpp:779 +msgid "Fill pattern" +msgstr "Vzor výplně" + +#: src/libslic3r/PrintConfig.cpp:410 +msgid "Fill pattern for bottom infill. This only affects the bottom external visible layer, and not its adjacent solid shells." +msgstr "Vzor výplně pro spodní vrstvy. Ovlivňuje pouze spodní vnější viditelné vrstvy. Neovlivňuje následné plné vrstvy." + +#: src/libslic3r/PrintConfig.cpp:781 +msgid "Fill pattern for general low-density infill." +msgstr "Vzor výplně pro obecnou výplň s nízkou hustotou." + +#: src/libslic3r/PrintConfig.cpp:390 +msgid "Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells." +msgstr "Nastavte vzor pro horní výplň. Ovlivňuje pouze horní viditelnou vrstvu a ne její sousední plné vrstvy." + +#: xs/src/libslic3r/PrintConfig.cpp:285 +msgid "Fill pattern for top/bottom infill. This only affects the external visible layer, and not its adjacent solid shells." +msgstr "Vzor výplně pro vrchní/spodní vrstvy. Ovlivňuje pouze vnější viditelné vrstvy. Neovlivňuje sousední plné vrstvy." + +#: src/libslic3r/SLA/SLASupportTree.cpp:2154 +msgid "Filtering" +msgstr "Filtrování" + +#: src/slic3r/GUI/BonjourDialog.cpp:225 +msgid "Finished" +msgstr "Dokončeno" + +#: src/slic3r/GUI/ConfigWizard.cpp:486 src/slic3r/GUI/Tab.cpp:1920 +msgid "Firmware" +msgstr "Firmware" + +#: src/slic3r/GUI/FirmwareDialog.cpp:740 +msgid "Firmware flasher" +msgstr "Aktualizace firmware" + +#: src/slic3r/GUI/FirmwareDialog.cpp:765 +msgid "Firmware image:" +msgstr "Soubor s firmware:" + +#: src/slic3r/GUI/Tab.cpp:2431 +msgid "Firmware Retraction" +msgstr "Firmware Retrakce" + +#: src/slic3r/GUI/ConfigWizard.cpp:486 +msgid "Firmware Type" +msgstr "Typ firmware" + +#: src/libslic3r/PrintConfig.cpp:812 src/libslic3r/PrintConfig.cpp:821 +#: src/libslic3r/PrintConfig.cpp:829 src/libslic3r/PrintConfig.cpp:862 +msgid "First layer" +msgstr "První vrstva" + +#: src/libslic3r/PrintConfig.cpp:841 +msgid "First layer height" +msgstr "Výška první vrstvy" + +#: src/libslic3r/Print.cpp:1328 +msgid "First layer height can't be greater than nozzle diameter" +msgstr "Výška první vrstvy nesmí být větší než průměr trysky" + +#: src/libslic3r/PrintConfig.cpp:852 +msgid "First layer speed" +msgstr "Rychlost první vrstvy" + +#: src/slic3r/GUI/PresetHints.cpp:216 +msgid "First layer volumetric" +msgstr "Volumetrická hodnota první vrstvy" + +#: src/libslic3r/Print.cpp:1313 +msgid "first_layer_height" +msgstr "first_layer_height" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix STL through Netfabb" +msgstr "Opravit STL pomocí služby Netfabb" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix the model by sending it to a Netfabb cloud service through Windows 10 API" +msgstr "Opravit model zasláním do cloudové služby Netfabb pomocí Window 10 API" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1210 +msgid "Fix through the Netfabb" +msgstr "Opravit pomocí služby Netfabb" + +#: src/slic3r/GUI/GUI_App.cpp:685 +msgid "Flash printer &firmware" +msgstr "Nahrát &firmware tiskárny" + +#: xs/src/slic3r/GUI/GUI.cpp:356 +msgid "Flash printer firmware" +msgstr "Nahrát firmware tiskárny" + +#: src/slic3r/GUI/FirmwareDialog.cpp:146 +msgid "Flash!" +msgstr "Nahrát!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:275 +msgid "Flashing cancelled." +msgstr "Nahrávání zrušeno." + +#: src/slic3r/GUI/FirmwareDialog.cpp:274 +msgid "Flashing failed. Please see the avrdude log below." +msgstr "Nahrání selhalo. Projděte si prosím avrdude log níže." + +#: src/slic3r/GUI/FirmwareDialog.cpp:192 +msgid "Flashing failed: " +msgstr "Nahrávání selhalo:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:148 +msgid "Flashing in progress. Please do not disconnect the printer!" +msgstr "Probíhá nahrávání firmware. Prosím neodpojujte tiskárnu!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:273 +msgid "Flashing succeeded!" +msgstr "Nahrávání bylo úspěšné!" + +#: src/slic3r/GUI/Tab.cpp:1156 +msgid "Flow" +msgstr "Průtok" + +#: src/slic3r/GUI/UpdateDialogs.cpp:188 +msgid "For more information please visit our wiki page:" +msgstr "Pro více informací prosím navštivte naší wiki stránku:" + +#: src/slic3r/GUI/Tab.cpp:1295 +msgid "For the Wipe Tower to work with the soluble supports, the support layers\nneed to be synchronized with the object layers.\n\nShall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "U čistící věže pokud pracujte s rozpustnými materiály, je třeba\nsynchronizovat vrstvy podpěr s vrstvami objektů.\n\nMám synchronizovat vrstvy podpěr, aby bylo možné zapnout Čistící věž?" + +#: src/libslic3r/Print.cpp:1302 +msgid "For the Wipe Tower to work with the soluble supports, the support layers need to be synchronized with the object layers." +msgstr "U čistící věže pokud pracujte s rozpustnými materiály, je třeba\nsynchronizovat vrstvy podpěr s vrstvami objektů." + +#: src/libslic3r/PrintConfig.cpp:1660 +msgid "Force solid infill for regions having a smaller area than the specified threshold." +msgstr "Vynucení plné výplně pro oblasti, které mají menší plochu, než je stanovená prahová hodnota." + +#: src/libslic3r/PrintConfig.cpp:1023 +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 "Vynucení vytváření pevných skořepin mezi sousedními materiály/objemy. Užitečné pro tisk s více extrudery s průsvitnými materiály nebo ručně rozpustným podpůrným materiálem." + +#: src/slic3r/GUI/WipeTowerDialog.cpp:262 +msgid "From" +msgstr "Předchozí extruder" + +#: src/slic3r/GUI/MainFrame.cpp:525 +msgid "Front" +msgstr "Zepředu" + +#: src/slic3r/GUI/MainFrame.cpp:525 +msgid "Front View" +msgstr "Pohled zepředu" + +#: src/slic3r/GUI/Tab.cpp:2151 +msgid "Full Power" +msgstr "Plný výkon (režim Normal)" + +#: src/slic3r/GUI/MainFrame.cpp:677 +msgid "G-code" +msgstr "G-code" + +#: lib/Slic3r/GUI/Plater.pm:1561 +msgid "G-code file exported to " +msgstr "Soubor G-code byl exportován do " + +#: src/libslic3r/PrintConfig.cpp:888 +msgid "G-code flavor" +msgstr "Druh G-code" + +#: src/libslic3r/PrintConfig.cpp:689 +msgid "g/cm³" +msgstr "g/cm³" + +#: src/slic3r/GUI/GUI_Preview.cpp:234 src/libslic3r/PrintConfig.cpp:870 +#: src/libslic3r/GCode/PreviewData.cpp:170 +msgid "Gap fill" +msgstr "Výplň tenkých stěn" + +#: src/slic3r/GUI/Preferences.cpp:19 src/slic3r/GUI/Tab.cpp:1812 +#: src/slic3r/GUI/Tab.cpp:2013 +msgid "General" +msgstr "Obecné" + +#: src/libslic3r/PrintConfig.cpp:1242 +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 "Nevygenerovat méně, než počet obrysových smyček, potřebných ke spotřebování specifikovaného množství filamentu na spodní vrstvu. U strojů s více extrudery platí toto minimum pro každý extruder." + +#: src/libslic3r/SLA/SLASupportTree.cpp:2155 +msgid "Generate pinheads" +msgstr "Generovat podpůrné hroty" + +#: src/libslic3r/PrintConfig.cpp:1779 +msgid "Generate support material" +msgstr "Generovat podpěry" + +#: src/libslic3r/PrintConfig.cpp:1840 +msgid "Generate support material for the specified number of layers counting from bottom, regardless of whether normal support material is enabled or not and regardless of any angle threshold. This is useful for getting more adhesion of objects having a very thin or poor footprint on the build plate." +msgstr "Vygeneruje podpěry pro zadaný počet vrstev počítaných od spodního okraje, bez ohledu na to, zda jsou povoleny standartní podpěry nebo nikoliv a bez ohledu na jakýkoli prah úhlu. To je užitečné pro získání větší přilnavosti předmětů s velmi tenkou nebo špatnou stopou na tiskové podložce." + +#: src/libslic3r/PrintConfig.cpp:2362 +msgid "Generate supports" +msgstr "Generovat podpěry" + +#: src/libslic3r/PrintConfig.cpp:2364 +msgid "Generate supports for the models" +msgstr "Generovat podpěry modelů" + +#: src/libslic3r/Print.cpp:1492 +msgid "Generating brim" +msgstr "Generování límce" + +#: src/libslic3r/SLAPrint.cpp:58 +msgid "Generating pad" +msgstr "Generování podložky" + +#: src/libslic3r/Print.cpp:1484 +msgid "Generating skirt" +msgstr "Generování obrysových smyček" + +#: src/libslic3r/SLAPrint.cpp:56 src/libslic3r/SLAPrint.cpp:809 +msgid "Generating support points" +msgstr "Generování podpěrných bodů" + +#: src/libslic3r/SLAPrint.cpp:57 +msgid "Generating support tree" +msgstr "Generování podpěr typu strom" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1551 +msgid "Generic" +msgstr "Obecný" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:144 +msgid "Gizmo cut" +msgstr "Gizmo řez" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:141 +msgid "Gizmo move" +msgstr "Gizmo posuv" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:145 +msgid "Gizmo Place face on bed" +msgstr "Gizmo Umístit plochou na podložku" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 +msgid "Gizmo rotate" +msgstr "Gizmo rotace" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:142 +msgid "Gizmo scale" +msgstr "Gizmo měřítko" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 +msgid "Gizmo SLA support points" +msgstr "Gizmo SLA podpěrné body" + +#: src/slic3r/GUI/ConfigWizard.cpp:571 +msgid "Good precision is required, so use a caliper and do multiple measurements along the filament, then compute the average." +msgstr "Je zapotřebí velká přesnost, proto použijte posuvné měřítko (šupleru) a proveďte několik měření po délce filamentu, poté vypočítejte průměr." + +#: src/libslic3r/PrintConfig.cpp:797 +msgid "Grid" +msgstr "Mřížka" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1846 +msgid "Group manipulation" +msgstr "Manipulace se skupinou" + +#: src/libslic3r/PrintConfig.cpp:805 +msgid "Gyroid" +msgstr "Gyroid" + +#: src/slic3r/GUI/Tab.cpp:2775 +msgid "has the following unsaved changes:" +msgstr "má neuložené následující změny:" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:838 +msgid "Head diameter: " +msgstr "Průměr hrotu:" + +#: src/slic3r/GUI/Tab.cpp:3483 +msgid "Head penetration should not be greater than the head width." +msgstr "Průnik podpěry do modelu by neměl být větší než je tloušťka hrotu podpěry." + +#: src/libslic3r/PrintConfig.cpp:822 +msgid "Heated build plate temperature for the first layer. Set this to zero to disable bed temperature control commands in the output." +msgstr "Teplota vyhřívané tiskové podložky pro první vrstvu. Nastavením tuto hodnoty na nulu vypnete příkazy pro řízení teploty ve vrstvě ve výstupu." + +#: src/slic3r/GUI/GUI_Preview.cpp:213 src/libslic3r/PrintConfig.cpp:468 +msgid "Height" +msgstr "Výška" + +#: src/libslic3r/GCode/PreviewData.cpp:396 +msgid "Height (mm)" +msgstr "Výška (mm)" + +#: src/libslic3r/PrintConfig.cpp:1618 +msgid "Height of skirt expressed in layers. Set this to a tall value to use skirt as a shield against drafts." +msgstr "Výška obrysu vyjádřená ve vrstvách. Nastavte tuto hodnotu vysokou, pro použití obrysu jako stínění proti průvanu." + +#: src/libslic3r/PrintConfig.cpp:2209 +msgid "Height of the display" +msgstr "Výška displeje" + +#: src/libslic3r/PrintConfig.cpp:225 +msgid "Heights at which a filament change is to occur. " +msgstr "Výšky, při kterých má dojít ke změně filamentu." + +#: src/slic3r/GUI/ConfigWizard.cpp:300 +#, possible-c-format +msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print." +msgstr "Zdravím, vítejte v %s! Tento %s vám pomůže se základní konfigurací; jen několik nastavení a budete připraveni k tisku." + +#: src/slic3r/GUI/ConfigWizard.cpp:290 +#, possible-c-format +msgid "Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial configuration; just a few settings and you will be ready to print." +msgstr "Zdravím, vítejte ve Slic3r Prusa Edition! Tento %s vám pomůže se základní konfigurací; jen několik nastavení a budete připraveni k tisku." + +#: src/libslic3r/PrintConfig.cpp:2976 +msgid "Help" +msgstr "Nápověda" + +#: src/libslic3r/PrintConfig.cpp:2982 +msgid "Help (FFF options)" +msgstr "Nápověda (pro FFF)" + +#: src/libslic3r/PrintConfig.cpp:2987 +msgid "Help (SLA options)" +msgstr "Nápověda (pro SLA)" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:225 +msgid "Here you can adjust required purging volume (mm³) for any given pair of tools." +msgstr "Zde můžete upravit požadovaný objem čištění (mm³) pro kteroukoliv dvojici extruderů." + +#: src/libslic3r/PrintConfig.cpp:925 +msgid "High extruder current on filament swap" +msgstr "Zvýšený proud do extruderového motoru při výměně filamentu" + +#: src/libslic3r/PrintConfig.cpp:400 src/libslic3r/PrintConfig.cpp:806 +msgid "Hilbert Curve" +msgstr "Hilbertova křivka" + +#: src/slic3r/GUI/Plater.cpp:873 +msgid "Hold Shift to Slice & Export G-code" +msgstr "Stiskni Shift pro Slicování & Export G-codu" + +#: src/libslic3r/PrintConfig.cpp:803 src/libslic3r/PrintConfig.cpp:1924 +msgid "Honeycomb" +msgstr "Plástev" + +#: src/slic3r/GUI/Tab.cpp:1013 +msgid "Horizontal shells" +msgstr "Vodorovné stěny" + +#: src/libslic3r/PrintConfig.cpp:209 +msgid "Horizontal width of the brim that will be printed around each object on the first layer." +msgstr "Šírka límce který bude vytištěn v první vrstvě okolo každého objektu." + +#: src/libslic3r/PrintConfig.cpp:1267 +msgid "Host Type" +msgstr "Typ tiskového serveru" + +#: src/slic3r/GUI/BonjourDialog.cpp:73 +msgid "Hostname" +msgstr "Název serveru" + +#: src/libslic3r/PrintConfig.cpp:81 +msgid "Hostname, IP or URL" +msgstr "Název serveru, IP nebo URL" + +#: src/slic3r/GUI/Tab.cpp:136 +msgid "Hover the cursor over buttons to find more information \nor click this button." +msgstr "Pro více informací přejeďte kurzorem nad tlačítky\nnebo na tlačítko klikněte." + +#: src/libslic3r/PrintConfig.cpp:2380 +msgid "How much the pinhead has to penetrate the model surface" +msgstr "Jak moc hrot podpěry pronikne do povrchu modelu" + +#: src/libslic3r/PrintConfig.cpp:2491 +msgid "How much the supports should lift up the supported object." +msgstr "O jakou vzdálenost mají podpěry zvednout objekt." + +#: src/libslic3r/PrintConfig.cpp:95 +msgid "HTTPS CA File" +msgstr "Soubor HTTPS CA" + +#: src/slic3r/GUI/Tab.cpp:1731 +msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate." +msgstr "Soubor HTTPS CA je volitelný. Je nutný pouze pokud použijte HTTPS certifikát s vlastním podpisem." + +#: src/slic3r/GUI/Tab.cpp:1773 +#, possible-c-format +msgid "HTTPS CA File:\n \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "Soubor HTTPS CA:\nV tomto systému používá %s certifikáty HTTPS ze systému Certificate Store nebo Keychain. Chcete-li použít vlastní soubor CA, importujte soubor CA do Certificate Store / Keychain." + +#: src/slic3r/GUI/Tab.cpp:1725 +msgid "HTTPS CA File:\n\tOn this system, Slic3r uses HTTPS certificates from the system Certificate Store or Keychain.\n\tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "Soubor HTTPS CA:\nV tomto systému používá Slic3r certifikáty HTTPS ze systému Certificate Store nebo Keychain. Chcete-li použít vlastní soubor CA, importujte soubor CA do Certificate Store / Keychain." + +#: src/libslic3r/PrintConfig.cpp:1787 +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 "Pokud je zaškrtnuto, budou podpěry generovány automaticky na základě prahové hodnoty převisu. Pokud není zaškrtnuto, bude podpěra generována pouze v místech, kde je umístěn objekt pro \"Vynucení podpěr\"." + +#: src/slic3r/GUI/ConfigWizard.cpp:413 +#, possible-c-format +msgid "If enabled, %s checks for new application versions online. When a new version becomes available, a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." +msgstr "Pokud je povoleno, kontroluje %s nově dostupné verze. V případě, že je nová verze k dispozici, zobrazí se notifikace při dalším startu programu (nikdy během užívání aplikace). Tento systém slouží pouze pro upozornění uživatele, nedochází k automatické instalaci." + +#: src/slic3r/GUI/ConfigWizard.cpp:423 +#, possible-c-format +msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup." +msgstr "Pokud je povoleno, stáhne %s na pozadí aktualizace vestavěných systémových přednastavení. Tyto aktualizace jsou staženy do dočasného umístění. Pokud je k dispozici nové přednastavení, zobrazí se upozornění při startu programu." + +#: src/libslic3r/PrintConfig.cpp:1774 +msgid "If enabled, all printing extruders will be primed at the front edge of the print bed at the start of the print." +msgstr "Pokud je tato možnost povolena, všechny tiskové extrudery na začátku tisku vytlačí na předním okraji podložky malé množství materiálu." + +#: src/slic3r/GUI/Preferences.cpp:63 +msgid "If enabled, Slic3r checks for new versions of " +msgstr "Pokud je povoleno, Slic3r kontroluje dostupnost nové verze" + +#: src/slic3r/GUI/ConfigWizard.cpp:401 src/slic3r/GUI/Preferences.cpp:61 +msgid "If enabled, Slic3r checks for new versions of Slic3r PE online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." +msgstr "Pokud je povoleno, kontroluje Slic3r nově dostupné verze Slic3r PE. V případě, že je nová verze k dispozici, zobrazí se notifikace při dalším startu programu (nikdy během užívání aplikace). Tento systém slouží pouze pro upozornění uživatele, nedochází k automatické instalaci." + +#: src/slic3r/GUI/Preferences.cpp:71 +msgid "If enabled, Slic3r downloads updates of built-in system presets in the background. These updates are downloaded into a separate temporary location. When a new preset version becomes available it is offered at application startup." +msgstr "Pokud je povoleno, stáhne Slic3r na pozadí aktualizace vestavěných systémových přednastavení. Tyto aktualizace jsou staženy do dočasného umístění. Pokud je k dispozici nové přednastavení, zobrazí se upozornění při startu programu." + +#: src/slic3r/GUI/Preferences.cpp:105 +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 "Pokud je tato volba povolena, bude 3D scéna vykreslena v rozlišení Retina. Pokud dochází k potížím s výkonem, zkuste tuto volbu vypnout." + +#: src/slic3r/GUI/PresetHints.cpp:28 +#, possible-c-format +msgid "If estimated layer time is below ~%ds, fan will run at %d%% and print speed will be reduced so that no less than %ds are spent on that layer (however, speed will never be reduced below %dmm/s)." +msgstr "Pokud je odhadovaný čas vrstvy nižší než ~% ds, bude ventilátor pracovat na %d%% a rychlost tisku bude snížena tak, aby na tuto vrstvu nebylo použito méně než %ds (rychlost však nikdy nebude snížena pod %dmm/s)." + +#: src/libslic3r/PrintConfig.cpp:853 +msgid "If expressed as absolute value in mm/s, this speed will be applied to all the print moves of the first layer, regardless of their type. If expressed as a percentage (for example: 40%) it will scale the default speeds." +msgstr "Pokud je vyjádřena jako absolutní hodnota v mm / s, bude tato rychlost použita pro všechny pohyby tisku první vrstvy bez ohledu na jejich typ. Pokud je hodnota vyjádřena procenty (například: 40%), změní v závislosti na výchozích rychlostech." + +#: src/libslic3r/PrintConfig.cpp:540 +msgid "If layer print time is estimated below this number of seconds, fan will be enabled and its speed will be calculated by interpolating the minimum and maximum speeds." +msgstr "Pokud je doba tisku vrstvy odhadnuta jako kratší než tato nastavená hodnota ve vteřinách, ventilátor bude aktivován a jeho rychlost bude vypočtena interpolací minimální a maximální rychlosti." + +#: src/libslic3r/PrintConfig.cpp:1636 +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 "Pokud je doba tisku vrstvy odhadnuta kratší než tento počet sekund, rychlost tisku se zpomalí, aby se prodloužila doba tisku této vrstvy." + +#: src/libslic3r/PrintConfig.cpp:534 +msgid "If this is enabled, fan will never be disabled and will be kept running at least at its minimum speed. Useful for PLA, harmful for ABS." +msgstr "Pokud je tato funkce zapnutá, ventilátor nebude nikdy vypnut a bude udržován v chodu alespoň rychlostí která je nastavena jako minimální rychlost. Užitečné pro PLA, škodlivé pro ABS." + +#: src/slic3r/GUI/Preferences.cpp:46 +msgid "If this is enabled, Slic3r will auto-center objects around the print bed center." +msgstr "Pokud je tato možnost povolena, Slic3r bude automaticky centrovat objekty kolem středu tiskové plochy." + +#: src/slic3r/GUI/Preferences.cpp:54 +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 "Pokud je tato možnost povolena, Slic3r předprojektuje objekty, jakmile budou načteny, aby šetřil čas při exportu G-code." + +#: src/slic3r/GUI/Preferences.cpp:38 +msgid "If this is enabled, Slic3r will prompt the last output directory instead of the one containing the input files." +msgstr "Pokud je tato volba povolena, Slic3r vyvolá poslední výstupní adresář namísto toho, který obsahuje vstupní soubory." + +#: src/slic3r/GUI/Preferences.cpp:95 +msgid "If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may try to check this checkbox. This will disable the layer height editing and anti aliasing, so it is likely better to upgrade your graphics driver." +msgstr "Pokud máte problémy s vykreslováním způsobené chybným ovladačem OpenGL 2.0, můžete se pokusit zaškrtnout toto políčko. Tím se vypnou úpravy výšky hladiny a vyhlazení, takže je lepší upgradovat grafický ovladač." + +#: src/libslic3r/PrintConfig.cpp:1492 +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 "Zadáním kladné hodnoty, se Z rychle přizvedne při každém vyvolání retrakce. Při použití více extruderů bude použito pouze nastavení pro první extruder." + +#: src/libslic3r/PrintConfig.cpp:1501 +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 "Zadáním kladné hodnoty se zdvih Z uskuteční pouze nad zadanou absolutní hodnotou Z. Toto nastavení můžete zvolit pro přeskočení přizvednutí u prvních vrstev." + +#: src/libslic3r/PrintConfig.cpp:1510 +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 "Zadáním kladné hodnoty se zdvih Z uskuteční pouze pod zadanou absolutní hodnotou Z. Toto nastavení můžete zvolit pro přeskočení přizvednutí u prvních vrstev." + +#: src/libslic3r/PrintConfig.cpp:1384 +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. Scripts will be passed the absolute path to the G-code file as the first argument, and they can access the Slic3r config settings by reading environment variables." +msgstr "Pokud chcete zpracovat výstupní G-code pomocí vlastních skriptů, stačí zde uvést jejich absolutní cesty. Oddělte více skriptů středníkem. Skripty předají absolutní cestu k souboru G-code jako první argument a mohou přistupovat k nastavení konfigurace Slic3ru čtením proměnných prostředí." + +#: src/libslic3r/PrintConfig.cpp:498 +msgid "If your firmware doesn't handle the extruder displacement you need the G-code to take it into account. This option lets you specify the displacement of each extruder with respect to the first one. It expects positive coordinates (they will be subtracted from the XY coordinate)." +msgstr "Pokud firmware nezpracovává umístění extruderu správně, potřebujete aby to vzal G-code v úvahu. Toto nastavení umožňuje určit odsazení každého extruderu vzhledem k prvnímu. Očekávají se pozitivní souřadnice (budou odečteny od souřadnice XY)." + +#: src/libslic3r/PrintConfig.cpp:2068 +msgid "If your firmware requires relative E values, check this, otherwise leave it unchecked. Most firmwares use absolute values." +msgstr "Pokud váš firmware vyžaduje relativní hodnoty E, zaškrtněte toto, jinak nechte nezaškrtnuté. Většina firmwarů používá absolutní hodnoty." + +#: src/libslic3r/PrintConfig.cpp:3096 +msgid "Ignore non-existent config files" +msgstr "Ignorovat neexistující konfigurační soubory" + +#: src/slic3r/GUI/MainFrame.cpp:352 +msgid "Import &Config" +msgstr "Importovat Konfigura&ci" + +#: src/slic3r/GUI/MainFrame.cpp:357 +msgid "Import Config &Bundle" +msgstr "Importovat Konfigurační &Balík" + +#: src/slic3r/GUI/MainFrame.cpp:354 +msgid "Import Config from &project" +msgstr "Načíst konfiguraci z &projektu" + +#: src/slic3r/Utils/FixModelByWin10.cpp:383 +msgid "Import of the repaired 3mf file failed" +msgstr "Import opraveného 3MF souboru selhal" + +#: src/slic3r/GUI/MainFrame.cpp:349 +msgid "Import STL/OBJ/AM&F/3MF" +msgstr "Importovat STL/OBJ/AM&F/3MF" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:106 +msgid "Import STL/OBJ/AMF/3MF without config, keep bed" +msgstr "Nahrát soubor STL/OBJ/AMF/3MF bez konfigurace (zachová stávající tiskovou plochu)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2416 +#, possible-c-format +msgid "In this mode you can select only other %s Items%s" +msgstr "V tomto režimu můžete vybrat pouze jinou/jiný %s %s" + +#: src/slic3r/GUI/UpdateDialogs.cpp:132 +msgid "Incompatible bundles:" +msgstr "Nekompatibilní balíky:" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70 +#, possible-c-format +msgid "Incompatible with this %s" +msgstr "Nekompatibilní s tímto %s" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 +msgid "Incompatible with this Slic3r" +msgstr "Nekompatibilní s tímto Slic3rem" + +#: src/slic3r/GUI/Plater.cpp:2813 src/slic3r/GUI/Plater.cpp:2825 +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Increase copies" +msgstr "Přidat kopie" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:69 +#: src/slic3r/GUI/GUI_ObjectList.cpp:510 src/slic3r/GUI/Plater.cpp:439 +#: src/slic3r/GUI/Tab.cpp:1030 src/slic3r/GUI/Tab.cpp:1031 +#: src/slic3r/GUI/Tab.cpp:1360 src/libslic3r/PrintConfig.cpp:167 +#: src/libslic3r/PrintConfig.cpp:389 src/libslic3r/PrintConfig.cpp:729 +#: src/libslic3r/PrintConfig.cpp:743 src/libslic3r/PrintConfig.cpp:780 +#: src/libslic3r/PrintConfig.cpp:933 src/libslic3r/PrintConfig.cpp:943 +#: src/libslic3r/PrintConfig.cpp:961 src/libslic3r/PrintConfig.cpp:979 +#: src/libslic3r/PrintConfig.cpp:998 src/libslic3r/PrintConfig.cpp:1659 +#: src/libslic3r/PrintConfig.cpp:1676 +msgid "Infill" +msgstr "Výplň" + +#: src/slic3r/GUI/PresetHints.cpp:171 +msgid "infill" +msgstr "výplň" + +#: src/libslic3r/PrintConfig.cpp:972 +msgid "Infill before perimeters" +msgstr "Tisknout výplň před tiskem perimetrů" + +#: src/libslic3r/PrintConfig.cpp:953 +msgid "Infill extruder" +msgstr "Extruder pro výplň" + +#: src/libslic3r/PrintConfig.cpp:987 +msgid "Infill/perimeters overlap" +msgstr "Přesah pro výplň/perimetry" + +#: src/libslic3r/Print.cpp:1476 +msgid "Infilling layers" +msgstr "Generování výplně vrstev" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2424 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2497 src/slic3r/GUI/Plater.cpp:118 +msgid "Info" +msgstr "Info" + +#: src/libslic3r/PrintConfig.cpp:1008 +msgid "Inherits profile" +msgstr "Zdědí profil" + +#: src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2318 +msgid "Initial exposure time" +msgstr "Doba počátečního osvitu" + +#: src/libslic3r/PrintConfig.cpp:2295 src/libslic3r/PrintConfig.cpp:2296 +msgid "Initial layer height" +msgstr "Výška první vrstvy" + +#: src/slic3r/GUI/Field.cpp:155 +msgid "Input value is out of range" +msgstr "Zadaná hodnota je mimo rozsah" + +#: src/slic3r/GUI/GUI_App.cpp:661 +msgid "Inspect / activate configuration snapshots" +msgstr "Zkontrolovat / aktivovat zálohy konfigurace" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1887 +msgid "Instance manipulation" +msgstr "Manipulace s instancí objektu" + +#: src/slic3r/GUI/wxExtensions.cpp:358 +msgid "Instances" +msgstr "Instance" + +#: src/slic3r/GUI/wxExtensions.cpp:365 +#, possible-c-format +msgid "Instance_%d" +msgstr "Instance_%d" + +#: src/libslic3r/PrintConfig.cpp:1886 +msgid "Interface layers" +msgstr "Kontaktní vrstvy" + +#: src/libslic3r/PrintConfig.cpp:1870 +msgid "Interface loops" +msgstr "Kontaktní smyčky" + +#: src/libslic3r/PrintConfig.cpp:1895 +msgid "Interface pattern spacing" +msgstr "Rozteč kontaktních vrstev" + +#: src/libslic3r/PrintConfig.cpp:1022 +msgid "Interface shells" +msgstr "Mezilehlé stěny" + +#: src/libslic3r/Zipper.cpp:87 +msgid "internal error" +msgstr "interní chyba" + +#: src/slic3r/GUI/GUI_Preview.cpp:230 src/libslic3r/GCode/PreviewData.cpp:166 +msgid "Internal infill" +msgstr "Vnitřní výplň" + +#: xs/src/slic3r/Utils/OctoPrint.cpp:120 +msgid "Invalid API key" +msgstr "Neplatný API klíč" + +#: src/slic3r/GUI/Plater.cpp:2397 +msgid "Invalid data" +msgstr "Neplatná data" + +#: src/libslic3r/Zipper.cpp:83 +msgid "invalid filename" +msgstr "neplatný název souboru" + +#: src/slic3r/GUI/Tab.cpp:3484 +msgid "Invalid Head penetration" +msgstr "Neplatný průnik podpěry do modelu" + +#: src/libslic3r/Zipper.cpp:51 +msgid "invalid header or archive is corrupted" +msgstr "neplatná hlavička nebo je archiv poškozen" + +#: src/slic3r/GUI/Field.cpp:150 src/slic3r/GUI/Field.cpp:173 +msgid "Invalid numeric input." +msgstr "Neplatný číselný vstup." + +#: src/libslic3r/Zipper.cpp:81 +msgid "invalid parameter" +msgstr "neplatný parametr" + +#: src/slic3r/GUI/Tab.cpp:3497 +msgid "Invalid pinhead diameter" +msgstr "Neplatný průměr hrotu" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Invalid rotation angle entered" +msgstr "Zadán neplatný úhel natočení" + +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +#: lib/Slic3r/GUI/Plater.pm:1158 lib/Slic3r/GUI/Plater.pm:1163 +msgid "Invalid scaling value entered" +msgstr "Zadána neplatná hodnota pro úpravu rozměru" + +#: src/slic3r/GUI/Tab.cpp:2779 +msgid "is not compatible with print profile" +msgstr "není kompatibilní s tiskovým profilem" + +#: src/slic3r/GUI/Tab.cpp:2778 +msgid "is not compatible with printer" +msgstr "není kompatibilní s tiskárnou" + +#: src/slic3r/GUI/MainFrame.cpp:519 +msgid "Iso" +msgstr "Izometrické" + +#: src/slic3r/GUI/MainFrame.cpp:519 +msgid "Iso View" +msgstr "Izometrické zobrazení" + +#: src/slic3r/GUI/Tab.cpp:914 +msgid "It can't be deleted or modified. " +msgstr "Nelze smazat nebo upravit. " + +#: src/libslic3r/PrintConfig.cpp:926 +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 "Může být užitečné zvýšit proud motoru extruderu během sekvence výměny filamentu, aby se umožnily vysoké rychlosti zavádění filamentu a aby se překonal odpor při zavádění filamentu s ošklivě tvarovanou špičkou." + +#: src/slic3r/GUI/Tab.cpp:907 +msgid "It's a default preset." +msgstr "Je to výchozí přednastavení." + +#: src/slic3r/GUI/Tab.cpp:908 +msgid "It's a system preset." +msgstr "Jedná se o systémové přednastavení." + +#: src/slic3r/GUI/GUI.cpp:142 src/slic3r/GUI/Tab.cpp:2796 +msgid "It's impossible to print multi-part object(s) with SLA technology." +msgstr "SLA technologií nelze tisknout vícedílné objekty." + +#: src/slic3r/GUI/Tab.cpp:2177 +msgid "Jerk limits" +msgstr "Ryv limity" + +#: src/libslic3r/PrintConfig.cpp:1579 +msgid "Jitter" +msgstr "Rozkmit (Jitter)" + +#: src/libslic3r/PrintConfig.cpp:533 +msgid "Keep fan always on" +msgstr "Ventilátor vždy zapnutý" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:194 +msgid "Keep lower part" +msgstr "Zachovat spodní část" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:193 +msgid "Keep upper part" +msgstr "Zachovat horní část" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 src/slic3r/GUI/MainFrame.cpp:566 +msgid "Keyboard Shortcuts" +msgstr "Klávesové zkratky" + +#: src/libslic3r/PrintConfig.cpp:917 +msgid "Label objects" +msgstr "Označování objektů" + +#: src/libslic3r/PrintConfig.cpp:2234 +msgid "Landscape" +msgstr "Orientace na šířku" + +#: src/slic3r/GUI/GUI_App.cpp:524 +msgid "Language" +msgstr "Jazyk" + +#: lib/Slic3r/GUI/Plater.pm:265 +msgid "Layer Editing" +msgstr "Vyhlazení vrstev" + +#: lib/Slic3r/GUI/Plater.pm:280 +msgid "Layer editing" +msgstr "Vyhlazení vrstev" + +#: src/slic3r/GUI/Tab.cpp:998 src/libslic3r/PrintConfig.cpp:55 +msgid "Layer height" +msgstr "Výška vrstvy" + +#: src/libslic3r/Print.cpp:1332 +msgid "Layer height can't be greater than nozzle diameter" +msgstr "Výška vrstvy nemůže být větší než je průměr trysky" + +#: src/slic3r/GUI/Tab.cpp:2260 +msgid "Layer height limits" +msgstr "Výškové limity vrstvy" + +#: src/libslic3r/PrintConfig.cpp:326 src/libslic3r/PrintConfig.cpp:946 +#: src/libslic3r/PrintConfig.cpp:1435 src/libslic3r/PrintConfig.cpp:1620 +#: src/libslic3r/PrintConfig.cpp:1681 src/libslic3r/PrintConfig.cpp:1844 +#: src/libslic3r/PrintConfig.cpp:1889 +msgid "layers" +msgstr "vrstva(y)" + +#: src/slic3r/GUI/Tab.cpp:3302 src/slic3r/GUI/Tab.cpp:3393 +msgid "Layers" +msgstr "Vrstvy" + +#: src/slic3r/GUI/Tab.cpp:997 src/slic3r/GUI/Tab.cpp:3391 +msgid "Layers and perimeters" +msgstr "Vrstvy a perimetry" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:28 src/slic3r/GUI/GUI_ObjectList.cpp:68 +#: src/slic3r/GUI/GUI_ObjectList.cpp:509 src/libslic3r/PrintConfig.cpp:56 +#: src/libslic3r/PrintConfig.cpp:150 src/libslic3r/PrintConfig.cpp:381 +#: src/libslic3r/PrintConfig.cpp:438 src/libslic3r/PrintConfig.cpp:446 +#: src/libslic3r/PrintConfig.cpp:842 src/libslic3r/PrintConfig.cpp:1026 +#: src/libslic3r/PrintConfig.cpp:1305 src/libslic3r/PrintConfig.cpp:1371 +#: src/libslic3r/PrintConfig.cpp:1552 src/libslic3r/PrintConfig.cpp:1987 +#: src/libslic3r/PrintConfig.cpp:2044 +msgid "Layers and Perimeters" +msgstr "Vrstvy a perimetry" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:189 +msgid "Layers Slider Shortcuts" +msgstr "Posuvníky" + +#. TRN To be shown in Print Settings "Bottom solid layers" +#: rc/libslic3r/PrintConfig.cpp:149 +msgctxt "Layers" +msgid "Bottom" +msgstr "Spodní" + +#. TRN To be shown in Print Settings "Top solid layers" +#: src/libslic3r/PrintConfig.cpp:2043 +msgctxt "Layers" +msgid "Top" +msgstr "Vrchní" + +#: src/slic3r/GUI/MainFrame.cpp:527 +msgid "Left" +msgstr "Zleva" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:597 +msgid "Left mouse click - add point" +msgstr "Kliknutí levým tlačítkem myši - přidání bodu" + +#: src/slic3r/GUI/MainFrame.cpp:527 +msgid "Left View" +msgstr "Pohled zleva" + +#: src/libslic3r/PrintConfig.cpp:1473 src/libslic3r/PrintConfig.cpp:1481 +msgid "Length" +msgstr "Vzdálenost" + +#: src/libslic3r/PrintConfig.cpp:292 +msgid "Length of the cooling tube to limit space for cooling moves inside it " +msgstr "Délka kovové trubičky určené pro ochlazení a zformování filamentu po vytažení z extruderu " + +#: src/libslic3r/PrintConfig.cpp:1491 +msgid "Lift Z" +msgstr "Zvednout Z" + +#: src/libslic3r/PrintConfig.cpp:801 +msgid "Line" +msgstr "Čára" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1050 +msgid "Load" +msgstr "Načíst" + +#: src/slic3r/GUI/MainFrame.cpp:349 +msgid "Load a model" +msgstr "Načíst model" + +#: src/libslic3r/PrintConfig.cpp:3116 +msgid "Load and store settings at the given directory. This is useful for maintaining different profiles or including configurations from a network storage." +msgstr "Načtěte a uložte nastavení z/do daného adresáře. To je užitečné pro udržování různých profilů nebo konfigurací ze síťového úložiště." + +#: src/libslic3r/PrintConfig.cpp:3100 +msgid "Load config file" +msgstr "Načíst konfigurační soubor" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:107 +msgid "Load Config from .ini/amf/3mf/gcode" +msgstr "Načíst konfiguraci z .ini/amf/3mf/gcode" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:110 +msgid "Load Config from .ini/amf/3mf/gcode and merge" +msgstr "Načíst konfiguraci z .ini/amf/3mf/gcode a sloučit" + +#: src/slic3r/GUI/MainFrame.cpp:354 +msgid "Load configuration from project file" +msgstr "Načíst konfiguraci z projektu" + +#: src/libslic3r/PrintConfig.cpp:3101 +msgid "Load configuration from the specified file. It can be used more than once to load options from multiple files." +msgstr "Načíst konfiguraci ze zadaného souboru. Může být použito vícekrát než jednou pro načtení z více souborů." + +#: src/slic3r/GUI/MainFrame.cpp:352 +msgid "Load exported configuration file" +msgstr "Načíst exportovaný konfigurační soubor" + +#: src/slic3r/GUI/MainFrame.cpp:357 +msgid "Load presets from a bundle" +msgstr "Načíst přednastavení z balíku" + +#: src/slic3r/GUI/BedShapeDialog.cpp:97 +msgid "Load shape from STL..." +msgstr "Načíst tvar ze souboru STL…" + +#: lib/Slic3r/GUI/Plater.pm:779 +msgid "Loaded " +msgstr "Načteno " + +#: src/slic3r/GUI/WipeTowerDialog.cpp:235 +msgid "loaded" +msgstr "zaváděn" + +#: src/slic3r/GUI/Plater.cpp:1782 +msgid "Loaded" +msgstr "Načteno" + +#: src/slic3r/GUI/Plater.cpp:1590 +msgid "Loading" +msgstr "Načítání" + +#: src/slic3r/GUI/GUI_App.cpp:339 +msgid "Loading of a current presets" +msgstr "Načítání aktuálních předvoleb" + +#: src/slic3r/GUI/GUI_App.cpp:407 +msgid "Loading of a mode view" +msgstr "Načítání režimu zobrazení" + +#: src/slic3r/GUI/GUI_App.cpp:399 +msgid "Loading of current presets" +msgstr "Načítání aktuálních předvoleb" + +#: src/slic3r/Utils/FixModelByWin10.cpp:251 +#: src/slic3r/Utils/FixModelByWin10.cpp:378 +msgid "Loading repaired model" +msgstr "Načítaní opraveného modelu" + +#: src/libslic3r/PrintConfig.cpp:575 +msgid "Loading speed" +msgstr "Rychlost zavádění" + +#: src/libslic3r/PrintConfig.cpp:583 +msgid "Loading speed at the start" +msgstr "Počáteční rychlost zavádění" + +#: lib/Slic3r/GUI/Plater.pm:713 +msgid "Loading…" +msgstr "Načítání…" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:851 +msgid "Lock supports under new islands" +msgstr "Ukotvi podpěry pod novými ostrůvky" + +#: src/slic3r/GUI/Tab.cpp:3103 +msgid "LOCKED LOCK icon indicates that the settings are the same as the system values for the current option group" +msgstr "Ikona ZAMKNUTÉHO ZÁMKU indikuje, že nastavení jsou stejná jako systémové hodnoty pro aktuální skupinu nastavení" + +#: src/slic3r/GUI/Tab.cpp:3119 +msgid "LOCKED LOCK icon indicates that the value is the same as the system value." +msgstr "Ikona ZAMKNUTÉHO ZÁMKU indikuje, že hodnota je shodná se systémovou hodnotou." + +#: src/slic3r/GUI/Tab.cpp:3064 +msgid "LOCKED LOCK;indicates that the settings are the same as the system values for the current option group" +msgstr "ZAMKNUTÝ ZÁMEK; indikuje, že nastavení jsou stejná jako systémové hodnoty pro aktuální skupinu nastavení" + +#: src/libslic3r/PrintConfig.cpp:3119 +msgid "Logging level" +msgstr "Úroveň logování" + +#: src/libslic3r/PrintConfig.cpp:1625 +msgid "Loops (minimum)" +msgstr "Smyček (minimálně)" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:172 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:174 +msgid "Lower Layer" +msgstr "Nižší vrstva" + +#: src/slic3r/GUI/Tab.cpp:2136 src/slic3r/GUI/Tab.cpp:2209 +#: src/libslic3r/PrintConfig.cpp:1077 src/libslic3r/PrintConfig.cpp:1087 +#: src/libslic3r/PrintConfig.cpp:1097 src/libslic3r/PrintConfig.cpp:1110 +#: src/libslic3r/PrintConfig.cpp:1121 src/libslic3r/PrintConfig.cpp:1132 +#: src/libslic3r/PrintConfig.cpp:1143 +msgid "Machine limits" +msgstr "Limity stroje" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:129 +msgid "Main Shortcuts" +msgstr "Hlavní" + +#: src/slic3r/GUI/Plater.cpp:143 +msgid "Manifold" +msgstr "Model OK" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:908 +msgid "Manual editing" +msgstr "Manuální úprava" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:675 +msgid "Manual editing [M]" +msgstr "Ruční úprava [M]" + +#: src/slic3r/GUI/MainFrame.cpp:604 +msgid "Mate&rial Settings Tab" +msgstr "Panel nastavení mate&riálu" + +#: src/slic3r/GUI/Tab.cpp:3300 +msgid "Material" +msgstr "Materiál" + +#: src/slic3r/GUI/Tab.hpp:391 +msgid "Material Settings" +msgstr "Nastavení materiálu" + +#: src/slic3r/GUI/Plater.cpp:140 +msgid "Materials" +msgstr "Materiálů" + +#: src/libslic3r/PrintConfig.cpp:1152 src/libslic3r/PrintConfig.cpp:1161 +msgid "Max" +msgstr "Maximum" + +#: src/libslic3r/PrintConfig.cpp:2470 +msgid "Max bridge length" +msgstr "Maximální délka mostu" + +#: src/libslic3r/PrintConfig.cpp:2546 +msgid "Max merge distance" +msgstr "Maximální vzdálenost pro sloučení" + +#: src/libslic3r/PrintConfig.cpp:2479 +msgid "Max pillar linking distance" +msgstr "Max. vzdálenost propojení podpěr" + +#: src/libslic3r/PrintConfig.cpp:64 +msgid "Max print height" +msgstr "Maximální výška tisku" + +#: src/libslic3r/PrintConfig.cpp:1172 +msgid "Max print speed" +msgstr "Maximální rychlost tisku" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:55 +msgid "max slic3r version" +msgstr "max verze slic3ru" + +#: src/libslic3r/PrintConfig.cpp:1203 +msgid "Max volumetric slope negative" +msgstr "Maximální negativní objemový sklon" + +#: src/libslic3r/PrintConfig.cpp:1192 +msgid "Max volumetric slope positive" +msgstr "Maximální pozitivní objemový sklon" + +#: src/libslic3r/PrintConfig.cpp:565 src/libslic3r/PrintConfig.cpp:1182 +msgid "Max volumetric speed" +msgstr "Maximální objemová rychlost" + +#: src/libslic3r/PrintConfig.cpp:2167 +msgid "Maximal bridging distance" +msgstr "Maximální vzdálenost přemostění" + +#: src/libslic3r/PrintConfig.cpp:2168 +msgid "Maximal distance between supports on sparse infill sections. " +msgstr "Maximální vzdálenost mezi podpěrami u částí s řídkou výplní. " + +#: src/libslic3r/PrintConfig.cpp:1086 +msgid "Maximum acceleration %1%" +msgstr "Maximální zrychlení %1%" + +#: src/libslic3r/PrintConfig.cpp:1088 +msgid "Maximum acceleration of the %1% axis" +msgstr "Maximální zrychlení osy %1%" + +#: src/libslic3r/PrintConfig.cpp:1131 src/libslic3r/PrintConfig.cpp:1133 +msgid "Maximum acceleration when extruding" +msgstr "Maximální zrychlení při extruzi" + +#: src/libslic3r/PrintConfig.cpp:1142 src/libslic3r/PrintConfig.cpp:1144 +msgid "Maximum acceleration when retracting" +msgstr "Maximální zrychlení při retrakci" + +#: src/slic3r/GUI/Tab.cpp:2170 +msgid "Maximum accelerations" +msgstr "Maximální zrychlení" + +#: src/libslic3r/PrintConfig.cpp:1076 +msgid "Maximum feedrate %1%" +msgstr "Maximální rychlost posuvu %1%" + +#: src/libslic3r/PrintConfig.cpp:1078 +msgid "Maximum feedrate of the %1% axis" +msgstr "Maximální rychlost posuvu osy %1%" + +#: src/slic3r/GUI/Tab.cpp:2165 +msgid "Maximum feedrates" +msgstr "Maximální rychlosti posuvu" + +#: src/libslic3r/PrintConfig.cpp:1096 +msgid "Maximum jerk %1%" +msgstr "Maximální ryv (jerk) %1%" + +#: src/libslic3r/PrintConfig.cpp:1098 +msgid "Maximum jerk of the %1% axis" +msgstr "Maximální ryv (jerk) osy %1%" + +#: src/libslic3r/PrintConfig.cpp:566 +msgid "Maximum volumetric speed allowed for this filament. Limits the maximum volumetric speed of a print to the minimum of print and filament volumetric speed. Set to zero for no limit." +msgstr "Maximální povolený objem průtoku pro tento filament. Omezuje maximální rychlost průtoku pro tisk až na minimální rychlost průtoku pro tisk a filament. Zadejte nulu pro nastavení bez omezení." + +#: src/libslic3r/PrintConfig.cpp:3053 +msgid "Merge" +msgstr "Sloučit" + +#: src/libslic3r/PrintConfig.cpp:2432 +msgid "Merging bridges or pillars into another pillars can increase the radius. Zero means no increase, one means full increase." +msgstr "Sloučení mostů nebo podpěr do jiných podpěr může zvýšit poloměr. Hodnota 0 znamená žádné zvýšení, hodnota 1 znamená maximální zvýšení." + +#: src/libslic3r/SLAPrint.cpp:71 +msgid "Merging slices and calculating statistics" +msgstr "Slučování tiskových vrstev a výpočet statistik" + +#: src/slic3r/Utils/FixModelByWin10.cpp:248 +msgid "Mesh repair failed." +msgstr "Oprava meshe selhala." + +#: src/libslic3r/PrintConfig.cpp:3120 +msgid "Messages with severity lower or eqal to the loglevel will be printed out. 0:trace, 1:debug, 2:info, 3:warning, 4:error, 5:fatal" +msgstr "Zprávy se závažností nižší nebo rovnou úrovni logování budou vypsány. 0: trace, 1: debug, 2: info, 3: warning, 4: error, 5: fatal" + +#: src/libslic3r/PrintConfig.cpp:1215 src/libslic3r/PrintConfig.cpp:1224 +msgid "Min" +msgstr "Minimum" + +#: src/libslic3r/PrintConfig.cpp:1233 +msgid "Min print speed" +msgstr "Minimální rychlost tisku" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:53 +msgid "min slic3r version" +msgstr "min verze slic3ru" + +#: src/libslic3r/PrintConfig.cpp:2507 +msgid "Minimal distance of the support points" +msgstr "Minimální vzdálenost podpěrných bodů" + +#: src/libslic3r/PrintConfig.cpp:1241 +msgid "Minimal filament extrusion length" +msgstr "Minimální délka extruze filamentu" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:877 +msgid "Minimal points distance: " +msgstr "Minimální vzdálenost bodů:" + +#: src/libslic3r/PrintConfig.cpp:635 +msgid "Minimal purge on wipe tower" +msgstr "Minimální vytlačený objem na čistící věži" + +#: src/libslic3r/PrintConfig.cpp:1442 +msgid "Minimum detail resolution, used to simplify the input file for speeding up the slicing job and reducing memory usage. High-resolution models often carry more detail than printers can render. Set to zero to disable any simplification and use full resolution from input." +msgstr "Minimální rozlišení detailů, které se používají pro zjednodušení vstupního souboru pro urychlení slicovací úlohy a snížení využití paměti. Modely s vysokým rozlišením často obsahují více detailů než tiskárny dokážou vykreslit. Nastavte na nulu, chcete-li zakázat jakékoli zjednodušení a použít vstup v plném rozlišení." + +#: src/libslic3r/PrintConfig.cpp:1109 src/libslic3r/PrintConfig.cpp:1111 +msgid "Minimum feedrate when extruding" +msgstr "Minimální rychlosti posuvu během extruze" + +#: src/slic3r/GUI/Tab.cpp:2182 +msgid "Minimum feedrates" +msgstr "Minimální rychlosti posuvu" + +#: src/libslic3r/PrintConfig.cpp:1452 +msgid "Minimum travel after retraction" +msgstr "Minimální dráha extruderu po retrakci" + +#: src/libslic3r/PrintConfig.cpp:1120 src/libslic3r/PrintConfig.cpp:1122 +msgid "Minimum travel feedrate" +msgstr "Minimální rychlost při přesunu" + +#: src/slic3r/GUI/Plater.cpp:2946 +msgid "Mirror" +msgstr "Zrcadlit" + +#: src/slic3r/GUI/Plater.cpp:2946 +msgid "Mirror the selected object" +msgstr "Zrcadlit vybraný objekt" + +#: src/slic3r/GUI/Plater.cpp:2939 +msgid "Mirror the selected object along the X axis" +msgstr "Zrcadlit rozměr vybraného objektu podél osy X" + +#: src/slic3r/GUI/Plater.cpp:2941 +msgid "Mirror the selected object along the Y axis" +msgstr "Zrcadlit rozměr vybraného objektu podél osy Y" + +#: src/slic3r/GUI/Plater.cpp:2943 +msgid "Mirror the selected object along the Z axis" +msgstr "Zrcadlit rozměr vybraného objektu podél osy Z" + +#: src/slic3r/Utils/OctoPrint.cpp:69 +#, possible-c-format +msgid "Mismatched type of print host: %s" +msgstr "Nesprávný typ tiskového serveru: % s" + +#: src/libslic3r/GCode/PreviewData.cpp:176 +msgid "Mixed" +msgstr "Smíšený" + +#: src/slic3r/GUI/BedShapeDialog.cpp:87 src/slic3r/GUI/ConfigWizard.cpp:118 +#: src/slic3r/GUI/ConfigWizard.cpp:561 src/slic3r/GUI/ConfigWizard.cpp:575 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:150 +#: src/slic3r/GUI/RammingChart.cpp:81 src/slic3r/GUI/WipeTowerDialog.cpp:84 +#: src/libslic3r/PrintConfig.cpp:59 src/libslic3r/PrintConfig.cpp:66 +#: src/libslic3r/PrintConfig.cpp:75 src/libslic3r/PrintConfig.cpp:210 +#: src/libslic3r/PrintConfig.cpp:285 src/libslic3r/PrintConfig.cpp:293 +#: src/libslic3r/PrintConfig.cpp:343 src/libslic3r/PrintConfig.cpp:353 +#: src/libslic3r/PrintConfig.cpp:473 src/libslic3r/PrintConfig.cpp:484 +#: src/libslic3r/PrintConfig.cpp:502 src/libslic3r/PrintConfig.cpp:680 +#: src/libslic3r/PrintConfig.cpp:1166 src/libslic3r/PrintConfig.cpp:1227 +#: src/libslic3r/PrintConfig.cpp:1245 src/libslic3r/PrintConfig.cpp:1263 +#: src/libslic3r/PrintConfig.cpp:1315 src/libslic3r/PrintConfig.cpp:1325 +#: src/libslic3r/PrintConfig.cpp:1446 src/libslic3r/PrintConfig.cpp:1454 +#: src/libslic3r/PrintConfig.cpp:1495 src/libslic3r/PrintConfig.cpp:1503 +#: src/libslic3r/PrintConfig.cpp:1513 src/libslic3r/PrintConfig.cpp:1521 +#: src/libslic3r/PrintConfig.cpp:1529 src/libslic3r/PrintConfig.cpp:1612 +#: src/libslic3r/PrintConfig.cpp:1828 src/libslic3r/PrintConfig.cpp:1898 +#: src/libslic3r/PrintConfig.cpp:1932 src/libslic3r/PrintConfig.cpp:2125 +#: src/libslic3r/PrintConfig.cpp:2132 src/libslic3r/PrintConfig.cpp:2139 +#: src/libslic3r/PrintConfig.cpp:2169 src/libslic3r/PrintConfig.cpp:2179 +#: src/libslic3r/PrintConfig.cpp:2189 src/libslic3r/PrintConfig.cpp:2297 +#: src/libslic3r/PrintConfig.cpp:2372 src/libslic3r/PrintConfig.cpp:2381 +#: src/libslic3r/PrintConfig.cpp:2390 src/libslic3r/PrintConfig.cpp:2400 +#: src/libslic3r/PrintConfig.cpp:2444 src/libslic3r/PrintConfig.cpp:2454 +#: src/libslic3r/PrintConfig.cpp:2473 src/libslic3r/PrintConfig.cpp:2483 +#: src/libslic3r/PrintConfig.cpp:2492 src/libslic3r/PrintConfig.cpp:2510 +#: src/libslic3r/PrintConfig.cpp:2525 src/libslic3r/PrintConfig.cpp:2539 +#: src/libslic3r/PrintConfig.cpp:2552 src/libslic3r/PrintConfig.cpp:2562 +msgid "mm" +msgstr "mm" + +#: src/libslic3r/PrintConfig.cpp:1477 src/libslic3r/PrintConfig.cpp:1486 +msgid "mm (zero to disable)" +msgstr "mm (nula pro vypnutí)" + +#: src/libslic3r/PrintConfig.cpp:847 src/libslic3r/PrintConfig.cpp:992 +#: src/libslic3r/PrintConfig.cpp:1797 +msgid "mm or %" +msgstr "mm nebo %" + +#: src/libslic3r/PrintConfig.cpp:528 +msgid "mm or % (leave 0 for auto)" +msgstr "mm nebo % (pro automatické ponechte 0)" + +#: src/libslic3r/PrintConfig.cpp:420 src/libslic3r/PrintConfig.cpp:835 +#: src/libslic3r/PrintConfig.cpp:967 src/libslic3r/PrintConfig.cpp:1354 +#: src/libslic3r/PrintConfig.cpp:1692 src/libslic3r/PrintConfig.cpp:1865 +#: src/libslic3r/PrintConfig.cpp:2023 +msgid "mm or % (leave 0 for default)" +msgstr "mm nebo % (ponechte 0 jako výchozí)" + +#: src/libslic3r/PrintConfig.cpp:201 src/libslic3r/PrintConfig.cpp:577 +#: src/libslic3r/PrintConfig.cpp:585 src/libslic3r/PrintConfig.cpp:594 +#: src/libslic3r/PrintConfig.cpp:602 src/libslic3r/PrintConfig.cpp:629 +#: src/libslic3r/PrintConfig.cpp:648 src/libslic3r/PrintConfig.cpp:874 +#: src/libslic3r/PrintConfig.cpp:1001 src/libslic3r/PrintConfig.cpp:1079 +#: src/libslic3r/PrintConfig.cpp:1099 src/libslic3r/PrintConfig.cpp:1112 +#: src/libslic3r/PrintConfig.cpp:1123 src/libslic3r/PrintConfig.cpp:1176 +#: src/libslic3r/PrintConfig.cpp:1235 src/libslic3r/PrintConfig.cpp:1363 +#: src/libslic3r/PrintConfig.cpp:1537 src/libslic3r/PrintConfig.cpp:1546 +#: src/libslic3r/PrintConfig.cpp:1941 src/libslic3r/PrintConfig.cpp:2053 +msgid "mm/s" +msgstr "mm/s" + +#: src/libslic3r/PrintConfig.cpp:430 src/libslic3r/PrintConfig.cpp:856 +#: src/libslic3r/PrintConfig.cpp:1651 src/libslic3r/PrintConfig.cpp:1702 +#: src/libslic3r/PrintConfig.cpp:1908 src/libslic3r/PrintConfig.cpp:2035 +msgid "mm/s or %" +msgstr "mm/s nebo %" + +#: src/libslic3r/PrintConfig.cpp:160 src/libslic3r/PrintConfig.cpp:303 +#: src/libslic3r/PrintConfig.cpp:815 src/libslic3r/PrintConfig.cpp:936 +#: src/libslic3r/PrintConfig.cpp:1089 src/libslic3r/PrintConfig.cpp:1134 +#: src/libslic3r/PrintConfig.cpp:1145 src/libslic3r/PrintConfig.cpp:1334 +msgid "mm/s²" +msgstr "mm/s²" + +#: src/libslic3r/PrintConfig.cpp:1661 +msgid "mm²" +msgstr "mm²" + +#: src/libslic3r/PrintConfig.cpp:640 +msgid "mm³" +msgstr "mm³" + +#: src/libslic3r/PrintConfig.cpp:569 src/libslic3r/PrintConfig.cpp:1185 +msgid "mm³/s" +msgstr "mm³/s" + +#: src/libslic3r/PrintConfig.cpp:1197 src/libslic3r/PrintConfig.cpp:1208 +msgid "mm³/s²" +msgstr "mm³/s²" + +#: src/slic3r/GUI/GUI_App.cpp:681 +msgid "Mode" +msgstr "Režim" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:58 +msgid "model" +msgstr "model" + +#: src/slic3r/Utils/FixModelByWin10.cpp:340 +msgid "Model fixing" +msgstr "Opravování modelu" + +#: src/slic3r/Utils/FixModelByWin10.cpp:423 +#: src/slic3r/Utils/FixModelByWin10.cpp:426 +msgid "Model Repair by the Netfabb service" +msgstr "Oprava modelu službou Netfabb" + +#: src/slic3r/Utils/FixModelByWin10.cpp:406 +msgid "Model repair canceled" +msgstr "Oprava modelu byla zrušena" + +#: src/slic3r/Utils/FixModelByWin10.cpp:426 +msgid "Model repair failed: \n" +msgstr "Oprava modelu selhala:\n" + +#: src/slic3r/Utils/FixModelByWin10.cpp:400 +msgid "Model repair finished" +msgstr "Oprava modelu byla dokončena" + +#: src/slic3r/Utils/FixModelByWin10.cpp:423 +msgid "Model repaired successfully" +msgstr "Model byl úspěšně opraven" + +#: src/slic3r/GUI/Preset.cpp:207 +msgid "modified" +msgstr "upraveno" + +#: src/slic3r/GUI/Tab.cpp:1100 +msgid "Modifiers" +msgstr "Modifikátory" + +#: src/libslic3r/PrintConfig.cpp:719 +msgid "money/kg" +msgstr "korun/kg" + +#: lib/Slic3r/GUI/Plater.pm:255 +msgid "More" +msgstr "Více" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1238 +msgid "Move clipping plane" +msgstr "Posunout řezovou rovinu" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:183 +msgid "Move current slider thumb Down" +msgstr "Posunout aktivní posuvník dolů" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 +msgid "Move current slider thumb Up" +msgstr "Posunout aktivní posuvník nahoru" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Move current slider thump Down" +msgstr "Posunout aktivní posuvník dolů" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Move current slider thump Up" +msgstr "Posunout aktivní posuvník nahoru" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 +msgid "Move point" +msgstr "Posunout bod" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:51 +msgid "Move [M]" +msgstr "Přesunout [M]" + +#: src/libslic3r/PrintConfig.cpp:2100 +msgid "Multi material printers may need to prime or purge extruders on tool changes. Extrude the excess material into the wipe tower." +msgstr "Multimateriálové tiskárny mohou potřebovat, aby při výměně nástrojů vyčistili extrudery. Vytlačí přebytečný materiál do čistící věže." + +#: src/slic3r/GUI/Plater.cpp:1661 src/slic3r/GUI/Plater.cpp:1769 +msgid "Multi-part object detected" +msgstr "Detekován objekt obsahující více částí" + +#: src/slic3r/GUI/FirmwareDialog.cpp:400 src/slic3r/GUI/FirmwareDialog.cpp:436 +#, possible-c-format +msgid "Multiple %s devices found. Please only connect one at a time for flashing." +msgstr "Bylo nalezeno více zařízení %s . Během flashování mějte připojené pouze jedno." + +#: src/slic3r/GUI/Tab.cpp:1118 +msgid "Multiple Extruders" +msgstr "Více Extruderů" + +#: src/slic3r/GUI/Plater.cpp:1766 +msgid "Multiple objects were loaded for a multi-material printer.\nInstead of considering them as multiple objects, should I consider\nthese files to represent a single object having multiple parts?\n" +msgstr "Bylo nahráno více objektů pro multi materiálovou tiskárnu.\nMají být vloženy jako jeden objekt obsahující více částí, \nnamísto vložení několika objektů?\n" + +#: src/libslic3r/PrintConfig.cpp:3050 +msgid "Multiply copies by creating a grid." +msgstr "Vynásobí kopie vytvořením mřížky." + +#: src/libslic3r/PrintConfig.cpp:3045 +msgid "Multiply copies by this factor." +msgstr "Vynásobí kopie tímto číslem." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:176 +msgid "Name" +msgstr "Název" + +#: src/libslic3r/PrintConfig.cpp:1418 +msgid "Name of the printer variant. For example, the printer variants may be differentiated by a nozzle diameter." +msgstr "Název varianty tiskárny. Varianty tiskárny mohou být například rozlišeny podle průměru trysky." + +#: src/libslic3r/PrintConfig.cpp:1412 +msgid "Name of the printer vendor." +msgstr "Název prodejce tiskárny." + +#: src/libslic3r/PrintConfig.cpp:1009 +msgid "Name of the profile, from which this profile inherits." +msgstr "Název profilu, ze kterého tento profil zdědí." + +#: src/libslic3r/PrintConfig.cpp:1560 +msgid "Nearest" +msgstr "Nejbližší" + +#: src/slic3r/GUI/BonjourDialog.cpp:55 +msgid "Network lookup" +msgstr "Hledání v síti" + +#: src/slic3r/GUI/UpdateDialogs.cpp:30 +#, possible-c-format +msgid "New version of %s is available" +msgstr "Je dostupná nová verze %s" + +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "New version of Slic3r PE is available" +msgstr "Je dostupná nová verze Slic3r PE" + +#: src/slic3r/GUI/UpdateDialogs.cpp:47 +msgid "New version:" +msgstr "Nová verze:" + +#: src/libslic3r/PrintConfig.cpp:912 +msgid "No extrusion" +msgstr "Žádná extruze" + +#: src/slic3r/GUI/MainFrame.cpp:635 +msgid "No previously sliced file." +msgstr "Žádné dříve slicované soubory." + +#: src/slic3r/GUI/RammingChart.cpp:23 +msgid "NO RAMMING AT ALL" +msgstr "ŽÁDNÁ RAPIDNÍ EXTRUZE" + +#: src/libslic3r/PrintConfig.cpp:2509 +msgid "No support points will be placed closer than this threshold." +msgstr "Žádné podpůrné body nebudou umístěny blíže než je tento práh." + +#: src/slic3r/GUI/ConfigWizard.cpp:190 src/slic3r/GUI/Plater.cpp:422 +#: src/libslic3r/GCode/PreviewData.cpp:162 +msgid "None" +msgstr "Žádné" + +#: src/slic3r/GUI/Plater.cpp:1073 +msgid "normal mode" +msgstr "normální režim" + +#: src/libslic3r/Zipper.cpp:49 +msgid "not a ZIP archive" +msgstr "není ZIP archiv" + +#: src/slic3r/Utils/OctoPrint.cpp:90 +msgid "Note: OctoPrint version at least 1.1.0 is required." +msgstr "Poznámka: Je vyžadován OctoPrint ve verzi alespoň 1.1.0." + +#: src/slic3r/GUI/Tab.cpp:1193 src/slic3r/GUI/Tab.cpp:1194 +#: src/slic3r/GUI/Tab.cpp:1576 src/slic3r/GUI/Tab.cpp:1577 +#: src/slic3r/GUI/Tab.cpp:1985 src/slic3r/GUI/Tab.cpp:1986 +#: src/slic3r/GUI/Tab.cpp:2079 src/slic3r/GUI/Tab.cpp:2080 +#: src/slic3r/GUI/Tab.cpp:3328 src/slic3r/GUI/Tab.cpp:3329 +msgid "Notes" +msgstr "Poznámky" + +#: src/slic3r/GUI/GUI.cpp:277 +msgid "Notice" +msgstr "Oznámení" + +#: src/slic3r/GUI/ConfigWizard.cpp:118 +msgid "nozzle" +msgstr "tryska" + +#: src/libslic3r/PrintConfig.cpp:1261 +msgid "Nozzle diameter" +msgstr "Průměr trysky" + +#: src/slic3r/GUI/ConfigWizard.cpp:560 +msgid "Nozzle Diameter:" +msgstr "Průměr trysky:" + +#: src/libslic3r/PrintConfig.cpp:618 +msgid "Number of cooling moves" +msgstr "Počet chladících pohybů" + +#: src/slic3r/GUI/Tab.cpp:1845 +msgid "Number of extruders of the printer." +msgstr "Počet extrudérů tiskárny." + +#: src/libslic3r/PrintConfig.cpp:1888 +msgid "Number of interface layers to insert between the object(s) and support material." +msgstr "Počet interface vrstev vložených mezi objekt (objekty) a podpěry." + +#: src/libslic3r/PrintConfig.cpp:1627 +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 "Počet obrysových smyček. Je-li nastavena možnost Minimální délka extruze, počet obrysových smyček může být větší než počet zde nakonfigurovaných. Nastavte tuto hodnotu na nulu, pro úplné deaktivování." + +#: src/libslic3r/PrintConfig.cpp:2214 +msgid "Number of pixels in" +msgstr "Počet pixelů v ose" + +#: src/libslic3r/PrintConfig.cpp:2216 +msgid "Number of pixels in X" +msgstr "Počet pixelů v ose X" + +#: src/libslic3r/PrintConfig.cpp:2222 +msgid "Number of pixels in Y" +msgstr "Počet pixelů v ose Y" + +#: src/libslic3r/PrintConfig.cpp:151 +msgid "Number of solid layers to generate on bottom surfaces." +msgstr "Počet plných vrstev." + +#: src/libslic3r/PrintConfig.cpp:1711 +msgid "Number of solid layers to generate on top and bottom surfaces." +msgstr "Počet plných vrstev generovaných na vrchních a spodních površích." + +#: src/libslic3r/PrintConfig.cpp:2045 +msgid "Number of solid layers to generate on top surfaces." +msgstr "Počet vrchních generovaných plných vrstev." + +#: src/libslic3r/PrintConfig.cpp:2303 +msgid "Number of the layers needed for the exposure time fade from initial exposure time to the exposure time" +msgstr "Počet vrstev potřebných pro přechod z počáteční doby osvitu na dobu osvitu." + +#: src/slic3r/GUI/Plater.cpp:218 +msgid "Number of tool changes" +msgstr "Počet změn nástroje" + +#: src/libslic3r/PrintConfig.cpp:2489 +msgid "Object elevation" +msgstr "Nadzvednutí objektu" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1858 +msgid "Object manipulation" +msgstr "Manipulace s objektem" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:27 +msgid "Object Manipulation" +msgstr "Manipulace s objektem" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:78 +msgid "Object name" +msgstr "Jméno objektu" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2412 +msgid "Object or Instance" +msgstr "Objekt nebo Instanci" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1868 +msgid "Object Settings to modify" +msgstr "Změna nastavení objektu" + +#: src/slic3r/GUI/Plater.cpp:1875 +msgid "Object too large?" +msgstr "Objekt moc velký?" + +#: src/libslic3r/PrintConfig.cpp:2161 +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 "Objekty budou použity k vyčištění barvy filamentu v trysce po změně extruderu, aby se ušetřil materiál, který by jinak skončil v čistící věži. Výsledkem budou objekty s náhodně mixovanými barvami." + +#: src/slic3r/GUI/Plater.cpp:1018 +msgid "object(s)" +msgstr "objekt(y)" + +#: src/slic3r/GUI/Plater.cpp:1043 src/slic3r/GUI/Plater.cpp:1058 +msgid "objects" +msgstr "objekty" + +#: xs/src/libslic3r/PrintConfig.cpp:2006 +msgid "Objects will be used to wipe 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 "Objekty budou použity k vyčištění barvy filamentu v trysce po změně extruderu, aby se ušetřil materiál, který by jinak skončil v čistící věži. Výsledkem budou objekty s náhodně mixovanými barvami." + +#: src/libslic3r/PrintConfig.cpp:402 src/libslic3r/PrintConfig.cpp:808 +msgid "Octagram Spiral" +msgstr "Octagram Spiral" + +#: xs/src/slic3r/GUI/Tab.cpp:1520 xs/src/slic3r/Utils/OctoPrint.cpp:110 +msgid "OctoPrint upload" +msgstr "OctoPrint nahrávání" + +#: lib/Slic3r/GUI/Plater.pm:1576 +msgid "OctoPrint upload finished." +msgstr "Nahrávání do OctoPrintu dokončeno." + +#: src/slic3r/GUI/BonjourDialog.cpp:76 +msgid "OctoPrint version" +msgstr "Verze OctoPrintu" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2419 +msgid "of a current Object" +msgstr "současného Objektu" + +#: src/libslic3r/Print.cpp:1285 +msgid "One or more object were assigned an extruder that the printer does not have." +msgstr "Jeden nebo více objektů bylo přiřazeno extruderu, který tiskárna nemá." + +#: src/libslic3r/PrintConfig.cpp:1817 src/libslic3r/PrintConfig.cpp:2425 +msgid "Only create support if it lies on a build plate. Don't create support on a print." +msgstr "Podpěry vytvářet pouze v případě, že leží na tiskové podložce. Nevytváří podpěry na výtisky." + +#: src/libslic3r/PrintConfig.cpp:978 +msgid "Only infill where needed" +msgstr "Výplň pouze kde je potřeba" + +#: src/slic3r/GUI/Tab.cpp:2271 +msgid "Only lift Z" +msgstr "Pouze zvednout Z" + +#: src/libslic3r/PrintConfig.cpp:1500 +msgid "Only lift Z above" +msgstr "Zvednout Z pouze nad" + +#: src/libslic3r/PrintConfig.cpp:1509 +msgid "Only lift Z below" +msgstr "Zvednout Z pouze pod" + +#: src/libslic3r/PrintConfig.cpp:1279 +msgid "Only retract when crossing perimeters" +msgstr "Provést retrakci pouze při přejíždění perimetrů" + +#: src/slic3r/GUI/Tab.cpp:1126 +msgid "Ooze prevention" +msgstr "Prevence odkapávání" + +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open a model" +msgstr "Otevřít model" + +#: src/slic3r/GUI/MainFrame.cpp:339 +msgid "Open a project file" +msgstr "Otevřít soubor s projektem" + +#: src/slic3r/GUI/Tab.cpp:1745 +msgid "Open CA certificate file" +msgstr "Otevřít soubor s certifikátem CA" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:105 +msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" +msgstr "Otevřít soubor STL/OBJ/AMF/3MF s konfigurací (smaže tiskovou plochu)" + +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open STL/OBJ/AMF/3MF…\tCtrl+O" +msgstr "Otevřít STL/OBJ/AMF/3MF… Ctrl+O" + +#: src/slic3r/GUI/MainFrame.cpp:554 +#, possible-c-format +msgid "Open the %s manual in your browser" +msgstr "Otevřít návod k %s v prohlížeči" + +#: src/slic3r/GUI/MainFrame.cpp:551 +#, possible-c-format +msgid "Open the %s website in your browser" +msgstr "Otevřít webovou stránku %s v prohlížeči" + +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Open the 3D cutting tool" +msgstr "Otevřete nástroj 3D řezání" + +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Open the object editor dialog" +msgstr "Otevře dialogové okno editoru objektů" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Open the Prusa Edition releases page in your browser" +msgstr "Otevřít stránku vydání Prusa Edice ve vašem prohlížeči" + +#: src/slic3r/GUI/MainFrame.cpp:542 +msgid "Open the Prusa3D drivers download page in your browser" +msgstr "Otevřít stránku pro stahování Prusa 3D ovladačů ve vašem prohlížeči" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Open the Slic3r manual in your browser" +msgstr "Otevřít Slic3r návod ve vašem prohlížeči" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Open the Slic3r website in your browser" +msgstr "Otevřít webovou stránku Slic3ru ve vašem prohlížeči" + +#: src/slic3r/GUI/Plater.cpp:2994 +msgid "Optimize orientation" +msgstr "Optimalizovat orientaci" + +#: src/slic3r/GUI/Plater.cpp:2994 +msgid "Optimize the rotation of the object for better print results." +msgstr "Optimalizujte rotaci objektu pro lepší výsledky tisku." + +#: src/libslic3r/PrintConfig.cpp:112 +msgid "Optimize travel moves in order to minimize the crossing of perimeters. This is mostly useful with Bowden extruders which suffer from oozing. This feature slows down both the print and the G-code generation." +msgstr "Optimalizovat rychloposuny do pořadí aby se minimalizovalo přejíždění perimetrů. Nejvíce užitečné u Bowdenových extruderů které trpí na vytékání filamentu. Toto nastavení zpomaluje tisk i generování G-code." + +#: src/slic3r/GUI/Tab.cpp:1070 +msgid "Options for support material and raft" +msgstr "Volby pro podpěry a raft" + +#: src/slic3r/GUI/Plater.cpp:2251 +msgid "Orientation found." +msgstr "Orientace nalezena." + +#: src/slic3r/GUI/Plater.cpp:2185 +msgid "Orientation search canceled" +msgstr "Hledávání optimální orientace bylo zrušeno" + +#: src/slic3r/GUI/BedShapeDialog.cpp:79 +msgid "Origin" +msgstr "Počátek" + +#: src/slic3r/GUI/Tab.cpp:1165 +msgid "Other" +msgstr "Ostatní" + +#: src/libslic3r/PrintConfig.cpp:119 src/libslic3r/PrintConfig.cpp:1977 +msgid "Other layers" +msgstr "Ostatní vrstvy" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:252 +msgid "Other vendors" +msgstr "Ostatní výrobci" + +#: src/slic3r/GUI/ConfigWizard.cpp:438 +msgid "Other Vendors" +msgstr "Ostatní výrobci" + +#: src/slic3r/GUI/Tab.cpp:1180 src/slic3r/GUI/Tab.cpp:3440 +msgid "Output file" +msgstr "Výstupní soubor" + +#: src/libslic3r/PrintConfig.cpp:3104 +msgid "Output File" +msgstr "Výstupní soubor" + +#: src/libslic3r/PrintConfig.cpp:1294 +msgid "Output filename format" +msgstr "Formát názvu výstupního souboru" + +#: src/libslic3r/PrintConfig.cpp:2992 +msgid "Output Model Info" +msgstr "Info o výstupním modelu" + +#: src/slic3r/GUI/Tab.cpp:1168 src/slic3r/GUI/Tab.cpp:3439 +msgid "Output options" +msgstr "Možnosti výstupu" + +#: src/slic3r/GUI/GUI_Preview.cpp:229 src/libslic3r/GCode/PreviewData.cpp:165 +msgid "Overhang perimeter" +msgstr "Perimetr převisu" + +#: src/libslic3r/PrintConfig.cpp:1955 +msgid "Overhang threshold" +msgstr "Mezní úhel převisu" + +#: src/slic3r/GUI/Tab.cpp:1153 +msgid "Overlap" +msgstr "Překrytí" + +#: src/slic3r/GUI/MainFrame.cpp:478 +msgid "P&rint Settings Tab" +msgstr "Panel nastavení tisku" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:79 src/slic3r/GUI/GUI_ObjectList.cpp:520 +#: src/slic3r/GUI/Tab.cpp:3425 src/slic3r/GUI/Tab.cpp:3426 +#: src/libslic3r/PrintConfig.cpp:2516 src/libslic3r/PrintConfig.cpp:2523 +#: src/libslic3r/PrintConfig.cpp:2537 src/libslic3r/PrintConfig.cpp:2547 +#: src/libslic3r/PrintConfig.cpp:2560 src/libslic3r/PrintConfig.cpp:2569 +msgid "Pad" +msgstr "Podložka" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:39 +msgid "Pad and Support" +msgstr "Podložka a Podppěry" + +#: src/libslic3r/PrintConfig.cpp:2559 +msgid "Pad edge radius" +msgstr "Poloměr hrany podložky" + +#: src/libslic3r/PrintConfig.cpp:2532 +msgid "Pad wall height" +msgstr "Výška bočnice podložky" + +#: src/libslic3r/PrintConfig.cpp:2568 +msgid "Pad wall slope" +msgstr "Sklon bočnice podložky" + +#: src/libslic3r/PrintConfig.cpp:2522 +msgid "Pad wall thickness" +msgstr "Tloušťka stěny podložky" + +#: src/slic3r/GUI/Field.cpp:108 +msgid "parameter name" +msgstr "název parametru" + +#: src/slic3r/GUI/Field.cpp:184 +msgid "Parameter validation" +msgstr "Validace parametru" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2412 +msgid "Part" +msgstr "Část" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1881 +msgid "Part manipulation" +msgstr "Manipulace s částmi" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1872 +msgid "Part Settings to modify" +msgstr "Změna nastavení části" + +#: src/slic3r/GUI/MainFrame.cpp:456 +msgid "Paste clipboard" +msgstr "Vložit ze schránky" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 +msgid "Paste from clipboard" +msgstr "Vložit ze schránky" + +#: src/libslic3r/PrintConfig.cpp:1915 +msgid "Pattern" +msgstr "Vzor" + +#: src/libslic3r/PrintConfig.cpp:1805 +msgid "Pattern angle" +msgstr "Úhel vzoru" + +#: src/libslic3r/PrintConfig.cpp:1929 +msgid "Pattern spacing" +msgstr "Rozteč podpěr" + +#: src/libslic3r/PrintConfig.cpp:1917 +msgid "Pattern used to generate support material." +msgstr "Vzor použitý pro generování podpěr." + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:36 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:198 +msgid "Perform cut" +msgstr "Provést řez" + +#: src/slic3r/GUI/GUI_Preview.cpp:227 src/libslic3r/GCode/PreviewData.cpp:163 +msgid "Perimeter" +msgstr "Perimetr" + +#: src/libslic3r/PrintConfig.cpp:1339 +msgid "Perimeter extruder" +msgstr "Extruder pro perimetry" + +#: src/slic3r/GUI/PresetHints.cpp:162 +msgid "perimeters" +msgstr "perimetry" + +#: src/libslic3r/PrintConfig.cpp:1330 src/libslic3r/PrintConfig.cpp:1348 +#: src/libslic3r/PrintConfig.cpp:1360 src/libslic3r/PrintConfig.cpp:1370 +msgid "Perimeters" +msgstr "Perimetry" + +#: src/slic3r/GUI/ConfigWizard.cpp:440 +#, possible-c-format +msgid "Pick another vendor supported by %s:" +msgstr "Vyberte si jiného prodejce podporovaného v %s:" + +#: src/slic3r/GUI/ConfigWizard.cpp:423 +msgid "Pick another vendor supported by Slic3r PE:" +msgstr "Vyberte si jiného prodejce podporovaného v Slic3r PE:" + +#: src/libslic3r/PrintConfig.cpp:2430 +msgid "Pillar widening factor" +msgstr "Koeficient rozšiřování podpěry" + +#: src/slic3r/GUI/Tab.cpp:3496 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "Průměr hrotu by měl být menší než průměr podpěry." + +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 +msgid "Place on face [F]" +msgstr "Umístit plochou na podložku [F]" + +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Place one more copy of the selected object" +msgstr "Přidá jednu kopii vybraného objektu" + +#: src/slic3r/GUI/MainFrame.cpp:161 +msgid "Plater" +msgstr "Podložka" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:156 +msgid "Plater Shortcuts" +msgstr "Podložka" + +#: src/slic3r/GUI/GUI.cpp:143 +msgid "Please check and fix your object list." +msgstr "Zkontrolujte a opravte seznam objektů." + +#: src/slic3r/GUI/Tab.cpp:2797 +msgid "Please check your object list before preset changing." +msgstr "Před změnou nastavení zkontrolujte prosím seznam objektů." + +#: lib/Slic3r/GUI/Plater.pm:1897 +msgid "Please install the OpenGL modules to use this feature (see build instructions)." +msgstr "Pro použití této funkce prosím nainstalujte OpenGL moduly (viz instrukce vlastního sestavení)." + +#: src/slic3r/GUI/GUI_App.cpp:742 +msgid "Please, check your changes before." +msgstr "Prosím, nejdříve zkontrolujte provedené změny." + +#: src/libslic3r/PrintConfig.cpp:2235 +msgid "Portrait" +msgstr "Orientace na výšku" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:150 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:193 +msgid "Position" +msgstr "Pozice" + +#: src/slic3r/GUI/Tab.cpp:2265 +msgid "Position (for multi-extruder printers)" +msgstr "Pozice (pro tiskárny s více extrudery)" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:177 +msgid "Position (mm)" +msgstr "Pozice (mm)" + +#: src/libslic3r/PrintConfig.cpp:1553 +msgid "Position of perimeters starting points." +msgstr "Pozice začátku perimetrů." + +#: src/libslic3r/PrintConfig.cpp:2123 +msgid "Position X" +msgstr "Pozice X" + +#: src/libslic3r/PrintConfig.cpp:2130 +msgid "Position Y" +msgstr "Pozice Y" + +#: src/slic3r/GUI/Tab.cpp:1187 src/libslic3r/PrintConfig.cpp:1383 +msgid "Post-processing scripts" +msgstr "Postprodukční skripty" + +#: src/slic3r/GUI/MainFrame.cpp:489 +msgid "Pre&view" +msgstr "Náhled" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:121 src/slic3r/GUI/Preferences.cpp:10 +msgid "Preferences" +msgstr "Nastavení" + +#: src/libslic3r/PrintConfig.cpp:1571 +msgid "Preferred direction of the seam" +msgstr "Preferovaný směr švu" + +#: src/libslic3r/PrintConfig.cpp:1582 +msgid "Preferred direction of the seam - jitter" +msgstr "Preferovaný směr švu - rozkmit" + +#: src/slic3r/GUI/Tab.cpp:2758 +#, possible-c-format +msgid "Preset (%s)" +msgstr "Přednastavení (%s)" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:148 +msgid "Press to scale or rotate selected objects\naround their own center" +msgstr "Stisknutím změníte velikost nebo otočíte vybranými objekty kolem vlastního středu" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 +msgid "Press to select multiple object or move multiple object with mouse" +msgstr "Stisknutím vyberte více objektů nebo přesuňte více objektů pomocí myši" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +#, no-c-format +msgid "Press to snap by 5% in Gizmo scale\nor by 1mm in Gizmo move" +msgstr "Stiskněte pro změnu velikosti s krokem 5%\nnebo pro posun s krokem 1mm" + +#: src/slic3r/GUI/Tab.cpp:2288 +msgid "Preview" +msgstr "Náhled" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Preview Shortcuts" +msgstr "Náhled" + +#: src/slic3r/GUI/MainFrame.cpp:641 +msgid "Previously sliced file (" +msgstr "Dříve slicovaný soubor (" + +#: src/libslic3r/PrintConfig.cpp:1773 +msgid "Prime all printing extruders" +msgstr "Příprava všech tiskových extruderů" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:46 src/slic3r/GUI/Preset.cpp:1274 +msgid "print" +msgstr "tisk" + +#: src/slic3r/GUI/MainFrame.cpp:510 +msgid "Print &Host Upload Queue" +msgstr "Fronta na&hrávání do tiskového serveru" + +#: src/libslic3r/PrintConfig.cpp:439 +msgid "Print contour perimeters from the outermost one to the innermost one instead of the default inverse order." +msgstr "Tisk obrysových perimetrů od vnějších po vnitřní namísto opačného výchozího pořadí." + +#: src/slic3r/GUI/ConfigWizard.cpp:541 +msgid "Print Diameters" +msgstr "Průměry tisku" + +#: src/slic3r/GUI/Tab.cpp:1917 src/slic3r/GUI/Tab.cpp:2074 +msgid "Print Host upload" +msgstr "Nahrání do tiskového serveru" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 +#: src/slic3r/GUI/PrintHostDialogs.cpp:135 +msgid "Print host upload queue" +msgstr "Fronta nahrávaní do tiskového serveru" + +#: src/slic3r/GUI/Tab.hpp:317 src/slic3r/GUI/Tab.hpp:405 +msgid "Print Settings" +msgstr "Nastavení tisku" + +#: src/slic3r/GUI/Plater.cpp:681 +msgid "Print settings" +msgstr "Nastavení tisku" + +#: src/slic3r/GUI/Tab.cpp:1520 +msgid "Print speed override" +msgstr "Přepsání rychlosti tisku" + +#: src/slic3r/GUI/MainFrame.cpp:483 +msgid "Print&er Settings Tab" +msgstr "Panel nastavení tiskárny" + +#: src/slic3r/GUI/Plater.cpp:685 +msgid "Printer" +msgstr "Tiskárna" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:48 src/slic3r/GUI/Preset.cpp:1278 +msgid "printer" +msgstr "tiskárna" + +#: src/libslic3r/PrintConfig.cpp:2274 src/libslic3r/PrintConfig.cpp:2275 +msgid "Printer absolute correction" +msgstr "Absolutní korekce tiskárny" + +#: src/libslic3r/PrintConfig.cpp:2282 src/libslic3r/PrintConfig.cpp:2283 +msgid "Printer gamma correction" +msgstr "Gamma korekce tiskárny" + +#: src/slic3r/GUI/Tab.cpp:926 +msgid "printer model" +msgstr "model tiskárny" + +#: src/libslic3r/PrintConfig.cpp:1402 +msgid "Printer notes" +msgstr "Poznámky o tiskárně" + +#: src/libslic3r/PrintConfig.cpp:2266 src/libslic3r/PrintConfig.cpp:2267 +#: src/libslic3r/PrintConfig.cpp:2268 +msgid "Printer scaling correction" +msgstr "Korekce měřítka tisku" + +#: src/slic3r/GUI/Tab.hpp:368 +msgid "Printer Settings" +msgstr "Nastavení tiskárny" + +#: src/libslic3r/PrintConfig.cpp:42 src/libslic3r/PrintConfig.cpp:43 +msgid "Printer technology" +msgstr "Technologie tisku" + +#: src/libslic3r/PrintConfig.cpp:1396 +msgid "Printer type" +msgstr "Typ tiskárny" + +#: src/libslic3r/PrintConfig.cpp:1417 +msgid "Printer variant" +msgstr "Varianta tiskárny" + +#: src/libslic3r/PrintConfig.cpp:1411 +msgid "Printer vendor" +msgstr "Prodejce tiskárny" + +#: src/libslic3r/Print.cpp:1294 +msgid "Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current extruder (support_material_extruder == 0 or support_material_interface_extruder == 0), all nozzles have to be of the same diameter." +msgstr "Tisk s více extrudery různých průměrů trysek. Má-li být podpěra tisknuta aktuálním extruderem (support_material_extruder == 0 nebo support_material_interface_extruder == 0), musí mít všechny trysky stejný průměr." + +#: lib/Slic3r/GUI/Plater.pm:324 +msgid "Print…" +msgstr "Tisk…" + +#: src/slic3r/GUI/MainFrame.cpp:704 +msgid "Processing " +msgstr "Zpracovávám " + +#: lib/Slic3r/GUI/Plater.pm:713 lib/Slic3r/GUI/Plater.pm:727 +msgid "Processing input file\n" +msgstr "Zpracovávám vstupní soubor\n" + +#: src/slic3r/GUI/Plater.cpp:1600 +#, possible-c-format +msgid "Processing input file %s\n" +msgstr "Zpracovávám vstupní soubor %s\n" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2160 +msgid "Processing small holes" +msgstr "Zpracování malých otvorů" + +#: src/slic3r/GUI/Tab.cpp:1201 src/slic3r/GUI/Tab.cpp:1585 +#: src/slic3r/GUI/Tab.cpp:1993 src/slic3r/GUI/Tab.cpp:2087 +#: src/slic3r/GUI/Tab.cpp:3337 src/slic3r/GUI/Tab.cpp:3446 +msgid "Profile dependencies" +msgstr "Profilové závislosti" + +#: src/slic3r/GUI/FirmwareDialog.cpp:779 +msgid "Progress:" +msgstr "Průběh:" + +#: src/slic3r/GUI/MainFrame.cpp:542 +msgid "Prusa 3D &Drivers" +msgstr "Prusa 3&D Ovladače" + +#: lib/Slic3r/GUI/MainFrame.pm:338 +msgid "Prusa 3D Drivers" +msgstr "Prusa 3D Ovladače" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Prusa Edition &Releases" +msgstr "Vydání P&rusa Edice" + +#: lib/Slic3r/GUI/MainFrame.pm:341 +msgid "Prusa Edition Releases" +msgstr "Vydání Prusa Edice" + +#: src/slic3r/GUI/ConfigWizard.cpp:1109 +msgid "Prusa FFF Technology Printers" +msgstr "Prusa tiskárny technologie FFF" + +#: src/slic3r/GUI/ConfigWizard.cpp:1112 +msgid "Prusa MSLA Technology Printers" +msgstr "Prusa tiskárny technologie MSLA" + +#: src/libslic3r/PrintConfig.cpp:2153 +msgid "Purging after toolchange will 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 "Vyčištění trysky po výměně filamentu se provede uvnitř výplní tohoto objektu. Tím se snižuje množství odpadu, ale může to mít za následek delší dobu tisku v důsledku dodatečných pohybů." + +#: xs/src/libslic3r/PrintConfig.cpp:1996 +msgid "Purging into infill" +msgstr "Čištění do výplně" + +#: xs/src/libslic3r/PrintConfig.cpp:2005 +msgid "Purging into objects" +msgstr "Čištění do objektů" + +#: src/slic3r/GUI/Plater.cpp:456 +msgid "Purging volumes" +msgstr "Objemy čištění" + +#: src/libslic3r/PrintConfig.cpp:2106 +msgid "Purging volumes - load/unload volumes" +msgstr "Objemy čištění - zaváděné / vyjmuté objemy" + +#: src/libslic3r/PrintConfig.cpp:2113 +msgid "Purging volumes - matrix" +msgstr "Objemy čištění - matice" + +#: lib/Slic3r/GUI/MainFrame.pm:232 +msgid "Q&uick Slice…\tCtrl+U" +msgstr "R&ychlé Slicování…\tCtrl+U" + +#: src/slic3r/GUI/Tab.cpp:1019 +msgid "Quality (slower slicing)" +msgstr "Kvalita (pomalejší slicing)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:854 src/slic3r/GUI/GUI_ObjectList.cpp:1139 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1145 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1377 +#, possible-c-format +msgid "Quick Add Settings (%s)" +msgstr "Rychlé přidání nastavení (%s)" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +msgid "Quick slice" +msgstr "Rychlé slicování" + +#: src/slic3r/GUI/MainFrame.cpp:383 +msgid "Quick Slice" +msgstr "Rychlé Slicování" + +#: lib/Slic3r/GUI/MainFrame.pm:238 +msgid "Quick Slice and Save &As…\tCtrl+Alt+U" +msgstr "Rychlé Slicování a Uložit &jako…\tCtrl+Alt+U" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 +msgid "Quick slice and Save as" +msgstr "Rychlé Slicování a Uložit jako" + +#: src/slic3r/GUI/MainFrame.cpp:389 +msgid "Quick Slice and Save As" +msgstr "Rychlé Slicování a Uložit jako" + +#: src/slic3r/GUI/MainFrame.cpp:409 +#, possible-c-format +msgid "Quit %s" +msgstr "Ukončit %s" + +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "Quit Slic3r" +msgstr "Ukončit Slic3r" + +#: src/libslic3r/PrintConfig.cpp:479 +msgid "Radius" +msgstr "Rádius" + +#: src/slic3r/GUI/Tab.cpp:1066 +msgid "Raft" +msgstr "Raft" + +#: src/libslic3r/PrintConfig.cpp:1431 +msgid "Raft layers" +msgstr "Vrstev raftu" + +#: xs/src/slic3r/GUI/Tab.cpp:1299 +msgid "Ramming" +msgstr "Rapidní extruze" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:14 +msgid "Ramming customization" +msgstr "Přizpůsobení rapidní extruze" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:40 +msgid "Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n\nThis is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." +msgstr "Rapidní extruze označuje rychlé vytlačení filamentu těsně před jeho výměnou za jiný v multi material tiskárně s jedním extruderem. Účelem je správně vytvarovat konec vysouvaného filamentu tak, aby neblokoval zasunutí nového filamentu a také mohl být sám později opětovně zasunut. Tento proces je důležitý a rozdílné materiály mohou pro získání optimálního tvaru vyžadovat různé rychlosti extruze. Z tohoto důvodu jsou objemové průtoky při rapidní extruzi uživatelsky upravitelné.\n\nToto nastavení je určeno pro pokročilé uživatele, nesprávné nastavení velmi pravděpodobně povede k zaseknutí filamentu, vybroušení filamentu podávacím kolečkem, atd." + +#: src/slic3r/GUI/WipeTowerDialog.cpp:90 +msgid "Ramming line spacing" +msgstr "Rozestup linek při rapidní extruzi" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:88 +msgid "Ramming line width" +msgstr "Šířka linky při rapidní extruzi" + +#: src/libslic3r/PrintConfig.cpp:662 +msgid "Ramming parameters" +msgstr "Parametry rapidní extruze" + +#: src/slic3r/GUI/Tab.cpp:1545 +msgid "Ramming settings" +msgstr "Nastavení rapidní extruze" + +#: src/libslic3r/PrintConfig.cpp:1559 +msgid "Random" +msgstr "Náhodný" + +#: src/libslic3r/SLAPrint.cpp:72 +msgid "Rasterizing layers" +msgstr "Rasterizace vrstev" + +#: src/slic3r/GUI/UpdateDialogs.cpp:151 +msgid "Re-configure" +msgstr "Přenastavit" + +#: src/slic3r/GUI/FirmwareDialog.cpp:783 +msgid "Ready" +msgstr "Připraveno" + +#: src/slic3r/GUI/Plater.cpp:2406 +msgid "Ready to slice" +msgstr "Připraven ke slicování" + +#: src/slic3r/GUI/MainFrame.cpp:526 src/libslic3r/PrintConfig.cpp:1562 +msgid "Rear" +msgstr "Zezadu" + +#: src/slic3r/GUI/MainFrame.cpp:526 +msgid "Rear View" +msgstr "Pohled zezadu" + +#: src/slic3r/GUI/PresetHints.cpp:264 +#, possible-c-format +msgid "Recommended object thin wall thickness for layer height %.2f and " +msgstr "Doporučená tloušťka stěny objektu pro výšku vrstvy %.2f a" + +#: src/slic3r/GUI/PresetHints.cpp:247 +msgid "Recommended object thin wall thickness: Not available due to invalid layer height." +msgstr "Doporučená tloušťka stěny objektu: Není k dispozici kvůli neplatné výšce vrstvy." + +#: src/slic3r/GUI/GUI_App.cpp:386 src/slic3r/GUI/GUI_App.cpp:395 +msgid "Recreating" +msgstr "Obnovení" + +#: src/slic3r/GUI/BedShapeDialog.cpp:68 +msgid "Rectangular" +msgstr "Obdélníkový" + +#: src/libslic3r/PrintConfig.cpp:398 src/libslic3r/PrintConfig.cpp:796 +#: src/libslic3r/PrintConfig.cpp:1922 +msgid "Rectilinear" +msgstr "Přímočará" + +#: src/libslic3r/PrintConfig.cpp:1923 +msgid "Rectilinear grid" +msgstr "Přímočará mřížka" + +#: src/slic3r/GUI/Tab.cpp:1037 +msgid "Reducing printing time" +msgstr "Zkracování tiskového času" + +#: src/slic3r/GUI/Plater.cpp:2924 +msgid "Reload from Disk" +msgstr "Znovu načíst z Disku" + +#: src/slic3r/GUI/Plater.cpp:2924 +msgid "Reload the selected file from Disk" +msgstr "Znovu načíst vybraný objekt z Disku" + +#: src/slic3r/GUI/Preferences.cpp:36 +msgid "Remember output directory" +msgstr "Pamatovat si výstupní složku" + +#: src/slic3r/GUI/Tab.cpp:2935 +msgid "remove" +msgstr "odebrat" + +#: src/slic3r/GUI/Tab.cpp:2937 +msgid "Remove" +msgstr "Odebrat" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:859 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:912 +msgid "Remove all points" +msgstr "Odebrat všechny body" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 +msgid "Remove Instance from selected object" +msgstr "Odebrat instanci vybraného objektu" + +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Remove one copy of the selected object" +msgstr "Odstraní jednu kopii vybraného objektu" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1230 +msgid "Remove point" +msgstr "Odebrat bod" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1233 +msgid "Remove point from selection" +msgstr "Odebrat bod z výběru" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:855 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1237 +msgid "Remove selected points" +msgstr "Odebrat označené body" + +#: src/slic3r/GUI/Plater.cpp:2891 src/slic3r/GUI/Plater.cpp:2909 +msgid "Remove the selected object" +msgstr "Odstranit vybraný objekt" + +#: src/slic3r/GUI/ConfigWizard.cpp:305 +msgid "Remove user profiles - install from scratch (a snapshot will be taken beforehand)" +msgstr "Odstranit uživatelské profily - čistá instalace (nejprve bude provedena záloha)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1200 +msgid "Rename" +msgstr "Přejmenovat" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2709 +msgid "Renaming" +msgstr "Přejmenování" + +#: src/libslic3r/PrintConfig.cpp:3125 +msgid "Render with a software renderer" +msgstr "Vykreslení pomocí softwaru" + +#: src/libslic3r/PrintConfig.cpp:3126 +msgid "Render with a software renderer. The bundled MESA software renderer is loaded instead of the default OpenGL driver." +msgstr "Vykreslení pomocí softwaru. Namísto výchozího ovladače OpenGL je načten dodaný softwarový renderer MESA." + +#: src/slic3r/GUI/MainFrame.cpp:772 src/libslic3r/PrintConfig.cpp:3058 +msgid "Repair" +msgstr "Oprava" + +#: lib/Slic3r/GUI/MainFrame.pm:258 +msgid "Repair STL file…" +msgstr "Opravit soubor STL…" + +#: src/slic3r/Utils/FixModelByWin10.cpp:387 +msgid "Repaired 3MF file contains more than one object" +msgstr "Opravený soubor 3MF obsahuje více než jeden objekt." + +#: src/slic3r/Utils/FixModelByWin10.cpp:391 +msgid "Repaired 3MF file contains more than one volume" +msgstr "Opravený soubor 3MF obsahuje více než jedno těleso." + +#: src/slic3r/Utils/FixModelByWin10.cpp:385 +msgid "Repaired 3MF file does not contain any object" +msgstr "Opravený soubor 3MF neobsahuje žádný objekt" + +#: src/slic3r/Utils/FixModelByWin10.cpp:389 +msgid "Repaired 3MF file does not contain any volume" +msgstr "Opravený soubor 3MF neobsahuje žádný objemové těleso" + +#: src/slic3r/Utils/FixModelByWin10.cpp:242 +msgid "Repairing model by the Netfabb service" +msgstr "Opravování modelu službou Netfabb" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:113 src/slic3r/GUI/MainFrame.cpp:395 +msgid "Repeat last quick slice" +msgstr "Opakovat poslední rychlé slicování" + +#: src/slic3r/GUI/MainFrame.cpp:395 +msgid "Repeat Last Quick Slice" +msgstr "Opakovat poslední rychlé slicování" + +#: src/slic3r/GUI/MainFrame.cpp:561 +msgid "Report an I&ssue" +msgstr "Nahlá&sit chybu" + +#: lib/Slic3r/GUI/MainFrame.pm:361 +msgid "Report an Issue" +msgstr "Nahlásit chybu" + +#: src/slic3r/GUI/MainFrame.cpp:561 +#, possible-c-format +msgid "Report an issue on %s" +msgstr "Nahlásit chybu v programu %s" + +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an issue on the Slic3r Prusa Edition" +msgstr "Nahlásit chybu ve Slic3eru Prusa Edice" + +#: src/slic3r/Utils/PresetUpdater.cpp:590 +#, possible-c-format +msgid "requires max. %s" +msgstr "vyžaduje max. %s" + +#: src/slic3r/Utils/PresetUpdater.cpp:588 +#, possible-c-format +msgid "requires min. %s" +msgstr "vyžaduje min. %s" + +#: src/slic3r/Utils/PresetUpdater.cpp:583 +#, possible-c-format +msgid "requires min. %s and max. %s" +msgstr "vyžaduje min. %s a max. %s" + +#: src/slic3r/GUI/FirmwareDialog.cpp:772 +msgid "Rescan" +msgstr "Skenovat" + +#: src/slic3r/GUI/Tab.cpp:1879 +msgid "Rescan serial ports" +msgstr "Znovu prohledat sériové porty" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1239 +msgid "Reset clipping plane" +msgstr "Obnovit řezovou rovinu" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:928 +msgid "Reset direction" +msgstr "Resetovat směr" + +#: src/libslic3r/PrintConfig.cpp:1441 +msgid "Resolution" +msgstr "Rozlišení" + +#: src/libslic3r/PrintConfig.cpp:1459 +msgid "Retract amount before wipe" +msgstr "Délka retrakce před očištěním" + +#: src/libslic3r/PrintConfig.cpp:1467 +msgid "Retract on layer change" +msgstr "Retrakce při změně vrstvy" + +#: src/slic3r/GUI/Tab.cpp:2268 +msgid "Retraction" +msgstr "Retrakce" + +#: src/libslic3r/PrintConfig.cpp:1453 +msgid "Retraction is not triggered when travel moves are shorter than this length." +msgstr "Retrakce není spuštěna, pokud jsou rychloposuny pojezdu kratší než tato délka." + +#: src/libslic3r/PrintConfig.cpp:1474 +msgid "Retraction Length" +msgstr "Vzdálenost retrakce" + +#: src/libslic3r/PrintConfig.cpp:1482 +msgid "Retraction Length (Toolchange)" +msgstr "Vzdálenost retrakce (při změně extruderu)" + +#: src/libslic3r/PrintConfig.cpp:1534 src/libslic3r/PrintConfig.cpp:1535 +msgid "Retraction Speed" +msgstr "Rychlost retrakce" + +#: src/slic3r/GUI/Tab.cpp:2284 +msgid "Retraction when tool is disabled (advanced settings for multi-extruder setups)" +msgstr "Retrakce pro neaktivní extruder (pokročilé nastavení pro tiskárny typu MultiMaterial)" + +#: src/slic3r/GUI/GUI_Preview.cpp:244 +msgid "Retractions" +msgstr "Retrakce" + +#: src/slic3r/GUI/MainFrame.cpp:528 +msgid "Right" +msgstr "Zprava" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:279 +msgid "Right button click the icon to change the object settings" +msgstr "Klepnutím pravým tlačítkem myši na ikonu změníte nastavení objektu" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:250 +msgid "Right button click the icon to fix STL through Netfabb" +msgstr "Klepnutím pravým tlačítkem myši se spustí oprava STL souboru pomocí služby Netfabb" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:598 +msgid "Right mouse click - remove point" +msgstr "Kliknutí pravým tlačítkem myši - odebrání bodu" + +#: src/slic3r/GUI/MainFrame.cpp:528 +msgid "Right View" +msgstr "Pohled zprava" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:233 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:253 +#: src/libslic3r/PrintConfig.cpp:3062 +msgid "Rotate" +msgstr "Otočit" + +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate 45° clockwise" +msgstr "Otočit o 45° ve směru hodinových ručiček" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate 45° counter-clockwise" +msgstr "Otočit o 45° proti směru hodinových ručiček" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Rotate around " +msgstr "Otočit okolo" + +#: src/libslic3r/PrintConfig.cpp:3067 +msgid "Rotate around X" +msgstr "Otočit okolo osy X" + +#: src/libslic3r/PrintConfig.cpp:3072 +msgid "Rotate around Y" +msgstr "Otočit okolo osy Y" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:35 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:195 +msgid "Rotate lower part upwards" +msgstr "Otočit spodní část řezem dolů" + +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate the selected object by 45° clockwise" +msgstr "Otočit vybraný objekt o 45° ve směru hodinových ručiček" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate the selected object by 45° counter-clockwise" +msgstr "Otočit vybraný objekt o 45° proti směru hodinových ručiček" + +#: lib/Slic3r/GUI/Plater.pm:2236 +msgid "Rotate the selected object by an arbitrary angle" +msgstr "Otočit vybraným objektem o libovolný úhel" + +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Rotate the selected object by an arbitrary angle around X axis" +msgstr "Otočit vybraným objektem o libovolný úhel kolem osy X" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Rotate the selected object by an arbitrary angle around Y axis" +msgstr "Otočit vybraným objektem o libovolný úhel kolem osy Y" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Rotate the selected object by an arbitrary angle around Z axis" +msgstr "Otočit vybraným objektem o libovolný úhel kolem osy Z" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +msgid "Rotate [R]" +msgstr "Otočit [R]" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:151 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:194 +msgid "Rotation" +msgstr "Otáčení" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:491 +msgid "Rotation (deg)" +msgstr "Otáčení (stupně)" + +#: src/libslic3r/PrintConfig.cpp:3068 +msgid "Rotation angle around the X axis in degrees." +msgstr "Úhel otočení kolem osy X ve stupních." + +#: src/libslic3r/PrintConfig.cpp:3073 +msgid "Rotation angle around the Y axis in degrees." +msgstr "Úhel otočení kolem osy Y ve stupních." + +#: src/libslic3r/PrintConfig.cpp:3063 +msgid "Rotation angle around the Z axis in degrees." +msgstr "Úhel otočení kolem osy Z ve stupních." + +#: src/libslic3r/SLA/SLASupportTree.cpp:2158 +msgid "Routing supports to model surface" +msgstr "Směrování podpěr k povrchu modelu" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2157 +msgid "Routing to ground" +msgstr "Směrování k zemi" + +#: src/slic3r/GUI/ConfigWizard.cpp:298 src/slic3r/GUI/GUI_App.cpp:658 +#, possible-c-format +msgid "Run %s" +msgstr "Spustit %s" + +#: src/slic3r/GUI/RammingChart.cpp:76 src/slic3r/GUI/RammingChart.cpp:81 +#: src/slic3r/GUI/WipeTowerDialog.cpp:82 src/libslic3r/PrintConfig.cpp:612 +#: src/libslic3r/PrintConfig.cpp:656 src/libslic3r/PrintConfig.cpp:671 +#: src/libslic3r/PrintConfig.cpp:2243 src/libslic3r/PrintConfig.cpp:2252 +#: src/libslic3r/PrintConfig.cpp:2312 src/libslic3r/PrintConfig.cpp:2319 +msgid "s" +msgstr "s" + +#: src/slic3r/GUI/MainFrame.cpp:677 src/slic3r/GUI/Tab.cpp:3239 +msgid "Save " +msgstr "Uložit " + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1023 +msgid "Save changes?" +msgstr "Uložit změny?" + +#: src/libslic3r/PrintConfig.cpp:2997 +msgid "Save config file" +msgstr "Uložit konfigurační soubor" + +#: src/slic3r/GUI/MainFrame.cpp:786 +msgid "Save configuration as:" +msgstr "Uložit konfiguraci jako:" + +#: src/libslic3r/PrintConfig.cpp:2998 +msgid "Save configuration to the specified file." +msgstr "Uložit konfiguraci do zadaného souboru." + +#: src/slic3r/GUI/Tab.cpp:130 +msgid "Save current " +msgstr "Uložit stávající " + +#: src/slic3r/GUI/MainFrame.cpp:341 +msgid "Save current project file" +msgstr "Uložit stávající projekt" + +#: src/slic3r/GUI/MainFrame.cpp:343 +msgid "Save current project file as" +msgstr "Uložit stávající projekt jako" + +#: src/slic3r/GUI/Plater.cpp:1938 +msgid "Save file as:" +msgstr "Uložit soubor jako:" + +#: src/slic3r/GUI/Plater.cpp:3433 +msgid "Save G-code file as:" +msgstr "Uložit G-code jako:" + +#: src/slic3r/GUI/MainFrame.cpp:757 +msgid "Save OBJ file (less prone to coordinate errors than STL) as:" +msgstr "Uložit soubor OBJ (méně náchylný na chyby souřadnic než STL) jako:" + +#: src/slic3r/GUI/Tab.hpp:417 +msgid "Save preset" +msgstr "Uložit přednastavení" + +#: src/slic3r/GUI/MainFrame.cpp:843 +msgid "Save presets bundle as:" +msgstr "Uložit balík přednastavení jako:" + +#: src/slic3r/GUI/MainFrame.cpp:343 +msgid "Save Project &as" +msgstr "Uložit Projekt j&ako" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:109 +msgid "Save project (3MF)" +msgstr "Uložit projekt (3MF)" + +#: src/slic3r/GUI/Plater.cpp:3433 +msgid "Save SL1 file as:" +msgstr "Uložit SL1 soubor jako:" + +#: src/slic3r/GUI/MainFrame.cpp:692 +msgid "Save zip file as:" +msgstr "Uložit ZIP soubor jako:" + +#: src/slic3r/Utils/FixModelByWin10.cpp:263 +#: src/slic3r/Utils/FixModelByWin10.cpp:270 +#: src/slic3r/Utils/FixModelByWin10.cpp:302 +msgid "Saving mesh into the 3MF container failed." +msgstr "Ukládání meshe do 3MF kontejneru selhalo." + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:152 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:234 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:254 +#: src/libslic3r/PrintConfig.cpp:3077 +msgid "Scale" +msgstr "Měřítko" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:276 +msgid "Scale (%)" +msgstr "Měřítko (%)" + +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +msgid "Scale along " +msgstr "Upravit rozměr podél " + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:195 +msgid "Scale factors" +msgstr "Měřítka" + +#: lib/Slic3r/GUI/Plater.pm:2262 lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale the selected object along a single axis" +msgstr "Změnit rozměr vybraného objektu podél jedné osy" + +#: lib/Slic3r/GUI/Plater.pm:2267 lib/Slic3r/GUI/Plater.pm:2283 +msgid "Scale the selected object along the X axis" +msgstr "Změnit rozměr vybraného objektu podél osy X" + +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Scale the selected object along the XYZ axes" +msgstr "Změnit rozměr vybraného objektu podél os XYZ" + +#: lib/Slic3r/GUI/Plater.pm:2270 lib/Slic3r/GUI/Plater.pm:2286 +msgid "Scale the selected object along the Y axis" +msgstr "Změnit rozměr vybraného objektu podél osy Y" + +#: lib/Slic3r/GUI/Plater.pm:2273 lib/Slic3r/GUI/Plater.pm:2289 +msgid "Scale the selected object along the Z axis" +msgstr "Změnit rozměr vybraného objektu podél osy Z" + +#: src/libslic3r/PrintConfig.cpp:3086 +msgid "Scale to Fit" +msgstr "Změnit měřítko, aby se objekt vešel do tiskového prostoru" + +#: src/libslic3r/PrintConfig.cpp:3087 +msgid "Scale to fit the given volume." +msgstr "Změnit velikost, aby se objekt vešel do zadaného tiskového prostoru." + +#: lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale to size" +msgstr "Upravit do rozměru" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:51 +msgid "Scale [S]" +msgstr "Upravit velikost [S]" + +#: lib/Slic3r/GUI/Plater.pm:260 lib/Slic3r/GUI/Plater.pm:276 +msgid "Scale…" +msgstr "Velikost…" + +#: src/libslic3r/PrintConfig.cpp:3078 +msgid "Scaling factor or percentage." +msgstr "Procentuální měřítko." + +#: src/libslic3r/PrintConfig.cpp:1551 +msgid "Seam position" +msgstr "Pozice švu" + +#: src/libslic3r/PrintConfig.cpp:1572 +msgid "Seam preferred direction" +msgstr "Preferovaný směr švu" + +#: src/libslic3r/PrintConfig.cpp:1581 +msgid "Seam preferred direction jitter" +msgstr "Seam preferred direction jitter" + +#: src/slic3r/GUI/BonjourDialog.cpp:218 +msgid "Searching for devices" +msgstr "Hledám zařízení" + +#: src/slic3r/GUI/Plater.cpp:2190 +msgid "Searching for optimal orientation" +msgstr "Hledání optimální orientace" + +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Select &Controller Tab\tCtrl+T" +msgstr "Zobrazit panel Ovladač\tCtrl+T" + +#: lib/Slic3r/GUI/MainFrame.pm:311 +msgid "Select &Filament Settings Tab\tCtrl+3" +msgstr "Zobrazit panel Nastavení filamentu\tCtrl+3" + +#: lib/Slic3r/GUI/MainFrame.pm:294 +msgid "Select &Plater Tab\tCtrl+1" +msgstr "Zobrazit panel Podložka\tCtrl+1" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:108 +msgid "Select all" +msgstr "Vybrat vše" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:136 +msgid "Select All objects" +msgstr "Vybrat všechny objekty" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1236 +msgid "Select all points" +msgstr "Vybrat všechny body" + +#: src/slic3r/GUI/ConfigWizard.cpp:1089 +msgid "Select all standard printers" +msgstr "Vybrat všechny standardní tiskárny" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1234 +msgid "Select by rectangle" +msgstr "Označit obdélníkovým výběrem myši" + +#: src/slic3r/GUI/MainFrame.cpp:806 src/slic3r/GUI/MainFrame.cpp:870 +msgid "Select configuration to load:" +msgstr "Zvolte konfiguraci k načtení:" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2834 +msgid "Select extruder number for selected objects and/or parts" +msgstr "Vyberte číslo extruderu pro vybrané objekty a / nebo části" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2847 +msgid "Select extruder number:" +msgstr "Vyberte číslo extruderu:" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:117 +msgid "Select Filament Settings Tab" +msgstr "Zobrazit panel Nastavení filamentu" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 +msgid "Select multiple object/Move multiple object" +msgstr "Vybrat více objektů/Přesunout více objektů" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1251 +msgid "Select new extruder for the object/part" +msgstr "Vyberte nový extruder pro objekt/část" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:109 +msgid "Select none" +msgstr "Odznačit vše" + +#: lib/Slic3r/GUI/MainFrame.pm:308 +msgid "Select P&rint Settings Tab\tCtrl+2" +msgstr "Zobrazit panel Nastavení tisku\tCtrl+2" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:114 +msgid "Select Plater Tab" +msgstr "Zobrazit panel Podložka" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:116 +msgid "Select Print Settings Tab" +msgstr "Zobrazit panel Nastavení tisku" + +#: lib/Slic3r/GUI/MainFrame.pm:314 +msgid "Select Print&er Settings Tab\tCtrl+4" +msgstr "Zobrazit panel Nastavení tiskárny\tCtrl+4" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:118 +msgid "Select Printer Settings Tab" +msgstr "Zobrazit panel Nastavení tiskárny" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:917 +msgid "Select showing settings" +msgstr "Zvolte nastavení zobrazení " + +#: src/slic3r/GUI/GUI_App.cpp:524 +msgid "Select the language" +msgstr "Výběr jazyka" + +#: src/slic3r/GUI/Tab.cpp:57 +msgid "Select the print profiles this profile is compatible with." +msgstr "Vyberte tiskové profily, s nimiž je tento profil kompatibilní." + +#: src/slic3r/GUI/Tab.cpp:51 +msgid "Select the printers this profile is compatible with." +msgstr "Vyberte tiskárny, s nimiž je tento profil kompatibilní." + +#: src/slic3r/GUI/MainFrame.cpp:744 +msgid "Select the STL file to repair:" +msgstr "Vyberte STL soubor k opravě:" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2545 +msgid "Select type of part" +msgstr "Vyberte typ součásti" + +#: src/slic3r/GUI/Plater.cpp:421 +msgid "Select what kind of support do you need" +msgstr "Vyberte typ podpěr, které potřebujete" + +#: src/slic3r/GUI/MainFrame.cpp:444 +msgid "Selects all objects" +msgstr "Vybrat všechny objekty" + +#: src/slic3r/GUI/Plater.cpp:3822 +msgid "Send G-code" +msgstr "Odeslat G-code" + +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Send G-Code to printer" +msgstr "Odeslat G-code do tiskárny" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:33 +msgid "Send G-Code to printer host" +msgstr "Odeslat G-Code do tiskového serveru" + +#: src/slic3r/GUI/Plater.cpp:731 src/slic3r/GUI/Plater.cpp:3822 +msgid "Send to printer" +msgstr "Odeslat do tiskárny" + +#: xs/src/slic3r/Utils/OctoPrint.cpp:111 lib/Slic3r/GUI/Plater.pm:1558 +msgid "Sending G-code file to the OctoPrint server..." +msgstr "Odesílání souboru G-code na server OctoPrint…" + +#: src/slic3r/GUI/Tab.cpp:1169 +msgid "Sequential printing" +msgstr "Sekvenční tisk" + +#: src/slic3r/GUI/Tab.cpp:1874 src/libslic3r/PrintConfig.cpp:1591 +msgid "Serial port" +msgstr "Sériový port" + +#: src/libslic3r/PrintConfig.cpp:1599 +msgid "Serial port speed" +msgstr "Rychlost sériového portu" + +#: src/slic3r/GUI/FirmwareDialog.cpp:769 +msgid "Serial port:" +msgstr "Sériový port:" + +#: src/slic3r/GUI/BonjourDialog.cpp:74 +msgid "Service name" +msgstr "Název služby" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1192 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1331 +msgid "Set as a Separated Object" +msgstr "Změnit na oddělený objekt" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1331 +msgid "Set as a Separated Objects" +msgstr "Převést na oddělené objekty" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2833 +msgid "Set extruder for selected items" +msgstr "Zvolte extruder pro vybrané položky" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 +msgid "Set lower thumb to current slider thumb" +msgstr "Aktivovat spodní ukazatel aktivního posuvníku" + +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Set number of copies" +msgstr "Zadat počet kopií" + +#: lib/Slic3r/GUI/Plater.pm:2224 +msgid "Set number of copies…" +msgstr "Zadat počet kopií…" + +#: src/libslic3r/PrintConfig.cpp:1053 +msgid "Set silent mode for the G-code flavor" +msgstr "Nastavit přiznak G-codu pro tichý režim" + +#: src/libslic3r/PrintConfig.cpp:2228 +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 "Nastavte skutečnou orientaci LCD displeje uvnitř SLA tiskárny. Režim Orientace na výšku převrátí význam parametrů šířky a výšky a výstupní obrazy budou otočeny o 90 stupňů." + +#: src/slic3r/GUI/ConfigWizard.cpp:527 +msgid "Set the shape of your printer's bed." +msgstr "Nastavte tvar a rozměry vaší tiskové podložky." + +#: src/libslic3r/PrintConfig.cpp:524 +msgid "Set this to a non-zero value to allow a manual extrusion width. If left to zero, Slic3r derives extrusion widths from the nozzle diameter (see the tooltips for perimeter extrusion width, infill extrusion width etc). If expressed as percentage (for example: 230%), it will be computed over layer height." +msgstr "Nastavením kladné hodnoty povolíte manuální šířku extruze. Pokud je hodnota ponechána na nule, Slic3r odvozuje šířku extruze z průměru trysky (viz nápovědy pro šířku extruze perimetru, šířku extruze výplně apod.). Pokud je hodnota vyjádřena procenty (například: 230%), vypočítá se z výšky vrstvy." + +#: src/libslic3r/PrintConfig.cpp:417 +msgid "Set this to a non-zero value to set a manual extrusion width for external perimeters. If left zero, default extrusion width will be used if set, otherwise 1.125 x nozzle diameter will be used. If expressed as percentage (for example 200%), it will be computed over layer height." +msgstr "Nastavením na kladnou hodnotu, definuje šířku manuální extruze pro vnější obvod. Pokud je ponechána nula, použije se výchozí šířka extruze, pokud je nastavena, jinak se použije průměr trysky 1,125 x. Pokud je hodnota vyjádřena jako procento (například 200%), vypočítá se podle výšky vrstvy." + +#: src/libslic3r/PrintConfig.cpp:831 +msgid "Set this to a non-zero value to set a manual extrusion width for first layer. You can use this to force fatter extrudates for better adhesion. If expressed as percentage (for example 120%) it will be computed over first layer height. If set to zero, it will use the default extrusion width." +msgstr "Nastavením kladné hodnoty zvolíte manuální šířku vytlačování pro první vrstvu. Toto můžete použít k vytlačování tlustší extruze pro lepší přilnavost. Pokud je vyjádřeno jako procenty (například 120%), bude vypočteno z výšky první vrstvy. Pokud je nastavena na nulu, použije se výchozí šířka vytlačování." + +#: src/libslic3r/PrintConfig.cpp:1689 +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, otherwise 1.125 x nozzle diameter will be used. If expressed as percentage (for example 90%) it will be computed over layer height." +msgstr "Zadejte kladnou hodnotu, chcete-li nastavit manuálně šířku extruze pro výplň plných povrchů. Pokud je ponechána nula, použije se standardní šířka extruze, pokud je nastavena, jinak se použije průměr trysky 1,125 x. Pokud je vyjádřena procenty (například 90%), bude vypočtena z výšky vrstvy." + +#: src/libslic3r/PrintConfig.cpp:2019 +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 regions and get a smoother finish. If left zero, default extrusion width will be used if set, otherwise nozzle diameter will be used. If expressed as percentage (for example 90%) it will be computed over layer height." +msgstr "Zadejte kladnou hodnotu, chcete-li nastavit manuálně šířku extruze pro výplň vrchních ploch. Možná budete chtít použít tenčí extruzi, abyste vyplnili všechny úzké oblasti a získali hladší povrch. Pokud je ponechána nula, použije se výchozí šířka extruze, pokud je nastavena, jinak se použije průměr trysky. Pokud je vyjádřena procenty (například 90%), bude vypočtena z výšky vrstvy." + +#: src/libslic3r/PrintConfig.cpp:963 +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 nozzle diameter will be used. You may want to use fatter extrudates to speed up the infill and make your parts stronger. If expressed as percentage (for example 90%) it will be computed over layer height." +msgstr "Nastavením kladné hodnoty upravíte manuálně šířku extruze pro výplň. Pokud je ponechána nula, použije se standardní šířka extruze, pokud je nastavena, jinak se použije průměr trysky 1,125 x. Je možné, že budete chtít použít tlustší extruze, pro zrychlení výplně a zpevnění vašich výtisků. Pokud je vyjádřeno jako procenty (například 90%), bude vypočteno z výšky vrstvy." + +#: src/libslic3r/PrintConfig.cpp:1350 +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 left zero, default extrusion width will be used if set, otherwise 1.125 x nozzle diameter will be used. If expressed as percentage (for example 200%) it will be computed over layer height." +msgstr "Nastavením na kladnou hodnotu nastavíte manuálně šířku vytlačování perimetrů. Chcete-li získat přesnější povrchy, můžete použít tenčí extruze. Pokud je ponechána nula, použije se standardní šířka extruze, pokud je nastavena, jinak se použije průměr trysky 1,125 x. Pokud je vyjádřeno procenty (například 200%), vypočte se z výšky vrstvy." + +#: src/libslic3r/PrintConfig.cpp:1862 +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, otherwise nozzle diameter will be used. If expressed as percentage (for example 90%) it will be computed over layer height." +msgstr "Zadejte kladnou hodnotu, chcete-li nastavit manuálně šířku extruze pro podpěry. Pokud je ponechána nula, použije se výchozí šířka extruze, pokud je nastavena, jinak se použije průměr trysky. Pokud je vyjádřena procenty (například 90%), bude vypočtena z výšky vrstvy." + +#: src/libslic3r/PrintConfig.cpp:480 +msgid "Set this to the clearance radius around your extruder. If the extruder is not centered, choose the largest value for safety. This setting is used to check for collisions and to display the graphical preview in the plater." +msgstr "Zadejte horizontální rádius kolizního prostoru okolo extruderu. Pokud tryska není v centru tohoto rádiusu, zvolte nejdelší vzdálenost. Toto nastavení slouží ke kontrole kolizí a zobrazení grafického náhledu na podložce." + +#: src/libslic3r/PrintConfig.cpp:65 +msgid "Set this to the maximum height that can be reached by your extruder while printing." +msgstr "Nastavte tuto hodnotu na maximální výšku, která může být dosažena extruderem během tisku." + +#: src/libslic3r/PrintConfig.cpp:469 +msgid "Set this to the vertical distance between your nozzle tip and (usually) the X carriage rods. In other words, this is the height of the clearance cylinder around your extruder, and it represents the maximum depth the extruder can peek before colliding with other printed objects." +msgstr "Zadejte vertikální vzdálenost mezi tryskou a (obvykle) tyčemi osy X. Jinými slovy, je to výška kolizního prostoru okolo extruderu a představuje maximální hloubku, které může extruder dosáhnout před kolizí s jinými, již vytištěnými, objekty." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:184 +msgid "Set upper thumb to current slider thumb" +msgstr "Aktivovat horní ukazatel aktivního posuvníku" + +#: src/slic3r/GUI/BedShapeDialog.cpp:143 +msgid "Settings" +msgstr "Nastavení" + +#: lib/Slic3r/GUI/Plater.pm:264 lib/Slic3r/GUI/Plater.pm:279 +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Settings…" +msgstr "Nastavení…" + +#: src/slic3r/GUI/BedShapeDialog.cpp:60 +msgid "Shape" +msgstr "Tvar" + +#: src/slic3r/GUI/GUI_Preview.cpp:246 +msgid "Shells" +msgstr "Skořápky" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:599 +msgid "Shift + Left (+ drag) - select point(s)" +msgstr "Shift + Levé tlačítko (klik nebo tažení) - výběr bodu(ů)" + +#: src/slic3r/GUI/GUI_Preview.cpp:221 +msgid "Show" +msgstr "Zobrazit" + +#: src/slic3r/GUI/MainFrame.cpp:559 +msgid "Show &Configuration Folder" +msgstr "Otevřít adresář nastavení" + +#: src/slic3r/GUI/MainFrame.cpp:563 +msgid "Show about dialog" +msgstr "Zobrazit okno o Slic3ru" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:339 +msgid "Show advanced settings" +msgstr "Zobrazit rozšířená nastavení" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:158 +msgid "Show error message" +msgstr "Zobrazit chybovou hlášku" + +#: src/slic3r/GUI/Preferences.cpp:84 +msgid "Show incompatible print and filament presets" +msgstr "Zobrazit nekompatibilní přednastavení tisku a filamentu" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:126 +msgid "Show keyboard shortcuts list" +msgstr "Zobrazit přehled klávesových zkratek" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:339 +msgid "Show simplified settings" +msgstr "Zobrazit jednoduché nastavení" + +#: src/slic3r/GUI/MainFrame.cpp:557 +msgid "Show system information" +msgstr "Zobrazit systémové informace" + +#: src/slic3r/GUI/MainFrame.cpp:487 +msgid "Show the 3D editing view" +msgstr "Zobrazit 3D editaci" + +#: src/slic3r/GUI/MainFrame.cpp:489 +msgid "Show the 3D slices preview" +msgstr "Zobrazit 3D náhled vrstev" + +#: src/slic3r/GUI/MainFrame.cpp:480 +msgid "Show the filament settings" +msgstr "Zobrazit nastavení filamentu" + +#: src/libslic3r/PrintConfig.cpp:2983 +msgid "Show the full list of print/G-code configuration options." +msgstr "Zobrazit kompletní seznam možností konfigurace tisku / G-codu." + +#: src/libslic3r/PrintConfig.cpp:2988 +msgid "Show the full list of SLA print configuration options." +msgstr "Zobrazit kompletní seznam možností konfigurace SLA tisku." + +#: src/slic3r/GUI/MainFrame.cpp:566 +msgid "Show the list of the keyboard shortcuts" +msgstr "Zobrazit seznam klávesových zkratek" + +#: src/slic3r/GUI/MainFrame.cpp:471 +msgid "Show the plater" +msgstr "Zobrazit podložku" + +#: src/slic3r/GUI/MainFrame.cpp:478 +msgid "Show the print settings" +msgstr "Zobrazit nastavení tisku" + +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Show the printer controller" +msgstr "Zobrazit ovladač tiskárny" + +#: src/slic3r/GUI/MainFrame.cpp:483 +msgid "Show the printer settings" +msgstr "Zobrazit nastavení tiskárny" + +#: src/libslic3r/PrintConfig.cpp:2977 +msgid "Show this help." +msgstr "Zobrazí tuto nápovědu." + +#: src/slic3r/GUI/MainFrame.cpp:559 +msgid "Show user configuration folder (datadir)" +msgstr "Zobrazit uživatelský adresář konfigurace (datadir)" + +#: src/slic3r/GUI/Tab.cpp:2157 +msgid "Silent" +msgstr "Tichý" + +#: src/slic3r/GUI/Plater.cpp:1077 +msgid "silent mode" +msgstr "tichý režim" + +#: src/slic3r/GUI/GUI_App.cpp:674 src/slic3r/GUI/wxExtensions.cpp:2459 +msgid "Simple" +msgstr "Jednoduchý" + +#: src/slic3r/GUI/GUI_App.cpp:674 +msgid "Simple View Mode" +msgstr "Jednoduchý režim" + +#: src/slic3r/GUI/Tab.cpp:2231 src/slic3r/GUI/Tab.cpp:2239 +msgid "Single extruder MM setup" +msgstr "Nastavení jednoho extruderu MM" + +#: src/libslic3r/PrintConfig.cpp:1767 +msgid "Single Extruder Multi Material" +msgstr "MultiMaterial tisk s jedním extrudérem" + +#: src/slic3r/GUI/Tab.cpp:2240 +msgid "Single extruder multimaterial parameters" +msgstr "Parametry jednoho multi materiálového extruderu" + +#: src/slic3r/GUI/BedShapeDialog.cpp:72 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:153 src/slic3r/GUI/Plater.cpp:137 +#: src/slic3r/GUI/Tab.cpp:2257 +msgid "Size" +msgstr "Rozměr" + +#: src/slic3r/GUI/Tab.cpp:1813 src/slic3r/GUI/Tab.cpp:2014 +msgid "Size and coordinates" +msgstr "Rozměry a počátek" + +#: src/slic3r/GUI/BedShapeDialog.cpp:73 +msgid "Size in X and Y of the rectangular plate." +msgstr "Rozměr obdélníkové tiskové podložky v ose X a Y." + +#: src/slic3r/GUI/GUI_Preview.cpp:235 src/slic3r/GUI/Tab.cpp:1050 +#: src/libslic3r/GCode/PreviewData.cpp:171 +msgid "Skirt" +msgstr "Obrys" + +#: src/slic3r/GUI/Tab.cpp:1049 +msgid "Skirt and brim" +msgstr "Obrys a límec" + +#: src/libslic3r/PrintConfig.cpp:1617 +msgid "Skirt height" +msgstr "Výška obrysu" + +#: src/libslic3r/PrintConfig.cpp:1626 +msgid "Skirt Loops" +msgstr "Počet obrysových smyček" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1200 +msgid "SLA gizmo keyboard shortcuts" +msgstr "Klávesové zkratky pro SLA gizma" + +#: src/slic3r/GUI/Plater.cpp:684 src/slic3r/GUI/Preset.cpp:1277 +msgid "SLA material" +msgstr "SLA materiál" + +#: src/slic3r/GUI/Plater.cpp:683 src/slic3r/GUI/Preset.cpp:1276 +msgid "SLA print" +msgstr "SLA tisk" + +#: src/libslic3r/PrintConfig.cpp:2331 +msgid "SLA print material notes" +msgstr "Poznámky pro SLA materiál" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:995 +msgid "SLA Support Points [L]" +msgstr "SLA Podpěrné Body [L]" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1055 +msgid "Slab" +msgstr "Deska" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Slic3r &Manual" +msgstr "Slic3r návod" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Slic3r &Website" +msgstr "Slic3r &Webová stránka" + +#: src/libslic3r/PrintConfig.cpp:1268 +msgid "Slic3r can upload G-code files to a printer host. This field must contain the kind of the host." +msgstr "Slic3r může nahrát soubory G-code do tiskového serveru. Toto pole musí obsahovat druh tiskového serveru." + +#: src/libslic3r/PrintConfig.cpp:89 +msgid "Slic3r can upload G-code files to a printer host. This field should contain the API Key or the password required for authentication." +msgstr "Slic3r může nahrát soubory do tiskového serveru. Toto pole by mělo obsahovat klíč API požadovaný pro ověření." + +#: src/libslic3r/PrintConfig.cpp:82 +msgid "Slic3r can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance." +msgstr "Slic3r může nahrát soubory G-code do tiskového serveru. Toto pole by mělo obsahovat název serveru (hostname), IP adresu nebo URL tiskového serveru." + +#: xs/src/libslic3r/PrintConfig.cpp:1110 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the API Key required for authentication." +msgstr "Slic3r může nahrát soubory G-code do OctoPrintu. Toto pole by mělo obsahovat klíč API požadovaný pro ověření." + +#: xs/src/libslic3r/PrintConfig.cpp:1124 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the hostname, IP address or URL of the OctoPrint instance." +msgstr "Slic3r může nahrát soubory G-code do OctoPrintu. Toto pole by mělo obsahovat název hosta (hostname), IP adresu nebo URL instance OctoPrint." + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r configuration is incompatible" +msgstr "Konfigurace Slic3ru není kompatibilní" + +#: lib/Slic3r/GUI/Plater.pm:1021 +msgid "Slic3r Error" +msgstr "Chyba Slic3ru" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r error" +msgstr "Chyba Slic3ru" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r has encountered an error" +msgstr "Došlo k chybě Slic3ru" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r incompatibility" +msgstr "Nekompatibilita Slic3ru" + +#: src/slic3r/GUI/UpdateDialogs.cpp:168 +#, possible-c-format +msgid "Slic3r PE now uses an updated configuration structure.\n\nSo called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\nAn inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n\nPlease proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "Slic3r PE nyní používá aktualizovanou konfigurační strukturu.\n\nByly uvedeny takzvaná \"Systémová přednastavení\", která obsahují výchozí nastavení pro rozličné tiskárny. Tato systémová přednastavení nemohou být upravena, místo toho si nyní uživatel může vytvořit svá vlastní přednastavení tím, že zdědí nastavení z jednoho ze systémových přednastavení.\nNově vytvořené přednastavení může buď zdědit určitou hodnotu od svého předchůdce nebo ji přepsat upravenou hodnotou.\n\nProsím postupujte dle %s, který následuje pro nastavení nových přednastavení a vyberte si, zdali chcete jejich automatickou aktualizaci." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 +msgid "Slic3r Prusa Edition - Keyboard Shortcuts" +msgstr "Slic3r Prusa Edition - Klávesové zkratky" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "Slic3r Prusa Edition - System Information" +msgstr "Slic3r Prusa Edition - Systémové informace" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 +msgid "slic3r version" +msgstr "verze slic3ru" + +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Slic3r View Mode" +msgstr "Režim zobrazení Slic3ru" + +#: src/libslic3r/PrintConfig.cpp:1234 +msgid "Slic3r will not scale speed down below this speed." +msgstr "Slic3r nebude měnit rychlost pod tuto rychlost." + +#: src/libslic3r/PrintConfig.cpp:2970 +msgid "Slice" +msgstr "Slicovat" + +#: src/slic3r/GUI/MainFrame.cpp:383 +msgid "Slice a file into a G-code" +msgstr "Slicovat soubor do G-code" + +#: src/slic3r/GUI/MainFrame.cpp:389 +msgid "Slice a file into a G-code, save as" +msgstr "Slicovat soubor do G-code, uložit jako" + +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice file to a multi-layer SVG" +msgstr "Slicovat soubor do více-vrstvého SVG" + +#: src/libslic3r/PrintConfig.cpp:71 +msgid "Slice gap closing radius" +msgstr "Poloměr uzavření mezery v tiskové vrstvě" + +#: src/slic3r/GUI/Plater.cpp:734 src/slic3r/GUI/Plater.cpp:2412 +#: src/slic3r/GUI/Plater.cpp:3618 +msgid "Slice now" +msgstr "Slicovat" + +#: src/libslic3r/PrintConfig.cpp:2944 +msgid "Slice the model and export SLA printing layers as PNG." +msgstr "Naslicuje model a exportuje SLA tiskové vrstvy jako PNG soubory." + +#: src/libslic3r/PrintConfig.cpp:2965 +msgid "Slice the model and export toolpaths as G-code." +msgstr "Naslicujte model a exportujte cesty jako G-code." + +#: src/libslic3r/PrintConfig.cpp:2971 +msgid "Slice the model as FFF or SLA based on the printer_technology configuration value." +msgstr "Slicovat model jako FFF nebo SLA tisk na základě konfigurační hodnoty printer_technology." + +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice to SV&G…\tCtrl+G" +msgstr "Slicovat do SV&G…\tCtrl+G" + +#: src/slic3r/GUI/Plater.cpp:193 +msgid "Sliced Info" +msgstr "Informace o slicování" + +#: src/slic3r/GUI/MainFrame.cpp:704 src/slic3r/GUI/Plater.cpp:2412 +#: src/slic3r/GUI/Plater.cpp:3615 src/slic3r/GUI/Tab.cpp:1159 +#: src/slic3r/GUI/Tab.cpp:3436 +msgid "Slicing" +msgstr "Slicování" + +#: lib/Slic3r/GUI/Plater.pm:1391 +msgid "Slicing cancelled" +msgstr "Slicování zrušeno" + +#: src/libslic3r/SLAPrint.cpp:1459 +msgid "Slicing done" +msgstr "Slicování dokončeno" + +#: src/slic3r/GUI/MainFrame.cpp:729 +msgid "Slicing Done!" +msgstr "Slicování dokončeno!" + +#. TRN To be shown at the status bar on SLA slicing error. +#: src/libslic3r/SLAPrint.cpp:709 +msgid "Slicing had to be stopped due to an internal error." +msgstr "Slicování muselo být zastaveno kvůli vnitřní chybě." + +#: src/libslic3r/SLAPrint.cpp:55 +msgid "Slicing model" +msgstr "Slicovaný model" + +#: src/libslic3r/SLAPrint.cpp:59 +msgid "Slicing supports" +msgstr "Slicování podpěr" + +#: lib/Slic3r/GUI/MainFrame.pm:483 +msgid "Slicing…" +msgstr "Slicování…" + +#: src/libslic3r/PrintConfig.cpp:2249 +msgid "Slow" +msgstr "Pomalý" + +#: src/libslic3r/PrintConfig.cpp:1635 +msgid "Slow down if layer print time is below" +msgstr "Zpomalit tisk pokud je doba tisku kratší než" + +#: src/libslic3r/PrintConfig.cpp:2250 +msgid "Slow tilt" +msgstr "Pomalý náklon" + +#: src/libslic3r/PrintConfig.cpp:1646 +msgid "Small perimeters" +msgstr "Malé perimetry" + +#: src/slic3r/GUI/GUI_App.cpp:697 +msgid "Snapshot name" +msgstr "Název zálohy" + +#: src/slic3r/GUI/PresetHints.cpp:181 +msgid "solid infill" +msgstr "plná výplň" + +#: src/slic3r/GUI/GUI_Preview.cpp:231 src/libslic3r/PrintConfig.cpp:1687 +#: src/libslic3r/PrintConfig.cpp:1697 src/libslic3r/GCode/PreviewData.cpp:167 +msgid "Solid infill" +msgstr "Plná výplň" + +#: src/libslic3r/PrintConfig.cpp:1675 +msgid "Solid infill every" +msgstr "Plná výplň každou" + +#: src/libslic3r/PrintConfig.cpp:1667 +msgid "Solid infill extruder" +msgstr "Extruder pro plnou výplň" + +#: src/libslic3r/PrintConfig.cpp:1658 +msgid "Solid infill threshold area" +msgstr "Prahová hodnota plochy pro plnou výplň" + +#: src/slic3r/GUI/Tab.cpp:1014 src/libslic3r/PrintConfig.cpp:1710 +msgid "Solid layers" +msgstr "Plných vrstev" + +#: src/libslic3r/PrintConfig.cpp:1832 +msgid "soluble" +msgstr "rozpustný" + +#: src/libslic3r/PrintConfig.cpp:711 +msgid "Soluble material" +msgstr "Rozpustný materiál" + +#: src/libslic3r/PrintConfig.cpp:712 +msgid "Soluble material is most likely used for a soluble support." +msgstr "Rozpustný materiál je převážně používán pro tisk rozpustných podpěr." + +#: src/libslic3r/PrintConfig.cpp:889 +msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents Slic3r from exporting any extrusion value at all." +msgstr "Některé příkazy G/M code, včetně řízení teploty a jiné, nejsou univerzální. Vyberte typ firmwaru který používá vaše tiskárna pro dosažení kompatibilního výstupu. Příkazy typu “No extrusion” zabraňují Slic3ru zcela exportovat jakoukoliv hodnotu extruze." + +#: src/slic3r/GUI/GLCanvas3D.cpp:721 +msgid "Some objects are not visible when editing supports" +msgstr "Některé objekty nejsou při úpravách podpěr viditelné" + +#: src/libslic3r/Print.cpp:1162 +msgid "Some objects are too close; your extruder will collide with them." +msgstr "Některé objekty jsou příliš blízko; Extruder do nich narazí." + +#: src/libslic3r/Print.cpp:1177 +msgid "Some objects are too tall and cannot be printed without extruder collisions." +msgstr "Některé objekty jsou příliš vysoké a nelze je tisknout bez kolizí extruderu." + +#: src/libslic3r/PrintConfig.cpp:2548 +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 "Některé objekty mohou být na několika menších podložkách namísto jedné velké. Tento parametr definuje, jak daleko může být střed dvou menších podložek. Pokud budou blíže, budou sloučeny do jedné podložky." + +#: src/libslic3r/PrintConfig.cpp:2086 +msgid "Some printers or printer setups may have difficulties printing with a variable layer height. Enabled by default." +msgstr "Některé tiskárny nebo nastavení tiskárny mohou mít potíže s tiskem s proměnnou výškou vrstvy. Ve výchozím nastavení je zapnuto." + +#: src/libslic3r/PrintConfig.cpp:1897 +msgid "Spacing between interface lines. Set zero to get a solid interface." +msgstr "Rozteč linií kontaktních vrstev. Nastavte nulu pro získání plných kontaktních vrstev." + +#: src/libslic3r/PrintConfig.cpp:1931 +msgid "Spacing between support material lines." +msgstr "Rozteč linií podpěr." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:71 src/slic3r/GUI/GUI_ObjectList.cpp:512 +#: src/slic3r/GUI/GUI_Preview.cpp:215 src/slic3r/GUI/Tab.cpp:1084 +#: src/libslic3r/PrintConfig.cpp:199 src/libslic3r/PrintConfig.cpp:426 +#: src/libslic3r/PrintConfig.cpp:871 src/libslic3r/PrintConfig.cpp:999 +#: src/libslic3r/PrintConfig.cpp:1361 src/libslic3r/PrintConfig.cpp:1598 +#: src/libslic3r/PrintConfig.cpp:1647 src/libslic3r/PrintConfig.cpp:1698 +#: src/libslic3r/PrintConfig.cpp:2029 +msgid "Speed" +msgstr "Rychlost" + +#: src/libslic3r/PrintConfig.cpp:1600 +msgid "Speed (baud) of USB/serial port for printer connection." +msgstr "Rychlost (baud) USB/sériového portu pro připojení tiskárny." + +#: src/libslic3r/GCode/PreviewData.cpp:400 +msgid "Speed (mm/s)" +msgstr "Rychlost (mm/s)" + +#: src/libslic3r/PrintConfig.cpp:872 +msgid "Speed for filling small gaps using short zigzag moves. Keep this reasonably low to avoid too much shaking and resonance issues. Set zero to disable gaps filling." +msgstr "Rychlost plnění malých mezer pomocí krátkých cikcak pohybů. Udržujte tuto hodnotu poměrně nízkou, aby nedošlo k přílišným otřesům a problémům s rezonancí. Nastavte nulu pro vypnutí vyplnění mezery." + +#: src/slic3r/GUI/Tab.cpp:1097 +msgid "Speed for non-print moves" +msgstr "Netiskové rychlosti" + +#: src/libslic3r/PrintConfig.cpp:1362 +msgid "Speed for perimeters (contours, aka vertical shells). Set to zero for auto." +msgstr "Rychlost pro perimetry (obrysy, neboli svislé stěny). Zadejte nulu pro automatické nastavení." + +#: src/slic3r/GUI/Tab.cpp:1085 +msgid "Speed for print moves" +msgstr "Rychlosti pohybů tiskárny" + +#: src/libslic3r/PrintConfig.cpp:200 +msgid "Speed for printing bridges." +msgstr "Rychlost pro vytváření mostů." + +#: src/libslic3r/PrintConfig.cpp:1699 +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 "Rychlost tisku plných oblastí (vrchní / spodní / vnitřní vodorovné stěny). Může být vyjádřeno procenty (například: 80%) oproti výchozí rychlosti vyplnění. Pro automatické nastavení zadejte nulu." + +#: src/libslic3r/PrintConfig.cpp:1906 +msgid "Speed for printing support material interface layers. If expressed as percentage (for example 50%) it will be calculated over support material speed." +msgstr "Rychlost tisku podpěrných interface vrstev. Pokud je vyjádřen procentní podíl (například 50%), vypočítá se podle rychlosti tisku podpěr." + +#: src/libslic3r/PrintConfig.cpp:1940 +msgid "Speed for printing support material." +msgstr "Rychlost tisku podpěr." + +#: src/libslic3r/PrintConfig.cpp:1000 +msgid "Speed for printing the internal fill. Set to zero for auto." +msgstr "Rychlost tisku vnitřní výplně. Pro automatické nastavení zadejte nulu." + +#: src/libslic3r/PrintConfig.cpp:2030 +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 slow down this to get a nicer surface finish. This can be expressed as a percentage (for example: 80%) over the solid infill speed above. Set to zero for auto." +msgstr "Rychlost tisku vrchních plných vrstev (vztahuje se pouze na nejvyšší horní vrstvy a nikoli na jejich vnitřní plné vrstvy). Rychlost lze zpomalit, abyste získali hezčí povrchovou úpravu. Může být vyjádřena procenty (například: 80%) z rychlosti plné výplně materiálu výše. Pro automatické nastavení zadejte nulu." + +#: src/libslic3r/PrintConfig.cpp:2052 +msgid "Speed for travel moves (jumps between distant extrusion points)." +msgstr "Rychlost posunů (přejezdy mezi body extruze)." + +#: src/libslic3r/PrintConfig.cpp:627 +msgid "Speed of the first cooling move" +msgstr "Rychlost prvního pohybu chlazení" + +#: src/libslic3r/PrintConfig.cpp:646 +msgid "Speed of the last cooling move" +msgstr "Rychlost posledního pohybu chlazení" + +#: src/libslic3r/PrintConfig.cpp:584 +msgid "Speed used at the very beginning of loading phase. " +msgstr "Rychlost použitá na samém počátku zaváděcí fáze" + +#: src/libslic3r/PrintConfig.cpp:576 +msgid "Speed used for loading the filament on the wipe tower. " +msgstr "Rychlost použitá pro zavádění filamentu na čistící věž. " + +#: src/libslic3r/PrintConfig.cpp:592 +msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming). " +msgstr "Rychlost vysouvání filamentu při výměně na čistící věži (úvodní část vysunutí okamžitě po rapidní extruzi není ovlivněna). " + +#: src/libslic3r/PrintConfig.cpp:601 +msgid "Speed used for unloading the tip of the filament immediately after ramming. " +msgstr "Rychlost použitá při vysouvání špičky filamentu bezprostředně po rapidní extruzi." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1055 +msgid "Sphere" +msgstr "Koule" + +#: src/slic3r/GUI/Tab.cpp:1254 +msgid "Spiral Vase" +msgstr "Spirálová váza" + +#: src/libslic3r/PrintConfig.cpp:1717 +msgid "Spiral vase" +msgstr "Spirálová váza" + +#: src/slic3r/GUI/Plater.cpp:2971 src/slic3r/GUI/Plater.cpp:2988 +#: src/slic3r/GUI/Plater.cpp:3008 src/libslic3r/PrintConfig.cpp:3082 +msgid "Split" +msgstr "Rozdělit" + +#: src/slic3r/GUI/Plater.cpp:2971 +msgid "Split the selected object" +msgstr "Rozdělit vybraný objekt" + +#: src/slic3r/GUI/Plater.cpp:2966 src/slic3r/GUI/Plater.cpp:2988 +msgid "Split the selected object into individual objects" +msgstr "Rozdělit vybraný objekt na jednotlivé objekty" + +#: lib/Slic3r/GUI/Plater.pm:2293 +msgid "Split the selected object into individual parts" +msgstr "Rozdělit vybraný objekt na jednotlivé části" + +#: src/slic3r/GUI/Plater.cpp:2968 src/slic3r/GUI/Plater.cpp:3008 +msgid "Split the selected object into individual sub-parts" +msgstr "Rozdělit vybraný objekt na jednotlivé dílčí části" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1110 +msgid "Split to parts" +msgstr "Rozdělit na části" + +#: src/libslic3r/PrintConfig.cpp:799 +msgid "Stars" +msgstr "Hvězdy" + +#: src/slic3r/GUI/Tab.cpp:1564 src/slic3r/GUI/Tab.cpp:1949 +#: src/libslic3r/PrintConfig.cpp:1736 src/libslic3r/PrintConfig.cpp:1751 +msgid "Start G-code" +msgstr "Začátek G-code" + +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "Start new slicing process" +msgstr "Zahájit nový slicovací proces" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:35 +msgid "Start printing after upload" +msgstr "Spustit tisk po nahrání" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2153 +msgid "Starting" +msgstr "Spuštění" + +#: src/slic3r/GUI/FirmwareDialog.cpp:782 +msgid "Status:" +msgstr "Stav:" + +#: lib/Slic3r/GUI/Plater.pm:1659 lib/Slic3r/GUI/Plater.pm:1701 +msgid "STL file exported to " +msgstr "Soubor STL byl exportován do " + +#: src/slic3r/GUI/Plater.cpp:3545 +#, possible-c-format +msgid "STL file exported to %s" +msgstr "Soubor STL exportován do %s" + +#: src/slic3r/GUI/Tab.cpp:1716 src/slic3r/GUI/Tab.cpp:1901 +msgid "Success!" +msgstr "Úspěch!" + +#: src/slic3r/GUI/PresetHints.cpp:200 +msgid "support" +msgstr "podpěry" + +#: xs/src/slic3r/GUI/GUI.cpp:859 +msgid "Support" +msgstr "Podpěra" + +#: src/libslic3r/PrintConfig.cpp:2441 +msgid "Support base diameter" +msgstr "Průměr podpěrné základny" + +#: src/libslic3r/PrintConfig.cpp:2451 +msgid "Support base height" +msgstr "Výška podpěrné základny" + +#: src/slic3r/GUI/Tab.cpp:1316 +msgid "Support Generator" +msgstr "Generátor Podpěr" + +#: src/slic3r/GUI/Tab.cpp:3401 +msgid "Support head" +msgstr "Hrot podpěry" + +#: src/libslic3r/PrintConfig.cpp:2369 +msgid "Support head front diameter" +msgstr "Délka hrotu podpěry" + +#: src/libslic3r/PrintConfig.cpp:2378 +msgid "Support head penetration" +msgstr "Průnik podpěry do modelu" + +#: src/libslic3r/PrintConfig.cpp:2387 +msgid "Support head width" +msgstr "Tloušťka hrotu podpěry" + +#: src/slic3r/GUI/PresetHints.cpp:210 +msgid "support interface" +msgstr "kontaktní vrstva podpěr" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:30 src/slic3r/GUI/GUI_ObjectList.cpp:70 +#: src/slic3r/GUI/GUI_ObjectList.cpp:511 src/slic3r/GUI/GUI_Preview.cpp:236 +#: src/slic3r/GUI/Tab.cpp:1059 src/slic3r/GUI/Tab.cpp:1060 +#: src/libslic3r/PrintConfig.cpp:334 src/libslic3r/PrintConfig.cpp:1432 +#: src/libslic3r/PrintConfig.cpp:1780 src/libslic3r/PrintConfig.cpp:1786 +#: src/libslic3r/PrintConfig.cpp:1794 src/libslic3r/PrintConfig.cpp:1806 +#: src/libslic3r/PrintConfig.cpp:1816 src/libslic3r/PrintConfig.cpp:1824 +#: src/libslic3r/PrintConfig.cpp:1839 src/libslic3r/PrintConfig.cpp:1860 +#: src/libslic3r/PrintConfig.cpp:1871 src/libslic3r/PrintConfig.cpp:1887 +#: src/libslic3r/PrintConfig.cpp:1896 src/libslic3r/PrintConfig.cpp:1905 +#: src/libslic3r/PrintConfig.cpp:1916 src/libslic3r/PrintConfig.cpp:1930 +#: src/libslic3r/PrintConfig.cpp:1938 src/libslic3r/PrintConfig.cpp:1939 +#: src/libslic3r/PrintConfig.cpp:1948 src/libslic3r/PrintConfig.cpp:1956 +#: src/libslic3r/PrintConfig.cpp:1970 src/libslic3r/GCode/PreviewData.cpp:172 +msgid "Support material" +msgstr "Podpěry" + +#: src/slic3r/GUI/GUI_Preview.cpp:237 src/libslic3r/PrintConfig.cpp:1904 +#: src/libslic3r/GCode/PreviewData.cpp:173 +msgid "Support material interface" +msgstr "Kontaktní vrstvy podpěr" + +#: src/libslic3r/PrintConfig.cpp:1957 +msgid "Support material will not be generated for overhangs whose slope angle (90° = vertical) is above the given threshold. In other words, this value represent the most horizontal slope (measured from the horizontal plane) that you can print without support material. Set to zero for automatic detection (recommended)." +msgstr "Podpěry nebudou vytvořeny pro převisy, jejichž úhel sklonu (90° = vertikální) je nad danou prahovou hodnotou. Jinými slovy, tato hodnota představuje největší horizontální sklon (měřený od horizontální roviny), který můžete tisknout bez podpěrného materiálu. Nastavte na nulu pro automatickou detekci (doporučeno)." + +#: src/libslic3r/PrintConfig.cpp:1877 +msgid "Support material/raft interface extruder" +msgstr "Extruder pro kontaktní podpěry/raft" + +#: src/libslic3r/PrintConfig.cpp:1851 +msgid "Support material/raft/skirt extruder" +msgstr "Extruder pro podpěry/raft/obrys" + +#: src/slic3r/GUI/Plater.cpp:423 src/libslic3r/PrintConfig.cpp:1815 +#: src/libslic3r/PrintConfig.cpp:2423 +msgid "Support on build plate only" +msgstr "Pouze na tiskové podložce" + +#: src/slic3r/GUI/Tab.cpp:3406 +msgid "Support pillar" +msgstr "Podpěrný pilíř" + +#: src/libslic3r/PrintConfig.cpp:2407 +msgid "Support pillar connection mode" +msgstr "Propojení podpěr" + +#: src/libslic3r/PrintConfig.cpp:2397 +msgid "Support pillar diameter" +msgstr "Tloušťka podpěry" + +#: src/libslic3r/PrintConfig.cpp:2499 +msgid "Support points density" +msgstr "Hustota podpěrných bodů" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:888 +msgid "Support points density: " +msgstr "Hustota podpěrných bodů:" + +#: xs/src/libslic3r/PrintConfig.cpp:896 +msgid "Support silent mode" +msgstr "Podpora tichého režimu" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:78 src/slic3r/GUI/GUI_ObjectList.cpp:519 +#: src/slic3r/GUI/Plater.cpp:418 src/slic3r/GUI/Tab.cpp:3397 +#: src/slic3r/GUI/Tab.cpp:3398 src/libslic3r/PrintConfig.cpp:2363 +#: src/libslic3r/PrintConfig.cpp:2370 src/libslic3r/PrintConfig.cpp:2379 +#: src/libslic3r/PrintConfig.cpp:2388 src/libslic3r/PrintConfig.cpp:2398 +#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2431 +#: src/libslic3r/PrintConfig.cpp:2442 src/libslic3r/PrintConfig.cpp:2452 +#: src/libslic3r/PrintConfig.cpp:2461 src/libslic3r/PrintConfig.cpp:2471 +#: src/libslic3r/PrintConfig.cpp:2480 src/libslic3r/PrintConfig.cpp:2490 +#: src/libslic3r/PrintConfig.cpp:2500 src/libslic3r/PrintConfig.cpp:2508 +msgid "Supports" +msgstr "Podpěry" + +#: src/slic3r/GUI/Plater.cpp:1018 +msgid "supports and pad" +msgstr "podpěry a podložka" + +#: src/libslic3r/PrintConfig.cpp:1043 +msgid "Supports remaining times" +msgstr "Podpora zbývajících tiskových časů" + +#: src/libslic3r/PrintConfig.cpp:1052 +msgid "Supports silent mode" +msgstr "Podporuje tichý režim" + +#: src/slic3r/GUI/Tab.cpp:1313 +msgid "Supports work better, if the following feature is enabled:\n- Detect bridging perimeters\n\nShall I adjust those settings for supports?" +msgstr "Podpěry fungují lépe, pokud je povolena následující funkce:\n- Zjistit přemosťovací perimetry\n\nMám tyto nastavení pro podpěry upravit?" + +#: src/slic3r/GUI/Preferences.cpp:76 +msgid "Suppress \" - default - \" presets" +msgstr "Potlačit “ - výchozí - “ přednastavení" + +#: src/slic3r/GUI/Preferences.cpp:78 +msgid "Suppress \" - default - \" presets in the Print / Filament / Printer selections once there are any other valid presets available." +msgstr "Potlačit “ - výchozí - “ přednastavení v nabídkách Tisk / Filament / Tiskárna, jakmile budou k dispozici další platné předvolby." + +#: src/slic3r/GUI/MainFrame.cpp:677 +msgid "SVG" +msgstr "SVG" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:119 +msgid "Switch to 3D" +msgstr "Přepnout do 3D" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1242 +msgid "Switch to editing mode" +msgstr "Přepnout do režimu editace" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:120 +msgid "Switch to Preview" +msgstr "Přepnout do náhledu" + +#: src/slic3r/GUI/wxExtensions.cpp:2412 +#, possible-c-format +msgid "Switch to the %s mode" +msgstr "Přepnout do režimu %s" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:327 +msgid "Switching to simple settings will discard changes done in the advanced mode!\n\nDo you want to proceed?" +msgstr "Přepnutím do jednoduchého nastavení ztratíte změny provedené v pokročilém režimu!\n\nOpravdu chcete pokračovat?" + +#: src/libslic3r/PrintConfig.cpp:1949 +msgid "Synchronize support layers with the object print layers. This is useful with multi-material printers, where the extruder switch is expensive." +msgstr "Synchronizování vrstev podpěr s vrstvami objektu. Toto je velmi užitečné u multi-materiálových tiskáren, kde je přepínání extruderů drahé." + +#: src/libslic3r/PrintConfig.cpp:1947 +msgid "Synchronize with object layers" +msgstr "Synchronizovat s vrstvami objektu" + +#: src/slic3r/GUI/MainFrame.cpp:557 +msgid "System &Info" +msgstr "&Informace o systému" + +#: lib/Slic3r/GUI/MainFrame.pm:355 +msgid "System Info" +msgstr "Informace o systému" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "System Information" +msgstr "Systémové informace" + +#: src/slic3r/GUI/Preset.cpp:930 src/slic3r/GUI/Preset.cpp:970 +#: src/slic3r/GUI/Preset.cpp:1035 src/slic3r/GUI/Preset.cpp:1067 +#: src/slic3r/GUI/PresetBundle.cpp:1488 src/slic3r/GUI/PresetBundle.cpp:1553 +msgid "System presets" +msgstr "Systémová přednastavení" + +#: src/slic3r/GUI/GUI_App.cpp:662 +msgid "Take Configuration &Snapshot" +msgstr "Prové&st Zálohu Konfigurace" + +#: xs/src/slic3r/GUI/GUI.cpp:350 +msgid "Take Configuration Snapshot" +msgstr "Provést Zálohu Konfigurace" + +#: src/slic3r/GUI/GUI_App.cpp:697 +msgid "Taking configuration snapshot" +msgstr "Ukládání zálohy nastavení" + +#: src/slic3r/GUI/Tab.cpp:1478 +msgid "Temperature " +msgstr "Teplota " + +#: src/libslic3r/PrintConfig.cpp:1980 +msgid "Temperature" +msgstr "Teplota" + +#: src/libslic3r/PrintConfig.cpp:1727 +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 "Teplotní rozdíl, který se použije v případě, že extruder není aktivní. Umožňuje “obětní” obrysy v plné výšce objektu, na kterém jsou trysky periodicky očištěny." + +#: src/libslic3r/PrintConfig.cpp:1726 +msgid "Temperature variation" +msgstr "Kolísání teploty" + +#: src/slic3r/GUI/ConfigWizard.cpp:592 +msgid "Temperatures" +msgstr "Teploty" + +#: src/slic3r/GUI/Tab.cpp:1700 src/slic3r/GUI/Tab.cpp:1888 +msgid "Test" +msgstr "Test" + +#: src/slic3r/GUI/FirmwareDialog.cpp:530 +#, possible-c-format +msgid "The %s device could not have been found" +msgstr "Zařízení %s nebylo nalezeno" + +#: src/slic3r/GUI/FirmwareDialog.cpp:417 +#, possible-c-format +msgid "The %s device was not found.\nIf the device is connected, please press the Reset button next to the USB connector ..." +msgstr "Zařízení %s nebylo nalezeno. Pokud je zařízení připojeno, stiskněte tlačítko Reset vedle USB konektoru ..." + +#: src/libslic3r/PrintConfig.cpp:2462 +msgid "The default angle for connecting support sticks and junctions." +msgstr "Výchozí úhel pro připojení nosných tyčí a spojek." + +#: src/libslic3r/PrintConfig.cpp:457 +msgid "The extruder to use (unless more specific extruder settings are specified). This value overrides perimeter and infill extruders, but not the support extruders." +msgstr "Extruder, který chcete použít (pokud nejsou zvoleny specifičtější nastavení extruderu). Tato hodnota přepíše nastavení perimetrového a výplňového exrtuderu, ale ne nastavení extruderu pro podpěry." + +#: src/libslic3r/PrintConfig.cpp:955 +msgid "The extruder to use when printing infill." +msgstr "Extruder který se použije pro tisk výplní." + +#: src/libslic3r/PrintConfig.cpp:1341 +msgid "The extruder to use when printing perimeters and brim. First extruder is 1." +msgstr "Extruder, který se používá při tisku perimetrů a límce. První extruder je 1." + +#: src/libslic3r/PrintConfig.cpp:1669 +msgid "The extruder to use when printing solid infill." +msgstr "Extruder který bude použit při tisku plných výplní." + +#: src/libslic3r/PrintConfig.cpp:1879 +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 "Extruder, který se použije při tisku kontaktních vrstev podpěr (1+, 0 pro použití aktuálního extruderu, aby se minimalizovaly změny nástroje). To ovlivňuje i raft." + +#: src/libslic3r/PrintConfig.cpp:1853 +msgid "The extruder to use when printing support material, raft and skirt (1+, 0 to use the current extruder to minimize tool changes)." +msgstr "Extruder, který se používá při tisku podpěr, raftu a obrysu (1+, 0 pro použití aktuálního extruderu pro co nejméně změn nástroje)." + +#: src/libslic3r/PrintConfig.cpp:695 +msgid "The filament material type for use in custom G-codes." +msgstr "Typ filamentu pro použití ve vlastních G-code." + +#: src/libslic3r/PrintConfig.cpp:3105 +msgid "The file where the output will be written (if not specified, it will be based on the input file)." +msgstr "Soubor, do kterého bude zapisován výstup (pokud není zadán, bude vycházet ze vstupního souboru)." + +#: src/libslic3r/PrintConfig.cpp:351 +msgid "The first layer will be shrunk in the XY plane by the configured value to compensate for the 1st layer squish aka an Elephant Foot effect." +msgstr "První vrstva bude v rovině XY zmenšena nakonfigurovanou hodnotou, která kompenzuje rozplácnutí první vrstvy." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2726 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2813 src/slic3r/GUI/Tab.cpp:3279 +msgid "the following characters are not allowed:" +msgstr "následující znaky nejsou povolené:" + +#: src/slic3r/GUI/Tab.cpp:3283 +msgid "the following postfix are not allowed:" +msgstr "následující postfixy nejsou povolené:" + +#: src/libslic3r/PrintConfig.cpp:2453 +msgid "The height of the pillar base cone" +msgstr "Výška ukotvení podpěrného kužele" + +#: src/libslic3r/PrintConfig.cpp:2481 +msgid "The max distance of two pillars to get linked with each other. A zero value will prohibit pillar cascading." +msgstr "Maximální vzdálenost dvou podpůrných pilířů pro vzájemné provázání. Nulová hodnota zakáže provazování." + +#: src/libslic3r/PrintConfig.cpp:2472 +msgid "The max length of a bridge" +msgstr "Maximální délka přemostění." + +#: src/libslic3r/PrintConfig.cpp:2176 +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 "Objekt bude roztažen / smrštěn v rovině XY nastavenou hodnotou (negativní = směrem dovnitř, pozitivní = směrem ven). To může být užitečné pro jemné doladění otvorů." + +#: src/libslic3r/PrintConfig.cpp:1433 +msgid "The object will be raised by this number of layers, and support material will be generated under it." +msgstr "Objekt se zvýší tímto počtem vrstev a pod ním bude vytvořen podpůrný materiál." + +#: src/libslic3r/PrintConfig.cpp:2259 +msgid "The percentage of the bed area. \nIf the print area exceeds the specified value, \nthen a slow tilt will be used, otherwise - a fast tilt" +msgstr "Procentuálně vyjádřená zabraná tisková plocha.\nPokud tisk zabere více než je zadaná hodnota,\nbude použit pomalý náklon. V ostatních případech bude použit rychlý náklon." + +#: src/libslic3r/PrintConfig.cpp:1768 +msgid "The printer multiplexes filaments into a single hot end." +msgstr "Tiskárna přepíná několik filamentů v jednou hot endu." + +#: src/slic3r/GUI/BedShapeDialog.cpp:342 +msgid "The selected file contains no geometry." +msgstr "Vybraný soubor neobsahuje geometrii." + +#: src/slic3r/GUI/BedShapeDialog.cpp:346 +msgid "The selected file contains several disjoint areas. This is not supported." +msgstr "Vybraný soubor obsahuje několik nespojených ploch. Tato možnost není podporována." + +#: src/slic3r/GUI/Plater.cpp:2271 +msgid "The selected object can't be split because it contains more than one volume/material." +msgstr "Vybraný objekt nemůže být rozdělen, protože obsahuje více než jeden objem/materiál." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1737 src/slic3r/GUI/Plater.cpp:2279 +msgid "The selected object couldn't be split because it contains only one part." +msgstr "Vybraný objekt nemůže být rozdělen, protože obsahuje pouze jednu část." + +#: src/libslic3r/PrintConfig.cpp:2570 +msgid "The slope of the pad wall relative to the bed plane. 90 degrees means straight walls." +msgstr "Sklon bočnic vzhledem k podložce. 90 stupňů znamená kolmé stěny." + +#: src/libslic3r/PrintConfig.cpp:1544 +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 "Rychlost vtlačení filamentu do extruderu po retrakci (vztahuje se pouze na motor extruderu). Pokud je ponecháno na nulu, použije se rychlost retrakce." + +#: src/libslic3r/PrintConfig.cpp:1536 +msgid "The speed for retractions (it only applies to the extruder motor)." +msgstr "Rychlost retrakce (toto nastavení platí pouze pro motor extruderu)." + +#: src/slic3r/GUI/Tab.cpp:1247 +#, no-c-format +msgid "The Spiral Vase mode requires:\n- one perimeter\n- no top solid layers\n- 0% fill density\n- no support material\n- no ensure_vertical_shell_thickness\n\nShall I adjust those settings in order to enable Spiral Vase?" +msgstr "Mód spirálové vázy vyžaduje:\n- jeden perimetr\n- žádné plné vrchní vrstvy\n- 0% hustota výplně\n- žádné podpěry\n- nezjišťování vertikální tloušťky pláště\n\nMám tyto nastavení upravit tak, aby bylo možné mód spirálové vázy zapnout?" + +#: src/libslic3r/Print.cpp:1187 +msgid "The Spiral Vase option can only be used when printing a single object." +msgstr "Možnost \"Spirálová váza\" lze použít pouze při tisku jednoho objektu." + +#: src/libslic3r/Print.cpp:1189 +msgid "The Spiral Vase option can only be used when printing single material objects." +msgstr "Možnost \"Spirálová váza\" lze použít pouze při tisku jedním materiálem." + +#: src/slic3r/GUI/Tab.cpp:2900 +msgid "The supplied name is empty. It can't be saved." +msgstr "Název je prázdný. Nelze uložit." + +#: src/slic3r/GUI/Tab.cpp:3287 +msgid "The supplied name is not available." +msgstr "Zadaný název není dostupný." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2725 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2812 src/slic3r/GUI/Tab.cpp:3278 +#: src/slic3r/GUI/Tab.cpp:3282 +msgid "The supplied name is not valid;" +msgstr "Zadaný název není platný;" + +#: c:\src\Slic3r\xs\src\slic3r\GUI\Tab.cpp:1785 +msgid "The supplied name is not valid; the following characters are not allowed:" +msgstr "Zadaný název je neplatný; následující znaky nejsou povoleny:" + +#: src/libslic3r/Print.cpp:1268 +msgid "The supplied settings will cause an empty print." +msgstr "Zadané nastavení způsobí prázdný tisk." + +#: src/libslic3r/PrintConfig.cpp:2524 +msgid "The thickness of the pad and its optional cavity walls." +msgstr "Tloušťka podložky a její volitelné duté stěny." + +#: src/libslic3r/PrintConfig.cpp:1825 +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 "Vertikální vzdálenost mezi objektem a podpěrami. Nastavením tohoto parametru na hodnotu 0 se také zabrání tomu, aby Slic3r použil parametry průtoku a rychlosti pro mosty při tisku první vrstvy objektu." + +#: src/slic3r/GUI/Tab.cpp:2429 +msgid "The Wipe option is not available when using the Firmware Retraction mode.\n\nShall I disable it in order to enable Firmware Retraction?" +msgstr "Možnost Očistit není k dispozici při použití režimu retrakcí z firmwaru.\n\nMám ji deaktivovat, aby bylo možné povolit retrakce z firmwaru?" + +#: src/slic3r/GUI/Tab.cpp:1277 +msgid "The Wipe Tower currently supports the non-soluble supports only\nif they are printed with the current extruder without triggering a tool change.\n(both support_material_extruder and support_material_interface_extruder need to be set to 0).\n\nShall I adjust those settings in order to enable the Wipe Tower?" +msgstr "Čistící věž v současné době podporuje pouze nerozpustné podpěry\npokud jsou vytištěny s aktuálním extrudérem bez spuštění výměny nástroje.\n(jak extruder pro tisk podpěr tak extruder pro tisk kontaktních podpěr je třeba nastavit na 0).\n\nMám tyto nastavení upravit tak, aby bylo možné zapnout Čistící věž?" + +#: src/libslic3r/Print.cpp:1306 +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 support_material_extruder and support_material_interface_extruder need to be set to 0)." +msgstr "Čistící věž v současné době podporuje pouze nerozpustné podpěry\npokud jsou vytištěny s aktuálním extrudérem bez spuštění výměny nástroje.\n(jak extruder pro tisk podpor tak extruder pro tisk kontaktních podpěr je třeba nastavit na 0)." + +#: xs/src/libslic3r/Print.cpp:617 +msgid "The Wipe Tower is currently only supported for the Marlin and RepRap/Sprinter G-code flavors." +msgstr "Čistící věž je v současné době možná pouze pro G-cody určené pro Marlin a RepRap/Sprinter." + +#: src/libslic3r/Print.cpp:1200 +msgid "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors." +msgstr "Čistící věž je v současné době možná pouze pro G-cody určené pro Marlin, RepRap/Sprinter a Repetier." + +#: src/libslic3r/Print.cpp:1202 +msgid "The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)." +msgstr "Čistící věž je v současné době možná pouze v případě relativního adresování exruderu (use_relative_e_distances=1)." + +#: src/libslic3r/Print.cpp:1225 +msgid "The Wipe Tower is only supported for multiple objects if they are printed over an equal number of raft layers" +msgstr "Čistící věž pro více objektů je možná pouze v případě, že objekty mají stejný počet raft vrstev" + +#: src/libslic3r/Print.cpp:1227 +msgid "The Wipe Tower is only supported for multiple objects if they are printed with the same support_material_contact_distance" +msgstr "Čistící věž pro více objektů je možná pouze v případě, že objekty mají shodný parametr support_material_contact_distance." + +#: src/libslic3r/Print.cpp:1229 +msgid "The Wipe Tower is only supported for multiple objects if they are sliced equally." +msgstr "Čistící věž je při více objektech možná pouze v případě, že objekty jsou slicovány stejně." + +#: src/libslic3r/Print.cpp:1223 +msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heigths" +msgstr "Čistící věž je při více objektech možná pouze v případě, že objekty mají všechny vrstvy stejné výšky." + +#: src/libslic3r/Print.cpp:1258 +msgid "The Wipe tower is only supported if all objects have the same layer height profile" +msgstr "Čistící věž je podporována pouze v případě, že všechny objekty mají stejný výškový profil" + +#: src/slic3r/GUI/UpdateDialogs.cpp:127 +#, possible-c-format +msgid "This %s version: %s" +msgstr "Tento %s verze: %s" + +#: src/libslic3r/PrintConfig.cpp:140 +msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "Tento kód je vložen mezi objekty, pokud je použit sekvenční tisk. Ve výchozím nastavení je resetován extruder a tisková podložka pomocí non-wait (nečekacím) příkazem; nicméně pokud jsou příkazy M104, M109, 140 nebo M190 detekovány v tomto vlastním kódu, Slic3r nebude přidávat teplotní příkazy. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru, takže můžete vložit příkaz “M109 S[first_layer_temperature]” kamkoliv chcete." + +#: src/libslic3r/PrintConfig.cpp:1032 +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 use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." +msgstr "Tento vlastní kód je vložen při každé změně vrstvy, hned po pohybu Z a předtím, než se extruder přesune na první bod vrstvy. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru, stejně tak jako [layer_num] a [layer_z]." + +#: src/libslic3r/PrintConfig.cpp:129 +msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." +msgstr "Tento vlastní kód je vložen pro každou změnu vrstvy, předtím než se pohne Z. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru stejně tak jako [layer_num] a [layer_z]." + +#: src/libslic3r/PrintConfig.cpp:2007 +msgid "This custom code is inserted right before every extruder change. Note that you can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder]." +msgstr "Tento vlastní kód je vložen těsně před každou změnou extruderu. Můžete použít zástupné proměnné pro všechna nastavení Slic3ru, stejně jako [previous_extruder] a [next_extruder]." + +#: src/libslic3r/PrintConfig.cpp:370 +msgid "This end procedure is inserted at the end of the output file, before the printer end gcode. Note that you can use placeholder variables for all Slic3r settings. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Tato ukončovací procedura je vložena na konec výstupního souboru, před konečným G-code tiskárny. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru. Pokud máte tiskárnu s více extrudery, G-code je zpracován v pořadí extruderů." + +#: src/libslic3r/PrintConfig.cpp:360 +msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all Slic3r settings." +msgstr "Tato ukončovací procedura je vložena na konec výstupního souboru. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru." + +#: src/libslic3r/PrintConfig.cpp:1193 src/libslic3r/PrintConfig.cpp:1204 +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 of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." +msgstr "Toto experimentální nastavení se používá k omezení rychlosti změny objemového průtoku. Hodnota 1,8mm³/s² zajišťuje, že změna objemového průtoku z 1,8 mm³/s (šířka extruze 0,45 mm, výška extruze 0,2 mm, rychlost posuvu 20 mm/s) na 5,4 mm³/s (rychlost posuvu 60 mm/s) potrvá nejméně 2 sekundy." + +#: src/libslic3r/PrintConfig.cpp:1183 +msgid "This experimental setting is used to set the maximum volumetric speed your extruder supports." +msgstr "Toto experimentální nastavení slouží k nastavení maximální objemové rychlosti, kterou váš extruder podporuje." + +#: src/libslic3r/PrintConfig.cpp:2061 +msgid "This experimental setting uses G10 and G11 commands to have the firmware handle the retraction. This is only supported in recent Marlin." +msgstr "Toto experimentální nastavení používá příkazy G10 a G11, aby si firmware poradil s retrakcí. Toto je podporováno pouze v posledních verzích firmwaru Marlin." + +#: src/libslic3r/PrintConfig.cpp:2075 +msgid "This experimental setting uses outputs the E values in cubic millimeters instead of linear millimeters. If your firmware doesn't already know filament diameter(s), you can put commands like 'M200 D[filament_diameter_0] T0' in your start G-code in order to turn volumetric mode on and use the filament diameter associated to the filament selected in Slic3r. This is only supported in recent Marlin." +msgstr "Toto experimentální nastavení používá výstupní hodnoty E v kubických milimetrech místo lineárních milimetrů. Pokud firmware dosud nezná průměr (průměry) filamentu, můžete v počátečním G-code zadat příkazy jako “M200 D [filament_diameter_0] T0”, pro se zapnutí volumetrického režimu a použití průměru filamentu přidruženého k vybranému filamentu ve Slic3ru. Toto je podporováno pouze v posledních verzích firmwaru Marlin." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2848 +msgid "This extruder will be set for selected items" +msgstr "Tento extruder bude nastaven pro vybrané položky" + +#: src/libslic3r/PrintConfig.cpp:188 +msgid "This factor affects the amount of plastic for bridging. You can decrease it slightly to pull the extrudates and prevent sagging, although default settings are usually good and you should experiment with cooling (use a fan) before tweaking this." +msgstr "Tato hodnota určuje množství vytlačeného plastu při vytváření mostů. Mírným snížením této hodnoty můžete předejít pronášení i když, přednastavené hodnoty jsou většinou dobré a je lepší experimentovat s chlazením (využitím ventilátoru), než s touto hodnotou." + +#: src/libslic3r/PrintConfig.cpp:514 +msgid "This factor changes the amount of flow proportionally. You may need to tweak this setting to get nice surface finish and correct single wall widths. Usual values are between 0.9 and 1.1. If you think you need to change this more, check filament diameter and your firmware E steps." +msgstr "Tento faktor mění poměrné množství průtoku. Možná bude třeba toto nastavení vyladit, pro dosažení hezkého povrchu a správné šířky jednotlivých stěn. Obvyklé hodnoty jsou mezi 0,9 a 1,1. Pokud si myslíte, že hodnotu potřebujete změnit více, zkontrolujte průměr filamentu a E kroky ve firmwaru." + +#: src/libslic3r/PrintConfig.cpp:178 +msgid "This fan speed is enforced during all bridges and overhangs." +msgstr "Nastavená rychlost ventilátoru je využita vždy při vytváření mostů a přesahů." + +#: src/libslic3r/PrintConfig.cpp:944 +msgid "This feature allows to combine infill and speed up your print by extruding thicker infill layers while preserving thin perimeters, thus accuracy." +msgstr "Tato funkce umožňuje kombinovat výplň a urychlit tisk pomocí extruzí silnějších výplňových vrstev při zachování tenkých obvodů, a tím i přesnosti." + +#: src/libslic3r/PrintConfig.cpp:1677 +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 will automatically choose the maximum possible number of layers to combine according to nozzle diameter and layer height." +msgstr "Tato funkce umožňuje vynucení plné vrstvy za každý daný počet vrstev. Pro vypnutí nastavte nulu. Můžete nastavit libovolnou hodnotu (například 9999); Slic3r automaticky zvolí maximální počet vrstev, které se budou kombinovat podle průměru trysky a výšky vrstvy." + +#: src/libslic3r/PrintConfig.cpp:1718 +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, no infill, no top solid layers and no support material. You can still set any number of bottom solid layers as well as skirt/brim loops. It won't work when printing more than an object." +msgstr "Tato funkce zvýší postupně Z při tisku jednovrstvého objektu, aby se odstranil jakýkoli viditelný šev. Tato volba vyžaduje jediný obvod, žádnou výplň, žádné vrchní plné vrstvy a žádný podpůrný materiál. Můžete stále nastavit libovolný počet spodních plných vrstev, stejně jako obrysové smyčky / límec. Při tisku více než jednoho objektu nebude toto nastavení fungovat." + +#: src/slic3r/GUI/Plater.cpp:1712 +msgid "This file cannot be loaded in a simple mode. Do you want to switch to an advanced mode?\n" +msgstr "Tento soubor nelze načíst v jednoduchém režimu. Chcete přepnout do pokročilého režimu?\n" + +#: src/slic3r/GUI/Plater.cpp:1650 +msgid "This file cannot be loaded in simple mode. Do you want to switch to expert mode?\n" +msgstr "Tento soubor nelze načíst v jednoduchém režimu. Chcete přepnout do expert režimu?\n" + +#: src/slic3r/GUI/Plater.cpp:1658 +msgid "This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\nthis file as a single object having multiple parts?\n" +msgstr "Tento soubor obsahuje několik objektů umístěných v různých výškách. Mají být vloženy jako jeden objekt obsahující více částí,\nnamísto vložení několika objektů?\n" + +#: src/slic3r/GUI/FirmwareDialog.cpp:313 +#, possible-c-format +msgid "This firmware hex file does not match the printer model.\nThe hex file is intended for: %s\nPrinter reported: %s\n\nDo you want to continue and flash this hex file anyway?\nPlease only continue if you are sure this is the right thing to do." +msgstr "Tento hex soubor s firmware neodpovídá modelu tiskárny.\nSoubor hex je určen pro: %s\nTiskárna oznámila: %s\n\nChcete i přesto pokračovat a nahrát do tiskárny hex soubor?\nPokračujte prosím, pouze pokud jste si jisti, že je to správný soubor." + +#: src/libslic3r/PrintConfig.cpp:278 +msgid "This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer printing time." +msgstr "Zapne výpočet automatického chlazení, který upravuje rychlost tisku a ventilátoru v závislosti na délce tisku jedné vrstvy." + +#: src/slic3r/GUI/Plater.cpp:448 +msgid "This flag enables the brim that will be printed around each object on the first layer." +msgstr "Tato vlajka zapíná límec, který bude vytištěn kolem každého objektu při první vrstvě." + +#: src/libslic3r/PrintConfig.cpp:1468 +msgid "This flag enforces a retraction whenever a Z move is done." +msgstr "Tato možnost vyvolá retrakci, kdykoli je proveden pohyb Z." + +#: src/libslic3r/PrintConfig.cpp:2093 +msgid "This flag will move the nozzle while retracting to minimize the possible blob on leaky extruders." +msgstr "Toto nastavení přemístí trysku při retrakci, aby se minimalizovalo možné vytékání materiálu." + +#: src/libslic3r/PrintConfig.cpp:2501 +msgid "This is a relative measure of support points density." +msgstr "Relativní míra hustoty podpěrných bodů." + +#: src/libslic3r/PrintConfig.cpp:491 src/libslic3r/PrintConfig.cpp:551 +msgid "This is only used in the Slic3r interface as a visual help." +msgstr "Toto je v Slic3ru jako názorná pomoc." + +#: src/libslic3r/PrintConfig.cpp:300 +msgid "This is the acceleration your printer will be reset to after the role-specific acceleration values are used (perimeter/infill). Set zero to prevent resetting acceleration at all." +msgstr "Toto je hodnota akcelerace na kterou se tiskárna vrátí po specifických úpravách akcelerace například při tisku (perimetru/výplně). Nastavením na nulu zabráníte návratu rychlostí zcela." + +#: src/libslic3r/PrintConfig.cpp:158 +msgid "This is the acceleration your printer will use for bridges. Set zero to disable acceleration control for bridges." +msgstr "Nastavení akcelerace tiskárny při vytváření mostů. Nastavením na nulu vypnete ovládání akcelerace pro mosty." + +#: src/libslic3r/PrintConfig.cpp:813 +msgid "This is the acceleration your printer will use for first layer. Set zero to disable acceleration control for first layer." +msgstr "Toto je zrychlení, které vaše tiskárna použije pro první vrstvu. Nastavte nulu pro vypnutí řízení zrychlení pro první vrstvu." + +#: src/libslic3r/PrintConfig.cpp:934 +msgid "This is the acceleration your printer will use for infill. Set zero to disable acceleration control for infill." +msgstr "Toto je zrychlení, které vaše tiskárna použije pro výplň. Nastavte nulu, chcete-li vypnout řízení zrychlení pro výplň." + +#: src/libslic3r/PrintConfig.cpp:1331 +msgid "This is the acceleration your printer will use for perimeters. A high value like 9000 usually gives good results if your hardware is up to the job. Set zero to disable acceleration control for perimeters." +msgstr "Jedná se o akceleraci, kterou vaše tiskárna použije pro perimetry. Vysoká hodnota, jako je 9000, obvykle dává dobré výsledky, pokud je váš hardware v pořádku. Nastavte nulu pro vypnutí řízení zrychlení pro perimetry." + +#: src/libslic3r/PrintConfig.cpp:1262 +msgid "This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" +msgstr "Průměr trysky extruderu (například: 0.5, 0.35 atd.)" + +#: src/libslic3r/PrintConfig.cpp:1162 +#, no-c-format +msgid "This is the highest printable layer height for this extruder, used to cap the variable layer height and support layer height. Maximum recommended layer height is 75% of the extrusion width to achieve reasonable inter-layer adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." +msgstr "Toto je největší možná výška vrstvy pro tento extruder, který se používá k zakrytí výšky proměnné vrstvy a výšky podpůrné vrstvy. Maximální doporučená výška vrstvy činí 75% šířky vytlačování, aby se dosáhlo přiměřené přilnavosti mezi vrstvami. Pokud je nastavena hodnota 0, je výška vrstvy omezena na 75% průměru trysky." + +#: src/libslic3r/PrintConfig.cpp:1225 +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 "Nejmenší tisknutelná výška vrstvy pro tento extruder. Omezuje rozlišení pro výšku proměnné vrstvy. Typické hodnoty jsou mezi 0,05 mm a 0,1 mm." + +#: src/libslic3r/PrintConfig.cpp:2114 +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 "Tato matice popisuje objemy (v kubických milimetrech) nutné k vyčištění nového filamentu na čistící věži pro danou dvojici nástrojů. " + +#: src/libslic3r/PrintConfig.cpp:1372 +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 surfaces which benefit from a higher number of perimeters if the Extra Perimeters option is enabled." +msgstr "Tato volba nastavuje počet perimetrů, které je třeba vygenerovat pro každou vrstvu. Slic3r může toto číslo automaticky zvýšit, pokud detekuje šikmé plochy, které se tisknou lépe s vyšším počtem obvodů, pokud je zapnuta možnost Extra perimetry." + +#: src/libslic3r/PrintConfig.cpp:1287 +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 "Tato volba sníží teplotu neaktivních extruderů, aby u nich nedošlo k vytékání." + +#: src/libslic3r/PrintConfig.cpp:980 +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 "Tato volba omezuje výplň na plochy skutečně potřebné pro podpěru stropů (bude se chovat jako vnitřní podpěrný materiál). Je-li tato volba zapnuta, zpomaluje generování G-code kvůli několikanásobným kontrolám." + +#: src/libslic3r/PrintConfig.cpp:973 +msgid "This option will switch the print order of perimeters and infill, making the latter first." +msgstr "Tato volba obrátí pořadí tisku obvodů a výplní." + +#: src/libslic3r/PrintConfig.cpp:427 +msgid "This separate setting will affect the speed of external perimeters (the visible ones). If expressed as percentage (for example: 80%) it will be calculated on the perimeters speed setting above. Set to zero for auto." +msgstr "Toto oddělené nastavení ovlivní rychlost tisku vnějších perimetrů (těch viditelných). Pokud je hodnota vyjádřena procenty (například: 80%), bude rychlost vypočítána z hodnoty rychlosti tisku perimetrů, nastavené výše. Nastavte nulu pro automatický výpočet." + +#: src/libslic3r/PrintConfig.cpp:1648 +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 "Toto oddělené nastavení ovlivní rychlost perimetrů o poloměru <= 6,5 mm (obvykle díry). Pokud je vyjádřeno jako procentní podíl (například: 80%), vypočte se z výše uvedeného nastavení rychlosti perimetrů. Pro automatické nastavení zadejte nulu." + +#: src/libslic3r/PrintConfig.cpp:989 +msgid "This setting applies an additional overlap between infill and perimeters for better bonding. Theoretically this shouldn't be needed, but backlash might cause gaps. If expressed as percentage (example: 15%) it is calculated over perimeter extrusion width." +msgstr "Toto nastavení uplatňuje dodatečné překrytí mezi výplní a obvodem pro lepší spojení. Teoreticky by to nemělo být potřeba, ale reakce by mohla způsobit mezery. Pokud je vyjádřeno procenty (například: 15%), vypočítá se z šířky extruze perimetrů." + +#: src/libslic3r/PrintConfig.cpp:57 +msgid "This setting controls the height (and thus the total number) of the slices/layers. Thinner layers give better accuracy but take more time to print." +msgstr "Toto nastavení řídí výšku (a tedy výsledný počet) řezů/vrstev. Tenčí vrstva poskytuje lepší přesnost, ale tiskne se déle." + +#: src/libslic3r/PrintConfig.cpp:1153 +msgid "This setting represents the maximum speed of your fan." +msgstr "Toto nastavení vyjadřuje maximální rychlost ventilátoru." + +#: src/libslic3r/PrintConfig.cpp:1216 +msgid "This setting represents the minimum PWM your fan needs to work." +msgstr "Toto nastavení představuje minimální hodnotu PWM, kterou ventilátor potřebuje, aby pracoval." + +#: src/slic3r/GUI/UpdateDialogs.cpp:123 +#, possible-c-format +msgid "This Slic3r PE version: %s" +msgstr "Tato verze Slic3r PE: %s" + +#: src/libslic3r/PrintConfig.cpp:1752 +msgid "This start procedure is inserted at the beginning, after any printer start gcode. This is used to override settings for a specific filament. If Slic3r detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Tento postup spuštění je vložen na začátku, po každém spuštění G-code tiskárny. Toto slouží k přepsání nastavení pro konkrétní filament. Pokud Slic3r detekuje M104, M109, M140 nebo M190 ve vašich vlastních kódech, takové příkazy nebudou automaticky předkládány, takže máte možnost přizpůsobit pořadí příkazů k ohřevu a další vlastní akce. Pro všechny nastavení Slic3ru můžete použít zástupné proměnné, takže můžete zadat příkaz “M109 S [first_layer_temperature]” kdekoli chcete. Pokud máte více extruderů, G-code se zpracovává v pořadí extruderů." + +#: src/libslic3r/PrintConfig.cpp:1737 +msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If Slic3r detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "Tento spouštěcí postup je vložen na začátku, poté, co vyhřívaná tisková podložka dosáhla cílové teploty a extruder se právě začal ohřívat a předtím, než dosáhl cílové teploty extruder. Pokud Slic3r detekuje M104 nebo M190 ve vašich vlastních kódech, takové příkazy nebudou automaticky předkládány, takže máte možnost upravit pořadí příkazů pro vytápění a další vlastní akce. Pro všechny nastavení Slic3ru můžete použít zástupné proměnné, takže můžete zadat příkaz “M109 S [first_layer_temperature]” kdekoli chcete." + +#: src/libslic3r/PrintConfig.cpp:663 +msgid "This string is edited by RammingDialog and contains ramming specific parameters " +msgstr "This string is edited by RammingDialog and contains ramming specific parameters " + +#: src/libslic3r/PrintConfig.cpp:2185 +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 example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)." +msgstr "Tato hodnota bude přidána (nebo odečtena) ze všech souřadnic Z ve výstupním G-code. Používá se ke kompenzování špatné pozice endstopu Z. Například pokud endstop 0 skutečně ponechá trysku 0,3 mm daleko od tiskové podložky, nastavte hodnotu -0,3 (nebo dolaďte svůj koncový doraz)." + +#: src/libslic3r/PrintConfig.cpp:2107 +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 "Tento vektor ukládá potřebné objemy pro změnu z/na každý extruder používaný na čistící věži. Tyto hodnoty jsou použity pro zjednodušení vytvoření celkových objemů čištění níže. " + +#: src/slic3r/GUI/UpdateDialogs.cpp:118 +#, possible-c-format +msgid "This version of %s is not compatible with currently installed configuration bundles.\nThis probably happened as a result of running an older %s after using a newer one.\n\nYou may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" +msgstr "Tato verze %s není kompatibilní se současně nainstalovanými balíčky nastavení.\nTato situace nejspíše nastala spuštěním starší verze %s po používání novější verze.\n\nMůžete buď ukončit %s a zkusit to znovu s novou verzí, nebo můžete znovu spustit výchozí konfiguraci. Před instalací kompatibilního nastavení s touto verzí %s dojde k vytvoření zálohy současné konfigurace.\n" + +#: src/slic3r/GUI/UpdateDialogs.cpp:114 +msgid "This version of Slic3r PE is not compatible with currently installed configuration bundles.\nThis probably happened as a result of running an older Slic3r PE after using a newer one.\n\nYou may either exit Slic3r and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this Slic3r.\n" +msgstr "Tato verze Slic3r PE není kompatibilní se současně nainstalovanými balíčky nastavení.\nTato situace nejspíše nastala spuštěním starší verze Slic3r PE po používání novější verze.\n\nMůžete buď ukončit Slic3r a zkusit to znovu s novou verzí, nebo můžete znovu spustit výchozí konfiguraci. Před instalací kompatibilního nastavení s touto verzí Slic3ru dojde k vytvoření zálohy současné konfigurace.\n" + +#: src/libslic3r/PrintConfig.cpp:2282 +msgid "This will apply a gamm correction to the rasterized 2D polygons." +msgstr "Aplikuje korekci gamma na rastrové 2D polygony." + +#: src/libslic3r/PrintConfig.cpp:2284 +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 "Aplikuje gamma korekci na rastrové 2D polygony. Hodnota nula znamená nastavení prahové hodnoty doprostřed. Toto chování eliminuje antialiasing bez ztráty otvorů v polygonech." + +#: src/libslic3r/PrintConfig.cpp:1994 +msgid "Threads" +msgstr "Vlákna" + +#: src/libslic3r/PrintConfig.cpp:1995 +msgid "Threads are used to parallelize long-running tasks. Optimal threads number is slightly above the number of available cores/processors." +msgstr "Vlákna jsou používána pro paralelizaci časově náročnějších úloh. Optimální počet vláken je mírně nad počtem dostupných jader/procesorů." + +#: src/slic3r/GUI/Tab.cpp:2052 +msgid "Tilt" +msgstr "Náklon" + +#: src/slic3r/GUI/Tab.cpp:2053 +msgid "Tilt time" +msgstr "Doba náklonu" + +#: src/slic3r/GUI/RammingChart.cpp:76 +msgid "Time" +msgstr "Čas" + +#: src/libslic3r/PrintConfig.cpp:655 +msgid "Time for the printer firmware (or the Multi Material Unit 2.0) to load a new filament during a tool change (when executing the T code). This time is added to the total print time by the G-code time estimator." +msgstr "Doba, po kterou firmware tiskárny (nebo jednotka Multi Material 2.0) zavádí nový filament během jeho výměny (při provádění kódu T). Tento čas je přidán k celkové době tisku pomocí G-code odhadovače tiskového času." + +#: src/libslic3r/PrintConfig.cpp:670 +msgid "Time for the printer firmware (or the Multi Material Unit 2.0) to unload a filament during a tool change (when executing the T code). This time is added to the total print time by the G-code time estimator." +msgstr "Doba, po kterou firmware tiskárny (nebo jednotka Multi Material 2.0) vysouvá filament během jeho výměny (při provádění kódu T). Tento čas je přidán k celkové době tisku pomocí G-code odhadovače tiskového času." + +#: src/libslic3r/PrintConfig.cpp:2242 +msgid "Time of the fast tilt" +msgstr "Doba trvání rychlého náklonu" + +#: src/libslic3r/PrintConfig.cpp:2251 +msgid "Time of the slow tilt" +msgstr "Doba trvání pomalého náklonu" + +#: src/libslic3r/PrintConfig.cpp:609 +msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions. " +msgstr "Doba čekání po vysunutí filamentu. Může pomoci ke spolehlivé změně extruderu s flexibilními materiály, které potřebují více času ke smrštění na původní rozměry. " + +#: src/slic3r/GUI/Tab.cpp:916 +msgid "To do that please specify a new name for the preset." +msgstr "Chcete-li akci provést, prosím nejdříve zadejte nový název přednastavení." + +#: src/slic3r/GUI/UpdateDialogs.cpp:37 +msgid "To download, follow the link below." +msgstr "Pro stažení, klikněte na odkaz níže." + +#: src/slic3r/GUI/Plater.cpp:2966 +msgid "To objects" +msgstr "Objektům" + +#: src/slic3r/GUI/Plater.cpp:2968 +msgid "To parts" +msgstr "Na části" + +#: src/libslic3r/Zipper.cpp:37 +msgid "too many files" +msgstr "příliš mnoho souborů" + +#: src/slic3r/GUI/GUI_Preview.cpp:217 src/slic3r/GUI/GUI_Preview.cpp:315 +#: src/slic3r/GUI/GUI_Preview.cpp:481 src/slic3r/GUI/GUI_Preview.cpp:537 +#: src/slic3r/GUI/GUI_Preview.cpp:713 src/libslic3r/GCode/PreviewData.cpp:404 +msgid "Tool" +msgstr "Nástroj" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:240 +msgid "Tool #" +msgstr "Nástroj #" + +#: src/slic3r/GUI/Tab.cpp:1973 src/libslic3r/PrintConfig.cpp:2006 +msgid "Tool change G-code" +msgstr "G-code pro výměnu nástroje" + +#: src/slic3r/GUI/Tab.cpp:1530 +msgid "Toolchange parameters with single extruder MM printers" +msgstr "Parametry při výměně (Multi Material s jedním extruderem)" + +#. TRN To be shown in the main menu View->Top +#: src/slic3r/GUI/MainFrame.cpp:522 +msgid "Top" +msgstr "Shora" + +#: src/libslic3r/PrintConfig.cpp:388 +msgid "Top fill pattern" +msgstr "Vzor výplně horní vrstvy" + +#: src/slic3r/GUI/PresetHints.cpp:189 +msgid "top solid infill" +msgstr "vrchní plná výplň" + +#: src/slic3r/GUI/GUI_Preview.cpp:232 src/libslic3r/PrintConfig.cpp:2017 +#: src/libslic3r/PrintConfig.cpp:2028 src/libslic3r/GCode/PreviewData.cpp:168 +msgid "Top solid infill" +msgstr "Vrchní plné výplně" + +#: src/libslic3r/PrintConfig.cpp:2046 +msgid "Top solid layers" +msgstr "Vrchních plných vrstev" + +#: src/slic3r/GUI/MainFrame.cpp:522 +msgid "Top View" +msgstr "Pohled svrchu" + +#: xs/src/libslic3r/PrintConfig.cpp:283 +msgid "Top/bottom fill pattern" +msgstr "Vzor výplně horní/spodní vrstvy" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:247 +msgid "Total purging volume is calculated by summing two values below, depending on which tools are loaded/unloaded." +msgstr "Celkový objem čištění je spočítán jako součet dvou hodnot níže v závislosti na tom, které extrudery jsou zavedeny/vyjmuty." + +#: src/slic3r/GUI/WipeTowerDialog.cpp:84 +msgid "Total rammed volume" +msgstr "Celkový objem rapidní extruze" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:82 +msgid "Total ramming time" +msgstr "Celkový čas rapidní extruze" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:252 +msgid "Translate" +msgstr "Posunout" + +#: src/slic3r/GUI/GUI_Preview.cpp:243 src/libslic3r/PrintConfig.cpp:2051 +msgid "Travel" +msgstr "Rychloposun" + +#: src/libslic3r/PrintConfig.cpp:798 +msgid "Triangles" +msgstr "Trojúhelníky" + +#: src/libslic3r/PrintConfig.cpp:3059 +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 "Pokuste se opravit nemanifoldní meshe (tato možnost je implicitně přidána vždy, když potřebujeme řezat model)." + +#: src/libslic3r/PrintConfig.cpp:1397 +msgid "Type of the printer." +msgstr "Typ tiskárny." + +#: src/libslic3r/Zipper.cpp:35 +msgid "undefined error" +msgstr "nedefinovaná chyba" + +#: src/libslic3r/Zipper.cpp:59 +msgid "unexpected decompressed size" +msgstr "neočekávaná dekomprimovaná velikost" + +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Uniformly…" +msgstr "Souměrně…" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:27 +msgid "Unknown" +msgstr "Neznámý" + +#: src/slic3r/Utils/Duet.cpp:84 src/slic3r/Utils/Duet.cpp:154 +msgid "Unknown error occured" +msgstr "Došlo k neznámé chybě" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:234 +msgid "unloaded" +msgstr "vyjmuto" + +#: src/libslic3r/PrintConfig.cpp:591 +msgid "Unloading speed" +msgstr "Rychlost vysunutí" + +#: src/libslic3r/PrintConfig.cpp:600 +msgid "Unloading speed at the start" +msgstr "Počáteční rychlost vysouvání filamentu " + +#: src/slic3r/GUI/Tab.cpp:3105 +msgid "UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system values for the current option group.\nClick to reset all settings for current option group to the system values." +msgstr "Ikona ODEMKNUTÉHO ZÁMKU indikuje, že některá nastavení byla změněna a nejsou shodná se systémovými hodnotami pro danou skupinu nastavení. Klikněte pro reset všech nastavení aktuální skupiny nastavení na systémové hodnoty." + +#: src/slic3r/GUI/Tab.cpp:3120 +msgid "UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system value.\nClick to reset current value to the system value." +msgstr "Ikona ODEMKNUTÉHO ZÁMKU indikuje, že se hodnota změnila a není shodná se systémovou hodnotou.\nKlikněte pro reset současné hodnoty na systémovou hodnotu." + +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "UNLOCKED LOCK;indicates that some settings were changed and are not equal to the system values for the current option group.\nClick the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "ODEMKNUTÝ ZÁMEK;indikuje, že některá nastavení byla změněna a nejsou shodná se systémovými hodnotami pro danou skupinu nastavení.\nKlikněte na ikonu ODEMKNUTÉHO ZÁMKU pro reset všech nastavení aktuální skupiny nastavení na systémové hodnoty." + +#: src/slic3r/GUI/GUI_Preview.cpp:245 +msgid "Unretractions" +msgstr "Deretrakce" + +#: src/slic3r/GUI/Tab.cpp:2785 +msgid "Unsaved Changes" +msgstr "Neuložené Změny" + +#: src/slic3r/GUI/GUI_App.cpp:790 +msgid "Unsaved Presets" +msgstr "Neuložená přednastavení" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 +msgid "Unselect gizmo, keep object selection" +msgstr "Zrušit gizmo, zachovat výběr objektů" + +#: src/libslic3r/Zipper.cpp:63 +msgid "unsupported central directory size" +msgstr "nepodporovaná velikost centrálního adresáře" + +#: src/libslic3r/Zipper.cpp:43 +msgid "unsupported encryption" +msgstr "nepodporované šifrování" + +#: src/libslic3r/Zipper.cpp:45 +msgid "unsupported feature" +msgstr "nepodporovaná funkce" + +#: src/libslic3r/Zipper.cpp:41 +msgid "unsupported method" +msgstr "nepodporovaná metoda" + +#: src/libslic3r/Zipper.cpp:53 +msgid "unsupported multidisk archive" +msgstr "nepodporovaný multidisk archiv" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2414 +msgid "Unsupported selection" +msgstr "Nepodporovaný výběr" + +#: src/libslic3r/GCode/PreviewData.cpp:495 +#, possible-c-format +msgid "up to %.2f mm" +msgstr "do % .2f mm" + +#: src/slic3r/GUI/UpdateDialogs.cpp:30 +msgid "Update available" +msgstr "Je dostupná aktualizace" + +#: src/slic3r/GUI/ConfigWizard.cpp:419 src/slic3r/GUI/Preferences.cpp:69 +msgid "Update built-in Presets automatically" +msgstr "Aktualizovat vestavěné přednastavení automaticky" + +#: src/slic3r/GUI/ConfigWizard.cpp:401 +msgid "Updates" +msgstr "Aktualizace" + +#: src/slic3r/GUI/ConfigWizard.cpp:426 +msgid "Updates are never applied without user's consent and never overwrite user's customized settings." +msgstr "Aktualizace nejsou nikdy nainstalovány bez vědomí uživatele a nikdy nepřepíšou upravená uživatelská nastavení." + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:18 +msgid "Upgrade" +msgstr "Aktualizovat" + +#: src/slic3r/GUI/GUI_App.cpp:685 +msgid "Upload a firmware image into an Arduino based printer" +msgstr "Nahrát firmware do tiskárny s Arduinem" + +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Upload to OctoPrint with the following filename:" +msgstr "Nahrát do OctoPrintu s následujícím názvem:" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:33 +msgid "Upload to Printer Host with the following filename:" +msgstr "Nahrát soubor do tiskového serveru se jménem:" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:229 +msgid "Uploading" +msgstr "Nahrávání" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:171 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:173 +msgid "Upper Layer" +msgstr "Vyšší vrstva" + +#: src/slic3r/GUI/Tab.cpp:1873 +msgid "USB/Serial connection" +msgstr "USB/Sériové připojení" + +#: src/libslic3r/PrintConfig.cpp:1592 +msgid "USB/serial port for printer connection." +msgstr "USB/sériový port pro připojení tiskárny." + +#: src/libslic3r/PrintConfig.cpp:2060 +msgid "Use firmware retraction" +msgstr "Použít retrakce z firmwaru" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:42 +msgid "Use forward slashes ( / ) as a directory separator if needed." +msgstr "Pokud je to nutné, použijte pro oddělení složek lomítko ( / )." + +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "Use legacy OpenGL 1.1 rendering" +msgstr "Použijte historické OpenGL 1.1 vykreslování" + +#: src/libslic3r/PrintConfig.cpp:2515 +msgid "Use pad" +msgstr "Použít podložku" + +#: src/libslic3r/PrintConfig.cpp:2067 +msgid "Use relative E distances" +msgstr "Použít relativní E vzdálenosti" + +#: src/slic3r/GUI/Preferences.cpp:103 +msgid "Use Retina resolution for the 3D scene" +msgstr "Pro 3D scénu použít rozlišení Retina" + +#: src/libslic3r/PrintConfig.cpp:508 +msgid "Use this option to set the axis letter associated to your printer's extruder (usually E but some printers use A)." +msgstr "Touto volbou nastavíte písmeno osy přidružené k extruderu tiskárny (obvykle E, ale některé tiskárny používají A)." + +#: src/libslic3r/PrintConfig.cpp:1807 +msgid "Use this setting to rotate the support material pattern on the horizontal plane." +msgstr "Toto nastavení použijte pro horizontální otočení vzoru." + +#: src/libslic3r/PrintConfig.cpp:2074 +msgid "Use volumetric E" +msgstr "Použít volumetrickou hodnotu E" + +#: src/slic3r/GUI/Plater.cpp:214 +msgid "Used Filament (g)" +msgstr "Použito Filamentu (g)" + +#: src/slic3r/GUI/Plater.cpp:212 src/slic3r/GUI/Plater.cpp:1041 +msgid "Used Filament (m)" +msgstr "Použito Filamentu (m)" + +#: src/slic3r/GUI/Plater.cpp:213 +msgid "Used Filament (mm³)" +msgstr "Použito Filamentu (mm³)" + +#: src/slic3r/GUI/Plater.cpp:1015 +msgid "Used Material (ml)" +msgstr "Použitý materiál (ml)" + +#: src/slic3r/GUI/Plater.cpp:215 +msgid "Used Material (unit)" +msgstr "Použito materiálu (jednotka)" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:24 +msgid "User" +msgstr "Uživatel" + +#: src/slic3r/GUI/Preset.cpp:974 src/slic3r/GUI/Preset.cpp:1071 +#: src/slic3r/GUI/PresetBundle.cpp:1558 +msgid "User presets" +msgstr "Uživatelská přednastavení" + +#: src/libslic3r/Zipper.cpp:93 +msgid "validation failed" +msgstr "Validace selhala" + +#: src/slic3r/GUI/ButtonsDescription.cpp:41 +msgid "Value is the same as the system value" +msgstr "Hodnota je shodná se systémovou hodnotou" + +#: src/slic3r/GUI/ButtonsDescription.cpp:58 +msgid "Value was changed and is not equal to the system value or the last saved preset" +msgstr "Hodnota byla změněna a není shodná se systémovou hodnotou nebo naposled uloženým přednastavením" + +#: src/slic3r/GUI/Tab.cpp:2150 +msgid "Values in this column are for Full Power mode" +msgstr "Hodnoty v tomto sloupci jsou určeny pro režim plného výkonu (normal režim)" + +#: src/slic3r/GUI/Tab.cpp:2156 +msgid "Values in this column are for Silent mode" +msgstr "Hodnoty v tomto sloupci jsou pro tichý režim" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:58 +msgid "variants" +msgstr "varianty" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 src/slic3r/GUI/Tab.cpp:921 +msgid "vendor" +msgstr "prodejce" + +#: src/libslic3r/PrintConfig.cpp:880 +msgid "Verbose G-code" +msgstr "Komentáře do G-code" + +#: lib/Slic3r/GUI/MainFrame.pm:66 +msgid "Version " +msgstr "Verze " + +#: src/slic3r/GUI/AboutDialog.cpp:67 src/slic3r/GUI/MainFrame.cpp:53 +msgid "Version" +msgstr "Verze" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 +msgid "version" +msgstr "verze" + +#: src/slic3r/GUI/Tab.cpp:1002 +msgid "Vertical shells" +msgstr "Svislé stěny" + +#: src/slic3r/GUI/GUI_Preview.cpp:209 +msgid "View" +msgstr "Zobrazení" + +#: src/libslic3r/SLAPrint.cpp:857 src/libslic3r/SLAPrint.cpp:867 +#: src/libslic3r/SLAPrint.cpp:915 +msgid "Visualizing supports" +msgstr "Vizualizace podpěr" + +#: src/slic3r/GUI/Plater.cpp:138 +msgid "Volume" +msgstr "Obsah" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:248 +msgid "Volume to purge (mm³) when the filament is being" +msgstr "Objem k vyčištění (mm³) pokud je filament" + +#: src/slic3r/GUI/PresetHints.cpp:216 +msgid "Volumetric" +msgstr "Volumetrický" + +#: src/slic3r/GUI/GUI_Preview.cpp:216 +msgid "Volumetric flow rate" +msgstr "Objemový průtok" + +#: src/libslic3r/GCode/PreviewData.cpp:402 +msgid "Volumetric flow rate (mm3/s)" +msgstr "Objemový průtok (mm3/s)" + +#: src/slic3r/GUI/RammingChart.cpp:81 +msgid "Volumetric speed" +msgstr "Objemová rychlost" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1168 src/slic3r/GUI/GUI.cpp:283 +#: src/slic3r/GUI/WipeTowerDialog.cpp:44 src/slic3r/GUI/WipeTowerDialog.cpp:328 +msgid "Warning" +msgstr "Varování" + +#: src/slic3r/GUI/ConfigWizard.cpp:294 +msgid "Welcome" +msgstr "Vítejte" + +#: src/slic3r/GUI/ConfigWizard.cpp:294 +#, possible-c-format +msgid "Welcome to the %s %s" +msgstr "Vítejte v %s %s" + +#: src/slic3r/GUI/ConfigWizard.cpp:284 +#, possible-c-format +msgid "Welcome to the Slic3r %s" +msgstr "Vítejte v Slic3r %s" + +#: lib/Slic3r/GUI/Plater/2D.pm:131 +msgid "What do you want to print today? ™" +msgstr "Co chcete dnes tisknout? ™" + +#: src/slic3r/GUI/Preferences.cpp:86 +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 "Pokud je zaškrtnuto, přednastavení tisku a filamentu se zobrazují v editoru přednastavení, i když jsou označeny jako nekompatibilní s aktivní tiskárnou" + +#: src/slic3r/GUI/PresetHints.cpp:221 +msgid "when printing " +msgstr "při tisku " + +#: src/libslic3r/PrintConfig.cpp:216 +msgid "When printing multi-material objects, this settings will make slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "Připnutí překrývajících se objektů jeden k druhému při Multimateriálovém tisku. (Druhá část se připne k první, třetí část k první a druhé, atd)." + +#: src/libslic3r/PrintConfig.cpp:217 +msgid "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "Připnutí překrývajících se objektů jeden k druhému při Multimateriálovém tisku. (Druhá část se připne k první, třetí část k první a druhé, atd)." + +#: src/libslic3r/PrintConfig.cpp:269 +msgid "When printing multiple objects or copies, this feature will complete each object before moving onto next one (and starting it from its bottom layer). This feature is useful to avoid the risk of ruined prints. Slic3r should warn and prevent you from extruder collisions, but beware." +msgstr "Při tisku více objektů nebo kopií tiskárna kompletně dokončí jeden objekt, předtím než začne tisknout druhý (začíná od spodní vrstvy). Tato vlastnost je výhodná z důvodů snížení rizika zničených výtisků. Slic3r by měl varovat při možné kolizi extruderu s objektem a zabránit mu, přesto doporučujeme obezřetnost." + +#: src/libslic3r/PrintConfig.cpp:843 +msgid "When printing with very low layer heights, you might still want to print a thicker bottom layer to improve adhesion and tolerance for non perfect build plates. This can be expressed as an absolute value or as a percentage (for example: 150%) over the default layer height." +msgstr "Při tisku s velmi nízkými výškami vrstev můžete stále vytisknout tlustší spodní vrstvu pro zlepšení přilnavosti a toleranci pro nedokonale zkalibrovanou tiskovou podložku. Může být vyjádřeno jako absolutní hodnota nebo jako procento (například: 150%) z výchozí výšky vrstvy." + +#: src/libslic3r/PrintConfig.cpp:1483 +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 "Při výměně nástroje se spustí retrakce a filament se zatáhne zpět o zadané množství (délka se měří na surovém filamentu, než vstoupí do extruderu)." + +#: src/libslic3r/PrintConfig.cpp:1475 +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 "Při spuštění retrakce se filament zatáhne zpět o zadané množství (délka se měří na surovém filamentu, než vstoupí do extruderu)." + +#: src/libslic3r/PrintConfig.cpp:1322 +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 positive, it is loaded further, if negative, the loading move is shorter than unloading. " +msgstr "Když je hodnota nastavena na nulu, vzdálenost o kterou se filament posune během zavádění, je stejná, jako zpětný posun během vysouvání filamentu. Je-li hodnota kladná, je filament posunut více,. Je-li hodnota záporná, posun při zavádění je kratší než při vysouvání." + +#: src/libslic3r/PrintConfig.cpp:1173 +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 "Pokud jsou všechna ostatní nastavení rychlosti na hodnotě nula, Slic3r automaticky vypočítá optimální rychlost pro udržení konstantního tlaku v extruderu. Toto experimentální nastavení slouží k nastavení nejvyšší rychlosti tisku, kterou chcete povolit." + +#: src/libslic3r/PrintConfig.cpp:1527 +msgid "When the retraction is compensated after changing tool, the extruder will push this additional amount of filament." +msgstr "Když je retrakce kompenzována po změně nástroje, extruder vytlačuje toto další množství filamentu." + +#: src/libslic3r/PrintConfig.cpp:1519 +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 "Když je retrakce kompenzována po rychloposunu, extruder vytlačuje toto další množství filamentu. Toto nastavení je zřídkakdy potřeba." + +#: src/slic3r/GUI/Tab.cpp:3108 +msgid "WHITE BULLET icon indicates a non system preset." +msgstr "Ikona BÍLÉ TEČKY indikuje nesystémové přednastavení." + +#: src/slic3r/GUI/Tab.cpp:3111 +msgid "WHITE BULLET icon indicates that the settings are the same as in the last saved preset for the current option group." +msgstr "Ikona BÍLÉ TEČKY indikuje, že nastavení jsou shodná s naposledy uloženým přednastavením pro danou skupinu nastavení." + +#: src/slic3r/GUI/Tab.cpp:3126 +msgid "WHITE BULLET icon indicates that the value is the same as in the last saved preset." +msgstr "Ikona BÍLÉ TEČKY indikuje, že je hodnota shodná s naposledy uloženým přednastavením." + +#: src/slic3r/GUI/Tab.cpp:3073 +msgid "WHITE BULLET;for the left button: \tindicates a non-system preset,\nfor the right button: \tindicates that the settings hasn't been modified." +msgstr "BÍLÁ TEČKA;pro levé tlačítko: indikuje nesystémové přednastavení,\npro pravé tlačítko: indikuje, že nastavení nebylo změněno." + +#: src/slic3r/GUI/GUI_Preview.cpp:214 src/libslic3r/PrintConfig.cpp:2137 +msgid "Width" +msgstr "Šířka" + +#: src/libslic3r/GCode/PreviewData.cpp:398 +msgid "Width (mm)" +msgstr "Šířka (mm)" + +#: src/libslic3r/PrintConfig.cpp:2389 +msgid "Width from the back sphere center to the front sphere center" +msgstr "Šířka od středu zadní koule ke středu přední koule" + +#: src/libslic3r/PrintConfig.cpp:2138 +msgid "Width of a wipe tower" +msgstr "Šířka čistící věže" + +#: src/libslic3r/PrintConfig.cpp:2203 +msgid "Width of the display" +msgstr "Šířka displeje" + +#: src/slic3r/GUI/PresetHints.cpp:43 +#, possible-c-format +msgid "will always run at %d%% " +msgstr "bude vždy běžet na %d%% " + +#: src/slic3r/GUI/PresetHints.cpp:52 +msgid "will be turned off." +msgstr "bude vypnut." + +#: src/libslic3r/PrintConfig.cpp:2276 +msgid "Will inflate or deflate the sliced 2D polygons according to the sign of the correction." +msgstr "Vytvoří offset každé vrstvy v rovině XY. Kladná hodnota - offset směrem ven, plocha polygonu se zvětší. Záporná hodnota - offset směrem dovnitř, plocha polygonu se zmenší." + +#: src/libslic3r/PrintConfig.cpp:2160 +msgid "Wipe into this object" +msgstr "Vyčistit do tohoto objektu" + +#: src/libslic3r/PrintConfig.cpp:2152 +msgid "Wipe into this object's infill" +msgstr "Vyčištění do výplně tohoto objektu" + +#: src/slic3r/GUI/GUI_Preview.cpp:238 src/slic3r/GUI/Tab.cpp:1130 +#: src/libslic3r/GCode/PreviewData.cpp:174 +msgid "Wipe tower" +msgstr "Čistící věž" + +#: src/slic3r/GUI/Tab.cpp:1281 src/slic3r/GUI/Tab.cpp:1298 +msgid "Wipe Tower" +msgstr "Čistící věž" + +#: src/slic3r/GUI/Plater.cpp:1043 src/slic3r/GUI/Plater.cpp:1058 +msgid "wipe tower" +msgstr "čistící věž" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:141 +msgid "Wipe tower - Purging volume adjustment" +msgstr "Čistící věž - Úprava objemu čištění" + +#: src/libslic3r/PrintConfig.cpp:2144 +msgid "Wipe tower rotation angle" +msgstr "Úhel natočení čistící věže" + +#: src/libslic3r/PrintConfig.cpp:2145 +msgid "Wipe tower rotation angle with respect to x-axis " +msgstr "Úhel natočení čistící věže s ohledem na osu X " + +#: src/libslic3r/PrintConfig.cpp:2092 +msgid "Wipe while retracting" +msgstr "Očistit při retrakci" + +#: xs/src/libslic3r/PrintConfig.cpp:1997 +msgid "Wiping after toolchange will be preferentially done inside infills. This lowers the amount of waste but may result in longer print time due to additional travel moves." +msgstr "Čištění po výměně extruderu bude přednostně prováděno do vnitřních výplní. Tím se snižuje množství odpadu, ale může to mít za následek delší dobu tisku v důsledku dodatečných pohybů." + +#: src/libslic3r/PrintConfig.cpp:1460 +msgid "With bowden extruders, it may be wise to do some amount of quick retract before doing the wipe movement." +msgstr "U bowdenových extrudérů může být vhodné provést rychlé retrakce než se spustí očištění." + +#: src/libslic3r/PrintConfig.cpp:1969 +msgid "With sheath around the support" +msgstr "Pouzdro okolo podpěr" + +#: src/slic3r/GUI/UpdateDialogs.cpp:76 +msgid "Would you like to install it?\n\nNote that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n\nUpdated configuration bundles:" +msgstr "Přejete si spustit instalaci?\n\nNejprve bude provedena kompletní záloha nastavení. V případě problémů s novou verzí ji bude možné kdykoliv obnovit.\n\nAktualizované balíčky nastavení:" + +#: src/libslic3r/Zipper.cpp:95 +msgid "write calledback failed" +msgstr "zpětné volání se nezdařilo" + +#: src/libslic3r/PrintConfig.cpp:2993 +msgid "Write information about the model to the console." +msgstr "Vypsat informace o modelu do konsole." + +#: src/slic3r/Utils/Duet.cpp:148 +msgid "Wrong password" +msgstr "Chybné heslo" + +#: src/libslic3r/PrintConfig.cpp:2124 +msgid "X coordinate of the left front corner of a wipe tower" +msgstr "X souřadnice levého předního rohu čistící věže" + +#: src/libslic3r/PrintConfig.cpp:1793 +msgid "XY separation between an object and its support" +msgstr "XY vzdálenost mezi objektem a podpěrami" + +#: src/libslic3r/PrintConfig.cpp:1795 +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 "XY vzdálenost mezi objektem a podpěrami. Pokud je vyjádřeno procenty (například 50%), bude vypočítána z šířky perimetru." + +#: src/libslic3r/PrintConfig.cpp:2174 +msgid "XY Size Compensation" +msgstr "Kompenzace XY rozměrů" + +#: src/libslic3r/PrintConfig.cpp:2131 +msgid "Y coordinate of the left front corner of a wipe tower" +msgstr "Y souřadnice levého předního rohu čistící věže" + +#: src/slic3r/GUI/Plater.cpp:992 +msgid "Yes" +msgstr "Ano" + +#: src/libslic3r/PrintConfig.cpp:1252 +msgid "You can put here your personal notes. This text will be added to the G-code header comments." +msgstr "Zde můžete zadat své osobní poznámky. Tento text bude přidán do komentáře záhlaví G code." + +#: src/libslic3r/PrintConfig.cpp:557 +msgid "You can put your notes regarding the filament here." +msgstr "Zde můžete vložit poznámky týkající se filamentu." + +#: src/libslic3r/PrintConfig.cpp:1403 +msgid "You can put your notes regarding the printer here." +msgstr "Zde můžete uvést poznámky týkající se tiskárny." + +#: src/libslic3r/PrintConfig.cpp:2332 +msgid "You can put your notes regarding the SLA print material here." +msgstr "Zde můžete vkládat své poznámky týkající se tiskového materiálu SLA." + +#: src/libslic3r/PrintConfig.cpp:324 +msgid "You can set this to a positive value to disable fan at all during the first layers, so that it does not make adhesion worse." +msgstr "Nastavením počtu prvních vrstev s vypnutým chlazením pro nezhoršování přilnavosti." + +#: src/libslic3r/PrintConfig.cpp:1295 +msgid "You can use all configuration options as variables inside this template. For example: [layer_height], [fill_density] etc. You can also use [timestamp], [year], [month], [day], [hour], [minute], [second], [version], [input_filename], [input_filename_base]." +msgstr "V této šabloně můžete použít všechny možnosti konfigurace jako proměnné. Můžete například použít: [layer_height], [fill_density] etc. Také můžete použít [timestamp], [year], [month], [day], [hour], [minute], [second], [version], [input_filename], [input_filename_base]." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2538 +msgid "You can't change a type of the last solid part of the object." +msgstr "Nelze změnit typ poslední plné části objektu." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1711 +msgid "You can't delete the last intance from object." +msgstr "Nelze smazat poslední instanci z objektu." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1694 +msgid "You can't delete the last solid part from object." +msgstr "Nelze smazat poslední část z objektu." + +#: src/slic3r/GUI/Plater.cpp:1746 +#, possible-c-format +msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part" +msgstr "Nemůžete přidat objekt(y) z %s, protože jeden nebo některé z nich je(jsou) vícedílné" + +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid "You have unsaved changes " +msgstr "Máte neuložené změny " + +#: src/slic3r/GUI/Preferences.cpp:130 +#, possible-c-format +msgid "You need to restart %s to make the changes effective." +msgstr "Chcete-li provést změny, musíte restartovat aplikaci %s." + +#: src/slic3r/GUI/Preferences.cpp:126 +msgid "You need to restart Slic3r to make the changes effective." +msgstr "Chcete-li provést změny, musíte restartovat aplikaci Slic3r." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2415 +#, possible-c-format +msgid "You started your selection with %s Item." +msgstr "Začali jste výběr s položkou %s." + +#: src/slic3r/GUI/MainFrame.cpp:772 +msgid "Your file was repaired." +msgstr "Váš soubor byl opraven." + +#: src/slic3r/GUI/Plater.cpp:1874 +msgid "Your object appears to be too large, so it was automatically scaled down to fit your print bed." +msgstr "Váš objekt se zdá být příliš velký, takže byl automaticky zmenšen, aby se vešel na tiskovou podložku." + +#: src/libslic3r/PrintConfig.cpp:2184 +msgid "Z offset" +msgstr "Odsazení Z" + +#: src/libslic3r/PrintConfig.cpp:2416 +msgid "Zig-Zag" +msgstr "Zig-Zag" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:152 +msgid "Zoom in" +msgstr "Přiblížit" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:153 +msgid "Zoom out" +msgstr "Oddálit" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:150 +msgid "Zoom to all objects in scene, if none selected" +msgstr "Pohled na všechny objekty ve scéně, pokud žádný není vybraný" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:149 +msgid "Zoom to Bed" +msgstr "Pohled na tiskovou plochu" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:151 +msgid "Zoom to selected object" +msgstr "Pohled na vybraný objekt" + +#: src/libslic3r/PrintConfig.cpp:171 src/libslic3r/PrintConfig.cpp:733 +#: src/libslic3r/PrintConfig.cpp:1570 src/libslic3r/PrintConfig.cpp:1580 +#: src/libslic3r/PrintConfig.cpp:1808 src/libslic3r/PrintConfig.cpp:1962 +#: src/libslic3r/PrintConfig.cpp:2146 src/libslic3r/PrintConfig.cpp:2463 +msgid "°" +msgstr "°" + +#: src/slic3r/GUI/ConfigWizard.cpp:613 src/slic3r/GUI/ConfigWizard.cpp:627 +msgid "°C" +msgstr "°C" diff --git a/resources/localization/de/PrusaSlicer.mo b/resources/localization/de/PrusaSlicer.mo deleted file mode 100644 index 740f3f0e46f..00000000000 Binary files a/resources/localization/de/PrusaSlicer.mo and /dev/null differ diff --git a/resources/localization/de_DE/PrusaSlicer.mo b/resources/localization/de_DE/PrusaSlicer.mo new file mode 100644 index 00000000000..eee428396b5 Binary files /dev/null and b/resources/localization/de_DE/PrusaSlicer.mo differ diff --git a/resources/localization/de/PrusaSlicer_de.po b/resources/localization/de_DE/PrusaSlicer_de.po similarity index 77% rename from resources/localization/de/PrusaSlicer_de.po rename to resources/localization/de_DE/PrusaSlicer_de.po index a0cd64007ad..d158e24445e 100644 --- a/resources/localization/de/PrusaSlicer_de.po +++ b/resources/localization/de_DE/PrusaSlicer_de.po @@ -5,24 +5,167 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: PhraseApp (phraseapp.com)\n" +"X-Generator: Poedit 2.0.8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Oleksandra Iushchenko \n" +"Language-Team: \n" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"and it has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"und hat die folgenden ungesicherten Änderungen:" + +#: xs/src/slic3r/GUI/Tab.cpp:2152 +msgid "" +"\n" +"\n" +"Discard changes and continue anyway?" +msgstr "" +"\n" +"\n" +"Änderungen verwerfen und fortfahren?" + +#: xs/src/slic3r/GUI/Tab.cpp:2150 +msgid "" +"\n" +"\n" +"has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"hat die folgenden ungesicherten Änderungen:" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"is not compatible with printer\n" +msgstr "" +"\n" +"\n" +"ist mit dem Drucker nicht kompatibel\n" + +#: src/slic3r/GUI/PresetHints.cpp:36 +msgid "" +"\n" +"During the other layers, fan " +msgstr "" +"\n" +"Während der übrigen Schichten, Ventilator " #: src/slic3r/GUI/PresetHints.cpp:39 -msgid "\nDuring the other layers, fan" -msgstr "\nWährend der übrigen Schichten, Lüfter" +msgid "" +"\n" +"During the other layers, fan" +msgstr "" +"\n" +"Während der übrigen Schichten, Lüfter" #: src/slic3r/GUI/PresetHints.cpp:35 -msgid "\nIf estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." -msgstr "\nFalls die erwartete Schichtdruckzeit größer, aber noch unterhalb von ~%1%s ist, wird der Lüfter mit einer sich proportional verringernden Geschwindigkeit zwischen %2%%% und %3%%% laufen." +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." +msgstr "" +"\n" +"Falls die erwartete Schichtdruckzeit größer, aber noch unterhalb von ~%1%s ist, wird der Lüfter mit einer sich proportional verringernden Geschwindigkeit zwischen %2%%% und %3%%% laufen." + +#: src/slic3r/GUI/PresetHints.cpp:32 +#, c-format +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%ds, fan will run at a proportionally decreasing speed between %d%% and %d%%." +msgstr "" +"\n" +"Falls die erwartete Schichtdruckzeit größer, aber noch unterhalb von ~%d Sekunden ist, wird der Lüfter mit einer sich proportional verringernden Geschwindigkeit zwischen %d%% und %d%% laufen." + +#: lib/Slic3r/GUI/Plater.pm:1019 +msgid "" +"\n" +"Non-positive value." +msgstr "" +"\n" +"Nicht positiver Wert." + +#: lib/Slic3r/GUI/Plater.pm:1020 +msgid "" +"\n" +"Not a numeric value." +msgstr "" +"\n" +"Kein numerischer Wert." -#: src/slic3r/GUI/MainFrame.cpp:61 -msgid " - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/releases" -msgstr " - Denken Sie an die Überprüfung auf Updates unter http://github.com/prusa3d/PrusaSlicer/releases" +#: src/slic3r/GUI/MainFrame.cpp:55 +msgid " - Remember to check for updates at http://github.com/prusa3d/slic3r/releases" +msgstr " - Denken Sie an die Überprüfung von Updates auf http://github.com/prusa3d/slic3r/releases" + +#: src/slic3r/GUI/Tab.cpp:3239 +msgid " as:" +msgstr " als:" + +#: src/slic3r/GUI/PresetHints.cpp:228 +#, c-format +msgid " at filament speed %3.2f mm/s." +msgstr " mit einer Filamentgeschwindigkeit von %3.2f mm³/s." + +#: src/slic3r/GUI/Tab.cpp:1737 +msgid " Browse " +msgstr "Suchen" + +#: src/slic3r/GUI/MainFrame.cpp:677 +msgid " file as:" +msgstr " Datei als:" + +#: src/slic3r/GUI/PresetHints.cpp:217 +msgid " flow rate is maximized " +msgstr "die Durchflussmenge ist am Maximum" + +#: src/slic3r/GUI/Tab.cpp:1358 +#, no-c-format +msgid "" +" infill pattern is not supposed to work at 100% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +" Infillmuster ist nicht empfohlen für 100% Füllvolumen.\n" +"\n" +"Soll auf das rechtlineare Füllmuster umgestellt werden?" + +#: xs/src/slic3r/GUI/Tab.cpp:2131 +msgid " preset\n" +msgstr " Voreinstellung\n" + +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid " preset" +msgstr " Voreinstellung" + +#: src/slic3r/GUI/Tab.cpp:2938 +msgid " Preset" +msgstr " Voreinstellung" + +#: src/slic3r/GUI/Tab.cpp:1818 src/slic3r/GUI/Tab.cpp:2019 +#: src/slic3r/GUI/Tab.cpp:2988 +msgid " Set " +msgstr "Setzen " + +#: src/slic3r/GUI/Tab.cpp:2936 +msgid " the selected preset?" +msgstr " die ausgewählte Voreinstellung?" #: src/slic3r/GUI/MainFrame.cpp:727 msgid " was successfully sliced." msgstr " wurde erfolgreich gesliced." +#: src/slic3r/GUI/PresetHints.cpp:222 +msgid " with a volumetric rate " +msgstr "mit einer Volumenrate von " + #: src/libslic3r/PrintConfig.cpp:179 src/libslic3r/PrintConfig.cpp:745 #: src/libslic3r/PrintConfig.cpp:1154 src/libslic3r/PrintConfig.cpp:1217 #: src/libslic3r/PrintConfig.cpp:1462 src/libslic3r/PrintConfig.cpp:2260 @@ -31,7 +174,7 @@ msgid "%" msgstr "%" #: src/libslic3r/GCode/PreviewData.cpp:504 -#, possible-c-format +#, c-format msgid "%.2f - %.2f mm" msgstr "%.2f - %.2f mm" @@ -44,99 +187,112 @@ msgstr "%1% - Kopie" msgid "%1% Preset" msgstr "%1% Voreinstellung" -#: src/slic3r/GUI/Plater.cpp:3831 -msgid "%1% printer was active at the time the target Undo / Redo snapshot was taken. Switching to %1% printer requires reloading of %1% presets." -msgstr "Der %1% Drucker war zum Zeitpunkt der Aufnahme des Ziel-Rückgängig-/Wiederherstellungs-Schnappschusses aktiv. Die Umstellung auf den %1%-Drucker erfordert ein Neuladen der %1%-Voreinstellungen." - -#: src/libslic3r/Print.cpp:1282 -msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm" -msgstr "%1%=%2% mm ist zu niedrig, um auf einer Schichthöhe von %3% mm druckbar zu sein" +#: src/slic3r/GUI/PresetHints.cpp:226 +#, c-format +msgid "%3.2f mm³/s" +msgstr "%3.2f mm³/s" #: src/slic3r/GUI/PresetHints.cpp:228 -#, possible-c-format +#, c-format msgid "%3.2f mm³/s at filament speed %3.2f mm/s." msgstr "%3.2f mm³/s mit einer Filamentgeschwindigkeit von %3.2f mm/s." #: src/slic3r/GUI/Plater.cpp:974 -#, possible-c-format +#, c-format msgid "%d (%d shells)" msgstr "%d (%d Konturhüllen)" #: src/slic3r/GUI/Plater.cpp:982 -#, possible-c-format +#, c-format msgid "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards edges" msgstr "%d degenerierte Flächen, %d Kanten korrigiert, %d Flächen entfernt, %d Flächen hinzugefügt, %d Flächen umgekehrt, %d rückwärtige Kanten" #: src/slic3r/GUI/PresetHints.cpp:268 -#, possible-c-format +#, c-format msgid "%d lines: %.2f mm" msgstr "%d Linien: %.2f mm" +#: src/slic3r/GUI/PresetHints.cpp:271 +#, c-format +msgid "%d lines: %.2lf mm" +msgstr "%d Linien: %.2lf mm" + #: src/slic3r/GUI/MainFrame.cpp:894 -#, possible-c-format +#, c-format msgid "%d presets successfully imported." msgstr "%d Voreinstellungen erfolgreich importiert." +#: src/slic3r/GUI/MainFrame.cpp:553 +#, c-format +msgid "%s &Manual" +msgstr "%s Handbuch (&M)" + #: src/slic3r/GUI/MainFrame.cpp:550 -#, possible-c-format +#, c-format msgid "%s &Website" msgstr "%s &Webseite" #: src/slic3r/GUI/UpdateDialogs.cpp:113 -#, possible-c-format +#, c-format msgid "%s configuration is incompatible" msgstr "%s Konfiguration ist nicht kompatibel" #: src/slic3r/GUI/Field.cpp:136 -#, possible-c-format +#, c-format msgid "%s doesn't support percentage" msgstr "%s akzeptiert keine Prozentangaben" #: src/slic3r/GUI/MsgDialog.cpp:73 -#, possible-c-format +#, c-format msgid "%s error" msgstr "%s Fehler" #: src/slic3r/GUI/ConfigWizard.cpp:336 -#, possible-c-format +#, c-format msgid "%s Family" msgstr "%s Familie" #: src/slic3r/GUI/MsgDialog.cpp:74 -#, possible-c-format +#, c-format msgid "%s has encountered an error" msgstr "%s ist auf einen Fehler gestoßen" -#: src/slic3r/GUI/GUI_App.cpp:132 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n\nThe application will now terminate." -msgstr "%s ist auf einen Fehler gestoßen. Es wurde wahrscheinlich dadurch verursacht, dass der Speicher knapp wird. Wenn Sie sicher sind, dass Sie genügend RAM auf Ihrem System haben, kann dies auch ein Programmfehler sein, und wir würden uns freuen, wenn Sie ihn melden würden.\n\nDie Anwendung wird nun beendet." - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:155 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it." -msgstr "%s ist auf einen Fehler gestoßen. Es wurde wahrscheinlich dadurch verursacht, dass der Speicher knapp wird. Wenn Sie sicher sind, dass Sie genügend RAM auf Ihrem System haben, kann dies auch ein Programmfehler sein, und wir würden uns freuen, wenn Sie ihn melden würden." - #: src/slic3r/GUI/UpdateDialogs.cpp:112 -#, possible-c-format +#, c-format msgid "%s incompatibility" msgstr "%s-Inkompatibilität" #: src/slic3r/GUI/UpdateDialogs.cpp:172 -#, possible-c-format -msgid "%s now uses an updated configuration structure.\n\nSo called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\nAn inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n\nPlease proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." -msgstr "%s verwendet nun eine aktualisierte Konfigurationsstruktur.\n\nSogenannte 'Systemeinstellungen' wurden eingeführt; diese enthalten die eingebauten Standardeinstellungen für verschiedene Drucker. Diese Systemeinstellungen können nicht verändert werden. Stattdessen können Benutzer nun ihre eigenen Voreinstellungen erstellen, die Werte von einer der Systemeinstellungen übernehmen.\nEine übernehmende Voreinstellung kann entweder einen bestimmten Wert von ihrem Vorbild übernehmen, oder ihn mit einem eigenen Wert überschreiben.\n\nBitte fahren Sie fort mit '%s'. Dies folgt nun, um die neuen Einstellungen einzurichten sowie auszuwählen, ob Einstellungen automatisch aktualisiert werden dürfen." +#, c-format +msgid "" +"%s now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"%s verwendet nun eine aktualisierte Konfigurationsstruktur.\n" +"\n" +"Sogenannte 'Systemeinstellungen' wurden eingeführt; diese enthalten die eingebauten Standardeinstellungen für verschiedene Drucker. Diese Systemeinstellungen können nicht verändert werden. Stattdessen können Benutzer nun ihre eigenen Voreinstellungen erstellen, die Werte von einer der Systemeinstellungen übernehmen.\n" +"Eine übernehmende Voreinstellung kann entweder einen bestimmten Wert von ihrem Vorbild übernehmen, oder ihn mit einem eigenen Wert überschreiben.\n" +"\n" +"Bitte fahren Sie fort mit '%s'. Dies folgt nun, um die neuen Einstellungen einzurichten sowie auszuwählen, ob Einstellungen automatisch aktualisiert werden dürfen." #: src/slic3r/GUI/GUI_App.cpp:681 -#, possible-c-format +#, c-format msgid "%s View Mode" msgstr "%s Anzeigemodus" #: src/slic3r/GUI/MainFrame.cpp:563 -#, possible-c-format +#, c-format msgid "&About %s" msgstr "Über %s (&A)" +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "&About Slic3r" +msgstr "&Über Slic3r" + #: src/slic3r/GUI/GUI_App.cpp:769 msgid "&Configuration" msgstr "&Konfiguration" @@ -161,6 +317,14 @@ msgstr "B&earbeiten" msgid "&Export" msgstr "&Export" +#: lib/Slic3r/GUI/MainFrame.pm:227 +msgid "&Export Config Bundle…" +msgstr "Konfigurationssamlung &exportieren…" + +#: lib/Slic3r/GUI/MainFrame.pm:221 +msgid "&Export Config…\tCtrl+E" +msgstr "&Exportiere Konfiguration…\tCtrl+E" + #: src/slic3r/GUI/MainFrame.cpp:480 src/slic3r/GUI/MainFrame.cpp:604 msgid "&Filament Settings Tab" msgstr "&Filamenteinstellungen" @@ -181,14 +345,22 @@ msgstr "&Hilfe" msgid "&Import" msgstr "&Import" -#: src/slic3r/GUI/MainFrame.cpp:376 -msgid "&New Project" -msgstr "&Neues Projekt" +#: lib/Slic3r/GUI/MainFrame.pm:224 +msgid "&Load Config Bundle…" +msgstr "&Lade Konfigurationssammlung …" + +#: lib/Slic3r/GUI/MainFrame.pm:218 +msgid "&Load Config…\tCtrl+L" +msgstr "&Lade Konfiguration …\tCtrl+L" #: src/slic3r/GUI/ConfigWizard.cpp:1093 msgid "&Next >" msgstr "&Weiter >" +#: lib/Slic3r/GUI/MainFrame.pm:376 +msgid "&Object" +msgstr "&Objekt" + #: src/slic3r/GUI/MainFrame.cpp:339 msgid "&Open Project" msgstr "Pr&ojekt öffnen" @@ -197,6 +369,10 @@ msgstr "Pr&ojekt öffnen" msgid "&Paste" msgstr "Einfügen (&P)" +#: lib/Slic3r/GUI/MainFrame.pm:375 +msgid "&Plater" +msgstr "Druck&platte" + #: src/slic3r/GUI/MainFrame.cpp:471 msgid "&Plater Tab" msgstr "Druck&platte" @@ -209,14 +385,14 @@ msgstr "Einstellungen (&P)" msgid "&Quit" msgstr "&Beenden" -#: src/slic3r/GUI/MainFrame.cpp:561 -msgid "&Redo" -msgstr "&Redo" - #: src/slic3r/GUI/MainFrame.cpp:406 msgid "&Repair STL file" msgstr "STL-Datei &reparieren" +#: lib/Slic3r/GUI/MainFrame.pm:244 +msgid "&Repeat Last Quick Slice\tCtrl+Shift+U" +msgstr "letzten Quick Slice wiede&rholen\tCtrl+Shift+U" + #: src/slic3r/GUI/MainFrame.cpp:341 msgid "&Save Project" msgstr "Projekt &sichern" @@ -225,10 +401,6 @@ msgstr "Projekt &sichern" msgid "&Select all" msgstr "Alle&s auswählen" -#: src/slic3r/GUI/MainFrame.cpp:558 -msgid "&Undo" -msgstr "&Undo" - #: src/slic3r/GUI/MainFrame.cpp:577 msgid "&View" msgstr "&Anzeige" @@ -237,6 +409,14 @@ msgstr "&Anzeige" msgid "&Window" msgstr "&Fenster" +#: lib/Slic3r/GUI/MainFrame.pm:255 +msgid "(&Re)Slice Now\tCtrl+S" +msgstr "(&Re)Slice jetzt \tCtrl+S" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:89 +msgid "(default)" +msgstr "(Standard)" + #: src/libslic3r/PrintConfig.cpp:1376 msgid "(minimum)" msgstr "(Minimum)" @@ -245,14 +425,18 @@ msgstr "(Minimum)" msgid "(Re)slice" msgstr "(Re)Slice" -#: src/slic3r/GUI/MainFrame.cpp:455 -msgid "(Re)Slice No&w" -msgstr "(Re)Slice jetzt (&w)" +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "(Re)Slice &Now" +msgstr "(Re)Slice &nun" #: src/slic3r/GUI/MainFrame.cpp:641 msgid ") not found." msgstr ") nicht gefunden." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid ". Discard changes and continue anyway?" +msgstr ". Änderungen verwerfen und fortfahren?" + #: src/libslic3r/PrintConfig.cpp:1857 msgid "0 (soluble)" msgstr "0 (löslich)" @@ -261,10 +445,22 @@ msgstr "0 (löslich)" msgid "0.2 (detachable)" msgstr "0,2 (lösbar)" +#: lib/Slic3r/GUI/Plater/3DPreview.pm:69 +msgid "1 Layer" +msgstr "1 Schicht" + +#: lib/Slic3r/GUI/Plater.pm:206 +msgid "2D" +msgstr "2D" + #: src/slic3r/GUI/MainFrame.cpp:487 msgid "3&D" msgstr "3&D" +#: lib/Slic3r/GUI/Plater.pm:164 lib/Slic3r/GUI/Plater.pm:2323 +msgid "3D" +msgstr "3D" + #: src/slic3r/GUI/Plater.cpp:3074 msgid "3D editor view" msgstr "3D Editiermodus" @@ -273,11 +469,27 @@ msgstr "3D Editiermodus" msgid "3D Honeycomb" msgstr "3D Bienenwabe" +#: src/slic3r/GUI/GUI_App.cpp:741 +msgid "3D-Scene will be cleaned." +msgstr "3D-Scene wird bereinigt." + +#: lib/Slic3r/GUI/Plater.pm:1756 +msgid "3MF file exported to " +msgstr "3MF Datei exportiert nach " + #: src/slic3r/GUI/Plater.cpp:3590 -#, possible-c-format +#, c-format msgid "3MF file exported to %s" msgstr "3MF Datei exportiert nach %s" +#: lib/Slic3r/GUI/Plater.pm:258 +msgid "45° ccw" +msgstr "45° gUzs" + +#: lib/Slic3r/GUI/Plater.pm:259 +msgid "45° cw" +msgstr "45° mUzs" + #: src/slic3r/GUI/ConfigWizard.cpp:1092 msgid "< &Back" msgstr "< &Zurück" @@ -302,13 +514,21 @@ msgstr "Ein Daumenwert ist 60 °C für PLA und 110 °C für ABS. Auf 0 setzen, f msgid "A toolpath outside the print area was detected" msgstr "Ein Werkzeugweg außerhalb des Druckbereichs wurde erkannt" +#: src/libslic3r/SLA/SLASupportTree.cpp:2162 +msgid "Abort" +msgstr "Abbruch" + #: src/slic3r/GUI/AboutDialog.cpp:35 -#, possible-c-format +#, c-format msgid "About %s" msgstr "Über %s" +#: src/slic3r/GUI/AboutDialog.cpp:35 +msgid "About Slic3r" +msgstr "Über Slic3r" + #: src/libslic3r/GCode/PreviewData.cpp:499 -#, possible-c-format +#, c-format msgid "above %.2f mm" msgstr "oberhalb %.2f mm" @@ -328,6 +548,10 @@ msgstr "Aktivieren" msgid "Active" msgstr "Aktiv" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:39 +msgid "Active: " +msgstr "Aktiv: " + #: src/slic3r/GUI/Preset.cpp:1003 src/slic3r/GUI/Tab.cpp:237 msgid "Add a new printer" msgstr "Neuen Drucker hinzufügen" @@ -344,16 +568,6 @@ msgstr "Fügen Sie eine Sheath (eine einzelne Druckkontur) um die Basisschicht h msgid "Add color change marker for current layer" msgstr "Fügt einen Farbwechselmarker der aktuellen Schicht hinzu" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1662 -msgid "Add Generic Subobject" -msgstr "Generische Subobjekt hinzufügen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2584 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2613 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2631 -msgid "Add Height Range" -msgstr "Höhenbereich hinzufügen" - #: src/slic3r/GUI/GLCanvas3D.cpp:3463 msgid "Add instance" msgstr "Kopie hinzufügen" @@ -362,13 +576,9 @@ msgstr "Kopie hinzufügen" msgid "Add Instance of the selected object" msgstr "Kopie des gewählten Objektes hinzufügen" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:162 -msgid "Add layer range" -msgstr "Schichtbereich hinzufügen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1950 -msgid "Add Layers" -msgstr "Schichten hinzufügen" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Add Instance to selected object " +msgstr "Fügt Kopie des gewählten Objekt hinzu" #: src/slic3r/GUI/GUI_ObjectList.cpp:1067 msgid "Add modifier" @@ -379,10 +589,6 @@ msgstr "Modifizierer hinzufügen" msgid "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps adding perimeters, until more than 70% of the loop immediately above is supported." msgstr "Fügen Sie bei Bedarf weitere Perimeter hinzu, um Spalten in schrägen Wänden zu vermeiden. Slic3r fügt immer wieder Perimeter hinzu, bis mehr als 70% der unmittelbar darüber liegenden Schleife unterstützt werden." -#: src/slic3r/GUI/Plater.cpp:3516 -msgid "Add one more instance of the selected object" -msgstr "Eine weitere Kopie des gewählten Objekts hinzufügen" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1066 #: src/slic3r/GUI/GUI_ObjectList.cpp:1082 msgid "Add part" @@ -400,30 +606,6 @@ msgstr "Punkt zur Auswahl hinzufügen" msgid "Add settings" msgstr "Einstellungen hinzufügen" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1252 -msgid "Add Settings Bundle for Height range" -msgstr "Höhenbreich Einstellungsbündel hinzufügen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1191 -msgid "Add Settings Bundle for Object" -msgstr "Objekt Einstellungsbündel hinzufügen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1190 -msgid "Add Settings Bundle for Sub-object" -msgstr "Subobjekt Einstellungsbündel hinzufügen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1126 -msgid "Add Settings for Layers" -msgstr "Schichten Einstellungen hinzufügen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1128 -msgid "Add Settings for Object" -msgstr "Objekt Einstellungen hinzufügen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1127 -msgid "Add Settings for Sub-object" -msgstr "Subobjekt Einstellungen hinzufügen" - #: src/libslic3r/PrintConfig.cpp:382 msgid "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)." msgstr "Fügen Sie stabiles Infill in der Nähe von schrägen Flächen hinzu, um die vertikale Schalenstärke zu gewährleisten (obere und untere massive Schichten)." @@ -438,18 +620,10 @@ msgstr "Stützblocker hinzufügen" msgid "Add support enforcer" msgstr "Stützverstärker hinzufügen" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:531 -msgid "Add support point" -msgstr "Stützpunkt hinzufügen" - #: src/slic3r/GUI/GLCanvas3D.cpp:3392 msgid "Add..." msgstr "Hinzufügen..." -#: src/slic3r/GUI/wxExtensions.cpp:2571 -msgid "Add/Del color change" -msgstr "Farbwechsel hinzufügen/löschen" - #: src/slic3r/GUI/Tab.cpp:920 msgid "Additional information:" msgstr "Weitere Informationen:" @@ -466,6 +640,10 @@ msgstr "Zusätzlich wird ein Momentaufnahme der gesamten Konfiguration als Siche msgid "Address" msgstr "Adresse" +#: lib/Slic3r/GUI/Plater.pm:250 lib/Slic3r/GUI/Plater.pm:268 +msgid "Add…" +msgstr "Import…" + #: src/slic3r/GUI/GUI_App.cpp:675 src/slic3r/GUI/GUI_ObjectList.cpp:76 #: src/slic3r/GUI/GUI_ObjectList.cpp:517 src/slic3r/GUI/Tab.cpp:1026 #: src/slic3r/GUI/Tab.cpp:1041 src/slic3r/GUI/Tab.cpp:1139 @@ -481,6 +659,10 @@ msgstr "Erweiterte Einstellungen" msgid "Advanced View Mode" msgstr "Erweiterter Anzeigemodus" +#: xs/src/slic3r/GUI/FirmwareDialog.cpp:400 +msgid "Advanced: avrdude output log" +msgstr "Fortgeschritten: Avrdude Output Log" + #: src/slic3r/GUI/FirmwareDialog.cpp:803 msgid "Advanced: Output log" msgstr "Fortgeschritten: Ausgabeprotokoll" @@ -509,6 +691,10 @@ msgstr "Ausgerichtet" msgid "All" msgstr "Alle" +#: src/libslic3r/Print.cpp:1195 +msgid "All extruders must have the same diameter for single extruder multimaterial printer." +msgstr "Alle Extruder müssen den gleichen Durchmesser für Einzelextruder-Multimaterialdrucker haben." + #: src/libslic3r/Print.cpp:1135 msgid "All objects are outside of the print volume." msgstr "Alle Objekte befinden sich ausserhalb des Druckraums." @@ -529,26 +715,49 @@ msgstr "Allokation fehlgeschlagen" msgid "Along X axis" msgstr "Entlang der X Achse" +#: lib/Slic3r/GUI/Plater.pm:2251 lib/Slic3r/GUI/Plater.pm:2267 +#: lib/Slic3r/GUI/Plater.pm:2283 +msgid "Along X axis…" +msgstr "Entlang der X Achse…" + #: src/slic3r/GUI/Plater.cpp:2941 msgid "Along Y axis" msgstr "Entlang der Y Achse" +#: lib/Slic3r/GUI/Plater.pm:2254 lib/Slic3r/GUI/Plater.pm:2270 +#: lib/Slic3r/GUI/Plater.pm:2286 +msgid "Along Y axis…" +msgstr "Entlang der Y Achse…" + #: src/slic3r/GUI/Plater.cpp:2943 msgid "Along Z axis" msgstr "Entlang der Z Achse" +#: lib/Slic3r/GUI/Plater.pm:2257 lib/Slic3r/GUI/Plater.pm:2273 +#: lib/Slic3r/GUI/Plater.pm:2289 +msgid "Along Z axis…" +msgstr "Entlang der Z Achse…" + #: src/slic3r/GUI/ConfigWizard.cpp:122 msgid "Alternate nozzles:" msgstr "Alternative Düsen:" +#: lib/Slic3r/GUI/Plater.pm:1740 +msgid "AMF file exported to " +msgstr "AMF Datei exportiert nach " + #: src/slic3r/GUI/Plater.cpp:3561 -#, possible-c-format +#, c-format msgid "AMF file exported to %s" msgstr "AMF Datei exportiert nach %s" #: src/slic3r/GUI/GLCanvas3D.cpp:725 -msgid "An object outside the print area was detected\nResolve the current problem to continue slicing" -msgstr "Ein Objekt außerhalb des Druckbereichs wurde erkannt.\nBeheben Sie das aktuelle Problem, um mit dem Slicen fortzufahren" +msgid "" +"An object outside the print area was detected\n" +"Resolve the current problem to continue slicing" +msgstr "" +"Ein Objekt außerhalb des Druckbereichs wurde erkannt.\n" +"Beheben Sie das aktuelle Problem, um mit dem Slicen fortzufahren" #: src/slic3r/GUI/GLCanvas3D.cpp:720 msgid "An object outside the print area was detected" @@ -562,10 +771,18 @@ msgstr "und hat die folgenden ungesicherten Änderungen:" msgid "Another export job is currently running." msgstr "Ein anderer Exportjob läuft zur Zeit." +#: src/slic3r/GUI/Tab.cpp:915 +msgid "Any modifications should be saved as a new preset inherited from this one. " +msgstr "Alle Änderungen sollten als neues Preset gespeichert werden, das von diesem vererbt wurde." + #: src/slic3r/GUI/Tab.cpp:926 msgid "Any modifications should be saved as a new preset inherited from this one." msgstr "Alle Änderungen sollten als neue Voreinstellungen gespeichert werden, die von diesem vererbt wurden." +#: xs/src/libslic3r/PrintConfig.cpp:1109 +msgid "API Key" +msgstr "API Key" + #: src/libslic3r/PrintConfig.cpp:88 msgid "API Key / Password" msgstr "API Key / Kennwort" @@ -574,6 +791,14 @@ msgstr "API Key / Kennwort" msgid "Application preferences" msgstr "Anwendungseinstellungen" +#: xs/src/slic3r/GUI/GUI.cpp:406 +msgid "Application will be restarted" +msgstr "Anwendung wird neu gestartet" + +#: src/slic3r/GUI/GUI_App.cpp:740 +msgid "Application will be restarted after language change." +msgstr "Die Anwendung wird nach dem Wechsel der Sprache neu gestartet." + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:864 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Apply changes" @@ -591,31 +816,41 @@ msgstr "Archimedische Bögen" msgid "archive is too large" msgstr "Archiv ist zu groß" +#: src/slic3r/GUI/Tab.cpp:2936 +msgid "Are you sure you want to " +msgstr "Wollen Sie wirklich " + #. TRN remove/delete #: src/slic3r/GUI/Tab.cpp:2955 msgid "Are you sure you want to %1% the selected preset?" msgstr "Sind Sie sicher, dass Sie die gewählte Voreinstellung %1% möchten?" #: src/slic3r/GUI/FirmwareDialog.cpp:862 -msgid "Are you sure you want to cancel firmware flashing?\nThis could leave your printer in an unusable state!" +msgid "" +"Are you sure you want to cancel firmware flashing?\n" +"This could leave your printer in an unusable state!" msgstr "Sind Sie sicher, dass Sie das Flashen der Firmware abbrechen wollen? Dies könnte Ihren Drucker in einen unbrauchbaren Zustand versetzen!" #: src/libslic3r/PrintConfig.cpp:2258 msgid "Area fill" msgstr "Bereichsfüllung" -#: src/slic3r/GUI/Plater.cpp:609 -msgid "Around object" -msgstr "Um das Objekt" +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Around X axis…" +msgstr "Entlang der X Achse…" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Around Y axis…" +msgstr "Entlang der Y Achse…" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Around Z axis…" +msgstr "Entlang der Z Achse…" #: src/slic3r/GUI/KBShortcutsDialog.cpp:135 msgid "Arrange" msgstr "Anordnen" -#: src/slic3r/GUI/GLCanvas3D.cpp:3486 -msgid "Arrange selection" -msgstr "Auswahl anordnen" - #: src/libslic3r/PrintConfig.cpp:3054 msgid "Arrange the supplied models in a plate and merge them in a single model in order to perform actions once." msgstr "Die zur Verfügung stehenden Modelle in einer Platte anordnen und zu einem einzigen Modell zusammenführen, um Aktionen zusammen durchführen zu können." @@ -624,14 +859,18 @@ msgstr "Die zur Verfügung stehenden Modelle in einer Platte anordnen und zu ein msgid "Arranging" msgstr "Anordnen" -#: src/slic3r/GUI/Plater.cpp:2718 -msgid "Arranging canceled." -msgstr "Anordnen abgebrochen." +#: src/slic3r/GUI/Plater.cpp:2103 +msgid "Arranging canceled" +msgstr "Anordnen abgebrochen" #: src/slic3r/GUI/Plater.cpp:2144 msgid "Arranging done." msgstr "Anordnung beendet." +#: src/slic3r/GUI/GUI_App.cpp:514 +msgid "Array of language names and identifiers should have the same size." +msgstr "Felder mit Sprachnamen und Bezeichnern sollten die gleiche Größe haben." + #: src/slic3r/GUI/KBShortcutsDialog.cpp:172 #: src/slic3r/GUI/KBShortcutsDialog.cpp:183 msgid "Arrow Down" @@ -650,9 +889,9 @@ msgstr "Pfeil rechts" msgid "Arrow Up" msgstr "Pfeil hoch" -#: src/slic3r/GUI/GUI_App.cpp:303 -msgid "As a workaround, you may run PrusaSlicer with a software rendered 3D graphics by running prusa-slicer.exe with the --sw_renderer parameter." -msgstr "Als Workaround können Sie PrusaSlicer mit einer software-gerenderten 3D-Grafik ausführen, indem Sie prusa-slicer.exe mit dem Parameter --sw_renderer ausführen." +#: xs/src/slic3r/GUI/GUI.cpp:660 +msgid "Attempt to free unreferenced scalar" +msgstr "Versuch, unreferenzierte Skalare freizugeben" #: src/slic3r/GUI/GUI.cpp:144 src/slic3r/GUI/GUI_App.cpp:743 #: src/slic3r/GUI/Tab.cpp:2798 @@ -672,13 +911,17 @@ msgstr "Teile automatisch zentrieren" msgid "Auto-generate points" msgstr "Punkte automatisch generieren" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:669 +msgid "Auto-generate points [A]" +msgstr "Auto-Generiere Punkte [A]" + #: src/slic3r/GUI/Plater.cpp:979 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors)" msgstr "Auto-Reparatur (%d Fehler)" #: src/slic3r/GUI/GUI_ObjectList.cpp:230 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors):\n" msgstr "Auto-Reparatur (%d Fehler):\n" @@ -686,13 +929,15 @@ msgstr "Auto-Reparatur (%d Fehler):\n" msgid "Autodetected" msgstr "Automatisch erkannt" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1338 -msgid "Autogenerate support points" -msgstr "Stützpunkte automatisch generieren" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1166 -msgid "Autogeneration will erase all manually edited points.\n\nAre you sure you want to do it?\n" -msgstr "Die automatische Generierung löscht alle manuell bearbeiteten Punkte.\n\nSind Sie sicher, dass Sie das wirklich tun wollen?\n" +msgid "" +"Autogeneration will erase all manually edited points.\n" +"\n" +"Are you sure you want to do it?\n" +msgstr "" +"Die automatische Generierung löscht alle manuell bearbeiteten Punkte.\n" +"\n" +"Sind Sie sicher, dass Sie das wirklich tun wollen?\n" #: src/slic3r/GUI/Tab.cpp:3421 msgid "Automatic generation" @@ -719,12 +964,26 @@ msgid "BACK ARROW" msgstr "PFEIL ZURÜCK" #: src/slic3r/GUI/Tab.cpp:3113 -msgid "BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick to reset all settings for the current option group to the last saved preset." +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" +"Click to reset all settings for the current option group to the last saved preset." msgstr "Das Symbol PFEIL ZURÜCK zeigt an, dass die Einstellungen geändert wurden und nicht mit dem zuletzt gespeicherten Preset für die aktuelle Optionsgruppe übereinstimmen. Klicken Sie hier, um alle Einstellungen für die aktuelle Optionsgruppe auf das zuletzt gespeicherte Preset zurückzusetzen." #: src/slic3r/GUI/Tab.cpp:3127 -msgid "BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\nClick to reset current value to the last saved preset." -msgstr "Das Symbol PFEIL ZURÜCK zeigt an, dass der Wert geändert wurde und nicht mit dem zuletzt gespeicherten Preset übereinstimmt. \nKlicken Sie, um den aktuellen Wert auf das zuletzt gespeicherte Preset zurückzusetzen." +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 "" +"Das Symbol PFEIL ZURÜCK zeigt an, dass der Wert geändert wurde und nicht mit dem zuletzt gespeicherten Preset übereinstimmt. \n" +"Klicken Sie, um den aktuellen Wert auf das zuletzt gespeicherte Preset zurückzusetzen." + +#: src/slic3r/GUI/Tab.cpp:3077 +msgid "" +"BACK ARROW;indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "" +"BACK ARROW; zeigt an, dass die Einstellungen geändert wurden und nicht mit dem zuletzt gespeicherten Preset für die aktuelle Optionsgruppe übereinstimmen. \n" +"Klicken Sie auf das Symbol PFEIL ZURÜCK, um alle Einstellungen für die aktuelle Optionsgruppe auf das zuletzt gespeicherte Preset zurückzusetzen." #: src/slic3r/GUI/Preferences.cpp:52 msgid "Background processing" @@ -734,22 +993,10 @@ msgstr "Hintergrundberechnung" msgid "backwards edges" msgstr "umgekehrte Kanten" -#: src/slic3r/GUI/MainFrame.cpp:152 -msgid "based on Slic3r" -msgstr "basiert auf Slic3r" - #: src/slic3r/GUI/Tab.cpp:1484 msgid "Bed" msgstr "Druckbett" -#: src/libslic3r/PrintConfig.cpp:61 -msgid "Bed custom model" -msgstr "Bett individuelles Modell" - -#: src/libslic3r/PrintConfig.cpp:56 -msgid "Bed custom texture" -msgstr "Bett individuelle Textur" - #: src/slic3r/GUI/BedShapeDialog.hpp:45 src/slic3r/GUI/ConfigWizard.cpp:524 msgid "Bed Shape" msgstr "Druckbrettprofil" @@ -782,10 +1029,6 @@ msgstr "G-Code vor dem Schichtwechsel" msgid "Before roll back" msgstr "Vor dem Zurückwechseln" -#: src/slic3r/GUI/Plater.cpp:608 -msgid "Below object" -msgstr "Unter dem Objekt" - #: src/libslic3r/PrintConfig.cpp:1508 msgid "Below Z" msgstr "Unter Z" @@ -877,6 +1120,10 @@ msgstr "Schaltflächen und Textfarben Beschreibung" msgid "by the print profile maximum" msgstr "mit dem Maximum des Druckerprofils" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 +msgid "Camera view " +msgstr "Kameraansicht" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:123 msgid "Camera view" msgstr "Kameraansicht" @@ -923,6 +1170,10 @@ msgstr "Fähigkeiten" msgid "Capture a configuration snapshot" msgstr "Erfassen einer Konfigurations-Momentaufnahme" +#: src/libslic3r/SLA/SLASupportTree.cpp:2159 +msgid "Cascading pillars" +msgstr "Kaskadierung der Pfeiler" + #: src/libslic3r/PrintConfig.cpp:3035 msgid "Center" msgstr "Mitte" @@ -939,39 +1190,22 @@ msgstr "Zertifikatsdatei (*.crt, *.pem)|*.crt;*.pem|alle Dateien|*.*" msgid "Change Application &Language" msgstr "Wechse&l der Anwendungssprache" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Change camera type (perspective, orthographic)" -msgstr "Ändern des Kameratyps (perspektivisch, orthografisch)" +#: xs/src/slic3r/GUI/GUI.cpp:354 +msgid "Change Application Language" +msgstr "Wechsel der Anwendungssprache" #: src/slic3r/GUI/GUI_ObjectList.cpp:1226 msgid "Change extruder" msgstr "Wechsel Extruder" -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:144 -#, possible-c-format -msgid "Change Option %s" -msgstr "Ändere Option %s" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3134 -msgid "Change Part Type" -msgstr "Teil Typ ändern" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:925 -msgid "Change point head diameter" -msgstr "Ändern des Stützpunkt-Kopfdurchmessers" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Change the number of instances of the selected object" -msgstr "Anzahl der Kopien des gewählten Objektes ändern" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Change the number of copies of the selected object" +msgstr "Ändere die Anzahl der Kopien der ausgewählten Objekte" #: src/slic3r/GUI/GUI_ObjectList.cpp:1185 msgid "Change type" msgstr "Typ ändern" -#: src/slic3r/GUI/UpdateDialogs.cpp:56 -msgid "Changelog && Download" -msgstr "Changelog && Download" - #: src/slic3r/GUI/GUI_App.cpp:378 msgid "Changing of an application language" msgstr "Wechsele die Anwendungssprache" @@ -980,21 +1214,17 @@ msgstr "Wechsele die Anwendungssprache" msgid "Check for application updates" msgstr "Nach Updates suchen" -#: src/slic3r/GUI/BedShapeDialog.cpp:509 -msgid "Choose a file to import bed texture from (PNG/SVG):" -msgstr "Wählen Sie eine Datei aus, aus der Sie die Betttextur importieren möchten (PNG/SVG):" +#: src/slic3r/GUI/BedShapeDialog.cpp:316 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Wählen Sie eine Datei als Druckbettkontur aus (STL/OBJ/AMF/3MF/PRUSA):" #: src/slic3r/GUI/MainFrame.cpp:621 msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" msgstr "Wählen Sie eine Datei zum Slicen (STL/OBJ/AMF/3MF/PRUSA):" -#: src/slic3r/GUI/BedShapeDialog.cpp:532 -msgid "Choose an STL file to import bed model from:" -msgstr "Wählen Sie eine STL-Datei aus, aus der Sie das Bettmodell importieren möchten:" - -#: src/slic3r/GUI/BedShapeDialog.cpp:464 -msgid "Choose an STL file to import bed shape from:" -msgstr "Wählen Sie eine STL-Datei aus, aus der Sie die Bettform importieren möchten:" +#: src/slic3r/GUI/GUI_App.cpp:489 +msgid "Choose one file (3MF):" +msgstr "Wählen Sie eine Datei (3MF):" #: src/slic3r/GUI/GUI_App.cpp:510 msgid "Choose one file (3MF/AMF):" @@ -1012,17 +1242,9 @@ msgstr "Wählen Sie den Typ der von Ihrem Drucker verwendeten Firmware." msgid "Circular" msgstr "Kreisförmig" -#: src/slic3r/GUI/GLCanvas3D.cpp:3701 src/slic3r/GUI/GLCanvas3D.cpp:3734 -msgid "Click right mouse button to open History" -msgstr "Klicken Sie mit der rechten Maustaste, um den Verlauf zu öffnen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:383 -msgid "Click the icon to change the object printable property" -msgstr "Klicken Sie auf das Symbol, um die Druckbar-Eigenschaft des Objekts zu ändern" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:377 -msgid "Click the icon to change the object settings" -msgstr "Klicken Sie auf das Symbol, um die Objekteinstellungen zu ändern" +#: src/libslic3r/SLA/SLASupportTree.cpp:2156 +msgid "Classification" +msgstr "Klassifizierung" #: src/slic3r/GUI/Plater.cpp:292 msgid "Click to edit preset" @@ -1036,6 +1258,10 @@ msgstr "Beschneiden von Objekten aus mehreren Teilen" msgid "Clipping of view" msgstr "Ausschnitt der Ansicht" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:926 +msgid "Clipping of view:" +msgstr "Ausschnitt der Ansicht:" + #: src/slic3r/GUI/FirmwareDialog.cpp:814 #: src/slic3r/GUI/PrintHostDialogs.cpp:160 msgid "Close" @@ -1062,10 +1288,6 @@ msgstr "Infill kombinieren alle" msgid "Combine infill every n layers" msgstr "Kombiniere das Infill all n Schichten" -#: src/slic3r/GUI/UpdateDialogs.cpp:116 -msgid "Comment:" -msgstr "Kommentar:" - #: src/slic3r/GUI/Tab.cpp:56 src/libslic3r/PrintConfig.cpp:244 msgid "Compatible print profiles" msgstr "Kompatible Druckprofile" @@ -1158,6 +1380,10 @@ msgstr "Verbindung zum Drucker funktioniert einwandfrei." msgid "Connection to Prusa SL1 works correctly." msgstr "Verbindung zum Prusa SL1 funktioniert einwandfrei." +#: src/slic3r/Utils/OctoPrint.cpp:195 +msgid "Connection to Prusa SLA works correctly." +msgstr "Verbindung zum Prusa SLA funktioniert einwandfrei." + #: src/libslic3r/PrintConfig.cpp:1823 msgid "Contact Z distance" msgstr "Kontakt Z-Abstand" @@ -1166,6 +1392,14 @@ msgstr "Kontakt Z-Abstand" msgid "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and numerous others." msgstr "Beiträge von Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik und zahlreichen anderen." +#: lib/Slic3r/GUI/MainFrame.pm:137 +msgid "Controller" +msgstr "Controller" + +#: src/libslic3r/PrintConfig.cpp:2408 +msgid "Controls the bridge type between two neigboring 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 "Steuert den Brückentyp zwischen zwei benachbarten Säulen. Kann Zickzack, Kreuz (Doppelzickzack) oder dynamisch sein, das je nach Abstand der beiden Säulen automatisch zwischen den beiden erstgenannten umschaltet." + #: src/libslic3r/PrintConfig.cpp:2433 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 "Steuert den Brückentyp zwischen zwei benachbarten Säulen. Kann Zickzack, Kreuz (Doppelzickzack) oder dynamisch sein, das je nach Abstand der beiden Säulen automatisch zwischen den beiden erstgenannten umschaltet." @@ -1174,10 +1408,18 @@ msgstr "Steuert den Brückentyp zwischen zwei benachbarten Säulen. Kann Zickzac msgid "Cooling" msgstr "Kühlung" +#: src/libslic3r/PrintConfig.cpp:628 +msgid "Cooling moves are gradually accelerating beginning at this speed. " +msgstr "Kühlbewegungen beschleunigen von dieser Anfangsgeschwindigkeit aus." + #: src/libslic3r/PrintConfig.cpp:629 msgid "Cooling moves are gradually accelerating beginning at this speed." msgstr "Kühlbewegungen beschleunigen von dieser Anfangsgeschwindigkeit aus." +#: src/libslic3r/PrintConfig.cpp:647 +msgid "Cooling moves are gradually accelerating towards this speed. " +msgstr "Kühlbewegungen beschleunigen auf diese Geschwindigkeit hin." + #: src/libslic3r/PrintConfig.cpp:648 msgid "Cooling moves are gradually accelerating towards this speed." msgstr "Kühlbewegungen beschleunigen auf diese Geschwindigkeit hin." @@ -1194,6 +1436,10 @@ msgstr "Länge des Kühlschlauchs" msgid "Cooling tube position" msgstr "Position des Kühlschlauchs" +#: lib/Slic3r/GUI/Plater.pm:304 lib/Slic3r/GUI/Plater.pm:992 +msgid "Copies" +msgstr "Kopien" + #: src/slic3r/GUI/Tab.cpp:2878 msgid "Copy" msgstr "Kopieren" @@ -1206,19 +1452,11 @@ msgstr "Auswahl in Zwischenablage kopieren" msgid "Copy to clipboard" msgstr "Zu Zwischenablage kopieren" -#: src/slic3r/GUI/SysInfoDialog.cpp:120 -msgid "Copy to Clipboard" -msgstr "Zu Zwischenablage kopieren" - #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:84 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:400 msgid "Copying of the temporary G-code to the output G-code failed" msgstr "Das Kopieren des temporären G-Codes auf den Ausgabe-G-Code ist fehlgeschlagen" -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:92 -msgid "Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?" -msgstr "Das Kopieren des temporären G-Codes auf den Ausgabe-G-Code ist fehlgeschlagen. SD-Karte eventuell schreibgeschützt?" - #: src/slic3r/GUI/AboutDialog.cpp:92 msgid "Copyright" msgstr "Urheberrecht" @@ -1272,10 +1510,6 @@ msgstr "Spalte, die kleiner als der doppelte Lückenschlussradius sind, werden w msgid "CRC-32 check failed" msgstr "CRC-32 Check fehlgeschlagen" -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "Create pad around object and ignore the support elevation" -msgstr "Erstellt eine Grundschicht um das Objekt herum und ignoriert die Unterstützungshöhe" - #: src/libslic3r/PrintConfig.cpp:2460 msgid "Critical angle" msgstr "Kritischer Winkel" @@ -1289,18 +1523,18 @@ msgid "Cubic" msgstr "Kubisch" #: src/slic3r/GUI/wxExtensions.cpp:2413 -#, possible-c-format +#, c-format msgid "Current mode is %s" msgstr "Aktueller Modus ist %s" -#: src/slic3r/GUI/Tab.cpp:925 -msgid "Current preset is inherited from the default preset." -msgstr "Aktuelle Voreinstellung ist abgeleitet von der Standardvoreinstellung." +#: src/slic3r/GUI/Tab.cpp:909 +msgid "Current preset is inherited from " +msgstr "Aktuelle Voreinstellung ist abgeleitet von " -#: src/slic3r/GUI/Tab.cpp:928 -#, possible-c-format -msgid "Current preset is inherited from:\n\t%s" -msgstr "Aktuelle Voreinstellung ist abgeleitet von:\n%s" +#: src/slic3r/GUI/Tab.cpp:920 +#, c-format +msgid "Current preset is inherited from %s" +msgstr "Aktuelle Voreinstellung ist abgeleitet von %s" #: src/slic3r/GUI/UpdateDialogs.cpp:45 msgid "Current version:" @@ -1331,26 +1565,35 @@ msgstr "Benutzerdefinierte Drucker-Einrichtung" msgid "Custom profile name:" msgstr "Benutzerdefinierter Profilname:" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:254 +msgid "Custom setup" +msgstr "Benutzerdefiniertes Setup" + #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3013 msgid "Cut" msgstr "Schneiden" -#: src/slic3r/GUI/Plater.cpp:4193 -msgid "Cut by Plane" -msgstr "Schneiden durch Ebene" - #: src/libslic3r/PrintConfig.cpp:3014 msgid "Cut model at the given Z." msgstr "Schneidet Modell am gegebenen Z-Wert." +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" +msgstr "Schneide Objekt:" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +msgid "Cut [C]" +msgstr "Schneiden [C]" + +#: lib/Slic3r/GUI/Plater.pm:262 lib/Slic3r/GUI/Plater.pm:278 +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Cut…" +msgstr "Schnitt…" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1055 msgid "Cylinder" msgstr "Zylinder" -#: src/slic3r/GUI/MainFrame.cpp:491 -msgid "D&eselect all" -msgstr "All&es Abwählen" - #: src/libslic3r/PrintConfig.cpp:3115 msgid "Data directory" msgstr "Datenverzeichnis" @@ -1359,15 +1602,19 @@ msgstr "Datenverzeichnis" msgid "decompression failed or archive is corrupted" msgstr "Entpacken fehlgeschlagen oder Archiv defekt" -#: src/slic3r/GUI/Plater.cpp:4127 -msgid "Decrease Instances" -msgstr "Kopien verringern" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Decrease copies" +msgstr "Verringere Anzahl" #: src/slic3r/GUI/GUI_App.cpp:594 src/slic3r/GUI/GUI_ObjectList.cpp:1245 #: src/libslic3r/PrintConfig.cpp:299 msgid "Default" msgstr "Standard" +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid "Default " +msgstr "Standard " + #: xs/src/slic3r/GUI/Field.cpp:98 msgid "default" msgstr "Standard" @@ -1392,11 +1639,19 @@ msgstr "Standard-Filamentprofil" msgid "Default filament profile associated with the current printer profile. On selection of the current printer profile, this filament profile will be activated." msgstr "Standard-Filamentprofil, das dem aktuellen Druckerprofil zugeordnet ist. Bei Auswahl des aktuellen Druckerprofils wird dieses Filamentprofil aktiviert." +#: src/slic3r/GUI/Tab.cpp:921 +msgid "default preset" +msgstr "Standard Voreinstellung" + #: src/slic3r/GUI/Tab.cpp:2757 -#, possible-c-format +#, c-format msgid "Default preset (%s)" msgstr "Standard Voreinstellung(%s)" +#: xs/src/slic3r/GUI/Tab.cpp:2410 xs/src/slic3r/GUI/Tab.cpp:2496 +msgid "Default presets" +msgstr "Standard Voreinstellung" + #: src/libslic3r/GCode/PreviewData.cpp:491 msgid "Default print color" msgstr "Standard Druckfarbe" @@ -1434,6 +1689,14 @@ msgstr "Standardwert" msgid "Define a custom printer profile" msgstr "Benutzerdefiniertes Druckerprofil definieren" +#: src/libslic3r/PrintConfig.cpp:2529 +msgid "Defines the cavity depth. Set to zero to disable the cavity." +msgstr "Definiert die Kavitätentiefe. Zum Deaktivieren der Kavität auf Null setzen." + +#: src/libslic3r/PrintConfig.cpp:2533 +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 effect inside the cavity, which makes pealing the print off the vat foil difficult." +msgstr "Definiert die Tiefe des Grundschichthohlraums. Zum Deaktivieren der Aushöhlung auf Null setzen. Seien Sie vorsichtig, wenn Sie diese Funktion aktivieren, da einige Harze einen extremen Saugeffekt im Hohlraum erzeugen können, der das Abziehen des Drucks von der Wannenfolie erschwert." + #: src/libslic3r/PrintConfig.cpp:2558 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 effect inside the cavity, which makes peeling the print off the vat foil difficult." msgstr "Definiert die Tiefe des Grundschichthohlraums. Zum Deaktivieren der Aushöhlung auf Null setzen. Seien Sie vorsichtig, wenn Sie diese Funktion aktivieren, da einige Harze einen extremen Saugeffekt im Hohlraum erzeugen können, der das Abziehen des Drucks von der Wannenfolie erschwert." @@ -1442,6 +1705,10 @@ msgstr "Definiert die Tiefe des Grundschichthohlraums. Zum Deaktivieren der Aush msgid "degenerate facets" msgstr "entartete Facetten" +#: src/libslic3r/PrintConfig.cpp:2572 +msgid "degrees" +msgstr "Grad" + #: src/libslic3r/PrintConfig.cpp:608 msgid "Delay after unloading" msgstr "Verzögerung nach dem Entladen" @@ -1467,59 +1734,14 @@ msgstr "Alle löschen" msgid "Delete all" msgstr "Alle löschen" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1806 -msgid "Delete All Instances from Object" -msgstr "Alle Kopien des Objektes löschen" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:187 msgid "Delete color change marker for current layer" msgstr "Löscht einen Farbwechselmarker der aktuellen Schicht" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1898 -msgid "Delete Height Range" -msgstr "Höhenbereich löschen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1876 -msgid "Delete Instance" -msgstr "Kopie löschen" - -#: src/slic3r/GUI/Plater.cpp:2592 -msgid "Delete Object" -msgstr "Objekt löschen" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:100 -#, possible-c-format -msgid "Delete Option %s" -msgstr "Lösche Option %s" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:137 msgid "Delete selected" msgstr "Löschen ausgewählt" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -msgid "Delete Selected" -msgstr "Löschen ausgewählt" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2303 -msgid "Delete Selected Item" -msgstr "Gewähltes Element löschen" - -#: src/slic3r/GUI/Plater.cpp:4083 -msgid "Delete Selected Objects" -msgstr "Ausgewählte Objekte entfernen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1782 -msgid "Delete Settings" -msgstr "Einstellungen löschen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1857 -msgid "Delete Subobject" -msgstr "Subobjekt löschen" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:720 -msgid "Delete support point" -msgstr "Stützpunkt löschen" - #: src/slic3r/GUI/Tab.cpp:131 msgid "Delete this preset" msgstr "Lösche diese Voreinstellung" @@ -1554,9 +1776,9 @@ msgstr "Wiedereinzugsgeschwindigkeit" msgid "Deselect by rectangle" msgstr "Abwahl über Rechteck" -#: src/slic3r/GUI/MainFrame.cpp:492 -msgid "Deselects all objects" -msgstr "Alle Objekte abwählen" +#: src/libslic3r/PrintConfig.cpp:1833 +msgid "detachable" +msgstr "abnehmbar" #: src/libslic3r/PrintConfig.cpp:1304 msgid "Detect bridging perimeters" @@ -1578,6 +1800,22 @@ msgstr "Erkennung nicht zusammenhängender Teile in den angegebenen Modellen und msgid "Detected advanced data" msgstr "Erweiterte Daten gefunden" +#: src/slic3r/GUI/GLCanvas3D.cpp:723 +msgid "" +"Detected object outside print volume\n" +"Resolve a clash to continue slicing/export process correctly" +msgstr "" +"Erkanntes Objekt außerhalb des Druckvolumens\n" +"Beheben Sie den Konflikt, um den Slicing-/Exportprozess korrekt fortzusetzen" + +#: src/slic3r/GUI/GLCanvas3D.cpp:719 +msgid "Detected object outside print volume" +msgstr "Objekt außerhalb des Druckraumes entdeckt" + +#: src/slic3r/GUI/GLCanvas3D.cpp:720 +msgid "Detected toolpath outside print volume" +msgstr "Werkzeugweg außerhalb des Druckraumes entdeckt" + #: src/slic3r/GUI/BedShapeDialog.cpp:88 src/libslic3r/PrintConfig.cpp:677 msgid "Diameter" msgstr "Durchmesser" @@ -1602,18 +1840,22 @@ msgstr "Durchmesser des Druckbettes. Es wird angenommen, dass der Ursprung (0,0) msgid "Direction" msgstr "Richtung" +#: xs/src/slic3r/GUI/Preferences.cpp:76 +msgid "Disable communication with the printer over a serial / USB cable. This simplifies the user interface in case the printer is never attached to the computer." +msgstr "Deaktivieren Sie die Kommunikation mit dem Drucker über ein serielles / USB-Kabel. Dies ist eine Vereinfachung der Benutzeroberfläche für den Fall, dass der Drucker nicht an den Computer angeschlossen ist." + #: src/libslic3r/PrintConfig.cpp:323 msgid "Disable fan for the first" msgstr "Kein Ventilator für die ersten" +#: xs/src/slic3r/GUI/Preferences.cpp:74 +msgid "Disable USB/serial connection" +msgstr "USB/Serielle Verbindung ausschalten" + #: src/libslic3r/PrintConfig.cpp:1280 msgid "Disables retraction when the travel path does not exceed the upper layer's perimeters (and thus any ooze will be probably invisible)." msgstr "Deaktiviert den Einzug, wenn der Verfahrweg die Perimeter der oberen Schicht nicht überschreitet (und somit ist der Auslauf wahrscheinlich unsichtbar)." -#: src/slic3r/GUI/wxExtensions.cpp:2572 -msgid "Discard all color changes" -msgstr "Alle Farbwechsel verwerfen" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:869 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1241 msgid "Discard changes" @@ -1635,10 +1877,6 @@ msgstr "Display" msgid "Display height" msgstr "Displayhöhe" -#: src/libslic3r/PrintConfig.cpp:2319 -msgid "Display horizontal mirroring" -msgstr "Zeige horizontale Spiegelung" - #: src/libslic3r/PrintConfig.cpp:2227 msgid "Display orientation" msgstr "Displayausrichtung" @@ -1647,10 +1885,6 @@ msgstr "Displayausrichtung" msgid "Display the Print Host Upload Queue window" msgstr "Zeige das Druckhost Warteschlangenfenster" -#: src/libslic3r/PrintConfig.cpp:2326 -msgid "Display vertical mirroring" -msgstr "Zeige vertikale Spiegelung" - #: src/libslic3r/PrintConfig.cpp:2202 msgid "Display width" msgstr "Displaybreite" @@ -1663,10 +1897,6 @@ msgstr "Abstand zwischen Kopien" msgid "Distance between skirt and object(s). Set this to zero to attach the skirt to the object(s) and get a brim for better adhesion." msgstr "Distanz zwischen Schürze und Objekt. Auf Null stellen um die Schürze an das Objekt zu verbinden und einen Rand für bessere Haftung zu generieren." -#: src/libslic3r/PrintConfig.cpp:2752 -msgid "Distance between two connector sticks which connect the object and the generated pad." -msgstr "Abstand zwischen zwei Verbindungsstäben, die das Objekt mit der erzeugten Grundschicht verbinden." - #: src/libslic3r/PrintConfig.cpp:1609 msgid "Distance from object" msgstr "Abstand vom Objekt" @@ -1675,10 +1905,18 @@ msgstr "Abstand vom Objekt" msgid "Distance of the 0,0 G-code coordinate from the front left corner of the rectangle." msgstr "Abstand der 0,0 G-Code-Koordinate von der linken vorderen Ecke des Rechtecks." +#: src/libslic3r/PrintConfig.cpp:284 +msgid "Distance of the center-point of the cooling tube from the extruder tip " +msgstr "Abstand des Mittelpunktes des Kühlrohres von der Extruderspitze" + #: src/libslic3r/PrintConfig.cpp:285 msgid "Distance of the center-point of the cooling tube from the extruder tip." msgstr "Abstand des Mittelpunktes des Kühlrohres von der Extruderspitze." +#: src/libslic3r/PrintConfig.cpp:1313 +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 "Abstand der Extruderspitze von der Position, an der das Filament beim Entladen abgestellt wird. Dies sollte mit dem Wert in der Drucker-Firmware übereinstimmen." + #: src/libslic3r/PrintConfig.cpp:1338 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 "Abstand der Extruderspitze von der Position, an der das Filament beim Entladen abgestellt wird. Dies sollte mit dem Wert in der Drucker-Firmware übereinstimmen." @@ -1695,15 +1933,25 @@ msgstr "Nicht abbrechen, wenn eine an --load übergebene Datei nicht existiert." msgid "Do not rearrange the given models before merging and keep their original XY coordinates." msgstr "Die angegebenen Modelle werden vor dem Zusammenführen nicht neu angeordnet und behalten ihre ursprünglichen XY-Koordinaten." -#: src/slic3r/GUI/Field.cpp:206 -#, possible-c-format -msgid "Do you mean %s%% instead of %s %s?\nSelect YES if you want to change this value to %s%%, \nor NO if you are sure that %s %s is a correct value." -msgstr "Meinen Sie%s anstelle von %s %s?\nWählen Sie JA, wenn Sie diesen Wert auf %s%% ändern möchten, \noder NEIN, wenn Sie sicher sind, dass %s %s ein korrekter Wert ist." +#: src/slic3r/GUI/Field.cpp:181 +#, c-format +msgid "" +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." +msgstr "" +"Meinen Sie %d%% statt %d %s?\n" +"Wählen Sie JA, falls Sie diesen Wert auf %d%% ändern wollen, \n" +"oder NEIN, falls Sie sicher sind das %d %s der korrekte Wert ist." #: src/slic3r/GUI/GUI_App.cpp:754 msgid "Do you want to proceed?" msgstr "Wollen Sie fortfahren?" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1022 +msgid "Do you want to save your manually edited support points ?\n" +msgstr "Möchten Sie Ihre manuell bearbeiteten Stützpunkte speichern?\n" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1024 msgid "Do you want to save your manually edited support points?" msgstr "Möchten Sie Ihre manuell bearbeiteten Stützpunkte speichern?" @@ -1720,6 +1968,10 @@ msgstr "Keine Benachrichtigung mehr über neue Releases" msgid "Don't support bridges" msgstr "Brücken nicht unterstützen" +#: src/libslic3r/SLA/SLASupportTree.cpp:2161 +msgid "Done" +msgstr "Abgeschlossen" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:20 msgid "Downgrade" msgstr "Downgrade" @@ -1730,10 +1982,9 @@ msgstr "Downgrade" msgid "Drag" msgstr "Ziehen" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:340 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:355 -msgid "Drop to bed" -msgstr "Auf das Bett fallen lassen" +#: lib/Slic3r/GUI/Plater/2D.pm:132 +msgid "Drag your objects here" +msgstr "Ziehen Sie Ihr Objekte hier hin" #: src/libslic3r/PrintConfig.cpp:3044 msgid "Duplicate" @@ -1747,33 +1998,17 @@ msgstr "Duplizieren nach Raster" msgid "Dynamic" msgstr "Dynamisch" -#: src/slic3r/GUI/MainFrame.cpp:708 -msgid "E&xport" -msgstr "E&xport" - #: src/slic3r/GUI/GUI_ObjectList.cpp:238 msgid "edges fixed" msgstr "Kanten korrigiert" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2690 -msgid "Edit Height Range" -msgstr "Höhenbereich bearbeiten" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:373 -msgid "Editing" -msgstr "Bearbeitung" - #: src/libslic3r/PrintConfig.cpp:349 msgid "Elephant foot compensation" msgstr "Elefantenfuss Kompensation" -#: src/libslic3r/SLAPrint.cpp:681 -msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation." -msgstr "Die Höhe ist zu niedrig für das Objekt. Verwenden Sie die Funktion \"Grundschicht um Object\", um das Objekt ohne Erhöhung zu drucken." - -#: src/libslic3r/SLAPrint.cpp:678 -msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation." -msgstr "Die Erhöhung ist zu niedrig für das Objekt. Verwenden Sie die Funktion \"Grundschicht um Object\", um das Objekt ohne Erhöhung zu drucken." +#: src/libslic3r/SLAPrint.cpp:624 +msgid "Elevation is too low for object." +msgstr "Die Höhe ist zu niedrig für das Objekt." #: src/libslic3r/PrintConfig.cpp:1044 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. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode." @@ -1792,10 +2027,6 @@ msgstr "Automatische Kühlung aktivieren" msgid "Enable fan if layer print time is below" msgstr "Ventilator anschalten wenn die Schichtdruckzeit geringer ist als" -#: src/libslic3r/PrintConfig.cpp:2321 -msgid "Enable horizontal mirroring of output images" -msgstr "Horizontale Spiegelung der Ausgabebilder aktivieren" - #: src/libslic3r/PrintConfig.cpp:1781 msgid "Enable support material generation." msgstr "Aktiviert Generierung von Stützstrukturen." @@ -1812,10 +2043,6 @@ msgstr "Aktivieren Sie diese Option, um eine kommentierte G-Code-Datei zu erhalt msgid "Enable variable layer height feature" msgstr "Variable Schichthöhen aktivieren" -#: src/libslic3r/PrintConfig.cpp:2328 -msgid "Enable vertical mirroring of output images" -msgstr "Vertikale Spiegelung der Ausgabebilder aktivieren" - #: src/slic3r/GUI/Tab.cpp:1570 src/slic3r/GUI/Tab.cpp:1955 #: src/libslic3r/PrintConfig.cpp:359 src/libslic3r/PrintConfig.cpp:369 msgid "End G-code" @@ -1854,6 +2081,28 @@ msgstr "Geben Sie den Durchmesser des Filaments ein." msgid "Enter the diameter of your printer's hot end nozzle." msgstr "Geben Sie den Durchmesser der Hotenddüse ein." +#: lib/Slic3r/GUI/Plater.pm:1158 +msgid "Enter the new max size for the selected object:" +msgstr "Geben Sie die neue maximale Größe für das ausgewählte Objekt ein:" + +#: lib/Slic3r/GUI/Plater.pm:1132 +#, perl-format +msgid "Enter the new size for the selected object (print bed: %smm):" +msgstr "Geben Sie die neue Größe für das ausgewählte Objekt (Druckbett: %s mm)ein:" + +#: lib/Slic3r/GUI/Plater.pm:992 +msgid "Enter the number of copies of the selected object:" +msgstr "Geben Sie die Anzahl der Kopien der ausgewählten Objekte ein:" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Enter the rotation angle:" +msgstr "Rotationswinkel eingeben:" + +#: lib/Slic3r/GUI/Plater.pm:1137 lib/Slic3r/GUI/Plater.pm:1163 +#, no-perl-format +msgid "Enter the scale % for the selected object:" +msgstr "Geben Sie den Skalierungsfaktor in % für das ausgewählte Objekt ein:" + #: src/slic3r/GUI/ConfigWizard.cpp:608 msgid "Enter the temperature needed for extruding your filament." msgstr "Geben Sie die Temperatur ein, die für die Extrusion Ihres Filaments benötigt wird." @@ -1875,17 +2124,25 @@ msgid "Error" msgstr "Fehler" #: src/slic3r/GUI/FirmwareDialog.cpp:608 -#, possible-c-format +#, c-format msgid "Error accessing port at %s: %s" msgstr "Fehler beim Zugriff auf Port bei %s:%s" +#: lib/Slic3r/GUI/Plater.pm:1760 +msgid "Error exporting 3MF file " +msgstr "Fehler beim Exportieren der 3MF Datei " + #: src/slic3r/GUI/Plater.cpp:3593 -#, possible-c-format +#, c-format msgid "Error exporting 3MF file %s" msgstr "Fehler beim Exportieren der 3MF Datei %s" +#: lib/Slic3r/GUI/Plater.pm:1744 +msgid "Error exporting AMF file " +msgstr "Fehler beim Exportieren der AMF Datei " + #: src/slic3r/GUI/Plater.cpp:3564 -#, possible-c-format +#, c-format msgid "Error exporting AMF file %s" msgstr "Fehler beim Exportieren der AMF Datei %s" @@ -1897,32 +2154,40 @@ msgstr "Fehlermeldung" msgid "Error uploading to print host:" msgstr "Fehler beim Hochloden zu Druckhost:" +#: xs/src/slic3r/Utils/OctoPrint.cpp:98 +msgid "Error while uploading to the OctoPrint server" +msgstr "Fehler beim Hochladen auf den OctoPrint Server" + #: src/libslic3r/Zipper.cpp:105 msgid "Error with zip archive" msgstr "Fehler beim ZIP-Archiv" +#: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1431 +msgid "Error! " +msgstr "Fehler!" + #: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1443 msgid "Error!" msgstr "Fehler!" -#: src/slic3r/GUI/BedShapeDialog.cpp:482 -msgid "Error! Invalid model" -msgstr "Fehler! Ungültiges Modell" - #: src/slic3r/GUI/FirmwareDialog.cpp:610 -#, possible-c-format +#, c-format msgid "Error: %s" msgstr "Fehler: %s" -#: src/slic3r/GUI/Plater.cpp:1503 -msgid "ERROR: not enough resources to execute a new job." -msgstr "FEHLER: Nicht genügend Ressourcen, um einen neuen Job auszuführen." - #: src/slic3r/GUI/Plater.cpp:217 src/slic3r/GUI/Plater.cpp:1028 #: src/slic3r/GUI/Plater.cpp:1070 msgid "Estimated printing time" msgstr "Erwartete Druckzeit" +#: lib/Slic3r/GUI/Plater.pm:1618 +msgid "Estimated printing time (normal mode)" +msgstr "Erwartete Druckzeit (im normalen Modus)" + +#: lib/Slic3r/GUI/Plater.pm:1620 +msgid "Estimated printing time (silent mode)" +msgstr "Erwartete Druckzeit (im leisen Modus)" + #: src/slic3r/GUI/Plater.cpp:424 msgid "Everywhere" msgstr "Überall" @@ -1931,19 +2196,28 @@ msgstr "Überall" msgid "except for the first %1% layers." msgstr "außer für die ersten %1% Schichten." +#: src/slic3r/GUI/PresetHints.cpp:46 +#, c-format +msgid "except for the first %d layers" +msgstr "außer für die ersten %d Schichten" + +#: src/slic3r/GUI/PresetHints.cpp:50 +msgid "except for the first layer" +msgstr "außer für die erste Schicht" + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "except for the first layer." msgstr "außer für die erste Schicht." -#: src/libslic3r/Print.cpp:1285 -msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm" -msgstr "Übermäßig %1%=%2% mm, um mit einem Düsendurchmesser von %3% mm druckbar zu sein" - #: src/slic3r/GUI/UpdateDialogs.cpp:148 -#, possible-c-format +#, c-format msgid "Exit %s" msgstr "%s beenden" +#: src/slic3r/GUI/UpdateDialogs.cpp:144 +msgid "Exit Slic3r" +msgstr "Slic3r beenden" + #: src/libslic3r/PrintConfig.cpp:335 msgid "Experimental option for preventing support material from being generated under bridged areas." msgstr "Experimentelle Option zur Verhinderung der Bildung von Trägermaterial unter Überbrückungsflächen." @@ -1972,10 +2246,6 @@ msgstr "Export Konfiguration (&C)" msgid "Export &G-code" msgstr "Export &G-Code" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export &toolpaths as OBJ" -msgstr "Werkzeugpfade als OBJ exportieren (&t)" - #: src/libslic3r/PrintConfig.cpp:2949 msgid "Export 3MF" msgstr "Export 3MF" @@ -1996,6 +2266,10 @@ msgstr "Exportiere AMF Datei:" msgid "Export as STL" msgstr "Exportiere als STL" +#: lib/Slic3r/GUI/Plater.pm:1416 +msgid "Export cancelled" +msgstr "Export abgebrochen" + #: src/slic3r/GUI/MainFrame.cpp:375 msgid "Export Config &Bundle" msgstr "Konfigurationssamlung exportieren (&B)" @@ -2004,6 +2278,10 @@ msgstr "Konfigurationssamlung exportieren (&B)" msgid "Export current configuration to file" msgstr "Exportiere die aktuelle Konfiguration in eine Datei" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export current plate as 3MF" +msgstr "Exportiere die aktuelle Plattenbelegung als 3MF" + #: src/slic3r/GUI/MainFrame.cpp:370 msgid "Export current plate as AMF" msgstr "Exportiere die aktuelle Plattenbelegung als AMF" @@ -2029,13 +2307,21 @@ msgstr "Export ist fehlgeschlagen" msgid "Export G-code" msgstr "Export G-Code" +#: lib/Slic3r/GUI/MainFrame.pm:272 +msgid "Export G-code..." +msgstr "Export G-Code..." + +#: lib/Slic3r/GUI/Plater.pm:322 +msgid "Export G-code…" +msgstr "Export G-Code…" + #: src/libslic3r/PrintConfig.cpp:2931 msgid "Export OBJ" msgstr "Exportiere OBJ" -#: src/slic3r/GUI/Plater.cpp:2531 -msgid "Export OBJ file:" -msgstr "Exportiere OBJ Datei:" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export object as STL…" +msgstr "Exportiere das Objekt als STL…" #: src/slic3r/Utils/FixModelByWin10.cpp:368 msgid "Export of a temporary 3mf file failed" @@ -2049,9 +2335,25 @@ msgstr "Exportiere die Plattenbelegung als $AMF" msgid "Export plate as &STL" msgstr "Exportiere die Plattenbelegung als &STL" -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export plate as STL &including supports" -msgstr "Exportiere Plattenbelegung als STL einschliesslich Stützstrukturen" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export plate as 3MF..." +msgstr "Exportiere die Plattenbelegung als 3MF..." + +#: lib/Slic3r/GUI/MainFrame.pm:278 +msgid "Export plate as AMF..." +msgstr "Exportiere die Plattenbelegung als AMF..." + +#: src/slic3r/GUI/MainFrame.cpp:368 +msgid "Export plate as STL including supports" +msgstr "Exportiert die Plattenbelegung als STL einschliesslich Stützstrukturen" + +#: lib/Slic3r/GUI/MainFrame.pm:275 +msgid "Export plate as STL..." +msgstr "Exportiere die Plattenbelegung als STL..." + +#: xs/src/slic3r/GUI/GUI.cpp:930 +msgid "Export print config" +msgstr "Export Druckkonfiguration" #: src/libslic3r/PrintConfig.cpp:2943 msgid "Export SLA" @@ -2065,6 +2367,14 @@ msgstr "Exportiere STL" msgid "Export STL file:" msgstr "Exportiere STL Datei:" +#: lib/Slic3r/GUI/Plater.pm:326 +msgid "Export STL…" +msgstr "Exportiere STL…" + +#: src/libslic3r/PrintConfig.cpp:2924 +msgid "Export SVG" +msgstr "Exportiere SVG" + #: src/libslic3r/PrintConfig.cpp:2950 msgid "Export the model(s) as 3MF." msgstr "Exportiert das/die Modell(e) als 3MF Datei." @@ -2085,9 +2395,9 @@ msgstr "Exportiert das/die Modell(e) als STL Datei." msgid "Export the selected object as STL file" msgstr "Exportiere das gewählte Objekt als STL Datei" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export toolpaths as OBJ" -msgstr "Werkzeugpfad als OBJ exportieren" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export this single object as STL file" +msgstr "Exportiere dieses einzelne Objekt als STL Datei" #: src/libslic3r/Print.cpp:1517 msgid "Exporting G-code" @@ -2102,10 +2412,6 @@ msgstr "Exportiere Modell..." msgid "Exporting source model" msgstr "Exportieren des Quellmodells" -#: src/libslic3r/SLAPrint.cpp:700 -msgid "Exposition time is out of printer profile bounds." -msgstr "Belichtungszeit ist außerhalb der Druckerprofilgrenzen." - #: src/slic3r/GUI/Tab.cpp:3306 msgid "Exposure" msgstr "Belichtung" @@ -2148,7 +2454,7 @@ msgid "Extruder" msgstr "Extruder" #: src/slic3r/GUI/Tab.cpp:2253 src/libslic3r/GCode/PreviewData.cpp:475 -#, possible-c-format +#, c-format msgid "Extruder %d" msgstr "Extruder %d" @@ -2246,6 +2552,10 @@ msgstr "Das Laden des Inputmodells ist fehlgeschlagen." msgid "Failed processing of the output_filename_format template." msgstr "Die Verarbeitung der output_filename_format Vorlage ist fehlgeschlagen." +#: src/slic3r/GUI/PresetHints.cpp:38 +msgid "Fan " +msgstr "Ventilator " + #: src/slic3r/GUI/PresetHints.cpp:41 msgid "Fan" msgstr "Kühllüfter" @@ -2266,10 +2576,6 @@ msgstr "Schnell" msgid "Fast tilt" msgstr "Schnelles Kippen" -#: src/slic3r/GUI/GUI_App.cpp:135 -msgid "Fatal error" -msgstr "Fataler Fehler" - #: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:537 #: src/libslic3r/GCode/PreviewData.cpp:394 msgid "Feature type" @@ -2279,6 +2585,10 @@ msgstr "Merkmalstyp" msgid "Feature types" msgstr "Merkmalstypen" +#: lib/Slic3r/GUI/Plater.pm:256 +msgid "Fewer" +msgstr "Weniger" + #: src/slic3r/GUI/Plater.cpp:682 src/slic3r/GUI/Tab.cpp:1470 #: src/slic3r/GUI/Tab.cpp:1471 msgid "Filament" @@ -2296,6 +2606,10 @@ msgstr "Filament- und Düsendurchmesser" msgid "Filament Diameter:" msgstr "Filamentdurchmesser:" +#: src/libslic3r/PrintConfig.cpp:619 +msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves " +msgstr "Das Filament wird durch Hin- und Herbewegen in den Kühlschläuchen abgekühlt. Geben Sie die gewünschte Anzahl dieser Bewegungen an" + #: src/libslic3r/PrintConfig.cpp:620 msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves." msgstr "Das Filament wird durch Hin- und Herbewegen in den Kühlschläuchen abgekühlt. Geben Sie die gewünschte Anzahl dieser Bewegungen an." @@ -2308,10 +2622,6 @@ msgstr "Filament Ladezeit" msgid "Filament notes" msgstr "Filament Bemerkungen" -#: src/slic3r/GUI/Tab.cpp:1502 src/slic3r/GUI/Tab.cpp:1557 -msgid "Filament Overrides" -msgstr "Filament Übersteuerung" - #: src/libslic3r/PrintConfig.cpp:1312 msgid "Filament parking position" msgstr "Filament Parkposition" @@ -2336,6 +2646,10 @@ msgstr "Filament Entladezeit" msgid "filaments" msgstr "Filamente" +#: lib/Slic3r/GUI/Plater.pm:1555 +msgid "File added to print queue" +msgstr "Datei zur Druckwarteschlange hinzugefügt" + #: src/libslic3r/Zipper.cpp:75 msgid "file close failed" msgstr "Dateischliessen fehlgeschlagen" @@ -2404,6 +2718,14 @@ msgstr "Füllmuster für allgemeines Infill mit niedriger Dichte." msgid "Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells." msgstr "Füllmuster für die obere Füllung. Dies betrifft nur die obere sichtbare Schicht und nicht die angrenzenden festen Schalen." +#: xs/src/libslic3r/PrintConfig.cpp:285 +msgid "Fill pattern for top/bottom infill. This only affects the external visible layer, and not its adjacent solid shells." +msgstr "Füllmuster für die obere und untere Füllung. Dies wirkt sich nur auf die äußere sichtbare Schicht aus, nicht aber auf die angrenzenden soliden Konturen." + +#: src/libslic3r/SLA/SLASupportTree.cpp:2154 +msgid "Filtering" +msgstr "Filtere" + #: src/slic3r/GUI/BonjourDialog.cpp:225 msgid "Finished" msgstr "Fertig" @@ -2449,18 +2771,30 @@ msgstr "Druckgeschwindigkeit der ersten Schicht" msgid "First layer volumetric" msgstr "Volumenparameter der ersten Schicht" +#: src/libslic3r/Print.cpp:1313 +msgid "first_layer_height" +msgstr "first_layer_height" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix STL through Netfabb" +msgstr "Repariere STL mittels Netfabb" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix the model by sending it to a Netfabb cloud service through Windows 10 API" +msgstr "Repariere das Modell durch Senden zum Netfabb Cloud Service mittels der Windows 10 API" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1210 msgid "Fix through the Netfabb" msgstr "Reparieren mittels Netfabb" -#: src/slic3r/GUI/Plater.cpp:3072 -msgid "Fix Throught NetFabb" -msgstr "Reparieren mittels Netfabb" - #: src/slic3r/GUI/GUI_App.cpp:685 msgid "Flash printer &firmware" msgstr "Flashe Drucker &Firmware" +#: xs/src/slic3r/GUI/GUI.cpp:356 +msgid "Flash printer firmware" +msgstr "Flashe Drucker Firmware" + #: src/slic3r/GUI/FirmwareDialog.cpp:146 msgid "Flash!" msgstr "Flash!" @@ -2477,6 +2811,10 @@ msgstr "Flashen fehlgeschlagen" msgid "Flashing failed. Please see the avrdude log below." msgstr "Flashen misslungen. Bitte überprüfen Sie das Avrdude log unterhalb." +#: src/slic3r/GUI/FirmwareDialog.cpp:192 +msgid "Flashing failed: " +msgstr "Flashen fehlgeschlagen:" + #: src/slic3r/GUI/FirmwareDialog.cpp:148 msgid "Flashing in progress. Please do not disconnect the printer!" msgstr "Es wird geflashed. Bitte nicht den Drucker abklemmen!" @@ -2502,9 +2840,21 @@ msgid "For support enforcers only" msgstr "Nur für Stützverstärker" #. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3345 -msgid "for the left button: \tindicates a non-system (or non-default) preset,\nfor the right button: \tindicates that the settings hasn't been modified." -msgstr "Beim linken Knopf: zeigt eine Nicht-System- (oder Nicht-Standard-) Einstellung an.\nBeim rechten Knopf: zeigt an, dass die Einstellung nicht geändert wurde." +#: src/slic3r/GUI/Tab.cpp:3078 +msgid "" +"for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"Beim linken Knopf: zeigt eine Nicht-Systemeinstellung an.\n" +"Beim rechten Knopf: zeigt an, dass die Einstellung nicht geändert wurde." + +#: src/slic3r/GUI/Tab.cpp:1295 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "Damit der Reinigungsturm mit den löslichen Trägermaterialien arbeiten kann, müssen die Stützschichten mit den Objektschichten synchronisiert werden. Soll ich Unterstützungsschichten synchronisieren, um den Reinigungsturm zu aktivieren?" #: src/libslic3r/Print.cpp:1302 msgid "For the Wipe Tower to work with the soluble supports, the support layers need to be synchronized with the object layers." @@ -2522,10 +2872,6 @@ msgstr "Erzwingt die Erzeugung von festen Schalen zwischen benachbarten Material msgid "From" msgstr "Von" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1853 -msgid "From Object List You can't delete the last solid part from object." -msgstr "Sie können nicht das letzte solide Teil des Objekts von der Objektliste löschen." - #: src/slic3r/GUI/MainFrame.cpp:525 msgid "Front" msgstr "Front" @@ -2534,10 +2880,18 @@ msgstr "Front" msgid "Front View" msgstr "Frontalansicht" +#: src/slic3r/GUI/Tab.cpp:2151 +msgid "Full Power" +msgstr "Volle Leistung" + #: src/slic3r/GUI/MainFrame.cpp:677 msgid "G-code" msgstr "G-Code" +#: lib/Slic3r/GUI/Plater.pm:1561 +msgid "G-code file exported to " +msgstr "G-Code Datei exportiert nach " + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:87 msgid "G-code file exported to %1%" msgstr "G-Code Datei exportiert nach %1%" @@ -2564,6 +2918,10 @@ msgstr "Allgemein" 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 "Erzeugt nicht weniger als die Anzahl der Schürzenschleifen, die benötigt wird, um die angegebene Menge an Filament auf der unteren Schicht zu verbrauchen. Bei Multiextruder-Maschinen gilt dieses Minimum für jeden Extruder." +#: src/libslic3r/SLA/SLASupportTree.cpp:2155 +msgid "Generate pinheads" +msgstr "Erzeugt Nadelköpfe" + #: src/libslic3r/PrintConfig.cpp:1779 msgid "Generate support material" msgstr "Generiere Stützstrukturen" @@ -2640,22 +2998,6 @@ msgstr "Gizmo Skalieren" msgid "Gizmo SLA support points" msgstr "Gizmo SLA Stützpunkte" -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:641 -msgid "Gizmo-Move" -msgstr "Gizmo Bewegen" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:569 -msgid "Gizmo-Place on Face" -msgstr "Gizmo Auf Fläche legen" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:651 -msgid "Gizmo-Rotate" -msgstr "Gizmo-Rotation" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:646 -msgid "Gizmo-Scale" -msgstr "Gizmo Skalierung" - #: src/slic3r/GUI/AboutDialog.cpp:95 msgid "GNU Affero General Public License, version 3" msgstr "GNU Affero General Public License, Version 3" @@ -2684,6 +3026,14 @@ msgstr "hat die folgenden ungesicherten Änderungen:" msgid "Head diameter" msgstr "Kopfdurchmesser" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:838 +msgid "Head diameter: " +msgstr "Kopfdurchmesser:" + +#: src/slic3r/GUI/Tab.cpp:3483 +msgid "Head penetration should not be greater than the head width." +msgstr "Die Kopfdurchdringung sollte nicht größer als die Kopfbreite sein." + #: src/libslic3r/PrintConfig.cpp:822 msgid "Heated build plate temperature for the first layer. Set this to zero to disable bed temperature control commands in the output." msgstr "Druckbetttemperatur für die erste Schicht. Setzen Sie diesen Wert auf Null, um die Befehle zur Steuerung der Betttemperatur im Ausgang zu deaktivieren." @@ -2704,23 +3054,24 @@ msgstr "Höhe der Schürze in Schichten. Eine hohe Schürze kann gegen Zugluft msgid "Height of the display" msgstr "Displayhöhe" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1350 -msgid "Height range Modifier" -msgstr "Höhenbereich Modifizierer" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3650 src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Height ranges" -msgstr "Höhenbereiche" +#: src/libslic3r/PrintConfig.cpp:225 +msgid "Heights at which a filament change is to occur. " +msgstr "Höhen, bei denen eine Filamentwechsel stattfinden soll." #: src/libslic3r/PrintConfig.cpp:226 msgid "Heights at which a filament change is to occur." msgstr "Höhen, bei denen eine Filamentwechsel stattfinden soll." #: src/slic3r/GUI/ConfigWizard.cpp:300 -#, possible-c-format +#, c-format msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print." msgstr "Hallo, willkommen bei %s! Dieses %s hilft Ihnen bei der Erstkonfiguration; nur ein paar Einstellungen und Sie sind bereit zum Drucken." +#: src/slic3r/GUI/ConfigWizard.cpp:290 +#, c-format +msgid "Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial configuration; just a few settings and you will be ready to print." +msgstr "Hallo, willkommen bei Slic3r Prusa Edition! Dieses %s hilft Ihnen bei der Erstkonfiguration; nur ein paar Einstellungen und Sie sind bereit zum Drucken." + #: src/libslic3r/PrintConfig.cpp:2976 msgid "Help" msgstr "Hilfe" @@ -2778,20 +3129,20 @@ msgid "Hostname, IP or URL" msgstr "Hostname, IP oder URL" #: src/slic3r/GUI/Tab.cpp:136 -msgid "Hover the cursor over buttons to find more information \nor click this button." -msgstr "Bewegen Sie den Mauszeiger über die Schaltflächen, um weitere Informationen zu erhalten,\noder klicken Sie auf diese Schaltfläche." - -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "How much should the tiny connectors penetrate into the model body." -msgstr "Wie weit die kleinen Verbinder in den Modellkörper eindringen sollen." +msgid "" +"Hover the cursor over buttons to find more information \n" +"or click this button." +msgstr "" +"Bewegen Sie den Mauszeiger über die Schaltflächen, um weitere Informationen zu erhalten,\n" +"oder klicken Sie auf diese Schaltfläche." #: src/libslic3r/PrintConfig.cpp:2380 msgid "How much the pinhead has to penetrate the model surface" msgstr "Wie tief der Nadelkopf in die Modelloberfläche eindringt" -#: src/libslic3r/PrintConfig.cpp:2642 -msgid "How much the supports should lift up the supported object. If \"Pad around object\" is enabled, this value is ignored." -msgstr "Wie viel die Stützen das unterstützte Objekt anheben sollen. Wenn \"Grundschicht um Objekt\" aktiviert ist, wird dieser Wert ignoriert." +#: src/libslic3r/PrintConfig.cpp:2491 +msgid "How much the supports should lift up the supported object." +msgstr "Wie hoch die Stützen das unterstützte Objekt anheben sollen." #: src/libslic3r/PrintConfig.cpp:95 msgid "HTTPS CA File" @@ -2802,13 +3153,23 @@ msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self msgstr "HTTPS-CA-Datei ist optional. Sie wird nur benötigt, wenn Sie HTTPS mit einem selbstsignierten Zertifikat verwenden." #: src/slic3r/GUI/Tab.cpp:1773 -#, possible-c-format -msgid "HTTPS CA File:\n \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." -msgstr "HTTPS CA-Datei:\nAuf diesem System verwendet %s HTTPS-Zertifikate aus dem System Zertifikatsspeicher oder Schlüsselbund. Um eine benutzerdefinierte CA-Datei zu verwenden, importieren Sie bitte Ihre CA-Datei in den Zertifikatsspeicher / Schlüsselbund." +#, c-format +msgid "" +"HTTPS CA File:\n" +" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n" +" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"HTTPS CA-Datei:\n" +"Auf diesem System verwendet %s HTTPS-Zertifikate aus dem System Zertifikatsspeicher oder Schlüsselbund. Um eine benutzerdefinierte CA-Datei zu verwenden, importieren Sie bitte Ihre CA-Datei in den Zertifikatsspeicher / Schlüsselbund." -#: src/slic3r/GUI/Preferences.cpp:192 -msgid "Icon size in a respect to the default size" -msgstr "Symbolgröße in Bezug auf die Standardgröße" +#: src/slic3r/GUI/Tab.cpp:1725 +msgid "" +"HTTPS CA File:\n" +"\tOn this system, Slic3r uses HTTPS certificates from the system Certificate Store or Keychain.\n" +"\tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"HTTPS CA-Datei:\n" +"Auf diesem System verwendet Slic3r HTTPS-Zertifikate aus dem System Zertifikatsspeicher oder Schlüsselbund. Um eine benutzerdefinierte CA-Datei zu verwenden, importieren Sie bitte Ihre CA-Datei in den Zertifikatsspeicher / Schlüsselbund." #: src/slic3r/GUI/PrintHostDialogs.cpp:148 msgid "ID" @@ -2819,12 +3180,12 @@ msgid "If checked, supports will be generated automatically based on the overhan msgstr "Wenn dieses Kontrollkästchen aktiviert ist, werden Stützstrukturen automatisch basierend auf dem Schwellenwert für den Überhang generiert. Wenn diese Option nicht aktiviert ist, werden Stützen nur innerhalb der Volumen der \"Stützverstärker\" generiert." #: src/slic3r/GUI/ConfigWizard.cpp:413 -#, possible-c-format +#, c-format msgid "If enabled, %s checks for new application versions online. When a new version becomes available, a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." msgstr "Falls aktiviert, sucht %s online nach neuen Versionen der Anwendung. Falls eine neue Version verfügbar ist, wird eine Mitteilung beim nächsten Programmstart angezeigt (aber nie während der Programmausführung). Dies dient nur der Mitteilung; es findet keine automatische Installation statt." #: src/slic3r/GUI/ConfigWizard.cpp:423 -#, possible-c-format +#, c-format msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup." msgstr "Wenn aktiviert, lädt %s Updates der eingebauten Systemvoreinstellungen im Hintergrund herunter. Diese Updates werden in einen separaten temporären Speicherort heruntergeladen. Wenn eine neue Voreinstellungsversion verfügbar wird, wird sie beim Programmstart angeboten." @@ -2833,8 +3194,12 @@ msgid "If enabled, all printing extruders will be primed at the front edge of th msgstr "Wenn aktiviert, werden alle Druckextruder zu Beginn des Druckvorgangs an der Vorderkante des Druckbetts geprimt." #: src/slic3r/GUI/Preferences.cpp:63 -msgid "If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." -msgstr "Wenn aktiviert, wird PrusaSlicer online nach den neuen Versionen von sich selbst suchen. Wenn eine neue Version verfügbar wird, wird beim nächsten Anwendungsstart (nie während der Programmnutzung) eine Benachrichtigung angezeigt. Dies ist nur ein Benachrichtigungsmechanismus, es erfolgt keine automatische Installation." +msgid "If enabled, Slic3r checks for new versions of " +msgstr "Wenn diese Option aktiviert ist, sucht Slic3r nach neuen Versionen von" + +#: src/slic3r/GUI/ConfigWizard.cpp:401 src/slic3r/GUI/Preferences.cpp:61 +msgid "If enabled, Slic3r checks for new versions of Slic3r PE online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." +msgstr "Falls aktiviert, sucht Slic3r online nach neuen Versionen von Slic3r PE. Falls eine neue Version verfügbar ist, wird eine Mitteilung beim nächsten Programmstart angezeigt (aber nie während der Programmausführung). Dies dient nur der Mitteilung; es findet keine automatische Installation statt." #: src/slic3r/GUI/Preferences.cpp:71 msgid "If enabled, Slic3r downloads updates of built-in system presets in the background. These updates are downloaded into a separate temporary location. When a new preset version becomes available it is offered at application startup." @@ -2844,18 +3209,15 @@ msgstr "Wenn aktiviert, lädt Slic3r Updates der eingebauten Systemvoreinstellun 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 "Wenn aktiviert, wird die 3D-Szene in Retina-Auflösung gerendert. Wenn Sie Probleme mit der 3D-Leistung haben, kann es hilfreich sein, diese Option zu deaktivieren." -#: src/slic3r/GUI/Preferences.cpp:112 -msgid "If enabled, use perspective camera. If not enabled, use orthographic camera." -msgstr "Wenn aktiviert, verwenden Sie eine perspektivische Kamera. Wenn nicht aktiviert, verwenden Sie eine orthographische Kamera." - -#: src/slic3r/GUI/Preferences.cpp:119 -msgid "If enabled, you can change size of toolbar icons manually." -msgstr "Wenn aktiviert, können Sie die Größe der Symbolleistensymbole manuell ändern." - #: src/slic3r/GUI/PresetHints.cpp:28 msgid "If estimated layer time is below ~%1%s, fan will run at %2%%% and print speed will be reduced so that no less than %3%s are spent on that layer (however, speed will never be reduced below %4%mm/s)." msgstr "Wenn die geschätzte Schichtzeit unter ~%1%s liegt, läuft der Lüfter mit %2%%% und die Druckgeschwindigkeit wird reduziert, so dass nicht weniger als %3%s für diese Schicht verwendet werden (die Geschwindigkeit wird jedoch nie unter %4%mm/s reduziert)." +#: src/slic3r/GUI/PresetHints.cpp:28 +#, c-format +msgid "If estimated layer time is below ~%ds, fan will run at %d%% and print speed will be reduced so that no less than %ds are spent on that layer (however, speed will never be reduced below %dmm/s)." +msgstr "Wenn die geschätzte Schichtzeit unter ~%ds liegt, läuft der Lüfter mit %d%% und die Druckgeschwindigkeit wird reduziert, so dass nicht weniger als %ds für diese Schicht verwendet werden (die Geschwindigkeit wird jedoch nie unter %dmm/s reduziert)." + #: src/libslic3r/PrintConfig.cpp:853 msgid "If expressed as absolute value in mm/s, this speed will be applied to all the print moves of the first layer, regardless of their type. If expressed as a percentage (for example: 40%) it will scale the default speeds." msgstr "Wird diese Geschwindigkeit als Absolutwert in mm/s angegeben, so wird sie auf alle Druckbewegungen der ersten Lage angewendet, unabhängig von ihrem Typ. In Prozent ausgedrückt (z.B. 40%) skaliert es die voreingestellten Geschwindigkeiten." @@ -2884,6 +3246,10 @@ msgstr "Wenn diese Option aktiviert ist, wird Slic3r Objekte vorverarbeiten, sob msgid "If this is enabled, Slic3r will prompt the last output directory instead of the one containing the input files." msgstr "Wenn diese Option aktiviert ist, öffnet Slic3r das letzte Ausgabeverzeichnis anstelle des Verzeichnisses, in dem sich die Eingabedateien befinden." +#: src/slic3r/GUI/Preferences.cpp:95 +msgid "If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may try to check this checkbox. This will disable the layer height editing and anti aliasing, so it is likely better to upgrade your graphics driver." +msgstr "Wenn Sie Rendering-Probleme haben, die durch einen fehlerhaften OpenGL 2.0-Treiber verursacht wurden, können Sie versuchen, dieses Kontrollkästchen zu aktivieren. Dies deaktiviert die Bearbeitung der Ebenenhöhe und das Anti-Aliasing, so dass es wahrscheinlich sinnvoller ist, den Grafiktreiber zu aktualisieren." + #: src/libslic3r/PrintConfig.cpp:1492 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 "Wenn Sie diesen Wert auf einen positiven Wert setzen, wird Z bei jedem Auslösen eines Einzugs schnell angehoben. Bei Verwendung mehrerer Extruder wird nur die Einstellung für den ersten Extruder berücksichtigt." @@ -2924,14 +3290,6 @@ msgstr "Importiere Konfigurationssamlung (&B)" msgid "Import Config from &project" msgstr "Importiere Konfiguration von &Projekt" -#: src/slic3r/GUI/Plater.cpp:4016 -msgid "Import Object" -msgstr "Objekt importieren" - -#: src/slic3r/GUI/Plater.cpp:4020 -msgid "Import Objects" -msgstr "Objekte importieren" - #: src/slic3r/Utils/FixModelByWin10.cpp:383 msgid "Import of the repaired 3mf file failed" msgstr "Import einer reparierten 3MF Datei fehlgeschlagen" @@ -2945,7 +3303,7 @@ msgid "Import STL/OBJ/AMF/3MF without config, keep bed" msgstr "Importe STL/OBJ/AMF/3MF ohne Konfigurationsdaten, behalte Bett bei" #: src/slic3r/GUI/GUI_ObjectList.cpp:2416 -#, possible-c-format +#, c-format msgid "In this mode you can select only other %s Items%s" msgstr "In diesem Modus wählen Sie nur andere %s Elemente%s" @@ -2954,28 +3312,41 @@ msgid "Incompatible bundles:" msgstr "Inkompatible Konfigurationssammlungen:" #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70 -#, possible-c-format +#, c-format msgid "Incompatible with this %s" msgstr "Nicht kompatibel mit diesem %s" -#: src/slic3r/GUI/Plater.cpp:4091 -msgid "Increase Instances" -msgstr "Kopien erhöhen" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 +msgid "Incompatible with this Slic3r" +msgstr "Nicht kompatibel mit diesem Slic3r" + +#: src/slic3r/GUI/Plater.cpp:2813 src/slic3r/GUI/Plater.cpp:2825 +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Increase copies" +msgstr "Erhöhe Anzahl" #. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3338 -msgid "indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\nClick the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values." -msgstr "zeigt an, dass einige Einstellungen geändert wurden und nicht mit den System- (oder Standard-) Werten für die aktuelle Optionsgruppe übereinstimmen.\nKlicken Sie auf das Symbol GEÖFFNETES SCHLOSS, um alle Einstellungen für die aktuelle Optionsgruppe auf die System- (oder Standard-) Werte zurückzusetzen." +#: src/slic3r/GUI/Tab.cpp:3071 +msgid "" +"indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"Zeigt an, dass einige Einstellungen geändert wurden und nicht mehr mit den Systemeinstellungen für die aktuelle Gruppe von Optionen identisch sind.\n" +"Klicken Sie auf das Symbol mit dem GEÖFFNETEN SCHLOSS, um alle Einstellungen für die aktuelle Optionsgruppe auf die Systemeinstellungen zurückzusetzen." #. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3334 -msgid "indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "zeigt an, dass die Einstellungen mit den System- (oder Standard-) Werten für die aktuelle Optionsgruppe übereinstimmen" +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "indicates that the settings are the same as the system values for the current option group" +msgstr "zeigt an, dass die Einstellungen mit den Systemwerten der aktuellen Optionsgruppe übereinstimmen" #. TRN Description for "BACK ARROW" #: src/slic3r/GUI/Tab.cpp:3083 -msgid "indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick the BACK ARROW icon to reset all settings for the current option group to the last saved preset." -msgstr "zeigt an, dass die Einstellungen geändert wurden und nicht mit dem zuletzt gespeicherten Preset für die aktuelle Optionsgruppe übereinstimmen. \nKlicken Sie auf das Symbol PFEIL ZURÜCK, um alle Einstellungen für die aktuelle Optionsgruppe auf das zuletzt gespeicherte Preset zurückzusetzen." +msgid "" +"indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "" +"zeigt an, dass die Einstellungen geändert wurden und nicht mit dem zuletzt gespeicherten Preset für die aktuelle Optionsgruppe übereinstimmen. \n" +"Klicken Sie auf das Symbol PFEIL ZURÜCK, um alle Einstellungen für die aktuelle Optionsgruppe auf das zuletzt gespeicherte Preset zurückzusetzen." #: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:69 #: src/slic3r/GUI/GUI_ObjectList.cpp:510 src/slic3r/GUI/Plater.cpp:439 @@ -3019,10 +3390,6 @@ msgstr "Info" msgid "Inherits profile" msgstr "Übernimmt Profil" -#: src/libslic3r/SLAPrint.cpp:707 -msgid "Initial exposition time is out of printer profile bounds." -msgstr "Anfang-Belichtungszeit ist außerhalb der Druckerprofilgrenzen." - #: src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2318 msgid "Initial exposure time" msgstr "Anfang-Belichtungszeit" @@ -3040,7 +3407,7 @@ msgid "Inspect / activate configuration snapshots" msgstr "Inspiziere / aktiviere Konfigurations-Momentaufnahmen" #: src/slic3r/GUI/wxExtensions.cpp:407 src/slic3r/GUI/wxExtensions.cpp:474 -#, possible-c-format +#, c-format msgid "Instance %d" msgstr "Kopie %d" @@ -3052,9 +3419,10 @@ msgstr "Kopie Bearbeitung" msgid "Instances" msgstr "Kopien" -#: src/slic3r/GUI/GUI_ObjectList.cpp:934 src/slic3r/GUI/GUI_ObjectList.cpp:3346 -msgid "Instances to Separated Objects" -msgstr "Kopien in einzelne Objekte wandeln" +#: src/slic3r/GUI/wxExtensions.cpp:365 +#, c-format +msgid "Instance_%d" +msgstr "Kopie_%d" #: src/libslic3r/PrintConfig.cpp:1886 msgid "Interface layers" @@ -3080,19 +3448,22 @@ msgstr "interner Fehler" msgid "Internal infill" msgstr "Internes Infill" +#: xs/src/slic3r/Utils/OctoPrint.cpp:120 +msgid "Invalid API key" +msgstr "Ungültiger API-Schlüssel" + #: src/slic3r/GUI/Plater.cpp:2397 msgid "Invalid data" msgstr "Ungültige Daten" -#: src/slic3r/GUI/BedShapeDialog.cpp:471 src/slic3r/GUI/BedShapeDialog.cpp:520 -#: src/slic3r/GUI/BedShapeDialog.cpp:543 -msgid "Invalid file format." -msgstr "Ungültiges Dateiformat." - #: src/libslic3r/Zipper.cpp:83 msgid "invalid filename" msgstr "ungültiger Dateiname" +#: src/slic3r/GUI/Tab.cpp:3484 +msgid "Invalid Head penetration" +msgstr "Ungültige Kopfeindringung" + #: src/libslic3r/Zipper.cpp:51 msgid "invalid header or archive is corrupted" msgstr "ungültiger Dateiheader oder Archiv ist beschädigt" @@ -3105,6 +3476,19 @@ msgstr "Ungültige numerische Eingabe." msgid "invalid parameter" msgstr "ungültiger Parameter" +#: src/slic3r/GUI/Tab.cpp:3497 +msgid "Invalid pinhead diameter" +msgstr "Ungültiger Nadelkopfdurchmesser" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Invalid rotation angle entered" +msgstr "Ungültiger Rotationswinkel eingegeben" + +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +#: lib/Slic3r/GUI/Plater.pm:1158 lib/Slic3r/GUI/Plater.pm:1163 +msgid "Invalid scaling value entered" +msgstr "Ungültiger Skalierungsfaktor wurde eingegeben" + #. TRN "Slic3r _is licensed under the_ License" #: src/slic3r/GUI/AboutDialog.cpp:94 msgid "is licensed under the" @@ -3126,6 +3510,10 @@ msgstr "Iso" msgid "Iso View" msgstr "Iso Ansicht" +#: src/slic3r/GUI/Tab.cpp:914 +msgid "It can't be deleted or modified. " +msgstr "Es ist keine Löschung oder Änderung möglich." + #: src/slic3r/GUI/Tab.cpp:925 msgid "It can't be deleted or modified." msgstr "Es ist keine Löschung oder Änderung möglich." @@ -3134,6 +3522,14 @@ msgstr "Es ist keine Löschung oder Änderung möglich." 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 "Es kann vorteilhaft sein, den Extrudermotorstrom während des Filamentwechselvorgangs zu erhöhen, um schnelle Rammvorschübe zu ermöglichen und den Widerstand beim Laden eines Filaments mit einer ungünstig geformten Spitze zu überwinden." +#: src/slic3r/GUI/Tab.cpp:907 +msgid "It's a default preset." +msgstr "Dies ist eine Standard-Voreinstellung." + +#: src/slic3r/GUI/Tab.cpp:908 +msgid "It's a system preset." +msgstr "Dies ist eine Systemvoreinstellung." + #: src/slic3r/GUI/GUI.cpp:142 src/slic3r/GUI/Tab.cpp:2796 msgid "It's impossible to print multi-part object(s) with SLA technology." msgstr "Es ist nicht möglich mehrteilige Objekte mit dem SLA-Verfahren zu drucken." @@ -3178,14 +3574,17 @@ msgstr "Spache" msgid "Language selection" msgstr "Sprachauswahl" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1770 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1872 -msgid "Last instance of an object cannot be deleted." -msgstr "Letzte Kopie eines Objektes kann nicht gelöscht werden." +#: src/slic3r/GUI/GLCanvas3D.cpp:1694 +msgid "Last frame" +msgstr "Letzter Frame" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2994 -msgid "Layer" -msgstr "Schicht" +#: lib/Slic3r/GUI/Plater.pm:265 +msgid "Layer Editing" +msgstr "Schichthöhen" + +#: lib/Slic3r/GUI/Plater.pm:280 +msgid "Layer editing" +msgstr "Schichthöhen" #: src/slic3r/GUI/Tab.cpp:998 src/libslic3r/PrintConfig.cpp:55 msgid "Layer height" @@ -3199,10 +3598,6 @@ msgstr "Schichthöhe darf nicht größer sein als der Düsendurchmesser" msgid "Layer height limits" msgstr "Schichthöhen Grenzen" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2109 -msgid "Layer range Settings to modify" -msgstr "Schichtbereicheinstellungen zum Ändern" - #: src/libslic3r/PrintConfig.cpp:326 src/libslic3r/PrintConfig.cpp:946 #: src/libslic3r/PrintConfig.cpp:1435 src/libslic3r/PrintConfig.cpp:1620 #: src/libslic3r/PrintConfig.cpp:1681 src/libslic3r/PrintConfig.cpp:1844 @@ -3229,9 +3624,9 @@ msgstr "Schichten und Umfänge" msgid "Layers and Perimeters" msgstr "Schichten und Konturen" -#: src/slic3r/GUI/GLCanvas3D.cpp:526 -msgid "Layers heights" -msgstr "Schichthöhen" +#: src/slic3r/GUI/GLCanvas3D.cpp:3517 +msgid "Layers editing" +msgstr "Schichten bearbeiten" #: src/slic3r/GUI/KBShortcutsDialog.cpp:189 msgid "Layers Slider Shortcuts" @@ -3259,27 +3654,26 @@ msgstr "Links" msgid "Left click" msgstr "Linker Mausklick" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:597 +msgid "Left mouse click - add point" +msgstr "Linker Mausklick - Punkt hinzufügen" + #: src/slic3r/GUI/MainFrame.cpp:527 msgid "Left View" msgstr "Anicht von Links" -#: src/slic3r/GUI/GUI_Preview.cpp:255 -msgid "Legend" -msgstr "Legende" - #: src/libslic3r/PrintConfig.cpp:1473 src/libslic3r/PrintConfig.cpp:1481 msgid "Length" msgstr "Länge" +#: src/libslic3r/PrintConfig.cpp:292 +msgid "Length of the cooling tube to limit space for cooling moves inside it " +msgstr "Länge des Kühlschlauchs, um den Raum für Kühlbewegungen im Inneren zu begrenzen " + #: src/libslic3r/PrintConfig.cpp:293 msgid "Length of the cooling tube to limit space for cooling moves inside it." msgstr "Länge des Kühlschlauchs, um den Raum für Kühlbewegungen im Inneren zu begrenzen." -#. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:124 -msgid "License agreements of all following programs (libraries) are part of application license agreement" -msgstr "Lizenzvereinbarungen für alle folgenden Programme (Bibliotheken) sind Teil der Anwendungslizenzvereinbarung" - #: src/libslic3r/PrintConfig.cpp:1491 msgid "Lift Z" msgstr "Z Hebung" @@ -3324,33 +3718,17 @@ msgstr "Lädt die Konfiguration aus der angegebenen Datei. Es kann mehr als einm msgid "Load exported configuration file" msgstr "Laden einer exportierten Konfigurationsdatei" -#: src/slic3r/GUI/Plater.cpp:1271 -msgid "Load File" -msgstr "Datei laden" - -#: src/slic3r/GUI/Plater.cpp:1275 -msgid "Load Files" -msgstr "Dateien laden" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1585 -msgid "Load Part" -msgstr "Teil laden" - #: src/slic3r/GUI/MainFrame.cpp:357 msgid "Load presets from a bundle" msgstr "Lade Voreinstellungen aus einer Sammlung" -#: src/slic3r/GUI/Plater.cpp:3992 -msgid "Load Project" -msgstr "Projekt laden" - #: src/slic3r/GUI/BedShapeDialog.cpp:97 msgid "Load shape from STL..." msgstr "Lade Umriß von STL..." -#: src/slic3r/GUI/BedShapeDialog.cpp:181 src/slic3r/GUI/BedShapeDialog.cpp:249 -msgid "Load..." -msgstr "Laden..." +#: lib/Slic3r/GUI/Plater.pm:779 +msgid "Loaded " +msgstr "Geladen " #: src/slic3r/GUI/WipeTowerDialog.cpp:235 msgid "loaded" @@ -3364,6 +3742,10 @@ msgstr "Geladen" msgid "Loading" msgstr "Lade" +#: src/slic3r/GUI/GUI_App.cpp:339 +msgid "Loading of a current presets" +msgstr "Laden der aktuellen Voreinstellungen" + #: src/slic3r/GUI/GUI_App.cpp:407 msgid "Loading of a mode view" msgstr "Lade Anzeigemodus" @@ -3385,6 +3767,10 @@ msgstr "Ladegeschwindigkeit" msgid "Loading speed at the start" msgstr "Ladegeschwindigkeit zu Beginn" +#: lib/Slic3r/GUI/Plater.pm:713 +msgid "Loading…" +msgstr "Laden…" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:41 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 msgid "Local coordinates" @@ -3398,13 +3784,17 @@ msgstr "Fixiere Stützen unter neuen Inseln" msgid "LOCKED LOCK" msgstr "GESCHLOSSENES SCHLOSS" -#: src/slic3r/GUI/Tab.cpp:3360 -msgid "LOCKED LOCK icon indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "Das Symbol LOCKED LOCK zeigt an, dass die Einstellungen mit den System- (oder Standard-) Werten für die aktuelle Optionsgruppe übereinstimmen" +#: src/slic3r/GUI/Tab.cpp:3103 +msgid "LOCKED LOCK icon indicates that the settings are the same as the system values for the current option group" +msgstr "GESCHLOSSENES SCHLOSS-Symbol zeigt an, dass die Einstellungen mit den Systemwerten der aktuellen Optionsgruppe übereinstimmen" + +#: src/slic3r/GUI/Tab.cpp:3119 +msgid "LOCKED LOCK icon indicates that the value is the same as the system value." +msgstr "GESCHLOSSENES SCHLOSS-Symbol zeigt an, dass der Wert mit dem Systemwert übereinstimmt." -#: src/slic3r/GUI/Tab.cpp:3376 -msgid "LOCKED LOCK icon indicates that the value is the same as the system (or default) value." -msgstr "Das Symbol LOCKED LOCK zeigt an, dass der Wert mit dem System- (oder Standard-) Wert übereinstimmt." +#: src/slic3r/GUI/Tab.cpp:3064 +msgid "LOCKED LOCK;indicates that the settings are the same as the system values for the current option group" +msgstr "GESCHLOSSENES SCHLOSS;zeigt an, dass die Einstellungen mit den Systemwerten der aktuellen Optionsgruppe übereinstimmen" #: src/libslic3r/PrintConfig.cpp:3119 msgid "Logging level" @@ -3439,6 +3829,10 @@ msgstr "Hülle ok" msgid "Manual editing" msgstr "Manuelle Bearbeitung" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:675 +msgid "Manual editing [M]" +msgstr "Manuelle Bearbeitung [M]" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:105 msgid "Masked SLA file exported to %1%" msgstr "Maskierte SLA-Datei exportiert nach %1%" @@ -3503,14 +3897,26 @@ msgstr "Maximale Volumengeschwindigkeit" msgid "Maximal bridging distance" msgstr "Maximaler Überbrückungsabstand" +#: src/libslic3r/PrintConfig.cpp:2168 +msgid "Maximal distance between supports on sparse infill sections. " +msgstr "Maximalabstand zwischen Stützen auf spärlichen Infill-Abschnitten." + #: src/libslic3r/PrintConfig.cpp:2193 msgid "Maximal distance between supports on sparse infill sections." msgstr "Maximalabstand zwischen Stützen auf spärlichen Infill-Abschnitten." +#: src/libslic3r/PrintConfig.cpp:1086 +msgid "Maximum acceleration %1%" +msgstr "Maximale Beschleunigung %1%" + #: src/libslic3r/PrintConfig.cpp:1099 msgid "Maximum acceleration E" msgstr "Maximale Beschleunigung E" +#: src/libslic3r/PrintConfig.cpp:1088 +msgid "Maximum acceleration of the %1% axis" +msgstr "Maximale Beschleunigung der %1% Achse" + #: src/libslic3r/PrintConfig.cpp:1105 msgid "Maximum acceleration of the E axis" msgstr "Maximale Beschleunigung der E-Achse" @@ -3559,14 +3965,18 @@ msgstr "Maximale Beschleunigung Z" msgid "Maximum accelerations" msgstr "Maximale Beschleunigungen" -#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2425 -msgid "Maximum exposure time" -msgstr "Maximale Belichtungszeit" +#: src/libslic3r/PrintConfig.cpp:1076 +msgid "Maximum feedrate %1%" +msgstr "Maximaler Vorschub %1%" #: src/libslic3r/PrintConfig.cpp:1081 msgid "Maximum feedrate E" msgstr "Maximaler Vorschub E" +#: src/libslic3r/PrintConfig.cpp:1078 +msgid "Maximum feedrate of the %1% axis" +msgstr "Maximaler Vorschub auf der %1%-Achse" + #: src/libslic3r/PrintConfig.cpp:1087 msgid "Maximum feedrate of the E axis" msgstr "Maximaler Vorschub auf der E-Achse" @@ -3599,14 +4009,18 @@ msgstr "Maximaler Vorschub Z" msgid "Maximum feedrates" msgstr "Maximaler Vorschub" -#: src/libslic3r/PrintConfig.cpp:2447 src/libslic3r/PrintConfig.cpp:2448 -msgid "Maximum initial exposure time" -msgstr "Maximale Anfang-Belichtungszeit" +#: src/libslic3r/PrintConfig.cpp:1096 +msgid "Maximum jerk %1%" +msgstr "Maximaler Ruck %1%" #: src/libslic3r/PrintConfig.cpp:1117 msgid "Maximum jerk E" msgstr "Maximaler Ruck E" +#: src/libslic3r/PrintConfig.cpp:1098 +msgid "Maximum jerk of the %1% axis" +msgstr "Maximaler Ruck auf der %1%-Achse" + #: src/libslic3r/PrintConfig.cpp:1123 msgid "Maximum jerk of the E axis" msgstr "Maximaler Ruck auf der E-Achse" @@ -3683,6 +4097,10 @@ msgstr "Minimale Filament Extrusionlänge" msgid "Minimal points distance" msgstr "Minimaler Prunktabstand" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:877 +msgid "Minimal points distance: " +msgstr "Minimaler Prunktabstand:" + #: src/libslic3r/PrintConfig.cpp:635 msgid "Minimal purge on wipe tower" msgstr "Minimale Wischmenge im Wischturm" @@ -3691,10 +4109,6 @@ msgstr "Minimale Wischmenge im Wischturm" msgid "Minimum detail resolution, used to simplify the input file for speeding up the slicing job and reducing memory usage. High-resolution models often carry more detail than printers can render. Set to zero to disable any simplification and use full resolution from input." msgstr "Minimale Detailauflösung, die verwendet wird, um die Eingabedatei zu vereinfachen, um den Slicingjob zu beschleunigen und den Speicherverbrauch zu reduzieren. Hochauflösende Modelle weisen oft mehr Details auf, als der Drucker wiedergeben kann. Setzen Sie den Wert auf Null, um die Vereinfachung zu deaktivieren und die volle Auflösung des Eingangsdatei zu verwenden." -#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2417 -msgid "Minimum exposure time" -msgstr "Minimale Belichtungszeit" - #: src/libslic3r/PrintConfig.cpp:1109 src/libslic3r/PrintConfig.cpp:1111 msgid "Minimum feedrate when extruding" msgstr "Maximaler Vorschub bei Extrusion" @@ -3707,10 +4121,6 @@ msgstr "Minimaler Vorschub beim Extruden (M205 S)" msgid "Minimum feedrates" msgstr "Minimaler Vorschub" -#: src/libslic3r/PrintConfig.cpp:2439 src/libslic3r/PrintConfig.cpp:2440 -msgid "Minimum initial exposure time" -msgstr "Minimale Anfang-Belichtungszeit" - #: src/libslic3r/PrintConfig.cpp:1452 msgid "Minimum travel after retraction" msgstr "Minimalbewegung nach Einziehen" @@ -3727,14 +4137,6 @@ msgstr "Minimaler Vorschub im Eilgang (M205 T)" msgid "Mirror" msgstr "Spiegeln" -#: src/libslic3r/PrintConfig.cpp:2320 -msgid "Mirror horizontally" -msgstr "Horizontal spiegeln" - -#: src/slic3r/GUI/GLCanvas3D.cpp:1711 -msgid "Mirror Object" -msgstr "Objekt spiegeln" - #: src/slic3r/GUI/Plater.cpp:2946 msgid "Mirror the selected object" msgstr "Ausgewähltes Objekt spiegeln" @@ -3751,12 +4153,8 @@ msgstr "Ausgewähltes Objekt entlang der Y-Achse spiegeln" msgid "Mirror the selected object along the Z axis" msgstr "Ausgewähltes Objekt entlang der Z-Achse spiegeln" -#: src/libslic3r/PrintConfig.cpp:2327 -msgid "Mirror vertically" -msgstr "Vertikal spiegeln" - #: src/slic3r/Utils/OctoPrint.cpp:69 -#, possible-c-format +#, c-format msgid "Mismatched type of print host: %s" msgstr "Nicht übereinstimmender Typ des Druckhosts: %s" @@ -3805,6 +4203,17 @@ msgstr "mm (Null eingeben zum deaktivieren)" msgid "mm or %" msgstr "mm oder %" +#: src/libslic3r/PrintConfig.cpp:528 +msgid "mm or % (leave 0 for auto)" +msgstr "mm oder % (für automatischen Wert auf Null belassen)" + +#: src/libslic3r/PrintConfig.cpp:420 src/libslic3r/PrintConfig.cpp:835 +#: src/libslic3r/PrintConfig.cpp:967 src/libslic3r/PrintConfig.cpp:1354 +#: src/libslic3r/PrintConfig.cpp:1692 src/libslic3r/PrintConfig.cpp:1865 +#: src/libslic3r/PrintConfig.cpp:2023 +msgid "mm or % (leave 0 for default)" +msgstr "mm oder % (für Standardwert auf Null belassen)" + #: src/libslic3r/PrintConfig.cpp:201 src/libslic3r/PrintConfig.cpp:577 #: src/libslic3r/PrintConfig.cpp:585 src/libslic3r/PrintConfig.cpp:594 #: src/libslic3r/PrintConfig.cpp:602 src/libslic3r/PrintConfig.cpp:629 @@ -3855,10 +4264,6 @@ msgstr "Modus" msgid "model" msgstr "Modell" -#: src/slic3r/GUI/BedShapeDialog.cpp:239 -msgid "Model" -msgstr "Modell" - #: src/slic3r/Utils/FixModelByWin10.cpp:340 msgid "Model fixing" msgstr "Modellkorrektur" @@ -3888,10 +4293,6 @@ msgstr "Modellreparatur erfolgreich" msgid "modified" msgstr "geändert" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Modifier" -msgstr "Veränderer" - #: src/slic3r/GUI/Tab.cpp:1100 msgid "Modifiers" msgstr "Veränderer" @@ -3900,6 +4301,10 @@ msgstr "Veränderer" msgid "money/kg" msgstr "Kosten/kg" +#: lib/Slic3r/GUI/Plater.pm:255 +msgid "More" +msgstr "Mehr" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Mouse wheel" msgstr "Mausrad" @@ -3920,17 +4325,25 @@ msgstr "Bewege aktuellen Schieberegler nach unten" msgid "Move current slider thumb Up" msgstr "Bewege aktuellen Schieberegler nach oben" -#: src/slic3r/GUI/GLCanvas3D.cpp:2872 -msgid "Move Object" -msgstr "Objekt bewegen" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Move current slider thump Down" +msgstr "Bewege aktuellen Schieberegler nach unten" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Move current slider thump Up" +msgstr "Bewege aktuellen Schieberegler nach oben" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 msgid "Move point" msgstr "Punkt bewegen" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1183 -msgid "Move support point" -msgstr "Stützpunkt bewegen" +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:51 +msgid "Move [M]" +msgstr "Bewege [M]" + +#: src/slic3r/GUI/GLCanvas3D.cpp:1698 +msgid "ms" +msgstr "ms" #: src/libslic3r/PrintConfig.cpp:2100 msgid "Multi material printers may need to prime or purge extruders on tool changes. Extrude the excess material into the wipe tower." @@ -3941,7 +4354,7 @@ msgid "Multi-part object detected" msgstr "Objekt mit mehreren Teilen erkannt" #: src/slic3r/GUI/FirmwareDialog.cpp:400 src/slic3r/GUI/FirmwareDialog.cpp:436 -#, possible-c-format +#, c-format msgid "Multiple %s devices found. Please only connect one at a time for flashing." msgstr "Mehrere %s Geräte gefunden. Bitte immer nur eins zum Flashen anschliessen." @@ -3950,8 +4363,14 @@ msgid "Multiple Extruders" msgstr "Mehrere Extruder" #: src/slic3r/GUI/Plater.cpp:1766 -msgid "Multiple objects were loaded for a multi-material printer.\nInstead of considering them as multiple objects, should I consider\nthese files to represent a single object having multiple parts?\n" -msgstr "Für einen Multimaterialdrucker wurden mehrere Objekte geladen.\nSoll ich, anstatt sie als mehrere Objekte zu betrachten, \ndiese Dateien als ein einzelnes Objekt mit mehreren Teilen behandeln?\n" +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?\n" +msgstr "" +"Für einen Multimaterialdrucker wurden mehrere Objekte geladen.\n" +"Soll ich, anstatt sie als mehrere Objekte zu betrachten, \n" +"diese Dateien als ein einzelnes Objekt mit mehreren Teilen behandeln?\n" #: src/libslic3r/PrintConfig.cpp:3050 msgid "Multiply copies by creating a grid." @@ -3961,10 +4380,6 @@ msgstr "Multiple Kopien durch Erstellen eines Rasters." msgid "Multiply copies by this factor." msgstr "Mehrfache Kopien mit diesem Faktor." -#: src/slic3r/GUI/Field.cpp:139 -msgid "N/A" -msgstr "N.V." - #: src/slic3r/GUI/GUI_ObjectList.cpp:176 msgid "Name" msgstr "Name" @@ -3989,27 +4404,19 @@ msgstr "Nächste" msgid "Network lookup" msgstr "Network Lookup" -#: src/slic3r/GUI/Plater.cpp:2056 -msgid "New Project" -msgstr "Neues Projekt" - #: src/slic3r/GUI/UpdateDialogs.cpp:30 -#, possible-c-format +#, c-format msgid "New version of %s is available" msgstr "Eine neue Version von %s ist verfügbar" +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "New version of Slic3r PE is available" +msgstr "Eine neue Version von Slic3r PE ist verfügbar" + #: src/slic3r/GUI/UpdateDialogs.cpp:47 msgid "New version:" msgstr "Neue Version:" -#: src/slic3r/GUI/GLCanvas3D.cpp:3750 -msgid "Next Redo action: %1%" -msgstr "Nächste Redo Aktion: %1%" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3718 -msgid "Next Undo action: %1%" -msgstr "Nächste Undo-Aktion: %1%" - #: src/libslic3r/PrintConfig.cpp:912 msgid "No extrusion" msgstr "Keine Extrusion" @@ -4143,10 +4550,6 @@ msgstr "Objektname" msgid "Object or Instance" msgstr "Objekt oder Kopie" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Object reordered" -msgstr "Objekt neu angeordnet" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1868 msgid "Object Settings to modify" msgstr "Abweichende Objekteigenschaften" @@ -4167,10 +4570,22 @@ msgstr "Objekt(e)" msgid "objects" msgstr "Objekte" +#: xs/src/libslic3r/PrintConfig.cpp:2006 +msgid "Objects will be used to wipe 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 "Objekte werden zum Reinigen der Düse nach einem Materialwechsel verwendet, um Material zu sparen, das sonst im Reinigungsturm landen und die Druckzeit verkürzen würde. Die Farben der Objekte werden dabei gemischt." + #: src/libslic3r/PrintConfig.cpp:402 src/libslic3r/PrintConfig.cpp:808 msgid "Octagram Spiral" msgstr "Achterstern-Spirale" +#: xs/src/slic3r/GUI/Tab.cpp:1520 xs/src/slic3r/Utils/OctoPrint.cpp:110 +msgid "OctoPrint upload" +msgstr "Zu OctoPrint hochladen" + +#: lib/Slic3r/GUI/Plater.pm:1576 +msgid "OctoPrint upload finished." +msgstr "Hochladen zu OctoPrint beendet." + #: src/slic3r/GUI/BonjourDialog.cpp:76 msgid "OctoPrint version" msgstr "OctoPrint Version" @@ -4179,10 +4594,6 @@ msgstr "OctoPrint Version" msgid "of a current Object" msgstr "des aktuellen Objekts" -#: src/slic3r/GUI/wxExtensions.cpp:2570 -msgid "One layer mode" -msgstr "Eine Schicht Modus" - #: src/libslic3r/Print.cpp:1285 msgid "One or more object were assigned an extruder that the printer does not have." msgstr "Eines oder mehrere Objekte wurden einem Extruder zugewiesen, der auf diesem Drucker nicht vorhanden ist." @@ -4215,9 +4626,9 @@ msgstr "Nur bei Umfangsüberquerungen einziehen" msgid "Ooze prevention" msgstr "Vermeidung von Nachsickern (Ooze)" -#: src/libslic3r/Print.cpp:1193 -msgid "Ooze prevention is currently not supported with the wipe tower enabled." -msgstr "Die Sickervermeidung wird derzeit nicht unterstützt, wenn der Wischturm aktiviert ist." +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open a model" +msgstr "Modell öffnen" #: src/slic3r/GUI/MainFrame.cpp:339 msgid "Open a project file" @@ -4227,27 +4638,48 @@ msgstr "Öffne eine Projektdatei" msgid "Open CA certificate file" msgstr "Open CA Zertifikat Datei" -#: src/slic3r/GUI/UpdateDialogs.cpp:63 src/slic3r/GUI/UpdateDialogs.cpp:126 -msgid "Open changelog page" -msgstr "Änderungsseite öffnen" - -#: src/slic3r/GUI/UpdateDialogs.cpp:68 -msgid "Open download page" -msgstr "Downloadseite öffnen" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:105 msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" msgstr "Öffne Konfiguration aus Projekt STL/OBJ/AMF/3MF, lösche Druckbett" +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open STL/OBJ/AMF/3MF…\tCtrl+O" +msgstr "Öffne STL/OBJ/AMF/3MF…\tCtrl+O" + +#: src/slic3r/GUI/MainFrame.cpp:554 +#, c-format +msgid "Open the %s manual in your browser" +msgstr "Das %s-Handbuch in Ihrem Browser öffnen" + #: src/slic3r/GUI/MainFrame.cpp:551 -#, possible-c-format +#, c-format msgid "Open the %s website in your browser" msgstr "%s-Website in Ihrem Browser öffnen" +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Open the 3D cutting tool" +msgstr "3D-Schneidewerkzeug öffnen" + +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Open the object editor dialog" +msgstr "Objekteditor-Dialog öffnen" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Open the Prusa Edition releases page in your browser" +msgstr "Seite mit den Prusa Edition-Releases in Ihrem Browser öffnen" + #: src/slic3r/GUI/MainFrame.cpp:542 msgid "Open the Prusa3D drivers download page in your browser" msgstr "Download-Seite für die Prusa3D-Treiber in Ihrem Browser öffnen" +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Open the Slic3r manual in your browser" +msgstr "Slic3r-Handbuch in Ihrem Browser öffnen" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Open the Slic3r website in your browser" +msgstr "Slic3r-Website in Ihrem Browser öffnen" + #: src/slic3r/GUI/MainFrame.cpp:549 msgid "Open the software releases page in your browser" msgstr "Seite mit Programmversionen in Ihrem Browser öffnen" @@ -4256,10 +4688,6 @@ msgstr "Seite mit Programmversionen in Ihrem Browser öffnen" msgid "Optimize orientation" msgstr "Optimiere Ausrichtung" -#: src/slic3r/GUI/Plater.cpp:2643 -msgid "Optimize Rotation" -msgstr "Rotation optimieren" - #: src/slic3r/GUI/Plater.cpp:2994 msgid "Optimize the rotation of the object for better print results." msgstr "Optimiere die Rotation des Objekts für ein besseres Druckergebnis." @@ -4276,9 +4704,9 @@ msgstr "Optionen für Stützmaterial und Raft" msgid "Orientation found." msgstr "Ausrichtung gefunden." -#: src/slic3r/GUI/Plater.cpp:2768 -msgid "Orientation search canceled." -msgstr "Ausrichtungssuche abgebrochen." +#: src/slic3r/GUI/Plater.cpp:2185 +msgid "Orientation search canceled" +msgstr "Ausrichtungssuche abgebrochen" #: src/slic3r/GUI/BedShapeDialog.cpp:79 msgid "Origin" @@ -4292,6 +4720,10 @@ msgstr "Sonstige" msgid "Other layers" msgstr "Andere Schichten" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:252 +msgid "Other vendors" +msgstr "Andere Hersteller" + #: src/slic3r/GUI/ConfigWizard.cpp:438 msgid "Other Vendors" msgstr "Andere Hersteller" @@ -4344,25 +4776,9 @@ msgstr "Grundschicht (Pad)" msgid "Pad and Support" msgstr "Grundschicht und Stützen" -#: src/libslic3r/PrintConfig.cpp:2732 -msgid "Pad around object" -msgstr "Grundschicht um Objekt" - -#: src/libslic3r/PrintConfig.cpp:2731 -msgid "Pad object connector penetration" -msgstr "Objektgrundschicht Verbindungseindringtiefe" - -#: src/libslic3r/PrintConfig.cpp:2711 -msgid "Pad object connector stride" -msgstr "Objektgrundschicht Verbindungsschritte" - -#: src/libslic3r/PrintConfig.cpp:2721 -msgid "Pad object connector width" -msgstr "Objektgrundschicht Verbinderbreite" - -#: src/libslic3r/PrintConfig.cpp:2700 -msgid "Pad object gap" -msgstr "Grundschicht Objekt Abstand" +#: src/libslic3r/PrintConfig.cpp:2559 +msgid "Pad edge radius" +msgstr "Grundschicht Eckenradius" #: src/libslic3r/PrintConfig.cpp:2532 msgid "Pad wall height" @@ -4408,10 +4824,6 @@ msgstr "Aus Zwischenablage einfügen" msgid "Paste from clipboard" msgstr "Aus Zwischenablage einfügen" -#: src/slic3r/GUI/Plater.cpp:4772 -msgid "Paste From Clipboard" -msgstr "Aus Zwischenablage einfügen" - #: src/libslic3r/PrintConfig.cpp:1915 msgid "Pattern" msgstr "Muster" @@ -4451,18 +4863,34 @@ msgid "Perimeters" msgstr "Konturen" #: src/slic3r/GUI/ConfigWizard.cpp:440 -#, possible-c-format +#, c-format msgid "Pick another vendor supported by %s:" msgstr "Wählen Sie einen anderen von %s unterstützten Hersteller:" +#: src/slic3r/GUI/ConfigWizard.cpp:423 +msgid "Pick another vendor supported by Slic3r PE:" +msgstr "Wählen Sie einen anderen von Slic3r PE unterstützten Hersteller:" + #: src/libslic3r/PrintConfig.cpp:2430 msgid "Pillar widening factor" msgstr "Pfeilerverbreiterungsfaktor" +#: src/slic3r/GUI/Tab.cpp:3496 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "Der Nedelkopfdurchmesser sollte geringer als der Pfeiler sein." + #: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 msgid "Place on face" msgstr "Auf Fläche legen" +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 +msgid "Place on face [F]" +msgstr "Auf Fläche legen [F]" + +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Place one more copy of the selected object" +msgstr "Eine weitere Kopie des ausgewählten Objekts positionieren" + #: src/slic3r/GUI/MainFrame.cpp:161 msgid "Plater" msgstr "Druckplatte" @@ -4479,9 +4907,13 @@ msgstr "Bitte überprüfen und korrigieren Sie Ihre Objektliste." msgid "Please check your object list before preset changing." msgstr "Bitte überprüfen Sie Ihre Objektliste, bevor Sie die Voreinstellungen ändern." -#: src/slic3r/GUI/AboutDialog.cpp:39 src/slic3r/GUI/AboutDialog.cpp:286 -msgid "Portions copyright" -msgstr "Teile des Urheberrechts" +#: lib/Slic3r/GUI/Plater.pm:1897 +msgid "Please install the OpenGL modules to use this feature (see build instructions)." +msgstr "Bitte installieren Sie die OpenGL-Module, um diese Funktion nutzen zu können (siehe Build Anleitung)." + +#: src/slic3r/GUI/GUI_App.cpp:742 +msgid "Please, check your changes before." +msgstr "Bitte überprüfen Sie Ihre Änderungen vorher." #: src/libslic3r/PrintConfig.cpp:2235 msgid "Portrait" @@ -4537,31 +4969,29 @@ msgid "Preparing infill" msgstr "Infill wird vorbereitet" #: src/slic3r/GUI/Tab.cpp:2758 -#, possible-c-format +#, c-format msgid "Preset (%s)" msgstr "Voreinstellung (%s)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center" -msgstr "Drücken um das Abwahlrechteck zu aktivieren\noder um gewählte Objekte zu skalieren oder\num die eigene Mitte zu drehen" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:148 -msgid "Press to activate one direction scaling in Gizmo scale" -msgstr "Drücken um Eine-Richtungs-Skalierung im Skalierungsgizmo zu aktivieren" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 -#, possible-c-format -msgid "Press to activate selection rectangle\nor to snap by 5% in Gizmo scale\nor to snap by 1mm in Gizmo move" -msgstr "Drücken um Auswahlrechteck zu aktivieren\noder mit 5% bei der Gizmo Skalierung zu rasten\noder mit 1 mm bei der Gizmo Bewegung" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to scale selection to fit print volume\nin Gizmo scale" -msgstr "Drücken, um die Auswahl passend zum\nDruckvolumen in der Gizmo Skalierung anzupassen" +msgid "" +"Press to scale or rotate selected objects\n" +"around their own center" +msgstr "Drücken zum Skalieren oder Drehen ausgewählter Objekte um ihre eigene Mitte herum" #: src/slic3r/GUI/KBShortcutsDialog.cpp:127 msgid "Press to select multiple object or move multiple object with mouse" msgstr "Drücken zum Auswählen des mehrteiligen Objekts oder Bewegen des mehrteiligen Objekts mit der Maus" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +#, no-c-format +msgid "" +"Press to snap by 5% in Gizmo scale\n" +"or by 1mm in Gizmo move" +msgstr "" +"Drücken um mit 5% bei der Gizmo Skalierung\n" +"zu rasten oder mit 1 mm bei der Gizmo Bewegung" + #: src/slic3r/GUI/Tab.cpp:2288 msgid "Preview" msgstr "Vorschau" @@ -4619,10 +5049,6 @@ msgstr "Korrektur der Druckgeschwindigkeit" msgid "Print&er Settings Tab" msgstr "Druck&ereinstellungen" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1438 -msgid "Printable" -msgstr "Druckbar" - #: src/slic3r/GUI/Plater.cpp:685 msgid "Printer" msgstr "Drucker" @@ -4676,17 +5102,33 @@ msgstr "Druckerhersteller" msgid "Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current extruder (support_material_extruder == 0 or support_material_interface_extruder == 0), all nozzles have to be of the same diameter." msgstr "Der Druck erfolgt mit mehreren Extrudern mit unterschiedlichen Düsendurchmessern. Falls Stützen mit dem aktuellen Extruder gedruckt werden sollen (support_material_extruder == 0 oder support_material_interface_extruder == 0), müssen alle Druckdüsen den gleichen Durchmesser aufweisen." +#: lib/Slic3r/GUI/Plater.pm:324 +msgid "Print…" +msgstr "Drucken…" + +#: src/slic3r/GUI/MainFrame.cpp:704 +msgid "Processing " +msgstr "Berechnung " + #. TRN "Processing input_file_basename" #: src/slic3r/GUI/MainFrame.cpp:715 -#, possible-c-format +#, c-format msgid "Processing %s" msgstr "Berechne %s" +#: lib/Slic3r/GUI/Plater.pm:713 lib/Slic3r/GUI/Plater.pm:727 +msgid "Processing input file\n" +msgstr "Eingabe Datei wird verarbeitet\n" + #: src/slic3r/GUI/Plater.cpp:1600 -#, possible-c-format +#, c-format msgid "Processing input file %s\n" msgstr "Eingabe Datei %s wird verarbeitet\n" +#: src/libslic3r/SLA/SLASupportTree.cpp:2160 +msgid "Processing small holes" +msgstr "Bearbeite kleine Löcher" + #: src/libslic3r/PrintObject.cpp:110 msgid "Processing triangulated mesh" msgstr "Verarbeitung der dreieckigen Netze" @@ -4709,6 +5151,18 @@ msgstr "Fortschritt:" msgid "Prusa 3D &Drivers" msgstr "Prusa 3&D Treiber" +#: lib/Slic3r/GUI/MainFrame.pm:338 +msgid "Prusa 3D Drivers" +msgstr "Prusa 3D Treiber" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Prusa Edition &Releases" +msgstr "Prusa Edition &Releases" + +#: lib/Slic3r/GUI/MainFrame.pm:341 +msgid "Prusa Edition Releases" +msgstr "Prusa Edition Release" + #: src/slic3r/GUI/ConfigWizard.cpp:1109 msgid "Prusa FFF Technology Printers" msgstr "Prusa FFF Technologie Drucker" @@ -4717,19 +5171,18 @@ msgstr "Prusa FFF Technologie Drucker" msgid "Prusa MSLA Technology Printers" msgstr "Prusa MSLA Technologie Drucker" -#: src/slic3r/GUI/AboutDialog.cpp:255 -msgid "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community." -msgstr "PrusaSlicer basiert auf Slic3r von Alessandro Ranellucci und der RepRap Community." - -#: src/slic3r/GUI/GUI_App.cpp:297 -#, possible-c-format -msgid "PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \nwhile OpenGL version %s, render %s, vendor %s was detected." -msgstr "PrusaSlicer benötigt einen OpenGL 2.0-fähigen Grafiktreiber, um korrekt zu laufen, während die OpenGL-Version %s, Render %s, Hersteller %s erkannt wurde." - #: src/libslic3r/PrintConfig.cpp:2153 msgid "Purging after toolchange will 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 "Das Reinigen nach dem Werkzeugwechsel erfolgt innerhalb der Füllungen dieses Objekts. Dies reduziert die Abfallquote, kann aber aufgrund zusätzlicher Verfahrwege zu einer längeren Druckzeit führen." +#: xs/src/libslic3r/PrintConfig.cpp:1996 +msgid "Purging into infill" +msgstr "Infill zur Reinigung benutzen" + +#: xs/src/libslic3r/PrintConfig.cpp:2005 +msgid "Purging into objects" +msgstr "Druckobjekte zur Reinigung benutzen" + #: src/slic3r/GUI/Plater.cpp:456 msgid "Purging volumes" msgstr "Reinigungsvolumen" @@ -4742,6 +5195,10 @@ msgstr "Reinigungsvolumen - Lade-/Entladevolumen" msgid "Purging volumes - matrix" msgstr "Reinigungsvolumen - Matrix" +#: lib/Slic3r/GUI/MainFrame.pm:232 +msgid "Q&uick Slice…\tCtrl+U" +msgstr "Q&uick Slice…\tCtrl+U" + #: src/slic3r/GUI/Tab.cpp:1019 msgid "Quality (slower slicing)" msgstr "Qualität (langsameres Slicen)" @@ -4749,23 +5206,39 @@ msgstr "Qualität (langsameres Slicen)" #: src/slic3r/GUI/GUI_ObjectList.cpp:854 src/slic3r/GUI/GUI_ObjectList.cpp:1139 #: src/slic3r/GUI/GUI_ObjectList.cpp:1145 #: src/slic3r/GUI/GUI_ObjectList.cpp:1377 -#, possible-c-format +#, c-format msgid "Quick Add Settings (%s)" msgstr "Schnelles Einstellen (%s)" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +msgid "Quick slice" +msgstr "Quick Slice" + #: src/slic3r/GUI/MainFrame.cpp:383 msgid "Quick Slice" msgstr "Quick Slice" +#: lib/Slic3r/GUI/MainFrame.pm:238 +msgid "Quick Slice and Save &As…\tCtrl+Alt+U" +msgstr "Quick Slice und Speichern &unter…\tCtrl+Alt+U" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 +msgid "Quick slice and Save as" +msgstr "Quick Slice und Speichern unter" + #: src/slic3r/GUI/MainFrame.cpp:389 msgid "Quick Slice and Save As" msgstr "Quick Slice und Speichern unter" #: src/slic3r/GUI/MainFrame.cpp:409 -#, possible-c-format +#, c-format msgid "Quit %s" msgstr "%s verlassen" +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "Quit Slic3r" +msgstr "Slic3r beenden" + #: src/libslic3r/PrintConfig.cpp:479 msgid "Radius" msgstr "Radius" @@ -4778,13 +5251,23 @@ msgstr "Raft" msgid "Raft layers" msgstr "Raft Schichten" +#: xs/src/slic3r/GUI/Tab.cpp:1299 +msgid "Ramming" +msgstr "Rammen" + #: src/slic3r/GUI/WipeTowerDialog.cpp:14 msgid "Ramming customization" msgstr "Einstellungen für das Rammen" #: src/slic3r/GUI/WipeTowerDialog.cpp:40 -msgid "Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n\nThis is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." -msgstr "Rammen steht für die beschleunigte Extrusion unmittelbar vor einem Werkzeugwechsel in einem MM-Drucker mit einem Extruder. Der Zweck ist, die Spitze des entladenen Filaments geeignet zu formen, damit es das Laden des neuen Filaments nicht behindert und später selber wieder eingeführt werden kann. Diese Phase ist wichtig und verschiedene Materialien können unterschiedliche Extrusionsgeschwindigkeiten benötigen, um die richtige Form zu erzielen. Aus diesem Grund können die Extrusionsraten für das Rammen angepasst werden.\n\nDies ist eine Einstellung für fortgeschrittene Benutzer. Falsche Anpassungen werden sehr wahrscheinlich zu Verstopfungen führen oder dazu, dass die Zähne der Extruderwelle ins Filament einschneiden usw." +msgid "" +"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n" +"\n" +"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." +msgstr "" +"Rammen steht für die beschleunigte Extrusion unmittelbar vor einem Werkzeugwechsel in einem MM-Drucker mit einem Extruder. Der Zweck ist, die Spitze des entladenen Filaments geeignet zu formen, damit es das Laden des neuen Filaments nicht behindert und später selber wieder eingeführt werden kann. Diese Phase ist wichtig und verschiedene Materialien können unterschiedliche Extrusionsgeschwindigkeiten benötigen, um die richtige Form zu erzielen. Aus diesem Grund können die Extrusionsraten für das Rammen angepasst werden.\n" +"\n" +"Dies ist eine Einstellung für fortgeschrittene Benutzer. Falsche Anpassungen werden sehr wahrscheinlich zu Verstopfungen führen oder dazu, dass die Zähne der Extruderwelle ins Filament einschneiden usw." #: src/slic3r/GUI/WipeTowerDialog.cpp:90 msgid "Ramming line spacing" @@ -4806,10 +5289,6 @@ msgstr "Einstellungen für das Rammen" msgid "Random" msgstr "Zufällig" -#: src/slic3r/GUI/wxExtensions.cpp:486 -msgid "Range" -msgstr "Bereich" - #: src/libslic3r/SLAPrint.cpp:72 msgid "Rasterizing layers" msgstr "Schichten werden gerastert" @@ -4834,12 +5313,13 @@ msgstr "Hinten" msgid "Rear View" msgstr "Ansicht von Hinten" -#: src/slic3r/GUI/MainFrame.cpp:401 -msgid "Recent projects" -msgstr "Letzte Projekte" +#: src/slic3r/GUI/PresetHints.cpp:264 +#, c-format +msgid "Recommended object thin wall thickness for layer height %.2f and " +msgstr "Empfohlene Stärke der dünnen Wände des Objekts für die Schichthöhe %.2f und " #: src/slic3r/GUI/PresetHints.cpp:262 -#, possible-c-format +#, c-format msgid "Recommended object thin wall thickness for layer height %.2f and" msgstr "Empfohlene Stärke der dünnen Wände des Objekts für die Schichthöhe %.2f und" @@ -4864,22 +5344,6 @@ msgstr "Geradlinig" msgid "Rectilinear grid" msgstr "Rechtwinkliges Gitter" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3639 -#: src/slic3r/GUI/MainFrame.cpp:562 -msgid "Redo" -msgstr "Redo" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Redo %1$d Action" -msgid_plural "Redo %1$d Actions" -msgstr[0] "Redo %1$d Aktion" -msgstr[1] "Redo %1$d Aktionen" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Redo History" -msgstr "Redo Verlauf" - #: src/slic3r/GUI/Tab.cpp:1037 msgid "Reducing printing time" msgstr "Druckzeit wird verkürzt" @@ -4914,16 +5378,16 @@ msgid "Remove instance" msgstr "Kopie entfernen" #: src/slic3r/GUI/KBShortcutsDialog.cpp:125 -msgid "Remove Instance of the selected object" +msgid "Remove Instance from selected object" msgstr "Entfernt Kopie des gewählten Objekt" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:153 -msgid "Remove layer range" -msgstr "Schichtbereich entfernen" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 +msgid "Remove Instance of the selected object" +msgstr "Entfernt Kopie des gewählten Objekt" -#: src/slic3r/GUI/Plater.cpp:3518 -msgid "Remove one instance of the selected object" -msgstr "Entferne eine Kopie des gewählten Objekt" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Remove one copy of the selected object" +msgstr "Eine Kopie des ausgewählten Objekts entfernen" #: src/slic3r/GUI/GUI_ObjectSettings.cpp:83 msgid "Remove parameter" @@ -4940,7 +5404,7 @@ msgstr "Punkt von Auswahl entfernen" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:855 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1237 msgid "Remove selected points" -msgstr "Ausgewählte Punkte entfernen" +msgstr "Auswählte Punkte entfernen" #: src/slic3r/GUI/Plater.cpp:2891 src/slic3r/GUI/Plater.cpp:2909 msgid "Remove the selected object" @@ -4954,14 +5418,6 @@ msgstr "Benutzerprofile entfernen - von Grund auf neu installieren (eine Momenta msgid "Rename" msgstr "Umbenennen" -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Object" -msgstr "Objekt umbenennen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Sub-object" -msgstr "Subobjekt umbenennen" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2709 msgid "Renaming" msgstr "Am Umbenennen" @@ -4978,6 +5434,10 @@ msgstr "Rendern mit einem Software-Renderer. Der mitgelieferte MESA-Software-Ren msgid "Repair" msgstr "Reparieren" +#: lib/Slic3r/GUI/MainFrame.pm:258 +msgid "Repair STL file…" +msgstr "STL-Datei reparieren…" + #: src/slic3r/Utils/FixModelByWin10.cpp:387 msgid "Repaired 3MF file contains more than one object" msgstr "Die reparierte 3MF Datei enhält mehr als ein Objekt" @@ -5010,23 +5470,31 @@ msgstr "Letzten Quick Slice wiederholen" msgid "Report an I&ssue" msgstr "E&in Problem melden" +#: lib/Slic3r/GUI/MainFrame.pm:361 +msgid "Report an Issue" +msgstr "Einen Fehler melden" + #: src/slic3r/GUI/MainFrame.cpp:561 -#, possible-c-format +#, c-format msgid "Report an issue on %s" msgstr "Einen Problem melden über %s" +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an issue on the Slic3r Prusa Edition" +msgstr "Einen Fehler in der Slic3r Prusa Edition melden" + #: src/slic3r/Utils/PresetUpdater.cpp:590 -#, possible-c-format +#, c-format msgid "requires max. %s" msgstr "benötigt max. %s" #: src/slic3r/Utils/PresetUpdater.cpp:588 -#, possible-c-format +#, c-format msgid "requires min. %s" msgstr "benötigt min. %s" #: src/slic3r/Utils/PresetUpdater.cpp:583 -#, possible-c-format +#, c-format msgid "requires min. %s and max. %s" msgstr "benötigt min. %s und max. %s" @@ -5046,27 +5514,6 @@ msgstr "Beschnittebene zurücksetzen" msgid "Reset direction" msgstr "Richtung zurücksetzen" -#: src/slic3r/GUI/Plater.cpp:2603 -msgid "Reset Project" -msgstr "Projekt zurücksetzen" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:303 -msgid "Reset rotation" -msgstr "Rotation zurücksetzen" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:328 -msgid "Reset Rotation" -msgstr "Rotation zurücksetzen" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:285 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:290 -msgid "Reset scale" -msgstr "Skalierung zurücksetzen" - -#: src/slic3r/GUI/Tab.cpp:2584 -msgid "Reset to Filament Color" -msgstr "Zurücksetzen auf Filamentfarbe" - #: src/libslic3r/PrintConfig.cpp:1441 msgid "Resolution" msgstr "Auflösung" @@ -5111,10 +5558,6 @@ msgstr "Einzüge" msgid "Right" msgstr "Rechts" -#: src/slic3r/GUI/GUI_ObjectList.cpp:381 -msgid "Right button click the icon to change the object printable property" -msgstr "Klicken Sie mit der rechten Maustaste auf das Symbol, um die Druckbar-Eigenschaft des Objekts zu ändern" - #: src/slic3r/GUI/GUI_ObjectList.cpp:279 msgid "Right button click the icon to change the object settings" msgstr "Klicken Sie mit der rechten Maustaste auf das Symbol, um die Objekteinstellungen zu ändern" @@ -5127,6 +5570,10 @@ msgstr "Klicken Sie mit der rechten Maustaste auf das Symbol, um die STL über N msgid "Right click" msgstr "Rechter Mausklick" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:598 +msgid "Right mouse click - remove point" +msgstr "Rechter Mausklick - Punkt entfernen" + #: src/slic3r/GUI/MainFrame.cpp:528 msgid "Right View" msgstr "Ansicht von rechts" @@ -5137,6 +5584,18 @@ msgstr "Ansicht von rechts" msgid "Rotate" msgstr "Drehen" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate 45° clockwise" +msgstr "45° im Uhrzeigersinn drehen" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate 45° counter-clockwise" +msgstr "45° im Gegenuhrzeigersinn drehen" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Rotate around " +msgstr "Rotiere um" + #: src/libslic3r/PrintConfig.cpp:3067 msgid "Rotate around X" msgstr "Rotiere um X" @@ -5150,6 +5609,34 @@ msgstr "Rotiere um Y" msgid "Rotate lower part upwards" msgstr "Unteren Teil umdrehen" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate the selected object by 45° clockwise" +msgstr "Drehen Sie das ausgewählte Objekt um 45° mit dem Uhrzeiger" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate the selected object by 45° counter-clockwise" +msgstr "Drehen Sie das ausgewählte Objekt um 45° gegen den Uhrzeiger" + +#: lib/Slic3r/GUI/Plater.pm:2236 +msgid "Rotate the selected object by an arbitrary angle" +msgstr "Drehen Sie das ausgewählte Objekt um einen beliebigen Winkel" + +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Rotate the selected object by an arbitrary angle around X axis" +msgstr "Drehen Sie das ausgewählte Objekt um einen beliebigen Winkel um die X-Achse" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Rotate the selected object by an arbitrary angle around Y axis" +msgstr "Drehen Sie das ausgewählte Objekt um einen beliebigen Winkel um die Y-Achse" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Rotate the selected object by an arbitrary angle around Z axis" +msgstr "Drehen Sie das ausgewählte Objekt um einen beliebigen Winkel um die Z-Achse" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +msgid "Rotate [R]" +msgstr "Rotieren [R]" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:151 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:194 msgid "Rotation" @@ -5171,8 +5658,16 @@ msgstr "Rotationswinkel um die Y-Achse in Grad." msgid "Rotation angle around the Z axis in degrees." msgstr "Rotationswinkel um die Z-Achse in Grad." +#: src/libslic3r/SLA/SLASupportTree.cpp:2158 +msgid "Routing supports to model surface" +msgstr "Führe die Stützstrukturen zur Modelloberfläche" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2157 +msgid "Routing to ground" +msgstr "Route zum Boden" + #: src/slic3r/GUI/ConfigWizard.cpp:298 src/slic3r/GUI/GUI_App.cpp:658 -#, possible-c-format +#, c-format msgid "Run %s" msgstr "%s ausführen" @@ -5189,22 +5684,18 @@ msgstr "Post-Prozess Scripts werden ausgeführt" msgid "s" msgstr "s" -#: src/slic3r/GUI/MainFrame.cpp:466 src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end G-code" -msgstr "S&ende G-code" - -#: src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end to print" -msgstr "Zum Drucken s&enden" +#: src/slic3r/GUI/MainFrame.cpp:677 src/slic3r/GUI/Tab.cpp:3239 +msgid "Save " +msgstr "Speichern " #. TRN Preset #: src/slic3r/GUI/Tab.cpp:3264 -#, possible-c-format +#, c-format msgid "Save %s as:" msgstr "Speichere %s als:" #: src/slic3r/GUI/MainFrame.cpp:686 -#, possible-c-format +#, c-format msgid "Save %s file as:" msgstr "Speichere %s Datei als:" @@ -5224,9 +5715,13 @@ msgstr "Konfiguration speichern unter:" msgid "Save configuration to the specified file." msgstr "Sichert die Konfiguration in der angegebenen Datei." +#: src/slic3r/GUI/Tab.cpp:130 +msgid "Save current " +msgstr "Aktuell sichern " + #. TRN "Save current Settings" #: src/slic3r/GUI/Tab.cpp:133 -#, possible-c-format +#, c-format msgid "Save current %s" msgstr "Speichere aktuelle %s" @@ -5291,29 +5786,53 @@ msgstr "Skalieren" msgid "Scale (%)" msgstr "Skaliere (%)" +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +msgid "Scale along " +msgstr "Skalieren entlang " + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:195 msgid "Scale factors" msgstr "Skalierungsfaktoren" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale the selected object to fit the print volume" -msgstr "Skalieren des ausgewählten Objekts so, dass es in das Druckvolumen passt" +#: lib/Slic3r/GUI/Plater.pm:2262 lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale the selected object along a single axis" +msgstr "Ausgewähltes Objekt entlang einer einzelnen Achse skalieren" + +#: lib/Slic3r/GUI/Plater.pm:2267 lib/Slic3r/GUI/Plater.pm:2283 +msgid "Scale the selected object along the X axis" +msgstr "Ausgewähltes Objekt entlang der X-Achse skalieren" + +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Scale the selected object along the XYZ axes" +msgstr "Ausgewähltes Objekt entlang der XYZ-Achsen skalieren" + +#: lib/Slic3r/GUI/Plater.pm:2270 lib/Slic3r/GUI/Plater.pm:2286 +msgid "Scale the selected object along the Y axis" +msgstr "Ausgewähltes Objekt entlang der Y-Achse skalieren" + +#: lib/Slic3r/GUI/Plater.pm:2273 lib/Slic3r/GUI/Plater.pm:2289 +msgid "Scale the selected object along the Z axis" +msgstr "Ausgewähltes Objekt entlang der Z-Achse skalieren" #: src/libslic3r/PrintConfig.cpp:3086 msgid "Scale to Fit" msgstr "Passend skalieren" -#: src/slic3r/GUI/Selection.cpp:947 -msgid "Scale To Fit" -msgstr "Passend skalieren" - #: src/libslic3r/PrintConfig.cpp:3087 msgid "Scale to fit the given volume." msgstr "Auf das gegebene Volumen skalieren." -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale to print volume" -msgstr "Auf Druckvolumen skalieren" +#: lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale to size" +msgstr "Auf Größe skalieren" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:51 +msgid "Scale [S]" +msgstr "Skalieren [S]" + +#: lib/Slic3r/GUI/Plater.pm:260 lib/Slic3r/GUI/Plater.pm:276 +msgid "Scale…" +msgstr "Skalieren…" #: src/libslic3r/PrintConfig.cpp:3078 msgid "Scaling factor or percentage." @@ -5343,6 +5862,22 @@ msgstr "Es wird nach Geräten gesucht" msgid "Searching for optimal orientation" msgstr "Suche nach der optimalen Orientierung" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Select &Controller Tab\tCtrl+T" +msgstr "Reiter \"&Controller\" auswählen\tCtrl+T" + +#: lib/Slic3r/GUI/MainFrame.pm:311 +msgid "Select &Filament Settings Tab\tCtrl+3" +msgstr "Reiter \"&Filamenteinstellungen\" auswählen\tCtrl+3" + +#: lib/Slic3r/GUI/MainFrame.pm:294 +msgid "Select &Plater Tab\tCtrl+1" +msgstr "Reiter \"Druck&platte\" auswählen\tCtrl+1" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:108 +msgid "Select all" +msgstr "Alles auswählen" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:136 msgid "Select All objects" msgstr "Alle Objekte auswählen" @@ -5379,10 +5914,22 @@ msgstr "Wählen Sie die Extruder Nummer:" msgid "Select Filament Settings Tab" msgstr "Wählt Filamenteinstellungsreiter" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 +msgid "Select multiple object/Move multiple object" +msgstr "Wähle/Bewege mehrere Objekte" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1251 msgid "Select new extruder for the object/part" msgstr "Wählt einen anderen Extruder für das Objekte / Teil" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:109 +msgid "Select none" +msgstr "Auswahl aufheben" + +#: lib/Slic3r/GUI/MainFrame.pm:308 +msgid "Select P&rint Settings Tab\tCtrl+2" +msgstr "Reiter \"D&ruckeinstellungen\" auswählen\tCtrl+2" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:114 msgid "Select Plater Tab" msgstr "Wählt Druckplattenreiter" @@ -5391,6 +5938,10 @@ msgstr "Wählt Druckplattenreiter" msgid "Select Print Settings Tab" msgstr "Wählt Druckeinstellungsreiter" +#: lib/Slic3r/GUI/MainFrame.pm:314 +msgid "Select Print&er Settings Tab\tCtrl+4" +msgstr "Reiter \"Druck&ereinstellungen\" auswählen\tCtrl+4" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:118 msgid "Select Printer Settings Tab" msgstr "Wählt Druckereinstellungsreiter" @@ -5415,70 +5966,14 @@ msgstr "Wählen Sie die Drucker aus, die mit diesem Profil kompatibel sind." msgid "Select the STL file to repair:" msgstr "Geben Sie die STL-Datei an, die repariert werden soll:" -#: src/slic3r/GUI/Preferences.cpp:207 -msgid "Select toolbar icon size in respect to the default one." -msgstr "Wählen Sie die Symbolgröße der Symbolleiste in Bezug auf die Standardgröße." - #: src/slic3r/GUI/GUI_ObjectList.cpp:2545 msgid "Select type of part" msgstr "Wählen Sie den Typ des Teils" -#: src/slic3r/GUI/Plater.cpp:606 -msgid "Select what kind of pad do you need" -msgstr "Wählen Sie aus, welche Art von Grundschicht Sie benötigen" - #: src/slic3r/GUI/Plater.cpp:421 msgid "Select what kind of support do you need" msgstr "Wählen Sie aus, welche Art von Unterstützung Sie benötigen" -#: src/slic3r/GUI/Selection.cpp:146 -msgid "Selection-Add" -msgstr "Auswahl hinzufügen" - -#: src/slic3r/GUI/Selection.cpp:384 -msgid "Selection-Add All" -msgstr "Auswahl Alles hinzufügen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2875 -msgid "Selection-Add from list" -msgstr "Auswahl aus Liste hinzufügen" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5623 -msgid "Selection-Add from rectangle" -msgstr "Auswahl über Rechteck hinzufügen" - -#: src/slic3r/GUI/Selection.cpp:256 -msgid "Selection-Add Instance" -msgstr "Auswahl Kopie hinzufügen" - -#: src/slic3r/GUI/Selection.cpp:219 -msgid "Selection-Add Object" -msgstr "Auswahl Objekt hinzufügen" - -#: src/slic3r/GUI/Selection.cpp:187 -msgid "Selection-Remove" -msgstr "Auswahl entfernen" - -#: src/slic3r/GUI/Selection.cpp:410 -msgid "Selection-Remove All" -msgstr "Auswahl Alles entfernen" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2867 -msgid "Selection-Remove from list" -msgstr "Auswahl aus Liste entfernen" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5642 -msgid "Selection-Remove from rectangle" -msgstr "Auswahl über Rechteck entfernen" - -#: src/slic3r/GUI/Selection.cpp:275 -msgid "Selection-Remove Instance" -msgstr "Auswahl Kopie entfernen" - -#: src/slic3r/GUI/Selection.cpp:238 -msgid "Selection-Remove Object" -msgstr "Auswahl Objekt entfernen" - #: src/slic3r/GUI/MainFrame.cpp:444 msgid "Selects all objects" msgstr "Alle Objekte auswählen" @@ -5487,18 +5982,22 @@ msgstr "Alle Objekte auswählen" msgid "Send G-code" msgstr "Sende G-code" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Send G-Code to printer" +msgstr "Sende G-Code zum Drucker" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Send G-Code to printer host" msgstr "Sende G-Code zum Druckerhost" -#: src/slic3r/GUI/MainFrame.cpp:466 -msgid "Send to print current plate as G-code" -msgstr "Sende die aktuelle Plattenbelegung als G-Code zum Drucken" - #: src/slic3r/GUI/Plater.cpp:731 src/slic3r/GUI/Plater.cpp:3822 msgid "Send to printer" msgstr "Zum Drucker senden" +#: xs/src/slic3r/Utils/OctoPrint.cpp:111 lib/Slic3r/GUI/Plater.pm:1558 +msgid "Sending G-code file to the OctoPrint server..." +msgstr "Datei mit G-Code zum OctoPrint-Server senden…" + #: src/slic3r/GUI/Tab.cpp:1169 msgid "Sequential printing" msgstr "Sequentielles Drucken" @@ -5541,38 +6040,17 @@ msgstr "Extruder für die gewählten Elemente wählen" msgid "Set lower thumb to current slider thumb" msgstr "Stelle den unteren Regler auf den aktuellen Schieberegler" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:245 -msgid "Set Mirror" -msgstr "Spiegel setzen" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Set number of instances" -msgstr "Setze Anzahl der Kopien" - -#: src/slic3r/GUI/Plater.cpp:4163 -#, possible-c-format -msgid "Set numbers of copies to %d" -msgstr "Setze Anzahl der Kopien auf %d" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:746 -msgid "Set Orientation" -msgstr "Orientierung setzen" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Set number of copies" +msgstr "Anzahl der Kopien angeben" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:715 -msgid "Set Position" -msgstr "Position setzen" +#: lib/Slic3r/GUI/Plater.pm:2224 +msgid "Set number of copies…" +msgstr "Anzahl der Kopien angeben…" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Printable" -msgstr "Setze Druckbar" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Printable Instance" -msgstr "Setze druckbare Kopie" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:811 -msgid "Set Scale" -msgstr "Setze Skalierung" +#: src/libslic3r/PrintConfig.cpp:1053 +msgid "Set silent mode for the G-code flavor" +msgstr "Leisen Modus für den G-Code Typ festlegen" #: src/libslic3r/PrintConfig.cpp:2228 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." @@ -5626,14 +6104,6 @@ msgstr "Stellen Sie hier die maximale Höhe ein, die Ihr Extruder beim Drucken e msgid "Set this to the vertical distance between your nozzle tip and (usually) the X carriage rods. In other words, this is the height of the clearance cylinder around your extruder, and it represents the maximum depth the extruder can peek before colliding with other printed objects." msgstr "Stellen Sie dies auf den vertikalen Abstand zwischen Ihrer Düsenspitze und (in der Regel) den X-Wagenstangen ein. Mit anderen Worten, das ist die Höhe des Abstandszylinders um Ihren Extruder herum und stellt die maximale Tiefe dar, die der Extruder vor der Kollision mit anderen Druckobjekten sehen kann." -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Unprintable" -msgstr "Setze Undruckbar" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Unprintable Instance" -msgstr "Setze undruckbare Kopie" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:184 msgid "Set upper thumb to current slider thumb" msgstr "Stelle den oberen Regler auf den aktuellen Schieberegler" @@ -5642,9 +6112,10 @@ msgstr "Stelle den oberen Regler auf den aktuellen Schieberegler" msgid "Settings" msgstr "Einstellungen" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Settings for height range" -msgstr "Einstellungen für Höhenbereich" +#: lib/Slic3r/GUI/Plater.pm:264 lib/Slic3r/GUI/Plater.pm:279 +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Settings…" +msgstr "Einstellungen…" #: src/slic3r/GUI/BedShapeDialog.cpp:60 msgid "Shape" @@ -5654,6 +6125,10 @@ msgstr "Form" msgid "Shells" msgstr "Konturhüllen" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:599 +msgid "Shift + Left (+ drag) - select point(s)" +msgstr "Shift + Links (+ Ziehen) - Punkt(e) auswählen" + #: src/slic3r/GUI/GUI_Preview.cpp:221 msgid "Show" msgstr "Anzeigen" @@ -5722,6 +6197,10 @@ msgstr "Druckplatte anzeigen" msgid "Show the print settings" msgstr "Druckeinstellungen anzeigen" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Show the printer controller" +msgstr "Drucker-Controller anzeigen" + #: src/slic3r/GUI/MainFrame.cpp:483 msgid "Show the printer settings" msgstr "Druckereinstellungen anzeigen" @@ -5734,9 +6213,13 @@ msgstr "Diese Hilfe zeigen." msgid "Show user configuration folder (datadir)" msgstr "Zeige User Konfiguration Ordner (datadir)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 -msgid "Show/Hide (L)egend" -msgstr "Zeige/Verberge (L)egende" +#: src/slic3r/GUI/Tab.cpp:2157 +msgid "Silent" +msgstr "Leise" + +#: src/slic3r/GUI/Plater.cpp:1077 +msgid "silent mode" +msgstr "Leiser Modus" #: src/slic3r/GUI/GUI_App.cpp:674 src/slic3r/GUI/wxExtensions.cpp:2459 msgid "Simple" @@ -5754,10 +6237,6 @@ msgstr "Einzelner Extruder MM Setup" msgid "Single Extruder Multi Material" msgstr "Einzelner Extruder mit Multi-Material" -#: src/slic3r/GUI/Tab.cpp:2023 -msgid "Single Extruder Multi Material is selected, \nand all extruders must have the same diameter.\nDo you want to change the diameter for all extruders to first extruder nozzle diameter value?" -msgstr "Einzel-Extruder Multi-Material ist ausgewählt, \nund alle Extruder müssen den gleichen Durchmesser haben.\nMöchten Sie den Durchmesser für alle Extruder auf den Wert des ersten Extruderdüsendurchmessers ändern?" - #: src/slic3r/GUI/Tab.cpp:2240 msgid "Single extruder multimaterial parameters" msgstr "Einzelner Extruder Multimaterial Parameter" @@ -5797,14 +6276,6 @@ msgstr "Schleifen für die Schürze" msgid "SLA gizmo keyboard shortcuts" msgstr "SLA Gizmo Tastaturkürzel" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1150 -msgid "SLA gizmo turned off" -msgstr "SLA Gizmo ausgeschaltet" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1115 -msgid "SLA gizmo turned on" -msgstr "SLA Gizmo eingeschaltet" - #: src/slic3r/GUI/Plater.cpp:684 src/slic3r/GUI/Preset.cpp:1277 msgid "SLA material" msgstr "SLA Material" @@ -5825,6 +6296,10 @@ msgstr "SLA Druckeinstellungen" msgid "SLA Support Points" msgstr "SLA Stützpunkte" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:995 +msgid "SLA Support Points [L]" +msgstr "SLA Stützpunkte [L]" + #: src/slic3r/GUI/GLCanvas3D.cpp:722 msgid "SLA supports outside the print area were detected" msgstr "SLA Stützstrukturen außerhalb des Druckraums entdeckt" @@ -5833,6 +6308,22 @@ msgstr "SLA Stützstrukturen außerhalb des Druckraums entdeckt" msgid "Slab" msgstr "Slab" +#: src/slic3r/GUI/Tab.hpp:389 +msgid "sla_material" +msgstr "sla_material" + +#: src/slic3r/GUI/Tab.hpp:403 +msgid "sla_print" +msgstr "sla_print" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Slic3r &Manual" +msgstr "Slic3r &Handbuch" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Slic3r &Website" +msgstr "Slic3r &Website" + #: src/libslic3r/PrintConfig.cpp:1268 msgid "Slic3r can upload G-code files to a printer host. This field must contain the kind of the host." msgstr "Slic3r kann G-Code Dateien auf einen Drucker-Host hochladen. Dieses Feld sollte den Typ des Hosts enthalten." @@ -5845,10 +6336,67 @@ msgstr "Slic3r kann G-Code Dateien zu einem Druckerhost hochladen. Dieses Feld s msgid "Slic3r can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance." msgstr "Slic3r kann G-Code Dateien auf einen Drucker-Host hochladen. Dieses Feld sollte den Hostnamen, die IP-Adresse oder die URL der Drucker-Hostinstanz enthalten." +#: xs/src/libslic3r/PrintConfig.cpp:1110 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the API Key required for authentication." +msgstr "Slic3r kann G-Code Dateien zu OctoPrint hochladen. Dieses Feld sollte den API-Schlüssel enthalten, der für die Authentifizierung erforderlich ist." + +#: xs/src/libslic3r/PrintConfig.cpp:1124 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the hostname, IP address or URL of the OctoPrint instance." +msgstr "Slic3r kann G-Code Dateien zu OctoPrint hochladen. Dieses Feld sollte den Hostnamen, die IP-Adresse oder die URL des OctoPrint-Servers enthalten." + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r configuration is incompatible" +msgstr "Slic3r Konfiguration ist nicht kompatibel" + +#: lib/Slic3r/GUI/Plater.pm:1021 +msgid "Slic3r Error" +msgstr "Slic3r Fehler" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r error" +msgstr "Slic3r Fehler" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r has encountered an error" +msgstr "Slic3r ist auf einen Fehler gestoßen" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r incompatibility" +msgstr "Slic3r-Inkompatibilität" + +#: src/slic3r/GUI/UpdateDialogs.cpp:168 +#, c-format +msgid "" +"Slic3r PE now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"Slic3r PE verwendet nun eine aktualisierte Konfigurationsstruktur.\n" +"\n" +"Sogenannte 'Systemeinstellungen' wurden eingeführt; diese enthalten die eingebauten Standardeinstellungen für verschiedene Drucker. Diese Systemeinstellungen können nicht verändert werden. Stattdessen können Benutzer nun ihre eigenen Voreinstellungen erstellen, die Werte von einer der Systemeinstellungen übernehmen.\n" +"Eine übernehmende Voreinstellung kann entweder einen bestimmten Wert von ihrem Vorbild übernehmen, oder ihn mit einem eigenen Wert überschreiben.\n" +"\n" +"Bitte fahren Sie fort mit '%s'. Dies folgt nun, um die neuen Einstellungen einzurichten sowie auszuwählen, ob Einstellungen automatisch aktualisiert werden dürfen." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 +msgid "Slic3r Prusa Edition - Keyboard Shortcuts" +msgstr "Slic3r Prusa Edition - Tastaturkürzel" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "Slic3r Prusa Edition - System Information" +msgstr "Slic3r Prusa Edition - System Informationen" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 msgid "slic3r version" msgstr "Slic3r Version" +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Slic3r View Mode" +msgstr "Slic3r Anzeigemodus" + #: src/libslic3r/PrintConfig.cpp:1234 msgid "Slic3r will not scale speed down below this speed." msgstr "Slic3r wird die Geschwindigkeit nicht unterhalb dieser Geschwindigkeit skalieren." @@ -5865,6 +6413,10 @@ msgstr "Datei zu G-Code slicen" msgid "Slice a file into a G-code, save as" msgstr "Datei zu G-Code slicen, speichern als" +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice file to a multi-layer SVG" +msgstr "Datei zu einem Mehrebenen-SVG slicen" + #: src/libslic3r/PrintConfig.cpp:71 msgid "Slice gap closing radius" msgstr "Slice Lückenschlussradius" @@ -5886,6 +6438,10 @@ msgstr "Modell slicen und Werkzeugwege als G-Code exportieren." msgid "Slice the model as FFF or SLA based on the printer_technology configuration value." msgstr "Slice das Modell als FFF oder SLA basierend auf dem Konfigurationswert von printer_technology." +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice to SV&G…\tCtrl+G" +msgstr "Slice zu SV&G…\tCtrl+G" + #: src/slic3r/GUI/Plater.cpp:193 msgid "Sliced Info" msgstr "Slice-Info" @@ -5896,6 +6452,10 @@ msgstr "Slice-Info" msgid "Slicing" msgstr "Slice" +#: lib/Slic3r/GUI/Plater.pm:1391 +msgid "Slicing cancelled" +msgstr "Der Slice wurde abgebrochen" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:91 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:109 msgid "Slicing complete" @@ -5909,9 +6469,10 @@ msgstr "Der Slice ist beendet" msgid "Slicing Done!" msgstr "Der Slice ist beendet!" -#: src/libslic3r/SLAPrint.cpp:759 -msgid "Slicing had to be stopped due to an internal error: Inconsistent slice index." -msgstr "Das Slicen wurde wegen eines internen Fehlers gestoppt: Defekter Sliceindex." +#. TRN To be shown at the status bar on SLA slicing error. +#: src/libslic3r/SLAPrint.cpp:709 +msgid "Slicing had to be stopped due to an internal error." +msgstr "Das Slicen wurde wegen eines internen Fehlers gestoppt." #: src/libslic3r/SLAPrint.cpp:55 msgid "Slicing model" @@ -5921,6 +6482,10 @@ msgstr "Slice das Modell" msgid "Slicing supports" msgstr "Slice Stützstrukturen" +#: lib/Slic3r/GUI/MainFrame.pm:483 +msgid "Slicing…" +msgstr "Der Slice wird berechnet…" + #: src/libslic3r/PrintConfig.cpp:2249 msgid "Slow" msgstr "Langsam" @@ -5970,6 +6535,10 @@ msgstr "Massives Infill Flächen Schwellwert" msgid "Solid layers" msgstr "Kompakte Schichten" +#: src/libslic3r/PrintConfig.cpp:1832 +msgid "soluble" +msgstr "löslich" + #: src/libslic3r/PrintConfig.cpp:711 msgid "Soluble material" msgstr "Lösliches Material" @@ -5978,9 +6547,9 @@ msgstr "Lösliches Material" msgid "Soluble material is most likely used for a soluble support." msgstr "Lösliches Material wird meistens für lösliche Stützen verwendet." -#: src/libslic3r/PrintConfig.cpp:914 -msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any extrusion value at all." -msgstr "Einige G/M-Code Befehle, einschließlich Temperaturregelung und andere, sind nicht universell einsetzbar. Stellen Sie diese Option auf die Firmware Ihres Druckers ein, um eine kompatible Ausgabe zu erhalten. Der Zusatz \"No Extrusion\" verhindert, dass PrusaSlicer überhaupt einen Extrusionswert exportiert." +#: src/libslic3r/PrintConfig.cpp:889 +msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents Slic3r from exporting any extrusion value at all." +msgstr "Einige G/M-Code-Befehle, einschließlich Temperatursteuerung und andere, sind nicht universell. Stellen Sie diese Option auf die Firmware Ihres Druckers ein, um eine kompatible Ausgabe zu erhalten. Die Eigenschaft \"Keine Extrusion\" verhindert, dass Slic3r überhaupt einen Extrusionswert exportiert." #: src/slic3r/GUI/GLCanvas3D.cpp:721 msgid "Some objects are not visible when editing supports" @@ -6080,18 +6649,34 @@ msgstr "Geschwindigkeit der ersten Kühlbewegung" msgid "Speed of the last cooling move" msgstr "Geschwindigkeit der letzten Kühlbewegung" +#: src/libslic3r/PrintConfig.cpp:584 +msgid "Speed used at the very beginning of loading phase. " +msgstr "Geschwindigkeit, die zu Beginn der Ladephase verwendet wird." + #: src/libslic3r/PrintConfig.cpp:585 msgid "Speed used at the very beginning of loading phase." msgstr "Geschwindigkeit, die zu Beginn der Ladephase verwendet wird." +#: src/libslic3r/PrintConfig.cpp:576 +msgid "Speed used for loading the filament on the wipe tower. " +msgstr "Geschwindigkeit, mit der Filament auf dem Reinigungsturm geladen wird." + #: src/libslic3r/PrintConfig.cpp:577 msgid "Speed used for loading the filament on the wipe tower." msgstr "Geschwindigkeit, mit der Filament auf dem Reinigungsturm geladen wird." +#: src/libslic3r/PrintConfig.cpp:592 +msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming). " +msgstr "Geschwindigkeit, mit der Filament auf dem Reinigungsturm entladen wird (betrifft nicht den ersten Teil des Entladens direkt nach dem Rammen)." + #: src/libslic3r/PrintConfig.cpp:593 msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)." msgstr "Geschwindigkeit, mit der Filament auf dem Reinigungsturm entladen wird (betrifft nicht den ersten Teil des Entladens direkt nach dem Rammen)." +#: src/libslic3r/PrintConfig.cpp:601 +msgid "Speed used for unloading the tip of the filament immediately after ramming. " +msgstr "Geschwindigkeit, mit der die Spitze des Filaments unmittelbar nach dem Rammen entladen wird." + #: src/libslic3r/PrintConfig.cpp:602 msgid "Speed used for unloading the tip of the filament immediately after ramming." msgstr "Geschwindigkeit, mit der die Spitze des Filaments unmittelbar nach dem Rammen entladen wird." @@ -6100,6 +6685,10 @@ msgstr "Geschwindigkeit, mit der die Spitze des Filaments unmittelbar nach dem R msgid "Sphere" msgstr "Kugel" +#: src/slic3r/GUI/Tab.cpp:1254 +msgid "Spiral Vase" +msgstr "Spiralvase" + #: src/libslic3r/PrintConfig.cpp:1717 msgid "Spiral vase" msgstr "Spiralvasenmodus" @@ -6117,6 +6706,10 @@ msgstr "Teile das gewählte Objekt" msgid "Split the selected object into individual objects" msgstr "Ausgewähltes Objekt in Einzelobjekte trennen" +#: lib/Slic3r/GUI/Plater.pm:2293 +msgid "Split the selected object into individual parts" +msgstr "Ausgewähltes Objekt in Einzelteile trennen" + #: src/slic3r/GUI/Plater.cpp:2968 src/slic3r/GUI/Plater.cpp:3008 msgid "Split the selected object into individual sub-parts" msgstr "Ausgewähltes Objekt in einzelne Unterteile trennen" @@ -6125,30 +6718,14 @@ msgstr "Ausgewähltes Objekt in einzelne Unterteile trennen" msgid "Split to objects" msgstr "In Objekte trennen" -#: src/slic3r/GUI/Plater.cpp:2796 -msgid "Split to Objects" -msgstr "In Objekte trennen" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1110 msgid "Split to parts" msgstr "In Teile trennen" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1904 -msgid "Split to Parts" -msgstr "In Teile trennen" - #: src/libslic3r/PrintConfig.cpp:799 msgid "Stars" msgstr "Sterne" -#: src/slic3r/GUI/MainFrame.cpp:376 -msgid "Start a new project" -msgstr "Ein neues Projekt beginnen" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Start at height" -msgstr "Starte auf Höhe" - #: src/slic3r/GUI/Tab.cpp:1564 src/slic3r/GUI/Tab.cpp:1949 #: src/libslic3r/PrintConfig.cpp:1736 src/libslic3r/PrintConfig.cpp:1751 msgid "Start G-code" @@ -6162,6 +6739,10 @@ msgstr "Neuen Slicing-Prozess starten" msgid "Start printing after upload" msgstr "Beginne den Druckjob nach dem Hochladen" +#: src/libslic3r/SLA/SLASupportTree.cpp:2153 +msgid "Starting" +msgstr "Beginne" + #: src/slic3r/GUI/PrintHostDialogs.cpp:150 msgid "Status" msgstr "Status" @@ -6178,15 +6759,15 @@ msgstr "Stealth" msgid "stealth mode" msgstr "Stealth Modus" +#: lib/Slic3r/GUI/Plater.pm:1659 lib/Slic3r/GUI/Plater.pm:1701 +msgid "STL file exported to " +msgstr "Die STL-Datei wurde exportiert zu " + #: src/slic3r/GUI/Plater.cpp:3545 -#, possible-c-format +#, c-format msgid "STL file exported to %s" msgstr "Die STL-Datei wurde exportiert zu %s" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Stop at height" -msgstr "Stoppe auf Höhe" - #: src/slic3r/GUI/Tab.cpp:1716 src/slic3r/GUI/Tab.cpp:1901 msgid "Success!" msgstr "Erfolg!" @@ -6195,6 +6776,10 @@ msgstr "Erfolg!" msgid "support" msgstr "Stützen" +#: xs/src/slic3r/GUI/GUI.cpp:859 +msgid "Support" +msgstr "Stützen" + #: src/libslic3r/PrintConfig.cpp:2441 msgid "Support base diameter" msgstr "Stützfuss Durchmesser" @@ -6203,17 +6788,9 @@ msgstr "Stützfuss Durchmesser" msgid "Support base height" msgstr "Stützfuss Höhe" -#: src/libslic3r/PrintConfig.cpp:2566 -msgid "Support base safety distance" -msgstr "Sicherheitsabstand der Stützbasis" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Support Blocker" -msgstr "Stützblocker" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Support Enforcer" -msgstr "Stützverstärker" +#: src/slic3r/GUI/Tab.cpp:1316 +msgid "Support Generator" +msgstr "Generator für die Stützen" #: src/slic3r/GUI/Tab.cpp:3401 msgid "Support head" @@ -6274,10 +6851,6 @@ msgstr "Stützmaterial/Raft/Schürzen Extruder" msgid "Support on build plate only" msgstr "Stützmaterial nur auf dem Druckbrett" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:991 -msgid "Support parameter change" -msgstr "Stützmaterial Änderung" - #: src/slic3r/GUI/Tab.cpp:3406 msgid "Support pillar" msgstr "Stützpfeiler" @@ -6294,9 +6867,13 @@ msgstr "Durchmesser der Stützpfeiler" msgid "Support points density" msgstr "Stützpunktdichte" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1282 -msgid "Support points edit" -msgstr "Stützpunkte editieren" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:888 +msgid "Support points density: " +msgstr "Stützpunktdichte:" + +#: xs/src/libslic3r/PrintConfig.cpp:896 +msgid "Support silent mode" +msgstr "Leisen Modus unterstützen" #: src/slic3r/GUI/GUI_ObjectList.cpp:78 src/slic3r/GUI/GUI_ObjectList.cpp:519 #: src/slic3r/GUI/Plater.cpp:418 src/slic3r/GUI/Tab.cpp:3397 @@ -6317,12 +6894,28 @@ msgstr "Stützen und Grundschicht" #: src/libslic3r/PrintConfig.cpp:1043 msgid "Supports remaining times" -msgstr "Unterstützt Restzeit" +msgstr "Stützstrukturen Restzeit" + +#: src/libslic3r/PrintConfig.cpp:1052 +msgid "Supports silent mode" +msgstr "Unterstützt Leisen Modus" #: src/libslic3r/PrintConfig.cpp:1053 msgid "Supports stealth mode" msgstr "Unterstützt Stealth Modus" +#: src/slic3r/GUI/Tab.cpp:1313 +msgid "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" +msgstr "" +"Stützen funktionieren besser, falls die folgende Option aktiviert ist:\n" +"- Aussenschichten von Überbrückungen erkennen\n" +"\n" +"Soll ich diese Einstellung für die Stützen anpassen?" + #: src/slic3r/GUI/Preferences.cpp:76 msgid "Suppress \" - default - \" presets" msgstr "\"Standard\"-Einstellungen unterdrücken" @@ -6348,17 +6941,27 @@ msgid "Switch to Preview" msgstr "Wechseln zur Vorschau" #: src/slic3r/GUI/wxExtensions.cpp:2412 -#, possible-c-format +#, c-format msgid "Switch to the %s mode" msgstr "Wechseln zum %s Modus" #: src/slic3r/GUI/GUI_App.cpp:752 -msgid "Switching the language will trigger application restart.\nYou will lose content of the plater." -msgstr "Das Umschalten der Sprache löst einen Neustart der Anwendung aus.\nSie verlieren den Inhalt der Druckplatte." +msgid "" +"Switching the language will trigger application restart.\n" +"You will lose content of the plater." +msgstr "" +"Das Umschalten der Sprache löst einen Neustart der Anwendung aus.\n" +"Sie verlieren den Inhalt der Druckplatte." #: src/slic3r/GUI/WipeTowerDialog.cpp:327 -msgid "Switching to simple settings will discard changes done in the advanced mode!\n\nDo you want to proceed?" -msgstr "Das Umschalten auf einfache Einstellungen verwirft die im erweiterten Modus vorgenommenen Änderungen!\n\nWollen Sie fortfahren?" +msgid "" +"Switching to simple settings will discard changes done in the advanced mode!\n" +"\n" +"Do you want to proceed?" +msgstr "" +"Das Umschalten auf einfache Einstellungen verwirft die im erweiterten Modus vorgenommenen Änderungen!\n" +"\n" +"Wollen Sie fortfahren?" #: src/libslic3r/PrintConfig.cpp:1949 msgid "Synchronize support layers with the object print layers. This is useful with multi-material printers, where the extruder switch is expensive." @@ -6372,6 +6975,10 @@ msgstr "Mit Objektschichten synchronisieren" msgid "System &Info" msgstr "System&informationen" +#: lib/Slic3r/GUI/MainFrame.pm:355 +msgid "System Info" +msgstr "Systeminformationen" + #: src/slic3r/GUI/SysInfoDialog.cpp:44 msgid "System Information" msgstr "Systeminformationen" @@ -6386,10 +6993,18 @@ msgstr "Systemvoreinstellungen" msgid "Take Configuration &Snapshot" msgstr "Erfa&ssen einer Konfigurations-Momentaufnahme" +#: xs/src/slic3r/GUI/GUI.cpp:350 +msgid "Take Configuration Snapshot" +msgstr "Erfassen einer Konfigurations-Momentaufnahme" + #: src/slic3r/GUI/GUI_App.cpp:697 msgid "Taking configuration snapshot" msgstr "Ich erfasse eine Momentaufnahme der Konfiguration" +#: src/slic3r/GUI/Tab.cpp:1478 +msgid "Temperature " +msgstr "Temperatur " + #: src/libslic3r/PrintConfig.cpp:1980 msgid "Temperature" msgstr "Temperatur" @@ -6410,32 +7025,48 @@ msgstr "Temperaturen" msgid "Test" msgstr "Test" -#: src/slic3r/GUI/BedShapeDialog.cpp:171 -msgid "Texture" -msgstr "Textur" +#: src/slic3r/GUI/Tab.cpp:1358 +msgid "The " +msgstr "Der/Die " + +#: src/slic3r/GUI/Tab.cpp:1362 +msgid "" +"The %1% infill pattern is not supposed to work at 100%% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +"Das %1% Infillmuster ist nicht empfohlen für 100%% Füllvolumen.\n" +"\n" +"Soll auf das rechtlineare Füllmuster umgestellt werden?" #: src/slic3r/GUI/FirmwareDialog.cpp:530 -#, possible-c-format +#, c-format msgid "The %s device could not have been found" msgstr "Das %s-Gerät konnte nicht gefunden werden" #: src/slic3r/GUI/FirmwareDialog.cpp:417 -#, possible-c-format -msgid "The %s device was not found.\nIf the device is connected, please press the Reset button next to the USB connector ..." -msgstr "Das %s-Gerät wurde nicht gefunden.\nWenn das Gerät angeschlossen ist, drücken Sie bitte die Reset-Taste neben dem USB-Anschluss...." +#, c-format +msgid "" +"The %s device was not found.\n" +"If the device is connected, please press the Reset button next to the USB connector ..." +msgstr "" +"Das %s-Gerät wurde nicht gefunden.\n" +"Wenn das Gerät angeschlossen ist, drücken Sie bitte die Reset-Taste neben dem USB-Anschluss...." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640 -msgid "The currently manipulated object is tilted (rotation angles are not multiples of 90°).\nNon-uniform scaling of tilted objects is only possible in the World coordinate system,\nonce the rotation is embedded into the object coordinates." -msgstr "Das aktuell manipulierte Objekt wird gekippt (Drehwinkel sind keine Vielfachen von 90°).\nEine ungleiche Skalierung von geschwenkten Objekten ist nur im Weltkoordinatensystem möglich,\nsobald die Drehung in die Objektkoordinaten eingearbeitet wurde." +msgid "" +"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n" +"Non-uniform scaling of tilted objects is only possible in the World coordinate system,\n" +"once the rotation is embedded into the object coordinates." +msgstr "" +"Das aktuell manipulierte Objekt wird gekippt (Drehwinkel sind keine Vielfachen von 90°).\n" +"Eine ungleiche Skalierung von geschwenkten Objekten ist nur im Weltkoordinatensystem möglich,\n" +"sobald die Drehung in die Objektkoordinaten eingearbeitet wurde." #: src/libslic3r/PrintConfig.cpp:2462 msgid "The default angle for connecting support sticks and junctions." msgstr "Der Standardwinkel für die Verbindung von Stützstäben und Verbindungen." -#: src/libslic3r/SLAPrint.cpp:670 -msgid "The endings of the support pillars will be deployed on the gap between the object and the pad. 'Support base safety distance' has to be greater than the 'Pad object gap' parameter to avoid this." -msgstr "Die Enden der Stützpfeiler werden auf dem Spalt zwischen dem Objekt und der Grundschicht eingesetzt. Der \"Sicherheitsabstand der Stützbasis\" muss größer sein als der Parameter \"Objektabstand Grundschicht\", um dies zu vermeiden." - #: src/libslic3r/PrintConfig.cpp:457 msgid "The extruder to use (unless more specific extruder settings are specified). This value overrides perimeter and infill extruders, but not the support extruders." msgstr "Der Extruder, der verwendet werden soll, falls keine sonstigen Extrudereinstellungen angegeben wurden. Dies übersteuert die Angaben für die Aussenschicht- und Infill-Extruder, aber nicht die Angabe des Extruders für die Stützen." @@ -6481,13 +7112,17 @@ msgstr "Die erste Schicht wird in der XY-Ebene um den vorgegebenen Wert verklein msgid "the following characters are not allowed:" msgstr "die folgenden Zeichen sind nicht erlaubt:" -#: src/slic3r/GUI/Tab.cpp:3311 -msgid "the following suffix is not allowed:" -msgstr "das folgenden Suffix ist nicht erlaubt:" +#: src/slic3r/GUI/Tab.cpp:3283 +msgid "the following postfix are not allowed:" +msgstr "die folgenden Postfixe sind nicht erlaubt:" + +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified" +msgstr "Die folgenden Voreinstellungen wurden geändert" -#: src/libslic3r/PrintConfig.cpp:2702 -msgid "The gap between the object bottom and the generated pad in zero elevation mode." -msgstr "Der Abstand zwischen dem Objektboden und der erzeugten Grundschicht im Nullhöhenmodus." +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified: " +msgstr "Die folgenden Voreinstellungen wurden geändert:" #: src/libslic3r/PrintConfig.cpp:2453 msgid "The height of the pillar base cone" @@ -6501,10 +7136,6 @@ msgstr "Der maximale Abstand zwischen 2 Pfeilern, die miteinander verbunden werd msgid "The max length of a bridge" msgstr "Die maximale Länge einer Überbrückung" -#: src/libslic3r/PrintConfig.cpp:2569 -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 "Der Mindestabstand des Säulenfußes zum Modell in mm. Sinnvoll im Nullhöhenmodus, bei dem ein Spalt gemäß diesem Parameter zwischen Modell und Grundschicht eingefügt wird." - #: src/libslic3r/PrintConfig.cpp:2176 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 "Das Objekt wird in der XY-Ebene um den konfigurierten Wert (negativ = einwärts, positiv = auswärts) vergrößert/verkleinert. Dies kann bei der Feinabstimmung von Lochgrößen hilfreich sein." @@ -6514,8 +7145,14 @@ msgid "The object will be raised by this number of layers, and support material msgstr "Das Objekt wird um diese Anzahl von Schichten angehoben, und darunter wird Trägermaterial erzeugt." #: src/libslic3r/PrintConfig.cpp:2259 -msgid "The percentage of the bed area. \nIf the print area exceeds the specified value, \nthen a slow tilt will be used, otherwise - a fast tilt" -msgstr "Der Prozentsatz der Bettfläche.\nWenn der Druckbereich den angegebenen Wert überschreitet,\nwird eine langsame Verkippung verwendet, andernfalls - eine schnelle Verkippung" +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 "" +"Der Prozentsatz der Bettfläche.\n" +"Wenn der Druckbereich den angegebenen Wert überschreitet,\n" +"wird eine langsame Verkippung verwendet, andernfalls - eine schnelle Verkippung" #: src/slic3r/GUI/GUI_App.cpp:831 msgid "The presets on the following tabs were modified" @@ -6541,10 +7178,6 @@ msgstr "Das ausgewählte Objekt konnte nicht getrennt werden, weil es aus mehr a msgid "The selected object couldn't be split because it contains only one part." msgstr "Das ausgewählte Objekt konnte nicht getrennt werden, da es nur aus einem Teil besteht." -#: src/slic3r/GUI/MainFrame.cpp:410 -msgid "The selected project is no more available" -msgstr "Das ausgewählte Projekt ist nicht mehr verfügbar" - #: src/libslic3r/PrintConfig.cpp:2570 msgid "The slope of the pad wall relative to the bed plane. 90 degrees means straight walls." msgstr "Die Neigung der Grundschichtwand in Bezug auf die Bettebene. 90 Grad bedeutet gerade Wände." @@ -6557,6 +7190,27 @@ msgstr "Die Geschwindigkeit, mit der ein Filament nach dem Einzug wieder in den msgid "The speed for retractions (it only applies to the extruder motor)." msgstr "Die Einzugsgeschwindigkeit (sie betrifft nur den Extruderantrieb)." +#: src/slic3r/GUI/Tab.cpp:1247 +#, no-c-format +msgid "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" +msgstr "" +"Der Spiralvasen-Modus erfordert:\n" +"- eine Aussenschicht\n" +"- keine stabilen Schichten oben\n" +"- 0% Fülldichte\n" +"- keine Stützen\n" +"- kein ensure_vertical_shell_thickness\n" +"\n" +"Soll ich diese Einstellungen anpassen, um den Spiralvasen-Modus zu aktivieren?" + #: src/libslic3r/Print.cpp:1187 msgid "The Spiral Vase option can only be used when printing a single object." msgstr "Die Option Spiralvase kann nur beim Drucken eines einzelnen Objekts verwendet werden." @@ -6579,6 +7233,10 @@ msgstr "Der angegebene Name ist nicht verfügbar." msgid "The supplied name is not valid;" msgstr "Der angegebene Name ist ungültig;" +#: c:\src\Slic3r\xs\src\slic3r\GUI\Tab.cpp:1785 +msgid "The supplied name is not valid; the following characters are not allowed:" +msgstr "Der angegebene Name ist ungültig; die folgenden Zeichen sind nicht erlaubt:" + #: src/libslic3r/Print.cpp:1268 msgid "The supplied settings will cause an empty print." msgstr "Die vorgenommenen Einstellungen führen zu einem leeren Druck." @@ -6592,13 +7250,35 @@ msgid "The vertical distance between object and support material interface. Sett msgstr "Der vertikale Abstand zwischen Objekt und Trägermaterialschnittstelle. Wenn Sie diesen Wert auf 0 setzen, wird Slic3r auch verhindern, dass Bridge-Flow und -Geschwindigkeit für die erste Objektschicht verwendet werden." #: src/slic3r/GUI/Tab.cpp:2429 -msgid "The Wipe option is not available when using the Firmware Retraction mode.\n\nShall I disable it in order to enable Firmware Retraction?" -msgstr "Die Reinigungsoption ist nicht verfügbar, wenn der Firmware-Einzug verwendet wird.\n\nSoll ich sie ausschalten, um den Firmware-Einzug zu aktivieren?" +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 "" +"Die Reinigungsoption ist nicht verfügbar, wenn der Firmware-Einzug verwendet wird.\n" +"\n" +"Soll ich sie ausschalten, um den Firmware-Einzug zu aktivieren?" + +#: src/slic3r/GUI/Tab.cpp:1277 +msgid "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool change.\n" +"(both support_material_extruder and support_material_interface_extruder need to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" +msgstr "" +"Der Reinigungsturm unterstützt zur Zeit nichtlösliche Stützen nur, falls sie mit dem aktuellen Extruder ohne einen Werkzeugwechsel gedruckt werden (sowohl support_material_extruder wie auch support_material_interface_extruder müssen auf Null gesetzt werden).\n" +"\n" +"Soll ich diese Einstellungen anpassen, um den Reinigungsturm zu aktivieren?" #: src/libslic3r/Print.cpp:1306 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 support_material_extruder and support_material_interface_extruder need to be set to 0)." msgstr "Der Reinigungsturm unterstützt zur Zeit nichtlösliche Stützen nur, falls sie mit dem aktuellen Extruder ohne einen Werkzeugwechsel gedruckt werden (sowohl support_material_extruder wie auch support_material_interface_extruder müssen auf Null gesetzt werden)." +#: xs/src/libslic3r/Print.cpp:617 +msgid "The Wipe Tower is currently only supported for the Marlin and RepRap/Sprinter G-code flavors." +msgstr "Der Abwisch-Turm wird derzeit nur für die Varianten Marlin und RepRap/Sprinter G-Code unterstützt." + #: src/libslic3r/Print.cpp:1200 msgid "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors." msgstr "Der Reinigungsturm wird derzeit nur für die Varianten Marlin und RepRap/Sprinter und Repetier G-Code unterstützt." @@ -6623,16 +7303,16 @@ msgstr "Der Wischturm wird nur für mehrere Objekte unterstützt, wenn diese gle msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heights" msgstr "Der Wischturm wird nur für mehrere Objekte unterstützt, wenn diese die gleiche Schichthöhe haben" -#: src/libslic3r/Print.cpp:1155 -msgid "The wipe tower is only supported if all extruders have the same nozzle diameter and use filaments of the same diameter." -msgstr "Der Wischturm wird nur unterstützt, wenn alle Extruder den gleichen Düsendurchmesser haben und Filamente mit dem gleichen Durchmesser verwenden." +#: src/libslic3r/Print.cpp:1223 +msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heigths" +msgstr "Der Wischturm wird nur für mehrere Objekte unterstützt, wenn diese die gleiche Schichthöhe haben" #: src/libslic3r/Print.cpp:1258 msgid "The Wipe tower is only supported if all objects have the same layer height profile" msgstr "Der Wischturm wird nur für mehrere Objekte unterstützt, wenn diese das gleiche Schichthöhenprofil haben" #: src/slic3r/GUI/UpdateDialogs.cpp:127 -#, possible-c-format +#, c-format msgid "This %s version: %s" msgstr "Diese %s Version: %s" @@ -6640,10 +7320,6 @@ msgstr "Diese %s Version: %s" msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." msgstr "Dieser Code wird beim sequentiellen Drucken zwischen Objekten eingefügt. Standardmäßig werden Extruder- und Betttemperatur mit dem Befehl, der nicht auf die Änderung wartet, zurückgesetzt. Wenn jedoch M104, M109, M140 oder M190 in diesem benutzerdefinierten Code erkannt werden, fügt Slic3r keine Temperaturbefehle hinzu. Beachten Sie, dass Sie Platzhaltervariablen für alle Slic3r-Einstellungen verwenden können, so dass Sie einen \"M109 S[first_layer_temperature]\"-Befehl an beliebiger Stelle platzieren können." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted at every extruder change. If you don't leave this empty, you are expected to take care of the toolchange yourself - PrusaSlicer will not output any other G-code to change the filament. You can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder], so e.g. the standard toolchange command can be scripted as T[next_extruder]." -msgstr "Dieser benutzerdefinierte Code wird bei jedem Extruderwechsel eingefügt. Wenn Sie dieses Feld nicht leer lassen, müssen Sie sich selbst um den Werkzeugwechsel kümmern - PrusaSlicer gibt keinen anderen G-Code zum Wechseln des Filaments aus. Sie können Platzhaltervariablen für alle Slic3r-Einstellungen sowie [previous_extruder] und [next_extruder] verwenden, so dass z.B. der Standard-Toolchange-Befehl als T[next_extruder] skriptiert werden kann." - #: src/libslic3r/PrintConfig.cpp:1032 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 use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Dieser benutzerdefinierte Code wird bei jedem Schichtwechsel eingefügt, direkt nach der Z-Bewegung und bevor der Extruder zum ersten Lagenpunkt fährt. Beachten Sie, dass Sie Platzhaltervariablen für alle Slic3r-Einstellungen sowie [layer_num] und [layer_z] verwenden können." @@ -6652,17 +7328,17 @@ msgstr "Dieser benutzerdefinierte Code wird bei jedem Schichtwechsel eingefügt, msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Dieser benutzerdefinierte Code wird bei jedem Lagenwechsel, unmittelbar vor der Z Bewegung, eingefügt. Beachten Sie, dass Sie Platzhaltervariablen für alle Slic3r-Einstellungen sowie [layer_num] und [layer_z] verwenden können." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange." -msgstr "Dieser benutzerdefinierte Code wird vor jedem Werkzeugwechsel eingefügt. Platzhaltervariablen für alle PrusaSlicer-Einstellungen sowie {previous_extruder} und {next_extruder} können verwendet werden. Wenn ein Werkzeugwechselbefehl enthalten ist, der zum richtigen Extruder wechselt (z.B. T{next_extruder}), gibt PrusaSlicer keinen anderen solchen Befehl aus. Es ist daher möglich, benutzerdefiniertes Verhalten sowohl vor als auch nach dem Werkzeugwechsel zu skripten." - -#: src/libslic3r/PrintConfig.cpp:380 -msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Dieser Endvorgang wird am Ende der Ausgabedatei, vor dem G-Code des Druckerendes (und vor jedem Werkzeugwechsel von diesem Filament bei Multimaterialdruckern) eingefügt. Beachten Sie, dass Sie Platzhaltervariablen für alle PrusaSlicer-Einstellungen verwenden können. Wenn Sie mehrere Extruder haben, wird der gcode in Extruderreihenfolge verarbeitet." +#: src/libslic3r/PrintConfig.cpp:2007 +msgid "This custom code is inserted right before every extruder change. Note that you can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder]." +msgstr "Dieser Code wird unmittelbar vor jedem Extruderwechsel eingefügt. Beachten Sie, dass Sie Platzhaltervariablen für alle Slic3r-Einstellungen sowie für [previous_extruder] und [next_extruder] verwenden können." #: src/libslic3r/PrintConfig.cpp:370 -msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all PrusaSlicer settings." -msgstr "Diese Endprozedur wird am Ende der Ausgabedatei eingefügt. Beachten Sie, dass Sie Platzhaltervariablen für alle PrusaSlicer-Einstellungen verwenden können." +msgid "This end procedure is inserted at the end of the output file, before the printer end gcode. Note that you can use placeholder variables for all Slic3r settings. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Diese Endprozedur wird am Ende der Ausgabedatei vor dem DruckerEnde G-Code eingefügt. Beachten Sie, dass Sie Platzhaltervariablen für alle Slic3r-Einstellungen verwenden können. Wenn Sie über mehrere Extruder verfügen, wird der G-Code in der Extruderreihenfolge verarbeitet." + +#: src/libslic3r/PrintConfig.cpp:360 +msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all Slic3r settings." +msgstr "Dieser G-Code wird am Ende der Ausgabedatei angehängt. Sie können Platzhaltervariablen für alle Slic3r-Einstellungen verwenden." #: src/libslic3r/PrintConfig.cpp:1193 src/libslic3r/PrintConfig.cpp:1204 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 of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." @@ -6712,14 +7388,32 @@ msgstr "Dieses Verfahren erhöht die Z-Position allmählich, während eine einfa msgid "This file cannot be loaded in a simple mode. Do you want to switch to an advanced mode?\n" msgstr "Diese Datei kann nicht im einfachen Modus geladen werden. Möchten Sie in den fortgeschrittenen Modus wechseln?\n" +#: src/slic3r/GUI/Plater.cpp:1650 +msgid "This file cannot be loaded in simple mode. Do you want to switch to expert mode?\n" +msgstr "Diese Datei kann nicht im einfachen Modus geladen werden. Möchten Sie in den Expertenmodus wechseln?\n" + #: src/slic3r/GUI/Plater.cpp:1658 -msgid "This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\nthis file as a single object having multiple parts?\n" +msgid "" +"This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\n" +"this file as a single object having multiple parts?\n" msgstr "Diese Datei enthält mehrere Objekte, die in verschiedenen Höhen positioniert sind. Anstatt sie als mehrere Objekte zu betrachten, soll ich diese Datei als ein einzelnes Objekt mit mehreren Teilen betrachten?\n" #: src/slic3r/GUI/FirmwareDialog.cpp:313 -#, possible-c-format -msgid "This firmware hex file does not match the printer model.\nThe hex file is intended for: %s\nPrinter reported: %s\n\nDo you want to continue and flash this hex file anyway?\nPlease only continue if you are sure this is the right thing to do." -msgstr "Diese Firmware-Hex-Datei stimmt nicht mit dem Druckermodell überein.\nDie Hex-Datei ist für: %s\nDrucker erkannt: %s\n\nMöchtest Sie fortfahren und diese Hex-Datei trotzdem flashen?\nBitte fahren Sie nur fort, wenn Sie der festen Überzeugung sind, dass dies das Richtige ist." +#, c-format +msgid "" +"This firmware hex file does not match the printer model.\n" +"The hex file is intended for: %s\n" +"Printer reported: %s\n" +"\n" +"Do you want to continue and flash this hex file anyway?\n" +"Please only continue if you are sure this is the right thing to do." +msgstr "" +"Diese Firmware-Hex-Datei stimmt nicht mit dem Druckermodell überein.\n" +"Die Hex-Datei ist für: %s\n" +"Drucker erkannt: %s\n" +"\n" +"Möchtest Sie fortfahren und diese Hex-Datei trotzdem flashen?\n" +"Bitte fahren Sie nur fort, wenn Sie der festen Überzeugung sind, dass dies das Richtige ist." #: src/libslic3r/PrintConfig.cpp:278 msgid "This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer printing time." @@ -6737,22 +7431,10 @@ msgstr "Diese Stellung erzwingt einen Einzug bei jeder Z-Bewegung." msgid "This flag will move the nozzle while retracting to minimize the possible blob on leaky extruders." msgstr "Diese Einstellung wird die Düse während dem Einzug bewegen, um mögliche Tropfen bei einem undichten Extruder zu minimieren." -#: src/slic3r/GUI/Tab.cpp:921 -msgid "This is a default preset." -msgstr "Dies ist eine Standard-Voreinstellung." - #: src/libslic3r/PrintConfig.cpp:2501 msgid "This is a relative measure of support points density." msgstr "Dies ist ein relatives Maß für die Dichte der Stützpunkte." -#: src/slic3r/GUI/Tab.cpp:2528 -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 "Dies ist ein Einzelextruder-Multimaterialdrucker, die Durchmesser aller Extruder werden auf den neuen Wert eingestellt. Möchten Sie fortfahren?" - -#: src/slic3r/GUI/Tab.cpp:923 -msgid "This is a system preset." -msgstr "Dies ist eine Systemvoreinstellung." - #: src/libslic3r/PrintConfig.cpp:491 src/libslic3r/PrintConfig.cpp:551 msgid "This is only used in the Slic3r interface as a visual help." msgstr "Dies wird nur als visuelles Hilfsmittel in der Slic3r-Benutzeroberfläche verwendet." @@ -6790,13 +7472,21 @@ msgstr "Dies ist die höchste druckbare Schichthöhe für diesen Extruder, mit d 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 "Dies ist die niedrigste druckbare Schichthöhe für diesen Extruder und begrenzt die Auflösung bei variabler Schichthöhe. Typische Werte liegen zwischen 0,05 mm und 0,1 mm." +#: src/libslic3r/PrintConfig.cpp:2114 +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 "Diese Matrix beschreibt die Volumina (in Kubikmillimetern), die benötigt werden, um das neue Filament auf dem Reinigungsturm für ein bestimmtes Werkzeugpaar zu reinigen. " + #: src/libslic3r/PrintConfig.cpp:2139 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 "Diese Matrix beschreibt die Volumina (in Kubikmillimetern), die benötigt werden, um das neue Filament auf dem Reinigungsturm für ein bestimmtes Werkzeugpaar zu reinigen." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:643 -msgid "This operation is irreversible.\nDo you want to proceed?" -msgstr "Dieser Vorgang ist nicht mehr rückgängig zu machen.\nMöchten Sie fortfahren?" +msgid "" +"This operation is irreversible.\n" +"Do you want to proceed?" +msgstr "" +"Dieser Vorgang ist nicht mehr rückgängig zu machen.\n" +"Möchten Sie fortfahren?" #: src/libslic3r/PrintConfig.cpp:1372 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 surfaces which benefit from a higher number of perimeters if the Extra Perimeters option is enabled." @@ -6838,13 +7528,22 @@ msgstr "Diese Einstellung bestimmt die maximale Geschwindigkeit Ihres Lüfters." msgid "This setting represents the minimum PWM your fan needs to work." msgstr "Diese Einstellung gibt den minimalen PWM-Wert an, den Ihr Lüfter für den Betrieb benötigt." -#: src/libslic3r/PrintConfig.cpp:1801 -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 printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Dieser Startvorgang wird am Anfang, nach jedem Drucker-Startgcode (und nach jedem Werkzeugwechsel zu diesem Filament bei Multi-Material-Druckern) eingefügt. Dies wird verwendet, um die Einstellungen für einen bestimmten Filament zu überschreiben. Wenn PrusaSlicer M104, M109, M140 oder M190 in Ihren benutzerdefinierten Codes erkennt, werden solche Befehle nicht automatisch vorangestellt, so dass Sie die Reihenfolge der Heizbefehle und andere benutzerdefinierte Aktionen anpassen können. Beachten Sie, dass Sie Platzhaltervariablen für alle PrusaSlicer-Einstellungen verwenden können, so dass Sie einen Befehl \"M109 S[first_layer_temperature]\" beliebig platzieren können. Wenn Sie mehrere Extruder haben, wird der gcode in Extruderreihenfolge verarbeitet." +#: src/slic3r/GUI/UpdateDialogs.cpp:123 +#, c-format +msgid "This Slic3r PE version: %s" +msgstr "Diese Slic3r PE Version: %s" + +#: src/libslic3r/PrintConfig.cpp:1752 +msgid "This start procedure is inserted at the beginning, after any printer start gcode. This is used to override settings for a specific filament. If Slic3r detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Dieser Startvorgang wird am Anfang nach dem G-Code für den Druckerstart eingefügt. Damit können Einstellungen für ein bestimmtes Filament übersteuert werden. Falls Slic3r M104, M109, M140 oder M190 in Ihren benutzerdefinierten Codes erkennt, werden solche Befehle nicht automatisch vorangestellt, sodass Sie die Reihenfolge der Heizbefehle und anderer benutzerdefinierter Aktionen anpassen können. Beachten Sie, dass Sie Platzhaltervariablen für alle Slic3r-Einstellungen verwenden können, sodass Sie einen \"M109 S[first_layer_temperature]\"-Befehl an beliebiger Stelle platzieren können. Falls Sie mehrere Extruder haben, wird der G-Code in der Reihenfolge der Extruder ausgeführt." + +#: src/libslic3r/PrintConfig.cpp:1737 +msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If Slic3r detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "Dieser Startvorgang wird am Anfang eingefügt, nachdem das Heizbett die Zieltemperatur erreicht hat und der Extruder gerade erst mit dem Aufheizen begonnen hat, und bevor der Extruder fertig aufgeheizt ist. Falls Slic3r M104 oder M190 in Ihren benutzerdefinierten Codes erkennt, werden solche Befehle nicht automatisch vorangestellt, sodass Sie die Reihenfolge der Heizbefehle und anderer benutzerdefinierter Aktionen anpassen können. Beachten Sie, dass Sie Platzhaltervariablen für alle Slic3r-Einstellungen verwenden können, sodass Sie einen \"M109 S[first_layer_temperature]\"-Befehl an beliebiger Stelle platzieren können." -#: src/libslic3r/PrintConfig.cpp:1786 -msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." -msgstr "Dieser Startvorgang wird am Anfang eingefügt, nachdem das Bett die Solltemperatur erreicht hat und der Extruder gerade mit dem Erwärmen begonnen hat, und bevor der Extruder das Erwärmen beendet hat. Wenn PrusaSlicer M104 oder M190 in Ihren benutzerdefinierten Codes erkennt, werden solche Befehle nicht automatisch vorangestellt, so dass Sie die Reihenfolge der Heizbefehle und andere benutzerdefinierte Aktionen anpassen können. Beachten Sie, dass Sie Platzhaltervariablen für alle PrusaSlicer-Einstellungen verwenden können, so dass Sie einen Befehl \"M109 S[first_layer_temperature]\" beliebig platzieren können." +#: src/libslic3r/PrintConfig.cpp:663 +msgid "This string is edited by RammingDialog and contains ramming specific parameters " +msgstr "Diese Zeichenfolge wird vom RammDialog angepasst und enthält für das Rammen spezifische Parameter " #: src/libslic3r/PrintConfig.cpp:664 msgid "This string is edited by RammingDialog and contains ramming specific parameters." @@ -6854,14 +7553,42 @@ msgstr "Diese Zeichenfolge wird vom RammDialog angepasst und enthält für das R 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 example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)." msgstr "Dieser Wert wird zu allen Z-Koordinaten im ausgegebenen G-Code hinzuaddiert oder davon abgezogen. Damit kann eine fehlerhafte Z-Endanschlagsposition kompensiert werden: wenn z.B. bei Ihrem Nullwert die Druckdüse sich beim Endanschlag 0.3mm über der Druckplatte befindet, setzen Sie diesen Wert auf -0.3 (oder stellen Sie Ihren Endanschlag neu ein)." +#: src/libslic3r/PrintConfig.cpp:2107 +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 "Dieser Vektor speichert die erforderlichen Volumina für den Wechsel von/zu jedem am Reinigungsturm verwendeten Werkzeug. Diese Werte werden verwendet, um die Erstellung des vollen Reinigungsvolumens zu vereinfachen. " + #: src/libslic3r/PrintConfig.cpp:2132 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 "Dieser Vektor speichert die erforderlichen Volumina für den Wechsel von/zu jedem am Reinigungsturm verwendeten Werkzeug. Diese Werte werden verwendet, um die Erstellung des vollen Reinigungsvolumens zu vereinfachen." #: src/slic3r/GUI/UpdateDialogs.cpp:118 -#, possible-c-format -msgid "This version of %s is not compatible with currently installed configuration bundles.\nThis probably happened as a result of running an older %s after using a newer one.\n\nYou may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" -msgstr "Diese Version von %s ist nicht kompatibel zu den aktuell installierten Konfigurationssammlungen.\nDies wurde wahrscheinlich dadurch verursacht, dass Sie eine ältere %s Version benutzt haben, nachdem Sie eine neuere ausgeführt hatten.\n\nSie können %s entweder beenden und es mit einer neueren Version nochmals versuchen, oder Sie können die erstmalige Startkonfiguration nochmals wiederholen. In diesem Fall wird eine Sicherungskopie der aktuellen Konfiguration erstellt, bevor die mit dieser %s-Version kompatiblen Dateien installiert werden.\n" +#, c-format +msgid "" +"This version of %s is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older %s after using a newer one.\n" +"\n" +"You may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" +msgstr "" +"Diese Version von %s ist nicht kompatibel zu den aktuell installierten Konfigurationssammlungen.\n" +"Dies wurde wahrscheinlich dadurch verursacht, dass Sie eine ältere %s Version benutzt haben, nachdem Sie eine neuere ausgeführt hatten.\n" +"\n" +"Sie können %s entweder beenden und es mit einer neueren Version nochmals versuchen, oder Sie können die erstmalige Startkonfiguration nochmals wiederholen. In diesem Fall wird eine Sicherungskopie der aktuellen Konfiguration erstellt, bevor die mit dieser %s-Version kompatiblen Dateien installiert werden.\n" + +#: src/slic3r/GUI/UpdateDialogs.cpp:114 +msgid "" +"This version of Slic3r PE is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older Slic3r PE after using a newer one.\n" +"\n" +"You may either exit Slic3r and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this Slic3r.\n" +msgstr "" +"Diese Version von Slic3r PE ist nicht kompatibel zu den aktuell installierten Konfigurationssammlungen.\n" +"Dies wurde wahrscheinlich dadurch verursacht, dass Sie eine ältere Slic3r PE Version benutzt haben, nachdem Sie eine neuere ausgeführt hatten.\n" +"\n" +"Sie können Slic3r entweder beenden und es mit einer neueren Version nochmals versuchen, oder Sie können die erstmalige Startkonfiguration nochmals wiederholen. In diesem Fall wird eine Sicherungskopie der aktuellen Konfiguration erstellt, bevor die mit dieser Slic3r-Version kompatiblen Dateien installiert werden.\n" + +#: src/libslic3r/PrintConfig.cpp:2282 +msgid "This will apply a gamm correction to the rasterized 2D polygons." +msgstr "Dadurch wird eine Gammakorrektur auf die gerasterten 2D-Polygone angewendet." #: src/libslic3r/PrintConfig.cpp:2284 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." @@ -6903,6 +7630,10 @@ msgstr "Dauer des schnellen Kippens" msgid "Time of the slow tilt" msgstr "Dauer des langsamen Kippens" +#: src/libslic3r/PrintConfig.cpp:609 +msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions. " +msgstr "Wartezeit, nachdem das Filament entladen wurde. Dies kann zu zuverlässigeren Werkzeugwechseln beitragen bei flexiblen Materialien, die mehr Zeit zum Schrumpfen auf ihre ursprüngliche Grösse brauchen." + #: src/libslic3r/PrintConfig.cpp:610 msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions." msgstr "Wartezeit, nachdem das Filament entladen wurde. Dies kann zu zuverlässigeren Werkzeugwechseln beitragen bei flexiblen Materialien, die mehr Zeit zum Schrumpfen auf ihre ursprüngliche Grösse brauchen." @@ -6911,6 +7642,10 @@ msgstr "Wartezeit, nachdem das Filament entladen wurde. Dies kann zu zuverlässi msgid "To do that please specify a new name for the preset." msgstr "Zur Ausführung geben Sie bitte einen neuen Namen für die Voreinstellung ein." +#: src/slic3r/GUI/UpdateDialogs.cpp:37 +msgid "To download, follow the link below." +msgstr "Zum Herunterladen folgen Sie dem untenstehenden Link." + #: src/slic3r/GUI/Plater.cpp:2966 msgid "To objects" msgstr "Zu Objekten" @@ -6919,11 +7654,6 @@ msgstr "Zu Objekten" msgid "To parts" msgstr "Zu Teilen" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:212 -#, possible-c-format -msgid "Toggle %c axis mirroring" -msgstr "Umschalten der Spiegelung der %c-Achse" - #: src/libslic3r/Zipper.cpp:37 msgid "too many files" msgstr "zu viele Dateien" @@ -6972,6 +7702,10 @@ msgstr "Obere stabile Schichten" msgid "Top View" msgstr "Ansicht von oben" +#: xs/src/libslic3r/PrintConfig.cpp:283 +msgid "Top/bottom fill pattern" +msgstr "Boden- und Deckenfüllmuster" + #: src/slic3r/GUI/WipeTowerDialog.cpp:247 msgid "Total purging volume is calculated by summing two values below, depending on which tools are loaded/unloaded." msgstr "Das gesamte Reinigungsvolumen wird durch die Addition folgender zwei Werte berechnet, je nachdem welche Werkzeuge geladen/entladen sind." @@ -7004,34 +7738,18 @@ msgstr "Repariere alle ungeschlossenen Netze (diese Option wird implizit hinzuge msgid "Type of the printer." msgstr "Druckertyp." -#: src/slic3r/GUI/GUI_ObjectList.cpp:2549 -msgid "Type:" -msgstr "Typ:" - #: src/libslic3r/Zipper.cpp:35 msgid "undefined error" msgstr "unbekannter Fehler" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3609 -#: src/slic3r/GUI/MainFrame.cpp:559 -msgid "Undo" -msgstr "Undo" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Undo %1$d Action" -msgid_plural "Undo %1$d Actions" -msgstr[0] "Undo %1$d Aktion" -msgstr[1] "Undo %1$d Aktionen" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Undo History" -msgstr "Undo Verlauf" - #: src/libslic3r/Zipper.cpp:59 msgid "unexpected decompressed size" msgstr "unerwartete dekomprimierte Größe" +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Uniformly…" +msgstr "Gleichmässig…" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:27 msgid "Unknown" msgstr "Unbekannt" @@ -7056,13 +7774,29 @@ msgstr "Entladegeschwindigkeit zu Beginn" msgid "UNLOCKED LOCK" msgstr "OFFENES SCHLOSS" -#: src/slic3r/GUI/Tab.cpp:3362 -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.\nClick to reset all settings for current option group to the system (or default) values." -msgstr "Das Symbol GEÖFFNETES SCHLOSS zeigt an, dass einige Einstellungen geändert wurden und nicht mehr mit den System- (oder Standard-) Werte für die aktuelle Optionsgruppe identisch sind.\nKlicken Sie, um alle Einstellungen für die aktuelle Optionsgruppe auf die System- (oder Standard-) Werte zurückzusetzen." +#: src/slic3r/GUI/Tab.cpp:3105 +msgid "" +"UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click to reset all settings for current option group to the system values." +msgstr "" +"Das Symbol GEÖFFNETES SCHLOSS zeigt an, dass einige Einstellungen geändert wurden und nicht mehr mit den Systemeinstellungen für die aktuelle Optionsgruppe identisch sind.\n" +"Klicken Sie, um alle Einstellungen für die aktuelle Optionsgruppe auf die Systemeinstellungen zurückzusetzen." + +#: src/slic3r/GUI/Tab.cpp:3120 +msgid "" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system value.\n" +"Click to reset current value to the system value." +msgstr "" +"Das Symbol GEÖFFNETES SCHLOSS zeigt an, dass der Wert geändert wurde und nicht mit der Systemeinstellung identisch ist.\n" +"Klicken Sie, um den aktuellen Wert auf die Systemeinstellung zurückzusetzen." -#: src/slic3r/GUI/Tab.cpp:3377 -msgid "UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\nClick to reset current value to the system (or default) value." -msgstr "Das Symbol GEÖFFNETES SCHLOSS zeigt an, dass der Wert geändert wurde und nicht mit der System- (oder Standard-) Einstellung identisch ist.\nKlicken Sie, um den aktuellen Wert auf die System- (oder Standard-) Einstellung zurückzusetzen." +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "" +"UNLOCKED LOCK;indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"GEÖFFNETES SCHLOSS;Zeigt an, dass einige Einstellungen geändert wurden und nicht mehr mit den Systemeinstellungen für die aktuelle Gruppe von Optionen identisch sind.\n" +"Klicken Sie auf das Symbol mit dem GEÖFFNETEN SCHLOSS, um alle Einstellungen für die aktuelle Optionsgruppe auf die Systemeinstellungen zurückzusetzen." #: src/slic3r/GUI/GUI_Preview.cpp:245 msgid "Unretractions" @@ -7077,8 +7811,8 @@ msgid "Unsaved Presets" msgstr "Nicht abgespeicherte Voreinstellungen" #: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Unselect gizmo / Clear selection" -msgstr "Gizmo abwählen / Auswahl löschen" +msgid "Unselect gizmo, keep object selection" +msgstr "Gizmo abwählen, behält Objektwahl" #: src/libslic3r/Zipper.cpp:63 msgid "unsupported central directory size" @@ -7100,16 +7834,12 @@ msgstr "nicht unterstützte Methode" msgid "unsupported multidisk archive" msgstr "nicht unterstütztes Multidisk-Archiv" -#: src/slic3r/GUI/GUI_App.cpp:305 -msgid "Unsupported OpenGL version" -msgstr "Nicht unterstützte OpenGL Version" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2414 msgid "Unsupported selection" msgstr "Nicht unterstützte Auswahl" #: src/libslic3r/GCode/PreviewData.cpp:495 -#, possible-c-format +#, c-format msgid "up to %.2f mm" msgstr "bis zu %.2f mm" @@ -7137,6 +7867,10 @@ msgstr "Aktualisieren" msgid "Upload a firmware image into an Arduino based printer" msgstr "Lade ein Firmware Image zu einem Arduino basierten Drucker hoch" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Upload to OctoPrint with the following filename:" +msgstr "Transferiere nach OctoPrint mit dem folgenden Dateinamen:" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Upload to Printer Host with the following filename:" msgstr "Transferiere zum Druckerhost mit dem Dateinamen:" @@ -7158,10 +7892,6 @@ msgstr "USB/Serielle Verbindung" msgid "USB/serial port for printer connection." msgstr "USB-/serielle Schnittstelle für den Druckeranschluss." -#: src/slic3r/GUI/Preferences.cpp:117 -msgid "Use custom size for toolbar icons" -msgstr "Benutzerdefinierte Größe für Symbolleistensymbole verwenden" - #: src/libslic3r/PrintConfig.cpp:2060 msgid "Use firmware retraction" msgstr "Firmware-Einzug aktivieren" @@ -7170,14 +7900,14 @@ msgstr "Firmware-Einzug aktivieren" msgid "Use forward slashes ( / ) as a directory separator if needed." msgstr "Benutzen Sie den Schrägstrich (/) als Verzeichnistrenner falls nötig." +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "Use legacy OpenGL 1.1 rendering" +msgstr "Älteres OpenGL 1.1-Rendering verwenden" + #: src/libslic3r/PrintConfig.cpp:2515 msgid "Use pad" msgstr "Grundschicht benutzen" -#: src/slic3r/GUI/Preferences.cpp:110 -msgid "Use perspective camera" -msgstr "Benutze perspektivische Kamera" - #: src/libslic3r/PrintConfig.cpp:2067 msgid "Use relative E distances" msgstr "Relative Abstände für Extrusion benutzen" @@ -7239,10 +7969,18 @@ msgstr "Der Wert ist gleich wie die Systemeinstellung" msgid "Value was changed and is not equal to the system value or the last saved preset" msgstr "Der Wert wurde geändert und ist nicht gleich wie die Systemeinstellung oder die letzte abgespeicherte Voreinstellung" +#: src/slic3r/GUI/Tab.cpp:2150 +msgid "Values in this column are for Full Power mode" +msgstr "Werte in dieser Spalte gelten für den Modus mit voller Leistung" + #: src/slic3r/GUI/Tab.cpp:2151 msgid "Values in this column are for Normal mode" msgstr "Werte in dieser Spalte sind für den normalen Modus" +#: src/slic3r/GUI/Tab.cpp:2156 +msgid "Values in this column are for Silent mode" +msgstr "Werte in dieser Spalte sind für den leisen Modus" + #: src/slic3r/GUI/Tab.cpp:2157 msgid "Values in this column are for Stealth mode" msgstr "Werte in dieser Spalte sind für den Stealth Modus" @@ -7259,6 +7997,10 @@ msgstr "Hersteller" msgid "Verbose G-code" msgstr "Ausführlicher G-Code" +#: lib/Slic3r/GUI/MainFrame.pm:66 +msgid "Version " +msgstr "Version " + #: src/slic3r/GUI/AboutDialog.cpp:67 src/slic3r/GUI/MainFrame.cpp:53 msgid "Version" msgstr "Version" @@ -7288,18 +8030,10 @@ msgstr "Volumen" msgid "Volume to purge (mm³) when the filament is being" msgstr "Volumen zum Reinigen (mm³) wenn das Filament ist" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Volumes in Object reordered" -msgstr "Volumen in Objekt neu angeordnet" - #: src/slic3r/GUI/PresetHints.cpp:216 msgid "Volumetric" msgstr "Volumetrisch" -#: src/slic3r/GUI/Tab.cpp:1800 -msgid "Volumetric flow hints not available" -msgstr "Hinweise zum Volumenstrom nicht verfügbar" - #: src/slic3r/GUI/GUI_Preview.cpp:216 msgid "Volumetric flow rate" msgstr "Volumetrische Flussrate" @@ -7321,24 +8055,46 @@ msgstr "Warnung" msgid "Welcome" msgstr "Willkommen" +#: src/slic3r/GUI/ConfigWizard.cpp:294 +#, c-format +msgid "Welcome to the %s %s" +msgstr "Willkommen zur %s %s" + #: src/slic3r/GUI/ConfigWizard.cpp:296 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Assistant" msgstr "Willkommen zum %s Konfigurations-Assistent" #: src/slic3r/GUI/ConfigWizard.cpp:298 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Wizard" msgstr "Willkommen zum %s Konfigurations-Assistent" +#: src/slic3r/GUI/ConfigWizard.cpp:284 +#, c-format +msgid "Welcome to the Slic3r %s" +msgstr "Willkommen in Slic3r %s" + +#: lib/Slic3r/GUI/Plater/2D.pm:131 +msgid "What do you want to print today? ™" +msgstr "Was möchten Sie heute drucken? ™" + #: src/slic3r/GUI/Preferences.cpp:86 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 "Falls angekreuzt, werden Voreinstellungen für Druck und Filament im Voreinstellungseditor auch dann angezeigt, wenn sie als inkompatibel zum aktiven Drucker gekennzeichnet wurden" +#: src/slic3r/GUI/PresetHints.cpp:221 +msgid "when printing " +msgstr "während dem Druck " + #: src/slic3r/GUI/PresetHints.cpp:223 msgid "when printing" msgstr "während dem Druck" +#: src/libslic3r/PrintConfig.cpp:216 +msgid "When printing multi-material objects, this settings will make slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "Wenn Multi-Material-Objekte gedruckt werden, wird Slic3r mit diesen Einstellungen einen überlappenden Teil des Objekts durch den anderen einschränken (zweiter Teil wird durch den ersten Teil eingeschränkt, dritter Teil wird durch den ersten und zweiten eingeschränkt usw.)." + #: src/libslic3r/PrintConfig.cpp:217 msgid "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." msgstr "Wenn Multi-Material-Objekte gedruckt werden, wird Slic3r mit diesen Einstellungen einen überlappenden Teil des Objekts durch den anderen einschränken (zweiter Teil wird durch den ersten Teil eingeschränkt, dritter Teil wird durch den ersten und zweiten eingeschränkt usw.)." @@ -7359,6 +8115,10 @@ msgstr "Wenn der Einzug vor dem Werkzeugwechsel ausgelöst wird, wird das Filame 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 "Wenn der Einzug ausgelöst wird, wird das Filament um diese Länge eingezogen. (Die Länge wird am unverarbeiteten Filament vor dem Extruder gemessen)." +#: src/libslic3r/PrintConfig.cpp:1322 +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 positive, it is loaded further, if negative, the loading move is shorter than unloading. " +msgstr "Wenn auf Null gesetzt, ist der Weg, den das Filament während der Beladung aus der Parkposition zurücklegt, genau der gleiche wie beim Entladen. Im positiven Fall wird sie weiter geladen, im negativen Fall ist die Ladebewegung kürzer als die Entladung." + #: src/libslic3r/PrintConfig.cpp:1347 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 positive, it is loaded further, if negative, the loading move is shorter than unloading." msgstr "Wenn auf Null gesetzt, ist der Weg, den das Filament während der Beladung aus der Parkposition zurücklegt, genau der gleiche wie beim Entladen. Im positiven Fall wird sie weiter geladen, im negativen Fall ist die Ladebewegung kürzer als die Entladung." @@ -7379,9 +8139,9 @@ msgstr "Wenn der Einzug nach der Zwischenbewegung kompensiert wurde, wird der Ex msgid "WHITE BULLET" msgstr "WEISSER PUNKT" -#: src/slic3r/GUI/Tab.cpp:3365 -msgid "WHITE BULLET icon indicates a non system (or non default) preset." -msgstr "Das Symbol mit dem WEISSEN PUNKT zeigt eine Nicht-System- (oder nicht standardmäßige) Voreinstellung an." +#: src/slic3r/GUI/Tab.cpp:3108 +msgid "WHITE BULLET icon indicates a non system preset." +msgstr "Das Symbol mit dem WEISSEN PUNKT zeigt eine Nicht-Systemeinstellung an." #: src/slic3r/GUI/Tab.cpp:3111 msgid "WHITE BULLET icon indicates that the settings are the same as in the last saved preset for the current option group." @@ -7391,6 +8151,12 @@ msgstr "Das Symbol WEISSER PUNKT zeigt an, dass die Einstellungen dieselben sind msgid "WHITE BULLET icon indicates that the value is the same as in the last saved preset." msgstr "Das Symbol WEISSER PUNKT zeigt an, dass der Wert identisch ist mit demjenigen in der zuletzt gespeicherten Voreinstellung." +#: src/slic3r/GUI/Tab.cpp:3073 +msgid "" +"WHITE BULLET;for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "WEISSER PUNKT;Beim linken Knopf: zeigt eine Nicht-Systemeinstellung an. Beim rechten Knopf: zeigt an, dass die Einstellung nicht geändert wurde." + #: src/slic3r/GUI/GUI_Preview.cpp:214 src/libslic3r/PrintConfig.cpp:2137 msgid "Width" msgstr "Breite" @@ -7407,10 +8173,6 @@ msgstr "Abstand von der Mitte der hinteren Kugel bis zur Mitte der vorderen Kuge msgid "Width of a wipe tower" msgstr "Breite des Reinigungsturms" -#: src/libslic3r/PrintConfig.cpp:2761 -msgid "Width of the connector sticks which connect the object and the generated pad." -msgstr "Breite der Verbindungsstäbe, die das Objekt und die erzeugte Grundschicht verbinden." - #: src/libslic3r/PrintConfig.cpp:2203 msgid "Width of the display" msgstr "Displaybreite" @@ -7419,6 +8181,11 @@ msgstr "Displaybreite" msgid "will always run at %1%%%" msgstr "wird immer mit %1%%% laufen" +#: src/slic3r/GUI/PresetHints.cpp:43 +#, c-format +msgid "will always run at %d%% " +msgstr "wird immer mit %d%% laufen " + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "will be turned off." msgstr "wird abgeschaltet." @@ -7435,17 +8202,15 @@ msgstr "Dieses Objekt zum Reinigen verwenden" msgid "Wipe into this object's infill" msgstr "Das Infill dieses Objekts zum Reinigen verwenden" -#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:90 -#: src/slic3r/GUI/GUI_ObjectList.cpp:564 src/libslic3r/PrintConfig.cpp:2202 -#: src/libslic3r/PrintConfig.cpp:2210 -msgid "Wipe options" -msgstr "Wischoptionen" - #: src/slic3r/GUI/GUI_Preview.cpp:238 src/slic3r/GUI/Tab.cpp:1130 #: src/libslic3r/GCode/PreviewData.cpp:174 msgid "Wipe tower" msgstr "Reinigungsturm" +#: src/slic3r/GUI/Tab.cpp:1281 src/slic3r/GUI/Tab.cpp:1298 +msgid "Wipe Tower" +msgstr "Reinigungsturm" + #: src/slic3r/GUI/Plater.cpp:1043 src/slic3r/GUI/Plater.cpp:1058 msgid "wipe tower" msgstr "Reinigungsturm" @@ -7454,14 +8219,14 @@ msgstr "Reinigungsturm" msgid "Wipe tower - Purging volume adjustment" msgstr "Reinigungsturm - Anpassung des Reinigungsvolumens" -#: src/slic3r/GUI/Tab.cpp:1664 -msgid "Wipe tower parameters" -msgstr "Reinigungsturm Parameter" - #: src/libslic3r/PrintConfig.cpp:2144 msgid "Wipe tower rotation angle" msgstr "Rotationswinkel des Reinigungsturms" +#: src/libslic3r/PrintConfig.cpp:2145 +msgid "Wipe tower rotation angle with respect to x-axis " +msgstr "Rotationswinkel des Reinigungsturms bezogen auf die X-Achse " + #: src/libslic3r/PrintConfig.cpp:2170 msgid "Wipe tower rotation angle with respect to x-axis." msgstr "Rotationswinkel des Reinigungsturms bezogen auf die X-Achse." @@ -7470,6 +8235,10 @@ msgstr "Rotationswinkel des Reinigungsturms bezogen auf die X-Achse." msgid "Wipe while retracting" msgstr "Während Einzug reinigen" +#: xs/src/libslic3r/PrintConfig.cpp:1997 +msgid "Wiping after toolchange will be preferentially done inside infills. This lowers the amount of waste but may result in longer print time due to additional travel moves." +msgstr "Das Reinigen nach dem Materialwechsel erfolgt vorzugsweise innerhalb von Füllungen. Das senkt die Abfallquote, kann aber durch zusätzliche Fahrten zu längeren Druckzeiten führen." + #: src/slic3r/GUI/PresetHints.cpp:224 msgid "with a volumetric rate" msgstr "mit einer Volumenrate von" @@ -7488,8 +8257,18 @@ msgid "World coordinates" msgstr "Weltkoordinaten" #: src/slic3r/GUI/UpdateDialogs.cpp:76 -msgid "Would you like to install it?\n\nNote that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n\nUpdated configuration bundles:" -msgstr "Möchten Sie dies installieren?\n\nBeachten Sie, dass zuerst eine Momentaufnahme der gesamten Konfiguration erstellt wird. Diese kann dann jederzeit wiederhergestellt werden, falls es ein Problem mit der neuen Version gibt.\n\nAktualisierte Konfigurationssammlungen:" +msgid "" +"Would you like to install it?\n" +"\n" +"Note that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n" +"\n" +"Updated configuration bundles:" +msgstr "" +"Möchten Sie dies installieren?\n" +"\n" +"Beachten Sie, dass zuerst eine Momentaufnahme der gesamten Konfiguration erstellt wird. Diese kann dann jederzeit wiederhergestellt werden, falls es ein Problem mit der neuen Version gibt.\n" +"\n" +"Aktualisierte Konfigurationssammlungen:" #: src/libslic3r/Zipper.cpp:95 msgid "write calledback failed" @@ -7555,30 +8334,34 @@ msgstr "Sie können alle Konfigurationsoptionen als Variablen in dieser Vorlage msgid "You can't change a type of the last solid part of the object." msgstr "Sie können nicht die Art des letzten soliden Teils des Objektes ändern." -#: src/slic3r/GUI/Plater.cpp:2243 -msgid "You can't load SLA project if there is at least one multi-part object on the bed" -msgstr "Sie können kein SLA-Projekt laden, wenn sich zumindest ein mehrteiliges Objekt auf dem Bett befindet" +#: src/slic3r/GUI/GUI_ObjectList.cpp:1711 +msgid "You can't delete the last intance from object." +msgstr "Sie können nicht die letzte Instanz des Objektes löschen." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1694 +msgid "You can't delete the last solid part from object." +msgstr "Sie können nicht das letzte solide Teil des Objekts löschen." #: src/slic3r/GUI/Plater.cpp:1746 -#, possible-c-format +#, c-format msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part" msgstr "Sie können die Objekte aus %s nicht hinzufügen, weil eines oder einige von ihnen mehrteilig ist (sind)" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:565 -msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection" -msgstr "Sie können den nichtgleichmäßigen Skalierungsmodus nicht für mehrere Objekte/Teileauswahlen verwenden" - -#: src/slic3r/GUI/GUI_App.cpp:300 -msgid "You may need to update your graphics card driver." -msgstr "Möglicherweise müssen Sie Ihren Grafikkartentreiber aktualisieren." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid "You have unsaved changes " +msgstr "Sie haben nicht gespeicherte Änderungen " #: src/slic3r/GUI/Preferences.cpp:130 -#, possible-c-format +#, c-format msgid "You need to restart %s to make the changes effective." msgstr "Sie müssen %s neu starten, damit die Änderungen wirksam werden." +#: src/slic3r/GUI/Preferences.cpp:126 +msgid "You need to restart Slic3r to make the changes effective." +msgstr "Sie müssen Slic3r neu starten, damit die Änderungen wirksam werden." + #: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -#, possible-c-format +#, c-format msgid "You started your selection with %s Item." msgstr "Sie haben Ihre Auswahl mit %s Elementen begonnen." diff --git a/resources/localization/en_US/PrusaSlicer_en.po b/resources/localization/en_US/PrusaSlicer_en.po new file mode 100644 index 00000000000..9e533558606 --- /dev/null +++ b/resources/localization/en_US/PrusaSlicer_en.po @@ -0,0 +1,7940 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-09 14:34+0200\n" +"PO-Revision-Date: 2019-04-09 15:04+0200\n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Last-Translator: Oleksandra Iushchenko \n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.8\n" + +#: src/slic3r/GUI/AboutDialog.cpp:35 +msgid "About Slic3r" +msgstr "About Slic3r" + +#: src/slic3r/GUI/AboutDialog.cpp:64 src/slic3r/GUI/MainFrame.cpp:52 +msgid "Version" +msgstr "Version" + +#: src/slic3r/GUI/BedShapeDialog.cpp:43 +msgid "Shape" +msgstr "Shape" + +#: src/slic3r/GUI/BedShapeDialog.cpp:51 +msgid "Rectangular" +msgstr "Rectangular" + +#: src/slic3r/GUI/BedShapeDialog.cpp:55 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:118 src/slic3r/GUI/Plater.cpp:136 +#: src/slic3r/GUI/Tab.cpp:2185 +msgid "Size" +msgstr "Size" + +#: src/slic3r/GUI/BedShapeDialog.cpp:56 +msgid "Size in X and Y of the rectangular plate." +msgstr "Size in X and Y of the rectangular plate." + +#: src/slic3r/GUI/BedShapeDialog.cpp:62 +msgid "Origin" +msgstr "Origin" + +#: src/slic3r/GUI/BedShapeDialog.cpp:63 +msgid "" +"Distance of the 0,0 G-code coordinate from the front left corner of the " +"rectangle." +msgstr "" +"Distance of the 0,0 G-code coordinate from the front left corner of the " +"rectangle." + +#: src/slic3r/GUI/BedShapeDialog.cpp:67 +msgid "Circular" +msgstr "Circular" + +#: src/slic3r/GUI/BedShapeDialog.cpp:70 src/slic3r/GUI/ConfigWizard.cpp:111 +#: src/slic3r/GUI/ConfigWizard.cpp:544 src/slic3r/GUI/ConfigWizard.cpp:558 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:115 +#: src/slic3r/GUI/RammingChart.cpp:81 src/slic3r/GUI/WipeTowerDialog.cpp:84 +#: src/libslic3r/PrintConfig.cpp:59 src/libslic3r/PrintConfig.cpp:66 +#: src/libslic3r/PrintConfig.cpp:75 src/libslic3r/PrintConfig.cpp:209 +#: src/libslic3r/PrintConfig.cpp:284 src/libslic3r/PrintConfig.cpp:292 +#: src/libslic3r/PrintConfig.cpp:342 src/libslic3r/PrintConfig.cpp:352 +#: src/libslic3r/PrintConfig.cpp:472 src/libslic3r/PrintConfig.cpp:483 +#: src/libslic3r/PrintConfig.cpp:501 src/libslic3r/PrintConfig.cpp:679 +#: src/libslic3r/PrintConfig.cpp:1165 src/libslic3r/PrintConfig.cpp:1226 +#: src/libslic3r/PrintConfig.cpp:1244 src/libslic3r/PrintConfig.cpp:1262 +#: src/libslic3r/PrintConfig.cpp:1314 src/libslic3r/PrintConfig.cpp:1324 +#: src/libslic3r/PrintConfig.cpp:1445 src/libslic3r/PrintConfig.cpp:1453 +#: src/libslic3r/PrintConfig.cpp:1494 src/libslic3r/PrintConfig.cpp:1502 +#: src/libslic3r/PrintConfig.cpp:1512 src/libslic3r/PrintConfig.cpp:1520 +#: src/libslic3r/PrintConfig.cpp:1528 src/libslic3r/PrintConfig.cpp:1611 +#: src/libslic3r/PrintConfig.cpp:1827 src/libslic3r/PrintConfig.cpp:1897 +#: src/libslic3r/PrintConfig.cpp:1931 src/libslic3r/PrintConfig.cpp:2123 +#: src/libslic3r/PrintConfig.cpp:2130 src/libslic3r/PrintConfig.cpp:2137 +#: src/libslic3r/PrintConfig.cpp:2167 src/libslic3r/PrintConfig.cpp:2177 +#: src/libslic3r/PrintConfig.cpp:2187 src/libslic3r/PrintConfig.cpp:2293 +#: src/libslic3r/PrintConfig.cpp:2368 src/libslic3r/PrintConfig.cpp:2377 +#: src/libslic3r/PrintConfig.cpp:2386 src/libslic3r/PrintConfig.cpp:2396 +#: src/libslic3r/PrintConfig.cpp:2440 src/libslic3r/PrintConfig.cpp:2450 +#: src/libslic3r/PrintConfig.cpp:2469 src/libslic3r/PrintConfig.cpp:2479 +#: src/libslic3r/PrintConfig.cpp:2488 src/libslic3r/PrintConfig.cpp:2506 +#: src/libslic3r/PrintConfig.cpp:2521 src/libslic3r/PrintConfig.cpp:2532 +#: src/libslic3r/PrintConfig.cpp:2545 src/libslic3r/PrintConfig.cpp:2555 +msgid "mm" +msgstr "mm" + +#: src/slic3r/GUI/BedShapeDialog.cpp:71 src/libslic3r/PrintConfig.cpp:676 +msgid "Diameter" +msgstr "Diameter" + +#: src/slic3r/GUI/BedShapeDialog.cpp:72 +msgid "" +"Diameter of the print bed. It is assumed that origin (0,0) is located in the " +"center." +msgstr "" +"Diameter of the print bed. It is assumed that origin (0,0) is located in the " +"center." + +#: src/slic3r/GUI/BedShapeDialog.cpp:76 src/slic3r/GUI/GUI_Preview.cpp:239 +#: src/libslic3r/GCode/PreviewData.cpp:175 +msgid "Custom" +msgstr "Custom" + +#: src/slic3r/GUI/BedShapeDialog.cpp:80 +msgid "Load shape from STL..." +msgstr "Load shape from STL..." + +#: src/slic3r/GUI/BedShapeDialog.cpp:126 +msgid "Settings" +msgstr "Settings" + +#: src/slic3r/GUI/BedShapeDialog.cpp:299 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" + +#: src/slic3r/GUI/BedShapeDialog.cpp:316 src/slic3r/GUI/GUI_ObjectList.cpp:1252 +msgid "Error! " +msgstr "Error! " + +#: src/slic3r/GUI/BedShapeDialog.cpp:325 +msgid "The selected file contains no geometry." +msgstr "The selected file contains no geometry." + +#: src/slic3r/GUI/BedShapeDialog.cpp:329 +msgid "" +"The selected file contains several disjoint areas. This is not supported." +msgstr "" +"The selected file contains several disjoint areas. This is not supported." + +#: src/slic3r/GUI/BedShapeDialog.hpp:44 src/slic3r/GUI/ConfigWizard.cpp:507 +msgid "Bed Shape" +msgstr "Bed Shape" + +#: src/slic3r/GUI/BonjourDialog.cpp:55 +msgid "Network lookup" +msgstr "Network lookup" + +#: src/slic3r/GUI/BonjourDialog.cpp:72 +msgid "Address" +msgstr "Address" + +#: src/slic3r/GUI/BonjourDialog.cpp:73 +msgid "Hostname" +msgstr "Hostname" + +#: src/slic3r/GUI/BonjourDialog.cpp:74 +msgid "Service name" +msgstr "Service name" + +#: src/slic3r/GUI/BonjourDialog.cpp:76 +msgid "OctoPrint version" +msgstr "OctoPrint version" + +#: src/slic3r/GUI/BonjourDialog.cpp:218 +msgid "Searching for devices" +msgstr "Searching for devices" + +#: src/slic3r/GUI/BonjourDialog.cpp:225 +msgid "Finished" +msgstr "Finished" + +#: src/slic3r/GUI/ButtonsDescription.cpp:15 +msgid "Buttons And Text Colors Description" +msgstr "Buttons And Text Colors Description" + +#: src/slic3r/GUI/ButtonsDescription.cpp:40 +msgid "Value is the same as the system value" +msgstr "Value is the same as the system value" + +#: src/slic3r/GUI/ButtonsDescription.cpp:57 +msgid "" +"Value was changed and is not equal to the system value or the last saved " +"preset" +msgstr "" +"Value was changed and is not equal to the system value or the last saved " +"preset" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:17 +msgid "Upgrade" +msgstr "Upgrade" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:19 +msgid "Downgrade" +msgstr "Downgrade" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:21 +msgid "Before roll back" +msgstr "Before roll back" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:23 +msgid "User" +msgstr "User" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:26 +msgid "Unknown" +msgstr "Unknown" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:38 +msgid "Active: " +msgstr "Active: " + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:44 +msgid "slic3r version" +msgstr "slic3r version" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 src/slic3r/GUI/Preset.cpp:1250 +msgid "print" +msgstr "print" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:46 +msgid "filaments" +msgstr "filaments" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:47 src/slic3r/GUI/Preset.cpp:1254 +msgid "printer" +msgstr "printer" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:51 src/slic3r/GUI/Tab.cpp:872 +msgid "vendor" +msgstr "vendor" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:51 +msgid "version" +msgstr "version" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 +msgid "min slic3r version" +msgstr "min slic3r version" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:54 +msgid "max slic3r version" +msgstr "max slic3r version" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:57 +msgid "model" +msgstr "model" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:57 +msgid "variants" +msgstr "variants" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 +msgid "Incompatible with this Slic3r" +msgstr "Incompatible with this Slic3r" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:72 +msgid "Activate" +msgstr "Activate" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:98 +msgid "Configuration Snapshots" +msgstr "Configuration Snapshots" + +#: src/slic3r/GUI/ConfigWizard.cpp:111 +msgid "nozzle" +msgstr "nozzle" + +#: src/slic3r/GUI/ConfigWizard.cpp:115 +msgid "Alternate nozzles:" +msgstr "Alternate nozzles:" + +#: src/slic3r/GUI/ConfigWizard.cpp:181 +msgid "All standard" +msgstr "All standard" + +#: src/slic3r/GUI/ConfigWizard.cpp:182 src/slic3r/GUI/Tab.cpp:2909 +msgid "All" +msgstr "All" + +#: src/slic3r/GUI/ConfigWizard.cpp:183 src/slic3r/GUI/Plater.cpp:414 +#: src/libslic3r/GCode/PreviewData.cpp:162 +msgid "None" +msgstr "None" + +#: src/slic3r/GUI/ConfigWizard.cpp:284 +#, c-format +msgid "Welcome to the Slic3r %s" +msgstr "Welcome to the Slic3r %s" + +#: src/slic3r/GUI/ConfigWizard.cpp:284 +msgid "Welcome" +msgstr "Welcome" + +#: src/slic3r/GUI/ConfigWizard.cpp:288 src/slic3r/GUI/GUI_App.cpp:600 +#, c-format +msgid "Run %s" +msgstr "Run %s" + +#: src/slic3r/GUI/ConfigWizard.cpp:290 +#, c-format +msgid "" +"Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial " +"configuration; just a few settings and you will be ready to print." +msgstr "" +"Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial " +"configuration; just a few settings and you will be ready to print." + +#: src/slic3r/GUI/ConfigWizard.cpp:294 +msgid "" +"Remove user profiles - install from scratch (a snapshot will be taken " +"beforehand)" +msgstr "" +"Remove user profiles - install from scratch (a snapshot will be taken " +"beforehand)" + +#: src/slic3r/GUI/ConfigWizard.cpp:325 +#, c-format +msgid "%s Family" +msgstr "%s Family" + +#: src/slic3r/GUI/ConfigWizard.cpp:362 +msgid "Custom Printer Setup" +msgstr "Custom Printer Setup" + +#: src/slic3r/GUI/ConfigWizard.cpp:362 +msgid "Custom Printer" +msgstr "Custom Printer" + +#: src/slic3r/GUI/ConfigWizard.cpp:364 +msgid "Define a custom printer profile" +msgstr "Define a custom printer profile" + +#: src/slic3r/GUI/ConfigWizard.cpp:366 +msgid "Custom profile name:" +msgstr "Custom profile name:" + +#: src/slic3r/GUI/ConfigWizard.cpp:390 +msgid "Automatic updates" +msgstr "Automatic updates" + +#: src/slic3r/GUI/ConfigWizard.cpp:390 +msgid "Updates" +msgstr "Updates" + +#: src/slic3r/GUI/ConfigWizard.cpp:398 src/slic3r/GUI/Preferences.cpp:59 +msgid "Check for application updates" +msgstr "Check for application updates" + +#: src/slic3r/GUI/ConfigWizard.cpp:401 src/slic3r/GUI/Preferences.cpp:61 +msgid "" +"If enabled, Slic3r checks for new versions of Slic3r PE online. When a new " +"version becomes available a notification is displayed at the next " +"application startup (never during program usage). This is only a " +"notification mechanisms, no automatic installation is done." +msgstr "" +"If enabled, Slic3r checks for new versions of Slic3r PE online. When a new " +"version becomes available a notification is displayed at the next " +"application startup (never during program usage). This is only a " +"notification mechanisms, no automatic installation is done." + +#: src/slic3r/GUI/ConfigWizard.cpp:405 src/slic3r/GUI/Preferences.cpp:67 +msgid "Update built-in Presets automatically" +msgstr "Update built-in Presets automatically" + +#: src/slic3r/GUI/ConfigWizard.cpp:408 src/slic3r/GUI/Preferences.cpp:69 +msgid "" +"If enabled, Slic3r downloads updates of built-in system presets in the " +"background. These updates are downloaded into a separate temporary location. " +"When a new preset version becomes available it is offered at application " +"startup." +msgstr "" +"If enabled, Slic3r downloads updates of built-in system presets in the " +"background. These updates are downloaded into a separate temporary location. " +"When a new preset version becomes available it is offered at application " +"startup." + +#: src/slic3r/GUI/ConfigWizard.cpp:409 +msgid "" +"Updates are never applied without user's consent and never overwrite user's " +"customized settings." +msgstr "" +"Updates are never applied without user's consent and never overwrite user's " +"customized settings." + +#: src/slic3r/GUI/ConfigWizard.cpp:414 +msgid "" +"Additionally a backup snapshot of the whole configuration is created before " +"an update is applied." +msgstr "" +"Additionally a backup snapshot of the whole configuration is created before " +"an update is applied." + +#: src/slic3r/GUI/ConfigWizard.cpp:421 +msgid "Other Vendors" +msgstr "Other Vendors" + +#: src/slic3r/GUI/ConfigWizard.cpp:423 +msgid "Pick another vendor supported by Slic3r PE:" +msgstr "Pick another vendor supported by Slic3r PE:" + +#: src/slic3r/GUI/ConfigWizard.cpp:469 +msgid "Firmware Type" +msgstr "Firmware Type" + +#: src/slic3r/GUI/ConfigWizard.cpp:469 src/slic3r/GUI/Tab.cpp:1870 +msgid "Firmware" +msgstr "Firmware" + +#: src/slic3r/GUI/ConfigWizard.cpp:473 +msgid "Choose the type of firmware used by your printer." +msgstr "Choose the type of firmware used by your printer." + +#: src/slic3r/GUI/ConfigWizard.cpp:507 +msgid "Bed Shape and Size" +msgstr "Bed Shape and Size" + +#: src/slic3r/GUI/ConfigWizard.cpp:510 +msgid "Set the shape of your printer's bed." +msgstr "Set the shape of your printer's bed." + +#: src/slic3r/GUI/ConfigWizard.cpp:524 +msgid "Filament and Nozzle Diameters" +msgstr "Filament and Nozzle Diameters" + +#: src/slic3r/GUI/ConfigWizard.cpp:524 +msgid "Print Diameters" +msgstr "Print Diameters" + +#: src/slic3r/GUI/ConfigWizard.cpp:540 +msgid "Enter the diameter of your printer's hot end nozzle." +msgstr "Enter the diameter of your printer's hot end nozzle." + +#: src/slic3r/GUI/ConfigWizard.cpp:543 +msgid "Nozzle Diameter:" +msgstr "Nozzle Diameter:" + +#: src/slic3r/GUI/ConfigWizard.cpp:553 +msgid "Enter the diameter of your filament." +msgstr "Enter the diameter of your filament." + +#: src/slic3r/GUI/ConfigWizard.cpp:554 +msgid "" +"Good precision is required, so use a caliper and do multiple measurements " +"along the filament, then compute the average." +msgstr "" +"Good precision is required, so use a caliper and do multiple measurements " +"along the filament, then compute the average." + +#: src/slic3r/GUI/ConfigWizard.cpp:557 +msgid "Filament Diameter:" +msgstr "Filament Diameter:" + +#: src/slic3r/GUI/ConfigWizard.cpp:575 +msgid "Extruder and Bed Temperatures" +msgstr "Extruder and Bed Temperatures" + +#: src/slic3r/GUI/ConfigWizard.cpp:575 +msgid "Temperatures" +msgstr "Temperatures" + +#: src/slic3r/GUI/ConfigWizard.cpp:591 +msgid "Enter the temperature needed for extruding your filament." +msgstr "Enter the temperature needed for extruding your filament." + +#: src/slic3r/GUI/ConfigWizard.cpp:592 +msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS." +msgstr "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS." + +#: src/slic3r/GUI/ConfigWizard.cpp:595 +msgid "Extrusion Temperature:" +msgstr "Extrusion Temperature:" + +#: src/slic3r/GUI/ConfigWizard.cpp:596 src/slic3r/GUI/ConfigWizard.cpp:610 +msgid "°C" +msgstr "°C" + +#: src/slic3r/GUI/ConfigWizard.cpp:605 +msgid "" +"Enter the bed temperature needed for getting your filament to stick to your " +"heated bed." +msgstr "" +"Enter the bed temperature needed for getting your filament to stick to your " +"heated bed." + +#: src/slic3r/GUI/ConfigWizard.cpp:606 +msgid "" +"A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have " +"no heated bed." +msgstr "" +"A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have " +"no heated bed." + +#: src/slic3r/GUI/ConfigWizard.cpp:609 +msgid "Bed Temperature:" +msgstr "Bed Temperature:" + +#: src/slic3r/GUI/ConfigWizard.cpp:1001 +msgid "Select all standard printers" +msgstr "Select all standard printers" + +#: src/slic3r/GUI/ConfigWizard.cpp:1004 +msgid "< &Back" +msgstr "< &Back" + +#: src/slic3r/GUI/ConfigWizard.cpp:1005 +msgid "&Next >" +msgstr "&Next >" + +#: src/slic3r/GUI/ConfigWizard.cpp:1006 +msgid "&Finish" +msgstr "&Finish" + +#: src/slic3r/GUI/ConfigWizard.cpp:1007 src/slic3r/GUI/FirmwareDialog.cpp:142 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:37 +#: src/slic3r/GUI/ProgressStatusBar.cpp:28 +msgid "Cancel" +msgstr "Cancel" + +#: src/slic3r/GUI/ConfigWizard.cpp:1021 +msgid "Prusa FFF Technology Printers" +msgstr "Prusa FFF Technology Printers" + +#: src/slic3r/GUI/ConfigWizard.cpp:1024 +msgid "Prusa MSLA Technology Printers" +msgstr "Prusa MSLA Technology Printers" + +#: src/slic3r/GUI/ConfigWizard.cpp:1111 +msgid "Configuration Wizard" +msgstr "Configuration Wizard" + +#: src/slic3r/GUI/ConfigWizard.cpp:1112 +msgid "Configuration &Wizard" +msgstr "Configuration &Wizard" + +#: src/slic3r/GUI/ConfigWizard.cpp:1114 +msgid "Configuration Assistant" +msgstr "Configuration Assistant" + +#: src/slic3r/GUI/ConfigWizard.cpp:1115 +msgid "Configuration &Assistant" +msgstr "Configuration &Assistant" + +#: src/slic3r/GUI/Field.cpp:112 +msgid "default value" +msgstr "default value" + +#: src/slic3r/GUI/Field.cpp:115 +msgid "parameter name" +msgstr "parameter name" + +#: src/slic3r/GUI/Field.cpp:143 +#, c-format +msgid "%s doesn't support percentage" +msgstr "%s doesn't support percentage" + +#: src/slic3r/GUI/Field.cpp:157 src/slic3r/GUI/Field.cpp:180 +msgid "Invalid numeric input." +msgstr "Invalid numeric input." + +#: src/slic3r/GUI/Field.cpp:162 +msgid "Input value is out of range" +msgstr "Input value is out of range" + +#: src/slic3r/GUI/Field.cpp:188 +#, c-format +msgid "" +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." +msgstr "" +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." + +#: src/slic3r/GUI/Field.cpp:191 +msgid "Parameter validation" +msgstr "Parameter validation" + +#: src/slic3r/GUI/FirmwareDialog.cpp:141 +msgid "Flash!" +msgstr "Flash!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:143 +msgid "Flashing in progress. Please do not disconnect the printer!" +msgstr "Flashing in progress. Please do not disconnect the printer!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:187 +msgid "Flashing failed: " +msgstr "Flashing failed: " + +#: src/slic3r/GUI/FirmwareDialog.cpp:268 +msgid "Flashing succeeded!" +msgstr "Flashing succeeded!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:269 +msgid "Flashing failed. Please see the avrdude log below." +msgstr "Flashing failed. Please see the avrdude log below." + +#: src/slic3r/GUI/FirmwareDialog.cpp:270 +msgid "Flashing cancelled." +msgstr "Flashing cancelled." + +#: src/slic3r/GUI/FirmwareDialog.cpp:308 +#, c-format +msgid "" +"This firmware hex file does not match the printer model.\n" +"The hex file is intended for: %s\n" +"Printer reported: %s\n" +"\n" +"Do you want to continue and flash this hex file anyway?\n" +"Please only continue if you are sure this is the right thing to do." +msgstr "" +"This firmware hex file does not match the printer model.\n" +"The hex file is intended for: %s\n" +"Printer reported: %s\n" +"\n" +"Do you want to continue and flash this hex file anyway?\n" +"Please only continue if you are sure this is the right thing to do." + +#: src/slic3r/GUI/FirmwareDialog.cpp:395 src/slic3r/GUI/FirmwareDialog.cpp:431 +#, c-format +msgid "" +"Multiple %s devices found. Please only connect one at a time for flashing." +msgstr "" +"Multiple %s devices found. Please only connect one at a time for flashing." + +#: src/slic3r/GUI/FirmwareDialog.cpp:412 +#, c-format +msgid "" +"The %s device was not found.\n" +"If the device is connected, please press the Reset button next to the USB " +"connector ..." +msgstr "" +"The %s device was not found.\n" +"If the device is connected, please press the Reset button next to the USB " +"connector ..." + +#: src/slic3r/GUI/FirmwareDialog.cpp:525 +#, c-format +msgid "The %s device could not have been found" +msgstr "The %s device could not have been found" + +#: src/slic3r/GUI/FirmwareDialog.cpp:603 +#, c-format +msgid "Error accessing port at %s: %s" +msgstr "Error accessing port at %s: %s" + +#: src/slic3r/GUI/FirmwareDialog.cpp:605 +#, c-format +msgid "Error: %s" +msgstr "Error: %s" + +#: src/slic3r/GUI/FirmwareDialog.cpp:735 +msgid "Firmware flasher" +msgstr "Firmware flasher" + +#: src/slic3r/GUI/FirmwareDialog.cpp:762 +msgid "Firmware image:" +msgstr "Firmware image:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:766 +msgid "Serial port:" +msgstr "Serial port:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:768 +msgid "Autodetected" +msgstr "Autodetected" + +#: src/slic3r/GUI/FirmwareDialog.cpp:769 +msgid "Rescan" +msgstr "Rescan" + +#: src/slic3r/GUI/FirmwareDialog.cpp:776 +msgid "Progress:" +msgstr "Progress:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:779 +msgid "Status:" +msgstr "Status:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:780 +msgid "Ready" +msgstr "Ready" + +#: src/slic3r/GUI/FirmwareDialog.cpp:800 +msgid "Advanced: Output log" +msgstr "Advanced: Output log" + +#: src/slic3r/GUI/FirmwareDialog.cpp:811 +#: src/slic3r/GUI/PrintHostDialogs.cpp:161 +msgid "Close" +msgstr "Close" + +#: src/slic3r/GUI/FirmwareDialog.cpp:859 +msgid "" +"Are you sure you want to cancel firmware flashing?\n" +"This could leave your printer in an unusable state!" +msgstr "" +"Are you sure you want to cancel firmware flashing?\n" +"This could leave your printer in an unusable state!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:860 +msgid "Confirmation" +msgstr "Confirmation" + +#: src/slic3r/GUI/FirmwareDialog.cpp:863 +msgid "Cancelling..." +msgstr "Cancelling..." + +#: src/slic3r/GUI/GLCanvas3D.cpp:709 +msgid "Detected object outside print volume" +msgstr "Detected object outside print volume" + +#: src/slic3r/GUI/GLCanvas3D.cpp:710 +msgid "Detected toolpath outside print volume" +msgstr "Detected toolpath outside print volume" + +#: src/slic3r/GUI/GLCanvas3D.cpp:711 +msgid "Some objects are not visible when editing supports" +msgstr "Some objects are not visible when editing supports" + +#: src/slic3r/GUI/GLCanvas3D.cpp:713 +msgid "" +"Detected object outside print volume\n" +"Resolve a clash to continue slicing/export process correctly" +msgstr "" +"Detected object outside print volume\n" +"Resolve a clash to continue slicing/export process correctly" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:35 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:195 +msgid "Rotate lower part upwards" +msgstr "Rotate lower part upwards" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:36 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:198 +msgid "Perform cut" +msgstr "Perform cut" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" +msgstr "Cut object:" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +msgid "Cut [C]" +msgstr "Cut [C]" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3006 +msgid "Cut" +msgstr "Cut" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:193 +msgid "Keep upper part" +msgstr "Keep upper part" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:194 +msgid "Keep lower part" +msgstr "Keep lower part" + +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 +msgid "Place on face [F]" +msgstr "Place on face [F]" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:51 +msgid "Move [M]" +msgstr "Move [M]" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:176 +msgid "Position (mm)" +msgstr "Position (mm)" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:176 +msgid "Displacement (mm)" +msgstr "Displacement (mm)" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +msgid "Rotate [R]" +msgstr "Rotate [R]" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:491 +msgid "Rotation (deg)" +msgstr "Rotation (deg)" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:51 +msgid "Scale [S]" +msgstr "Scale [S]" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:276 +msgid "Scale (%)" +msgstr "Scale (%)" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:597 +msgid "Left mouse click - add point" +msgstr "Left mouse click - add point" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:598 +msgid "Right mouse click - remove point" +msgstr "Right mouse click - remove point" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:599 +msgid "Shift + Left (+ drag) - select point(s)" +msgstr "Shift + Left (+ drag) - select point(s)" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:606 +msgid "Head diameter: " +msgstr "Head diameter: " + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:618 +msgid "Lock supports under new islands" +msgstr "Lock supports under new islands" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:622 +msgid "Remove selected points" +msgstr "Remove selected points" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:626 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:679 +msgid "Remove all points" +msgstr "Remove all points" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:631 +msgid "Apply changes" +msgstr "Apply changes" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:636 +msgid "Discard changes" +msgstr "Discard changes" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:644 +msgid "Minimal points distance: " +msgstr "Minimal points distance: " + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:655 +msgid "Support points density: " +msgstr "Support points density: " + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:669 +msgid "Auto-generate points [A]" +msgstr "Auto-generate points [A]" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:675 +msgid "Manual editing [M]" +msgstr "Manual editing [M]" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:738 +msgid "SLA Support Points [L]" +msgstr "SLA Support Points [L]" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:767 +msgid "Do you want to save your manually edited support points ?\n" +msgstr "Do you want to save your manually edited support points ?\n" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:768 +msgid "Save changes?" +msgstr "Save changes?" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:897 +msgid "" +"Autogeneration will erase all manually edited points.\n" +"\n" +"Are you sure you want to do it?\n" +msgstr "" +"Autogeneration will erase all manually edited points.\n" +"\n" +"Are you sure you want to do it?\n" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:899 src/slic3r/GUI/GUI.cpp:288 +#: src/slic3r/GUI/WipeTowerDialog.cpp:44 src/slic3r/GUI/WipeTowerDialog.cpp:328 +msgid "Warning" +msgstr "Warning" + +#: src/slic3r/GUI/GUI.cpp:147 src/slic3r/GUI/Tab.cpp:2720 +msgid "It's impossible to print multi-part object(s) with SLA technology." +msgstr "It's impossible to print multi-part object(s) with SLA technology." + +#: src/slic3r/GUI/GUI.cpp:148 +msgid "Please check and fix your object list." +msgstr "Please check and fix your object list." + +#: src/slic3r/GUI/GUI.cpp:149 src/slic3r/GUI/GUI_App.cpp:679 +#: src/slic3r/GUI/Tab.cpp:2722 +msgid "Attention!" +msgstr "Attention!" + +#: src/slic3r/GUI/GUI.cpp:282 +msgid "Notice" +msgstr "Notice" + +#: src/slic3r/GUI/GUI_App.cpp:318 +msgid "Changing of an application language" +msgstr "Changing of an application language" + +#: src/slic3r/GUI/GUI_App.cpp:326 src/slic3r/GUI/GUI_App.cpp:335 +msgid "Recreating" +msgstr "Recreating" + +#: src/slic3r/GUI/GUI_App.cpp:339 +msgid "Loading of a current presets" +msgstr "Loading of a current presets" + +#: src/slic3r/GUI/GUI_App.cpp:347 +msgid "Loading of a mode view" +msgstr "Loading of a mode view" + +#: src/slic3r/GUI/GUI_App.cpp:429 +msgid "Choose one file (3MF):" +msgstr "Choose one file (3MF):" + +#: src/slic3r/GUI/GUI_App.cpp:441 +msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" + +#: src/slic3r/GUI/GUI_App.cpp:454 +msgid "Array of language names and identifiers should have the same size." +msgstr "Array of language names and identifiers should have the same size." + +#: src/slic3r/GUI/GUI_App.cpp:464 +msgid "Select the language" +msgstr "Select the language" + +#: src/slic3r/GUI/GUI_App.cpp:464 +msgid "Language" +msgstr "Language" + +#: src/slic3r/GUI/GUI_App.cpp:534 src/slic3r/GUI/GUI_ObjectList.cpp:1067 +#: src/libslic3r/PrintConfig.cpp:298 +msgid "Default" +msgstr "Default" + +#: src/slic3r/GUI/GUI_App.cpp:603 +msgid "&Configuration Snapshots" +msgstr "&Configuration Snapshots" + +#: src/slic3r/GUI/GUI_App.cpp:603 +msgid "Inspect / activate configuration snapshots" +msgstr "Inspect / activate configuration snapshots" + +#: src/slic3r/GUI/GUI_App.cpp:604 +msgid "Take Configuration &Snapshot" +msgstr "Take Configuration &Snapshot" + +#: src/slic3r/GUI/GUI_App.cpp:604 +msgid "Capture a configuration snapshot" +msgstr "Capture a configuration snapshot" + +#: src/slic3r/GUI/GUI_App.cpp:607 +msgid "&Preferences" +msgstr "&Preferences" + +#: src/slic3r/GUI/GUI_App.cpp:613 +msgid "Application preferences" +msgstr "Application preferences" + +#: src/slic3r/GUI/GUI_App.cpp:616 src/slic3r/GUI/wxExtensions.cpp:2446 +msgid "Simple" +msgstr "Simple" + +#: src/slic3r/GUI/GUI_App.cpp:616 +msgid "Simple View Mode" +msgstr "Simple View Mode" + +#: src/slic3r/GUI/GUI_App.cpp:617 src/slic3r/GUI/GUI_ObjectList.cpp:73 +#: src/slic3r/GUI/Tab.cpp:977 src/slic3r/GUI/Tab.cpp:992 +#: src/slic3r/GUI/Tab.cpp:1090 src/slic3r/GUI/Tab.cpp:1093 +#: src/slic3r/GUI/Tab.cpp:1466 src/slic3r/GUI/Tab.cpp:1890 +#: src/slic3r/GUI/Tab.cpp:3347 src/slic3r/GUI/wxExtensions.cpp:2447 +#: src/libslic3r/PrintConfig.cpp:72 src/libslic3r/PrintConfig.cpp:186 +#: src/libslic3r/PrintConfig.cpp:349 src/libslic3r/PrintConfig.cpp:987 +#: src/libslic3r/PrintConfig.cpp:2173 +msgid "Advanced" +msgstr "Advanced" + +#: src/slic3r/GUI/GUI_App.cpp:617 +msgid "Advanced View Mode" +msgstr "Advanced View Mode" + +#: src/slic3r/GUI/GUI_App.cpp:618 src/slic3r/GUI/wxExtensions.cpp:2448 +msgid "Expert" +msgstr "Expert" + +#: src/slic3r/GUI/GUI_App.cpp:618 +msgid "Expert View Mode" +msgstr "Expert View Mode" + +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Mode" +msgstr "Mode" + +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Slic3r View Mode" +msgstr "Slic3r View Mode" + +#: src/slic3r/GUI/GUI_App.cpp:625 +msgid "Change Application &Language" +msgstr "Change Application &Language" + +#: src/slic3r/GUI/GUI_App.cpp:627 +msgid "Flash printer &firmware" +msgstr "Flash printer &firmware" + +#: src/slic3r/GUI/GUI_App.cpp:627 +msgid "Upload a firmware image into an Arduino based printer" +msgstr "Upload a firmware image into an Arduino based printer" + +#: src/slic3r/GUI/GUI_App.cpp:639 +msgid "Taking configuration snapshot" +msgstr "Taking configuration snapshot" + +#: src/slic3r/GUI/GUI_App.cpp:639 +msgid "Snapshot name" +msgstr "Snapshot name" + +#: src/slic3r/GUI/GUI_App.cpp:676 +msgid "Application will be restarted after language change." +msgstr "Application will be restarted after language change." + +#: src/slic3r/GUI/GUI_App.cpp:677 +msgid "3D-Scene will be cleaned." +msgstr "3D-Scene will be cleaned." + +#: src/slic3r/GUI/GUI_App.cpp:678 +msgid "Please, check your changes before." +msgstr "Please, check your changes before." + +#: src/slic3r/GUI/GUI_App.cpp:706 +msgid "&Configuration" +msgstr "&Configuration" + +#: src/slic3r/GUI/GUI_App.cpp:726 +msgid "You have unsaved changes " +msgstr "You have unsaved changes " + +#: src/slic3r/GUI/GUI_App.cpp:726 +msgid ". Discard changes and continue anyway?" +msgstr ". Discard changes and continue anyway?" + +#: src/slic3r/GUI/GUI_App.cpp:727 +msgid "Unsaved Presets" +msgstr "Unsaved Presets" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:28 src/slic3r/GUI/GUI_ObjectList.cpp:65 +#: src/libslic3r/PrintConfig.cpp:56 src/libslic3r/PrintConfig.cpp:149 +#: src/libslic3r/PrintConfig.cpp:380 src/libslic3r/PrintConfig.cpp:437 +#: src/libslic3r/PrintConfig.cpp:445 src/libslic3r/PrintConfig.cpp:841 +#: src/libslic3r/PrintConfig.cpp:1025 src/libslic3r/PrintConfig.cpp:1304 +#: src/libslic3r/PrintConfig.cpp:1370 src/libslic3r/PrintConfig.cpp:1551 +#: src/libslic3r/PrintConfig.cpp:1986 src/libslic3r/PrintConfig.cpp:2042 +msgid "Layers and Perimeters" +msgstr "Layers and Perimeters" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:66 +#: src/slic3r/GUI/Plater.cpp:431 src/slic3r/GUI/Tab.cpp:981 +#: src/slic3r/GUI/Tab.cpp:982 src/slic3r/GUI/Tab.cpp:1311 +#: src/libslic3r/PrintConfig.cpp:166 src/libslic3r/PrintConfig.cpp:388 +#: src/libslic3r/PrintConfig.cpp:728 src/libslic3r/PrintConfig.cpp:742 +#: src/libslic3r/PrintConfig.cpp:779 src/libslic3r/PrintConfig.cpp:932 +#: src/libslic3r/PrintConfig.cpp:942 src/libslic3r/PrintConfig.cpp:960 +#: src/libslic3r/PrintConfig.cpp:978 src/libslic3r/PrintConfig.cpp:997 +#: src/libslic3r/PrintConfig.cpp:1658 src/libslic3r/PrintConfig.cpp:1675 +msgid "Infill" +msgstr "Infill" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:30 src/slic3r/GUI/GUI_ObjectList.cpp:67 +#: src/slic3r/GUI/GUI_Preview.cpp:236 src/slic3r/GUI/Tab.cpp:1010 +#: src/slic3r/GUI/Tab.cpp:1011 src/libslic3r/PrintConfig.cpp:333 +#: src/libslic3r/PrintConfig.cpp:1431 src/libslic3r/PrintConfig.cpp:1779 +#: src/libslic3r/PrintConfig.cpp:1785 src/libslic3r/PrintConfig.cpp:1793 +#: src/libslic3r/PrintConfig.cpp:1805 src/libslic3r/PrintConfig.cpp:1815 +#: src/libslic3r/PrintConfig.cpp:1823 src/libslic3r/PrintConfig.cpp:1838 +#: src/libslic3r/PrintConfig.cpp:1859 src/libslic3r/PrintConfig.cpp:1870 +#: src/libslic3r/PrintConfig.cpp:1886 src/libslic3r/PrintConfig.cpp:1895 +#: src/libslic3r/PrintConfig.cpp:1904 src/libslic3r/PrintConfig.cpp:1915 +#: src/libslic3r/PrintConfig.cpp:1929 src/libslic3r/PrintConfig.cpp:1937 +#: src/libslic3r/PrintConfig.cpp:1938 src/libslic3r/PrintConfig.cpp:1947 +#: src/libslic3r/PrintConfig.cpp:1955 src/libslic3r/PrintConfig.cpp:1969 +#: src/libslic3r/GCode/PreviewData.cpp:172 +msgid "Support material" +msgstr "Support material" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:33 src/slic3r/GUI/GUI_ObjectList.cpp:69 +#: src/slic3r/GUI/Tab.cpp:1070 src/slic3r/GUI/Tab.cpp:1794 +#: src/libslic3r/PrintConfig.cpp:455 src/libslic3r/PrintConfig.cpp:953 +#: src/libslic3r/PrintConfig.cpp:1339 src/libslic3r/PrintConfig.cpp:1667 +#: src/libslic3r/PrintConfig.cpp:1851 src/libslic3r/PrintConfig.cpp:1877 +#: src/libslic3r/PrintConfig.cpp:2149 src/libslic3r/PrintConfig.cpp:2157 +msgid "Extruders" +msgstr "Extruders" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:39 +msgid "Pad and Support" +msgstr "Pad and Support" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:68 src/slic3r/GUI/GUI_Preview.cpp:215 +#: src/slic3r/GUI/Tab.cpp:1035 src/libslic3r/PrintConfig.cpp:198 +#: src/libslic3r/PrintConfig.cpp:425 src/libslic3r/PrintConfig.cpp:870 +#: src/libslic3r/PrintConfig.cpp:998 src/libslic3r/PrintConfig.cpp:1360 +#: src/libslic3r/PrintConfig.cpp:1597 src/libslic3r/PrintConfig.cpp:1646 +#: src/libslic3r/PrintConfig.cpp:1697 src/libslic3r/PrintConfig.cpp:2028 +msgid "Speed" +msgstr "Speed" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:70 src/libslic3r/PrintConfig.cpp:415 +#: src/libslic3r/PrintConfig.cpp:522 src/libslic3r/PrintConfig.cpp:829 +#: src/libslic3r/PrintConfig.cpp:961 src/libslic3r/PrintConfig.cpp:1348 +#: src/libslic3r/PrintConfig.cpp:1687 src/libslic3r/PrintConfig.cpp:1860 +#: src/libslic3r/PrintConfig.cpp:2017 +msgid "Extrusion Width" +msgstr "Extrusion Width" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:75 src/slic3r/GUI/Plater.cpp:410 +#: src/slic3r/GUI/Tab.cpp:3309 src/slic3r/GUI/Tab.cpp:3310 +#: src/libslic3r/PrintConfig.cpp:2359 src/libslic3r/PrintConfig.cpp:2366 +#: src/libslic3r/PrintConfig.cpp:2375 src/libslic3r/PrintConfig.cpp:2384 +#: src/libslic3r/PrintConfig.cpp:2394 src/libslic3r/PrintConfig.cpp:2420 +#: src/libslic3r/PrintConfig.cpp:2427 src/libslic3r/PrintConfig.cpp:2438 +#: src/libslic3r/PrintConfig.cpp:2448 src/libslic3r/PrintConfig.cpp:2457 +#: src/libslic3r/PrintConfig.cpp:2467 src/libslic3r/PrintConfig.cpp:2476 +#: src/libslic3r/PrintConfig.cpp:2486 src/libslic3r/PrintConfig.cpp:2496 +#: src/libslic3r/PrintConfig.cpp:2504 +msgid "Supports" +msgstr "Supports" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:76 src/slic3r/GUI/Tab.cpp:3337 +#: src/slic3r/GUI/Tab.cpp:3338 src/libslic3r/PrintConfig.cpp:2512 +#: src/libslic3r/PrintConfig.cpp:2519 src/libslic3r/PrintConfig.cpp:2530 +#: src/libslic3r/PrintConfig.cpp:2540 src/libslic3r/PrintConfig.cpp:2553 +#: src/libslic3r/PrintConfig.cpp:2562 +msgid "Pad" +msgstr "Pad" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:173 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:45 +msgid "Name" +msgstr "Name" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:201 +msgid "Right button click the icon to change the object settings" +msgstr "Right button click the icon to change the object settings" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:209 +#, c-format +msgid "Auto-repaired (%d errors):\n" +msgstr "Auto-repaired (%d errors):\n" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:212 +msgid "degenerate facets" +msgstr "degenerate facets" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:213 +msgid "edges fixed" +msgstr "edges fixed" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:214 +msgid "facets removed" +msgstr "facets removed" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:215 +msgid "facets added" +msgstr "facets added" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:216 +msgid "facets reversed" +msgstr "facets reversed" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:217 +msgid "backwards edges" +msgstr "backwards edges" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:231 +msgid "Right button click the icon to fix STL through Netfabb" +msgstr "Right button click the icon to fix STL through Netfabb" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:278 src/slic3r/GUI/Tab.cpp:1430 +#: src/libslic3r/PrintConfig.cpp:454 +msgid "Extruder" +msgstr "Extruder" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:683 src/slic3r/GUI/GUI_ObjectList.cpp:963 +#: src/slic3r/GUI/GUI_ObjectList.cpp:969 src/slic3r/GUI/GUI_ObjectList.cpp:1199 +#, c-format +msgid "Quick Add Settings (%s)" +msgstr "Quick Add Settings (%s)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:746 +msgid "Select showing settings" +msgstr "Select showing settings" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:874 +msgid "Load" +msgstr "Load" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 src/slic3r/GUI/GUI_ObjectList.cpp:911 +#: src/slic3r/GUI/GUI_ObjectList.cpp:914 +msgid "Box" +msgstr "Box" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 +msgid "Cylinder" +msgstr "Cylinder" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 +msgid "Sphere" +msgstr "Sphere" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 +msgid "Slab" +msgstr "Slab" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:890 src/slic3r/GUI/GUI_ObjectList.cpp:906 +msgid "Add part" +msgstr "Add part" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:891 +msgid "Add modifier" +msgstr "Add modifier" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:892 src/slic3r/GUI/GUI_ObjectList.cpp:910 +msgid "Add support enforcer" +msgstr "Add support enforcer" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:893 src/slic3r/GUI/GUI_ObjectList.cpp:913 +msgid "Add support blocker" +msgstr "Add support blocker" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:934 +msgid "Split to parts" +msgstr "Split to parts" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:942 +msgid "Add settings" +msgstr "Add settings" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1009 +msgid "Change type" +msgstr "Change type" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1016 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1153 +msgid "Set as a Separated Object" +msgstr "Set as a Separated Object" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1024 +msgid "Rename" +msgstr "Rename" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1034 +msgid "Fix through the Netfabb" +msgstr "Fix through the Netfabb" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1041 src/slic3r/GUI/Plater.cpp:2861 +msgid "Export as STL" +msgstr "Export as STL" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1048 +msgid "Change extruder" +msgstr "Change extruder" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1073 +msgid "Select new extruder for the object/part" +msgstr "Select new extruder for the object/part" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1079 src/slic3r/GUI/Plater.cpp:2825 +#: src/slic3r/GUI/Plater.cpp:2843 src/slic3r/GUI/Tab.cpp:2860 +msgid "Delete" +msgstr "Delete" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1153 +msgid "Set as a Separated Objects" +msgstr "Set as a Separated Objects" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1374 +msgid "Generic" +msgstr "Generic" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1516 +msgid "You can't delete the last solid part from object." +msgstr "You can't delete the last solid part from object." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1533 +msgid "You can't delete the last intance from object." +msgstr "You can't delete the last intance from object." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1560 src/slic3r/GUI/Plater.cpp:2219 +msgid "" +"The selected object couldn't be split because it contains only one part." +msgstr "" +"The selected object couldn't be split because it contains only one part." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1676 +msgid "Group manipulation" +msgstr "Group manipulation" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1688 +msgid "Object manipulation" +msgstr "Object manipulation" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1698 +msgid "Object Settings to modify" +msgstr "Object Settings to modify" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1702 +msgid "Part Settings to modify" +msgstr "Part Settings to modify" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1711 +msgid "Part manipulation" +msgstr "Part manipulation" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1717 +msgid "Instance manipulation" +msgstr "Instance manipulation" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2240 +msgid "Object or Instance" +msgstr "Object or Instance" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2240 +msgid "Part" +msgstr "Part" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2242 +msgid "Unsupported selection" +msgstr "Unsupported selection" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2243 +#, c-format +msgid "You started your selection with %s Item." +msgstr "You started your selection with %s Item." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2244 +#, c-format +msgid "In this mode you can select only other %s Items%s" +msgstr "In this mode you can select only other %s Items%s" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2247 +msgid "of a current Object" +msgstr "of a current Object" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2252 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2325 src/slic3r/GUI/Plater.cpp:117 +msgid "Info" +msgstr "Info" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2366 +msgid "You can't change a type of the last solid part of the object." +msgstr "You can't change a type of the last solid part of the object." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2373 +msgid "Select type of part" +msgstr "Select type of part" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2538 +msgid "Enter new name" +msgstr "Enter new name" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2538 +msgid "Renaming" +msgstr "Renaming" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2554 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2632 src/slic3r/GUI/Tab.cpp:3191 +#: src/slic3r/GUI/Tab.cpp:3195 +msgid "The supplied name is not valid;" +msgstr "The supplied name is not valid;" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2555 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2633 src/slic3r/GUI/Tab.cpp:3192 +msgid "the following characters are not allowed:" +msgstr "the following characters are not allowed:" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2653 +msgid "Set extruder for selected items" +msgstr "Set extruder for selected items" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2654 +msgid "Select extruder number for selected objects and/or parts" +msgstr "Select extruder number for selected objects and/or parts" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2667 +msgid "Select extruder number:" +msgstr "Select extruder number:" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2668 +msgid "This extruder will be set for selected items" +msgstr "This extruder will be set for selected items" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:25 +msgid "Object Manipulation" +msgstr "Object Manipulation" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:47 +msgid "Object name" +msgstr "Object name" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:115 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:160 +msgid "Position" +msgstr "Position" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:116 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:161 +msgid "Rotation" +msgstr "Rotation" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:117 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:201 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:221 +#: src/libslic3r/PrintConfig.cpp:3070 +msgid "Scale" +msgstr "Scale" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:162 +msgid "Scale factors" +msgstr "Scale factors" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:200 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:220 +#: src/libslic3r/PrintConfig.cpp:3055 +msgid "Rotate" +msgstr "Rotate" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:219 +msgid "Translate" +msgstr "Translate" + +#: src/slic3r/GUI/GUI_ObjectSettings.cpp:58 +msgid "Additional Settings" +msgstr "Additional Settings" + +#: src/slic3r/GUI/GUI_Preview.cpp:209 +msgid "View" +msgstr "View" + +#: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:525 +#: src/libslic3r/GCode/PreviewData.cpp:394 +msgid "Feature type" +msgstr "Feature type" + +#: src/slic3r/GUI/GUI_Preview.cpp:213 src/libslic3r/PrintConfig.cpp:467 +msgid "Height" +msgstr "Height" + +#: src/slic3r/GUI/GUI_Preview.cpp:214 src/libslic3r/PrintConfig.cpp:2135 +msgid "Width" +msgstr "Width" + +#: src/slic3r/GUI/GUI_Preview.cpp:216 +msgid "Volumetric flow rate" +msgstr "Volumetric flow rate" + +#: src/slic3r/GUI/GUI_Preview.cpp:217 src/slic3r/GUI/GUI_Preview.cpp:315 +#: src/slic3r/GUI/GUI_Preview.cpp:469 src/slic3r/GUI/GUI_Preview.cpp:525 +#: src/slic3r/GUI/GUI_Preview.cpp:701 src/libslic3r/GCode/PreviewData.cpp:404 +msgid "Tool" +msgstr "Tool" + +#: src/slic3r/GUI/GUI_Preview.cpp:218 src/slic3r/GUI/GUI_Preview.cpp:523 +#: src/libslic3r/GCode/PreviewData.cpp:406 +msgid "Color Print" +msgstr "Color Print" + +#: src/slic3r/GUI/GUI_Preview.cpp:221 +msgid "Show" +msgstr "Show" + +#: src/slic3r/GUI/GUI_Preview.cpp:224 src/slic3r/GUI/GUI_Preview.cpp:225 +msgid "Feature types" +msgstr "Feature types" + +#: src/slic3r/GUI/GUI_Preview.cpp:227 src/libslic3r/GCode/PreviewData.cpp:163 +msgid "Perimeter" +msgstr "Perimeter" + +#: src/slic3r/GUI/GUI_Preview.cpp:228 src/libslic3r/GCode/PreviewData.cpp:164 +msgid "External perimeter" +msgstr "External perimeter" + +#: src/slic3r/GUI/GUI_Preview.cpp:229 src/libslic3r/GCode/PreviewData.cpp:165 +msgid "Overhang perimeter" +msgstr "Overhang perimeter" + +#: src/slic3r/GUI/GUI_Preview.cpp:230 src/libslic3r/GCode/PreviewData.cpp:166 +msgid "Internal infill" +msgstr "Internal infill" + +#: src/slic3r/GUI/GUI_Preview.cpp:231 src/libslic3r/PrintConfig.cpp:1686 +#: src/libslic3r/PrintConfig.cpp:1696 src/libslic3r/GCode/PreviewData.cpp:167 +msgid "Solid infill" +msgstr "Solid infill" + +#: src/slic3r/GUI/GUI_Preview.cpp:232 src/libslic3r/PrintConfig.cpp:2016 +#: src/libslic3r/PrintConfig.cpp:2027 src/libslic3r/GCode/PreviewData.cpp:168 +msgid "Top solid infill" +msgstr "Top solid infill" + +#: src/slic3r/GUI/GUI_Preview.cpp:233 src/libslic3r/GCode/PreviewData.cpp:169 +msgid "Bridge infill" +msgstr "Bridge infill" + +#: src/slic3r/GUI/GUI_Preview.cpp:234 src/libslic3r/PrintConfig.cpp:869 +#: src/libslic3r/GCode/PreviewData.cpp:170 +msgid "Gap fill" +msgstr "Gap fill" + +#: src/slic3r/GUI/GUI_Preview.cpp:235 src/slic3r/GUI/Tab.cpp:1001 +#: src/libslic3r/GCode/PreviewData.cpp:171 +msgid "Skirt" +msgstr "Skirt" + +#: src/slic3r/GUI/GUI_Preview.cpp:237 src/libslic3r/PrintConfig.cpp:1903 +#: src/libslic3r/GCode/PreviewData.cpp:173 +msgid "Support material interface" +msgstr "Support material interface" + +#: src/slic3r/GUI/GUI_Preview.cpp:238 src/slic3r/GUI/Tab.cpp:1081 +#: src/libslic3r/GCode/PreviewData.cpp:174 +msgid "Wipe tower" +msgstr "Wipe tower" + +#: src/slic3r/GUI/GUI_Preview.cpp:243 src/libslic3r/PrintConfig.cpp:2049 +msgid "Travel" +msgstr "Travel" + +#: src/slic3r/GUI/GUI_Preview.cpp:244 +msgid "Retractions" +msgstr "Retractions" + +#: src/slic3r/GUI/GUI_Preview.cpp:245 +msgid "Unretractions" +msgstr "Unretractions" + +#: src/slic3r/GUI/GUI_Preview.cpp:246 +msgid "Shells" +msgstr "Shells" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 +msgid "Slic3r Prusa Edition - Keyboard Shortcuts" +msgstr "Slic3r Prusa Edition - Keyboard Shortcuts" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:100 +msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" +msgstr "Open project STL/OBJ/AMF/3MF with config, delete bed" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:101 +msgid "Import STL/OBJ/AMF/3MF without config, keep bed" +msgstr "Import STL/OBJ/AMF/3MF without config, keep bed" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:102 +msgid "Load Config from .ini/amf/3mf/gcode" +msgstr "Load Config from .ini/amf/3mf/gcode" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:103 src/slic3r/GUI/Plater.cpp:725 +#: src/slic3r/GUI/Plater.cpp:3673 src/libslic3r/PrintConfig.cpp:2957 +msgid "Export G-code" +msgstr "Export G-code" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:104 +msgid "Save project (3MF)" +msgstr "Save project (3MF)" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:105 +msgid "Load Config from .ini/amf/3mf/gcode and merge" +msgstr "Load Config from .ini/amf/3mf/gcode and merge" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:106 +msgid "(Re)slice" +msgstr "(Re)slice" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:107 +msgid "Quick slice" +msgstr "Quick slice" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:108 src/slic3r/GUI/MainFrame.cpp:326 +msgid "Repeat last quick slice" +msgstr "Repeat last quick slice" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:109 +msgid "Select Plater Tab" +msgstr "Select Plater Tab" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:110 +msgid "Quick slice and Save as" +msgstr "Quick slice and Save as" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:111 +msgid "Select Print Settings Tab" +msgstr "Select Print Settings Tab" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +msgid "Select Filament Settings Tab" +msgstr "Select Filament Settings Tab" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:113 +msgid "Select Printer Settings Tab" +msgstr "Select Printer Settings Tab" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:114 +msgid "Switch to 3D" +msgstr "Switch to 3D" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 +msgid "Switch to Preview" +msgstr "Switch to Preview" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:116 src/slic3r/GUI/Preferences.cpp:10 +msgid "Preferences" +msgstr "Preferences" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:117 +#: src/slic3r/GUI/PrintHostDialogs.cpp:134 +msgid "Print host upload queue" +msgstr "Print host upload queue" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:118 +msgid "Camera view " +msgstr "Camera view " + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:119 +msgid "Add Instance to selected object " +msgstr "Add Instance to selected object " + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:120 +msgid "Remove Instance from selected object" +msgstr "Remove Instance from selected object" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:121 +msgid "Show keyboard shortcuts list" +msgstr "Show keyboard shortcuts list" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 +msgid "Select multiple object/Move multiple object" +msgstr "Select multiple object/Move multiple object" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Main Shortcuts" +msgstr "Main Shortcuts" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:130 +msgid "Arrange" +msgstr "Arrange" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:131 +msgid "Select All objects" +msgstr "Select All objects" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:132 +msgid "Delete selected" +msgstr "Delete selected" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:133 +msgid "Delete All" +msgstr "Delete All" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:134 +msgid "Gizmo move" +msgstr "Gizmo move" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:135 +msgid "Gizmo scale" +msgstr "Gizmo scale" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:136 +msgid "Gizmo rotate" +msgstr "Gizmo rotate" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:137 +msgid "Gizmo cut" +msgstr "Gizmo cut" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:138 +msgid "Gizmo Place face on bed" +msgstr "Gizmo Place face on bed" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:139 +msgid "Gizmo SLA support points" +msgstr "Gizmo SLA support points" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 +#, no-c-format +msgid "" +"Press to snap by 5% in Gizmo scale\n" +"or by 1mm in Gizmo move" +msgstr "" +"Press to snap by 5% in Gizmo scale\n" +"or by 1mm in Gizmo move" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:141 +msgid "" +"Press to scale or rotate selected objects\n" +"around their own center" +msgstr "" +"Press to scale or rotate selected objects\n" +"around their own center" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:142 +msgid "Zoom to Bed" +msgstr "Zoom to Bed" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 +msgid "Zoom to all objects in scene, if none selected" +msgstr "Zoom to all objects in scene, if none selected" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:144 +msgid "Zoom to selected object" +msgstr "Zoom to selected object" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:145 +msgid "Zoom in" +msgstr "Zoom in" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 +msgid "Zoom out" +msgstr "Zoom out" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +msgid "Unselect gizmo, keep object selection" +msgstr "Unselect gizmo, keep object selection" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:149 +msgid "Plater Shortcuts" +msgstr "Plater Shortcuts" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:164 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Arrow Up" +msgstr "Arrow Up" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:164 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:166 +msgid "Upper Layer" +msgstr "Upper Layer" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:165 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Arrow Down" +msgstr "Arrow Down" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:165 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:167 +msgid "Lower Layer" +msgstr "Lower Layer" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:169 +msgid "Preview Shortcuts" +msgstr "Preview Shortcuts" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Move current slider thump Up" +msgstr "Move current slider thump Up" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Move current slider thump Down" +msgstr "Move current slider thump Down" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:177 +msgid "Arrow Left" +msgstr "Arrow Left" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:177 +msgid "Set upper thumb to current slider thumb" +msgstr "Set upper thumb to current slider thumb" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:178 +msgid "Arrow Right" +msgstr "Arrow Right" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:178 +msgid "Set lower thumb to current slider thumb" +msgstr "Set lower thumb to current slider thumb" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:179 +msgid "Add color change marker for current layer" +msgstr "Add color change marker for current layer" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:180 +msgid "Delete color change marker for current layer" +msgstr "Delete color change marker for current layer" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 +msgid "Layers Slider Shortcuts" +msgstr "Layers Slider Shortcuts" + +#: src/slic3r/GUI/MainFrame.cpp:54 +msgid "" +" - Remember to check for updates at http://github.com/prusa3d/slic3r/releases" +msgstr "" +" - Remember to check for updates at http://github.com/prusa3d/slic3r/releases" + +#: src/slic3r/GUI/MainFrame.cpp:160 +msgid "Plater" +msgstr "Plater" + +#: src/slic3r/GUI/MainFrame.cpp:273 +msgid "&Open Project" +msgstr "&Open Project" + +#: src/slic3r/GUI/MainFrame.cpp:273 +msgid "Open a project file" +msgstr "Open a project file" + +#: src/slic3r/GUI/MainFrame.cpp:275 +msgid "&Save Project" +msgstr "&Save Project" + +#: src/slic3r/GUI/MainFrame.cpp:275 +msgid "Save current project file" +msgstr "Save current project file" + +#: src/slic3r/GUI/MainFrame.cpp:277 +msgid "Save Project &as" +msgstr "Save Project &as" + +#: src/slic3r/GUI/MainFrame.cpp:277 +msgid "Save current project file as" +msgstr "Save current project file as" + +#: src/slic3r/GUI/MainFrame.cpp:283 +msgid "Import STL/OBJ/AM&F/3MF" +msgstr "Import STL/OBJ/AM&F/3MF" + +#: src/slic3r/GUI/MainFrame.cpp:283 +msgid "Load a model" +msgstr "Load a model" + +#: src/slic3r/GUI/MainFrame.cpp:286 +msgid "Import &Config" +msgstr "Import &Config" + +#: src/slic3r/GUI/MainFrame.cpp:286 +msgid "Load exported configuration file" +msgstr "Load exported configuration file" + +#: src/slic3r/GUI/MainFrame.cpp:288 +msgid "Import Config from &project" +msgstr "Import Config from &project" + +#: src/slic3r/GUI/MainFrame.cpp:288 +msgid "Load configuration from project file" +msgstr "Load configuration from project file" + +#: src/slic3r/GUI/MainFrame.cpp:291 +msgid "Import Config &Bundle" +msgstr "Import Config &Bundle" + +#: src/slic3r/GUI/MainFrame.cpp:291 +msgid "Load presets from a bundle" +msgstr "Load presets from a bundle" + +#: src/slic3r/GUI/MainFrame.cpp:293 +msgid "&Import" +msgstr "&Import" + +#: src/slic3r/GUI/MainFrame.cpp:296 +msgid "Export &G-code" +msgstr "Export &G-code" + +#: src/slic3r/GUI/MainFrame.cpp:296 +msgid "Export current plate as G-code" +msgstr "Export current plate as G-code" + +#: src/slic3r/GUI/MainFrame.cpp:299 +msgid "Export plate as &STL" +msgstr "Export plate as &STL" + +#: src/slic3r/GUI/MainFrame.cpp:299 +msgid "Export current plate as STL" +msgstr "Export current plate as STL" + +#: src/slic3r/GUI/MainFrame.cpp:301 +msgid "Export plate as &AMF" +msgstr "Export plate as &AMF" + +#: src/slic3r/GUI/MainFrame.cpp:301 +msgid "Export current plate as AMF" +msgstr "Export current plate as AMF" + +#: src/slic3r/GUI/MainFrame.cpp:304 +msgid "Export &Config" +msgstr "Export &Config" + +#: src/slic3r/GUI/MainFrame.cpp:304 +msgid "Export current configuration to file" +msgstr "Export current configuration to file" + +#: src/slic3r/GUI/MainFrame.cpp:306 +msgid "Export Config &Bundle" +msgstr "Export Config &Bundle" + +#: src/slic3r/GUI/MainFrame.cpp:306 +msgid "Export all presets to file" +msgstr "Export all presets to file" + +#: src/slic3r/GUI/MainFrame.cpp:308 +msgid "&Export" +msgstr "&Export" + +#: src/slic3r/GUI/MainFrame.cpp:314 +msgid "Quick Slice" +msgstr "Quick Slice" + +#: src/slic3r/GUI/MainFrame.cpp:314 +msgid "Slice a file into a G-code" +msgstr "Slice a file into a G-code" + +#: src/slic3r/GUI/MainFrame.cpp:320 +msgid "Quick Slice and Save As" +msgstr "Quick Slice and Save As" + +#: src/slic3r/GUI/MainFrame.cpp:320 +msgid "Slice a file into a G-code, save as" +msgstr "Slice a file into a G-code, save as" + +#: src/slic3r/GUI/MainFrame.cpp:326 +msgid "Repeat Last Quick Slice" +msgstr "Repeat Last Quick Slice" + +#: src/slic3r/GUI/MainFrame.cpp:334 +msgid "(Re)Slice &Now" +msgstr "(Re)Slice &Now" + +#: src/slic3r/GUI/MainFrame.cpp:334 +msgid "Start new slicing process" +msgstr "Start new slicing process" + +#: src/slic3r/GUI/MainFrame.cpp:337 +msgid "&Repair STL file" +msgstr "&Repair STL file" + +#: src/slic3r/GUI/MainFrame.cpp:337 +msgid "Automatically repair an STL file" +msgstr "Automatically repair an STL file" + +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "&Quit" +msgstr "&Quit" + +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "Quit Slic3r" +msgstr "Quit Slic3r" + +#: src/slic3r/GUI/MainFrame.cpp:374 +msgid "&Select all" +msgstr "&Select all" + +#: src/slic3r/GUI/MainFrame.cpp:374 +msgid "Selects all objects" +msgstr "Selects all objects" + +#: src/slic3r/GUI/MainFrame.cpp:377 +msgid "&Delete selected" +msgstr "&Delete selected" + +#: src/slic3r/GUI/MainFrame.cpp:377 +msgid "Deletes the current selection" +msgstr "Deletes the current selection" + +#: src/slic3r/GUI/MainFrame.cpp:379 +msgid "Delete &all" +msgstr "Delete &all" + +#: src/slic3r/GUI/MainFrame.cpp:379 +msgid "Deletes all objects" +msgstr "Deletes all objects" + +#: src/slic3r/GUI/MainFrame.cpp:392 +msgid "&Plater Tab" +msgstr "&Plater Tab" + +#: src/slic3r/GUI/MainFrame.cpp:392 +msgid "Show the plater" +msgstr "Show the plater" + +#: src/slic3r/GUI/MainFrame.cpp:399 +msgid "P&rint Settings Tab" +msgstr "P&rint Settings Tab" + +#: src/slic3r/GUI/MainFrame.cpp:399 +msgid "Show the print settings" +msgstr "Show the print settings" + +#: src/slic3r/GUI/MainFrame.cpp:401 +msgid "&Filament Settings Tab" +msgstr "&Filament Settings Tab" + +#: src/slic3r/GUI/MainFrame.cpp:401 +msgid "Show the filament settings" +msgstr "Show the filament settings" + +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "Print&er Settings Tab" +msgstr "Print&er Settings Tab" + +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "Show the printer settings" +msgstr "Show the printer settings" + +#: src/slic3r/GUI/MainFrame.cpp:407 +msgid "3&D" +msgstr "3&D" + +#: src/slic3r/GUI/MainFrame.cpp:407 +msgid "Show the 3D editing view" +msgstr "Show the 3D editing view" + +#: src/slic3r/GUI/MainFrame.cpp:409 +msgid "Pre&view" +msgstr "Pre&view" + +#: src/slic3r/GUI/MainFrame.cpp:409 +msgid "Show the 3D slices preview" +msgstr "Show the 3D slices preview" + +#: src/slic3r/GUI/MainFrame.cpp:430 +msgid "Print &Host Upload Queue" +msgstr "Print &Host Upload Queue" + +#: src/slic3r/GUI/MainFrame.cpp:430 +msgid "Display the Print Host Upload Queue window" +msgstr "Display the Print Host Upload Queue window" + +#: src/slic3r/GUI/MainFrame.cpp:439 +msgid "Iso" +msgstr "Iso" + +#: src/slic3r/GUI/MainFrame.cpp:439 +msgid "Iso View" +msgstr "Iso View" + +#: src/slic3r/GUI/MainFrame.cpp:441 +msgid "Top" +msgstr "Top" + +#: src/libslic3r/PrintConfig.cpp:2041 +msgctxt "Layers" +msgid "Top" +msgstr "Top" + +#: src/slic3r/GUI/MainFrame.cpp:441 +msgid "Top View" +msgstr "Top View" + +#: src/slic3r/GUI/MainFrame.cpp:442 +msgid "Bottom" +msgstr "Bottom" + +#: src/libslic3r/PrintConfig.cpp:148 +msgctxt "Layers" +msgid "Bottom" +msgstr "Bottom" + +#: src/slic3r/GUI/MainFrame.cpp:442 +msgid "Bottom View" +msgstr "Bottom View" + +#: src/slic3r/GUI/MainFrame.cpp:443 +msgid "Front" +msgstr "Front" + +#: src/slic3r/GUI/MainFrame.cpp:443 +msgid "Front View" +msgstr "Front View" + +#: src/slic3r/GUI/MainFrame.cpp:444 src/libslic3r/PrintConfig.cpp:1561 +msgid "Rear" +msgstr "Rear" + +#: src/slic3r/GUI/MainFrame.cpp:444 +msgid "Rear View" +msgstr "Rear View" + +#: src/slic3r/GUI/MainFrame.cpp:445 +msgid "Left" +msgstr "Left" + +#: src/slic3r/GUI/MainFrame.cpp:445 +msgid "Left View" +msgstr "Left View" + +#: src/slic3r/GUI/MainFrame.cpp:446 +msgid "Right" +msgstr "Right" + +#: src/slic3r/GUI/MainFrame.cpp:446 +msgid "Right View" +msgstr "Right View" + +#: src/slic3r/GUI/MainFrame.cpp:460 +msgid "Prusa 3D &Drivers" +msgstr "Prusa 3D &Drivers" + +#: src/slic3r/GUI/MainFrame.cpp:460 +msgid "Open the Prusa3D drivers download page in your browser" +msgstr "Open the Prusa3D drivers download page in your browser" + +#: src/slic3r/GUI/MainFrame.cpp:462 +msgid "Prusa Edition &Releases" +msgstr "Prusa Edition &Releases" + +#: src/slic3r/GUI/MainFrame.cpp:462 +msgid "Open the Prusa Edition releases page in your browser" +msgstr "Open the Prusa Edition releases page in your browser" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Slic3r &Website" +msgstr "Slic3r &Website" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Open the Slic3r website in your browser" +msgstr "Open the Slic3r website in your browser" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Slic3r &Manual" +msgstr "Slic3r &Manual" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Open the Slic3r manual in your browser" +msgstr "Open the Slic3r manual in your browser" + +#: src/slic3r/GUI/MainFrame.cpp:473 +msgid "System &Info" +msgstr "System &Info" + +#: src/slic3r/GUI/MainFrame.cpp:473 +msgid "Show system information" +msgstr "Show system information" + +#: src/slic3r/GUI/MainFrame.cpp:475 +msgid "Show &Configuration Folder" +msgstr "Show &Configuration Folder" + +#: src/slic3r/GUI/MainFrame.cpp:475 +msgid "Show user configuration folder (datadir)" +msgstr "Show user configuration folder (datadir)" + +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an I&ssue" +msgstr "Report an I&ssue" + +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an issue on the Slic3r Prusa Edition" +msgstr "Report an issue on the Slic3r Prusa Edition" + +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "&About Slic3r" +msgstr "&About Slic3r" + +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "Show about dialog" +msgstr "Show about dialog" + +#: src/slic3r/GUI/MainFrame.cpp:482 +msgid "Keyboard Shortcuts" +msgstr "Keyboard Shortcuts" + +#: src/slic3r/GUI/MainFrame.cpp:482 +msgid "Show the list of the keyboard shortcuts" +msgstr "Show the list of the keyboard shortcuts" + +#: src/slic3r/GUI/MainFrame.cpp:490 +msgid "&File" +msgstr "&File" + +#: src/slic3r/GUI/MainFrame.cpp:491 +msgid "&Edit" +msgstr "&Edit" + +#: src/slic3r/GUI/MainFrame.cpp:492 +msgid "&Window" +msgstr "&Window" + +#: src/slic3r/GUI/MainFrame.cpp:493 +msgid "&View" +msgstr "&View" + +#: src/slic3r/GUI/MainFrame.cpp:496 +msgid "&Help" +msgstr "&Help" + +#: src/slic3r/GUI/MainFrame.cpp:524 +msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" + +#: src/slic3r/GUI/MainFrame.cpp:538 +msgid "No previously sliced file." +msgstr "No previously sliced file." + +#: src/slic3r/GUI/MainFrame.cpp:539 src/slic3r/GUI/PrintHostDialogs.cpp:219 +msgid "Error" +msgstr "Error" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Previously sliced file (" +msgstr "Previously sliced file (" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid ") not found." +msgstr ") not found." + +#: src/slic3r/GUI/MainFrame.cpp:545 +msgid "File Not Found" +msgstr "File Not Found" + +#: src/slic3r/GUI/MainFrame.cpp:580 src/slic3r/GUI/Tab.cpp:3152 +msgid "Save " +msgstr "Save " + +#: src/slic3r/GUI/MainFrame.cpp:580 +msgid "SVG" +msgstr "SVG" + +#: src/slic3r/GUI/MainFrame.cpp:580 +msgid "G-code" +msgstr "G-code" + +#: src/slic3r/GUI/MainFrame.cpp:580 +msgid " file as:" +msgstr " file as:" + +#: src/slic3r/GUI/MainFrame.cpp:595 +msgid "Save zip file as:" +msgstr "Save zip file as:" + +#: src/slic3r/GUI/MainFrame.cpp:607 src/slic3r/GUI/Plater.cpp:2352 +#: src/slic3r/GUI/Plater.cpp:3467 src/slic3r/GUI/Tab.cpp:1110 +#: src/slic3r/GUI/Tab.cpp:3348 +msgid "Slicing" +msgstr "Slicing" + +#: src/slic3r/GUI/MainFrame.cpp:607 +msgid "Processing " +msgstr "Processing " + +#: src/slic3r/GUI/MainFrame.cpp:630 +msgid " was successfully sliced." +msgstr " was successfully sliced." + +#: src/slic3r/GUI/MainFrame.cpp:632 +msgid "Slicing Done!" +msgstr "Slicing Done!" + +#: src/slic3r/GUI/MainFrame.cpp:647 +msgid "Select the STL file to repair:" +msgstr "Select the STL file to repair:" + +#: src/slic3r/GUI/MainFrame.cpp:661 +msgid "Save OBJ file (less prone to coordinate errors than STL) as:" +msgstr "Save OBJ file (less prone to coordinate errors than STL) as:" + +#: src/slic3r/GUI/MainFrame.cpp:676 +msgid "Your file was repaired." +msgstr "Your file was repaired." + +#: src/slic3r/GUI/MainFrame.cpp:676 src/libslic3r/PrintConfig.cpp:3051 +msgid "Repair" +msgstr "Repair" + +#: src/slic3r/GUI/MainFrame.cpp:690 +msgid "Save configuration as:" +msgstr "Save configuration as:" + +#: src/slic3r/GUI/MainFrame.cpp:710 src/slic3r/GUI/MainFrame.cpp:774 +msgid "Select configuration to load:" +msgstr "Select configuration to load:" + +#: src/slic3r/GUI/MainFrame.cpp:747 +msgid "Save presets bundle as:" +msgstr "Save presets bundle as:" + +#: src/slic3r/GUI/MainFrame.cpp:798 +#, c-format +msgid "%d presets successfully imported." +msgstr "%d presets successfully imported." + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r error" +msgstr "Slic3r error" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r has encountered an error" +msgstr "Slic3r has encountered an error" + +#: src/slic3r/GUI/Plater.cpp:137 +msgid "Volume" +msgstr "Volume" + +#: src/slic3r/GUI/Plater.cpp:138 +msgid "Facets" +msgstr "Facets" + +#: src/slic3r/GUI/Plater.cpp:139 +msgid "Materials" +msgstr "Materials" + +#: src/slic3r/GUI/Plater.cpp:142 +msgid "Manifold" +msgstr "Manifold" + +#: src/slic3r/GUI/Plater.cpp:188 +msgid "Sliced Info" +msgstr "Sliced Info" + +#: src/slic3r/GUI/Plater.cpp:207 src/slic3r/GUI/Plater.cpp:998 +msgid "Used Filament (m)" +msgstr "Used Filament (m)" + +#: src/slic3r/GUI/Plater.cpp:208 +msgid "Used Filament (mm³)" +msgstr "Used Filament (mm³)" + +#: src/slic3r/GUI/Plater.cpp:209 +msgid "Used Filament (g)" +msgstr "Used Filament (g)" + +#: src/slic3r/GUI/Plater.cpp:210 +msgid "Used Material (unit)" +msgstr "Used Material (unit)" + +#: src/slic3r/GUI/Plater.cpp:211 src/slic3r/GUI/Plater.cpp:1013 +#: src/libslic3r/PrintConfig.cpp:716 +msgid "Cost" +msgstr "Cost" + +#: src/slic3r/GUI/Plater.cpp:212 src/slic3r/GUI/Plater.cpp:985 +#: src/slic3r/GUI/Plater.cpp:1027 +msgid "Estimated printing time" +msgstr "Estimated printing time" + +#: src/slic3r/GUI/Plater.cpp:213 +msgid "Number of tool changes" +msgstr "Number of tool changes" + +#: src/slic3r/GUI/Plater.cpp:290 +msgid "Click to edit preset" +msgstr "Click to edit preset" + +#: src/slic3r/GUI/Plater.cpp:413 +msgid "Select what kind of support do you need" +msgstr "Select what kind of support do you need" + +#: src/slic3r/GUI/Plater.cpp:415 src/libslic3r/PrintConfig.cpp:1814 +#: src/libslic3r/PrintConfig.cpp:2419 +msgid "Support on build plate only" +msgstr "Support on build plate only" + +#: src/slic3r/GUI/Plater.cpp:416 +msgid "Everywhere" +msgstr "Everywhere" + +#: src/slic3r/GUI/Plater.cpp:438 src/slic3r/GUI/Tab.cpp:1007 +msgid "Brim" +msgstr "Brim" + +#: src/slic3r/GUI/Plater.cpp:440 +msgid "" +"This flag enables the brim that will be printed around each object on the " +"first layer." +msgstr "" +"This flag enables the brim that will be printed around each object on the " +"first layer." + +#: src/slic3r/GUI/Plater.cpp:448 +msgid "Purging volumes" +msgstr "Purging volumes" + +#: src/slic3r/GUI/Plater.cpp:673 +msgid "Print settings" +msgstr "Print settings" + +#: src/slic3r/GUI/Plater.cpp:674 src/slic3r/GUI/Tab.cpp:1421 +#: src/slic3r/GUI/Tab.cpp:1422 +msgid "Filament" +msgstr "Filament" + +#: src/slic3r/GUI/Plater.cpp:675 src/slic3r/GUI/Preset.cpp:1252 +msgid "SLA print" +msgstr "SLA print" + +#: src/slic3r/GUI/Plater.cpp:676 src/slic3r/GUI/Preset.cpp:1253 +msgid "SLA material" +msgstr "SLA material" + +#: src/slic3r/GUI/Plater.cpp:677 +msgid "Printer" +msgstr "Printer" + +#: src/slic3r/GUI/Plater.cpp:707 src/slic3r/GUI/Plater.cpp:3674 +msgid "Send to printer" +msgstr "Send to printer" + +#: src/slic3r/GUI/Plater.cpp:727 src/slic3r/GUI/Plater.cpp:2352 +#: src/slic3r/GUI/Plater.cpp:3470 +msgid "Slice now" +msgstr "Slice now" + +#: src/slic3r/GUI/Plater.cpp:860 +msgid "Hold Shift to Slice & Export G-code" +msgstr "Hold Shift to Slice & Export G-code" + +#: src/slic3r/GUI/Plater.cpp:931 +#, c-format +msgid "%d (%d shells)" +msgstr "%d (%d shells)" + +#: src/slic3r/GUI/Plater.cpp:936 +#, c-format +msgid "Auto-repaired (%d errors)" +msgstr "Auto-repaired (%d errors)" + +#: src/slic3r/GUI/Plater.cpp:939 +#, c-format +msgid "" +"%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d " +"facets reversed, %d backwards edges" +msgstr "" +"%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d " +"facets reversed, %d backwards edges" + +#: src/slic3r/GUI/Plater.cpp:949 +msgid "Yes" +msgstr "Yes" + +#: src/slic3r/GUI/Plater.cpp:972 +msgid "Used Material (ml)" +msgstr "Used Material (ml)" + +#: src/slic3r/GUI/Plater.cpp:975 +msgid "object(s)" +msgstr "object(s)" + +#: src/slic3r/GUI/Plater.cpp:975 +msgid "supports and pad" +msgstr "supports and pad" + +#: src/slic3r/GUI/Plater.cpp:1000 src/slic3r/GUI/Plater.cpp:1015 +msgid "objects" +msgstr "objects" + +#: src/slic3r/GUI/Plater.cpp:1000 src/slic3r/GUI/Plater.cpp:1015 +msgid "wipe tower" +msgstr "wipe tower" + +#: src/slic3r/GUI/Plater.cpp:1030 +msgid "normal mode" +msgstr "normal mode" + +#: src/slic3r/GUI/Plater.cpp:1034 +msgid "silent mode" +msgstr "silent mode" + +#: src/slic3r/GUI/Plater.cpp:1544 +msgid "Loading" +msgstr "Loading" + +#: src/slic3r/GUI/Plater.cpp:1554 +#, c-format +msgid "Processing input file %s\n" +msgstr "Processing input file %s\n" + +#: src/slic3r/GUI/Plater.cpp:1612 +msgid "" +"This file contains several objects positioned at multiple heights. Instead " +"of considering them as multiple objects, should I consider\n" +"this file as a single object having multiple parts?\n" +msgstr "" +"This file contains several objects positioned at multiple heights. Instead " +"of considering them as multiple objects, should I consider\n" +"this file as a single object having multiple parts?\n" + +#: src/slic3r/GUI/Plater.cpp:1615 src/slic3r/GUI/Plater.cpp:1707 +msgid "Multi-part object detected" +msgstr "Multi-part object detected" + +#: src/slic3r/GUI/Plater.cpp:1650 +msgid "" +"This file cannot be loaded in simple mode. Do you want to switch to expert " +"mode?\n" +msgstr "" +"This file cannot be loaded in simple mode. Do you want to switch to expert " +"mode?\n" + +#: src/slic3r/GUI/Plater.cpp:1651 +msgid "Detected advanced data" +msgstr "Detected advanced data" + +#: src/slic3r/GUI/Plater.cpp:1684 +#, c-format +msgid "" +"You can't to add the object(s) from %s because of one or some of them " +"is(are) multi-part" +msgstr "" +"You can't to add the object(s) from %s because of one or some of them " +"is(are) multi-part" + +#: src/slic3r/GUI/Plater.cpp:1704 +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?\n" +msgstr "" +"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?\n" + +#: src/slic3r/GUI/Plater.cpp:1720 +msgid "Loaded" +msgstr "Loaded" + +#: src/slic3r/GUI/Plater.cpp:1812 +msgid "" +"Your object appears to be too large, so it was automatically scaled down to " +"fit your print bed." +msgstr "" +"Your object appears to be too large, so it was automatically scaled down to " +"fit your print bed." + +#: src/slic3r/GUI/Plater.cpp:1813 +msgid "Object too large?" +msgstr "Object too large?" + +#: src/slic3r/GUI/Plater.cpp:1863 +msgid "Export STL file:" +msgstr "Export STL file:" + +#: src/slic3r/GUI/Plater.cpp:1870 +msgid "Export AMF file:" +msgstr "Export AMF file:" + +#: src/slic3r/GUI/Plater.cpp:1876 +msgid "Save file as:" +msgstr "Save file as:" + +#: src/slic3r/GUI/Plater.cpp:2042 +msgid "Arranging canceled" +msgstr "Arranging canceled" + +#: src/slic3r/GUI/Plater.cpp:2045 +msgid "Arranging" +msgstr "Arranging" + +#: src/slic3r/GUI/Plater.cpp:2079 +msgid "Could not arrange model objects! Some geometries may be invalid." +msgstr "Could not arrange model objects! Some geometries may be invalid." + +#: src/slic3r/GUI/Plater.cpp:2083 +msgid "Arranging done." +msgstr "Arranging done." + +#: src/slic3r/GUI/Plater.cpp:2124 +msgid "Orientation search canceled" +msgstr "Orientation search canceled" + +#: src/slic3r/GUI/Plater.cpp:2129 +msgid "Searching for optimal orientation" +msgstr "Searching for optimal orientation" + +#: src/slic3r/GUI/Plater.cpp:2190 +msgid "Orientation found." +msgstr "Orientation found." + +#: src/slic3r/GUI/Plater.cpp:2211 +msgid "" +"The selected object can't be split because it contains more than one volume/" +"material." +msgstr "" +"The selected object can't be split because it contains more than one volume/" +"material." + +#: src/slic3r/GUI/Plater.cpp:2337 +msgid "Invalid data" +msgstr "Invalid data" + +#: src/slic3r/GUI/Plater.cpp:2346 +msgid "Ready to slice" +msgstr "Ready to slice" + +#: src/slic3r/GUI/Plater.cpp:2379 src/slic3r/GUI/PrintHostDialogs.cpp:220 +msgid "Cancelling" +msgstr "Cancelling" + +#: src/slic3r/GUI/Plater.cpp:2396 +msgid "Another export job is currently running." +msgstr "Another export job is currently running." + +#: src/slic3r/GUI/Plater.cpp:2656 +msgid "Export failed" +msgstr "Export failed" + +#: src/slic3r/GUI/Plater.cpp:2661 src/slic3r/GUI/PrintHostDialogs.cpp:221 +msgid "Cancelled" +msgstr "Cancelled" + +#: src/slic3r/GUI/Plater.cpp:2747 src/slic3r/GUI/Plater.cpp:2759 +#: src/slic3r/GUI/Plater.cpp:2831 +msgid "Increase copies" +msgstr "Increase copies" + +#: src/slic3r/GUI/Plater.cpp:2825 src/slic3r/GUI/Plater.cpp:2843 +msgid "Remove the selected object" +msgstr "Remove the selected object" + +#: src/slic3r/GUI/Plater.cpp:2831 +msgid "Place one more copy of the selected object" +msgstr "Place one more copy of the selected object" + +#: src/slic3r/GUI/Plater.cpp:2833 +msgid "Decrease copies" +msgstr "Decrease copies" + +#: src/slic3r/GUI/Plater.cpp:2833 +msgid "Remove one copy of the selected object" +msgstr "Remove one copy of the selected object" + +#: src/slic3r/GUI/Plater.cpp:2835 +msgid "Set number of copies" +msgstr "Set number of copies" + +#: src/slic3r/GUI/Plater.cpp:2835 +msgid "Change the number of copies of the selected object" +msgstr "Change the number of copies of the selected object" + +#: src/slic3r/GUI/Plater.cpp:2858 +msgid "Reload from Disk" +msgstr "Reload from Disk" + +#: src/slic3r/GUI/Plater.cpp:2858 +msgid "Reload the selected file from Disk" +msgstr "Reload the selected file from Disk" + +#: src/slic3r/GUI/Plater.cpp:2861 +msgid "Export the selected object as STL file" +msgstr "Export the selected object as STL file" + +#: src/slic3r/GUI/Plater.cpp:2873 +msgid "Along X axis" +msgstr "Along X axis" + +#: src/slic3r/GUI/Plater.cpp:2873 +msgid "Mirror the selected object along the X axis" +msgstr "Mirror the selected object along the X axis" + +#: src/slic3r/GUI/Plater.cpp:2875 +msgid "Along Y axis" +msgstr "Along Y axis" + +#: src/slic3r/GUI/Plater.cpp:2875 +msgid "Mirror the selected object along the Y axis" +msgstr "Mirror the selected object along the Y axis" + +#: src/slic3r/GUI/Plater.cpp:2877 +msgid "Along Z axis" +msgstr "Along Z axis" + +#: src/slic3r/GUI/Plater.cpp:2877 +msgid "Mirror the selected object along the Z axis" +msgstr "Mirror the selected object along the Z axis" + +#: src/slic3r/GUI/Plater.cpp:2880 +msgid "Mirror" +msgstr "Mirror" + +#: src/slic3r/GUI/Plater.cpp:2880 +msgid "Mirror the selected object" +msgstr "Mirror the selected object" + +#: src/slic3r/GUI/Plater.cpp:2898 +msgid "To objects" +msgstr "To objects" + +#: src/slic3r/GUI/Plater.cpp:2898 src/slic3r/GUI/Plater.cpp:2920 +msgid "Split the selected object into individual objects" +msgstr "Split the selected object into individual objects" + +#: src/slic3r/GUI/Plater.cpp:2900 +msgid "To parts" +msgstr "To parts" + +#: src/slic3r/GUI/Plater.cpp:2900 src/slic3r/GUI/Plater.cpp:2940 +msgid "Split the selected object into individual sub-parts" +msgstr "Split the selected object into individual sub-parts" + +#: src/slic3r/GUI/Plater.cpp:2903 src/slic3r/GUI/Plater.cpp:2920 +#: src/slic3r/GUI/Plater.cpp:2940 src/libslic3r/PrintConfig.cpp:3075 +msgid "Split" +msgstr "Split" + +#: src/slic3r/GUI/Plater.cpp:2903 +msgid "Split the selected object" +msgstr "Split the selected object" + +#: src/slic3r/GUI/Plater.cpp:2926 +msgid "Optimize orientation" +msgstr "Optimize orientation" + +#: src/slic3r/GUI/Plater.cpp:2926 +msgid "Optimize the rotation of the object for better print results." +msgstr "Optimize the rotation of the object for better print results." + +#: src/slic3r/GUI/Plater.cpp:3342 +msgid "Save G-code file as:" +msgstr "Save G-code file as:" + +#: src/slic3r/GUI/Plater.cpp:3342 +msgid "Save SL1 file as:" +msgstr "Save SL1 file as:" + +#: src/slic3r/GUI/Plater.cpp:3397 +#, c-format +msgid "STL file exported to %s" +msgstr "STL file exported to %s" + +#: src/slic3r/GUI/Plater.cpp:3413 +#, c-format +msgid "AMF file exported to %s" +msgstr "AMF file exported to %s" + +#: src/slic3r/GUI/Plater.cpp:3416 +#, c-format +msgid "Error exporting AMF file %s" +msgstr "Error exporting AMF file %s" + +#: src/slic3r/GUI/Plater.cpp:3442 +#, c-format +msgid "3MF file exported to %s" +msgstr "3MF file exported to %s" + +#: src/slic3r/GUI/Plater.cpp:3445 +#, c-format +msgid "Error exporting 3MF file %s" +msgstr "Error exporting 3MF file %s" + +#: src/slic3r/GUI/Plater.cpp:3673 +msgid "Export" +msgstr "Export" + +#: src/slic3r/GUI/Plater.cpp:3674 +msgid "Send G-code" +msgstr "Send G-code" + +#: src/slic3r/GUI/Preferences.cpp:17 src/slic3r/GUI/Tab.cpp:1762 +#: src/slic3r/GUI/Tab.cpp:1963 +msgid "General" +msgstr "General" + +#: src/slic3r/GUI/Preferences.cpp:34 +msgid "Remember output directory" +msgstr "Remember output directory" + +#: src/slic3r/GUI/Preferences.cpp:36 +msgid "" +"If this is enabled, Slic3r will prompt the last output directory instead of " +"the one containing the input files." +msgstr "" +"If this is enabled, Slic3r will prompt the last output directory instead of " +"the one containing the input files." + +#: src/slic3r/GUI/Preferences.cpp:42 +msgid "Auto-center parts" +msgstr "Auto-center parts" + +#: src/slic3r/GUI/Preferences.cpp:44 +msgid "" +"If this is enabled, Slic3r will auto-center objects around the print bed " +"center." +msgstr "" +"If this is enabled, Slic3r will auto-center objects around the print bed " +"center." + +#: src/slic3r/GUI/Preferences.cpp:50 +msgid "Background processing" +msgstr "Background processing" + +#: src/slic3r/GUI/Preferences.cpp:52 +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 "" +"If this is enabled, Slic3r will pre-process objects as soon as they're " +"loaded in order to save time when exporting G-code." + +#: src/slic3r/GUI/Preferences.cpp:74 +msgid "Suppress \" - default - \" presets" +msgstr "Suppress \" - default - \" presets" + +#: src/slic3r/GUI/Preferences.cpp:76 +msgid "" +"Suppress \" - default - \" presets in the Print / Filament / Printer " +"selections once there are any other valid presets available." +msgstr "" +"Suppress \" - default - \" presets in the Print / Filament / Printer " +"selections once there are any other valid presets available." + +#: src/slic3r/GUI/Preferences.cpp:82 +msgid "Show incompatible print and filament presets" +msgstr "Show incompatible print and filament presets" + +#: src/slic3r/GUI/Preferences.cpp:84 +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 "" +"When checked, the print and filament presets are shown in the preset editor " +"even if they are marked as incompatible with the active printer" + +#: src/slic3r/GUI/Preferences.cpp:91 +msgid "Use legacy OpenGL 1.1 rendering" +msgstr "Use legacy OpenGL 1.1 rendering" + +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "" +"If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may " +"try to check this checkbox. This will disable the layer height editing and " +"anti aliasing, so it is likely better to upgrade your graphics driver." +msgstr "" +"If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may " +"try to check this checkbox. This will disable the layer height editing and " +"anti aliasing, so it is likely better to upgrade your graphics driver." + +#: src/slic3r/GUI/Preferences.cpp:101 +msgid "Use Retina resolution for the 3D scene" +msgstr "Use Retina resolution for the 3D scene" + +#: src/slic3r/GUI/Preferences.cpp:103 +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 "" +"If enabled, the 3D scene will be rendered in Retina resolution. If you are " +"experiencing 3D performance problems, disabling this option may help." + +#: src/slic3r/GUI/Preferences.cpp:126 +msgid "You need to restart Slic3r to make the changes effective." +msgstr "You need to restart Slic3r to make the changes effective." + +#: src/slic3r/GUI/Preset.cpp:207 +msgid "modified" +msgstr "modified" + +#: src/slic3r/GUI/Preset.cpp:918 src/slic3r/GUI/Preset.cpp:958 +#: src/slic3r/GUI/Preset.cpp:1011 src/slic3r/GUI/Preset.cpp:1043 +#: src/slic3r/GUI/PresetBundle.cpp:1484 src/slic3r/GUI/PresetBundle.cpp:1537 +msgid "System presets" +msgstr "System presets" + +#: src/slic3r/GUI/Preset.cpp:962 src/slic3r/GUI/Preset.cpp:1047 +#: src/slic3r/GUI/PresetBundle.cpp:1542 +msgid "User presets" +msgstr "User presets" + +#: src/slic3r/GUI/Preset.cpp:991 src/slic3r/GUI/Tab.cpp:247 +msgid "Add a new printer" +msgstr "Add a new printer" + +#: src/slic3r/GUI/Preset.cpp:1251 +msgid "filament" +msgstr "filament" + +#: src/slic3r/GUI/PresetHints.cpp:28 +#, c-format +msgid "" +"If estimated layer time is below ~%ds, fan will run at %d%% and print speed " +"will be reduced so that no less than %ds are spent on that layer (however, " +"speed will never be reduced below %dmm/s)." +msgstr "" +"If estimated layer time is below ~%ds, fan will run at %d%% and print speed " +"will be reduced so that no less than %ds are spent on that layer (however, " +"speed will never be reduced below %dmm/s)." + +#: src/slic3r/GUI/PresetHints.cpp:32 +#, c-format +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%ds, fan will run at a " +"proportionally decreasing speed between %d%% and %d%%." +msgstr "" +"\n" +"If estimated layer time is greater, but still below ~%ds, fan will run at a " +"proportionally decreasing speed between %d%% and %d%%." + +#: src/slic3r/GUI/PresetHints.cpp:36 +msgid "" +"\n" +"During the other layers, fan " +msgstr "" +"\n" +"During the other layers, fan " + +#: src/slic3r/GUI/PresetHints.cpp:38 +msgid "Fan " +msgstr "Fan " + +#: src/slic3r/GUI/PresetHints.cpp:43 +#, c-format +msgid "will always run at %d%% " +msgstr "will always run at %d%% " + +#: src/slic3r/GUI/PresetHints.cpp:46 +#, c-format +msgid "except for the first %d layers" +msgstr "except for the first %d layers" + +#: src/slic3r/GUI/PresetHints.cpp:50 +msgid "except for the first layer" +msgstr "except for the first layer" + +#: src/slic3r/GUI/PresetHints.cpp:52 +msgid "will be turned off." +msgstr "will be turned off." + +#: src/slic3r/GUI/PresetHints.cpp:153 +msgid "external perimeters" +msgstr "external perimeters" + +#: src/slic3r/GUI/PresetHints.cpp:162 +msgid "perimeters" +msgstr "perimeters" + +#: src/slic3r/GUI/PresetHints.cpp:171 +msgid "infill" +msgstr "infill" + +#: src/slic3r/GUI/PresetHints.cpp:181 +msgid "solid infill" +msgstr "solid infill" + +#: src/slic3r/GUI/PresetHints.cpp:189 +msgid "top solid infill" +msgstr "top solid infill" + +#: src/slic3r/GUI/PresetHints.cpp:200 +msgid "support" +msgstr "support" + +#: src/slic3r/GUI/PresetHints.cpp:210 +msgid "support interface" +msgstr "support interface" + +#: src/slic3r/GUI/PresetHints.cpp:216 +msgid "First layer volumetric" +msgstr "First layer volumetric" + +#: src/slic3r/GUI/PresetHints.cpp:216 +msgid "Bridging volumetric" +msgstr "Bridging volumetric" + +#: src/slic3r/GUI/PresetHints.cpp:216 +msgid "Volumetric" +msgstr "Volumetric" + +#: src/slic3r/GUI/PresetHints.cpp:217 +msgid " flow rate is maximized " +msgstr " flow rate is maximized " + +#: src/slic3r/GUI/PresetHints.cpp:220 +msgid "by the print profile maximum" +msgstr "by the print profile maximum" + +#: src/slic3r/GUI/PresetHints.cpp:221 +msgid "when printing " +msgstr "when printing " + +#: src/slic3r/GUI/PresetHints.cpp:222 +msgid " with a volumetric rate " +msgstr " with a volumetric rate " + +#: src/slic3r/GUI/PresetHints.cpp:226 +#, c-format +msgid "%3.2f mm³/s" +msgstr "%3.2f mm³/s" + +#: src/slic3r/GUI/PresetHints.cpp:228 +#, c-format +msgid " at filament speed %3.2f mm/s." +msgstr " at filament speed %3.2f mm/s." + +#: src/slic3r/GUI/PresetHints.cpp:247 +msgid "" +"Recommended object thin wall thickness: Not available due to invalid layer " +"height." +msgstr "" +"Recommended object thin wall thickness: Not available due to invalid layer " +"height." + +#: src/slic3r/GUI/PresetHints.cpp:264 +#, c-format +msgid "Recommended object thin wall thickness for layer height %.2f and " +msgstr "Recommended object thin wall thickness for layer height %.2f and " + +#: src/slic3r/GUI/PresetHints.cpp:271 +#, c-format +msgid "%d lines: %.2lf mm" +msgstr "%d lines: %.2lf mm" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:32 +msgid "Send G-Code to printer host" +msgstr "Send G-Code to printer host" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:32 +msgid "Upload to Printer Host with the following filename:" +msgstr "Upload to Printer Host with the following filename:" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:34 +msgid "Start printing after upload" +msgstr "Start printing after upload" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:41 +msgid "Use forward slashes ( / ) as a directory separator if needed." +msgstr "Use forward slashes ( / ) as a directory separator if needed." + +#: src/slic3r/GUI/PrintHostDialogs.cpp:157 +msgid "Cancel selected" +msgstr "Cancel selected" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:159 +msgid "Show error message" +msgstr "Show error message" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:198 +#: src/slic3r/GUI/PrintHostDialogs.cpp:217 +msgid "Enqueued" +msgstr "Enqueued" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:218 +msgid "Uploading" +msgstr "Uploading" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:222 +msgid "Completed" +msgstr "Completed" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:260 +msgid "Error uploading to print host:" +msgstr "Error uploading to print host:" + +#: src/slic3r/GUI/RammingChart.cpp:23 +msgid "NO RAMMING AT ALL" +msgstr "NO RAMMING AT ALL" + +#: src/slic3r/GUI/RammingChart.cpp:76 +msgid "Time" +msgstr "Time" + +#: src/slic3r/GUI/RammingChart.cpp:76 src/slic3r/GUI/RammingChart.cpp:81 +#: src/slic3r/GUI/WipeTowerDialog.cpp:82 src/libslic3r/PrintConfig.cpp:611 +#: src/libslic3r/PrintConfig.cpp:655 src/libslic3r/PrintConfig.cpp:670 +#: src/libslic3r/PrintConfig.cpp:2241 src/libslic3r/PrintConfig.cpp:2250 +#: src/libslic3r/PrintConfig.cpp:2308 src/libslic3r/PrintConfig.cpp:2315 +msgid "s" +msgstr "s" + +#: src/slic3r/GUI/RammingChart.cpp:81 +msgid "Volumetric speed" +msgstr "Volumetric speed" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "Slic3r Prusa Edition - System Information" +msgstr "Slic3r Prusa Edition - System Information" + +#: src/slic3r/GUI/Tab.cpp:50 src/libslic3r/PrintConfig.cpp:228 +msgid "Compatible printers" +msgstr "Compatible printers" + +#: src/slic3r/GUI/Tab.cpp:51 +msgid "Select the printers this profile is compatible with." +msgstr "Select the printers this profile is compatible with." + +#: src/slic3r/GUI/Tab.cpp:56 src/libslic3r/PrintConfig.cpp:243 +msgid "Compatible print profiles" +msgstr "Compatible print profiles" + +#: src/slic3r/GUI/Tab.cpp:57 +msgid "Select the print profiles this profile is compatible with." +msgstr "Select the print profiles this profile is compatible with." + +#: src/slic3r/GUI/Tab.cpp:132 +msgid "Save current " +msgstr "Save current " + +#: src/slic3r/GUI/Tab.cpp:133 +msgid "Delete this preset" +msgstr "Delete this preset" + +#: src/slic3r/GUI/Tab.cpp:145 +msgid "" +"Hover the cursor over buttons to find more information \n" +"or click this button." +msgstr "" +"Hover the cursor over buttons to find more information \n" +"or click this button." + +#: src/slic3r/GUI/Tab.cpp:858 +msgid "It's a default preset." +msgstr "It's a default preset." + +#: src/slic3r/GUI/Tab.cpp:859 +msgid "It's a system preset." +msgstr "It's a system preset." + +#: src/slic3r/GUI/Tab.cpp:860 +msgid "Current preset is inherited from " +msgstr "Current preset is inherited from " + +#: src/slic3r/GUI/Tab.cpp:865 +msgid "It can't be deleted or modified. " +msgstr "It can't be deleted or modified. " + +#: src/slic3r/GUI/Tab.cpp:866 +msgid "" +"Any modifications should be saved as a new preset inherited from this one. " +msgstr "" +"Any modifications should be saved as a new preset inherited from this one. " + +#: src/slic3r/GUI/Tab.cpp:867 +msgid "To do that please specify a new name for the preset." +msgstr "To do that please specify a new name for the preset." + +#: src/slic3r/GUI/Tab.cpp:871 +msgid "Additional information:" +msgstr "Additional information:" + +#: src/slic3r/GUI/Tab.cpp:877 +msgid "printer model" +msgstr "printer model" + +#: src/slic3r/GUI/Tab.cpp:885 +msgid "default print profile" +msgstr "default print profile" + +#: src/slic3r/GUI/Tab.cpp:888 +msgid "default filament profile" +msgstr "default filament profile" + +#: src/slic3r/GUI/Tab.cpp:902 +msgid "default SLA material profile" +msgstr "default SLA material profile" + +#: src/slic3r/GUI/Tab.cpp:906 +msgid "default SLA print profile" +msgstr "default SLA print profile" + +#: src/slic3r/GUI/Tab.cpp:948 src/slic3r/GUI/Tab.cpp:3303 +msgid "Layers and perimeters" +msgstr "Layers and perimeters" + +#: src/slic3r/GUI/Tab.cpp:949 src/libslic3r/PrintConfig.cpp:55 +msgid "Layer height" +msgstr "Layer height" + +#: src/slic3r/GUI/Tab.cpp:953 +msgid "Vertical shells" +msgstr "Vertical shells" + +#: src/slic3r/GUI/Tab.cpp:964 +msgid "Horizontal shells" +msgstr "Horizontal shells" + +#: src/slic3r/GUI/Tab.cpp:965 src/libslic3r/PrintConfig.cpp:1709 +msgid "Solid layers" +msgstr "Solid layers" + +#: src/slic3r/GUI/Tab.cpp:970 +msgid "Quality (slower slicing)" +msgstr "Quality (slower slicing)" + +#: src/slic3r/GUI/Tab.cpp:988 +msgid "Reducing printing time" +msgstr "Reducing printing time" + +#: src/slic3r/GUI/Tab.cpp:1000 +msgid "Skirt and brim" +msgstr "Skirt and brim" + +#: src/slic3r/GUI/Tab.cpp:1017 +msgid "Raft" +msgstr "Raft" + +#: src/slic3r/GUI/Tab.cpp:1021 +msgid "Options for support material and raft" +msgstr "Options for support material and raft" + +#: src/slic3r/GUI/Tab.cpp:1036 +msgid "Speed for print moves" +msgstr "Speed for print moves" + +#: src/slic3r/GUI/Tab.cpp:1048 +msgid "Speed for non-print moves" +msgstr "Speed for non-print moves" + +#: src/slic3r/GUI/Tab.cpp:1051 +msgid "Modifiers" +msgstr "Modifiers" + +#: src/slic3r/GUI/Tab.cpp:1054 +msgid "Acceleration control (advanced)" +msgstr "Acceleration control (advanced)" + +#: src/slic3r/GUI/Tab.cpp:1061 +msgid "Autospeed (advanced)" +msgstr "Autospeed (advanced)" + +#: src/slic3r/GUI/Tab.cpp:1069 +msgid "Multiple Extruders" +msgstr "Multiple Extruders" + +#: src/slic3r/GUI/Tab.cpp:1077 +msgid "Ooze prevention" +msgstr "Ooze prevention" + +#: src/slic3r/GUI/Tab.cpp:1094 +msgid "Extrusion width" +msgstr "Extrusion width" + +#: src/slic3r/GUI/Tab.cpp:1104 +msgid "Overlap" +msgstr "Overlap" + +#: src/slic3r/GUI/Tab.cpp:1107 +msgid "Flow" +msgstr "Flow" + +#: src/slic3r/GUI/Tab.cpp:1116 +msgid "Other" +msgstr "Other" + +#: src/slic3r/GUI/Tab.cpp:1119 src/slic3r/GUI/Tab.cpp:3351 +msgid "Output options" +msgstr "Output options" + +#: src/slic3r/GUI/Tab.cpp:1120 +msgid "Sequential printing" +msgstr "Sequential printing" + +#: src/slic3r/GUI/Tab.cpp:1122 +msgid "Extruder clearance (mm)" +msgstr "Extruder clearance (mm)" + +#: src/slic3r/GUI/Tab.cpp:1131 src/slic3r/GUI/Tab.cpp:3352 +msgid "Output file" +msgstr "Output file" + +#: src/slic3r/GUI/Tab.cpp:1138 src/libslic3r/PrintConfig.cpp:1382 +msgid "Post-processing scripts" +msgstr "Post-processing scripts" + +#: src/slic3r/GUI/Tab.cpp:1144 src/slic3r/GUI/Tab.cpp:1145 +#: src/slic3r/GUI/Tab.cpp:1527 src/slic3r/GUI/Tab.cpp:1528 +#: src/slic3r/GUI/Tab.cpp:1935 src/slic3r/GUI/Tab.cpp:1936 +#: src/slic3r/GUI/Tab.cpp:2027 src/slic3r/GUI/Tab.cpp:2028 +#: src/slic3r/GUI/Tab.cpp:3240 src/slic3r/GUI/Tab.cpp:3241 +msgid "Notes" +msgstr "Notes" + +#: src/slic3r/GUI/Tab.cpp:1151 src/slic3r/GUI/Tab.cpp:1535 +#: src/slic3r/GUI/Tab.cpp:1942 src/slic3r/GUI/Tab.cpp:2034 +#: src/slic3r/GUI/Tab.cpp:3248 src/slic3r/GUI/Tab.cpp:3357 +msgid "Dependencies" +msgstr "Dependencies" + +#: src/slic3r/GUI/Tab.cpp:1152 src/slic3r/GUI/Tab.cpp:1536 +#: src/slic3r/GUI/Tab.cpp:1943 src/slic3r/GUI/Tab.cpp:2035 +#: src/slic3r/GUI/Tab.cpp:3249 src/slic3r/GUI/Tab.cpp:3358 +msgid "Profile dependencies" +msgstr "Profile dependencies" + +#: src/slic3r/GUI/Tab.cpp:1198 +#, no-c-format +msgid "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" +msgstr "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" + +#: src/slic3r/GUI/Tab.cpp:1205 +msgid "Spiral Vase" +msgstr "Spiral Vase" + +#: src/slic3r/GUI/Tab.cpp:1228 +msgid "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool " +"change.\n" +"(both support_material_extruder and support_material_interface_extruder need " +"to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" +msgstr "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool " +"change.\n" +"(both support_material_extruder and support_material_interface_extruder need " +"to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" + +#: src/slic3r/GUI/Tab.cpp:1232 src/slic3r/GUI/Tab.cpp:1249 +msgid "Wipe Tower" +msgstr "Wipe Tower" + +#: src/slic3r/GUI/Tab.cpp:1246 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" + +#: src/slic3r/GUI/Tab.cpp:1264 +msgid "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" +msgstr "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" + +#: src/slic3r/GUI/Tab.cpp:1267 +msgid "Support Generator" +msgstr "Support Generator" + +#: src/slic3r/GUI/Tab.cpp:1309 +msgid "The " +msgstr "The " + +#: src/slic3r/GUI/Tab.cpp:1309 +#, no-c-format +msgid "" +" infill pattern is not supposed to work at 100% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +" infill pattern is not supposed to work at 100% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" + +#: src/slic3r/GUI/Tab.cpp:1429 +msgid "Temperature " +msgstr "Temperature " + +#: src/slic3r/GUI/Tab.cpp:1435 +msgid "Bed" +msgstr "Bed" + +#: src/slic3r/GUI/Tab.cpp:1440 +msgid "Cooling" +msgstr "Cooling" + +#: src/slic3r/GUI/Tab.cpp:1441 src/libslic3r/PrintConfig.cpp:1285 +#: src/libslic3r/PrintConfig.cpp:2097 +msgid "Enable" +msgstr "Enable" + +#: src/slic3r/GUI/Tab.cpp:1452 +msgid "Fan settings" +msgstr "Fan settings" + +#: src/slic3r/GUI/Tab.cpp:1453 +msgid "Fan speed" +msgstr "Fan speed" + +#: src/slic3r/GUI/Tab.cpp:1461 +msgid "Cooling thresholds" +msgstr "Cooling thresholds" + +#: src/slic3r/GUI/Tab.cpp:1467 +msgid "Filament properties" +msgstr "Filament properties" + +#: src/slic3r/GUI/Tab.cpp:1471 +msgid "Print speed override" +msgstr "Print speed override" + +#: src/slic3r/GUI/Tab.cpp:1481 +msgid "Toolchange parameters with single extruder MM printers" +msgstr "Toolchange parameters with single extruder MM printers" + +#: src/slic3r/GUI/Tab.cpp:1496 +msgid "Ramming settings" +msgstr "Ramming settings" + +#: src/slic3r/GUI/Tab.cpp:1514 src/slic3r/GUI/Tab.cpp:1898 +msgid "Custom G-code" +msgstr "Custom G-code" + +#: src/slic3r/GUI/Tab.cpp:1515 src/slic3r/GUI/Tab.cpp:1899 +#: src/libslic3r/PrintConfig.cpp:1735 src/libslic3r/PrintConfig.cpp:1750 +msgid "Start G-code" +msgstr "Start G-code" + +#: src/slic3r/GUI/Tab.cpp:1521 src/slic3r/GUI/Tab.cpp:1905 +#: src/libslic3r/PrintConfig.cpp:358 src/libslic3r/PrintConfig.cpp:368 +msgid "End G-code" +msgstr "End G-code" + +#: src/slic3r/GUI/Tab.cpp:1632 src/slic3r/GUI/Tab.cpp:1689 +msgid " Browse " +msgstr " Browse " + +#: src/slic3r/GUI/Tab.cpp:1651 src/slic3r/GUI/Tab.cpp:1838 +msgid "Test" +msgstr "Test" + +#: src/slic3r/GUI/Tab.cpp:1662 +msgid "Could not get a valid Printer Host reference" +msgstr "Could not get a valid Printer Host reference" + +#: src/slic3r/GUI/Tab.cpp:1668 src/slic3r/GUI/Tab.cpp:1851 +msgid "Success!" +msgstr "Success!" + +#: src/slic3r/GUI/Tab.cpp:1683 +msgid "" +"HTTPS CA file is optional. It is only needed if you use HTTPS with a self-" +"signed certificate." +msgstr "" +"HTTPS CA file is optional. It is only needed if you use HTTPS with a self-" +"signed certificate." + +#: src/slic3r/GUI/Tab.cpp:1696 +msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" +msgstr "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" + +#: src/slic3r/GUI/Tab.cpp:1697 +msgid "Open CA certificate file" +msgstr "Open CA certificate file" + +#: src/slic3r/GUI/Tab.cpp:1725 +msgid "" +"HTTPS CA File:\n" +"\tOn this system, Slic3r uses HTTPS certificates from the system Certificate " +"Store or Keychain.\n" +"\tTo use a custom CA file, please import your CA file into Certificate " +"Store / Keychain." +msgstr "" +"HTTPS CA File:\n" +"\tOn this system, Slic3r uses HTTPS certificates from the system Certificate " +"Store or Keychain.\n" +"\tTo use a custom CA file, please import your CA file into Certificate " +"Store / Keychain." + +#: src/slic3r/GUI/Tab.cpp:1763 src/slic3r/GUI/Tab.cpp:1964 +msgid "Size and coordinates" +msgstr "Size and coordinates" + +#: src/slic3r/GUI/Tab.cpp:1767 src/slic3r/GUI/Tab.cpp:1968 +#: src/slic3r/GUI/Tab.cpp:2911 +msgid " Set " +msgstr " Set " + +#: src/slic3r/GUI/Tab.cpp:1790 +msgid "Capabilities" +msgstr "Capabilities" + +#: src/slic3r/GUI/Tab.cpp:1795 +msgid "Number of extruders of the printer." +msgstr "Number of extruders of the printer." + +#: src/slic3r/GUI/Tab.cpp:1823 +msgid "USB/Serial connection" +msgstr "USB/Serial connection" + +#: src/slic3r/GUI/Tab.cpp:1824 src/libslic3r/PrintConfig.cpp:1590 +msgid "Serial port" +msgstr "Serial port" + +#: src/slic3r/GUI/Tab.cpp:1829 +msgid "Rescan serial ports" +msgstr "Rescan serial ports" + +#: src/slic3r/GUI/Tab.cpp:1851 +msgid "Connection to printer works correctly." +msgstr "Connection to printer works correctly." + +#: src/slic3r/GUI/Tab.cpp:1854 +msgid "Connection failed." +msgstr "Connection failed." + +#: src/slic3r/GUI/Tab.cpp:1867 src/slic3r/GUI/Tab.cpp:2022 +msgid "Print Host upload" +msgstr "Print Host upload" + +#: src/slic3r/GUI/Tab.cpp:1911 src/libslic3r/PrintConfig.cpp:128 +msgid "Before layer change G-code" +msgstr "Before layer change G-code" + +#: src/slic3r/GUI/Tab.cpp:1917 src/libslic3r/PrintConfig.cpp:1030 +msgid "After layer change G-code" +msgstr "After layer change G-code" + +#: src/slic3r/GUI/Tab.cpp:1923 src/libslic3r/PrintConfig.cpp:2005 +msgid "Tool change G-code" +msgstr "Tool change G-code" + +#: src/slic3r/GUI/Tab.cpp:1929 +msgid "Between objects G-code (for sequential printing)" +msgstr "Between objects G-code (for sequential printing)" + +#: src/slic3r/GUI/Tab.cpp:1990 +msgid "Display" +msgstr "Display" + +#: src/slic3r/GUI/Tab.cpp:2001 +msgid "Tilt" +msgstr "Tilt" + +#: src/slic3r/GUI/Tab.cpp:2002 +msgid "Tilt time" +msgstr "Tilt time" + +#: src/slic3r/GUI/Tab.cpp:2008 src/slic3r/GUI/Tab.cpp:3223 +msgid "Corrections" +msgstr "Corrections" + +#: src/slic3r/GUI/Tab.cpp:2074 src/slic3r/GUI/Tab.cpp:2136 +#: src/libslic3r/PrintConfig.cpp:1076 src/libslic3r/PrintConfig.cpp:1086 +#: src/libslic3r/PrintConfig.cpp:1096 src/libslic3r/PrintConfig.cpp:1109 +#: src/libslic3r/PrintConfig.cpp:1120 src/libslic3r/PrintConfig.cpp:1131 +#: src/libslic3r/PrintConfig.cpp:1142 +msgid "Machine limits" +msgstr "Machine limits" + +#: src/slic3r/GUI/Tab.cpp:2088 +msgid "Values in this column are for Full Power mode" +msgstr "Values in this column are for Full Power mode" + +#: src/slic3r/GUI/Tab.cpp:2089 +msgid "Full Power" +msgstr "Full Power" + +#: src/slic3r/GUI/Tab.cpp:2094 +msgid "Values in this column are for Silent mode" +msgstr "Values in this column are for Silent mode" + +#: src/slic3r/GUI/Tab.cpp:2095 +msgid "Silent" +msgstr "Silent" + +#: src/slic3r/GUI/Tab.cpp:2103 +msgid "Maximum feedrates" +msgstr "Maximum feedrates" + +#: src/slic3r/GUI/Tab.cpp:2108 +msgid "Maximum accelerations" +msgstr "Maximum accelerations" + +#: src/slic3r/GUI/Tab.cpp:2115 +msgid "Jerk limits" +msgstr "Jerk limits" + +#: src/slic3r/GUI/Tab.cpp:2120 +msgid "Minimum feedrates" +msgstr "Minimum feedrates" + +#: src/slic3r/GUI/Tab.cpp:2158 src/slic3r/GUI/Tab.cpp:2166 +msgid "Single extruder MM setup" +msgstr "Single extruder MM setup" + +#: src/slic3r/GUI/Tab.cpp:2167 +msgid "Single extruder multimaterial parameters" +msgstr "Single extruder multimaterial parameters" + +#: src/slic3r/GUI/Tab.cpp:2181 src/libslic3r/GCode/PreviewData.cpp:475 +#, c-format +msgid "Extruder %d" +msgstr "Extruder %d" + +#: src/slic3r/GUI/Tab.cpp:2188 +msgid "Layer height limits" +msgstr "Layer height limits" + +#: src/slic3r/GUI/Tab.cpp:2193 +msgid "Position (for multi-extruder printers)" +msgstr "Position (for multi-extruder printers)" + +#: src/slic3r/GUI/Tab.cpp:2196 +msgid "Retraction" +msgstr "Retraction" + +#: src/slic3r/GUI/Tab.cpp:2199 +msgid "Only lift Z" +msgstr "Only lift Z" + +#: src/slic3r/GUI/Tab.cpp:2212 +msgid "" +"Retraction when tool is disabled (advanced settings for multi-extruder " +"setups)" +msgstr "" +"Retraction when tool is disabled (advanced settings for multi-extruder " +"setups)" + +#: src/slic3r/GUI/Tab.cpp:2216 +msgid "Preview" +msgstr "Preview" + +#: src/slic3r/GUI/Tab.cpp:2352 +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 "" +"The Wipe option is not available when using the Firmware Retraction mode.\n" +"\n" +"Shall I disable it in order to enable Firmware Retraction?" + +#: src/slic3r/GUI/Tab.cpp:2354 +msgid "Firmware Retraction" +msgstr "Firmware Retraction" + +#: src/slic3r/GUI/Tab.cpp:2681 +#, c-format +msgid "Default preset (%s)" +msgstr "Default preset (%s)" + +#: src/slic3r/GUI/Tab.cpp:2682 +#, c-format +msgid "Preset (%s)" +msgstr "Preset (%s)" + +#: src/slic3r/GUI/Tab.cpp:2699 +msgid "has the following unsaved changes:" +msgstr "has the following unsaved changes:" + +#: src/slic3r/GUI/Tab.cpp:2702 +msgid "is not compatible with printer" +msgstr "is not compatible with printer" + +#: src/slic3r/GUI/Tab.cpp:2703 +msgid "is not compatible with print profile" +msgstr "is not compatible with print profile" + +#: src/slic3r/GUI/Tab.cpp:2705 +msgid "and it has the following unsaved changes:" +msgstr "and it has the following unsaved changes:" + +#: src/slic3r/GUI/Tab.cpp:2708 +msgid "Discard changes and continue anyway?" +msgstr "Discard changes and continue anyway?" + +#: src/slic3r/GUI/Tab.cpp:2709 +msgid "Unsaved Changes" +msgstr "Unsaved Changes" + +#: src/slic3r/GUI/Tab.cpp:2721 +msgid "Please check your object list before preset changing." +msgstr "Please check your object list before preset changing." + +#: src/slic3r/GUI/Tab.cpp:2801 +msgid "Copy" +msgstr "Copy" + +#: src/slic3r/GUI/Tab.cpp:2823 +msgid "The supplied name is empty. It can't be saved." +msgstr "The supplied name is empty. It can't be saved." + +#: src/slic3r/GUI/Tab.cpp:2828 +msgid "Cannot overwrite a system profile." +msgstr "Cannot overwrite a system profile." + +#: src/slic3r/GUI/Tab.cpp:2832 +msgid "Cannot overwrite an external profile." +msgstr "Cannot overwrite an external profile." + +#: src/slic3r/GUI/Tab.cpp:2858 +msgid "remove" +msgstr "remove" + +#: src/slic3r/GUI/Tab.cpp:2858 +msgid "delete" +msgstr "delete" + +#: src/slic3r/GUI/Tab.cpp:2859 +msgid "Are you sure you want to " +msgstr "Are you sure you want to " + +#: src/slic3r/GUI/Tab.cpp:2859 +msgid " the selected preset?" +msgstr " the selected preset?" + +#: src/slic3r/GUI/Tab.cpp:2860 +msgid "Remove" +msgstr "Remove" + +#: src/slic3r/GUI/Tab.cpp:2861 +msgid " Preset" +msgstr " Preset" + +#: src/slic3r/GUI/Tab.cpp:2989 +msgid "" +"LOCKED LOCK;indicates that the settings are the same as the system values " +"for the current option group" +msgstr "" +"LOCKED LOCK;indicates that the settings are the same as the system values " +"for the current option group" + +#: src/slic3r/GUI/Tab.cpp:2992 +msgid "" +"UNLOCKED LOCK;indicates that some settings were changed and are not equal to " +"the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group " +"to the system values." +msgstr "" +"UNLOCKED LOCK;indicates that some settings were changed and are not equal to " +"the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group " +"to the system values." + +#: src/slic3r/GUI/Tab.cpp:2998 +msgid "" +"WHITE BULLET;for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"WHITE BULLET;for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." + +#: src/slic3r/GUI/Tab.cpp:3002 +msgid "" +"BACK ARROW;indicates that the settings were changed and are not equal to the " +"last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group " +"to the last saved preset." +msgstr "" +"BACK ARROW;indicates that the settings were changed and are not equal to the " +"last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group " +"to the last saved preset." + +#: src/slic3r/GUI/Tab.cpp:3028 +msgid "" +"LOCKED LOCK icon indicates that the settings are the same as the system " +"values for the current option group" +msgstr "" +"LOCKED LOCK icon indicates that the settings are the same as the system " +"values for the current option group" + +#: src/slic3r/GUI/Tab.cpp:3030 +msgid "" +"UNLOCKED LOCK icon indicates that some settings were changed and are not " +"equal to the system values for the current option group.\n" +"Click to reset all settings for current option group to the system values." +msgstr "" +"UNLOCKED LOCK icon indicates that some settings were changed and are not " +"equal to the system values for the current option group.\n" +"Click to reset all settings for current option group to the system values." + +#: src/slic3r/GUI/Tab.cpp:3033 +msgid "WHITE BULLET icon indicates a non system preset." +msgstr "WHITE BULLET icon indicates a non system preset." + +#: src/slic3r/GUI/Tab.cpp:3036 +msgid "" +"WHITE BULLET icon indicates that the settings are the same as in the last " +"saved preset for the current option group." +msgstr "" +"WHITE BULLET icon indicates that the settings are the same as in the last " +"saved preset for the current option group." + +#: src/slic3r/GUI/Tab.cpp:3038 +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" +"Click to reset all settings for the current option group to the last saved " +"preset." +msgstr "" +"BACK ARROW icon indicates that the settings were changed and are not equal " +"to the last saved preset for the current option group.\n" +"Click to reset all settings for the current option group to the last saved " +"preset." + +#: src/slic3r/GUI/Tab.cpp:3044 +msgid "" +"LOCKED LOCK icon indicates that the value is the same as the system value." +msgstr "" +"LOCKED LOCK icon indicates that the value is the same as the system value." + +#: src/slic3r/GUI/Tab.cpp:3045 +msgid "" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to " +"the system value.\n" +"Click to reset current value to the system value." +msgstr "" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to " +"the system value.\n" +"Click to reset current value to the system value." + +#: src/slic3r/GUI/Tab.cpp:3051 +msgid "" +"WHITE BULLET icon indicates that the value is the same as in the last saved " +"preset." +msgstr "" +"WHITE BULLET icon indicates that the value is the same as in the last saved " +"preset." + +#: src/slic3r/GUI/Tab.cpp:3052 +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 "" +"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." + +#: src/slic3r/GUI/Tab.cpp:3152 +msgid " as:" +msgstr " as:" + +#: src/slic3r/GUI/Tab.cpp:3196 +msgid "the following postfix are not allowed:" +msgstr "the following postfix are not allowed:" + +#: src/slic3r/GUI/Tab.cpp:3200 +msgid "The supplied name is not available." +msgstr "The supplied name is not available." + +#: src/slic3r/GUI/Tab.cpp:3213 +msgid "Material" +msgstr "Material" + +#: src/slic3r/GUI/Tab.cpp:3215 src/slic3r/GUI/Tab.cpp:3305 +msgid "Layers" +msgstr "Layers" + +#: src/slic3r/GUI/Tab.cpp:3219 +msgid "Exposure" +msgstr "Exposure" + +#: src/slic3r/GUI/Tab.cpp:3313 +msgid "Support head" +msgstr "Support head" + +#: src/slic3r/GUI/Tab.cpp:3318 +msgid "Support pillar" +msgstr "Support pillar" + +#: src/slic3r/GUI/Tab.cpp:3328 +msgid "Connection of the support sticks and junctions" +msgstr "Connection of the support sticks and junctions" + +#: src/slic3r/GUI/Tab.cpp:3333 +msgid "Automatic generation" +msgstr "Automatic generation" + +#: src/slic3r/GUI/Tab.cpp:3395 +msgid "Head penetration should not be greater than the head width." +msgstr "Head penetration should not be greater than the head width." + +#: src/slic3r/GUI/Tab.cpp:3396 +msgid "Invalid Head penetration" +msgstr "Invalid Head penetration" + +#: src/slic3r/GUI/Tab.cpp:3408 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "Pinhead diameter should be smaller than the pillar diameter." + +#: src/slic3r/GUI/Tab.cpp:3409 +msgid "Invalid pinhead diameter" +msgstr "Invalid pinhead diameter" + +#: src/slic3r/GUI/Tab.hpp:307 src/slic3r/GUI/Tab.hpp:395 +msgid "Print Settings" +msgstr "Print Settings" + +#: src/slic3r/GUI/Tab.hpp:325 +msgid "Filament Settings" +msgstr "Filament Settings" + +#: src/slic3r/GUI/Tab.hpp:358 +msgid "Printer Settings" +msgstr "Printer Settings" + +#: src/slic3r/GUI/Tab.hpp:381 +msgid "Material Settings" +msgstr "Material Settings" + +#: src/slic3r/GUI/Tab.hpp:407 +msgid "Save preset" +msgstr "Save preset" + +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "Update available" +msgstr "Update available" + +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "New version of Slic3r PE is available" +msgstr "New version of Slic3r PE is available" + +#: src/slic3r/GUI/UpdateDialogs.cpp:36 +msgid "To download, follow the link below." +msgstr "To download, follow the link below." + +#: src/slic3r/GUI/UpdateDialogs.cpp:44 +msgid "Current version:" +msgstr "Current version:" + +#: src/slic3r/GUI/UpdateDialogs.cpp:46 +msgid "New version:" +msgstr "New version:" + +#: src/slic3r/GUI/UpdateDialogs.cpp:54 +msgid "Don't notify about new releases any more" +msgstr "Don't notify about new releases any more" + +#: src/slic3r/GUI/UpdateDialogs.cpp:72 src/slic3r/GUI/UpdateDialogs.cpp:164 +msgid "Configuration update" +msgstr "Configuration update" + +#: src/slic3r/GUI/UpdateDialogs.cpp:72 +msgid "Configuration update is available" +msgstr "Configuration update is available" + +#: src/slic3r/GUI/UpdateDialogs.cpp:75 +msgid "" +"Would you like to install it?\n" +"\n" +"Note that a full configuration snapshot will be created first. It can then " +"be restored at any time should there be a problem with the new version.\n" +"\n" +"Updated configuration bundles:" +msgstr "" +"Would you like to install it?\n" +"\n" +"Note that a full configuration snapshot will be created first. It can then " +"be restored at any time should there be a problem with the new version.\n" +"\n" +"Updated configuration bundles:" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r incompatibility" +msgstr "Slic3r incompatibility" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r configuration is incompatible" +msgstr "Slic3r configuration is incompatible" + +#: src/slic3r/GUI/UpdateDialogs.cpp:114 +msgid "" +"This version of Slic3r PE is not compatible with currently installed " +"configuration bundles.\n" +"This probably happened as a result of running an older Slic3r PE after using " +"a newer one.\n" +"\n" +"You may either exit Slic3r and try again with a newer version, or you may re-" +"run the initial configuration. Doing so will create a backup snapshot of the " +"existing configuration before installing files compatible with this Slic3r.\n" +msgstr "" +"This version of Slic3r PE is not compatible with currently installed " +"configuration bundles.\n" +"This probably happened as a result of running an older Slic3r PE after using " +"a newer one.\n" +"\n" +"You may either exit Slic3r and try again with a newer version, or you may re-" +"run the initial configuration. Doing so will create a backup snapshot of the " +"existing configuration before installing files compatible with this Slic3r.\n" + +#: src/slic3r/GUI/UpdateDialogs.cpp:123 +#, c-format +msgid "This Slic3r PE version: %s" +msgstr "This Slic3r PE version: %s" + +#: src/slic3r/GUI/UpdateDialogs.cpp:128 +msgid "Incompatible bundles:" +msgstr "Incompatible bundles:" + +#: src/slic3r/GUI/UpdateDialogs.cpp:144 +msgid "Exit Slic3r" +msgstr "Exit Slic3r" + +#: src/slic3r/GUI/UpdateDialogs.cpp:147 +msgid "Re-configure" +msgstr "Re-configure" + +#: src/slic3r/GUI/UpdateDialogs.cpp:168 +#, c-format +msgid "" +"Slic3r PE now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in " +"default settings for various printers. These System presets cannot be " +"modified, instead, users now may create their own presets inheriting " +"settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent " +"or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to " +"choose whether to enable automatic preset updates." +msgstr "" +"Slic3r PE now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in " +"default settings for various printers. These System presets cannot be " +"modified, instead, users now may create their own presets inheriting " +"settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent " +"or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to " +"choose whether to enable automatic preset updates." + +#: src/slic3r/GUI/UpdateDialogs.cpp:184 +msgid "For more information please visit our wiki page:" +msgstr "For more information please visit our wiki page:" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:14 +msgid "Ramming customization" +msgstr "Ramming customization" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:40 +msgid "" +"Ramming denotes the rapid extrusion just before a tool change in a single-" +"extruder MM printer. Its purpose is to properly shape the end of the " +"unloaded filament so it does not prevent insertion of the new filament and " +"can itself be reinserted later. This phase is important and different " +"materials can require different extrusion speeds to get the good shape. For " +"this reason, the extrusion rates during ramming are adjustable.\n" +"\n" +"This is an expert-level setting, incorrect adjustment will likely lead to " +"jams, extruder wheel grinding into filament etc." +msgstr "" +"Ramming denotes the rapid extrusion just before a tool change in a single-" +"extruder MM printer. Its purpose is to properly shape the end of the " +"unloaded filament so it does not prevent insertion of the new filament and " +"can itself be reinserted later. This phase is important and different " +"materials can require different extrusion speeds to get the good shape. For " +"this reason, the extrusion rates during ramming are adjustable.\n" +"\n" +"This is an expert-level setting, incorrect adjustment will likely lead to " +"jams, extruder wheel grinding into filament etc." + +#: src/slic3r/GUI/WipeTowerDialog.cpp:82 +msgid "Total ramming time" +msgstr "Total ramming time" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:84 +msgid "Total rammed volume" +msgstr "Total rammed volume" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:88 +msgid "Ramming line width" +msgstr "Ramming line width" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:90 +msgid "Ramming line spacing" +msgstr "Ramming line spacing" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:141 +msgid "Wipe tower - Purging volume adjustment" +msgstr "Wipe tower - Purging volume adjustment" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:225 +msgid "" +"Here you can adjust required purging volume (mm³) for any given pair of " +"tools." +msgstr "" +"Here you can adjust required purging volume (mm³) for any given pair of " +"tools." + +#: src/slic3r/GUI/WipeTowerDialog.cpp:226 +msgid "Extruder changed to" +msgstr "Extruder changed to" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:234 +msgid "unloaded" +msgstr "unloaded" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:235 +msgid "loaded" +msgstr "loaded" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:240 +msgid "Tool #" +msgstr "Tool #" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:247 +msgid "" +"Total purging volume is calculated by summing two values below, depending on " +"which tools are loaded/unloaded." +msgstr "" +"Total purging volume is calculated by summing two values below, depending on " +"which tools are loaded/unloaded." + +#: src/slic3r/GUI/WipeTowerDialog.cpp:248 +msgid "Volume to purge (mm³) when the filament is being" +msgstr "Volume to purge (mm³) when the filament is being" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:262 +msgid "From" +msgstr "From" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:327 +msgid "" +"Switching to simple settings will discard changes done in the advanced " +"mode!\n" +"\n" +"Do you want to proceed?" +msgstr "" +"Switching to simple settings will discard changes done in the advanced " +"mode!\n" +"\n" +"Do you want to proceed?" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:339 +msgid "Show simplified settings" +msgstr "Show simplified settings" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:339 +msgid "Show advanced settings" +msgstr "Show advanced settings" + +#: src/slic3r/GUI/wxExtensions.cpp:2398 +#, c-format +msgid "Switch to the %s mode" +msgstr "Switch to the %s mode" + +#: src/slic3r/GUI/wxExtensions.cpp:2399 +#, c-format +msgid "Current mode is %s" +msgstr "Current mode is %s" + +#: src/slic3r/Utils/Duet.cpp:51 +msgid "Connection to Duet works correctly." +msgstr "Connection to Duet works correctly." + +#: src/slic3r/Utils/Duet.cpp:56 +msgid "Could not connect to Duet" +msgstr "Could not connect to Duet" + +#: src/slic3r/Utils/Duet.cpp:84 src/slic3r/Utils/Duet.cpp:154 +msgid "Unknown error occured" +msgstr "Unknown error occured" + +#: src/slic3r/Utils/Duet.cpp:148 +msgid "Wrong password" +msgstr "Wrong password" + +#: src/slic3r/Utils/Duet.cpp:151 +msgid "Could not get resources to create a new connection" +msgstr "Could not get resources to create a new connection" + +#: src/slic3r/Utils/OctoPrint.cpp:69 +#, c-format +msgid "Mismatched type of print host: %s" +msgstr "Mismatched type of print host: %s" + +#: src/slic3r/Utils/OctoPrint.cpp:84 +msgid "Connection to OctoPrint works correctly." +msgstr "Connection to OctoPrint works correctly." + +#: src/slic3r/Utils/OctoPrint.cpp:90 +msgid "Could not connect to OctoPrint" +msgstr "Could not connect to OctoPrint" + +#: src/slic3r/Utils/OctoPrint.cpp:90 +msgid "Note: OctoPrint version at least 1.1.0 is required." +msgstr "Note: OctoPrint version at least 1.1.0 is required." + +#: src/slic3r/Utils/OctoPrint.cpp:195 +msgid "Connection to Prusa SLA works correctly." +msgstr "Connection to Prusa SLA works correctly." + +#: src/slic3r/Utils/OctoPrint.cpp:200 +msgid "Could not connect to Prusa SLA" +msgstr "Could not connect to Prusa SLA" + +#: src/slic3r/Utils/PresetUpdater.cpp:583 +#, c-format +msgid "requires min. %s and max. %s" +msgstr "requires min. %s and max. %s" + +#: src/slic3r/Utils/PresetUpdater.cpp:588 +#, c-format +msgid "requires min. %s" +msgstr "requires min. %s" + +#: src/slic3r/Utils/PresetUpdater.cpp:590 +#, c-format +msgid "requires max. %s" +msgstr "requires max. %s" + +#: src/slic3r/Utils/FixModelByWin10.cpp:219 +#: src/slic3r/Utils/FixModelByWin10.cpp:359 +msgid "Exporting source model" +msgstr "Exporting source model" + +#: src/slic3r/Utils/FixModelByWin10.cpp:235 +msgid "Failed loading the input model." +msgstr "Failed loading the input model." + +#: src/slic3r/Utils/FixModelByWin10.cpp:242 +msgid "Repairing model by the Netfabb service" +msgstr "Repairing model by the Netfabb service" + +#: src/slic3r/Utils/FixModelByWin10.cpp:248 +msgid "Mesh repair failed." +msgstr "Mesh repair failed." + +#: src/slic3r/Utils/FixModelByWin10.cpp:251 +#: src/slic3r/Utils/FixModelByWin10.cpp:378 +msgid "Loading repaired model" +msgstr "Loading repaired model" + +#: src/slic3r/Utils/FixModelByWin10.cpp:263 +#: src/slic3r/Utils/FixModelByWin10.cpp:270 +#: src/slic3r/Utils/FixModelByWin10.cpp:302 +msgid "Saving mesh into the 3MF container failed." +msgstr "Saving mesh into the 3MF container failed." + +#: src/slic3r/Utils/FixModelByWin10.cpp:340 +msgid "Model fixing" +msgstr "Model fixing" + +#: src/slic3r/Utils/FixModelByWin10.cpp:341 +msgid "Exporting model..." +msgstr "Exporting model..." + +#: src/slic3r/Utils/FixModelByWin10.cpp:368 +msgid "Export of a temporary 3mf file failed" +msgstr "Export of a temporary 3mf file failed" + +#: src/slic3r/Utils/FixModelByWin10.cpp:383 +msgid "Import of the repaired 3mf file failed" +msgstr "Import of the repaired 3mf file failed" + +#: src/slic3r/Utils/FixModelByWin10.cpp:385 +msgid "Repaired 3MF file does not contain any object" +msgstr "Repaired 3MF file does not contain any object" + +#: src/slic3r/Utils/FixModelByWin10.cpp:387 +msgid "Repaired 3MF file contains more than one object" +msgstr "Repaired 3MF file contains more than one object" + +#: src/slic3r/Utils/FixModelByWin10.cpp:389 +msgid "Repaired 3MF file does not contain any volume" +msgstr "Repaired 3MF file does not contain any volume" + +#: src/slic3r/Utils/FixModelByWin10.cpp:391 +msgid "Repaired 3MF file contains more than one volume" +msgstr "Repaired 3MF file contains more than one volume" + +#: src/slic3r/Utils/FixModelByWin10.cpp:400 +msgid "Model repair finished" +msgstr "Model repair finished" + +#: src/slic3r/Utils/FixModelByWin10.cpp:406 +msgid "Model repair canceled" +msgstr "Model repair canceled" + +#: src/slic3r/Utils/FixModelByWin10.cpp:423 +msgid "Model repaired successfully" +msgstr "Model repaired successfully" + +#: src/slic3r/Utils/FixModelByWin10.cpp:423 +#: src/slic3r/Utils/FixModelByWin10.cpp:426 +msgid "Model Repair by the Netfabb service" +msgstr "Model Repair by the Netfabb service" + +#: src/slic3r/Utils/FixModelByWin10.cpp:426 +msgid "Model repair failed: \n" +msgstr "Model repair failed: \n" + +#: src/libslic3r/Zipper.cpp:35 +msgid "undefined error" +msgstr "undefined error" + +#: src/libslic3r/Zipper.cpp:37 +msgid "too many files" +msgstr "too many files" + +#: src/libslic3r/Zipper.cpp:39 +msgid "file too large" +msgstr "file too large" + +#: src/libslic3r/Zipper.cpp:41 +msgid "unsupported method" +msgstr "unsupported method" + +#: src/libslic3r/Zipper.cpp:43 +msgid "unsupported encryption" +msgstr "unsupported encryption" + +#: src/libslic3r/Zipper.cpp:45 +msgid "unsupported feature" +msgstr "unsupported feature" + +#: src/libslic3r/Zipper.cpp:47 +msgid "failed finding central directory" +msgstr "failed finding central directory" + +#: src/libslic3r/Zipper.cpp:49 +msgid "not a ZIP archive" +msgstr "not a ZIP archive" + +#: src/libslic3r/Zipper.cpp:51 +msgid "invalid header or archive is corrupted" +msgstr "invalid header or archive is corrupted" + +#: src/libslic3r/Zipper.cpp:53 +msgid "unsupported multidisk archive" +msgstr "unsupported multidisk archive" + +#: src/libslic3r/Zipper.cpp:55 +msgid "decompression failed or archive is corrupted" +msgstr "decompression failed or archive is corrupted" + +#: src/libslic3r/Zipper.cpp:57 +msgid "compression failed" +msgstr "compression failed" + +#: src/libslic3r/Zipper.cpp:59 +msgid "unexpected decompressed size" +msgstr "unexpected decompressed size" + +#: src/libslic3r/Zipper.cpp:61 +msgid "CRC-32 check failed" +msgstr "CRC-32 check failed" + +#: src/libslic3r/Zipper.cpp:63 +msgid "unsupported central directory size" +msgstr "unsupported central directory size" + +#: src/libslic3r/Zipper.cpp:65 +msgid "allocation failed" +msgstr "allocation failed" + +#: src/libslic3r/Zipper.cpp:67 +msgid "file open failed" +msgstr "file open failed" + +#: src/libslic3r/Zipper.cpp:69 +msgid "file create failed" +msgstr "file create failed" + +#: src/libslic3r/Zipper.cpp:71 +msgid "file write failed" +msgstr "file write failed" + +#: src/libslic3r/Zipper.cpp:73 +msgid "file read failed" +msgstr "file read failed" + +#: src/libslic3r/Zipper.cpp:75 +msgid "file close failed" +msgstr "file close failed" + +#: src/libslic3r/Zipper.cpp:77 +msgid "file seek failed" +msgstr "file seek failed" + +#: src/libslic3r/Zipper.cpp:79 +msgid "file stat failed" +msgstr "file stat failed" + +#: src/libslic3r/Zipper.cpp:81 +msgid "invalid parameter" +msgstr "invalid parameter" + +#: src/libslic3r/Zipper.cpp:83 +msgid "invalid filename" +msgstr "invalid filename" + +#: src/libslic3r/Zipper.cpp:85 +msgid "buffer too small" +msgstr "buffer too small" + +#: src/libslic3r/Zipper.cpp:87 +msgid "internal error" +msgstr "internal error" + +#: src/libslic3r/Zipper.cpp:89 +msgid "file not found" +msgstr "file not found" + +#: src/libslic3r/Zipper.cpp:91 +msgid "archive is too large" +msgstr "archive is too large" + +#: src/libslic3r/Zipper.cpp:93 +msgid "validation failed" +msgstr "validation failed" + +#: src/libslic3r/Zipper.cpp:95 +msgid "write calledback failed" +msgstr "write calledback failed" + +#: src/libslic3r/Zipper.cpp:105 +msgid "Error with zip archive" +msgstr "Error with zip archive" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2153 +msgid "Starting" +msgstr "Starting" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2154 +msgid "Filtering" +msgstr "Filtering" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2155 +msgid "Generate pinheads" +msgstr "Generate pinheads" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2156 +msgid "Classification" +msgstr "Classification" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2157 +msgid "Routing to ground" +msgstr "Routing to ground" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2158 +msgid "Routing supports to model surface" +msgstr "Routing supports to model surface" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2159 +msgid "Cascading pillars" +msgstr "Cascading pillars" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2160 +msgid "Processing small holes" +msgstr "Processing small holes" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2161 +msgid "Done" +msgstr "Done" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2162 +msgid "Abort" +msgstr "Abort" + +#: src/libslic3r/Print.cpp:1136 +msgid "All objects are outside of the print volume." +msgstr "All objects are outside of the print volume." + +#: src/libslic3r/Print.cpp:1165 +msgid "Some objects are too close; your extruder will collide with them." +msgstr "Some objects are too close; your extruder will collide with them." + +#: src/libslic3r/Print.cpp:1180 +msgid "" +"Some objects are too tall and cannot be printed without extruder collisions." +msgstr "" +"Some objects are too tall and cannot be printed without extruder collisions." + +#: src/libslic3r/Print.cpp:1190 +msgid "The Spiral Vase option can only be used when printing a single object." +msgstr "The Spiral Vase option can only be used when printing a single object." + +#: src/libslic3r/Print.cpp:1192 +msgid "" +"The Spiral Vase option can only be used when printing single material " +"objects." +msgstr "" +"The Spiral Vase option can only be used when printing single material " +"objects." + +#: src/libslic3r/Print.cpp:1198 +msgid "" +"All extruders must have the same diameter for single extruder multimaterial " +"printer." +msgstr "" +"All extruders must have the same diameter for single extruder multimaterial " +"printer." + +#: src/libslic3r/Print.cpp:1203 +msgid "" +"The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter " +"and Repetier G-code flavors." +msgstr "" +"The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter " +"and Repetier G-code flavors." + +#: src/libslic3r/Print.cpp:1205 +msgid "" +"The Wipe Tower is currently only supported with the relative extruder " +"addressing (use_relative_e_distances=1)." +msgstr "" +"The Wipe Tower is currently only supported with the relative extruder " +"addressing (use_relative_e_distances=1)." + +#: src/libslic3r/Print.cpp:1226 +msgid "" +"The Wipe Tower is only supported for multiple objects if they have equal " +"layer heigths" +msgstr "" +"The Wipe Tower is only supported for multiple objects if they have equal " +"layer heigths" + +#: src/libslic3r/Print.cpp:1228 +msgid "" +"The Wipe Tower is only supported for multiple objects if they are printed " +"over an equal number of raft layers" +msgstr "" +"The Wipe Tower is only supported for multiple objects if they are printed " +"over an equal number of raft layers" + +#: src/libslic3r/Print.cpp:1230 +msgid "" +"The Wipe Tower is only supported for multiple objects if they are printed " +"with the same support_material_contact_distance" +msgstr "" +"The Wipe Tower is only supported for multiple objects if they are printed " +"with the same support_material_contact_distance" + +#: src/libslic3r/Print.cpp:1232 +msgid "" +"The Wipe Tower is only supported for multiple objects if they are sliced " +"equally." +msgstr "" +"The Wipe Tower is only supported for multiple objects if they are sliced " +"equally." + +#: src/libslic3r/Print.cpp:1261 +msgid "" +"The Wipe tower is only supported if all objects have the same layer height " +"profile" +msgstr "" +"The Wipe tower is only supported if all objects have the same layer height " +"profile" + +#: src/libslic3r/Print.cpp:1271 +msgid "The supplied settings will cause an empty print." +msgstr "The supplied settings will cause an empty print." + +#: src/libslic3r/Print.cpp:1288 +msgid "" +"One or more object were assigned an extruder that the printer does not have." +msgstr "" +"One or more object were assigned an extruder that the printer does not have." + +#: src/libslic3r/Print.cpp:1297 +msgid "" +"Printing with multiple extruders of differing nozzle diameters. If support " +"is to be printed with the current extruder (support_material_extruder == 0 " +"or support_material_interface_extruder == 0), all nozzles have to be of the " +"same diameter." +msgstr "" +"Printing with multiple extruders of differing nozzle diameters. If support " +"is to be printed with the current extruder (support_material_extruder == 0 " +"or support_material_interface_extruder == 0), all nozzles have to be of the " +"same diameter." + +#: src/libslic3r/Print.cpp:1305 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers " +"need to be synchronized with the object layers." +msgstr "" +"For the Wipe Tower to work with the soluble supports, the support layers " +"need to be synchronized with the object layers." + +#: src/libslic3r/Print.cpp:1309 +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 " +"support_material_extruder and support_material_interface_extruder need to be " +"set to 0)." +msgstr "" +"The Wipe Tower currently supports the non-soluble supports only if they are " +"printed with the current extruder without triggering a tool change. (both " +"support_material_extruder and support_material_interface_extruder need to be " +"set to 0)." + +#: src/libslic3r/Print.cpp:1316 +msgid "first_layer_height" +msgstr "first_layer_height" + +#: src/libslic3r/Print.cpp:1331 +msgid "First layer height can't be greater than nozzle diameter" +msgstr "First layer height can't be greater than nozzle diameter" + +#: src/libslic3r/Print.cpp:1335 +msgid "Layer height can't be greater than nozzle diameter" +msgstr "Layer height can't be greater than nozzle diameter" + +#: src/libslic3r/SLAPrint.cpp:55 +msgid "Slicing model" +msgstr "Slicing model" + +#: src/libslic3r/SLAPrint.cpp:56 src/libslic3r/SLAPrint.cpp:801 +msgid "Generating support points" +msgstr "Generating support points" + +#: src/libslic3r/SLAPrint.cpp:57 +msgid "Generating support tree" +msgstr "Generating support tree" + +#: src/libslic3r/SLAPrint.cpp:58 +msgid "Generating pad" +msgstr "Generating pad" + +#: src/libslic3r/SLAPrint.cpp:59 +msgid "Slicing supports" +msgstr "Slicing supports" + +#: src/libslic3r/SLAPrint.cpp:71 +msgid "Merging slices and calculating statistics" +msgstr "Merging slices and calculating statistics" + +#: src/libslic3r/SLAPrint.cpp:72 +msgid "Rasterizing layers" +msgstr "Rasterizing layers" + +#: src/libslic3r/SLAPrint.cpp:605 +msgid "" +"Cannot proceed without support points! Add support points or disable support " +"generation." +msgstr "" +"Cannot proceed without support points! Add support points or disable support " +"generation." + +#: src/libslic3r/SLAPrint.cpp:617 +msgid "Elevation is too low for object." +msgstr "Elevation is too low for object." + +#: src/libslic3r/SLAPrint.cpp:699 +msgid "Slicing had to be stopped due to an internal error." +msgstr "Slicing had to be stopped due to an internal error." + +#: src/libslic3r/SLAPrint.cpp:849 src/libslic3r/SLAPrint.cpp:859 +#: src/libslic3r/SLAPrint.cpp:907 +msgid "Visualizing supports" +msgstr "Visualizing supports" + +#: src/libslic3r/SLAPrint.cpp:1449 +msgid "Slicing done" +msgstr "Slicing done" + +#: src/libslic3r/PrintBase.cpp:65 +msgid "Failed processing of the output_filename_format template." +msgstr "Failed processing of the output_filename_format template." + +#: src/libslic3r/PrintConfig.cpp:42 src/libslic3r/PrintConfig.cpp:43 +msgid "Printer technology" +msgstr "Printer technology" + +#: src/libslic3r/PrintConfig.cpp:50 +msgid "Bed shape" +msgstr "Bed shape" + +#: src/libslic3r/PrintConfig.cpp:57 +msgid "" +"This setting controls the height (and thus the total number) of the slices/" +"layers. Thinner layers give better accuracy but take more time to print." +msgstr "" +"This setting controls the height (and thus the total number) of the slices/" +"layers. Thinner layers give better accuracy but take more time to print." + +#: src/libslic3r/PrintConfig.cpp:64 +msgid "Max print height" +msgstr "Max print height" + +#: src/libslic3r/PrintConfig.cpp:65 +msgid "" +"Set this to the maximum height that can be reached by your extruder while " +"printing." +msgstr "" +"Set this to the maximum height that can be reached by your extruder while " +"printing." + +#: src/libslic3r/PrintConfig.cpp:71 +msgid "Slice gap closing radius" +msgstr "Slice gap closing radius" + +#: src/libslic3r/PrintConfig.cpp:73 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:81 +msgid "Hostname, IP or URL" +msgstr "Hostname, IP or URL" + +#: src/libslic3r/PrintConfig.cpp:82 +msgid "" +"Slic3r can upload G-code files to a printer host. This field should contain " +"the hostname, IP address or URL of the printer host instance." +msgstr "" +"Slic3r can upload G-code files to a printer host. This field should contain " +"the hostname, IP address or URL of the printer host instance." + +#: src/libslic3r/PrintConfig.cpp:88 +msgid "API Key / Password" +msgstr "API Key / Password" + +#: src/libslic3r/PrintConfig.cpp:89 +msgid "" +"Slic3r can upload G-code files to a printer host. This field should contain " +"the API Key or the password required for authentication." +msgstr "" +"Slic3r can upload G-code files to a printer host. This field should contain " +"the API Key or the password required for authentication." + +#: src/libslic3r/PrintConfig.cpp:111 +msgid "Avoid crossing perimeters" +msgstr "Avoid crossing perimeters" + +#: src/libslic3r/PrintConfig.cpp:112 +msgid "" +"Optimize travel moves in order to minimize the crossing of perimeters. This " +"is mostly useful with Bowden extruders which suffer from oozing. This " +"feature slows down both the print and the G-code generation." +msgstr "" +"Optimize travel moves in order to minimize the crossing of perimeters. This " +"is mostly useful with Bowden extruders which suffer from oozing. This " +"feature slows down both the print and the G-code generation." + +#: src/libslic3r/PrintConfig.cpp:119 src/libslic3r/PrintConfig.cpp:1976 +msgid "Other layers" +msgstr "Other layers" + +#: src/libslic3r/PrintConfig.cpp:120 +msgid "" +"Bed temperature for layers after the first one. Set this to zero to disable " +"bed temperature control commands in the output." +msgstr "" +"Bed temperature for layers after the first one. Set this to zero to disable " +"bed temperature control commands in the output." + +#: src/libslic3r/PrintConfig.cpp:122 +msgid "Bed temperature" +msgstr "Bed temperature" + +#: src/libslic3r/PrintConfig.cpp:129 +msgid "" +"This custom code is inserted at every layer change, right before the Z move. " +"Note that you can use placeholder variables for all Slic3r settings as well " +"as [layer_num] and [layer_z]." +msgstr "" +"This custom code is inserted at every layer change, right before the Z move. " +"Note that you can use placeholder variables for all Slic3r settings as well " +"as [layer_num] and [layer_z]." + +#: src/libslic3r/PrintConfig.cpp:139 +msgid "Between objects G-code" +msgstr "Between objects G-code" + +#: src/libslic3r/PrintConfig.cpp:140 +msgid "" +"This code is inserted between objects when using sequential printing. By " +"default extruder and bed temperature are reset using non-wait command; " +"however if M104, M109, M140 or M190 are detected in this custom code, Slic3r " +"will not add temperature commands. Note that you can use placeholder " +"variables for all Slic3r settings, so you can put a \"M109 " +"S[first_layer_temperature]\" command wherever you want." +msgstr "" +"This code is inserted between objects when using sequential printing. By " +"default extruder and bed temperature are reset using non-wait command; " +"however if M104, M109, M140 or M190 are detected in this custom code, Slic3r " +"will not add temperature commands. Note that you can use placeholder " +"variables for all Slic3r settings, so you can put a \"M109 " +"S[first_layer_temperature]\" command wherever you want." + +#: src/libslic3r/PrintConfig.cpp:150 +msgid "Number of solid layers to generate on bottom surfaces." +msgstr "Number of solid layers to generate on bottom surfaces." + +#: src/libslic3r/PrintConfig.cpp:151 +msgid "Bottom solid layers" +msgstr "Bottom solid layers" + +#: src/libslic3r/PrintConfig.cpp:156 +msgid "Bridge" +msgstr "Bridge" + +#: src/libslic3r/PrintConfig.cpp:157 +msgid "" +"This is the acceleration your printer will use for bridges. Set zero to " +"disable acceleration control for bridges." +msgstr "" +"This is the acceleration your printer will use for bridges. Set zero to " +"disable acceleration control for bridges." + +#: src/libslic3r/PrintConfig.cpp:159 src/libslic3r/PrintConfig.cpp:302 +#: src/libslic3r/PrintConfig.cpp:814 src/libslic3r/PrintConfig.cpp:935 +#: src/libslic3r/PrintConfig.cpp:1088 src/libslic3r/PrintConfig.cpp:1133 +#: src/libslic3r/PrintConfig.cpp:1144 src/libslic3r/PrintConfig.cpp:1333 +msgid "mm/s²" +msgstr "mm/s²" + +#: src/libslic3r/PrintConfig.cpp:165 +msgid "Bridging angle" +msgstr "Bridging angle" + +#: src/libslic3r/PrintConfig.cpp:167 +msgid "" +"Bridging angle override. If left to zero, the bridging angle will be " +"calculated automatically. Otherwise the provided angle will be used for all " +"bridges. Use 180° for zero angle." +msgstr "" +"Bridging angle override. If left to zero, the bridging angle will be " +"calculated automatically. Otherwise the provided angle will be used for all " +"bridges. Use 180° for zero angle." + +#: src/libslic3r/PrintConfig.cpp:170 src/libslic3r/PrintConfig.cpp:732 +#: src/libslic3r/PrintConfig.cpp:1569 src/libslic3r/PrintConfig.cpp:1579 +#: src/libslic3r/PrintConfig.cpp:1807 src/libslic3r/PrintConfig.cpp:1961 +#: src/libslic3r/PrintConfig.cpp:2459 +msgid "°" +msgstr "°" + +#: src/libslic3r/PrintConfig.cpp:176 +msgid "Bridges fan speed" +msgstr "Bridges fan speed" + +#: src/libslic3r/PrintConfig.cpp:177 +msgid "This fan speed is enforced during all bridges and overhangs." +msgstr "This fan speed is enforced during all bridges and overhangs." + +#: src/libslic3r/PrintConfig.cpp:178 src/libslic3r/PrintConfig.cpp:744 +#: src/libslic3r/PrintConfig.cpp:1153 src/libslic3r/PrintConfig.cpp:1216 +#: src/libslic3r/PrintConfig.cpp:1461 src/libslic3r/PrintConfig.cpp:2258 +#: src/libslic3r/PrintConfig.cpp:2498 +msgid "%" +msgstr "%" + +#: src/libslic3r/PrintConfig.cpp:185 +msgid "Bridge flow ratio" +msgstr "Bridge flow ratio" + +#: src/libslic3r/PrintConfig.cpp:187 +msgid "" +"This factor affects the amount of plastic for bridging. You can decrease it " +"slightly to pull the extrudates and prevent sagging, although default " +"settings are usually good and you should experiment with cooling (use a fan) " +"before tweaking this." +msgstr "" +"This factor affects the amount of plastic for bridging. You can decrease it " +"slightly to pull the extrudates and prevent sagging, although default " +"settings are usually good and you should experiment with cooling (use a fan) " +"before tweaking this." + +#: src/libslic3r/PrintConfig.cpp:197 +msgid "Bridges" +msgstr "Bridges" + +#: src/libslic3r/PrintConfig.cpp:199 +msgid "Speed for printing bridges." +msgstr "Speed for printing bridges." + +#: src/libslic3r/PrintConfig.cpp:200 src/libslic3r/PrintConfig.cpp:576 +#: src/libslic3r/PrintConfig.cpp:584 src/libslic3r/PrintConfig.cpp:593 +#: src/libslic3r/PrintConfig.cpp:601 src/libslic3r/PrintConfig.cpp:628 +#: src/libslic3r/PrintConfig.cpp:647 src/libslic3r/PrintConfig.cpp:873 +#: src/libslic3r/PrintConfig.cpp:1000 src/libslic3r/PrintConfig.cpp:1078 +#: src/libslic3r/PrintConfig.cpp:1098 src/libslic3r/PrintConfig.cpp:1111 +#: src/libslic3r/PrintConfig.cpp:1122 src/libslic3r/PrintConfig.cpp:1175 +#: src/libslic3r/PrintConfig.cpp:1234 src/libslic3r/PrintConfig.cpp:1362 +#: src/libslic3r/PrintConfig.cpp:1536 src/libslic3r/PrintConfig.cpp:1545 +#: src/libslic3r/PrintConfig.cpp:1940 src/libslic3r/PrintConfig.cpp:2051 +msgid "mm/s" +msgstr "mm/s" + +#: src/libslic3r/PrintConfig.cpp:207 +msgid "Brim width" +msgstr "Brim width" + +#: src/libslic3r/PrintConfig.cpp:208 +msgid "" +"Horizontal width of the brim that will be printed around each object on the " +"first layer." +msgstr "" +"Horizontal width of the brim that will be printed around each object on the " +"first layer." + +#: src/libslic3r/PrintConfig.cpp:215 +msgid "Clip multi-part objects" +msgstr "Clip multi-part objects" + +#: src/libslic3r/PrintConfig.cpp:216 +msgid "" +"When printing multi-material objects, this settings will make slic3r to clip " +"the overlapping object parts one by the other (2nd part will be clipped by " +"the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "" +"When printing multi-material objects, this settings will make slic3r to clip " +"the overlapping object parts one by the other (2nd part will be clipped by " +"the 1st, 3rd part will be clipped by the 1st and 2nd etc)." + +#: src/libslic3r/PrintConfig.cpp:223 +msgid "Colorprint height" +msgstr "Colorprint height" + +#: src/libslic3r/PrintConfig.cpp:224 +msgid "Heights at which a filament change is to occur. " +msgstr "Heights at which a filament change is to occur. " + +#: src/libslic3r/PrintConfig.cpp:234 +msgid "Compatible printers condition" +msgstr "Compatible printers condition" + +#: src/libslic3r/PrintConfig.cpp:235 +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." + +#: src/libslic3r/PrintConfig.cpp:249 +msgid "Compatible print profiles condition" +msgstr "Compatible print profiles condition" + +#: src/libslic3r/PrintConfig.cpp:250 +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." + +#: src/libslic3r/PrintConfig.cpp:267 +msgid "Complete individual objects" +msgstr "Complete individual objects" + +#: src/libslic3r/PrintConfig.cpp:268 +msgid "" +"When printing multiple objects or copies, this feature will complete each " +"object before moving onto next one (and starting it from its bottom layer). " +"This feature is useful to avoid the risk of ruined prints. Slic3r should " +"warn and prevent you from extruder collisions, but beware." +msgstr "" +"When printing multiple objects or copies, this feature will complete each " +"object before moving onto next one (and starting it from its bottom layer). " +"This feature is useful to avoid the risk of ruined prints. Slic3r should " +"warn and prevent you from extruder collisions, but beware." + +#: src/libslic3r/PrintConfig.cpp:276 +msgid "Enable auto cooling" +msgstr "Enable auto cooling" + +#: src/libslic3r/PrintConfig.cpp:277 +msgid "" +"This flag enables the automatic cooling logic that adjusts print speed and " +"fan speed according to layer printing time." +msgstr "" +"This flag enables the automatic cooling logic that adjusts print speed and " +"fan speed according to layer printing time." + +#: src/libslic3r/PrintConfig.cpp:282 +msgid "Cooling tube position" +msgstr "Cooling tube position" + +#: src/libslic3r/PrintConfig.cpp:283 +msgid "Distance of the center-point of the cooling tube from the extruder tip " +msgstr "" +"Distance of the center-point of the cooling tube from the extruder tip " + +#: src/libslic3r/PrintConfig.cpp:290 +msgid "Cooling tube length" +msgstr "Cooling tube length" + +#: src/libslic3r/PrintConfig.cpp:291 +msgid "Length of the cooling tube to limit space for cooling moves inside it " +msgstr "Length of the cooling tube to limit space for cooling moves inside it " + +#: src/libslic3r/PrintConfig.cpp:299 +msgid "" +"This is the acceleration your printer will be reset to after the role-" +"specific acceleration values are used (perimeter/infill). Set zero to " +"prevent resetting acceleration at all." +msgstr "" +"This is the acceleration your printer will be reset to after the role-" +"specific acceleration values are used (perimeter/infill). Set zero to " +"prevent resetting acceleration at all." + +#: src/libslic3r/PrintConfig.cpp:308 +msgid "Default filament profile" +msgstr "Default filament profile" + +#: src/libslic3r/PrintConfig.cpp:309 +msgid "" +"Default filament profile associated with the current printer profile. On " +"selection of the current printer profile, this filament profile will be " +"activated." +msgstr "" +"Default filament profile associated with the current printer profile. On " +"selection of the current printer profile, this filament profile will be " +"activated." + +#: src/libslic3r/PrintConfig.cpp:315 +msgid "Default print profile" +msgstr "Default print profile" + +#: src/libslic3r/PrintConfig.cpp:316 src/libslic3r/PrintConfig.cpp:2337 +#: src/libslic3r/PrintConfig.cpp:2348 +msgid "" +"Default print profile associated with the current printer profile. On " +"selection of the current printer profile, this print profile will be " +"activated." +msgstr "" +"Default print profile associated with the current printer profile. On " +"selection of the current printer profile, this print profile will be " +"activated." + +#: src/libslic3r/PrintConfig.cpp:322 +msgid "Disable fan for the first" +msgstr "Disable fan for the first" + +#: src/libslic3r/PrintConfig.cpp:323 +msgid "" +"You can set this to a positive value to disable fan at all during the first " +"layers, so that it does not make adhesion worse." +msgstr "" +"You can set this to a positive value to disable fan at all during the first " +"layers, so that it does not make adhesion worse." + +#: src/libslic3r/PrintConfig.cpp:325 src/libslic3r/PrintConfig.cpp:945 +#: src/libslic3r/PrintConfig.cpp:1434 src/libslic3r/PrintConfig.cpp:1619 +#: src/libslic3r/PrintConfig.cpp:1680 src/libslic3r/PrintConfig.cpp:1843 +#: src/libslic3r/PrintConfig.cpp:1888 +msgid "layers" +msgstr "layers" + +#: src/libslic3r/PrintConfig.cpp:332 +msgid "Don't support bridges" +msgstr "Don't support bridges" + +#: src/libslic3r/PrintConfig.cpp:334 +msgid "" +"Experimental option for preventing support material from being generated " +"under bridged areas." +msgstr "" +"Experimental option for preventing support material from being generated " +"under bridged areas." + +#: src/libslic3r/PrintConfig.cpp:340 +msgid "Distance between copies" +msgstr "Distance between copies" + +#: src/libslic3r/PrintConfig.cpp:341 +msgid "Distance used for the auto-arrange feature of the plater." +msgstr "Distance used for the auto-arrange feature of the plater." + +#: src/libslic3r/PrintConfig.cpp:348 +msgid "Elephant foot compensation" +msgstr "Elephant foot compensation" + +#: src/libslic3r/PrintConfig.cpp:350 +msgid "" +"The first layer will be shrunk in the XY plane by the configured value to " +"compensate for the 1st layer squish aka an Elephant Foot effect." +msgstr "" +"The first layer will be shrunk in the XY plane by the configured value to " +"compensate for the 1st layer squish aka an Elephant Foot effect." + +#: src/libslic3r/PrintConfig.cpp:359 +msgid "" +"This end procedure is inserted at the end of the output file. Note that you " +"can use placeholder variables for all Slic3r settings." +msgstr "" +"This end procedure is inserted at the end of the output file. Note that you " +"can use placeholder variables for all Slic3r settings." + +#: src/libslic3r/PrintConfig.cpp:369 +msgid "" +"This end procedure is inserted at the end of the output file, before the " +"printer end gcode. Note that you can use placeholder variables for all " +"Slic3r settings. If you have multiple extruders, the gcode is processed in " +"extruder order." +msgstr "" +"This end procedure is inserted at the end of the output file, before the " +"printer end gcode. Note that you can use placeholder variables for all " +"Slic3r settings. If you have multiple extruders, the gcode is processed in " +"extruder order." + +#: src/libslic3r/PrintConfig.cpp:379 +msgid "Ensure vertical shell thickness" +msgstr "Ensure vertical shell thickness" + +#: src/libslic3r/PrintConfig.cpp:381 +msgid "" +"Add solid infill near sloping surfaces to guarantee the vertical shell " +"thickness (top+bottom solid layers)." +msgstr "" +"Add solid infill near sloping surfaces to guarantee the vertical shell " +"thickness (top+bottom solid layers)." + +#: src/libslic3r/PrintConfig.cpp:387 +msgid "Top fill pattern" +msgstr "Top fill pattern" + +#: src/libslic3r/PrintConfig.cpp:389 +msgid "" +"Fill pattern for top infill. This only affects the top visible layer, and " +"not its adjacent solid shells." +msgstr "" +"Fill pattern for top infill. This only affects the top visible layer, and " +"not its adjacent solid shells." + +#: src/libslic3r/PrintConfig.cpp:397 src/libslic3r/PrintConfig.cpp:795 +#: src/libslic3r/PrintConfig.cpp:1921 +msgid "Rectilinear" +msgstr "Rectilinear" + +#: src/libslic3r/PrintConfig.cpp:398 src/libslic3r/PrintConfig.cpp:801 +msgid "Concentric" +msgstr "Concentric" + +#: src/libslic3r/PrintConfig.cpp:399 src/libslic3r/PrintConfig.cpp:805 +msgid "Hilbert Curve" +msgstr "Hilbert Curve" + +#: src/libslic3r/PrintConfig.cpp:400 src/libslic3r/PrintConfig.cpp:806 +msgid "Archimedean Chords" +msgstr "Archimedean Chords" + +#: src/libslic3r/PrintConfig.cpp:401 src/libslic3r/PrintConfig.cpp:807 +msgid "Octagram Spiral" +msgstr "Octagram Spiral" + +#: src/libslic3r/PrintConfig.cpp:408 +msgid "Bottom fill pattern" +msgstr "Bottom fill pattern" + +#: src/libslic3r/PrintConfig.cpp:409 +msgid "" +"Fill pattern for bottom infill. This only affects the bottom external " +"visible layer, and not its adjacent solid shells." +msgstr "" +"Fill pattern for bottom infill. This only affects the bottom external " +"visible layer, and not its adjacent solid shells." + +#: src/libslic3r/PrintConfig.cpp:414 src/libslic3r/PrintConfig.cpp:424 +msgid "External perimeters" +msgstr "External perimeters" + +#: src/libslic3r/PrintConfig.cpp:416 +msgid "" +"Set this to a non-zero value to set a manual extrusion width for external " +"perimeters. If left zero, default extrusion width will be used if set, " +"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " +"(for example 200%), it will be computed over layer height." +msgstr "" +"Set this to a non-zero value to set a manual extrusion width for external " +"perimeters. If left zero, default extrusion width will be used if set, " +"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " +"(for example 200%), it will be computed over layer height." + +#: src/libslic3r/PrintConfig.cpp:419 src/libslic3r/PrintConfig.cpp:834 +#: src/libslic3r/PrintConfig.cpp:966 src/libslic3r/PrintConfig.cpp:1353 +#: src/libslic3r/PrintConfig.cpp:1691 src/libslic3r/PrintConfig.cpp:1864 +#: src/libslic3r/PrintConfig.cpp:2022 +msgid "mm or % (leave 0 for default)" +msgstr "mm or % (leave 0 for default)" + +#: src/libslic3r/PrintConfig.cpp:426 +msgid "" +"This separate setting will affect the speed of external perimeters (the " +"visible ones). If expressed as percentage (for example: 80%) it will be " +"calculated on the perimeters speed setting above. Set to zero for auto." +msgstr "" +"This separate setting will affect the speed of external perimeters (the " +"visible ones). If expressed as percentage (for example: 80%) it will be " +"calculated on the perimeters speed setting above. Set to zero for auto." + +#: src/libslic3r/PrintConfig.cpp:429 src/libslic3r/PrintConfig.cpp:855 +#: src/libslic3r/PrintConfig.cpp:1650 src/libslic3r/PrintConfig.cpp:1701 +#: src/libslic3r/PrintConfig.cpp:1907 src/libslic3r/PrintConfig.cpp:2034 +msgid "mm/s or %" +msgstr "mm/s or %" + +#: src/libslic3r/PrintConfig.cpp:436 +msgid "External perimeters first" +msgstr "External perimeters first" + +#: src/libslic3r/PrintConfig.cpp:438 +msgid "" +"Print contour perimeters from the outermost one to the innermost one instead " +"of the default inverse order." +msgstr "" +"Print contour perimeters from the outermost one to the innermost one instead " +"of the default inverse order." + +#: src/libslic3r/PrintConfig.cpp:444 +msgid "Extra perimeters if needed" +msgstr "Extra perimeters if needed" + +#: src/libslic3r/PrintConfig.cpp:446 +#, no-c-format +msgid "" +"Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r " +"keeps adding perimeters, until more than 70% of the loop immediately above " +"is supported." +msgstr "" +"Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r " +"keeps adding perimeters, until more than 70% of the loop immediately above " +"is supported." + +#: src/libslic3r/PrintConfig.cpp:456 +msgid "" +"The extruder to use (unless more specific extruder settings are specified). " +"This value overrides perimeter and infill extruders, but not the support " +"extruders." +msgstr "" +"The extruder to use (unless more specific extruder settings are specified). " +"This value overrides perimeter and infill extruders, but not the support " +"extruders." + +#: src/libslic3r/PrintConfig.cpp:468 +msgid "" +"Set this to the vertical distance between your nozzle tip and (usually) the " +"X carriage rods. In other words, this is the height of the clearance " +"cylinder around your extruder, and it represents the maximum depth the " +"extruder can peek before colliding with other printed objects." +msgstr "" +"Set this to the vertical distance between your nozzle tip and (usually) the " +"X carriage rods. In other words, this is the height of the clearance " +"cylinder around your extruder, and it represents the maximum depth the " +"extruder can peek before colliding with other printed objects." + +#: src/libslic3r/PrintConfig.cpp:478 +msgid "Radius" +msgstr "Radius" + +#: src/libslic3r/PrintConfig.cpp:479 +msgid "" +"Set this to the clearance radius around your extruder. If the extruder is " +"not centered, choose the largest value for safety. This setting is used to " +"check for collisions and to display the graphical preview in the plater." +msgstr "" +"Set this to the clearance radius around your extruder. If the extruder is " +"not centered, choose the largest value for safety. This setting is used to " +"check for collisions and to display the graphical preview in the plater." + +#: src/libslic3r/PrintConfig.cpp:489 +msgid "Extruder Color" +msgstr "Extruder Color" + +#: src/libslic3r/PrintConfig.cpp:490 src/libslic3r/PrintConfig.cpp:550 +msgid "This is only used in the Slic3r interface as a visual help." +msgstr "This is only used in the Slic3r interface as a visual help." + +#: src/libslic3r/PrintConfig.cpp:496 +msgid "Extruder offset" +msgstr "Extruder offset" + +#: src/libslic3r/PrintConfig.cpp:497 +msgid "" +"If your firmware doesn't handle the extruder displacement you need the G-" +"code to take it into account. This option lets you specify the displacement " +"of each extruder with respect to the first one. It expects positive " +"coordinates (they will be subtracted from the XY coordinate)." +msgstr "" +"If your firmware doesn't handle the extruder displacement you need the G-" +"code to take it into account. This option lets you specify the displacement " +"of each extruder with respect to the first one. It expects positive " +"coordinates (they will be subtracted from the XY coordinate)." + +#: src/libslic3r/PrintConfig.cpp:506 +msgid "Extrusion axis" +msgstr "Extrusion axis" + +#: src/libslic3r/PrintConfig.cpp:507 +msgid "" +"Use this option to set the axis letter associated to your printer's extruder " +"(usually E but some printers use A)." +msgstr "" +"Use this option to set the axis letter associated to your printer's extruder " +"(usually E but some printers use A)." + +#: src/libslic3r/PrintConfig.cpp:512 +msgid "Extrusion multiplier" +msgstr "Extrusion multiplier" + +#: src/libslic3r/PrintConfig.cpp:513 +msgid "" +"This factor changes the amount of flow proportionally. You may need to tweak " +"this setting to get nice surface finish and correct single wall widths. " +"Usual values are between 0.9 and 1.1. If you think you need to change this " +"more, check filament diameter and your firmware E steps." +msgstr "" +"This factor changes the amount of flow proportionally. You may need to tweak " +"this setting to get nice surface finish and correct single wall widths. " +"Usual values are between 0.9 and 1.1. If you think you need to change this " +"more, check filament diameter and your firmware E steps." + +#: src/libslic3r/PrintConfig.cpp:521 +msgid "Default extrusion width" +msgstr "Default extrusion width" + +#: src/libslic3r/PrintConfig.cpp:523 +msgid "" +"Set this to a non-zero value to allow a manual extrusion width. If left to " +"zero, Slic3r derives extrusion widths from the nozzle diameter (see the " +"tooltips for perimeter extrusion width, infill extrusion width etc). If " +"expressed as percentage (for example: 230%), it will be computed over layer " +"height." +msgstr "" +"Set this to a non-zero value to allow a manual extrusion width. If left to " +"zero, Slic3r derives extrusion widths from the nozzle diameter (see the " +"tooltips for perimeter extrusion width, infill extrusion width etc). If " +"expressed as percentage (for example: 230%), it will be computed over layer " +"height." + +#: src/libslic3r/PrintConfig.cpp:527 +msgid "mm or % (leave 0 for auto)" +msgstr "mm or % (leave 0 for auto)" + +#: src/libslic3r/PrintConfig.cpp:532 +msgid "Keep fan always on" +msgstr "Keep fan always on" + +#: src/libslic3r/PrintConfig.cpp:533 +msgid "" +"If this is enabled, fan will never be disabled and will be kept running at " +"least at its minimum speed. Useful for PLA, harmful for ABS." +msgstr "" +"If this is enabled, fan will never be disabled and will be kept running at " +"least at its minimum speed. Useful for PLA, harmful for ABS." + +#: src/libslic3r/PrintConfig.cpp:538 +msgid "Enable fan if layer print time is below" +msgstr "Enable fan if layer print time is below" + +#: src/libslic3r/PrintConfig.cpp:539 +msgid "" +"If layer print time is estimated below this number of seconds, fan will be " +"enabled and its speed will be calculated by interpolating the minimum and " +"maximum speeds." +msgstr "" +"If layer print time is estimated below this number of seconds, fan will be " +"enabled and its speed will be calculated by interpolating the minimum and " +"maximum speeds." + +#: src/libslic3r/PrintConfig.cpp:541 src/libslic3r/PrintConfig.cpp:1637 +msgid "approximate seconds" +msgstr "approximate seconds" + +#: src/libslic3r/PrintConfig.cpp:549 +msgid "Color" +msgstr "Color" + +#: src/libslic3r/PrintConfig.cpp:555 +msgid "Filament notes" +msgstr "Filament notes" + +#: src/libslic3r/PrintConfig.cpp:556 +msgid "You can put your notes regarding the filament here." +msgstr "You can put your notes regarding the filament here." + +#: src/libslic3r/PrintConfig.cpp:564 src/libslic3r/PrintConfig.cpp:1181 +msgid "Max volumetric speed" +msgstr "Max volumetric speed" + +#: src/libslic3r/PrintConfig.cpp:565 +msgid "" +"Maximum volumetric speed allowed for this filament. Limits the maximum " +"volumetric speed of a print to the minimum of print and filament volumetric " +"speed. Set to zero for no limit." +msgstr "" +"Maximum volumetric speed allowed for this filament. Limits the maximum " +"volumetric speed of a print to the minimum of print and filament volumetric " +"speed. Set to zero for no limit." + +#: src/libslic3r/PrintConfig.cpp:568 src/libslic3r/PrintConfig.cpp:1184 +msgid "mm³/s" +msgstr "mm³/s" + +#: src/libslic3r/PrintConfig.cpp:574 +msgid "Loading speed" +msgstr "Loading speed" + +#: src/libslic3r/PrintConfig.cpp:575 +msgid "Speed used for loading the filament on the wipe tower. " +msgstr "Speed used for loading the filament on the wipe tower. " + +#: src/libslic3r/PrintConfig.cpp:582 +msgid "Loading speed at the start" +msgstr "Loading speed at the start" + +#: src/libslic3r/PrintConfig.cpp:583 +msgid "Speed used at the very beginning of loading phase. " +msgstr "Speed used at the very beginning of loading phase. " + +#: src/libslic3r/PrintConfig.cpp:590 +msgid "Unloading speed" +msgstr "Unloading speed" + +#: src/libslic3r/PrintConfig.cpp:591 +msgid "" +"Speed used for unloading the filament on the wipe tower (does not affect " +"initial part of unloading just after ramming). " +msgstr "" +"Speed used for unloading the filament on the wipe tower (does not affect " +"initial part of unloading just after ramming). " + +#: src/libslic3r/PrintConfig.cpp:599 +msgid "Unloading speed at the start" +msgstr "Unloading speed at the start" + +#: src/libslic3r/PrintConfig.cpp:600 +msgid "" +"Speed used for unloading the tip of the filament immediately after ramming. " +msgstr "" +"Speed used for unloading the tip of the filament immediately after ramming. " + +#: src/libslic3r/PrintConfig.cpp:607 +msgid "Delay after unloading" +msgstr "Delay after unloading" + +#: src/libslic3r/PrintConfig.cpp:608 +msgid "" +"Time to wait after the filament is unloaded. May help to get reliable " +"toolchanges with flexible materials that may need more time to shrink to " +"original dimensions. " +msgstr "" +"Time to wait after the filament is unloaded. May help to get reliable " +"toolchanges with flexible materials that may need more time to shrink to " +"original dimensions. " + +#: src/libslic3r/PrintConfig.cpp:617 +msgid "Number of cooling moves" +msgstr "Number of cooling moves" + +#: src/libslic3r/PrintConfig.cpp:618 +msgid "" +"Filament is cooled by being moved back and forth in the cooling tubes. " +"Specify desired number of these moves " +msgstr "" +"Filament is cooled by being moved back and forth in the cooling tubes. " +"Specify desired number of these moves " + +#: src/libslic3r/PrintConfig.cpp:626 +msgid "Speed of the first cooling move" +msgstr "Speed of the first cooling move" + +#: src/libslic3r/PrintConfig.cpp:627 +msgid "Cooling moves are gradually accelerating beginning at this speed. " +msgstr "Cooling moves are gradually accelerating beginning at this speed. " + +#: src/libslic3r/PrintConfig.cpp:634 +msgid "Minimal purge on wipe tower" +msgstr "Minimal purge on wipe tower" + +#: src/libslic3r/PrintConfig.cpp:635 +msgid "" +"After a tool change, the exact position of the newly loaded filament inside " +"the nozzle may not be known, and the filament pressure is likely not yet " +"stable. Before purging the print head into an infill or a sacrificial " +"object, Slic3r will always prime this amount of material into the wipe tower " +"to produce successive infill or sacrificial object extrusions reliably." +msgstr "" +"After a tool change, the exact position of the newly loaded filament inside " +"the nozzle may not be known, and the filament pressure is likely not yet " +"stable. Before purging the print head into an infill or a sacrificial " +"object, Slic3r will always prime this amount of material into the wipe tower " +"to produce successive infill or sacrificial object extrusions reliably." + +#: src/libslic3r/PrintConfig.cpp:639 +msgid "mm³" +msgstr "mm³" + +#: src/libslic3r/PrintConfig.cpp:645 +msgid "Speed of the last cooling move" +msgstr "Speed of the last cooling move" + +#: src/libslic3r/PrintConfig.cpp:646 +msgid "Cooling moves are gradually accelerating towards this speed. " +msgstr "Cooling moves are gradually accelerating towards this speed. " + +#: src/libslic3r/PrintConfig.cpp:653 +msgid "Filament load time" +msgstr "Filament load time" + +#: src/libslic3r/PrintConfig.cpp:654 +msgid "" +"Time for the printer firmware (or the Multi Material Unit 2.0) to load a new " +"filament during a tool change (when executing the T code). This time is " +"added to the total print time by the G-code time estimator." +msgstr "" +"Time for the printer firmware (or the Multi Material Unit 2.0) to load a new " +"filament during a tool change (when executing the T code). This time is " +"added to the total print time by the G-code time estimator." + +#: src/libslic3r/PrintConfig.cpp:661 +msgid "Ramming parameters" +msgstr "Ramming parameters" + +#: src/libslic3r/PrintConfig.cpp:662 +msgid "" +"This string is edited by RammingDialog and contains ramming specific " +"parameters " +msgstr "" +"This string is edited by RammingDialog and contains ramming specific " +"parameters " + +#: src/libslic3r/PrintConfig.cpp:668 +msgid "Filament unload time" +msgstr "Filament unload time" + +#: src/libslic3r/PrintConfig.cpp:669 +msgid "" +"Time for the printer firmware (or the Multi Material Unit 2.0) to unload a " +"filament during a tool change (when executing the T code). This time is " +"added to the total print time by the G-code time estimator." +msgstr "" +"Time for the printer firmware (or the Multi Material Unit 2.0) to unload a " +"filament during a tool change (when executing the T code). This time is " +"added to the total print time by the G-code time estimator." + +#: src/libslic3r/PrintConfig.cpp:677 +msgid "" +"Enter your filament diameter here. Good precision is required, so use a " +"caliper and do multiple measurements along the filament, then compute the " +"average." +msgstr "" +"Enter your filament diameter here. Good precision is required, so use a " +"caliper and do multiple measurements along the filament, then compute the " +"average." + +#: src/libslic3r/PrintConfig.cpp:684 +msgid "Density" +msgstr "Density" + +#: src/libslic3r/PrintConfig.cpp:685 +msgid "" +"Enter your filament density here. This is only for statistical information. " +"A decent way is to weigh a known length of filament and compute the ratio of " +"the length to volume. Better is to calculate the volume directly through " +"displacement." +msgstr "" +"Enter your filament density here. This is only for statistical information. " +"A decent way is to weigh a known length of filament and compute the ratio of " +"the length to volume. Better is to calculate the volume directly through " +"displacement." + +#: src/libslic3r/PrintConfig.cpp:688 +msgid "g/cm³" +msgstr "g/cm³" + +#: src/libslic3r/PrintConfig.cpp:693 +msgid "Filament type" +msgstr "Filament type" + +#: src/libslic3r/PrintConfig.cpp:694 +msgid "The filament material type for use in custom G-codes." +msgstr "The filament material type for use in custom G-codes." + +#: src/libslic3r/PrintConfig.cpp:710 +msgid "Soluble material" +msgstr "Soluble material" + +#: src/libslic3r/PrintConfig.cpp:711 +msgid "Soluble material is most likely used for a soluble support." +msgstr "Soluble material is most likely used for a soluble support." + +#: src/libslic3r/PrintConfig.cpp:717 +msgid "" +"Enter your filament cost per kg here. This is only for statistical " +"information." +msgstr "" +"Enter your filament cost per kg here. This is only for statistical " +"information." + +#: src/libslic3r/PrintConfig.cpp:718 +msgid "money/kg" +msgstr "money/kg" + +#: src/libslic3r/PrintConfig.cpp:727 +msgid "Fill angle" +msgstr "Fill angle" + +#: src/libslic3r/PrintConfig.cpp:729 +msgid "" +"Default base angle for infill orientation. Cross-hatching will be applied to " +"this. Bridges will be infilled using the best direction Slic3r can detect, " +"so this setting does not affect them." +msgstr "" +"Default base angle for infill orientation. Cross-hatching will be applied to " +"this. Bridges will be infilled using the best direction Slic3r can detect, " +"so this setting does not affect them." + +#: src/libslic3r/PrintConfig.cpp:741 +msgid "Fill density" +msgstr "Fill density" + +#: src/libslic3r/PrintConfig.cpp:743 +msgid "Density of internal infill, expressed in the range 0% - 100%." +msgstr "Density of internal infill, expressed in the range 0% - 100%." + +#: src/libslic3r/PrintConfig.cpp:778 +msgid "Fill pattern" +msgstr "Fill pattern" + +#: src/libslic3r/PrintConfig.cpp:780 +msgid "Fill pattern for general low-density infill." +msgstr "Fill pattern for general low-density infill." + +#: src/libslic3r/PrintConfig.cpp:796 +msgid "Grid" +msgstr "Grid" + +#: src/libslic3r/PrintConfig.cpp:797 +msgid "Triangles" +msgstr "Triangles" + +#: src/libslic3r/PrintConfig.cpp:798 +msgid "Stars" +msgstr "Stars" + +#: src/libslic3r/PrintConfig.cpp:799 +msgid "Cubic" +msgstr "Cubic" + +#: src/libslic3r/PrintConfig.cpp:800 +msgid "Line" +msgstr "Line" + +#: src/libslic3r/PrintConfig.cpp:802 src/libslic3r/PrintConfig.cpp:1923 +msgid "Honeycomb" +msgstr "Honeycomb" + +#: src/libslic3r/PrintConfig.cpp:803 +msgid "3D Honeycomb" +msgstr "3D Honeycomb" + +#: src/libslic3r/PrintConfig.cpp:804 +msgid "Gyroid" +msgstr "Gyroid" + +#: src/libslic3r/PrintConfig.cpp:811 src/libslic3r/PrintConfig.cpp:820 +#: src/libslic3r/PrintConfig.cpp:828 src/libslic3r/PrintConfig.cpp:861 +msgid "First layer" +msgstr "First layer" + +#: src/libslic3r/PrintConfig.cpp:812 +msgid "" +"This is the acceleration your printer will use for first layer. Set zero to " +"disable acceleration control for first layer." +msgstr "" +"This is the acceleration your printer will use for first layer. Set zero to " +"disable acceleration control for first layer." + +#: src/libslic3r/PrintConfig.cpp:821 +msgid "" +"Heated build plate temperature for the first layer. Set this to zero to " +"disable bed temperature control commands in the output." +msgstr "" +"Heated build plate temperature for the first layer. Set this to zero to " +"disable bed temperature control commands in the output." + +#: src/libslic3r/PrintConfig.cpp:830 +msgid "" +"Set this to a non-zero value to set a manual extrusion width for first " +"layer. You can use this to force fatter extrudates for better adhesion. If " +"expressed as percentage (for example 120%) it will be computed over first " +"layer height. If set to zero, it will use the default extrusion width." +msgstr "" +"Set this to a non-zero value to set a manual extrusion width for first " +"layer. You can use this to force fatter extrudates for better adhesion. If " +"expressed as percentage (for example 120%) it will be computed over first " +"layer height. If set to zero, it will use the default extrusion width." + +#: src/libslic3r/PrintConfig.cpp:840 +msgid "First layer height" +msgstr "First layer height" + +#: src/libslic3r/PrintConfig.cpp:842 +msgid "" +"When printing with very low layer heights, you might still want to print a " +"thicker bottom layer to improve adhesion and tolerance for non perfect build " +"plates. This can be expressed as an absolute value or as a percentage (for " +"example: 150%) over the default layer height." +msgstr "" +"When printing with very low layer heights, you might still want to print a " +"thicker bottom layer to improve adhesion and tolerance for non perfect build " +"plates. This can be expressed as an absolute value or as a percentage (for " +"example: 150%) over the default layer height." + +#: src/libslic3r/PrintConfig.cpp:846 src/libslic3r/PrintConfig.cpp:991 +#: src/libslic3r/PrintConfig.cpp:1796 +msgid "mm or %" +msgstr "mm or %" + +#: src/libslic3r/PrintConfig.cpp:851 +msgid "First layer speed" +msgstr "First layer speed" + +#: src/libslic3r/PrintConfig.cpp:852 +msgid "" +"If expressed as absolute value in mm/s, this speed will be applied to all " +"the print moves of the first layer, regardless of their type. If expressed " +"as a percentage (for example: 40%) it will scale the default speeds." +msgstr "" +"If expressed as absolute value in mm/s, this speed will be applied to all " +"the print moves of the first layer, regardless of their type. If expressed " +"as a percentage (for example: 40%) it will scale the default speeds." + +#: src/libslic3r/PrintConfig.cpp:862 +msgid "" +"Extruder temperature for first layer. If you want to control temperature " +"manually during print, set this to zero to disable temperature control " +"commands in the output file." +msgstr "" +"Extruder temperature for first layer. If you want to control temperature " +"manually during print, set this to zero to disable temperature control " +"commands in the output file." + +#: src/libslic3r/PrintConfig.cpp:871 +msgid "" +"Speed for filling small gaps using short zigzag moves. Keep this reasonably " +"low to avoid too much shaking and resonance issues. Set zero to disable gaps " +"filling." +msgstr "" +"Speed for filling small gaps using short zigzag moves. Keep this reasonably " +"low to avoid too much shaking and resonance issues. Set zero to disable gaps " +"filling." + +#: src/libslic3r/PrintConfig.cpp:879 +msgid "Verbose G-code" +msgstr "Verbose G-code" + +#: src/libslic3r/PrintConfig.cpp:880 +msgid "" +"Enable this to get a commented G-code file, with each line explained by a " +"descriptive text. If you print from SD card, the additional weight of the " +"file could make your firmware slow down." +msgstr "" +"Enable this to get a commented G-code file, with each line explained by a " +"descriptive text. If you print from SD card, the additional weight of the " +"file could make your firmware slow down." + +#: src/libslic3r/PrintConfig.cpp:887 +msgid "G-code flavor" +msgstr "G-code flavor" + +#: src/libslic3r/PrintConfig.cpp:888 +msgid "" +"Some G/M-code commands, including temperature control and others, are not " +"universal. Set this option to your printer's firmware to get a compatible " +"output. The \"No extrusion\" flavor prevents Slic3r from exporting any " +"extrusion value at all." +msgstr "" +"Some G/M-code commands, including temperature control and others, are not " +"universal. Set this option to your printer's firmware to get a compatible " +"output. The \"No extrusion\" flavor prevents Slic3r from exporting any " +"extrusion value at all." + +#: src/libslic3r/PrintConfig.cpp:911 +msgid "No extrusion" +msgstr "No extrusion" + +#: src/libslic3r/PrintConfig.cpp:924 +msgid "High extruder current on filament swap" +msgstr "High extruder current on filament swap" + +#: src/libslic3r/PrintConfig.cpp:925 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:933 +msgid "" +"This is the acceleration your printer will use for infill. Set zero to " +"disable acceleration control for infill." +msgstr "" +"This is the acceleration your printer will use for infill. Set zero to " +"disable acceleration control for infill." + +#: src/libslic3r/PrintConfig.cpp:941 +msgid "Combine infill every" +msgstr "Combine infill every" + +#: src/libslic3r/PrintConfig.cpp:943 +msgid "" +"This feature allows to combine infill and speed up your print by extruding " +"thicker infill layers while preserving thin perimeters, thus accuracy." +msgstr "" +"This feature allows to combine infill and speed up your print by extruding " +"thicker infill layers while preserving thin perimeters, thus accuracy." + +#: src/libslic3r/PrintConfig.cpp:946 +msgid "Combine infill every n layers" +msgstr "Combine infill every n layers" + +#: src/libslic3r/PrintConfig.cpp:952 +msgid "Infill extruder" +msgstr "Infill extruder" + +#: src/libslic3r/PrintConfig.cpp:954 +msgid "The extruder to use when printing infill." +msgstr "The extruder to use when printing infill." + +#: src/libslic3r/PrintConfig.cpp:962 +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 " +"nozzle diameter will be used. You may want to use fatter extrudates to speed " +"up the infill and make your parts stronger. If expressed as percentage (for " +"example 90%) it will be computed over layer height." +msgstr "" +"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 " +"nozzle diameter will be used. You may want to use fatter extrudates to speed " +"up the infill and make your parts stronger. If expressed as percentage (for " +"example 90%) it will be computed over layer height." + +#: src/libslic3r/PrintConfig.cpp:971 +msgid "Infill before perimeters" +msgstr "Infill before perimeters" + +#: src/libslic3r/PrintConfig.cpp:972 +msgid "" +"This option will switch the print order of perimeters and infill, making the " +"latter first." +msgstr "" +"This option will switch the print order of perimeters and infill, making the " +"latter first." + +#: src/libslic3r/PrintConfig.cpp:977 +msgid "Only infill where needed" +msgstr "Only infill where needed" + +#: src/libslic3r/PrintConfig.cpp:979 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:986 +msgid "Infill/perimeters overlap" +msgstr "Infill/perimeters overlap" + +#: src/libslic3r/PrintConfig.cpp:988 +msgid "" +"This setting applies an additional overlap between infill and perimeters for " +"better bonding. Theoretically this shouldn't be needed, but backlash might " +"cause gaps. If expressed as percentage (example: 15%) it is calculated over " +"perimeter extrusion width." +msgstr "" +"This setting applies an additional overlap between infill and perimeters for " +"better bonding. Theoretically this shouldn't be needed, but backlash might " +"cause gaps. If expressed as percentage (example: 15%) it is calculated over " +"perimeter extrusion width." + +#: src/libslic3r/PrintConfig.cpp:999 +msgid "Speed for printing the internal fill. Set to zero for auto." +msgstr "Speed for printing the internal fill. Set to zero for auto." + +#: src/libslic3r/PrintConfig.cpp:1007 +msgid "Inherits profile" +msgstr "Inherits profile" + +#: src/libslic3r/PrintConfig.cpp:1008 +msgid "Name of the profile, from which this profile inherits." +msgstr "Name of the profile, from which this profile inherits." + +#: src/libslic3r/PrintConfig.cpp:1021 +msgid "Interface shells" +msgstr "Interface shells" + +#: src/libslic3r/PrintConfig.cpp:1022 +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 "" +"Force the generation of solid shells between adjacent materials/volumes. " +"Useful for multi-extruder prints with translucent materials or manual " +"soluble support material." + +#: src/libslic3r/PrintConfig.cpp:1031 +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 " +"use placeholder variables for all Slic3r settings as well as [layer_num] and " +"[layer_z]." +msgstr "" +"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 " +"use placeholder variables for all Slic3r settings as well as [layer_num] and " +"[layer_z]." + +#: src/libslic3r/PrintConfig.cpp:1042 +msgid "Supports remaining times" +msgstr "Supports remaining times" + +#: src/libslic3r/PrintConfig.cpp:1043 +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. " +"As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 " +"firmware supports M73 Qxx Sxx for the silent mode." +msgstr "" +"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. " +"As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 " +"firmware supports M73 Qxx Sxx for the silent mode." + +#: src/libslic3r/PrintConfig.cpp:1051 +msgid "Supports silent mode" +msgstr "Supports silent mode" + +#: src/libslic3r/PrintConfig.cpp:1052 +msgid "Set silent mode for the G-code flavor" +msgstr "Set silent mode for the G-code flavor" + +#: src/libslic3r/PrintConfig.cpp:1075 +msgid "Maximum feedrate %1%" +msgstr "Maximum feedrate %1%" + +#: src/libslic3r/PrintConfig.cpp:1077 +msgid "Maximum feedrate of the %1% axis" +msgstr "Maximum feedrate of the %1% axis" + +#: src/libslic3r/PrintConfig.cpp:1085 +msgid "Maximum acceleration %1%" +msgstr "Maximum acceleration %1%" + +#: src/libslic3r/PrintConfig.cpp:1087 +msgid "Maximum acceleration of the %1% axis" +msgstr "Maximum acceleration of the %1% axis" + +#: src/libslic3r/PrintConfig.cpp:1095 +msgid "Maximum jerk %1%" +msgstr "Maximum jerk %1%" + +#: src/libslic3r/PrintConfig.cpp:1097 +msgid "Maximum jerk of the %1% axis" +msgstr "Maximum jerk of the %1% axis" + +#: src/libslic3r/PrintConfig.cpp:1108 src/libslic3r/PrintConfig.cpp:1110 +msgid "Minimum feedrate when extruding" +msgstr "Minimum feedrate when extruding" + +#: src/libslic3r/PrintConfig.cpp:1119 src/libslic3r/PrintConfig.cpp:1121 +msgid "Minimum travel feedrate" +msgstr "Minimum travel feedrate" + +#: src/libslic3r/PrintConfig.cpp:1130 src/libslic3r/PrintConfig.cpp:1132 +msgid "Maximum acceleration when extruding" +msgstr "Maximum acceleration when extruding" + +#: src/libslic3r/PrintConfig.cpp:1141 src/libslic3r/PrintConfig.cpp:1143 +msgid "Maximum acceleration when retracting" +msgstr "Maximum acceleration when retracting" + +#: src/libslic3r/PrintConfig.cpp:1151 src/libslic3r/PrintConfig.cpp:1160 +msgid "Max" +msgstr "Max" + +#: src/libslic3r/PrintConfig.cpp:1152 +msgid "This setting represents the maximum speed of your fan." +msgstr "This setting represents the maximum speed of your fan." + +#: src/libslic3r/PrintConfig.cpp:1161 +#, no-c-format +msgid "" +"This is the highest printable layer height for this extruder, used to cap " +"the variable layer height and support layer height. Maximum recommended " +"layer height is 75% of the extrusion width to achieve reasonable inter-layer " +"adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." +msgstr "" +"This is the highest printable layer height for this extruder, used to cap " +"the variable layer height and support layer height. Maximum recommended " +"layer height is 75% of the extrusion width to achieve reasonable inter-layer " +"adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." + +#: src/libslic3r/PrintConfig.cpp:1171 +msgid "Max print speed" +msgstr "Max print speed" + +#: src/libslic3r/PrintConfig.cpp:1172 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1182 +msgid "" +"This experimental setting is used to set the maximum volumetric speed your " +"extruder supports." +msgstr "" +"This experimental setting is used to set the maximum volumetric speed your " +"extruder supports." + +#: src/libslic3r/PrintConfig.cpp:1191 +msgid "Max volumetric slope positive" +msgstr "Max volumetric slope positive" + +#: src/libslic3r/PrintConfig.cpp:1192 src/libslic3r/PrintConfig.cpp:1203 +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 " +"of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/" +"s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." +msgstr "" +"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 " +"of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/" +"s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." + +#: src/libslic3r/PrintConfig.cpp:1196 src/libslic3r/PrintConfig.cpp:1207 +msgid "mm³/s²" +msgstr "mm³/s²" + +#: src/libslic3r/PrintConfig.cpp:1202 +msgid "Max volumetric slope negative" +msgstr "Max volumetric slope negative" + +#: src/libslic3r/PrintConfig.cpp:1214 src/libslic3r/PrintConfig.cpp:1223 +msgid "Min" +msgstr "Min" + +#: src/libslic3r/PrintConfig.cpp:1215 +msgid "This setting represents the minimum PWM your fan needs to work." +msgstr "This setting represents the minimum PWM your fan needs to work." + +#: src/libslic3r/PrintConfig.cpp:1224 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1232 +msgid "Min print speed" +msgstr "Min print speed" + +#: src/libslic3r/PrintConfig.cpp:1233 +msgid "Slic3r will not scale speed down below this speed." +msgstr "Slic3r will not scale speed down below this speed." + +#: src/libslic3r/PrintConfig.cpp:1240 +msgid "Minimal filament extrusion length" +msgstr "Minimal filament extrusion length" + +#: src/libslic3r/PrintConfig.cpp:1241 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1250 +msgid "Configuration notes" +msgstr "Configuration notes" + +#: src/libslic3r/PrintConfig.cpp:1251 +msgid "" +"You can put here your personal notes. This text will be added to the G-code " +"header comments." +msgstr "" +"You can put here your personal notes. This text will be added to the G-code " +"header comments." + +#: src/libslic3r/PrintConfig.cpp:1260 +msgid "Nozzle diameter" +msgstr "Nozzle diameter" + +#: src/libslic3r/PrintConfig.cpp:1261 +msgid "" +"This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" +msgstr "" +"This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" + +#: src/libslic3r/PrintConfig.cpp:1266 +msgid "Host Type" +msgstr "Host Type" + +#: src/libslic3r/PrintConfig.cpp:1267 +msgid "" +"Slic3r can upload G-code files to a printer host. This field must contain " +"the kind of the host." +msgstr "" +"Slic3r can upload G-code files to a printer host. This field must contain " +"the kind of the host." + +#: src/libslic3r/PrintConfig.cpp:1278 +msgid "Only retract when crossing perimeters" +msgstr "Only retract when crossing perimeters" + +#: src/libslic3r/PrintConfig.cpp:1279 +msgid "" +"Disables retraction when the travel path does not exceed the upper layer's " +"perimeters (and thus any ooze will be probably invisible)." +msgstr "" +"Disables retraction when the travel path does not exceed the upper layer's " +"perimeters (and thus any ooze will be probably invisible)." + +#: src/libslic3r/PrintConfig.cpp:1286 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1293 +msgid "Output filename format" +msgstr "Output filename format" + +#: src/libslic3r/PrintConfig.cpp:1294 +msgid "" +"You can use all configuration options as variables inside this template. For " +"example: [layer_height], [fill_density] etc. You can also use [timestamp], " +"[year], [month], [day], [hour], [minute], [second], [version], " +"[input_filename], [input_filename_base]." +msgstr "" +"You can use all configuration options as variables inside this template. For " +"example: [layer_height], [fill_density] etc. You can also use [timestamp], " +"[year], [month], [day], [hour], [minute], [second], [version], " +"[input_filename], [input_filename_base]." + +#: src/libslic3r/PrintConfig.cpp:1303 +msgid "Detect bridging perimeters" +msgstr "Detect bridging perimeters" + +#: src/libslic3r/PrintConfig.cpp:1305 +msgid "" +"Experimental option to adjust flow for overhangs (bridge flow will be used), " +"to apply bridge speed to them and enable fan." +msgstr "" +"Experimental option to adjust flow for overhangs (bridge flow will be used), " +"to apply bridge speed to them and enable fan." + +#: src/libslic3r/PrintConfig.cpp:1311 +msgid "Filament parking position" +msgstr "Filament parking position" + +#: src/libslic3r/PrintConfig.cpp:1312 +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 "" +"Distance of the extruder tip from the position where the filament is parked " +"when unloaded. This should match the value in printer firmware. " + +#: src/libslic3r/PrintConfig.cpp:1320 +msgid "Extra loading distance" +msgstr "Extra loading distance" + +#: src/libslic3r/PrintConfig.cpp:1321 +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 " +"positive, it is loaded further, if negative, the loading move is shorter " +"than unloading. " +msgstr "" +"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 " +"positive, it is loaded further, if negative, the loading move is shorter " +"than unloading. " + +#: src/libslic3r/PrintConfig.cpp:1329 src/libslic3r/PrintConfig.cpp:1347 +#: src/libslic3r/PrintConfig.cpp:1359 src/libslic3r/PrintConfig.cpp:1369 +msgid "Perimeters" +msgstr "Perimeters" + +#: src/libslic3r/PrintConfig.cpp:1330 +msgid "" +"This is the acceleration your printer will use for perimeters. A high value " +"like 9000 usually gives good results if your hardware is up to the job. Set " +"zero to disable acceleration control for perimeters." +msgstr "" +"This is the acceleration your printer will use for perimeters. A high value " +"like 9000 usually gives good results if your hardware is up to the job. Set " +"zero to disable acceleration control for perimeters." + +#: src/libslic3r/PrintConfig.cpp:1338 +msgid "Perimeter extruder" +msgstr "Perimeter extruder" + +#: src/libslic3r/PrintConfig.cpp:1340 +msgid "" +"The extruder to use when printing perimeters and brim. First extruder is 1." +msgstr "" +"The extruder to use when printing perimeters and brim. First extruder is 1." + +#: src/libslic3r/PrintConfig.cpp:1349 +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 " +"left zero, default extrusion width will be used if set, otherwise 1.125 x " +"nozzle diameter will be used. If expressed as percentage (for example 200%) " +"it will be computed over layer height." +msgstr "" +"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 " +"left zero, default extrusion width will be used if set, otherwise 1.125 x " +"nozzle diameter will be used. If expressed as percentage (for example 200%) " +"it will be computed over layer height." + +#: src/libslic3r/PrintConfig.cpp:1361 +msgid "" +"Speed for perimeters (contours, aka vertical shells). Set to zero for auto." +msgstr "" +"Speed for perimeters (contours, aka vertical shells). Set to zero for auto." + +#: src/libslic3r/PrintConfig.cpp:1371 +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 " +"surfaces which benefit from a higher number of perimeters if the Extra " +"Perimeters option is enabled." +msgstr "" +"This option sets the number of perimeters to generate for each layer. Note " +"that Slic3r may increase this number automatically when it detects sloping " +"surfaces which benefit from a higher number of perimeters if the Extra " +"Perimeters option is enabled." + +#: src/libslic3r/PrintConfig.cpp:1375 +msgid "(minimum)" +msgstr "(minimum)" + +#: src/libslic3r/PrintConfig.cpp:1383 +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. " +"Scripts will be passed the absolute path to the G-code file as the first " +"argument, and they can access the Slic3r config settings by reading " +"environment variables." +msgstr "" +"If you want to process the output G-code through custom scripts, just list " +"their absolute paths here. Separate multiple scripts with a semicolon. " +"Scripts will be passed the absolute path to the G-code file as the first " +"argument, and they can access the Slic3r config settings by reading " +"environment variables." + +#: src/libslic3r/PrintConfig.cpp:1395 +msgid "Printer type" +msgstr "Printer type" + +#: src/libslic3r/PrintConfig.cpp:1396 +msgid "Type of the printer." +msgstr "Type of the printer." + +#: src/libslic3r/PrintConfig.cpp:1401 +msgid "Printer notes" +msgstr "Printer notes" + +#: src/libslic3r/PrintConfig.cpp:1402 +msgid "You can put your notes regarding the printer here." +msgstr "You can put your notes regarding the printer here." + +#: src/libslic3r/PrintConfig.cpp:1410 +msgid "Printer vendor" +msgstr "Printer vendor" + +#: src/libslic3r/PrintConfig.cpp:1411 +msgid "Name of the printer vendor." +msgstr "Name of the printer vendor." + +#: src/libslic3r/PrintConfig.cpp:1416 +msgid "Printer variant" +msgstr "Printer variant" + +#: src/libslic3r/PrintConfig.cpp:1417 +msgid "" +"Name of the printer variant. For example, the printer variants may be " +"differentiated by a nozzle diameter." +msgstr "" +"Name of the printer variant. For example, the printer variants may be " +"differentiated by a nozzle diameter." + +#: src/libslic3r/PrintConfig.cpp:1430 +msgid "Raft layers" +msgstr "Raft layers" + +#: src/libslic3r/PrintConfig.cpp:1432 +msgid "" +"The object will be raised by this number of layers, and support material " +"will be generated under it." +msgstr "" +"The object will be raised by this number of layers, and support material " +"will be generated under it." + +#: src/libslic3r/PrintConfig.cpp:1440 +msgid "Resolution" +msgstr "Resolution" + +#: src/libslic3r/PrintConfig.cpp:1441 +msgid "" +"Minimum detail resolution, used to simplify the input file for speeding up " +"the slicing job and reducing memory usage. High-resolution models often " +"carry more detail than printers can render. Set to zero to disable any " +"simplification and use full resolution from input." +msgstr "" +"Minimum detail resolution, used to simplify the input file for speeding up " +"the slicing job and reducing memory usage. High-resolution models often " +"carry more detail than printers can render. Set to zero to disable any " +"simplification and use full resolution from input." + +#: src/libslic3r/PrintConfig.cpp:1451 +msgid "Minimum travel after retraction" +msgstr "Minimum travel after retraction" + +#: src/libslic3r/PrintConfig.cpp:1452 +msgid "" +"Retraction is not triggered when travel moves are shorter than this length." +msgstr "" +"Retraction is not triggered when travel moves are shorter than this length." + +#: src/libslic3r/PrintConfig.cpp:1458 +msgid "Retract amount before wipe" +msgstr "Retract amount before wipe" + +#: src/libslic3r/PrintConfig.cpp:1459 +msgid "" +"With bowden extruders, it may be wise to do some amount of quick retract " +"before doing the wipe movement." +msgstr "" +"With bowden extruders, it may be wise to do some amount of quick retract " +"before doing the wipe movement." + +#: src/libslic3r/PrintConfig.cpp:1466 +msgid "Retract on layer change" +msgstr "Retract on layer change" + +#: src/libslic3r/PrintConfig.cpp:1467 +msgid "This flag enforces a retraction whenever a Z move is done." +msgstr "This flag enforces a retraction whenever a Z move is done." + +#: src/libslic3r/PrintConfig.cpp:1472 src/libslic3r/PrintConfig.cpp:1480 +msgid "Length" +msgstr "Length" + +#: src/libslic3r/PrintConfig.cpp:1473 +msgid "Retraction Length" +msgstr "Retraction Length" + +#: src/libslic3r/PrintConfig.cpp:1474 +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 "" +"When retraction is triggered, filament is pulled back by the specified " +"amount (the length is measured on raw filament, before it enters the " +"extruder)." + +#: src/libslic3r/PrintConfig.cpp:1476 src/libslic3r/PrintConfig.cpp:1485 +msgid "mm (zero to disable)" +msgstr "mm (zero to disable)" + +#: src/libslic3r/PrintConfig.cpp:1481 +msgid "Retraction Length (Toolchange)" +msgstr "Retraction Length (Toolchange)" + +#: src/libslic3r/PrintConfig.cpp:1482 +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 "" +"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)." + +#: src/libslic3r/PrintConfig.cpp:1490 +msgid "Lift Z" +msgstr "Lift Z" + +#: src/libslic3r/PrintConfig.cpp:1491 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1498 +msgid "Above Z" +msgstr "Above Z" + +#: src/libslic3r/PrintConfig.cpp:1499 +msgid "Only lift Z above" +msgstr "Only lift Z above" + +#: src/libslic3r/PrintConfig.cpp:1500 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1507 +msgid "Below Z" +msgstr "Below Z" + +#: src/libslic3r/PrintConfig.cpp:1508 +msgid "Only lift Z below" +msgstr "Only lift Z below" + +#: src/libslic3r/PrintConfig.cpp:1509 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1517 src/libslic3r/PrintConfig.cpp:1525 +msgid "Extra length on restart" +msgstr "Extra length on restart" + +#: src/libslic3r/PrintConfig.cpp:1518 +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 "" +"When the retraction is compensated after the travel move, the extruder will " +"push this additional amount of filament. This setting is rarely needed." + +#: src/libslic3r/PrintConfig.cpp:1526 +msgid "" +"When the retraction is compensated after changing tool, the extruder will " +"push this additional amount of filament." +msgstr "" +"When the retraction is compensated after changing tool, the extruder will " +"push this additional amount of filament." + +#: src/libslic3r/PrintConfig.cpp:1533 src/libslic3r/PrintConfig.cpp:1534 +msgid "Retraction Speed" +msgstr "Retraction Speed" + +#: src/libslic3r/PrintConfig.cpp:1535 +msgid "The speed for retractions (it only applies to the extruder motor)." +msgstr "The speed for retractions (it only applies to the extruder motor)." + +#: src/libslic3r/PrintConfig.cpp:1541 src/libslic3r/PrintConfig.cpp:1542 +msgid "Deretraction Speed" +msgstr "Deretraction Speed" + +#: src/libslic3r/PrintConfig.cpp:1543 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1550 +msgid "Seam position" +msgstr "Seam position" + +#: src/libslic3r/PrintConfig.cpp:1552 +msgid "Position of perimeters starting points." +msgstr "Position of perimeters starting points." + +#: src/libslic3r/PrintConfig.cpp:1558 +msgid "Random" +msgstr "Random" + +#: src/libslic3r/PrintConfig.cpp:1559 +msgid "Nearest" +msgstr "Nearest" + +#: src/libslic3r/PrintConfig.cpp:1560 +msgid "Aligned" +msgstr "Aligned" + +#: src/libslic3r/PrintConfig.cpp:1568 +msgid "Direction" +msgstr "Direction" + +#: src/libslic3r/PrintConfig.cpp:1570 +msgid "Preferred direction of the seam" +msgstr "Preferred direction of the seam" + +#: src/libslic3r/PrintConfig.cpp:1571 +msgid "Seam preferred direction" +msgstr "Seam preferred direction" + +#: src/libslic3r/PrintConfig.cpp:1578 +msgid "Jitter" +msgstr "Jitter" + +#: src/libslic3r/PrintConfig.cpp:1580 +msgid "Seam preferred direction jitter" +msgstr "Seam preferred direction jitter" + +#: src/libslic3r/PrintConfig.cpp:1581 +msgid "Preferred direction of the seam - jitter" +msgstr "Preferred direction of the seam - jitter" + +#: src/libslic3r/PrintConfig.cpp:1591 +msgid "USB/serial port for printer connection." +msgstr "USB/serial port for printer connection." + +#: src/libslic3r/PrintConfig.cpp:1598 +msgid "Serial port speed" +msgstr "Serial port speed" + +#: src/libslic3r/PrintConfig.cpp:1599 +msgid "Speed (baud) of USB/serial port for printer connection." +msgstr "Speed (baud) of USB/serial port for printer connection." + +#: src/libslic3r/PrintConfig.cpp:1608 +msgid "Distance from object" +msgstr "Distance from object" + +#: src/libslic3r/PrintConfig.cpp:1609 +msgid "" +"Distance between skirt and object(s). Set this to zero to attach the skirt " +"to the object(s) and get a brim for better adhesion." +msgstr "" +"Distance between skirt and object(s). Set this to zero to attach the skirt " +"to the object(s) and get a brim for better adhesion." + +#: src/libslic3r/PrintConfig.cpp:1616 +msgid "Skirt height" +msgstr "Skirt height" + +#: src/libslic3r/PrintConfig.cpp:1617 +msgid "" +"Height of skirt expressed in layers. Set this to a tall value to use skirt " +"as a shield against drafts." +msgstr "" +"Height of skirt expressed in layers. Set this to a tall value to use skirt " +"as a shield against drafts." + +#: src/libslic3r/PrintConfig.cpp:1624 +msgid "Loops (minimum)" +msgstr "Loops (minimum)" + +#: src/libslic3r/PrintConfig.cpp:1625 +msgid "Skirt Loops" +msgstr "Skirt Loops" + +#: src/libslic3r/PrintConfig.cpp:1626 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1634 +msgid "Slow down if layer print time is below" +msgstr "Slow down if layer print time is below" + +#: src/libslic3r/PrintConfig.cpp:1635 +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 "" +"If layer print time is estimated below this number of seconds, print moves " +"speed will be scaled down to extend duration to this value." + +#: src/libslic3r/PrintConfig.cpp:1645 +msgid "Small perimeters" +msgstr "Small perimeters" + +#: src/libslic3r/PrintConfig.cpp:1647 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1657 +msgid "Solid infill threshold area" +msgstr "Solid infill threshold area" + +#: src/libslic3r/PrintConfig.cpp:1659 +msgid "" +"Force solid infill for regions having a smaller area than the specified " +"threshold." +msgstr "" +"Force solid infill for regions having a smaller area than the specified " +"threshold." + +#: src/libslic3r/PrintConfig.cpp:1660 +msgid "mm²" +msgstr "mm²" + +#: src/libslic3r/PrintConfig.cpp:1666 +msgid "Solid infill extruder" +msgstr "Solid infill extruder" + +#: src/libslic3r/PrintConfig.cpp:1668 +msgid "The extruder to use when printing solid infill." +msgstr "The extruder to use when printing solid infill." + +#: src/libslic3r/PrintConfig.cpp:1674 +msgid "Solid infill every" +msgstr "Solid infill every" + +#: src/libslic3r/PrintConfig.cpp:1676 +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 " +"will automatically choose the maximum possible number of layers to combine " +"according to nozzle diameter and layer height." +msgstr "" +"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 " +"will automatically choose the maximum possible number of layers to combine " +"according to nozzle diameter and layer height." + +#: src/libslic3r/PrintConfig.cpp:1688 +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, " +"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " +"(for example 90%) it will be computed over layer height." +msgstr "" +"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, " +"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " +"(for example 90%) it will be computed over layer height." + +#: src/libslic3r/PrintConfig.cpp:1698 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1710 +msgid "Number of solid layers to generate on top and bottom surfaces." +msgstr "Number of solid layers to generate on top and bottom surfaces." + +#: src/libslic3r/PrintConfig.cpp:1716 +msgid "Spiral vase" +msgstr "Spiral vase" + +#: src/libslic3r/PrintConfig.cpp:1717 +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, " +"no infill, no top solid layers and no support material. You can still set " +"any number of bottom solid layers as well as skirt/brim loops. It won't work " +"when printing more than an object." +msgstr "" +"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, " +"no infill, no top solid layers and no support material. You can still set " +"any number of bottom solid layers as well as skirt/brim loops. It won't work " +"when printing more than an object." + +#: src/libslic3r/PrintConfig.cpp:1725 +msgid "Temperature variation" +msgstr "Temperature variation" + +#: src/libslic3r/PrintConfig.cpp:1726 +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 "" +"Temperature difference to be applied when an extruder is not active. Enables " +"a full-height \"sacrificial\" skirt on which the nozzles are periodically " +"wiped." + +#: src/libslic3r/PrintConfig.cpp:1736 +msgid "" +"This start procedure is inserted at the beginning, after bed has reached the " +"target temperature and extruder just started heating, and before extruder " +"has finished heating. If Slic3r detects M104 or M190 in your custom codes, " +"such commands will not be prepended automatically so you're free to " +"customize the order of heating commands and other custom actions. Note that " +"you can use placeholder variables for all Slic3r settings, so you can put a " +"\"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "" +"This start procedure is inserted at the beginning, after bed has reached the " +"target temperature and extruder just started heating, and before extruder " +"has finished heating. If Slic3r detects M104 or M190 in your custom codes, " +"such commands will not be prepended automatically so you're free to " +"customize the order of heating commands and other custom actions. Note that " +"you can use placeholder variables for all Slic3r settings, so you can put a " +"\"M109 S[first_layer_temperature]\" command wherever you want." + +#: src/libslic3r/PrintConfig.cpp:1751 +msgid "" +"This start procedure is inserted at the beginning, after any printer start " +"gcode. This is used to override settings for a specific filament. If Slic3r " +"detects M104, M109, M140 or M190 in your custom codes, such commands will " +"not be prepended automatically so you're free to customize the order of " +"heating commands and other custom actions. Note that you can use placeholder " +"variables for all Slic3r settings, so you can put a \"M109 " +"S[first_layer_temperature]\" command wherever you want. If you have multiple " +"extruders, the gcode is processed in extruder order." +msgstr "" +"This start procedure is inserted at the beginning, after any printer start " +"gcode. This is used to override settings for a specific filament. If Slic3r " +"detects M104, M109, M140 or M190 in your custom codes, such commands will " +"not be prepended automatically so you're free to customize the order of " +"heating commands and other custom actions. Note that you can use placeholder " +"variables for all Slic3r settings, so you can put a \"M109 " +"S[first_layer_temperature]\" command wherever you want. If you have multiple " +"extruders, the gcode is processed in extruder order." + +#: src/libslic3r/PrintConfig.cpp:1766 +msgid "Single Extruder Multi Material" +msgstr "Single Extruder Multi Material" + +#: src/libslic3r/PrintConfig.cpp:1767 +msgid "The printer multiplexes filaments into a single hot end." +msgstr "The printer multiplexes filaments into a single hot end." + +#: src/libslic3r/PrintConfig.cpp:1772 +msgid "Prime all printing extruders" +msgstr "Prime all printing extruders" + +#: src/libslic3r/PrintConfig.cpp:1773 +msgid "" +"If enabled, all printing extruders will be primed at the front edge of the " +"print bed at the start of the print." +msgstr "" +"If enabled, all printing extruders will be primed at the front edge of the " +"print bed at the start of the print." + +#: src/libslic3r/PrintConfig.cpp:1778 +msgid "Generate support material" +msgstr "Generate support material" + +#: src/libslic3r/PrintConfig.cpp:1780 +msgid "Enable support material generation." +msgstr "Enable support material generation." + +#: src/libslic3r/PrintConfig.cpp:1784 +msgid "Auto generated supports" +msgstr "Auto generated supports" + +#: src/libslic3r/PrintConfig.cpp:1786 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1792 +msgid "XY separation between an object and its support" +msgstr "XY separation between an object and its support" + +#: src/libslic3r/PrintConfig.cpp:1794 +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 "" +"XY separation between an object and its support. If expressed as percentage " +"(for example 50%), it will be calculated over external perimeter width." + +#: src/libslic3r/PrintConfig.cpp:1804 +msgid "Pattern angle" +msgstr "Pattern angle" + +#: src/libslic3r/PrintConfig.cpp:1806 +msgid "" +"Use this setting to rotate the support material pattern on the horizontal " +"plane." +msgstr "" +"Use this setting to rotate the support material pattern on the horizontal " +"plane." + +#: src/libslic3r/PrintConfig.cpp:1816 src/libslic3r/PrintConfig.cpp:2421 +msgid "" +"Only create support if it lies on a build plate. Don't create support on a " +"print." +msgstr "" +"Only create support if it lies on a build plate. Don't create support on a " +"print." + +#: src/libslic3r/PrintConfig.cpp:1822 +msgid "Contact Z distance" +msgstr "Contact Z distance" + +#: src/libslic3r/PrintConfig.cpp:1824 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:1831 +msgid "soluble" +msgstr "soluble" + +#: src/libslic3r/PrintConfig.cpp:1832 +msgid "detachable" +msgstr "detachable" + +#: src/libslic3r/PrintConfig.cpp:1837 +msgid "Enforce support for the first" +msgstr "Enforce support for the first" + +#: src/libslic3r/PrintConfig.cpp:1839 +msgid "" +"Generate support material for the specified number of layers counting from " +"bottom, regardless of whether normal support material is enabled or not and " +"regardless of any angle threshold. This is useful for getting more adhesion " +"of objects having a very thin or poor footprint on the build plate." +msgstr "" +"Generate support material for the specified number of layers counting from " +"bottom, regardless of whether normal support material is enabled or not and " +"regardless of any angle threshold. This is useful for getting more adhesion " +"of objects having a very thin or poor footprint on the build plate." + +#: src/libslic3r/PrintConfig.cpp:1844 +msgid "Enforce support for the first n layers" +msgstr "Enforce support for the first n layers" + +#: src/libslic3r/PrintConfig.cpp:1850 +msgid "Support material/raft/skirt extruder" +msgstr "Support material/raft/skirt extruder" + +#: src/libslic3r/PrintConfig.cpp:1852 +msgid "" +"The extruder to use when printing support material, raft and skirt (1+, 0 to " +"use the current extruder to minimize tool changes)." +msgstr "" +"The extruder to use when printing support material, raft and skirt (1+, 0 to " +"use the current extruder to minimize tool changes)." + +#: src/libslic3r/PrintConfig.cpp:1861 +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, " +"otherwise nozzle diameter will be used. If expressed as percentage (for " +"example 90%) it will be computed over layer height." +msgstr "" +"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, " +"otherwise nozzle diameter will be used. If expressed as percentage (for " +"example 90%) it will be computed over layer height." + +#: src/libslic3r/PrintConfig.cpp:1869 +msgid "Interface loops" +msgstr "Interface loops" + +#: src/libslic3r/PrintConfig.cpp:1871 +msgid "" +"Cover the top contact layer of the supports with loops. Disabled by default." +msgstr "" +"Cover the top contact layer of the supports with loops. Disabled by default." + +#: src/libslic3r/PrintConfig.cpp:1876 +msgid "Support material/raft interface extruder" +msgstr "Support material/raft interface extruder" + +#: src/libslic3r/PrintConfig.cpp:1878 +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 "" +"The extruder to use when printing support material interface (1+, 0 to use " +"the current extruder to minimize tool changes). This affects raft too." + +#: src/libslic3r/PrintConfig.cpp:1885 +msgid "Interface layers" +msgstr "Interface layers" + +#: src/libslic3r/PrintConfig.cpp:1887 +msgid "" +"Number of interface layers to insert between the object(s) and support " +"material." +msgstr "" +"Number of interface layers to insert between the object(s) and support " +"material." + +#: src/libslic3r/PrintConfig.cpp:1894 +msgid "Interface pattern spacing" +msgstr "Interface pattern spacing" + +#: src/libslic3r/PrintConfig.cpp:1896 +msgid "Spacing between interface lines. Set zero to get a solid interface." +msgstr "Spacing between interface lines. Set zero to get a solid interface." + +#: src/libslic3r/PrintConfig.cpp:1905 +msgid "" +"Speed for printing support material interface layers. If expressed as " +"percentage (for example 50%) it will be calculated over support material " +"speed." +msgstr "" +"Speed for printing support material interface layers. If expressed as " +"percentage (for example 50%) it will be calculated over support material " +"speed." + +#: src/libslic3r/PrintConfig.cpp:1914 +msgid "Pattern" +msgstr "Pattern" + +#: src/libslic3r/PrintConfig.cpp:1916 +msgid "Pattern used to generate support material." +msgstr "Pattern used to generate support material." + +#: src/libslic3r/PrintConfig.cpp:1922 +msgid "Rectilinear grid" +msgstr "Rectilinear grid" + +#: src/libslic3r/PrintConfig.cpp:1928 +msgid "Pattern spacing" +msgstr "Pattern spacing" + +#: src/libslic3r/PrintConfig.cpp:1930 +msgid "Spacing between support material lines." +msgstr "Spacing between support material lines." + +#: src/libslic3r/PrintConfig.cpp:1939 +msgid "Speed for printing support material." +msgstr "Speed for printing support material." + +#: src/libslic3r/PrintConfig.cpp:1946 +msgid "Synchronize with object layers" +msgstr "Synchronize with object layers" + +#: src/libslic3r/PrintConfig.cpp:1948 +msgid "" +"Synchronize support layers with the object print layers. This is useful with " +"multi-material printers, where the extruder switch is expensive." +msgstr "" +"Synchronize support layers with the object print layers. This is useful with " +"multi-material printers, where the extruder switch is expensive." + +#: src/libslic3r/PrintConfig.cpp:1954 +msgid "Overhang threshold" +msgstr "Overhang threshold" + +#: src/libslic3r/PrintConfig.cpp:1956 +msgid "" +"Support material will not be generated for overhangs whose slope angle (90° " +"= vertical) is above the given threshold. In other words, this value " +"represent the most horizontal slope (measured from the horizontal plane) " +"that you can print without support material. Set to zero for automatic " +"detection (recommended)." +msgstr "" +"Support material will not be generated for overhangs whose slope angle (90° " +"= vertical) is above the given threshold. In other words, this value " +"represent the most horizontal slope (measured from the horizontal plane) " +"that you can print without support material. Set to zero for automatic " +"detection (recommended)." + +#: src/libslic3r/PrintConfig.cpp:1968 +msgid "With sheath around the support" +msgstr "With sheath around the support" + +#: src/libslic3r/PrintConfig.cpp:1970 +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 "" +"Add a sheath (a single perimeter line) around the base support. This makes " +"the support more reliable, but also more difficult to remove." + +#: src/libslic3r/PrintConfig.cpp:1977 +msgid "" +"Extruder temperature for layers after the first one. Set this to zero to " +"disable temperature control commands in the output." +msgstr "" +"Extruder temperature for layers after the first one. Set this to zero to " +"disable temperature control commands in the output." + +#: src/libslic3r/PrintConfig.cpp:1979 +msgid "Temperature" +msgstr "Temperature" + +#: src/libslic3r/PrintConfig.cpp:1985 +msgid "Detect thin walls" +msgstr "Detect thin walls" + +#: src/libslic3r/PrintConfig.cpp:1987 +msgid "" +"Detect single-width walls (parts where two extrusions don't fit and we need " +"to collapse them into a single trace)." +msgstr "" +"Detect single-width walls (parts where two extrusions don't fit and we need " +"to collapse them into a single trace)." + +#: src/libslic3r/PrintConfig.cpp:1993 +msgid "Threads" +msgstr "Threads" + +#: src/libslic3r/PrintConfig.cpp:1994 +msgid "" +"Threads are used to parallelize long-running tasks. Optimal threads number " +"is slightly above the number of available cores/processors." +msgstr "" +"Threads are used to parallelize long-running tasks. Optimal threads number " +"is slightly above the number of available cores/processors." + +#: src/libslic3r/PrintConfig.cpp:2006 +msgid "" +"This custom code is inserted right before every extruder change. Note that " +"you can use placeholder variables for all Slic3r settings as well as " +"[previous_extruder] and [next_extruder]." +msgstr "" +"This custom code is inserted right before every extruder change. Note that " +"you can use placeholder variables for all Slic3r settings as well as " +"[previous_extruder] and [next_extruder]." + +#: src/libslic3r/PrintConfig.cpp:2018 +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 " +"regions and get a smoother finish. If left zero, default extrusion width " +"will be used if set, otherwise nozzle diameter will be used. If expressed as " +"percentage (for example 90%) it will be computed over layer height." +msgstr "" +"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 " +"regions and get a smoother finish. If left zero, default extrusion width " +"will be used if set, otherwise nozzle diameter will be used. If expressed as " +"percentage (for example 90%) it will be computed over layer height." + +#: src/libslic3r/PrintConfig.cpp:2029 +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 " +"slow down this to get a nicer surface finish. This can be expressed as a " +"percentage (for example: 80%) over the solid infill speed above. Set to zero " +"for auto." +msgstr "" +"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 " +"slow down this to get a nicer surface finish. This can be expressed as a " +"percentage (for example: 80%) over the solid infill speed above. Set to zero " +"for auto." + +#: src/libslic3r/PrintConfig.cpp:2043 +msgid "Number of solid layers to generate on top surfaces." +msgstr "Number of solid layers to generate on top surfaces." + +#: src/libslic3r/PrintConfig.cpp:2044 +msgid "Top solid layers" +msgstr "Top solid layers" + +#: src/libslic3r/PrintConfig.cpp:2050 +msgid "Speed for travel moves (jumps between distant extrusion points)." +msgstr "Speed for travel moves (jumps between distant extrusion points)." + +#: src/libslic3r/PrintConfig.cpp:2058 +msgid "Use firmware retraction" +msgstr "Use firmware retraction" + +#: src/libslic3r/PrintConfig.cpp:2059 +msgid "" +"This experimental setting uses G10 and G11 commands to have the firmware " +"handle the retraction. This is only supported in recent Marlin." +msgstr "" +"This experimental setting uses G10 and G11 commands to have the firmware " +"handle the retraction. This is only supported in recent Marlin." + +#: src/libslic3r/PrintConfig.cpp:2065 +msgid "Use relative E distances" +msgstr "Use relative E distances" + +#: src/libslic3r/PrintConfig.cpp:2066 +msgid "" +"If your firmware requires relative E values, check this, otherwise leave it " +"unchecked. Most firmwares use absolute values." +msgstr "" +"If your firmware requires relative E values, check this, otherwise leave it " +"unchecked. Most firmwares use absolute values." + +#: src/libslic3r/PrintConfig.cpp:2072 +msgid "Use volumetric E" +msgstr "Use volumetric E" + +#: src/libslic3r/PrintConfig.cpp:2073 +msgid "" +"This experimental setting uses outputs the E values in cubic millimeters " +"instead of linear millimeters. If your firmware doesn't already know " +"filament diameter(s), you can put commands like 'M200 D[filament_diameter_0] " +"T0' in your start G-code in order to turn volumetric mode on and use the " +"filament diameter associated to the filament selected in Slic3r. This is " +"only supported in recent Marlin." +msgstr "" +"This experimental setting uses outputs the E values in cubic millimeters " +"instead of linear millimeters. If your firmware doesn't already know " +"filament diameter(s), you can put commands like 'M200 D[filament_diameter_0] " +"T0' in your start G-code in order to turn volumetric mode on and use the " +"filament diameter associated to the filament selected in Slic3r. This is " +"only supported in recent Marlin." + +#: src/libslic3r/PrintConfig.cpp:2083 +msgid "Enable variable layer height feature" +msgstr "Enable variable layer height feature" + +#: src/libslic3r/PrintConfig.cpp:2084 +msgid "" +"Some printers or printer setups may have difficulties printing with a " +"variable layer height. Enabled by default." +msgstr "" +"Some printers or printer setups may have difficulties printing with a " +"variable layer height. Enabled by default." + +#: src/libslic3r/PrintConfig.cpp:2090 +msgid "Wipe while retracting" +msgstr "Wipe while retracting" + +#: src/libslic3r/PrintConfig.cpp:2091 +msgid "" +"This flag will move the nozzle while retracting to minimize the possible " +"blob on leaky extruders." +msgstr "" +"This flag will move the nozzle while retracting to minimize the possible " +"blob on leaky extruders." + +#: src/libslic3r/PrintConfig.cpp:2098 +msgid "" +"Multi material printers may need to prime or purge extruders on tool " +"changes. Extrude the excess material into the wipe tower." +msgstr "" +"Multi material printers may need to prime or purge extruders on tool " +"changes. Extrude the excess material into the wipe tower." + +#: src/libslic3r/PrintConfig.cpp:2104 +msgid "Purging volumes - load/unload volumes" +msgstr "Purging volumes - load/unload volumes" + +#: src/libslic3r/PrintConfig.cpp:2105 +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 "" +"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. " + +#: src/libslic3r/PrintConfig.cpp:2111 +msgid "Purging volumes - matrix" +msgstr "Purging volumes - matrix" + +#: src/libslic3r/PrintConfig.cpp:2112 +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 "" +"This matrix describes volumes (in cubic milimetres) required to purge the " +"new filament on the wipe tower for any given pair of tools. " + +#: src/libslic3r/PrintConfig.cpp:2121 +msgid "Position X" +msgstr "Position X" + +#: src/libslic3r/PrintConfig.cpp:2122 +msgid "X coordinate of the left front corner of a wipe tower" +msgstr "X coordinate of the left front corner of a wipe tower" + +#: src/libslic3r/PrintConfig.cpp:2128 +msgid "Position Y" +msgstr "Position Y" + +#: src/libslic3r/PrintConfig.cpp:2129 +msgid "Y coordinate of the left front corner of a wipe tower" +msgstr "Y coordinate of the left front corner of a wipe tower" + +#: src/libslic3r/PrintConfig.cpp:2136 +msgid "Width of a wipe tower" +msgstr "Width of a wipe tower" + +#: src/libslic3r/PrintConfig.cpp:2142 +msgid "Wipe tower rotation angle" +msgstr "Wipe tower rotation angle" + +#: src/libslic3r/PrintConfig.cpp:2143 +msgid "Wipe tower rotation angle with respect to x-axis " +msgstr "Wipe tower rotation angle with respect to x-axis " + +#: src/libslic3r/PrintConfig.cpp:2144 src/libslic3r/PrintConfig.cpp:2565 +msgid "degrees" +msgstr "degrees" + +#: src/libslic3r/PrintConfig.cpp:2150 +msgid "Wipe into this object's infill" +msgstr "Wipe into this object's infill" + +#: src/libslic3r/PrintConfig.cpp:2151 +msgid "" +"Purging after toolchange will 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 "" +"Purging after toolchange will done inside this object's infills. This lowers " +"the amount of waste but may result in longer print time due to additional " +"travel moves." + +#: src/libslic3r/PrintConfig.cpp:2158 +msgid "Wipe into this object" +msgstr "Wipe into this object" + +#: src/libslic3r/PrintConfig.cpp:2159 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:2165 +msgid "Maximal bridging distance" +msgstr "Maximal bridging distance" + +#: src/libslic3r/PrintConfig.cpp:2166 +msgid "Maximal distance between supports on sparse infill sections. " +msgstr "Maximal distance between supports on sparse infill sections. " + +#: src/libslic3r/PrintConfig.cpp:2172 +msgid "XY Size Compensation" +msgstr "XY Size Compensation" + +#: src/libslic3r/PrintConfig.cpp:2174 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:2182 +msgid "Z offset" +msgstr "Z offset" + +#: src/libslic3r/PrintConfig.cpp:2183 +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 " +"example, if your endstop zero actually leaves the nozzle 0.3mm far from the " +"print bed, set this to -0.3 (or fix your endstop)." +msgstr "" +"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 " +"example, if your endstop zero actually leaves the nozzle 0.3mm far from the " +"print bed, set this to -0.3 (or fix your endstop)." + +#: src/libslic3r/PrintConfig.cpp:2200 +msgid "Display width" +msgstr "Display width" + +#: src/libslic3r/PrintConfig.cpp:2201 +msgid "Width of the display" +msgstr "Width of the display" + +#: src/libslic3r/PrintConfig.cpp:2206 +msgid "Display height" +msgstr "Display height" + +#: src/libslic3r/PrintConfig.cpp:2207 +msgid "Height of the display" +msgstr "Height of the display" + +#: src/libslic3r/PrintConfig.cpp:2212 +msgid "Number of pixels in" +msgstr "Number of pixels in" + +#: src/libslic3r/PrintConfig.cpp:2214 +msgid "Number of pixels in X" +msgstr "Number of pixels in X" + +#: src/libslic3r/PrintConfig.cpp:2220 +msgid "Number of pixels in Y" +msgstr "Number of pixels in Y" + +#: src/libslic3r/PrintConfig.cpp:2225 +msgid "Display orientation" +msgstr "Display orientation" + +#: src/libslic3r/PrintConfig.cpp:2226 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:2232 +msgid "Landscape" +msgstr "Landscape" + +#: src/libslic3r/PrintConfig.cpp:2233 +msgid "Portrait" +msgstr "Portrait" + +#: src/libslic3r/PrintConfig.cpp:2238 +msgid "Fast" +msgstr "Fast" + +#: src/libslic3r/PrintConfig.cpp:2239 +msgid "Fast tilt" +msgstr "Fast tilt" + +#: src/libslic3r/PrintConfig.cpp:2240 +msgid "Time of the fast tilt" +msgstr "Time of the fast tilt" + +#: src/libslic3r/PrintConfig.cpp:2247 +msgid "Slow" +msgstr "Slow" + +#: src/libslic3r/PrintConfig.cpp:2248 +msgid "Slow tilt" +msgstr "Slow tilt" + +#: src/libslic3r/PrintConfig.cpp:2249 +msgid "Time of the slow tilt" +msgstr "Time of the slow tilt" + +#: src/libslic3r/PrintConfig.cpp:2256 +msgid "Area fill" +msgstr "Area fill" + +#: src/libslic3r/PrintConfig.cpp:2257 +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 "" +"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" + +#: src/libslic3r/PrintConfig.cpp:2264 src/libslic3r/PrintConfig.cpp:2265 +#: src/libslic3r/PrintConfig.cpp:2266 +msgid "Printer scaling correction" +msgstr "Printer scaling correction" + +#: src/libslic3r/PrintConfig.cpp:2272 src/libslic3r/PrintConfig.cpp:2273 +msgid "Printer absolute correction" +msgstr "Printer absolute correction" + +#: src/libslic3r/PrintConfig.cpp:2274 +msgid "" +"Will inflate or deflate the sliced 2D polygons according to the sign of the " +"correction." +msgstr "" +"Will inflate or deflate the sliced 2D polygons according to the sign of the " +"correction." + +#: src/libslic3r/PrintConfig.cpp:2280 src/libslic3r/PrintConfig.cpp:2281 +msgid "Printer gamma correction" +msgstr "Printer gamma correction" + +#: src/libslic3r/PrintConfig.cpp:2282 +msgid "This will apply a gamm correction to the rasterized 2D polygons." +msgstr "This will apply a gamm correction to the rasterized 2D polygons." + +#: src/libslic3r/PrintConfig.cpp:2291 src/libslic3r/PrintConfig.cpp:2292 +msgid "Initial layer height" +msgstr "Initial layer height" + +#: src/libslic3r/PrintConfig.cpp:2298 +msgid "Faded layers" +msgstr "Faded layers" + +#: src/libslic3r/PrintConfig.cpp:2299 +msgid "" +"Number of the layers needed for the exposure time fade from initial exposure " +"time to the exposure time" +msgstr "" +"Number of the layers needed for the exposure time fade from initial exposure " +"time to the exposure time" + +#: src/libslic3r/PrintConfig.cpp:2306 src/libslic3r/PrintConfig.cpp:2307 +msgid "Exposure time" +msgstr "Exposure time" + +#: src/libslic3r/PrintConfig.cpp:2313 src/libslic3r/PrintConfig.cpp:2314 +msgid "Initial exposure time" +msgstr "Initial exposure time" + +#: src/libslic3r/PrintConfig.cpp:2320 src/libslic3r/PrintConfig.cpp:2321 +msgid "Correction for expansion" +msgstr "Correction for expansion" + +#: src/libslic3r/PrintConfig.cpp:2327 +msgid "SLA print material notes" +msgstr "SLA print material notes" + +#: src/libslic3r/PrintConfig.cpp:2328 +msgid "You can put your notes regarding the SLA print material here." +msgstr "You can put your notes regarding the SLA print material here." + +#: src/libslic3r/PrintConfig.cpp:2336 src/libslic3r/PrintConfig.cpp:2347 +msgid "Default SLA material profile" +msgstr "Default SLA material profile" + +#: src/libslic3r/PrintConfig.cpp:2358 +msgid "Generate supports" +msgstr "Generate supports" + +#: src/libslic3r/PrintConfig.cpp:2360 +msgid "Generate supports for the models" +msgstr "Generate supports for the models" + +#: src/libslic3r/PrintConfig.cpp:2365 +msgid "Support head front diameter" +msgstr "Support head front diameter" + +#: src/libslic3r/PrintConfig.cpp:2367 +msgid "Diameter of the pointing side of the head" +msgstr "Diameter of the pointing side of the head" + +#: src/libslic3r/PrintConfig.cpp:2374 +msgid "Support head penetration" +msgstr "Support head penetration" + +#: src/libslic3r/PrintConfig.cpp:2376 +msgid "How much the pinhead has to penetrate the model surface" +msgstr "How much the pinhead has to penetrate the model surface" + +#: src/libslic3r/PrintConfig.cpp:2383 +msgid "Support head width" +msgstr "Support head width" + +#: src/libslic3r/PrintConfig.cpp:2385 +msgid "Width from the back sphere center to the front sphere center" +msgstr "Width from the back sphere center to the front sphere center" + +#: src/libslic3r/PrintConfig.cpp:2393 +msgid "Support pillar diameter" +msgstr "Support pillar diameter" + +#: src/libslic3r/PrintConfig.cpp:2395 +msgid "Diameter in mm of the support pillars" +msgstr "Diameter in mm of the support pillars" + +#: src/libslic3r/PrintConfig.cpp:2403 +msgid "Support pillar connection mode" +msgstr "Support pillar connection mode" + +#: src/libslic3r/PrintConfig.cpp:2404 +msgid "" +"Controls the bridge type between two neigboring 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 "" +"Controls the bridge type between two neigboring 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." + +#: src/libslic3r/PrintConfig.cpp:2412 +msgid "Zig-Zag" +msgstr "Zig-Zag" + +#: src/libslic3r/PrintConfig.cpp:2413 +msgid "Cross" +msgstr "Cross" + +#: src/libslic3r/PrintConfig.cpp:2414 +msgid "Dynamic" +msgstr "Dynamic" + +#: src/libslic3r/PrintConfig.cpp:2426 +msgid "Pillar widening factor" +msgstr "Pillar widening factor" + +#: src/libslic3r/PrintConfig.cpp:2428 +msgid "" +"Merging bridges or pillars into another pillars can increase the radius. " +"Zero means no increase, one means full increase." +msgstr "" +"Merging bridges or pillars into another pillars can increase the radius. " +"Zero means no increase, one means full increase." + +#: src/libslic3r/PrintConfig.cpp:2437 +msgid "Support base diameter" +msgstr "Support base diameter" + +#: src/libslic3r/PrintConfig.cpp:2439 +msgid "Diameter in mm of the pillar base" +msgstr "Diameter in mm of the pillar base" + +#: src/libslic3r/PrintConfig.cpp:2447 +msgid "Support base height" +msgstr "Support base height" + +#: src/libslic3r/PrintConfig.cpp:2449 +msgid "The height of the pillar base cone" +msgstr "The height of the pillar base cone" + +#: src/libslic3r/PrintConfig.cpp:2456 +msgid "Critical angle" +msgstr "Critical angle" + +#: src/libslic3r/PrintConfig.cpp:2458 +msgid "The default angle for connecting support sticks and junctions." +msgstr "The default angle for connecting support sticks and junctions." + +#: src/libslic3r/PrintConfig.cpp:2466 +msgid "Max bridge length" +msgstr "Max bridge length" + +#: src/libslic3r/PrintConfig.cpp:2468 +msgid "The max length of a bridge" +msgstr "The max length of a bridge" + +#: src/libslic3r/PrintConfig.cpp:2475 +msgid "Max pillar linking distance" +msgstr "Max pillar linking distance" + +#: src/libslic3r/PrintConfig.cpp:2477 +msgid "" +"The max distance of two pillars to get linked with each other. A zero value " +"will prohibit pillar cascading." +msgstr "" +"The max distance of two pillars to get linked with each other. A zero value " +"will prohibit pillar cascading." + +#: src/libslic3r/PrintConfig.cpp:2485 +msgid "Object elevation" +msgstr "Object elevation" + +#: src/libslic3r/PrintConfig.cpp:2487 +msgid "How much the supports should lift up the supported object." +msgstr "How much the supports should lift up the supported object." + +#: src/libslic3r/PrintConfig.cpp:2495 +msgid "Support points density" +msgstr "Support points density" + +#: src/libslic3r/PrintConfig.cpp:2497 +msgid "This is a relative measure of support points density." +msgstr "This is a relative measure of support points density." + +#: src/libslic3r/PrintConfig.cpp:2503 +msgid "Minimal distance of the support points" +msgstr "Minimal distance of the support points" + +#: src/libslic3r/PrintConfig.cpp:2505 +msgid "No support points will be placed closer than this threshold." +msgstr "No support points will be placed closer than this threshold." + +#: src/libslic3r/PrintConfig.cpp:2511 +msgid "Use pad" +msgstr "Use pad" + +#: src/libslic3r/PrintConfig.cpp:2513 +msgid "Add a pad underneath the supported model" +msgstr "Add a pad underneath the supported model" + +#: src/libslic3r/PrintConfig.cpp:2518 +msgid "Pad wall thickness" +msgstr "Pad wall thickness" + +#: src/libslic3r/PrintConfig.cpp:2520 +msgid "The thickness of the pad and its optional cavity walls." +msgstr "The thickness of the pad and its optional cavity walls." + +#: src/libslic3r/PrintConfig.cpp:2528 +msgid "Pad wall height" +msgstr "Pad wall height" + +#: src/libslic3r/PrintConfig.cpp:2529 +msgid "Defines the cavity depth. Set to zero to disable the cavity." +msgstr "Defines the cavity depth. Set to zero to disable the cavity." + +#: src/libslic3r/PrintConfig.cpp:2539 +msgid "Max merge distance" +msgstr "Max merge distance" + +#: src/libslic3r/PrintConfig.cpp:2541 +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 "" +"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." + +#: src/libslic3r/PrintConfig.cpp:2552 +msgid "Pad edge radius" +msgstr "Pad edge radius" + +#: src/libslic3r/PrintConfig.cpp:2561 +msgid "Pad wall slope" +msgstr "Pad wall slope" + +#: src/libslic3r/PrintConfig.cpp:2563 +msgid "" +"The slope of the pad wall relative to the bed plane. 90 degrees means " +"straight walls." +msgstr "" +"The slope of the pad wall relative to the bed plane. 90 degrees means " +"straight walls." + +#: src/libslic3r/PrintConfig.cpp:2924 +msgid "Export SVG" +msgstr "Export SVG" + +#: src/libslic3r/PrintConfig.cpp:2925 +msgid "Export the model(s) as OBJ." +msgstr "Export the model(s) as OBJ." + +#: src/libslic3r/PrintConfig.cpp:2936 +msgid "Export SLA" +msgstr "Export SLA" + +#: src/libslic3r/PrintConfig.cpp:2937 +msgid "Slice the model and export SLA printing layers as PNG." +msgstr "Slice the model and export SLA printing layers as PNG." + +#: src/libslic3r/PrintConfig.cpp:2942 +msgid "Export 3MF" +msgstr "Export 3MF" + +#: src/libslic3r/PrintConfig.cpp:2943 +msgid "Export the model(s) as 3MF." +msgstr "Export the model(s) as 3MF." + +#: src/libslic3r/PrintConfig.cpp:2947 +msgid "Export AMF" +msgstr "Export AMF" + +#: src/libslic3r/PrintConfig.cpp:2948 +msgid "Export the model(s) as AMF." +msgstr "Export the model(s) as AMF." + +#: src/libslic3r/PrintConfig.cpp:2952 +msgid "Export STL" +msgstr "Export STL" + +#: src/libslic3r/PrintConfig.cpp:2953 +msgid "Export the model(s) as STL." +msgstr "Export the model(s) as STL." + +#: src/libslic3r/PrintConfig.cpp:2958 +msgid "Slice the model and export toolpaths as G-code." +msgstr "Slice the model and export toolpaths as G-code." + +#: src/libslic3r/PrintConfig.cpp:2963 +msgid "Slice" +msgstr "Slice" + +#: src/libslic3r/PrintConfig.cpp:2964 +msgid "" +"Slice the model as FFF or SLA based on the printer_technology configuration " +"value." +msgstr "" +"Slice the model as FFF or SLA based on the printer_technology configuration " +"value." + +#: src/libslic3r/PrintConfig.cpp:2969 +msgid "Help" +msgstr "Help" + +#: src/libslic3r/PrintConfig.cpp:2970 +msgid "Show this help." +msgstr "Show this help." + +#: src/libslic3r/PrintConfig.cpp:2975 +msgid "Help (FFF options)" +msgstr "Help (FFF options)" + +#: src/libslic3r/PrintConfig.cpp:2976 +msgid "Show the full list of print/G-code configuration options." +msgstr "Show the full list of print/G-code configuration options." + +#: src/libslic3r/PrintConfig.cpp:2980 +msgid "Help (SLA options)" +msgstr "Help (SLA options)" + +#: src/libslic3r/PrintConfig.cpp:2981 +msgid "Show the full list of SLA print configuration options." +msgstr "Show the full list of SLA print configuration options." + +#: src/libslic3r/PrintConfig.cpp:2985 +msgid "Output Model Info" +msgstr "Output Model Info" + +#: src/libslic3r/PrintConfig.cpp:2986 +msgid "Write information about the model to the console." +msgstr "Write information about the model to the console." + +#: src/libslic3r/PrintConfig.cpp:2990 +msgid "Save config file" +msgstr "Save config file" + +#: src/libslic3r/PrintConfig.cpp:2991 +msgid "Save configuration to the specified file." +msgstr "Save configuration to the specified file." + +#: src/libslic3r/PrintConfig.cpp:3001 +msgid "Align XY" +msgstr "Align XY" + +#: src/libslic3r/PrintConfig.cpp:3002 +msgid "Align the model to the given point." +msgstr "Align the model to the given point." + +#: src/libslic3r/PrintConfig.cpp:3007 +msgid "Cut model at the given Z." +msgstr "Cut model at the given Z." + +#: src/libslic3r/PrintConfig.cpp:3028 +msgid "Center" +msgstr "Center" + +#: src/libslic3r/PrintConfig.cpp:3029 +msgid "Center the print around the given center." +msgstr "Center the print around the given center." + +#: src/libslic3r/PrintConfig.cpp:3033 +msgid "Don't arrange" +msgstr "Don't arrange" + +#: src/libslic3r/PrintConfig.cpp:3034 +msgid "" +"Do not rearrange the given models before merging and keep their original XY " +"coordinates." +msgstr "" +"Do not rearrange the given models before merging and keep their original XY " +"coordinates." + +#: src/libslic3r/PrintConfig.cpp:3037 +msgid "Duplicate" +msgstr "Duplicate" + +#: src/libslic3r/PrintConfig.cpp:3038 +msgid "Multiply copies by this factor." +msgstr "Multiply copies by this factor." + +#: src/libslic3r/PrintConfig.cpp:3042 +msgid "Duplicate by grid" +msgstr "Duplicate by grid" + +#: src/libslic3r/PrintConfig.cpp:3043 +msgid "Multiply copies by creating a grid." +msgstr "Multiply copies by creating a grid." + +#: src/libslic3r/PrintConfig.cpp:3046 +msgid "Merge" +msgstr "Merge" + +#: src/libslic3r/PrintConfig.cpp:3047 +msgid "" +"Arrange the supplied models in a plate and merge them in a single model in " +"order to perform actions once." +msgstr "" +"Arrange the supplied models in a plate and merge them in a single model in " +"order to perform actions once." + +#: src/libslic3r/PrintConfig.cpp:3052 +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 "" +"Try to repair any non-manifold meshes (this option is implicitly added " +"whenever we need to slice the model to perform the requested action)." + +#: src/libslic3r/PrintConfig.cpp:3056 +msgid "Rotation angle around the Z axis in degrees." +msgstr "Rotation angle around the Z axis in degrees." + +#: src/libslic3r/PrintConfig.cpp:3060 +msgid "Rotate around X" +msgstr "Rotate around X" + +#: src/libslic3r/PrintConfig.cpp:3061 +msgid "Rotation angle around the X axis in degrees." +msgstr "Rotation angle around the X axis in degrees." + +#: src/libslic3r/PrintConfig.cpp:3065 +msgid "Rotate around Y" +msgstr "Rotate around Y" + +#: src/libslic3r/PrintConfig.cpp:3066 +msgid "Rotation angle around the Y axis in degrees." +msgstr "Rotation angle around the Y axis in degrees." + +#: src/libslic3r/PrintConfig.cpp:3071 +msgid "Scaling factor or percentage." +msgstr "Scaling factor or percentage." + +#: src/libslic3r/PrintConfig.cpp:3076 +msgid "" +"Detect unconnected parts in the given model(s) and split them into separate " +"objects." +msgstr "" +"Detect unconnected parts in the given model(s) and split them into separate " +"objects." + +#: src/libslic3r/PrintConfig.cpp:3079 +msgid "Scale to Fit" +msgstr "Scale to Fit" + +#: src/libslic3r/PrintConfig.cpp:3080 +msgid "Scale to fit the given volume." +msgstr "Scale to fit the given volume." + +#: src/libslic3r/PrintConfig.cpp:3089 +msgid "Ignore non-existent config files" +msgstr "Ignore non-existent config files" + +#: src/libslic3r/PrintConfig.cpp:3090 +msgid "Do not fail if a file supplied to --load does not exist." +msgstr "Do not fail if a file supplied to --load does not exist." + +#: src/libslic3r/PrintConfig.cpp:3093 +msgid "Load config file" +msgstr "Load config file" + +#: src/libslic3r/PrintConfig.cpp:3094 +msgid "" +"Load configuration from the specified file. It can be used more than once to " +"load options from multiple files." +msgstr "" +"Load configuration from the specified file. It can be used more than once to " +"load options from multiple files." + +#: src/libslic3r/PrintConfig.cpp:3097 +msgid "Output File" +msgstr "Output File" + +#: src/libslic3r/PrintConfig.cpp:3098 +msgid "" +"The file where the output will be written (if not specified, it will be " +"based on the input file)." +msgstr "" +"The file where the output will be written (if not specified, it will be " +"based on the input file)." + +#: src/libslic3r/PrintConfig.cpp:3108 +msgid "Data directory" +msgstr "Data directory" + +#: src/libslic3r/PrintConfig.cpp:3109 +msgid "" +"Load and store settings at the given directory. This is useful for " +"maintaining different profiles or including configurations from a network " +"storage." +msgstr "" +"Load and store settings at the given directory. This is useful for " +"maintaining different profiles or including configurations from a network " +"storage." + +#: src/libslic3r/PrintConfig.cpp:3112 +msgid "Logging level" +msgstr "Logging level" + +#: src/libslic3r/PrintConfig.cpp:3113 +msgid "" +"Messages with severity lower or eqal to the loglevel will be printed out. 0:" +"trace, 1:debug, 2:info, 3:warning, 4:error, 5:fatal" +msgstr "" +"Messages with severity lower or eqal to the loglevel will be printed out. 0:" +"trace, 1:debug, 2:info, 3:warning, 4:error, 5:fatal" + +#: src/libslic3r/GCode/PreviewData.cpp:176 +msgid "Mixed" +msgstr "Mixed" + +#: src/libslic3r/GCode/PreviewData.cpp:396 +msgid "Height (mm)" +msgstr "Height (mm)" + +#: src/libslic3r/GCode/PreviewData.cpp:398 +msgid "Width (mm)" +msgstr "Width (mm)" + +#: src/libslic3r/GCode/PreviewData.cpp:400 +msgid "Speed (mm/s)" +msgstr "Speed (mm/s)" + +#: src/libslic3r/GCode/PreviewData.cpp:402 +msgid "Volumetric flow rate (mm3/s)" +msgstr "Volumetric flow rate (mm3/s)" + +#: src/libslic3r/GCode/PreviewData.cpp:491 +msgid "Default print color" +msgstr "Default print color" + +#: src/libslic3r/GCode/PreviewData.cpp:495 +#, c-format +msgid "up to %.2f mm" +msgstr "up to %.2f mm" + +#: src/libslic3r/GCode/PreviewData.cpp:499 +#, c-format +msgid "above %.2f mm" +msgstr "above %.2f mm" + +#: src/libslic3r/GCode/PreviewData.cpp:504 +#, c-format +msgid "%.2f - %.2f mm" +msgstr "%.2f - %.2f mm" diff --git a/resources/localization/es/PrusaSlicer.mo b/resources/localization/es/PrusaSlicer.mo index d5c9bf25dd3..974f3783611 100644 Binary files a/resources/localization/es/PrusaSlicer.mo and b/resources/localization/es/PrusaSlicer.mo differ diff --git a/resources/localization/es/PrusaSlicer_es.po b/resources/localization/es/PrusaSlicer_es.po index c69e55b8d0a..0ee35d3bf5f 100644 --- a/resources/localization/es/PrusaSlicer_es.po +++ b/resources/localization/es/PrusaSlicer_es.po @@ -5,24 +5,167 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: PhraseApp (phraseapp.com)\n" +"X-Generator: Poedit 2.0.8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Oleksandra Iushchenko \n" +"Language-Team: \n" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"and it has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"y tiene los siguientes cambios sin guardar:" + +#: xs/src/slic3r/GUI/Tab.cpp:2152 +msgid "" +"\n" +"\n" +"Discard changes and continue anyway?" +msgstr "" +"\n" +"\n" +"¿Descartar los cambios y continuar de todos modos?" + +#: xs/src/slic3r/GUI/Tab.cpp:2150 +msgid "" +"\n" +"\n" +"has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"tiene los siguientes cambios sin guardar:" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"is not compatible with printer\n" +msgstr "" +"\n" +"\n" +"no es compatible con la impresora\n" + +#: src/slic3r/GUI/PresetHints.cpp:36 +msgid "" +"\n" +"During the other layers, fan " +msgstr "" +"\n" +"Durante las otras capas, ventilador" #: src/slic3r/GUI/PresetHints.cpp:39 -msgid "\nDuring the other layers, fan" -msgstr "\nDurante las otras capas, el ventilador" +msgid "" +"\n" +"During the other layers, fan" +msgstr "" +"\n" +"Durante las otras capas, el ventilador" #: src/slic3r/GUI/PresetHints.cpp:35 -msgid "\nIf estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." -msgstr "\nSi el tiempo estimado de la capa es mayor, pero todavía por debajo de ~%1%s, el ventilador funcionará a una velocidad proporcionalmente menor entre %2%%% y %3%%%." +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." +msgstr "" +"\n" +"Si el tiempo estimado de la capa es mayor, pero todavía por debajo de ~%1%s, el ventilador funcionará a una velocidad proporcionalmente menor entre %2%%% y %3%%%." -#: src/slic3r/GUI/MainFrame.cpp:61 -msgid " - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/releases" -msgstr " - Recuerda comprobar las actualizaciones en http://github.com/prusa3d/PrusaSlicer/releases" +#: src/slic3r/GUI/PresetHints.cpp:32 +#, c-format +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%ds, fan will run at a proportionally decreasing speed between %d%% and %d%%." +msgstr "" +"\n" +"Si el tiempo estimado de la capa es mayor, pero todavía por debajo de ~%ds, el ventilador funcionará a una velocidad proporcionalmente menor entre %d%% y %d%%." + +#: lib/Slic3r/GUI/Plater.pm:1019 +msgid "" +"\n" +"Non-positive value." +msgstr "" +"\n" +"Valor no positivo." + +#: lib/Slic3r/GUI/Plater.pm:1020 +msgid "" +"\n" +"Not a numeric value." +msgstr "" +"\n" +"No es un valor numérico." + +#: src/slic3r/GUI/MainFrame.cpp:55 +msgid " - Remember to check for updates at http://github.com/prusa3d/slic3r/releases" +msgstr " - Recuerda comprobar si hay actualizaciones en http://github.com/prusa3d/slic3r/releases" + +#: src/slic3r/GUI/Tab.cpp:3239 +msgid " as:" +msgstr " como:" + +#: src/slic3r/GUI/PresetHints.cpp:228 +#, c-format +msgid " at filament speed %3.2f mm/s." +msgstr " a una velocidad de filamento de %3.2f mm/s." + +#: src/slic3r/GUI/Tab.cpp:1737 +msgid " Browse " +msgstr " Hojea " + +#: src/slic3r/GUI/MainFrame.cpp:677 +msgid " file as:" +msgstr " archivo como:" + +#: src/slic3r/GUI/PresetHints.cpp:217 +msgid " flow rate is maximized " +msgstr " la tasa de flujo se maximiza " + +#: src/slic3r/GUI/Tab.cpp:1358 +#, no-c-format +msgid "" +" infill pattern is not supposed to work at 100% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +" ese patrón de relleno no está pensado para trabajar al 100% de densidad. \n" +"\n" +"¿Debería cambiar a un patrón de relleno rectilíneo?" + +#: xs/src/slic3r/GUI/Tab.cpp:2131 +msgid " preset\n" +msgstr " ajuste inicial\n" + +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid " preset" +msgstr " presente" + +#: src/slic3r/GUI/Tab.cpp:2938 +msgid " Preset" +msgstr " Ajuste inicial" + +#: src/slic3r/GUI/Tab.cpp:1818 src/slic3r/GUI/Tab.cpp:2019 +#: src/slic3r/GUI/Tab.cpp:2988 +msgid " Set " +msgstr "Ajuste" + +#: src/slic3r/GUI/Tab.cpp:2936 +msgid " the selected preset?" +msgstr " el ajuste inicial seleccionado?" #: src/slic3r/GUI/MainFrame.cpp:727 msgid " was successfully sliced." msgstr " fue laminado con éxito." +#: src/slic3r/GUI/PresetHints.cpp:222 +msgid " with a volumetric rate " +msgstr " con una tasa volumétrica" + #: src/libslic3r/PrintConfig.cpp:179 src/libslic3r/PrintConfig.cpp:745 #: src/libslic3r/PrintConfig.cpp:1154 src/libslic3r/PrintConfig.cpp:1217 #: src/libslic3r/PrintConfig.cpp:1462 src/libslic3r/PrintConfig.cpp:2260 @@ -31,7 +174,7 @@ msgid "%" msgstr "%" #: src/libslic3r/GCode/PreviewData.cpp:504 -#, possible-c-format +#, c-format msgid "%.2f - %.2f mm" msgstr "%.2f - %.2f mm" @@ -44,99 +187,112 @@ msgstr "%1% - Copiar" msgid "%1% Preset" msgstr "%1% Preset" -#: src/slic3r/GUI/Plater.cpp:3831 -msgid "%1% printer was active at the time the target Undo / Redo snapshot was taken. Switching to %1% printer requires reloading of %1% presets." -msgstr "La impresora %1% esta activa mientras la captura del objetivo de Deshacer / Rehacer fue tomada. Cambiar a la impresora %1% requiere recargar los preajustes %1%." - -#: src/libslic3r/Print.cpp:1282 -msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm" -msgstr "%1%=%2% mm es demasiado bajo para ser impreso a una altura de capa de %3% mm" +#: src/slic3r/GUI/PresetHints.cpp:226 +#, c-format +msgid "%3.2f mm³/s" +msgstr "%3.2f mm³/seg" #: src/slic3r/GUI/PresetHints.cpp:228 -#, possible-c-format +#, c-format msgid "%3.2f mm³/s at filament speed %3.2f mm/s." msgstr "%3.2f mm³/s a una velocidad de filamento de %3.2f mm/s." #: src/slic3r/GUI/Plater.cpp:974 -#, possible-c-format +#, c-format msgid "%d (%d shells)" msgstr "%d (%d pieles)" #: src/slic3r/GUI/Plater.cpp:982 -#, possible-c-format +#, c-format msgid "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards edges" msgstr "%d facetas problemáticas, %d aristas corregidas, %d facetas eliminadas, %d facetas añadidas, %d facetas invertidas, %d aristas del revés" #: src/slic3r/GUI/PresetHints.cpp:268 -#, possible-c-format +#, c-format msgid "%d lines: %.2f mm" msgstr "%d líneas: %.2f mm" +#: src/slic3r/GUI/PresetHints.cpp:271 +#, c-format +msgid "%d lines: %.2lf mm" +msgstr "%d líneas: %.2lf mm" + #: src/slic3r/GUI/MainFrame.cpp:894 -#, possible-c-format +#, c-format msgid "%d presets successfully imported." msgstr "%d ajustes iniciales importados con éxito." +#: src/slic3r/GUI/MainFrame.cpp:553 +#, c-format +msgid "%s &Manual" +msgstr "%s &Manual" + #: src/slic3r/GUI/MainFrame.cpp:550 -#, possible-c-format +#, c-format msgid "%s &Website" msgstr "%s &Sitio Web" #: src/slic3r/GUI/UpdateDialogs.cpp:113 -#, possible-c-format +#, c-format msgid "%s configuration is incompatible" msgstr "%s la configuración es incompatible" #: src/slic3r/GUI/Field.cpp:136 -#, possible-c-format +#, c-format msgid "%s doesn't support percentage" msgstr "%s no permite porcentajes" #: src/slic3r/GUI/MsgDialog.cpp:73 -#, possible-c-format +#, c-format msgid "%s error" msgstr "%s error" #: src/slic3r/GUI/ConfigWizard.cpp:336 -#, possible-c-format +#, c-format msgid "%s Family" msgstr "%s Familia" #: src/slic3r/GUI/MsgDialog.cpp:74 -#, possible-c-format +#, c-format msgid "%s has encountered an error" msgstr "%s ha ocurrido un error" -#: src/slic3r/GUI/GUI_App.cpp:132 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n\nThe application will now terminate." -msgstr "%s ha encontrado un error. Probablemente fue causado por quedarse sin memoria. Si estás seguro de tener suficiente RAM en su sistema, esto también puede ser un error y nos complacería que lo informaras.\n\nLa aplicación se cerrará." - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:155 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it." -msgstr "%s ha encontrado un error. Probablemente fue causado por quedarse sin memoria. Si estás seguro de tener suficiente RAM en su sistema, esto también puede ser un error y nos complacería que lo informaras." - #: src/slic3r/GUI/UpdateDialogs.cpp:112 -#, possible-c-format +#, c-format msgid "%s incompatibility" msgstr "%s incompatibilidad" #: src/slic3r/GUI/UpdateDialogs.cpp:172 -#, possible-c-format -msgid "%s now uses an updated configuration structure.\n\nSo called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\nAn inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n\nPlease proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." -msgstr "Ahora %s usa una estructura actualizada para la configuración. \n\nSe han introducido los llamados 'Ajustes del sistema' , que tienen valores por defecto para varias impresoras. Estos ajustes del sistema no pueden modificarse, por el contrario, los usuarios pueden crear nuevos ajustes que se basan en alguno de ellos.\nUn ajuste nuevo puede heredar un valor de un ajuste existente o bien tener un nuevo valor personalizado.\n\nPor favof, continúa con el %s que sigue para establecer los nuevos ajustes y seleccionar si quieres que estos se actualicen automáticamente." +#, c-format +msgid "" +"%s now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"Ahora %s usa una estructura actualizada para la configuración. \n" +"\n" +"Se han introducido los llamados 'Ajustes del sistema' , que tienen valores por defecto para varias impresoras. Estos ajustes del sistema no pueden modificarse, por el contrario, los usuarios pueden crear nuevos ajustes que se basan en alguno de ellos.\n" +"Un ajuste nuevo puede heredar un valor de un ajuste existente o bien tener un nuevo valor personalizado.\n" +"\n" +"Por favof, continúa con el %s que sigue para establecer los nuevos ajustes y seleccionar si quieres que estos se actualicen automáticamente." #: src/slic3r/GUI/GUI_App.cpp:681 -#, possible-c-format +#, c-format msgid "%s View Mode" msgstr "%s Tipo de vista" #: src/slic3r/GUI/MainFrame.cpp:563 -#, possible-c-format +#, c-format msgid "&About %s" msgstr "&Acerca de %s" +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "&About Slic3r" +msgstr "&Acerca de Slic3r" + #: src/slic3r/GUI/GUI_App.cpp:769 msgid "&Configuration" msgstr "&Configuración" @@ -161,6 +317,14 @@ msgstr "&Editar" msgid "&Export" msgstr "&Exportar" +#: lib/Slic3r/GUI/MainFrame.pm:227 +msgid "&Export Config Bundle…" +msgstr "&Exportar Conjunto de Ajustes…" + +#: lib/Slic3r/GUI/MainFrame.pm:221 +msgid "&Export Config…\tCtrl+E" +msgstr "&Exportar Ajuste…\tCtrl+E" + #: src/slic3r/GUI/MainFrame.cpp:480 src/slic3r/GUI/MainFrame.cpp:604 msgid "&Filament Settings Tab" msgstr "Pestaña de &Ajustes de filamento" @@ -181,14 +345,22 @@ msgstr "&Ayuda" msgid "&Import" msgstr "&Importar" -#: src/slic3r/GUI/MainFrame.cpp:376 -msgid "&New Project" -msgstr "&Nuevo proyecto" +#: lib/Slic3r/GUI/MainFrame.pm:224 +msgid "&Load Config Bundle…" +msgstr "&Cargar Conjunto de Ajustes…" + +#: lib/Slic3r/GUI/MainFrame.pm:218 +msgid "&Load Config…\tCtrl+L" +msgstr "&Cargar configuración…\tCtrl+L" #: src/slic3r/GUI/ConfigWizard.cpp:1093 msgid "&Next >" msgstr "&Siguiente >" +#: lib/Slic3r/GUI/MainFrame.pm:376 +msgid "&Object" +msgstr "&Objeto" + #: src/slic3r/GUI/MainFrame.cpp:339 msgid "&Open Project" msgstr "&Abrir proyecto" @@ -197,6 +369,10 @@ msgstr "&Abrir proyecto" msgid "&Paste" msgstr "&Pegar" +#: lib/Slic3r/GUI/MainFrame.pm:375 +msgid "&Plater" +msgstr "&Base" + #: src/slic3r/GUI/MainFrame.cpp:471 msgid "&Plater Tab" msgstr "Pestaña &Base de impresión" @@ -209,14 +385,14 @@ msgstr "&Preferencias" msgid "&Quit" msgstr "&Salir" -#: src/slic3r/GUI/MainFrame.cpp:561 -msgid "&Redo" -msgstr "&Rehacer" - #: src/slic3r/GUI/MainFrame.cpp:406 msgid "&Repair STL file" msgstr "&Reparar archivo STL" +#: lib/Slic3r/GUI/MainFrame.pm:244 +msgid "&Repeat Last Quick Slice\tCtrl+Shift+U" +msgstr "&Repetir último laminado\tCtrl+Shift+U" + #: src/slic3r/GUI/MainFrame.cpp:341 msgid "&Save Project" msgstr "&Guardar proyecto" @@ -225,10 +401,6 @@ msgstr "&Guardar proyecto" msgid "&Select all" msgstr "&Seleccionar todo" -#: src/slic3r/GUI/MainFrame.cpp:558 -msgid "&Undo" -msgstr "&Deshacer" - #: src/slic3r/GUI/MainFrame.cpp:577 msgid "&View" msgstr "&Ver" @@ -237,6 +409,14 @@ msgstr "&Ver" msgid "&Window" msgstr "&Ventana" +#: lib/Slic3r/GUI/MainFrame.pm:255 +msgid "(&Re)Slice Now\tCtrl+S" +msgstr "(&Re)Laminar Ahora\tCtrl+S" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:89 +msgid "(default)" +msgstr "(por defecto)" + #: src/libslic3r/PrintConfig.cpp:1376 msgid "(minimum)" msgstr "(mínimo)" @@ -245,14 +425,18 @@ msgstr "(mínimo)" msgid "(Re)slice" msgstr "(Re)laminar" -#: src/slic3r/GUI/MainFrame.cpp:455 -msgid "(Re)Slice No&w" -msgstr "(Re)Laminar Aho&ra" +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "(Re)Slice &Now" +msgstr "(Re)Laminar &Ahora" #: src/slic3r/GUI/MainFrame.cpp:641 msgid ") not found." msgstr ") no encontrado." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid ". Discard changes and continue anyway?" +msgstr ". ¿Descartar los cambios y continuar de todos modos?" + #: src/libslic3r/PrintConfig.cpp:1857 msgid "0 (soluble)" msgstr "0 (soluble)" @@ -261,10 +445,22 @@ msgstr "0 (soluble)" msgid "0.2 (detachable)" msgstr "0.2 (despegable)" +#: lib/Slic3r/GUI/Plater/3DPreview.pm:69 +msgid "1 Layer" +msgstr "1 Capa" + +#: lib/Slic3r/GUI/Plater.pm:206 +msgid "2D" +msgstr "2D" + #: src/slic3r/GUI/MainFrame.cpp:487 msgid "3&D" msgstr "3&D" +#: lib/Slic3r/GUI/Plater.pm:164 lib/Slic3r/GUI/Plater.pm:2323 +msgid "3D" +msgstr "3D" + #: src/slic3r/GUI/Plater.cpp:3074 msgid "3D editor view" msgstr "Vista editor 3D" @@ -273,11 +469,27 @@ msgstr "Vista editor 3D" msgid "3D Honeycomb" msgstr "Panal de abeja 3D" +#: src/slic3r/GUI/GUI_App.cpp:741 +msgid "3D-Scene will be cleaned." +msgstr "La escena 3D será limpiada." + +#: lib/Slic3r/GUI/Plater.pm:1756 +msgid "3MF file exported to " +msgstr "Archivo 3MF exportado a " + #: src/slic3r/GUI/Plater.cpp:3590 -#, possible-c-format +#, c-format msgid "3MF file exported to %s" msgstr "Archivo 3MF exportado a %s" +#: lib/Slic3r/GUI/Plater.pm:258 +msgid "45° ccw" +msgstr "45º en sentido anti-horario" + +#: lib/Slic3r/GUI/Plater.pm:259 +msgid "45° cw" +msgstr "45º en sentido horario" + #: src/slic3r/GUI/ConfigWizard.cpp:1092 msgid "< &Back" msgstr "< &Anterior" @@ -302,13 +514,21 @@ msgstr "Una buena aproximación son unos 60 °C para PLA y 110 °C para ABS. De msgid "A toolpath outside the print area was detected" msgstr "Se detectó una trayectoria fuera del área de impresión" +#: src/libslic3r/SLA/SLASupportTree.cpp:2162 +msgid "Abort" +msgstr "Abortar" + #: src/slic3r/GUI/AboutDialog.cpp:35 -#, possible-c-format +#, c-format msgid "About %s" msgstr "Acerca de %s" +#: src/slic3r/GUI/AboutDialog.cpp:35 +msgid "About Slic3r" +msgstr "Acerca de Slic3r" + #: src/libslic3r/GCode/PreviewData.cpp:499 -#, possible-c-format +#, c-format msgid "above %.2f mm" msgstr "sobre %.2f mm" @@ -328,6 +548,10 @@ msgstr "Activar" msgid "Active" msgstr "Activo" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:39 +msgid "Active: " +msgstr "Activo: " + #: src/slic3r/GUI/Preset.cpp:1003 src/slic3r/GUI/Tab.cpp:237 msgid "Add a new printer" msgstr "Añadir una impresora nueva" @@ -344,16 +568,6 @@ msgstr "Añadir una funda (una sola línea de perímetro) alrededor de la base d msgid "Add color change marker for current layer" msgstr "Añadir marcador de cambio de color para la capa actual" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1662 -msgid "Add Generic Subobject" -msgstr "Añadir Subobjeto Genérico" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2584 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2613 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2631 -msgid "Add Height Range" -msgstr "Añadir Rango de Alturas" - #: src/slic3r/GUI/GLCanvas3D.cpp:3463 msgid "Add instance" msgstr "Añadir instancia" @@ -362,13 +576,9 @@ msgstr "Añadir instancia" msgid "Add Instance of the selected object" msgstr "Añadir instancia del objeto seleccionado" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:162 -msgid "Add layer range" -msgstr "Añadir rango de capas" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1950 -msgid "Add Layers" -msgstr "Añadir Capas" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Add Instance to selected object " +msgstr "Añadir instancia al objeto seleccionado" #: src/slic3r/GUI/GUI_ObjectList.cpp:1067 msgid "Add modifier" @@ -379,10 +589,6 @@ msgstr "Añadir modificador" msgid "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps adding perimeters, until more than 70% of the loop immediately above is supported." msgstr "Añadir más perímetros cuando se necesiten para evitar huecos en las paredes inclinadas. Slic3r sigue añadiendo perímetros hasta que más del 70% del perímetro superior sea soportado." -#: src/slic3r/GUI/Plater.cpp:3516 -msgid "Add one more instance of the selected object" -msgstr "Añadir una instancia más del objeto seleccionado" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1066 #: src/slic3r/GUI/GUI_ObjectList.cpp:1082 msgid "Add part" @@ -400,30 +606,6 @@ msgstr "Añadir punto a selección" msgid "Add settings" msgstr "Añadir ajustes" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1252 -msgid "Add Settings Bundle for Height range" -msgstr "Añadir Conjunto de Ajustes para Rango de Alturas" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1191 -msgid "Add Settings Bundle for Object" -msgstr "Añadir Conjunto de Ajustes para Objeto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1190 -msgid "Add Settings Bundle for Sub-object" -msgstr "Añadir Conjunto de Ajustes para Sub-objeto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1126 -msgid "Add Settings for Layers" -msgstr "Añadir Ajustes para Capas" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1128 -msgid "Add Settings for Object" -msgstr "Agregar Ajustes para Objeto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1127 -msgid "Add Settings for Sub-object" -msgstr "Agregar Ajustes para Sub-objeto" - #: src/libslic3r/PrintConfig.cpp:382 msgid "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)." msgstr "Añade un relleno completo cerca de las superficies inclinadas para garantizar el ancho vertical solicitado(capas sólidas arriba+abajo)." @@ -438,18 +620,10 @@ msgstr "Añadir bloqueo soportes" msgid "Add support enforcer" msgstr "Añadir refuerzo soportes" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:531 -msgid "Add support point" -msgstr "Añadir punto de soporte" - #: src/slic3r/GUI/GLCanvas3D.cpp:3392 msgid "Add..." msgstr "Añadir..." -#: src/slic3r/GUI/wxExtensions.cpp:2571 -msgid "Add/Del color change" -msgstr "Añadir/Eliminar cambio de color" - #: src/slic3r/GUI/Tab.cpp:920 msgid "Additional information:" msgstr "Información adicional:" @@ -466,6 +640,10 @@ msgstr "Además se realizará una instantánea de toda la configuración antes d msgid "Address" msgstr "Dirección" +#: lib/Slic3r/GUI/Plater.pm:250 lib/Slic3r/GUI/Plater.pm:268 +msgid "Add…" +msgstr "Añadir…" + #: src/slic3r/GUI/GUI_App.cpp:675 src/slic3r/GUI/GUI_ObjectList.cpp:76 #: src/slic3r/GUI/GUI_ObjectList.cpp:517 src/slic3r/GUI/Tab.cpp:1026 #: src/slic3r/GUI/Tab.cpp:1041 src/slic3r/GUI/Tab.cpp:1139 @@ -481,6 +659,10 @@ msgstr "Avanzado" msgid "Advanced View Mode" msgstr "Modo vista avanzada" +#: xs/src/slic3r/GUI/FirmwareDialog.cpp:400 +msgid "Advanced: avrdude output log" +msgstr "Avanzado: salida del log avrdude" + #: src/slic3r/GUI/FirmwareDialog.cpp:803 msgid "Advanced: Output log" msgstr "Avanzado: Registro de salida" @@ -509,6 +691,10 @@ msgstr "Alineado" msgid "All" msgstr "Todo" +#: src/libslic3r/Print.cpp:1195 +msgid "All extruders must have the same diameter for single extruder multimaterial printer." +msgstr "Todos los extrusores deben tener el mismo diámetro para una impresora multimaterial de extrusor simple." + #: src/libslic3r/Print.cpp:1135 msgid "All objects are outside of the print volume." msgstr "Todos los objetos están fuera del volumen de impresión." @@ -529,26 +715,49 @@ msgstr "asignación fallida" msgid "Along X axis" msgstr "A lo largo del eje X" +#: lib/Slic3r/GUI/Plater.pm:2251 lib/Slic3r/GUI/Plater.pm:2267 +#: lib/Slic3r/GUI/Plater.pm:2283 +msgid "Along X axis…" +msgstr "A lo largo del eje X…" + #: src/slic3r/GUI/Plater.cpp:2941 msgid "Along Y axis" msgstr "A lo largo del eje Y" +#: lib/Slic3r/GUI/Plater.pm:2254 lib/Slic3r/GUI/Plater.pm:2270 +#: lib/Slic3r/GUI/Plater.pm:2286 +msgid "Along Y axis…" +msgstr "A lo largo del eje Y…" + #: src/slic3r/GUI/Plater.cpp:2943 msgid "Along Z axis" msgstr "A lo largo del eje Z" +#: lib/Slic3r/GUI/Plater.pm:2257 lib/Slic3r/GUI/Plater.pm:2273 +#: lib/Slic3r/GUI/Plater.pm:2289 +msgid "Along Z axis…" +msgstr "A lo largo del eje Z…" + #: src/slic3r/GUI/ConfigWizard.cpp:122 msgid "Alternate nozzles:" msgstr "Alternar nozzles:" +#: lib/Slic3r/GUI/Plater.pm:1740 +msgid "AMF file exported to " +msgstr "Archivo AMF exportado a " + #: src/slic3r/GUI/Plater.cpp:3561 -#, possible-c-format +#, c-format msgid "AMF file exported to %s" msgstr "Archivo AMF exportado a %s" #: src/slic3r/GUI/GLCanvas3D.cpp:725 -msgid "An object outside the print area was detected\nResolve the current problem to continue slicing" -msgstr "Se ha detectado una pieza fuera del área de impresión\nSoluciona el problema actual para continuar el laminado" +msgid "" +"An object outside the print area was detected\n" +"Resolve the current problem to continue slicing" +msgstr "" +"Se ha detectado una pieza fuera del área de impresión\n" +"Soluciona le problema actual para continuar el rebanado" #: src/slic3r/GUI/GLCanvas3D.cpp:720 msgid "An object outside the print area was detected" @@ -562,10 +771,18 @@ msgstr "y tiene los siguientes cambios sin guardar:" msgid "Another export job is currently running." msgstr "Otro trabajo de exportación está aún en marcha." +#: src/slic3r/GUI/Tab.cpp:915 +msgid "Any modifications should be saved as a new preset inherited from this one. " +msgstr "Cualquier modificación se almacenará como un nuevo ajuste basado en este. " + #: src/slic3r/GUI/Tab.cpp:926 msgid "Any modifications should be saved as a new preset inherited from this one." msgstr "Cualquier modificación debe guardarse como un nuevo preset heredado de este." +#: xs/src/libslic3r/PrintConfig.cpp:1109 +msgid "API Key" +msgstr "Clave API" + #: src/libslic3r/PrintConfig.cpp:88 msgid "API Key / Password" msgstr "Clave API / Contraseña" @@ -574,6 +791,14 @@ msgstr "Clave API / Contraseña" msgid "Application preferences" msgstr "Preferencias de la aplicación" +#: xs/src/slic3r/GUI/GUI.cpp:406 +msgid "Application will be restarted" +msgstr "El programa se reiniciará" + +#: src/slic3r/GUI/GUI_App.cpp:740 +msgid "Application will be restarted after language change." +msgstr "La aplicación se reiniciará después del cambio de idioma." + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:864 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Apply changes" @@ -591,31 +816,43 @@ msgstr "Acordes de Arquímedes" msgid "archive is too large" msgstr "el archivo es demasiado grande" +#: src/slic3r/GUI/Tab.cpp:2936 +msgid "Are you sure you want to " +msgstr "¿Está seguro que quiere " + #. TRN remove/delete #: src/slic3r/GUI/Tab.cpp:2955 msgid "Are you sure you want to %1% the selected preset?" msgstr "¿Estás seguro de que deseas %1% el preset seleccionado?" #: src/slic3r/GUI/FirmwareDialog.cpp:862 -msgid "Are you sure you want to cancel firmware flashing?\nThis could leave your printer in an unusable state!" -msgstr "¿Estas seguro de cancelar el flaseo del firmware?\n¡Esto podría dejar tu impresora en un estado inusable!" +msgid "" +"Are you sure you want to cancel firmware flashing?\n" +"This could leave your printer in an unusable state!" +msgstr "" +"¿Estas seguro de cancelar el flaseo del firmware?\n" +"¡Esto podría dejar tu impresora en un estado inusable!" #: src/libslic3r/PrintConfig.cpp:2258 msgid "Area fill" msgstr "Área de relleno" -#: src/slic3r/GUI/Plater.cpp:609 -msgid "Around object" -msgstr "Alrededor de objeto" +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Around X axis…" +msgstr "Alrededor del eje X…" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Around Y axis…" +msgstr "Alrededor del eje Y…" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Around Z axis…" +msgstr "Alrededor del eje Z…" #: src/slic3r/GUI/KBShortcutsDialog.cpp:135 msgid "Arrange" msgstr "Organiza" -#: src/slic3r/GUI/GLCanvas3D.cpp:3486 -msgid "Arrange selection" -msgstr "Ordenar selección" - #: src/libslic3r/PrintConfig.cpp:3054 msgid "Arrange the supplied models in a plate and merge them in a single model in order to perform actions once." msgstr "Organizar los modelos suministrados en una base y combínarlos en un solo modelo para realizar acciones una vez." @@ -624,14 +861,18 @@ msgstr "Organizar los modelos suministrados en una base y combínarlos en un sol msgid "Arranging" msgstr "Organizando" -#: src/slic3r/GUI/Plater.cpp:2718 -msgid "Arranging canceled." -msgstr "Ordenamiento cancelado." +#: src/slic3r/GUI/Plater.cpp:2103 +msgid "Arranging canceled" +msgstr "Organización cancelada" #: src/slic3r/GUI/Plater.cpp:2144 msgid "Arranging done." msgstr "Organización terminada." +#: src/slic3r/GUI/GUI_App.cpp:514 +msgid "Array of language names and identifiers should have the same size." +msgstr "La lista de nombres de idioma e identificadores debería tener el mismo tamaño." + #: src/slic3r/GUI/KBShortcutsDialog.cpp:172 #: src/slic3r/GUI/KBShortcutsDialog.cpp:183 msgid "Arrow Down" @@ -650,9 +891,9 @@ msgstr "Flecha hacia derecha" msgid "Arrow Up" msgstr "Flecha hacia arriba" -#: src/slic3r/GUI/GUI_App.cpp:303 -msgid "As a workaround, you may run PrusaSlicer with a software rendered 3D graphics by running prusa-slicer.exe with the --sw_renderer parameter." -msgstr "Como solución alternativa, puedes ejecutar PrusaSlicer con un software de gráficos en 3D ejecutando prusaslicer.exe con el parámetro --sw_renderer." +#: xs/src/slic3r/GUI/GUI.cpp:660 +msgid "Attempt to free unreferenced scalar" +msgstr "Intento de liberar un escalar no referenciado" #: src/slic3r/GUI/GUI.cpp:144 src/slic3r/GUI/GUI_App.cpp:743 #: src/slic3r/GUI/Tab.cpp:2798 @@ -672,13 +913,17 @@ msgstr "Piezas auto-centradas" msgid "Auto-generate points" msgstr "Auto-generar puntos" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:669 +msgid "Auto-generate points [A]" +msgstr "Generación automática de puntos [A]" + #: src/slic3r/GUI/Plater.cpp:979 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors)" msgstr "Reparados automáticamente (%d errores)" #: src/slic3r/GUI/GUI_ObjectList.cpp:230 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors):\n" msgstr "Reparado automáticamente (%d errores):\n" @@ -686,13 +931,15 @@ msgstr "Reparado automáticamente (%d errores):\n" msgid "Autodetected" msgstr "Detectado automáticamente" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1338 -msgid "Autogenerate support points" -msgstr "Genera los puntos de apoyo automáticamente" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1166 -msgid "Autogeneration will erase all manually edited points.\n\nAre you sure you want to do it?\n" -msgstr "La autogeneración borrará todos los puntos editados manualmente. \n\n¿Estás seguro de que deseas hacerlo?\n" +msgid "" +"Autogeneration will erase all manually edited points.\n" +"\n" +"Are you sure you want to do it?\n" +msgstr "" +"La autogeneración borrará todos los puntos editados manualmente. \n" +"\n" +"¿Estás seguro de que deseas hacerlo?\n" #: src/slic3r/GUI/Tab.cpp:3421 msgid "Automatic generation" @@ -719,12 +966,28 @@ msgid "BACK ARROW" msgstr "FLECHA HACIA ATRÁS" #: src/slic3r/GUI/Tab.cpp:3113 -msgid "BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick to reset all settings for the current option group to the last saved preset." -msgstr "El símbolo de FLECHA ATRÁS indica que los ajustes cambiaron y que no son iguales a los que se guardaron para el grupo de opciones actual.\nHaz clic para devolver esos valores a los últimos guardados." +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" +"Click to reset all settings for the current option group to the last saved preset." +msgstr "" +"El símbolo de FLECHA ATRÁS indica que los ajustes cambiaron y que no son iguales a los que se guardaron para el grupo de opciones actual.\n" +"Haz clic para devolver esos valores a los últimos guardados." #: src/slic3r/GUI/Tab.cpp:3127 -msgid "BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\nClick to reset current value to the last saved preset." -msgstr "La FLECHA ATRÁS indica que el valor ha cambiado y ya no es el mismo que el guardado la última vez.\nHaz clic para restaurar el valor al último ajuste guardado." +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 "" +"La FLECHA ATRÁS indica que el valor ha cambiado y ya no es el mismo que el guardado la última vez.\n" +"Haz clic para restaurar el valor al último ajuste guardado." + +#: src/slic3r/GUI/Tab.cpp:3077 +msgid "" +"BACK ARROW;indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "" +"FLECHA ATRÁS;indica si los ajustes cambiaron y ya no son iguales a los ajustes guardados la última vez para el grupo de opciones actual. \n" +"Haz click en la FLECHA ATRÁS para devolver los valores del grupo de opciones actual a los valores guardados la última vez." #: src/slic3r/GUI/Preferences.cpp:52 msgid "Background processing" @@ -734,22 +997,10 @@ msgstr "Procesamiento en segundo plano" msgid "backwards edges" msgstr "bordes hacia atrás" -#: src/slic3r/GUI/MainFrame.cpp:152 -msgid "based on Slic3r" -msgstr "basado en Slic3r" - #: src/slic3r/GUI/Tab.cpp:1484 msgid "Bed" msgstr "Base" -#: src/libslic3r/PrintConfig.cpp:61 -msgid "Bed custom model" -msgstr "Modelo de base personalizado" - -#: src/libslic3r/PrintConfig.cpp:56 -msgid "Bed custom texture" -msgstr "Textura personalizada de la base" - #: src/slic3r/GUI/BedShapeDialog.hpp:45 src/slic3r/GUI/ConfigWizard.cpp:524 msgid "Bed Shape" msgstr "Forma de la base de impresión" @@ -782,10 +1033,6 @@ msgstr "Código G para antes del cambio de capa" msgid "Before roll back" msgstr "Antes de volver atrás" -#: src/slic3r/GUI/Plater.cpp:608 -msgid "Below object" -msgstr "Por debajo del objeto" - #: src/libslic3r/PrintConfig.cpp:1508 msgid "Below Z" msgstr "Por debajo de Z" @@ -877,6 +1124,10 @@ msgstr "Descripción de los botones y de los colores del texto" msgid "by the print profile maximum" msgstr "por el máximo perfil de impresión" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 +msgid "Camera view " +msgstr "Vista de cámara" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:123 msgid "Camera view" msgstr "Vista de cámara" @@ -923,6 +1174,10 @@ msgstr "Capacidades" msgid "Capture a configuration snapshot" msgstr "Captura una instantánea de configuración" +#: src/libslic3r/SLA/SLASupportTree.cpp:2159 +msgid "Cascading pillars" +msgstr "Pilares en cascada" + #: src/libslic3r/PrintConfig.cpp:3035 msgid "Center" msgstr "Centro" @@ -939,39 +1194,22 @@ msgstr "Archivos de certificados (*.crt, *.pem)|*.crt;*.pem|Todos|*.*" msgid "Change Application &Language" msgstr "Cambiar &Idioma de la aplicación" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Change camera type (perspective, orthographic)" -msgstr "Cambiar tipo de cámara (perspectiva, ortográfica)" +#: xs/src/slic3r/GUI/GUI.cpp:354 +msgid "Change Application Language" +msgstr "Cambiar el Idioma de la Aplicación" #: src/slic3r/GUI/GUI_ObjectList.cpp:1226 msgid "Change extruder" msgstr "Cambiar extrusor" -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:144 -#, possible-c-format -msgid "Change Option %s" -msgstr "Cambiar opción %s" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3134 -msgid "Change Part Type" -msgstr "Cambiar Tipo de Pieza" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:925 -msgid "Change point head diameter" -msgstr "Cambiar diámetro de la cabeza de punta" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Change the number of instances of the selected object" -msgstr "Cambiar número de instancias al objeto seleccionado" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Change the number of copies of the selected object" +msgstr "Cambiar el número de copias del objeto seleccionado" #: src/slic3r/GUI/GUI_ObjectList.cpp:1185 msgid "Change type" msgstr "Cambiar tipo" -#: src/slic3r/GUI/UpdateDialogs.cpp:56 -msgid "Changelog && Download" -msgstr "Registro de cambios && Descargar" - #: src/slic3r/GUI/GUI_App.cpp:378 msgid "Changing of an application language" msgstr "Cambio de idioma de una aplicación" @@ -980,21 +1218,17 @@ msgstr "Cambio de idioma de una aplicación" msgid "Check for application updates" msgstr "Comprueba si hay actualizaciones de la aplicación" -#: src/slic3r/GUI/BedShapeDialog.cpp:509 -msgid "Choose a file to import bed texture from (PNG/SVG):" -msgstr "Escoge un archivo para importar la textura de la base de impresión (PNG/SVG):" +#: src/slic3r/GUI/BedShapeDialog.cpp:316 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Escoja un archivo para importar la forma de la base de impresión (STL/OBJ/AMF/3MF/PRUSA):" #: src/slic3r/GUI/MainFrame.cpp:621 msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" msgstr "Elija un archivo para laminar (STL / OBJ / AMF / 3MF / PRUSA):" -#: src/slic3r/GUI/BedShapeDialog.cpp:532 -msgid "Choose an STL file to import bed model from:" -msgstr "Escoge un archivo STL para importar el modelo de la base de impresión:" - -#: src/slic3r/GUI/BedShapeDialog.cpp:464 -msgid "Choose an STL file to import bed shape from:" -msgstr "Escoge un archivo STL para importar la forma de la base:" +#: src/slic3r/GUI/GUI_App.cpp:489 +msgid "Choose one file (3MF):" +msgstr "Selecciona un archivo (3MF):" #: src/slic3r/GUI/GUI_App.cpp:510 msgid "Choose one file (3MF/AMF):" @@ -1012,17 +1246,9 @@ msgstr "Selecciona el tipo de firmware que usa tu impresora." msgid "Circular" msgstr "Circular" -#: src/slic3r/GUI/GLCanvas3D.cpp:3701 src/slic3r/GUI/GLCanvas3D.cpp:3734 -msgid "Click right mouse button to open History" -msgstr "Click con botón derecho para abrir Historial" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:383 -msgid "Click the icon to change the object printable property" -msgstr "Click en el icono para cambiar las propiedades del objeto imprimible" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:377 -msgid "Click the icon to change the object settings" -msgstr "Click en el icono para cambiar los ajustes del objeto" +#: src/libslic3r/SLA/SLASupportTree.cpp:2156 +msgid "Classification" +msgstr "Clasificación" #: src/slic3r/GUI/Plater.cpp:292 msgid "Click to edit preset" @@ -1036,6 +1262,10 @@ msgstr "Enlazaar objetos de varias partes" msgid "Clipping of view" msgstr "Recorte de la vista" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:926 +msgid "Clipping of view:" +msgstr "Recorte de la vista:" + #: src/slic3r/GUI/FirmwareDialog.cpp:814 #: src/slic3r/GUI/PrintHostDialogs.cpp:160 msgid "Close" @@ -1062,10 +1292,6 @@ msgstr "Combinar el relleno cada" msgid "Combine infill every n layers" msgstr "Combinar el relleno cada n capas" -#: src/slic3r/GUI/UpdateDialogs.cpp:116 -msgid "Comment:" -msgstr "Comentario:" - #: src/slic3r/GUI/Tab.cpp:56 src/libslic3r/PrintConfig.cpp:244 msgid "Compatible print profiles" msgstr "Perfiles de impresión compatibles" @@ -1158,6 +1384,10 @@ msgstr "La conexión con la impresora funciona correctamente." msgid "Connection to Prusa SL1 works correctly." msgstr "La conexión con la Prusa SL1 funciona correctamente." +#: src/slic3r/Utils/OctoPrint.cpp:195 +msgid "Connection to Prusa SLA works correctly." +msgstr "La conexión con la Prusa SLA funciona correctamente." + #: src/libslic3r/PrintConfig.cpp:1823 msgid "Contact Z distance" msgstr "Distancia Z de contacto" @@ -1166,6 +1396,14 @@ msgstr "Distancia Z de contacto" msgid "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and numerous others." msgstr "Contribuciones de Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik y muchos otros." +#: lib/Slic3r/GUI/MainFrame.pm:137 +msgid "Controller" +msgstr "Controlador" + +#: src/libslic3r/PrintConfig.cpp:2408 +msgid "Controls the bridge type between two neigboring 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 "Controla el tipo de puente entre dos pilares adyacentes. Puede ser zig-zag, cruzado(doble zig-zag) o dinámico que cambiará automáticamente entre los dos primeros dependiendo de la distancia de los dos pilares." + #: src/libslic3r/PrintConfig.cpp:2433 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 "Controla el tipo de puente entre dos pilares adyacentes. Puede ser zig-zag, cruzado(doble zig-zag) o dinámico que cambiará automáticamente entre los dos primeros dependiendo de la distancia de los dos pilares." @@ -1174,10 +1412,18 @@ msgstr "Controla el tipo de puente entre dos pilares adyacentes. Puede ser zig-z msgid "Cooling" msgstr "Enfriamiento" +#: src/libslic3r/PrintConfig.cpp:628 +msgid "Cooling moves are gradually accelerating beginning at this speed. " +msgstr "Los movimientos de enfriamiento se están acelerando gradualmente comenzando a esta velocidad. " + #: src/libslic3r/PrintConfig.cpp:629 msgid "Cooling moves are gradually accelerating beginning at this speed." msgstr "Los movimientos de enfriamiento se están acelerando gradualmente comenzando a esta velocidad." +#: src/libslic3r/PrintConfig.cpp:647 +msgid "Cooling moves are gradually accelerating towards this speed. " +msgstr "Los movimientos de enfriamiento se están acelerando gradualmente hacia esta velocidad." + #: src/libslic3r/PrintConfig.cpp:648 msgid "Cooling moves are gradually accelerating towards this speed." msgstr "Los movimientos de enfriamiento se están acelerando gradualmente hacia esta velocidad." @@ -1194,6 +1440,10 @@ msgstr "Longitud del tubo de enfriamiento" msgid "Cooling tube position" msgstr "Posición del tubo de refrigeración" +#: lib/Slic3r/GUI/Plater.pm:304 lib/Slic3r/GUI/Plater.pm:992 +msgid "Copies" +msgstr "Copias" + #: src/slic3r/GUI/Tab.cpp:2878 msgid "Copy" msgstr "Copiar" @@ -1206,19 +1456,11 @@ msgstr "Copiar selección al portapapeles" msgid "Copy to clipboard" msgstr "Copiar al portapapeles" -#: src/slic3r/GUI/SysInfoDialog.cpp:120 -msgid "Copy to Clipboard" -msgstr "Copiar al portapapeles" - #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:84 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:400 msgid "Copying of the temporary G-code to the output G-code failed" msgstr "Error al copiar el código G temporal al código G de salida" -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:92 -msgid "Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?" -msgstr "La copia del código G tempolar al código G de salida falló. ¿Tal vez la tarjeta SD tiene la escritura bloqueada?" - #: src/slic3r/GUI/AboutDialog.cpp:92 msgid "Copyright" msgstr "Copyright" @@ -1266,16 +1508,12 @@ msgstr "Cubrir la capa de contacto superior de los soportes con bucles. Desactiv #: src/libslic3r/PrintConfig.cpp:73 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 "Las ranuras de menos de dos veces el radio de cierre de huecos se rellenan durante el laminado de la malla triangular. La operación de cierre de huecos puede reducir la resolución de la impresión, por lo tanto es aconsejable mantener ese valor razonablemente bajo." +msgstr "Las ranuras de menos de dos veces el radio de cierre de huecos se rellenan durante el rebanado de la malla triangular. La operación de cierre de huecos puede reducir la resolución de la impresión, por lo tanto es aconsejable mantener ese valor razonablemente bajo." #: src/libslic3r/Zipper.cpp:61 msgid "CRC-32 check failed" msgstr "Comprobación con CRC-32 fallida" -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "Create pad around object and ignore the support elevation" -msgstr "Crear pad alrededor del objeto e ignorar la elevación del soporte" - #: src/libslic3r/PrintConfig.cpp:2460 msgid "Critical angle" msgstr "Ángulo crítico" @@ -1289,18 +1527,18 @@ msgid "Cubic" msgstr "Cúbico" #: src/slic3r/GUI/wxExtensions.cpp:2413 -#, possible-c-format +#, c-format msgid "Current mode is %s" msgstr "El modo actual es %s" -#: src/slic3r/GUI/Tab.cpp:925 -msgid "Current preset is inherited from the default preset." -msgstr "El preajuste fue heredado del preajuste predeterminado." +#: src/slic3r/GUI/Tab.cpp:909 +msgid "Current preset is inherited from " +msgstr "El valor actual se ha heredado de " -#: src/slic3r/GUI/Tab.cpp:928 -#, possible-c-format -msgid "Current preset is inherited from:\n\t%s" -msgstr "El preajuste fue heredado de:\n%s" +#: src/slic3r/GUI/Tab.cpp:920 +#, c-format +msgid "Current preset is inherited from %s" +msgstr "El valor actual se ha heredado de %s" #: src/slic3r/GUI/UpdateDialogs.cpp:45 msgid "Current version:" @@ -1331,26 +1569,35 @@ msgstr "Configuración personalizada de impresora" msgid "Custom profile name:" msgstr "Nombre impresora customizada:" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:254 +msgid "Custom setup" +msgstr "Configuración personalizada" + #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3013 msgid "Cut" msgstr "Cortar" -#: src/slic3r/GUI/Plater.cpp:4193 -msgid "Cut by Plane" -msgstr "Cortar por el Plano" - #: src/libslic3r/PrintConfig.cpp:3014 msgid "Cut model at the given Z." msgstr "Cortar modelo a una Z dada." +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" +msgstr "Cortar objeto:" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +msgid "Cut [C]" +msgstr "Cortar [C]" + +#: lib/Slic3r/GUI/Plater.pm:262 lib/Slic3r/GUI/Plater.pm:278 +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Cut…" +msgstr "Cortar…" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1055 msgid "Cylinder" msgstr "Cilindro" -#: src/slic3r/GUI/MainFrame.cpp:491 -msgid "D&eselect all" -msgstr "D&eseleccionar todo" - #: src/libslic3r/PrintConfig.cpp:3115 msgid "Data directory" msgstr "Directorio de datos" @@ -1359,15 +1606,19 @@ msgstr "Directorio de datos" msgid "decompression failed or archive is corrupted" msgstr "descompresión fallida o archivo está dañado" -#: src/slic3r/GUI/Plater.cpp:4127 -msgid "Decrease Instances" -msgstr "Reducir Instancias" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Decrease copies" +msgstr "Reducir copias" #: src/slic3r/GUI/GUI_App.cpp:594 src/slic3r/GUI/GUI_ObjectList.cpp:1245 #: src/libslic3r/PrintConfig.cpp:299 msgid "Default" msgstr "Por defecto" +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid "Default " +msgstr "Por defecto " + #: xs/src/slic3r/GUI/Field.cpp:98 msgid "default" msgstr "por defecto" @@ -1392,11 +1643,19 @@ msgstr "Perfil de filamento por defecto" msgid "Default filament profile associated with the current printer profile. On selection of the current printer profile, this filament profile will be activated." msgstr "Perfil de filamento por defecto asociado con el perfil de impresora actual. Al seleccionar el perfil de impresora actual se activará este perfil de filamento." +#: src/slic3r/GUI/Tab.cpp:921 +msgid "default preset" +msgstr "ajuste por defecto" + #: src/slic3r/GUI/Tab.cpp:2757 -#, possible-c-format +#, c-format msgid "Default preset (%s)" msgstr "Ajustes por defecto (%s)" +#: xs/src/slic3r/GUI/Tab.cpp:2410 xs/src/slic3r/GUI/Tab.cpp:2496 +msgid "Default presets" +msgstr "Ajustes por defecto" + #: src/libslic3r/GCode/PreviewData.cpp:491 msgid "Default print color" msgstr "Color de impresión predeterminado" @@ -1434,6 +1693,14 @@ msgstr "valor por defecto" msgid "Define a custom printer profile" msgstr "Definir un perfil de impresora personalizado" +#: src/libslic3r/PrintConfig.cpp:2529 +msgid "Defines the cavity depth. Set to zero to disable the cavity." +msgstr "Define la profundidad de la cavidad. Establecer a cero para deshabilitar la cavidad." + +#: src/libslic3r/PrintConfig.cpp:2533 +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 effect inside the cavity, which makes pealing the print off the vat foil difficult." +msgstr "Define la profundidad de la cavidad del pad. Cambiar a cero para deshabilitar la cavidad. Ten cuidado al habilitar esta función, ya que algunas resinas pueden producir un efecto de succión extremo dentro de la cavidad, lo que dificulta retirar la impresión de la lámina de la cuba." + #: src/libslic3r/PrintConfig.cpp:2558 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 effect inside the cavity, which makes peeling the print off the vat foil difficult." msgstr "Define la profundidad de la cavidad del pad. Establecerer a cero para deshabilitar la cavidad. Ten cuidado al habilitar esta función, ya que algunas resinas pueden producir un efecto de succión extremo dentro de la cavidad, lo que dificulta el despegado de la impresión de la lámina de la cuba." @@ -1442,6 +1709,10 @@ msgstr "Define la profundidad de la cavidad del pad. Establecerer a cero para de msgid "degenerate facets" msgstr "facetas degeneradas" +#: src/libslic3r/PrintConfig.cpp:2572 +msgid "degrees" +msgstr "grados" + #: src/libslic3r/PrintConfig.cpp:608 msgid "Delay after unloading" msgstr "Retardo tras la descarga" @@ -1467,59 +1738,14 @@ msgstr "Borrar todo" msgid "Delete all" msgstr "Eliminar todo" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1806 -msgid "Delete All Instances from Object" -msgstr "Eliminar todas las instancias del Objeto" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:187 msgid "Delete color change marker for current layer" msgstr "Eliminar marcador de cambio de color para la capa actual" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1898 -msgid "Delete Height Range" -msgstr "Eliminar Rango de Alturas" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1876 -msgid "Delete Instance" -msgstr "Eliminar Instancia" - -#: src/slic3r/GUI/Plater.cpp:2592 -msgid "Delete Object" -msgstr "Eliminar Objeto" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:100 -#, possible-c-format -msgid "Delete Option %s" -msgstr "Eliminar Opción %s" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:137 msgid "Delete selected" msgstr "Eliminar selección" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -msgid "Delete Selected" -msgstr "Eliminar Selección" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2303 -msgid "Delete Selected Item" -msgstr "Eliminar Objeto Seleccionado" - -#: src/slic3r/GUI/Plater.cpp:4083 -msgid "Delete Selected Objects" -msgstr "Eliminar Objetos Seleccionados" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1782 -msgid "Delete Settings" -msgstr "Eliminar Ajustes" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1857 -msgid "Delete Subobject" -msgstr "Eliminar Subobjeto" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:720 -msgid "Delete support point" -msgstr "Borra punto de apoyo" - #: src/slic3r/GUI/Tab.cpp:131 msgid "Delete this preset" msgstr "Borra este ajuste" @@ -1554,9 +1780,9 @@ msgstr "Velocidad de deretracción" msgid "Deselect by rectangle" msgstr "Deseleccionar mediante rectángulo" -#: src/slic3r/GUI/MainFrame.cpp:492 -msgid "Deselects all objects" -msgstr "Deseleccionar todos los objetos" +#: src/libslic3r/PrintConfig.cpp:1833 +msgid "detachable" +msgstr "desmontable" #: src/libslic3r/PrintConfig.cpp:1304 msgid "Detect bridging perimeters" @@ -1578,6 +1804,22 @@ msgstr "Detectadas piezas desconectadas en el(los) modelo(s) dado(s) y divídido msgid "Detected advanced data" msgstr "Datos avanzados detectados" +#: src/slic3r/GUI/GLCanvas3D.cpp:723 +msgid "" +"Detected object outside print volume\n" +"Resolve a clash to continue slicing/export process correctly" +msgstr "" +"Objeto detectado fuera del volumen de impresión \n" +"Resuelve el conflicto para continuar con el proceso de laminado/exportación correctamente" + +#: src/slic3r/GUI/GLCanvas3D.cpp:719 +msgid "Detected object outside print volume" +msgstr "Detectados objetos fuera del volumen de impresión" + +#: src/slic3r/GUI/GLCanvas3D.cpp:720 +msgid "Detected toolpath outside print volume" +msgstr "Trayectoria detectada fuera del volumen de impresión" + #: src/slic3r/GUI/BedShapeDialog.cpp:88 src/libslic3r/PrintConfig.cpp:677 msgid "Diameter" msgstr "Diámetro" @@ -1602,18 +1844,22 @@ msgstr "Diámetro de la base de impresión. Se supone que el origen (0,0) está msgid "Direction" msgstr "Dirección" +#: xs/src/slic3r/GUI/Preferences.cpp:76 +msgid "Disable communication with the printer over a serial / USB cable. This simplifies the user interface in case the printer is never attached to the computer." +msgstr "Desactive la comunicación con la impresora a través de un puerto serie / USB. Esto simplifica la interfaz de usuario en caso de que la impresora nunca esté conectada a el ordenador." + #: src/libslic3r/PrintConfig.cpp:323 msgid "Disable fan for the first" msgstr "Desactivar ventilador para la primera" +#: xs/src/slic3r/GUI/Preferences.cpp:74 +msgid "Disable USB/serial connection" +msgstr "Deshabilitar la conexión USB / serie" + #: src/libslic3r/PrintConfig.cpp:1280 msgid "Disables retraction when the travel path does not exceed the upper layer's perimeters (and thus any ooze will be probably invisible)." msgstr "Desactiva la retracción cuando la trayectoria de desplazamiento no supera los perímetros de la capa superior (y, por lo tanto, cualquier goteo probablemente será invisible)." -#: src/slic3r/GUI/wxExtensions.cpp:2572 -msgid "Discard all color changes" -msgstr "Descartar los cambios de color" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:869 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1241 msgid "Discard changes" @@ -1635,10 +1881,6 @@ msgstr "Pantalla" msgid "Display height" msgstr "Altura de la pantalla" -#: src/libslic3r/PrintConfig.cpp:2319 -msgid "Display horizontal mirroring" -msgstr "Espejo horizontal de la pantalla" - #: src/libslic3r/PrintConfig.cpp:2227 msgid "Display orientation" msgstr "Orientación de la pantalla" @@ -1647,10 +1889,6 @@ msgstr "Orientación de la pantalla" msgid "Display the Print Host Upload Queue window" msgstr "Mostrar la ventana de la cola de carga del host de impresión" -#: src/libslic3r/PrintConfig.cpp:2326 -msgid "Display vertical mirroring" -msgstr "Espejo vertical de la pantalla" - #: src/libslic3r/PrintConfig.cpp:2202 msgid "Display width" msgstr "Anchura de la pantalla" @@ -1663,10 +1901,6 @@ msgstr "Distancia entre copias" msgid "Distance between skirt and object(s). Set this to zero to attach the skirt to the object(s) and get a brim for better adhesion." msgstr "Distancia entre falda y objeto(s). Ajuste esto a cero para unir la falda a los objetos y obtener un borde para una mejor adhesión." -#: src/libslic3r/PrintConfig.cpp:2752 -msgid "Distance between two connector sticks which connect the object and the generated pad." -msgstr "Distancia entre dos palitos de apoyo entre la pieza y la base generada." - #: src/libslic3r/PrintConfig.cpp:1609 msgid "Distance from object" msgstr "Distancia del objeto" @@ -1675,10 +1909,18 @@ msgstr "Distancia del objeto" msgid "Distance of the 0,0 G-code coordinate from the front left corner of the rectangle." msgstr "Distancia de la coordenada del código G de 0,0 de la esquina frontal izquierda del rectángulo." +#: src/libslic3r/PrintConfig.cpp:284 +msgid "Distance of the center-point of the cooling tube from the extruder tip " +msgstr "Distancia desde el centro del tubo de enfriado a la punta del extrusor " + #: src/libslic3r/PrintConfig.cpp:285 msgid "Distance of the center-point of the cooling tube from the extruder tip." msgstr "Distancia desde el centro del tubo de enfriado a la punta del extrusor." +#: src/libslic3r/PrintConfig.cpp:1313 +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 "Distancia de la punta del extrusor desde la posición donde el filamento es colocado cuando se descarga. Esto debería coincidir con el valor en el firmware de la impresora." + #: src/libslic3r/PrintConfig.cpp:1338 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 "Distancia de la punta del extrusor desde la posición donde el filamento es colocado cuando se descarga. Esto debería coincidir con el valor en el firmware de la impresora." @@ -1695,15 +1937,25 @@ msgstr "No fallar si el archivo suministrado para --load no existe." msgid "Do not rearrange the given models before merging and keep their original XY coordinates." msgstr "No reorganizar los modelos dados antes de fusionar y mantener sus coordenadas XY originales." -#: src/slic3r/GUI/Field.cpp:206 -#, possible-c-format -msgid "Do you mean %s%% instead of %s %s?\nSelect YES if you want to change this value to %s%%, \nor NO if you are sure that %s %s is a correct value." -msgstr "¿Quieres decir %s%% en vez de %s %s?\nEscoge SI si deseas cambiar este valor a %s%%,\no NO si estás seguro que %s %s es el valor correcto." +#: src/slic3r/GUI/Field.cpp:181 +#, c-format +msgid "" +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." +msgstr "" +"¿Quieres decir %d %% en lugar de %d %s?\n" +"Selecciona SÍ si deseas cambiar este valor a %d%%,\n" +"o NO si estás seguro de que %d %s es el valor correcto." #: src/slic3r/GUI/GUI_App.cpp:754 msgid "Do you want to proceed?" msgstr "¿Deseas continuar?" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1022 +msgid "Do you want to save your manually edited support points ?\n" +msgstr "¿Deseas guardar tus puntos de soporte editados manualmente?\n" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1024 msgid "Do you want to save your manually edited support points?" msgstr "¿Deseas guardar tus puntos de soporte editados manualmente?" @@ -1720,6 +1972,10 @@ msgstr "No quiero recibir avisos de nuevas versiones" msgid "Don't support bridges" msgstr "No soportar puentes" +#: src/libslic3r/SLA/SLASupportTree.cpp:2161 +msgid "Done" +msgstr "Terminado" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:20 msgid "Downgrade" msgstr "Volver a una versión anterior" @@ -1730,10 +1986,9 @@ msgstr "Volver a una versión anterior" msgid "Drag" msgstr "Arrastra" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:340 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:355 -msgid "Drop to bed" -msgstr "Colocar en la Cama" +#: lib/Slic3r/GUI/Plater/2D.pm:132 +msgid "Drag your objects here" +msgstr "Arrastre tus objetos aquí" #: src/libslic3r/PrintConfig.cpp:3044 msgid "Duplicate" @@ -1747,33 +2002,17 @@ msgstr "Duplicar por cuadrícula" msgid "Dynamic" msgstr "Dinámico" -#: src/slic3r/GUI/MainFrame.cpp:708 -msgid "E&xport" -msgstr "E&xportar" - #: src/slic3r/GUI/GUI_ObjectList.cpp:238 msgid "edges fixed" msgstr "esquimas reparadas" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2690 -msgid "Edit Height Range" -msgstr "Editar Rango de Alturas" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:373 -msgid "Editing" -msgstr "Edición" - #: src/libslic3r/PrintConfig.cpp:349 msgid "Elephant foot compensation" msgstr "Compensación del pie de elefante" -#: src/libslic3r/SLAPrint.cpp:681 -msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation." -msgstr "La elevación es demasiado baja para el objeto. Utiliza la función \"Pad alrededor del objeto\" para imprimir el objeto sin elevación." - -#: src/libslic3r/SLAPrint.cpp:678 -msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation." -msgstr "Elevación demasiado baja para el objeto. Utiliza la característica \"Pad alrededor del objeto\" para imprimir el objeto sin elevación." +#: src/libslic3r/SLAPrint.cpp:624 +msgid "Elevation is too low for object." +msgstr "La elevación es demasiado baja para el objeto." #: src/libslic3r/PrintConfig.cpp:1044 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. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode." @@ -1792,10 +2031,6 @@ msgstr "Habilitar el enfriamiento automático" msgid "Enable fan if layer print time is below" msgstr "Habilitar ventilador si el tiempo de impresión de la capa está por debajo" -#: src/libslic3r/PrintConfig.cpp:2321 -msgid "Enable horizontal mirroring of output images" -msgstr "Activar espejo horizontal de salida de imágenes" - #: src/libslic3r/PrintConfig.cpp:1781 msgid "Enable support material generation." msgstr "Habilite la generación de material de soporte." @@ -1812,10 +2047,6 @@ msgstr "Habilítelo para obtener un archivo de código G comentado, con cada lí msgid "Enable variable layer height feature" msgstr "Habilitar la función de altura de capa variable" -#: src/libslic3r/PrintConfig.cpp:2328 -msgid "Enable vertical mirroring of output images" -msgstr "Activar espejo vertical de salida de imágenes" - #: src/slic3r/GUI/Tab.cpp:1570 src/slic3r/GUI/Tab.cpp:1955 #: src/libslic3r/PrintConfig.cpp:359 src/libslic3r/PrintConfig.cpp:369 msgid "End G-code" @@ -1854,6 +2085,28 @@ msgstr "Introduce el diámetro de tu filamento." msgid "Enter the diameter of your printer's hot end nozzle." msgstr "Introduce el diámetro de la boquilla del fusor de tu impresora." +#: lib/Slic3r/GUI/Plater.pm:1158 +msgid "Enter the new max size for the selected object:" +msgstr "Ingrese el nuevo tamaño máximo para el objeto seleccionado:" + +#: lib/Slic3r/GUI/Plater.pm:1132 +#, perl-format +msgid "Enter the new size for the selected object (print bed: %smm):" +msgstr "Ingrese el nuevo tamaño para el objeto seleccionado (base de impresión: %s mm):" + +#: lib/Slic3r/GUI/Plater.pm:992 +msgid "Enter the number of copies of the selected object:" +msgstr "Ingrese la cantidad de copias del objeto seleccionado:" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Enter the rotation angle:" +msgstr "Introduce el ángulo de rotación:" + +#: lib/Slic3r/GUI/Plater.pm:1137 lib/Slic3r/GUI/Plater.pm:1163 +#, no-perl-format +msgid "Enter the scale % for the selected object:" +msgstr "Ingrese la escala % para el objeto seleccionado:" + #: src/slic3r/GUI/ConfigWizard.cpp:608 msgid "Enter the temperature needed for extruding your filament." msgstr "Introduce la temperatura necesaria para extruir tu filamento." @@ -1875,17 +2128,25 @@ msgid "Error" msgstr "Error" #: src/slic3r/GUI/FirmwareDialog.cpp:608 -#, possible-c-format +#, c-format msgid "Error accessing port at %s: %s" msgstr "Error al acceder al puerto en %s: %s" +#: lib/Slic3r/GUI/Plater.pm:1760 +msgid "Error exporting 3MF file " +msgstr "Error al exportar el archivo 3MF " + #: src/slic3r/GUI/Plater.cpp:3593 -#, possible-c-format +#, c-format msgid "Error exporting 3MF file %s" msgstr "Error al exportar archivo 3MF %s" +#: lib/Slic3r/GUI/Plater.pm:1744 +msgid "Error exporting AMF file " +msgstr "Error al exportar el archivo AMF " + #: src/slic3r/GUI/Plater.cpp:3564 -#, possible-c-format +#, c-format msgid "Error exporting AMF file %s" msgstr "Error exportando archivo AMF %s" @@ -1897,32 +2158,40 @@ msgstr "Mensaje de Error" msgid "Error uploading to print host:" msgstr "Error al cargar a la impresora:" +#: xs/src/slic3r/Utils/OctoPrint.cpp:98 +msgid "Error while uploading to the OctoPrint server" +msgstr "Error mientras se enviaban datos al servidor de OctoPrint" + #: src/libslic3r/Zipper.cpp:105 msgid "Error with zip archive" msgstr "Error con el archivo ZIP" +#: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1431 +msgid "Error! " +msgstr "¡Error! " + #: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1443 msgid "Error!" msgstr "¡Error!" -#: src/slic3r/GUI/BedShapeDialog.cpp:482 -msgid "Error! Invalid model" -msgstr "Error! Modelo inválido" - #: src/slic3r/GUI/FirmwareDialog.cpp:610 -#, possible-c-format +#, c-format msgid "Error: %s" msgstr "Error: %s" -#: src/slic3r/GUI/Plater.cpp:1503 -msgid "ERROR: not enough resources to execute a new job." -msgstr "ERROR: no hay suficientes recursos para ejecutar el trabajo." - #: src/slic3r/GUI/Plater.cpp:217 src/slic3r/GUI/Plater.cpp:1028 #: src/slic3r/GUI/Plater.cpp:1070 msgid "Estimated printing time" msgstr "Tiempo estimado de impresión" +#: lib/Slic3r/GUI/Plater.pm:1618 +msgid "Estimated printing time (normal mode)" +msgstr "Tiempo estimado de impresión (modo normal)" + +#: lib/Slic3r/GUI/Plater.pm:1620 +msgid "Estimated printing time (silent mode)" +msgstr "Tiempo estimado de impresión (modo silencioso)" + #: src/slic3r/GUI/Plater.cpp:424 msgid "Everywhere" msgstr "En todos los sitios" @@ -1931,19 +2200,28 @@ msgstr "En todos los sitios" msgid "except for the first %1% layers." msgstr "a excepción de las %1% primeras capas." +#: src/slic3r/GUI/PresetHints.cpp:46 +#, c-format +msgid "except for the first %d layers" +msgstr "a excepción de las %d primeras capas" + +#: src/slic3r/GUI/PresetHints.cpp:50 +msgid "except for the first layer" +msgstr "a excepción de la primera capa" + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "except for the first layer." msgstr "a excepción de la primera capa." -#: src/libslic3r/Print.cpp:1285 -msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm" -msgstr "%1%=%2% mm excesivos para ser imprimible con un nozzle de diámetro de %3% mm" - #: src/slic3r/GUI/UpdateDialogs.cpp:148 -#, possible-c-format +#, c-format msgid "Exit %s" msgstr "Salir %s" +#: src/slic3r/GUI/UpdateDialogs.cpp:144 +msgid "Exit Slic3r" +msgstr "Salir de Slic3r" + #: src/libslic3r/PrintConfig.cpp:335 msgid "Experimental option for preventing support material from being generated under bridged areas." msgstr "Opción experimental para evitar que se genere material de soporte debajo de las áreas con puente." @@ -1972,10 +2250,6 @@ msgstr "Exportar &Configuración" msgid "Export &G-code" msgstr "Exportar &código G" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export &toolpaths as OBJ" -msgstr "Exportar &trayectorias de herramientas como OBJ" - #: src/libslic3r/PrintConfig.cpp:2949 msgid "Export 3MF" msgstr "Exportar 3MF" @@ -1996,6 +2270,10 @@ msgstr "Exportar archivo AMF:" msgid "Export as STL" msgstr "Exportar como STL" +#: lib/Slic3r/GUI/Plater.pm:1416 +msgid "Export cancelled" +msgstr "Exportación cancelada" + #: src/slic3r/GUI/MainFrame.cpp:375 msgid "Export Config &Bundle" msgstr "Exportar &Conjunto de Ajustes" @@ -2004,6 +2282,10 @@ msgstr "Exportar &Conjunto de Ajustes" msgid "Export current configuration to file" msgstr "Exportar la configuración actual al archivo" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export current plate as 3MF" +msgstr "Exportar plataforma actual como 3MF" + #: src/slic3r/GUI/MainFrame.cpp:370 msgid "Export current plate as AMF" msgstr "Exportar plataforma actual como AMF" @@ -2029,13 +2311,21 @@ msgstr "Error al exportar" msgid "Export G-code" msgstr "Exportar código G" +#: lib/Slic3r/GUI/MainFrame.pm:272 +msgid "Export G-code..." +msgstr "Exportar código G..." + +#: lib/Slic3r/GUI/Plater.pm:322 +msgid "Export G-code…" +msgstr "Exportar código G…" + #: src/libslic3r/PrintConfig.cpp:2931 msgid "Export OBJ" msgstr "Exportar OBJ" -#: src/slic3r/GUI/Plater.cpp:2531 -msgid "Export OBJ file:" -msgstr "Exportar archivo OBJ:" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export object as STL…" +msgstr "Exportar plataforma como STL…" #: src/slic3r/Utils/FixModelByWin10.cpp:368 msgid "Export of a temporary 3mf file failed" @@ -2049,9 +2339,25 @@ msgstr "Exportar plataforma como &AMF" msgid "Export plate as &STL" msgstr "Exportar plataforma como &STL" -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export plate as STL &including supports" -msgstr "Exportar plataforma como STL &incluyendo soportes" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export plate as 3MF..." +msgstr "Exportar plataforma como 3MF..." + +#: lib/Slic3r/GUI/MainFrame.pm:278 +msgid "Export plate as AMF..." +msgstr "Exportar plataforma como AMF..." + +#: src/slic3r/GUI/MainFrame.cpp:368 +msgid "Export plate as STL including supports" +msgstr "Exportar plataforma como STL incluyendo los soportes" + +#: lib/Slic3r/GUI/MainFrame.pm:275 +msgid "Export plate as STL..." +msgstr "Exportar plataforma como STL..." + +#: xs/src/slic3r/GUI/GUI.cpp:930 +msgid "Export print config" +msgstr "Exporta la configuración de impresión" #: src/libslic3r/PrintConfig.cpp:2943 msgid "Export SLA" @@ -2065,6 +2371,14 @@ msgstr "Exportar STL" msgid "Export STL file:" msgstr "Exportar archivo STL:" +#: lib/Slic3r/GUI/Plater.pm:326 +msgid "Export STL…" +msgstr "Exportar STL…" + +#: src/libslic3r/PrintConfig.cpp:2924 +msgid "Export SVG" +msgstr "Exportar a SVG" + #: src/libslic3r/PrintConfig.cpp:2950 msgid "Export the model(s) as 3MF." msgstr "Exportar el(los) objeto(s) como 3MF." @@ -2085,9 +2399,9 @@ msgstr "Exportar el(los) objeto(s) como STL." msgid "Export the selected object as STL file" msgstr "Exportar el objeto seleccionado como archivo STL" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export toolpaths as OBJ" -msgstr "Exportar trayectorias de herramientas como OBJ" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export this single object as STL file" +msgstr "Exportar este único objeto como archivo STL" #: src/libslic3r/Print.cpp:1517 msgid "Exporting G-code" @@ -2102,10 +2416,6 @@ msgstr "Exportando el modelo..." msgid "Exporting source model" msgstr "Exportando el modelo original" -#: src/libslic3r/SLAPrint.cpp:700 -msgid "Exposition time is out of printer profile bounds." -msgstr "Tiempo de exposición inicial fuera de los límites del perfil de impresión." - #: src/slic3r/GUI/Tab.cpp:3306 msgid "Exposure" msgstr "Exposición" @@ -2148,7 +2458,7 @@ msgid "Extruder" msgstr "Extrusor" #: src/slic3r/GUI/Tab.cpp:2253 src/libslic3r/GCode/PreviewData.cpp:475 -#, possible-c-format +#, c-format msgid "Extruder %d" msgstr "Extrusor %d" @@ -2246,6 +2556,10 @@ msgstr "No se pudo cargar el modelo de entrada." msgid "Failed processing of the output_filename_format template." msgstr "Error al procesar la plantilla output_filename_format." +#: src/slic3r/GUI/PresetHints.cpp:38 +msgid "Fan " +msgstr "Ventilador " + #: src/slic3r/GUI/PresetHints.cpp:41 msgid "Fan" msgstr "Ventilador" @@ -2266,10 +2580,6 @@ msgstr "Rápida" msgid "Fast tilt" msgstr "Inclinación rápida" -#: src/slic3r/GUI/GUI_App.cpp:135 -msgid "Fatal error" -msgstr "Error fatal" - #: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:537 #: src/libslic3r/GCode/PreviewData.cpp:394 msgid "Feature type" @@ -2279,6 +2589,10 @@ msgstr "Tipo de función" msgid "Feature types" msgstr "Tipos de funciones" +#: lib/Slic3r/GUI/Plater.pm:256 +msgid "Fewer" +msgstr "Menos" + #: src/slic3r/GUI/Plater.cpp:682 src/slic3r/GUI/Tab.cpp:1470 #: src/slic3r/GUI/Tab.cpp:1471 msgid "Filament" @@ -2296,6 +2610,10 @@ msgstr "Filamento y diámetros de boquilla" msgid "Filament Diameter:" msgstr "Diámetro del filamento:" +#: src/libslic3r/PrintConfig.cpp:619 +msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves " +msgstr "El filamento se enfría al ser movido hacia adelante y hacia atrás en los tubos de enfriamiento. Especifique el número deseado de estos movimientos " + #: src/libslic3r/PrintConfig.cpp:620 msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves." msgstr "El filamento se enfría al ser movido hacia adelante y hacia atrás en los tubos de enfriamiento. Especifica el número deseado de estos movimientos." @@ -2308,10 +2626,6 @@ msgstr "Tiempo de carga de filamento" msgid "Filament notes" msgstr "Notas del filamento" -#: src/slic3r/GUI/Tab.cpp:1502 src/slic3r/GUI/Tab.cpp:1557 -msgid "Filament Overrides" -msgstr "Anulaciones de filamentos" - #: src/libslic3r/PrintConfig.cpp:1312 msgid "Filament parking position" msgstr "Posición de aparcar el filamento" @@ -2336,6 +2650,10 @@ msgstr "Tiempo de descarga del filamento" msgid "filaments" msgstr "filamentos" +#: lib/Slic3r/GUI/Plater.pm:1555 +msgid "File added to print queue" +msgstr "Archivo agregado a la cola de impresión" + #: src/libslic3r/Zipper.cpp:75 msgid "file close failed" msgstr "cierre del archivo fallido" @@ -2404,6 +2722,14 @@ msgstr "Patrón de relleno para el relleno general de baja densidad." msgid "Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells." msgstr "Patrón de relleno para el relleno superior. Esto solo afecta a la capa superior visible, y no a sus capas sólidas adyacentes." +#: xs/src/libslic3r/PrintConfig.cpp:285 +msgid "Fill pattern for top/bottom infill. This only affects the external visible layer, and not its adjacent solid shells." +msgstr "Patrón para el relleno superior / inferior. Esto solo afecta a la capa externa visible, y no a las capas sólidas adyacentes." + +#: src/libslic3r/SLA/SLASupportTree.cpp:2154 +msgid "Filtering" +msgstr "Filtrado" + #: src/slic3r/GUI/BonjourDialog.cpp:225 msgid "Finished" msgstr "Terminado" @@ -2449,18 +2775,30 @@ msgstr "Velocidad de la primera capa" msgid "First layer volumetric" msgstr "Primera capa volumétrica" +#: src/libslic3r/Print.cpp:1313 +msgid "first_layer_height" +msgstr "first_layer_height" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix STL through Netfabb" +msgstr "Reparar STL mediante Netfabb" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix the model by sending it to a Netfabb cloud service through Windows 10 API" +msgstr "Arreglar el modelo mediante el envío al servicio de nube de Netfabb a través de la API de Windows 10" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1210 msgid "Fix through the Netfabb" msgstr "Reparar mediante Netfabb" -#: src/slic3r/GUI/Plater.cpp:3072 -msgid "Fix Throught NetFabb" -msgstr "Reparar mediante NetFabb" - #: src/slic3r/GUI/GUI_App.cpp:685 msgid "Flash printer &firmware" msgstr "Grabar &firmware en la impresora" +#: xs/src/slic3r/GUI/GUI.cpp:356 +msgid "Flash printer firmware" +msgstr "Flashear firmware de la impresora" + #: src/slic3r/GUI/FirmwareDialog.cpp:146 msgid "Flash!" msgstr "Flash!" @@ -2477,6 +2815,10 @@ msgstr "Falló el flasheo" msgid "Flashing failed. Please see the avrdude log below." msgstr "Flasheo fallido. Por favor comprueba el log de avrdude." +#: src/slic3r/GUI/FirmwareDialog.cpp:192 +msgid "Flashing failed: " +msgstr "Falló la grabación del firmware:" + #: src/slic3r/GUI/FirmwareDialog.cpp:148 msgid "Flashing in progress. Please do not disconnect the printer!" msgstr "Flasheo en curso. ¡Por favor no desconecte la impresora!" @@ -2502,9 +2844,24 @@ msgid "For support enforcers only" msgstr "Sólo para modificadores de soportes" #. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3345 -msgid "for the left button: \tindicates a non-system (or non-default) preset,\nfor the right button: \tindicates that the settings hasn't been modified." -msgstr "para el botón izquierdo: indica un preajuste que no es del sistema (o no predeterminado),\npara el botón derecho: indica que la configuración no se ha modificado." +#: src/slic3r/GUI/Tab.cpp:3078 +msgid "" +"for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"para el botón izquierdo: indica un ajuste no original, \n" +"para el botón derecho: indica que el ajuste no se ha modificado." + +#: src/slic3r/GUI/Tab.cpp:1295 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "" +"Para que la Torre de Limpieza funcione con los soportes solubles, las capas de soporte deben sincronizarse con las capas de objeto. \n" +" \n" +" ¿Debería sincronizar las capas de soporte para habilitar la Torre de Limpieza?" #: src/libslic3r/Print.cpp:1302 msgid "For the Wipe Tower to work with the soluble supports, the support layers need to be synchronized with the object layers." @@ -2522,10 +2879,6 @@ msgstr "Forzar la generación de carcasas sólidas entre materiales / volúmenes msgid "From" msgstr "Desde" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1853 -msgid "From Object List You can't delete the last solid part from object." -msgstr "Desde la Lista de Objetos no puedes eliminar la última parte sólida del objeto." - #: src/slic3r/GUI/MainFrame.cpp:525 msgid "Front" msgstr "Frontal" @@ -2534,10 +2887,18 @@ msgstr "Frontal" msgid "Front View" msgstr "Vista frontal" +#: src/slic3r/GUI/Tab.cpp:2151 +msgid "Full Power" +msgstr "Máxima potencia" + #: src/slic3r/GUI/MainFrame.cpp:677 msgid "G-code" msgstr "Código G" +#: lib/Slic3r/GUI/Plater.pm:1561 +msgid "G-code file exported to " +msgstr "Archivo de código G exportado a " + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:87 msgid "G-code file exported to %1%" msgstr "Archivo de código G exportado a %1%" @@ -2564,6 +2925,10 @@ msgstr "General" 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 "Generar no menos que el número de bucles de falda requeridos para consumir la cantidad especificada de filamento en la capa inferior. Para máquinas multi-extrusoras, este mínimo se aplica a cada extrusora." +#: src/libslic3r/SLA/SLASupportTree.cpp:2155 +msgid "Generate pinheads" +msgstr "Generar soportes para las cabezas tipo pin" + #: src/libslic3r/PrintConfig.cpp:1779 msgid "Generate support material" msgstr "Generar material de soporte" @@ -2640,22 +3005,6 @@ msgstr "Escala Gizmo" msgid "Gizmo SLA support points" msgstr "Puntos de soporte SLA Gizmo" -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:641 -msgid "Gizmo-Move" -msgstr "Gizmo-Mover" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:569 -msgid "Gizmo-Place on Face" -msgstr "Gizmo-Colocar en Cara" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:651 -msgid "Gizmo-Rotate" -msgstr "Gizmo-Rotar" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:646 -msgid "Gizmo-Scale" -msgstr "Gizmo-Escalar" - #: src/slic3r/GUI/AboutDialog.cpp:95 msgid "GNU Affero General Public License, version 3" msgstr "GNU Affero General Public License, versión 3" @@ -2684,6 +3033,14 @@ msgstr "tiene los siguientes cambios no guardados:" msgid "Head diameter" msgstr "Diámetro de la cabeza" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:838 +msgid "Head diameter: " +msgstr "Diámetro de la cabeza:" + +#: src/slic3r/GUI/Tab.cpp:3483 +msgid "Head penetration should not be greater than the head width." +msgstr "La penetración de la cabeza no debe ser mayor que el ancho de la cabeza." + #: src/libslic3r/PrintConfig.cpp:822 msgid "Heated build plate temperature for the first layer. Set this to zero to disable bed temperature control commands in the output." msgstr "Temperatura de base calefactable para la primera capa. Ajuste esto a cero para deshabilitar los comandos de control de temperatura de la cama en la salida." @@ -2704,23 +3061,24 @@ msgstr "Altura de la falda expresada en capas. Establezca esto en un valor alto msgid "Height of the display" msgstr "Altura de la pantalla" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1350 -msgid "Height range Modifier" -msgstr "Modificador Rango de Alturas" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3650 src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Height ranges" -msgstr "Rango de alturas" +#: src/libslic3r/PrintConfig.cpp:225 +msgid "Heights at which a filament change is to occur. " +msgstr "Alturas en las que se producirá un cambio de filamento." #: src/libslic3r/PrintConfig.cpp:226 msgid "Heights at which a filament change is to occur." msgstr "Alturas en las que se producirá un cambio de filamento." #: src/slic3r/GUI/ConfigWizard.cpp:300 -#, possible-c-format +#, c-format msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print." msgstr "Hola, bienvenido a %s! Este %s te ayuda con la configuración inicial; sólo unos pocos ajustes y estarás preparado para imprimir." +#: src/slic3r/GUI/ConfigWizard.cpp:290 +#, c-format +msgid "Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial configuration; just a few settings and you will be ready to print." +msgstr "Hola, bienvenido a Slic3r Prusa Edition! Este %s te ayuda con la configuración inicial; sólo unos pocos ajustes y estarás preparado para imprimir." + #: src/libslic3r/PrintConfig.cpp:2976 msgid "Help" msgstr "Ayuda" @@ -2778,20 +3136,18 @@ msgid "Hostname, IP or URL" msgstr "Nombre de equipo, IP o URL" #: src/slic3r/GUI/Tab.cpp:136 -msgid "Hover the cursor over buttons to find more information \nor click this button." +msgid "" +"Hover the cursor over buttons to find more information \n" +"or click this button." msgstr "Sitúa el cursos sobre los botones para más información o haz clic en este botón." -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "How much should the tiny connectors penetrate into the model body." -msgstr "Cuanto deberían penetrar los conectores pequeños en el modelo del cuerpo." - #: src/libslic3r/PrintConfig.cpp:2380 msgid "How much the pinhead has to penetrate the model surface" msgstr "Cuánto tiene que penetrar la cabeza del pin en la superficie del modelo" -#: src/libslic3r/PrintConfig.cpp:2642 -msgid "How much the supports should lift up the supported object. If \"Pad around object\" is enabled, this value is ignored." -msgstr "Cuanto deberían los soportes deberían levantar el objeto soportado. Si \"Pad alrededor del objeto\" está activado, este valor será ignorado." +#: src/libslic3r/PrintConfig.cpp:2491 +msgid "How much the supports should lift up the supported object." +msgstr "Cuánto deben levantar los soportes el objeto soportado." #: src/libslic3r/PrintConfig.cpp:95 msgid "HTTPS CA File" @@ -2802,13 +3158,25 @@ msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self msgstr "El archivo HTTPS CA es opcional. Sólo se necesita si vas a usar HTTPS con un certificado auto-firmado." #: src/slic3r/GUI/Tab.cpp:1773 -#, possible-c-format -msgid "HTTPS CA File:\n \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." -msgstr "Archivo CA HTTPS:\nEn este sistema,%s usa certificados HTTPS del almacén de certificados o llavero. \nPara usar un archivo CA personalizado, importa tu archivo CA al Almacén de Certificados/Llavero." +#, c-format +msgid "" +"HTTPS CA File:\n" +" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n" +" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"Archivo CA HTTPS:\n" +"En este sistema,%s usa certificados HTTPS del almacén de certificados o llavero. \n" +"Para usar un archivo CA personalizado, importa tu archivo CA al Almacén de Certificados/Llavero." -#: src/slic3r/GUI/Preferences.cpp:192 -msgid "Icon size in a respect to the default size" -msgstr "Tamaño del icono respecto al tamaño original" +#: src/slic3r/GUI/Tab.cpp:1725 +msgid "" +"HTTPS CA File:\n" +"\tOn this system, Slic3r uses HTTPS certificates from the system Certificate Store or Keychain.\n" +"\tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"Archivo CA HTTPS:\n" +"En este sistema, Slic3r usa certificados HTTPS del almacén de certificados o Llavero. \n" +"Para usar un archivo CA personalizado, importa tu archivo CA al Almacén de Certificados/Llavero." #: src/slic3r/GUI/PrintHostDialogs.cpp:148 msgid "ID" @@ -2819,12 +3187,12 @@ msgid "If checked, supports will be generated automatically based on the overhan msgstr "Si se marca, los soportes se generarán automáticamente según el valor del umbral de voladizo. Si no se selecciona, los apoyos se generarán solo dentro de los volúmenes \"Forzar soportes\"." #: src/slic3r/GUI/ConfigWizard.cpp:413 -#, possible-c-format +#, c-format msgid "If enabled, %s checks for new application versions online. When a new version becomes available, a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." msgstr "Si está activado, %s comprueba si hay nuevas versiones de Slic3r PE en la red. Cuando hay disponible una nueva versión se muestra una notificación al iniciar la aplicación (nunca durante el uso del programa). Esto es sólo un mecanismo de notificación, sin que se realice una instalación automática." #: src/slic3r/GUI/ConfigWizard.cpp:423 -#, possible-c-format +#, c-format msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup." msgstr "Si está activado, %s descargará actualizaciones de los ajustes del sistema mientras lo usamos. Estas actualizaciones se descargan a una ubicación temporal. Cuando hay un nuevo ajuste disponible, este se podrá incorporar y usar cuando la aplicación se vuelva a iniciar." @@ -2833,8 +3201,12 @@ msgid "If enabled, all printing extruders will be primed at the front edge of th msgstr "Si está habilitado, todos los extrusores de impresión estarán cebados en el borde frontal de la cama de impresión al comienzo de la impresión." #: src/slic3r/GUI/Preferences.cpp:63 -msgid "If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." -msgstr "Si está habilitado, PrusaSlicer buscará las nuevas versiones de sí mismo en línea. Cuando una nueva versión esté disponible, se mostrará una notificación en el siguiente inicio de la aplicación (nunca durante el uso del programa). Esto es solo un mecanismo de notificación, no se realiza instalación automática." +msgid "If enabled, Slic3r checks for new versions of " +msgstr "Si está activado, Slic3r comprobará si hay versiones nuevas de" + +#: src/slic3r/GUI/ConfigWizard.cpp:401 src/slic3r/GUI/Preferences.cpp:61 +msgid "If enabled, Slic3r checks for new versions of Slic3r PE online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." +msgstr "Si está activado, Slic3r comprueba si hay nuevas versiones de Slic3r PE en la red. Cuando hay disponible una nueva versión se muestra una notificación al iniciar la aplicación (nunca durante el uso del programa). Esto es sólo un mecanismo de notificación, sin que se realice una instalación automática." #: src/slic3r/GUI/Preferences.cpp:71 msgid "If enabled, Slic3r downloads updates of built-in system presets in the background. These updates are downloaded into a separate temporary location. When a new preset version becomes available it is offered at application startup." @@ -2844,18 +3216,15 @@ msgstr "Si está activado, Slic3r descargará actualizaciones de los ajustes del 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 "Si está activado, la escena 3D se mostrará en resolución Retina. Si tienes problemas de prestaciones 3D, desactivar esta opción te puede ayudar." -#: src/slic3r/GUI/Preferences.cpp:112 -msgid "If enabled, use perspective camera. If not enabled, use orthographic camera." -msgstr "Si está activado, se usará una cámara en perspectiva. Si no está activo, se usará una cámara ortográfica." - -#: src/slic3r/GUI/Preferences.cpp:119 -msgid "If enabled, you can change size of toolbar icons manually." -msgstr "Si está activado, puedes cambiar el tamaño de la barra de herramientas manualmente." - #: src/slic3r/GUI/PresetHints.cpp:28 msgid "If estimated layer time is below ~%1%s, fan will run at %2%%% and print speed will be reduced so that no less than %3%s are spent on that layer (however, speed will never be reduced below %4%mm/s)." msgstr "Si el tiempo de capa estimado está por debajo de ~%1%s, el ventilador funcionará en %2%%% y la velocidad de impresión se reducirá de modo que no se gaste menos de %3%s en esa capa (sin embargo, la velocidad nunca se reducirá por debajo de %4%mm/s) ." +#: src/slic3r/GUI/PresetHints.cpp:28 +#, c-format +msgid "If estimated layer time is below ~%ds, fan will run at %d%% and print speed will be reduced so that no less than %ds are spent on that layer (however, speed will never be reduced below %dmm/s)." +msgstr "Si el tiempo de capa estimado está por debajo de ~ %ds, el ventilador funcionará en %d%% y la velocidad de impresión se reducirá de modo que no se gaste menos de %d s en esa capa (sin embargo, la velocidad nunca se reducirá por debajo de %d mm/s) ." + #: src/libslic3r/PrintConfig.cpp:853 msgid "If expressed as absolute value in mm/s, this speed will be applied to all the print moves of the first layer, regardless of their type. If expressed as a percentage (for example: 40%) it will scale the default speeds." msgstr "Si se expresa como valor absoluto en mm / s, esta velocidad se aplicará a todos los movimientos de impresión de la primera capa, independientemente de su tipo. Si se expresa como un porcentaje (por ejemplo: 40%), escalará las velocidades predeterminadas." @@ -2884,6 +3253,10 @@ msgstr "Si esto está habilitado, Slic3r preprocesará objetos tan pronto como s msgid "If this is enabled, Slic3r will prompt the last output directory instead of the one containing the input files." msgstr "Si esto está habilitado, Slic3r solicitará el último directorio de salida en lugar del que contiene los archivos de entrada." +#: src/slic3r/GUI/Preferences.cpp:95 +msgid "If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may try to check this checkbox. This will disable the layer height editing and anti aliasing, so it is likely better to upgrade your graphics driver." +msgstr "Si tiene problemas de procesamiento causados ​​por un controlador OpenGL 2.0 defectuoso, puede intentar marcar esta casilla de verificación. Esto desactivará la edición de altura de capa y el antialiasing, por lo que es mejor actualizar su controlador de gráficos." + #: src/libslic3r/PrintConfig.cpp:1492 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 "Si establece esto en un valor positivo, Z se levantará rápidamente cada vez que se active una retracción. Cuando se usan múltiples extrusores , solo se considerará la configuración del primer extrusor." @@ -2924,14 +3297,6 @@ msgstr "Importar &Conjunto de Ajustes" msgid "Import Config from &project" msgstr "Importar configuración desde un &proyecto" -#: src/slic3r/GUI/Plater.cpp:4016 -msgid "Import Object" -msgstr "Importar Objeto" - -#: src/slic3r/GUI/Plater.cpp:4020 -msgid "Import Objects" -msgstr "Importar Objetos" - #: src/slic3r/Utils/FixModelByWin10.cpp:383 msgid "Import of the repaired 3mf file failed" msgstr "La importación del archivo 3mf reparado ha fallado" @@ -2945,7 +3310,7 @@ msgid "Import STL/OBJ/AMF/3MF without config, keep bed" msgstr "Importar STL/OBJ/AMF/3MF sin config,manteniendo contenido base" #: src/slic3r/GUI/GUI_ObjectList.cpp:2416 -#, possible-c-format +#, c-format msgid "In this mode you can select only other %s Items%s" msgstr "En este modo, solo puede seleccionar otros %s Items %s" @@ -2954,27 +3319,38 @@ msgid "Incompatible bundles:" msgstr "Grupos incompatibles:" #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70 -#, possible-c-format +#, c-format msgid "Incompatible with this %s" msgstr "Incompatible con este %s" -#: src/slic3r/GUI/Plater.cpp:4091 -msgid "Increase Instances" -msgstr "Aumentar Instancias" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 +msgid "Incompatible with this Slic3r" +msgstr "Incompatible con este Slic3r" + +#: src/slic3r/GUI/Plater.cpp:2813 src/slic3r/GUI/Plater.cpp:2825 +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Increase copies" +msgstr "Aumentar copias" #. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3338 -msgid "indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\nClick the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values." -msgstr "indica que se modificaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados) para el grupo de opciones actual.\nHaz clic en el icono CANDADO DESBLOQUEADO para restablecer todos los ajustes del grupo de opciones actual a los valores del sistema (o predeterminados)." +#: src/slic3r/GUI/Tab.cpp:3071 +msgid "" +"indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"indica que algunos de los ajustes se modificaron y no son iguales a los valores almacenados para el grupo de opciones actual.\n" +"Haz clic en el CANDADO CERRADO para devolver los valores del grupo de opciones actual a los valores del sistema." #. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3334 -msgid "indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "indica que los ajustes son los mismos que los valores del sistema (o por defecto) para el grupo de opciones actual" +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "indicates that the settings are the same as the system values for the current option group" +msgstr "indica que los ajustes son los mismos que los del sistema para el grupo de opciones actual" #. TRN Description for "BACK ARROW" #: src/slic3r/GUI/Tab.cpp:3083 -msgid "indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgid "" +"indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." msgstr "indica que los ajustes cambiaron y no son iguales que los ajustes grabados la última vez para el grupo de opciones actual. Haz clic en el símbolo de FLECHA ATRÁS para resetear todos los ajustes del grupo de opciones actual a los grabados la vez anterior." #: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:69 @@ -3019,10 +3395,6 @@ msgstr "Info" msgid "Inherits profile" msgstr "Hereda el perfil" -#: src/libslic3r/SLAPrint.cpp:707 -msgid "Initial exposition time is out of printer profile bounds." -msgstr "El tiempo de exposición inicial está fuera de los límites del perfil de impresión." - #: src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2318 msgid "Initial exposure time" msgstr "Tiempo de exposición inicial" @@ -3040,7 +3412,7 @@ msgid "Inspect / activate configuration snapshots" msgstr "Inspeccionar / activar instantáneas de configuración" #: src/slic3r/GUI/wxExtensions.cpp:407 src/slic3r/GUI/wxExtensions.cpp:474 -#, possible-c-format +#, c-format msgid "Instance %d" msgstr "Instancia %d" @@ -3052,9 +3424,10 @@ msgstr "Manipulación de instancias" msgid "Instances" msgstr "Instancias" -#: src/slic3r/GUI/GUI_ObjectList.cpp:934 src/slic3r/GUI/GUI_ObjectList.cpp:3346 -msgid "Instances to Separated Objects" -msgstr "Instancias para Separar Objetos" +#: src/slic3r/GUI/wxExtensions.cpp:365 +#, c-format +msgid "Instance_%d" +msgstr "Instancia_%d" #: src/libslic3r/PrintConfig.cpp:1886 msgid "Interface layers" @@ -3080,19 +3453,22 @@ msgstr "error interno" msgid "Internal infill" msgstr "Relleno interno" +#: xs/src/slic3r/Utils/OctoPrint.cpp:120 +msgid "Invalid API key" +msgstr "Clave API incorrecta" + #: src/slic3r/GUI/Plater.cpp:2397 msgid "Invalid data" msgstr "Datos inválidos" -#: src/slic3r/GUI/BedShapeDialog.cpp:471 src/slic3r/GUI/BedShapeDialog.cpp:520 -#: src/slic3r/GUI/BedShapeDialog.cpp:543 -msgid "Invalid file format." -msgstr "Formato inválido de archivo." - #: src/libslic3r/Zipper.cpp:83 msgid "invalid filename" msgstr "nombre de archivo inválido" +#: src/slic3r/GUI/Tab.cpp:3484 +msgid "Invalid Head penetration" +msgstr "Penetración de la cabeza inválida" + #: src/libslic3r/Zipper.cpp:51 msgid "invalid header or archive is corrupted" msgstr "encabezado inválido o archivo está dañado" @@ -3105,6 +3481,19 @@ msgstr "Entrada numérica no válida." msgid "invalid parameter" msgstr "parámetro inválido" +#: src/slic3r/GUI/Tab.cpp:3497 +msgid "Invalid pinhead diameter" +msgstr "Diámetro de cabeza del pin no válido" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Invalid rotation angle entered" +msgstr "Ángulo de rotación introducido inválido" + +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +#: lib/Slic3r/GUI/Plater.pm:1158 lib/Slic3r/GUI/Plater.pm:1163 +msgid "Invalid scaling value entered" +msgstr "Valor de escala introducido inválido" + #. TRN "Slic3r _is licensed under the_ License" #: src/slic3r/GUI/AboutDialog.cpp:94 msgid "is licensed under the" @@ -3126,6 +3515,10 @@ msgstr "Iso" msgid "Iso View" msgstr "Vista Iso" +#: src/slic3r/GUI/Tab.cpp:914 +msgid "It can't be deleted or modified. " +msgstr "No se puede borrar ni modificar. " + #: src/slic3r/GUI/Tab.cpp:925 msgid "It can't be deleted or modified." msgstr "No puede ser borrado o modificado." @@ -3134,6 +3527,14 @@ msgstr "No puede ser borrado o modificado." 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 "Puede ser beneficioso aumentar la corriente del motor del extrusor durante la secuencia de intercambio de filamentos para permitir velocidades de alimentación de rampa rápidas y superar la resistencia cuando se carga un filamento con una punta de forma fea." +#: src/slic3r/GUI/Tab.cpp:907 +msgid "It's a default preset." +msgstr "Es un valor por defecto." + +#: src/slic3r/GUI/Tab.cpp:908 +msgid "It's a system preset." +msgstr "Es un ajuste del sistema." + #: src/slic3r/GUI/GUI.cpp:142 src/slic3r/GUI/Tab.cpp:2796 msgid "It's impossible to print multi-part object(s) with SLA technology." msgstr "Es imposible imprimir objetos de varias piezas con tecnología SLA." @@ -3178,14 +3579,17 @@ msgstr "Idioma" msgid "Language selection" msgstr "Selección de idiomas" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1770 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1872 -msgid "Last instance of an object cannot be deleted." -msgstr "La última instancia de un objeto no puede ser eliminada." +#: src/slic3r/GUI/GLCanvas3D.cpp:1694 +msgid "Last frame" +msgstr "Ultimo cuadro" + +#: lib/Slic3r/GUI/Plater.pm:265 +msgid "Layer Editing" +msgstr "Edición de Capa" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2994 -msgid "Layer" -msgstr "Capa" +#: lib/Slic3r/GUI/Plater.pm:280 +msgid "Layer editing" +msgstr "Edición de capa" #: src/slic3r/GUI/Tab.cpp:998 src/libslic3r/PrintConfig.cpp:55 msgid "Layer height" @@ -3199,10 +3603,6 @@ msgstr "La altura de la capa no puede ser mayor que diámetro de la boquilla" msgid "Layer height limits" msgstr "Límites de altura de la capa" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2109 -msgid "Layer range Settings to modify" -msgstr "Ajustes del Rango de capas a modificar" - #: src/libslic3r/PrintConfig.cpp:326 src/libslic3r/PrintConfig.cpp:946 #: src/libslic3r/PrintConfig.cpp:1435 src/libslic3r/PrintConfig.cpp:1620 #: src/libslic3r/PrintConfig.cpp:1681 src/libslic3r/PrintConfig.cpp:1844 @@ -3229,9 +3629,9 @@ msgstr "Capas y perímetros" msgid "Layers and Perimeters" msgstr "Capas y Perímetros" -#: src/slic3r/GUI/GLCanvas3D.cpp:526 -msgid "Layers heights" -msgstr "Alturas de capa" +#: src/slic3r/GUI/GLCanvas3D.cpp:3517 +msgid "Layers editing" +msgstr "Edición de capas" #: src/slic3r/GUI/KBShortcutsDialog.cpp:189 msgid "Layers Slider Shortcuts" @@ -3259,27 +3659,26 @@ msgstr "Izquierda" msgid "Left click" msgstr "Clic izquierdo" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:597 +msgid "Left mouse click - add point" +msgstr "Clic izquierdo del ratón - agregar punto" + #: src/slic3r/GUI/MainFrame.cpp:527 msgid "Left View" msgstr "Vista izquierda" -#: src/slic3r/GUI/GUI_Preview.cpp:255 -msgid "Legend" -msgstr "Leyenda" - #: src/libslic3r/PrintConfig.cpp:1473 src/libslic3r/PrintConfig.cpp:1481 msgid "Length" msgstr "Largo" +#: src/libslic3r/PrintConfig.cpp:292 +msgid "Length of the cooling tube to limit space for cooling moves inside it " +msgstr "Longitud del tubo de enfriado para limitar el espacio para movimientos de enfriamiento dentro del mismo " + #: src/libslic3r/PrintConfig.cpp:293 msgid "Length of the cooling tube to limit space for cooling moves inside it." msgstr "Longitud del tubo de enfriado para limitar el espacio para movimientos de enfriamiento dentro del mismo." -#. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:124 -msgid "License agreements of all following programs (libraries) are part of application license agreement" -msgstr "Los acuerdos de licencia de todos los programas (bibliotecas) siguientes forman parte del acuerdo de licencia de la aplicación" - #: src/libslic3r/PrintConfig.cpp:1491 msgid "Lift Z" msgstr "Levantar Z" @@ -3324,33 +3723,17 @@ msgstr "Cargar la configuración desde el archivo especificado. Se puede usar m msgid "Load exported configuration file" msgstr "Cargar archivo de configuración exportado" -#: src/slic3r/GUI/Plater.cpp:1271 -msgid "Load File" -msgstr "Cargar Archivo" - -#: src/slic3r/GUI/Plater.cpp:1275 -msgid "Load Files" -msgstr "Cargar Archivos" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1585 -msgid "Load Part" -msgstr "Cargar pieza" - #: src/slic3r/GUI/MainFrame.cpp:357 msgid "Load presets from a bundle" msgstr "Cargar preajustes de un paquete" -#: src/slic3r/GUI/Plater.cpp:3992 -msgid "Load Project" -msgstr "Cargar Proyecto" - #: src/slic3r/GUI/BedShapeDialog.cpp:97 msgid "Load shape from STL..." msgstr "Cargar forma desde STL..." -#: src/slic3r/GUI/BedShapeDialog.cpp:181 src/slic3r/GUI/BedShapeDialog.cpp:249 -msgid "Load..." -msgstr "Cargar..." +#: lib/Slic3r/GUI/Plater.pm:779 +msgid "Loaded " +msgstr "Cargado " #: src/slic3r/GUI/WipeTowerDialog.cpp:235 msgid "loaded" @@ -3364,6 +3747,10 @@ msgstr "Cargado" msgid "Loading" msgstr "Carga" +#: src/slic3r/GUI/GUI_App.cpp:339 +msgid "Loading of a current presets" +msgstr "Carga de unos presets actuales" + #: src/slic3r/GUI/GUI_App.cpp:407 msgid "Loading of a mode view" msgstr "Carga de modo de vista" @@ -3385,6 +3772,10 @@ msgstr "Velocidad de carga" msgid "Loading speed at the start" msgstr "Velocidad de carga al inicio" +#: lib/Slic3r/GUI/Plater.pm:713 +msgid "Loading…" +msgstr "Cargando…" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:41 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 msgid "Local coordinates" @@ -3398,13 +3789,17 @@ msgstr "Bloquear soportes bajo nuevas islas" msgid "LOCKED LOCK" msgstr "CANDADO CERRADO" -#: src/slic3r/GUI/Tab.cpp:3360 -msgid "LOCKED LOCK icon indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "El icono de CANDADO BLOQUEADO indica que los ajustes son los mismos que los valores del sistema (por defecto) para el grupo de opciones actual" +#: src/slic3r/GUI/Tab.cpp:3103 +msgid "LOCKED LOCK icon indicates that the settings are the same as the system values for the current option group" +msgstr "El símbolo del CANDADO CERRADO indica que los ajustes son los mismos que los valores del sistema para el grupo de opciones actual" + +#: src/slic3r/GUI/Tab.cpp:3119 +msgid "LOCKED LOCK icon indicates that the value is the same as the system value." +msgstr "El CANDADO CERRADO indica que los valores son los mismos que los del sistema." -#: src/slic3r/GUI/Tab.cpp:3376 -msgid "LOCKED LOCK icon indicates that the value is the same as the system (or default) value." -msgstr "El icono de CANDADO BLOQUEADO indica que el valor es el mismo que el del sistema (por defecto)" +#: src/slic3r/GUI/Tab.cpp:3064 +msgid "LOCKED LOCK;indicates that the settings are the same as the system values for the current option group" +msgstr "CANDADO CERRADO;indica que los ajustes son los mismos que los del sistema para el grupo de opciones actual" #: src/libslic3r/PrintConfig.cpp:3119 msgid "Logging level" @@ -3439,6 +3834,10 @@ msgstr "Manifold" msgid "Manual editing" msgstr "Edición manual" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:675 +msgid "Manual editing [M]" +msgstr "Edición manual [M]" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:105 msgid "Masked SLA file exported to %1%" msgstr "Archivo SLA enmascarado exportado a %1%" @@ -3503,14 +3902,26 @@ msgstr "Velocidad volumétrica máxima" msgid "Maximal bridging distance" msgstr "Distancia máxima de puentes" +#: src/libslic3r/PrintConfig.cpp:2168 +msgid "Maximal distance between supports on sparse infill sections. " +msgstr "Distancia máxima entre soportes en las secciones con relleno ligero. " + #: src/libslic3r/PrintConfig.cpp:2193 msgid "Maximal distance between supports on sparse infill sections." msgstr "Distancia máxima entre soportes en las secciones con relleno ligero." +#: src/libslic3r/PrintConfig.cpp:1086 +msgid "Maximum acceleration %1%" +msgstr "Aceleración máxima %1%" + #: src/libslic3r/PrintConfig.cpp:1099 msgid "Maximum acceleration E" msgstr "Máxima aceleración E" +#: src/libslic3r/PrintConfig.cpp:1088 +msgid "Maximum acceleration of the %1% axis" +msgstr "Aceleración máxima del eje %1%" + #: src/libslic3r/PrintConfig.cpp:1105 msgid "Maximum acceleration of the E axis" msgstr "Máxima aceleración en el eje E" @@ -3559,14 +3970,18 @@ msgstr "Máxima aceleración Z" msgid "Maximum accelerations" msgstr "Aceleraciones máximas" -#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2425 -msgid "Maximum exposure time" -msgstr "Tiempo de exposición máximo" +#: src/libslic3r/PrintConfig.cpp:1076 +msgid "Maximum feedrate %1%" +msgstr "Avance máximo %1%" #: src/libslic3r/PrintConfig.cpp:1081 msgid "Maximum feedrate E" msgstr "Máximo avance E" +#: src/libslic3r/PrintConfig.cpp:1078 +msgid "Maximum feedrate of the %1% axis" +msgstr "Avance máximo del eje %1%" + #: src/libslic3r/PrintConfig.cpp:1087 msgid "Maximum feedrate of the E axis" msgstr "Máximo avance del eje E" @@ -3599,14 +4014,18 @@ msgstr "Máximo avance en Z" msgid "Maximum feedrates" msgstr "Avance máximo" -#: src/libslic3r/PrintConfig.cpp:2447 src/libslic3r/PrintConfig.cpp:2448 -msgid "Maximum initial exposure time" -msgstr "Tiempo de exposición inicial máximo" +#: src/libslic3r/PrintConfig.cpp:1096 +msgid "Maximum jerk %1%" +msgstr "Jerk máximo %1%" #: src/libslic3r/PrintConfig.cpp:1117 msgid "Maximum jerk E" msgstr "Máximo jerk E" +#: src/libslic3r/PrintConfig.cpp:1098 +msgid "Maximum jerk of the %1% axis" +msgstr "Jerk máximo del eje %1%" + #: src/libslic3r/PrintConfig.cpp:1123 msgid "Maximum jerk of the E axis" msgstr "Maximo jerk del eje E" @@ -3683,6 +4102,10 @@ msgstr "Longitud mínima de filamento extruido" msgid "Minimal points distance" msgstr "Distancia mínima de puntos" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:877 +msgid "Minimal points distance: " +msgstr "Distancia mínima de puntos:" + #: src/libslic3r/PrintConfig.cpp:635 msgid "Minimal purge on wipe tower" msgstr "Purga mínima en la torre de limpieza" @@ -3691,10 +4114,6 @@ msgstr "Purga mínima en la torre de limpieza" msgid "Minimum detail resolution, used to simplify the input file for speeding up the slicing job and reducing memory usage. High-resolution models often carry more detail than printers can render. Set to zero to disable any simplification and use full resolution from input." msgstr "Resolución mínima de detalles, utilizada para simplificar el archivo de entrada para acelerar el trabajo de laminado y reducir el uso de memoria. Los modelos de alta resolución suelen llevar más detalles de los que las impresoras pueden ofrecer. Establézcalo en cero para desactivar cualquier simplificación y usar la resolución completa de la entrada." -#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2417 -msgid "Minimum exposure time" -msgstr "Tiempo de exposición mínimo" - #: src/libslic3r/PrintConfig.cpp:1109 src/libslic3r/PrintConfig.cpp:1111 msgid "Minimum feedrate when extruding" msgstr "Avance mínimo al extruir" @@ -3707,10 +4126,6 @@ msgstr "Avance mínimo al extruir (M205 S)" msgid "Minimum feedrates" msgstr "Avances míninos" -#: src/libslic3r/PrintConfig.cpp:2439 src/libslic3r/PrintConfig.cpp:2440 -msgid "Minimum initial exposure time" -msgstr "Tiempo de exposición inicial mínimo" - #: src/libslic3r/PrintConfig.cpp:1452 msgid "Minimum travel after retraction" msgstr "Distancia mínima después de la retracción" @@ -3727,14 +4142,6 @@ msgstr "Velocidad mínima sin extrusión (M205 T)" msgid "Mirror" msgstr "Duplicar" -#: src/libslic3r/PrintConfig.cpp:2320 -msgid "Mirror horizontally" -msgstr "Reflejar horizontalmente" - -#: src/slic3r/GUI/GLCanvas3D.cpp:1711 -msgid "Mirror Object" -msgstr "Reflejar objeto" - #: src/slic3r/GUI/Plater.cpp:2946 msgid "Mirror the selected object" msgstr "Duplicar el objeto seleccionado" @@ -3751,12 +4158,8 @@ msgstr "Duplicar el objeto seleccionado a lo largo del eje Y" msgid "Mirror the selected object along the Z axis" msgstr "Duplicar el objeto seleccionado a lo largo del eje Z" -#: src/libslic3r/PrintConfig.cpp:2327 -msgid "Mirror vertically" -msgstr "Reflejar verticalmente" - #: src/slic3r/Utils/OctoPrint.cpp:69 -#, possible-c-format +#, c-format msgid "Mismatched type of print host: %s" msgstr "Tipo de host de impresión no coincidente: %s" @@ -3805,6 +4208,17 @@ msgstr "mm (cero para deshabilitar)" msgid "mm or %" msgstr "mm o %" +#: src/libslic3r/PrintConfig.cpp:528 +msgid "mm or % (leave 0 for auto)" +msgstr "mm o % (dejar 0 para automático)" + +#: src/libslic3r/PrintConfig.cpp:420 src/libslic3r/PrintConfig.cpp:835 +#: src/libslic3r/PrintConfig.cpp:967 src/libslic3r/PrintConfig.cpp:1354 +#: src/libslic3r/PrintConfig.cpp:1692 src/libslic3r/PrintConfig.cpp:1865 +#: src/libslic3r/PrintConfig.cpp:2023 +msgid "mm or % (leave 0 for default)" +msgstr "mm o % (dejar 0 por defecto)" + #: src/libslic3r/PrintConfig.cpp:201 src/libslic3r/PrintConfig.cpp:577 #: src/libslic3r/PrintConfig.cpp:585 src/libslic3r/PrintConfig.cpp:594 #: src/libslic3r/PrintConfig.cpp:602 src/libslic3r/PrintConfig.cpp:629 @@ -3855,10 +4269,6 @@ msgstr "Modo" msgid "model" msgstr "modelo" -#: src/slic3r/GUI/BedShapeDialog.cpp:239 -msgid "Model" -msgstr "Modelo" - #: src/slic3r/Utils/FixModelByWin10.cpp:340 msgid "Model fixing" msgstr "Reparación de modelos" @@ -3888,10 +4298,6 @@ msgstr "Modelo reparado exitosamente" msgid "modified" msgstr "modificado" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Modifier" -msgstr "Modificador" - #: src/slic3r/GUI/Tab.cpp:1100 msgid "Modifiers" msgstr "Modificadores" @@ -3900,6 +4306,10 @@ msgstr "Modificadores" msgid "money/kg" msgstr "dinero/kg" +#: lib/Slic3r/GUI/Plater.pm:255 +msgid "More" +msgstr "Más" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Mouse wheel" msgstr "Rueda del ratón" @@ -3920,17 +4330,25 @@ msgstr "Mover el control deslizante actual hacia abajo" msgid "Move current slider thumb Up" msgstr "Mover el control deslizante actual hacia arriba" -#: src/slic3r/GUI/GLCanvas3D.cpp:2872 -msgid "Move Object" -msgstr "Mover Objeto" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Move current slider thump Down" +msgstr "Mover el control deslizante actual hacia abajo" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Move current slider thump Up" +msgstr "Mover el control deslizante actual hacia arriba" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 msgid "Move point" msgstr "Mover punto" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1183 -msgid "Move support point" -msgstr "Mover punto de soporte" +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:51 +msgid "Move [M]" +msgstr "Mover" + +#: src/slic3r/GUI/GLCanvas3D.cpp:1698 +msgid "ms" +msgstr "ms" #: src/libslic3r/PrintConfig.cpp:2100 msgid "Multi material printers may need to prime or purge extruders on tool changes. Extrude the excess material into the wipe tower." @@ -3941,7 +4359,7 @@ msgid "Multi-part object detected" msgstr "Objeto de piezas múltiples detectado" #: src/slic3r/GUI/FirmwareDialog.cpp:400 src/slic3r/GUI/FirmwareDialog.cpp:436 -#, possible-c-format +#, c-format msgid "Multiple %s devices found. Please only connect one at a time for flashing." msgstr "Se encontraron múltiples dispositivos %s. Por favor, conecta solo uno a la vez para flashear." @@ -3950,8 +4368,14 @@ msgid "Multiple Extruders" msgstr "Múltiples Extrusores" #: src/slic3r/GUI/Plater.cpp:1766 -msgid "Multiple objects were loaded for a multi-material printer.\nInstead of considering them as multiple objects, should I consider\nthese files to represent a single object having multiple parts?\n" -msgstr "Se cargaron varios objetos para una impresora de varios materiales.\nEn lugar de considerarlos como objetos múltiples, ¿debería considerar\nestos archivos para formar un solo objeto que tiene varias partes?\n" +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?\n" +msgstr "" +"Se cargaron varios objetos para una impresora de varios materiales.\n" +"En lugar de considerarlos como objetos múltiples, ¿debería considerar\n" +"estos archivos para formar un solo objeto que tiene varias partes?\n" #: src/libslic3r/PrintConfig.cpp:3050 msgid "Multiply copies by creating a grid." @@ -3961,10 +4385,6 @@ msgstr "Multiplicar copias creando una rejilla." msgid "Multiply copies by this factor." msgstr "Multiplicar las copias por este factor." -#: src/slic3r/GUI/Field.cpp:139 -msgid "N/A" -msgstr "N/A" - #: src/slic3r/GUI/GUI_ObjectList.cpp:176 msgid "Name" msgstr "Nombre" @@ -3989,27 +4409,19 @@ msgstr "Más cercano" msgid "Network lookup" msgstr "Búsqueda en la red" -#: src/slic3r/GUI/Plater.cpp:2056 -msgid "New Project" -msgstr "Nuevo proyecto" - #: src/slic3r/GUI/UpdateDialogs.cpp:30 -#, possible-c-format +#, c-format msgid "New version of %s is available" msgstr "Nueva versión de %s disponible" +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "New version of Slic3r PE is available" +msgstr "Nueva versión de Slic3r PE disponible" + #: src/slic3r/GUI/UpdateDialogs.cpp:47 msgid "New version:" msgstr "Nueva versión:" -#: src/slic3r/GUI/GLCanvas3D.cpp:3750 -msgid "Next Redo action: %1%" -msgstr "Siguiente acción de Rehacer: %1%" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3718 -msgid "Next Undo action: %1%" -msgstr "Siguiente acción de Deshacer: %1%" - #: src/libslic3r/PrintConfig.cpp:912 msgid "No extrusion" msgstr "Sin extrusión" @@ -4143,10 +4555,6 @@ msgstr "Nombre del objeto" msgid "Object or Instance" msgstr "Objeto o instancia" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Object reordered" -msgstr "Objetos reordenados" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1868 msgid "Object Settings to modify" msgstr "Configuraciones de objetos para modificar" @@ -4167,10 +4575,22 @@ msgstr "objeto(s)" msgid "objects" msgstr "objetos" +#: xs/src/libslic3r/PrintConfig.cpp:2006 +msgid "Objects will be used to wipe 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 "Los objetos se usarán para limpiar la boquilla después de un cambio de herramienta para guardar material que de otra manera terminaría en la torre de limpieza y disminuiría el tiempo de impresión. Los colores de los objetos se mezclarán como resultado." + #: src/libslic3r/PrintConfig.cpp:402 src/libslic3r/PrintConfig.cpp:808 msgid "Octagram Spiral" msgstr "Octagram Spiral" +#: xs/src/slic3r/GUI/Tab.cpp:1520 xs/src/slic3r/Utils/OctoPrint.cpp:110 +msgid "OctoPrint upload" +msgstr "Cargar en OctoPrint" + +#: lib/Slic3r/GUI/Plater.pm:1576 +msgid "OctoPrint upload finished." +msgstr "Subida a OctoPrint finalizada." + #: src/slic3r/GUI/BonjourDialog.cpp:76 msgid "OctoPrint version" msgstr "Versión de OctoPrint" @@ -4179,10 +4599,6 @@ msgstr "Versión de OctoPrint" msgid "of a current Object" msgstr "del Objeto actual" -#: src/slic3r/GUI/wxExtensions.cpp:2570 -msgid "One layer mode" -msgstr "Modo de capa única" - #: src/libslic3r/Print.cpp:1285 msgid "One or more object were assigned an extruder that the printer does not have." msgstr "Uno o más objetos fueron asignados a un extrusor no existente." @@ -4215,9 +4631,9 @@ msgstr "Solo retraer al cruzar perímetros" msgid "Ooze prevention" msgstr "Prevención de goteo" -#: src/libslic3r/Print.cpp:1193 -msgid "Ooze prevention is currently not supported with the wipe tower enabled." -msgstr "La prevención de goteo actualmente no es compatible con la torre de limpieza activa." +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open a model" +msgstr "Abrir un modelo" #: src/slic3r/GUI/MainFrame.cpp:339 msgid "Open a project file" @@ -4227,27 +4643,48 @@ msgstr "Abrir un archivo de proyecto" msgid "Open CA certificate file" msgstr "Abrir archivo de certificado CA" -#: src/slic3r/GUI/UpdateDialogs.cpp:63 src/slic3r/GUI/UpdateDialogs.cpp:126 -msgid "Open changelog page" -msgstr "Abrir la página del registro de cambios" - -#: src/slic3r/GUI/UpdateDialogs.cpp:68 -msgid "Open download page" -msgstr "Abrir página de descarga" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:105 msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" msgstr "Abrir el proyecto STL/OBJ/AMF/3MF con config, borrar contenido base" +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open STL/OBJ/AMF/3MF…\tCtrl+O" +msgstr "Abrir STL/OBJ/AMF/3MF…\tCtrl+O" + +#: src/slic3r/GUI/MainFrame.cpp:554 +#, c-format +msgid "Open the %s manual in your browser" +msgstr "Abrir el manual de %s en su navegador" + #: src/slic3r/GUI/MainFrame.cpp:551 -#, possible-c-format +#, c-format msgid "Open the %s website in your browser" msgstr "Abrir el sitio web de %s en su navegador" +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Open the 3D cutting tool" +msgstr "Abrir la herramienta de corte 3D" + +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Open the object editor dialog" +msgstr "Abrir el cuadro del editor de objetos" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Open the Prusa Edition releases page in your browser" +msgstr "Abrir la página de lanzamientos de Prusa Edition en su navegador" + #: src/slic3r/GUI/MainFrame.cpp:542 msgid "Open the Prusa3D drivers download page in your browser" msgstr "Abrir la página de descarga de los controladores Prusa3D en su navegador" +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Open the Slic3r manual in your browser" +msgstr "Abrir el manual de Slic3r en su navegador" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Open the Slic3r website in your browser" +msgstr "Abrir el sitio web de Slic3r en su navegador" + #: src/slic3r/GUI/MainFrame.cpp:549 msgid "Open the software releases page in your browser" msgstr "Abre la página de lanzamientos de software en tu navegador" @@ -4256,10 +4693,6 @@ msgstr "Abre la página de lanzamientos de software en tu navegador" msgid "Optimize orientation" msgstr "Optimizar la orientación" -#: src/slic3r/GUI/Plater.cpp:2643 -msgid "Optimize Rotation" -msgstr "Optimizar Rotación" - #: src/slic3r/GUI/Plater.cpp:2994 msgid "Optimize the rotation of the object for better print results." msgstr "Optimizar la rotación del objeto para obtener mejores resultados de impresión." @@ -4276,9 +4709,9 @@ msgstr "Opciones de material de soporte y balsa" msgid "Orientation found." msgstr "Orientación encontrada." -#: src/slic3r/GUI/Plater.cpp:2768 -msgid "Orientation search canceled." -msgstr "Búsqueda de orientación cancelada." +#: src/slic3r/GUI/Plater.cpp:2185 +msgid "Orientation search canceled" +msgstr "Búsqueda de orientación cancelada" #: src/slic3r/GUI/BedShapeDialog.cpp:79 msgid "Origin" @@ -4292,6 +4725,10 @@ msgstr "Otro" msgid "Other layers" msgstr "Otras capas" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:252 +msgid "Other vendors" +msgstr "Otras marcas" + #: src/slic3r/GUI/ConfigWizard.cpp:438 msgid "Other Vendors" msgstr "Otras Marcas" @@ -4344,25 +4781,9 @@ msgstr "Pad" msgid "Pad and Support" msgstr "Pad y soportes" -#: src/libslic3r/PrintConfig.cpp:2732 -msgid "Pad around object" -msgstr "Pad alrededor del objeto" - -#: src/libslic3r/PrintConfig.cpp:2731 -msgid "Pad object connector penetration" -msgstr "Penetración del conector del objeto al Pad" - -#: src/libslic3r/PrintConfig.cpp:2711 -msgid "Pad object connector stride" -msgstr "Paso del conector del objeto al Pad" - -#: src/libslic3r/PrintConfig.cpp:2721 -msgid "Pad object connector width" -msgstr "Anchura del conector del pad al objeto" - -#: src/libslic3r/PrintConfig.cpp:2700 -msgid "Pad object gap" -msgstr "Espacio del pad con el objeto" +#: src/libslic3r/PrintConfig.cpp:2559 +msgid "Pad edge radius" +msgstr "Radio del borde del pad" #: src/libslic3r/PrintConfig.cpp:2532 msgid "Pad wall height" @@ -4408,10 +4829,6 @@ msgstr "Pegar portapapeles" msgid "Paste from clipboard" msgstr "Pegar desde el portapapeles" -#: src/slic3r/GUI/Plater.cpp:4772 -msgid "Paste From Clipboard" -msgstr "Pegar Desde Portapapeles" - #: src/libslic3r/PrintConfig.cpp:1915 msgid "Pattern" msgstr "Patrón" @@ -4451,18 +4868,34 @@ msgid "Perimeters" msgstr "Perímetros" #: src/slic3r/GUI/ConfigWizard.cpp:440 -#, possible-c-format +#, c-format msgid "Pick another vendor supported by %s:" msgstr "Escoge otro fabricante soportado por %s:" +#: src/slic3r/GUI/ConfigWizard.cpp:423 +msgid "Pick another vendor supported by Slic3r PE:" +msgstr "Escoge otro fabricante soportado por Slic3r PE:" + #: src/libslic3r/PrintConfig.cpp:2430 msgid "Pillar widening factor" msgstr "Factor de ensanchamiento del pilar" +#: src/slic3r/GUI/Tab.cpp:3496 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "El diámetro de la cabeza del pindebe ser más pequeño que el diámetro del pilar." + #: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 msgid "Place on face" msgstr "Colocar en la cara" +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 +msgid "Place on face [F]" +msgstr "Colocar en la cara [F]" + +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Place one more copy of the selected object" +msgstr "Colocar una copia más del objeto seleccionado" + #: src/slic3r/GUI/MainFrame.cpp:161 msgid "Plater" msgstr "Plataforma" @@ -4479,9 +4912,13 @@ msgstr "Por favor comprueba y soluciona tu lista de objetos." msgid "Please check your object list before preset changing." msgstr "Por favor comprueba tu lista de objetos antes de cambiar los ajustes iniciales." -#: src/slic3r/GUI/AboutDialog.cpp:39 src/slic3r/GUI/AboutDialog.cpp:286 -msgid "Portions copyright" -msgstr "Porciones del copyright" +#: lib/Slic3r/GUI/Plater.pm:1897 +msgid "Please install the OpenGL modules to use this feature (see build instructions)." +msgstr "Por favor instale los módulos OpenGL para usar esta característica (consulte las instrucciones de instalación)." + +#: src/slic3r/GUI/GUI_App.cpp:742 +msgid "Please, check your changes before." +msgstr "Por favor, comprueba tus cambios antes." #: src/libslic3r/PrintConfig.cpp:2235 msgid "Portrait" @@ -4537,31 +4974,31 @@ msgid "Preparing infill" msgstr "Preparando relleno" #: src/slic3r/GUI/Tab.cpp:2758 -#, possible-c-format +#, c-format msgid "Preset (%s)" msgstr "Ajuste inicial (%s)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center" -msgstr "Presiona para activar el rectángulo de deselección \no para escalar o rotar los objetos seleccionados \nen torno a su propio centro" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:148 -msgid "Press to activate one direction scaling in Gizmo scale" -msgstr "Presiona para activar la escala de una dirección en la escala Gizmo" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 -#, possible-c-format -msgid "Press to activate selection rectangle\nor to snap by 5% in Gizmo scale\nor to snap by 1mm in Gizmo move" -msgstr "Presiona para activar el rectángulo de selección\n o para ajustar un 5% en la escala Gizmo\n o para ajustar un 1 mm en el movimiento Gizmo" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to scale selection to fit print volume\nin Gizmo scale" -msgstr "Presiona para escalar la selección para cuadrar en el volumen de impresión\nen escala Gizmo" +msgid "" +"Press to scale or rotate selected objects\n" +"around their own center" +msgstr "" +"Presiona para escalar o rotar los objetos seleccionado\n" +"alrededor de su propio centro" #: src/slic3r/GUI/KBShortcutsDialog.cpp:127 msgid "Press to select multiple object or move multiple object with mouse" msgstr "Presiona para seleccionar objetos múltiples o mover objetos múltiples con el ratón" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +#, no-c-format +msgid "" +"Press to snap by 5% in Gizmo scale\n" +"or by 1mm in Gizmo move" +msgstr "" +"Presione para ajustar un 5% en la escala Gizmo \n" +"o 1 mm en el movimiento Gizmo" + #: src/slic3r/GUI/Tab.cpp:2288 msgid "Preview" msgstr "Previsualización" @@ -4619,10 +5056,6 @@ msgstr "Anular la velocidad de impresión" msgid "Print&er Settings Tab" msgstr "Configura&ción de Impresión" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1438 -msgid "Printable" -msgstr "Imprimible" - #: src/slic3r/GUI/Plater.cpp:685 msgid "Printer" msgstr "Impresora" @@ -4676,17 +5109,33 @@ msgstr "Fabricante de la impresora" msgid "Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current extruder (support_material_extruder == 0 or support_material_interface_extruder == 0), all nozzles have to be of the same diameter." msgstr "Imprimir con múltiples extrusoras de diferentes diámetros de boquilla. Si el soporte debe imprimirse con la extrusora actual (support_material_extruder == 0 o support_material_interface_extruder == 0), todas las boquillas deben ser del mismo diámetro." +#: lib/Slic3r/GUI/Plater.pm:324 +msgid "Print…" +msgstr "Imprimir…" + +#: src/slic3r/GUI/MainFrame.cpp:704 +msgid "Processing " +msgstr "Procesamiento " + #. TRN "Processing input_file_basename" #: src/slic3r/GUI/MainFrame.cpp:715 -#, possible-c-format +#, c-format msgid "Processing %s" msgstr "Procesando %s" +#: lib/Slic3r/GUI/Plater.pm:713 lib/Slic3r/GUI/Plater.pm:727 +msgid "Processing input file\n" +msgstr "Procesando archivo de entrada \n" + #: src/slic3r/GUI/Plater.cpp:1600 -#, possible-c-format +#, c-format msgid "Processing input file %s\n" msgstr "Procesando el archivo de entrada %s\n" +#: src/libslic3r/SLA/SLASupportTree.cpp:2160 +msgid "Processing small holes" +msgstr "Procesando agujeros pequeños" + #: src/libslic3r/PrintObject.cpp:110 msgid "Processing triangulated mesh" msgstr "Procesando malla triangulada" @@ -4709,6 +5158,18 @@ msgstr "Progreso:" msgid "Prusa 3D &Drivers" msgstr "&Controladores de Prusa 3D" +#: lib/Slic3r/GUI/MainFrame.pm:338 +msgid "Prusa 3D Drivers" +msgstr "Controladores de Prusa 3D" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Prusa Edition &Releases" +msgstr "&Lanzamientos de la Edición Prusa" + +#: lib/Slic3r/GUI/MainFrame.pm:341 +msgid "Prusa Edition Releases" +msgstr "Lanzamientos de la Edición Prusa" + #: src/slic3r/GUI/ConfigWizard.cpp:1109 msgid "Prusa FFF Technology Printers" msgstr "Impresoras Prusa de tecnología FFF" @@ -4717,19 +5178,18 @@ msgstr "Impresoras Prusa de tecnología FFF" msgid "Prusa MSLA Technology Printers" msgstr "Impresoras Prusa de tecnología MSLA" -#: src/slic3r/GUI/AboutDialog.cpp:255 -msgid "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community." -msgstr "PrusaSlicer está basado en Slic3r de Alessandro Ranellucci y la comunidad RepRap." - -#: src/slic3r/GUI/GUI_App.cpp:297 -#, possible-c-format -msgid "PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \nwhile OpenGL version %s, render %s, vendor %s was detected." -msgstr "PrusaSlicer requiere el controlador de gráficos OpenGL 2.0 para que funcione correctamente, \nmientras que la versión %s OpenGL, renderizado %s, vendedor %s fue detectada." - #: src/libslic3r/PrintConfig.cpp:2153 msgid "Purging after toolchange will 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 "La purga después del cambio de herramientas se realizará dentro de los rellenos de este objeto. Esto reduce la cantidad de desperdicio, pero puede resultar en un tiempo de impresión más largo debido a movimientos de viaje adicionales." +#: xs/src/libslic3r/PrintConfig.cpp:1996 +msgid "Purging into infill" +msgstr "Purga en el relleno" + +#: xs/src/libslic3r/PrintConfig.cpp:2005 +msgid "Purging into objects" +msgstr "Purga en los objetos" + #: src/slic3r/GUI/Plater.cpp:456 msgid "Purging volumes" msgstr "Volúmenes de purga" @@ -4742,6 +5202,10 @@ msgstr "Volumen de purga - volumen de carga/descarga" msgid "Purging volumes - matrix" msgstr "Volúmenes de purga - matriz" +#: lib/Slic3r/GUI/MainFrame.pm:232 +msgid "Q&uick Slice…\tCtrl+U" +msgstr "L&áminado Rápido…\tCtrl+U" + #: src/slic3r/GUI/Tab.cpp:1019 msgid "Quality (slower slicing)" msgstr "Calidad (laminado más lento)" @@ -4749,23 +5213,39 @@ msgstr "Calidad (laminado más lento)" #: src/slic3r/GUI/GUI_ObjectList.cpp:854 src/slic3r/GUI/GUI_ObjectList.cpp:1139 #: src/slic3r/GUI/GUI_ObjectList.cpp:1145 #: src/slic3r/GUI/GUI_ObjectList.cpp:1377 -#, possible-c-format +#, c-format msgid "Quick Add Settings (%s)" msgstr "Añadir ajustes rápidos (%s)" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +msgid "Quick slice" +msgstr "Laminado rápido" + #: src/slic3r/GUI/MainFrame.cpp:383 msgid "Quick Slice" msgstr "Laminado rápido" +#: lib/Slic3r/GUI/MainFrame.pm:238 +msgid "Quick Slice and Save &As…\tCtrl+Alt+U" +msgstr "Láminado Rápido y Guardar &Como…\tCtrl+Alt+U" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 +msgid "Quick slice and Save as" +msgstr "Laminado rápido y Guardar como" + #: src/slic3r/GUI/MainFrame.cpp:389 msgid "Quick Slice and Save As" msgstr "Laminado rápido y Guardar como" #: src/slic3r/GUI/MainFrame.cpp:409 -#, possible-c-format +#, c-format msgid "Quit %s" msgstr "Cerrar %s" +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "Quit Slic3r" +msgstr "Salir de Slic3r" + #: src/libslic3r/PrintConfig.cpp:479 msgid "Radius" msgstr "Radio" @@ -4778,13 +5258,23 @@ msgstr "Balsa" msgid "Raft layers" msgstr "Capas de balsa" +#: xs/src/slic3r/GUI/Tab.cpp:1299 +msgid "Ramming" +msgstr "Empuje" + #: src/slic3r/GUI/WipeTowerDialog.cpp:14 msgid "Ramming customization" msgstr "Configuración de empuje" #: src/slic3r/GUI/WipeTowerDialog.cpp:40 -msgid "Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n\nThis is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." -msgstr "El empuje señala la extrusión rápida justo antes de un cambio de filamento en una impresora MM de un sólo extrusor. Su propósito es asegurar una forma adecuada para el extremo de filamento que se va a descargar, para que no haya problemas al insertar uno nuevo y para que se pueda volver a insertar este más tarde. Esta fase es importante y diferentes materiales puede precisar diferentes velocidades para obtener la forma correcta. Por este motivo, las velocidades extrusión durante el empuje son ajustables.\n\nEste es un ajuste para expertos, ajustarlo incorrectamente podrá producir atascos, que la rueda del extrusor arañe el filamento, etc." +msgid "" +"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n" +"\n" +"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." +msgstr "" +"El empuje señala la extrusión rápida justo antes de un cambio de filamento en una impresora MM de un sólo extrusor. Su propósito es asegurar una forma adecuada para el extremo de filamento que se va a descargar, para que no haya problemas al insertar uno nuevo y para que se pueda volver a insertar este más tarde. Esta fase es importante y diferentes materiales puede precisar diferentes velocidades para obtener la forma correcta. Por este motivo, las velocidades extrusión durante el empuje son ajustables.\n" +"\n" +"Este es un ajuste para expertos, ajustarlo incorrectamente podrá producir atascos, que la rueda del extrusor arañe el filamento, etc." #: src/slic3r/GUI/WipeTowerDialog.cpp:90 msgid "Ramming line spacing" @@ -4806,10 +5296,6 @@ msgstr "Ajustes de empuje" msgid "Random" msgstr "Aleatorio" -#: src/slic3r/GUI/wxExtensions.cpp:486 -msgid "Range" -msgstr "Rango" - #: src/libslic3r/SLAPrint.cpp:72 msgid "Rasterizing layers" msgstr "Rastrerizando capas" @@ -4834,12 +5320,13 @@ msgstr "Trasera" msgid "Rear View" msgstr "Vista trasera" -#: src/slic3r/GUI/MainFrame.cpp:401 -msgid "Recent projects" -msgstr "Proyectos recientes" +#: src/slic3r/GUI/PresetHints.cpp:264 +#, c-format +msgid "Recommended object thin wall thickness for layer height %.2f and " +msgstr "Espesor de pared delgada del objeto recomendado para una altura de capa %.2f y" #: src/slic3r/GUI/PresetHints.cpp:262 -#, possible-c-format +#, c-format msgid "Recommended object thin wall thickness for layer height %.2f and" msgstr "Espesor de pared delgada del objeto recomendado para una altura de capa %.2f y" @@ -4864,22 +5351,6 @@ msgstr "Rectilíneo" msgid "Rectilinear grid" msgstr "Rejilla rectilínea" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3639 -#: src/slic3r/GUI/MainFrame.cpp:562 -msgid "Redo" -msgstr "Rehacer" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Redo %1$d Action" -msgid_plural "Redo %1$d Actions" -msgstr[0] "Rehacer %1$d Acción" -msgstr[1] "Rehacer %1$d Acciones" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Redo History" -msgstr "Rehacer Historia" - #: src/slic3r/GUI/Tab.cpp:1037 msgid "Reducing printing time" msgstr "Reduciendo el tiempo de impresión" @@ -4914,16 +5385,16 @@ msgid "Remove instance" msgstr "Retirar una copia" #: src/slic3r/GUI/KBShortcutsDialog.cpp:125 -msgid "Remove Instance of the selected object" +msgid "Remove Instance from selected object" msgstr "Retirar instancia del objeto seleccionado" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:153 -msgid "Remove layer range" -msgstr "Retirar rango de capas" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 +msgid "Remove Instance of the selected object" +msgstr "Retirar instancia del objeto seleccionado" -#: src/slic3r/GUI/Plater.cpp:3518 -msgid "Remove one instance of the selected object" -msgstr "Eliminar una instancia del objeto seleccionado" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Remove one copy of the selected object" +msgstr "Eliminar una copia del objeto seleccionado" #: src/slic3r/GUI/GUI_ObjectSettings.cpp:83 msgid "Remove parameter" @@ -4954,14 +5425,6 @@ msgstr "Eliminar perfiles de usuario - instalar desde cero (se realizará una in msgid "Rename" msgstr "Renombrar" -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Object" -msgstr "Renombrar Objeto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Sub-object" -msgstr "Renombrar Sub-Objeto" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2709 msgid "Renaming" msgstr "Renombrar" @@ -4978,6 +5441,10 @@ msgstr "Render con un software de renderizado. El procesador de software MESA in msgid "Repair" msgstr "Reparar" +#: lib/Slic3r/GUI/MainFrame.pm:258 +msgid "Repair STL file…" +msgstr "Reparar el archivo STL…" + #: src/slic3r/Utils/FixModelByWin10.cpp:387 msgid "Repaired 3MF file contains more than one object" msgstr "El archivo 3MF reparado contiene más de un objeto" @@ -5010,23 +5477,31 @@ msgstr "Repetir el último laminado rápido" msgid "Report an I&ssue" msgstr "I&nformar de un problema" +#: lib/Slic3r/GUI/MainFrame.pm:361 +msgid "Report an Issue" +msgstr "Informar de un problema" + #: src/slic3r/GUI/MainFrame.cpp:561 -#, possible-c-format +#, c-format msgid "Report an issue on %s" msgstr "Reportar un problema a %s" +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an issue on the Slic3r Prusa Edition" +msgstr "Informar de un problema de Slic3r Edición Prusa" + #: src/slic3r/Utils/PresetUpdater.cpp:590 -#, possible-c-format +#, c-format msgid "requires max. %s" msgstr "requiere max. %s" #: src/slic3r/Utils/PresetUpdater.cpp:588 -#, possible-c-format +#, c-format msgid "requires min. %s" msgstr "requiere min. %s" #: src/slic3r/Utils/PresetUpdater.cpp:583 -#, possible-c-format +#, c-format msgid "requires min. %s and max. %s" msgstr "requiere un min. %s y un max. %s" @@ -5046,27 +5521,6 @@ msgstr "Restablecer plano de recorte" msgid "Reset direction" msgstr "Restablecer dirección" -#: src/slic3r/GUI/Plater.cpp:2603 -msgid "Reset Project" -msgstr "Reiniciar Proyecto" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:303 -msgid "Reset rotation" -msgstr "Reiniciar rotación" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:328 -msgid "Reset Rotation" -msgstr "Reiniciar rotación" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:285 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:290 -msgid "Reset scale" -msgstr "Reiniciar escala" - -#: src/slic3r/GUI/Tab.cpp:2584 -msgid "Reset to Filament Color" -msgstr "Reiniciar Filament Color" - #: src/libslic3r/PrintConfig.cpp:1441 msgid "Resolution" msgstr "Resolución" @@ -5111,10 +5565,6 @@ msgstr "Retracciones" msgid "Right" msgstr "Derecha" -#: src/slic3r/GUI/GUI_ObjectList.cpp:381 -msgid "Right button click the icon to change the object printable property" -msgstr "Clic con el botón derecho en el icono para cambiar la propiedad imprimible del objeto" - #: src/slic3r/GUI/GUI_ObjectList.cpp:279 msgid "Right button click the icon to change the object settings" msgstr "Clic del botón derecho en el ícono para cambiar los ajustes del objeto" @@ -5127,6 +5577,10 @@ msgstr "Clic del botón derecho en el ícono para arreglar el STL a través de N msgid "Right click" msgstr "Click derecho" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:598 +msgid "Right mouse click - remove point" +msgstr "Clic derecho del ratón - retirar punto" + #: src/slic3r/GUI/MainFrame.cpp:528 msgid "Right View" msgstr "Vista derecha" @@ -5137,6 +5591,18 @@ msgstr "Vista derecha" msgid "Rotate" msgstr "Girar" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate 45° clockwise" +msgstr "Girar 45 ° en el sentido de las agujas del reloj" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate 45° counter-clockwise" +msgstr "Girar 45 ° en el sentido contrario a las agujas del reloj" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Rotate around " +msgstr "Rotar alrededor" + #: src/libslic3r/PrintConfig.cpp:3067 msgid "Rotate around X" msgstr "Rotar alrededor del eje X" @@ -5150,6 +5616,34 @@ msgstr "Rotar alrededor del eje Y" msgid "Rotate lower part upwards" msgstr "Poner patas arriba" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate the selected object by 45° clockwise" +msgstr "Girar el objeto seleccionado 45 ° en el sentido de las agujas del reloj" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate the selected object by 45° counter-clockwise" +msgstr "Girar el objeto seleccionado 45 ° en el sentido contrario a las agujas del reloj" + +#: lib/Slic3r/GUI/Plater.pm:2236 +msgid "Rotate the selected object by an arbitrary angle" +msgstr "Girar el objeto seleccionado según un ángulo arbitrario" + +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Rotate the selected object by an arbitrary angle around X axis" +msgstr "Girar el objeto seleccionado por un ángulo arbitrario alrededor del eje X" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Rotate the selected object by an arbitrary angle around Y axis" +msgstr "Gira el objeto seleccionado por un ángulo arbitrario alrededor del eje Y" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Rotate the selected object by an arbitrary angle around Z axis" +msgstr "Gira el objeto seleccionado por un ángulo arbitrario alrededor del eje Z" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +msgid "Rotate [R]" +msgstr "Rotar [R]" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:151 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:194 msgid "Rotation" @@ -5171,8 +5665,16 @@ msgstr "Ángulo de rotación alrededor del eje Y en grados." msgid "Rotation angle around the Z axis in degrees." msgstr "Ángulo de rotación alrededor del eje Z en grados." +#: src/libslic3r/SLA/SLASupportTree.cpp:2158 +msgid "Routing supports to model surface" +msgstr "Colocar soportes para modelar superficie" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2157 +msgid "Routing to ground" +msgstr "Colocar en la base" + #: src/slic3r/GUI/ConfigWizard.cpp:298 src/slic3r/GUI/GUI_App.cpp:658 -#, possible-c-format +#, c-format msgid "Run %s" msgstr "Ejecutar %s" @@ -5189,22 +5691,18 @@ msgstr "Ejecutando scripts de post-procesamiento" msgid "s" msgstr "$" -#: src/slic3r/GUI/MainFrame.cpp:466 src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end G-code" -msgstr "E&nviar código G" - -#: src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end to print" -msgstr "E&nviar para imprimir" +#: src/slic3r/GUI/MainFrame.cpp:677 src/slic3r/GUI/Tab.cpp:3239 +msgid "Save " +msgstr "Guardar " #. TRN Preset #: src/slic3r/GUI/Tab.cpp:3264 -#, possible-c-format +#, c-format msgid "Save %s as:" msgstr "Guardar %s como:" #: src/slic3r/GUI/MainFrame.cpp:686 -#, possible-c-format +#, c-format msgid "Save %s file as:" msgstr "Guardar archivo %s como:" @@ -5224,9 +5722,13 @@ msgstr "Guardar la configuración como:" msgid "Save configuration to the specified file." msgstr "Guarda la configuración al archivo especificado." +#: src/slic3r/GUI/Tab.cpp:130 +msgid "Save current " +msgstr "Guardar actualmente " + #. TRN "Save current Settings" #: src/slic3r/GUI/Tab.cpp:133 -#, possible-c-format +#, c-format msgid "Save current %s" msgstr "Guardar lo actual %s" @@ -5291,29 +5793,53 @@ msgstr "Escalar" msgid "Scale (%)" msgstr "Escalar (%)" +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +msgid "Scale along " +msgstr "Escalar a lo largo " + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:195 msgid "Scale factors" msgstr "Factores de escala" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale the selected object to fit the print volume" -msgstr "Escala los objetos seleccionados para ajustarse al volumen de impresión" +#: lib/Slic3r/GUI/Plater.pm:2262 lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale the selected object along a single axis" +msgstr "Escalar el objeto seleccionado a lo largo de un solo eje" + +#: lib/Slic3r/GUI/Plater.pm:2267 lib/Slic3r/GUI/Plater.pm:2283 +msgid "Scale the selected object along the X axis" +msgstr "Escalar el objeto seleccionado a lo largo del eje X" + +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Scale the selected object along the XYZ axes" +msgstr "Escalar el objeto seleccionado a lo largo de los ejes XYZ" + +#: lib/Slic3r/GUI/Plater.pm:2270 lib/Slic3r/GUI/Plater.pm:2286 +msgid "Scale the selected object along the Y axis" +msgstr "Escalar el objeto seleccionado a lo largo del eje Y" + +#: lib/Slic3r/GUI/Plater.pm:2273 lib/Slic3r/GUI/Plater.pm:2289 +msgid "Scale the selected object along the Z axis" +msgstr "Escalar el objeto seleccionado a lo largo del eje Z" #: src/libslic3r/PrintConfig.cpp:3086 msgid "Scale to Fit" -msgstr "Escalar para Adaptarse" - -#: src/slic3r/GUI/Selection.cpp:947 -msgid "Scale To Fit" -msgstr "Escalar para Adaptarse" +msgstr "Escalar para adaptarse" #: src/libslic3r/PrintConfig.cpp:3087 msgid "Scale to fit the given volume." msgstr "Escalar para ajustarse al volumen dado." -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale to print volume" -msgstr "Escalar al volumen de impresión" +#: lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale to size" +msgstr "Escalar al tamaño" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:51 +msgid "Scale [S]" +msgstr "Escalar [S]" + +#: lib/Slic3r/GUI/Plater.pm:260 lib/Slic3r/GUI/Plater.pm:276 +msgid "Scale…" +msgstr "Escalar…" #: src/libslic3r/PrintConfig.cpp:3078 msgid "Scaling factor or percentage." @@ -5343,6 +5869,22 @@ msgstr "Buscando dispositivos" msgid "Searching for optimal orientation" msgstr "Buscando la orientación óptima" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Select &Controller Tab\tCtrl+T" +msgstr "Seleccionar la pestaña Ajustes de &Controlador\tCtrl+T" + +#: lib/Slic3r/GUI/MainFrame.pm:311 +msgid "Select &Filament Settings Tab\tCtrl+3" +msgstr "Seleccionar la pestaña Ajustes de &Filamento\tCtrl+3" + +#: lib/Slic3r/GUI/MainFrame.pm:294 +msgid "Select &Plater Tab\tCtrl+1" +msgstr "Seleccionar la pestaña Ajustes de la &base\tCtrl+1" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:108 +msgid "Select all" +msgstr "Selecciona todo" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:136 msgid "Select All objects" msgstr "Seleccionar todos los objetos" @@ -5379,10 +5921,22 @@ msgstr "Selecciona el número de extrusores:" msgid "Select Filament Settings Tab" msgstr "Seleccionar pestaña de configuración de filamento" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 +msgid "Select multiple object/Move multiple object" +msgstr "Seleccionar objeto múltiples/Mover objeto múltiples" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1251 msgid "Select new extruder for the object/part" msgstr "Selecciona el nuevo extrusor para el objeto/pieza" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:109 +msgid "Select none" +msgstr "No seleccionar ninguno" + +#: lib/Slic3r/GUI/MainFrame.pm:308 +msgid "Select P&rint Settings Tab\tCtrl+2" +msgstr "Seleccionar la pestaña Ajustes de im&presión\tCtrl+2" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:114 msgid "Select Plater Tab" msgstr "Seleccionar pestaña de la Base de impresión" @@ -5391,6 +5945,10 @@ msgstr "Seleccionar pestaña de la Base de impresión" msgid "Select Print Settings Tab" msgstr "Seleccione la pestaña Configuración de impresión" +#: lib/Slic3r/GUI/MainFrame.pm:314 +msgid "Select Print&er Settings Tab\tCtrl+4" +msgstr "Selecccionar la pestaña Ajustes de imp&resora\tCtrl+4" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:118 msgid "Select Printer Settings Tab" msgstr "Selecciona pestaña de ajustes de impresora" @@ -5415,70 +5973,14 @@ msgstr "Seleccione las impresoras con las que este perfil es compatible." msgid "Select the STL file to repair:" msgstr "Seleccione el archivo STL para reparar:" -#: src/slic3r/GUI/Preferences.cpp:207 -msgid "Select toolbar icon size in respect to the default one." -msgstr "Selecciona el tamaño del icono de la barra de herramientas con respecto al predeterminado." - #: src/slic3r/GUI/GUI_ObjectList.cpp:2545 msgid "Select type of part" msgstr "Selecciona el tipo de pieza" -#: src/slic3r/GUI/Plater.cpp:606 -msgid "Select what kind of pad do you need" -msgstr "Selecciona que tipo de pad necesitas" - #: src/slic3r/GUI/Plater.cpp:421 msgid "Select what kind of support do you need" msgstr "Selecciona qué clase de soporte necesitas" -#: src/slic3r/GUI/Selection.cpp:146 -msgid "Selection-Add" -msgstr "Selección-Añadir" - -#: src/slic3r/GUI/Selection.cpp:384 -msgid "Selection-Add All" -msgstr "Selección-Añadir todos" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2875 -msgid "Selection-Add from list" -msgstr "Selección-Añadir de la lista" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5623 -msgid "Selection-Add from rectangle" -msgstr "Selección-Añadir del rectángulo" - -#: src/slic3r/GUI/Selection.cpp:256 -msgid "Selection-Add Instance" -msgstr "Selección-Añadir Instancia" - -#: src/slic3r/GUI/Selection.cpp:219 -msgid "Selection-Add Object" -msgstr "Selección-Añadir Objeto" - -#: src/slic3r/GUI/Selection.cpp:187 -msgid "Selection-Remove" -msgstr "Selección-Retirar" - -#: src/slic3r/GUI/Selection.cpp:410 -msgid "Selection-Remove All" -msgstr "Selección-Retirar todo" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2867 -msgid "Selection-Remove from list" -msgstr "Selección-Retirar de la lista" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5642 -msgid "Selection-Remove from rectangle" -msgstr "Selección-Retirar del rectángulo" - -#: src/slic3r/GUI/Selection.cpp:275 -msgid "Selection-Remove Instance" -msgstr "Selección-Retirar Instancia" - -#: src/slic3r/GUI/Selection.cpp:238 -msgid "Selection-Remove Object" -msgstr "Selección-Retirar Objeto" - #: src/slic3r/GUI/MainFrame.cpp:444 msgid "Selects all objects" msgstr "Seleccionar todos los objetos" @@ -5487,18 +5989,22 @@ msgstr "Seleccionar todos los objetos" msgid "Send G-code" msgstr "Enviar código G" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Send G-Code to printer" +msgstr "Enviar el código G a la impresora" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Send G-Code to printer host" msgstr "Enviar el código G al host de impresión" -#: src/slic3r/GUI/MainFrame.cpp:466 -msgid "Send to print current plate as G-code" -msgstr "Enviar para imprimir la plataforma actual como código G" - #: src/slic3r/GUI/Plater.cpp:731 src/slic3r/GUI/Plater.cpp:3822 msgid "Send to printer" msgstr "Enviar a la impresora" +#: xs/src/slic3r/Utils/OctoPrint.cpp:111 lib/Slic3r/GUI/Plater.pm:1558 +msgid "Sending G-code file to the OctoPrint server..." +msgstr "Enviando el archivo código G al servidor Octoprint..." + #: src/slic3r/GUI/Tab.cpp:1169 msgid "Sequential printing" msgstr "Impresión secuencial" @@ -5541,38 +6047,17 @@ msgstr "Establecer el extrusor para elementos seleccionados" msgid "Set lower thumb to current slider thumb" msgstr "Coloca el pulgar inferior en el control deslizante actual" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:245 -msgid "Set Mirror" -msgstr "Establecer Reflejo" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Set number of instances" -msgstr "Establecer número de instancias" - -#: src/slic3r/GUI/Plater.cpp:4163 -#, possible-c-format -msgid "Set numbers of copies to %d" -msgstr "Establecer el número de copias a %d" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Set number of copies" +msgstr "Ajusta el número de copias" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:746 -msgid "Set Orientation" -msgstr "Establecer Orientación" +#: lib/Slic3r/GUI/Plater.pm:2224 +msgid "Set number of copies…" +msgstr "Establecer el número de copias…" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:715 -msgid "Set Position" -msgstr "Establecer Posición" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Printable" -msgstr "Establecer Imprimible" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Printable Instance" -msgstr "Establecer Instancia imprimible" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:811 -msgid "Set Scale" -msgstr "Establecer Escala" +#: src/libslic3r/PrintConfig.cpp:1053 +msgid "Set silent mode for the G-code flavor" +msgstr "Establecer el modo silencioso para el tipo de código G" #: src/libslic3r/PrintConfig.cpp:2228 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." @@ -5626,14 +6111,6 @@ msgstr "Ajusta este valor a la altura máxima que puede alcanzar el extrusor mie msgid "Set this to the vertical distance between your nozzle tip and (usually) the X carriage rods. In other words, this is the height of the clearance cylinder around your extruder, and it represents the maximum depth the extruder can peek before colliding with other printed objects." msgstr "Ajuste este valor según la distancia vertical entre la punta de la boquilla y (generalmente) las barras X del carro. En otras palabras, esta es la altura del cilindro de holgura alrededor de su extrusor, y representa la profundidad máxima que el extrusor puede asomar antes de colisionar con otros objetos impresos." -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Unprintable" -msgstr "Establecer No imprimible" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Unprintable Instance" -msgstr "Establecer Instancia No Imprimible" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:184 msgid "Set upper thumb to current slider thumb" msgstr "Coloca el pulgar superior en el control deslizante actual" @@ -5642,9 +6119,10 @@ msgstr "Coloca el pulgar superior en el control deslizante actual" msgid "Settings" msgstr "Ajustes" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Settings for height range" -msgstr "Ajustes para rango de alturas" +#: lib/Slic3r/GUI/Plater.pm:264 lib/Slic3r/GUI/Plater.pm:279 +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Settings…" +msgstr "Ajustes…" #: src/slic3r/GUI/BedShapeDialog.cpp:60 msgid "Shape" @@ -5654,6 +6132,10 @@ msgstr "Aspecto" msgid "Shells" msgstr "Carcasas" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:599 +msgid "Shift + Left (+ drag) - select point(s)" +msgstr "Mayúsculas + Izquierda (+ arrastra) - selecciona punto(s)" + #: src/slic3r/GUI/GUI_Preview.cpp:221 msgid "Show" msgstr "Mostrar" @@ -5722,6 +6204,10 @@ msgstr "Mostrar la base" msgid "Show the print settings" msgstr "Mostrar los ajustes de impresión" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Show the printer controller" +msgstr "Mostrar el controlador de la impresora" + #: src/slic3r/GUI/MainFrame.cpp:483 msgid "Show the printer settings" msgstr "Mostrar la configuración de la impresora" @@ -5734,9 +6220,13 @@ msgstr "Mostrar esta ayuda." msgid "Show user configuration folder (datadir)" msgstr "Mostrar carpeta de configuración de usuario (datadir)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 -msgid "Show/Hide (L)egend" -msgstr "Mostrar/Ocultar (L)eyenda" +#: src/slic3r/GUI/Tab.cpp:2157 +msgid "Silent" +msgstr "Silencioso" + +#: src/slic3r/GUI/Plater.cpp:1077 +msgid "silent mode" +msgstr "modo silencioso" #: src/slic3r/GUI/GUI_App.cpp:674 src/slic3r/GUI/wxExtensions.cpp:2459 msgid "Simple" @@ -5754,10 +6244,6 @@ msgstr "Ajuste para MM con un solo extrusor" msgid "Single Extruder Multi Material" msgstr "Extrusor único de múltiples materiales" -#: src/slic3r/GUI/Tab.cpp:2023 -msgid "Single Extruder Multi Material is selected, \nand all extruders must have the same diameter.\nDo you want to change the diameter for all extruders to first extruder nozzle diameter value?" -msgstr "Multi Material en extrusor único seleccionado,\ny todos los extrusores deben tener el mismo diámetro.\n¿Deseas cambiar el diámetro de todos los extrusores al valor del diámetro del nozzle del primer extrusor?" - #: src/slic3r/GUI/Tab.cpp:2240 msgid "Single extruder multimaterial parameters" msgstr "Parámetros multimaterial para un sólo extrusor" @@ -5797,14 +6283,6 @@ msgstr "Vueltas de la falda" msgid "SLA gizmo keyboard shortcuts" msgstr "SLA gizmo atajos de teclado" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1150 -msgid "SLA gizmo turned off" -msgstr "Gizmo SLA apagado" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1115 -msgid "SLA gizmo turned on" -msgstr "Gizmo SLA encendido" - #: src/slic3r/GUI/Plater.cpp:684 src/slic3r/GUI/Preset.cpp:1277 msgid "SLA material" msgstr "Material SLA" @@ -5825,6 +6303,10 @@ msgstr "Ajustes de impresión SLA" msgid "SLA Support Points" msgstr "Puntos de soporte SLA" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:995 +msgid "SLA Support Points [L]" +msgstr "Puntos de soporte de SLA [L]" + #: src/slic3r/GUI/GLCanvas3D.cpp:722 msgid "SLA supports outside the print area were detected" msgstr "Se detectaron soportes SLA fuera del área de impresión" @@ -5833,6 +6315,22 @@ msgstr "Se detectaron soportes SLA fuera del área de impresión" msgid "Slab" msgstr "Rebanada" +#: src/slic3r/GUI/Tab.hpp:389 +msgid "sla_material" +msgstr "sla_material" + +#: src/slic3r/GUI/Tab.hpp:403 +msgid "sla_print" +msgstr "sla_print" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Slic3r &Manual" +msgstr "&Manual de Slic3r" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Slic3r &Website" +msgstr "&Website de Slic3r" + #: src/libslic3r/PrintConfig.cpp:1268 msgid "Slic3r can upload G-code files to a printer host. This field must contain the kind of the host." msgstr "Slic3r puede subir archivos de código G a un host de impresión. Este campo debe contener el tipo de host." @@ -5845,10 +6343,67 @@ msgstr "Slic3r puede subir archivos de código G a un host de impresión. Este c msgid "Slic3r can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance." msgstr "Slic3r puede subir archivos G-code a un host de impresión. Este campo debería contener el nombre de equipo, dirección IP o el URL de la instancia del host." +#: xs/src/libslic3r/PrintConfig.cpp:1110 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the API Key required for authentication." +msgstr "Slic3r puede cargar archivos de código G a OctoPrint. Este campo debe contener la clave API requerida para la autenticación." + +#: xs/src/libslic3r/PrintConfig.cpp:1124 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the hostname, IP address or URL of the OctoPrint instance." +msgstr "Slic3r puede subir archivos G-code a OctoPrint. Este campo debería contener el nombre de equipo, dirección IP o el URL de la instancia de OctoPrint." + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r configuration is incompatible" +msgstr "La configuración de Slic3r es incompatible" + +#: lib/Slic3r/GUI/Plater.pm:1021 +msgid "Slic3r Error" +msgstr "Error de Slic3r" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r error" +msgstr "Error de Slic3r" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r has encountered an error" +msgstr "Slic3r ha encontrado un error" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r incompatibility" +msgstr "Incompatibilidad de Slic3r" + +#: src/slic3r/GUI/UpdateDialogs.cpp:168 +#, c-format +msgid "" +"Slic3r PE now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"Ahora Slic3r PE usa una estructura actualizada para la configuración. \n" +"\n" +"Se han introducido los llamados 'Ajustes del sistema' , que tienen valores por defecto para varias impresoras. Estos ajustes del sistema no pueden modificarse, por el contrario, los usuarios pueden crear nuevos ajustes que se basan en alguno de ellos.\n" +"Un ajuste nuevo puede heredar un valor de un ajuste existente o bien tener un nuevo valor personalizado.\n" +"\n" +"Por favof, continúa con el %s que sigue para establecer los nuevos ajustes y seleccionar si quieres que estos se actualicen automáticamente." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 +msgid "Slic3r Prusa Edition - Keyboard Shortcuts" +msgstr "Slic3r Prusa Edition - Atajos de teclado" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "Slic3r Prusa Edition - System Information" +msgstr "Slic3r Prusa Edition - Información del Sistema" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 msgid "slic3r version" msgstr "versión de Slic3r" +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Slic3r View Mode" +msgstr "Modo de visualización de Slic3r" + #: src/libslic3r/PrintConfig.cpp:1234 msgid "Slic3r will not scale speed down below this speed." msgstr "Slic3r no escalará la velocidad por debajo de esta velocidad." @@ -5865,6 +6420,10 @@ msgstr "Laminar un archivo en un código G" msgid "Slice a file into a G-code, save as" msgstr "Laminar un archivo en un código G, guárdar como" +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice file to a multi-layer SVG" +msgstr "Laminar archivo a un SVG multicapa" + #: src/libslic3r/PrintConfig.cpp:71 msgid "Slice gap closing radius" msgstr "Radio de cierre de los huecos al laminar" @@ -5886,6 +6445,10 @@ msgstr "Laminar el modelo y exportar las trayectorias como código G." msgid "Slice the model as FFF or SLA based on the printer_technology configuration value." msgstr "Laminar el modelo como FFF o SLA basado en el valor de configuración de printer_technology." +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice to SV&G…\tCtrl+G" +msgstr "Laminar a SV&G…\tCtrl+G" + #: src/slic3r/GUI/Plater.cpp:193 msgid "Sliced Info" msgstr "Información del laminado" @@ -5896,10 +6459,14 @@ msgstr "Información del laminado" msgid "Slicing" msgstr "Rebanando" +#: lib/Slic3r/GUI/Plater.pm:1391 +msgid "Slicing cancelled" +msgstr "Laminado cancelado" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:91 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:109 msgid "Slicing complete" -msgstr "Laminado terminado" +msgstr "Rebanado terminado" #: src/libslic3r/SLAPrint.cpp:1459 msgid "Slicing done" @@ -5909,9 +6476,10 @@ msgstr "Laminado terminado" msgid "Slicing Done!" msgstr "¡Laminado realizado!" -#: src/libslic3r/SLAPrint.cpp:759 -msgid "Slicing had to be stopped due to an internal error: Inconsistent slice index." -msgstr "El laminado se ha tenido que parar debido a un error interno: Índice de laminado inconsistente." +#. TRN To be shown at the status bar on SLA slicing error. +#: src/libslic3r/SLAPrint.cpp:709 +msgid "Slicing had to be stopped due to an internal error." +msgstr "El laminado se tuvo que detener debido a un error interno." #: src/libslic3r/SLAPrint.cpp:55 msgid "Slicing model" @@ -5921,6 +6489,10 @@ msgstr "Rebanando modelo" msgid "Slicing supports" msgstr "Soportes para el laminado" +#: lib/Slic3r/GUI/MainFrame.pm:483 +msgid "Slicing…" +msgstr "Laminando…" + #: src/libslic3r/PrintConfig.cpp:2249 msgid "Slow" msgstr "Lenta" @@ -5970,6 +6542,10 @@ msgstr "Área del umbral de relleno sólido" msgid "Solid layers" msgstr "Capas sólidas" +#: src/libslic3r/PrintConfig.cpp:1832 +msgid "soluble" +msgstr "soluble" + #: src/libslic3r/PrintConfig.cpp:711 msgid "Soluble material" msgstr "Material soluble" @@ -5978,9 +6554,9 @@ msgstr "Material soluble" msgid "Soluble material is most likely used for a soluble support." msgstr "El material soluble se usa muy probablemente para un soporte soluble." -#: src/libslic3r/PrintConfig.cpp:914 -msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any extrusion value at all." -msgstr "Algunos comandos de códigos G/M, incluidos el control de temperatura y otros, no son universales. Configura esta opción en el firmware de tu impresora para obtener una salida compatible. El tipo \"Sin extrusión\" evita que PrusaSlicer exporte ningún valor de extrusión." +#: src/libslic3r/PrintConfig.cpp:889 +msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents Slic3r from exporting any extrusion value at all." +msgstr "Algunos comandos de código G / M, incluido el control de temperatura y otros, no son universales. Establezca esta opción en el firmware de su impresora para obtener una salida compatible. El ajuste \"Sin extrusión\" evita que Slic3r exporte ningún valor de extrusión." #: src/slic3r/GUI/GLCanvas3D.cpp:721 msgid "Some objects are not visible when editing supports" @@ -6080,18 +6656,34 @@ msgstr "Velocidad del primer movimiento de enfriamiento" msgid "Speed of the last cooling move" msgstr "Velocidad del último movimiento de enfriamiento" +#: src/libslic3r/PrintConfig.cpp:584 +msgid "Speed used at the very beginning of loading phase. " +msgstr "Velocidad utilizada al inicio de la fase de carga." + #: src/libslic3r/PrintConfig.cpp:585 msgid "Speed used at the very beginning of loading phase." msgstr "Velocidad utilizada al inicio de la fase de carga." +#: src/libslic3r/PrintConfig.cpp:576 +msgid "Speed used for loading the filament on the wipe tower. " +msgstr "Velocidad empleada para cargar el filamento en la torre de limpieza." + #: src/libslic3r/PrintConfig.cpp:577 msgid "Speed used for loading the filament on the wipe tower." msgstr "Velocidad empleada para cargar el filamento en la torre de limpieza." +#: src/libslic3r/PrintConfig.cpp:592 +msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming). " +msgstr "Velocidad empleada para descargar el filamento en la torre de limpieza (no afecta a la fase inicial de la descarga, sólo después de empujar)." + #: src/libslic3r/PrintConfig.cpp:593 msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)." msgstr "Velocidad empleada para descargar el filamento en la torre de limpieza (no afecta a la fase inicial de la descarga, sólo después de empujar)." +#: src/libslic3r/PrintConfig.cpp:601 +msgid "Speed used for unloading the tip of the filament immediately after ramming. " +msgstr "Velocidad utilizada para descargar la punta del filamento inmediatamente después del ramming." + #: src/libslic3r/PrintConfig.cpp:602 msgid "Speed used for unloading the tip of the filament immediately after ramming." msgstr "Velocidad utilizada para descargar la punta del filamento inmediatamente después del ramming." @@ -6100,6 +6692,10 @@ msgstr "Velocidad utilizada para descargar la punta del filamento inmediatamente msgid "Sphere" msgstr "Esfera" +#: src/slic3r/GUI/Tab.cpp:1254 +msgid "Spiral Vase" +msgstr "Modo Vaso" + #: src/libslic3r/PrintConfig.cpp:1717 msgid "Spiral vase" msgstr "Modo vaso" @@ -6117,6 +6713,10 @@ msgstr "Dividir el objeto seleccionado" msgid "Split the selected object into individual objects" msgstr "Dividir el objeto seleccionado en objetos individuales" +#: lib/Slic3r/GUI/Plater.pm:2293 +msgid "Split the selected object into individual parts" +msgstr "Dividir el objeto seleccionado en partes individuales" + #: src/slic3r/GUI/Plater.cpp:2968 src/slic3r/GUI/Plater.cpp:3008 msgid "Split the selected object into individual sub-parts" msgstr "Dividir el objeto seleccionado en subpartes individuales" @@ -6125,30 +6725,14 @@ msgstr "Dividir el objeto seleccionado en subpartes individuales" msgid "Split to objects" msgstr "Partir en varias piezas" -#: src/slic3r/GUI/Plater.cpp:2796 -msgid "Split to Objects" -msgstr "Partir en Varias Piezas" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1110 msgid "Split to parts" msgstr "Separar en piezas" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1904 -msgid "Split to Parts" -msgstr "Separar en Piezas" - #: src/libslic3r/PrintConfig.cpp:799 msgid "Stars" msgstr "Estrellas" -#: src/slic3r/GUI/MainFrame.cpp:376 -msgid "Start a new project" -msgstr "Empezar un nuevo proyecto" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Start at height" -msgstr "Comenzar en altura" - #: src/slic3r/GUI/Tab.cpp:1564 src/slic3r/GUI/Tab.cpp:1949 #: src/libslic3r/PrintConfig.cpp:1736 src/libslic3r/PrintConfig.cpp:1751 msgid "Start G-code" @@ -6162,6 +6746,10 @@ msgstr "Comenzar un nuevo proceso de laminado" msgid "Start printing after upload" msgstr "Empezar a imprimir después de subir" +#: src/libslic3r/SLA/SLASupportTree.cpp:2153 +msgid "Starting" +msgstr "Inicio" + #: src/slic3r/GUI/PrintHostDialogs.cpp:150 msgid "Status" msgstr "Estado" @@ -6178,15 +6766,15 @@ msgstr "Silencio" msgid "stealth mode" msgstr "modo silencioso" +#: lib/Slic3r/GUI/Plater.pm:1659 lib/Slic3r/GUI/Plater.pm:1701 +msgid "STL file exported to " +msgstr "Archivo STL exportado a " + #: src/slic3r/GUI/Plater.cpp:3545 -#, possible-c-format +#, c-format msgid "STL file exported to %s" msgstr "Archivo STL exportado a %s" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Stop at height" -msgstr "Parar en altura" - #: src/slic3r/GUI/Tab.cpp:1716 src/slic3r/GUI/Tab.cpp:1901 msgid "Success!" msgstr "¡Éxito!" @@ -6195,6 +6783,10 @@ msgstr "¡Éxito!" msgid "support" msgstr "soporte" +#: xs/src/slic3r/GUI/GUI.cpp:859 +msgid "Support" +msgstr "Soporte" + #: src/libslic3r/PrintConfig.cpp:2441 msgid "Support base diameter" msgstr "Diámetro de la base del soporte" @@ -6203,17 +6795,9 @@ msgstr "Diámetro de la base del soporte" msgid "Support base height" msgstr "Altura de la base del soporte" -#: src/libslic3r/PrintConfig.cpp:2566 -msgid "Support base safety distance" -msgstr "Distancia de seguridad de la base de soportes" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Support Blocker" -msgstr "Bloqueo de soporte" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Support Enforcer" -msgstr "Refuerzo de soporte" +#: src/slic3r/GUI/Tab.cpp:1316 +msgid "Support Generator" +msgstr "Generador de soportes" #: src/slic3r/GUI/Tab.cpp:3401 msgid "Support head" @@ -6274,10 +6858,6 @@ msgstr "Extrusor para el material de soporte/falda/balsa" msgid "Support on build plate only" msgstr "Soporte en la base solamente" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:991 -msgid "Support parameter change" -msgstr "Cambio de parámetros de soporte" - #: src/slic3r/GUI/Tab.cpp:3406 msgid "Support pillar" msgstr "Pilares de soporte" @@ -6294,9 +6874,13 @@ msgstr "Diámetro de los puntos de soporte" msgid "Support points density" msgstr "Densidad de los puntos de soporte" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1282 -msgid "Support points edit" -msgstr "Edición de puntos de soporte" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:888 +msgid "Support points density: " +msgstr "Densidad de los puntos de soporte:" + +#: xs/src/libslic3r/PrintConfig.cpp:896 +msgid "Support silent mode" +msgstr "Permitir modo silencioso" #: src/slic3r/GUI/GUI_ObjectList.cpp:78 src/slic3r/GUI/GUI_ObjectList.cpp:519 #: src/slic3r/GUI/Plater.cpp:418 src/slic3r/GUI/Tab.cpp:3397 @@ -6313,16 +6897,32 @@ msgstr "Soportes" #: src/slic3r/GUI/Plater.cpp:1018 msgid "supports and pad" -msgstr "soportes y pad" +msgstr "soportes y apoyos" #: src/libslic3r/PrintConfig.cpp:1043 msgid "Supports remaining times" msgstr "Compatible con tiempos restantes" +#: src/libslic3r/PrintConfig.cpp:1052 +msgid "Supports silent mode" +msgstr "Compatible con modo silencioso" + #: src/libslic3r/PrintConfig.cpp:1053 msgid "Supports stealth mode" msgstr "Soporta modo silencioso" +#: src/slic3r/GUI/Tab.cpp:1313 +msgid "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" +msgstr "" +"Los soportes funcionan mejor, si la siguiente característica está habilitada: \n" +"- Detectar perímetros de puente\n" +"\n" +"¿Debo ajustar esas configuraciones para los soportes?" + #: src/slic3r/GUI/Preferences.cpp:76 msgid "Suppress \" - default - \" presets" msgstr "Suprima los ajustes iniciales \"- predeterminado -\"" @@ -6348,17 +6948,27 @@ msgid "Switch to Preview" msgstr "Cambiar a Previsualización" #: src/slic3r/GUI/wxExtensions.cpp:2412 -#, possible-c-format +#, c-format msgid "Switch to the %s mode" msgstr "Cambiar al modo %s" #: src/slic3r/GUI/GUI_App.cpp:752 -msgid "Switching the language will trigger application restart.\nYou will lose content of the plater." -msgstr "Cambiar el idioma necesita reiniciar la aplicación.\nPerderás todo el contenido situado en la base." +msgid "" +"Switching the language will trigger application restart.\n" +"You will lose content of the plater." +msgstr "" +"Cambiar el idioma necesita reiniciar la aplicación.\n" +"Perderás todo el contenido situado en la base." #: src/slic3r/GUI/WipeTowerDialog.cpp:327 -msgid "Switching to simple settings will discard changes done in the advanced mode!\n\nDo you want to proceed?" -msgstr "¡Cambiar a los ajustes sencillos descartará los cambios realizados en el modo avanzado!\n\n¿Quiere continuar?" +msgid "" +"Switching to simple settings will discard changes done in the advanced mode!\n" +"\n" +"Do you want to proceed?" +msgstr "" +"¡Cambiar a los ajustes sencillos descartará los cambios realizados en el modo avanzado!\n" +"\n" +"¿Quiere continuar?" #: src/libslic3r/PrintConfig.cpp:1949 msgid "Synchronize support layers with the object print layers. This is useful with multi-material printers, where the extruder switch is expensive." @@ -6372,6 +6982,10 @@ msgstr "Sincronizar con capas las del objeto" msgid "System &Info" msgstr "&Información del Sistema" +#: lib/Slic3r/GUI/MainFrame.pm:355 +msgid "System Info" +msgstr "Información del Sistema" + #: src/slic3r/GUI/SysInfoDialog.cpp:44 msgid "System Information" msgstr "Información del sistema" @@ -6386,10 +7000,18 @@ msgstr "Ajustes del sistema" msgid "Take Configuration &Snapshot" msgstr "Tomar una &Captura de la configuración" +#: xs/src/slic3r/GUI/GUI.cpp:350 +msgid "Take Configuration Snapshot" +msgstr "Hacer una Instantánea de la Configuración" + #: src/slic3r/GUI/GUI_App.cpp:697 msgid "Taking configuration snapshot" msgstr "Haciendo una instantánea de la configuración" +#: src/slic3r/GUI/Tab.cpp:1478 +msgid "Temperature " +msgstr "Temperatura " + #: src/libslic3r/PrintConfig.cpp:1980 msgid "Temperature" msgstr "Temperatura" @@ -6410,32 +7032,45 @@ msgstr "Temperaturas" msgid "Test" msgstr "Test" -#: src/slic3r/GUI/BedShapeDialog.cpp:171 -msgid "Texture" -msgstr "Textura" +#: src/slic3r/GUI/Tab.cpp:1358 +msgid "The " +msgstr "El " + +#: src/slic3r/GUI/Tab.cpp:1362 +msgid "" +"The %1% infill pattern is not supposed to work at 100%% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +"El patrón de relleno %1% no está pensado para trabajar al 100%% de densidad. \n" +"\n" +"¿Debería cambiar a un patrón de relleno rectilíneo?" #: src/slic3r/GUI/FirmwareDialog.cpp:530 -#, possible-c-format +#, c-format msgid "The %s device could not have been found" msgstr "El dispositivo %s no se pudo encontrar" #: src/slic3r/GUI/FirmwareDialog.cpp:417 -#, possible-c-format -msgid "The %s device was not found.\nIf the device is connected, please press the Reset button next to the USB connector ..." -msgstr "No se encontró el dispositivo %s. \nSi el dispositivo está conectado, presione el botón Reset al lado del conector USB ..." +#, c-format +msgid "" +"The %s device was not found.\n" +"If the device is connected, please press the Reset button next to the USB connector ..." +msgstr "" +"No se encontró el dispositivo %s. \n" +"Si el dispositivo está conectado, presione el botón Reset al lado del conector USB ..." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640 -msgid "The currently manipulated object is tilted (rotation angles are not multiples of 90°).\nNon-uniform scaling of tilted objects is only possible in the World coordinate system,\nonce the rotation is embedded into the object coordinates." +msgid "" +"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n" +"Non-uniform scaling of tilted objects is only possible in the World coordinate system,\n" +"once the rotation is embedded into the object coordinates." msgstr "El objeto que está manipulando está inclinado (los ángulos de rotación no son múltiplos de 90º). El escalado no uniforme de objetos inclinados sólo es posible en sistema de coordenadas Mundo, una vez que la rotación se ha aplicado a las coordenadas del objeto." #: src/libslic3r/PrintConfig.cpp:2462 msgid "The default angle for connecting support sticks and junctions." msgstr "El ángulo por defecto para la conexión de sticks y uniones de soporte." -#: src/libslic3r/SLAPrint.cpp:670 -msgid "The endings of the support pillars will be deployed on the gap between the object and the pad. 'Support base safety distance' has to be greater than the 'Pad object gap' parameter to avoid this." -msgstr "Las terminaciones de los pilares de soporte se desplegarán en el espacio entre el objeto y el pad. La 'distancia de seguridad de la base de soporte' debe ser mayor que el parámetro 'Distancia entre objetos de relleno' para evitar esto." - #: src/libslic3r/PrintConfig.cpp:457 msgid "The extruder to use (unless more specific extruder settings are specified). This value overrides perimeter and infill extruders, but not the support extruders." msgstr "La extrusora que se usa (a menos que se especifiquen configuraciones de extrusión más específicas). Este valor anula los extrusores de perímetro y relleno, pero no los extrusores de soporte." @@ -6481,13 +7116,17 @@ msgstr "La primera capa se contraerá en el plano XY por el valor configurado pa msgid "the following characters are not allowed:" msgstr "los siguientes caracteres no están permitidos:" -#: src/slic3r/GUI/Tab.cpp:3311 -msgid "the following suffix is not allowed:" -msgstr "el siguiente sufijo no está permitido:" +#: src/slic3r/GUI/Tab.cpp:3283 +msgid "the following postfix are not allowed:" +msgstr "los siguientes postfix no están permitidos:" -#: src/libslic3r/PrintConfig.cpp:2702 -msgid "The gap between the object bottom and the generated pad in zero elevation mode." -msgstr "El espacio entre la parte de debajo del objeto y el pad generado en el modo de cero elevación." +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified" +msgstr "Los siguientes presets fueron modificados" + +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified: " +msgstr "Los siguientes presets fueron modificados:" #: src/libslic3r/PrintConfig.cpp:2453 msgid "The height of the pillar base cone" @@ -6501,10 +7140,6 @@ msgstr "La distancia máxima entre dos pilares par que se unan entre si. Un valo msgid "The max length of a bridge" msgstr "La longitud máxima de un puente" -#: src/libslic3r/PrintConfig.cpp:2569 -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 "La distancia mínima del modelo a la base de pilares en mm. Tiene sentido en el modo de cero elevación donde hay un hueco de acuerdo a cuando este parámetro se introduce entre el modelo y el pad." - #: src/libslic3r/PrintConfig.cpp:2176 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 "El objeto se crecerá / reducirá en el plano XY por el valor configurado (negativo = hacia adentro, positivo = hacia afuera). Esto podría ser útil para ajustar el tamaño de los orificios." @@ -6514,8 +7149,14 @@ msgid "The object will be raised by this number of layers, and support material msgstr "El objeto será elevado por este número de capas y se generará material de soporte debajo de él." #: src/libslic3r/PrintConfig.cpp:2259 -msgid "The percentage of the bed area. \nIf the print area exceeds the specified value, \nthen a slow tilt will be used, otherwise - a fast tilt" -msgstr "El porcentaje del área de la cama. \nSi el área de impresión excede el valor especificado, \nentonces se utilizará una inclinación lenta, de lo contrario - una inclinación rápida" +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 "" +"El porcentaje del área de la cama. \n" +"Si el área de impresión excede el valor especificado, \n" +"entonces se utilizará una inclinación lenta, de lo contrario - una inclinación rápida" #: src/slic3r/GUI/GUI_App.cpp:831 msgid "The presets on the following tabs were modified" @@ -6541,10 +7182,6 @@ msgstr "El objeto seleccionado no se puede dividir porque contiene más de un vo msgid "The selected object couldn't be split because it contains only one part." msgstr "El objeto seleccionado no se pudo dividir porque contiene solo una parte." -#: src/slic3r/GUI/MainFrame.cpp:410 -msgid "The selected project is no more available" -msgstr "El proyecto seleccionado no está diponible" - #: src/libslic3r/PrintConfig.cpp:2570 msgid "The slope of the pad wall relative to the bed plane. 90 degrees means straight walls." msgstr "La pendiente de la pared del pad en relación con el plano de la cama. 90 grados significa paredes rectas." @@ -6557,6 +7194,27 @@ msgstr "La velocidad de carga de un filamento en la extrusora después de la ret msgid "The speed for retractions (it only applies to the extruder motor)." msgstr "La velocidad para las retracciones (solo se aplica al motor del extrusor)." +#: src/slic3r/GUI/Tab.cpp:1247 +#, no-c-format +msgid "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" +msgstr "" +"El modo Vaso requiere: \n" +"- un perímetro \n" +"- sin capas sólidas superiores \n" +"- densidad de relleno del 0% \n" +"- sin material de soporte \n" +"- no ensure_vertical_shell_thickness \n" +"\n" +"¿Debo ajustar esos ajustes para habilitar el modo Vaso?" + #: src/libslic3r/Print.cpp:1187 msgid "The Spiral Vase option can only be used when printing a single object." msgstr "La opción Vaso en espiral solo puede ser usada cuando se imprime un solo objeto." @@ -6579,6 +7237,10 @@ msgstr "El nombre proporcionado no está disponible." msgid "The supplied name is not valid;" msgstr "El nombre proporcionado no es válido;" +#: c:\src\Slic3r\xs\src\slic3r\GUI\Tab.cpp:1785 +msgid "The supplied name is not valid; the following characters are not allowed:" +msgstr "El nombre proporcionado no es válido; los siguientes caracteres no están permitidos:" + #: src/libslic3r/Print.cpp:1268 msgid "The supplied settings will cause an empty print." msgstr "Los ajustes proporcionados causarán una impresión vacía." @@ -6592,13 +7254,33 @@ msgid "The vertical distance between object and support material interface. Sett msgstr "La distancia vertical entre el objeto y la interfaz del material de soporte. Establecer esto en 0 también evitará que Slic3r use el flujo y la velocidad del puente para la primera capa de los objetos." #: src/slic3r/GUI/Tab.cpp:2429 -msgid "The Wipe option is not available when using the Firmware Retraction mode.\n\nShall I disable it in order to enable Firmware Retraction?" +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 "La opción Limpiar no está disponible cuando se usa el modo Retracción de firmware. ¿Lo inhabilito para habilitar la Retracción de firmware?" +#: src/slic3r/GUI/Tab.cpp:1277 +msgid "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool change.\n" +"(both support_material_extruder and support_material_interface_extruder need to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" +msgstr "" +"Actualmente, la Torre de Limpieza solo admite los soportes no solubles si se imprimen con la extrusora actual sin activar un cambio de herramienta.\n" +"(ambos support_material_extruder y support_material_interface_extruder deben configurarse en 0). \n" +"\n" +"¿Debo ajustar esos ajustes para habilitar la Torre de Limpieza?" + #: src/libslic3r/Print.cpp:1306 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 support_material_extruder and support_material_interface_extruder need to be set to 0)." msgstr "La Torre de Limpieza actualmente admite los soportes no solubles solo si están impresos con el extrusor actual sin activar un cambio de herramienta. (Tanto support_material_extruder como support_material_interface_extruder deben configurarse en 0)." +#: xs/src/libslic3r/Print.cpp:617 +msgid "The Wipe Tower is currently only supported for the Marlin and RepRap/Sprinter G-code flavors." +msgstr "La torre de limpieza solo es compatible actualmente con los tipos de código G Marlin y RepRap/Sprinter." + #: src/libslic3r/Print.cpp:1200 msgid "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors." msgstr "Actualmente, La Torre de Limpieza solo es compatible con los tipos de código G de Marlin, RepRap/Sprinter y Repetier." @@ -6623,16 +7305,16 @@ msgstr "La torre de limpieza sólo es compatible con varios objetos si se cortan msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heights" msgstr "La torre de limpieza sólo es compatible con varios objetos si tienen alturas de capas iguales" -#: src/libslic3r/Print.cpp:1155 -msgid "The wipe tower is only supported if all extruders have the same nozzle diameter and use filaments of the same diameter." -msgstr "La torre de limpieza solo es compatible si todos los extrusores tienen el mismo diámetro del nozzle y usan filamento del mismo diámetro." +#: src/libslic3r/Print.cpp:1223 +msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heigths" +msgstr "La torre de limpieza sólo es compatible con varios objetos si tienen alturas de capas iguales" #: src/libslic3r/Print.cpp:1258 msgid "The Wipe tower is only supported if all objects have the same layer height profile" msgstr "La torre de limpieza sólo se permite si todos los objetos tienen el mismo perfil de altura de capa" #: src/slic3r/GUI/UpdateDialogs.cpp:127 -#, possible-c-format +#, c-format msgid "This %s version: %s" msgstr "Esta %s versión: %s" @@ -6640,10 +7322,6 @@ msgstr "Esta %s versión: %s" msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." msgstr "Este código se inserta entre los objetos cuando se utiliza la impresión secuencial. Por defecto, el extrusor y la temperatura de la cama se reinician utilizando un comando de no espera; sin embargo, si se detectan M104, M109, M140 o M190 en este código personalizado, Slic3r no agregará comandos de temperatura. Tenga en cuenta que puede usar variables de marcador de posición para todas las configuraciones de Slic3r, por lo que puede poner un comando \"M109 S [first_layer_temperature]\" donde lo desee." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted at every extruder change. If you don't leave this empty, you are expected to take care of the toolchange yourself - PrusaSlicer will not output any other G-code to change the filament. You can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder], so e.g. the standard toolchange command can be scripted as T[next_extruder]." -msgstr "Este código personalizado se inserta en cada cambio de extrusor. Si no lo dejas vacío, se espera que usted mismo te encarges del cambio de herramienta: PrusaSlicer no generará ningún otro código G para cambiar el filamento. Puedes usar variables de marcador de posición para todas las configuraciones de Slic3r, así como [previous_extruder] y[next_extruder], por ejemplo el comando de cambio de herramienta estándar se puede escribir como T[next_extruder]." - #: src/libslic3r/PrintConfig.cpp:1032 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 use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Este código personalizado se inserta en cada cambio de capa, justo después del movimiento Z y antes de que el extrusor se mueva al primer punto de capa. Tenga en cuenta que puede usar variables de marcador de posición para todos los ajustes de Slic3r, así como [layer_num] y [layer_z]." @@ -6652,17 +7330,17 @@ msgstr "Este código personalizado se inserta en cada cambio de capa, justo desp msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Este código personalizado se inserta en cada cambio de capa, justo antes del movimiento Z. Tenga en cuenta que puede usar variables de marcador de posición para todos los ajustes de Slic3r, así como [layer_num] y [layer_z]." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange." -msgstr "Este código personalizado se inserta antes de cada cambio de herramienta. Se pueden utilizar variables de marcador de posición para todas las configuraciones de PrusaSlicer, así como {previous_extruder} y {next_extruder}. Cuando se incluye un comando de cambio de herramienta que cambia al extrusor correcto (como T{next_extruder}), PrusaSlicer no emitirá ningún otro comando. Por lo tanto, es posible escribir un comportamiento personalizado antes y después del cambio de herramienta." - -#: src/libslic3r/PrintConfig.cpp:380 -msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Este procedimiento final se inserta al final del archivo de salida, antes del código G final de la impresora (y antes de cualquier cambio de herramienta desde este filamento en el caso de impresoras multimateriales). Ten en cuenta que puede usar variables de marcador de posición para todas las configuraciones de PrusaSlicer. Si tienes varios extrusores, el código G se procesa en orden de extrusor." +#: src/libslic3r/PrintConfig.cpp:2007 +msgid "This custom code is inserted right before every extruder change. Note that you can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder]." +msgstr "Este código personalizado se inserta justo antes de cada cambio de extrusor. Tenga en cuenta que puede usar variables de marcador de posición para todas las configuraciones de Slic3r, así como para [previous_extruder] y [next_extruder]." #: src/libslic3r/PrintConfig.cpp:370 -msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all PrusaSlicer settings." -msgstr "Este procedimiento final se inserta al final del archivo de salida. Ten en cuenta que puedes usar variables de marcador de posición para todas las configuraciones de PrusaSlicer." +msgid "This end procedure is inserted at the end of the output file, before the printer end gcode. Note that you can use placeholder variables for all Slic3r settings. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Este procedimiento final se inserta al final del archivo de salida, antes del gcode final. Tenga en cuenta que puede usar variables de marcador de posición para todas las configuraciones de Slic3r. Si tiene extrusores múltiples, el gcode se procesa en el orden del extrusor." + +#: src/libslic3r/PrintConfig.cpp:360 +msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all Slic3r settings." +msgstr "Este procedimiento final se inserta al final del archivo de salida. Tenga en cuenta que puede usar variables de marcador de posición para todas las configuraciones de Slic3r." #: src/libslic3r/PrintConfig.cpp:1193 src/libslic3r/PrintConfig.cpp:1204 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 of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." @@ -6712,14 +7390,33 @@ msgstr "Esta función aumentará Z gradualmente mientras imprime un objeto de pa msgid "This file cannot be loaded in a simple mode. Do you want to switch to an advanced mode?\n" msgstr "Este archivo no puede ser cargado en un modo sencillo. ¿Quieres cambiar al modo experto?\n" +#: src/slic3r/GUI/Plater.cpp:1650 +msgid "This file cannot be loaded in simple mode. Do you want to switch to expert mode?\n" +msgstr "Este archivo no puede ser cargado en modo sencillo. ¿Quieres cambiar al modo experto?\n" + #: src/slic3r/GUI/Plater.cpp:1658 -msgid "This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\nthis file as a single object having multiple parts?\n" -msgstr "Este archivo contiene varios objetos posicionados en múltiples alturas. En lugar de considerarlos como objetos múltiples, ¿debería considerar\n este archivo como un único objeto que tiene varias partes?\n" +msgid "" +"This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\n" +"this file as a single object having multiple parts?\n" +msgstr "" +"Este archivo contiene varios objetos posicionados en múltiples alturas. En lugar de considerarlos como objetos múltiples, ¿debería considerar\n" +" este archivo como un único objeto que tiene varias partes?\n" #: src/slic3r/GUI/FirmwareDialog.cpp:313 -#, possible-c-format -msgid "This firmware hex file does not match the printer model.\nThe hex file is intended for: %s\nPrinter reported: %s\n\nDo you want to continue and flash this hex file anyway?\nPlease only continue if you are sure this is the right thing to do." -msgstr "Este archivo hex del firmware no se corresponde con el modelo de impresora. El archivo hex está preparado para: %s\nEsta Impresora: %s\n\n¿Quieres continuar y grabar este archivo hex de todos modos?\nPor favor continúa solo si estás seguro de que es lo correcto." +#, c-format +msgid "" +"This firmware hex file does not match the printer model.\n" +"The hex file is intended for: %s\n" +"Printer reported: %s\n" +"\n" +"Do you want to continue and flash this hex file anyway?\n" +"Please only continue if you are sure this is the right thing to do." +msgstr "" +"Este archivo hex del firmware no se corresponde con el modelo de impresora. El archivo hex está preparado para: %s\n" +"Esta Impresora: %s\n" +"\n" +"¿Quieres continuar y grabar este archivo hex de todos modos?\n" +"Por favor continúa solo si estás seguro de que es lo correcto." #: src/libslic3r/PrintConfig.cpp:278 msgid "This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer printing time." @@ -6737,22 +7434,10 @@ msgstr "Esta bandera impone una retractación cada vez que se realiza un movimie msgid "This flag will move the nozzle while retracting to minimize the possible blob on leaky extruders." msgstr "Esta bandera moverá la boquilla mientras se retrae para minimizar la posible mancha en los extrusores con fugas." -#: src/slic3r/GUI/Tab.cpp:921 -msgid "This is a default preset." -msgstr "Este es un preajuste preestablecido." - #: src/libslic3r/PrintConfig.cpp:2501 msgid "This is a relative measure of support points density." msgstr "Esta es una medida relativa de la densidad de los puntos de soporte." -#: src/slic3r/GUI/Tab.cpp:2528 -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 "Esta es una impresora multimaterial de extrusor único, los diámetros de todas los extrusores se establecerán según el nuevo valor. ¿Quieres proceder?" - -#: src/slic3r/GUI/Tab.cpp:923 -msgid "This is a system preset." -msgstr "Este es un preajuste del sistema." - #: src/libslic3r/PrintConfig.cpp:491 src/libslic3r/PrintConfig.cpp:551 msgid "This is only used in the Slic3r interface as a visual help." msgstr "Esto solo se usa en la interfaz de Slic3r como ayuda visual." @@ -6790,13 +7475,21 @@ msgstr "Esta es la altura más alta imprimible de capa para este extrusor, que s 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 "Esta es la altura más baja de la capa imprimible para este extrusor y limita la resolución para la altura de la capa variable. Los valores típicos están entre 0.05 mm y 0.1 mm." +#: src/libslic3r/PrintConfig.cpp:2114 +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 "Esta matriz detalla los volúmenes (en milímetros cúbicos) necesarios para purgar el nuevo filamento en la torre de limpieza para cualquier par de filamentos. " + #: src/libslic3r/PrintConfig.cpp:2139 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 "Esta matriz detalla los volúmenes (en milímetros cúbicos) necesarios para purgar el nuevo filamento en la torre de limpieza para cualquier par de filamentos." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:643 -msgid "This operation is irreversible.\nDo you want to proceed?" -msgstr "Esta operación es irreversible. \n¿Deseas continuar?" +msgid "" +"This operation is irreversible.\n" +"Do you want to proceed?" +msgstr "" +"Esta operación es irreversible. \n" +"¿Deseas continuar?" #: src/libslic3r/PrintConfig.cpp:1372 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 surfaces which benefit from a higher number of perimeters if the Extra Perimeters option is enabled." @@ -6838,13 +7531,22 @@ msgstr "Esta configuración representa la velocidad máxima de su ventilador." msgid "This setting represents the minimum PWM your fan needs to work." msgstr "Este ajuste representa el PWM mínimo que el ventilador necesita para funcionar." -#: src/libslic3r/PrintConfig.cpp:1801 -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 printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Este procedimiento de inicio se inserta al principio, después de que cualquier impresora inicie un código G(y después de cualquier cambio de herramienta a este filamento en el caso de impresoras de materiales múltiples). Esto se utiliza para anular la configuración de un filamento específico. Si PrusaSlicer detecta un M104, M109, M140 o M190 en tus códigos personalizados, dichos comandos no se agregarán automáticamente, por lo que puede personalizar el orden de los comandos de calentamiento y otras acciones personalizadas. Ten en cuenta que puedes usar variables de marcador de posición para todas las configuraciones de PrusaSlicer, por lo que puedes colocar un comando \"M109 S [first_layer_temperature]\" donde lo desees. Si tienes varias extrusorrs, el código G se procesa en el orden del extrusor." +#: src/slic3r/GUI/UpdateDialogs.cpp:123 +#, c-format +msgid "This Slic3r PE version: %s" +msgstr "Esta versión de Slic3r: %s" + +#: src/libslic3r/PrintConfig.cpp:1752 +msgid "This start procedure is inserted at the beginning, after any printer start gcode. This is used to override settings for a specific filament. If Slic3r detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Este procedimiento de inicio se inserta en el principio, después de que la impresora haya realizado el g-code de inicio. Si Slic3r detecta un M104, M109, M140 o M190 en los g-codes custom, estos comandos no se iniciarán automaticamente por lo que eres libre de personalizar el orden de calentamiento y otras acciones. Fíjate que puedes utilizar variables de marcación de posición para todos los ajustes de Slic3r, como que puedes usar \"M109 S[first_layer_temperature]\" donde quieras. Si tienes varios extrusores, el g-code se procesará en el orden de estos." -#: src/libslic3r/PrintConfig.cpp:1786 -msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." -msgstr "Este procedimiento de inicio se inserta al principio, después de que la bse ha alcanzado la temperatura objetivo y el extrusor acaba de comenzar a calentar, y antes de que el extrusor haya terminado de calentar. Si PrusaSlicer detecta un M104 o M190 en tus códigos personalizados, dichos comandos no se agregarán automáticamente, por lo que se puede personalizar el orden de los comandos de calentamiento y otras acciones personalizadas. Ten en cuenta que puedes usar variables de marcador de posición para todas las configuraciones de PrusaSlicer, por lo que puedes colocar un comando \"M109 S [first_layer_temperature]\" donde lo desees." +#: src/libslic3r/PrintConfig.cpp:1737 +msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If Slic3r detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "Este procedimiento de inicio se inserta en el principio, después de que la cama ha llegado a la temperatura objetivo y el extrusor ha comenzado a calentarse, y después de que haya completado el calentamiento. Si Slic3r detecta un M104 o M190 en los g-codes custom, estos comandos no se iniciarán automaticamente por lo que eres libre de personalizar el orden de calentamiento y otras acciones. Fíjate que puedes utilizar variables de marcación de posición para todos los ajustes de Slic3r, como que puedes usar \"M109 S[first_layer_temperature]\" donde quieras." + +#: src/libslic3r/PrintConfig.cpp:663 +msgid "This string is edited by RammingDialog and contains ramming specific parameters " +msgstr "Esta cadena se modifica con el Diálogo de Empuje y contiene parámetros específicos de empuje " #: src/libslic3r/PrintConfig.cpp:664 msgid "This string is edited by RammingDialog and contains ramming specific parameters." @@ -6854,14 +7556,40 @@ msgstr "Esta cadena se modifica con el Diálogo de Empuje y contiene parámetros 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 example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)." msgstr "Este valor será añadido (o eliminado) de todas las coordenadas Z en el G-code de salida. Se usa para compensar una mala posición del final de carrera Z: por ejemplo, si tu interruptor deja la boquilla a 0.3mm de la base de impresión, ajustalo a -0.3 (o arregla tu interruptor)." +#: src/libslic3r/PrintConfig.cpp:2107 +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 "Este vector guarda los volúmenes necesarios para cambiar desde/hasta cada herramienta usada en la torre de limpieza. Estos valores se emplean para simplificar la creación de los volúmenes totales de purga más abajo." + #: src/libslic3r/PrintConfig.cpp:2132 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 "Este vector guarda los volúmenes necesarios para cambiar desde/hasta cada herramienta usada en la torre de limpieza. Estos valores se emplean para simplificar la creación de los volúmenes totales de purga más abajo." #: src/slic3r/GUI/UpdateDialogs.cpp:118 -#, possible-c-format -msgid "This version of %s is not compatible with currently installed configuration bundles.\nThis probably happened as a result of running an older %s after using a newer one.\n\nYou may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" -msgstr "Esta versión de %s no es compatible con los grupos de configuraciones instaladas. Esto sucede probablemente por ejecutar una versión de %s después de haber usado una más reciente.\n\nPuedes salir de %s e intentarlo de nuevo con una versión más reciente, o puedes volver a ejecutar la configuración inicial. Al hacerlo se creará una copia de respaldo de la configuración existente antes de instalar la nueva compatible con esta versión de %s.\n" +#, c-format +msgid "" +"This version of %s is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older %s after using a newer one.\n" +"\n" +"You may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" +msgstr "" +"Esta versión de %s no es compatible con los grupos de configuraciones instaladas. Esto sucede probablemente por ejecutar una versión de %s después de haber usado una más reciente.\n" +"\n" +"Puedes salir de %s e intentarlo de nuevo con una versión más reciente, o puedes volver a ejecutar la configuración inicial. Al hacerlo se creará una copia de respaldo de la configuración existente antes de instalar la nueva compatible con esta versión de %s.\n" + +#: src/slic3r/GUI/UpdateDialogs.cpp:114 +msgid "" +"This version of Slic3r PE is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older Slic3r PE after using a newer one.\n" +"\n" +"You may either exit Slic3r and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this Slic3r.\n" +msgstr "" +"Esta versión de Slic3r PE no es compatible con los grupos de configuraciones instaladas. Esto sucede probablemente por ejecutar una versión de Slic3r PE después de haber usado una más reciente.\n" +"\n" +"Puedes salir de Slic3r e intentarlo de nuevo con una versión más reciente, o puedes volver a ejecutar la configuración inicial. Al hacerlo se creará una copia de respaldo de la configuración existente antes de instalar la nueva compatible con esta versión de Slic3r.\n" + +#: src/libslic3r/PrintConfig.cpp:2282 +msgid "This will apply a gamm correction to the rasterized 2D polygons." +msgstr "Esto aplicará una corrección gamma a los polígonos 2D rasterizados." #: src/libslic3r/PrintConfig.cpp:2284 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." @@ -6903,6 +7631,10 @@ msgstr "Tiempo de la inclinación rápida" msgid "Time of the slow tilt" msgstr "Tiempo de la inclinación lenta" +#: src/libslic3r/PrintConfig.cpp:609 +msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions. " +msgstr "Tiempo de espera después de que se ha descargado el filamento. Puede ayudar para conseguir cambios de herramienta fiables con materiales flexibles que pueden necesitar más tiempo para encogerse a su tamaño original." + #: src/libslic3r/PrintConfig.cpp:610 msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions." msgstr "Tiempo de espera después de que se ha descargado el filamento. Puede ayudar para conseguir cambios de herramienta fiables con materiales flexibles que pueden necesitar más tiempo para encogerse a su tamaño original." @@ -6911,6 +7643,10 @@ msgstr "Tiempo de espera después de que se ha descargado el filamento. Puede ay msgid "To do that please specify a new name for the preset." msgstr "Para hacerlo por favor especifique un nuevo nombre para esos ajustes." +#: src/slic3r/GUI/UpdateDialogs.cpp:37 +msgid "To download, follow the link below." +msgstr "Para descargar, sigue el enlace que hay más abajo." + #: src/slic3r/GUI/Plater.cpp:2966 msgid "To objects" msgstr "A los objetos" @@ -6919,11 +7655,6 @@ msgstr "A los objetos" msgid "To parts" msgstr "A las piezas" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:212 -#, possible-c-format -msgid "Toggle %c axis mirroring" -msgstr "Activar reflejo del eje %c" - #: src/libslic3r/Zipper.cpp:37 msgid "too many files" msgstr "demasiados archivos" @@ -6972,6 +7703,10 @@ msgstr "Capas solidas superiores" msgid "Top View" msgstr "Vista superior" +#: xs/src/libslic3r/PrintConfig.cpp:283 +msgid "Top/bottom fill pattern" +msgstr "Patrón de relleno superior/inferior" + #: src/slic3r/GUI/WipeTowerDialog.cpp:247 msgid "Total purging volume is calculated by summing two values below, depending on which tools are loaded/unloaded." msgstr "El volumen total de purga se calcula sumando dos valors más abajo, dependiendo de qué filamentos se carguen/descarguen." @@ -7004,34 +7739,18 @@ msgstr "Intenta reparar cualquier malla no múltiple (esta opción se agrega imp msgid "Type of the printer." msgstr "Tipo de impresora." -#: src/slic3r/GUI/GUI_ObjectList.cpp:2549 -msgid "Type:" -msgstr "Tipo:" - #: src/libslic3r/Zipper.cpp:35 msgid "undefined error" msgstr "error no definido" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3609 -#: src/slic3r/GUI/MainFrame.cpp:559 -msgid "Undo" -msgstr "Deshacer" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Undo %1$d Action" -msgid_plural "Undo %1$d Actions" -msgstr[0] "Deshacer %1$d Acción" -msgstr[1] "Deshacer %1$d Acciones" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Undo History" -msgstr "Deshacer Historia" - #: src/libslic3r/Zipper.cpp:59 msgid "unexpected decompressed size" msgstr "tamaño de descompresión inesperado" +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Uniformly…" +msgstr "Uniformemente…" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:27 msgid "Unknown" msgstr "Desconocido" @@ -7056,13 +7775,29 @@ msgstr "Velocidad de descarga al inicio" msgid "UNLOCKED LOCK" msgstr "CANDADO ABIERTO" -#: src/slic3r/GUI/Tab.cpp:3362 -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.\nClick to reset all settings for current option group to the system (or default) values." -msgstr "El icono de CANDADO DESBLOQUEADO indica que se cambiaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados) para el grupo de opciones actual.\nHaz clic para restablecer todas las configuraciones para el grupo de opciones actual a los valores del sistema (o predeterminados)." +#: src/slic3r/GUI/Tab.cpp:3105 +msgid "" +"UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click to reset all settings for current option group to the system values." +msgstr "" +"El CANDADO ABIERTO indica que algunos de los ajustes cambiaron y que no son iguales a los valores del sistema para el grupo de opciones actual. \n" +"Haz clic para restaurar los ajustes del grupo de opciones actual a los valores del sistema." + +#: src/slic3r/GUI/Tab.cpp:3120 +msgid "" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system value.\n" +"Click to reset current value to the system value." +msgstr "" +"El CANDADO ABIERTO indica que el valor cambió y ya no es igual al valor del sistema. \n" +"Haz clic para devolver el valor al valor del sistema." -#: src/slic3r/GUI/Tab.cpp:3377 -msgid "UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\nClick to reset current value to the system (or default) value." -msgstr "El icono de CANDADO DESBLOQUEADO indica que se cambiaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados).\nHaz clic para reiniciar el valor actual a los del sistema (o predeterminados)" +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "" +"UNLOCKED LOCK;indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"CANDADO CERRADO;indica que algunos de los ajustes se modificaron y no son iguales a los valores almacenados para el grupo de opciones actual.\n" +"Haz clic en el CANDADO CERRADO para devolver los valores del grupo de opciones actual a los valores del sistema." #: src/slic3r/GUI/GUI_Preview.cpp:245 msgid "Unretractions" @@ -7077,8 +7812,8 @@ msgid "Unsaved Presets" msgstr "Ajustes iniciales no guardados" #: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Unselect gizmo / Clear selection" -msgstr "Deseleccionar gizmo / eliminar selección" +msgid "Unselect gizmo, keep object selection" +msgstr "Deseleccionar gizmo, mantener selección de objeto" #: src/libslic3r/Zipper.cpp:63 msgid "unsupported central directory size" @@ -7100,16 +7835,12 @@ msgstr "método no compatible" msgid "unsupported multidisk archive" msgstr "archivo multidisk no compatible" -#: src/slic3r/GUI/GUI_App.cpp:305 -msgid "Unsupported OpenGL version" -msgstr "Versión de OpenGL no soportada" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2414 msgid "Unsupported selection" msgstr "Selección no soportada" #: src/libslic3r/GCode/PreviewData.cpp:495 -#, possible-c-format +#, c-format msgid "up to %.2f mm" msgstr "hasta %.2f mm" @@ -7137,6 +7868,10 @@ msgstr "Actualización" msgid "Upload a firmware image into an Arduino based printer" msgstr "Cargar una imagen de firmware a una impresora basada en Arduino" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Upload to OctoPrint with the following filename:" +msgstr "Subir a Octoprint con el siguiente nombre de archivo:" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Upload to Printer Host with the following filename:" msgstr "Cargar el host de impresión con el siguiente nombre de archivo:" @@ -7158,10 +7893,6 @@ msgstr "Conexión USB/Serial" msgid "USB/serial port for printer connection." msgstr "Puerto USB/serial para la conexión con la impresora." -#: src/slic3r/GUI/Preferences.cpp:117 -msgid "Use custom size for toolbar icons" -msgstr "Usar tamaño personalizado para los iconos de la barra de herramientas" - #: src/libslic3r/PrintConfig.cpp:2060 msgid "Use firmware retraction" msgstr "Usar la retracción del firmware" @@ -7170,14 +7901,14 @@ msgstr "Usar la retracción del firmware" msgid "Use forward slashes ( / ) as a directory separator if needed." msgstr "Use barras diagonales ( / ) como separadores de directorios si fuese necesario." +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "Use legacy OpenGL 1.1 rendering" +msgstr "Usar el renderizado OpenGL 1.1" + #: src/libslic3r/PrintConfig.cpp:2515 msgid "Use pad" msgstr "Usar pad" -#: src/slic3r/GUI/Preferences.cpp:110 -msgid "Use perspective camera" -msgstr "Usar cámara en perspectiva" - #: src/libslic3r/PrintConfig.cpp:2067 msgid "Use relative E distances" msgstr "Usar las distancias relativas en E" @@ -7239,10 +7970,18 @@ msgstr "El valor es el mismo que el del sistema" msgid "Value was changed and is not equal to the system value or the last saved preset" msgstr "El valor ha cambiado y ya no es igual al valor del sistema o al último valor guardado" +#: src/slic3r/GUI/Tab.cpp:2150 +msgid "Values in this column are for Full Power mode" +msgstr "Los valores en esta columna son para el modo Máxima Potencia" + #: src/slic3r/GUI/Tab.cpp:2151 msgid "Values in this column are for Normal mode" msgstr "Los valores en esta columna son para el modo Normal" +#: src/slic3r/GUI/Tab.cpp:2156 +msgid "Values in this column are for Silent mode" +msgstr "Los valores de esta columna son para el modo Silencioso" + #: src/slic3r/GUI/Tab.cpp:2157 msgid "Values in this column are for Stealth mode" msgstr "Los valores en esta columna son para el modo Silencioso" @@ -7259,6 +7998,10 @@ msgstr "fabricante" msgid "Verbose G-code" msgstr "Código G detallado" +#: lib/Slic3r/GUI/MainFrame.pm:66 +msgid "Version " +msgstr "Versión " + #: src/slic3r/GUI/AboutDialog.cpp:67 src/slic3r/GUI/MainFrame.cpp:53 msgid "Version" msgstr "Versión" @@ -7288,18 +8031,10 @@ msgstr "Volumen" msgid "Volume to purge (mm³) when the filament is being" msgstr "Volumen a purgar (mm³) cuando el filamento está siendo" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Volumes in Object reordered" -msgstr "Volúmenes en Objetos reordenados" - #: src/slic3r/GUI/PresetHints.cpp:216 msgid "Volumetric" msgstr "Volumétrico" -#: src/slic3r/GUI/Tab.cpp:1800 -msgid "Volumetric flow hints not available" -msgstr "Sugerencias de flujo volumétrico no disponibles" - #: src/slic3r/GUI/GUI_Preview.cpp:216 msgid "Volumetric flow rate" msgstr "Tasa de caudal volumétrico" @@ -7321,24 +8056,46 @@ msgstr "Peligro" msgid "Welcome" msgstr "Bienvenido" +#: src/slic3r/GUI/ConfigWizard.cpp:294 +#, c-format +msgid "Welcome to the %s %s" +msgstr "Bienvenido a %s %s" + #: src/slic3r/GUI/ConfigWizard.cpp:296 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Assistant" msgstr "Bienvenido al %s Asistente de Configuración" #: src/slic3r/GUI/ConfigWizard.cpp:298 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Wizard" msgstr "Bienvenido al %s Ayudante de Configuración" +#: src/slic3r/GUI/ConfigWizard.cpp:284 +#, c-format +msgid "Welcome to the Slic3r %s" +msgstr "Bienvenido a Slic3r %s" + +#: lib/Slic3r/GUI/Plater/2D.pm:131 +msgid "What do you want to print today? ™" +msgstr "¿Qué quieres imprimir hoy? ™" + #: src/slic3r/GUI/Preferences.cpp:86 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 "Cuando está marcada, los ajustes preestablecidos de impresión y filamento se muestran en el editor de ajustes preestablecidos, incluso si están marcados como incompatibles con la impresora activa" +#: src/slic3r/GUI/PresetHints.cpp:221 +msgid "when printing " +msgstr "cuando se imprime " + #: src/slic3r/GUI/PresetHints.cpp:223 msgid "when printing" msgstr "al imprimir" +#: src/libslic3r/PrintConfig.cpp:216 +msgid "When printing multi-material objects, this settings will make slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "Al imprimir objetos multi-material, esta configuración hará que slic3r recorte las partes del objeto superpuestas una por la otra (la 2da parte será recortada por la 1ra, la 3ra parte será recortada por la 1ra y 2da, etc.)." + #: src/libslic3r/PrintConfig.cpp:217 msgid "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." msgstr "Al imprimir objetos multi-material, esta configuración hará que slic3r recorte las partes del objeto superpuestas una por la otra (la 2da parte será recortada por la 1ra, la 3ra parte será recortada por la 1ra y 2da, etc.)." @@ -7359,6 +8116,10 @@ msgstr "Cuando se desencadena la retracción antes de cambiar la herramienta, el 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 "Cuando se activa la retracción, el filamento se retira en la cantidad especificada (la longitud se mide en el filamento sin procesar, antes de que entre en el extrusor)." +#: src/libslic3r/PrintConfig.cpp:1322 +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 positive, it is loaded further, if negative, the loading move is shorter than unloading. " +msgstr "Cuando se establece en cero, la distancia que el filamento se mueve desde la posición de estacionamiento durante la carga es exactamente la misma que se usó durante la descarga. Cuando es positivo, se carga más lejos, si es negativo, el movimiento de carga es más corto que el de descarga." + #: src/libslic3r/PrintConfig.cpp:1347 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 positive, it is loaded further, if negative, the loading move is shorter than unloading." msgstr "Cuando se establece en cero, la distancia que el filamento se mueve desde la posición de estacionamiento durante la carga es exactamente la misma que se usó durante la descarga. Cuando es positivo, se carga más lejos, si es negativo, el movimiento de carga es más corto que el de descarga." @@ -7379,9 +8140,9 @@ msgstr "Cuando la retracción se compensa después de un movimiento, el extrusor msgid "WHITE BULLET" msgstr "VIÑETA BLANCA" -#: src/slic3r/GUI/Tab.cpp:3365 -msgid "WHITE BULLET icon indicates a non system (or non default) preset." -msgstr "El icono de VIÑETA BLANCA un ajuste no del sistema (o no por defecto)" +#: src/slic3r/GUI/Tab.cpp:3108 +msgid "WHITE BULLET icon indicates a non system preset." +msgstr "El símbolo de VIÑETA BLANCA indica un ajuste que no es del sistema." #: src/slic3r/GUI/Tab.cpp:3111 msgid "WHITE BULLET icon indicates that the settings are the same as in the last saved preset for the current option group." @@ -7391,6 +8152,12 @@ msgstr "El símbolo de VIÑETA BLANCA indica que los ajustes son los mismos que msgid "WHITE BULLET icon indicates that the value is the same as in the last saved preset." msgstr "El símbolo de VIÑETA BLANCA indica que los valores son los mismos que los de los ajustes guardados la última vez." +#: src/slic3r/GUI/Tab.cpp:3073 +msgid "" +"WHITE BULLET;for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "El símbolo de VIÑETA BLANCA;para el botón izquierdo: indica un ajuste no original, para el botón derecho: indica que el ajuste no se ha modificado." + #: src/slic3r/GUI/GUI_Preview.cpp:214 src/libslic3r/PrintConfig.cpp:2137 msgid "Width" msgstr "Ancho" @@ -7407,10 +8174,6 @@ msgstr "Ancho desde el centro de la esfera trasera al centro de la esfera delant msgid "Width of a wipe tower" msgstr "Ancho de la torre de limpieza" -#: src/libslic3r/PrintConfig.cpp:2761 -msgid "Width of the connector sticks which connect the object and the generated pad." -msgstr "Ancho de los palitos de apoyo que conectan la pieza y la base generada." - #: src/libslic3r/PrintConfig.cpp:2203 msgid "Width of the display" msgstr "Ancho de la pantalla" @@ -7419,6 +8182,11 @@ msgstr "Ancho de la pantalla" msgid "will always run at %1%%%" msgstr "siempre funcionará al %1%%%" +#: src/slic3r/GUI/PresetHints.cpp:43 +#, c-format +msgid "will always run at %d%% " +msgstr "siempre funcionará al %d %% " + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "will be turned off." msgstr "será apagada." @@ -7435,17 +8203,15 @@ msgstr "Limpiar en el objeto" msgid "Wipe into this object's infill" msgstr "Limpiar en el relleno del objeto" -#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:90 -#: src/slic3r/GUI/GUI_ObjectList.cpp:564 src/libslic3r/PrintConfig.cpp:2202 -#: src/libslic3r/PrintConfig.cpp:2210 -msgid "Wipe options" -msgstr "Opciones de limpieza" - #: src/slic3r/GUI/GUI_Preview.cpp:238 src/slic3r/GUI/Tab.cpp:1130 #: src/libslic3r/GCode/PreviewData.cpp:174 msgid "Wipe tower" msgstr "Torre de limpieza" +#: src/slic3r/GUI/Tab.cpp:1281 src/slic3r/GUI/Tab.cpp:1298 +msgid "Wipe Tower" +msgstr "Torre de limpieza" + #: src/slic3r/GUI/Plater.cpp:1043 src/slic3r/GUI/Plater.cpp:1058 msgid "wipe tower" msgstr "torre de limpieza" @@ -7454,25 +8220,29 @@ msgstr "torre de limpieza" msgid "Wipe tower - Purging volume adjustment" msgstr "Torre de limpieza - Ajuste del volumen de purga" -#: src/slic3r/GUI/Tab.cpp:1664 -msgid "Wipe tower parameters" -msgstr "Parámetros de la torre de limpieza" - #: src/libslic3r/PrintConfig.cpp:2144 msgid "Wipe tower rotation angle" msgstr "Ángulo de rotación de la torre de limpieza" +#: src/libslic3r/PrintConfig.cpp:2145 +msgid "Wipe tower rotation angle with respect to x-axis " +msgstr "Ángulo de rotación de la torre de limpieza con respecto al eje X" + #: src/libslic3r/PrintConfig.cpp:2170 msgid "Wipe tower rotation angle with respect to x-axis." -msgstr "Ángulo de rotación de la torre de limpieza con respecto al eje X." +msgstr "Ángulo de rotación de la torre de limpieza con respecto al eje X" #: src/libslic3r/PrintConfig.cpp:2092 msgid "Wipe while retracting" msgstr "Limpiar mientras se retrae" +#: xs/src/libslic3r/PrintConfig.cpp:1997 +msgid "Wiping after toolchange will be preferentially done inside infills. This lowers the amount of waste but may result in longer print time due to additional travel moves." +msgstr "La limpieza después del cambio de herramienta se puede realizar dentro de los rellenos. Esto disminuye la cantidad de desechos, pero puede resultar en mayores tiempos de impresión debido a movimientos adicionales." + #: src/slic3r/GUI/PresetHints.cpp:224 msgid "with a volumetric rate" -msgstr "con una tasa volumétrica" +msgstr " con una tasa volumétrica" #: src/libslic3r/PrintConfig.cpp:1460 msgid "With bowden extruders, it may be wise to do some amount of quick retract before doing the wipe movement." @@ -7488,8 +8258,17 @@ msgid "World coordinates" msgstr "Coordenadas mundiales" #: src/slic3r/GUI/UpdateDialogs.cpp:76 -msgid "Would you like to install it?\n\nNote that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n\nUpdated configuration bundles:" -msgstr "¿Te gustaría instalarlo?\n\nTen en cuenta que primero se creará una instantánea de la configuración. Así que se puede recuperar en cualquier momento en caso de que hubiera algún problema con la nueva versión.\nUpdated configuration bundles:" +msgid "" +"Would you like to install it?\n" +"\n" +"Note that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n" +"\n" +"Updated configuration bundles:" +msgstr "" +"¿Te gustaría instalarlo?\n" +"\n" +"Ten en cuenta que primero se creará una instantánea de la configuración. Así que se puede recuperar en cualquier momento en caso de que hubiera algún problema con la nueva versión.\n" +"Updated configuration bundles:" #: src/libslic3r/Zipper.cpp:95 msgid "write calledback failed" @@ -7555,30 +8334,34 @@ msgstr "Puedes usar todas las opciones de configuración como las variables dent msgid "You can't change a type of the last solid part of the object." msgstr "No puede cambiar un tipo de la última parte sólida del objeto." -#: src/slic3r/GUI/Plater.cpp:2243 -msgid "You can't load SLA project if there is at least one multi-part object on the bed" -msgstr "No puede cargar el proyecto SLA si hay al menos un objeto de varias partes en la base" +#: src/slic3r/GUI/GUI_ObjectList.cpp:1711 +msgid "You can't delete the last intance from object." +msgstr "No puedes borrar la última instancia de un objeto." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1694 +msgid "You can't delete the last solid part from object." +msgstr "No puedes borrar la última parte sólida del objeto." #: src/slic3r/GUI/Plater.cpp:1746 -#, possible-c-format +#, c-format msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part" msgstr "No puede agregar el(los) objeto(s) desde % s porque uno o algunos de ellos son de varias piezas" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:565 -msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection" -msgstr "No puedes usar el modo de escala no uniforme para la selección de múltiples objetos/partes" - -#: src/slic3r/GUI/GUI_App.cpp:300 -msgid "You may need to update your graphics card driver." -msgstr "Puede que necesites actualizar tu tarjeta de gráficos." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid "You have unsaved changes " +msgstr "Tienes cambios sin guardar " #: src/slic3r/GUI/Preferences.cpp:130 -#, possible-c-format +#, c-format msgid "You need to restart %s to make the changes effective." msgstr "Es necesario reiniciar %s para hacer los cambios efectivos." +#: src/slic3r/GUI/Preferences.cpp:126 +msgid "You need to restart Slic3r to make the changes effective." +msgstr "Es necesario reiniciar Slic3r para hacer los cambios efectivos." + #: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -#, possible-c-format +#, c-format msgid "You started your selection with %s Item." msgstr "Has empezado la selección con %s Items." diff --git a/resources/localization/fr/PrusaSlicer.mo b/resources/localization/fr/PrusaSlicer.mo deleted file mode 100644 index 83019329182..00000000000 Binary files a/resources/localization/fr/PrusaSlicer.mo and /dev/null differ diff --git a/resources/localization/fr_FR/PrusaSlicer.mo b/resources/localization/fr_FR/PrusaSlicer.mo new file mode 100644 index 00000000000..0dac7a01e6f Binary files /dev/null and b/resources/localization/fr_FR/PrusaSlicer.mo differ diff --git a/resources/localization/fr/PrusaSlicer_fr.po b/resources/localization/fr_FR/PrusaSlicer_fr.po similarity index 77% rename from resources/localization/fr/PrusaSlicer_fr.po rename to resources/localization/fr_FR/PrusaSlicer_fr.po index 9a4d5c8a827..41163ff1208 100644 --- a/resources/localization/fr/PrusaSlicer_fr.po +++ b/resources/localization/fr_FR/PrusaSlicer_fr.po @@ -5,24 +5,167 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: PhraseApp (phraseapp.com)\n" +"X-Generator: Poedit 2.0.8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Oleksandra Iushchenko \n" +"Language-Team: \n" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"and it has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"et il y a les changements non sauvegardés suivants :" + +#: xs/src/slic3r/GUI/Tab.cpp:2152 +msgid "" +"\n" +"\n" +"Discard changes and continue anyway?" +msgstr "" +"\n" +"\n" +"Annuler les changements et continuer malgré tout ?" + +#: xs/src/slic3r/GUI/Tab.cpp:2150 +msgid "" +"\n" +"\n" +"has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"a les changements suivants non-enregistrés :" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"is not compatible with printer\n" +msgstr "" +"\n" +"\n" +"n'est pas compatible avec l'imprimante\n" + +#: src/slic3r/GUI/PresetHints.cpp:36 +msgid "" +"\n" +"During the other layers, fan " +msgstr "" +"\n" +"Pendant les autres couches, le ventilateur " #: src/slic3r/GUI/PresetHints.cpp:39 -msgid "\nDuring the other layers, fan" -msgstr "\nPendant les autres couches, le ventilateur" +msgid "" +"\n" +"During the other layers, fan" +msgstr "" +"\n" +"Pendant les autres couches, le ventilateur" #: src/slic3r/GUI/PresetHints.cpp:35 -msgid "\nIf estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." -msgstr "\nSi le temps estimé pour la couche est supérieur, mais cependant inférieur à ~%1%s, le ventilateur tournera à une vitesse proportionnellement décroissante entre %2%%% et %3%%%." +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." +msgstr "" +"\n" +"Si le temps estimé pour la couche est supérieur, mais cependant inférieur à ~%1%s, le ventilateur tournera à une vitesse proportionnellement décroissante entre %2%%% et %3%%%." -#: src/slic3r/GUI/MainFrame.cpp:61 -msgid " - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/releases" -msgstr " - Pensez à vérifier les mises à jour sur http://github.com/prusa3d/PrusaSlicer/releases" +#: src/slic3r/GUI/PresetHints.cpp:32 +#, c-format +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%ds, fan will run at a proportionally decreasing speed between %d%% and %d%%." +msgstr "" +"\n" +"Si le temps estimé pour la couche est supérieur, mais cependant inférieur à ~%ds, le ventilateur tournera à une vitesse proportionnellement décroissante entre %d%% et %d%%." + +#: lib/Slic3r/GUI/Plater.pm:1019 +msgid "" +"\n" +"Non-positive value." +msgstr "" +"\n" +"Valeur non-positive." + +#: lib/Slic3r/GUI/Plater.pm:1020 +msgid "" +"\n" +"Not a numeric value." +msgstr "" +"\n" +"Valeur non-numérique." + +#: src/slic3r/GUI/MainFrame.cpp:55 +msgid " - Remember to check for updates at http://github.com/prusa3d/slic3r/releases" +msgstr " - Pensez à vérifier les mises à jours sur http://github.com/prusa3d/slic3r/releases" + +#: src/slic3r/GUI/Tab.cpp:3239 +msgid " as:" +msgstr " sous :" + +#: src/slic3r/GUI/PresetHints.cpp:228 +#, c-format +msgid " at filament speed %3.2f mm/s." +msgstr " à une vitesse de filament de %3.2f mm/s." + +#: src/slic3r/GUI/Tab.cpp:1737 +msgid " Browse " +msgstr "Parcourir " + +#: src/slic3r/GUI/MainFrame.cpp:677 +msgid " file as:" +msgstr " fichier sous :" + +#: src/slic3r/GUI/PresetHints.cpp:217 +msgid " flow rate is maximized " +msgstr " le débit est maximisé " + +#: src/slic3r/GUI/Tab.cpp:1358 +#, no-c-format +msgid "" +" infill pattern is not supposed to work at 100% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +" le motif de remplissage n'est pas supposé fonctionner à une densité de 100%.\n" +"\n" +"Dois-je passer au motif de remplissage rectiligne ?" + +#: xs/src/slic3r/GUI/Tab.cpp:2131 +msgid " preset\n" +msgstr " préréglage\n" + +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid " preset" +msgstr " préréglage" + +#: src/slic3r/GUI/Tab.cpp:2938 +msgid " Preset" +msgstr " Préréglage" + +#: src/slic3r/GUI/Tab.cpp:1818 src/slic3r/GUI/Tab.cpp:2019 +#: src/slic3r/GUI/Tab.cpp:2988 +msgid " Set " +msgstr "Appliquer " + +#: src/slic3r/GUI/Tab.cpp:2936 +msgid " the selected preset?" +msgstr " le préréglage sélectionné ?" #: src/slic3r/GUI/MainFrame.cpp:727 msgid " was successfully sliced." msgstr " a été découpé avec succès." +#: src/slic3r/GUI/PresetHints.cpp:222 +msgid " with a volumetric rate " +msgstr "avec un débit volumétrique" + #: src/libslic3r/PrintConfig.cpp:179 src/libslic3r/PrintConfig.cpp:745 #: src/libslic3r/PrintConfig.cpp:1154 src/libslic3r/PrintConfig.cpp:1217 #: src/libslic3r/PrintConfig.cpp:1462 src/libslic3r/PrintConfig.cpp:2260 @@ -31,7 +174,7 @@ msgid "%" msgstr "%" #: src/libslic3r/GCode/PreviewData.cpp:504 -#, possible-c-format +#, c-format msgid "%.2f - %.2f mm" msgstr "%.2f - %.2f mm" @@ -44,99 +187,112 @@ msgstr "%1% - Copier" msgid "%1% Preset" msgstr "%1% Préréglage" -#: src/slic3r/GUI/Plater.cpp:3831 -msgid "%1% printer was active at the time the target Undo / Redo snapshot was taken. Switching to %1% printer requires reloading of %1% presets." -msgstr "L'imprimante %1% était active au moment où l'instantané cible Annuler / Refaire a été pris. Basculer vers l'imprimante %1% requiert de recharger les préréglages de %1%." - -#: src/libslic3r/Print.cpp:1282 -msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm" -msgstr "%1%=%2% mm est trop bas pour être imprimable avec une hauteur de couche de %3% mm" +#: src/slic3r/GUI/PresetHints.cpp:226 +#, c-format +msgid "%3.2f mm³/s" +msgstr "%3.2f mm³/s" #: src/slic3r/GUI/PresetHints.cpp:228 -#, possible-c-format +#, c-format msgid "%3.2f mm³/s at filament speed %3.2f mm/s." msgstr "%3.2f mm³/s à une vitesse de filament de %3.2f mm/s." #: src/slic3r/GUI/Plater.cpp:974 -#, possible-c-format +#, c-format msgid "%d (%d shells)" msgstr "%d (%d coques)" #: src/slic3r/GUI/Plater.cpp:982 -#, possible-c-format +#, c-format msgid "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards edges" msgstr "%d faces invalides, %d arrêtes corrigées, %d faces retirées, %d faces ajoutées, %d faces inversées, %d arrêtes à l'envers" #: src/slic3r/GUI/PresetHints.cpp:268 -#, possible-c-format +#, c-format msgid "%d lines: %.2f mm" msgstr "%d lignes : %.2f mm" +#: src/slic3r/GUI/PresetHints.cpp:271 +#, c-format +msgid "%d lines: %.2lf mm" +msgstr "%d lignes : %.2lf mm" + #: src/slic3r/GUI/MainFrame.cpp:894 -#, possible-c-format +#, c-format msgid "%d presets successfully imported." msgstr "%d préréglages importés avec succès." +#: src/slic3r/GUI/MainFrame.cpp:553 +#, c-format +msgid "%s &Manual" +msgstr "&Manuel de %s" + #: src/slic3r/GUI/MainFrame.cpp:550 -#, possible-c-format +#, c-format msgid "%s &Website" msgstr "Site &Web de %s" #: src/slic3r/GUI/UpdateDialogs.cpp:113 -#, possible-c-format +#, c-format msgid "%s configuration is incompatible" msgstr "La configuration de %s n'est pas compatible" #: src/slic3r/GUI/Field.cpp:136 -#, possible-c-format +#, c-format msgid "%s doesn't support percentage" msgstr "%s ne supporte pas un pourcentage" #: src/slic3r/GUI/MsgDialog.cpp:73 -#, possible-c-format +#, c-format msgid "%s error" msgstr "Erreur %s" #: src/slic3r/GUI/ConfigWizard.cpp:336 -#, possible-c-format +#, c-format msgid "%s Family" msgstr "%s Famille" #: src/slic3r/GUI/MsgDialog.cpp:74 -#, possible-c-format +#, c-format msgid "%s has encountered an error" msgstr "%s a rencontré une erreur" -#: src/slic3r/GUI/GUI_App.cpp:132 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n\nThe application will now terminate." -msgstr "%s a rencontré une erreur. Elle a apparemment été provoquée par un manque de mémoire. Si vous êtes certain d'avoir assez de RAM sur votre système, cela peut également être un bug et nous aimerions que vous le signaliez.\n\nL'application va maintenant fermer." - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:155 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it." -msgstr "%s a rencontré une erreur. Elle a apparemment été provoquée par un manque de mémoire. Si vous êtes certain d'avoir assez de RAM sur votre système, cela peut également être un bug et nous aimerions que vous le signaliez." - #: src/slic3r/GUI/UpdateDialogs.cpp:112 -#, possible-c-format +#, c-format msgid "%s incompatibility" msgstr "Incompatibilité de %s" #: src/slic3r/GUI/UpdateDialogs.cpp:172 -#, possible-c-format -msgid "%s now uses an updated configuration structure.\n\nSo called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\nAn inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n\nPlease proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." -msgstr "%s utilise à présent une structure de configuration mise à jour.\n\nIl existe à présent des \"préréglages Système\", qui intègrent les réglages par défaut pour les différentes imprimantes. Ces préréglages Système ne peuvent pas être modifiés, mais les utilisateurs peuvent désormais créer leurs propres préréglages héritant des paramètres de l'un des préréglages Système.\nUn tel préréglage peut ainsi hériter d'une valeur particulière de son parent ou la remplacer par une valeur personnalisée.\n\nVeuillez utiliser les %s qui suivent pour paramétrer les nouveaux réglages et éventuellement accepter les mises à jour de réglage automatiques." +#, c-format +msgid "" +"%s now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"%s utilise à présent une structure de configuration mise à jour.\n" +"\n" +"Il existe à présent des \"préréglages Système\", qui intègrent les réglages par défaut pour les différentes imprimantes. Ces préréglages Système ne peuvent pas être modifiés, mais les utilisateurs peuvent désormais créer leurs propres préréglages héritant des paramètres de l'un des préréglages Système.\n" +"Un tel préréglage peut ainsi hériter d'une valeur particulière de son parent ou la remplacer par une valeur personnalisée.\n" +"\n" +"Veuillez utiliser les %s qui suivent pour paramétrer les nouveaux réglages et éventuellement accepter les mises à jour de réglage automatiques." #: src/slic3r/GUI/GUI_App.cpp:681 -#, possible-c-format +#, c-format msgid "%s View Mode" msgstr "Mode de Vue de %s" #: src/slic3r/GUI/MainFrame.cpp:563 -#, possible-c-format +#, c-format msgid "&About %s" msgstr "&Au sujet de %s" +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "&About Slic3r" +msgstr "&A propos de Slic3r" + #: src/slic3r/GUI/GUI_App.cpp:769 msgid "&Configuration" msgstr "&Configuration" @@ -161,6 +317,14 @@ msgstr "&Editer" msgid "&Export" msgstr "&Exporter" +#: lib/Slic3r/GUI/MainFrame.pm:227 +msgid "&Export Config Bundle…" +msgstr "&Exporter le Lot de Configurations…" + +#: lib/Slic3r/GUI/MainFrame.pm:221 +msgid "&Export Config…\tCtrl+E" +msgstr "&Exporter la configuration…\tCtrl+E" + #: src/slic3r/GUI/MainFrame.cpp:480 src/slic3r/GUI/MainFrame.cpp:604 msgid "&Filament Settings Tab" msgstr "Onglet des Réglages du &Filament" @@ -181,14 +345,22 @@ msgstr "&Aide" msgid "&Import" msgstr "&Importer" -#: src/slic3r/GUI/MainFrame.cpp:376 -msgid "&New Project" -msgstr "&Nouveau Projet" +#: lib/Slic3r/GUI/MainFrame.pm:224 +msgid "&Load Config Bundle…" +msgstr "&Charger le Lot de Configurations…" + +#: lib/Slic3r/GUI/MainFrame.pm:218 +msgid "&Load Config…\tCtrl+L" +msgstr "&Charger la configuration…\tCtrl+L" #: src/slic3r/GUI/ConfigWizard.cpp:1093 msgid "&Next >" msgstr "&Suivant >" +#: lib/Slic3r/GUI/MainFrame.pm:376 +msgid "&Object" +msgstr "&Objet" + #: src/slic3r/GUI/MainFrame.cpp:339 msgid "&Open Project" msgstr "&Ouvrir Projet" @@ -197,6 +369,10 @@ msgstr "&Ouvrir Projet" msgid "&Paste" msgstr "&Coller" +#: lib/Slic3r/GUI/MainFrame.pm:375 +msgid "&Plater" +msgstr "&Plateau" + #: src/slic3r/GUI/MainFrame.cpp:471 msgid "&Plater Tab" msgstr "Onglet du &Plateau" @@ -209,14 +385,14 @@ msgstr "&Préférences" msgid "&Quit" msgstr "&Quitter" -#: src/slic3r/GUI/MainFrame.cpp:561 -msgid "&Redo" -msgstr "&Refaire" - #: src/slic3r/GUI/MainFrame.cpp:406 msgid "&Repair STL file" msgstr "&Réparer le fichier STL" +#: lib/Slic3r/GUI/MainFrame.pm:244 +msgid "&Repeat Last Quick Slice\tCtrl+Shift+U" +msgstr "&Répéter la dernière découpe rapide\tCtrl+Shift+U" + #: src/slic3r/GUI/MainFrame.cpp:341 msgid "&Save Project" msgstr "&Sauvegarder Projet" @@ -225,10 +401,6 @@ msgstr "&Sauvegarder Projet" msgid "&Select all" msgstr "Tout &Sélectionner" -#: src/slic3r/GUI/MainFrame.cpp:558 -msgid "&Undo" -msgstr "Ann&uler" - #: src/slic3r/GUI/MainFrame.cpp:577 msgid "&View" msgstr "&Vue" @@ -237,6 +409,14 @@ msgstr "&Vue" msgid "&Window" msgstr "&Fenêtre" +#: lib/Slic3r/GUI/MainFrame.pm:255 +msgid "(&Re)Slice Now\tCtrl+S" +msgstr "(&Re)Découper maintenant\tCtrl+S" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:89 +msgid "(default)" +msgstr "(défaut)" + #: src/libslic3r/PrintConfig.cpp:1376 msgid "(minimum)" msgstr "(minimum)" @@ -245,14 +425,18 @@ msgstr "(minimum)" msgid "(Re)slice" msgstr "(Re)découper" -#: src/slic3r/GUI/MainFrame.cpp:455 -msgid "(Re)Slice No&w" -msgstr "(Re)Découper Maintenant" +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "(Re)Slice &Now" +msgstr "(Re)Découper &Maintenant" #: src/slic3r/GUI/MainFrame.cpp:641 msgid ") not found." msgstr ") non trouvé." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid ". Discard changes and continue anyway?" +msgstr ". Annuler les changements et continuer malgré tout ?" + #: src/libslic3r/PrintConfig.cpp:1857 msgid "0 (soluble)" msgstr "0 (soluble)" @@ -261,10 +445,22 @@ msgstr "0 (soluble)" msgid "0.2 (detachable)" msgstr "0.2 (détachable)" +#: lib/Slic3r/GUI/Plater/3DPreview.pm:69 +msgid "1 Layer" +msgstr "1 Couche" + +#: lib/Slic3r/GUI/Plater.pm:206 +msgid "2D" +msgstr "2D" + #: src/slic3r/GUI/MainFrame.cpp:487 msgid "3&D" msgstr "3&D" +#: lib/Slic3r/GUI/Plater.pm:164 lib/Slic3r/GUI/Plater.pm:2323 +msgid "3D" +msgstr "3D" + #: src/slic3r/GUI/Plater.cpp:3074 msgid "3D editor view" msgstr "Vue d'éditeur 3D" @@ -273,11 +469,27 @@ msgstr "Vue d'éditeur 3D" msgid "3D Honeycomb" msgstr "Nid d'abeille 3D" +#: src/slic3r/GUI/GUI_App.cpp:741 +msgid "3D-Scene will be cleaned." +msgstr "La Scène 3D va être nettoyée." + +#: lib/Slic3r/GUI/Plater.pm:1756 +msgid "3MF file exported to " +msgstr "Fichier 3MF exporté vers " + #: src/slic3r/GUI/Plater.cpp:3590 -#, possible-c-format +#, c-format msgid "3MF file exported to %s" msgstr "Fichier 3MF exporté vers %s" +#: lib/Slic3r/GUI/Plater.pm:258 +msgid "45° ccw" +msgstr "45° ccw" + +#: lib/Slic3r/GUI/Plater.pm:259 +msgid "45° cw" +msgstr "45° cw" + #: src/slic3r/GUI/ConfigWizard.cpp:1092 msgid "< &Back" msgstr "< &Précédent" @@ -302,13 +514,21 @@ msgstr "La règle générale est 60 °C pour le PLA et 110 °C pour l'ABS. Laiss msgid "A toolpath outside the print area was detected" msgstr "Parcours détecté en dehors de la zone d'impression" +#: src/libslic3r/SLA/SLASupportTree.cpp:2162 +msgid "Abort" +msgstr "Abandonner" + #: src/slic3r/GUI/AboutDialog.cpp:35 -#, possible-c-format +#, c-format msgid "About %s" msgstr "Au sujet de %s" +#: src/slic3r/GUI/AboutDialog.cpp:35 +msgid "About Slic3r" +msgstr "A propos de Slic3r" + #: src/libslic3r/GCode/PreviewData.cpp:499 -#, possible-c-format +#, c-format msgid "above %.2f mm" msgstr "au dessus de %.2f mm" @@ -328,6 +548,10 @@ msgstr "Activer" msgid "Active" msgstr "Actif" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:39 +msgid "Active: " +msgstr "Actif : " + #: src/slic3r/GUI/Preset.cpp:1003 src/slic3r/GUI/Tab.cpp:237 msgid "Add a new printer" msgstr "Ajouter une nouvelle imprimante" @@ -344,16 +568,6 @@ msgstr "Ajouter une enveloppe (une ligne unique de périmètre) autour de la bas msgid "Add color change marker for current layer" msgstr "Ajouter un repère de changement de couleur pour la couche en cours" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1662 -msgid "Add Generic Subobject" -msgstr "Ajouter un Sous-objet Générique" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2584 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2613 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2631 -msgid "Add Height Range" -msgstr "Ajouter une Zone de Hauteur" - #: src/slic3r/GUI/GLCanvas3D.cpp:3463 msgid "Add instance" msgstr "Ajouter l'instance" @@ -362,13 +576,9 @@ msgstr "Ajouter l'instance" msgid "Add Instance of the selected object" msgstr "Ajouter une Instance à l'objet sélectionné" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:162 -msgid "Add layer range" -msgstr "Ajouter une zone de couche" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1950 -msgid "Add Layers" -msgstr "Ajouter des couches" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Add Instance to selected object " +msgstr "Ajouter une Instance à l'objet sélectionné" #: src/slic3r/GUI/GUI_ObjectList.cpp:1067 msgid "Add modifier" @@ -379,10 +589,6 @@ msgstr "Ajouter un modificateur" msgid "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps adding perimeters, until more than 70% of the loop immediately above is supported." msgstr "Ajouter plus de périmètres si nécessaire pour éviter des trous dans les parois inclinées. Slic3r ajoute des périmètres, jusqu'à ce que plus de 70% de la boucle immédiatement au-dessus soit supportée." -#: src/slic3r/GUI/Plater.cpp:3516 -msgid "Add one more instance of the selected object" -msgstr "Ajouter une instance supplémentaire de l'objet sélectionné" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1066 #: src/slic3r/GUI/GUI_ObjectList.cpp:1082 msgid "Add part" @@ -400,30 +606,6 @@ msgstr "Ajouter un point à la sélection" msgid "Add settings" msgstr "Ajouter des réglages" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1252 -msgid "Add Settings Bundle for Height range" -msgstr "Ajouter une Combinaison de Réglages pour la zone de Hauteur" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1191 -msgid "Add Settings Bundle for Object" -msgstr "Ajouter une Combinaison de Réglages pour l'Objet" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1190 -msgid "Add Settings Bundle for Sub-object" -msgstr "Ajouter une Combinaison de Réglages pour le Sous-objet" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1126 -msgid "Add Settings for Layers" -msgstr "Ajouter des Réglages pour les Couches" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1128 -msgid "Add Settings for Object" -msgstr "Ajouter des Réglages pour un Objet" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1127 -msgid "Add Settings for Sub-object" -msgstr "Ajouter des Réglages pour un Sous-objet" - #: src/libslic3r/PrintConfig.cpp:382 msgid "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)." msgstr "Ajouter un remplissage plein à proximité des surfaces inclinées pour garantir une épaisseur de coque verticale (couches solides supérieures+inférieures)." @@ -438,18 +620,10 @@ msgstr "Ajouter un bloqueur de support" msgid "Add support enforcer" msgstr "Ajouter un générateur de supports" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:531 -msgid "Add support point" -msgstr "Ajouter un point de support" - #: src/slic3r/GUI/GLCanvas3D.cpp:3392 msgid "Add..." msgstr "Ajouter..." -#: src/slic3r/GUI/wxExtensions.cpp:2571 -msgid "Add/Del color change" -msgstr "Ajouter/Supprimer un changement de couleur" - #: src/slic3r/GUI/Tab.cpp:920 msgid "Additional information:" msgstr "Informations complémentaires :" @@ -466,6 +640,10 @@ msgstr "De plus, un instantané de sauvegarde de l'ensemble de la configuration msgid "Address" msgstr "Adresse" +#: lib/Slic3r/GUI/Plater.pm:250 lib/Slic3r/GUI/Plater.pm:268 +msgid "Add…" +msgstr "Ajouter…" + #: src/slic3r/GUI/GUI_App.cpp:675 src/slic3r/GUI/GUI_ObjectList.cpp:76 #: src/slic3r/GUI/GUI_ObjectList.cpp:517 src/slic3r/GUI/Tab.cpp:1026 #: src/slic3r/GUI/Tab.cpp:1041 src/slic3r/GUI/Tab.cpp:1139 @@ -481,6 +659,10 @@ msgstr "Avancé" msgid "Advanced View Mode" msgstr "Vue en Mode Avancé" +#: xs/src/slic3r/GUI/FirmwareDialog.cpp:400 +msgid "Advanced: avrdude output log" +msgstr "Avancé : journal de sortie avrdude" + #: src/slic3r/GUI/FirmwareDialog.cpp:803 msgid "Advanced: Output log" msgstr "Avancé : journal de Sortie" @@ -509,6 +691,10 @@ msgstr "Aligné" msgid "All" msgstr "Tous" +#: src/libslic3r/Print.cpp:1195 +msgid "All extruders must have the same diameter for single extruder multimaterial printer." +msgstr "Tous les extrudeurs doivent avoir le même diamètre pour les imprimantes multi-matières à un seul extrudeur." + #: src/libslic3r/Print.cpp:1135 msgid "All objects are outside of the print volume." msgstr "Tous les objets sont en dehors du volume d'impression." @@ -529,26 +715,49 @@ msgstr "échec de l'allocation" msgid "Along X axis" msgstr "Le long de l'axe X" +#: lib/Slic3r/GUI/Plater.pm:2251 lib/Slic3r/GUI/Plater.pm:2267 +#: lib/Slic3r/GUI/Plater.pm:2283 +msgid "Along X axis…" +msgstr "Le long de l'axe X…" + #: src/slic3r/GUI/Plater.cpp:2941 msgid "Along Y axis" msgstr "Le long de l'axe Y" +#: lib/Slic3r/GUI/Plater.pm:2254 lib/Slic3r/GUI/Plater.pm:2270 +#: lib/Slic3r/GUI/Plater.pm:2286 +msgid "Along Y axis…" +msgstr "Le long de l'axe Y…" + #: src/slic3r/GUI/Plater.cpp:2943 msgid "Along Z axis" msgstr "Le long de l'axe Z" +#: lib/Slic3r/GUI/Plater.pm:2257 lib/Slic3r/GUI/Plater.pm:2273 +#: lib/Slic3r/GUI/Plater.pm:2289 +msgid "Along Z axis…" +msgstr "Le long de l'axe Z…" + #: src/slic3r/GUI/ConfigWizard.cpp:122 msgid "Alternate nozzles:" msgstr "Buses alternatives :" +#: lib/Slic3r/GUI/Plater.pm:1740 +msgid "AMF file exported to " +msgstr "Fichier AMF exporté vers " + #: src/slic3r/GUI/Plater.cpp:3561 -#, possible-c-format +#, c-format msgid "AMF file exported to %s" msgstr "Fichier AMF exporté vers %s" #: src/slic3r/GUI/GLCanvas3D.cpp:725 -msgid "An object outside the print area was detected\nResolve the current problem to continue slicing" -msgstr "Objet détecté en dehors de la zone d'impression\nRésolvez ce problème pour poursuivre le processus de découpage" +msgid "" +"An object outside the print area was detected\n" +"Resolve the current problem to continue slicing" +msgstr "" +"Objet détecté en dehors de la zone d'impression\n" +"Résolvez ce problème pour poursuivre le processus de découpage" #: src/slic3r/GUI/GLCanvas3D.cpp:720 msgid "An object outside the print area was detected" @@ -562,10 +771,18 @@ msgstr "et il y a les changements non sauvegardés suivants :" msgid "Another export job is currently running." msgstr "Une autre tâche d'export est actuellement en cours." +#: src/slic3r/GUI/Tab.cpp:915 +msgid "Any modifications should be saved as a new preset inherited from this one. " +msgstr "Toute modification doit être enregistrée comme un nouveau préréglage hérité de celui-ci. " + #: src/slic3r/GUI/Tab.cpp:926 msgid "Any modifications should be saved as a new preset inherited from this one." msgstr "Toute modification doit être enregistrée comme un nouveau préréglage hérité de celui-ci." +#: xs/src/libslic3r/PrintConfig.cpp:1109 +msgid "API Key" +msgstr "Clé API" + #: src/libslic3r/PrintConfig.cpp:88 msgid "API Key / Password" msgstr "Clé API / Mot de Passe" @@ -574,6 +791,14 @@ msgstr "Clé API / Mot de Passe" msgid "Application preferences" msgstr "Préférences de l'application" +#: xs/src/slic3r/GUI/GUI.cpp:406 +msgid "Application will be restarted" +msgstr "L'application va être redémarrée" + +#: src/slic3r/GUI/GUI_App.cpp:740 +msgid "Application will be restarted after language change." +msgstr "L'application va être redémarrée après le changement de langue." + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:864 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Apply changes" @@ -591,31 +816,43 @@ msgstr "Accords archimédiens" msgid "archive is too large" msgstr "l'archive est trop volumineuse" +#: src/slic3r/GUI/Tab.cpp:2936 +msgid "Are you sure you want to " +msgstr "Êtes-vous sûr de vouloir " + #. TRN remove/delete #: src/slic3r/GUI/Tab.cpp:2955 msgid "Are you sure you want to %1% the selected preset?" msgstr "Êtes-vous sûr de vouloir %1% le préréglage sélectionné ?" #: src/slic3r/GUI/FirmwareDialog.cpp:862 -msgid "Are you sure you want to cancel firmware flashing?\nThis could leave your printer in an unusable state!" -msgstr "Êtes-vous certain de vouloir annuler le processus de flash du firmware ?\nCela pourrait rendre votre imprimante inutilisable !" +msgid "" +"Are you sure you want to cancel firmware flashing?\n" +"This could leave your printer in an unusable state!" +msgstr "" +"Êtes-vous certain de vouloir annuler le processus de flash du firmware ?\n" +"Cela pourrait rendre votre imprimante inutilisable !" #: src/libslic3r/PrintConfig.cpp:2258 msgid "Area fill" msgstr "Remplissage de zone" -#: src/slic3r/GUI/Plater.cpp:609 -msgid "Around object" -msgstr "Autour de l'objet" +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Around X axis…" +msgstr "Autour de l'axe X…" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Around Y axis…" +msgstr "Autour de l'axe Y…" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Around Z axis…" +msgstr "Autour de l'axe Z…" #: src/slic3r/GUI/KBShortcutsDialog.cpp:135 msgid "Arrange" msgstr "Agencer" -#: src/slic3r/GUI/GLCanvas3D.cpp:3486 -msgid "Arrange selection" -msgstr "Agencer la sélection" - #: src/libslic3r/PrintConfig.cpp:3054 msgid "Arrange the supplied models in a plate and merge them in a single model in order to perform actions once." msgstr "Agencer les modèles fournis sur un plateau et les fusionner en un seul modèle afin de ne réaliser les actions qu'une seule fois." @@ -624,14 +861,18 @@ msgstr "Agencer les modèles fournis sur un plateau et les fusionner en un seul msgid "Arranging" msgstr "Agencement en cours" -#: src/slic3r/GUI/Plater.cpp:2718 -msgid "Arranging canceled." -msgstr "Agencement annulé." +#: src/slic3r/GUI/Plater.cpp:2103 +msgid "Arranging canceled" +msgstr "Agencement annulé" #: src/slic3r/GUI/Plater.cpp:2144 msgid "Arranging done." msgstr "Agencement terminé." +#: src/slic3r/GUI/GUI_App.cpp:514 +msgid "Array of language names and identifiers should have the same size." +msgstr "Les tableaux de noms et d'identifiants de langue doivent avoir la même taille." + #: src/slic3r/GUI/KBShortcutsDialog.cpp:172 #: src/slic3r/GUI/KBShortcutsDialog.cpp:183 msgid "Arrow Down" @@ -650,9 +891,9 @@ msgstr "Flèche Droite" msgid "Arrow Up" msgstr "Flèche Haut" -#: src/slic3r/GUI/GUI_App.cpp:303 -msgid "As a workaround, you may run PrusaSlicer with a software rendered 3D graphics by running prusa-slicer.exe with the --sw_renderer parameter." -msgstr "Une solution consiste à lancer PrusaSlicer avec des graphismes 3D rendus par un logiciel en lançant prusa-slicer.exe avec le paramètre --sw_renderer." +#: xs/src/slic3r/GUI/GUI.cpp:660 +msgid "Attempt to free unreferenced scalar" +msgstr "Tentative de libération d'un scalaire non référencé" #: src/slic3r/GUI/GUI.cpp:144 src/slic3r/GUI/GUI_App.cpp:743 #: src/slic3r/GUI/Tab.cpp:2798 @@ -672,13 +913,17 @@ msgstr "Centrer automatiquement les pièces" msgid "Auto-generate points" msgstr "Générer automatiquement les points" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:669 +msgid "Auto-generate points [A]" +msgstr "Générer automatiquement les points [A]" + #: src/slic3r/GUI/Plater.cpp:979 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors)" msgstr "Réparé automatiquement (%d erreurs)" #: src/slic3r/GUI/GUI_ObjectList.cpp:230 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors):\n" msgstr "Réparé automatiquement (%d erreurs):\n" @@ -686,13 +931,15 @@ msgstr "Réparé automatiquement (%d erreurs):\n" msgid "Autodetected" msgstr "Autodétecté" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1338 -msgid "Autogenerate support points" -msgstr "Autogénérer les points de support" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1166 -msgid "Autogeneration will erase all manually edited points.\n\nAre you sure you want to do it?\n" -msgstr "L'autogénération va effacer tous les points édités manuellement.\n\nVoulez-vous vraiment le faire ?\n" +msgid "" +"Autogeneration will erase all manually edited points.\n" +"\n" +"Are you sure you want to do it?\n" +msgstr "" +"L'autogénération va effacer tous les points édités manuellement.\n" +"\n" +"Voulez-vous vraiment le faire ?\n" #: src/slic3r/GUI/Tab.cpp:3421 msgid "Automatic generation" @@ -719,12 +966,28 @@ msgid "BACK ARROW" msgstr "FLÈCHE ARRIÈRE" #: src/slic3r/GUI/Tab.cpp:3113 -msgid "BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick to reset all settings for the current option group to the last saved preset." -msgstr "L'icône FLÈCHE ARRIÈRE indique que les paramètres ont été changés et qu'ils ne sont pas identiques au dernier préréglage enregistré du groupe d'options en cours.\nCliquez pour restaurer tous les paramètres du groupe d'options en cours avec les valeurs du dernier préréglage enregistré." +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" +"Click to reset all settings for the current option group to the last saved preset." +msgstr "" +"L'icône FLÈCHE ARRIÈRE indique que les paramètres ont été changés et qu'ils ne sont pas identiques au dernier préréglage enregistré du groupe d'options en cours.\n" +"Cliquez pour restaurer tous les paramètres du groupe d'options en cours avec les valeurs du dernier préréglage enregistré." #: src/slic3r/GUI/Tab.cpp:3127 -msgid "BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\nClick to reset current value to the last saved preset." -msgstr "L'icône FLÈCHE ARRIÈRE indique que la valeur a été changée et qu'elle n'est pas identique au dernier préréglage enregistré.\nCliquez pour restaurer la valeur à celle du dernier préréglage enregistré." +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 "" +"L'icône FLÈCHE ARRIÈRE indique que la valeur a été changée et qu'elle n'est pas identique au dernier préréglage enregistré.\n" +"Cliquez pour restaurer la valeur à celle du dernier préréglage enregistré." + +#: src/slic3r/GUI/Tab.cpp:3077 +msgid "" +"BACK ARROW;indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "" +"FLÈCHE ARRIÈRE;indique que les paramètres ont été changés et qu'ils ne sont pas identiques au dernier préréglage enregistré du groupe d'options en cours.\n" +"Cliquez sur l'icône FLÈCHE ARRIÈRE pour restaurer tous les paramètres du groupe d'options en cours avec les valeurs du dernier préréglage enregistré." #: src/slic3r/GUI/Preferences.cpp:52 msgid "Background processing" @@ -734,22 +997,10 @@ msgstr "Tâche en arrière plan" msgid "backwards edges" msgstr "arrêtes à l'envers" -#: src/slic3r/GUI/MainFrame.cpp:152 -msgid "based on Slic3r" -msgstr "basé sur Slic3r" - #: src/slic3r/GUI/Tab.cpp:1484 msgid "Bed" msgstr "Plateau" -#: src/libslic3r/PrintConfig.cpp:61 -msgid "Bed custom model" -msgstr "Modèle personnalisé de lit" - -#: src/libslic3r/PrintConfig.cpp:56 -msgid "Bed custom texture" -msgstr "Texture du plateau personnalisée" - #: src/slic3r/GUI/BedShapeDialog.hpp:45 src/slic3r/GUI/ConfigWizard.cpp:524 msgid "Bed Shape" msgstr "Forme du plateau" @@ -782,10 +1033,6 @@ msgstr "G-Code avant changement de couche" msgid "Before roll back" msgstr "Avant le retour en arrière" -#: src/slic3r/GUI/Plater.cpp:608 -msgid "Below object" -msgstr "Sous l'objet" - #: src/libslic3r/PrintConfig.cpp:1508 msgid "Below Z" msgstr "En-deçà de Z" @@ -877,6 +1124,10 @@ msgstr "Description des Boutons et des Couleurs de Texte" msgid "by the print profile maximum" msgstr "par le maximum du profil de l'imprimante" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 +msgid "Camera view " +msgstr "Vue caméra" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:123 msgid "Camera view" msgstr "Vue caméra" @@ -923,6 +1174,10 @@ msgstr "Fonctionnalités" msgid "Capture a configuration snapshot" msgstr "Capturer un instantané de la configuration" +#: src/libslic3r/SLA/SLASupportTree.cpp:2159 +msgid "Cascading pillars" +msgstr "Piliers en cascade" + #: src/libslic3r/PrintConfig.cpp:3035 msgid "Center" msgstr "Centrer" @@ -939,39 +1194,22 @@ msgstr "Fichiers de certificat (*.crt, *.pem)|*.crt;*.pem|Tous les fichiers|*.*" msgid "Change Application &Language" msgstr "Changer la &Langue de l'Application" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Change camera type (perspective, orthographic)" -msgstr "Changer le type d'appareil photo (perspective, orthographique)" +#: xs/src/slic3r/GUI/GUI.cpp:354 +msgid "Change Application Language" +msgstr "Changer la langue de l'application" #: src/slic3r/GUI/GUI_ObjectList.cpp:1226 msgid "Change extruder" msgstr "Changer l'extrudeur" -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:144 -#, possible-c-format -msgid "Change Option %s" -msgstr "Modifier l'Option %s" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3134 -msgid "Change Part Type" -msgstr "Changer le Type de Partie" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:925 -msgid "Change point head diameter" -msgstr "Changer le diamètre de la tête de la pointe" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Change the number of instances of the selected object" -msgstr "Modifie le nombre d'instances de l'objet sélectionné" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Change the number of copies of the selected object" +msgstr "Changer le nombre de copies de l'objet sélectionné" #: src/slic3r/GUI/GUI_ObjectList.cpp:1185 msgid "Change type" msgstr "Changer le type" -#: src/slic3r/GUI/UpdateDialogs.cpp:56 -msgid "Changelog && Download" -msgstr "Téléchargement du Journal des Modifications" - #: src/slic3r/GUI/GUI_App.cpp:378 msgid "Changing of an application language" msgstr "Changer la langue d'une application" @@ -980,21 +1218,17 @@ msgstr "Changer la langue d'une application" msgid "Check for application updates" msgstr "Vérifier les mises à jour de l'application" -#: src/slic3r/GUI/BedShapeDialog.cpp:509 -msgid "Choose a file to import bed texture from (PNG/SVG):" -msgstr "Choisir un fichier à partir duquel importer la texture du plateau (PNG/SVG) :" +#: src/slic3r/GUI/BedShapeDialog.cpp:316 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Choisir un fichier à partir duquel importer la forme du plateau (STL/OBJ/AMF/3MF/PRUSA) :" #: src/slic3r/GUI/MainFrame.cpp:621 msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" msgstr "Choisir un fichier à découper (STL/OBJ/AMF/3MF/PRUSA) :" -#: src/slic3r/GUI/BedShapeDialog.cpp:532 -msgid "Choose an STL file to import bed model from:" -msgstr "Choisissez un fichier STL à partir duquel importer le modèle de lit :" - -#: src/slic3r/GUI/BedShapeDialog.cpp:464 -msgid "Choose an STL file to import bed shape from:" -msgstr "Choisissez un fichier STL à partir duquel importer la forme du plateau :" +#: src/slic3r/GUI/GUI_App.cpp:489 +msgid "Choose one file (3MF):" +msgstr "Choisir un fichier (3MF) :" #: src/slic3r/GUI/GUI_App.cpp:510 msgid "Choose one file (3MF/AMF):" @@ -1012,17 +1246,9 @@ msgstr "Choisissez le type de firmware utilisé par votre imprimante." msgid "Circular" msgstr "Circulaire" -#: src/slic3r/GUI/GLCanvas3D.cpp:3701 src/slic3r/GUI/GLCanvas3D.cpp:3734 -msgid "Click right mouse button to open History" -msgstr "Faites un clic droit sur la souris pour ouvrir l'Historique" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:383 -msgid "Click the icon to change the object printable property" -msgstr "Cliquez sur l'icône pour changer les propriétés imprimables de l'objet" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:377 -msgid "Click the icon to change the object settings" -msgstr "Cliquez sur l'icône pour modifier les réglages de l'objet" +#: src/libslic3r/SLA/SLASupportTree.cpp:2156 +msgid "Classification" +msgstr "Classification" #: src/slic3r/GUI/Plater.cpp:292 msgid "Click to edit preset" @@ -1036,6 +1262,10 @@ msgstr "Dissocier les objets multi-pièces" msgid "Clipping of view" msgstr "Le plan de découpage" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:926 +msgid "Clipping of view:" +msgstr "Le plan de découpage:" + #: src/slic3r/GUI/FirmwareDialog.cpp:814 #: src/slic3r/GUI/PrintHostDialogs.cpp:160 msgid "Close" @@ -1062,10 +1292,6 @@ msgstr "Combiner le remplissage toutes les" msgid "Combine infill every n layers" msgstr "Combiner le remplissage toutes les n couches" -#: src/slic3r/GUI/UpdateDialogs.cpp:116 -msgid "Comment:" -msgstr "Commentaire :" - #: src/slic3r/GUI/Tab.cpp:56 src/libslic3r/PrintConfig.cpp:244 msgid "Compatible print profiles" msgstr "Profils d'impression compatibles" @@ -1158,6 +1384,10 @@ msgstr "La connexion avec l'imprimante fonctionne correctement." msgid "Connection to Prusa SL1 works correctly." msgstr "La connexion avec Prusa SL1 fonctionne correctement." +#: src/slic3r/Utils/OctoPrint.cpp:195 +msgid "Connection to Prusa SLA works correctly." +msgstr "La connexion avec Prusa SLA fonctionne correctement." + #: src/libslic3r/PrintConfig.cpp:1823 msgid "Contact Z distance" msgstr "Distance de contact Z" @@ -1166,6 +1396,14 @@ msgstr "Distance de contact Z" msgid "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and numerous others." msgstr "Contributions par Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik et de nombreux autres personnes." +#: lib/Slic3r/GUI/MainFrame.pm:137 +msgid "Controller" +msgstr "Contrôleur" + +#: src/libslic3r/PrintConfig.cpp:2408 +msgid "Controls the bridge type between two neigboring 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 "Contrôle le type de pont entre deux piliers voisins. Peut-être en zig-zag, en croisement (double zig-zag) ou dynamique auquel cas il alternera automatiquement entre les deux premiers en fonction de la distance entre les deux piliers." + #: src/libslic3r/PrintConfig.cpp:2433 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 "Contrôle le type de pont entre deux piliers voisins. Peut-être en zig-zag, en croisement (double zig-zag) ou dynamique auquel cas il alternera automatiquement entre les deux premiers en fonction de la distance entre les deux piliers." @@ -1174,10 +1412,18 @@ msgstr "Contrôle le type de pont entre deux piliers voisins. Peut-être en zig- msgid "Cooling" msgstr "Refroidissement" +#: src/libslic3r/PrintConfig.cpp:628 +msgid "Cooling moves are gradually accelerating beginning at this speed. " +msgstr "Les mouvements de refroidissement accélèrent progressivement à partir de cette vitesse. " + #: src/libslic3r/PrintConfig.cpp:629 msgid "Cooling moves are gradually accelerating beginning at this speed." msgstr "Les mouvements de refroidissement accélèrent progressivement à partir de cette vitesse." +#: src/libslic3r/PrintConfig.cpp:647 +msgid "Cooling moves are gradually accelerating towards this speed. " +msgstr "Les mouvements de refroidissement accélèrent progressivement jusqu'à cette vitesse. " + #: src/libslic3r/PrintConfig.cpp:648 msgid "Cooling moves are gradually accelerating towards this speed." msgstr "Les mouvements de refroidissement accélèrent progressivement jusqu'à cette vitesse." @@ -1194,6 +1440,10 @@ msgstr "Longueur du tube de refroidissement" msgid "Cooling tube position" msgstr "Position du tube de refroidissement" +#: lib/Slic3r/GUI/Plater.pm:304 lib/Slic3r/GUI/Plater.pm:992 +msgid "Copies" +msgstr "Copies" + #: src/slic3r/GUI/Tab.cpp:2878 msgid "Copy" msgstr "Copier" @@ -1206,19 +1456,11 @@ msgstr "Copier la sélection dans le presse-papier" msgid "Copy to clipboard" msgstr "Copier dans le presse-papier" -#: src/slic3r/GUI/SysInfoDialog.cpp:120 -msgid "Copy to Clipboard" -msgstr "Copier dans le Presse-Papier" - #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:84 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:400 msgid "Copying of the temporary G-code to the output G-code failed" msgstr "La copie du G-code provisoire dans le G-code final a échoué" -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:92 -msgid "Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?" -msgstr "La copie du G-code provisoire dans le G-code final a échoué. Peut-être que la carte SD est protégée en écriture ?" - #: src/slic3r/GUI/AboutDialog.cpp:92 msgid "Copyright" msgstr "Droits d'auteur" @@ -1272,10 +1514,6 @@ msgstr "Les fentes d'une taille inférieure à 2x le rayon de fermeture de l'esp msgid "CRC-32 check failed" msgstr "Échec du test CRC-32" -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "Create pad around object and ignore the support elevation" -msgstr "Créer un socle autour de l'objet et ignorer l'élévation du support" - #: src/libslic3r/PrintConfig.cpp:2460 msgid "Critical angle" msgstr "Angle critique" @@ -1289,18 +1527,18 @@ msgid "Cubic" msgstr "Cubique" #: src/slic3r/GUI/wxExtensions.cpp:2413 -#, possible-c-format +#, c-format msgid "Current mode is %s" msgstr "Le mode actuel est %s" -#: src/slic3r/GUI/Tab.cpp:925 -msgid "Current preset is inherited from the default preset." -msgstr "Le préréglage actuel est hérité du préréglage par défaut." +#: src/slic3r/GUI/Tab.cpp:909 +msgid "Current preset is inherited from " +msgstr "Le préréglage en cours a hérité de " -#: src/slic3r/GUI/Tab.cpp:928 -#, possible-c-format -msgid "Current preset is inherited from:\n\t%s" -msgstr "Le préréglage actuel est hérité de :\n%s" +#: src/slic3r/GUI/Tab.cpp:920 +#, c-format +msgid "Current preset is inherited from %s" +msgstr "Le préréglage en cours a hérité de %s" #: src/slic3r/GUI/UpdateDialogs.cpp:45 msgid "Current version:" @@ -1331,26 +1569,35 @@ msgstr "Configuration d'une Imprimante Personnalisée" msgid "Custom profile name:" msgstr "Nom de profil personnalisé :" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:254 +msgid "Custom setup" +msgstr "Configuration personnalisée" + #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3013 msgid "Cut" msgstr "Couper" -#: src/slic3r/GUI/Plater.cpp:4193 -msgid "Cut by Plane" -msgstr "Couper selon un Plan" - #: src/libslic3r/PrintConfig.cpp:3014 msgid "Cut model at the given Z." msgstr "Couper le modèle au Z donné." +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" +msgstr "Couper l'objet :" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +msgid "Cut [C]" +msgstr "Couper [C]" + +#: lib/Slic3r/GUI/Plater.pm:262 lib/Slic3r/GUI/Plater.pm:278 +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Cut…" +msgstr "Couper…" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1055 msgid "Cylinder" msgstr "Cylindre" -#: src/slic3r/GUI/MainFrame.cpp:491 -msgid "D&eselect all" -msgstr "Tout désél&ectionner" - #: src/libslic3r/PrintConfig.cpp:3115 msgid "Data directory" msgstr "Répertoire de données" @@ -1359,15 +1606,19 @@ msgstr "Répertoire de données" msgid "decompression failed or archive is corrupted" msgstr "la décompression a échoué ou l'archive est corrompue" -#: src/slic3r/GUI/Plater.cpp:4127 -msgid "Decrease Instances" -msgstr "Diminuer les Instances" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Decrease copies" +msgstr "Réduire les copies" #: src/slic3r/GUI/GUI_App.cpp:594 src/slic3r/GUI/GUI_ObjectList.cpp:1245 #: src/libslic3r/PrintConfig.cpp:299 msgid "Default" msgstr "Défaut" +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid "Default " +msgstr "Défaut " + #: xs/src/slic3r/GUI/Field.cpp:98 msgid "default" msgstr "défaut" @@ -1392,11 +1643,19 @@ msgstr "Profil de filament par défaut" msgid "Default filament profile associated with the current printer profile. On selection of the current printer profile, this filament profile will be activated." msgstr "Profil de filament par défaut associé au profil d'imprimante courant. En sélectionnant le profil d'imprimante courant, ce profil de filament sera activé." +#: src/slic3r/GUI/Tab.cpp:921 +msgid "default preset" +msgstr "préréglage par défaut" + #: src/slic3r/GUI/Tab.cpp:2757 -#, possible-c-format +#, c-format msgid "Default preset (%s)" msgstr "Préréglage par défaut (%s)" +#: xs/src/slic3r/GUI/Tab.cpp:2410 xs/src/slic3r/GUI/Tab.cpp:2496 +msgid "Default presets" +msgstr "Préréglages par défaut" + #: src/libslic3r/GCode/PreviewData.cpp:491 msgid "Default print color" msgstr "Couleur d'impression par défaut" @@ -1434,6 +1693,14 @@ msgstr "valeur par défaut" msgid "Define a custom printer profile" msgstr "Définissez un profil d'imprimante personnalisée" +#: src/libslic3r/PrintConfig.cpp:2529 +msgid "Defines the cavity depth. Set to zero to disable the cavity." +msgstr "Définissez la profondeur de la cavité. Réglez sur zéro pour désactiver la cavité." + +#: src/libslic3r/PrintConfig.cpp:2533 +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 effect inside the cavity, which makes pealing the print off the vat foil difficult." +msgstr "Définit la profondeur de la cavité du socle. Réglez sur zéro pour désactiver la cavité. Faites bien attention lorsque vous activez cette fonctionnalité, car certaines résines génèrent un effet de succion extrême dans la cavité, et il est alors difficile de retirer l'impression de la feuille de la cuve." + #: src/libslic3r/PrintConfig.cpp:2558 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 effect inside the cavity, which makes peeling the print off the vat foil difficult." msgstr "Définit la profondeur de la cavité du socle. Réglez sur zéro pour désactiver la cavité. Faites bien attention lorsque vous activez cette fonctionnalité, car certaines résines génèrent un effet de succion extrême dans la cavité, et il est alors difficile de retirer l'impression de la feuille de la cuve." @@ -1442,6 +1709,10 @@ msgstr "Définit la profondeur de la cavité du socle. Réglez sur zéro pour d msgid "degenerate facets" msgstr "faces défectueuses" +#: src/libslic3r/PrintConfig.cpp:2572 +msgid "degrees" +msgstr "degrés" + #: src/libslic3r/PrintConfig.cpp:608 msgid "Delay after unloading" msgstr "Délai après le déchargement" @@ -1467,59 +1738,14 @@ msgstr "Tout Supprimer" msgid "Delete all" msgstr "Tout Supprimer" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1806 -msgid "Delete All Instances from Object" -msgstr "Supprimer Toutes les Instances depuis l'Objet" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:187 msgid "Delete color change marker for current layer" msgstr "Retirer le repère de changement de couleur pour la couche en cours" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1898 -msgid "Delete Height Range" -msgstr "Supprimer la Zone de Hauteur" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1876 -msgid "Delete Instance" -msgstr "Supprimer l'Instance" - -#: src/slic3r/GUI/Plater.cpp:2592 -msgid "Delete Object" -msgstr "Supprimer l'Objet" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:100 -#, possible-c-format -msgid "Delete Option %s" -msgstr "Supprimer l'Option %s" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:137 msgid "Delete selected" msgstr "Supprimer la sélection" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -msgid "Delete Selected" -msgstr "Supprimer la Sélection" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2303 -msgid "Delete Selected Item" -msgstr "Supprimer l'Item Sélectionné" - -#: src/slic3r/GUI/Plater.cpp:4083 -msgid "Delete Selected Objects" -msgstr "Supprimer les Objets Sélectionnés" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1782 -msgid "Delete Settings" -msgstr "Supprimer les Réglages" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1857 -msgid "Delete Subobject" -msgstr "Supprimer le sous-objet" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:720 -msgid "Delete support point" -msgstr "Supprimer un point de support" - #: src/slic3r/GUI/Tab.cpp:131 msgid "Delete this preset" msgstr "Supprimer ce préréglage" @@ -1554,9 +1780,9 @@ msgstr "Vitesse de réinsertion" msgid "Deselect by rectangle" msgstr "Désélectionner par rectangle" -#: src/slic3r/GUI/MainFrame.cpp:492 -msgid "Deselects all objects" -msgstr "Désélectionner tous les objets" +#: src/libslic3r/PrintConfig.cpp:1833 +msgid "detachable" +msgstr "détachable" #: src/libslic3r/PrintConfig.cpp:1304 msgid "Detect bridging perimeters" @@ -1578,6 +1804,22 @@ msgstr "Détecter les parties non-connectées sur un modèle donné (ou plusieur msgid "Detected advanced data" msgstr "Données avancées détectées" +#: src/slic3r/GUI/GLCanvas3D.cpp:723 +msgid "" +"Detected object outside print volume\n" +"Resolve a clash to continue slicing/export process correctly" +msgstr "" +"Objet détecté en dehors du volume d'impression\n" +"Résolvez ce problème pour poursuivre le processus de tranchage/export correctement" + +#: src/slic3r/GUI/GLCanvas3D.cpp:719 +msgid "Detected object outside print volume" +msgstr "Objet détecté en dehors du volume d'impression" + +#: src/slic3r/GUI/GLCanvas3D.cpp:720 +msgid "Detected toolpath outside print volume" +msgstr "Parcours détecté en dehors du volume d'impression" + #: src/slic3r/GUI/BedShapeDialog.cpp:88 src/libslic3r/PrintConfig.cpp:677 msgid "Diameter" msgstr "Diamètre" @@ -1602,18 +1844,22 @@ msgstr "Diamètre du plateau d'impression. Il est supposé que l'origine (0,0) e msgid "Direction" msgstr "Direction" +#: xs/src/slic3r/GUI/Preferences.cpp:76 +msgid "Disable communication with the printer over a serial / USB cable. This simplifies the user interface in case the printer is never attached to the computer." +msgstr "Désactiver la communication avec l'imprimante via un câble série / USB. Ceci simplifie l'interface utilisateur dans le cas où l'imprimante n'est jamais connectée à l'ordinateur." + #: src/libslic3r/PrintConfig.cpp:323 msgid "Disable fan for the first" msgstr "Désactiver le ventilateur pour le(s) première(s)" +#: xs/src/slic3r/GUI/Preferences.cpp:74 +msgid "Disable USB/serial connection" +msgstr "Désactiver la connexion USB/série" + #: src/libslic3r/PrintConfig.cpp:1280 msgid "Disables retraction when the travel path does not exceed the upper layer's perimeters (and thus any ooze will be probably invisible)." msgstr "Désactiver la rétraction lorsque le chemin de déplacement ne franchit pas les périmètres des couches supérieures (et donc les coulures seront probablement invisibles)." -#: src/slic3r/GUI/wxExtensions.cpp:2572 -msgid "Discard all color changes" -msgstr "Annuler tous les changements de couleur" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:869 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1241 msgid "Discard changes" @@ -1635,10 +1881,6 @@ msgstr "Afficher" msgid "Display height" msgstr "Hauteur de l'affichage" -#: src/libslic3r/PrintConfig.cpp:2319 -msgid "Display horizontal mirroring" -msgstr "Afficher la symétrie horizontale" - #: src/libslic3r/PrintConfig.cpp:2227 msgid "Display orientation" msgstr "Orientation de l'affichage" @@ -1647,10 +1889,6 @@ msgstr "Orientation de l'affichage" msgid "Display the Print Host Upload Queue window" msgstr "Afficher la fenêtre de la File d'Attente de Téléchargement de l'Hôte d'Impression" -#: src/libslic3r/PrintConfig.cpp:2326 -msgid "Display vertical mirroring" -msgstr "Afficher la symétrie verticale" - #: src/libslic3r/PrintConfig.cpp:2202 msgid "Display width" msgstr "Largeur de l'affichage" @@ -1663,10 +1901,6 @@ msgstr "Distance entre les copies" msgid "Distance between skirt and object(s). Set this to zero to attach the skirt to the object(s) and get a brim for better adhesion." msgstr "Distance entre le ou les objet(s) et la jupe. Mettez zéro pour attacher la jupe a(ux) objet(s) et obtenir une bordure pour une meilleure adhésion." -#: src/libslic3r/PrintConfig.cpp:2752 -msgid "Distance between two connector sticks which connect the object and the generated pad." -msgstr "La distance entre deux bâtonnets de connexion qui connectent l'objet et le socle généré." - #: src/libslic3r/PrintConfig.cpp:1609 msgid "Distance from object" msgstr "Distance de l'objet" @@ -1675,10 +1909,18 @@ msgstr "Distance de l'objet" msgid "Distance of the 0,0 G-code coordinate from the front left corner of the rectangle." msgstr "Distance des coordonnées 0,0 du G-code depuis le coin avant gauche du rectangle." +#: src/libslic3r/PrintConfig.cpp:284 +msgid "Distance of the center-point of the cooling tube from the extruder tip " +msgstr "Distance entre le point central du tube de refroidissement et la pointe de l'extrudeur. " + #: src/libslic3r/PrintConfig.cpp:285 msgid "Distance of the center-point of the cooling tube from the extruder tip." msgstr "Distance entre le point central du tube de refroidissement et la pointe de l'extrudeur." +#: src/libslic3r/PrintConfig.cpp:1313 +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 "Distance entre la pointe de l'extrudeur et la position où le filament est positionné en attente lorsqu'il est déchargé. Cela doit correspondre à la valeur dans le firmware de l'imprimante. " + #: src/libslic3r/PrintConfig.cpp:1338 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 "Distance entre la pointe de l'extrudeur et la position où le filament est positionné en attente lorsqu'il est déchargé. Cela doit correspondre à la valeur dans le firmware de l'imprimante." @@ -1695,15 +1937,25 @@ msgstr "Ne pas obtenir d'échec si un fichier fourni pour --télécharger n'exis msgid "Do not rearrange the given models before merging and keep their original XY coordinates." msgstr "Ne pas ré-agencer les modèles donnés avant la fusion et conserver leurs coordonnées XY originales." -#: src/slic3r/GUI/Field.cpp:206 -#, possible-c-format -msgid "Do you mean %s%% instead of %s %s?\nSelect YES if you want to change this value to %s%%, \nor NO if you are sure that %s %s is a correct value." -msgstr "Voulez vous dire %s%% au lieu de %s%s ?\nSélectionnez OUI si vous voulez changer cette valeur pour %s%%,\nou NON si vous êtes certain que %s%s est une valeur correcte." +#: src/slic3r/GUI/Field.cpp:181 +#, c-format +msgid "" +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." +msgstr "" +"Voulez vous dire %d%% au lieu de %d %s ?\n" +"Sélectionnez OUI si vous voulez changer cette valeur pour %d%%,\n" +"ou NON si vous êtes certain que %d %s est une valeur correcte." #: src/slic3r/GUI/GUI_App.cpp:754 msgid "Do you want to proceed?" msgstr "Voulez-vous poursuivre?" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1022 +msgid "Do you want to save your manually edited support points ?\n" +msgstr "Voulez-vous sauvegarder vos points de support édités manuellement ?\n" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1024 msgid "Do you want to save your manually edited support points?" msgstr "Voulez-vous sauvegarder vos points de support édités manuellement ?" @@ -1720,6 +1972,10 @@ msgstr "Ne plus me notifier au sujet des nouvelles publications" msgid "Don't support bridges" msgstr "Ne pas supporter les ponts" +#: src/libslic3r/SLA/SLASupportTree.cpp:2161 +msgid "Done" +msgstr "Terminé" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:20 msgid "Downgrade" msgstr "Rétrograder" @@ -1730,10 +1986,9 @@ msgstr "Rétrograder" msgid "Drag" msgstr "Faites glisser" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:340 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:355 -msgid "Drop to bed" -msgstr "Déposer sur le lit" +#: lib/Slic3r/GUI/Plater/2D.pm:132 +msgid "Drag your objects here" +msgstr "Glissez vos objets ici" #: src/libslic3r/PrintConfig.cpp:3044 msgid "Duplicate" @@ -1747,33 +2002,17 @@ msgstr "Dupliquer par grille" msgid "Dynamic" msgstr "Dynamique" -#: src/slic3r/GUI/MainFrame.cpp:708 -msgid "E&xport" -msgstr "E&xporter" - #: src/slic3r/GUI/GUI_ObjectList.cpp:238 msgid "edges fixed" msgstr "arrêtes corrigées" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2690 -msgid "Edit Height Range" -msgstr "Éditer la Zone de Hauteur" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:373 -msgid "Editing" -msgstr "Édition" - #: src/libslic3r/PrintConfig.cpp:349 msgid "Elephant foot compensation" msgstr "Compensation de l'effet patte d'éléphant" -#: src/libslic3r/SLAPrint.cpp:681 -msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation." -msgstr "L'élévation est trop basse pour l'objet. Utilisez la fonction \"Socle autour de l'objet\" pour imprimer l'objet sans élévation." - -#: src/libslic3r/SLAPrint.cpp:678 -msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation." -msgstr "L'Élévation est trop basse pour cet objet. utilisez la fonction \"Socle autour de l'objet\" pour imprimer l'objet sans élévation." +#: src/libslic3r/SLAPrint.cpp:624 +msgid "Elevation is too low for object." +msgstr "L'élévation est trop basse pour l'objet." #: src/libslic3r/PrintConfig.cpp:1044 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. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode." @@ -1792,10 +2031,6 @@ msgstr "Activer le refroidissement automatique" msgid "Enable fan if layer print time is below" msgstr "Activer le ventilateur si le temps d'impression de la couche est inférieur à" -#: src/libslic3r/PrintConfig.cpp:2321 -msgid "Enable horizontal mirroring of output images" -msgstr "Active la symétrie horizontale des images de sortie" - #: src/libslic3r/PrintConfig.cpp:1781 msgid "Enable support material generation." msgstr "Activer la génération des supports." @@ -1812,10 +2047,6 @@ msgstr "Activez ceci pour obtenir un fichier G-code commenté, avec chaque ligne msgid "Enable variable layer height feature" msgstr "Activer la fonction de hauteur de couche variable" -#: src/libslic3r/PrintConfig.cpp:2328 -msgid "Enable vertical mirroring of output images" -msgstr "Activer la symétrie verticale des images de sortie" - #: src/slic3r/GUI/Tab.cpp:1570 src/slic3r/GUI/Tab.cpp:1955 #: src/libslic3r/PrintConfig.cpp:359 src/libslic3r/PrintConfig.cpp:369 msgid "End G-code" @@ -1854,6 +2085,28 @@ msgstr "Entrez le diamètre de votre filament." msgid "Enter the diameter of your printer's hot end nozzle." msgstr "Entrez le diamètre de la buse de la tête d'impression de votre imprimante." +#: lib/Slic3r/GUI/Plater.pm:1158 +msgid "Enter the new max size for the selected object:" +msgstr "Entrez la nouvelle taille maximale pour l'objet sélectionné :" + +#: lib/Slic3r/GUI/Plater.pm:1132 +#, perl-format +msgid "Enter the new size for the selected object (print bed: %smm):" +msgstr "Entrez la nouvelle taille pour l'objet sélectionné (plateau d'impression : %s mm) :" + +#: lib/Slic3r/GUI/Plater.pm:992 +msgid "Enter the number of copies of the selected object:" +msgstr "Entrez le nombre de copies de l'objet sélectionné :" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Enter the rotation angle:" +msgstr "Entrez l'angle de rotation :" + +#: lib/Slic3r/GUI/Plater.pm:1137 lib/Slic3r/GUI/Plater.pm:1163 +#, no-perl-format +msgid "Enter the scale % for the selected object:" +msgstr "Entrez l'échelle en % pour l'objet sélectionné :" + #: src/slic3r/GUI/ConfigWizard.cpp:608 msgid "Enter the temperature needed for extruding your filament." msgstr "Entrez la température nécessaire pour extruder votre filament." @@ -1875,17 +2128,25 @@ msgid "Error" msgstr "Erreur" #: src/slic3r/GUI/FirmwareDialog.cpp:608 -#, possible-c-format +#, c-format msgid "Error accessing port at %s: %s" msgstr "Erreur d'accès au port sur %s : %s" +#: lib/Slic3r/GUI/Plater.pm:1760 +msgid "Error exporting 3MF file " +msgstr "Erreur d'export du fichier 3MF " + #: src/slic3r/GUI/Plater.cpp:3593 -#, possible-c-format +#, c-format msgid "Error exporting 3MF file %s" msgstr "Erreur d'export du fichier 3MF %s" +#: lib/Slic3r/GUI/Plater.pm:1744 +msgid "Error exporting AMF file " +msgstr "Erreur d'export du fichier AMF " + #: src/slic3r/GUI/Plater.cpp:3564 -#, possible-c-format +#, c-format msgid "Error exporting AMF file %s" msgstr "Erreur d'export du fichier AMF %s" @@ -1897,32 +2158,40 @@ msgstr "Message d'erreur" msgid "Error uploading to print host:" msgstr "Erreur lors du téléchargement vers l'hôte d'impression :" +#: xs/src/slic3r/Utils/OctoPrint.cpp:98 +msgid "Error while uploading to the OctoPrint server" +msgstr "Erreur lors du téléchargement vers le serveur OctoPrint" + #: src/libslic3r/Zipper.cpp:105 msgid "Error with zip archive" msgstr "Erreur liée à l'archive zip" +#: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1431 +msgid "Error! " +msgstr "Erreur ! " + #: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1443 msgid "Error!" msgstr "Erreur!" -#: src/slic3r/GUI/BedShapeDialog.cpp:482 -msgid "Error! Invalid model" -msgstr "Erreur ! Modèle invalide" - #: src/slic3r/GUI/FirmwareDialog.cpp:610 -#, possible-c-format +#, c-format msgid "Error: %s" msgstr "Erreur : %s" -#: src/slic3r/GUI/Plater.cpp:1503 -msgid "ERROR: not enough resources to execute a new job." -msgstr "ERREUR : il n'y a pas assez de ressources pour exécuter une nouvelle tâche." - #: src/slic3r/GUI/Plater.cpp:217 src/slic3r/GUI/Plater.cpp:1028 #: src/slic3r/GUI/Plater.cpp:1070 msgid "Estimated printing time" msgstr "Temps d'impression estimé" +#: lib/Slic3r/GUI/Plater.pm:1618 +msgid "Estimated printing time (normal mode)" +msgstr "Temps d'impression estimé (mode normal)" + +#: lib/Slic3r/GUI/Plater.pm:1620 +msgid "Estimated printing time (silent mode)" +msgstr "Temps d'impression estimé (mode silencieux)" + #: src/slic3r/GUI/Plater.cpp:424 msgid "Everywhere" msgstr "Partout" @@ -1931,19 +2200,28 @@ msgstr "Partout" msgid "except for the first %1% layers." msgstr "sauf pour les %1% première couches." +#: src/slic3r/GUI/PresetHints.cpp:46 +#, c-format +msgid "except for the first %d layers" +msgstr "sauf pour les %d première couches" + +#: src/slic3r/GUI/PresetHints.cpp:50 +msgid "except for the first layer" +msgstr "sauf pour la première couche" + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "except for the first layer." msgstr "sauf pour la première couche." -#: src/libslic3r/Print.cpp:1285 -msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm" -msgstr "Dépasse de %1%=%2% mm pour être imprimable avec une buse de diamètre %3% mm" - #: src/slic3r/GUI/UpdateDialogs.cpp:148 -#, possible-c-format +#, c-format msgid "Exit %s" msgstr "Sortir de %s" +#: src/slic3r/GUI/UpdateDialogs.cpp:144 +msgid "Exit Slic3r" +msgstr "Quitter Slic3r" + #: src/libslic3r/PrintConfig.cpp:335 msgid "Experimental option for preventing support material from being generated under bridged areas." msgstr "Option expérimentale pour empêcher la génération de support sous les ponts." @@ -1972,10 +2250,6 @@ msgstr "Exporter la &Configuration" msgid "Export &G-code" msgstr "Exporter le &G-code" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export &toolpaths as OBJ" -msgstr "Exporter les parcours en tant que OBJ" - #: src/libslic3r/PrintConfig.cpp:2949 msgid "Export 3MF" msgstr "Exporter 3MF" @@ -1996,6 +2270,10 @@ msgstr "Exporter le fichier AMF :" msgid "Export as STL" msgstr "Exporter en tant que STL" +#: lib/Slic3r/GUI/Plater.pm:1416 +msgid "Export cancelled" +msgstr "Exportation annulée" + #: src/slic3r/GUI/MainFrame.cpp:375 msgid "Export Config &Bundle" msgstr "Exporter le &Lot de Configuration" @@ -2004,6 +2282,10 @@ msgstr "Exporter le &Lot de Configuration" msgid "Export current configuration to file" msgstr "Exporter la configuration actuelle vers un fichier" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export current plate as 3MF" +msgstr "Exporter le plateau courant en 3MF" + #: src/slic3r/GUI/MainFrame.cpp:370 msgid "Export current plate as AMF" msgstr "Exporter le plateau courant en AMF" @@ -2029,13 +2311,21 @@ msgstr "L'export a échoué" msgid "Export G-code" msgstr "Exporter le G-code" +#: lib/Slic3r/GUI/MainFrame.pm:272 +msgid "Export G-code..." +msgstr "Exporter le G-code..." + +#: lib/Slic3r/GUI/Plater.pm:322 +msgid "Export G-code…" +msgstr "Exporter le G-code…" + #: src/libslic3r/PrintConfig.cpp:2931 msgid "Export OBJ" msgstr "Exporter OBJ" -#: src/slic3r/GUI/Plater.cpp:2531 -msgid "Export OBJ file:" -msgstr "Exporter le fichier OBJ :" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export object as STL…" +msgstr "Exporter l'objet en STL…" #: src/slic3r/Utils/FixModelByWin10.cpp:368 msgid "Export of a temporary 3mf file failed" @@ -2049,9 +2339,25 @@ msgstr "Exporter le plateau en tant que &AMF" msgid "Export plate as &STL" msgstr "Exporter le plateau en tant que &STL" -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export plate as STL &including supports" -msgstr "Exporter le plateau en STL en &incluant les supports" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export plate as 3MF..." +msgstr "Exporter le plateau en 3MF..." + +#: lib/Slic3r/GUI/MainFrame.pm:278 +msgid "Export plate as AMF..." +msgstr "Exporter le plateau en AMF..." + +#: src/slic3r/GUI/MainFrame.cpp:368 +msgid "Export plate as STL including supports" +msgstr "Exporter le plateau en STL, supports inclus" + +#: lib/Slic3r/GUI/MainFrame.pm:275 +msgid "Export plate as STL..." +msgstr "Exporter le plateau en STL..." + +#: xs/src/slic3r/GUI/GUI.cpp:930 +msgid "Export print config" +msgstr "Exporter la configuration d'impression" #: src/libslic3r/PrintConfig.cpp:2943 msgid "Export SLA" @@ -2065,6 +2371,14 @@ msgstr "Exporter STL" msgid "Export STL file:" msgstr "Exporter le fichier STL :" +#: lib/Slic3r/GUI/Plater.pm:326 +msgid "Export STL…" +msgstr "Exporter le STL…" + +#: src/libslic3r/PrintConfig.cpp:2924 +msgid "Export SVG" +msgstr "Exporter SVG" + #: src/libslic3r/PrintConfig.cpp:2950 msgid "Export the model(s) as 3MF." msgstr "Exporter le(s) modèle(s) en tant que 3MF." @@ -2085,9 +2399,9 @@ msgstr "Exporter le(s) modèle(s) en tant que STL." msgid "Export the selected object as STL file" msgstr "Exporter l'objet sélectionné en tant que fichier STL" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export toolpaths as OBJ" -msgstr "Exporter le parcours en tant que OBJ" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export this single object as STL file" +msgstr "Exporter cet unique objet en fichier STL" #: src/libslic3r/Print.cpp:1517 msgid "Exporting G-code" @@ -2102,10 +2416,6 @@ msgstr "Exportation du modèle ..." msgid "Exporting source model" msgstr "Exportation du modèle source" -#: src/libslic3r/SLAPrint.cpp:700 -msgid "Exposition time is out of printer profile bounds." -msgstr "Le temps d'exposition dépasse les limites du profil d'imprimante." - #: src/slic3r/GUI/Tab.cpp:3306 msgid "Exposure" msgstr "Exposition" @@ -2148,7 +2458,7 @@ msgid "Extruder" msgstr "Extrudeur" #: src/slic3r/GUI/Tab.cpp:2253 src/libslic3r/GCode/PreviewData.cpp:475 -#, possible-c-format +#, c-format msgid "Extruder %d" msgstr "Extrudeur %d" @@ -2246,6 +2556,10 @@ msgstr "Échec du chargement du modèle d'entrée." msgid "Failed processing of the output_filename_format template." msgstr "Échec du traitement du modèle output_filename_format." +#: src/slic3r/GUI/PresetHints.cpp:38 +msgid "Fan " +msgstr "Ventilateur " + #: src/slic3r/GUI/PresetHints.cpp:41 msgid "Fan" msgstr "Ventilateur" @@ -2266,10 +2580,6 @@ msgstr "Rapide" msgid "Fast tilt" msgstr "Inclinaison rapide" -#: src/slic3r/GUI/GUI_App.cpp:135 -msgid "Fatal error" -msgstr "Erreur fatale" - #: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:537 #: src/libslic3r/GCode/PreviewData.cpp:394 msgid "Feature type" @@ -2279,6 +2589,10 @@ msgstr "Type de fonctionnalité" msgid "Feature types" msgstr "Types de fonctionnalité" +#: lib/Slic3r/GUI/Plater.pm:256 +msgid "Fewer" +msgstr "Moins" + #: src/slic3r/GUI/Plater.cpp:682 src/slic3r/GUI/Tab.cpp:1470 #: src/slic3r/GUI/Tab.cpp:1471 msgid "Filament" @@ -2296,6 +2610,10 @@ msgstr "Diamètres du Filament et de la Buse" msgid "Filament Diameter:" msgstr "Diamètre du Filament :" +#: src/libslic3r/PrintConfig.cpp:619 +msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves " +msgstr "Le filament est refroidi en étant déplacé d'avant en arrière dans les tubes de refroidissement. Spécifiez le nombre souhaité de ces mouvements " + #: src/libslic3r/PrintConfig.cpp:620 msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves." msgstr "Le filament est refroidi en étant déplacé d'avant en arrière dans les tubes de refroidissement. Spécifiez le nombre souhaité de ces mouvements." @@ -2308,10 +2626,6 @@ msgstr "Temps de chargement du filament" msgid "Filament notes" msgstr "Notes du filament" -#: src/slic3r/GUI/Tab.cpp:1502 src/slic3r/GUI/Tab.cpp:1557 -msgid "Filament Overrides" -msgstr "Annulations de Filament" - #: src/libslic3r/PrintConfig.cpp:1312 msgid "Filament parking position" msgstr "Position d'attente du filament" @@ -2336,6 +2650,10 @@ msgstr "Temps de déchargement du filament" msgid "filaments" msgstr "filaments" +#: lib/Slic3r/GUI/Plater.pm:1555 +msgid "File added to print queue" +msgstr "Fichier ajouté à la file d'impression" + #: src/libslic3r/Zipper.cpp:75 msgid "file close failed" msgstr "échec de la fermeture du fichier" @@ -2404,6 +2722,14 @@ msgstr "Motif pour les remplissages de faible densité." msgid "Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells." msgstr "Motif pour les remplissages pour le remplissage du haut. Ceci affecte seulement la couche externe visible en haut, et non les coques solides adjacentes." +#: xs/src/libslic3r/PrintConfig.cpp:285 +msgid "Fill pattern for top/bottom infill. This only affects the external visible layer, and not its adjacent solid shells." +msgstr "Motif pour les remplissages supérieurs/inférieurs. Ceci affecte seulement la couche externe visible, et non les coques solides adjacentes." + +#: src/libslic3r/SLA/SLASupportTree.cpp:2154 +msgid "Filtering" +msgstr "Filtrage" + #: src/slic3r/GUI/BonjourDialog.cpp:225 msgid "Finished" msgstr "Terminé" @@ -2449,18 +2775,30 @@ msgstr "Vitesse de la première couche" msgid "First layer volumetric" msgstr "Volume de la première couche" +#: src/libslic3r/Print.cpp:1313 +msgid "first_layer_height" +msgstr "hauteur_de_premiere_couche" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix STL through Netfabb" +msgstr "Corriger le STL avec Netfabb" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix the model by sending it to a Netfabb cloud service through Windows 10 API" +msgstr "Corriger le modèle en l'envoyant à un service cloud Netfabb via l'API Windows 10" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1210 msgid "Fix through the Netfabb" msgstr "Corriger avec Netfabb" -#: src/slic3r/GUI/Plater.cpp:3072 -msgid "Fix Throught NetFabb" -msgstr "Corriger Avec NetFabb" - #: src/slic3r/GUI/GUI_App.cpp:685 msgid "Flash printer &firmware" msgstr "Flasher le &firmware de l'imprimante" +#: xs/src/slic3r/GUI/GUI.cpp:356 +msgid "Flash printer firmware" +msgstr "Flasher le firmware de l'imprimante" + #: src/slic3r/GUI/FirmwareDialog.cpp:146 msgid "Flash!" msgstr "Flash !" @@ -2477,6 +2815,10 @@ msgstr "Échec du processus de flash" msgid "Flashing failed. Please see the avrdude log below." msgstr "Le processus de flash a échoué. Veuillez consulter le journal avrdude ci-dessous." +#: src/slic3r/GUI/FirmwareDialog.cpp:192 +msgid "Flashing failed: " +msgstr "Échec du processus de flash :" + #: src/slic3r/GUI/FirmwareDialog.cpp:148 msgid "Flashing in progress. Please do not disconnect the printer!" msgstr "Processus de flash en cours. Veuillez ne pas déconnecter l'imprimante !" @@ -2502,13 +2844,31 @@ msgid "For support enforcers only" msgstr "Seulement pour les générateur de supports" #. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3345 -msgid "for the left button: \tindicates a non-system (or non-default) preset,\nfor the right button: \tindicates that the settings hasn't been modified." -msgstr "pour le bouton gauche : indique un préréglage non-système (ou non par défaut),\npour le bouton droit : indique que le réglage n'a pas été modifié." +#: src/slic3r/GUI/Tab.cpp:3078 +msgid "" +"for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"pour le bouton gauche : indique un préréglage non-système,\n" +"pour le bouton droit : indique que le réglage n'a pas été modifié." + +#: src/slic3r/GUI/Tab.cpp:1295 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "" +"Pour que la tour de nettoyage fonctionne avec des supports solubles, les couches de support\n" +"doivent être synchronisées avec les couches de l'objet.\n" +"\n" +"Dois-je synchroniser les couches de support pour pouvoir activer la tour de nettoyage ?" #: src/libslic3r/Print.cpp:1302 msgid "For the Wipe Tower to work with the soluble supports, the support layers need to be synchronized with the object layers." -msgstr "Pour que la Tour de Nettoyage fonctionne avec des supports solubles, les couches de support\ndoivent être synchronisées avec les couches de l'objet." +msgstr "" +"Pour que la Tour de Nettoyage fonctionne avec des supports solubles, les couches de support\n" +"doivent être synchronisées avec les couches de l'objet." #: src/libslic3r/PrintConfig.cpp:1660 msgid "Force solid infill for regions having a smaller area than the specified threshold." @@ -2522,10 +2882,6 @@ msgstr "Force la génération de coques solides entre des volumes/matériaux adj msgid "From" msgstr "De" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1853 -msgid "From Object List You can't delete the last solid part from object." -msgstr "Depuis la Liste d'Objet Vous ne pouvez pas supprimer la dernière partie solide de l'objet." - #: src/slic3r/GUI/MainFrame.cpp:525 msgid "Front" msgstr "Avant" @@ -2534,10 +2890,18 @@ msgstr "Avant" msgid "Front View" msgstr "Vue Avant" +#: src/slic3r/GUI/Tab.cpp:2151 +msgid "Full Power" +msgstr "Pleine Puissance" + #: src/slic3r/GUI/MainFrame.cpp:677 msgid "G-code" msgstr "G-code" +#: lib/Slic3r/GUI/Plater.pm:1561 +msgid "G-code file exported to " +msgstr "Fichier G-code exporté vers " + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:87 msgid "G-code file exported to %1%" msgstr "Fichier G-code exporté vers %1%" @@ -2564,6 +2928,10 @@ msgstr "Général" 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 "Nombre minimum de contours à générer afin de consommer la quantité de filament spécifiée sur la couche inférieure. Pour les machines multi-extrudeurs, ce minimum s'applique à chaque extrudeur." +#: src/libslic3r/SLA/SLASupportTree.cpp:2155 +msgid "Generate pinheads" +msgstr "Générer des épingles" + #: src/libslic3r/PrintConfig.cpp:1779 msgid "Generate support material" msgstr "Générer des supports" @@ -2640,22 +3008,6 @@ msgstr "Échelle du Gizmo" msgid "Gizmo SLA support points" msgstr "Points de support SLA du Gizmo" -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:641 -msgid "Gizmo-Move" -msgstr "Gizmo-Déplacement" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:569 -msgid "Gizmo-Place on Face" -msgstr "Gizmo-Positionner sur la surface" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:651 -msgid "Gizmo-Rotate" -msgstr "Gizmo-Rotation" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:646 -msgid "Gizmo-Scale" -msgstr "Gizmo-Échelle" - #: src/slic3r/GUI/AboutDialog.cpp:95 msgid "GNU Affero General Public License, version 3" msgstr "GNU Affero Licence Publique Générale, version 3" @@ -2684,6 +3036,14 @@ msgstr "a les changements suivants non-enregistrés :" msgid "Head diameter" msgstr "Diamètre de la tête" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:838 +msgid "Head diameter: " +msgstr "Diamètre de la tête :" + +#: src/slic3r/GUI/Tab.cpp:3483 +msgid "Head penetration should not be greater than the head width." +msgstr "La pénétration de la tête ne devrait pas être supérieure à la largeur de la tête." + #: src/libslic3r/PrintConfig.cpp:822 msgid "Heated build plate temperature for the first layer. Set this to zero to disable bed temperature control commands in the output." msgstr "Température du plateau chauffant pour la première couche. Mettez ceci à zéro pour désactiver les commandes de contrôle de température du plateau dans la sortie." @@ -2704,23 +3064,24 @@ msgstr "Hauteur de la jupe exprimée en couches. Mettez une valeur élevée pour msgid "Height of the display" msgstr "Hauteur de l'affichage" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1350 -msgid "Height range Modifier" -msgstr "Modificateur de la zone de hauteur" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3650 src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Height ranges" -msgstr "Zones de hauteur" +#: src/libslic3r/PrintConfig.cpp:225 +msgid "Heights at which a filament change is to occur. " +msgstr "Hauteurs auxquelles le changement de filament doit se produire." #: src/libslic3r/PrintConfig.cpp:226 msgid "Heights at which a filament change is to occur." msgstr "Hauteurs auxquelles le changement de filament doit se produire." #: src/slic3r/GUI/ConfigWizard.cpp:300 -#, possible-c-format +#, c-format msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print." msgstr "Bonjour, bienvenu dans %s ! Ce %s vous aide à la configuration initiale ; juste quelques paramètres et vous serez prêt à imprimer." +#: src/slic3r/GUI/ConfigWizard.cpp:290 +#, c-format +msgid "Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial configuration; just a few settings and you will be ready to print." +msgstr "Bonjour, bienvenu dans Slic3r Prusa Edition ! Ce %s vous aide à la configuration initiale ; juste quelques paramètres et vous serez prêt à imprimer." + #: src/libslic3r/PrintConfig.cpp:2976 msgid "Help" msgstr "Aide" @@ -2778,20 +3139,20 @@ msgid "Hostname, IP or URL" msgstr "Nom d'hôte, IP ou URL" #: src/slic3r/GUI/Tab.cpp:136 -msgid "Hover the cursor over buttons to find more information \nor click this button." -msgstr "Passez le curseur au dessus des boutons pour obtenir plus d'informations\nou cliquez sur ce bouton." - -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "How much should the tiny connectors penetrate into the model body." -msgstr "À quelle profondeur les petits connecteurs doivent-ils pénétrer dans le corps du modèle." +msgid "" +"Hover the cursor over buttons to find more information \n" +"or click this button." +msgstr "" +"Passez le curseur au dessus des boutons pour obtenir plus d'informations\n" +"ou cliquez sur ce bouton." #: src/libslic3r/PrintConfig.cpp:2380 msgid "How much the pinhead has to penetrate the model surface" msgstr "Niveau de pénétration de l'épingle dans la surface du modèle" -#: src/libslic3r/PrintConfig.cpp:2642 -msgid "How much the supports should lift up the supported object. If \"Pad around object\" is enabled, this value is ignored." -msgstr "A quel point les supports devraient soutenir l'objet supporté. Si la fonction \"Socle autour de l'objet\" est activée, cette valeur est ignorée." +#: src/libslic3r/PrintConfig.cpp:2491 +msgid "How much the supports should lift up the supported object." +msgstr "À quel point les supports devraient soutenir l'objet supporté." #: src/libslic3r/PrintConfig.cpp:95 msgid "HTTPS CA File" @@ -2802,13 +3163,25 @@ msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self msgstr "Le fichier HTTPS CA est optionnel. Il est uniquement requis si vous utilisez le HTTPS avec un certificat auto-signé." #: src/slic3r/GUI/Tab.cpp:1773 -#, possible-c-format -msgid "HTTPS CA File:\n \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." -msgstr "Fichier HTTPS CA :\n\tDans ce système, %s utilise des certificats HTTPS issus du système Magasin de Certificats ou Trousseau.\n\tPour utiliser un fichier CA personnalisé, veuillez importer votre fichier CA dans le Magasin de Certificats / Trousseau." +#, c-format +msgid "" +"HTTPS CA File:\n" +" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n" +" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"Fichier HTTPS CA :\n" +"\tDans ce système, %s utilise des certificats HTTPS issus du système Magasin de Certificats ou Trousseau.\n" +"\tPour utiliser un fichier CA personnalisé, veuillez importer votre fichier CA dans le Magasin de Certificats / Trousseau." -#: src/slic3r/GUI/Preferences.cpp:192 -msgid "Icon size in a respect to the default size" -msgstr "Taille de l'icône par rapport à la taille par défaut" +#: src/slic3r/GUI/Tab.cpp:1725 +msgid "" +"HTTPS CA File:\n" +"\tOn this system, Slic3r uses HTTPS certificates from the system Certificate Store or Keychain.\n" +"\tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"Fichier HTTPS CA :\n" +"\tDans ce système, Slic3r utilise des certificats HTTPS issus du système Magasin de Certificats ou Trousseau.\n" +"\tPour utiliser un fichier CA personnalisé, veuillez importer votre fichier CA dans le Magasin de Certificats / Trousseau." #: src/slic3r/GUI/PrintHostDialogs.cpp:148 msgid "ID" @@ -2819,12 +3192,12 @@ msgid "If checked, supports will be generated automatically based on the overhan msgstr "Si cette case est cochée, les supports seront générés automatiquement en fonction de la valeur seuil de surplomb. Si cette case n'est pas cochée, les supports seront générés uniquement dans les volumes \"Générateur de supports\"." #: src/slic3r/GUI/ConfigWizard.cpp:413 -#, possible-c-format +#, c-format msgid "If enabled, %s checks for new application versions online. When a new version becomes available, a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." msgstr "Si activé, %s vérifie en ligne l'existence de nouvelles versions de Slic3r PE. Lorsqu'une nouvelle version est disponible, une notification est affichée au démarrage suivant de l'application (jamais pendant l'utilisation du programme). Ceci est uniquement un mécanisme de notification, aucune installation automatique n'est faite." #: src/slic3r/GUI/ConfigWizard.cpp:423 -#, possible-c-format +#, c-format msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup." msgstr "Si activé, %s télécharge les mises à jours des préréglages système intégrés en arrière-plan. Ces mises à jour sont téléchargées dans un répertoire temporaire séparé. Lorsqu'une nouvelle version de préréglages est disponible, elle est proposée au démarrage de l'application." @@ -2833,8 +3206,12 @@ msgid "If enabled, all printing extruders will be primed at the front edge of th msgstr "Si ceci est activé, tous les extrudeurs qui impriment seront positionnés sur la bordure avant du lit d'impression au début de l'impression." #: src/slic3r/GUI/Preferences.cpp:63 -msgid "If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." -msgstr "Si activé, PrusaSlicer vérifie l'existence de ses nouvelles versions en ligne . Lorsqu'une nouvelle version est disponible, une notification est affichée au prochain démarrage de l'application (jamais pendant l'utilisation du programme). Ceci est uniquement un mécanisme de notification, aucune installation automatique n'est faite." +msgid "If enabled, Slic3r checks for new versions of " +msgstr "Si activé, Slic3r recherche les nouvelles versions de" + +#: src/slic3r/GUI/ConfigWizard.cpp:401 src/slic3r/GUI/Preferences.cpp:61 +msgid "If enabled, Slic3r checks for new versions of Slic3r PE online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." +msgstr "Si activé, Slic3r vérifie en ligne l'existence de nouvelles versions de Slic3r PE. Lorsqu'une nouvelle version est disponible, une notification est affichée au démarrage suivant de l'application (jamais pendant l'utilisation du programme). Ceci est uniquement un mécanisme de notification, aucune installation automatique n'est faite." #: src/slic3r/GUI/Preferences.cpp:71 msgid "If enabled, Slic3r downloads updates of built-in system presets in the background. These updates are downloaded into a separate temporary location. When a new preset version becomes available it is offered at application startup." @@ -2844,18 +3221,15 @@ msgstr "Si activé, Slic3r télécharge les mises à jours des préréglages sys 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 "Si ceci est activé, la scène 3D sera affichée avec la résolution Retina. Si vous rencontrez des problèmes de performance 3D, le fait de désactiver cette option vous aidera peut-être." -#: src/slic3r/GUI/Preferences.cpp:112 -msgid "If enabled, use perspective camera. If not enabled, use orthographic camera." -msgstr "Si activé, utilise la l'appareil photo en perspective. Si n'est pas activé, utilise l'appareil photo en vue orthographique." - -#: src/slic3r/GUI/Preferences.cpp:119 -msgid "If enabled, you can change size of toolbar icons manually." -msgstr "Si activé, vous pouvez changer la taille des icônes de la barre d'outils manuellement." - #: src/slic3r/GUI/PresetHints.cpp:28 msgid "If estimated layer time is below ~%1%s, fan will run at %2%%% and print speed will be reduced so that no less than %3%s are spent on that layer (however, speed will never be reduced below %4%mm/s)." msgstr "Si le temps de couche estimé est inférieur à ~%1%s, le ventilateur tournera à %2%%% et la vitesse d'impression sera réduite pour qu'au moins %3%s soient passées sur cette couche (cependant, la vitesse ne sera jamais réduite en-dessous de %4%mm/s)." +#: src/slic3r/GUI/PresetHints.cpp:28 +#, c-format +msgid "If estimated layer time is below ~%ds, fan will run at %d%% and print speed will be reduced so that no less than %ds are spent on that layer (however, speed will never be reduced below %dmm/s)." +msgstr "Si le temps de couche estimé est inférieur à ~%ds, le ventilateur tournera à %d%% et la vitesse d'impression sera réduite pour qu'au moins %d s soient passées sur cette couche (cependant, la vitesse ne sera jamais réduite en-dessous de %dmm/s)." + #: src/libslic3r/PrintConfig.cpp:853 msgid "If expressed as absolute value in mm/s, this speed will be applied to all the print moves of the first layer, regardless of their type. If expressed as a percentage (for example: 40%) it will scale the default speeds." msgstr "Si exprimée avec une valeur absolue en mm/s, cette vitesse sera appliquée à tous les déplacements d'impression de la première couche, quel que soit leur type. Si exprimée comme un pourcentage (par exemple 40%), cela modulera la vitesse par défaut." @@ -2884,6 +3258,10 @@ msgstr "Si ceci est activé, Slic3r va pré-calculer les objets dès qu'ils sont msgid "If this is enabled, Slic3r will prompt the last output directory instead of the one containing the input files." msgstr "Si ceci est activé, Slic3r affichera le dernier répertoire de sortie au lieu de celui contenant les fichiers d'entrée." +#: src/slic3r/GUI/Preferences.cpp:95 +msgid "If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may try to check this checkbox. This will disable the layer height editing and anti aliasing, so it is likely better to upgrade your graphics driver." +msgstr "Si vous avez des soucis de rendu causés par un driver OpenGL 2.0 bogué, vous pouvez essayer de cocher cette case. Ceci désactivera l'édition de la hauteur de couche et l'anti-aliasing, vous avez donc intérêt à mettre à jour vos drivers graphiques." + #: src/libslic3r/PrintConfig.cpp:1492 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 "Si vous indiquez une valeur positive, l'axe Z est rapidement élevé à chaque rétraction. Lorsque vous utilisez plusieurs extrudeurs, seul le réglage du premier extrudeur sera pris en compte." @@ -2924,14 +3302,6 @@ msgstr "Importer le &Lot de Configuration" msgid "Import Config from &project" msgstr "Importer la Configuration depuis le &projet" -#: src/slic3r/GUI/Plater.cpp:4016 -msgid "Import Object" -msgstr "Importer l'Objet" - -#: src/slic3r/GUI/Plater.cpp:4020 -msgid "Import Objects" -msgstr "Importer les Objets" - #: src/slic3r/Utils/FixModelByWin10.cpp:383 msgid "Import of the repaired 3mf file failed" msgstr "Échec de l'import du fichier 3mf réparé" @@ -2945,7 +3315,7 @@ msgid "Import STL/OBJ/AMF/3MF without config, keep bed" msgstr "Importer STL/OBJ/AMF/3MF sans la configuration, garder le lit" #: src/slic3r/GUI/GUI_ObjectList.cpp:2416 -#, possible-c-format +#, c-format msgid "In this mode you can select only other %s Items%s" msgstr "Dans ce mode vous ne pouvez sélectionner que d'autres %s Items %s" @@ -2954,28 +3324,39 @@ msgid "Incompatible bundles:" msgstr "Lots incompatibles :" #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70 -#, possible-c-format +#, c-format msgid "Incompatible with this %s" msgstr "Incompatible avec ce %s" -#: src/slic3r/GUI/Plater.cpp:4091 -msgid "Increase Instances" -msgstr "Augmenter les Instances" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 +msgid "Incompatible with this Slic3r" +msgstr "Incompatible avec ce Slic3r" + +#: src/slic3r/GUI/Plater.cpp:2813 src/slic3r/GUI/Plater.cpp:2825 +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Increase copies" +msgstr "Augmenter les copies" #. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3338 -msgid "indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\nClick the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values." -msgstr "indique que certains paramètres ont été modifiés et ne sont pas égaux aux valeurs du système (ou par défaut) pour le groupe d'options actuel.\n\nCliquez sur l'icône CADENAS OUVERT pour régler tous les paramètres pour le groupe d'options actuel sur les valeurs du système (ou par défaut)." +#: src/slic3r/GUI/Tab.cpp:3071 +msgid "" +"indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "indique que certains paramètres ont été modifiés et ne sont pas égaux aux valeurs du système pour le groupe d'options actuel. Cliquez sur l'icône CADENAS OUVERT pour régler tous les paramètres pour le groupe d'options actuel sur les valeurs du système." #. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3334 -msgid "indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "indique que les paramètres sont les mêmes que les valeurs système (ou par défaut) pour le groupe d'options en cours" +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "indicates that the settings are the same as the system values for the current option group" +msgstr "indique que les paramètres sont les mêmes que les valeurs système pour le groupe d'options en cours" #. TRN Description for "BACK ARROW" #: src/slic3r/GUI/Tab.cpp:3083 -msgid "indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick the BACK ARROW icon to reset all settings for the current option group to the last saved preset." -msgstr "indique que les paramètres ont été changés et qu'ils ne sont pas identiques au dernier préréglage enregistré du groupe d'options en cours.\nCliquez sur l'icône FLÈCHE ARRIÈRE pour restaurer tous les paramètres du groupe d'options en cours avec les valeurs du dernier préréglage enregistré." +msgid "" +"indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "" +"indique que les paramètres ont été changés et qu'ils ne sont pas identiques au dernier préréglage enregistré du groupe d'options en cours.\n" +"Cliquez sur l'icône FLÈCHE ARRIÈRE pour restaurer tous les paramètres du groupe d'options en cours avec les valeurs du dernier préréglage enregistré." #: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:69 #: src/slic3r/GUI/GUI_ObjectList.cpp:510 src/slic3r/GUI/Plater.cpp:439 @@ -3019,10 +3400,6 @@ msgstr "Info" msgid "Inherits profile" msgstr "Hérite du profil" -#: src/libslic3r/SLAPrint.cpp:707 -msgid "Initial exposition time is out of printer profile bounds." -msgstr "Le temps d'exposition initial est en dehors des limites du profil d'imprimante." - #: src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2318 msgid "Initial exposure time" msgstr "Temps d'exposition initial" @@ -3040,7 +3417,7 @@ msgid "Inspect / activate configuration snapshots" msgstr "Inspecter / activer les instantanés de configuration" #: src/slic3r/GUI/wxExtensions.cpp:407 src/slic3r/GUI/wxExtensions.cpp:474 -#, possible-c-format +#, c-format msgid "Instance %d" msgstr "Instance %d" @@ -3052,9 +3429,10 @@ msgstr "Manipulation d'instance" msgid "Instances" msgstr "Instances" -#: src/slic3r/GUI/GUI_ObjectList.cpp:934 src/slic3r/GUI/GUI_ObjectList.cpp:3346 -msgid "Instances to Separated Objects" -msgstr "Instances vers les Objets Séparés" +#: src/slic3r/GUI/wxExtensions.cpp:365 +#, c-format +msgid "Instance_%d" +msgstr "Instance_%d" #: src/libslic3r/PrintConfig.cpp:1886 msgid "Interface layers" @@ -3080,19 +3458,22 @@ msgstr "erreur interne" msgid "Internal infill" msgstr "Remplissage interne" +#: xs/src/slic3r/Utils/OctoPrint.cpp:120 +msgid "Invalid API key" +msgstr "Clé API invalide" + #: src/slic3r/GUI/Plater.cpp:2397 msgid "Invalid data" msgstr "Donnée non valide" -#: src/slic3r/GUI/BedShapeDialog.cpp:471 src/slic3r/GUI/BedShapeDialog.cpp:520 -#: src/slic3r/GUI/BedShapeDialog.cpp:543 -msgid "Invalid file format." -msgstr "Format de fichier non valide." - #: src/libslic3r/Zipper.cpp:83 msgid "invalid filename" msgstr "nom de fichier non valide" +#: src/slic3r/GUI/Tab.cpp:3484 +msgid "Invalid Head penetration" +msgstr "Pénétration de la tête non valide" + #: src/libslic3r/Zipper.cpp:51 msgid "invalid header or archive is corrupted" msgstr "entête non valide ou archive corrompue" @@ -3105,6 +3486,19 @@ msgstr "Entrée numérique non valide." msgid "invalid parameter" msgstr "paramètre non valide" +#: src/slic3r/GUI/Tab.cpp:3497 +msgid "Invalid pinhead diameter" +msgstr "Diamètre de l'épingle non valide" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Invalid rotation angle entered" +msgstr "Angle de rotation entré invalide" + +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +#: lib/Slic3r/GUI/Plater.pm:1158 lib/Slic3r/GUI/Plater.pm:1163 +msgid "Invalid scaling value entered" +msgstr "Valeur de mise à l'échelle entrée invalide" + #. TRN "Slic3r _is licensed under the_ License" #: src/slic3r/GUI/AboutDialog.cpp:94 msgid "is licensed under the" @@ -3126,6 +3520,10 @@ msgstr "Isométrique" msgid "Iso View" msgstr "Vue Isométrique" +#: src/slic3r/GUI/Tab.cpp:914 +msgid "It can't be deleted or modified. " +msgstr "Il ne peut être supprimé ou modifié. " + #: src/slic3r/GUI/Tab.cpp:925 msgid "It can't be deleted or modified." msgstr "Il ne peut être supprimé ou modifié." @@ -3134,6 +3532,14 @@ msgstr "Il ne peut être supprimé ou modifié." 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 "Il peut être intéressant d'augmenter le courant du moteur de l'extrudeur pendant la séquence d'échange de filament pour permettre un débit d'expulsion rapide et pour compenser la résistance lors du chargement d'un filament avec une pointe mal taillée." +#: src/slic3r/GUI/Tab.cpp:907 +msgid "It's a default preset." +msgstr "C'est un préréglage par défaut." + +#: src/slic3r/GUI/Tab.cpp:908 +msgid "It's a system preset." +msgstr "C'est un préréglage système." + #: src/slic3r/GUI/GUI.cpp:142 src/slic3r/GUI/Tab.cpp:2796 msgid "It's impossible to print multi-part object(s) with SLA technology." msgstr "Il est impossible d'imprimer un (des) objet(s) en plusieurs parties avec la technologie SLA." @@ -3178,14 +3584,17 @@ msgstr "Langue" msgid "Language selection" msgstr "Sélection de la langue" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1770 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1872 -msgid "Last instance of an object cannot be deleted." -msgstr "La dernière instance d'un objet ne peut être supprimée." +#: src/slic3r/GUI/GLCanvas3D.cpp:1694 +msgid "Last frame" +msgstr "Dernière image" + +#: lib/Slic3r/GUI/Plater.pm:265 +msgid "Layer Editing" +msgstr "Édition de Couche" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2994 -msgid "Layer" -msgstr "Couche" +#: lib/Slic3r/GUI/Plater.pm:280 +msgid "Layer editing" +msgstr "Édition de couche" #: src/slic3r/GUI/Tab.cpp:998 src/libslic3r/PrintConfig.cpp:55 msgid "Layer height" @@ -3199,10 +3608,6 @@ msgstr "La hauteur de couche ne peut pas être supérieure au diamètre de la bu msgid "Layer height limits" msgstr "Limites de hauteur de couche" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2109 -msgid "Layer range Settings to modify" -msgstr "Réglages de zone de Couche à modifier" - #: src/libslic3r/PrintConfig.cpp:326 src/libslic3r/PrintConfig.cpp:946 #: src/libslic3r/PrintConfig.cpp:1435 src/libslic3r/PrintConfig.cpp:1620 #: src/libslic3r/PrintConfig.cpp:1681 src/libslic3r/PrintConfig.cpp:1844 @@ -3229,9 +3634,9 @@ msgstr "Couches et périmètres" msgid "Layers and Perimeters" msgstr "Couches et Périmètres" -#: src/slic3r/GUI/GLCanvas3D.cpp:526 -msgid "Layers heights" -msgstr "Hauteurs des couches" +#: src/slic3r/GUI/GLCanvas3D.cpp:3517 +msgid "Layers editing" +msgstr "Édition de Couche" #: src/slic3r/GUI/KBShortcutsDialog.cpp:189 msgid "Layers Slider Shortcuts" @@ -3259,27 +3664,26 @@ msgstr "Gauche" msgid "Left click" msgstr "Clic gauche" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:597 +msgid "Left mouse click - add point" +msgstr "Clic gauche souris - ajouter un point" + #: src/slic3r/GUI/MainFrame.cpp:527 msgid "Left View" msgstr "Vue Gauche" -#: src/slic3r/GUI/GUI_Preview.cpp:255 -msgid "Legend" -msgstr "Légende" - #: src/libslic3r/PrintConfig.cpp:1473 src/libslic3r/PrintConfig.cpp:1481 msgid "Length" msgstr "Longueur" +#: src/libslic3r/PrintConfig.cpp:292 +msgid "Length of the cooling tube to limit space for cooling moves inside it " +msgstr "Longueur du tube de refroidissement pour limiter l'espace pour les déplacements de refroidissement à l'intérieur de celui-ci " + #: src/libslic3r/PrintConfig.cpp:293 msgid "Length of the cooling tube to limit space for cooling moves inside it." msgstr "Longueur du tube de refroidissement pour limiter l'espace pour les déplacements de refroidissement à l'intérieur de celui-ci." -#. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:124 -msgid "License agreements of all following programs (libraries) are part of application license agreement" -msgstr "Les contrats de licence de tous les programmes suivants (bibliothèques) font partie de la mise en oeuvre du contrat de licence" - #: src/libslic3r/PrintConfig.cpp:1491 msgid "Lift Z" msgstr "Levage de l'axe Z" @@ -3324,33 +3728,17 @@ msgstr "Charger la configuration depuis le fichier spécifié. Ceci peut être u msgid "Load exported configuration file" msgstr "Charger le fichier de configuration exporté" -#: src/slic3r/GUI/Plater.cpp:1271 -msgid "Load File" -msgstr "Charger le Fichier" - -#: src/slic3r/GUI/Plater.cpp:1275 -msgid "Load Files" -msgstr "Charger les Fichiers" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1585 -msgid "Load Part" -msgstr "Charger une Partie" - #: src/slic3r/GUI/MainFrame.cpp:357 msgid "Load presets from a bundle" msgstr "Charger les préréglages à partir d'un lot" -#: src/slic3r/GUI/Plater.cpp:3992 -msgid "Load Project" -msgstr "Charger le Projet" - #: src/slic3r/GUI/BedShapeDialog.cpp:97 msgid "Load shape from STL..." msgstr "Charger une forme depuis un STL..." -#: src/slic3r/GUI/BedShapeDialog.cpp:181 src/slic3r/GUI/BedShapeDialog.cpp:249 -msgid "Load..." -msgstr "Charger..." +#: lib/Slic3r/GUI/Plater.pm:779 +msgid "Loaded " +msgstr "Chargé " #: src/slic3r/GUI/WipeTowerDialog.cpp:235 msgid "loaded" @@ -3364,6 +3752,10 @@ msgstr "Chargé" msgid "Loading" msgstr "Chargement" +#: src/slic3r/GUI/GUI_App.cpp:339 +msgid "Loading of a current presets" +msgstr "Chargement des préréglages actuels" + #: src/slic3r/GUI/GUI_App.cpp:407 msgid "Loading of a mode view" msgstr "Chargement d'un mode de vue" @@ -3385,6 +3777,10 @@ msgstr "Vitesse de chargement" msgid "Loading speed at the start" msgstr "Vitesse de chargement au départ" +#: lib/Slic3r/GUI/Plater.pm:713 +msgid "Loading…" +msgstr "Chargement…" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:41 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 msgid "Local coordinates" @@ -3398,13 +3794,17 @@ msgstr "Verrouiller les supports sous de nouveaux îlots" msgid "LOCKED LOCK" msgstr "VERROU VERROUILLE" -#: src/slic3r/GUI/Tab.cpp:3360 -msgid "LOCKED LOCK icon indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "L'icône VERROU VERROUILLE indique que les réglages sont les mêmes que les valeurs système (ou par défaut) pour le groupe d'options actuel" +#: src/slic3r/GUI/Tab.cpp:3103 +msgid "LOCKED LOCK icon indicates that the settings are the same as the system values for the current option group" +msgstr "L'icône VERROU VERROUILLE indique que les paramètres sont les mêmes que les valeurs système pour le groupe d'options en cours" + +#: src/slic3r/GUI/Tab.cpp:3119 +msgid "LOCKED LOCK icon indicates that the value is the same as the system value." +msgstr "L'icône VERROU VERROUILLE indique que la valeur est la même que la valeur système." -#: src/slic3r/GUI/Tab.cpp:3376 -msgid "LOCKED LOCK icon indicates that the value is the same as the system (or default) value." -msgstr "L'icône VERROU VERROUILLÉ indique que la valeur est la même que la valeur système (ou par défaut)." +#: src/slic3r/GUI/Tab.cpp:3064 +msgid "LOCKED LOCK;indicates that the settings are the same as the system values for the current option group" +msgstr "VERROU VERROUILLE;indique que les paramètres sont les mêmes que les valeurs système pour le groupe d'options en cours" #: src/libslic3r/PrintConfig.cpp:3119 msgid "Logging level" @@ -3439,6 +3839,10 @@ msgstr "Variété" msgid "Manual editing" msgstr "Édition manuelle" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:675 +msgid "Manual editing [M]" +msgstr "Édition manuelle [M]" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:105 msgid "Masked SLA file exported to %1%" msgstr "Fichier SLA masqué exporté vers %1%" @@ -3503,14 +3907,26 @@ msgstr "Vitesse volumétrique maximale" msgid "Maximal bridging distance" msgstr "Distance maximale de pont" +#: src/libslic3r/PrintConfig.cpp:2168 +msgid "Maximal distance between supports on sparse infill sections. " +msgstr "Distance maximale entre les supports sur les sections de remplissage épars. " + #: src/libslic3r/PrintConfig.cpp:2193 msgid "Maximal distance between supports on sparse infill sections." msgstr "Distance maximale entre les supports sur les sections de remplissage épars." +#: src/libslic3r/PrintConfig.cpp:1086 +msgid "Maximum acceleration %1%" +msgstr "Accélération maximum %1%" + #: src/libslic3r/PrintConfig.cpp:1099 msgid "Maximum acceleration E" msgstr "Accélérations maximum E" +#: src/libslic3r/PrintConfig.cpp:1088 +msgid "Maximum acceleration of the %1% axis" +msgstr "Accélération maximum de l'axe %1%" + #: src/libslic3r/PrintConfig.cpp:1105 msgid "Maximum acceleration of the E axis" msgstr "Accélération maximum de l'axe E" @@ -3559,14 +3975,18 @@ msgstr "Accélérations maximum Z" msgid "Maximum accelerations" msgstr "Accélérations maximum" -#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2425 -msgid "Maximum exposure time" -msgstr "Temps d'exposition maximum" +#: src/libslic3r/PrintConfig.cpp:1076 +msgid "Maximum feedrate %1%" +msgstr "Alimentation maximum %1%" #: src/libslic3r/PrintConfig.cpp:1081 msgid "Maximum feedrate E" msgstr "Alimentation maximum E" +#: src/libslic3r/PrintConfig.cpp:1078 +msgid "Maximum feedrate of the %1% axis" +msgstr "Alimentation maximum de l'axe %1%" + #: src/libslic3r/PrintConfig.cpp:1087 msgid "Maximum feedrate of the E axis" msgstr "Alimentation maximum de l'axe E" @@ -3599,14 +4019,18 @@ msgstr "Alimentation maximum Z" msgid "Maximum feedrates" msgstr "Alimentations maximum" -#: src/libslic3r/PrintConfig.cpp:2447 src/libslic3r/PrintConfig.cpp:2448 -msgid "Maximum initial exposure time" -msgstr "Temps d'exposition initiale Maximum" +#: src/libslic3r/PrintConfig.cpp:1096 +msgid "Maximum jerk %1%" +msgstr "Mouvement brusque maximum %1%" #: src/libslic3r/PrintConfig.cpp:1117 msgid "Maximum jerk E" msgstr "Mouvement brusque maximum E" +#: src/libslic3r/PrintConfig.cpp:1098 +msgid "Maximum jerk of the %1% axis" +msgstr "Mouvement brusque maximum de l'axe %1%" + #: src/libslic3r/PrintConfig.cpp:1123 msgid "Maximum jerk of the E axis" msgstr "Mouvement brusque maximum de l'axe E" @@ -3683,6 +4107,10 @@ msgstr "Longueur minimale d'extrusion de filament" msgid "Minimal points distance" msgstr "Distance minimale des points" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:877 +msgid "Minimal points distance: " +msgstr "Distance minimale des points :" + #: src/libslic3r/PrintConfig.cpp:635 msgid "Minimal purge on wipe tower" msgstr "Purge minimale sur la tour de nettoyage" @@ -3691,10 +4119,6 @@ msgstr "Purge minimale sur la tour de nettoyage" msgid "Minimum detail resolution, used to simplify the input file for speeding up the slicing job and reducing memory usage. High-resolution models often carry more detail than printers can render. Set to zero to disable any simplification and use full resolution from input." msgstr "Résolution minimale pour les détails, utilisée pour simplifier le fichier d'entrée afin d'accélérer le découpage et de réduire l'utilisation de la mémoire. Les modèles haute-résolution possèdent souvent plus de détails que ce que les imprimantes peuvent produire. Mettez à zéro pour désactiver toute simplification et utiliser la résolution complète de l'entrée." -#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2417 -msgid "Minimum exposure time" -msgstr "Temps d'exposition minimum" - #: src/libslic3r/PrintConfig.cpp:1109 src/libslic3r/PrintConfig.cpp:1111 msgid "Minimum feedrate when extruding" msgstr "Alimentation minimum lors de l'extrusion" @@ -3707,10 +4131,6 @@ msgstr "Alimentation minimum lors de l'extrusion (M205 S)" msgid "Minimum feedrates" msgstr "Alimentations minimum" -#: src/libslic3r/PrintConfig.cpp:2439 src/libslic3r/PrintConfig.cpp:2440 -msgid "Minimum initial exposure time" -msgstr "Temps d'exposition initiale minimum" - #: src/libslic3r/PrintConfig.cpp:1452 msgid "Minimum travel after retraction" msgstr "Trajet minimal après une rétraction" @@ -3727,14 +4147,6 @@ msgstr "Alimentation minimum en déplacement (M205 T)" msgid "Mirror" msgstr "Symétrie" -#: src/libslic3r/PrintConfig.cpp:2320 -msgid "Mirror horizontally" -msgstr "Symétriser horizontalement" - -#: src/slic3r/GUI/GLCanvas3D.cpp:1711 -msgid "Mirror Object" -msgstr "Symétriser l'Objet" - #: src/slic3r/GUI/Plater.cpp:2946 msgid "Mirror the selected object" msgstr "Symétriser l'objet sélectionné" @@ -3751,12 +4163,8 @@ msgstr "Symétriser l'objet sélectionné selon l'axe Y" msgid "Mirror the selected object along the Z axis" msgstr "Symétriser l'objet sélectionné selon l'axe Z" -#: src/libslic3r/PrintConfig.cpp:2327 -msgid "Mirror vertically" -msgstr "Symétriser verticalement" - #: src/slic3r/Utils/OctoPrint.cpp:69 -#, possible-c-format +#, c-format msgid "Mismatched type of print host: %s" msgstr "Mauvais appariement de l'hôte d'impression : %s" @@ -3805,6 +4213,17 @@ msgstr "mm (zéro pour désactiver)" msgid "mm or %" msgstr "mm ou %" +#: src/libslic3r/PrintConfig.cpp:528 +msgid "mm or % (leave 0 for auto)" +msgstr "mm ou % (laissez à 0 pour le mode automatique)" + +#: src/libslic3r/PrintConfig.cpp:420 src/libslic3r/PrintConfig.cpp:835 +#: src/libslic3r/PrintConfig.cpp:967 src/libslic3r/PrintConfig.cpp:1354 +#: src/libslic3r/PrintConfig.cpp:1692 src/libslic3r/PrintConfig.cpp:1865 +#: src/libslic3r/PrintConfig.cpp:2023 +msgid "mm or % (leave 0 for default)" +msgstr "mm ou % (laissez à 0 pour la valeur par défaut)" + #: src/libslic3r/PrintConfig.cpp:201 src/libslic3r/PrintConfig.cpp:577 #: src/libslic3r/PrintConfig.cpp:585 src/libslic3r/PrintConfig.cpp:594 #: src/libslic3r/PrintConfig.cpp:602 src/libslic3r/PrintConfig.cpp:629 @@ -3855,10 +4274,6 @@ msgstr "Mode" msgid "model" msgstr "modèle" -#: src/slic3r/GUI/BedShapeDialog.cpp:239 -msgid "Model" -msgstr "Modèle" - #: src/slic3r/Utils/FixModelByWin10.cpp:340 msgid "Model fixing" msgstr "Réparation d'un modèle" @@ -3888,10 +4303,6 @@ msgstr "Réparation du modèle réussie" msgid "modified" msgstr "modifié" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Modifier" -msgstr "Modificateur" - #: src/slic3r/GUI/Tab.cpp:1100 msgid "Modifiers" msgstr "Modificateurs" @@ -3900,6 +4311,10 @@ msgstr "Modificateurs" msgid "money/kg" msgstr "€/kg" +#: lib/Slic3r/GUI/Plater.pm:255 +msgid "More" +msgstr "Plus" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Mouse wheel" msgstr "Roulette de la souris" @@ -3920,17 +4335,25 @@ msgstr "Déplacer le curseur actuel vers le bas" msgid "Move current slider thumb Up" msgstr "Déplacer le curseur actuel vers le haut" -#: src/slic3r/GUI/GLCanvas3D.cpp:2872 -msgid "Move Object" -msgstr "Déplacer l'Objet" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Move current slider thump Down" +msgstr "Déplacer le curseur actuel vers le bas" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Move current slider thump Up" +msgstr "Déplacer le curseur actuel vers le haut" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 msgid "Move point" msgstr "Déplacer le point" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1183 -msgid "Move support point" -msgstr "Déplacer un point de support" +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:51 +msgid "Move [M]" +msgstr "Déplacer [M]" + +#: src/slic3r/GUI/GLCanvas3D.cpp:1698 +msgid "ms" +msgstr "ms" #: src/libslic3r/PrintConfig.cpp:2100 msgid "Multi material printers may need to prime or purge extruders on tool changes. Extrude the excess material into the wipe tower." @@ -3941,7 +4364,7 @@ msgid "Multi-part object detected" msgstr "Objet multi-pièces détecté" #: src/slic3r/GUI/FirmwareDialog.cpp:400 src/slic3r/GUI/FirmwareDialog.cpp:436 -#, possible-c-format +#, c-format msgid "Multiple %s devices found. Please only connect one at a time for flashing." msgstr "Plusieurs %s équipements ont été détectés. Veuillez n'en connecter qu'un seul à la fois pour le processus de flash." @@ -3950,8 +4373,14 @@ msgid "Multiple Extruders" msgstr "Extrudeurs Multiples" #: src/slic3r/GUI/Plater.cpp:1766 -msgid "Multiple objects were loaded for a multi-material printer.\nInstead of considering them as multiple objects, should I consider\nthese files to represent a single object having multiple parts?\n" -msgstr "Plusieurs fichiers ont été chargés pour une impression multi-matériaux.\nAu lieu de les considérer en tant que plusieurs objets, dois-je considérer\nces fichiers en tant que un seul objet ayant plusieurs pièces ?\n" +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?\n" +msgstr "" +"Plusieurs objets ont été chargés pour une imprimante multi-matériaux.\n" +"Au lieu de les considérer comme plusieurs objets, dois-je considérer\n" +"ces fichiers comment représentant un objets ayant plusieurs pièces ?\n" #: src/libslic3r/PrintConfig.cpp:3050 msgid "Multiply copies by creating a grid." @@ -3961,10 +4390,6 @@ msgstr "Multiplier les copies en créant une grille." msgid "Multiply copies by this factor." msgstr "Multiplier les copies par ce facteur." -#: src/slic3r/GUI/Field.cpp:139 -msgid "N/A" -msgstr "N/A" - #: src/slic3r/GUI/GUI_ObjectList.cpp:176 msgid "Name" msgstr "Nom" @@ -3989,27 +4414,19 @@ msgstr "Le plus proche" msgid "Network lookup" msgstr "Recherche réseau" -#: src/slic3r/GUI/Plater.cpp:2056 -msgid "New Project" -msgstr "Nouveau Projet" - #: src/slic3r/GUI/UpdateDialogs.cpp:30 -#, possible-c-format +#, c-format msgid "New version of %s is available" msgstr "Une nouvelle version de %s est disponible" +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "New version of Slic3r PE is available" +msgstr "Une nouvelle version de Slic3r PE est disponible" + #: src/slic3r/GUI/UpdateDialogs.cpp:47 msgid "New version:" msgstr "Nouvelle version :" -#: src/slic3r/GUI/GLCanvas3D.cpp:3750 -msgid "Next Redo action: %1%" -msgstr "Prochaine action Répéter : %1%" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3718 -msgid "Next Undo action: %1%" -msgstr "Prochaine action Annuler : %1%" - #: src/libslic3r/PrintConfig.cpp:912 msgid "No extrusion" msgstr "Aucune extrusion" @@ -4143,10 +4560,6 @@ msgstr "Nom de l'objet" msgid "Object or Instance" msgstr "Objet ou Instance" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Object reordered" -msgstr "Objet réorganisé" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1868 msgid "Object Settings to modify" msgstr "Réglages de l'Objet à modifier" @@ -4167,10 +4580,22 @@ msgstr "objet(s)" msgid "objects" msgstr "objets" +#: xs/src/libslic3r/PrintConfig.cpp:2006 +msgid "Objects will be used to wipe 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 "Les objets seront utilisés pour nettoyer la buse après un changement d'outil afin d'économiser de la matière qui finirait autrement dans la tour de nettoyage et réduirait le temps d'impression. Les couleurs des objets seront mélangées en conséquence." + #: src/libslic3r/PrintConfig.cpp:402 src/libslic3r/PrintConfig.cpp:808 msgid "Octagram Spiral" msgstr "Spirale Octagramme" +#: xs/src/slic3r/GUI/Tab.cpp:1520 xs/src/slic3r/Utils/OctoPrint.cpp:110 +msgid "OctoPrint upload" +msgstr "Envoi vers OctoPrint" + +#: lib/Slic3r/GUI/Plater.pm:1576 +msgid "OctoPrint upload finished." +msgstr "Envoi vers OctoPrint terminé." + #: src/slic3r/GUI/BonjourDialog.cpp:76 msgid "OctoPrint version" msgstr "Version d'OctoPrint" @@ -4179,10 +4604,6 @@ msgstr "Version d'OctoPrint" msgid "of a current Object" msgstr "d'un Objet en cours" -#: src/slic3r/GUI/wxExtensions.cpp:2570 -msgid "One layer mode" -msgstr "Mode couche unique" - #: src/libslic3r/Print.cpp:1285 msgid "One or more object were assigned an extruder that the printer does not have." msgstr "Un ou plusieurs objets ont été affectés à un extrudeur que l'imprimante ne possède pas." @@ -4215,9 +4636,9 @@ msgstr "Rétracter uniquement lors du franchissement de périmètres" msgid "Ooze prevention" msgstr "Prévention des coulures" -#: src/libslic3r/Print.cpp:1193 -msgid "Ooze prevention is currently not supported with the wipe tower enabled." -msgstr "La prévention des écoulements n'est actuellement pas supportée lorsque la tour de nettoyage est activée." +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open a model" +msgstr "Ouvrir un modèle" #: src/slic3r/GUI/MainFrame.cpp:339 msgid "Open a project file" @@ -4227,27 +4648,48 @@ msgstr "Ouvrir un fichier de projet" msgid "Open CA certificate file" msgstr "Ouvrir le fichier de certificat CA" -#: src/slic3r/GUI/UpdateDialogs.cpp:63 src/slic3r/GUI/UpdateDialogs.cpp:126 -msgid "Open changelog page" -msgstr "Ouvrir la page du journal des modifications" - -#: src/slic3r/GUI/UpdateDialogs.cpp:68 -msgid "Open download page" -msgstr "Ouvrir la page de téléchargement" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:105 msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" msgstr "Ouvrir un projet STL/OBJ/AMF/3MF avec la configuration, effacer le lit" +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open STL/OBJ/AMF/3MF…\tCtrl+O" +msgstr "Ouvrir STL/OBJ/AMF/3MF…\tCtrl+O" + +#: src/slic3r/GUI/MainFrame.cpp:554 +#, c-format +msgid "Open the %s manual in your browser" +msgstr "Ouvrir la manuel de %s dans votre navigateur" + #: src/slic3r/GUI/MainFrame.cpp:551 -#, possible-c-format +#, c-format msgid "Open the %s website in your browser" msgstr "Ouvrir le site web de %s dans votre navigateur" +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Open the 3D cutting tool" +msgstr "Ouvrir l'outil de coupe 3D" + +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Open the object editor dialog" +msgstr "Ouvrir la boîte de dialogue d'édition d'objet" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Open the Prusa Edition releases page in your browser" +msgstr "Ouvrir la page des publications de la Prusa Edition dans votre navigateur" + #: src/slic3r/GUI/MainFrame.cpp:542 msgid "Open the Prusa3D drivers download page in your browser" msgstr "Ouvrir la page de téléchargement des drivers Prusa3D dans votre navigateur" +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Open the Slic3r manual in your browser" +msgstr "Ouvrir la manuel de Slic3r dans votre navigateur" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Open the Slic3r website in your browser" +msgstr "Ouvrir le site web de Slic3r dans votre navigateur" + #: src/slic3r/GUI/MainFrame.cpp:549 msgid "Open the software releases page in your browser" msgstr "Ouvrir la page des publications du logiciel dans votre navigateur" @@ -4256,10 +4698,6 @@ msgstr "Ouvrir la page des publications du logiciel dans votre navigateur" msgid "Optimize orientation" msgstr "Optimiser l'orientation" -#: src/slic3r/GUI/Plater.cpp:2643 -msgid "Optimize Rotation" -msgstr "Optimiser la Rotation" - #: src/slic3r/GUI/Plater.cpp:2994 msgid "Optimize the rotation of the object for better print results." msgstr "Optimiser la rotation de l'objet pour un meilleur résultat d'impression." @@ -4276,9 +4714,9 @@ msgstr "Options pour le matériau de support et le radeau" msgid "Orientation found." msgstr "Orientation trouvée." -#: src/slic3r/GUI/Plater.cpp:2768 -msgid "Orientation search canceled." -msgstr "Recherche de l'orientation annulée." +#: src/slic3r/GUI/Plater.cpp:2185 +msgid "Orientation search canceled" +msgstr "Recherche de l'orientation annulée" #: src/slic3r/GUI/BedShapeDialog.cpp:79 msgid "Origin" @@ -4292,6 +4730,10 @@ msgstr "Autre" msgid "Other layers" msgstr "Autres couches" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:252 +msgid "Other vendors" +msgstr "Autres fabriquants" + #: src/slic3r/GUI/ConfigWizard.cpp:438 msgid "Other Vendors" msgstr "Autres Fabriquants" @@ -4344,25 +4786,9 @@ msgstr "Socle" msgid "Pad and Support" msgstr "Socle et Support" -#: src/libslic3r/PrintConfig.cpp:2732 -msgid "Pad around object" -msgstr "Socle autour de l'objet" - -#: src/libslic3r/PrintConfig.cpp:2731 -msgid "Pad object connector penetration" -msgstr "Pénétration du connecteur de l'objet socle" - -#: src/libslic3r/PrintConfig.cpp:2711 -msgid "Pad object connector stride" -msgstr "Pas du connecteur de l'objet socle" - -#: src/libslic3r/PrintConfig.cpp:2721 -msgid "Pad object connector width" -msgstr "Largeur du connecteur de l'objet socle" - -#: src/libslic3r/PrintConfig.cpp:2700 -msgid "Pad object gap" -msgstr "Espace entre l'objet et le socle" +#: src/libslic3r/PrintConfig.cpp:2559 +msgid "Pad edge radius" +msgstr "Rayon du contour du socle" #: src/libslic3r/PrintConfig.cpp:2532 msgid "Pad wall height" @@ -4408,10 +4834,6 @@ msgstr "Coller le presse-papier" msgid "Paste from clipboard" msgstr "Coller depuis le presse-papier" -#: src/slic3r/GUI/Plater.cpp:4772 -msgid "Paste From Clipboard" -msgstr "Coller Depuis le Presse-Papier" - #: src/libslic3r/PrintConfig.cpp:1915 msgid "Pattern" msgstr "Motif" @@ -4451,18 +4873,34 @@ msgid "Perimeters" msgstr "Périmètres" #: src/slic3r/GUI/ConfigWizard.cpp:440 -#, possible-c-format +#, c-format msgid "Pick another vendor supported by %s:" msgstr "Choisissez un autre fabriquant supporté par %s :" +#: src/slic3r/GUI/ConfigWizard.cpp:423 +msgid "Pick another vendor supported by Slic3r PE:" +msgstr "Choisissez un autre fabriquant supporté par Slic3r PE :" + #: src/libslic3r/PrintConfig.cpp:2430 msgid "Pillar widening factor" msgstr "Facteur d'élargissement du pilier" +#: src/slic3r/GUI/Tab.cpp:3496 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "Le diamètre de l'épingle doit être plus petit que le diamètre du pilier." + #: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 msgid "Place on face" msgstr "Positionner sur la surface" +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 +msgid "Place on face [F]" +msgstr "Positionner sur la surface [F]" + +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Place one more copy of the selected object" +msgstr "Placer une copie supplémentaire de l'objet sélectionné" + #: src/slic3r/GUI/MainFrame.cpp:161 msgid "Plater" msgstr "Plateau" @@ -4479,9 +4917,13 @@ msgstr "Veuillez vérifier et réparer votre liste d'objet." msgid "Please check your object list before preset changing." msgstr "Veuillez vérifier votre liste d'objet avant le changement de préréglage." -#: src/slic3r/GUI/AboutDialog.cpp:39 src/slic3r/GUI/AboutDialog.cpp:286 -msgid "Portions copyright" -msgstr "Copyright des sections" +#: lib/Slic3r/GUI/Plater.pm:1897 +msgid "Please install the OpenGL modules to use this feature (see build instructions)." +msgstr "Veuillez installer les modules OpenGL pour pouvoir utiliser cette fonctionnalité (voir les instructions de montage)." + +#: src/slic3r/GUI/GUI_App.cpp:742 +msgid "Please, check your changes before." +msgstr "Veuillez vérifier vos changements avant." #: src/libslic3r/PrintConfig.cpp:2235 msgid "Portrait" @@ -4537,31 +4979,31 @@ msgid "Preparing infill" msgstr "Préparation du remplissage" #: src/slic3r/GUI/Tab.cpp:2758 -#, possible-c-format +#, c-format msgid "Preset (%s)" msgstr "Préréglage (%s)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center" -msgstr "Appuyez pour activer le rectangle de\ndésélection ou pour redimensionner\nou faire pivoter les objets sélectionnés\nautour de leur propre centre" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:148 -msgid "Press to activate one direction scaling in Gizmo scale" -msgstr "Appuyez pour activer le redimensionnement\ndans une direction pour le Gizmo" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 -#, possible-c-format -msgid "Press to activate selection rectangle\nor to snap by 5% in Gizmo scale\nor to snap by 1mm in Gizmo move" -msgstr "Appuyez pour activer le rectangle\nde sélection ou pour modifier de 5%\nla dimension du Gizmo ou pour\nmodifier d'1 mm le déplacement du\nGizmo" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to scale selection to fit print volume\nin Gizmo scale" -msgstr "Appuyez pour redimensionner la sélection afin\nqu'elle s'ajuste aux dimensions du Gizmo" +msgid "" +"Press to scale or rotate selected objects\n" +"around their own center" +msgstr "" +"Appuyez pour redimensionner ou pivoter\n" +"les objets sélectionnés autour de leur propre centre" #: src/slic3r/GUI/KBShortcutsDialog.cpp:127 msgid "Press to select multiple object or move multiple object with mouse" msgstr "Clicquez pour sélectionner plusieurs objets ou pour déplacer plusieurs objets avec la souris" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +#, no-c-format +msgid "" +"Press to snap by 5% in Gizmo scale\n" +"or by 1mm in Gizmo move" +msgstr "" +"Appuyez pour modifier de 5% la dimension du Gizmo\n" +"ou de 1 mm le déplacement du Gizmo" + #: src/slic3r/GUI/Tab.cpp:2288 msgid "Preview" msgstr "Aperçu" @@ -4619,10 +5061,6 @@ msgstr "Contournement de la vitesse d'impression" msgid "Print&er Settings Tab" msgstr "Onglet des Réglages de l'Imprimant&e" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1438 -msgid "Printable" -msgstr "Imprimable" - #: src/slic3r/GUI/Plater.cpp:685 msgid "Printer" msgstr "Imprimante" @@ -4676,17 +5114,33 @@ msgstr "Fabriquant de l'imprimante" msgid "Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current extruder (support_material_extruder == 0 or support_material_interface_extruder == 0), all nozzles have to be of the same diameter." msgstr "Impression avec plusieurs extrudeurs de différents diamètres de buse. Si le support doit être imprimé avec l'extrudeur courant (support_material_extruder == 0 ou support_material_interface_extruder == 0), toutes les buses doivent avoir le même diamètre." +#: lib/Slic3r/GUI/Plater.pm:324 +msgid "Print…" +msgstr "Impression…" + +#: src/slic3r/GUI/MainFrame.cpp:704 +msgid "Processing " +msgstr "Traitement " + #. TRN "Processing input_file_basename" #: src/slic3r/GUI/MainFrame.cpp:715 -#, possible-c-format +#, c-format msgid "Processing %s" msgstr "Traitement %s" +#: lib/Slic3r/GUI/Plater.pm:713 lib/Slic3r/GUI/Plater.pm:727 +msgid "Processing input file\n" +msgstr "Traitement du fichier d'entrée\n" + #: src/slic3r/GUI/Plater.cpp:1600 -#, possible-c-format +#, c-format msgid "Processing input file %s\n" msgstr "Traitement du fichier d'entrée %s\n" +#: src/libslic3r/SLA/SLASupportTree.cpp:2160 +msgid "Processing small holes" +msgstr "Traitement des petits trous" + #: src/libslic3r/PrintObject.cpp:110 msgid "Processing triangulated mesh" msgstr "Traitement de maillage triangulé" @@ -4709,6 +5163,18 @@ msgstr "Progression :" msgid "Prusa 3D &Drivers" msgstr "&Drivers Prusa 3D" +#: lib/Slic3r/GUI/MainFrame.pm:338 +msgid "Prusa 3D Drivers" +msgstr "Drivers Prusa 3D" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Prusa Edition &Releases" +msgstr "Publications de P&rusa Edition" + +#: lib/Slic3r/GUI/MainFrame.pm:341 +msgid "Prusa Edition Releases" +msgstr "Publications de la Prusa Edition" + #: src/slic3r/GUI/ConfigWizard.cpp:1109 msgid "Prusa FFF Technology Printers" msgstr "Imprimantes à Technologie FFF Prusa" @@ -4717,19 +5183,18 @@ msgstr "Imprimantes à Technologie FFF Prusa" msgid "Prusa MSLA Technology Printers" msgstr "Imprimantes à Technologie MSLA Prusa" -#: src/slic3r/GUI/AboutDialog.cpp:255 -msgid "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community." -msgstr "PrusaSlicer est basé sur Slic3r par Alessandro Ranellucci et la communauté RepRap." - -#: src/slic3r/GUI/GUI_App.cpp:297 -#, possible-c-format -msgid "PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \nwhile OpenGL version %s, render %s, vendor %s was detected." -msgstr "PrusaSlicer a besoin de pilotes graphiques opérationnels OpenGL 2.0 pour fonctionner correctement,\nalors que OpenGL version %s, rendu %s, fournisseur %s a été détecté." - #: src/libslic3r/PrintConfig.cpp:2153 msgid "Purging after toolchange will 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 "La purge après le changement d'outil sera faite dans le remplissage de l'objet. Cela diminue le gaspillage mais peut rallonger le temps d'impression à cause des mouvements supplémentaires." +#: xs/src/libslic3r/PrintConfig.cpp:1996 +msgid "Purging into infill" +msgstr "Purger dans le remplissage" + +#: xs/src/libslic3r/PrintConfig.cpp:2005 +msgid "Purging into objects" +msgstr "Purger dans des objets" + #: src/slic3r/GUI/Plater.cpp:456 msgid "Purging volumes" msgstr "Volumes de purge" @@ -4742,6 +5207,10 @@ msgstr "Volumes de purge - volumes de chargement/déchargement" msgid "Purging volumes - matrix" msgstr "Volumes de purge - matrice" +#: lib/Slic3r/GUI/MainFrame.pm:232 +msgid "Q&uick Slice…\tCtrl+U" +msgstr "&Découpage Rapide…\tCtrl+U" + #: src/slic3r/GUI/Tab.cpp:1019 msgid "Quality (slower slicing)" msgstr "Qualité (découpage plus lent)" @@ -4749,23 +5218,39 @@ msgstr "Qualité (découpage plus lent)" #: src/slic3r/GUI/GUI_ObjectList.cpp:854 src/slic3r/GUI/GUI_ObjectList.cpp:1139 #: src/slic3r/GUI/GUI_ObjectList.cpp:1145 #: src/slic3r/GUI/GUI_ObjectList.cpp:1377 -#, possible-c-format +#, c-format msgid "Quick Add Settings (%s)" msgstr "Ajout de Réglages Rapide (%s)" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +msgid "Quick slice" +msgstr "Découpage rapide" + #: src/slic3r/GUI/MainFrame.cpp:383 msgid "Quick Slice" msgstr "Découpage Rapide" +#: lib/Slic3r/GUI/MainFrame.pm:238 +msgid "Quick Slice and Save &As…\tCtrl+Alt+U" +msgstr "Découpage Rapide et &Enregistrer Sous…\tCtrl+Alt+U" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 +msgid "Quick slice and Save as" +msgstr "Découpage rapide et Enregistrer sous" + #: src/slic3r/GUI/MainFrame.cpp:389 msgid "Quick Slice and Save As" msgstr "Découpage Rapide et Enregistrer Sous" #: src/slic3r/GUI/MainFrame.cpp:409 -#, possible-c-format +#, c-format msgid "Quit %s" msgstr "Quitter %s" +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "Quit Slic3r" +msgstr "Quitter Slic3r" + #: src/libslic3r/PrintConfig.cpp:479 msgid "Radius" msgstr "Rayon" @@ -4778,13 +5263,23 @@ msgstr "Radeau" msgid "Raft layers" msgstr "Couches du radeau" +#: xs/src/slic3r/GUI/Tab.cpp:1299 +msgid "Ramming" +msgstr "Expulsion" + #: src/slic3r/GUI/WipeTowerDialog.cpp:14 msgid "Ramming customization" msgstr "Personnalisation de l'expulsion" #: src/slic3r/GUI/WipeTowerDialog.cpp:40 -msgid "Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n\nThis is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." -msgstr "L'Expulsion décrit l'extrusion rapide qui a lieu juste avant un changement d'outil sur une imprimante MM à extrudeur unique. Le but est de donner une forme correcte au filament déchargé afin qu'il n'empêche pas l'insertion du nouveau filament et puisse être réinséré lui-même plus tard. Cette phase est importante et des matériaux différents peuvent nécessiter des vitesses d'extrusion différentes pour obtenir la bonne forme. De ce fait, les débits d'extrusion pendant l'expulsion sont ajustables.\n\nCeci est un paramétrage de niveau expert, et un mauvais ajustement provoquera probablement des blocages, des accrochages de la roue de l'extrudeur sur le filament , etc ..." +msgid "" +"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n" +"\n" +"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." +msgstr "" +"L'Expulsion décrit l'extrusion rapide qui a lieu juste avant un changement d'outil sur une imprimante MM à extrudeur unique. Le but est de donner une forme correcte au filament déchargé afin qu'il n'empêche pas l'insertion du nouveau filament et puisse être réinséré lui-même plus tard. Cette phase est importante et des matériaux différents peuvent nécessiter des vitesses d'extrusion différentes pour obtenir la bonne forme. De ce fait, les débits d'extrusion pendant l'expulsion sont ajustables.\n" +"\n" +"Ceci est un paramétrage de niveau expert, et un mauvais ajustement provoquera probablement des blocages, des accrochages de la roue de l'extrudeur sur le filament , etc ..." #: src/slic3r/GUI/WipeTowerDialog.cpp:90 msgid "Ramming line spacing" @@ -4806,10 +5301,6 @@ msgstr "Réglages de l'expulsion" msgid "Random" msgstr "Aléatoire" -#: src/slic3r/GUI/wxExtensions.cpp:486 -msgid "Range" -msgstr "Zone" - #: src/libslic3r/SLAPrint.cpp:72 msgid "Rasterizing layers" msgstr "Tramage des couches" @@ -4834,12 +5325,13 @@ msgstr "Arrière" msgid "Rear View" msgstr "Vue Arrière" -#: src/slic3r/GUI/MainFrame.cpp:401 -msgid "Recent projects" -msgstr "Projets récents" +#: src/slic3r/GUI/PresetHints.cpp:264 +#, c-format +msgid "Recommended object thin wall thickness for layer height %.2f and " +msgstr "Épaisseur des parois fines de l'objet recommandée pour la hauteur de couche %.2f et " #: src/slic3r/GUI/PresetHints.cpp:262 -#, possible-c-format +#, c-format msgid "Recommended object thin wall thickness for layer height %.2f and" msgstr "Épaisseur des parois fines de l'objet recommandée pour la hauteur de couche %.2f et" @@ -4864,22 +5356,6 @@ msgstr "Rectiligne" msgid "Rectilinear grid" msgstr "Grille rectiligne" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3639 -#: src/slic3r/GUI/MainFrame.cpp:562 -msgid "Redo" -msgstr "Recommencer" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Redo %1$d Action" -msgid_plural "Redo %1$d Actions" -msgstr[0] "" -msgstr[1] "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Redo History" -msgstr "Répéter Historique" - #: src/slic3r/GUI/Tab.cpp:1037 msgid "Reducing printing time" msgstr "Réduction du temps d'impression" @@ -4914,16 +5390,16 @@ msgid "Remove instance" msgstr "Supprimer l'instance" #: src/slic3r/GUI/KBShortcutsDialog.cpp:125 -msgid "Remove Instance of the selected object" +msgid "Remove Instance from selected object" msgstr "Supprimer l'instance de l'objet sélectionné" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:153 -msgid "Remove layer range" -msgstr "Supprimer la zone de couche" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 +msgid "Remove Instance of the selected object" +msgstr "Supprimer l'instance de l'objet sélectionné" -#: src/slic3r/GUI/Plater.cpp:3518 -msgid "Remove one instance of the selected object" -msgstr "Supprime une instance de l'objet sélectionné" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Remove one copy of the selected object" +msgstr "Retirer une copie de l'objet sélectionné" #: src/slic3r/GUI/GUI_ObjectSettings.cpp:83 msgid "Remove parameter" @@ -4954,14 +5430,6 @@ msgstr "Supprimer les profils d'utilisateur - installation à partir de zéro (u msgid "Rename" msgstr "Renommer" -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Object" -msgstr "Renommer l'Objet" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Sub-object" -msgstr "Renommer le Sous-objet" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2709 msgid "Renaming" msgstr "Renommage" @@ -4978,6 +5446,10 @@ msgstr "Appliquer un rendu avec un logiciel de rendu. Le logiciel de rendu MESA msgid "Repair" msgstr "Réparer" +#: lib/Slic3r/GUI/MainFrame.pm:258 +msgid "Repair STL file…" +msgstr "Réparer le fichier STL…" + #: src/slic3r/Utils/FixModelByWin10.cpp:387 msgid "Repaired 3MF file contains more than one object" msgstr "Le fichier 3MF réparé contient plus d'un objet" @@ -5010,23 +5482,31 @@ msgstr "Répéter le Dernier Découpage Rapide" msgid "Report an I&ssue" msgstr "S&ignaler un Problème" +#: lib/Slic3r/GUI/MainFrame.pm:361 +msgid "Report an Issue" +msgstr "Signaler un problème" + #: src/slic3r/GUI/MainFrame.cpp:561 -#, possible-c-format +#, c-format msgid "Report an issue on %s" msgstr "Signaler un problème sur %s" +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an issue on the Slic3r Prusa Edition" +msgstr "Signaler un problème sur la Prusa Edition de Slic3r" + #: src/slic3r/Utils/PresetUpdater.cpp:590 -#, possible-c-format +#, c-format msgid "requires max. %s" msgstr "nécessite max. %s" #: src/slic3r/Utils/PresetUpdater.cpp:588 -#, possible-c-format +#, c-format msgid "requires min. %s" msgstr "nécessite min. %s" #: src/slic3r/Utils/PresetUpdater.cpp:583 -#, possible-c-format +#, c-format msgid "requires min. %s and max. %s" msgstr "nécessite min. %s et max. %s" @@ -5046,27 +5526,6 @@ msgstr "Réinitialiser le plan de coupe" msgid "Reset direction" msgstr "Réinitialiser la direction" -#: src/slic3r/GUI/Plater.cpp:2603 -msgid "Reset Project" -msgstr "Réinitialiser le Projet" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:303 -msgid "Reset rotation" -msgstr "Réinitialiser la rotation" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:328 -msgid "Reset Rotation" -msgstr "Réinitialiser la Rotation" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:285 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:290 -msgid "Reset scale" -msgstr "Réinitialiser l'échelle" - -#: src/slic3r/GUI/Tab.cpp:2584 -msgid "Reset to Filament Color" -msgstr "Réinitialiser la Couleur du Filament" - #: src/libslic3r/PrintConfig.cpp:1441 msgid "Resolution" msgstr "Résolution" @@ -5111,10 +5570,6 @@ msgstr "Rétractions" msgid "Right" msgstr "Droite" -#: src/slic3r/GUI/GUI_ObjectList.cpp:381 -msgid "Right button click the icon to change the object printable property" -msgstr "Clic droit sur l'icône pour changer les propriétés imprimables de l'objet" - #: src/slic3r/GUI/GUI_ObjectList.cpp:279 msgid "Right button click the icon to change the object settings" msgstr "Clic droit sur l'icône pour changer les réglages de l'objet" @@ -5127,6 +5582,10 @@ msgstr "Clic droit sur l'icône pour réparer le STL avec Netfabb" msgid "Right click" msgstr "Clic droit" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:598 +msgid "Right mouse click - remove point" +msgstr "Clic droit souris - supprimer le point" + #: src/slic3r/GUI/MainFrame.cpp:528 msgid "Right View" msgstr "Vue Droite" @@ -5137,6 +5596,18 @@ msgstr "Vue Droite" msgid "Rotate" msgstr "Pivoter" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate 45° clockwise" +msgstr "Pivoter de 45° dans le sens des aiguilles d'une montre" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate 45° counter-clockwise" +msgstr "Pivoter de 45° dans le sens inverse des aiguilles d'une montre" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Rotate around " +msgstr "Pivoter autour de " + #: src/libslic3r/PrintConfig.cpp:3067 msgid "Rotate around X" msgstr "Pivoter autour de X" @@ -5150,6 +5621,34 @@ msgstr "Pivoter autour de Y" msgid "Rotate lower part upwards" msgstr "Pivoter la partie basse vers le haut" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate the selected object by 45° clockwise" +msgstr "Pivoter l'objet sélectionné de 45° dans le sens des aiguilles d'une montre" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate the selected object by 45° counter-clockwise" +msgstr "Pivoter l'objet sélectionné de 45° dans le sens inverse des aiguilles d'une montre" + +#: lib/Slic3r/GUI/Plater.pm:2236 +msgid "Rotate the selected object by an arbitrary angle" +msgstr "Pivoter l'objet sélectionnée d'un angle donné" + +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Rotate the selected object by an arbitrary angle around X axis" +msgstr "Pivoter l'objet sélectionnée d'un angle donné autour de l'axe X" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Rotate the selected object by an arbitrary angle around Y axis" +msgstr "Pivoter l'objet sélectionnée d'un angle donné autour de l'axe Y" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Rotate the selected object by an arbitrary angle around Z axis" +msgstr "Pivoter l'objet sélectionnée d'un angle donné autour de l'axe Z" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +msgid "Rotate [R]" +msgstr "Pivoter [R]" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:151 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:194 msgid "Rotation" @@ -5171,8 +5670,16 @@ msgstr "Angle de rotation autour de l'axe Y en degrés." msgid "Rotation angle around the Z axis in degrees." msgstr "Angle de rotation autour de l'axe Z en degrés." +#: src/libslic3r/SLA/SLASupportTree.cpp:2158 +msgid "Routing supports to model surface" +msgstr "Acheminement des supports vers la surface du modèle" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2157 +msgid "Routing to ground" +msgstr "Acheminement vers le sol" + #: src/slic3r/GUI/ConfigWizard.cpp:298 src/slic3r/GUI/GUI_App.cpp:658 -#, possible-c-format +#, c-format msgid "Run %s" msgstr "Run %s" @@ -5189,22 +5696,18 @@ msgstr "Exécuter des scripts de post-traitement" msgid "s" msgstr "s" -#: src/slic3r/GUI/MainFrame.cpp:466 src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end G-code" -msgstr "Envoyer le G-code" - -#: src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end to print" -msgstr "Envoyer pour imprimer" +#: src/slic3r/GUI/MainFrame.cpp:677 src/slic3r/GUI/Tab.cpp:3239 +msgid "Save " +msgstr "Enregistrer " #. TRN Preset #: src/slic3r/GUI/Tab.cpp:3264 -#, possible-c-format +#, c-format msgid "Save %s as:" msgstr "Enregistrer %s sous :" #: src/slic3r/GUI/MainFrame.cpp:686 -#, possible-c-format +#, c-format msgid "Save %s file as:" msgstr "Enregistrer le fichier %s sous :" @@ -5224,9 +5727,13 @@ msgstr "Enregistrer la configuration sous :" msgid "Save configuration to the specified file." msgstr "Enregistrer la configuration dans le fichier spécifié." +#: src/slic3r/GUI/Tab.cpp:130 +msgid "Save current " +msgstr "Enregistrer l'état actuel " + #. TRN "Save current Settings" #: src/slic3r/GUI/Tab.cpp:133 -#, possible-c-format +#, c-format msgid "Save current %s" msgstr "Enregistrer l'état actuel %s" @@ -5291,29 +5798,53 @@ msgstr "Redimensionner" msgid "Scale (%)" msgstr "Redimensionner (%)" +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +msgid "Scale along " +msgstr "Redimensionner le long de " + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:195 msgid "Scale factors" msgstr "Facteurs de redimensionnement" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale the selected object to fit the print volume" -msgstr "Redimensionner l'objet sélectionné pour qu'il s'ajuste au volume d'impression" +#: lib/Slic3r/GUI/Plater.pm:2262 lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale the selected object along a single axis" +msgstr "Redimensionner l'objet sélectionné le long d'un seul axe" + +#: lib/Slic3r/GUI/Plater.pm:2267 lib/Slic3r/GUI/Plater.pm:2283 +msgid "Scale the selected object along the X axis" +msgstr "Redimensionner l'objet sélectionné le long de l'axe X" + +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Scale the selected object along the XYZ axes" +msgstr "Redimensionner l'objet sélectionné le long des axes XYZ" + +#: lib/Slic3r/GUI/Plater.pm:2270 lib/Slic3r/GUI/Plater.pm:2286 +msgid "Scale the selected object along the Y axis" +msgstr "Redimensionner l'objet sélectionné le long de l'axe Y" + +#: lib/Slic3r/GUI/Plater.pm:2273 lib/Slic3r/GUI/Plater.pm:2289 +msgid "Scale the selected object along the Z axis" +msgstr "Redimensionner l'objet sélectionné le long de l'axe Z" #: src/libslic3r/PrintConfig.cpp:3086 msgid "Scale to Fit" msgstr "Redimensionner pour Ajuster" -#: src/slic3r/GUI/Selection.cpp:947 -msgid "Scale To Fit" -msgstr "Redimensionner pour Ajuster" - #: src/libslic3r/PrintConfig.cpp:3087 msgid "Scale to fit the given volume." msgstr "Redimensionner pour ajuster à un volume donné." -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale to print volume" -msgstr "Redimensionner pour ajuster au volume d'impression" +#: lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale to size" +msgstr "Redimensionner à la taille" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:51 +msgid "Scale [S]" +msgstr "Redimensionner [S]" + +#: lib/Slic3r/GUI/Plater.pm:260 lib/Slic3r/GUI/Plater.pm:276 +msgid "Scale…" +msgstr "Redimensionner…" #: src/libslic3r/PrintConfig.cpp:3078 msgid "Scaling factor or percentage." @@ -5343,6 +5874,22 @@ msgstr "Recherche des dispositifs" msgid "Searching for optimal orientation" msgstr "Recherche de l'orientation optimale" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Select &Controller Tab\tCtrl+T" +msgstr "Sélectionner l'Onglet &Contrôleur\tCtrl+T" + +#: lib/Slic3r/GUI/MainFrame.pm:311 +msgid "Select &Filament Settings Tab\tCtrl+3" +msgstr "Sélectionner l'Onglet des Réglages du &Filament\tCtrl+3" + +#: lib/Slic3r/GUI/MainFrame.pm:294 +msgid "Select &Plater Tab\tCtrl+1" +msgstr "Sélectionner l'Onglet du &Plateau\tCtrl+1" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:108 +msgid "Select all" +msgstr "Tout sélectionner" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:136 msgid "Select All objects" msgstr "Sélectionner Tous les objets" @@ -5379,10 +5926,22 @@ msgstr "Sélectionner le numéro de l'extrudeur :" msgid "Select Filament Settings Tab" msgstr "Sélectionner l'Onglet des Réglages du Filament" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 +msgid "Select multiple object/Move multiple object" +msgstr "Sélectionner objet multiple / Déplacer objet multiple" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1251 msgid "Select new extruder for the object/part" msgstr "Sélectionner un nouvel extrudeur pour l'objet/la pièce" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:109 +msgid "Select none" +msgstr "Ne sélectionner aucun" + +#: lib/Slic3r/GUI/MainFrame.pm:308 +msgid "Select P&rint Settings Tab\tCtrl+2" +msgstr "Sélectionner l'Onglet des Réglages d'&Impression\tCtrl+2" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:114 msgid "Select Plater Tab" msgstr "Sélectionner l'Onglet du Plateau" @@ -5391,6 +5950,10 @@ msgstr "Sélectionner l'Onglet du Plateau" msgid "Select Print Settings Tab" msgstr "Sélectionner l'Onglet des Réglages d'Impression" +#: lib/Slic3r/GUI/MainFrame.pm:314 +msgid "Select Print&er Settings Tab\tCtrl+4" +msgstr "Sélectionner l'Onglet des Réglages de l'Impri&mante\tCtrl+4" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:118 msgid "Select Printer Settings Tab" msgstr "Sélectionner l'Onglet des Réglages de l'Imprimante" @@ -5415,70 +5978,14 @@ msgstr "Sélectionner les imprimantes avec lesquelles ce profil est compatible." msgid "Select the STL file to repair:" msgstr "Sélectionner le fichier STL à réparer :" -#: src/slic3r/GUI/Preferences.cpp:207 -msgid "Select toolbar icon size in respect to the default one." -msgstr "Sélectionner la taille de l'icône de la barre d'outil par rapport à la taille par défaut." - #: src/slic3r/GUI/GUI_ObjectList.cpp:2545 msgid "Select type of part" msgstr "Sélectionner le type de pièce" -#: src/slic3r/GUI/Plater.cpp:606 -msgid "Select what kind of pad do you need" -msgstr "Choisissez le type de socle dont vous avez besoin" - #: src/slic3r/GUI/Plater.cpp:421 msgid "Select what kind of support do you need" msgstr "Choisissez le type de support dont vous avez besoin" -#: src/slic3r/GUI/Selection.cpp:146 -msgid "Selection-Add" -msgstr "Sélection-Ajouter" - -#: src/slic3r/GUI/Selection.cpp:384 -msgid "Selection-Add All" -msgstr "Sélection-Ajouter Tout" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2875 -msgid "Selection-Add from list" -msgstr "Sélection-Ajouter depuis la liste" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5623 -msgid "Selection-Add from rectangle" -msgstr "Sélection-Ajouter depuis le rectangle" - -#: src/slic3r/GUI/Selection.cpp:256 -msgid "Selection-Add Instance" -msgstr "Sélection-Ajouter Instance" - -#: src/slic3r/GUI/Selection.cpp:219 -msgid "Selection-Add Object" -msgstr "Sélection-Ajouter Objet" - -#: src/slic3r/GUI/Selection.cpp:187 -msgid "Selection-Remove" -msgstr "Sélection-Retirer" - -#: src/slic3r/GUI/Selection.cpp:410 -msgid "Selection-Remove All" -msgstr "Sélection-Retirer Tout" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2867 -msgid "Selection-Remove from list" -msgstr "Sélection-Retirer de la liste" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5642 -msgid "Selection-Remove from rectangle" -msgstr "Sélection-Retirer du rectangle" - -#: src/slic3r/GUI/Selection.cpp:275 -msgid "Selection-Remove Instance" -msgstr "Sélection-Supprimer l'Instance" - -#: src/slic3r/GUI/Selection.cpp:238 -msgid "Selection-Remove Object" -msgstr "Sélection-Supprimer l'Objet" - #: src/slic3r/GUI/MainFrame.cpp:444 msgid "Selects all objects" msgstr "Sélectionner tous les objets" @@ -5487,18 +5994,22 @@ msgstr "Sélectionner tous les objets" msgid "Send G-code" msgstr "Envoyer le G-code" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Send G-Code to printer" +msgstr "Envoyer le G-Code à l'imprimante" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Send G-Code to printer host" msgstr "Envoyer le G-Code à l'hôte d'imprimante" -#: src/slic3r/GUI/MainFrame.cpp:466 -msgid "Send to print current plate as G-code" -msgstr "Envoyer pour imprimer le plateau actuel en tant que G-code" - #: src/slic3r/GUI/Plater.cpp:731 src/slic3r/GUI/Plater.cpp:3822 msgid "Send to printer" msgstr "Envoyer à l'imprimante" +#: xs/src/slic3r/Utils/OctoPrint.cpp:111 lib/Slic3r/GUI/Plater.pm:1558 +msgid "Sending G-code file to the OctoPrint server..." +msgstr "Envoi du fichier G-code vers le serveur OctoPrint..." + #: src/slic3r/GUI/Tab.cpp:1169 msgid "Sequential printing" msgstr "Impression séquentielle" @@ -5541,38 +6052,17 @@ msgstr "Définir l'extrudeur pour les items sélectionnés" msgid "Set lower thumb to current slider thumb" msgstr "Définir le curseur inférieur sur le curseur actuel" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:245 -msgid "Set Mirror" -msgstr "Appliquer la Symétrie" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Set number of instances" -msgstr "Définir le nombre d'instances" - -#: src/slic3r/GUI/Plater.cpp:4163 -#, possible-c-format -msgid "Set numbers of copies to %d" -msgstr "Régler le nombre de copies sur %d" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Set number of copies" +msgstr "Choisir le nombre de copies" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:746 -msgid "Set Orientation" -msgstr "Définir l'Orientation" +#: lib/Slic3r/GUI/Plater.pm:2224 +msgid "Set number of copies…" +msgstr "Choisir le nombre de copies…" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:715 -msgid "Set Position" -msgstr "Définir la Position" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Printable" -msgstr "Définir Imprimable" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Printable Instance" -msgstr "Définir une Instance Imprimable" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:811 -msgid "Set Scale" -msgstr "Définir l'Échelle" +#: src/libslic3r/PrintConfig.cpp:1053 +msgid "Set silent mode for the G-code flavor" +msgstr "Paramétrer le mode silencieux pour la version du G-Code" #: src/libslic3r/PrintConfig.cpp:2228 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." @@ -5626,14 +6116,6 @@ msgstr "Réglez cette valeur sur la hauteur maximum que peut atteindre votre ext msgid "Set this to the vertical distance between your nozzle tip and (usually) the X carriage rods. In other words, this is the height of the clearance cylinder around your extruder, and it represents the maximum depth the extruder can peek before colliding with other printed objects." msgstr "Paramétrez ceci avec la distance verticale entre la pointe de la buse et (habituellement) les tiges du chariot de l'axe X. En d'autres termes, il s'agit de la hauteur du cylindre de dégagement autour de l'extrudeur, et elle représente la profondeur maximum à laquelle peut descendre l'extrudeur avant d'entrer en collision avec d'autres objets imprimés." -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Unprintable" -msgstr "Définir non-Imprimable" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Unprintable Instance" -msgstr "Définir une Instance non-Imprimable" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:184 msgid "Set upper thumb to current slider thumb" msgstr "Définir le curseur supérieur sur le curseur actuel" @@ -5642,9 +6124,10 @@ msgstr "Définir le curseur supérieur sur le curseur actuel" msgid "Settings" msgstr "Réglages" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Settings for height range" -msgstr "Réglages pour la zone de hauteur" +#: lib/Slic3r/GUI/Plater.pm:264 lib/Slic3r/GUI/Plater.pm:279 +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Settings…" +msgstr "Réglages…" #: src/slic3r/GUI/BedShapeDialog.cpp:60 msgid "Shape" @@ -5654,6 +6137,10 @@ msgstr "Forme" msgid "Shells" msgstr "Coques" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:599 +msgid "Shift + Left (+ drag) - select point(s)" +msgstr "Majuscule + Clic Gauche (+ faire glisser) - sélectionne un (des) point(s)" + #: src/slic3r/GUI/GUI_Preview.cpp:221 msgid "Show" msgstr "Afficher" @@ -5722,6 +6209,10 @@ msgstr "Afficher le plateau" msgid "Show the print settings" msgstr "Afficher les réglages d'impression" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Show the printer controller" +msgstr "Afficher le contrôleur de l'imprimante" + #: src/slic3r/GUI/MainFrame.cpp:483 msgid "Show the printer settings" msgstr "Afficher les réglages de l'imprimante" @@ -5734,9 +6225,13 @@ msgstr "Afficher cette aide." msgid "Show user configuration folder (datadir)" msgstr "Afficher le répertoire de configuration utilisateur (datadir)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 -msgid "Show/Hide (L)egend" -msgstr "Afficher/Masquer la (L)égende" +#: src/slic3r/GUI/Tab.cpp:2157 +msgid "Silent" +msgstr "Silencieux" + +#: src/slic3r/GUI/Plater.cpp:1077 +msgid "silent mode" +msgstr "mode silencieux" #: src/slic3r/GUI/GUI_App.cpp:674 src/slic3r/GUI/wxExtensions.cpp:2459 msgid "Simple" @@ -5754,10 +6249,6 @@ msgstr "Réglage MM pour extrudeur unique" msgid "Single Extruder Multi Material" msgstr "Multi Material à extrudeur unique" -#: src/slic3r/GUI/Tab.cpp:2023 -msgid "Single Extruder Multi Material is selected, \nand all extruders must have the same diameter.\nDo you want to change the diameter for all extruders to first extruder nozzle diameter value?" -msgstr "Le Multi-Matériaux Extrudeur Unique est sélectionné,\net tous les extrudeurs doivent avoir le même diamètre.\nVoulez-vous modifier le diamètre pour tous les extrudeurs\nen utilisant la valeur du diamètre de la buse du premier extrudeur ?" - #: src/slic3r/GUI/Tab.cpp:2240 msgid "Single extruder multimaterial parameters" msgstr "Paramètres multimatériaux pour extrudeur unique" @@ -5797,14 +6288,6 @@ msgstr "Boucles de la Jupe" msgid "SLA gizmo keyboard shortcuts" msgstr "Raccourcis clavier pour le gizmo SLA" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1150 -msgid "SLA gizmo turned off" -msgstr "Gizmo SLA désactivé" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1115 -msgid "SLA gizmo turned on" -msgstr "Gizmo SLA activé" - #: src/slic3r/GUI/Plater.cpp:684 src/slic3r/GUI/Preset.cpp:1277 msgid "SLA material" msgstr "Matériau SLA" @@ -5825,6 +6308,10 @@ msgstr "Réglages d'impression SLA" msgid "SLA Support Points" msgstr "Points de Support SLA" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:995 +msgid "SLA Support Points [L]" +msgstr "Points de Support SLA [L]" + #: src/slic3r/GUI/GLCanvas3D.cpp:722 msgid "SLA supports outside the print area were detected" msgstr "SLA supports détectés en dehors de la zone d'impression" @@ -5833,6 +6320,22 @@ msgstr "SLA supports détectés en dehors de la zone d'impression" msgid "Slab" msgstr "Slab" +#: src/slic3r/GUI/Tab.hpp:389 +msgid "sla_material" +msgstr "sla_matériau" + +#: src/slic3r/GUI/Tab.hpp:403 +msgid "sla_print" +msgstr "sla_impression" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Slic3r &Manual" +msgstr "&Manuel de Slic3r" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Slic3r &Website" +msgstr "Site &Web de Slic3r" + #: src/libslic3r/PrintConfig.cpp:1268 msgid "Slic3r can upload G-code files to a printer host. This field must contain the kind of the host." msgstr "Slic3r peut envoyer des fichiers G-codes vers un hôte d'imprimante. Ce champ doit contenir le type d'hôte." @@ -5845,10 +6348,67 @@ msgstr "Slic3r peut envoyer des fichiers G-code à un hôte d'impression. Ce cha msgid "Slic3r can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance." msgstr "Slic3r peut télécharger des fichiers G-code vers un hôte d'impression. Ce champ doit contenir le nom d'hôte, l'adresse IP ou l'URL de l'instance hôte d'impression." +#: xs/src/libslic3r/PrintConfig.cpp:1110 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the API Key required for authentication." +msgstr "Slic3r peut envoyer des fichiers G-code à OctoPrint. Ce champ doit contenir la clé d'API requise pour l'authentification." + +#: xs/src/libslic3r/PrintConfig.cpp:1124 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the hostname, IP address or URL of the OctoPrint instance." +msgstr "Slic3r peut télécharger des fichiers G-code vers OctoPrint. Ce champ doit contenir le nom d'hôte, l'adresse IP ou l'URL de l'instance OctoPrint." + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r configuration is incompatible" +msgstr "La configuration de Slic3r n'est pas compatible" + +#: lib/Slic3r/GUI/Plater.pm:1021 +msgid "Slic3r Error" +msgstr "Erreur de Slic3r" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r error" +msgstr "Erreur de Slic3r" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r has encountered an error" +msgstr "Slic3r a rencontré une erreur" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r incompatibility" +msgstr "Incompatibilité avec Slic3r" + +#: src/slic3r/GUI/UpdateDialogs.cpp:168 +#, c-format +msgid "" +"Slic3r PE now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"Slic3r PE utilise à présent une structure de configuration mise à jour.\n" +"\n" +"Il existe à présent des \"préréglages Système\", qui intègrent les réglages par défaut pour les différentes imprimantes. Ces préréglages Système ne peuvent pas être modifiés, mais les utilisateurs peuvent désormais créer leurs propres préréglages héritant des paramètres de l'un des préréglages Système.\n" +"Un tel préréglage peut ainsi hériter d'une valeur particulière de son parent ou la remplacer par une valeur personnalisée.\n" +"\n" +"Veuillez utiliser les %s qui suivent pour paramétrer les nouveaux réglages et éventuellement accepter les mises à jour de réglage automatiques." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 +msgid "Slic3r Prusa Edition - Keyboard Shortcuts" +msgstr "Slic3r Prusa Edition - Raccourcis Clavier" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "Slic3r Prusa Edition - System Information" +msgstr "Slic3r Prusa Edition - Informations Système" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 msgid "slic3r version" msgstr "version de slic3r" +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Slic3r View Mode" +msgstr "Mode de Vue de Slic3r" + #: src/libslic3r/PrintConfig.cpp:1234 msgid "Slic3r will not scale speed down below this speed." msgstr "Slic3r ne descendra pas en-dessous de cette vitesse." @@ -5865,6 +6425,10 @@ msgstr "Découper un fichier en G-code" msgid "Slice a file into a G-code, save as" msgstr "Découper un fichier en G-code, enregistrer sous" +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice file to a multi-layer SVG" +msgstr "Découper un fichier en un SVG multi-couches" + #: src/libslic3r/PrintConfig.cpp:71 msgid "Slice gap closing radius" msgstr "Découper le rayon de fermeture de l'espacement" @@ -5886,6 +6450,10 @@ msgstr "Découper le modèle et exporter les parcours en tant que G-code." msgid "Slice the model as FFF or SLA based on the printer_technology configuration value." msgstr "Découper le modèle en tant que FFF ou SLA en fonction de la valeur de configuration de la printer_technology." +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice to SV&G…\tCtrl+G" +msgstr "Découper vers SV&G...\tCtrl+G" + #: src/slic3r/GUI/Plater.cpp:193 msgid "Sliced Info" msgstr "Informations de découpage" @@ -5896,6 +6464,10 @@ msgstr "Informations de découpage" msgid "Slicing" msgstr "Découpe" +#: lib/Slic3r/GUI/Plater.pm:1391 +msgid "Slicing cancelled" +msgstr "Découpe annulée" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:91 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:109 msgid "Slicing complete" @@ -5909,9 +6481,10 @@ msgstr "Découpe effectuée" msgid "Slicing Done!" msgstr "Découpe Effectuée !" -#: src/libslic3r/SLAPrint.cpp:759 -msgid "Slicing had to be stopped due to an internal error: Inconsistent slice index." -msgstr "La découpe a du être interrompue du fait d'une erreur interne : index de découpage inconsistant." +#. TRN To be shown at the status bar on SLA slicing error. +#: src/libslic3r/SLAPrint.cpp:709 +msgid "Slicing had to be stopped due to an internal error." +msgstr "La découpe a du être interrompue du fait d'une erreur interne." #: src/libslic3r/SLAPrint.cpp:55 msgid "Slicing model" @@ -5921,6 +6494,10 @@ msgstr "Découpe du modèle" msgid "Slicing supports" msgstr "Découpe des supports" +#: lib/Slic3r/GUI/MainFrame.pm:483 +msgid "Slicing…" +msgstr "Découpe en cours…" + #: src/libslic3r/PrintConfig.cpp:2249 msgid "Slow" msgstr "Lent" @@ -5970,6 +6547,10 @@ msgstr "Surface de seuil pour le remplissage solide" msgid "Solid layers" msgstr "Couches solides" +#: src/libslic3r/PrintConfig.cpp:1832 +msgid "soluble" +msgstr "soluble" + #: src/libslic3r/PrintConfig.cpp:711 msgid "Soluble material" msgstr "Matériau soluble" @@ -5978,9 +6559,9 @@ msgstr "Matériau soluble" msgid "Soluble material is most likely used for a soluble support." msgstr "Il est probable qu'un matériau soluble soit utilisé pour un support soluble." -#: src/libslic3r/PrintConfig.cpp:914 -msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any extrusion value at all." -msgstr "Certaines commandes G/M-code, y compris le contrôle de la température ainsi que d'autres, ne sont pas universelles. Paramétrez cette option dans le firmware de votre imprimante pour obtenir une sortie compatible. L'option \"Pas d'extrusion\" empêche complètement PrusaSlicer d'exporter toute valeur d'extrusion." +#: src/libslic3r/PrintConfig.cpp:889 +msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents Slic3r from exporting any extrusion value at all." +msgstr "Certaines commandes G/M-code, dont le contrôle de température et autres, ne sont pas universelles. Paramétrez cette option avec le firmware de votre imprimante pour obtenir une sortie compatible. La version \"sans extrusion\" empêche Slic3r d'exporter toute valeur d'extrusion." #: src/slic3r/GUI/GLCanvas3D.cpp:721 msgid "Some objects are not visible when editing supports" @@ -6080,18 +6661,34 @@ msgstr "Vitesse du premier mouvement de refroidissement" msgid "Speed of the last cooling move" msgstr "Vitesse du dernier mouvement de refroidissement" +#: src/libslic3r/PrintConfig.cpp:584 +msgid "Speed used at the very beginning of loading phase. " +msgstr "Vitesse utilisée au tout début de la phase de chargement." + #: src/libslic3r/PrintConfig.cpp:585 msgid "Speed used at the very beginning of loading phase." msgstr "Vitesse utilisée au tout début de la phase de chargement." +#: src/libslic3r/PrintConfig.cpp:576 +msgid "Speed used for loading the filament on the wipe tower. " +msgstr "Vitesse utilisée pour charger le filament sur la tour de nettoyage. " + #: src/libslic3r/PrintConfig.cpp:577 msgid "Speed used for loading the filament on the wipe tower." msgstr "Vitesse utilisée pour charger le filament sur la tour de nettoyage." +#: src/libslic3r/PrintConfig.cpp:592 +msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming). " +msgstr "Vitesse utilisée pour décharger le filament sur la tour de nettoyage (n'affecte pas l'étape initiale de déchargement juste après l'expulsion). " + #: src/libslic3r/PrintConfig.cpp:593 msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)." msgstr "Vitesse utilisée pour décharger le filament sur la tour de nettoyage (n'affecte pas l'étape initiale de déchargement juste après l'expulsion)." +#: src/libslic3r/PrintConfig.cpp:601 +msgid "Speed used for unloading the tip of the filament immediately after ramming. " +msgstr "Vitesse utilisée pour décharger l'extrémité du filament juste après l'expulsion." + #: src/libslic3r/PrintConfig.cpp:602 msgid "Speed used for unloading the tip of the filament immediately after ramming." msgstr "Vitesse utilisée pour décharger l'extrémité du filament juste après l'expulsion." @@ -6100,6 +6697,10 @@ msgstr "Vitesse utilisée pour décharger l'extrémité du filament juste après msgid "Sphere" msgstr "Sphère" +#: src/slic3r/GUI/Tab.cpp:1254 +msgid "Spiral Vase" +msgstr "Vase Spiral" + #: src/libslic3r/PrintConfig.cpp:1717 msgid "Spiral vase" msgstr "Mode de vase spirale" @@ -6117,6 +6718,10 @@ msgstr "Scinder l'objet sélectionné" msgid "Split the selected object into individual objects" msgstr "Scinder l'objet sélectionné en objets individuels" +#: lib/Slic3r/GUI/Plater.pm:2293 +msgid "Split the selected object into individual parts" +msgstr "Scinder l'objet sélectionné en pièces individuelles" + #: src/slic3r/GUI/Plater.cpp:2968 src/slic3r/GUI/Plater.cpp:3008 msgid "Split the selected object into individual sub-parts" msgstr "Scinder l'objet sélectionné en sous-parties individuelles" @@ -6125,30 +6730,14 @@ msgstr "Scinder l'objet sélectionné en sous-parties individuelles" msgid "Split to objects" msgstr "Diviser en objets individuels" -#: src/slic3r/GUI/Plater.cpp:2796 -msgid "Split to Objects" -msgstr "Diviser en Objets" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1110 msgid "Split to parts" msgstr "Scinder en parties" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1904 -msgid "Split to Parts" -msgstr "Scinder en Parties" - #: src/libslic3r/PrintConfig.cpp:799 msgid "Stars" msgstr "Étoiles" -#: src/slic3r/GUI/MainFrame.cpp:376 -msgid "Start a new project" -msgstr "Démarrer un nouveau projet" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Start at height" -msgstr "Commencer à cette hauteur" - #: src/slic3r/GUI/Tab.cpp:1564 src/slic3r/GUI/Tab.cpp:1949 #: src/libslic3r/PrintConfig.cpp:1736 src/libslic3r/PrintConfig.cpp:1751 msgid "Start G-code" @@ -6162,6 +6751,10 @@ msgstr "Démarrer un nouveau processus de découpe" msgid "Start printing after upload" msgstr "Lancer l'impression après le téléchargement" +#: src/libslic3r/SLA/SLASupportTree.cpp:2153 +msgid "Starting" +msgstr "Démarrage" + #: src/slic3r/GUI/PrintHostDialogs.cpp:150 msgid "Status" msgstr "État" @@ -6178,15 +6771,15 @@ msgstr "Mode silencieux" msgid "stealth mode" msgstr "mode silencieux" +#: lib/Slic3r/GUI/Plater.pm:1659 lib/Slic3r/GUI/Plater.pm:1701 +msgid "STL file exported to " +msgstr "Fichier STL exporté vers " + #: src/slic3r/GUI/Plater.cpp:3545 -#, possible-c-format +#, c-format msgid "STL file exported to %s" msgstr "Fichier STL exporté vers %s" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Stop at height" -msgstr "Arrêter à cette hauteur" - #: src/slic3r/GUI/Tab.cpp:1716 src/slic3r/GUI/Tab.cpp:1901 msgid "Success!" msgstr "Réussi !" @@ -6195,6 +6788,10 @@ msgstr "Réussi !" msgid "support" msgstr "support" +#: xs/src/slic3r/GUI/GUI.cpp:859 +msgid "Support" +msgstr "Support" + #: src/libslic3r/PrintConfig.cpp:2441 msgid "Support base diameter" msgstr "Diamètre de la base du support" @@ -6203,16 +6800,8 @@ msgstr "Diamètre de la base du support" msgid "Support base height" msgstr "Hauteur de la base du support" -#: src/libslic3r/PrintConfig.cpp:2566 -msgid "Support base safety distance" -msgstr "Distance de sécurité de la base du support" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Support Blocker" -msgstr "Bloqueur de Support" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Support Enforcer" +#: src/slic3r/GUI/Tab.cpp:1316 +msgid "Support Generator" msgstr "Générateur de Support" #: src/slic3r/GUI/Tab.cpp:3401 @@ -6274,10 +6863,6 @@ msgstr "Extrudeur pour support/raft/jupe" msgid "Support on build plate only" msgstr "Support sur le plateau uniquement" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:991 -msgid "Support parameter change" -msgstr "Changement des paramètres de support" - #: src/slic3r/GUI/Tab.cpp:3406 msgid "Support pillar" msgstr "Pilier de support" @@ -6294,9 +6879,13 @@ msgstr "Diamètre du pilier de support" msgid "Support points density" msgstr "Densité des points de support" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1282 -msgid "Support points edit" -msgstr "Éditer les points de support" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:888 +msgid "Support points density: " +msgstr "Densité des points de support :" + +#: xs/src/libslic3r/PrintConfig.cpp:896 +msgid "Support silent mode" +msgstr "Supporte le mode silencieux" #: src/slic3r/GUI/GUI_ObjectList.cpp:78 src/slic3r/GUI/GUI_ObjectList.cpp:519 #: src/slic3r/GUI/Plater.cpp:418 src/slic3r/GUI/Tab.cpp:3397 @@ -6319,10 +6908,26 @@ msgstr "supports et socle" msgid "Supports remaining times" msgstr "Temps de support restant" +#: src/libslic3r/PrintConfig.cpp:1052 +msgid "Supports silent mode" +msgstr "Supporte le mode silencieux" + #: src/libslic3r/PrintConfig.cpp:1053 msgid "Supports stealth mode" msgstr "Supporte le mode silencieux" +#: src/slic3r/GUI/Tab.cpp:1313 +msgid "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" +msgstr "" +"Les supports sont plus efficaces, si la fonctionnalité suivante est activée :\n" +"-Détection des périmètres de pont\n" +"\n" +"Voulez-vous que que je modifie les réglages des supports ?" + #: src/slic3r/GUI/Preferences.cpp:76 msgid "Suppress \" - default - \" presets" msgstr "Supprimer les préréglages \" - par défaut - \"" @@ -6348,17 +6953,25 @@ msgid "Switch to Preview" msgstr "Basculer vers la Prévisualisation" #: src/slic3r/GUI/wxExtensions.cpp:2412 -#, possible-c-format +#, c-format msgid "Switch to the %s mode" msgstr "Basculer vers le mode %s" #: src/slic3r/GUI/GUI_App.cpp:752 -msgid "Switching the language will trigger application restart.\nYou will lose content of the plater." +msgid "" +"Switching the language will trigger application restart.\n" +"You will lose content of the plater." msgstr "Le changement de langue déclenchera le redémarrage de l’application. L'objet et tous les paramètres non enregistrés seront perdus." #: src/slic3r/GUI/WipeTowerDialog.cpp:327 -msgid "Switching to simple settings will discard changes done in the advanced mode!\n\nDo you want to proceed?" -msgstr "Basculer vers les réglages simples annulera les changements effectués en mode avancé !\n\nVoulez-vous continuer ?" +msgid "" +"Switching to simple settings will discard changes done in the advanced mode!\n" +"\n" +"Do you want to proceed?" +msgstr "" +"Basculer vers les réglages simples annulera les changements effectués en mode avancé !\n" +"\n" +"Voulez-vous continuer ?" #: src/libslic3r/PrintConfig.cpp:1949 msgid "Synchronize support layers with the object print layers. This is useful with multi-material printers, where the extruder switch is expensive." @@ -6372,6 +6985,10 @@ msgstr "Synchroniser avec les couches de l'objet" msgid "System &Info" msgstr "&Informations sur le Système" +#: lib/Slic3r/GUI/MainFrame.pm:355 +msgid "System Info" +msgstr "Informations sur le Système" + #: src/slic3r/GUI/SysInfoDialog.cpp:44 msgid "System Information" msgstr "Informations sur le Système" @@ -6386,10 +7003,18 @@ msgstr "Préréglages système" msgid "Take Configuration &Snapshot" msgstr "Capturer un in&stantané de la configuration" +#: xs/src/slic3r/GUI/GUI.cpp:350 +msgid "Take Configuration Snapshot" +msgstr "Capturer un instantané de la configuration" + #: src/slic3r/GUI/GUI_App.cpp:697 msgid "Taking configuration snapshot" msgstr "Instantané de la configuration en cours" +#: src/slic3r/GUI/Tab.cpp:1478 +msgid "Temperature " +msgstr "Température " + #: src/libslic3r/PrintConfig.cpp:1980 msgid "Temperature" msgstr "Température" @@ -6410,32 +7035,41 @@ msgstr "Températures" msgid "Test" msgstr "Test" -#: src/slic3r/GUI/BedShapeDialog.cpp:171 -msgid "Texture" -msgstr "Texture" +#: src/slic3r/GUI/Tab.cpp:1362 +msgid "" +"The %1% infill pattern is not supposed to work at 100%% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +"Le motif de remplissage %1% n'est pas censé fonctionner à une densité de 100%%.\n" +"\n" +"Puis-je passer au motif de remplissage rectiligne?" #: src/slic3r/GUI/FirmwareDialog.cpp:530 -#, possible-c-format +#, c-format msgid "The %s device could not have been found" msgstr "L'équipement %s n'a pas pu être trouvé" #: src/slic3r/GUI/FirmwareDialog.cpp:417 -#, possible-c-format -msgid "The %s device was not found.\nIf the device is connected, please press the Reset button next to the USB connector ..." -msgstr "L'équipement %s n'a pas été trouvé.\nSi l'équipement est connecté, veuillez appuyer sur le bouton Reset à côté du connecteur USB ..." +#, c-format +msgid "" +"The %s device was not found.\n" +"If the device is connected, please press the Reset button next to the USB connector ..." +msgstr "" +"L'équipement %s n'a pas été trouvé.\n" +"Si l'équipement est connecté, veuillez appuyer sur le bouton Reset à côté du connecteur USB ..." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640 -msgid "The currently manipulated object is tilted (rotation angles are not multiples of 90°).\nNon-uniform scaling of tilted objects is only possible in the World coordinate system,\nonce the rotation is embedded into the object coordinates." +msgid "" +"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n" +"Non-uniform scaling of tilted objects is only possible in the World coordinate system,\n" +"once the rotation is embedded into the object coordinates." msgstr "L'objet actuel est incliné (les angles de rotation ne sont pas des multiples de 90 °). La mise à l'échelle non uniforme des objets inclinés est possible dans le système de coordonnées seulement quand la rotation est incorporée aux coordonnées de l'objet." #: src/libslic3r/PrintConfig.cpp:2462 msgid "The default angle for connecting support sticks and junctions." msgstr "L'angle par défaut pour connecter les tiges de support et les jonctions." -#: src/libslic3r/SLAPrint.cpp:670 -msgid "The endings of the support pillars will be deployed on the gap between the object and the pad. 'Support base safety distance' has to be greater than the 'Pad object gap' parameter to avoid this." -msgstr "Les extrémités des piliers de support seront déployées dans l'espace entre l'objet et le socle. La 'Distance de sécurité de base du support' doit être plus grande que le paramètre 'Espace de l'objet socle' pour éviter cela." - #: src/libslic3r/PrintConfig.cpp:457 msgid "The extruder to use (unless more specific extruder settings are specified). This value overrides perimeter and infill extruders, but not the support extruders." msgstr "L'extrudeur à utiliser (à moins que d'autres réglages d'extrudeur plus spécifiques soient spécifiés). Cette valeur se substitue aux extrudeurs de périmètre et de remplissage, mais pas aux extrudeurs de support." @@ -6481,13 +7115,17 @@ msgstr "La première couche sera réduite sur le plan XY selon la valeur configu msgid "the following characters are not allowed:" msgstr "les caractères suivant ne sont pas autorisés :" -#: src/slic3r/GUI/Tab.cpp:3311 -msgid "the following suffix is not allowed:" -msgstr "le suffixe suivant n'est pas autorisé :" +#: src/slic3r/GUI/Tab.cpp:3283 +msgid "the following postfix are not allowed:" +msgstr "les suffixes suivants ne sont pas autorisés :" + +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified" +msgstr "Les préréglages suivants ont été modifiés" -#: src/libslic3r/PrintConfig.cpp:2702 -msgid "The gap between the object bottom and the generated pad in zero elevation mode." -msgstr "Espace entre le bas de l'objet et le socle généré en mode élévation zéro." +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified: " +msgstr "Les préréglages suivants ont été modifiés:" #: src/libslic3r/PrintConfig.cpp:2453 msgid "The height of the pillar base cone" @@ -6501,10 +7139,6 @@ msgstr "La distance maximum entre deux piliers pour qu'ils soient reliés. Une v msgid "The max length of a bridge" msgstr "La longueur maximum d'un pont" -#: src/libslic3r/PrintConfig.cpp:2569 -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 "Distance minimum entre la base du pilier et le modèle en mm. Utile en mode élévation zéro où un espace correspondant à ce paramètre est inséré entre le modèle et le socle." - #: src/libslic3r/PrintConfig.cpp:2176 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 "L'objet sera agrandi/réduit sur les plans XY selon la valeur indiquée (négatif = réduit, positif = agrandi). Ce réglage peut être utile pour un réglage fin des tailles de trous." @@ -6514,8 +7148,14 @@ msgid "The object will be raised by this number of layers, and support material msgstr "L'objet sera surélevé de ce nombre de couches, et du support sera généré en dessous." #: src/libslic3r/PrintConfig.cpp:2259 -msgid "The percentage of the bed area. \nIf the print area exceeds the specified value, \nthen a slow tilt will be used, otherwise - a fast tilt" -msgstr "Pourcentage de la zone du lit.\nSi la zone d'impression excède la valeur spécifiée,\nalors une inclinaison lente sera appliquée, sinon - une inclinaison rapide" +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 "" +"Pourcentage de la zone du lit.\n" +"Si la zone d'impression excède la valeur spécifiée,\n" +"alors une inclinaison lente sera appliquée, sinon - une inclinaison rapide" #: src/slic3r/GUI/GUI_App.cpp:831 msgid "The presets on the following tabs were modified" @@ -6541,10 +7181,6 @@ msgstr "L'objet sélectionné ne peut être scindé car il contient plus d'un vo msgid "The selected object couldn't be split because it contains only one part." msgstr "L'objet sélectionné n'a pu être scindé car il ne contient qu'une seule pièce." -#: src/slic3r/GUI/MainFrame.cpp:410 -msgid "The selected project is no more available" -msgstr "Le projet sélectionné n'est plus disponible" - #: src/libslic3r/PrintConfig.cpp:2570 msgid "The slope of the pad wall relative to the bed plane. 90 degrees means straight walls." msgstr "La pente de la paroi du socle par rapport au plan du lit. 90 degrés donne des murs droits." @@ -6557,6 +7193,27 @@ msgstr "La vitesse de chargement d'un filament dans l'extrudeur après une rétr msgid "The speed for retractions (it only applies to the extruder motor)." msgstr "La vitesse des rétractations (ne s'applique qu'au moteur de l'extrudeur)." +#: src/slic3r/GUI/Tab.cpp:1247 +#, no-c-format +msgid "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" +msgstr "" +"Le mode Vase Spiral requiert :\n" +"-Un périmètre\n" +"-Pas de couches solides supérieures\n" +"-Une densité de remplissage de 0%\n" +"-Pas de supports\n" +"-Pas de ensure_vertical_shell_thickness\n" +"\n" +"Voulez-vous que je modifie ces réglages afin d'activer le Vase Spirale?" + #: src/libslic3r/Print.cpp:1187 msgid "The Spiral Vase option can only be used when printing a single object." msgstr "L'option Vase Spirale ne peut être utilisé que lors de l'impression d'un seul objet." @@ -6579,6 +7236,10 @@ msgstr "Le nom proposé n'est pas disponible." msgid "The supplied name is not valid;" msgstr "Le nom fourni n'est pas valide ;" +#: c:\src\Slic3r\xs\src\slic3r\GUI\Tab.cpp:1785 +msgid "The supplied name is not valid; the following characters are not allowed:" +msgstr "Le nom proposé n'est pas valide ; les caractères suivants ne sont pas autorisés :" + #: src/libslic3r/Print.cpp:1268 msgid "The supplied settings will cause an empty print." msgstr "Les réglages fournis vont entraîner une impression vide." @@ -6592,13 +7253,37 @@ msgid "The vertical distance between object and support material interface. Sett msgstr "Distance verticale entre l'objet et l'intercalaire du support. Régler cette valeur sur zéro empêchera Slic3r d'utiliser la vitesse et le débit des ponts pour la première couche de l'objet." #: src/slic3r/GUI/Tab.cpp:2429 -msgid "The Wipe option is not available when using the Firmware Retraction mode.\n\nShall I disable it in order to enable Firmware Retraction?" -msgstr "L'option Nettoyage n'est pas disponible lorsque vous utilisez le mode Rétractation du Firmware.\n\nVoulez-vous que je la désactive pour permettre la Rétractation du Firmware ?" +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 "" +"L'option Nettoyage n'est pas disponible lorsque vous utilisez le mode Rétractation du Firmware.\n" +"\n" +"Voulez-vous que je la désactive pour permettre la Rétractation du Firmware ?" + +#: src/slic3r/GUI/Tab.cpp:1277 +msgid "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool change.\n" +"(both support_material_extruder and support_material_interface_extruder need to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" +msgstr "" +"A l'heure actuelle la Tour de Nettoyage ne tolère les supports non-solubles \n" +"que s'ils sont imprimés avec l'extrudeur en cours d'utilisation sans déclencher un changement d'outil.\n" +"(support_material_extruder de même que support_material_interface_extruder doivent être réglés sur 0).\n" +"\n" +"Voulez-vous que je modifie ces réglages pour activer la Tour de Nettoyage ?" #: src/libslic3r/Print.cpp:1306 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 support_material_extruder and support_material_interface_extruder need to be set to 0)." msgstr "A l'heure actuelle la Tour de Nettoyage ne tolère les supports non-solubles que s'ils sont imprimés avec l'extrudeur en cours d'utilisation sans déclencher un changement d'outil. (support_material_extruder de même que support_material_interface_extruder doivent être réglés sur 0)." +#: xs/src/libslic3r/Print.cpp:617 +msgid "The Wipe Tower is currently only supported for the Marlin and RepRap/Sprinter G-code flavors." +msgstr "La tour de nettoyage est actuellement supportée uniquement pour les versions de G-Code de Marlin et de RepRap/Sprinter." + #: src/libslic3r/Print.cpp:1200 msgid "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors." msgstr "La tour de nettoyage est actuellement supportée uniquement pour les versions de G-Code de Marlin, RepRap/Sprinter et Repetier." @@ -6623,16 +7308,16 @@ msgstr "La tour de nettoyage est uniquement supportée pour plusieurs objets s'i msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heights" msgstr "La tour de nettoyage est uniquement supportée pour plusieurs objets s'ils ont une même hauteur de couche" -#: src/libslic3r/Print.cpp:1155 -msgid "The wipe tower is only supported if all extruders have the same nozzle diameter and use filaments of the same diameter." -msgstr "La tour de nettoyage n'est supportée que si tous les extrudeurs ont le même diamètre de buse et utilisent un filament de même diamètre." +#: src/libslic3r/Print.cpp:1223 +msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heigths" +msgstr "La tour de nettoyage est uniquement supportée pour plusieurs objets s'ils ont une même hauteur de couche" #: src/libslic3r/Print.cpp:1258 msgid "The Wipe tower is only supported if all objects have the same layer height profile" msgstr "La tour de nettoyage est uniquement supportée si tous les objets ont le même profil de hauteur de couche" #: src/slic3r/GUI/UpdateDialogs.cpp:127 -#, possible-c-format +#, c-format msgid "This %s version: %s" msgstr "Version de ce %s : %s" @@ -6640,10 +7325,6 @@ msgstr "Version de ce %s : %s" msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." msgstr "Ce code est inséré entre des objets lorsque vous utilisez l'impression séquentielle. Par défaut la température de l'extrudeur et du plateau est réinitialisée et utilise la commande sans-attente ; toutefois si des commandes M104, M109, M140 ou M190 sont détectées dans ce code personnalisé, Slic3r n'ajoutera pas de commandes de température. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r, donc vous pouvez entrer une commande \"M109S[first_layer_temperature]\" où vous le souhaitez." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted at every extruder change. If you don't leave this empty, you are expected to take care of the toolchange yourself - PrusaSlicer will not output any other G-code to change the filament. You can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder], so e.g. the standard toolchange command can be scripted as T[next_extruder]." -msgstr "Ce code personnalisé est inséré à chaque changement d'extrudeur. Si vous ne laissez pas ce champ vide, il sera nécessaire de faire le changement d'outil vous-même - PrusaSlicer n'ajoutera pas d'autre G-code pour changer le filament. Vous pouvez utiliser des variables génériques pour tous les réglages Slic3r de même que [previous_extruder] et [next_extruder], ainsi par exemple la commande standard de changement d'outil peut être rédigée comme T[next_extruder]." - #: src/libslic3r/PrintConfig.cpp:1032 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 use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Ce code personnalisé est inséré à chaque changement de couche, juste après le mouvement Z et avant le déplacement de l'extrudeur au point de départ de la couche suivante. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r de même que [layer_num] et [layer_z]." @@ -6652,17 +7333,17 @@ msgstr "Ce code personnalisé est inséré à chaque changement de couche, juste msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Ce code personnalisé est inséré à chaque changement de couche, juste avant le mouvement en Z. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r de même que [layer_num] et [layer_z]." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange." -msgstr "Ce code personnalisé est inséré avant chaque changement d'outil. Des variables génériques pour n'importe quels réglages PrusaSlicer ainsi que {previous_extruder} et {next_extruder} peuvent être utilisées. Lorsqu'une commande de changement d'outil qui occasionne un changement concernant le bon extrudeur est incluse (comme T{next_extruder}), PrusaSlicer n'émettra pas d'autres commandes de ce type. Il est donc possible de rédiger le script d'un comportement personnalisé à la fois avant et après le changement d'outil." - -#: src/libslic3r/PrintConfig.cpp:380 -msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Cette procédure de fin est insérée à la fin d'un fichier de sortie, avant le gcode de fin de l'imprimante (et avant tout changement d'outil de ce filament dans le cas des imprimantes multimatériaux). Notez que vous pouvez utiliser des variables génériques pour tous les réglages PrusaSlicer. Si vous avez des extrudeurs multiples, le gcode est traité dans l'ordre des extrudeurs." +#: src/libslic3r/PrintConfig.cpp:2007 +msgid "This custom code is inserted right before every extruder change. Note that you can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder]." +msgstr "Ce code personnalisé est inséré juste avant chaque changement d'extrudeur. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r de même que [previous_extruder] et [next_extruder]." #: src/libslic3r/PrintConfig.cpp:370 -msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all PrusaSlicer settings." -msgstr "Cette procédure de fin est insérée à la fin d'un fichier de sortie. Notez que vous pouvez utiliser des variables génériques pour tous les paramètres PrusaSlicer." +msgid "This end procedure is inserted at the end of the output file, before the printer end gcode. Note that you can use placeholder variables for all Slic3r settings. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Cette procédure de fin est insérée à la fin du fichier de sortie, avant le gcode de fin de l'imprimante. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r. Si vous avez plusieurs extrudeurs, le gcode sera traité suivant l'ordre des extrudeurs." + +#: src/libslic3r/PrintConfig.cpp:360 +msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all Slic3r settings." +msgstr "Cette procédure de fin est insérée à la fin du fichier de sortie. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r." #: src/libslic3r/PrintConfig.cpp:1193 src/libslic3r/PrintConfig.cpp:1204 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 of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." @@ -6712,14 +7393,34 @@ msgstr "Cette fonction élèvera le Z graduellement en cas d'impression d'un obj msgid "This file cannot be loaded in a simple mode. Do you want to switch to an advanced mode?\n" msgstr "Ce fichier ne peut être chargé en mode simple. Voulez-vous basculer en mode avancé ?\n" +#: src/slic3r/GUI/Plater.cpp:1650 +msgid "This file cannot be loaded in simple mode. Do you want to switch to expert mode?\n" +msgstr "Ce fichier ne peut être chargé en mode simple. Voulez-vous basculer en mode expert ?\n" + #: src/slic3r/GUI/Plater.cpp:1658 -msgid "This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\nthis file as a single object having multiple parts?\n" -msgstr "Ce fichier contient plusieurs objets positionnés à différentes hauteurs. Au lieu de les considérer comme des objets distincts, voulez-vous que je considère\nce fichier comme un seul objet en plusieurs parties?\n" +msgid "" +"This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\n" +"this file as a single object having multiple parts?\n" +msgstr "" +"Ce fichier contient plusieurs objets positionnés à différentes hauteurs. Au lieu de les considérer comme des objets distincts, voulez-vous que je considère\n" +"ce fichier comme un seul objet en plusieurs parties?\n" #: src/slic3r/GUI/FirmwareDialog.cpp:313 -#, possible-c-format -msgid "This firmware hex file does not match the printer model.\nThe hex file is intended for: %s\nPrinter reported: %s\n\nDo you want to continue and flash this hex file anyway?\nPlease only continue if you are sure this is the right thing to do." -msgstr "Le fichier hex de ce firmware ne correspond pas au modèle d'imprimante.\nLe fichier hex est prévu pour : %s\nImprimante détectée : %s\n\nVoulez-vous continuer et flasher ce fichier hex quand même ?\nS'il vous plait, ne continuez que si vous êtes certain de faire le bon choix." +#, c-format +msgid "" +"This firmware hex file does not match the printer model.\n" +"The hex file is intended for: %s\n" +"Printer reported: %s\n" +"\n" +"Do you want to continue and flash this hex file anyway?\n" +"Please only continue if you are sure this is the right thing to do." +msgstr "" +"Le fichier hex de ce firmware ne correspond pas au modèle d'imprimante.\n" +"Le fichier hex est prévu pour : %s\n" +"Imprimante détectée : %s\n" +"\n" +"Voulez-vous continuer et flasher ce fichier hex quand même ?\n" +"S'il vous plait, ne continuez que si vous êtes certain de faire le bon choix." #: src/libslic3r/PrintConfig.cpp:278 msgid "This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer printing time." @@ -6737,22 +7438,10 @@ msgstr "Cette option active la rétractation lors d'un déplacement sur l'axe Z. msgid "This flag will move the nozzle while retracting to minimize the possible blob on leaky extruders." msgstr "Cette option déplace la buse lors des rétractations, limitant ainsi l'apparition d'amas sur les extrudeurs ayant tendance à couler." -#: src/slic3r/GUI/Tab.cpp:921 -msgid "This is a default preset." -msgstr "Ceci est un préréglage par défaut." - #: src/libslic3r/PrintConfig.cpp:2501 msgid "This is a relative measure of support points density." msgstr "Ceci est une mesure relative de la densité des points de support." -#: src/slic3r/GUI/Tab.cpp:2528 -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 "Ceci est une imprimante multimatériaux à extrudeur unique, les diamètres de tous les extrudeurs seront réglés sur la nouvelle valeur. Voulez-vous continuer ?" - -#: src/slic3r/GUI/Tab.cpp:923 -msgid "This is a system preset." -msgstr "Ceci est un préréglage système." - #: src/libslic3r/PrintConfig.cpp:491 src/libslic3r/PrintConfig.cpp:551 msgid "This is only used in the Slic3r interface as a visual help." msgstr "Ceci est utilisé dans l'interface de Slic3r uniquement en tant que indication visuelle." @@ -6790,13 +7479,21 @@ msgstr "Ceci est la hauteur de couche imprimable maximum pour cet extrudeur, uti 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 "Cette valeur est la hauteur de couche imprimable minimum pour cet extrudeur et elle limite la résolution pour la hauteur de couche variable. Les valeurs type se situent entre 0.05 mm et 0.1 mm." +#: src/libslic3r/PrintConfig.cpp:2114 +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 "Cette matrice décrit les volumes (en millimètres cube) nécessaires pour purger le nouveau filament dans la tour de nettoyage pour une paire d'outils donnée. " + #: src/libslic3r/PrintConfig.cpp:2139 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 "Cette matrice décrit les volumes (en millimètres cube) nécessaires pour purger le nouveau filament dans la tour de nettoyage pour une paire d'outils donnée." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:643 -msgid "This operation is irreversible.\nDo you want to proceed?" -msgstr "Cette opération est irréversible.\nVoulez-vous continuer?" +msgid "" +"This operation is irreversible.\n" +"Do you want to proceed?" +msgstr "" +"Cette opération est irréversible.\n" +"Voulez-vous continuer?" #: src/libslic3r/PrintConfig.cpp:1372 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 surfaces which benefit from a higher number of perimeters if the Extra Perimeters option is enabled." @@ -6838,13 +7535,22 @@ msgstr "Cette option représente la vitesse maximum du ventilateur." msgid "This setting represents the minimum PWM your fan needs to work." msgstr "Cette option représente le PWM minimum dont votre ventilateur a besoin pour tourner." -#: src/libslic3r/PrintConfig.cpp:1801 -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 printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Cette procédure de départ est insérée au début, après n'importe quel gcode de départ de l'imprimante (et après n'importe quel changement d'outil pour ce filament dans le cas des imprimantes multi-matériaux). Ceci est utilisé pour supplanter les réglages d'un filament spécifique. Si PrusaSlicer détecte M104, M109, M140 ou M190 dans vos codes personnalisés, de telles commandes ne seront pas ajoutées automatiquement de sorte que vous restez libre de personnaliser l'ordre des commandes de chauffe et autres actions personnalisées. Notez que vous pouvez utiliser des variables génériques pour les tous les paramètres PrusaSlicer, donc vous pouvez utiliser une commande \"M109 S[first_layer_temperature]\" où vous voulez." +#: src/slic3r/GUI/UpdateDialogs.cpp:123 +#, c-format +msgid "This Slic3r PE version: %s" +msgstr "Version de ce Slic3r PE : %s" + +#: src/libslic3r/PrintConfig.cpp:1752 +msgid "This start procedure is inserted at the beginning, after any printer start gcode. This is used to override settings for a specific filament. If Slic3r detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Cette procédure de démarrage est insérée au début, après un gcode de démarrage de l'imprimante. Elle est utilisée pour remplacer les réglages pour un filament spécifique. Si Slic3r détecte des commandes M104, M109, M140 ou M190 dans vos codes personnalisés ces commandes ne seront pas ajoutées automatiquement, de cette manière vous pouvez personnaliser la procédure de chauffe et autres actions. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r, donc vous pouvez saisir une commande \"M109 S[first_layer_temperature]\" où vous voulez. Si vous avez plusieurs extrudeurs, le G-Code sera exécuté dans l'ordre des extrudeurs." -#: src/libslic3r/PrintConfig.cpp:1786 -msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." -msgstr "Cette procédure de départ est insérée au début, après que le lit a atteint la température ciblée et que l'extrudeur vient de commencer à chauffer, et avant que l'extrudeur ait terminé de chauffer. Si PrusaSlicer détecte M104 ou M190 dans votre code personnalisé, de telles commandes ne seront pas ajoutées automatiquement de sorte que vous restez libre de personnaliser l'ordre des commandes de chauffe et autres actions personnalisées. Notez que vous pouvez utiliser des variables génériques pour les tous les paramètres PrusaSlicer, donc vous pouvez utiliser une commande \"M109 S[first_layer_temperature]\" où vous voulez." +#: src/libslic3r/PrintConfig.cpp:1737 +msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If Slic3r detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "Cette procédure de démarrage est insérée au début, après que le plateau a atteint la température ciblée et lorsque l'extrudeur vient juste de commencer à chauffer, et avant que l'extrudeur ait terminé de chauffer. Si Slic3r détecte des commandes M104 ou M190 dans vos codes personnalisés, ces commandes ne seront pas ajoutées automatiquement ainsi vous serez libre de personnaliser l'ordre des commandes de chauffe et autres actions personnalisées. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r, donc vous pouvez mettre une commande \"M109S[first_layer_temperature]\" où vous le souhaitez." + +#: src/libslic3r/PrintConfig.cpp:663 +msgid "This string is edited by RammingDialog and contains ramming specific parameters " +msgstr "Cette chaine est éditée par RammingDialog et contient les paramètres spécifiques d'expulsion " #: src/libslic3r/PrintConfig.cpp:664 msgid "This string is edited by RammingDialog and contains ramming specific parameters." @@ -6854,14 +7560,42 @@ msgstr "Cette chaine est éditée par RammingDialog et contient les paramètres 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 example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)." msgstr "Cette valeur sera ajoutée (ou soustraite) de toutes les coordonnées Z dans le G-Code de sortie. Elle est utilisée pour compenser une mauvaise position de fin de course Z: par exemple si votre fin de course place votre buse à 0.3mm au dessus du plateau, réglez cette valeur sur -0.3 (ou corrigez votre fin de course)." +#: src/libslic3r/PrintConfig.cpp:2107 +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 "Ce vecteur enregistre les volumes requis pour changer l'outil utilisé pour la tour de nettoyage. Ces valeurs sont utilisées pour simplifier la création des volumes de purge complets ci-dessous. " + #: src/libslic3r/PrintConfig.cpp:2132 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 "Ce vecteur enregistre les volumes requis pour changer l'outil utilisé pour la tour de nettoyage. Ces valeurs sont utilisées pour simplifier la création des volumes de purge complets ci-dessous." #: src/slic3r/GUI/UpdateDialogs.cpp:118 -#, possible-c-format -msgid "This version of %s is not compatible with currently installed configuration bundles.\nThis probably happened as a result of running an older %s after using a newer one.\n\nYou may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" -msgstr "Cette version de %s n'est pas compatible avec les ensembles de configuration actuellement installés.\nCela survient probablement du fait d'avoir lancé une ancienne version de %s après en avoir utilisé une nouvelle.\n\nVous pouvez soit quitter %s et essayer à nouveau avec une version plus récente, ou vous pouvez relancer la configuration initiale. Procéder ainsi permettra de créer une sauvegarde de la configuration existante avant d'installer les fichiers compatibles avec ce %s.\n" +#, c-format +msgid "" +"This version of %s is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older %s after using a newer one.\n" +"\n" +"You may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" +msgstr "" +"Cette version de %s n'est pas compatible avec les ensembles de configuration actuellement installés.\n" +"Cela survient probablement du fait d'avoir lancé une ancienne version de %s après en avoir utilisé une nouvelle.\n" +"\n" +"Vous pouvez soit quitter %s et essayer à nouveau avec une version plus récente, ou vous pouvez relancer la configuration initiale. Procéder ainsi permettra de créer une sauvegarde de la configuration existante avant d'installer les fichiers compatibles avec ce %s.\n" + +#: src/slic3r/GUI/UpdateDialogs.cpp:114 +msgid "" +"This version of Slic3r PE is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older Slic3r PE after using a newer one.\n" +"\n" +"You may either exit Slic3r and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this Slic3r.\n" +msgstr "" +"Cette version de Slic3r PE n'est pas compatible avec les ensembles de configuration actuellement installés.\n" +"Cela survient probablement du fait d'avoir lancé une ancienne version de Slic3r PE après en avoir utilisé une nouvelle.\n" +"\n" +"Vous pouvez soit quitter Slic3r et essayer à nouveau avec une version plus récente, ou vous pouvez relancer la configuration initiale. Procéder ainsi permettra de créer une sauvegarde de la configuration existante avant d'installer les fichiers compatibles avec ce Slic3r.\n" + +#: src/libslic3r/PrintConfig.cpp:2282 +msgid "This will apply a gamm correction to the rasterized 2D polygons." +msgstr "Cela appliquera une correction gamma aux polygones 2D tramés." #: src/libslic3r/PrintConfig.cpp:2284 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." @@ -6903,6 +7637,10 @@ msgstr "Durée de l'inclinaison rapide" msgid "Time of the slow tilt" msgstr "Durée de l'inclinaison lente" +#: src/libslic3r/PrintConfig.cpp:609 +msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions. " +msgstr "Temps d'attente nécessaire après que le filament ait été déchargé. Peut aider à obtenir des changements d'outils fiables avec des matériaux flexible qui ont besoin de plus de temps pour revenir à leurs dimensions originales. " + #: src/libslic3r/PrintConfig.cpp:610 msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions." msgstr "Temps d'attente nécessaire après que le filament ait été déchargé. Peut aider à obtenir des changements d'outils fiables avec des matériaux flexible qui ont besoin de plus de temps pour revenir à leurs dimensions originales." @@ -6911,6 +7649,10 @@ msgstr "Temps d'attente nécessaire après que le filament ait été déchargé. msgid "To do that please specify a new name for the preset." msgstr "Pour faire cela veuillez spécifier un nouveau nom pour le préréglage." +#: src/slic3r/GUI/UpdateDialogs.cpp:37 +msgid "To download, follow the link below." +msgstr "Pour télécharger, suivez le lien ci-dessous." + #: src/slic3r/GUI/Plater.cpp:2966 msgid "To objects" msgstr "Vers les objets" @@ -6919,11 +7661,6 @@ msgstr "Vers les objets" msgid "To parts" msgstr "Vers les parties" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:212 -#, possible-c-format -msgid "Toggle %c axis mirroring" -msgstr "Activer la symétrie sur l'axe %c" - #: src/libslic3r/Zipper.cpp:37 msgid "too many files" msgstr "trop de fichiers" @@ -6972,6 +7709,10 @@ msgstr "Couches supérieures solides" msgid "Top View" msgstr "Vue du Dessus" +#: xs/src/libslic3r/PrintConfig.cpp:283 +msgid "Top/bottom fill pattern" +msgstr "Motif de remplissage supérieur/inférieur" + #: src/slic3r/GUI/WipeTowerDialog.cpp:247 msgid "Total purging volume is calculated by summing two values below, depending on which tools are loaded/unloaded." msgstr "Le volume de purge total est calculé en additionnant les deux valeurs ci-dessous, en fonction des outils qui sont chargés/déchargés." @@ -7004,34 +7745,18 @@ msgstr "Essayer de réparer tout maillage non-multiple (cette option est ajouté msgid "Type of the printer." msgstr "Type d'imprimante." -#: src/slic3r/GUI/GUI_ObjectList.cpp:2549 -msgid "Type:" -msgstr "Type :" - #: src/libslic3r/Zipper.cpp:35 msgid "undefined error" msgstr "erreur non définie" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3609 -#: src/slic3r/GUI/MainFrame.cpp:559 -msgid "Undo" -msgstr "Annuler" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Undo %1$d Action" -msgid_plural "Undo %1$d Actions" -msgstr[0] "" -msgstr[1] "" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Undo History" -msgstr "Annuler Historique" - #: src/libslic3r/Zipper.cpp:59 msgid "unexpected decompressed size" msgstr "volume de décompression inattendu" +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Uniformly…" +msgstr "Uniformément…" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:27 msgid "Unknown" msgstr "Inconnu" @@ -7056,13 +7781,29 @@ msgstr "Vitesse de déchargement au démarrage" msgid "UNLOCKED LOCK" msgstr "CADENAS OUVERT" -#: src/slic3r/GUI/Tab.cpp:3362 -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.\nClick to reset all settings for current option group to the system (or default) values." -msgstr "L'icône CADENAS OUVERT indique que certains paramètres ont été modifiés et ne sont pas égaux aux valeurs du système (ou par défaut) pour le groupe d'options actuel.\nCliquez pour régler tous les paramètres pour le groupe d'options actuel sur les valeurs du système (ou par défaut)." +#: src/slic3r/GUI/Tab.cpp:3105 +msgid "" +"UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click to reset all settings for current option group to the system values." +msgstr "" +"L'icône CADENAS OUVERT indique que certains paramètres ont été modifiés et ne sont pas égaux aux valeurs du système pour le groupe d'options actuel.\n" +"Cliquez pour régler tous les paramètres pour le groupe d'options actuel sur les valeurs du système." + +#: src/slic3r/GUI/Tab.cpp:3120 +msgid "" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system value.\n" +"Click to reset current value to the system value." +msgstr "" +"L'icône CADENAS OUVERT indique que la valeur a été changée et n'est pas égale à la valeur du système.\n" +"Cliquez pour régler la valeur actuelle sur les valeurs du système." -#: src/slic3r/GUI/Tab.cpp:3377 -msgid "UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\nClick to reset current value to the system (or default) value." -msgstr "L'icône CADENAS OUVERT indique que la valeur a été changée et n'est pas égale à la valeur du système (ou par défaut).\nCliquez pour réinitialiser la valeur actuelle sur les valeurs du système (ou par défaut)." +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "" +"UNLOCKED LOCK;indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"CADENAS OUVERT;indique que certains paramètres ont été modifiés et ne sont pas égaux aux valeurs du système pour le groupe d'options actuel.\n" +"Cliquez sur l'icône CADENAS OUVERT pour régler tous les paramètres pour le groupe d'options actuel sur les valeurs du système." #: src/slic3r/GUI/GUI_Preview.cpp:245 msgid "Unretractions" @@ -7077,8 +7818,8 @@ msgid "Unsaved Presets" msgstr "Préréglages Non Sauvegardés" #: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Unselect gizmo / Clear selection" -msgstr "Désélectionner le gizmo / Effacer la sélection" +msgid "Unselect gizmo, keep object selection" +msgstr "Désélectionner le gizmo, conserver la sélection d'objet" #: src/libslic3r/Zipper.cpp:63 msgid "unsupported central directory size" @@ -7100,16 +7841,12 @@ msgstr "méthode non supportée" msgid "unsupported multidisk archive" msgstr "archive multidisque non supportée" -#: src/slic3r/GUI/GUI_App.cpp:305 -msgid "Unsupported OpenGL version" -msgstr "Version d'OpenGL non supportée" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2414 msgid "Unsupported selection" msgstr "Sélection non supportée" #: src/libslic3r/GCode/PreviewData.cpp:495 -#, possible-c-format +#, c-format msgid "up to %.2f mm" msgstr "jusqu'à %.2f mm" @@ -7137,6 +7874,10 @@ msgstr "Mise à jour" msgid "Upload a firmware image into an Arduino based printer" msgstr "Charger un firmware dans une imprimante basée sur un Arduino" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Upload to OctoPrint with the following filename:" +msgstr "Envoyer vers OctoPrint avec le nom de fichier suivant :" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Upload to Printer Host with the following filename:" msgstr "Envoyer vers l'Hôte d'Imprimante avec le nom de fichier suivant :" @@ -7158,10 +7899,6 @@ msgstr "Connexion USB/Série" msgid "USB/serial port for printer connection." msgstr "Port USB/Série pour la connexion de l'imprimante." -#: src/slic3r/GUI/Preferences.cpp:117 -msgid "Use custom size for toolbar icons" -msgstr "Utiliser une taille personnalisée pour les icônes de la barre d'outils" - #: src/libslic3r/PrintConfig.cpp:2060 msgid "Use firmware retraction" msgstr "Utiliser la rétraction du firmware" @@ -7170,14 +7907,14 @@ msgstr "Utiliser la rétraction du firmware" msgid "Use forward slashes ( / ) as a directory separator if needed." msgstr "Utilisez des barres obliques (/) comme séparateur de répertoire si nécessaire." +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "Use legacy OpenGL 1.1 rendering" +msgstr "Utiliser le rendu Legacy OpenGL 1.1" + #: src/libslic3r/PrintConfig.cpp:2515 msgid "Use pad" msgstr "Utiliser un socle" -#: src/slic3r/GUI/Preferences.cpp:110 -msgid "Use perspective camera" -msgstr "Utiliser l'appareil photo en perspective" - #: src/libslic3r/PrintConfig.cpp:2067 msgid "Use relative E distances" msgstr "Utiliser des valeurs E relatives" @@ -7239,10 +7976,18 @@ msgstr "La valeur est identique à la valeur du système" msgid "Value was changed and is not equal to the system value or the last saved preset" msgstr "La valeur a été changée et n'est pas égale à la valeur du système ou au dernier préréglage sauvegardé" +#: src/slic3r/GUI/Tab.cpp:2150 +msgid "Values in this column are for Full Power mode" +msgstr "Les valeurs de cette colonne sont pour le mode Pleine Puissance" + #: src/slic3r/GUI/Tab.cpp:2151 msgid "Values in this column are for Normal mode" msgstr "Les valeurs de cette colonne sont pour le mode Normal" +#: src/slic3r/GUI/Tab.cpp:2156 +msgid "Values in this column are for Silent mode" +msgstr "Les valeurs de cette colonne sont pour le mode Silencieux" + #: src/slic3r/GUI/Tab.cpp:2157 msgid "Values in this column are for Stealth mode" msgstr "Les valeurs de cette colonne sont pour le mode Silencieux" @@ -7259,6 +8004,10 @@ msgstr "fabriquant" msgid "Verbose G-code" msgstr "G-code commenté" +#: lib/Slic3r/GUI/MainFrame.pm:66 +msgid "Version " +msgstr "Version " + #: src/slic3r/GUI/AboutDialog.cpp:67 src/slic3r/GUI/MainFrame.cpp:53 msgid "Version" msgstr "Version" @@ -7288,18 +8037,10 @@ msgstr "Volume" msgid "Volume to purge (mm³) when the filament is being" msgstr "Volume à purger (mm³) lorsque le filament est" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Volumes in Object reordered" -msgstr "Volumes dans l'Objet réorganisés" - #: src/slic3r/GUI/PresetHints.cpp:216 msgid "Volumetric" msgstr "Volumétrique" -#: src/slic3r/GUI/Tab.cpp:1800 -msgid "Volumetric flow hints not available" -msgstr "Indications du débit volumétrique non disponible" - #: src/slic3r/GUI/GUI_Preview.cpp:216 msgid "Volumetric flow rate" msgstr "Débit volumétrique" @@ -7321,24 +8062,46 @@ msgstr "Alerte" msgid "Welcome" msgstr "Bienvenue" +#: src/slic3r/GUI/ConfigWizard.cpp:294 +#, c-format +msgid "Welcome to the %s %s" +msgstr "Bienvenue sur %s %s" + #: src/slic3r/GUI/ConfigWizard.cpp:296 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Assistant" msgstr "Bienvenue dans l'Assistant de Configuration de %s" #: src/slic3r/GUI/ConfigWizard.cpp:298 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Wizard" msgstr "Bienvenue dans l'Assistant de Configuration de %s" +#: src/slic3r/GUI/ConfigWizard.cpp:284 +#, c-format +msgid "Welcome to the Slic3r %s" +msgstr "Bienvenue sur Slic3r %s" + +#: lib/Slic3r/GUI/Plater/2D.pm:131 +msgid "What do you want to print today? ™" +msgstr "Que voulez-vous imprimer aujourd'hui? ™" + #: src/slic3r/GUI/Preferences.cpp:86 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 "Lorsqu'ils sont sélectionnés, les préréglages de l'imprimante et du filament sont visibles dans l'éditeur de préréglage même s'ils sont désignés comme incompatibles avec l'imprimante en cours d'utilisation" +#: src/slic3r/GUI/PresetHints.cpp:221 +msgid "when printing " +msgstr "pendant l'impression des " + #: src/slic3r/GUI/PresetHints.cpp:223 msgid "when printing" msgstr "pendant l'impression des" +#: src/libslic3r/PrintConfig.cpp:216 +msgid "When printing multi-material objects, this settings will make slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "Lorsque vous imprimez des objets multi-matériaux, ce réglage fera en sorte que Slic3r rattache ensemble les parties de l'objet qui se superposent (la 2e partie sera rattachée à la 1ere, la 3e partie sera rattachée à la 1ere et la 2e, etc...)." + #: src/libslic3r/PrintConfig.cpp:217 msgid "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." msgstr "Lorsque vous imprimez des objets multi-matériaux, ce réglage fera en sorte que Slic3r rattache ensemble les parties de l'objet qui se superposent (la 2e partie sera rattachée à la 1ere, la 3e partie sera rattachée à la 1ere et la 2e, etc...)." @@ -7359,6 +8122,10 @@ msgstr "Lorsque la rétractation est déclenchée avant un changement d'outil, l 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 "Lorsque la rétractation est déclenchée, le filament est tiré en arrière de la longueur indiquée (la longueur est mesurée sur le filament brut, avant qu'il entre dans l'extrudeur)." +#: src/libslic3r/PrintConfig.cpp:1322 +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 positive, it is loaded further, if negative, the loading move is shorter than unloading. " +msgstr "Lorsqu'elle est réglée sur zéro, la distance de laquelle le filament est déplacé depuis la position d'attente pendant le chargement est exactement la même que lors de son déchargement. Lorsqu'elle est positive, il est chargé davantage, si elle est négative, le déplacement de chargement est plus court que le déchargement. " + #: src/libslic3r/PrintConfig.cpp:1347 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 positive, it is loaded further, if negative, the loading move is shorter than unloading." msgstr "Lorsqu'elle est réglée sur zéro, la distance de laquelle le filament est déplacé depuis la position d'attente pendant le chargement est exactement la même que lors de son déchargement. Lorsqu'elle est positive, il est chargé davantage, si elle est négative, le déplacement de chargement est plus court que le déchargement." @@ -7379,9 +8146,9 @@ msgstr "Lorsque la rétractation est compensée après un déplacement, l'extrud msgid "WHITE BULLET" msgstr "PUCE BLANCHE" -#: src/slic3r/GUI/Tab.cpp:3365 -msgid "WHITE BULLET icon indicates a non system (or non default) preset." -msgstr "L'icône en forme de PUCE BLANCHE indique un préréglage non-système (ou non par défaut)." +#: src/slic3r/GUI/Tab.cpp:3108 +msgid "WHITE BULLET icon indicates a non system preset." +msgstr "L'icône en forme de PUCE BLANCHE indique un préréglage non-système." #: src/slic3r/GUI/Tab.cpp:3111 msgid "WHITE BULLET icon indicates that the settings are the same as in the last saved preset for the current option group." @@ -7391,6 +8158,12 @@ msgstr "L'icône en forme de PUCE BLANCHE indique que les réglages sont identiq msgid "WHITE BULLET icon indicates that the value is the same as in the last saved preset." msgstr "L'icône PUCE BLANCHE indique que la valeur est la même que pour le dernier préréglage sauvegardé." +#: src/slic3r/GUI/Tab.cpp:3073 +msgid "" +"WHITE BULLET;for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "PUCE BLANCHE;pour le bouton gauche : indique un préréglage non-système, pour le bouton droit : indique que le réglage n'a pas été modifié." + #: src/slic3r/GUI/GUI_Preview.cpp:214 src/libslic3r/PrintConfig.cpp:2137 msgid "Width" msgstr "Largeur" @@ -7407,10 +8180,6 @@ msgstr "Largeur depuis le centre arrière de la sphère jusqu'au centre avant de msgid "Width of a wipe tower" msgstr "Largeur d'une tour de nettoyage" -#: src/libslic3r/PrintConfig.cpp:2761 -msgid "Width of the connector sticks which connect the object and the generated pad." -msgstr "Largeur des bâtonnets de connexion qui connectent l'objet et le socle généré." - #: src/libslic3r/PrintConfig.cpp:2203 msgid "Width of the display" msgstr "Largeur de l'affichage" @@ -7419,6 +8188,11 @@ msgstr "Largeur de l'affichage" msgid "will always run at %1%%%" msgstr "fonctionnera toujours à %1%%%" +#: src/slic3r/GUI/PresetHints.cpp:43 +#, c-format +msgid "will always run at %d%% " +msgstr "fonctionnera toujours à %d%% " + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "will be turned off." msgstr "sera désactivé." @@ -7435,17 +8209,15 @@ msgstr "Nettoyer dans cet objet" msgid "Wipe into this object's infill" msgstr "Nettoyer dans le remplissage de cet objet" -#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:90 -#: src/slic3r/GUI/GUI_ObjectList.cpp:564 src/libslic3r/PrintConfig.cpp:2202 -#: src/libslic3r/PrintConfig.cpp:2210 -msgid "Wipe options" -msgstr "Options de nettoyage" - #: src/slic3r/GUI/GUI_Preview.cpp:238 src/slic3r/GUI/Tab.cpp:1130 #: src/libslic3r/GCode/PreviewData.cpp:174 msgid "Wipe tower" msgstr "Tour de nettoyage" +#: src/slic3r/GUI/Tab.cpp:1281 src/slic3r/GUI/Tab.cpp:1298 +msgid "Wipe Tower" +msgstr "Tour de Nettoyage" + #: src/slic3r/GUI/Plater.cpp:1043 src/slic3r/GUI/Plater.cpp:1058 msgid "wipe tower" msgstr "tour de nettoyage" @@ -7454,14 +8226,14 @@ msgstr "tour de nettoyage" msgid "Wipe tower - Purging volume adjustment" msgstr "Tour de nettoyage - Ajustement du volume de purge" -#: src/slic3r/GUI/Tab.cpp:1664 -msgid "Wipe tower parameters" -msgstr "Paramètres de la tour de nettoyage" - #: src/libslic3r/PrintConfig.cpp:2144 msgid "Wipe tower rotation angle" msgstr "Angle de rotation de la tour de nettoyage" +#: src/libslic3r/PrintConfig.cpp:2145 +msgid "Wipe tower rotation angle with respect to x-axis " +msgstr "Angle de rotation de la tour de nettoyage par rapport à l'axe X " + #: src/libslic3r/PrintConfig.cpp:2170 msgid "Wipe tower rotation angle with respect to x-axis." msgstr "Angle de rotation de la tour de nettoyage par rapport à l'axe X." @@ -7470,6 +8242,10 @@ msgstr "Angle de rotation de la tour de nettoyage par rapport à l'axe X." msgid "Wipe while retracting" msgstr "Nettoyer lors des rétractions" +#: xs/src/libslic3r/PrintConfig.cpp:1997 +msgid "Wiping after toolchange will be preferentially done inside infills. This lowers the amount of waste but may result in longer print time due to additional travel moves." +msgstr "Le nettoyage avec le changement d'outil sera fait de préférence à l'intérieur des remplissages. Cela réduit la quantité de déchets mais peut entraîner des temps d'impression plus longs à cause des mouvements de déplacement supplémentaires." + #: src/slic3r/GUI/PresetHints.cpp:224 msgid "with a volumetric rate" msgstr "avec un débit volumétrique" @@ -7488,8 +8264,18 @@ msgid "World coordinates" msgstr "Les coordonnées mondiales" #: src/slic3r/GUI/UpdateDialogs.cpp:76 -msgid "Would you like to install it?\n\nNote that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n\nUpdated configuration bundles:" -msgstr "Voulez-vous l'installer ?\n\nNotez qu'un instantané complet de la configuration sera sauvegardé d'abord. Elle peut être restaurée à tout moment si vous rencontrez un problème avec la nouvelle version.\n\nEnsembles de configuration mis à jour :" +msgid "" +"Would you like to install it?\n" +"\n" +"Note that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n" +"\n" +"Updated configuration bundles:" +msgstr "" +"Voulez-vous l'installer ?\n" +"\n" +"Notez qu'un instantané complet de la configuration sera sauvegardé d'abord. Elle peut être restaurée à tout moment si vous rencontrez un problème avec la nouvelle version.\n" +"\n" +"Ensembles de configuration mis à jour :" #: src/libslic3r/Zipper.cpp:95 msgid "write calledback failed" @@ -7555,30 +8341,34 @@ msgstr "Vous pouvez utiliser toutes les options de configuration comme variables msgid "You can't change a type of the last solid part of the object." msgstr "Vous ne pouvez pas changer un type de la dernière partie solide de l'objet." -#: src/slic3r/GUI/Plater.cpp:2243 -msgid "You can't load SLA project if there is at least one multi-part object on the bed" -msgstr "Vous le pouvez pas charger le projet SLA s'il y a au moins un objet multi-parties sur le lit" +#: src/slic3r/GUI/GUI_ObjectList.cpp:1711 +msgid "You can't delete the last intance from object." +msgstr "Vous ne pouvez pas supprimer la dernière instance depuis l'objet." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1694 +msgid "You can't delete the last solid part from object." +msgstr "Vous ne pouvez pas supprimer la dernière partie solide depuis l'objet." #: src/slic3r/GUI/Plater.cpp:1746 -#, possible-c-format +#, c-format msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part" msgstr "Vous ne pouvez pas ajouter l'objet (les objets) depuis %s car l'un d'entre eux est en plusieurs parties" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:565 -msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection" -msgstr "Vous ne pouvez pas utiliser un mode de redimensionnement non-uniforme pour une sélection d'objets/de parties multiples" - -#: src/slic3r/GUI/GUI_App.cpp:300 -msgid "You may need to update your graphics card driver." -msgstr "Vous avez peut-être besoin de mettre à jour le pilote de votre carte graphique." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid "You have unsaved changes " +msgstr "Les modifications n'ont pas été sauvegardées " #: src/slic3r/GUI/Preferences.cpp:130 -#, possible-c-format +#, c-format msgid "You need to restart %s to make the changes effective." msgstr "Vous devez redémarrer %s afin que les modifications soient appliquées." +#: src/slic3r/GUI/Preferences.cpp:126 +msgid "You need to restart Slic3r to make the changes effective." +msgstr "Vous devez redémarrer Slic3r afin que les modifications soient appliquées." + #: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -#, possible-c-format +#, c-format msgid "You started your selection with %s Item." msgstr "Vous avez commencé votre sélection avec l'item %s." diff --git a/resources/localization/it/PrusaSlicer.mo b/resources/localization/it/PrusaSlicer.mo index b8a205ca8cb..5af784401b1 100644 Binary files a/resources/localization/it/PrusaSlicer.mo and b/resources/localization/it/PrusaSlicer.mo differ diff --git a/resources/localization/it/PrusaSlicer_it.po b/resources/localization/it/PrusaSlicer_it.po index 3d0d1706dbf..dd512b165b2 100644 --- a/resources/localization/it/PrusaSlicer_it.po +++ b/resources/localization/it/PrusaSlicer_it.po @@ -5,24 +5,167 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: PhraseApp (phraseapp.com)\n" +"X-Generator: Poedit 2.0.8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Oleksandra Iushchenko \n" +"Language-Team: \n" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"and it has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"e sono presenti le seguenti modifiche non salvate:" + +#: xs/src/slic3r/GUI/Tab.cpp:2152 +msgid "" +"\n" +"\n" +"Discard changes and continue anyway?" +msgstr "" +"\n" +"\n" +"Eliminare le modifiche e continuare comunque?" + +#: xs/src/slic3r/GUI/Tab.cpp:2150 +msgid "" +"\n" +"\n" +"has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"ha le seguenti modifiche non salvate:" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"is not compatible with printer\n" +msgstr "" +"\n" +"\n" +"non è compatibile con la stampante\n" + +#: src/slic3r/GUI/PresetHints.cpp:36 +msgid "" +"\n" +"During the other layers, fan " +msgstr "" +"\n" +"Durante gli altri layer, la ventola " #: src/slic3r/GUI/PresetHints.cpp:39 -msgid "\nDuring the other layers, fan" -msgstr "\nDurante gli altri layer, la ventola" +msgid "" +"\n" +"During the other layers, fan" +msgstr "" +"\n" +"Durante gli altri layer, la ventola" #: src/slic3r/GUI/PresetHints.cpp:35 -msgid "\nIf estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." -msgstr "\nSe la durata di stampa prevista per il layer è più lunga, ma comunque inferiore a ~%1%s, la ventola girerà ad una velocità proporzionalmente decrescente compresa tra %2%%% e %3%%%." +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." +msgstr "" +"\n" +"Se la durata di stampa prevista per il layer è più lunga, ma comunque inferiore a ~%1%s, la ventola girerà ad una velocità proporzionalmente decrescente compresa tra %2%%% e %3%%%." + +#: src/slic3r/GUI/PresetHints.cpp:32 +#, c-format +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%ds, fan will run at a proportionally decreasing speed between %d%% and %d%%." +msgstr "" +"\n" +"Se la durata di stampa prevista per il layer è più lunga, ma comunque inferiore a ~%ds, la ventola girerà ad una velocità proporzionalmente decrescente compresa tra %d%% e %d%%." + +#: lib/Slic3r/GUI/Plater.pm:1019 +msgid "" +"\n" +"Non-positive value." +msgstr "" +"\n" +"Valore non positivo." + +#: lib/Slic3r/GUI/Plater.pm:1020 +msgid "" +"\n" +"Not a numeric value." +msgstr "" +"\n" +"Valore non numerico." + +#: src/slic3r/GUI/MainFrame.cpp:55 +msgid " - Remember to check for updates at http://github.com/prusa3d/slic3r/releases" +msgstr " - Ricorda di controllare gli aggiornamenti su http://github.com/prusa3d/slic3r/releases" + +#: src/slic3r/GUI/Tab.cpp:3239 +msgid " as:" +msgstr " come:" + +#: src/slic3r/GUI/PresetHints.cpp:228 +#, c-format +msgid " at filament speed %3.2f mm/s." +msgstr " alla velocità del filamento di %3.2f mm/s." + +#: src/slic3r/GUI/Tab.cpp:1737 +msgid " Browse " +msgstr "Sfoglia" + +#: src/slic3r/GUI/MainFrame.cpp:677 +msgid " file as:" +msgstr " file come:" + +#: src/slic3r/GUI/PresetHints.cpp:217 +msgid " flow rate is maximized " +msgstr " Il flusso viene massimizzato " + +#: src/slic3r/GUI/Tab.cpp:1358 +#, no-c-format +msgid "" +" infill pattern is not supposed to work at 100% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +"la trama di riempimento non dovrebbe essere usata con densità 100%.\n" +"\n" +"Posso passare alla trama di riempimento rettilineo?" -#: src/slic3r/GUI/MainFrame.cpp:61 -msgid " - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/releases" -msgstr " - Ricordati di controllare gli aggiornamenti su http://github.com/prusa3d/PrusaSlicer/releases" +#: xs/src/slic3r/GUI/Tab.cpp:2131 +msgid " preset\n" +msgstr " preset\n" + +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid " preset" +msgstr " preset" + +#: src/slic3r/GUI/Tab.cpp:2938 +msgid " Preset" +msgstr " Preset" + +#: src/slic3r/GUI/Tab.cpp:1818 src/slic3r/GUI/Tab.cpp:2019 +#: src/slic3r/GUI/Tab.cpp:2988 +msgid " Set " +msgstr "Imposta " + +#: src/slic3r/GUI/Tab.cpp:2936 +msgid " the selected preset?" +msgstr " il preset selezionato?" #: src/slic3r/GUI/MainFrame.cpp:727 msgid " was successfully sliced." msgstr " generato con successo." +#: src/slic3r/GUI/PresetHints.cpp:222 +msgid " with a volumetric rate " +msgstr "con una portata volumetrica " + #: src/libslic3r/PrintConfig.cpp:179 src/libslic3r/PrintConfig.cpp:745 #: src/libslic3r/PrintConfig.cpp:1154 src/libslic3r/PrintConfig.cpp:1217 #: src/libslic3r/PrintConfig.cpp:1462 src/libslic3r/PrintConfig.cpp:2260 @@ -31,7 +174,7 @@ msgid "%" msgstr "%" #: src/libslic3r/GCode/PreviewData.cpp:504 -#, possible-c-format +#, c-format msgid "%.2f - %.2f mm" msgstr "%.2f - %.2f mm" @@ -44,99 +187,112 @@ msgstr "%1% - Copia" msgid "%1% Preset" msgstr "%1% Preset" -#: src/slic3r/GUI/Plater.cpp:3831 -msgid "%1% printer was active at the time the target Undo / Redo snapshot was taken. Switching to %1% printer requires reloading of %1% presets." -msgstr "La stampante %1% era attiva nel momento in cui è stata creata l'istantanea di Annulla / Ripeti dell'oggetto. Passare alla stampante %1% richiede il ricaricamento dei preset %1%." - -#: src/libslic3r/Print.cpp:1282 -msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm" -msgstr "%1%=%2% mm è troppo basso per essere un altezza layer stampabile %3% mm" +#: src/slic3r/GUI/PresetHints.cpp:226 +#, c-format +msgid "%3.2f mm³/s" +msgstr "%3.2f mm³/s" #: src/slic3r/GUI/PresetHints.cpp:228 -#, possible-c-format +#, c-format msgid "%3.2f mm³/s at filament speed %3.2f mm/s." msgstr "%3.2f mm³/s alla velocità del filamento di %3.2f mm/s." #: src/slic3r/GUI/Plater.cpp:974 -#, possible-c-format +#, c-format msgid "%d (%d shells)" msgstr "%d (%d di perimetri)" #: src/slic3r/GUI/Plater.cpp:982 -#, possible-c-format +#, c-format msgid "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards edges" msgstr "%d facce degenerate, %d spigoli riparati, %d facce rimosse, %d faccee aggiunte, %d facce invertite, %d spigoli inversi" #: src/slic3r/GUI/PresetHints.cpp:268 -#, possible-c-format +#, c-format msgid "%d lines: %.2f mm" msgstr "%d linee: %.2f mm" +#: src/slic3r/GUI/PresetHints.cpp:271 +#, c-format +msgid "%d lines: %.2lf mm" +msgstr "%d linee: %.2lf mm" + #: src/slic3r/GUI/MainFrame.cpp:894 -#, possible-c-format +#, c-format msgid "%d presets successfully imported." msgstr "%d preset importati correttamente." +#: src/slic3r/GUI/MainFrame.cpp:553 +#, c-format +msgid "%s &Manual" +msgstr "%s &Manuale" + #: src/slic3r/GUI/MainFrame.cpp:550 -#, possible-c-format +#, c-format msgid "%s &Website" msgstr "%s Sito &Web" #: src/slic3r/GUI/UpdateDialogs.cpp:113 -#, possible-c-format +#, c-format msgid "%s configuration is incompatible" msgstr "configurazione %s non compatibile" #: src/slic3r/GUI/Field.cpp:136 -#, possible-c-format +#, c-format msgid "%s doesn't support percentage" msgstr "%s non supporta la percentuale" #: src/slic3r/GUI/MsgDialog.cpp:73 -#, possible-c-format +#, c-format msgid "%s error" msgstr "errore %s" #: src/slic3r/GUI/ConfigWizard.cpp:336 -#, possible-c-format +#, c-format msgid "%s Family" -msgstr "Famiglia %s" +msgstr "Famiglia %s " #: src/slic3r/GUI/MsgDialog.cpp:74 -#, possible-c-format +#, c-format msgid "%s has encountered an error" msgstr "%s ha riscontrato un errore" -#: src/slic3r/GUI/GUI_App.cpp:132 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n\nThe application will now terminate." -msgstr "%s ha riscontrato un errore. Probabilmente è stato causato dalla memoria piena. Se sei sicuro di avere abbastanza RAM nel sistema, questo potrebbe essere un bug e te ne saremmo grati se potessi informarci.\n\nL'applicazione verrà chiusa." - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:155 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it." -msgstr "%s ha riscontrato un errore. Probabilmente è stato causato dalla memoria piena. Se sei sicuro di avere abbastanza RAM nel sistema, questo potrebbe essere un bug e te ne saremmo grati se potessi informarci." - #: src/slic3r/GUI/UpdateDialogs.cpp:112 -#, possible-c-format +#, c-format msgid "%s incompatibility" msgstr "incompatibilità %s" #: src/slic3r/GUI/UpdateDialogs.cpp:172 -#, possible-c-format -msgid "%s now uses an updated configuration structure.\n\nSo called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\nAn inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n\nPlease proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." -msgstr "%s adesso utilizza uno schema aggiornato di configurazioni.\n\nSono stati introdotti i così detti 'Preset di sistema', che contengono i settaggi integrati predefiniti per varie stampanti. Questi preset di sistema non possono essere modificati, però l'utente può creare i propri preset ereditando le impostazioni da quelli di sistema.\nUn preset ereditato può sia ereditare un valore particolare dal genitore, o sovrascriverlo con un valore personalizzato.\n\nSi prega di procedere con il %s che segue per impostare i nuovi preset e scegliere se abilitare gli aggiornamenti automatici del preset." +#, c-format +msgid "" +"%s now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"%s adesso utilizza uno schema aggiornato di configurazioni.\n" +"\n" +"Sono stati introdotti i così detti 'Preset di sistema', che contengono i settaggi integrati predefiniti per varie stampanti. Questi preset di sistema non possono essere modificati, però l'utente può creare i propri preset ereditando le impostazioni da quelli di sistema.\n" +"Un preset ereditato può sia ereditare un valore particolare dal genitore, o sovrascriverlo con un valore personalizzato.\n" +"\n" +"Si prega di procedere con il %s che segue per impostare i nuovi preset e scegliere se abilitare gli aggiornamenti automatici del preset." #: src/slic3r/GUI/GUI_App.cpp:681 -#, possible-c-format +#, c-format msgid "%s View Mode" msgstr "%s Modalità Visualizzazione" #: src/slic3r/GUI/MainFrame.cpp:563 -#, possible-c-format +#, c-format msgid "&About %s" msgstr "Inform&azioni su %s" +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "&About Slic3r" +msgstr "Informazioni &su Slic3r" + #: src/slic3r/GUI/GUI_App.cpp:769 msgid "&Configuration" msgstr "&Configurazione" @@ -161,6 +317,14 @@ msgstr "Modifich&e" msgid "&Export" msgstr "&Esporta" +#: lib/Slic3r/GUI/MainFrame.pm:227 +msgid "&Export Config Bundle…" +msgstr "&Esporta Gruppo di Configurazioni…" + +#: lib/Slic3r/GUI/MainFrame.pm:221 +msgid "&Export Config…\tCtrl+E" +msgstr "&Esporta Configurazione… \tCtrl+E" + #: src/slic3r/GUI/MainFrame.cpp:480 src/slic3r/GUI/MainFrame.cpp:604 msgid "&Filament Settings Tab" msgstr "Impostazioni &Filamento" @@ -181,14 +345,22 @@ msgstr "&Aiuto" msgid "&Import" msgstr "&Importa" -#: src/slic3r/GUI/MainFrame.cpp:376 -msgid "&New Project" -msgstr "&Nuovo progetto" +#: lib/Slic3r/GUI/MainFrame.pm:224 +msgid "&Load Config Bundle…" +msgstr "&Carica Gruppo di Configurazioni…" + +#: lib/Slic3r/GUI/MainFrame.pm:218 +msgid "&Load Config…\tCtrl+L" +msgstr "&Carica Configurazione… \tCtrl+L" #: src/slic3r/GUI/ConfigWizard.cpp:1093 msgid "&Next >" msgstr "&Successivo>" +#: lib/Slic3r/GUI/MainFrame.pm:376 +msgid "&Object" +msgstr "&Oggetto" + #: src/slic3r/GUI/MainFrame.cpp:339 msgid "&Open Project" msgstr "Apri Pr&ogetto" @@ -197,6 +369,10 @@ msgstr "Apri Pr&ogetto" msgid "&Paste" msgstr "Incolla" +#: lib/Slic3r/GUI/MainFrame.pm:375 +msgid "&Plater" +msgstr "&Piano" + #: src/slic3r/GUI/MainFrame.cpp:471 msgid "&Plater Tab" msgstr "&Piano" @@ -209,14 +385,14 @@ msgstr "&Preferenze" msgid "&Quit" msgstr "&Esci" -#: src/slic3r/GUI/MainFrame.cpp:561 -msgid "&Redo" -msgstr "&Ripeti" - #: src/slic3r/GUI/MainFrame.cpp:406 msgid "&Repair STL file" msgstr "&Ripara file STL" +#: lib/Slic3r/GUI/MainFrame.pm:244 +msgid "&Repeat Last Quick Slice\tCtrl+Shift+U" +msgstr "&Ripeti l'ultimo Slice Rapido \tCtrl+Shift+U" + #: src/slic3r/GUI/MainFrame.cpp:341 msgid "&Save Project" msgstr "&Salva Progetto" @@ -225,10 +401,6 @@ msgstr "&Salva Progetto" msgid "&Select all" msgstr "&Seleziona tutto" -#: src/slic3r/GUI/MainFrame.cpp:558 -msgid "&Undo" -msgstr "Ann&ulla" - #: src/slic3r/GUI/MainFrame.cpp:577 msgid "&View" msgstr "&Vista" @@ -237,6 +409,14 @@ msgstr "&Vista" msgid "&Window" msgstr "&Finestra" +#: lib/Slic3r/GUI/MainFrame.pm:255 +msgid "(&Re)Slice Now\tCtrl+S" +msgstr "(&Re)Slice Ora \tCtrl+S" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:89 +msgid "(default)" +msgstr "(predefinito)" + #: src/libslic3r/PrintConfig.cpp:1376 msgid "(minimum)" msgstr "(minimo)" @@ -245,14 +425,18 @@ msgstr "(minimo)" msgid "(Re)slice" msgstr "(Ri)processa" -#: src/slic3r/GUI/MainFrame.cpp:455 -msgid "(Re)Slice No&w" -msgstr "(Re)Slice Ora" +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "(Re)Slice &Now" +msgstr "(Re)Slice &Ora" #: src/slic3r/GUI/MainFrame.cpp:641 msgid ") not found." msgstr ") non trovato." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid ". Discard changes and continue anyway?" +msgstr ". Scartare le modifiche e continuare comunque?" + #: src/libslic3r/PrintConfig.cpp:1857 msgid "0 (soluble)" msgstr "0 (solubile)" @@ -261,10 +445,22 @@ msgstr "0 (solubile)" msgid "0.2 (detachable)" msgstr "0.2 (rimovibile)" +#: lib/Slic3r/GUI/Plater/3DPreview.pm:69 +msgid "1 Layer" +msgstr "1 Layer" + +#: lib/Slic3r/GUI/Plater.pm:206 +msgid "2D" +msgstr "2D" + #: src/slic3r/GUI/MainFrame.cpp:487 msgid "3&D" msgstr "3&D" +#: lib/Slic3r/GUI/Plater.pm:164 lib/Slic3r/GUI/Plater.pm:2323 +msgid "3D" +msgstr "Vista 3D" + #: src/slic3r/GUI/Plater.cpp:3074 msgid "3D editor view" msgstr "Vista editing 3D" @@ -273,11 +469,27 @@ msgstr "Vista editing 3D" msgid "3D Honeycomb" msgstr "Nido d'ape 3D" +#: src/slic3r/GUI/GUI_App.cpp:741 +msgid "3D-Scene will be cleaned." +msgstr "La scena 3D verrà ripulita." + +#: lib/Slic3r/GUI/Plater.pm:1756 +msgid "3MF file exported to " +msgstr "File 3MF esportato in" + #: src/slic3r/GUI/Plater.cpp:3590 -#, possible-c-format +#, c-format msgid "3MF file exported to %s" msgstr "File 3MF esportato in %s" +#: lib/Slic3r/GUI/Plater.pm:258 +msgid "45° ccw" +msgstr "45° antiorario" + +#: lib/Slic3r/GUI/Plater.pm:259 +msgid "45° cw" +msgstr "45° senso orario" + #: src/slic3r/GUI/ConfigWizard.cpp:1092 msgid "< &Back" msgstr "< &Precedente" @@ -302,13 +514,21 @@ msgstr "Una regola generale è 60°C per il PLA e 110°C per l'ABS. Lascia a zer msgid "A toolpath outside the print area was detected" msgstr "È stato rilevato un percorso al di fuori dell'area di stampa" +#: src/libslic3r/SLA/SLASupportTree.cpp:2162 +msgid "Abort" +msgstr "Interrompi" + #: src/slic3r/GUI/AboutDialog.cpp:35 -#, possible-c-format +#, c-format msgid "About %s" msgstr "Informazioni su %s" +#: src/slic3r/GUI/AboutDialog.cpp:35 +msgid "About Slic3r" +msgstr "Informazioni su Slic3r" + #: src/libslic3r/GCode/PreviewData.cpp:499 -#, possible-c-format +#, c-format msgid "above %.2f mm" msgstr "sopra %.2f mm" @@ -328,6 +548,10 @@ msgstr "Attiva" msgid "Active" msgstr "Attivo" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:39 +msgid "Active: " +msgstr "Attivo:" + #: src/slic3r/GUI/Preset.cpp:1003 src/slic3r/GUI/Tab.cpp:237 msgid "Add a new printer" msgstr "Aggiungi una nuova stampante" @@ -344,16 +568,6 @@ msgstr "Aggiunge un contorno (una singola linea di perimetro) attorno alla base msgid "Add color change marker for current layer" msgstr "Aggiungi un segnale di cambio colore al layer corrente" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1662 -msgid "Add Generic Subobject" -msgstr "Aggiungi sotto-oggetto generico" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2584 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2613 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2631 -msgid "Add Height Range" -msgstr "Aggiungi Intervallo Altezza" - #: src/slic3r/GUI/GLCanvas3D.cpp:3463 msgid "Add instance" msgstr "Aggiungi istanza" @@ -362,13 +576,9 @@ msgstr "Aggiungi istanza" msgid "Add Instance of the selected object" msgstr "Aggiungi istanza all'oggetto selezionato" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:162 -msgid "Add layer range" -msgstr "Aggiungi intervallo layer" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1950 -msgid "Add Layers" -msgstr "Aggiungi layer" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Add Instance to selected object " +msgstr "Aggiungi Istanza all'oggetto selezionato" #: src/slic3r/GUI/GUI_ObjectList.cpp:1067 msgid "Add modifier" @@ -379,10 +589,6 @@ msgstr "Aggiungi modificatore" msgid "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps adding perimeters, until more than 70% of the loop immediately above is supported." msgstr "Aggiunge più perimetri quando necessario per evitare spazi tra i perimetri inclinati. Slic3r continua ad aggiungere perimetri fino a quando almeno il 70% del giro immediatamente sopra sarà supportato." -#: src/slic3r/GUI/Plater.cpp:3516 -msgid "Add one more instance of the selected object" -msgstr "Aggiungi un'altra istanza dell'oggetto selezionato" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1066 #: src/slic3r/GUI/GUI_ObjectList.cpp:1082 msgid "Add part" @@ -400,30 +606,6 @@ msgstr "Aggiungi punto alla selezione" msgid "Add settings" msgstr "Aggiungi impostazioni" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1252 -msgid "Add Settings Bundle for Height range" -msgstr "Aggiungi Gruppo impostazioni per intervallo Altezza" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1191 -msgid "Add Settings Bundle for Object" -msgstr "Aggiungi gruppo di impostazioni per l'oggetto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1190 -msgid "Add Settings Bundle for Sub-object" -msgstr "Aggiungi Gruppi di Impostazioni per il sotto-progetto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1126 -msgid "Add Settings for Layers" -msgstr "Aggiungi impostazioni per i layer" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1128 -msgid "Add Settings for Object" -msgstr "Aggiungi impostazioni per l'oggetto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1127 -msgid "Add Settings for Sub-object" -msgstr "Aggiungi impostazioni per il sotto-oggetto" - #: src/libslic3r/PrintConfig.cpp:382 msgid "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)." msgstr "Aggiunge un riempimento solido vicino le superfici inclinate per garantire lo spessore verticale (layer solidi superiore + inferiore)" @@ -438,18 +620,10 @@ msgstr "Aggiungi blocco supporto" msgid "Add support enforcer" msgstr "Aggiungi rinforzo supporto" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:531 -msgid "Add support point" -msgstr "Aggiungi punto di supporto" - #: src/slic3r/GUI/GLCanvas3D.cpp:3392 msgid "Add..." msgstr "Aggiungi..." -#: src/slic3r/GUI/wxExtensions.cpp:2571 -msgid "Add/Del color change" -msgstr "Aggiungi/Elimina cambio colore" - #: src/slic3r/GUI/Tab.cpp:920 msgid "Additional information:" msgstr "Informazioni aggiuntive:" @@ -466,6 +640,10 @@ msgstr "Inoltre viene creata una copia di backup dei preset prima di applicare u msgid "Address" msgstr "Indirizzo" +#: lib/Slic3r/GUI/Plater.pm:250 lib/Slic3r/GUI/Plater.pm:268 +msgid "Add…" +msgstr "Aggiungi…" + #: src/slic3r/GUI/GUI_App.cpp:675 src/slic3r/GUI/GUI_ObjectList.cpp:76 #: src/slic3r/GUI/GUI_ObjectList.cpp:517 src/slic3r/GUI/Tab.cpp:1026 #: src/slic3r/GUI/Tab.cpp:1041 src/slic3r/GUI/Tab.cpp:1139 @@ -481,6 +659,10 @@ msgstr "Avanzate" msgid "Advanced View Mode" msgstr "Modalità Visualizzazione Avanzata" +#: xs/src/slic3r/GUI/FirmwareDialog.cpp:400 +msgid "Advanced: avrdude output log" +msgstr "Avanzato: registro output avrdude" + #: src/slic3r/GUI/FirmwareDialog.cpp:803 msgid "Advanced: Output log" msgstr "Avanzato: Log di output" @@ -509,6 +691,10 @@ msgstr "Allineato" msgid "All" msgstr "Tutto" +#: src/libslic3r/Print.cpp:1195 +msgid "All extruders must have the same diameter for single extruder multimaterial printer." +msgstr "Nella stampante ad estrusore singolo materiale multiplo , tutti gli estrusori devono avere lo stesso diametro." + #: src/libslic3r/Print.cpp:1135 msgid "All objects are outside of the print volume." msgstr "Tutti gli oggetti sono fuori dal volume di stampa." @@ -529,26 +715,49 @@ msgstr "allocazione fallita" msgid "Along X axis" msgstr "Lungo asse X" +#: lib/Slic3r/GUI/Plater.pm:2251 lib/Slic3r/GUI/Plater.pm:2267 +#: lib/Slic3r/GUI/Plater.pm:2283 +msgid "Along X axis…" +msgstr "Lungo l'asse X…" + #: src/slic3r/GUI/Plater.cpp:2941 msgid "Along Y axis" msgstr "Lungo asse Y" +#: lib/Slic3r/GUI/Plater.pm:2254 lib/Slic3r/GUI/Plater.pm:2270 +#: lib/Slic3r/GUI/Plater.pm:2286 +msgid "Along Y axis…" +msgstr "Lungo l'asse Y…" + #: src/slic3r/GUI/Plater.cpp:2943 msgid "Along Z axis" msgstr "Lungo l'asse Z" +#: lib/Slic3r/GUI/Plater.pm:2257 lib/Slic3r/GUI/Plater.pm:2273 +#: lib/Slic3r/GUI/Plater.pm:2289 +msgid "Along Z axis…" +msgstr "Lungo l'asse Z…" + #: src/slic3r/GUI/ConfigWizard.cpp:122 msgid "Alternate nozzles:" msgstr "Ugelli alternativi:" +#: lib/Slic3r/GUI/Plater.pm:1740 +msgid "AMF file exported to " +msgstr "File AMF esportato in" + #: src/slic3r/GUI/Plater.cpp:3561 -#, possible-c-format +#, c-format msgid "AMF file exported to %s" msgstr "File AMF esportato in %s" #: src/slic3r/GUI/GLCanvas3D.cpp:725 -msgid "An object outside the print area was detected\nResolve the current problem to continue slicing" -msgstr "È stato rilevato un oggetto al di fuori dell'area di stampa\nRisolvere il problema per continuare lo slicing" +msgid "" +"An object outside the print area was detected\n" +"Resolve the current problem to continue slicing" +msgstr "" +"È stato rilevato un oggetto al di fuori dell'area di stampa\n" +"Risolvere il problema per continuare lo slicing" #: src/slic3r/GUI/GLCanvas3D.cpp:720 msgid "An object outside the print area was detected" @@ -562,10 +771,18 @@ msgstr "e ha i seguenti cambiamenti non salvati:" msgid "Another export job is currently running." msgstr "Un altro processo di esportazione è in corso." +#: src/slic3r/GUI/Tab.cpp:915 +msgid "Any modifications should be saved as a new preset inherited from this one. " +msgstr "Qualunque modifica deve essere salvata come un nuovo preset ereditato da questo." + #: src/slic3r/GUI/Tab.cpp:926 msgid "Any modifications should be saved as a new preset inherited from this one." msgstr "Qualunque modifica deve essere salvata come un nuovo preset ereditato da questo." +#: xs/src/libslic3r/PrintConfig.cpp:1109 +msgid "API Key" +msgstr "API Key" + #: src/libslic3r/PrintConfig.cpp:88 msgid "API Key / Password" msgstr "Chiave API / Password" @@ -574,6 +791,14 @@ msgstr "Chiave API / Password" msgid "Application preferences" msgstr "Preferenze applicazione" +#: xs/src/slic3r/GUI/GUI.cpp:406 +msgid "Application will be restarted" +msgstr "L'applicazione verrà riavviata" + +#: src/slic3r/GUI/GUI_App.cpp:740 +msgid "Application will be restarted after language change." +msgstr "L'applicazione verrà riavviata dopo il cambio lingua." + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:864 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Apply changes" @@ -591,31 +816,43 @@ msgstr "Corde di Archimede" msgid "archive is too large" msgstr "l'archivio è troppo grande" +#: src/slic3r/GUI/Tab.cpp:2936 +msgid "Are you sure you want to " +msgstr "Sei sicuro di voler " + #. TRN remove/delete #: src/slic3r/GUI/Tab.cpp:2955 msgid "Are you sure you want to %1% the selected preset?" msgstr "Sei sicuro di voler %1% il preset selezionato?" #: src/slic3r/GUI/FirmwareDialog.cpp:862 -msgid "Are you sure you want to cancel firmware flashing?\nThis could leave your printer in an unusable state!" -msgstr "Sei sicuro di voler annullare il flash del firmware?\nQuesto potrebbe lasciare la tua stampante in una condizione inutilizzabile!" +msgid "" +"Are you sure you want to cancel firmware flashing?\n" +"This could leave your printer in an unusable state!" +msgstr "" +"Sei sicuro di voler annullare il flash del firmware?\n" +"Questo potrebbe lasciare la tua stampante in una condizione inutilizzabile!" #: src/libslic3r/PrintConfig.cpp:2258 msgid "Area fill" msgstr "Riempimento area" -#: src/slic3r/GUI/Plater.cpp:609 -msgid "Around object" -msgstr "Intorno all'oggetto" +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Around X axis…" +msgstr "Attorno l'asse X…" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Around Y axis…" +msgstr "Attorno l'asse Y…" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Around Z axis…" +msgstr "Attorno l'asse Z…" #: src/slic3r/GUI/KBShortcutsDialog.cpp:135 msgid "Arrange" msgstr "Disponi" -#: src/slic3r/GUI/GLCanvas3D.cpp:3486 -msgid "Arrange selection" -msgstr "Disponi selezione" - #: src/libslic3r/PrintConfig.cpp:3054 msgid "Arrange the supplied models in a plate and merge them in a single model in order to perform actions once." msgstr "Disponi i modelli su un piano e uniscili in un singolo modello al fine di effettuare le operazioni una singola volta." @@ -624,14 +861,18 @@ msgstr "Disponi i modelli su un piano e uniscili in un singolo modello al fine d msgid "Arranging" msgstr "Disponendo" -#: src/slic3r/GUI/Plater.cpp:2718 -msgid "Arranging canceled." -msgstr "Disposizione annullata." +#: src/slic3r/GUI/Plater.cpp:2103 +msgid "Arranging canceled" +msgstr "Disposizione annullata" #: src/slic3r/GUI/Plater.cpp:2144 msgid "Arranging done." msgstr "Disposizione completata." +#: src/slic3r/GUI/GUI_App.cpp:514 +msgid "Array of language names and identifiers should have the same size." +msgstr "Gli array dei nomi di lingua e gli identificatori dovrebbero avere la stessa dimensione." + #: src/slic3r/GUI/KBShortcutsDialog.cpp:172 #: src/slic3r/GUI/KBShortcutsDialog.cpp:183 msgid "Arrow Down" @@ -650,9 +891,9 @@ msgstr "Freccia Destra" msgid "Arrow Up" msgstr "Freccia Su" -#: src/slic3r/GUI/GUI_App.cpp:303 -msgid "As a workaround, you may run PrusaSlicer with a software rendered 3D graphics by running prusa-slicer.exe with the --sw_renderer parameter." -msgstr "Come soluzione alternativa, è possibile eseguire PrusaSlicer con una grafica 3D di rendering software eseguendo prusa-slicer.exe con il parametro --sw_renderer." +#: xs/src/slic3r/GUI/GUI.cpp:660 +msgid "Attempt to free unreferenced scalar" +msgstr "Tentativo di liberare uno scalare senza riferimenti" #: src/slic3r/GUI/GUI.cpp:144 src/slic3r/GUI/GUI_App.cpp:743 #: src/slic3r/GUI/Tab.cpp:2798 @@ -672,13 +913,17 @@ msgstr "Centra automaticamente le parti" msgid "Auto-generate points" msgstr "Genera punti automaticamente" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:669 +msgid "Auto-generate points [A]" +msgstr "Genera punti automaticamente [A]" + #: src/slic3r/GUI/Plater.cpp:979 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors)" msgstr "Auto-riparati (%d errori)" #: src/slic3r/GUI/GUI_ObjectList.cpp:230 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors):\n" msgstr "Auto-riparati (%d errori):\n" @@ -686,13 +931,15 @@ msgstr "Auto-riparati (%d errori):\n" msgid "Autodetected" msgstr "Autorilevato" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1338 -msgid "Autogenerate support points" -msgstr "Genera automaticamente punti di supporto" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1166 -msgid "Autogeneration will erase all manually edited points.\n\nAre you sure you want to do it?\n" -msgstr "La generazione automatica cancellerà tutti i punti editati manualmente.\n\nSei sicuro di volere continuare?\n" +msgid "" +"Autogeneration will erase all manually edited points.\n" +"\n" +"Are you sure you want to do it?\n" +msgstr "" +"La generazione automatica cancellerà tutti i punti editati manualmente.\n" +"\n" +"Sei sicuro di volere continuare?\n" #: src/slic3r/GUI/Tab.cpp:3421 msgid "Automatic generation" @@ -719,12 +966,28 @@ msgid "BACK ARROW" msgstr "FRECCIA INDIETRO" #: src/slic3r/GUI/Tab.cpp:3113 -msgid "BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick to reset all settings for the current option group to the last saved preset." -msgstr "L'icona FRECCIA INDIETRO indica che le impostazioni sono state cambiate e non corrispondono all'ultimo preset salvato per il seguente gruppo di opzioni.\nClicca per reimpostare all'ultimo preset salvato tutte le impostazioni per il seguente gruppo di opzioni." +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" +"Click to reset all settings for the current option group to the last saved preset." +msgstr "" +"L'icona FRECCIA INDIETRO indica che le impostazioni sono state cambiate e non corrispondono all'ultimo preset salvato per il seguente gruppo di opzioni.\n" +"Clicca per reimpostare all'ultimo preset salvato tutte le impostazioni per il seguente gruppo di opzioni." #: src/slic3r/GUI/Tab.cpp:3127 -msgid "BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\nClick to reset current value to the last saved preset." -msgstr "L'icona FRECCIA ALL'INDIETRO indica che il valore è stato cambiato e non corrisponde all'ultimo preset salvato.\nCliccare per reimpostare il valore corrente all'ultimo preset salvato." +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 "" +"L'icona FRECCIA ALL'INDIETRO indica che il valore è stato cambiato e non corrisponde all'ultimo preset salvato.\n" +"Cliccare per reimpostare il valore corrente all'ultimo preset salvato." + +#: src/slic3r/GUI/Tab.cpp:3077 +msgid "" +"BACK ARROW;indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "" +"FRECCIA INDIETRO; indica che le impostazioni sono state modificate e non corrispondono all'ultimo preset salvato per l'attuale gruppo opzioni.\n" +"Clicca l'icona FRECCIA INDIETRO per reimpostare all'ultimo preset salvato tutte le impostazioni per il seguente gruppo di opzioni." #: src/slic3r/GUI/Preferences.cpp:52 msgid "Background processing" @@ -734,22 +997,10 @@ msgstr "Elaborazione in background" msgid "backwards edges" msgstr "spigoli invertiti" -#: src/slic3r/GUI/MainFrame.cpp:152 -msgid "based on Slic3r" -msgstr "basato su Slic3r" - #: src/slic3r/GUI/Tab.cpp:1484 msgid "Bed" msgstr "Piano" -#: src/libslic3r/PrintConfig.cpp:61 -msgid "Bed custom model" -msgstr "Modello piano personalizzato" - -#: src/libslic3r/PrintConfig.cpp:56 -msgid "Bed custom texture" -msgstr "Forma piano personalizzata" - #: src/slic3r/GUI/BedShapeDialog.hpp:45 src/slic3r/GUI/ConfigWizard.cpp:524 msgid "Bed Shape" msgstr "Forma Piano" @@ -782,10 +1033,6 @@ msgstr "G-code prima del cambio layer" msgid "Before roll back" msgstr "Prima di tornare indietro" -#: src/slic3r/GUI/Plater.cpp:608 -msgid "Below object" -msgstr "Sotto l'oggetto" - #: src/libslic3r/PrintConfig.cpp:1508 msgid "Below Z" msgstr "Sotto Z" @@ -877,6 +1124,10 @@ msgstr "Descrizione colori testo e pulsanti" msgid "by the print profile maximum" msgstr "secondo il massimo del profilo di stampa" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 +msgid "Camera view " +msgstr "Vista camera" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:123 msgid "Camera view" msgstr "Vista camera" @@ -923,6 +1174,10 @@ msgstr "Caratteristiche" msgid "Capture a configuration snapshot" msgstr "Cattura un'istantanea della configurazione" +#: src/libslic3r/SLA/SLASupportTree.cpp:2159 +msgid "Cascading pillars" +msgstr "Pilastri a cascata" + #: src/libslic3r/PrintConfig.cpp:3035 msgid "Center" msgstr "Centro" @@ -939,39 +1194,22 @@ msgstr "File di certificato (*.crt, *.pem)|*.crt;*.pem|All files|*.*" msgid "Change Application &Language" msgstr "Cambia &Lingua Applicazione" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Change camera type (perspective, orthographic)" -msgstr "Cambia tipo di camera (prospettiva, ortografica)" +#: xs/src/slic3r/GUI/GUI.cpp:354 +msgid "Change Application Language" +msgstr "Cambia Lingua Applicazione" #: src/slic3r/GUI/GUI_ObjectList.cpp:1226 msgid "Change extruder" msgstr "Cambia estrusore" -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:144 -#, possible-c-format -msgid "Change Option %s" -msgstr "Modifica Opzione %s" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3134 -msgid "Change Part Type" -msgstr "Modifica il tipo di Parte" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:925 -msgid "Change point head diameter" -msgstr "Modifica diametro punta della testa" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Change the number of instances of the selected object" -msgstr "Cambia il numero di istanze dell'oggetto selezionato" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Change the number of copies of the selected object" +msgstr "Cambia il numero di copie dell'oggetto selezionato" #: src/slic3r/GUI/GUI_ObjectList.cpp:1185 msgid "Change type" msgstr "Cambia tipo" -#: src/slic3r/GUI/UpdateDialogs.cpp:56 -msgid "Changelog && Download" -msgstr "Changelog && Download" - #: src/slic3r/GUI/GUI_App.cpp:378 msgid "Changing of an application language" msgstr "Cambio lingua applicazione" @@ -980,21 +1218,17 @@ msgstr "Cambio lingua applicazione" msgid "Check for application updates" msgstr "Verifica la presenza di aggiornamenti" -#: src/slic3r/GUI/BedShapeDialog.cpp:509 -msgid "Choose a file to import bed texture from (PNG/SVG):" -msgstr "Seleziona un file da cui importare la forma del piano di stampa (PNG/SVG):" +#: src/slic3r/GUI/BedShapeDialog.cpp:316 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Seleziona un file da cui importare la forma del piano di stampa (STL/OBJ/AMF/3MF/PRUSA):" #: src/slic3r/GUI/MainFrame.cpp:621 msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" msgstr "Scegli un file da processare (STL/OBJ/AMF/3MF/PRUSA):" -#: src/slic3r/GUI/BedShapeDialog.cpp:532 -msgid "Choose an STL file to import bed model from:" -msgstr "Scegli un file STL da cui importare il modello del piano:" - -#: src/slic3r/GUI/BedShapeDialog.cpp:464 -msgid "Choose an STL file to import bed shape from:" -msgstr "Scegli un file STL da cui importare la forma del piano:" +#: src/slic3r/GUI/GUI_App.cpp:489 +msgid "Choose one file (3MF):" +msgstr "Seleziona un file (3MF):" #: src/slic3r/GUI/GUI_App.cpp:510 msgid "Choose one file (3MF/AMF):" @@ -1012,17 +1246,9 @@ msgstr "Indica il firmware usato dalla tua stampante." msgid "Circular" msgstr "Circolare" -#: src/slic3r/GUI/GLCanvas3D.cpp:3701 src/slic3r/GUI/GLCanvas3D.cpp:3734 -msgid "Click right mouse button to open History" -msgstr "Fai click destro per aprire la Storia" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:383 -msgid "Click the icon to change the object printable property" -msgstr "Clicca l'icona per cambiare le proprietà di stampa dell'oggetto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:377 -msgid "Click the icon to change the object settings" -msgstr "Fare clic sull'icona per modificare le impostazioni dell'oggetto" +#: src/libslic3r/SLA/SLASupportTree.cpp:2156 +msgid "Classification" +msgstr "Classificazione" #: src/slic3r/GUI/Plater.cpp:292 msgid "Click to edit preset" @@ -1036,6 +1262,10 @@ msgstr "Collega oggetti multi-part" msgid "Clipping of view" msgstr "Ritaglio della vista" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:926 +msgid "Clipping of view:" +msgstr "Ritaglio della vista:" + #: src/slic3r/GUI/FirmwareDialog.cpp:814 #: src/slic3r/GUI/PrintHostDialogs.cpp:160 msgid "Close" @@ -1062,10 +1292,6 @@ msgstr "Combina riempimento ogni" msgid "Combine infill every n layers" msgstr "Combina riempimento ogni n layer" -#: src/slic3r/GUI/UpdateDialogs.cpp:116 -msgid "Comment:" -msgstr "Commento:" - #: src/slic3r/GUI/Tab.cpp:56 src/libslic3r/PrintConfig.cpp:244 msgid "Compatible print profiles" msgstr "Profili di stampa compatibili" @@ -1158,6 +1384,10 @@ msgstr "Connessione con la stampante funzionante." msgid "Connection to Prusa SL1 works correctly." msgstr "La connessione a Prusa SL1 funziona correttamente." +#: src/slic3r/Utils/OctoPrint.cpp:195 +msgid "Connection to Prusa SLA works correctly." +msgstr "La connessione a Prusa SLA funziona correttamente." + #: src/libslic3r/PrintConfig.cpp:1823 msgid "Contact Z distance" msgstr "Distanza di contatto Z" @@ -1166,6 +1396,14 @@ msgstr "Distanza di contatto Z" msgid "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and numerous others." msgstr "Con il contributo di Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik e molti altri." +#: lib/Slic3r/GUI/MainFrame.pm:137 +msgid "Controller" +msgstr "Controller" + +#: src/libslic3r/PrintConfig.cpp:2408 +msgid "Controls the bridge type between two neigboring 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 "Controlla il tipo di bridge tra due pilastri adiacenti. Può essere zig-zag, croce (doppio zig-zag) o dinamico, che passerà automaticamente tra i due a seconda della distanza tra i due pilastri." + #: src/libslic3r/PrintConfig.cpp:2433 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 "Controlla il tipo di bridge tra due pilastri adiacenti. Può essere zig-zag, croce (doppio zig-zag) o dinamico, che passerà automaticamente tra i due a seconda della distanza tra i due pilastri." @@ -1174,10 +1412,18 @@ msgstr "Controlla il tipo di bridge tra due pilastri adiacenti. Può essere zig- msgid "Cooling" msgstr "Raffreddamento" +#: src/libslic3r/PrintConfig.cpp:628 +msgid "Cooling moves are gradually accelerating beginning at this speed. " +msgstr "I movimenti di raffreddamento accelerano gradualmente partendo da questa velocità." + #: src/libslic3r/PrintConfig.cpp:629 msgid "Cooling moves are gradually accelerating beginning at this speed." msgstr "I movimenti di raffreddamento accelerano gradualmente partendo da questa velocità." +#: src/libslic3r/PrintConfig.cpp:647 +msgid "Cooling moves are gradually accelerating towards this speed. " +msgstr "I movimenti di raffreddamento accelerano gradualmente verso questa velocità." + #: src/libslic3r/PrintConfig.cpp:648 msgid "Cooling moves are gradually accelerating towards this speed." msgstr "I movimenti di raffreddamento accelerano gradualmente verso questa velocità." @@ -1194,6 +1440,10 @@ msgstr "Lunghezza del tubo di raffreddamento" msgid "Cooling tube position" msgstr "Posizione tubo di raffreddamento" +#: lib/Slic3r/GUI/Plater.pm:304 lib/Slic3r/GUI/Plater.pm:992 +msgid "Copies" +msgstr "Copie" + #: src/slic3r/GUI/Tab.cpp:2878 msgid "Copy" msgstr "Copia" @@ -1206,19 +1456,11 @@ msgstr "Copia selezione negli appunti" msgid "Copy to clipboard" msgstr "Copia negli appunti" -#: src/slic3r/GUI/SysInfoDialog.cpp:120 -msgid "Copy to Clipboard" -msgstr "Copia negli appunti" - #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:84 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:400 msgid "Copying of the temporary G-code to the output G-code failed" msgstr "Copia del G-code temporaneo nel G-code di output non riuscita" -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:92 -msgid "Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?" -msgstr "Copia del G-code temporaneo nel G-code di output non riuscita. Forse la scheda SD ha la sicura per la scrittura?" - #: src/slic3r/GUI/AboutDialog.cpp:92 msgid "Copyright" msgstr "Copyright" @@ -1272,10 +1514,6 @@ msgstr "Le fratture più piccole di 2 volte il gap closing radius vengono riempi msgid "CRC-32 check failed" msgstr "verifica CRC-32 fallita" -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "Create pad around object and ignore the support elevation" -msgstr "Crea Pad intorno all'oggetto ed ignora l'elevazione del supporto" - #: src/libslic3r/PrintConfig.cpp:2460 msgid "Critical angle" msgstr "Angolo critico" @@ -1289,18 +1527,18 @@ msgid "Cubic" msgstr "Cubico" #: src/slic3r/GUI/wxExtensions.cpp:2413 -#, possible-c-format +#, c-format msgid "Current mode is %s" msgstr "La modalità corrente è %s" -#: src/slic3r/GUI/Tab.cpp:925 -msgid "Current preset is inherited from the default preset." -msgstr "Il preset attuale è stato ereditato dal preset predefinito." +#: src/slic3r/GUI/Tab.cpp:909 +msgid "Current preset is inherited from " +msgstr "Il preset corrente è ereditato da " -#: src/slic3r/GUI/Tab.cpp:928 -#, possible-c-format -msgid "Current preset is inherited from:\n\t%s" -msgstr "Il preset corrente è ereditato da:\n%s" +#: src/slic3r/GUI/Tab.cpp:920 +#, c-format +msgid "Current preset is inherited from %s" +msgstr "Il preset corrente è ereditato da %s" #: src/slic3r/GUI/UpdateDialogs.cpp:45 msgid "Current version:" @@ -1331,26 +1569,35 @@ msgstr "Setup Stampante Personalizzata" msgid "Custom profile name:" msgstr "Nome profilo personalizzato:" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:254 +msgid "Custom setup" +msgstr "Setup personalizzato" + #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3013 msgid "Cut" msgstr "Taglia" -#: src/slic3r/GUI/Plater.cpp:4193 -msgid "Cut by Plane" -msgstr "Taglia sul Piano" - #: src/libslic3r/PrintConfig.cpp:3014 msgid "Cut model at the given Z." msgstr "Taglia il modello al dato Z." +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" +msgstr "Taglia oggetto:" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +msgid "Cut [C]" +msgstr "Taglia [C]" + +#: lib/Slic3r/GUI/Plater.pm:262 lib/Slic3r/GUI/Plater.pm:278 +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Cut…" +msgstr "Taglia…" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1055 msgid "Cylinder" msgstr "Cilindro" -#: src/slic3r/GUI/MainFrame.cpp:491 -msgid "D&eselect all" -msgstr "D&eseleziona tutto" - #: src/libslic3r/PrintConfig.cpp:3115 msgid "Data directory" msgstr "Directory dati" @@ -1359,15 +1606,19 @@ msgstr "Directory dati" msgid "decompression failed or archive is corrupted" msgstr "decompressione non riuscita o archivio corrotto" -#: src/slic3r/GUI/Plater.cpp:4127 -msgid "Decrease Instances" -msgstr "Diminuisci Istanze" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Decrease copies" +msgstr "Diminuisci le copie" #: src/slic3r/GUI/GUI_App.cpp:594 src/slic3r/GUI/GUI_ObjectList.cpp:1245 #: src/libslic3r/PrintConfig.cpp:299 msgid "Default" msgstr "Predefinito" +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid "Default " +msgstr "Predefinito " + #: xs/src/slic3r/GUI/Field.cpp:98 msgid "default" msgstr "predefinito" @@ -1392,11 +1643,19 @@ msgstr "Profilo filamento predefinito" msgid "Default filament profile associated with the current printer profile. On selection of the current printer profile, this filament profile will be activated." msgstr "Profilo filamento predefinito associato al profilo stampante corrente. Quando si seleziona il profilo stampante corrente, questo profilo filamento verrà attivato." +#: src/slic3r/GUI/Tab.cpp:921 +msgid "default preset" +msgstr "preset predefinito" + #: src/slic3r/GUI/Tab.cpp:2757 -#, possible-c-format +#, c-format msgid "Default preset (%s)" msgstr "Preset predefinito (%s)" +#: xs/src/slic3r/GUI/Tab.cpp:2410 xs/src/slic3r/GUI/Tab.cpp:2496 +msgid "Default presets" +msgstr "preset predefiniti" + #: src/libslic3r/GCode/PreviewData.cpp:491 msgid "Default print color" msgstr "Colore di stampa predefinito" @@ -1434,6 +1693,14 @@ msgstr "valore predefinito" msgid "Define a custom printer profile" msgstr "Inserisci un profilo stampante personalizzato" +#: src/libslic3r/PrintConfig.cpp:2529 +msgid "Defines the cavity depth. Set to zero to disable the cavity." +msgstr "Definisce la profondità della cavità. Imposta a zero per eliminare la cavità." + +#: src/libslic3r/PrintConfig.cpp:2533 +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 effect inside the cavity, which makes pealing the print off the vat foil difficult." +msgstr "Definisce la profondità della cavità nel pad. Imposta a zero per disattivare la cavità. Fai attenzione ad attivare questa funzione in quanto alcune resine possono causare un effetto ventosa dentro la cavità il che renderà difficile il distacco della stampa dal foglio del vat." + #: src/libslic3r/PrintConfig.cpp:2558 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 effect inside the cavity, which makes peeling the print off the vat foil difficult." msgstr "Definisce la profondità della cavità nel pad. Imposta a zero per disattivare la cavità. Fai attenzione ad attivare questa funzione in quanto alcune resine possono causare un effetto ventosa dentro la cavità il che renderà difficile il distacco della stampa dal foglio del vat." @@ -1442,6 +1709,10 @@ msgstr "Definisce la profondità della cavità nel pad. Imposta a zero per disat msgid "degenerate facets" msgstr "facce degenerate" +#: src/libslic3r/PrintConfig.cpp:2572 +msgid "degrees" +msgstr "gradi" + #: src/libslic3r/PrintConfig.cpp:608 msgid "Delay after unloading" msgstr "Ritardo dopo lo scarico" @@ -1467,59 +1738,14 @@ msgstr "Elimina tutto" msgid "Delete all" msgstr "Elimina tutto" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1806 -msgid "Delete All Instances from Object" -msgstr "Elimina Tutte le Istanze dall'Oggetto" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:187 msgid "Delete color change marker for current layer" msgstr "Elimina il segnale di cambio colore per il layer corrente" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1898 -msgid "Delete Height Range" -msgstr "Elimina Intervallo Altezza" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1876 -msgid "Delete Instance" -msgstr "Elimina Istanza" - -#: src/slic3r/GUI/Plater.cpp:2592 -msgid "Delete Object" -msgstr "Elimina Oggetto" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:100 -#, possible-c-format -msgid "Delete Option %s" -msgstr "Elimina Opzione %s" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:137 msgid "Delete selected" msgstr "Elimina selezionato" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -msgid "Delete Selected" -msgstr "Elimina Selezionati" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2303 -msgid "Delete Selected Item" -msgstr "Elimina l'elemento selezionato" - -#: src/slic3r/GUI/Plater.cpp:4083 -msgid "Delete Selected Objects" -msgstr "Elimina Oggetti Selezionati" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1782 -msgid "Delete Settings" -msgstr "Elimina Impostazioni" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1857 -msgid "Delete Subobject" -msgstr "Elimina Sotto-oggetto" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:720 -msgid "Delete support point" -msgstr "Elimina punto di supporto" - #: src/slic3r/GUI/Tab.cpp:131 msgid "Delete this preset" msgstr "Elimina questo preset" @@ -1554,9 +1780,9 @@ msgstr "Velocità di deretrazione" msgid "Deselect by rectangle" msgstr "Deseleziona con rettangolo" -#: src/slic3r/GUI/MainFrame.cpp:492 -msgid "Deselects all objects" -msgstr "Deseleziona tutti gli oggetti" +#: src/libslic3r/PrintConfig.cpp:1833 +msgid "detachable" +msgstr "rimovibile" #: src/libslic3r/PrintConfig.cpp:1304 msgid "Detect bridging perimeters" @@ -1578,6 +1804,22 @@ msgstr "Rileva parti non connesse nel modello(i) dato e le divide in oggetti sep msgid "Detected advanced data" msgstr "Rilevati dati avanzati" +#: src/slic3r/GUI/GLCanvas3D.cpp:723 +msgid "" +"Detected object outside print volume\n" +"Resolve a clash to continue slicing/export process correctly" +msgstr "" +"Rilevato oggetto al di fuori del volume di stampa\n" +"Risolvi il clash per continuare lo slicing/esportazione correttamente" + +#: src/slic3r/GUI/GLCanvas3D.cpp:719 +msgid "Detected object outside print volume" +msgstr "Rilevato oggetto al di fuori del volume di stampa" + +#: src/slic3r/GUI/GLCanvas3D.cpp:720 +msgid "Detected toolpath outside print volume" +msgstr "Trovato percorso attrezzo al di fuori del volume di stampa" + #: src/slic3r/GUI/BedShapeDialog.cpp:88 src/libslic3r/PrintConfig.cpp:677 msgid "Diameter" msgstr "Diametro" @@ -1602,18 +1844,22 @@ msgstr "Diametro del piano di stampa. Si presume che l'origine (0,0) si trovi al msgid "Direction" msgstr "Direzione" +#: xs/src/slic3r/GUI/Preferences.cpp:76 +msgid "Disable communication with the printer over a serial / USB cable. This simplifies the user interface in case the printer is never attached to the computer." +msgstr "Disabilita la comunicazione con la stampante tramite cavo seriale / USB. Questo semplifica l'interfaccia utente nel caso in cui la stampante non sia mai connessa al computer." + #: src/libslic3r/PrintConfig.cpp:323 msgid "Disable fan for the first" msgstr "Disattiva ventola per i primi" +#: xs/src/slic3r/GUI/Preferences.cpp:74 +msgid "Disable USB/serial connection" +msgstr "Disattiva connessione USB/seriale" + #: src/libslic3r/PrintConfig.cpp:1280 msgid "Disables retraction when the travel path does not exceed the upper layer's perimeters (and thus any ooze will be probably invisible)." msgstr "Disabilita la retrazione quando la traiettoria del movimento non oltrepassa i perimetri del layer superiore (pertanto qualunque scolatura sarà probabilmente invisibile)." -#: src/slic3r/GUI/wxExtensions.cpp:2572 -msgid "Discard all color changes" -msgstr "Elimina tutti i cambi colore" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:869 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1241 msgid "Discard changes" @@ -1635,10 +1881,6 @@ msgstr "Display" msgid "Display height" msgstr "Altezza display" -#: src/libslic3r/PrintConfig.cpp:2319 -msgid "Display horizontal mirroring" -msgstr "Mostra mirroring orizzontale" - #: src/libslic3r/PrintConfig.cpp:2227 msgid "Display orientation" msgstr "Orientamento display" @@ -1647,10 +1889,6 @@ msgstr "Orientamento display" msgid "Display the Print Host Upload Queue window" msgstr "Mostra la finestra della fila di caricamento all'host di stampa" -#: src/libslic3r/PrintConfig.cpp:2326 -msgid "Display vertical mirroring" -msgstr "Mostra mirroring verticale" - #: src/libslic3r/PrintConfig.cpp:2202 msgid "Display width" msgstr "Larghezza display" @@ -1663,10 +1901,6 @@ msgstr "Distanza tra le copie" msgid "Distance between skirt and object(s). Set this to zero to attach the skirt to the object(s) and get a brim for better adhesion." msgstr "La distanza tra skirt e oggetto(i). Imposta questo valore a zero per unire lo skirt all'oggetto(i) e ottenere un brim per una migliore adesione." -#: src/libslic3r/PrintConfig.cpp:2752 -msgid "Distance between two connector sticks which connect the object and the generated pad." -msgstr "Distanza tra due barre di connessione che collegano l'oggetto e il pad generato." - #: src/libslic3r/PrintConfig.cpp:1609 msgid "Distance from object" msgstr "Distanza dall'oggetto" @@ -1675,10 +1909,18 @@ msgstr "Distanza dall'oggetto" msgid "Distance of the 0,0 G-code coordinate from the front left corner of the rectangle." msgstr "Distanza della coordinata 0,0 del G-code dall'angolo frontale sinistro del rettangolo." +#: src/libslic3r/PrintConfig.cpp:284 +msgid "Distance of the center-point of the cooling tube from the extruder tip " +msgstr "Distanza del centro del tubo di raffreddamento dalla punta dell'estrusore " + #: src/libslic3r/PrintConfig.cpp:285 msgid "Distance of the center-point of the cooling tube from the extruder tip." msgstr "Distanza del centro del tubo di raffreddamento dalla punta dell'estrusore." +#: src/libslic3r/PrintConfig.cpp:1313 +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 "Distanza della punta dell'estrusore dalla posizione dove il filamento viene posto mentre viene scaricato. Dovrebbe essere uguale al valore nel firmware della stampante. " + #: src/libslic3r/PrintConfig.cpp:1338 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 "Distanza della punta dell'estrusore dalla posizione dove il filamento viene posto mentre viene scaricato. Dovrebbe essere uguale al valore nel firmware della stampante." @@ -1695,15 +1937,25 @@ msgstr "Non fallire se un file fornito a --load non esiste." msgid "Do not rearrange the given models before merging and keep their original XY coordinates." msgstr "Non disporre i modelli prima dell’unione e mantieni le coordinate XY originali." -#: src/slic3r/GUI/Field.cpp:206 -#, possible-c-format -msgid "Do you mean %s%% instead of %s %s?\nSelect YES if you want to change this value to %s%%, \nor NO if you are sure that %s %s is a correct value." -msgstr "Intendevi %s invece di %s %s?\nSeleziona SI se vuoi cambiare il valore a %s %%,\no NO se sei sicuro che %s %s è il valore corretto." +#: src/slic3r/GUI/Field.cpp:181 +#, c-format +msgid "" +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." +msgstr "" +"Intendevi %d%% invece di %d %s?\n" +"Seleziona SI se vuoi cambiare il valore a %d%%,\n" +"o NO se sei sicuro che %d %s è il valore corretto." #: src/slic3r/GUI/GUI_App.cpp:754 msgid "Do you want to proceed?" msgstr "Vuoi continuare?" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1022 +msgid "Do you want to save your manually edited support points ?\n" +msgstr "Vuoi salvare i punti di supporto modificati manualmente?\n" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1024 msgid "Do you want to save your manually edited support points?" msgstr "Vuoi salvare i punti di supporto modificati manualmente?" @@ -1720,6 +1972,10 @@ msgstr "Non notificare più i nuovi rilasci" msgid "Don't support bridges" msgstr "Non supportare i bridge" +#: src/libslic3r/SLA/SLASupportTree.cpp:2161 +msgid "Done" +msgstr "Completato" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:20 msgid "Downgrade" msgstr "Downgrade" @@ -1730,10 +1986,9 @@ msgstr "Downgrade" msgid "Drag" msgstr "Trascina" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:340 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:355 -msgid "Drop to bed" -msgstr "Poggia sul piano" +#: lib/Slic3r/GUI/Plater/2D.pm:132 +msgid "Drag your objects here" +msgstr "Trascina qui i tuoi oggetti" #: src/libslic3r/PrintConfig.cpp:3044 msgid "Duplicate" @@ -1747,37 +2002,21 @@ msgstr "Duplica per griglia" msgid "Dynamic" msgstr "Dinamico" -#: src/slic3r/GUI/MainFrame.cpp:708 -msgid "E&xport" -msgstr "Esporta" - #: src/slic3r/GUI/GUI_ObjectList.cpp:238 msgid "edges fixed" msgstr "spigoli riparati" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2690 -msgid "Edit Height Range" -msgstr "Modifica Intervallo Altezza" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:373 -msgid "Editing" -msgstr "Editing" - #: src/libslic3r/PrintConfig.cpp:349 msgid "Elephant foot compensation" msgstr "Compensazione zampa d'elefante" -#: src/libslic3r/SLAPrint.cpp:681 -msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation." -msgstr "L'elevazione è troppo bassa per l'oggetto. Utilizza la funzione \"Pad intorno all'oggetto\" per stampare l'oggetto senza elevazione." - -#: src/libslic3r/SLAPrint.cpp:678 -msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation." -msgstr "L'elevazione è troppo bassa per l'oggetto. Utilizza la funzione \"Pad intorno all'oggetto\" per stampare l'oggetto senza elevazione." +#: src/libslic3r/SLAPrint.cpp:624 +msgid "Elevation is too low for object." +msgstr "Altezza troppo bassa per l'oggetto." #: src/libslic3r/PrintConfig.cpp:1044 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. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode." -msgstr "Inserisce M73 P[percent printed] R[remaining time in minutes] ad intervalli di un minuto nel G-code per permettere al firmware di mostrare un tempo residuo accurato. Al momento solo il firmware della Prusa i3 MK3 riconosce M73. Il firmware della i3 MK3 supporta il codice M73 Qxx Sxx anche per la modalità silenziosa." +msgstr "Inserisci M73 P[percent printed] R[remaining time in minutes] ad intervalli di un minuto nel G-code per permettere al firmware di mostrare un tempo rimanente accurato. Al momento solo il firmware della Prusa i3 MK3 riconosce M73. Il firmware della i3 MK3 supporta il M73 Qxx Sxx anche per la modalità silenziosa." #: src/slic3r/GUI/Tab.cpp:1490 src/libslic3r/PrintConfig.cpp:1286 #: src/libslic3r/PrintConfig.cpp:2099 @@ -1792,10 +2031,6 @@ msgstr "Abilita raffreddamento automatico" msgid "Enable fan if layer print time is below" msgstr "Attiva ventola se la stampa del layer impiega meno di" -#: src/libslic3r/PrintConfig.cpp:2321 -msgid "Enable horizontal mirroring of output images" -msgstr "Attiva il mirroring orizzontale per le immagini di output" - #: src/libslic3r/PrintConfig.cpp:1781 msgid "Enable support material generation." msgstr "Abilita la generazione di materiale di supporto." @@ -1812,10 +2047,6 @@ msgstr "Abilita per ottenere un file G-code commentato, con un testo descrittivo msgid "Enable variable layer height feature" msgstr "Abilita layer ad altezza variabile" -#: src/libslic3r/PrintConfig.cpp:2328 -msgid "Enable vertical mirroring of output images" -msgstr "Attiva mirroring verticale per le immagini di output" - #: src/slic3r/GUI/Tab.cpp:1570 src/slic3r/GUI/Tab.cpp:1955 #: src/libslic3r/PrintConfig.cpp:359 src/libslic3r/PrintConfig.cpp:369 msgid "End G-code" @@ -1854,6 +2085,28 @@ msgstr "Inserisci il diametro del filamento." msgid "Enter the diameter of your printer's hot end nozzle." msgstr "Inserisci il diametro dell'ugello dell'estrusore della stampante." +#: lib/Slic3r/GUI/Plater.pm:1158 +msgid "Enter the new max size for the selected object:" +msgstr "Inserisci la nuova dimensione massima per l'oggetto selezionato:" + +#: lib/Slic3r/GUI/Plater.pm:1132 +#, perl-format +msgid "Enter the new size for the selected object (print bed: %smm):" +msgstr "Inserisci la nuova dimensione massima per l'oggetto selezionato (piano di stampa: %smm):" + +#: lib/Slic3r/GUI/Plater.pm:992 +msgid "Enter the number of copies of the selected object:" +msgstr "Inserisci il numero di copie dell'oggetto selezionato:" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Enter the rotation angle:" +msgstr "Inserisci l'angolo di rotazione:" + +#: lib/Slic3r/GUI/Plater.pm:1137 lib/Slic3r/GUI/Plater.pm:1163 +#, no-perl-format +msgid "Enter the scale % for the selected object:" +msgstr "Inserisci il fattore di scala % per l'oggetto selezionato:" + #: src/slic3r/GUI/ConfigWizard.cpp:608 msgid "Enter the temperature needed for extruding your filament." msgstr "Inserisci la temperatura necessaria per estrudere il filamento." @@ -1875,17 +2128,25 @@ msgid "Error" msgstr "Errore" #: src/slic3r/GUI/FirmwareDialog.cpp:608 -#, possible-c-format +#, c-format msgid "Error accessing port at %s: %s" msgstr "Errore nell'accedere alla porta a%s: %s" +#: lib/Slic3r/GUI/Plater.pm:1760 +msgid "Error exporting 3MF file " +msgstr "Errore nell'esportazione del file 3MF " + #: src/slic3r/GUI/Plater.cpp:3593 -#, possible-c-format +#, c-format msgid "Error exporting 3MF file %s" msgstr "Errore nell'esportazione del file 3MF %s" +#: lib/Slic3r/GUI/Plater.pm:1744 +msgid "Error exporting AMF file " +msgstr "Errore nell'esportazione del file AMF " + #: src/slic3r/GUI/Plater.cpp:3564 -#, possible-c-format +#, c-format msgid "Error exporting AMF file %s" msgstr "Errore nell'esportazione del file AMF %s" @@ -1897,32 +2158,40 @@ msgstr "Messaggio d'errore" msgid "Error uploading to print host:" msgstr "Errore durante il caricamento dell'host di stampa:" +#: xs/src/slic3r/Utils/OctoPrint.cpp:98 +msgid "Error while uploading to the OctoPrint server" +msgstr "Errore durante il caricamento sul server OctoPrint" + #: src/libslic3r/Zipper.cpp:105 msgid "Error with zip archive" msgstr "Errore con archivio zip" +#: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1431 +msgid "Error! " +msgstr "Errore! " + #: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1443 msgid "Error!" msgstr "Errore!" -#: src/slic3r/GUI/BedShapeDialog.cpp:482 -msgid "Error! Invalid model" -msgstr "Errore! Modello non valido" - #: src/slic3r/GUI/FirmwareDialog.cpp:610 -#, possible-c-format +#, c-format msgid "Error: %s" msgstr "Errore: %s" -#: src/slic3r/GUI/Plater.cpp:1503 -msgid "ERROR: not enough resources to execute a new job." -msgstr "ERRORE: risorse non sufficienti per eseguire un nuovo lavoro." - #: src/slic3r/GUI/Plater.cpp:217 src/slic3r/GUI/Plater.cpp:1028 #: src/slic3r/GUI/Plater.cpp:1070 msgid "Estimated printing time" msgstr "Tempo di stampa stimato" +#: lib/Slic3r/GUI/Plater.pm:1618 +msgid "Estimated printing time (normal mode)" +msgstr "Tempo di stampa stimato (modalità normale)" + +#: lib/Slic3r/GUI/Plater.pm:1620 +msgid "Estimated printing time (silent mode)" +msgstr "Tempo di stampa stimato (modalità silenziosa)" + #: src/slic3r/GUI/Plater.cpp:424 msgid "Everywhere" msgstr "Ovunque" @@ -1931,19 +2200,28 @@ msgstr "Ovunque" msgid "except for the first %1% layers." msgstr "ad eccezione dei primi %1% layer." +#: src/slic3r/GUI/PresetHints.cpp:46 +#, c-format +msgid "except for the first %d layers" +msgstr "ad eccezione dei primi %d layers" + +#: src/slic3r/GUI/PresetHints.cpp:50 +msgid "except for the first layer" +msgstr "ad eccezione del primo layer" + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "except for the first layer." msgstr "ad eccezione del primo layer." -#: src/libslic3r/Print.cpp:1285 -msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm" -msgstr "%1% %2% mm eccessivi per essere stampabili con un diametro ugello di %3% mm" - #: src/slic3r/GUI/UpdateDialogs.cpp:148 -#, possible-c-format +#, c-format msgid "Exit %s" msgstr "Chiudi %s" +#: src/slic3r/GUI/UpdateDialogs.cpp:144 +msgid "Exit Slic3r" +msgstr "Esci da Slic3r" + #: src/libslic3r/PrintConfig.cpp:335 msgid "Experimental option for preventing support material from being generated under bridged areas." msgstr "Opzione sperimentale per prevenire la formazione di supporti sotto i bridge." @@ -1972,10 +2250,6 @@ msgstr "Esporta &Configurazione" msgid "Export &G-code" msgstr "Esporta &G-code" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export &toolpaths as OBJ" -msgstr "Esporta percorso a&ttrezzo come OBJ" - #: src/libslic3r/PrintConfig.cpp:2949 msgid "Export 3MF" msgstr "Esporta 3MF" @@ -1996,6 +2270,10 @@ msgstr "Esporta file AMF:" msgid "Export as STL" msgstr "Esporta come STL" +#: lib/Slic3r/GUI/Plater.pm:1416 +msgid "Export cancelled" +msgstr "Esportazione annullata" + #: src/slic3r/GUI/MainFrame.cpp:375 msgid "Export Config &Bundle" msgstr "Esporta Configurazione da &Bundle" @@ -2004,6 +2282,10 @@ msgstr "Esporta Configurazione da &Bundle" msgid "Export current configuration to file" msgstr "Esporta la configurazione corrente su file" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export current plate as 3MF" +msgstr "Esporta il piano corrente come 3MF" + #: src/slic3r/GUI/MainFrame.cpp:370 msgid "Export current plate as AMF" msgstr "Esporta il piano corrente come AMF" @@ -2029,17 +2311,25 @@ msgstr "Esportazione fallita" msgid "Export G-code" msgstr "Esporta G-code" +#: lib/Slic3r/GUI/MainFrame.pm:272 +msgid "Export G-code..." +msgstr "Esporta G-code..." + +#: lib/Slic3r/GUI/Plater.pm:322 +msgid "Export G-code…" +msgstr "Esporta G-code…" + #: src/libslic3r/PrintConfig.cpp:2931 msgid "Export OBJ" msgstr "Esporta OBJ" -#: src/slic3r/GUI/Plater.cpp:2531 -msgid "Export OBJ file:" -msgstr "Esporta file OBJ:" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export object as STL…" +msgstr "Esporta oggetto come STL…" #: src/slic3r/Utils/FixModelByWin10.cpp:368 msgid "Export of a temporary 3mf file failed" -msgstr "L'esportazione di un file 3mf non è riuscita" +msgstr "L'esportazione di un file 3mf non è riuscita." #: src/slic3r/GUI/MainFrame.cpp:370 msgid "Export plate as &AMF" @@ -2049,9 +2339,25 @@ msgstr "Esporta piano come &AMF" msgid "Export plate as &STL" msgstr "Esporta piano come &STL" -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export plate as STL &including supports" -msgstr "Esporta piano come STL &includendo i supporti" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export plate as 3MF..." +msgstr "Esporta piano come 3MF..." + +#: lib/Slic3r/GUI/MainFrame.pm:278 +msgid "Export plate as AMF..." +msgstr "Esporta piano come AMF..." + +#: src/slic3r/GUI/MainFrame.cpp:368 +msgid "Export plate as STL including supports" +msgstr "Esporta piano come STL includendo i supporti" + +#: lib/Slic3r/GUI/MainFrame.pm:275 +msgid "Export plate as STL..." +msgstr "Esporta piano come STL..." + +#: xs/src/slic3r/GUI/GUI.cpp:930 +msgid "Export print config" +msgstr "Esporta configurazione di stampa" #: src/libslic3r/PrintConfig.cpp:2943 msgid "Export SLA" @@ -2065,6 +2371,14 @@ msgstr "Esporta STL" msgid "Export STL file:" msgstr "Esporta file STL:" +#: lib/Slic3r/GUI/Plater.pm:326 +msgid "Export STL…" +msgstr "Esporta STL…" + +#: src/libslic3r/PrintConfig.cpp:2924 +msgid "Export SVG" +msgstr "Esporta SVG" + #: src/libslic3r/PrintConfig.cpp:2950 msgid "Export the model(s) as 3MF." msgstr "Esporta modello/i come 3MF." @@ -2085,9 +2399,9 @@ msgstr "Esporta il modello(i) come STL." msgid "Export the selected object as STL file" msgstr "Esporta l'oggetto selezionato come file STL" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export toolpaths as OBJ" -msgstr "Esporta percorso attrezzo come OBJ" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export this single object as STL file" +msgstr "Esporta questo singolo oggetto come file STL" #: src/libslic3r/Print.cpp:1517 msgid "Exporting G-code" @@ -2102,10 +2416,6 @@ msgstr "Esportazione modello..." msgid "Exporting source model" msgstr "Esportazione modello sorgente" -#: src/libslic3r/SLAPrint.cpp:700 -msgid "Exposition time is out of printer profile bounds." -msgstr "Il tempo di esposizione è fuori dai limiti del profilo stampante." - #: src/slic3r/GUI/Tab.cpp:3306 msgid "Exposure" msgstr "Esposizione" @@ -2148,7 +2458,7 @@ msgid "Extruder" msgstr "Estrusore" #: src/slic3r/GUI/Tab.cpp:2253 src/libslic3r/GCode/PreviewData.cpp:475 -#, possible-c-format +#, c-format msgid "Extruder %d" msgstr "Estrusore %d" @@ -2224,11 +2534,11 @@ msgstr "aggiunte facce" #: src/slic3r/GUI/GUI_ObjectList.cpp:239 msgid "facets removed" -msgstr "rimosse facce" +msgstr "rimosse facce " #: src/slic3r/GUI/GUI_ObjectList.cpp:241 msgid "facets reversed" -msgstr "facce invertite" +msgstr "facce invertite " #: src/libslic3r/PrintConfig.cpp:2302 msgid "Faded layers" @@ -2246,6 +2556,10 @@ msgstr "Caricamento modello input fallito." msgid "Failed processing of the output_filename_format template." msgstr "Elaborazione fallita del modello output_filename_format." +#: src/slic3r/GUI/PresetHints.cpp:38 +msgid "Fan " +msgstr "Ventola " + #: src/slic3r/GUI/PresetHints.cpp:41 msgid "Fan" msgstr "Ventola" @@ -2266,10 +2580,6 @@ msgstr "Veloce" msgid "Fast tilt" msgstr "Tilt veloce" -#: src/slic3r/GUI/GUI_App.cpp:135 -msgid "Fatal error" -msgstr "Errore irreversibile" - #: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:537 #: src/libslic3r/GCode/PreviewData.cpp:394 msgid "Feature type" @@ -2279,6 +2589,10 @@ msgstr "Tipo di caratteristica" msgid "Feature types" msgstr "Tipi di caratteristica" +#: lib/Slic3r/GUI/Plater.pm:256 +msgid "Fewer" +msgstr "Meno" + #: src/slic3r/GUI/Plater.cpp:682 src/slic3r/GUI/Tab.cpp:1470 #: src/slic3r/GUI/Tab.cpp:1471 msgid "Filament" @@ -2296,6 +2610,10 @@ msgstr "Diametro filamento e ugello" msgid "Filament Diameter:" msgstr "Diametro del filamento:" +#: src/libslic3r/PrintConfig.cpp:619 +msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves " +msgstr "Il filamento è raffreddato venendo spostato avanti e indietro nei tubi di raffreddamento. Specificare il numero desiderato di questi movimenti" + #: src/libslic3r/PrintConfig.cpp:620 msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves." msgstr "Il filamento è raffreddato venendo spostato avanti e indietro nei tubi di raffreddamento. Specificare il numero desiderato di questi movimenti." @@ -2308,10 +2626,6 @@ msgstr "Durata caricamento filamento" msgid "Filament notes" msgstr "Note filamento" -#: src/slic3r/GUI/Tab.cpp:1502 src/slic3r/GUI/Tab.cpp:1557 -msgid "Filament Overrides" -msgstr "Sovrascrittura filamento" - #: src/libslic3r/PrintConfig.cpp:1312 msgid "Filament parking position" msgstr "Posizione di parcheggio del filamento" @@ -2336,6 +2650,10 @@ msgstr "Durata scaricamento filamento" msgid "filaments" msgstr "filamenti" +#: lib/Slic3r/GUI/Plater.pm:1555 +msgid "File added to print queue" +msgstr "File aggiunto alla coda di stampa" + #: src/libslic3r/Zipper.cpp:75 msgid "file close failed" msgstr "chiusura del file fallita" @@ -2404,6 +2722,14 @@ msgstr "Trama riempimento generale a bassa densità." msgid "Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells." msgstr "Trama per riempimento superiore. Questo influenza solamente il layer superiore esterno visibile, e non i gusci solidi adiacenti." +#: xs/src/libslic3r/PrintConfig.cpp:285 +msgid "Fill pattern for top/bottom infill. This only affects the external visible layer, and not its adjacent solid shells." +msgstr "Trama di riempimento per il fondo o la cima. Questo influenza solo il layer visibile esterno e non i perimetri adiacenti." + +#: src/libslic3r/SLA/SLASupportTree.cpp:2154 +msgid "Filtering" +msgstr "Filtraggio" + #: src/slic3r/GUI/BonjourDialog.cpp:225 msgid "Finished" msgstr "Finito" @@ -2449,18 +2775,30 @@ msgstr "Velocità del primo layer" msgid "First layer volumetric" msgstr "Volumetrica primo layer" +#: src/libslic3r/Print.cpp:1313 +msgid "first_layer_height" +msgstr "first_layer_height" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix STL through Netfabb" +msgstr "Ripara STL tramite Netfabb" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix the model by sending it to a Netfabb cloud service through Windows 10 API" +msgstr "Ripara il modello inviandolo al servizio cloud di Netfabb attraverso Windows 10 API" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1210 msgid "Fix through the Netfabb" msgstr "Ripara tramite Netfabb" -#: src/slic3r/GUI/Plater.cpp:3072 -msgid "Fix Throught NetFabb" -msgstr "Ripara tramite NetFabb" - #: src/slic3r/GUI/GUI_App.cpp:685 msgid "Flash printer &firmware" msgstr "Installa &firmware stampante" +#: xs/src/slic3r/GUI/GUI.cpp:356 +msgid "Flash printer firmware" +msgstr "Installa firmware stampante" + #: src/slic3r/GUI/FirmwareDialog.cpp:146 msgid "Flash!" msgstr "Flash!" @@ -2477,6 +2815,10 @@ msgstr "Flash non riuscito" msgid "Flashing failed. Please see the avrdude log below." msgstr "Flash fallito. Ti preghiamo di consultare il registro avrdude qui sotto." +#: src/slic3r/GUI/FirmwareDialog.cpp:192 +msgid "Flashing failed: " +msgstr "Flash fallito:" + #: src/slic3r/GUI/FirmwareDialog.cpp:148 msgid "Flashing in progress. Please do not disconnect the printer!" msgstr "Flash in corso. Non disconnettere la stampante!" @@ -2502,9 +2844,24 @@ msgid "For support enforcers only" msgstr "Solo per rinforzi supporto" #. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3345 -msgid "for the left button: \tindicates a non-system (or non-default) preset,\nfor the right button: \tindicates that the settings hasn't been modified." -msgstr "per il tasto sinistro: indica un preset non di sistema (o non-predefinito),\nper il tasto destro: indica che le impostazioni non sono state modificate." +#: src/slic3r/GUI/Tab.cpp:3078 +msgid "" +"for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"per il bottone sinistro: indica un preset non di sistema,\n" +"per il bottone destro: indica che le impostazioni non sono state modificate." + +#: src/slic3r/GUI/Tab.cpp:1295 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "" +"Per far sì che la torre di spurgo funzioni con i supporti solubili, i layer dei supporti devono essere sincronizzati con quelli del modello.\n" +"\n" +"Sincronizzare i supporti per abilitare la torre di spurgo?" #: src/libslic3r/Print.cpp:1302 msgid "For the Wipe Tower to work with the soluble supports, the support layers need to be synchronized with the object layers." @@ -2522,10 +2879,6 @@ msgstr "Forza la generazione di perimetri solidi tra volumi o materiali adiacent msgid "From" msgstr "Da" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1853 -msgid "From Object List You can't delete the last solid part from object." -msgstr "Non è possibile eliminare l'ultima parte solida dall'oggetto nell'elenco Oggetti." - #: src/slic3r/GUI/MainFrame.cpp:525 msgid "Front" msgstr "Frontale" @@ -2534,10 +2887,18 @@ msgstr "Frontale" msgid "Front View" msgstr "Vista anteriore" +#: src/slic3r/GUI/Tab.cpp:2151 +msgid "Full Power" +msgstr "Piena Potenza" + #: src/slic3r/GUI/MainFrame.cpp:677 msgid "G-code" msgstr "G-code" +#: lib/Slic3r/GUI/Plater.pm:1561 +msgid "G-code file exported to " +msgstr "G-code esportato in " + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:87 msgid "G-code file exported to %1%" msgstr "G-code esportato in %1%" @@ -2564,6 +2925,10 @@ msgstr "Generale" 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 "Genera almeno il numero di skirt necessari per consumare la quantità di filamento specificata per il primo layer. Per le macchine multi estrusore, questo minimo riguarda ciascun estrusore." +#: src/libslic3r/SLA/SLASupportTree.cpp:2155 +msgid "Generate pinheads" +msgstr "Genera capocchie" + #: src/libslic3r/PrintConfig.cpp:1779 msgid "Generate support material" msgstr "Genera materiale di supporto" @@ -2618,11 +2983,11 @@ msgstr "Generico" #: src/slic3r/GUI/KBShortcutsDialog.cpp:144 msgid "Gizmo cut" -msgstr "Gizmo Taglia" +msgstr "Gizmo Taglia " #: src/slic3r/GUI/KBShortcutsDialog.cpp:141 msgid "Gizmo move" -msgstr "Gizmo Sposta" +msgstr "Gizmo Sposta " #: src/slic3r/GUI/KBShortcutsDialog.cpp:145 msgid "Gizmo Place face on bed" @@ -2630,32 +2995,16 @@ msgstr "Gizmo Posiziona faccia sul piano" #: src/slic3r/GUI/KBShortcutsDialog.cpp:143 msgid "Gizmo rotate" -msgstr "Gizmo Ruota" +msgstr "Gizmo Ruota " #: src/slic3r/GUI/KBShortcutsDialog.cpp:142 msgid "Gizmo scale" -msgstr "Gizmo Ridimensiona" +msgstr "Gizmo Ridimensiona " #: src/slic3r/GUI/KBShortcutsDialog.cpp:146 msgid "Gizmo SLA support points" msgstr "Gizmo Punti supporto SLA" -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:641 -msgid "Gizmo-Move" -msgstr "Gizmo-Sposta" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:569 -msgid "Gizmo-Place on Face" -msgstr "Gizmo-Posiziona sulla faccia" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:651 -msgid "Gizmo-Rotate" -msgstr "Gizmo-Ruota" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:646 -msgid "Gizmo-Scale" -msgstr "Gizmo-Ridimensiona" - #: src/slic3r/GUI/AboutDialog.cpp:95 msgid "GNU Affero General Public License, version 3" msgstr "GNU Affero General Public License, versione 3" @@ -2684,6 +3033,14 @@ msgstr "ha le seguenti modifiche non salvate:" msgid "Head diameter" msgstr "Diametro testa" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:838 +msgid "Head diameter: " +msgstr "Diametro testa" + +#: src/slic3r/GUI/Tab.cpp:3483 +msgid "Head penetration should not be greater than the head width." +msgstr "La penetrazione della testa non deve essere più grande della larghezza della testa." + #: src/libslic3r/PrintConfig.cpp:822 msgid "Heated build plate temperature for the first layer. Set this to zero to disable bed temperature control commands in the output." msgstr "Temperatura piano riscaldato per il primo layer. Imposta a zero per disattivare i comandi di controllo temperatura nell'output." @@ -2704,23 +3061,24 @@ msgstr "Altezza dello skirt espresso in layer. Imposta un valore alto per utiliz msgid "Height of the display" msgstr "Altezza del display" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1350 -msgid "Height range Modifier" -msgstr "Modificatore intervallo Altezza" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3650 src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Height ranges" -msgstr "Intervalli Altezza" +#: src/libslic3r/PrintConfig.cpp:225 +msgid "Heights at which a filament change is to occur. " +msgstr "Altezze alle quali i cambi di filamento devono avvenire. " #: src/libslic3r/PrintConfig.cpp:226 msgid "Heights at which a filament change is to occur." msgstr "Altezze alle quali i cambi di filamento devono avvenire." #: src/slic3r/GUI/ConfigWizard.cpp:300 -#, possible-c-format +#, c-format msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print." msgstr "Ciao, benvenuto su %s! La %s ti aiuterà con la configurazione iniziale; giusto qualche impostazione e sarai pronto a stampare." +#: src/slic3r/GUI/ConfigWizard.cpp:290 +#, c-format +msgid "Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial configuration; just a few settings and you will be ready to print." +msgstr "Ciao, benvenuto su Slic3r Prusa Edition! Questo %s ti aiuterà con la configurazione iniziale; giusto un paio di impostazioni e sarai pronto a stampare." + #: src/libslic3r/PrintConfig.cpp:2976 msgid "Help" msgstr "Aiuto" @@ -2778,20 +3136,18 @@ msgid "Hostname, IP or URL" msgstr "Nome Host, IP o URL" #: src/slic3r/GUI/Tab.cpp:136 -msgid "Hover the cursor over buttons to find more information \nor click this button." +msgid "" +"Hover the cursor over buttons to find more information \n" +"or click this button." msgstr "Scorri il cursore sui bottoni per ottenere maggiori informazioni o clicca su questo bottone." -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "How much should the tiny connectors penetrate into the model body." -msgstr "Quanto devono penetrare i piccoli connettori nel corpo del modello." - #: src/libslic3r/PrintConfig.cpp:2380 msgid "How much the pinhead has to penetrate the model surface" msgstr "Quanto deve penetrare l'apice nella superficie del modello" -#: src/libslic3r/PrintConfig.cpp:2642 -msgid "How much the supports should lift up the supported object. If \"Pad around object\" is enabled, this value is ignored." -msgstr "Quanto deve sollevarsi il supporto fino all'oggetto supportato. Se \"Pad intorno all'oggetto\" è attivo, questo valore è ignorato." +#: src/libslic3r/PrintConfig.cpp:2491 +msgid "How much the supports should lift up the supported object." +msgstr "Quanto i supporti dovrebbero elevare l'oggetto supportato." #: src/libslic3r/PrintConfig.cpp:95 msgid "HTTPS CA File" @@ -2802,13 +3158,25 @@ msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self msgstr "File HTTPS CA opzionale. È necessario solo se si intende usare un HTTPS con certificato autofirmato." #: src/slic3r/GUI/Tab.cpp:1773 -#, possible-c-format -msgid "HTTPS CA File:\n \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." -msgstr "File HTTPS CA:\nSu questo sistema, %s utilizza certificati HTTPS provenienti dal sistema Certificate Store o da Keychain.\nPer utilizzare un file CA personalizzato, importa il tuo file CA sul Certificate Store / Keychain." +#, c-format +msgid "" +"HTTPS CA File:\n" +" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n" +" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"File HTTPS CA:\n" +"Su questo sistema, %s utilizza certificati HTTPS provenienti dal sistema Certificate Store o da Keychain.\n" +"Per utilizzare un file CA personalizzato, importa il tuo file CA sul Certificate Store / Keychain." -#: src/slic3r/GUI/Preferences.cpp:192 -msgid "Icon size in a respect to the default size" -msgstr "Dimensioni icona rispetto alla dimensione predefinita" +#: src/slic3r/GUI/Tab.cpp:1725 +msgid "" +"HTTPS CA File:\n" +"\tOn this system, Slic3r uses HTTPS certificates from the system Certificate Store or Keychain.\n" +"\tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"File HTTPS CA:\n" +"In questo sistema, Slic3r utilizza dei certificati HTTPS dal Certificate Store o Keychain di sistema. \n" +"Per usare un file CA personalizzato, importalo nel Certificate Store / Keychain." #: src/slic3r/GUI/PrintHostDialogs.cpp:148 msgid "ID" @@ -2819,12 +3187,12 @@ msgid "If checked, supports will be generated automatically based on the overhan msgstr "Se attivo, verranno automaticamente generati i supporti in base al valore soglia di sporgenza. Se disattivato, i supporti verranno generati solamente all'interno dei volumi di \"Rinforzo Supporto\"." #: src/slic3r/GUI/ConfigWizard.cpp:413 -#, possible-c-format +#, c-format msgid "If enabled, %s checks for new application versions online. When a new version becomes available, a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." msgstr "Se attivato, %s verifica la presenza di nuove versioni online. Quando è disponibile una nuova versione, viene mostrata una notifica al successivo avvio dell'applicazione (mai durante l'uso del programma). È solo un meccanismo di notifica, non viene effettuato nessun aggiornamento automatico." #: src/slic3r/GUI/ConfigWizard.cpp:423 -#, possible-c-format +#, c-format msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup." msgstr "Se attivo, %s scarica in background gli aggiornamenti dei preset integrati nel sistema. Questi aggiornamenti vengono scaricati in una cartella temporanea separata. Quando è disponibile una nuova versione del preset, questa viene proposta all'avvio." @@ -2833,8 +3201,12 @@ msgid "If enabled, all printing extruders will be primed at the front edge of th msgstr "Se attivata, tutti gli estrusori di stampa verranno preparati nel bordo frontale del piano di stampa all'inizio della stampa." #: src/slic3r/GUI/Preferences.cpp:63 -msgid "If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." -msgstr "Se attivato, PrusaSlicer verifica la presenza di nuove versioni online. Quando una nuova versione è disponibile, viene mostrata una notifica al successivo avvio dell'applicazione (mai durante l'uso del programma). Questo è solo un meccanismo di notifica, non viene effettuato nessun aggiornamento automatico." +msgid "If enabled, Slic3r checks for new versions of " +msgstr "Se attivo, Slic3r verifica la presenza di nuove versioni di " + +#: src/slic3r/GUI/ConfigWizard.cpp:401 src/slic3r/GUI/Preferences.cpp:61 +msgid "If enabled, Slic3r checks for new versions of Slic3r PE online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." +msgstr "Se attivato, Slic3r verifica la presenza di nuove versioni di Slic3r PE online. Quando una nuova versione è disponibile, viene mostrata una notifica al successivo avvio dell'applicazione (mai durante l'uso del programma). Questo è solo un meccanismo di notifica, non viene effettuato nessun aggiornamento automatico." #: src/slic3r/GUI/Preferences.cpp:71 msgid "If enabled, Slic3r downloads updates of built-in system presets in the background. These updates are downloaded into a separate temporary location. When a new preset version becomes available it is offered at application startup." @@ -2844,18 +3216,15 @@ msgstr "Se abilitato, Slic3r scarica gli aggiornamenti dei preset inclusi in bac 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 "Se attivo, la scena 3D verrà renderizzata con la risoluzione Retina. Se si riscontrano problemi di prestazioni 3D, disattivare questa opzione potrebbe essere d'aiuto." -#: src/slic3r/GUI/Preferences.cpp:112 -msgid "If enabled, use perspective camera. If not enabled, use orthographic camera." -msgstr "Se attivo, usa la camera in prospettiva. Se non attivo, usa la camera ortografica." - -#: src/slic3r/GUI/Preferences.cpp:119 -msgid "If enabled, you can change size of toolbar icons manually." -msgstr "Se attivo, è possibile modificare manualmente la dimensione delle icone degli strumenti." - #: src/slic3r/GUI/PresetHints.cpp:28 msgid "If estimated layer time is below ~%1%s, fan will run at %2%%% and print speed will be reduced so that no less than %3%s are spent on that layer (however, speed will never be reduced below %4%mm/s)." msgstr "Se il tempo previsto per il layer è inferiore a ~%1%s, la ventola girerà al %2%%% e la velocità di stampa sarà ridotta così da impiegare non meno di %3%s su quel layer (in ogni caso, la velocità non sarà mai ridotta sotto %4%mm/s)." +#: src/slic3r/GUI/PresetHints.cpp:28 +#, c-format +msgid "If estimated layer time is below ~%ds, fan will run at %d%% and print speed will be reduced so that no less than %ds are spent on that layer (however, speed will never be reduced below %dmm/s)." +msgstr "Se il tempo previsto per il layer è inferiore a ~%ds, la ventola girerà al %d%% e la velocità di stampa sarà ridotta così da impiegare non meno di %ds su quel layer (in ogni caso, la velocità non sarà mai ridotta sotto %dmm/s)." + #: src/libslic3r/PrintConfig.cpp:853 msgid "If expressed as absolute value in mm/s, this speed will be applied to all the print moves of the first layer, regardless of their type. If expressed as a percentage (for example: 40%) it will scale the default speeds." msgstr "Se espresso in valore assoluto in mm/s, questa velocità sarà applicata a tutti i movimenti di stampa del primo layer, a prescindere dal tipo di movimento. Se espresso in percentuale (per esempio: 40%) verranno scalate le velocità predefinite." @@ -2884,6 +3253,10 @@ msgstr "Se attivo, Slic3r processerà in anticipo gli oggetti non appena saranno msgid "If this is enabled, Slic3r will prompt the last output directory instead of the one containing the input files." msgstr "Se attivo, Slic3r suggerirà l'ultima cartella di destinazione invece della cartella contenente il file di ricezione." +#: src/slic3r/GUI/Preferences.cpp:95 +msgid "If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may try to check this checkbox. This will disable the layer height editing and anti aliasing, so it is likely better to upgrade your graphics driver." +msgstr "Se hai problemi nel rendering causati da bug nel driver OpenGL 2.0, puoi provare ad attivare questa opzione. Si disattiverà la modifica altezza layer e l'anti-aliasing, quindi è meglio aggiornare i driver grafici." + #: src/libslic3r/PrintConfig.cpp:1492 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 "Se inserisci un valore positivo, Z verrà alzato velocemente ogni volta che si innesca una retrazione. Quando si utilizzano diversi estrusori, verrà considerato solamente l'impostazione del primo estrusore." @@ -2924,14 +3297,6 @@ msgstr "Importa Configurazione da &Bundle" msgid "Import Config from &project" msgstr "Importa Configurazione da &progetto" -#: src/slic3r/GUI/Plater.cpp:4016 -msgid "Import Object" -msgstr "Importa Oggetto" - -#: src/slic3r/GUI/Plater.cpp:4020 -msgid "Import Objects" -msgstr "Importa Oggetti" - #: src/slic3r/Utils/FixModelByWin10.cpp:383 msgid "Import of the repaired 3mf file failed" msgstr "Importazione del file 3mf riparato non riuscita" @@ -2945,7 +3310,7 @@ msgid "Import STL/OBJ/AMF/3MF without config, keep bed" msgstr "Importa STL/OBJ/AMF/3MF senza configurazione, mantieni il piano" #: src/slic3r/GUI/GUI_ObjectList.cpp:2416 -#, possible-c-format +#, c-format msgid "In this mode you can select only other %s Items%s" msgstr "In questa modalità puoi selezionare solo altri %s oggetti %s" @@ -2954,28 +3319,41 @@ msgid "Incompatible bundles:" msgstr "Gruppi incompatibili:" #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70 -#, possible-c-format +#, c-format msgid "Incompatible with this %s" msgstr "Incompatibile con questo %s" -#: src/slic3r/GUI/Plater.cpp:4091 -msgid "Increase Instances" -msgstr "Aumenta Istanze" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 +msgid "Incompatible with this Slic3r" +msgstr "Incompatibile con questo Slic3r" + +#: src/slic3r/GUI/Plater.cpp:2813 src/slic3r/GUI/Plater.cpp:2825 +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Increase copies" +msgstr "Aumenta copie" #. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3338 -msgid "indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\nClick the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values." -msgstr "indica che è stata modificata qualche impostazione e non è uguale ai valori di sistema (o predefiniti) del corrente gruppo di opzioni.\nClicca l'icona LUCCHETTO APERTO per reimpostare tutte le impostazioni del corrente gruppo di opzioni ai valori di sistema (o predefiniti)." +#: src/slic3r/GUI/Tab.cpp:3071 +msgid "" +"indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"indica che è stata modificata qualche impostazione e non è uguale ai valori di sistema del corrente gruppo di opzioni.\n" +"Clicca l'icona LUCCHETTO APERTO per reimpostare tutte le impostazioni del corrente gruppo di opzioni ai valori di sistema." #. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3334 -msgid "indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "indica che le impostazioni sono uguali ai valori di sistema (o predefiniti) per l'attuale gruppo di opzioni" +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "indicates that the settings are the same as the system values for the current option group" +msgstr "indica che le impostazioni sono le stesse dei valori di sistema per il gruppo di opzioni corrente" #. TRN Description for "BACK ARROW" #: src/slic3r/GUI/Tab.cpp:3083 -msgid "indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick the BACK ARROW icon to reset all settings for the current option group to the last saved preset." -msgstr "indica che le impostazioni sono state modificate e non corrispondono all'ultimo preset salvato per l'attuale gruppo opzioni.\nClicca l'icona FRECCIA INDIETRO per reimpostare all'ultimo preset salvato tutte le impostazioni per il seguente gruppo di opzioni." +msgid "" +"indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "" +"indica che le impostazioni sono state modificate e non corrispondono all'ultimo preset salvato per l'attuale gruppo opzioni.\n" +"Clicca l'icona FRECCIA INDIETRO per reimpostare all'ultimo preset salvato tutte le impostazioni per il seguente gruppo di opzioni." #: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:69 #: src/slic3r/GUI/GUI_ObjectList.cpp:510 src/slic3r/GUI/Plater.cpp:439 @@ -3019,10 +3397,6 @@ msgstr "Info" msgid "Inherits profile" msgstr "Eredita profilo" -#: src/libslic3r/SLAPrint.cpp:707 -msgid "Initial exposition time is out of printer profile bounds." -msgstr "Il tempo di esposizione iniziale è fuori dai limiti del profilo stampante." - #: src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2318 msgid "Initial exposure time" msgstr "Tempo di esposizione iniziale" @@ -3040,7 +3414,7 @@ msgid "Inspect / activate configuration snapshots" msgstr "Ispeziona / attiva istantanee di configurazione" #: src/slic3r/GUI/wxExtensions.cpp:407 src/slic3r/GUI/wxExtensions.cpp:474 -#, possible-c-format +#, c-format msgid "Instance %d" msgstr "Istanza %d" @@ -3052,9 +3426,10 @@ msgstr "Manipolazione istanza" msgid "Instances" msgstr "Istanze" -#: src/slic3r/GUI/GUI_ObjectList.cpp:934 src/slic3r/GUI/GUI_ObjectList.cpp:3346 -msgid "Instances to Separated Objects" -msgstr "Istanze in Oggetti Separati" +#: src/slic3r/GUI/wxExtensions.cpp:365 +#, c-format +msgid "Instance_%d" +msgstr "Istanza_%d" #: src/libslic3r/PrintConfig.cpp:1886 msgid "Interface layers" @@ -3080,19 +3455,22 @@ msgstr "errore interno" msgid "Internal infill" msgstr "Riempimento interno" +#: xs/src/slic3r/Utils/OctoPrint.cpp:120 +msgid "Invalid API key" +msgstr "Chiave API non valida" + #: src/slic3r/GUI/Plater.cpp:2397 msgid "Invalid data" msgstr "Dati non validi" -#: src/slic3r/GUI/BedShapeDialog.cpp:471 src/slic3r/GUI/BedShapeDialog.cpp:520 -#: src/slic3r/GUI/BedShapeDialog.cpp:543 -msgid "Invalid file format." -msgstr "Formato file non valido." - #: src/libslic3r/Zipper.cpp:83 msgid "invalid filename" msgstr "nome file non valido" +#: src/slic3r/GUI/Tab.cpp:3484 +msgid "Invalid Head penetration" +msgstr "Penetrazione testa non valida" + #: src/libslic3r/Zipper.cpp:51 msgid "invalid header or archive is corrupted" msgstr "titolo non valido o archivio corrotto" @@ -3105,6 +3483,19 @@ msgstr "Input numerico non valido." msgid "invalid parameter" msgstr "parametro non valido" +#: src/slic3r/GUI/Tab.cpp:3497 +msgid "Invalid pinhead diameter" +msgstr "Diametro apice non valido" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Invalid rotation angle entered" +msgstr "Inserito angolo di rotazione non valido" + +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +#: lib/Slic3r/GUI/Plater.pm:1158 lib/Slic3r/GUI/Plater.pm:1163 +msgid "Invalid scaling value entered" +msgstr "Inserito valore scala non valido" + #. TRN "Slic3r _is licensed under the_ License" #: src/slic3r/GUI/AboutDialog.cpp:94 msgid "is licensed under the" @@ -3126,6 +3517,10 @@ msgstr "Iso" msgid "Iso View" msgstr "Vista isometrica" +#: src/slic3r/GUI/Tab.cpp:914 +msgid "It can't be deleted or modified. " +msgstr "Non può essere eliminato o modificato. " + #: src/slic3r/GUI/Tab.cpp:925 msgid "It can't be deleted or modified." msgstr "Non può essere eliminato o modificato." @@ -3134,6 +3529,14 @@ msgstr "Non può essere eliminato o modificato." 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 "Potrebbe essere utile aumentare la corrente del motore estrusore durante la sequenza di cambio filamento per permettere un avanzamento rapido del ramming e per superare la resistenza durante il caricamento di un filamento con una punta deformata." +#: src/slic3r/GUI/Tab.cpp:907 +msgid "It's a default preset." +msgstr "È un preset preimpostato." + +#: src/slic3r/GUI/Tab.cpp:908 +msgid "It's a system preset." +msgstr "È un preset di sistema." + #: src/slic3r/GUI/GUI.cpp:142 src/slic3r/GUI/Tab.cpp:2796 msgid "It's impossible to print multi-part object(s) with SLA technology." msgstr "Non è possibile stampare oggetti multi-parte con tecnologia SLA." @@ -3178,14 +3581,17 @@ msgstr "Lingua" msgid "Language selection" msgstr "Selezione lingua" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1770 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1872 -msgid "Last instance of an object cannot be deleted." -msgstr "Non è possibile eliminare l'ultima istanza di un oggetto." +#: src/slic3r/GUI/GLCanvas3D.cpp:1694 +msgid "Last frame" +msgstr "Ultimo frame" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2994 -msgid "Layer" -msgstr "Layer" +#: lib/Slic3r/GUI/Plater.pm:265 +msgid "Layer Editing" +msgstr "Modifica layer" + +#: lib/Slic3r/GUI/Plater.pm:280 +msgid "Layer editing" +msgstr "Modifica layer" #: src/slic3r/GUI/Tab.cpp:998 src/libslic3r/PrintConfig.cpp:55 msgid "Layer height" @@ -3199,10 +3605,6 @@ msgstr "L'altezza layer non può essere più grande del diametro dell'ugello" msgid "Layer height limits" msgstr "Limiti altezza layer" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2109 -msgid "Layer range Settings to modify" -msgstr "Impostazioni da modificare in Intervallo Layer" - #: src/libslic3r/PrintConfig.cpp:326 src/libslic3r/PrintConfig.cpp:946 #: src/libslic3r/PrintConfig.cpp:1435 src/libslic3r/PrintConfig.cpp:1620 #: src/libslic3r/PrintConfig.cpp:1681 src/libslic3r/PrintConfig.cpp:1844 @@ -3229,9 +3631,9 @@ msgstr "Layer e perimetri" msgid "Layers and Perimeters" msgstr "Layer e Perimetri" -#: src/slic3r/GUI/GLCanvas3D.cpp:526 -msgid "Layers heights" -msgstr "Altezze layer" +#: src/slic3r/GUI/GLCanvas3D.cpp:3517 +msgid "Layers editing" +msgstr "Modifica layer" #: src/slic3r/GUI/KBShortcutsDialog.cpp:189 msgid "Layers Slider Shortcuts" @@ -3259,27 +3661,26 @@ msgstr "Sinistra" msgid "Left click" msgstr "Click sinistro" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:597 +msgid "Left mouse click - add point" +msgstr "Click sinistro - aggiungi punto" + #: src/slic3r/GUI/MainFrame.cpp:527 msgid "Left View" msgstr "Vista sinistra" -#: src/slic3r/GUI/GUI_Preview.cpp:255 -msgid "Legend" -msgstr "Legenda" - #: src/libslic3r/PrintConfig.cpp:1473 src/libslic3r/PrintConfig.cpp:1481 msgid "Length" msgstr "Lunghezza" +#: src/libslic3r/PrintConfig.cpp:292 +msgid "Length of the cooling tube to limit space for cooling moves inside it " +msgstr "Lunghezza del tubo di raffreddamento per limitare lo spazio delle mosse di raffreddamento al suo interno " + #: src/libslic3r/PrintConfig.cpp:293 msgid "Length of the cooling tube to limit space for cooling moves inside it." msgstr "Lunghezza del tubo di raffreddamento per limitare lo spazio delle mosse di raffreddamento al suo interno." -#. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:124 -msgid "License agreements of all following programs (libraries) are part of application license agreement" -msgstr "Gli accordi di licenza di tutti i programmi seguenti (librerie) fanno parte del contratto di licenza dell'applicazione" - #: src/libslic3r/PrintConfig.cpp:1491 msgid "Lift Z" msgstr "Solleva Z" @@ -3324,33 +3725,17 @@ msgstr "Carica configurazione dal file specificato. Può essere usato più di un msgid "Load exported configuration file" msgstr "Carica un file di configurazione esportato" -#: src/slic3r/GUI/Plater.cpp:1271 -msgid "Load File" -msgstr "Carica file" - -#: src/slic3r/GUI/Plater.cpp:1275 -msgid "Load Files" -msgstr "Carica file" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1585 -msgid "Load Part" -msgstr "Carica Parte" - #: src/slic3r/GUI/MainFrame.cpp:357 msgid "Load presets from a bundle" msgstr "Carica i preset da un gruppo" -#: src/slic3r/GUI/Plater.cpp:3992 -msgid "Load Project" -msgstr "Carica Progetto" - #: src/slic3r/GUI/BedShapeDialog.cpp:97 msgid "Load shape from STL..." msgstr "Carica forma da STL..." -#: src/slic3r/GUI/BedShapeDialog.cpp:181 src/slic3r/GUI/BedShapeDialog.cpp:249 -msgid "Load..." -msgstr "Caricamento..." +#: lib/Slic3r/GUI/Plater.pm:779 +msgid "Loaded " +msgstr "Caricato " #: src/slic3r/GUI/WipeTowerDialog.cpp:235 msgid "loaded" @@ -3364,6 +3749,10 @@ msgstr "Caricato" msgid "Loading" msgstr "Caricamento" +#: src/slic3r/GUI/GUI_App.cpp:339 +msgid "Loading of a current presets" +msgstr "Caricamento dei preset correnti" + #: src/slic3r/GUI/GUI_App.cpp:407 msgid "Loading of a mode view" msgstr "Caricamento di una modalità di vista" @@ -3385,6 +3774,10 @@ msgstr "Velocità di caricamento" msgid "Loading speed at the start" msgstr "Velocità iniziale di caricamento" +#: lib/Slic3r/GUI/Plater.pm:713 +msgid "Loading…" +msgstr "Caricando…" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:41 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 msgid "Local coordinates" @@ -3398,13 +3791,17 @@ msgstr "Fissa i supporti sotto le nuove isole" msgid "LOCKED LOCK" msgstr "LUCCHETTO CHIUSO" -#: src/slic3r/GUI/Tab.cpp:3360 -msgid "LOCKED LOCK icon indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "L'icona LUCCHETTO CHIUSO indica che le impostazioni corrispondono ai valori di sistema (o predefiniti) per il seguente gruppo di opzioni" +#: src/slic3r/GUI/Tab.cpp:3103 +msgid "LOCKED LOCK icon indicates that the settings are the same as the system values for the current option group" +msgstr "L'icona LUCCHETTO CHIUSO indica che le impostazioni corrispondono ai valori di sistema per il seguente gruppo di opzioni" -#: src/slic3r/GUI/Tab.cpp:3376 -msgid "LOCKED LOCK icon indicates that the value is the same as the system (or default) value." -msgstr "L'icona LUCCHETTO CHIUSO indica che il valore è uguale a quello di sistema (o predefinito)." +#: src/slic3r/GUI/Tab.cpp:3119 +msgid "LOCKED LOCK icon indicates that the value is the same as the system value." +msgstr "L'icona del LUCCHETTO CHIUSO indica che il valore è uguale al valore di sistema." + +#: src/slic3r/GUI/Tab.cpp:3064 +msgid "LOCKED LOCK;indicates that the settings are the same as the system values for the current option group" +msgstr "LUCCHETTO CHIUSO; indica che le impostazioni sono le stesse dei valori di sistema per il gruppo di opzioni corrente" #: src/libslic3r/PrintConfig.cpp:3119 msgid "Logging level" @@ -3439,6 +3836,10 @@ msgstr "Manifold" msgid "Manual editing" msgstr "Editing manuale" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:675 +msgid "Manual editing [M]" +msgstr "Editing manuale [M]" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:105 msgid "Masked SLA file exported to %1%" msgstr "File SLA mascherato esportato su %1%" @@ -3503,14 +3904,26 @@ msgstr "Massima velocità volumetrica" msgid "Maximal bridging distance" msgstr "Distanza massima bridging" +#: src/libslic3r/PrintConfig.cpp:2168 +msgid "Maximal distance between supports on sparse infill sections. " +msgstr "Distanza massima tra supporti in sezioni a scarso riempimento. " + #: src/libslic3r/PrintConfig.cpp:2193 msgid "Maximal distance between supports on sparse infill sections." msgstr "Distanza massima tra supporti in sezioni a scarso riempimento." +#: src/libslic3r/PrintConfig.cpp:1086 +msgid "Maximum acceleration %1%" +msgstr "Accelerazione massima %1%" + #: src/libslic3r/PrintConfig.cpp:1099 msgid "Maximum acceleration E" msgstr "Accelerazione massima E" +#: src/libslic3r/PrintConfig.cpp:1088 +msgid "Maximum acceleration of the %1% axis" +msgstr "Accelerazione massima dell'asse %1%" + #: src/libslic3r/PrintConfig.cpp:1105 msgid "Maximum acceleration of the E axis" msgstr "Accelerazione massima dell'asse E" @@ -3559,14 +3972,18 @@ msgstr "Accelerazione massima Z" msgid "Maximum accelerations" msgstr "Accelerazioni massime" -#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2425 -msgid "Maximum exposure time" -msgstr "Tempo massimo di esposizione" +#: src/libslic3r/PrintConfig.cpp:1076 +msgid "Maximum feedrate %1%" +msgstr "Avanzamento massimo %1%" #: src/libslic3r/PrintConfig.cpp:1081 msgid "Maximum feedrate E" msgstr "Avanzamento massimo E" +#: src/libslic3r/PrintConfig.cpp:1078 +msgid "Maximum feedrate of the %1% axis" +msgstr "Avanzamento massimo dell'asse %1%" + #: src/libslic3r/PrintConfig.cpp:1087 msgid "Maximum feedrate of the E axis" msgstr "Avanzamento massimo dell'asse E" @@ -3599,14 +4016,18 @@ msgstr "Avanzamento massimo Z" msgid "Maximum feedrates" msgstr "Avanzamenti massimi" -#: src/libslic3r/PrintConfig.cpp:2447 src/libslic3r/PrintConfig.cpp:2448 -msgid "Maximum initial exposure time" -msgstr "Tempo massimo di esposizione iniziale" +#: src/libslic3r/PrintConfig.cpp:1096 +msgid "Maximum jerk %1%" +msgstr "Jerk massimo %1%" #: src/libslic3r/PrintConfig.cpp:1117 msgid "Maximum jerk E" msgstr "Jerk massimo E" +#: src/libslic3r/PrintConfig.cpp:1098 +msgid "Maximum jerk of the %1% axis" +msgstr "Jerk massimo dell'asse %1%" + #: src/libslic3r/PrintConfig.cpp:1123 msgid "Maximum jerk of the E axis" msgstr "Jerk massimo dell'asse E" @@ -3683,6 +4104,10 @@ msgstr "Lunghezza di estrusione minima del filamento" msgid "Minimal points distance" msgstr "Distanza minima punti" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:877 +msgid "Minimal points distance: " +msgstr "Distanza minima punti:" + #: src/libslic3r/PrintConfig.cpp:635 msgid "Minimal purge on wipe tower" msgstr "Spurgo minimo sulla torre di spurgo" @@ -3691,10 +4116,6 @@ msgstr "Spurgo minimo sulla torre di spurgo" msgid "Minimum detail resolution, used to simplify the input file for speeding up the slicing job and reducing memory usage. High-resolution models often carry more detail than printers can render. Set to zero to disable any simplification and use full resolution from input." msgstr "Risoluzione minima dettaglio, utilizzato per semplificare il file input accelerando lo slicing e riducendo l'utilizzo di memoria. I file ad alta risoluzione spesso hanno più dettaglio di quanto la stampante possa generare. Impostate a zero per disabilitare la semplificazione e utilizzare la risoluzione completa." -#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2417 -msgid "Minimum exposure time" -msgstr "Tempo minimo di esposizione" - #: src/libslic3r/PrintConfig.cpp:1109 src/libslic3r/PrintConfig.cpp:1111 msgid "Minimum feedrate when extruding" msgstr "Avanzamento minimo durante estrusione" @@ -3707,10 +4128,6 @@ msgstr "Avanzamento minimo durante estrusione (M205 S)" msgid "Minimum feedrates" msgstr "Avanzamento minimo" -#: src/libslic3r/PrintConfig.cpp:2439 src/libslic3r/PrintConfig.cpp:2440 -msgid "Minimum initial exposure time" -msgstr "Tempo minimo di esposizione iniziale" - #: src/libslic3r/PrintConfig.cpp:1452 msgid "Minimum travel after retraction" msgstr "Spostamento minimo dopo una retrazione" @@ -3727,14 +4144,6 @@ msgstr "Avanzamento minimo di spostamento (M205 T)" msgid "Mirror" msgstr "Specchia" -#: src/libslic3r/PrintConfig.cpp:2320 -msgid "Mirror horizontally" -msgstr "Specchia orizzontalmente" - -#: src/slic3r/GUI/GLCanvas3D.cpp:1711 -msgid "Mirror Object" -msgstr "Specchia Oggetto" - #: src/slic3r/GUI/Plater.cpp:2946 msgid "Mirror the selected object" msgstr "Specchia l'oggetto selezionato" @@ -3751,12 +4160,8 @@ msgstr "Specchia l'oggetto selezionato sull'asse y" msgid "Mirror the selected object along the Z axis" msgstr "Specchia l'oggetto selezionato sull'asse Z" -#: src/libslic3r/PrintConfig.cpp:2327 -msgid "Mirror vertically" -msgstr "Specchia verticalmente" - #: src/slic3r/Utils/OctoPrint.cpp:69 -#, possible-c-format +#, c-format msgid "Mismatched type of print host: %s" msgstr "Tipo di Host di stampa non corrispondente: %s" @@ -3805,6 +4210,17 @@ msgstr "mm (imposta a zero per disabilitare)" msgid "mm or %" msgstr "mm o %" +#: src/libslic3r/PrintConfig.cpp:528 +msgid "mm or % (leave 0 for auto)" +msgstr "mm o % (lasciate 0 per l'automatico)" + +#: src/libslic3r/PrintConfig.cpp:420 src/libslic3r/PrintConfig.cpp:835 +#: src/libslic3r/PrintConfig.cpp:967 src/libslic3r/PrintConfig.cpp:1354 +#: src/libslic3r/PrintConfig.cpp:1692 src/libslic3r/PrintConfig.cpp:1865 +#: src/libslic3r/PrintConfig.cpp:2023 +msgid "mm or % (leave 0 for default)" +msgstr "mm o % (lasciate 0 per il default)" + #: src/libslic3r/PrintConfig.cpp:201 src/libslic3r/PrintConfig.cpp:577 #: src/libslic3r/PrintConfig.cpp:585 src/libslic3r/PrintConfig.cpp:594 #: src/libslic3r/PrintConfig.cpp:602 src/libslic3r/PrintConfig.cpp:629 @@ -3855,10 +4271,6 @@ msgstr "Modalità" msgid "model" msgstr "modello" -#: src/slic3r/GUI/BedShapeDialog.cpp:239 -msgid "Model" -msgstr "Modello" - #: src/slic3r/Utils/FixModelByWin10.cpp:340 msgid "Model fixing" msgstr "Riparazione modello" @@ -3888,10 +4300,6 @@ msgstr "Modello riparato con successo" msgid "modified" msgstr "modificato" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Modifier" -msgstr "Modificatore" - #: src/slic3r/GUI/Tab.cpp:1100 msgid "Modifiers" msgstr "Modificatori" @@ -3900,6 +4308,10 @@ msgstr "Modificatori" msgid "money/kg" msgstr "soldi/kg" +#: lib/Slic3r/GUI/Plater.pm:255 +msgid "More" +msgstr "Altro" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Mouse wheel" msgstr "Rotella del mouse" @@ -3920,17 +4332,25 @@ msgstr "Abbassa la barra di scorrimento attuale" msgid "Move current slider thumb Up" msgstr "Solleva la barra di scorrimento attuale" -#: src/slic3r/GUI/GLCanvas3D.cpp:2872 -msgid "Move Object" -msgstr "Sposta oggetto" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Move current slider thump Down" +msgstr "Abbassa la barra di scorrimento attuale" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Move current slider thump Up" +msgstr "Solleva la barra di scorrimento attuale" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 msgid "Move point" msgstr "Sposta punto" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1183 -msgid "Move support point" -msgstr "Sposta punto di supporto" +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:51 +msgid "Move [M]" +msgstr "Sposta [M]" + +#: src/slic3r/GUI/GLCanvas3D.cpp:1698 +msgid "ms" +msgstr "ms" #: src/libslic3r/PrintConfig.cpp:2100 msgid "Multi material printers may need to prime or purge extruders on tool changes. Extrude the excess material into the wipe tower." @@ -3941,7 +4361,7 @@ msgid "Multi-part object detected" msgstr "Rilevato oggetto in parti multiple" #: src/slic3r/GUI/FirmwareDialog.cpp:400 src/slic3r/GUI/FirmwareDialog.cpp:436 -#, possible-c-format +#, c-format msgid "Multiple %s devices found. Please only connect one at a time for flashing." msgstr "Trovati molteplici %s dispositivi. Per favore connettine uno alla volta per il flashing." @@ -3950,8 +4370,13 @@ msgid "Multiple Extruders" msgstr "Estrusori multipli" #: src/slic3r/GUI/Plater.cpp:1766 -msgid "Multiple objects were loaded for a multi-material printer.\nInstead of considering them as multiple objects, should I consider\nthese files to represent a single object having multiple parts?\n" -msgstr "Sono stati caricati oggetti multipli per stampante multi-material.\nInvece di considerarli come oggetti multipli, devo considerarli come parte di un singolo oggetto avente parti multiple?\n" +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?\n" +msgstr "" +"Sono stati caricati oggetti multipli per stampante multi-material.\n" +"Invece di considerarli come oggetti multipli, devo considerarli come parte di un singolo oggetto avente parti multiple?\n" #: src/libslic3r/PrintConfig.cpp:3050 msgid "Multiply copies by creating a grid." @@ -3961,10 +4386,6 @@ msgstr "Moltiplica le copie creando una griglia." msgid "Multiply copies by this factor." msgstr "Moltiplica le copie per questo valore." -#: src/slic3r/GUI/Field.cpp:139 -msgid "N/A" -msgstr "N/A" - #: src/slic3r/GUI/GUI_ObjectList.cpp:176 msgid "Name" msgstr "Nome" @@ -3989,27 +4410,19 @@ msgstr "Più vicino" msgid "Network lookup" msgstr "Ricerca network" -#: src/slic3r/GUI/Plater.cpp:2056 -msgid "New Project" -msgstr "Nuovo progetto" - #: src/slic3r/GUI/UpdateDialogs.cpp:30 -#, possible-c-format +#, c-format msgid "New version of %s is available" msgstr "È disponibile una nuova versione di %s" +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "New version of Slic3r PE is available" +msgstr "Nuova versione di Slic3r PE disponibile" + #: src/slic3r/GUI/UpdateDialogs.cpp:47 msgid "New version:" msgstr "Nuova versione:" -#: src/slic3r/GUI/GLCanvas3D.cpp:3750 -msgid "Next Redo action: %1%" -msgstr "Ripeti Prossima azione: %1%" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3718 -msgid "Next Undo action: %1%" -msgstr "Annulla Prossima azione: %1%" - #: src/libslic3r/PrintConfig.cpp:912 msgid "No extrusion" msgstr "No estrusione" @@ -4143,10 +4556,6 @@ msgstr "Nome oggetto" msgid "Object or Instance" msgstr "Oggetto o Istanza" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Object reordered" -msgstr "Oggetto riordinato" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1868 msgid "Object Settings to modify" msgstr "Impostazioni Oggetto da modificare" @@ -4167,10 +4576,22 @@ msgstr "oggetto(i)" msgid "objects" msgstr "oggetti" +#: xs/src/libslic3r/PrintConfig.cpp:2006 +msgid "Objects will be used to wipe 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 "Gli oggetti verranno sfruttati per pulire l'ugello dopo un cambio di attrezzo per diminuire il tempo di stampa e per risparmiare materiale che altrimenti finirebbe nella torre di spurgo." + #: src/libslic3r/PrintConfig.cpp:402 src/libslic3r/PrintConfig.cpp:808 msgid "Octagram Spiral" msgstr "Spirale a Ottagramma" +#: xs/src/slic3r/GUI/Tab.cpp:1520 xs/src/slic3r/Utils/OctoPrint.cpp:110 +msgid "OctoPrint upload" +msgstr "Carica su OctoPrint" + +#: lib/Slic3r/GUI/Plater.pm:1576 +msgid "OctoPrint upload finished." +msgstr "Caricamento su OctoPrint completato." + #: src/slic3r/GUI/BonjourDialog.cpp:76 msgid "OctoPrint version" msgstr "Versione OctoPrint" @@ -4179,10 +4600,6 @@ msgstr "Versione OctoPrint" msgid "of a current Object" msgstr "di un Oggetto corrente" -#: src/slic3r/GUI/wxExtensions.cpp:2570 -msgid "One layer mode" -msgstr "Modalità Un Layer" - #: src/libslic3r/Print.cpp:1285 msgid "One or more object were assigned an extruder that the printer does not have." msgstr "Uno o più oggetti sono assegnati ad un estrusore non presente sulla stampante." @@ -4197,15 +4614,15 @@ msgstr "Riempimento solo quando necessario" #: src/slic3r/GUI/Tab.cpp:2271 msgid "Only lift Z" -msgstr "Solleva solo Z" +msgstr "Eleva solo Z" #: src/libslic3r/PrintConfig.cpp:1500 msgid "Only lift Z above" -msgstr "Solleva solo Z al di sopra" +msgstr "Eleva solo Z al di sopra" #: src/libslic3r/PrintConfig.cpp:1509 msgid "Only lift Z below" -msgstr "Solleva solo Z al di sotto" +msgstr "Eleva solo Z al di sotto" #: src/libslic3r/PrintConfig.cpp:1279 msgid "Only retract when crossing perimeters" @@ -4215,9 +4632,9 @@ msgstr "Retrai solo se si attraversa un perimetro" msgid "Ooze prevention" msgstr "Prevenzione delle fuoriuscite" -#: src/libslic3r/Print.cpp:1193 -msgid "Ooze prevention is currently not supported with the wipe tower enabled." -msgstr "Prevenzione sgocciolamento non è al momento supportata con la torre di spurgo attiva." +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open a model" +msgstr "Aprire un modello" #: src/slic3r/GUI/MainFrame.cpp:339 msgid "Open a project file" @@ -4227,27 +4644,48 @@ msgstr "Apri un file progetto" msgid "Open CA certificate file" msgstr "Apri file di certificato CA" -#: src/slic3r/GUI/UpdateDialogs.cpp:63 src/slic3r/GUI/UpdateDialogs.cpp:126 -msgid "Open changelog page" -msgstr "Apri la pagina del registro delle modifiche" - -#: src/slic3r/GUI/UpdateDialogs.cpp:68 -msgid "Open download page" -msgstr "Apri la pagina di Download" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:105 msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" msgstr "Apri progetto STL/OBJ/AMF/3MF con configurazione, cancella il piano" +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open STL/OBJ/AMF/3MF…\tCtrl+O" +msgstr "Apri STL/OBJ/AMF/3MF … Ctrl+O" + +#: src/slic3r/GUI/MainFrame.cpp:554 +#, c-format +msgid "Open the %s manual in your browser" +msgstr "Apri il manuale di %s sul browser" + #: src/slic3r/GUI/MainFrame.cpp:551 -#, possible-c-format +#, c-format msgid "Open the %s website in your browser" msgstr "Apri il sito web di %s nel browser" +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Open the 3D cutting tool" +msgstr "Apre lo strumento di taglio 3D" + +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Open the object editor dialog" +msgstr "Apri la finestra di dialogo di modifica oggetto" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Open the Prusa Edition releases page in your browser" +msgstr "Apri la pagina delle versioni Prusa Edition sul browser" + #: src/slic3r/GUI/MainFrame.cpp:542 msgid "Open the Prusa3D drivers download page in your browser" msgstr "Apri la pagina di download dei driver Prusa3D sul browser" +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Open the Slic3r manual in your browser" +msgstr "Apri il manuale di Slic3r sul browser" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Open the Slic3r website in your browser" +msgstr "Apri la pagina di Slic3r sul browser" + #: src/slic3r/GUI/MainFrame.cpp:549 msgid "Open the software releases page in your browser" msgstr "Apri la pagina delle versioni software sul browser" @@ -4256,10 +4694,6 @@ msgstr "Apri la pagina delle versioni software sul browser" msgid "Optimize orientation" msgstr "Ottimizza orientamento" -#: src/slic3r/GUI/Plater.cpp:2643 -msgid "Optimize Rotation" -msgstr "Ottimizza Rotazione" - #: src/slic3r/GUI/Plater.cpp:2994 msgid "Optimize the rotation of the object for better print results." msgstr "Ottimizza la rotazione dell'oggetto per risultati di stampa migliori." @@ -4276,9 +4710,9 @@ msgstr "Opzioni per materiale di supporto e raft" msgid "Orientation found." msgstr "Trovato orientamento." -#: src/slic3r/GUI/Plater.cpp:2768 -msgid "Orientation search canceled." -msgstr "Ricerca orientamento annullata." +#: src/slic3r/GUI/Plater.cpp:2185 +msgid "Orientation search canceled" +msgstr "Ricerca orientamento annullata" #: src/slic3r/GUI/BedShapeDialog.cpp:79 msgid "Origin" @@ -4292,6 +4726,10 @@ msgstr "Altro" msgid "Other layers" msgstr "Altri layer" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:252 +msgid "Other vendors" +msgstr "Altri fornitori" + #: src/slic3r/GUI/ConfigWizard.cpp:438 msgid "Other Vendors" msgstr "Altri Fornitori" @@ -4344,25 +4782,9 @@ msgstr "Pad" msgid "Pad and Support" msgstr "Pad e Supporto" -#: src/libslic3r/PrintConfig.cpp:2732 -msgid "Pad around object" -msgstr "Pad Intorno all'oggetto" - -#: src/libslic3r/PrintConfig.cpp:2731 -msgid "Pad object connector penetration" -msgstr "Penetrazione connettore Pad dell'oggetto" - -#: src/libslic3r/PrintConfig.cpp:2711 -msgid "Pad object connector stride" -msgstr "Passo del connettore del pad dell'oggetto" - -#: src/libslic3r/PrintConfig.cpp:2721 -msgid "Pad object connector width" -msgstr "Lunghezza connettore Pad dell'oggetto" - -#: src/libslic3r/PrintConfig.cpp:2700 -msgid "Pad object gap" -msgstr "Spazio Pad oggetto" +#: src/libslic3r/PrintConfig.cpp:2559 +msgid "Pad edge radius" +msgstr "Raggio del bordo del pad" #: src/libslic3r/PrintConfig.cpp:2532 msgid "Pad wall height" @@ -4408,10 +4830,6 @@ msgstr "Incolla appunti" msgid "Paste from clipboard" msgstr "Incolla dagli appunti" -#: src/slic3r/GUI/Plater.cpp:4772 -msgid "Paste From Clipboard" -msgstr "Incolla dagli appunti" - #: src/libslic3r/PrintConfig.cpp:1915 msgid "Pattern" msgstr "Trama" @@ -4451,18 +4869,34 @@ msgid "Perimeters" msgstr "Perimetri" #: src/slic3r/GUI/ConfigWizard.cpp:440 -#, possible-c-format +#, c-format msgid "Pick another vendor supported by %s:" msgstr "Scegli un altro produttore supportato da %s:" +#: src/slic3r/GUI/ConfigWizard.cpp:423 +msgid "Pick another vendor supported by Slic3r PE:" +msgstr "Scegli un altro fornitore supportato da Slic3r PE:" + #: src/libslic3r/PrintConfig.cpp:2430 msgid "Pillar widening factor" msgstr "Fattore di espansione pilastro" +#: src/slic3r/GUI/Tab.cpp:3496 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "Il diametro dell'apice deve essere più piccolo del diametro del pilastro." + #: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 msgid "Place on face" msgstr "Posiziona sulla faccia" +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 +msgid "Place on face [F]" +msgstr "Posiziona sulla faccia [F]" + +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Place one more copy of the selected object" +msgstr "Posiziona una o più copie dell'oggetto selezionato" + #: src/slic3r/GUI/MainFrame.cpp:161 msgid "Plater" msgstr "Piano" @@ -4479,9 +4913,13 @@ msgstr "Per favore controlla e correggi la tua lista oggetti." msgid "Please check your object list before preset changing." msgstr "Per favore verifica la tua lista di oggetti prima di cambiare i preset." -#: src/slic3r/GUI/AboutDialog.cpp:39 src/slic3r/GUI/AboutDialog.cpp:286 -msgid "Portions copyright" -msgstr "Parti di copyright" +#: lib/Slic3r/GUI/Plater.pm:1897 +msgid "Please install the OpenGL modules to use this feature (see build instructions)." +msgstr "Ti preghiamo di installare i moduli OpenGL per utilizzare questa funzione (vedi le istruzioni di montaggio)." + +#: src/slic3r/GUI/GUI_App.cpp:742 +msgid "Please, check your changes before." +msgstr "Per favore, prima verifica le tue modifiche." #: src/libslic3r/PrintConfig.cpp:2235 msgid "Portrait" @@ -4537,31 +4975,31 @@ msgid "Preparing infill" msgstr "Preparazione infill" #: src/slic3r/GUI/Tab.cpp:2758 -#, possible-c-format +#, c-format msgid "Preset (%s)" msgstr "Preset (%s)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center" -msgstr "Premere per attivare il rettangolo di deselezione\no per ridimensionare o ruotare gli oggetti selezionati\nattorno al loro centro" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:148 -msgid "Press to activate one direction scaling in Gizmo scale" -msgstr "Premere per attivare una direzione di ridimensionamento nel Gizmo ridimensiona" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 -#, possible-c-format -msgid "Press to activate selection rectangle\nor to snap by 5% in Gizmo scale\nor to snap by 1mm in Gizmo move" -msgstr "Premere per attivare il rettangolo di selezione\no per incrementi del 5% nel Gizmo ridimensiona\no per incrementi di 1mm nel Gizmo sposta" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to scale selection to fit print volume\nin Gizmo scale" -msgstr "Premere per ridimensionare la selezione così da entrare nel volume di stampa\nnel Gizmo ridimensiona" +msgid "" +"Press to scale or rotate selected objects\n" +"around their own center" +msgstr "" +"Premi per ridimensionare o ruotare gli oggetti selezionati\n" +"attorno al loro centro" #: src/slic3r/GUI/KBShortcutsDialog.cpp:127 msgid "Press to select multiple object or move multiple object with mouse" msgstr "Premi per selezionare o spostare oggetti multipli con il mouse" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +#, no-c-format +msgid "" +"Press to snap by 5% in Gizmo scale\n" +"or by 1mm in Gizmo move" +msgstr "" +"Premi per scatti del 5% con Gizmo Ridimensiona\n" +"o di 1mm nel Gizmo sposta" + #: src/slic3r/GUI/Tab.cpp:2288 msgid "Preview" msgstr "Anteprima" @@ -4619,10 +5057,6 @@ msgstr "Scavalca velocità di stampa" msgid "Print&er Settings Tab" msgstr "Impostazioni Stampant&e" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1438 -msgid "Printable" -msgstr "Stampabile" - #: src/slic3r/GUI/Plater.cpp:685 msgid "Printer" msgstr "Stampante" @@ -4676,17 +5110,33 @@ msgstr "Venditore della stampante" msgid "Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current extruder (support_material_extruder == 0 or support_material_interface_extruder == 0), all nozzles have to be of the same diameter." msgstr "Stampa con più estrusori con ugelli di di diametro diverso. Se il supporto deve essere stampato con l'estrusore corrente (support_material_extruder = = 0 o support_material_interface_extruder = = 0), tutti gli ugelli devono avere lo stesso diametro." +#: lib/Slic3r/GUI/Plater.pm:324 +msgid "Print…" +msgstr "Stampa…" + +#: src/slic3r/GUI/MainFrame.cpp:704 +msgid "Processing " +msgstr "Elaborando " + #. TRN "Processing input_file_basename" #: src/slic3r/GUI/MainFrame.cpp:715 -#, possible-c-format +#, c-format msgid "Processing %s" msgstr "Elaborando %s" +#: lib/Slic3r/GUI/Plater.pm:713 lib/Slic3r/GUI/Plater.pm:727 +msgid "Processing input file\n" +msgstr "Elaborando il file di input\n" + #: src/slic3r/GUI/Plater.cpp:1600 -#, possible-c-format +#, c-format msgid "Processing input file %s\n" msgstr "Processando il file di input %s\n" +#: src/libslic3r/SLA/SLASupportTree.cpp:2160 +msgid "Processing small holes" +msgstr "Processare piccoli buchi" + #: src/libslic3r/PrintObject.cpp:110 msgid "Processing triangulated mesh" msgstr "Elaborando la mesh triangolata" @@ -4709,6 +5159,18 @@ msgstr "Progresso:" msgid "Prusa 3D &Drivers" msgstr "Prusa 3D &Drivers" +#: lib/Slic3r/GUI/MainFrame.pm:338 +msgid "Prusa 3D Drivers" +msgstr "Driver Prusa 3D" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Prusa Edition &Releases" +msgstr "Ve&rsioni Prusa Edition" + +#: lib/Slic3r/GUI/MainFrame.pm:341 +msgid "Prusa Edition Releases" +msgstr "Versioni Prusa Edition" + #: src/slic3r/GUI/ConfigWizard.cpp:1109 msgid "Prusa FFF Technology Printers" msgstr "Stampanti Prusa con tecnologia FFF" @@ -4717,19 +5179,18 @@ msgstr "Stampanti Prusa con tecnologia FFF" msgid "Prusa MSLA Technology Printers" msgstr "Stampanti Prusa con tecnologia MSLA" -#: src/slic3r/GUI/AboutDialog.cpp:255 -msgid "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community." -msgstr "PrusaSlicer è basato su Slic3r di Alessandro Ranellucci e la comunità RepRap." - -#: src/slic3r/GUI/GUI_App.cpp:297 -#, possible-c-format -msgid "PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \nwhile OpenGL version %s, render %s, vendor %s was detected." -msgstr "PrusaSlicer richiede un driver video con supporto OpenGL 2.0 per funzionare correttamente, mentre è stata rilevata la versione %s OpenGL, render %s, distributore %s." - #: src/libslic3r/PrintConfig.cpp:2153 msgid "Purging after toolchange will 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 "Lo spurgo dopo un cambio di attrezzo verrà effettuato dentro il riempimento di questo oggetto. Questo diminuisce la quantità di scarto ma potrebbe prolungare il tempo di stampa a causa di spostamenti aggiuntivi." +#: xs/src/libslic3r/PrintConfig.cpp:1996 +msgid "Purging into infill" +msgstr "Spurgo nel riempimento" + +#: xs/src/libslic3r/PrintConfig.cpp:2005 +msgid "Purging into objects" +msgstr "Spurgo negli oggetti" + #: src/slic3r/GUI/Plater.cpp:456 msgid "Purging volumes" msgstr "Volumi di spurgo" @@ -4742,6 +5203,10 @@ msgstr "Volumi di spurgo - volumi di carico/scarico" msgid "Purging volumes - matrix" msgstr "Volumi di spurgo - matrice" +#: lib/Slic3r/GUI/MainFrame.pm:232 +msgid "Q&uick Slice…\tCtrl+U" +msgstr "Slice &Rapido… \tCtrl+U" + #: src/slic3r/GUI/Tab.cpp:1019 msgid "Quality (slower slicing)" msgstr "Qualità (slicing più lento)" @@ -4749,23 +5214,39 @@ msgstr "Qualità (slicing più lento)" #: src/slic3r/GUI/GUI_ObjectList.cpp:854 src/slic3r/GUI/GUI_ObjectList.cpp:1139 #: src/slic3r/GUI/GUI_ObjectList.cpp:1145 #: src/slic3r/GUI/GUI_ObjectList.cpp:1377 -#, possible-c-format +#, c-format msgid "Quick Add Settings (%s)" msgstr "Aggiungere Impostazioni Rapide (%s)" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +msgid "Quick slice" +msgstr "Slice veloce" + #: src/slic3r/GUI/MainFrame.cpp:383 msgid "Quick Slice" msgstr "Slice veloce" +#: lib/Slic3r/GUI/MainFrame.pm:238 +msgid "Quick Slice and Save &As…\tCtrl+Alt+U" +msgstr "Slice veloce e S&alva come… \tCtrl+Alt+U" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 +msgid "Quick slice and Save as" +msgstr "Slice veloce e salva come" + #: src/slic3r/GUI/MainFrame.cpp:389 msgid "Quick Slice and Save As" msgstr "Slice veloce e Salva Come" #: src/slic3r/GUI/MainFrame.cpp:409 -#, possible-c-format +#, c-format msgid "Quit %s" msgstr "Chiudi %s" +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "Quit Slic3r" +msgstr "Chiudi Slic3r" + #: src/libslic3r/PrintConfig.cpp:479 msgid "Radius" msgstr "Raggio" @@ -4778,13 +5259,23 @@ msgstr "Raft" msgid "Raft layers" msgstr "Layer raft" +#: xs/src/slic3r/GUI/Tab.cpp:1299 +msgid "Ramming" +msgstr "Ramming" + #: src/slic3r/GUI/WipeTowerDialog.cpp:14 msgid "Ramming customization" msgstr "Personalizzazione del ramming" #: src/slic3r/GUI/WipeTowerDialog.cpp:40 -msgid "Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n\nThis is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." -msgstr "Il ramming è la rapida estrusione appena prima di un cambio di attrezzo in una stampante MM ad estrusore singolo. Lo scopo è di dare la forma corretta al capo del filamento scaricato cosicché non prevenga l'inserzione del nuovo filamento e perché possa essere inserito più facilmente esso stesso. Questa fase è importante e materiali diversi possono richiedere velocità diverse per ottenere la forma corretta. Per questo motivo le velocità di estrusione del ramming possono essere modificate.\n\nQuesta è un'impostazione per esperti, valori scorretti produrranno facilmente dei blocchi, o porteranno l'ingranaggio di estrusione a macinare il filamento etc." +msgid "" +"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n" +"\n" +"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." +msgstr "" +"Il ramming è la rapida estrusione appena prima di un cambio di attrezzo in una stampante MM ad estrusore singolo. Lo scopo è di dare la forma corretta al capo del filamento scaricato cosicché non prevenga l'inserzione del nuovo filamento e perché possa essere inserito più facilmente esso stesso. Questa fase è importante e materiali diversi possono richiedere velocità diverse per ottenere la forma corretta. Per questo motivo le velocità di estrusione del ramming possono essere modificate.\n" +"\n" +"Questa è un'impostazione per esperti, valori scorretti produrranno facilmente dei blocchi, o porteranno l'ingranaggio di estrusione a macinare il filamento etc." #: src/slic3r/GUI/WipeTowerDialog.cpp:90 msgid "Ramming line spacing" @@ -4806,10 +5297,6 @@ msgstr "Impostazioni del ramming" msgid "Random" msgstr "Casuale" -#: src/slic3r/GUI/wxExtensions.cpp:486 -msgid "Range" -msgstr "Intervallo" - #: src/libslic3r/SLAPrint.cpp:72 msgid "Rasterizing layers" msgstr "Rasterizzazione dei layer" @@ -4834,12 +5321,13 @@ msgstr "Posteriore" msgid "Rear View" msgstr "Vista posteriore" -#: src/slic3r/GUI/MainFrame.cpp:401 -msgid "Recent projects" -msgstr "Progetti recenti" +#: src/slic3r/GUI/PresetHints.cpp:264 +#, c-format +msgid "Recommended object thin wall thickness for layer height %.2f and " +msgstr "Spessore raccomandato per oggetto con parete sottile per altezza layer %.2f e " #: src/slic3r/GUI/PresetHints.cpp:262 -#, possible-c-format +#, c-format msgid "Recommended object thin wall thickness for layer height %.2f and" msgstr "Spessore raccomandato per oggetto con parete sottile per altezza layer %.2f e" @@ -4864,22 +5352,6 @@ msgstr "Rettilineo" msgid "Rectilinear grid" msgstr "Griglia rettilinea" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3639 -#: src/slic3r/GUI/MainFrame.cpp:562 -msgid "Redo" -msgstr "Ripeti" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Redo %1$d Action" -msgid_plural "Redo %1$d Actions" -msgstr[0] "Ripeti %1$d Azione" -msgstr[1] "Ripeti %1$d Azioni" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Redo History" -msgstr "Storia Ripeti" - #: src/slic3r/GUI/Tab.cpp:1037 msgid "Reducing printing time" msgstr "Riduzione tempo di stampa" @@ -4913,17 +5385,17 @@ msgstr "Rimuovi tutti i punti" msgid "Remove instance" msgstr "Rimuovi istanza" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 +msgid "Remove Instance from selected object" +msgstr "Rimuovi Istanza dall'oggetto selezionato" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:125 msgid "Remove Instance of the selected object" msgstr "Rimuovi Istanza dell'oggetto selezionato" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:153 -msgid "Remove layer range" -msgstr "Rimuovi intervallo layer" - -#: src/slic3r/GUI/Plater.cpp:3518 -msgid "Remove one instance of the selected object" -msgstr "Rimuovi una istanza dell'oggetto selezionato" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Remove one copy of the selected object" +msgstr "Rimuovi una copia dell'oggetto selezionato" #: src/slic3r/GUI/GUI_ObjectSettings.cpp:83 msgid "Remove parameter" @@ -4954,14 +5426,6 @@ msgstr "Rimuovi profili utente - reinstalla da zero (sarà prima fatto uno snaps msgid "Rename" msgstr "Rinomina" -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Object" -msgstr "Rinomina oggetto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Sub-object" -msgstr "Rinomina sotto-oggetto" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2709 msgid "Renaming" msgstr "Rinomina" @@ -4978,6 +5442,10 @@ msgstr "Eseguire il rendering con un software redender. Viene caricato il softwa msgid "Repair" msgstr "Ripara" +#: lib/Slic3r/GUI/MainFrame.pm:258 +msgid "Repair STL file…" +msgstr "Ripara file STL…" + #: src/slic3r/Utils/FixModelByWin10.cpp:387 msgid "Repaired 3MF file contains more than one object" msgstr "Il file 3MF riparato contiene più di un oggetto" @@ -5010,23 +5478,31 @@ msgstr "Ripeti l'ultimo slice veloce" msgid "Report an I&ssue" msgstr "&Segnala un problema" +#: lib/Slic3r/GUI/MainFrame.pm:361 +msgid "Report an Issue" +msgstr "Segnala un problema" + #: src/slic3r/GUI/MainFrame.cpp:561 -#, possible-c-format +#, c-format msgid "Report an issue on %s" msgstr "Segnala un problema su %s" +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an issue on the Slic3r Prusa Edition" +msgstr "Segnala un problema su Slic3r Prusa Edition" + #: src/slic3r/Utils/PresetUpdater.cpp:590 -#, possible-c-format +#, c-format msgid "requires max. %s" msgstr "richiede max. %s" #: src/slic3r/Utils/PresetUpdater.cpp:588 -#, possible-c-format +#, c-format msgid "requires min. %s" msgstr "richiede min. %s" #: src/slic3r/Utils/PresetUpdater.cpp:583 -#, possible-c-format +#, c-format msgid "requires min. %s and max. %s" msgstr "richiede min. %s e max. %s" @@ -5046,27 +5522,6 @@ msgstr "Ripristina piano di ritaglio" msgid "Reset direction" msgstr "Reset direzione" -#: src/slic3r/GUI/Plater.cpp:2603 -msgid "Reset Project" -msgstr "Reimposta Progetto" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:303 -msgid "Reset rotation" -msgstr "Reimposta rotazione" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:328 -msgid "Reset Rotation" -msgstr "Reimposta rotazione" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:285 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:290 -msgid "Reset scale" -msgstr "Reimposta scala" - -#: src/slic3r/GUI/Tab.cpp:2584 -msgid "Reset to Filament Color" -msgstr "Ripristina colore Filamento" - #: src/libslic3r/PrintConfig.cpp:1441 msgid "Resolution" msgstr "Risoluzione" @@ -5111,10 +5566,6 @@ msgstr "Retrazioni" msgid "Right" msgstr "Destra" -#: src/slic3r/GUI/GUI_ObjectList.cpp:381 -msgid "Right button click the icon to change the object printable property" -msgstr "Fare clic con il pulsante destro del mouse sull'icona per modificare le proprietà dell'oggetto stampabile" - #: src/slic3r/GUI/GUI_ObjectList.cpp:279 msgid "Right button click the icon to change the object settings" msgstr "Click destro sull'icona per cambiare le impostazioni dell'oggetto" @@ -5127,6 +5578,10 @@ msgstr "Click destro sull'icona per riparare il file STL tramite Netfabb" msgid "Right click" msgstr "Click destro" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:598 +msgid "Right mouse click - remove point" +msgstr "Clic destro - rimuovi punto" + #: src/slic3r/GUI/MainFrame.cpp:528 msgid "Right View" msgstr "Vista destra" @@ -5137,6 +5592,18 @@ msgstr "Vista destra" msgid "Rotate" msgstr "Ruota" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate 45° clockwise" +msgstr "Ruota 45° senso orario" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate 45° counter-clockwise" +msgstr "Ruota 45° antiorario" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Rotate around " +msgstr "Ruota attorno" + #: src/libslic3r/PrintConfig.cpp:3067 msgid "Rotate around X" msgstr "Ruota attorno ad X" @@ -5148,7 +5615,35 @@ msgstr "Ruota attorno ad Y" #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:35 #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:195 msgid "Rotate lower part upwards" -msgstr "Capovolgi la parte inferiore" +msgstr "Capovolgi la parte inferiore " + +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate the selected object by 45° clockwise" +msgstr "Ruota l'oggetto selezionato di 45° in senso orario" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate the selected object by 45° counter-clockwise" +msgstr "Ruota l'oggetto selezionato di 45° in senso antiorario" + +#: lib/Slic3r/GUI/Plater.pm:2236 +msgid "Rotate the selected object by an arbitrary angle" +msgstr "Ruota l'oggetto selezionato di un angolo arbitrario" + +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Rotate the selected object by an arbitrary angle around X axis" +msgstr "Ruota l'oggetto selezionato di un angolo arbitrario attorno l'asse X" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Rotate the selected object by an arbitrary angle around Y axis" +msgstr "Ruota l'oggetto selezionato di un angolo arbitrario attorno l'asse Y" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Rotate the selected object by an arbitrary angle around Z axis" +msgstr "Ruota l'oggetto selezionato di un angolo arbitrario attorno l'asse Z" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +msgid "Rotate [R]" +msgstr "Ruota [R]" #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:151 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:194 @@ -5171,8 +5666,16 @@ msgstr "Angolo di rotazione sull'asse Y in gradi." msgid "Rotation angle around the Z axis in degrees." msgstr "Angolo di rotazione attorno all'asse Z in gradi." +#: src/libslic3r/SLA/SLASupportTree.cpp:2158 +msgid "Routing supports to model surface" +msgstr "Indirizzamento supporti alla superficie del modello" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2157 +msgid "Routing to ground" +msgstr "Movimento a terra" + #: src/slic3r/GUI/ConfigWizard.cpp:298 src/slic3r/GUI/GUI_App.cpp:658 -#, possible-c-format +#, c-format msgid "Run %s" msgstr "Run %s" @@ -5189,22 +5692,18 @@ msgstr "Esecuzione script di post produzione" msgid "s" msgstr "s" -#: src/slic3r/GUI/MainFrame.cpp:466 src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end G-code" -msgstr "Invia G-cod&e" - -#: src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end to print" -msgstr "Manda in stampa" +#: src/slic3r/GUI/MainFrame.cpp:677 src/slic3r/GUI/Tab.cpp:3239 +msgid "Save " +msgstr "Salva " #. TRN Preset #: src/slic3r/GUI/Tab.cpp:3264 -#, possible-c-format +#, c-format msgid "Save %s as:" msgstr "Salva %s come:" #: src/slic3r/GUI/MainFrame.cpp:686 -#, possible-c-format +#, c-format msgid "Save %s file as:" msgstr "Salva file %s come:" @@ -5224,9 +5723,13 @@ msgstr "Salva configurazione come:" msgid "Save configuration to the specified file." msgstr "Salva configurazione nel file specificato." +#: src/slic3r/GUI/Tab.cpp:130 +msgid "Save current " +msgstr "Salva le attuali" + #. TRN "Save current Settings" #: src/slic3r/GUI/Tab.cpp:133 -#, possible-c-format +#, c-format msgid "Save current %s" msgstr "Salva le %s attuali" @@ -5291,29 +5794,53 @@ msgstr "Ridimensiona" msgid "Scale (%)" msgstr "Ridimensiona (%)" +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +msgid "Scale along " +msgstr "Ridimensiona lungo " + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:195 msgid "Scale factors" msgstr "Fattore di scala" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale the selected object to fit the print volume" -msgstr "Ridimensiona l'oggetto selezionato per entrare nel volume di stampa" +#: lib/Slic3r/GUI/Plater.pm:2262 lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale the selected object along a single axis" +msgstr "Ridimensiona l'oggetto selezionato lungo un singolo asse" + +#: lib/Slic3r/GUI/Plater.pm:2267 lib/Slic3r/GUI/Plater.pm:2283 +msgid "Scale the selected object along the X axis" +msgstr "Ridimensiona l'oggetto selezionato lungo l'asse X" + +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Scale the selected object along the XYZ axes" +msgstr "Ridimensiona l'oggetto selezionato lungo gli assi XYZ" + +#: lib/Slic3r/GUI/Plater.pm:2270 lib/Slic3r/GUI/Plater.pm:2286 +msgid "Scale the selected object along the Y axis" +msgstr "Ridimensiona l'oggetto selezionato lungo l'asse Y" + +#: lib/Slic3r/GUI/Plater.pm:2273 lib/Slic3r/GUI/Plater.pm:2289 +msgid "Scale the selected object along the Z axis" +msgstr "Ridimensiona l'oggetto selezionato lungo l'asse Z" #: src/libslic3r/PrintConfig.cpp:3086 msgid "Scale to Fit" msgstr "Ridimensiona per riempire" -#: src/slic3r/GUI/Selection.cpp:947 -msgid "Scale To Fit" -msgstr "Ridimensiona per adattare" - #: src/libslic3r/PrintConfig.cpp:3087 msgid "Scale to fit the given volume." msgstr "Ridimensiona per adattare al volume dato." -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale to print volume" -msgstr "Ridimensiona a volume di stampa" +#: lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale to size" +msgstr "Ridimensiona alla dimensione" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:51 +msgid "Scale [S]" +msgstr "Ridimensiona[S]" + +#: lib/Slic3r/GUI/Plater.pm:260 lib/Slic3r/GUI/Plater.pm:276 +msgid "Scale…" +msgstr "Ridimensiona…" #: src/libslic3r/PrintConfig.cpp:3078 msgid "Scaling factor or percentage." @@ -5343,6 +5870,22 @@ msgstr "Ricerca dispositivi" msgid "Searching for optimal orientation" msgstr "Ricerca orientamento ottimale" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Select &Controller Tab\tCtrl+T" +msgstr "Attiva Scheda &Controller\tCtrl+T" + +#: lib/Slic3r/GUI/MainFrame.pm:311 +msgid "Select &Filament Settings Tab\tCtrl+3" +msgstr "Attiva Scheda Impostazioni &Filamento\tCtrl+3" + +#: lib/Slic3r/GUI/MainFrame.pm:294 +msgid "Select &Plater Tab\tCtrl+1" +msgstr "Attiva Scheda &Piano\tCtrl+1" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:108 +msgid "Select all" +msgstr "Seleziona tutto" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:136 msgid "Select All objects" msgstr "Seleziona Tutti gli oggetti" @@ -5379,10 +5922,22 @@ msgstr "Seleziona l'estrusore numero:" msgid "Select Filament Settings Tab" msgstr "Attiva Scheda impostazioni di Filamento" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 +msgid "Select multiple object/Move multiple object" +msgstr "Seleziona oggetti multipli / Sposta oggetti multipli" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1251 msgid "Select new extruder for the object/part" msgstr "Seleziona il nuovo estrusore per l'oggetto/parte" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:109 +msgid "Select none" +msgstr "Deseleziona tutti" + +#: lib/Slic3r/GUI/MainFrame.pm:308 +msgid "Select P&rint Settings Tab\tCtrl+2" +msgstr "Attiva Scheda impostazioni di &Stampa\tCtrl+2" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:114 msgid "Select Plater Tab" msgstr "Seleziona scheda piano" @@ -5391,6 +5946,10 @@ msgstr "Seleziona scheda piano" msgid "Select Print Settings Tab" msgstr "Attiva Scheda Impostazioni di Stampa" +#: lib/Slic3r/GUI/MainFrame.pm:314 +msgid "Select Print&er Settings Tab\tCtrl+4" +msgstr "Attiva Scheda Impostazioni Stampant&e\tCtrl+4" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:118 msgid "Select Printer Settings Tab" msgstr "Attiva Scheda Impostazioni Stampante" @@ -5415,70 +5974,14 @@ msgstr "Seleziona le stampanti compatibili con questo profilo." msgid "Select the STL file to repair:" msgstr "Seleziona il file STL da riparare:" -#: src/slic3r/GUI/Preferences.cpp:207 -msgid "Select toolbar icon size in respect to the default one." -msgstr "Seleziona la dimensione delle icone della barra degli strumenti rispetto a quella predefinita." - #: src/slic3r/GUI/GUI_ObjectList.cpp:2545 msgid "Select type of part" msgstr "Seleziona il tipo di parte" -#: src/slic3r/GUI/Plater.cpp:606 -msgid "Select what kind of pad do you need" -msgstr "Seleziona il tipo di Pad richiesto" - #: src/slic3r/GUI/Plater.cpp:421 msgid "Select what kind of support do you need" msgstr "Seleziona il tipo di supporto richiesto" -#: src/slic3r/GUI/Selection.cpp:146 -msgid "Selection-Add" -msgstr "Selezione-Aggiungi" - -#: src/slic3r/GUI/Selection.cpp:384 -msgid "Selection-Add All" -msgstr "Selezione-Aggiungi tutti" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2875 -msgid "Selection-Add from list" -msgstr "Aggiungi selezione da elenco" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5623 -msgid "Selection-Add from rectangle" -msgstr "Aggiungi Selezione da rettangolo" - -#: src/slic3r/GUI/Selection.cpp:256 -msgid "Selection-Add Instance" -msgstr "Selezione-Aggiungi istanza" - -#: src/slic3r/GUI/Selection.cpp:219 -msgid "Selection-Add Object" -msgstr "Selezione-Aggiungi Oggetto" - -#: src/slic3r/GUI/Selection.cpp:187 -msgid "Selection-Remove" -msgstr "Selezione-Rimuovi" - -#: src/slic3r/GUI/Selection.cpp:410 -msgid "Selection-Remove All" -msgstr "Selezione-Rimuovi tutti" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2867 -msgid "Selection-Remove from list" -msgstr "Rimozione Selezione dall'elenco" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5642 -msgid "Selection-Remove from rectangle" -msgstr "Rimuovi selezione da rettangolo" - -#: src/slic3r/GUI/Selection.cpp:275 -msgid "Selection-Remove Instance" -msgstr "Selezione-Rimuovi istanza" - -#: src/slic3r/GUI/Selection.cpp:238 -msgid "Selection-Remove Object" -msgstr "Selezione-Rimuovi oggetto" - #: src/slic3r/GUI/MainFrame.cpp:444 msgid "Selects all objects" msgstr "Seleziona tutti gli oggetti" @@ -5487,18 +5990,22 @@ msgstr "Seleziona tutti gli oggetti" msgid "Send G-code" msgstr "Invia G-code" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Send G-Code to printer" +msgstr "Invia il G-Code alla stampante" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Send G-Code to printer host" msgstr "Invia G-code all’host stampante" -#: src/slic3r/GUI/MainFrame.cpp:466 -msgid "Send to print current plate as G-code" -msgstr "Manda alla stampante il piano corrente come G-Code" - #: src/slic3r/GUI/Plater.cpp:731 src/slic3r/GUI/Plater.cpp:3822 msgid "Send to printer" msgstr "Manda alla stampante" +#: xs/src/slic3r/Utils/OctoPrint.cpp:111 lib/Slic3r/GUI/Plater.pm:1558 +msgid "Sending G-code file to the OctoPrint server..." +msgstr "Invio del G-code al server OctoPrint..." + #: src/slic3r/GUI/Tab.cpp:1169 msgid "Sequential printing" msgstr "Stampa sequenziale" @@ -5541,38 +6048,17 @@ msgstr "Imposta estrusore per gli elementi selezionati" msgid "Set lower thumb to current slider thumb" msgstr "Imposta il cursore inferiore alla barra di scorrimento attuale" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:245 -msgid "Set Mirror" -msgstr "Imposta specchio" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Set number of instances" -msgstr "Imposta numero di istanze" - -#: src/slic3r/GUI/Plater.cpp:4163 -#, possible-c-format -msgid "Set numbers of copies to %d" -msgstr "Imposta il numero di copie a %d" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:746 -msgid "Set Orientation" -msgstr "Imposta orientamento" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Set number of copies" +msgstr "Imposta il numero di copie" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:715 -msgid "Set Position" -msgstr "Imposta posizione" +#: lib/Slic3r/GUI/Plater.pm:2224 +msgid "Set number of copies…" +msgstr "Imposta numero delle copie…" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Printable" -msgstr "Imposta stampabile" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Printable Instance" -msgstr "Imposta Istanza Stampabile" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:811 -msgid "Set Scale" -msgstr "Imposta scala" +#: src/libslic3r/PrintConfig.cpp:1053 +msgid "Set silent mode for the G-code flavor" +msgstr "Impostare la modalità silenziosa per il formato G-Code" #: src/libslic3r/PrintConfig.cpp:2228 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." @@ -5626,14 +6112,6 @@ msgstr "Impostate alla massima altezza che può essere raggiunta dal vostro estr msgid "Set this to the vertical distance between your nozzle tip and (usually) the X carriage rods. In other words, this is the height of the clearance cylinder around your extruder, and it represents the maximum depth the extruder can peek before colliding with other printed objects." msgstr "Imposta la distanza verticale tra la punta dell'ugello e (solitamente) le barre del carrello X. In altre parole, questa è l'altezza dello spazio cilindrico attorno l'estrusore, e indica la profondità massima che l'estrusore può affacciarsi prima di sbattere con altri oggetti stampati." -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Unprintable" -msgstr "Imposta non stampabile" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Unprintable Instance" -msgstr "Imposta Istanza non stampabile" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:184 msgid "Set upper thumb to current slider thumb" msgstr "Imposta il cursore superiore alla barra di scorrimento attuale" @@ -5642,9 +6120,10 @@ msgstr "Imposta il cursore superiore alla barra di scorrimento attuale" msgid "Settings" msgstr "Impostazioni" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Settings for height range" -msgstr "Impostazioni per intervallo altezza" +#: lib/Slic3r/GUI/Plater.pm:264 lib/Slic3r/GUI/Plater.pm:279 +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Settings…" +msgstr "Impostazioni…" #: src/slic3r/GUI/BedShapeDialog.cpp:60 msgid "Shape" @@ -5654,6 +6133,10 @@ msgstr "Forma" msgid "Shells" msgstr "Gusci" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:599 +msgid "Shift + Left (+ drag) - select point(s)" +msgstr "Shift + Sinistro (+ Trascina) - seleziona punto/i" + #: src/slic3r/GUI/GUI_Preview.cpp:221 msgid "Show" msgstr "Mostra" @@ -5722,6 +6205,10 @@ msgstr "Mostra il piano" msgid "Show the print settings" msgstr "Mostra impostazioni di stampa" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Show the printer controller" +msgstr "Mostra controller stampante" + #: src/slic3r/GUI/MainFrame.cpp:483 msgid "Show the printer settings" msgstr "Mostra impostazioni della stampante" @@ -5734,9 +6221,13 @@ msgstr "Mostra questo aiuto." msgid "Show user configuration folder (datadir)" msgstr "Mostra cartella configurazione utente (datadir)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 -msgid "Show/Hide (L)egend" -msgstr "Mostra/Nascondi (L)egenda" +#: src/slic3r/GUI/Tab.cpp:2157 +msgid "Silent" +msgstr "Silenziosa" + +#: src/slic3r/GUI/Plater.cpp:1077 +msgid "silent mode" +msgstr "modalità silenziosa" #: src/slic3r/GUI/GUI_App.cpp:674 src/slic3r/GUI/wxExtensions.cpp:2459 msgid "Simple" @@ -5754,10 +6245,6 @@ msgstr "Setup Estrusore singolo MM" msgid "Single Extruder Multi Material" msgstr "Estrusore singolo Multi Material" -#: src/slic3r/GUI/Tab.cpp:2023 -msgid "Single Extruder Multi Material is selected, \nand all extruders must have the same diameter.\nDo you want to change the diameter for all extruders to first extruder nozzle diameter value?" -msgstr "Materiale multiplo a singolo estrusore selezionato,\ntutti gli estrusori devono avere lo stesso diametro.\nVuoi modificare il diametro di tutti gli estrusori al valore del diametro dell'ugello del primo estrusore?" - #: src/slic3r/GUI/Tab.cpp:2240 msgid "Single extruder multimaterial parameters" msgstr "Parametri estrusore singolo materiale multiplo" @@ -5797,14 +6284,6 @@ msgstr "Giri skirt" msgid "SLA gizmo keyboard shortcuts" msgstr "Scorciatoie di tastiera gizmo SLA" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1150 -msgid "SLA gizmo turned off" -msgstr "Gizmo SLA disattivato" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1115 -msgid "SLA gizmo turned on" -msgstr "Gizmo SLA attivato" - #: src/slic3r/GUI/Plater.cpp:684 src/slic3r/GUI/Preset.cpp:1277 msgid "SLA material" msgstr "Materiale SLA" @@ -5825,6 +6304,10 @@ msgstr "Impostazioni di stampa SLA" msgid "SLA Support Points" msgstr "Punti di Supporto SLA" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:995 +msgid "SLA Support Points [L]" +msgstr "Punti di Supporto SLA [L]" + #: src/slic3r/GUI/GLCanvas3D.cpp:722 msgid "SLA supports outside the print area were detected" msgstr "Sono stati rilevati supporti SLA al di fuori dell'area di stampa" @@ -5833,6 +6316,22 @@ msgstr "Sono stati rilevati supporti SLA al di fuori dell'area di stampa" msgid "Slab" msgstr "Lastra" +#: src/slic3r/GUI/Tab.hpp:389 +msgid "sla_material" +msgstr "materiale_sla" + +#: src/slic3r/GUI/Tab.hpp:403 +msgid "sla_print" +msgstr "stampa_sla" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Slic3r &Manual" +msgstr "&Manuale Slic3r" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Slic3r &Website" +msgstr "Sito &web Slic3r" + #: src/libslic3r/PrintConfig.cpp:1268 msgid "Slic3r can upload G-code files to a printer host. This field must contain the kind of the host." msgstr "Slic3r può caricare il file G-code ad un host stampante. Questo campo deve contenere il tipo di host." @@ -5845,10 +6344,67 @@ msgstr "Slic3r può caricare i file G-code su un host di stampa. Questo campo de msgid "Slic3r can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance." msgstr "Slic3r può caricare i file G-code su un host della stampante. Questo campo dovrebbe contenere il nome host, l'indirizzo IP o URL dell'istanza dell'host della stampante." +#: xs/src/libslic3r/PrintConfig.cpp:1110 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the API Key required for authentication." +msgstr "Slic3r può caricare i file G-code su OctoPrint. Questo campo dovrebbe contenere la chiave API richiesta per l'autenticazione." + +#: xs/src/libslic3r/PrintConfig.cpp:1124 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the hostname, IP address or URL of the OctoPrint instance." +msgstr "Slic3r può inviare file G-code a OctoPrint. Questo campo dovrebbe contenere il nome host, l'indirizzo IP o URL dell'istanza OctoPrint." + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r configuration is incompatible" +msgstr "Configurazione Slic3r incompatibile" + +#: lib/Slic3r/GUI/Plater.pm:1021 +msgid "Slic3r Error" +msgstr "Errore Slic3r" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r error" +msgstr "Errore Slic3r" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r has encountered an error" +msgstr "Slic3r ha riscontrato un errore" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r incompatibility" +msgstr "Incompatibilità Slic3r" + +#: src/slic3r/GUI/UpdateDialogs.cpp:168 +#, c-format +msgid "" +"Slic3r PE now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"Slic3r PE adesso utilizza una struttura di aggiornamento delle configurazioni.\n" +"\n" +"Sono stati introdotti i così detti 'Preset di sistema', che contengono i settaggi integrati predefiniti per varie stampanti. Questi preset di sistema non possono essere modificati, però l'utente può creare i propri preset ereditando le impostazioni da quelli di sistema.\n" +"Un preset ereditato può sia ereditare un valore particolare dal genitore, o sovrascriverlo con un valore personalizzato.\n" +"\n" +"Si prega di procedere con il %s che segue per impostare i nuovi preset e scegliere se abilitare gli aggiornamenti automatici del preset." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 +msgid "Slic3r Prusa Edition - Keyboard Shortcuts" +msgstr "Slic3r Prusa Edition - Scorciatoie di tastiera" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "Slic3r Prusa Edition - System Information" +msgstr "Slic3r Prusa Edition - Informazioni di Sistema" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 msgid "slic3r version" msgstr "versione di slic3r" +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Slic3r View Mode" +msgstr "Modalità di visualizzazione Slic3r" + #: src/libslic3r/PrintConfig.cpp:1234 msgid "Slic3r will not scale speed down below this speed." msgstr "Slic3r non rallenterà la velocità al di sotto di questa." @@ -5865,6 +6421,10 @@ msgstr "Processa un file in G-code" msgid "Slice a file into a G-code, save as" msgstr "Processa un file in G-code, salva come" +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice file to a multi-layer SVG" +msgstr "Processa il file in un SVG multi-layer" + #: src/libslic3r/PrintConfig.cpp:71 msgid "Slice gap closing radius" msgstr "Gap closing radius per slicing" @@ -5886,6 +6446,10 @@ msgstr "Effettua slice del modello ed esporta il percorso come G-code." msgid "Slice the model as FFF or SLA based on the printer_technology configuration value." msgstr "Effettua lo slice del modello come FFF o SLA in base al valore di configurazione di printer_technology." +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice to SV&G…\tCtrl+G" +msgstr "Processa a SV&G…\tCtrl+G" + #: src/slic3r/GUI/Plater.cpp:193 msgid "Sliced Info" msgstr "Informazioni processo" @@ -5896,6 +6460,10 @@ msgstr "Informazioni processo" msgid "Slicing" msgstr "Slicing" +#: lib/Slic3r/GUI/Plater.pm:1391 +msgid "Slicing cancelled" +msgstr "Slicing annullato" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:91 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:109 msgid "Slicing complete" @@ -5909,9 +6477,10 @@ msgstr "Slicing completato" msgid "Slicing Done!" msgstr "Slicing Completato!" -#: src/libslic3r/SLAPrint.cpp:759 -msgid "Slicing had to be stopped due to an internal error: Inconsistent slice index." -msgstr "Lo slicing è stato interrotto a causa di un errore interno: Indice di slice inconsistente." +#. TRN To be shown at the status bar on SLA slicing error. +#: src/libslic3r/SLAPrint.cpp:709 +msgid "Slicing had to be stopped due to an internal error." +msgstr "Lo slicing è stato interrotto a causa di un errore interno." #: src/libslic3r/SLAPrint.cpp:55 msgid "Slicing model" @@ -5921,6 +6490,10 @@ msgstr "Slice modello" msgid "Slicing supports" msgstr "Supporti di Slicing" +#: lib/Slic3r/GUI/MainFrame.pm:483 +msgid "Slicing…" +msgstr "Slicing…" + #: src/libslic3r/PrintConfig.cpp:2249 msgid "Slow" msgstr "Lento" @@ -5970,6 +6543,10 @@ msgstr "Area soglia riempimento solido" msgid "Solid layers" msgstr "Layer solidi" +#: src/libslic3r/PrintConfig.cpp:1832 +msgid "soluble" +msgstr "solubile" + #: src/libslic3r/PrintConfig.cpp:711 msgid "Soluble material" msgstr "Materiale solubile" @@ -5978,9 +6555,9 @@ msgstr "Materiale solubile" msgid "Soluble material is most likely used for a soluble support." msgstr "Il materiale solubile è comunemente usato per un supporto solubile." -#: src/libslic3r/PrintConfig.cpp:914 -msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any extrusion value at all." -msgstr "Alcuni comandi G/M-code, incluso il controllo di temperatura e altri, non sono universali. Imposta questa opzione nel firmware della tua stampante per ottenere un output compatibile. La versione \"No extrusion\" evita che PrusaSlicer non esporti alcun valore." +#: src/libslic3r/PrintConfig.cpp:889 +msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents Slic3r from exporting any extrusion value at all." +msgstr "Alcuni comandi G/M-code, incluso il controllo temperatura ed altri, non sono universali. Attiva questa impostazione sul firmware della tua stampante per ottenere un output compatibile. Il formato \"No estrusione\" impedisce che Slic3r esporti qualunque valore di estrusione." #: src/slic3r/GUI/GLCanvas3D.cpp:721 msgid "Some objects are not visible when editing supports" @@ -6080,18 +6657,34 @@ msgstr "Velocità del primo movimento di raffreddamento" msgid "Speed of the last cooling move" msgstr "Velocità dell'ultimo movimento di raffreddamento" +#: src/libslic3r/PrintConfig.cpp:584 +msgid "Speed used at the very beginning of loading phase. " +msgstr "Velocità utilizzata all'inizio della fase di caricamento." + #: src/libslic3r/PrintConfig.cpp:585 msgid "Speed used at the very beginning of loading phase." msgstr "Velocità utilizzata all'inizio della fase di caricamento." +#: src/libslic3r/PrintConfig.cpp:576 +msgid "Speed used for loading the filament on the wipe tower. " +msgstr "Velocità utilizzata per caricare il filamento sulla torre di spurgo. " + #: src/libslic3r/PrintConfig.cpp:577 msgid "Speed used for loading the filament on the wipe tower." msgstr "Velocità utilizzata per caricare il filamento sulla torre di spurgo." +#: src/libslic3r/PrintConfig.cpp:592 +msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming). " +msgstr "Velocità usata per scaricare il filamento sulla wipe tower (non influisce sulla parte iniziale dello scaricamento dopo il ramming) " + #: src/libslic3r/PrintConfig.cpp:593 msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)." msgstr "Velocità usata per scaricare il filamento sulla wipe tower (non influisce sulla parte iniziale dello scaricamento dopo il ramming)." +#: src/libslic3r/PrintConfig.cpp:601 +msgid "Speed used for unloading the tip of the filament immediately after ramming. " +msgstr "Velocità utilizzata per scaricare la punta del filamento immediatamente dopo il ramming." + #: src/libslic3r/PrintConfig.cpp:602 msgid "Speed used for unloading the tip of the filament immediately after ramming." msgstr "Velocità utilizzata per scaricare la punta del filamento immediatamente dopo il ramming." @@ -6100,6 +6693,10 @@ msgstr "Velocità utilizzata per scaricare la punta del filamento immediatamente msgid "Sphere" msgstr "Sfera" +#: src/slic3r/GUI/Tab.cpp:1254 +msgid "Spiral Vase" +msgstr "Vaso a Spirale" + #: src/libslic3r/PrintConfig.cpp:1717 msgid "Spiral vase" msgstr "Vaso a spirale" @@ -6117,6 +6714,10 @@ msgstr "Dividi l'oggetto selezionato" msgid "Split the selected object into individual objects" msgstr "Dividi l'oggetto selezionato in singoli oggetti" +#: lib/Slic3r/GUI/Plater.pm:2293 +msgid "Split the selected object into individual parts" +msgstr "Divide l'oggetto selezionato in singole parti" + #: src/slic3r/GUI/Plater.cpp:2968 src/slic3r/GUI/Plater.cpp:3008 msgid "Split the selected object into individual sub-parts" msgstr "Dividi l'oggetto selezionato in singole sotto parti" @@ -6125,30 +6726,14 @@ msgstr "Dividi l'oggetto selezionato in singole sotto parti" msgid "Split to objects" msgstr "Separa in oggetti" -#: src/slic3r/GUI/Plater.cpp:2796 -msgid "Split to Objects" -msgstr "Separa in oggetti" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1110 msgid "Split to parts" msgstr "Dividi in parti" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1904 -msgid "Split to Parts" -msgstr "Dividi in parti" - #: src/libslic3r/PrintConfig.cpp:799 msgid "Stars" msgstr "Stelle" -#: src/slic3r/GUI/MainFrame.cpp:376 -msgid "Start a new project" -msgstr "Inizia un nuovo progetto" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Start at height" -msgstr "Inizia all'altezza" - #: src/slic3r/GUI/Tab.cpp:1564 src/slic3r/GUI/Tab.cpp:1949 #: src/libslic3r/PrintConfig.cpp:1736 src/libslic3r/PrintConfig.cpp:1751 msgid "Start G-code" @@ -6162,6 +6747,10 @@ msgstr "Avvia un nuovo processo di slicing" msgid "Start printing after upload" msgstr "Avvia la stampa dopo il caricamento" +#: src/libslic3r/SLA/SLASupportTree.cpp:2153 +msgid "Starting" +msgstr "Avvio" + #: src/slic3r/GUI/PrintHostDialogs.cpp:150 msgid "Status" msgstr "Stato" @@ -6178,15 +6767,15 @@ msgstr "Silenzioso" msgid "stealth mode" msgstr "modalità silenziosa" +#: lib/Slic3r/GUI/Plater.pm:1659 lib/Slic3r/GUI/Plater.pm:1701 +msgid "STL file exported to " +msgstr "File STL esportato in" + #: src/slic3r/GUI/Plater.cpp:3545 -#, possible-c-format +#, c-format msgid "STL file exported to %s" msgstr "File STL esportato in %s" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Stop at height" -msgstr "Ferma all'altezza" - #: src/slic3r/GUI/Tab.cpp:1716 src/slic3r/GUI/Tab.cpp:1901 msgid "Success!" msgstr "Successo!" @@ -6195,6 +6784,10 @@ msgstr "Successo!" msgid "support" msgstr "supporto" +#: xs/src/slic3r/GUI/GUI.cpp:859 +msgid "Support" +msgstr "Supporto" + #: src/libslic3r/PrintConfig.cpp:2441 msgid "Support base diameter" msgstr "Diametro della base del supporto" @@ -6203,17 +6796,9 @@ msgstr "Diametro della base del supporto" msgid "Support base height" msgstr "Altezza della base del supporto" -#: src/libslic3r/PrintConfig.cpp:2566 -msgid "Support base safety distance" -msgstr "Distanza di sicurezza base supporto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Support Blocker" -msgstr "Blocco Supporto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Support Enforcer" -msgstr "Rinforzo Supporto" +#: src/slic3r/GUI/Tab.cpp:1316 +msgid "Support Generator" +msgstr "Generatore di supporti" #: src/slic3r/GUI/Tab.cpp:3401 msgid "Support head" @@ -6274,10 +6859,6 @@ msgstr "Estrusore materiale di supporto/raft/skirt" msgid "Support on build plate only" msgstr "Supporti solo dal piano di stampa" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:991 -msgid "Support parameter change" -msgstr "Modifica parametro del Supporto" - #: src/slic3r/GUI/Tab.cpp:3406 msgid "Support pillar" msgstr "Pilastro di supporto" @@ -6294,9 +6875,13 @@ msgstr "Diametro pilastro di supporto" msgid "Support points density" msgstr "Densità punti di supporto" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1282 -msgid "Support points edit" -msgstr "Edita punti di supporto" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:888 +msgid "Support points density: " +msgstr "Densità dei punti di supporto:" + +#: xs/src/libslic3r/PrintConfig.cpp:896 +msgid "Support silent mode" +msgstr "Supporto modalità silenziosa" #: src/slic3r/GUI/GUI_ObjectList.cpp:78 src/slic3r/GUI/GUI_ObjectList.cpp:519 #: src/slic3r/GUI/Plater.cpp:418 src/slic3r/GUI/Tab.cpp:3397 @@ -6317,11 +6902,27 @@ msgstr "supporti e pad" #: src/libslic3r/PrintConfig.cpp:1043 msgid "Supports remaining times" -msgstr "Supporto Tempo residuo" +msgstr "Tempo rimanente Supporti" + +#: src/libslic3r/PrintConfig.cpp:1052 +msgid "Supports silent mode" +msgstr "Supporto modalità silenziosa" #: src/libslic3r/PrintConfig.cpp:1053 msgid "Supports stealth mode" -msgstr "Supporto modalità silenziosa" +msgstr "Supporta la modalità silenziosa" + +#: src/slic3r/GUI/Tab.cpp:1313 +msgid "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" +msgstr "" +"I supporti hanno più successo se l'opzione seguente è attivata:\n" +"-Rileva i perimetri in bridging\n" +"\n" +"Adattare questa opzione ai supporti?" #: src/slic3r/GUI/Preferences.cpp:76 msgid "Suppress \" - default - \" presets" @@ -6348,17 +6949,27 @@ msgid "Switch to Preview" msgstr "Passa ad Anteprima" #: src/slic3r/GUI/wxExtensions.cpp:2412 -#, possible-c-format +#, c-format msgid "Switch to the %s mode" msgstr "Passa alla modalità %s" #: src/slic3r/GUI/GUI_App.cpp:752 -msgid "Switching the language will trigger application restart.\nYou will lose content of the plater." -msgstr "Il cambio della lingua necessita il riavvio dell'applicazione.\nVerrà cancellato il contenuto del piano." +msgid "" +"Switching the language will trigger application restart.\n" +"You will lose content of the plater." +msgstr "" +"Il cambio della lingua necessita il riavvio dell'applicazione.\n" +"Verrà cancellato il contenuto del piano." #: src/slic3r/GUI/WipeTowerDialog.cpp:327 -msgid "Switching to simple settings will discard changes done in the advanced mode!\n\nDo you want to proceed?" -msgstr "Cambiare alle impostazioni semplici eliminerà tutte le modifiche fatte alle impostazioni complesse!\n\nProcedere?" +msgid "" +"Switching to simple settings will discard changes done in the advanced mode!\n" +"\n" +"Do you want to proceed?" +msgstr "" +"Cambiare alle impostazioni semplici eliminerà tutte le modifiche fatte alle impostazioni complesse!\n" +"\n" +"Procedere?" #: src/libslic3r/PrintConfig.cpp:1949 msgid "Synchronize support layers with the object print layers. This is useful with multi-material printers, where the extruder switch is expensive." @@ -6372,6 +6983,10 @@ msgstr "Sincronizza con i layer dell'oggetto" msgid "System &Info" msgstr "&Info di Sistema" +#: lib/Slic3r/GUI/MainFrame.pm:355 +msgid "System Info" +msgstr "Informazioni di sistema" + #: src/slic3r/GUI/SysInfoDialog.cpp:44 msgid "System Information" msgstr "Informazioni di sistema" @@ -6386,10 +7001,18 @@ msgstr "Preset di sistema" msgid "Take Configuration &Snapshot" msgstr "Cattura I&stantanea di Configurazione" +#: xs/src/slic3r/GUI/GUI.cpp:350 +msgid "Take Configuration Snapshot" +msgstr "Cattura istantanea di configurazione" + #: src/slic3r/GUI/GUI_App.cpp:697 msgid "Taking configuration snapshot" msgstr "Cattura istantanea della configurazione" +#: src/slic3r/GUI/Tab.cpp:1478 +msgid "Temperature " +msgstr "Temperatura " + #: src/libslic3r/PrintConfig.cpp:1980 msgid "Temperature" msgstr "Temperatura" @@ -6410,32 +7033,47 @@ msgstr "Temperature" msgid "Test" msgstr "Test" -#: src/slic3r/GUI/BedShapeDialog.cpp:171 -msgid "Texture" -msgstr "Texture" +#: src/slic3r/GUI/Tab.cpp:1358 +msgid "The " +msgstr "Il " + +#: src/slic3r/GUI/Tab.cpp:1362 +msgid "" +"The %1% infill pattern is not supposed to work at 100%% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +"La trama di riempimento %1% non dovrebbe essere usata con densità 100%%.\n" +"\n" +"Posso passare alla trama di riempimento rettilineo?" #: src/slic3r/GUI/FirmwareDialog.cpp:530 -#, possible-c-format +#, c-format msgid "The %s device could not have been found" msgstr "Il dispositivo %s non è stato trovato" #: src/slic3r/GUI/FirmwareDialog.cpp:417 -#, possible-c-format -msgid "The %s device was not found.\nIf the device is connected, please press the Reset button next to the USB connector ..." -msgstr "Il dispositivo %s non è stato trovato.\nSe il dispositivo è connesso, premi il pulsante Reset vicino al connettore USB ..." +#, c-format +msgid "" +"The %s device was not found.\n" +"If the device is connected, please press the Reset button next to the USB connector ..." +msgstr "" +"Il dispositivo %s non è stato trovato.\n" +"Se il dispositivo è connesso, premi il pulsante Reset vicino al connettore USB ..." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640 -msgid "The currently manipulated object is tilted (rotation angles are not multiples of 90°).\nNon-uniform scaling of tilted objects is only possible in the World coordinate system,\nonce the rotation is embedded into the object coordinates." -msgstr "L'oggetto modificato corrente è inclinato (angoli di rotazione non multipli di 90°).\nUn ridimensionamento non uniforme di un oggetto inclinato è possibile solamente su un sistema di coordinate reali, non appena la rotazione è inclusa nelle coordinate dell'oggetto." +msgid "" +"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n" +"Non-uniform scaling of tilted objects is only possible in the World coordinate system,\n" +"once the rotation is embedded into the object coordinates." +msgstr "" +"L'oggetto modificato corrente è inclinato (angoli di rotazione non multipli di 90°).\n" +"Un ridimensionamento non uniforme di un oggetto inclinato è possibile solamente su un sistema di coordinate reali, non appena la rotazione è inclusa nelle coordinate dell'oggetto." #: src/libslic3r/PrintConfig.cpp:2462 msgid "The default angle for connecting support sticks and junctions." msgstr "Angolo predefinito per la connessione delle barre di supporto e le giunzioni." -#: src/libslic3r/SLAPrint.cpp:670 -msgid "The endings of the support pillars will be deployed on the gap between the object and the pad. 'Support base safety distance' has to be greater than the 'Pad object gap' parameter to avoid this." -msgstr "La fine del pilastro di supporto si svilupperà nello spazio tra l'oggetto e il pad. La 'Distanza di sicurezza base di supporto' deve essere più grande del parametro 'Distanza Pad oggetto' per evitare questo." - #: src/libslic3r/PrintConfig.cpp:457 msgid "The extruder to use (unless more specific extruder settings are specified). This value overrides perimeter and infill extruders, but not the support extruders." msgstr "Estrusore da utilizzare (a meno che non siano specificate impostazioni d'estrusore più specifiche). Questo valore scavalca l'estrusore dei perimetri e di riempimento, ma non l'estrusore dei supporti." @@ -6481,13 +7119,17 @@ msgstr "Il primo layer verrà ristretto sul piano XY dal valore configurato, cos msgid "the following characters are not allowed:" msgstr "non sono permessi i seguenti caratteri:" -#: src/slic3r/GUI/Tab.cpp:3311 -msgid "the following suffix is not allowed:" -msgstr "il seguente suffisso non è permesso:" +#: src/slic3r/GUI/Tab.cpp:3283 +msgid "the following postfix are not allowed:" +msgstr "non sono permessi i seguenti postfix:" + +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified" +msgstr "Sono stati modificati i seguenti preset" -#: src/libslic3r/PrintConfig.cpp:2702 -msgid "The gap between the object bottom and the generated pad in zero elevation mode." -msgstr "Lo spazio tra la parte inferiore dell'oggetto e il pad generato nella modalità ad elevazione zero." +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified: " +msgstr "Sono stati modificati i seguenti preset:" #: src/libslic3r/PrintConfig.cpp:2453 msgid "The height of the pillar base cone" @@ -6501,10 +7143,6 @@ msgstr "La distanza massima tra due pilastri per collegarsi gli uni agli altri. msgid "The max length of a bridge" msgstr "La lunghezza massima di un bridge" -#: src/libslic3r/PrintConfig.cpp:2569 -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 "Distanza minima della base del pilastro dal modello in mm. Ha senso con modalità ad elevazione zero in cui viene inserito uno spazio tra modello e pad a seconda di questo parametro." - #: src/libslic3r/PrintConfig.cpp:2176 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 "L'oggetto verrà allargato/ristretto sul piano XY dal valore configurato (negativo = verso l'interno, positivo = verso l'esterno). Questo può essere utile per regolare la grandezza dei fori." @@ -6514,8 +7152,14 @@ msgid "The object will be raised by this number of layers, and support material msgstr "L'oggetto verrà sollevato da questo numero di layer, e verrà generato il materiale di supporto al di sotto di questo." #: src/libslic3r/PrintConfig.cpp:2259 -msgid "The percentage of the bed area. \nIf the print area exceeds the specified value, \nthen a slow tilt will be used, otherwise - a fast tilt" -msgstr "La percentuale dell'area del piano.\nSe l'area di stampa supera un determinato valore,\nverrà utilizzata l'inclinazione lenta, in caso contrario - l'inclinazione veloce" +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 "" +"La percentuale dell'area del piano.\n" +"Se l'area di stampa supera un determinato valore,\n" +"verrà utilizzata l'inclinazione lenta, in caso contrario - l'inclinazione veloce" #: src/slic3r/GUI/GUI_App.cpp:831 msgid "The presets on the following tabs were modified" @@ -6541,10 +7185,6 @@ msgstr "L'oggetto selezionato non può essere diviso perché contiene più di un msgid "The selected object couldn't be split because it contains only one part." msgstr "L'oggetto selezionato non può essere diviso perché contiene solo una parte." -#: src/slic3r/GUI/MainFrame.cpp:410 -msgid "The selected project is no more available" -msgstr "Il progetto selezionato non è più disponibile" - #: src/libslic3r/PrintConfig.cpp:2570 msgid "The slope of the pad wall relative to the bed plane. 90 degrees means straight walls." msgstr "Inclinazione della parete del pad relativa al piano. 90 gradi equivale a pareti dritte." @@ -6557,6 +7197,27 @@ msgstr "La velocità di caricamento di un filamento nell'estrusore dopo la retra msgid "The speed for retractions (it only applies to the extruder motor)." msgstr "Velocità delle retrazioni (si applica solamente al motore dell'estrusore)." +#: src/slic3r/GUI/Tab.cpp:1247 +#, no-c-format +msgid "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" +msgstr "" +"La modalità Vaso a Spirale richiede:\n" +"- un perimetro\n" +"- assenza di layer solidi superiori\n" +"- densità riempimento 0%\n" +"- assenza di materiale di supporto\n" +"- assicura_spessore_ guscio_ verticale disattivato\n" +"\n" +"Posso regolare queste impostazioni così da attivare il Vaso a Spirale?" + #: src/libslic3r/Print.cpp:1187 msgid "The Spiral Vase option can only be used when printing a single object." msgstr "L'opzione Vaso a Spirale può essere utilizzata soltanto durante la stampa di un oggetto singolo." @@ -6579,6 +7240,10 @@ msgstr "Il nome fornito non è disponibile." msgid "The supplied name is not valid;" msgstr "Il nome fornito non è valido;" +#: c:\src\Slic3r\xs\src\slic3r\GUI\Tab.cpp:1785 +msgid "The supplied name is not valid; the following characters are not allowed:" +msgstr "Il nome fornito non è valido; i seguenti caratteri non sono consentiti:" + #: src/libslic3r/Print.cpp:1268 msgid "The supplied settings will cause an empty print." msgstr "Le configurazioni fornite causeranno una stampa vuota." @@ -6592,13 +7257,37 @@ msgid "The vertical distance between object and support material interface. Sett msgstr "Distanza verticale tra oggetto e interfaccia del materiale di supporto. Impostando questo valore a 0 eviterà che Slic3r utilizzi il flusso e velocità bridge per il primo layer dell'oggetto." #: src/slic3r/GUI/Tab.cpp:2429 -msgid "The Wipe option is not available when using the Firmware Retraction mode.\n\nShall I disable it in order to enable Firmware Retraction?" -msgstr "La funzione Wipe non è disponibile quando si usa la modalità Retrazione Firmware.\n\nDevo disattivarla per poter abilitare la Retrazione Firmware?" +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 "" +"La funzione Wipe non è disponibile quando si usa la modalità Retrazione Firmware.\n" +"\n" +"Devo disattivarla per poter abilitare la Retrazione Firmware?" + +#: src/slic3r/GUI/Tab.cpp:1277 +msgid "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool change.\n" +"(both support_material_extruder and support_material_interface_extruder need to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" +msgstr "" +"La Torre di Spurgo attualmente supporta solamente supporti non solubili\n" +"se questi sono stampati con l'attuale estrusore senza attivare un cambio d'attrezzo.\n" +"(entrambi support_material_extruder e support_material_interface_extruder devono essere impostati a 0).\n" +"\n" +"Devo regolare queste impostazioni per abilitare la Torre di Spurgo?" #: src/libslic3r/Print.cpp:1306 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 support_material_extruder and support_material_interface_extruder need to be set to 0)." msgstr "La Torre di Spurgo attualmente è compatibile con i supporti non solubili solamente se questi sono stampati con l'attuale estrusore senza l'innesco di un cambio attrezzo. (entrambi support_material_extruder e support_material_interface_extruder devono essere impostati a 0)." +#: xs/src/libslic3r/Print.cpp:617 +msgid "The Wipe Tower is currently only supported for the Marlin and RepRap/Sprinter G-code flavors." +msgstr "La Torre di spurgo al momento è supportata solo da formati G-code Marlin e RepRap/Sprinter." + #: src/libslic3r/Print.cpp:1200 msgid "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors." msgstr "La torre di spurgo al momento è supportata solo nelle versioni G-code per Marlin, RepRap/Sprinter e Repetier." @@ -6623,16 +7312,16 @@ msgstr "La Torre di spurgo è supportata con oggetti multipli solo se questi son msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heights" msgstr "La Torre di spurgo è supportata con oggetti multipli solo se questi hanno la stessa altezza layer" -#: src/libslic3r/Print.cpp:1155 -msgid "The wipe tower is only supported if all extruders have the same nozzle diameter and use filaments of the same diameter." -msgstr "La torre di spurgo è supportata solo se tutti gli estrusori hanno l'ugello con lo stesso diametro ed utilizzano filamenti con lo stesso diametro." +#: src/libslic3r/Print.cpp:1223 +msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heigths" +msgstr "La Torre di spurgo è supportata con oggetti multipli solo se questi hanno la stessa altezza layer" #: src/libslic3r/Print.cpp:1258 msgid "The Wipe tower is only supported if all objects have the same layer height profile" msgstr "La Torre di spurgo è supportata solo con oggetti multipli che hanno lo stesso profilo di altezza layer" #: src/slic3r/GUI/UpdateDialogs.cpp:127 -#, possible-c-format +#, c-format msgid "This %s version: %s" msgstr "%s versione: %s" @@ -6640,10 +7329,6 @@ msgstr "%s versione: %s" msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." msgstr "Questo codice è inserito tra gli oggetti quando si utilizza una stampa sequenziale. Come predefinito, la temperatura di estrusione e del piano sono resettate con il comando non-attesa; in ogni caso se nel codice personalizzato vengono rilevati i comandi M104,M109,M140 o M190, Slic3r non aggiungerà i comandi di temperatura. Si fa presente che puoi usare variabili sostitutive per tutte le impostazioni di Slic3r, quindi puoi inserire un comando \"M109 S[first_layer_temperature]\" quando preferisci." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted at every extruder change. If you don't leave this empty, you are expected to take care of the toolchange yourself - PrusaSlicer will not output any other G-code to change the filament. You can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder], so e.g. the standard toolchange command can be scripted as T[next_extruder]." -msgstr "Questo codice personalizzato è inserito ad ogni cambio estrusore. Se non lo lasci vuoto, dovrai provvedere al cambio di attrezzo da solo - PrusaSlicer non emetterà altri G-code per cambiare il filamento. È possibile usare delle variabili segnaposto per tutte le impostazioni di Slic3r così come [previous_extruder] e [next_extruder], così ad es. il comando per il cambio attrezzo standard può essere scriptato come T[next_extruder]." - #: src/libslic3r/PrintConfig.cpp:1032 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 use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Questo codice personalizzato è inserito ad ogni cambio layer, subito dopo il movimento Z e prima che l'estrusore si sposti al punto del primo layer. Si fa presente che puoi usare variabili sostitutive per tutte le impostazioni di Slic3r sia per [layer_num] che per [layer_z]." @@ -6652,17 +7337,17 @@ msgstr "Questo codice personalizzato è inserito ad ogni cambio layer, subito do msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Questo codice personalizzato è inserito ad ogni cambio layer, subito prima del movimento Z. Si fa presente che puoi usare variabili sostitutive per tutte le impostazioni di Slic3r sia per [layer_num] che per [layer_z]." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange." -msgstr "Questo codice personalizzato è inserito prima di ogni cambio attrezzo. Possono essere usate delle variabili segnaposto per tutte le impostazioni di PrusaSlicer come {previous_extruder} e {next_extruder}. Quando viene incluso un comando di cambio attrezzo che cambia all'estrusore corretto (come T{next_extruder}), PrusaSlicer non emetterà altri comandi simili. È per tanto possibile elaborare un comportamento personalizzato sia prima che dopo il cambio attrezzo." - -#: src/libslic3r/PrintConfig.cpp:380 -msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Questa procedura finale è inserita alla fine del file di output, prima che la stampante completi il gcode (e prima di qualunque cambio attrezzo da questo filamento in caso di stampanti multi-material). Da notare che è possibile inserire variabili segnaposto per tutte le impostazioni di PrusaSlicer. Se hai estrusori multipli, il gcode è processato nell'ordine degli estrusori." +#: src/libslic3r/PrintConfig.cpp:2007 +msgid "This custom code is inserted right before every extruder change. Note that you can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder]." +msgstr "Questo codice personalizzato è inserito ad ogni cambio estrusore, subito prima del movimento Z. Si fa presente che puoi usare variabili sostitutive per tutte le impostazioni di Slic3r sia per [previous_extruder] che per [next_extruder]." #: src/libslic3r/PrintConfig.cpp:370 -msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all PrusaSlicer settings." -msgstr "Questa procedura finale è inserita alla fine del file di output. Da notare che è possibile usare variabili segnaposto per tutte le impostazioni di PrusaSlicer." +msgid "This end procedure is inserted at the end of the output file, before the printer end gcode. Note that you can use placeholder variables for all Slic3r settings. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Questa procedura finale è inserita alla fine del file di output, prima del termine del gcode della stampante. Si fa presente che puoi usare variabili sostitutive per tutte le impostazioni di Slic3r. Se hai estrusori multipli, il gcode è processato nell'ordine dell'estrusore." + +#: src/libslic3r/PrintConfig.cpp:360 +msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all Slic3r settings." +msgstr "Questa procedura finale è inserita alla fine del file di output. Si fa presente che puoi usare variabili sostitutive per tutte le impostazioni di Slic3r." #: src/libslic3r/PrintConfig.cpp:1193 src/libslic3r/PrintConfig.cpp:1204 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 of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." @@ -6710,16 +7395,38 @@ msgstr "Questa funzione solleverà Z gradualmente durante la stampa di un oggett #: src/slic3r/GUI/Plater.cpp:1712 msgid "This file cannot be loaded in a simple mode. Do you want to switch to an advanced mode?\n" -msgstr "Non è possibile caricare questo file in modalità semplice. Si desidera passare alla modalità avanzata?\n\n" +msgstr "" +"Non è possibile caricare questo file in modalità semplice. Si desidera passare alla modalità avanzata?\n" +"\n" + +#: src/slic3r/GUI/Plater.cpp:1650 +msgid "This file cannot be loaded in simple mode. Do you want to switch to expert mode?\n" +msgstr "Questo file non può essere caricato in modalità semplice. Vuoi passare a modalità esperto?\n" #: src/slic3r/GUI/Plater.cpp:1658 -msgid "This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\nthis file as a single object having multiple parts?\n" -msgstr "Questo file contiene numerosi oggetti posizionati ad altezze multiple. Invece di considerarli come oggetti multipli, devo considerare \nquesto file come un oggetto singolo con parti multiple?\n" +msgid "" +"This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\n" +"this file as a single object having multiple parts?\n" +msgstr "" +"Questo file contiene numerosi oggetti posizionati ad altezze multiple. Invece di considerarli come oggetti multipli, devo considerare \n" +"questo file come un oggetto singolo con parti multiple?\n" #: src/slic3r/GUI/FirmwareDialog.cpp:313 -#, possible-c-format -msgid "This firmware hex file does not match the printer model.\nThe hex file is intended for: %s\nPrinter reported: %s\n\nDo you want to continue and flash this hex file anyway?\nPlease only continue if you are sure this is the right thing to do." -msgstr "Questo file hex di firmware non è corretto per il modello della stampante. \nIl file hex è per: %s\nLa stampante è: %s\n\nVuoi continuare ed installare il firmware comunque?\nContinua solo se sei certo che sia la cosa giusta da fare." +#, c-format +msgid "" +"This firmware hex file does not match the printer model.\n" +"The hex file is intended for: %s\n" +"Printer reported: %s\n" +"\n" +"Do you want to continue and flash this hex file anyway?\n" +"Please only continue if you are sure this is the right thing to do." +msgstr "" +"Questo file hex di firmware non è corretto per il modello della stampante. \n" +"Il file hex è per: %s\n" +"La stampante è: %s\n" +"\n" +"Vuoi continuare ed installare il firmware comunque?\n" +"Continua solo se sei certo che sia la cosa giusta da fare." #: src/libslic3r/PrintConfig.cpp:278 msgid "This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer printing time." @@ -6737,22 +7444,10 @@ msgstr "Questo contrassegno forza una retrazione ogni volta che viene effettuato msgid "This flag will move the nozzle while retracting to minimize the possible blob on leaky extruders." msgstr "Questo contrassegno farà spostare l'ugello durante la retrazione in modo da minimizzare il possibile grumo con estrusori che trasudano." -#: src/slic3r/GUI/Tab.cpp:921 -msgid "This is a default preset." -msgstr "Questo è un preset predefinito." - #: src/libslic3r/PrintConfig.cpp:2501 msgid "This is a relative measure of support points density." msgstr "Questa è una misura relativa della densità dei punti di supporto." -#: src/slic3r/GUI/Tab.cpp:2528 -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 "Questa è una stampante multi-material ad estrusore singolo, i diametri di tutti gli estrusori verranno impostati al nuovo valore. Vuoi continuare?" - -#: src/slic3r/GUI/Tab.cpp:923 -msgid "This is a system preset." -msgstr "Questo è un preset di sistema." - #: src/libslic3r/PrintConfig.cpp:491 src/libslic3r/PrintConfig.cpp:551 msgid "This is only used in the Slic3r interface as a visual help." msgstr "Utilizzato solo nell'interfaccia di Slic3r come aiuto visivo." @@ -6788,15 +7483,23 @@ msgstr "Questa è la massima altezza layer stampabile per questo estrusore, usat #: src/libslic3r/PrintConfig.cpp:1225 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 "Questa è l'altezza minima stampabile per questo estrusore e limita la risoluzione per l'altezza variabile dei layer. Valori tipici sono compresi tra 0.05 mm e 0.1 mm." +msgstr "Questa è l'altezza minima stampabile per questo estrusore e limita la risoluzione per l'altezza variabile di layer. Valori tipici sono compresi tra 0.05 mm e 0.1 mm." + +#: src/libslic3r/PrintConfig.cpp:2114 +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 "Questa matrice descrive il volume (in millimetri cubici) necessario per spurgare il filamento nella torre di spurgo per una qualunque coppia di attrezzi. " #: src/libslic3r/PrintConfig.cpp:2139 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 "Questa matrice descrive il volume (in millimetri cubici) necessario per spurgare il filamento nella torre di spurgo per una qualunque coppia di attrezzi." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:643 -msgid "This operation is irreversible.\nDo you want to proceed?" -msgstr "Questa operazione è irreversibile.\nVuoi continuare?" +msgid "" +"This operation is irreversible.\n" +"Do you want to proceed?" +msgstr "" +"Questa operazione è irreversibile.\n" +"Vuoi continuare?" #: src/libslic3r/PrintConfig.cpp:1372 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 surfaces which benefit from a higher number of perimeters if the Extra Perimeters option is enabled." @@ -6838,13 +7541,22 @@ msgstr "Questa impostazione rappresenta la velocità massima della ventola." msgid "This setting represents the minimum PWM your fan needs to work." msgstr "Questa impostazione rappresenta la PWM minima (modulazione di larghezza di impulso) che la ventola necessita per lavorare." -#: src/libslic3r/PrintConfig.cpp:1801 -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 printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Questa procedura di inizio è inserita all'inizio, dopo un qualsiasi gcode iniziale (e dopo un qualunque cambio attrezzo per questo filamento nel caso di stampanti multi-material). Viene utilizzato per scavalcare le impostazioni per un filamento specifico. Se PrusaSlicer rileva M104, M109, M140 o M190 nei codici personalizzati, questi comandi non vengono anteposti automaticamente così si è liberi di personalizzare liberamente l'ordine dei comandi di riscaldamento e altre azioni personalizzate. Da notare che è possibile utilizzare delle variabili segnaposto per tutte le impostazioni di PrusaSlicer, così è possibile inserire un comando \"M109 S[first_layer_temperature]\" ovunque lo si desideri. Se hai estrusori multipli, il gcode è processato nell'ordine degli estrusori." +#: src/slic3r/GUI/UpdateDialogs.cpp:123 +#, c-format +msgid "This Slic3r PE version: %s" +msgstr "Questa versione di Slic3r PE: %s" + +#: src/libslic3r/PrintConfig.cpp:1752 +msgid "This start procedure is inserted at the beginning, after any printer start gcode. This is used to override settings for a specific filament. If Slic3r detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Questa procedura iniziale è inserita all'inizio, dopo qualunque gcode iniziale della stampante. Questo viene usato per scavalcare le impostazioni per un filamento specifico. Se Slic3r rileva M104, M109, M140 o M190 nel tuo codice personalizzato, questi comandi non verranno inseriti automaticamente così che sarà possibile personalizzare l'ordine dei comandi di riscaldamento e altre azioni personalizzate. Da notare che è possibile utilizzare variabili sostitutive per tutte le impostazioni di Slic3r, così che sia possibile inserire un comando \"M109S [first_layer_temperature]\" ovunque si voglia. Se si hanno estrusori multipli, il gcode è processato nell'ordine degli estrusori." + +#: src/libslic3r/PrintConfig.cpp:1737 +msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If Slic3r detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "La procedura iniziale è inserita all'inizio, dopo che il piano ha raggiunto la temperatura impostata e l'estrusore ha appena iniziato a scaldare, e prima che l'estrusore abbia completato il riscaldamento. Se Slic3r rileva M104 o M190 nei tuoi codici personalizzati, questi comandi non verranno inseriti automaticamente così sarà possibile personalizzare l'ordine dei comandi di riscaldamento e altre azioni personalizzate. Da notare che è possibile utilizzare variabili sostitutive per tutte le impostazioni di Slic3r, così sarà possibile inserire un comando \"M109 S[first_layer_temperature]\" ovunque si voglia." -#: src/libslic3r/PrintConfig.cpp:1786 -msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." -msgstr "Questa procedura di inizio è inserita all'inizio, dopo che il piano ha raggiunto la temperatura impostata e appena l'estrusore inizia il riscaldamento, e prima che l'estrusore completi il riscaldamento. Se PrusaSlicer rileva M104 o M190 nel tuo codice personalizzato, questi comandi non vengono anteposti automaticamente così si è liberi di personalizzare l'ordine dei comandi di riscaldamento e altre azioni personalizzate. Da notare che è possibile utilizzare delle variabili segnaposto per tutte le impostazioni di PrusaSlicer, così è possibile inserire un comando \"M109 S[first_layer_temperature]\" ovunque si desideri." +#: src/libslic3r/PrintConfig.cpp:663 +msgid "This string is edited by RammingDialog and contains ramming specific parameters " +msgstr "Questa stringa viene controllata da RammingDialog e contiene parametri specifici del ramming " #: src/libslic3r/PrintConfig.cpp:664 msgid "This string is edited by RammingDialog and contains ramming specific parameters." @@ -6854,14 +7566,42 @@ msgstr "Questa stringa viene controllata da RammingDialog e contiene parametri s 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 example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)." msgstr "Questo valore sarà aggiunto (o sottratto) da tutte le coordinate Z nel G-code di output. Viene utilizzato per compensare una posizione di finecorsa Z errata: per esempio, se la posizione minima del finecorsa rimane in realtà 0.3mm lontano dal piano, imposta questo valore a -0.3 (o sistema il finecorsa)." +#: src/libslic3r/PrintConfig.cpp:2107 +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 "Questo vettore salva il volume necessario per cambiare da/a ogni attrezzo usato per la torre di spurgo. Questi valori vengono usati per semplificare la creazione dei volumi di spurgo completi. " + #: src/libslic3r/PrintConfig.cpp:2132 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 "Questo vettore salva il volume necessario per cambiare da/a ogni attrezzo usato per la torre di spurgo. Questi valori vengono usati per semplificare la creazione dei volumi di spurgo completi." #: src/slic3r/GUI/UpdateDialogs.cpp:118 -#, possible-c-format -msgid "This version of %s is not compatible with currently installed configuration bundles.\nThis probably happened as a result of running an older %s after using a newer one.\n\nYou may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" -msgstr "Questa versione di %s non è compatibile con gli attuali gruppi di configurazioni installati.\nProbabilmente è causato dall'esecuzione di una vecchia versione di %s dopo averne utilizzata una più recente.\n\nProva a chiudere %s e riprovare con una versione più recente, o prova ad effettuare nuovamente la configurazione iniziale. Così facendo creerai un'istantanea di backup della configurazione esistente prima di istallare i file compatibili con questo %s.\n" +#, c-format +msgid "" +"This version of %s is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older %s after using a newer one.\n" +"\n" +"You may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" +msgstr "" +"Questa versione di %s non è compatibile con gli attuali gruppi di configurazioni installati.\n" +"Probabilmente è causato dall'esecuzione di una vecchia versione di %s dopo averne utilizzata una più recente.\n" +"\n" +"Prova a chiudere %s e riprovare con una versione più recente, o prova ad effettuare nuovamente la configurazione iniziale. Così facendo creerai un'istantanea di backup della configurazione esistente prima di istallare i file compatibili con questo %s.\n" + +#: src/slic3r/GUI/UpdateDialogs.cpp:114 +msgid "" +"This version of Slic3r PE is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older Slic3r PE after using a newer one.\n" +"\n" +"You may either exit Slic3r and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this Slic3r.\n" +msgstr "" +"Questa versione di Slic3r PE non è compatibile con gli attuali gruppi di configurazioni installati.\n" +"Probabilmente è causato dall'esecuzione di una vecchia versione di Slic3r PE dopo averne utilizzata una più recente.\n" +"\n" +"Prova a chiudere Slic3r e riprovare con una versione più nuova, o prova ad effettuare nuovamente la configurazione iniziale. Così facendo creerai un'istantanea di backup della configurazione esistente prima di istallare i file compatibili con questo Slic3r.\n" + +#: src/libslic3r/PrintConfig.cpp:2282 +msgid "This will apply a gamm correction to the rasterized 2D polygons." +msgstr "Questo applicherà una gamma di correzione ai poligoni 2D rasterizzati." #: src/libslic3r/PrintConfig.cpp:2284 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." @@ -6903,6 +7643,10 @@ msgstr "Tempo di inclinazione veloce" msgid "Time of the slow tilt" msgstr "Tempo di inclinazione lenta" +#: src/libslic3r/PrintConfig.cpp:609 +msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions. " +msgstr "Tempo di attesa dopo lo scarico del filamento. Può aiutare ad ottenere cambi affidabili con materiali flessibili che potrebbero richiedere più tempo per tornare alle dimensioni originali. " + #: src/libslic3r/PrintConfig.cpp:610 msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions." msgstr "Tempo di attesa dopo lo scarico del filamento. Può aiutare ad ottenere cambi affidabili con materiali flessibili che potrebbero richiedere più tempo per tornare alle dimensioni originali." @@ -6911,6 +7655,10 @@ msgstr "Tempo di attesa dopo lo scarico del filamento. Può aiutare ad ottenere msgid "To do that please specify a new name for the preset." msgstr "Per favore specifica un nuovo nome per il preset per effettuare l'operazione." +#: src/slic3r/GUI/UpdateDialogs.cpp:37 +msgid "To download, follow the link below." +msgstr "Vai sul link sotto per scaricare." + #: src/slic3r/GUI/Plater.cpp:2966 msgid "To objects" msgstr "In oggetti" @@ -6919,11 +7667,6 @@ msgstr "In oggetti" msgid "To parts" msgstr "In parti" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:212 -#, possible-c-format -msgid "Toggle %c axis mirroring" -msgstr "Attiva / disattiva il mirroring dell'asse %c" - #: src/libslic3r/Zipper.cpp:37 msgid "too many files" msgstr "troppi file" @@ -6972,6 +7715,10 @@ msgstr "Layer solidi superiori" msgid "Top View" msgstr "Vista superiore" +#: xs/src/libslic3r/PrintConfig.cpp:283 +msgid "Top/bottom fill pattern" +msgstr "Trama riempimento superiore/inferiore" + #: src/slic3r/GUI/WipeTowerDialog.cpp:247 msgid "Total purging volume is calculated by summing two values below, depending on which tools are loaded/unloaded." msgstr "Il volume totale di spurgo viene calcolato sommando i due valori sotto, a seconda di quali attrezzi vengono scaricati/caricati." @@ -7004,34 +7751,18 @@ msgstr "Prova a riparare mesh non-manifold (questa opzione viene aggiunta implic msgid "Type of the printer." msgstr "Tipologia stampante." -#: src/slic3r/GUI/GUI_ObjectList.cpp:2549 -msgid "Type:" -msgstr "Tipo:" - #: src/libslic3r/Zipper.cpp:35 msgid "undefined error" msgstr "errore non definito" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3609 -#: src/slic3r/GUI/MainFrame.cpp:559 -msgid "Undo" -msgstr "Annulla" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Undo %1$d Action" -msgid_plural "Undo %1$d Actions" -msgstr[0] "Annulla %1$d Azione" -msgstr[1] "Annulla %1$d Azioni" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Undo History" -msgstr "Storia Annulla" - #: src/libslic3r/Zipper.cpp:59 msgid "unexpected decompressed size" msgstr "dimensione decompressa imprevista" +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Uniformly…" +msgstr "Uniformemente…" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:27 msgid "Unknown" msgstr "Sconosciuto" @@ -7056,13 +7787,29 @@ msgstr "Velocità iniziale di scaricamento" msgid "UNLOCKED LOCK" msgstr "LUCCHETTO APERTO" -#: src/slic3r/GUI/Tab.cpp:3362 -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.\nClick to reset all settings for current option group to the system (or default) values." -msgstr "L'icona del LUCCHETTO APERTO indica che alcune impostazioni sono state modificate e non sono uguali ai valori di sistema (o predefinite) per il gruppo di opzioni corrente.\nClicca qui per reimpostare tutte le impostazioni del gruppo corrente ai valori di sistema (o predefiniti)." +#: src/slic3r/GUI/Tab.cpp:3105 +msgid "" +"UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click to reset all settings for current option group to the system values." +msgstr "" +"L'icona del LUCCHETTO APERTO indica che alcune impostazioni sono state cambiate e non corrispondono ai valori di sistema per il gruppo di opzioni corrente.\n" +"Cliccate per reimpostare tutte le impostazioni per il gruppo corrente ai valori di sistema." + +#: src/slic3r/GUI/Tab.cpp:3120 +msgid "" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system value.\n" +"Click to reset current value to the system value." +msgstr "" +"L'icona del LUCCHETTO APERTO indica che il valore è stato cambiato e non è uguale al valore di sistema. \n" +"Cliccate per reimpostare il valore corrente al valore di sistema." -#: src/slic3r/GUI/Tab.cpp:3377 -msgid "UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\nClick to reset current value to the system (or default) value." -msgstr "L'icona del LUCCHETTO APERTO indica che il valore è stato cambiato e non è uguale al valore di sistema (o predefinito). Clicca per reimpostare il valore corrente al valore di sistema (o predefinito)." +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "" +"UNLOCKED LOCK;indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"LUCCHETTO APERTO;indica che è stata modificata qualche impostazione e non è uguale ai valori di sistema del corrente gruppo di opzioni.\n" +"Clicca l'icona LUCCHETTO CHIUSO per reimpostare tutte le impostazioni del corrente gruppo di opzioni ai valori di sistema." #: src/slic3r/GUI/GUI_Preview.cpp:245 msgid "Unretractions" @@ -7077,8 +7824,8 @@ msgid "Unsaved Presets" msgstr "Preset non salvati" #: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Unselect gizmo / Clear selection" -msgstr "Deseleziona gizmo / Ripulisci la selezione" +msgid "Unselect gizmo, keep object selection" +msgstr "Deseleziona gizmo, mantieni selezione oggetto" #: src/libslic3r/Zipper.cpp:63 msgid "unsupported central directory size" @@ -7100,16 +7847,12 @@ msgstr "metodo non supportato" msgid "unsupported multidisk archive" msgstr "archivio multidisk non supportato" -#: src/slic3r/GUI/GUI_App.cpp:305 -msgid "Unsupported OpenGL version" -msgstr "Versione OpenGL non supportata" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2414 msgid "Unsupported selection" msgstr "Selezione non supportata" #: src/libslic3r/GCode/PreviewData.cpp:495 -#, possible-c-format +#, c-format msgid "up to %.2f mm" msgstr "fino a %.2f mm" @@ -7137,6 +7880,10 @@ msgstr "Aggiorna" msgid "Upload a firmware image into an Arduino based printer" msgstr "Carica un'immagine del firmware su una stampante basata su Arduino" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Upload to OctoPrint with the following filename:" +msgstr "Carica su OctoPrint con il seguente nome file:" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Upload to Printer Host with the following filename:" msgstr "Carica all'Host di stampa con il seguente nome file:" @@ -7158,10 +7905,6 @@ msgstr "Connessione USB/Seriale" msgid "USB/serial port for printer connection." msgstr "Porta USB/Seriale per connessione stampante." -#: src/slic3r/GUI/Preferences.cpp:117 -msgid "Use custom size for toolbar icons" -msgstr "Utilizza dimensione personalizzata per le icone degli strumenti" - #: src/libslic3r/PrintConfig.cpp:2060 msgid "Use firmware retraction" msgstr "Usa retrazione firmware" @@ -7170,14 +7913,14 @@ msgstr "Usa retrazione firmware" msgid "Use forward slashes ( / ) as a directory separator if needed." msgstr "Usa la barra ( / ) come separatore di cartella se necessario." +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "Use legacy OpenGL 1.1 rendering" +msgstr "Utilizza il rendering legacy OpenGL 1.1" + #: src/libslic3r/PrintConfig.cpp:2515 msgid "Use pad" msgstr "Utilizza pad" -#: src/slic3r/GUI/Preferences.cpp:110 -msgid "Use perspective camera" -msgstr "Usa la camera in prospettiva" - #: src/libslic3r/PrintConfig.cpp:2067 msgid "Use relative E distances" msgstr "Usa distanze E relative" @@ -7239,10 +7982,18 @@ msgstr "Valore uguale a quello di sistema" msgid "Value was changed and is not equal to the system value or the last saved preset" msgstr "Il valore è stato modificato e non è uguale al valore di sistema o all'ultimo preset salvato" +#: src/slic3r/GUI/Tab.cpp:2150 +msgid "Values in this column are for Full Power mode" +msgstr "I valori in questa colonna sono per la modalità Piena Potenza" + #: src/slic3r/GUI/Tab.cpp:2151 msgid "Values in this column are for Normal mode" msgstr "I valori in questa colonna sono per la modalità Normale" +#: src/slic3r/GUI/Tab.cpp:2156 +msgid "Values in this column are for Silent mode" +msgstr "I valori in questa colonna sono per la modalità Silenziosa" + #: src/slic3r/GUI/Tab.cpp:2157 msgid "Values in this column are for Stealth mode" msgstr "I valori in questa colonna sono per la modalità Silenziosa" @@ -7259,6 +8010,10 @@ msgstr "produttore" msgid "Verbose G-code" msgstr "G-code verboso" +#: lib/Slic3r/GUI/MainFrame.pm:66 +msgid "Version " +msgstr "Versione " + #: src/slic3r/GUI/AboutDialog.cpp:67 src/slic3r/GUI/MainFrame.cpp:53 msgid "Version" msgstr "Versione" @@ -7288,21 +8043,13 @@ msgstr "Volume" msgid "Volume to purge (mm³) when the filament is being" msgstr "Il volume di spurgo (mm³) quando il filamento viene" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Volumes in Object reordered" -msgstr "Volumi in Oggetto riordinati" - #: src/slic3r/GUI/PresetHints.cpp:216 msgid "Volumetric" msgstr "Volumetrico" -#: src/slic3r/GUI/Tab.cpp:1800 -msgid "Volumetric flow hints not available" -msgstr "Suggerimenti sul flusso volumetrico non disponibili" - #: src/slic3r/GUI/GUI_Preview.cpp:216 msgid "Volumetric flow rate" -msgstr "Flusso volumetrico" +msgstr "Portata volumetrica" #: src/libslic3r/GCode/PreviewData.cpp:402 msgid "Volumetric flow rate (mm3/s)" @@ -7321,24 +8068,46 @@ msgstr "Attenzione" msgid "Welcome" msgstr "Benvenuto" +#: src/slic3r/GUI/ConfigWizard.cpp:294 +#, c-format +msgid "Welcome to the %s %s" +msgstr "Benvenuto su %s %s" + #: src/slic3r/GUI/ConfigWizard.cpp:296 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Assistant" msgstr "Benvenuto nell'Assistente di Configurazione di %s" #: src/slic3r/GUI/ConfigWizard.cpp:298 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Wizard" msgstr "Benvenuto nella Configurazione Guidata di %s" +#: src/slic3r/GUI/ConfigWizard.cpp:284 +#, c-format +msgid "Welcome to the Slic3r %s" +msgstr "Benvenuto su Slic3r %s" + +#: lib/Slic3r/GUI/Plater/2D.pm:131 +msgid "What do you want to print today? ™" +msgstr "Cosa vuoi stampare oggi? ™" + #: src/slic3r/GUI/Preferences.cpp:86 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 "Quando attivato, i preset di stampa e di filamento vengono mostrati nell'editor dei preset anche se sono segnati come incompatibili con la stampante attiva" +#: src/slic3r/GUI/PresetHints.cpp:221 +msgid "when printing " +msgstr "durante la stampa " + #: src/slic3r/GUI/PresetHints.cpp:223 msgid "when printing" msgstr "durante la stampa" +#: src/libslic3r/PrintConfig.cpp:216 +msgid "When printing multi-material objects, this settings will make slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "Durante la stampa di oggetti multi-materiali, questa impostazione farà si che slic3r unisca le parti sovrapposte dell'oggetto (la seconda sarà collegata con la prima, la terza parte sarà collegata con la prima e la seconda ecc..)." + #: src/libslic3r/PrintConfig.cpp:217 msgid "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." msgstr "Durante la stampa di oggetti multi-materiali, questa impostazione farà si che Slic3r unisca le parti sovrapposte dell'oggetto (la seconda sarà collegata con la prima, la terza parte sarà collegata con la prima e la seconda ecc..)." @@ -7359,6 +8128,10 @@ msgstr "Quando viene attivata la retrazione prima del cambio attrezzo, il filame 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 "Quando viene attivata la retrazione, il filamento viene ritirato per la quantità specificata (la lunghezza è misurata sul filamento grezzo, prima che questo entri dentro l'estrusore)." +#: src/libslic3r/PrintConfig.cpp:1322 +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 positive, it is loaded further, if negative, the loading move is shorter than unloading. " +msgstr "Quando impostato a zero, la distanza percorsa dal filamento in posizione di parcheggio durante il caricamento è esattamente uguale a quella contraria durante lo scaricamento. Quando il valore è positivo, viene caricato maggiormente, se il valore è negativo il movimento di caricamento è più corto dello scaricamento." + #: src/libslic3r/PrintConfig.cpp:1347 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 positive, it is loaded further, if negative, the loading move is shorter than unloading." msgstr "Quando impostato a zero, la distanza percorsa dal filamento in posizione di parcheggio durante il caricamento è esattamente uguale a quella contraria durante lo scaricamento. Quando il valore è positivo, viene caricato maggiormente, se il valore è negativo il movimento di caricamento è più corto dello scaricamento." @@ -7379,9 +8152,9 @@ msgstr "Quando la retrazione è compensata dopo un movimento di spostamento, l'e msgid "WHITE BULLET" msgstr "PALLINO BIANCO" -#: src/slic3r/GUI/Tab.cpp:3365 -msgid "WHITE BULLET icon indicates a non system (or non default) preset." -msgstr "L'icona a forma di PALLINO BIANCO indica un preset non di sistema (o non predefinito)." +#: src/slic3r/GUI/Tab.cpp:3108 +msgid "WHITE BULLET icon indicates a non system preset." +msgstr "L'icona a forma di PALLINO BIANCO indica un preset non di sistema." #: src/slic3r/GUI/Tab.cpp:3111 msgid "WHITE BULLET icon indicates that the settings are the same as in the last saved preset for the current option group." @@ -7391,6 +8164,14 @@ msgstr "L'icona a forma di PALLINO BIANCO indica che le impostazioni corrispondo msgid "WHITE BULLET icon indicates that the value is the same as in the last saved preset." msgstr "L'icona a forma di PALLINO BIANCO indica che il valore è lo stesso dell'ultimo preset salvato." +#: src/slic3r/GUI/Tab.cpp:3073 +msgid "" +"WHITE BULLET;for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"WHITE BULLET;per il bottone sinistro: indica un preset non di sistema,\n" +"per il bottone destro: indica che le impostazioni non sono state modificate." + #: src/slic3r/GUI/GUI_Preview.cpp:214 src/libslic3r/PrintConfig.cpp:2137 msgid "Width" msgstr "Larghezza" @@ -7407,10 +8188,6 @@ msgstr "Spessore dal centro della sfera posteriore al centro della sfera anterio msgid "Width of a wipe tower" msgstr "Larghezza della torre di spurgo" -#: src/libslic3r/PrintConfig.cpp:2761 -msgid "Width of the connector sticks which connect the object and the generated pad." -msgstr "Larghezza delle barre di connessione che collegano l'oggetto e il pad generato." - #: src/libslic3r/PrintConfig.cpp:2203 msgid "Width of the display" msgstr "Larghezza del display" @@ -7419,6 +8196,11 @@ msgstr "Larghezza del display" msgid "will always run at %1%%%" msgstr "lavorerà sempre a %1%%%" +#: src/slic3r/GUI/PresetHints.cpp:43 +#, c-format +msgid "will always run at %d%% " +msgstr "lavorerà sempre a %d%% " + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "will be turned off." msgstr "rimarrà spenta." @@ -7429,23 +8211,21 @@ msgstr "Gonfierà o sgonfierà i poligoni 2D processati in base al segno della c #: src/libslic3r/PrintConfig.cpp:2160 msgid "Wipe into this object" -msgstr "Spurgo in questo oggetto" +msgstr "Effettua il riempimento in questo oggetto" #: src/libslic3r/PrintConfig.cpp:2152 msgid "Wipe into this object's infill" -msgstr "Spurgo nel riempimento di questo oggetto" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:90 -#: src/slic3r/GUI/GUI_ObjectList.cpp:564 src/libslic3r/PrintConfig.cpp:2202 -#: src/libslic3r/PrintConfig.cpp:2210 -msgid "Wipe options" -msgstr "Opzioni pulizia" +msgstr "Effettua il wipe nel riempimento di questo oggetto" #: src/slic3r/GUI/GUI_Preview.cpp:238 src/slic3r/GUI/Tab.cpp:1130 #: src/libslic3r/GCode/PreviewData.cpp:174 msgid "Wipe tower" msgstr "Torre di spurgo" +#: src/slic3r/GUI/Tab.cpp:1281 src/slic3r/GUI/Tab.cpp:1298 +msgid "Wipe Tower" +msgstr "Torre di Spurgo" + #: src/slic3r/GUI/Plater.cpp:1043 src/slic3r/GUI/Plater.cpp:1058 msgid "wipe tower" msgstr "torre di spurgo" @@ -7454,14 +8234,14 @@ msgstr "torre di spurgo" msgid "Wipe tower - Purging volume adjustment" msgstr "Torre di spurgo - Regolazione volume di spurgo" -#: src/slic3r/GUI/Tab.cpp:1664 -msgid "Wipe tower parameters" -msgstr "Parametri torre di spurgo" - #: src/libslic3r/PrintConfig.cpp:2144 msgid "Wipe tower rotation angle" msgstr "Angolo di rotazione della torre di spurgo" +#: src/libslic3r/PrintConfig.cpp:2145 +msgid "Wipe tower rotation angle with respect to x-axis " +msgstr "Angolo di rotazione della torre di spurgo rispetto all'asse X " + #: src/libslic3r/PrintConfig.cpp:2170 msgid "Wipe tower rotation angle with respect to x-axis." msgstr "Angolo di rotazione della torre di spurgo rispetto all'asse X." @@ -7470,6 +8250,10 @@ msgstr "Angolo di rotazione della torre di spurgo rispetto all'asse X." msgid "Wipe while retracting" msgstr "Pulisci durante la retrazione" +#: xs/src/libslic3r/PrintConfig.cpp:1997 +msgid "Wiping after toolchange will be preferentially done inside infills. This lowers the amount of waste but may result in longer print time due to additional travel moves." +msgstr "Lo spurgo dopo il cambio attrezzo avverrà preferibilmente nel riempimento. Questo diminuirà la quantità di scarto ma potrebbe causare un tempo di stampa maggiore per via dei movimenti aggiuntivi." + #: src/slic3r/GUI/PresetHints.cpp:224 msgid "with a volumetric rate" msgstr "con una portata volumetrica" @@ -7488,8 +8272,18 @@ msgid "World coordinates" msgstr "Coordinate reali" #: src/slic3r/GUI/UpdateDialogs.cpp:76 -msgid "Would you like to install it?\n\nNote that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n\nUpdated configuration bundles:" -msgstr "Vuoi installarlo?\n\nNota: verrà prima creata un'istantanea della configurazione completa. Potrà essere ripristinata in qualunque momento se dovessero presentarsi problemi con la nuova versione.\n\nGruppo di configurazioni aggiornate:" +msgid "" +"Would you like to install it?\n" +"\n" +"Note that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n" +"\n" +"Updated configuration bundles:" +msgstr "" +"Vuoi installarlo?\n" +"\n" +"Nota: verrà prima creata un'istantanea della configurazione completa. Potrà essere ripristinata in qualunque momento se dovessero presentarsi problemi con la nuova versione.\n" +"\n" +"Gruppo di configurazioni aggiornate:" #: src/libslic3r/Zipper.cpp:95 msgid "write calledback failed" @@ -7555,30 +8349,34 @@ msgstr "È possibile utilizzare tutte le opzioni di configurazione come variabil msgid "You can't change a type of the last solid part of the object." msgstr "Non è possibile modificare il tipo dell'ultima parte solida dell'oggetto." -#: src/slic3r/GUI/Plater.cpp:2243 -msgid "You can't load SLA project if there is at least one multi-part object on the bed" -msgstr "Non è possibile caricare il progetto SLA se è presente almeno un oggetto multi-parte sul piano" +#: src/slic3r/GUI/GUI_ObjectList.cpp:1711 +msgid "You can't delete the last intance from object." +msgstr "Non è possibile eliminare l'ultima istanza dall'oggetto." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1694 +msgid "You can't delete the last solid part from object." +msgstr "Non è possibile eliminare l'ultima parte solida dall'oggetto." #: src/slic3r/GUI/Plater.cpp:1746 -#, possible-c-format +#, c-format msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part" msgstr "Non è possibile aggiungere oggetti da %s perché uno o più sono multi-parte" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:565 -msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection" -msgstr "Non è possibile utilizzare la modalità di ridimensionamento non uniforme per una selezione di più oggetti/parti" - -#: src/slic3r/GUI/GUI_App.cpp:300 -msgid "You may need to update your graphics card driver." -msgstr "Dovresti aggiornare i driver della scheda video." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid "You have unsaved changes " +msgstr "Sono presenti modifiche non salvate " #: src/slic3r/GUI/Preferences.cpp:130 -#, possible-c-format +#, c-format msgid "You need to restart %s to make the changes effective." msgstr "È necessario riavviare %s per rendere effettive le modifiche." +#: src/slic3r/GUI/Preferences.cpp:126 +msgid "You need to restart Slic3r to make the changes effective." +msgstr "È necessario riavviare Slic3r per rendere effettive le modifiche." + #: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -#, possible-c-format +#, c-format msgid "You started your selection with %s Item." msgstr "Hai iniziato la selezione con %s elementi." diff --git a/resources/localization/ko/PrusaSlicer.mo b/resources/localization/ko/PrusaSlicer.mo deleted file mode 100644 index 5ba55934e21..00000000000 Binary files a/resources/localization/ko/PrusaSlicer.mo and /dev/null differ diff --git a/resources/localization/ko/PrusaSlicer_ko_KR.po b/resources/localization/ko/PrusaSlicer_ko_KR.po deleted file mode 100644 index 7bb8a8c6a7c..00000000000 --- a/resources/localization/ko/PrusaSlicer_ko_KR.po +++ /dev/null @@ -1,8977 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-08-06 09:54+0200\n" -"PO-Revision-Date: 2019-08-25 09:43+0900\n" -"Last-Translator: lee hak-min \n" -"Language-Team: ulsanether\n" -"Language: ko_KR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.3\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Crowdin-Project: slic3rkorean\n" -"X-Crowdin-Language: ko\n" -"X-Crowdin-File: ko_KR.po\n" - -#: src/slic3r/GUI/AboutDialog.cpp:39 src/slic3r/GUI/AboutDialog.cpp:289 -msgid "Portions copyright" -msgstr "다른 저작권" - -#: src/slic3r/GUI/AboutDialog.cpp:125 src/slic3r/GUI/AboutDialog.cpp:254 -msgid "Copyright" -msgstr "저작권" - -#. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:127 -msgid "" -"License agreements of all following programs (libraries) are part of " -"application license agreement" -msgstr "" -"다음의 모든 프로그램 (라이브러리)의 라이센스 계약은 응용 프로그램 라이센스 계" -"약의 일부입니다." - -#: src/slic3r/GUI/AboutDialog.cpp:197 -#, c-format -msgid "About %s" -msgstr "%s에 대하여" - -#: src/slic3r/GUI/AboutDialog.cpp:229 src/slic3r/GUI/MainFrame.cpp:60 -msgid "Version" -msgstr "버전" - -#. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:256 -msgid "is licensed under the" -msgstr "라이선스는" - -#: src/slic3r/GUI/AboutDialog.cpp:257 -msgid "GNU Affero General Public License, version 3" -msgstr "GNU Affero 일반 공중 사용 허가서, 버전 3" - -#: src/slic3r/GUI/AboutDialog.cpp:258 -msgid "" -"PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap " -"community." -msgstr "" -"프루사슬라이서는 알레산드로 라넬루치와 RepRap 커뮤니티 Slic3r를 기반으로합니" -"다." - -#: src/slic3r/GUI/AboutDialog.cpp:259 -msgid "" -"Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, " -"Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and " -"numerous others." -msgstr "" -"Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, " -"Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and " -"numerous others. 한국어 번역 울산에테르." - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:92 -msgid "" -"Copying of the temporary G-code to the output G-code failed. Maybe the SD " -"card is write locked?" -msgstr "" -"임시 G-코드를 출력할 SD카드에 복사하는 데 실패했습니다. SD카드의 락을 확인 하" -"시오." - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:93 -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:406 -msgid "Running post-processing scripts" -msgstr "포스트 프로세싱 스크립트" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:95 -msgid "G-code file exported to %1%" -msgstr "%1%로 내보낸 G 코드 파일" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:99 -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:117 -msgid "Slicing complete" -msgstr "슬라이스 완료" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:113 -msgid "Masked SLA file exported to %1%" -msgstr "마스크 된 SLA 파일을 %1%로 내보냅니" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:408 -msgid "Copying of the temporary G-code to the output G-code failed" -msgstr "임시 G 코드를 출력 G 코드에 복사 하지 못했습니다" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:417 -msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue" -msgstr "" -"`%1%`. 로 업로드를 예약 합니다. 창-> 인쇄 호스트 업로드 대기열을 참조 하십시" -"오" - -#: src/slic3r/GUI/BedShapeDialog.cpp:65 -msgid "Shape" -msgstr "모양" - -#: src/slic3r/GUI/BedShapeDialog.cpp:72 -msgid "Rectangular" -msgstr "직사각형" - -#: src/slic3r/GUI/BedShapeDialog.cpp:76 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:391 src/slic3r/GUI/Plater.cpp:145 -#: src/slic3r/GUI/Tab.cpp:2469 -msgid "Size" -msgstr "사이즈" - -#: src/slic3r/GUI/BedShapeDialog.cpp:77 -msgid "Size in X and Y of the rectangular plate." -msgstr "사격형 플레이트 X 및 Y 크기." - -#: src/slic3r/GUI/BedShapeDialog.cpp:83 -msgid "Origin" -msgstr "원본" - -#: src/slic3r/GUI/BedShapeDialog.cpp:84 -msgid "" -"Distance of the 0,0 G-code coordinate from the front left corner of the " -"rectangle." -msgstr "사각형의 전면 왼쪽된 모서리에서 0, 0 G-코드 좌표 거리입니다." - -#: src/slic3r/GUI/BedShapeDialog.cpp:88 -msgid "Circular" -msgstr "원형" - -#: src/slic3r/GUI/BedShapeDialog.cpp:91 src/slic3r/GUI/ConfigWizard.cpp:118 -#: src/slic3r/GUI/ConfigWizard.cpp:571 src/slic3r/GUI/ConfigWizard.cpp:585 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:388 -#: src/slic3r/GUI/WipeTowerDialog.cpp:84 src/slic3r/GUI/wxExtensions.cpp:486 -#: src/libslic3r/PrintConfig.cpp:70 src/libslic3r/PrintConfig.cpp:77 -#: src/libslic3r/PrintConfig.cpp:86 src/libslic3r/PrintConfig.cpp:220 -#: src/libslic3r/PrintConfig.cpp:295 src/libslic3r/PrintConfig.cpp:303 -#: src/libslic3r/PrintConfig.cpp:353 src/libslic3r/PrintConfig.cpp:363 -#: src/libslic3r/PrintConfig.cpp:488 src/libslic3r/PrintConfig.cpp:499 -#: src/libslic3r/PrintConfig.cpp:517 src/libslic3r/PrintConfig.cpp:695 -#: src/libslic3r/PrintConfig.cpp:1215 src/libslic3r/PrintConfig.cpp:1276 -#: src/libslic3r/PrintConfig.cpp:1294 src/libslic3r/PrintConfig.cpp:1312 -#: src/libslic3r/PrintConfig.cpp:1364 src/libslic3r/PrintConfig.cpp:1374 -#: src/libslic3r/PrintConfig.cpp:1495 src/libslic3r/PrintConfig.cpp:1503 -#: src/libslic3r/PrintConfig.cpp:1544 src/libslic3r/PrintConfig.cpp:1552 -#: src/libslic3r/PrintConfig.cpp:1562 src/libslic3r/PrintConfig.cpp:1570 -#: src/libslic3r/PrintConfig.cpp:1578 src/libslic3r/PrintConfig.cpp:1661 -#: src/libslic3r/PrintConfig.cpp:1878 src/libslic3r/PrintConfig.cpp:1948 -#: src/libslic3r/PrintConfig.cpp:1982 src/libslic3r/PrintConfig.cpp:2176 -#: src/libslic3r/PrintConfig.cpp:2183 src/libslic3r/PrintConfig.cpp:2190 -#: src/libslic3r/PrintConfig.cpp:2220 src/libslic3r/PrintConfig.cpp:2230 -#: src/libslic3r/PrintConfig.cpp:2240 src/libslic3r/PrintConfig.cpp:2403 -#: src/libslic3r/PrintConfig.cpp:2478 src/libslic3r/PrintConfig.cpp:2487 -#: src/libslic3r/PrintConfig.cpp:2496 src/libslic3r/PrintConfig.cpp:2506 -#: src/libslic3r/PrintConfig.cpp:2550 src/libslic3r/PrintConfig.cpp:2560 -#: src/libslic3r/PrintConfig.cpp:2572 src/libslic3r/PrintConfig.cpp:2592 -#: src/libslic3r/PrintConfig.cpp:2602 src/libslic3r/PrintConfig.cpp:2613 -#: src/libslic3r/PrintConfig.cpp:2631 src/libslic3r/PrintConfig.cpp:2646 -#: src/libslic3r/PrintConfig.cpp:2660 src/libslic3r/PrintConfig.cpp:2673 -#: src/libslic3r/PrintConfig.cpp:2683 src/libslic3r/PrintConfig.cpp:2704 -#: src/libslic3r/PrintConfig.cpp:2715 src/libslic3r/PrintConfig.cpp:2725 -#: src/libslic3r/PrintConfig.cpp:2735 -msgid "mm" -msgstr "mm" - -#: src/slic3r/GUI/BedShapeDialog.cpp:92 src/libslic3r/PrintConfig.cpp:692 -msgid "Diameter" -msgstr "노즐 직경" - -#: src/slic3r/GUI/BedShapeDialog.cpp:93 -msgid "" -"Diameter of the print bed. It is assumed that origin (0,0) is located in the " -"center." -msgstr "인쇄 침대의 직경. 원점 (0,0) 은 중심에 있다고 가정합니다." - -#: src/slic3r/GUI/BedShapeDialog.cpp:97 src/slic3r/GUI/GUI_Preview.cpp:246 -#: src/libslic3r/GCode/PreviewData.cpp:175 -msgid "Custom" -msgstr "사용자 정의" - -#: src/slic3r/GUI/BedShapeDialog.cpp:101 -msgid "Load shape from STL..." -msgstr "STL파일 로드." - -#: src/slic3r/GUI/BedShapeDialog.cpp:154 -msgid "Settings" -msgstr "설정" - -#: src/slic3r/GUI/BedShapeDialog.cpp:171 -msgid "Texture" -msgstr "질감" - -#: src/slic3r/GUI/BedShapeDialog.cpp:181 src/slic3r/GUI/BedShapeDialog.cpp:249 -msgid "Load..." -msgstr "불러오기..." - -#: src/slic3r/GUI/BedShapeDialog.cpp:189 src/slic3r/GUI/BedShapeDialog.cpp:257 -#: src/slic3r/GUI/Tab.cpp:3204 -msgid "Remove" -msgstr "제거" - -#: src/slic3r/GUI/BedShapeDialog.cpp:239 -msgid "Model" -msgstr "모델" - -#: src/slic3r/GUI/BedShapeDialog.cpp:464 -msgid "Choose an STL file to import bed shape from:" -msgstr "다음 에서 침대 모양을 가져올 STL 파일을 선택합니다." - -#: src/slic3r/GUI/BedShapeDialog.cpp:471 src/slic3r/GUI/BedShapeDialog.cpp:520 -#: src/slic3r/GUI/BedShapeDialog.cpp:543 -msgid "Invalid file format." -msgstr "잘못된 파일 형식." - -#: src/slic3r/GUI/BedShapeDialog.cpp:482 -msgid "Error! Invalid model" -msgstr "오류! 잘못된 모델" - -#: src/slic3r/GUI/BedShapeDialog.cpp:490 -msgid "The selected file contains no geometry." -msgstr "선택한 파일에는 형상이 없는 포함 되어 있습니다." - -#: src/slic3r/GUI/BedShapeDialog.cpp:494 -msgid "" -"The selected file contains several disjoint areas. This is not supported." -msgstr "" -"선택한 파일 여러 분리 된 영역을 포함 되어 있습니다. 이것ㅇ 지원 되지 않습니" -"다." - -#: src/slic3r/GUI/BedShapeDialog.cpp:509 -msgid "Choose a file to import bed texture from (PNG/SVG):" -msgstr "(PNG /SVG)에서 침대 텍스처를 가져올 파일을 선택합니다." - -#: src/slic3r/GUI/BedShapeDialog.cpp:532 -msgid "Choose an STL file to import bed model from:" -msgstr "다음에서 침대 모델을 가져올 STL 파일을 선택합니다." - -#: src/slic3r/GUI/BedShapeDialog.hpp:59 src/slic3r/GUI/ConfigWizard.cpp:530 -msgid "Bed Shape" -msgstr "배드 모양" - -#: src/slic3r/GUI/BonjourDialog.cpp:55 -msgid "Network lookup" -msgstr "네트워크 조회" - -#: src/slic3r/GUI/BonjourDialog.cpp:72 -msgid "Address" -msgstr "주소" - -#: src/slic3r/GUI/BonjourDialog.cpp:73 -msgid "Hostname" -msgstr "호스트이름" - -#: src/slic3r/GUI/BonjourDialog.cpp:74 -msgid "Service name" -msgstr "서비스 이름" - -#: src/slic3r/GUI/BonjourDialog.cpp:76 -msgid "OctoPrint version" -msgstr "옥토프린트 버전" - -#: src/slic3r/GUI/BonjourDialog.cpp:218 -msgid "Searching for devices" -msgstr "디바이스 검색" - -#: src/slic3r/GUI/BonjourDialog.cpp:225 -msgid "Finished" -msgstr "완료" - -#: src/slic3r/GUI/ButtonsDescription.cpp:16 -msgid "Buttons And Text Colors Description" -msgstr "버튼 및 텍스트 색상 설명" - -#: src/slic3r/GUI/ButtonsDescription.cpp:36 -msgid "Value is the same as the system value" -msgstr "이 값은 시스템 값과 같습니다" - -#: src/slic3r/GUI/ButtonsDescription.cpp:53 -msgid "" -"Value was changed and is not equal to the system value or the last saved " -"preset" -msgstr "" -"값이 변경 되었고 시스템 값 또는 마지막으로 저장 된 사전 설정과 같지 않음" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:18 -msgid "Upgrade" -msgstr "업그레이드" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:20 -msgid "Downgrade" -msgstr "다운그레이드" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:22 -msgid "Before roll back" -msgstr "롤백 전에" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:24 -msgid "User" -msgstr "사용자" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:27 -msgid "Unknown" -msgstr "알 수 없음" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:39 -msgid "Active" -msgstr "활동중" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 -msgid "slic3r version" -msgstr "slic3r 버전" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:46 src/slic3r/GUI/Preset.cpp:1307 -msgid "print" -msgstr "프린트" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:47 -msgid "filaments" -msgstr "필라멘트" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:48 src/slic3r/GUI/Preset.cpp:1311 -msgid "printer" -msgstr "프린터" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 src/slic3r/GUI/Tab.cpp:939 -msgid "vendor" -msgstr "제조 회사" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 -msgid "version" -msgstr "버전" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:53 -msgid "min slic3r version" -msgstr "최소 slic3r 버전" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:55 -msgid "max slic3r version" -msgstr "최대 slic3r 버전" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:58 -msgid "model" -msgstr "모델" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:58 -msgid "variants" -msgstr "변종" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70 -#, c-format -msgid "Incompatible with this %s" -msgstr "%s 과 호환되지 않습니다" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:73 -msgid "Activate" -msgstr "활성화" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:99 -msgid "Configuration Snapshots" -msgstr "구성 스냅숏" - -#: src/slic3r/GUI/ConfigWizard.cpp:118 -msgid "nozzle" -msgstr "노즐" - -#: src/slic3r/GUI/ConfigWizard.cpp:122 -msgid "Alternate nozzles:" -msgstr "대체 노즐:" - -#: src/slic3r/GUI/ConfigWizard.cpp:188 -msgid "All standard" -msgstr "모두 표준설정" - -#: src/slic3r/GUI/ConfigWizard.cpp:189 src/slic3r/GUI/Tab.cpp:3254 -msgid "All" -msgstr "모두 선택" - -#: src/slic3r/GUI/ConfigWizard.cpp:190 src/slic3r/GUI/Plater.cpp:470 -#: src/libslic3r/GCode/PreviewData.cpp:162 -msgid "None" -msgstr "없음" - -#: src/slic3r/GUI/ConfigWizard.cpp:296 -#, c-format -msgid "Welcome to the %s Configuration Assistant" -msgstr "%s 구성 도우미에 오신 것을 환영 합니다" - -#: src/slic3r/GUI/ConfigWizard.cpp:298 -#, c-format -msgid "Welcome to the %s Configuration Wizard" -msgstr "%s에 오신것을 환영 합니다." - -#: src/slic3r/GUI/ConfigWizard.cpp:300 -msgid "Welcome" -msgstr "환영합니다" - -#: src/slic3r/GUI/ConfigWizard.cpp:304 src/slic3r/GUI/GUI_App.cpp:747 -#, c-format -msgid "Run %s" -msgstr "%s 실행" - -#: src/slic3r/GUI/ConfigWizard.cpp:306 -#, c-format -msgid "" -"Hello, welcome to %s! This %s helps you with the initial configuration; just " -"a few settings and you will be ready to print." -msgstr "" -"안녕하세요 ,%s에 오신 것을 환영 합니다! 이 %s는 초기 구성에 도움이 됩니다. 그" -"냥 몇 가지 설정 하 고 당신은 인쇄 할 준비가 될 것입니다." - -#: src/slic3r/GUI/ConfigWizard.cpp:311 -msgid "" -"Remove user profiles - install from scratch (a snapshot will be taken " -"beforehand)" -msgstr "사용자 프로필 제거-처음부터 설치 (스냅숏은 사전에 수행 됩니다)" - -#: src/slic3r/GUI/ConfigWizard.cpp:342 -#, c-format -msgid "%s Family" -msgstr "%s의 가족들" - -#: src/slic3r/GUI/ConfigWizard.cpp:379 -msgid "Custom Printer Setup" -msgstr "사용자 지정 프린터 설정" - -#: src/slic3r/GUI/ConfigWizard.cpp:379 -msgid "Custom Printer" -msgstr "사용자 정의 프린터" - -#: src/slic3r/GUI/ConfigWizard.cpp:381 -msgid "Define a custom printer profile" -msgstr "사용자 정의 프린터 프로필 정의" - -#: src/slic3r/GUI/ConfigWizard.cpp:383 -msgid "Custom profile name:" -msgstr "사용자 지정 프로필 이름:" - -#: src/slic3r/GUI/ConfigWizard.cpp:407 -msgid "Automatic updates" -msgstr "자동 업데이트" - -#: src/slic3r/GUI/ConfigWizard.cpp:407 -msgid "Updates" -msgstr "업데이트" - -#: src/slic3r/GUI/ConfigWizard.cpp:415 src/slic3r/GUI/Preferences.cpp:69 -msgid "Check for application updates" -msgstr "프로그램 업데이트 확인" - -#: src/slic3r/GUI/ConfigWizard.cpp:419 -#, c-format -msgid "" -"If enabled, %s checks for new application versions online. When a new " -"version becomes available, a notification is displayed at the next " -"application startup (never during program usage). This is only a " -"notification mechanisms, no automatic installation is done." -msgstr "" -"활성화 된 경우 %s은 온라인의 새 버전을 확인합니다. 새 버전을 사용할 수있게되" -"면 다음 응용 프로그램 시작시 알림이 표시됩니다 (프로그램 사용 중에는 절대로 " -"사용하지 마십시오).이것은 알림 메커니즘 일뿐 자동 설치가 수행되지 않습니다." - -#: src/slic3r/GUI/ConfigWizard.cpp:425 src/slic3r/GUI/Preferences.cpp:77 -msgid "Update built-in Presets automatically" -msgstr "기존의 설정 자동 업데이트" - -#: src/slic3r/GUI/ConfigWizard.cpp:429 -#, c-format -msgid "" -"If enabled, %s downloads updates of built-in system presets in the " -"background.These updates are downloaded into a separate temporary location." -"When a new preset version becomes available it is offered at application " -"startup." -msgstr "" -"활성화 된 경우 %s은 백그라운드에서 내장 시스템 사전 설정의 업데이트를 다운로" -"드합니다. 이러한 업데이트는 별도의 임시 위치에 다운로드됩니다. 새로운 사전 설" -"정 버전을 사용할 수있게되면 응용 프로그램 시작시 제공됩니다." - -#: src/slic3r/GUI/ConfigWizard.cpp:432 -msgid "" -"Updates are never applied without user's consent and never overwrite user's " -"customized settings." -msgstr "" -"업데이트는 사용자의 동의없이 적용되지 않으며 사용자의 사용자 지정된 설정을 덮" -"어 쓰지 않습니다." - -#: src/slic3r/GUI/ConfigWizard.cpp:437 -msgid "" -"Additionally a backup snapshot of the whole configuration is created before " -"an update is applied." -msgstr "또한 업데이트가 적용되기 전에 전체 구성의 백업 스냅 샷이 생성됩니다." - -#: src/slic3r/GUI/ConfigWizard.cpp:444 -msgid "Other Vendors" -msgstr "다른 공급 업체" - -#: src/slic3r/GUI/ConfigWizard.cpp:446 -#, c-format -msgid "Pick another vendor supported by %s:" -msgstr "%s가 지원하는 다른 공급 업체를 선택하십시오:" - -#: src/slic3r/GUI/ConfigWizard.cpp:492 -msgid "Firmware Type" -msgstr "펌웨어 타입" - -#: src/slic3r/GUI/ConfigWizard.cpp:492 src/slic3r/GUI/Tab.cpp:2100 -msgid "Firmware" -msgstr "펌웨어" - -#: src/slic3r/GUI/ConfigWizard.cpp:496 -msgid "Choose the type of firmware used by your printer." -msgstr "프린터에 패치할 펌웨어를 선택하세요." - -#: src/slic3r/GUI/ConfigWizard.cpp:530 -msgid "Bed Shape and Size" -msgstr "배드 모양과 크기" - -#: src/slic3r/GUI/ConfigWizard.cpp:533 -msgid "Set the shape of your printer's bed." -msgstr "프린터 배드모양을 설정하세요." - -#: src/slic3r/GUI/ConfigWizard.cpp:553 -msgid "Filament and Nozzle Diameters" -msgstr "필라멘트와 노즐 크기" - -#: src/slic3r/GUI/ConfigWizard.cpp:553 -msgid "Print Diameters" -msgstr "인쇄 직경" - -#: src/slic3r/GUI/ConfigWizard.cpp:567 -msgid "Enter the diameter of your printer's hot end nozzle." -msgstr "핫 엔드 노즐 직경을 입력하십시오." - -#: src/slic3r/GUI/ConfigWizard.cpp:570 -msgid "Nozzle Diameter:" -msgstr "노즐 직경:" - -#: src/slic3r/GUI/ConfigWizard.cpp:580 -msgid "Enter the diameter of your filament." -msgstr "필라멘트의 직경을 입력하십시오." - -#: src/slic3r/GUI/ConfigWizard.cpp:581 -msgid "" -"Good precision is required, so use a caliper and do multiple measurements " -"along the filament, then compute the average." -msgstr "" -"정밀도가 필요하므로 캘리퍼를 사용하여 필라멘트를 따라 여러 번 측정 한 다음 평" -"균을 계산하십시오." - -#: src/slic3r/GUI/ConfigWizard.cpp:584 -msgid "Filament Diameter:" -msgstr "필라멘트 직경:" - -#: src/slic3r/GUI/ConfigWizard.cpp:618 -msgid "Extruder and Bed Temperatures" -msgstr "익스트루더와 배드 온도" - -#: src/slic3r/GUI/ConfigWizard.cpp:618 -msgid "Temperatures" -msgstr "온도" - -#: src/slic3r/GUI/ConfigWizard.cpp:634 -msgid "Enter the temperature needed for extruding your filament." -msgstr "필라멘트 압출에 필요한 온도를 입력하십시오." - -#: src/slic3r/GUI/ConfigWizard.cpp:635 -msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS." -msgstr "보통 PLA의 경우 160 ~ 230 ° C, ABS의 경우 215 ~ 250 ° C입니다." - -#: src/slic3r/GUI/ConfigWizard.cpp:638 -msgid "Extrusion Temperature:" -msgstr "출력 온도 :" - -#: src/slic3r/GUI/ConfigWizard.cpp:639 src/slic3r/GUI/ConfigWizard.cpp:653 -msgid "°C" -msgstr "°C" - -#: src/slic3r/GUI/ConfigWizard.cpp:648 -msgid "" -"Enter the bed temperature needed for getting your filament to stick to your " -"heated bed." -msgstr "필라멘트가 핫배드에 접착하는데 필요한 배드온도를 입력하십시오." - -#: src/slic3r/GUI/ConfigWizard.cpp:649 -msgid "" -"A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have " -"no heated bed." -msgstr "" -"보통은 PLA의 경우 60 ° C이고 ABS의 경우 110 ° C입니다. 핫배드가 없는 경우에" -"는 0으로 두십시오." - -#: src/slic3r/GUI/ConfigWizard.cpp:652 -msgid "Bed Temperature:" -msgstr "배드 온도 :" - -#: src/slic3r/GUI/ConfigWizard.cpp:1115 -msgid "Select all standard printers" -msgstr "이 프로파일과 호환 가능한 프린터를 선택하세요" - -#: src/slic3r/GUI/ConfigWizard.cpp:1118 -msgid "< &Back" -msgstr "< &뒤로" - -#: src/slic3r/GUI/ConfigWizard.cpp:1119 -msgid "&Next >" -msgstr "&다음 >" - -#: src/slic3r/GUI/ConfigWizard.cpp:1120 -msgid "&Finish" -msgstr "&완료" - -#: src/slic3r/GUI/ConfigWizard.cpp:1121 src/slic3r/GUI/FirmwareDialog.cpp:151 -#: src/slic3r/GUI/ProgressStatusBar.cpp:27 -msgid "Cancel" -msgstr "취소" - -#: src/slic3r/GUI/ConfigWizard.cpp:1135 -msgid "Prusa FFF Technology Printers" -msgstr "Prusa FFF 방식 프린터" - -#: src/slic3r/GUI/ConfigWizard.cpp:1138 -msgid "Prusa MSLA Technology Printers" -msgstr "Prusa MSLA 방식 프린터" - -#: src/slic3r/GUI/ConfigWizard.cpp:1207 -msgid "Configuration Assistant" -msgstr "구성 도우미" - -#: src/slic3r/GUI/ConfigWizard.cpp:1208 -msgid "Configuration &Assistant" -msgstr "구성 & 도우미" - -#: src/slic3r/GUI/ConfigWizard.cpp:1210 -msgid "Configuration Wizard" -msgstr "구성 마법사" - -#: src/slic3r/GUI/ConfigWizard.cpp:1211 -msgid "Configuration &Wizard" -msgstr "구성 & 마법사" - -#: src/slic3r/GUI/Field.cpp:125 -msgid "default value" -msgstr "기본값" - -#: src/slic3r/GUI/Field.cpp:128 -msgid "parameter name" -msgstr "매개 변수 명칭" - -#: src/slic3r/GUI/Field.cpp:139 -msgid "N/A" -msgstr "N/A" - -#: src/slic3r/GUI/Field.cpp:158 -#, c-format -msgid "%s doesn't support percentage" -msgstr "%s 이(가) 백분율을 지원하지 않음" - -#: src/slic3r/GUI/Field.cpp:174 src/slic3r/GUI/Field.cpp:197 -msgid "Invalid numeric input." -msgstr "숫자 입력이 잘못 되었습니다." - -#: src/slic3r/GUI/Field.cpp:179 -msgid "Input value is out of range" -msgstr "Input value is out of range" - -#: src/slic3r/GUI/Field.cpp:206 -#, c-format -msgid "" -"Do you mean %s%% instead of %s %s?\n" -"Select YES if you want to change this value to %s%%, \n" -"or NO if you are sure that %s %s is a correct value." -msgstr "" -"%s %s 대신 %s%%을 하려고 합니까?\n" -"이 값을 %s%%, 로 변경하려면 YES를 선택하십시오. \n" -"또는 %s %s 이(가) 올바른 값인지 확인하는 경우 NO를 선택하세요. " - -#: src/slic3r/GUI/Field.cpp:209 -msgid "Parameter validation" -msgstr "매개 변수 유효성 검사" - -#: src/slic3r/GUI/FirmwareDialog.cpp:150 -msgid "Flash!" -msgstr "완료!" - -#: src/slic3r/GUI/FirmwareDialog.cpp:152 -msgid "Flashing in progress. Please do not disconnect the printer!" -msgstr "진행 중입니다. 프린터를 분리하지 마십시오!" - -#: src/slic3r/GUI/FirmwareDialog.cpp:199 -msgid "Flashing failed" -msgstr "펌웨어 적용 실패" - -#: src/slic3r/GUI/FirmwareDialog.cpp:282 -msgid "Flashing succeeded!" -msgstr "적용 성공!" - -#: src/slic3r/GUI/FirmwareDialog.cpp:283 -msgid "Flashing failed. Please see the avrdude log below." -msgstr "적용 실패. 아래의 로그를 확인하세요." - -#: src/slic3r/GUI/FirmwareDialog.cpp:284 -msgid "Flashing cancelled." -msgstr "적용 취소됨." - -#: src/slic3r/GUI/FirmwareDialog.cpp:332 -#, c-format -msgid "" -"This firmware hex file does not match the printer model.\n" -"The hex file is intended for: %s\n" -"Printer reported: %s\n" -"\n" -"Do you want to continue and flash this hex file anyway?\n" -"Please only continue if you are sure this is the right thing to do." -msgstr "" -"이 펌웨어 hex 파일이 프린터 모델과 일치 하지 않습니다.\n" -"Hex 파일은 다음을 위한 것입니다: %s\n" -"보고 된 프린터: %s\n" -"\n" -"그래도이 hex 파일을 계속 적용 하시겠습니까?\n" -"확신 하는 경우에만 계속 하십시오." - -#: src/slic3r/GUI/FirmwareDialog.cpp:419 src/slic3r/GUI/FirmwareDialog.cpp:454 -#, c-format -msgid "" -"Multiple %s devices found. Please only connect one at a time for flashing." -msgstr "" -"여러 %s 장치를 찾았습니다. 깜박이는 경우에는 한 번에 하나씩만 연결 하십시오." - -#: src/slic3r/GUI/FirmwareDialog.cpp:436 -#, c-format -msgid "" -"The %s device was not found.\n" -"If the device is connected, please press the Reset button next to the USB " -"connector ..." -msgstr "" -"%s 장치를 찾을 하지 않았습니다.\n" -"장치가 연결 된 경우 USB 커넥터 옆에 있는 리셋 단추를 누르십시오." - -#: src/slic3r/GUI/FirmwareDialog.cpp:548 -#, c-format -msgid "The %s device could not have been found" -msgstr "%s 장치를 찾을 수 없습니다" - -#: src/slic3r/GUI/FirmwareDialog.cpp:645 -#, c-format -msgid "Error accessing port at %s: %s" -msgstr "%s 포트에 액세스 하는 중 오류가 발생 했습니다 :%s" - -#: src/slic3r/GUI/FirmwareDialog.cpp:647 -#, c-format -msgid "Error: %s" -msgstr "에러: %s" - -#: src/slic3r/GUI/FirmwareDialog.cpp:777 -msgid "Firmware flasher" -msgstr "펌웨어 업로드" - -#: src/slic3r/GUI/FirmwareDialog.cpp:802 -msgid "Firmware image:" -msgstr "펌웨어 이미지:" - -#: src/slic3r/GUI/FirmwareDialog.cpp:805 src/slic3r/GUI/Tab.cpp:1824 -#: src/slic3r/GUI/Tab.cpp:1880 -msgid "Browse" -msgstr "검색" - -#: src/slic3r/GUI/FirmwareDialog.cpp:807 -msgid "Serial port:" -msgstr "시리얼 포트:" - -#: src/slic3r/GUI/FirmwareDialog.cpp:809 -msgid "Autodetected" -msgstr "자동 감지" - -#: src/slic3r/GUI/FirmwareDialog.cpp:810 -msgid "Rescan" -msgstr "재검색" - -#: src/slic3r/GUI/FirmwareDialog.cpp:817 -msgid "Progress:" -msgstr "진행:" - -#: src/slic3r/GUI/FirmwareDialog.cpp:820 -msgid "Status:" -msgstr "상태:" - -#: src/slic3r/GUI/FirmwareDialog.cpp:821 -msgid "Ready" -msgstr "준비" - -#: src/slic3r/GUI/FirmwareDialog.cpp:841 -msgid "Advanced: Output log" -msgstr "고급: 출력 로그" - -#: src/slic3r/GUI/FirmwareDialog.cpp:852 -#: src/slic3r/GUI/PrintHostDialogs.cpp:161 -msgid "Close" -msgstr "닫기" - -#: src/slic3r/GUI/FirmwareDialog.cpp:903 -msgid "" -"Are you sure you want to cancel firmware flashing?\n" -"This could leave your printer in an unusable state!" -msgstr "" -"새펌웨어 적용을 취소하시겠습니까?\n" -"프린터가 사용할 수 없는 상태가 될 수 있습니다!" - -#: src/slic3r/GUI/FirmwareDialog.cpp:904 -msgid "Confirmation" -msgstr "확인" - -#: src/slic3r/GUI/FirmwareDialog.cpp:907 -msgid "Cancelling..." -msgstr "취소 중...." - -#: src/slic3r/GUI/GLCanvas3D.cpp:526 -msgid "Layers heights" -msgstr "레이어 높이" - -#: src/slic3r/GUI/GLCanvas3D.cpp:623 -msgid "An object outside the print area was detected" -msgstr "인쇄 영역 밖에 있는 개체가 감지 되었습니다" - -#: src/slic3r/GUI/GLCanvas3D.cpp:624 -msgid "A toolpath outside the print area was detected" -msgstr "인쇄 영역 밖에 있는 공구 경로가 감지 되었습니다" - -#: src/slic3r/GUI/GLCanvas3D.cpp:625 -msgid "SLA supports outside the print area were detected" -msgstr "인쇄 영역 외부의 SLA 지원 감지 됨" - -#: src/slic3r/GUI/GLCanvas3D.cpp:626 -msgid "Some objects are not visible when editing supports" -msgstr "편집 지원 시 일부 객체가 표시 되지 않음" - -#: src/slic3r/GUI/GLCanvas3D.cpp:628 -msgid "" -"An object outside the print area was detected\n" -"Resolve the current problem to continue slicing" -msgstr "" -"인쇄 영역 밖에 있는 개체가 감지 되었습니다.\n" -"현재 문제를 해결 하여 슬라이싱을 계속 합니다" - -#: src/slic3r/GUI/GLCanvas3D.cpp:1711 -msgid "Mirror Object" -msgstr "오브젝트 미러" - -#: src/slic3r/GUI/GLCanvas3D.cpp:2872 -msgid "Move Object" -msgstr "오브젝트 이동" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3609 -#: src/slic3r/GUI/MainFrame.cpp:559 -msgid "Undo" -msgstr "실행 취소" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3639 -#: src/slic3r/GUI/MainFrame.cpp:562 -msgid "Redo" -msgstr "다시 실행" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3395 -#, c-format -msgid "%s Stack" -msgstr "%s 스택" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3413 -#, c-format -msgid "%s %d Action" -msgstr "%s %d 액션" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3460 -msgid "Add..." -msgstr "추가..." - -#: src/slic3r/GUI/GLCanvas3D.cpp:3468 src/slic3r/GUI/GUI_ObjectList.cpp:1434 -#: src/slic3r/GUI/Plater.cpp:3467 src/slic3r/GUI/Plater.cpp:3486 -#: src/slic3r/GUI/Tab.cpp:3204 -msgid "Delete" -msgstr "지우기 " - -#: src/slic3r/GUI/GLCanvas3D.cpp:3477 src/slic3r/GUI/Plater.cpp:4075 -msgid "Delete all" -msgstr "전부 지우기" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3486 src/slic3r/GUI/KBShortcutsDialog.cpp:134 -#: src/slic3r/GUI/Plater.cpp:2636 -msgid "Arrange" -msgstr "정렬" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3486 -msgid "Arrange selection" -msgstr "선택 정렬" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3498 -msgid "Copy" -msgstr "복사" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3507 -msgid "Paste" -msgstr "붙여넣기" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3519 -msgid "Add instance" -msgstr "복제본 추가" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3530 -msgid "Remove instance" -msgstr "복제본 제거" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3543 -msgid "Split to objects" -msgstr "객체로 분할" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3553 src/slic3r/GUI/GUI_ObjectList.cpp:1280 -msgid "Split to parts" -msgstr "파트로 분할" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3566 -msgid "Layers editing" -msgstr "레이어층을 편집" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5623 -msgid "Selection-Add from rectangle" -msgstr "사각형에서 선택-추가" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5642 -msgid "Selection-Remove from rectangle" -msgstr "선택- 사각형에서 제거" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:40 -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:144 src/libslic3r/PrintConfig.cpp:3176 -msgid "Cut" -msgstr "자르기" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:149 -msgid "Keep upper part" -msgstr "상위 부분 유지" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:150 -msgid "Keep lower part" -msgstr "낮은 부분 유지" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:151 -msgid "Rotate lower part upwards" -msgstr "아래쪽 부분을 위쪽으로 회전" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:154 -msgid "Perform cut" -msgstr "절단 실행" - -#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:45 -msgid "Place on face" -msgstr "면 배치 " - -#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:48 -msgid "Move" -msgstr "이동" - -#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:177 -msgid "Position (mm)" -msgstr "위치 (mm)" - -#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:177 -msgid "Displacement (mm)" -msgstr "변위 (mm)" - -#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:449 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:466 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:485 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:503 -#: src/libslic3r/PrintConfig.cpp:3225 -msgid "Rotate" -msgstr "회전" - -#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:482 -msgid "Rotation (deg)" -msgstr "회전 (°)" - -#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:47 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:390 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:486 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:504 -#: src/libslic3r/PrintConfig.cpp:3240 -msgid "Scale" -msgstr "크기" - -#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:292 -msgid "Scale (%)" -msgstr "스케일 (%)" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:44 -msgid "Head diameter" -msgstr "헤드 지름" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:45 -msgid "Lock supports under new islands" -msgstr "새 고립 영역에서 잠금 지원" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:46 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1427 -msgid "Remove selected points" -msgstr "선택한 점 제거" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:47 -msgid "Remove all points" -msgstr "모든 점 제거" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:48 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1430 -msgid "Apply changes" -msgstr "변경 내용을 적용" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:49 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1431 -msgid "Discard changes" -msgstr "변경사항을 취소" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:50 -msgid "Minimal points distance" -msgstr "최소 포인트 거리" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:51 -#: src/libslic3r/PrintConfig.cpp:2620 -msgid "Support points density" -msgstr "지원 포인트 밀도" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:52 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1433 -msgid "Auto-generate points" -msgstr "점 자동 생성" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:53 -msgid "Manual editing" -msgstr "수동 편집" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:54 -msgid "Clipping of view" -msgstr "클랩핑된것 보기" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:55 -msgid "Reset direction" -msgstr "방향 재설정" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:531 -msgid "Add support point" -msgstr "서포트 지점 추가" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:720 -msgid "Delete support point" -msgstr "서포트 지점 삭제" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:925 -msgid "Change point head diameter" -msgstr "변경 점 헤드 지름" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:991 -msgid "Support parameter change" -msgstr "서포트 매개 변수 변경" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1099 -msgid "SLA Support Points" -msgstr "SLA 지원 포인트" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1138 -msgid "Do you want to save your manually edited support points?" -msgstr "수동으로 편집한 서포트 지점을 저장 하 시겠습니까?" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1139 -msgid "Save changes?" -msgstr "변경 사항을 저장 하 시겠습니까?" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1183 -msgid "Move support point" -msgstr "서포트 점 이동" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1282 -msgid "Support points edit" -msgstr "서포트 포인트 편집" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1333 -msgid "" -"Autogeneration will erase all manually edited points.\n" -"\n" -"Are you sure you want to do it?\n" -msgstr "" -"자동 생성은 수동으로 편집한 모든 점을 지웁니다.\n" -"\n" -"그렇게 하시겠습니까?\n" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1335 src/slic3r/GUI/GUI.cpp:289 -#: src/slic3r/GUI/WipeTowerDialog.cpp:44 src/slic3r/GUI/WipeTowerDialog.cpp:328 -msgid "Warning" -msgstr "위험" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1338 -msgid "Autogenerate support points" -msgstr "서포트 자동 생성" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1390 -msgid "SLA gizmo keyboard shortcuts" -msgstr "SLA 장치바로 가기" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1401 -msgid "Note: some shortcuts work in (non)editing mode only." -msgstr "참고: 일부 단축키는 (비)편집 모드 에서만 작동 합니다." - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1419 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1422 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1423 -msgid "Left click" -msgstr "왼쪽 클릭" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1419 -msgid "Add point" -msgstr "점 추가" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1420 -msgid "Right click" -msgstr "오른쪽 클릭" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1420 -msgid "Remove point" -msgstr "복제본 제거" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1421 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1424 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1425 -msgid "Drag" -msgstr "드래그" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1421 -msgid "Move point" -msgstr "점 이동" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1422 -msgid "Add point to selection" -msgstr "선택 영역에 점 추가" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1423 -msgid "Remove point from selection" -msgstr "선택 영역에서 점 제거" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1424 -msgid "Select by rectangle" -msgstr "직사각형으로 선택" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1425 -msgid "Deselect by rectangle" -msgstr "사각형으로 선택 해제" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1426 -msgid "Select all points" -msgstr "모든 점 선택" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1428 -msgid "Mouse wheel" -msgstr "마우스 휠" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1428 -msgid "Move clipping plane" -msgstr "클립핑 평면 이동" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1429 -msgid "Reset clipping plane" -msgstr "클립핑 평면 재설정" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1432 -msgid "Switch to editing mode" -msgstr "편집 모드로 전환" - -#: src/slic3r/GUI/GUI.cpp:141 src/slic3r/GUI/Tab.cpp:3063 -msgid "It's impossible to print multi-part object(s) with SLA technology." -msgstr "SLA 방식을 사용 하여 멀티파트를 인쇄할 수는 없습니다." - -#: src/slic3r/GUI/GUI.cpp:142 -msgid "Please check and fix your object list." -msgstr "개체 목록을 확인 하고 수정 하십시오." - -#: src/slic3r/GUI/GUI.cpp:143 src/slic3r/GUI/Plater.cpp:2213 -#: src/slic3r/GUI/Tab.cpp:3065 -msgid "Attention!" -msgstr "주목!" - -#: src/slic3r/GUI/GUI.cpp:283 -msgid "Notice" -msgstr "공지" - -#: src/slic3r/GUI/GUI_App.cpp:435 -msgid "Changing of an application language" -msgstr "응용 프로그램 언어 변경" - -#: src/slic3r/GUI/GUI_App.cpp:443 src/slic3r/GUI/GUI_App.cpp:452 -msgid "Recreating" -msgstr "재현" - -#: src/slic3r/GUI/GUI_App.cpp:456 -msgid "Loading of current presets" -msgstr "현재 프리셋 불러오기" - -#: src/slic3r/GUI/GUI_App.cpp:464 -msgid "Loading of a mode view" -msgstr "모드 보기 로드" - -#: src/slic3r/GUI/GUI_App.cpp:544 -msgid "Choose one file (3MF/AMF):" -msgstr "파일(3MF/AMF) 선택:" - -#: src/slic3r/GUI/GUI_App.cpp:556 -msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" -msgstr "파일을 선택하세요 (STL/OBJ/AMF/3MF/PRUSA):" - -#: src/slic3r/GUI/GUI_App.cpp:598 -msgid "Select the language" -msgstr "언어를 선택" - -#: src/slic3r/GUI/GUI_App.cpp:599 -msgid "Language" -msgstr "언어" - -#: src/slic3r/GUI/GUI_App.cpp:750 -msgid "&Configuration Snapshots" -msgstr "구성 스냅숏" - -#: src/slic3r/GUI/GUI_App.cpp:750 -msgid "Inspect / activate configuration snapshots" -msgstr "구성 스냅 샷 검사 / 활성화" - -#: src/slic3r/GUI/GUI_App.cpp:751 -msgid "Take Configuration &Snapshot" -msgstr "구성 스냅 샷 가져 오기" - -#: src/slic3r/GUI/GUI_App.cpp:751 -msgid "Capture a configuration snapshot" -msgstr "구성 스냅 샷 캡처" - -#: src/slic3r/GUI/GUI_App.cpp:754 -msgid "&Preferences" -msgstr "환경 설정" - -#: src/slic3r/GUI/GUI_App.cpp:760 -msgid "Application preferences" -msgstr "응용 프로그램 환경 설정" - -#: src/slic3r/GUI/GUI_App.cpp:763 src/slic3r/GUI/wxExtensions.cpp:2882 -msgid "Simple" -msgstr "단순" - -#: src/slic3r/GUI/GUI_App.cpp:763 -msgid "Simple View Mode" -msgstr "단순 보기 모드" - -#: src/slic3r/GUI/GUI_App.cpp:764 src/slic3r/GUI/GUI_ObjectList.cpp:93 -#: src/slic3r/GUI/GUI_ObjectList.cpp:567 src/slic3r/GUI/Tab.cpp:1037 -#: src/slic3r/GUI/Tab.cpp:1052 src/slic3r/GUI/Tab.cpp:1150 -#: src/slic3r/GUI/Tab.cpp:1153 src/slic3r/GUI/Tab.cpp:1649 -#: src/slic3r/GUI/Tab.cpp:2120 src/slic3r/GUI/Tab.cpp:3699 -#: src/slic3r/GUI/wxExtensions.cpp:2883 src/libslic3r/PrintConfig.cpp:83 -#: src/libslic3r/PrintConfig.cpp:197 src/libslic3r/PrintConfig.cpp:360 -#: src/libslic3r/PrintConfig.cpp:1013 src/libslic3r/PrintConfig.cpp:2226 -msgid "Advanced" -msgstr "고급" - -#: src/slic3r/GUI/GUI_App.cpp:764 -msgid "Advanced View Mode" -msgstr "고급 보기 모드" - -#: src/slic3r/GUI/GUI_App.cpp:765 src/slic3r/GUI/wxExtensions.cpp:2884 -msgid "Expert" -msgstr "전문가" - -#: src/slic3r/GUI/GUI_App.cpp:765 -msgid "Expert View Mode" -msgstr "전문가 보기 모드" - -#: src/slic3r/GUI/GUI_App.cpp:770 -msgid "Mode" -msgstr "모드" - -#: src/slic3r/GUI/GUI_App.cpp:770 -#, c-format -msgid "%s View Mode" -msgstr "%s 보기 모드" - -#: src/slic3r/GUI/GUI_App.cpp:772 -msgid "Change Application &Language" -msgstr "응용 프로그램 언어 번경" - -#: src/slic3r/GUI/GUI_App.cpp:774 -msgid "Flash printer &firmware" -msgstr "프린터 펌웨어 플래시" - -#: src/slic3r/GUI/GUI_App.cpp:774 -msgid "Upload a firmware image into an Arduino based printer" -msgstr "아두이노 기반의 프린터 이미지 업로드" - -#: src/slic3r/GUI/GUI_App.cpp:786 -msgid "Taking configuration snapshot" -msgstr "구성 스냅 샷 만들기" - -#: src/slic3r/GUI/GUI_App.cpp:786 -msgid "Snapshot name" -msgstr "스냅 샷 이름" - -#: src/slic3r/GUI/GUI_App.cpp:829 -msgid "" -"Switching the language will trigger application restart.\n" -"You will lose content of the plater." -msgstr "" -"언어를 전환 하면 응용 프로그램 재시작 합니다.플레이트 위 오브젝트는 모두 지워" -"집니다." - -#: src/slic3r/GUI/GUI_App.cpp:831 -msgid "Do you want to proceed?" -msgstr "계속 하시겠습니까?" - -#: src/slic3r/GUI/GUI_App.cpp:832 -msgid "Language selection" -msgstr "국가에 맞는 언어를 선택" - -#: src/slic3r/GUI/GUI_App.cpp:855 -msgid "&Configuration" -msgstr "&구성" - -#: src/slic3r/GUI/GUI_App.cpp:877 -msgid "The presets on the following tabs were modified" -msgstr "다음 탭의 사전 설정이 수정 되었습니다" - -#: src/slic3r/GUI/GUI_App.cpp:877 src/slic3r/GUI/Tab.cpp:3051 -msgid "Discard changes and continue anyway?" -msgstr "수정된 사항을 취소하고 계속하겠습니까?" - -#: src/slic3r/GUI/GUI_App.cpp:880 -msgid "Unsaved Presets" -msgstr "저장되지 않은 기존설정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:30 src/slic3r/GUI/GUI_ObjectList.cpp:84 -#: src/slic3r/GUI/GUI_ObjectList.cpp:558 src/libslic3r/PrintConfig.cpp:67 -#: src/libslic3r/PrintConfig.cpp:160 src/libslic3r/PrintConfig.cpp:392 -#: src/libslic3r/PrintConfig.cpp:453 src/libslic3r/PrintConfig.cpp:461 -#: src/libslic3r/PrintConfig.cpp:867 src/libslic3r/PrintConfig.cpp:1051 -#: src/libslic3r/PrintConfig.cpp:1354 src/libslic3r/PrintConfig.cpp:1420 -#: src/libslic3r/PrintConfig.cpp:1601 src/libslic3r/PrintConfig.cpp:2037 -#: src/libslic3r/PrintConfig.cpp:2095 -msgid "Layers and Perimeters" -msgstr "레이어 및 경계선" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:31 src/slic3r/GUI/GUI_ObjectList.cpp:85 -#: src/slic3r/GUI/GUI_ObjectList.cpp:559 src/slic3r/GUI/Plater.cpp:498 -#: src/slic3r/GUI/Tab.cpp:1041 src/slic3r/GUI/Tab.cpp:1042 -#: src/slic3r/GUI/Tab.cpp:1394 src/libslic3r/PrintConfig.cpp:177 -#: src/libslic3r/PrintConfig.cpp:400 src/libslic3r/PrintConfig.cpp:420 -#: src/libslic3r/PrintConfig.cpp:754 src/libslic3r/PrintConfig.cpp:768 -#: src/libslic3r/PrintConfig.cpp:805 src/libslic3r/PrintConfig.cpp:958 -#: src/libslic3r/PrintConfig.cpp:968 src/libslic3r/PrintConfig.cpp:986 -#: src/libslic3r/PrintConfig.cpp:1004 src/libslic3r/PrintConfig.cpp:1023 -#: src/libslic3r/PrintConfig.cpp:1708 src/libslic3r/PrintConfig.cpp:1725 -msgid "Infill" -msgstr "인필(채움)" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:32 src/slic3r/GUI/GUI_ObjectList.cpp:86 -#: src/slic3r/GUI/GUI_ObjectList.cpp:560 src/slic3r/GUI/GUI_Preview.cpp:243 -#: src/slic3r/GUI/Tab.cpp:1070 src/slic3r/GUI/Tab.cpp:1071 -#: src/libslic3r/PrintConfig.cpp:344 src/libslic3r/PrintConfig.cpp:1481 -#: src/libslic3r/PrintConfig.cpp:1830 src/libslic3r/PrintConfig.cpp:1836 -#: src/libslic3r/PrintConfig.cpp:1844 src/libslic3r/PrintConfig.cpp:1856 -#: src/libslic3r/PrintConfig.cpp:1866 src/libslic3r/PrintConfig.cpp:1874 -#: src/libslic3r/PrintConfig.cpp:1889 src/libslic3r/PrintConfig.cpp:1910 -#: src/libslic3r/PrintConfig.cpp:1921 src/libslic3r/PrintConfig.cpp:1937 -#: src/libslic3r/PrintConfig.cpp:1946 src/libslic3r/PrintConfig.cpp:1955 -#: src/libslic3r/PrintConfig.cpp:1966 src/libslic3r/PrintConfig.cpp:1980 -#: src/libslic3r/PrintConfig.cpp:1988 src/libslic3r/PrintConfig.cpp:1989 -#: src/libslic3r/PrintConfig.cpp:1998 src/libslic3r/PrintConfig.cpp:2006 -#: src/libslic3r/PrintConfig.cpp:2020 src/libslic3r/GCode/PreviewData.cpp:172 -msgid "Support material" -msgstr "서포트 재료(Support material)" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:90 -#: src/slic3r/GUI/GUI_ObjectList.cpp:564 src/libslic3r/PrintConfig.cpp:2202 -#: src/libslic3r/PrintConfig.cpp:2210 -msgid "Wipe options" -msgstr "지우기 옵션" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:41 -msgid "Pad and Support" -msgstr "패드 및 서포트" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:47 -msgid "Add part" -msgstr "파트 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:48 -msgid "Add modifier" -msgstr "편집영역(modifier) 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:49 -msgid "Add support enforcer" -msgstr "서포트 지원(enforcer)영역 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:50 -msgid "Add support blocker" -msgstr "서포트 금지영역(blocker) 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:87 src/slic3r/GUI/GUI_ObjectList.cpp:561 -#: src/slic3r/GUI/GUI_Preview.cpp:222 src/slic3r/GUI/Tab.cpp:1095 -#: src/libslic3r/PrintConfig.cpp:209 src/libslic3r/PrintConfig.cpp:441 -#: src/libslic3r/PrintConfig.cpp:896 src/libslic3r/PrintConfig.cpp:1024 -#: src/libslic3r/PrintConfig.cpp:1410 src/libslic3r/PrintConfig.cpp:1647 -#: src/libslic3r/PrintConfig.cpp:1696 src/libslic3r/PrintConfig.cpp:1747 -#: src/libslic3r/PrintConfig.cpp:2080 -msgid "Speed" -msgstr "속도" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:88 src/slic3r/GUI/GUI_ObjectList.cpp:562 -#: src/slic3r/GUI/Tab.cpp:1130 src/slic3r/GUI/Tab.cpp:1997 -#: src/libslic3r/PrintConfig.cpp:471 src/libslic3r/PrintConfig.cpp:979 -#: src/libslic3r/PrintConfig.cpp:1389 src/libslic3r/PrintConfig.cpp:1717 -#: src/libslic3r/PrintConfig.cpp:1902 src/libslic3r/PrintConfig.cpp:1928 -msgid "Extruders" -msgstr "익스트루더" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:89 src/slic3r/GUI/GUI_ObjectList.cpp:563 -#: src/libslic3r/PrintConfig.cpp:431 src/libslic3r/PrintConfig.cpp:538 -#: src/libslic3r/PrintConfig.cpp:855 src/libslic3r/PrintConfig.cpp:987 -#: src/libslic3r/PrintConfig.cpp:1398 src/libslic3r/PrintConfig.cpp:1737 -#: src/libslic3r/PrintConfig.cpp:1911 src/libslic3r/PrintConfig.cpp:2069 -msgid "Extrusion Width" -msgstr "압출 폭" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:95 src/slic3r/GUI/GUI_ObjectList.cpp:569 -#: src/slic3r/GUI/Plater.cpp:466 src/slic3r/GUI/Tab.cpp:3655 -#: src/slic3r/GUI/Tab.cpp:3656 src/libslic3r/PrintConfig.cpp:2469 -#: src/libslic3r/PrintConfig.cpp:2476 src/libslic3r/PrintConfig.cpp:2485 -#: src/libslic3r/PrintConfig.cpp:2494 src/libslic3r/PrintConfig.cpp:2504 -#: src/libslic3r/PrintConfig.cpp:2530 src/libslic3r/PrintConfig.cpp:2537 -#: src/libslic3r/PrintConfig.cpp:2548 src/libslic3r/PrintConfig.cpp:2558 -#: src/libslic3r/PrintConfig.cpp:2567 src/libslic3r/PrintConfig.cpp:2580 -#: src/libslic3r/PrintConfig.cpp:2590 src/libslic3r/PrintConfig.cpp:2599 -#: src/libslic3r/PrintConfig.cpp:2609 src/libslic3r/PrintConfig.cpp:2621 -#: src/libslic3r/PrintConfig.cpp:2629 -msgid "Supports" -msgstr "서포트" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:96 src/slic3r/GUI/GUI_ObjectList.cpp:570 -#: src/slic3r/GUI/Tab.cpp:3684 src/slic3r/GUI/Tab.cpp:3685 -#: src/libslic3r/PrintConfig.cpp:2637 src/libslic3r/PrintConfig.cpp:2644 -#: src/libslic3r/PrintConfig.cpp:2658 src/libslic3r/PrintConfig.cpp:2668 -#: src/libslic3r/PrintConfig.cpp:2681 src/libslic3r/PrintConfig.cpp:2690 -#: src/libslic3r/PrintConfig.cpp:2701 src/libslic3r/PrintConfig.cpp:2712 -#: src/libslic3r/PrintConfig.cpp:2722 src/libslic3r/PrintConfig.cpp:2732 -msgid "Pad" -msgstr "패드" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:217 -msgid "Name" -msgstr "이름" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:271 -#, c-format -msgid "Auto-repaired (%d errors):\n" -msgstr "오류자동수정 (%d errors)\n" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:278 -msgid "degenerate facets" -msgstr "더러운 면" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:279 -msgid "edges fixed" -msgstr "모서리 고정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:280 -msgid "facets removed" -msgstr "면 제거" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:281 -msgid "facets added" -msgstr "면 추가됨" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:282 -msgid "facets reversed" -msgstr "면 반전" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:283 -msgid "backwards edges" -msgstr "뒤쪽 가장자리" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:291 -msgid "Right button click the icon to fix STL through Netfabb" -msgstr "아이콘을 클릭 하여 Netfabb에서 STL을 수정 합니다" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:325 -msgid "Right button click the icon to change the object settings" -msgstr "아이콘을 클릭 하여 개체 설정을 변경 합니다" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:375 src/slic3r/GUI/GUI_ObjectList.cpp:396 -#: src/slic3r/GUI/GUI_ObjectList.cpp:408 src/slic3r/GUI/GUI_ObjectList.cpp:3508 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3518 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3550 src/slic3r/GUI/wxExtensions.cpp:576 -#: src/slic3r/GUI/wxExtensions.cpp:633 src/slic3r/GUI/wxExtensions.cpp:658 -#: src/slic3r/GUI/wxExtensions.cpp:794 -msgid "default" -msgstr "기본값" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:380 src/slic3r/GUI/Tab.cpp:1613 -#: src/libslic3r/PrintConfig.cpp:470 -msgid "Extruder" -msgstr "익스트루더(Extruder)" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Object" -msgstr "개체 이름 바꾸기" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Sub-object" -msgstr "하위 오브젝트 이름 바꾸기" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:934 src/slic3r/GUI/GUI_ObjectList.cpp:3346 -msgid "Instances to Separated Objects" -msgstr "분리된 객체에 대한 복제본" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:952 -msgid "Remove Volume(s)" -msgstr "볼륨 제거" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1007 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1316 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1322 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1556 -#, c-format -msgid "Quick Add Settings (%s)" -msgstr "빠른 추가 설정 (%s)" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1077 -msgid "Select showing settings" -msgstr "설정 표시를 선택 합니다" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1126 -msgid "Add Settings for Layers" -msgstr "도면층에 대한 설정 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1127 -msgid "Add Settings for Sub-object" -msgstr "하위 개체에 대한 설정 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1128 -msgid "Add Settings for Object" -msgstr "개체에 대한 설정 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1189 -msgid "Add Settings Bundle for Layers" -msgstr "레이어에 대한 설정 번들 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1190 -msgid "Add Settings Bundle for Sub-object" -msgstr "하위 오브젝트에 대한 설정 번들 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1191 -msgid "Add Settings Bundle for Object" -msgstr "개체에 대한 설정 번들 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1230 -msgid "Load" -msgstr "불러오기" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1235 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1260 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1263 -msgid "Box" -msgstr "박스" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1235 -msgid "Cylinder" -msgstr "원통" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1235 -msgid "Sphere" -msgstr "영역" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1235 -msgid "Slab" -msgstr "슬랩" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1287 -msgid "Edit Layers" -msgstr "레이어 편집" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1295 -msgid "Add settings" -msgstr "다음 설정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1362 -msgid "Change type" -msgstr "타입 변경" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1369 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1510 -msgid "Set as a Separated Object" -msgstr "분리 된 객체로 설정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1375 -msgid "Rename" -msgstr "이름 변경" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1386 -msgid "Fix through the Netfabb" -msgstr "네트워크를 통해 수정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1396 src/slic3r/GUI/Plater.cpp:3496 -msgid "Export as STL" -msgstr "STL로 내보내기" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1403 -msgid "Change extruder" -msgstr "압출기(익스트루더) 변경" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1422 src/libslic3r/PrintConfig.cpp:309 -msgid "Default" -msgstr "기본값" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1428 -msgid "Select new extruder for the object/part" -msgstr "객체/부품에 대한 새 압출(익스트루더) 기 선택" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale to print volume" -msgstr "인쇄 볼륨에 따라 배율 조정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale the selected object to fit the print volume" -msgstr "인쇄 볼륨에 맞게 선택한 오브젝트의 배율 조정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1510 -msgid "Set as a Separated Objects" -msgstr "분리 된 객체로 설정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1585 -msgid "Load Part" -msgstr "하중 부품" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1617 -msgid "Error!" -msgstr "에러!" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1662 -msgid "Add Generic Subobject" -msgstr "일반 하위 개체 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1669 -msgid "Generic" -msgstr "일반" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1770 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1872 -msgid "Last instance of an object cannot be deleted." -msgstr "개체의 마지막 복제본를 삭제할 수 없습니다." - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1782 -msgid "Delete Settings" -msgstr "설정 삭제" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1806 -msgid "Delete All Instances from Object" -msgstr "개체에서 모든 복제본 삭제" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1822 -msgid "Delete Layers Range" -msgstr "레이어 범위 삭제" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1853 -msgid "From Object List You can't delete the last solid part from object." -msgstr "개체 목록에서 개체에서 마지막 솔리드 부품을 삭제할 수 없습니다." - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1857 -msgid "Delete Subobject" -msgstr "하위 개체 삭제" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1876 -msgid "Delete Instance" -msgstr "복제본 삭제" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1900 src/slic3r/GUI/Plater.cpp:2793 -msgid "" -"The selected object couldn't be split because it contains only one part." -msgstr "" -"선택한 오브젝트는 파트 하나만 포함되어 있기 때문에 분할 할 수 없습니다." - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1904 -msgid "Split to Parts" -msgstr "파트로 분할" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1950 -msgid "Add Layers" -msgstr "레이어 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2075 -msgid "Group manipulation" -msgstr "그룹 조작" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2087 -msgid "Object manipulation" -msgstr "개체 조작" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2100 -msgid "Object Settings to modify" -msgstr "수정할 개체 설정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2104 -msgid "Part Settings to modify" -msgstr "수정할 부품 설정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2109 -msgid "Layer range Settings to modify" -msgstr "레이어 범위 설정 수정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2115 -msgid "Part manipulation" -msgstr "파트 조작" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2121 -msgid "Instance manipulation" -msgstr "복제본 제거" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2128 -msgid "Layers Editing" -msgstr "레이어층을 편집" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2128 -msgid "Layer Editing" -msgstr "레이어 편집" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2303 -msgid "Delete Selected Item" -msgstr "선택한 항목 삭제" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -msgid "Delete Selected" -msgstr "선택된 것을 삭제" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2484 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2513 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2531 -msgid "Add New Layers Range" -msgstr "새 레이어 범위 추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2590 -msgid "Edit Layers Range" -msgstr "레이어 범위 편집" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2867 -msgid "Selection-Remove from list" -msgstr "목록에서 선택-제거" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2875 -msgid "Selection-Add from list" -msgstr "목록에서 선택-추가" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2993 -msgid "Object or Instance" -msgstr "개체 또는 복제본" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2994 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3127 -msgid "Part" -msgstr "부품(Part)" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2994 -msgid "Layer" -msgstr "레이어" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2996 -msgid "Unsupported selection" -msgstr "지원 되지 않는 선택" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2997 -#, c-format -msgid "You started your selection with %s Item." -msgstr "%s 항목으로 선택을 시작 했습니다." - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2998 -#, c-format -msgid "In this mode you can select only other %s Items%s" -msgstr "이 모드에서는 %s의 다른 %s 항목만 선택할 수 있습니다" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3001 -msgid "of a current Object" -msgstr "현재 개체의" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3006 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3081 src/slic3r/GUI/Plater.cpp:126 -msgid "Info" -msgstr "정보" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3122 -msgid "You can't change a type of the last solid part of the object." -msgstr "객체의 마지막 솔리드 부품 유형은 변경할 수 없습니다." - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3127 -msgid "Modifier" -msgstr "편집 영역" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3127 -msgid "Support Enforcer" -msgstr "서포트 지원 영역" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3127 -msgid "Support Blocker" -msgstr "서포트 금지 영역" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3129 -msgid "Type:" -msgstr "형식:" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3129 -msgid "Select type of part" -msgstr "부품 유형 선택" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3134 -msgid "Change Part Type" -msgstr "부품 유형 변경" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3368 -msgid "Enter new name" -msgstr "새 이름 입력" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3368 -msgid "Renaming" -msgstr "이름 바꾸기" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3384 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3480 src/slic3r/GUI/Tab.cpp:3536 -#: src/slic3r/GUI/Tab.cpp:3540 -msgid "The supplied name is not valid;" -msgstr "제공된 이름이 유효하지 않습니다;" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3385 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3481 src/slic3r/GUI/Tab.cpp:3537 -msgid "the following characters are not allowed:" -msgstr "다음 문자는 허용되지 않습니다:" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3498 -msgid "Set extruder for selected items" -msgstr "선택한 항목에 대한 압출기(익스트루더) 설정" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3499 -msgid "Select extruder number for selected objects and/or parts" -msgstr "선택한 객체 및 부품에 대한 압출기(익스트루더) 번호 선택" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3512 -msgid "Select extruder number:" -msgstr "압출기(익스트루더) 번호 선택:" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3513 -msgid "This extruder will be set for selected items" -msgstr "선택한 항목에 대한 압출기(익스트루더) 설정" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:62 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:105 -msgid "World coordinates" -msgstr "전체크기와 좌표" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:63 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:106 -msgid "Local coordinates" -msgstr "로컬 좌표" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:82 -msgid "Select coordinate space, in which the transformation will be performed." -msgstr "변환이 수행될 좌표 공간을 선택 합니다." - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:125 -msgid "Object Manipulation" -msgstr "개체 조작" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:176 -msgid "Object name" -msgstr "개체 이름" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:212 -#, c-format -msgid "Toggle %c axis mirroring" -msgstr "전환 %c 축 미러링" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:245 -msgid "Set Mirror" -msgstr "미러 설정" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:285 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:290 -msgid "Reset scale" -msgstr "스케일 재설정" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:303 -msgid "Reset rotation" -msgstr "회전 재설정" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:328 -msgid "Reset Rotation" -msgstr "회전 재설정" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:340 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:355 -msgid "Drop to bed" -msgstr "잠자리에 들기" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:388 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:443 -msgid "Position" -msgstr "위치" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:389 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:444 -msgid "Rotation" -msgstr "회전" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:445 -msgid "Scale factors" -msgstr "축척 계수" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:502 -msgid "Translate" -msgstr "번역" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:554 -msgid "" -"You cann't use non-uniform scaling mode for multiple objects/parts selection" -msgstr "" -"여러 객체/부품 선택에 는 균일하지 않은 배율 조정 모드를 사용할 수 없습니다." - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:715 -msgid "Set Position" -msgstr "위치 설정" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:746 -msgid "Set Orientation" -msgstr "방향 설정" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:811 -msgid "Set Scale" -msgstr "축척 설정" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:895 -msgid "" -"The currently manipulated object is tilted (rotation angles are not " -"multiples of 90°).\n" -"Non-uniform scaling of tilted objects is only possible in the World " -"coordinate system,\n" -"once the rotation is embedded into the object coordinates." -msgstr "" -"현재 조작 된 오브젝트가 기울어져 있습니다 (회전 각도가 90 °의 배수가 아님).\n" -"기울어진 오브젝트의 비균일 배율 조정은 표준 좌표계에서만 가능 합니다.\n" -"회전이 오브젝트 좌표로 삽입되면." - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:898 -msgid "" -"This operation is irreversible.\n" -"Do you want to proceed?" -msgstr "" -"이 작업은 되돌릴수 없습니다.\n" -"계속 하 시겠습니까?" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:58 -msgid "Additional Settings" -msgstr "추가적인 세팅" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:94 -msgid "Remove parameter" -msgstr "매개 변수 제거" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:100 -#, c-format -msgid "Delete Option %s" -msgstr "삭제 %s 옵션" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:144 -#, c-format -msgid "Change Option %s" -msgstr "옵션 %s 변경" - -#: src/slic3r/GUI/GUI_Preview.cpp:216 -msgid "View" -msgstr "보기" - -#: src/slic3r/GUI/GUI_Preview.cpp:219 src/slic3r/GUI/GUI_Preview.cpp:554 -#: src/libslic3r/GCode/PreviewData.cpp:394 -msgid "Feature type" -msgstr "특색 유형" - -#: src/slic3r/GUI/GUI_Preview.cpp:220 src/libslic3r/PrintConfig.cpp:483 -msgid "Height" -msgstr "높이" - -#: src/slic3r/GUI/GUI_Preview.cpp:221 src/libslic3r/PrintConfig.cpp:2188 -msgid "Width" -msgstr "폭" - -#: src/slic3r/GUI/GUI_Preview.cpp:223 -msgid "Volumetric flow rate" -msgstr "용적의 유량값" - -#: src/slic3r/GUI/GUI_Preview.cpp:224 src/slic3r/GUI/GUI_Preview.cpp:328 -#: src/slic3r/GUI/GUI_Preview.cpp:506 src/slic3r/GUI/GUI_Preview.cpp:553 -#: src/slic3r/GUI/GUI_Preview.cpp:749 src/libslic3r/GCode/PreviewData.cpp:404 -msgid "Tool" -msgstr "도구" - -#: src/slic3r/GUI/GUI_Preview.cpp:225 src/slic3r/GUI/GUI_Preview.cpp:551 -#: src/libslic3r/GCode/PreviewData.cpp:406 -msgid "Color Print" -msgstr "컬러 프린트" - -#: src/slic3r/GUI/GUI_Preview.cpp:228 -msgid "Show" -msgstr "보다" - -#: src/slic3r/GUI/GUI_Preview.cpp:231 src/slic3r/GUI/GUI_Preview.cpp:232 -msgid "Feature types" -msgstr "특색 유형" - -#: src/slic3r/GUI/GUI_Preview.cpp:234 src/libslic3r/GCode/PreviewData.cpp:163 -msgid "Perimeter" -msgstr "가장자리" - -#: src/slic3r/GUI/GUI_Preview.cpp:235 src/libslic3r/GCode/PreviewData.cpp:164 -msgid "External perimeter" -msgstr "외부 가장자리" - -#: src/slic3r/GUI/GUI_Preview.cpp:236 src/libslic3r/GCode/PreviewData.cpp:165 -msgid "Overhang perimeter" -msgstr "오버행(Overhang) 둘레" - -#: src/slic3r/GUI/GUI_Preview.cpp:237 src/libslic3r/GCode/PreviewData.cpp:166 -msgid "Internal infill" -msgstr "내부 채움" - -#: src/slic3r/GUI/GUI_Preview.cpp:238 src/libslic3r/PrintConfig.cpp:1736 -#: src/libslic3r/PrintConfig.cpp:1746 src/libslic3r/GCode/PreviewData.cpp:167 -msgid "Solid infill" -msgstr "솔리드 인필" - -#: src/slic3r/GUI/GUI_Preview.cpp:239 src/libslic3r/PrintConfig.cpp:2068 -#: src/libslic3r/PrintConfig.cpp:2079 src/libslic3r/GCode/PreviewData.cpp:168 -msgid "Top solid infill" -msgstr "가장 윗부분 채움" - -#: src/slic3r/GUI/GUI_Preview.cpp:240 src/libslic3r/GCode/PreviewData.cpp:169 -msgid "Bridge infill" -msgstr "브릿지 채움" - -#: src/slic3r/GUI/GUI_Preview.cpp:241 src/libslic3r/PrintConfig.cpp:895 -#: src/libslic3r/GCode/PreviewData.cpp:170 -msgid "Gap fill" -msgstr "공백 채움" - -#: src/slic3r/GUI/GUI_Preview.cpp:242 src/slic3r/GUI/Tab.cpp:1061 -#: src/libslic3r/GCode/PreviewData.cpp:171 -msgid "Skirt" -msgstr "스커트" - -#: src/slic3r/GUI/GUI_Preview.cpp:244 src/libslic3r/PrintConfig.cpp:1954 -#: src/libslic3r/GCode/PreviewData.cpp:173 -msgid "Support material interface" -msgstr "서포트 재료 인터페이스" - -#: src/slic3r/GUI/GUI_Preview.cpp:245 src/slic3r/GUI/Tab.cpp:1141 -#: src/libslic3r/GCode/PreviewData.cpp:174 -msgid "Wipe tower" -msgstr "와이프 타워(Wipe tower)" - -#: src/slic3r/GUI/GUI_Preview.cpp:250 src/libslic3r/PrintConfig.cpp:2102 -msgid "Travel" -msgstr "이송" - -#: src/slic3r/GUI/GUI_Preview.cpp:251 -msgid "Retractions" -msgstr "리트랙션" - -#: src/slic3r/GUI/GUI_Preview.cpp:252 -msgid "Unretractions" -msgstr "리트랙션 취소" - -#: src/slic3r/GUI/GUI_Preview.cpp:253 -msgid "Shells" -msgstr "쉘" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 src/slic3r/GUI/MainFrame.cpp:672 -msgid "Keyboard Shortcuts" -msgstr "키보드 바로 가기" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:104 -msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" -msgstr "구성으로 프로젝트 STL/OBJ/AMF/3MF 열기, 배드 삭제" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:105 -msgid "Import STL/OBJ/AMF/3MF without config, keep bed" -msgstr "구성 없이 STL/OBJ/AMF/3MF 가져오기, 배드 유지" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:106 -msgid "Load Config from .ini/amf/3mf/gcode" -msgstr ".Ini/amf/3mf/gcode에서 구성 로드" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:107 src/slic3r/GUI/Plater.cpp:822 -#: src/slic3r/GUI/Plater.cpp:4687 src/libslic3r/PrintConfig.cpp:3127 -msgid "Export G-code" -msgstr "G-코드 내보내기" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:108 -msgid "Save project (3MF)" -msgstr "프로젝트 저장 (3MF)" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:109 -msgid "Load Config from .ini/amf/3mf/gcode and merge" -msgstr ".Ini/amf/3mf/gcode 및 병합에서 구성 로드" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:110 -msgid "(Re)slice" -msgstr "(Re)슬라이스" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:113 -msgid "Select Plater Tab" -msgstr "선택 및 플래이트 탭" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 -msgid "Select Print Settings Tab" -msgstr "인쇄 설정 탭을 선택 합니다" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:116 -msgid "Select Filament Settings Tab" -msgstr "필라멘트 설정 탭 선택" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:117 -msgid "Select Printer Settings Tab" -msgstr "프린터 설정 탭을 선택 합니다" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:118 -msgid "Switch to 3D" -msgstr "3D로 전환" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:119 -msgid "Switch to Preview" -msgstr "미리 보기로 전환" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:120 src/slic3r/GUI/Preferences.cpp:10 -msgid "Preferences" -msgstr "기본 설정" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:121 -#: src/slic3r/GUI/PrintHostDialogs.cpp:136 -msgid "Print host upload queue" -msgstr "호스트 업로드 대기열 인쇄" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 -msgid "Camera view" -msgstr "카메라 뷰" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 -msgid "Add Instance of the selected object" -msgstr "선택한 개체의 복제본 추가" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 -msgid "Remove Instance of the selected object" -msgstr "선택한 개체의 복제본 제거" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 -msgid "Show keyboard shortcuts list" -msgstr "바로 가기 키 목록 표시" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:126 -msgid "Press to select multiple object or move multiple object with mouse" -msgstr "여러 개체를 선택 하거나 마우스로 여러 개체를 이동 하려면 누릅니다" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:128 -msgid "Main Shortcuts" -msgstr "주요 단축키" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:135 -msgid "Select All objects" -msgstr "모든 객체 선택" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:136 -msgid "Delete selected" -msgstr "선택 삭제" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:137 -msgid "Delete All" -msgstr "전부 지움" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:138 -msgid "Copy to clipboard" -msgstr "클립보드로 복사" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:139 -msgid "Paste from clipboard" -msgstr "클립보드에서 붙여넣기" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 -msgid "Gizmo move" -msgstr "객체 이동" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:141 -msgid "Gizmo scale" -msgstr "객체 배율" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:142 -msgid "Gizmo rotate" -msgstr "객체 회전" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 -msgid "Gizmo cut" -msgstr "기즈모 자르기" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:144 -msgid "Gizmo Place face on bed" -msgstr "기즈모를 배드위에서" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:145 -msgid "Gizmo SLA support points" -msgstr "객체 SLA 지원 포인트" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 -#, c-format -msgid "" -"Press to activate selection rectangle\n" -"or to snap by 5% in Gizmo scale\n" -"or to snap by 1mm in Gizmo move" -msgstr "" -"활성화된 사각형을 선택합니다.\n" -"5% in 객체 크기를 스냅에 맞춰 조절합니다.\n" -"1mm 씩 객체를 스냅에 맞추 이동합니다." - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "" -"Press to scale selection to fit print volume\n" -"in Gizmo scale" -msgstr "" -"인쇄 볼륨에 맞게 선택 크기를 조정하려면 누릅니다.\n" -"기즈모 스케일" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:148 -msgid "" -"Press to activate deselection rectangle\n" -"or to scale or rotate selected objects\n" -"around their own center" -msgstr "" -"자신의 중심 주변\n" -"선택한 개체의 크기를 조정 하거나\n" -"회전 하려면 누릅니다" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:149 -msgid "Press to activate one direction scaling in Gizmo scale" -msgstr "기즈모 크기 조절을 활성화 합니다." - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:150 -msgid "Change camera type" -msgstr "카메라 유형 변경" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:151 -msgid "Zoom to Bed" -msgstr "배드 확대" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:152 -msgid "Zoom to all objects in scene, if none selected" -msgstr "장면의 모든 오브젝트로 확대/축소 (선택 하지 않은 경우)" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:153 -msgid "Zoom to selected object" -msgstr "선택한 개체로 확대/축소" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Zoom in" -msgstr "확대" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:155 -msgid "Zoom out" -msgstr "줌 아웃" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:156 -msgid "Unselect gizmo / Clear selection" -msgstr "기즈모 선택을 취소 하거나 지우기" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:158 -msgid "Toggle picking pass texture rendering on/off" -msgstr "선택 패스 텍스처 렌더링 켜기/끄기 전환" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:161 -msgid "Plater Shortcuts" -msgstr "플레이터 단축기" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:187 -msgid "Arrow Up" -msgstr "위쪽 화살표" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:178 -msgid "Upper Layer" -msgstr "상위 레이어" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:177 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:188 -msgid "Arrow Down" -msgstr "아래쪽 화살표" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:177 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:179 -msgid "Lower Layer" -msgstr "하위 레이어" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:181 -msgid "Preview Shortcuts" -msgstr "미리보기 단축기" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:187 -msgid "Move current slider thumb Up" -msgstr "현재 마우스 휠 슬라이더를 위로 이동" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:188 -msgid "Move current slider thumb Down" -msgstr "현재 마우스 휠 슬라이더를 아래로 이동" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:189 -msgid "Arrow Left" -msgstr "왼쪽 화살표" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:189 -msgid "Set upper thumb to current slider thumb" -msgstr "마우스 휠을 위로 움직여 설정" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:190 -msgid "Arrow Right" -msgstr "오른쪽 화살표" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:190 -msgid "Set lower thumb to current slider thumb" -msgstr "마우스 휠을 아래로 움직여 설정" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:191 -msgid "Add color change marker for current layer" -msgstr "현재 레이어의 색상 변경 마커 추가" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:192 -msgid "Delete color change marker for current layer" -msgstr "현재 레이어의 색상 변경 마커 삭제" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:194 -msgid "Layers Slider Shortcuts" -msgstr "레이어 슬라이더 단축키" - -#: src/slic3r/GUI/MainFrame.cpp:62 -msgid "" -" - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/" -"releases" -msgstr "" -" -http://github.com/prusa3d/slic3r/releases에서 업데이트를 확인하는 것을 잊" -"지 마십시오" - -#: src/slic3r/GUI/MainFrame.cpp:157 -msgid "based on Slic3r" -msgstr "Slic3r 기반" - -#: src/slic3r/GUI/MainFrame.cpp:187 -msgid "Plater" -msgstr "플레이터" - -#: src/slic3r/GUI/MainFrame.cpp:393 -msgid "&New Project" -msgstr "&새로운 프로젝트" - -#: src/slic3r/GUI/MainFrame.cpp:393 -msgid "Start a new project" -msgstr "새로운 프로젝트 시작" - -#: src/slic3r/GUI/MainFrame.cpp:396 -msgid "&Open Project" -msgstr "&프로젝트 열기" - -#: src/slic3r/GUI/MainFrame.cpp:396 -msgid "Open a project file" -msgstr "프로젝트 파일 열기" - -#: src/slic3r/GUI/MainFrame.cpp:401 -msgid "Recent projects" -msgstr "최근 프로젝트" - -#: src/slic3r/GUI/MainFrame.cpp:410 -msgid "The selected project is no more available" -msgstr "선택한 프로젝트를 더 이상 사용할 수 없습니다." - -#: src/slic3r/GUI/MainFrame.cpp:410 src/slic3r/GUI/MainFrame.cpp:747 -#: src/slic3r/GUI/PrintHostDialogs.cpp:231 -msgid "Error" -msgstr "에러" - -#: src/slic3r/GUI/MainFrame.cpp:434 -msgid "&Save Project" -msgstr "프로젝트 저장" - -#: src/slic3r/GUI/MainFrame.cpp:434 -msgid "Save current project file" -msgstr "현재 프로젝트 파일 저장" - -#: src/slic3r/GUI/MainFrame.cpp:438 src/slic3r/GUI/MainFrame.cpp:440 -msgid "Save Project &as" -msgstr "프로젝트 저장" - -#: src/slic3r/GUI/MainFrame.cpp:438 src/slic3r/GUI/MainFrame.cpp:440 -msgid "Save current project file as" -msgstr "현재 프로젝트 파일을 다른 이름으로 저장" - -#: src/slic3r/GUI/MainFrame.cpp:448 -msgid "Import STL/OBJ/AM&F/3MF" -msgstr "가져오기 STL/OBJ/AM&F/3MF" - -#: src/slic3r/GUI/MainFrame.cpp:448 -msgid "Load a model" -msgstr "모델 로드" - -#: src/slic3r/GUI/MainFrame.cpp:452 -msgid "Import &Config" -msgstr "&구성 가져오기" - -#: src/slic3r/GUI/MainFrame.cpp:452 -msgid "Load exported configuration file" -msgstr "내 보낸 구성 파일로드" - -#: src/slic3r/GUI/MainFrame.cpp:454 -msgid "Import Config from &project" -msgstr "프로젝트에서 설정 가져오기" - -#: src/slic3r/GUI/MainFrame.cpp:454 -msgid "Load configuration from project file" -msgstr "프로젝트 파일에서 구성 로드" - -#: src/slic3r/GUI/MainFrame.cpp:457 -msgid "Import Config &Bundle" -msgstr "번들 &설정 가져오기" - -#: src/slic3r/GUI/MainFrame.cpp:457 -msgid "Load presets from a bundle" -msgstr "번들에서 미리 설정로드" - -#: src/slic3r/GUI/MainFrame.cpp:459 -msgid "&Import" -msgstr "&가져오기" - -#: src/slic3r/GUI/MainFrame.cpp:462 src/slic3r/GUI/MainFrame.cpp:708 -msgid "Export &G-code" -msgstr "G-코드 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:462 -msgid "Export current plate as G-code" -msgstr "현재 플레이터를 G 코드로 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:466 src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end G-code" -msgstr "S&엔드 G- 코드" - -#: src/slic3r/GUI/MainFrame.cpp:466 -msgid "Send to print current plate as G-code" -msgstr "현재 플레이트를 G 코드로 인쇄하기 위해 보내기" - -#: src/slic3r/GUI/MainFrame.cpp:471 -msgid "Export plate as &STL" -msgstr "STL로 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:471 -msgid "Export current plate as STL" -msgstr "현재 플레이터를 STL로 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:474 -msgid "Export plate as STL including supports" -msgstr "서포트를 포함하여 STL파일로 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:474 -msgid "Export current plate as STL including supports" -msgstr "서포트를 포함 하여 현재 플레이터를 STL로 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:477 -msgid "Export plate as &AMF" -msgstr "AMF로 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:477 -msgid "Export current plate as AMF" -msgstr "현재 플레이터를AMF로 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export &Config" -msgstr "&구성 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export current configuration to file" -msgstr "현재 구성을 파일로 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:483 -msgid "Export Config &Bundle" -msgstr "번들 & 내보내기 설정" - -#: src/slic3r/GUI/MainFrame.cpp:483 -msgid "Export all presets to file" -msgstr "모든 이전 설정을 파일로 내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:485 -msgid "&Export" -msgstr "&내보내기" - -#: src/slic3r/GUI/MainFrame.cpp:491 -msgid "Quick Slice" -msgstr "빠른 슬라이스" - -#: src/slic3r/GUI/MainFrame.cpp:491 -msgid "Slice a file into a G-code" -msgstr "파일을 G 코드로 분할" - -#: src/slic3r/GUI/MainFrame.cpp:497 -msgid "Quick Slice and Save As" -msgstr "빠른 슬라이스 및 다른 이름으로 저장" - -#: src/slic3r/GUI/MainFrame.cpp:497 -msgid "Slice a file into a G-code, save as" -msgstr "파일을 G 코드로 분할하고 다음으로 저장" - -#: src/slic3r/GUI/MainFrame.cpp:503 -msgid "Repeat Last Quick Slice" -msgstr "마지막으로 빠른 슬라이스 반복" - -#: src/slic3r/GUI/MainFrame.cpp:503 -msgid "Repeat last quick slice" -msgstr "마지막으로 빠른 슬라이스 반복" - -#: src/slic3r/GUI/MainFrame.cpp:511 -msgid "(Re)Slice No&w" -msgstr "지금(다시)자르기" - -#: src/slic3r/GUI/MainFrame.cpp:511 -msgid "Start new slicing process" -msgstr "새로운 슬라이싱 작업 시작" - -#: src/slic3r/GUI/MainFrame.cpp:515 -msgid "&Repair STL file" -msgstr "STL 파일 복구" - -#: src/slic3r/GUI/MainFrame.cpp:515 -msgid "Automatically repair an STL file" -msgstr "STL 파일을 자동으로 복구합니다" - -#: src/slic3r/GUI/MainFrame.cpp:518 -msgid "&Quit" -msgstr "&종료" - -#: src/slic3r/GUI/MainFrame.cpp:518 -#, c-format -msgid "Quit %s" -msgstr "%s 종료" - -#: src/slic3r/GUI/MainFrame.cpp:543 -msgid "&Select all" -msgstr "&모두 선택 " - -#: src/slic3r/GUI/MainFrame.cpp:544 -msgid "Selects all objects" -msgstr "모든 개체를 선택 합니다" - -#: src/slic3r/GUI/MainFrame.cpp:546 -msgid "D&eselect all" -msgstr "선택 취소 D&select+" - -#: src/slic3r/GUI/MainFrame.cpp:547 -msgid "Deselects all objects" -msgstr "모든 객체 선택 취소" - -#: src/slic3r/GUI/MainFrame.cpp:550 -msgid "&Delete selected" -msgstr "&선택 삭제 " - -#: src/slic3r/GUI/MainFrame.cpp:551 -msgid "Deletes the current selection" -msgstr "현재 선택 영역을 삭제 합니다" - -#: src/slic3r/GUI/MainFrame.cpp:553 -msgid "Delete &all" -msgstr "전부 지움 " - -#: src/slic3r/GUI/MainFrame.cpp:554 -msgid "Deletes all objects" -msgstr "모든 객체를 삭제 합니다" - -#: src/slic3r/GUI/MainFrame.cpp:558 -msgid "&Undo" -msgstr "&되돌리기" - -#: src/slic3r/GUI/MainFrame.cpp:561 -msgid "&Redo" -msgstr "&앞으로" - -#: src/slic3r/GUI/MainFrame.cpp:566 -msgid "&Copy" -msgstr "&복사 " - -#: src/slic3r/GUI/MainFrame.cpp:567 -msgid "Copy selection to clipboard" -msgstr "선택영역을 클립보드로 복사합니다" - -#: src/slic3r/GUI/MainFrame.cpp:569 -msgid "&Paste" -msgstr "&붙이기 " - -#: src/slic3r/GUI/MainFrame.cpp:570 -msgid "Paste clipboard" -msgstr "클립보드 붙여넣기" - -#: src/slic3r/GUI/MainFrame.cpp:579 -msgid "&Plater Tab" -msgstr "&선택 및 플래이터 탭" - -#: src/slic3r/GUI/MainFrame.cpp:579 -msgid "Show the plater" -msgstr "플레이터를 보기" - -#: src/slic3r/GUI/MainFrame.cpp:586 -msgid "P&rint Settings Tab" -msgstr "프린트 설정 탭" - -#: src/slic3r/GUI/MainFrame.cpp:586 -msgid "Show the print settings" -msgstr "인쇄 설정 표시" - -#: src/slic3r/GUI/MainFrame.cpp:588 src/slic3r/GUI/MainFrame.cpp:711 -msgid "&Filament Settings Tab" -msgstr "&필라멘트 설정 탭" - -#: src/slic3r/GUI/MainFrame.cpp:588 -msgid "Show the filament settings" -msgstr "필라멘트 설정보기" - -#: src/slic3r/GUI/MainFrame.cpp:591 -msgid "Print&er Settings Tab" -msgstr "설정 인쇄 탭" - -#: src/slic3r/GUI/MainFrame.cpp:591 -msgid "Show the printer settings" -msgstr "간단한 설정보기" - -#: src/slic3r/GUI/MainFrame.cpp:595 -msgid "3&D" -msgstr "3&D" - -#: src/slic3r/GUI/MainFrame.cpp:595 -msgid "Show the 3D editing view" -msgstr "3D 편집용 보기 표시" - -#: src/slic3r/GUI/MainFrame.cpp:598 -msgid "Pre&view" -msgstr "미리 보기" - -#: src/slic3r/GUI/MainFrame.cpp:598 -msgid "Show the 3D slices preview" -msgstr "3D 슬라이스 미리 보기 표시" - -#: src/slic3r/GUI/MainFrame.cpp:617 -msgid "Print &Host Upload Queue" -msgstr "호스트 업로드 대기열 인쇄" - -#: src/slic3r/GUI/MainFrame.cpp:617 -msgid "Display the Print Host Upload Queue window" -msgstr "호스트 업로드 대기열 인쇄 창 표시" - -#: src/slic3r/GUI/MainFrame.cpp:626 -msgid "Iso" -msgstr "기본 " - -#: src/slic3r/GUI/MainFrame.cpp:626 -msgid "Iso View" -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:630 src/libslic3r/PrintConfig.cpp:2094 -msgid "Top" -msgstr "윗부분 " - -#: src/slic3r/GUI/MainFrame.cpp:630 -msgid "Top View" -msgstr "위에서 보기" - -#. TRN To be shown in the main menu View->Bottom -#. TRN To be shown in Print Settings "Bottom solid layers" -#: src/slic3r/GUI/MainFrame.cpp:633 src/libslic3r/PrintConfig.cpp:159 -msgid "Bottom" -msgstr "바닥 " - -#: src/slic3r/GUI/MainFrame.cpp:633 -msgid "Bottom View" -msgstr "바닥 보기" - -#: src/slic3r/GUI/MainFrame.cpp:635 -msgid "Front" -msgstr "앞 " - -#: src/slic3r/GUI/MainFrame.cpp:635 -msgid "Front View" -msgstr "앞면 보기 " - -#: src/slic3r/GUI/MainFrame.cpp:637 src/libslic3r/PrintConfig.cpp:1611 -msgid "Rear" -msgstr "뒷면 " - -#: src/slic3r/GUI/MainFrame.cpp:637 -msgid "Rear View" -msgstr "뒷면 보기" - -#: src/slic3r/GUI/MainFrame.cpp:639 -msgid "Left" -msgstr "왼쪽 " - -#: src/slic3r/GUI/MainFrame.cpp:639 -msgid "Left View" -msgstr "왼쪽 보기" - -#: src/slic3r/GUI/MainFrame.cpp:641 -msgid "Right" -msgstr "오른쪽 " - -#: src/slic3r/GUI/MainFrame.cpp:641 -msgid "Right View" -msgstr "오른쪽 보기" - -#: src/slic3r/GUI/MainFrame.cpp:648 -msgid "Prusa 3D &Drivers" -msgstr "푸르사 3D 드라이버" - -#: src/slic3r/GUI/MainFrame.cpp:648 -msgid "Open the Prusa3D drivers download page in your browser" -msgstr "브라우저에서 Prusa3D 드라이버 다운로드 페이지를 엽니다" - -#: src/slic3r/GUI/MainFrame.cpp:650 -msgid "Software &Releases" -msgstr "소프트웨어 &자료" - -#: src/slic3r/GUI/MainFrame.cpp:650 -msgid "Open the software releases page in your browser" -msgstr "브라우저에서 소프트웨어 정보 페이지 열기" - -#: src/slic3r/GUI/MainFrame.cpp:656 -#, c-format -msgid "%s &Website" -msgstr "%s &웹사이트" - -#: src/slic3r/GUI/MainFrame.cpp:657 -#, c-format -msgid "Open the %s website in your browser" -msgstr "%s 웹사이트를 브라우저에서 열기" - -#: src/slic3r/GUI/MainFrame.cpp:663 -msgid "System &Info" -msgstr "시스템 정보" - -#: src/slic3r/GUI/MainFrame.cpp:663 -msgid "Show system information" -msgstr "시스템 정보 표시" - -#: src/slic3r/GUI/MainFrame.cpp:665 -msgid "Show &Configuration Folder" -msgstr "폴더 표시 및 구성" - -#: src/slic3r/GUI/MainFrame.cpp:665 -msgid "Show user configuration folder (datadir)" -msgstr "사용자 구성 폴더 표시 (datadir)" - -#: src/slic3r/GUI/MainFrame.cpp:667 -msgid "Report an I&ssue" -msgstr "문제를 보고" - -#: src/slic3r/GUI/MainFrame.cpp:667 -#, c-format -msgid "Report an issue on %s" -msgstr "%s에 문제 보고" - -#: src/slic3r/GUI/MainFrame.cpp:669 -#, c-format -msgid "&About %s" -msgstr "%s 에 대하여" - -#: src/slic3r/GUI/MainFrame.cpp:669 -msgid "Show about dialog" -msgstr "다이얼로그 표시" - -#: src/slic3r/GUI/MainFrame.cpp:672 -msgid "Show the list of the keyboard shortcuts" -msgstr "키보드 단축키 목록 표시" - -#: src/slic3r/GUI/MainFrame.cpp:680 -msgid "&File" -msgstr "&파일" - -#: src/slic3r/GUI/MainFrame.cpp:681 -msgid "&Edit" -msgstr "&수정" - -#: src/slic3r/GUI/MainFrame.cpp:682 -msgid "&Window" -msgstr "&윈도우" - -#: src/slic3r/GUI/MainFrame.cpp:683 -msgid "&View" -msgstr "&시점" - -#: src/slic3r/GUI/MainFrame.cpp:686 -msgid "&Help" -msgstr "&도움말" - -#: src/slic3r/GUI/MainFrame.cpp:708 -msgid "E&xport" -msgstr "보내기" - -#: src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end to print" -msgstr "끝내고 프린트" - -#: src/slic3r/GUI/MainFrame.cpp:711 -msgid "Mate&rial Settings Tab" -msgstr "재료(메터리리알) 설정 탭" - -#: src/slic3r/GUI/MainFrame.cpp:732 -msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" -msgstr "슬라이스 할 파일을 선택하십시오 (STL / OBJ / AMF / 3MF / PRUSA):" - -#: src/slic3r/GUI/MainFrame.cpp:746 -msgid "No previously sliced file." -msgstr "이전에 분리 된 파일이 없습니다." - -#: src/slic3r/GUI/MainFrame.cpp:752 -msgid "Previously sliced file (" -msgstr "이전에 분리 된 파일 (" - -#: src/slic3r/GUI/MainFrame.cpp:752 -msgid ") not found." -msgstr ")을 찾을 수 없습니다." - -#: src/slic3r/GUI/MainFrame.cpp:753 -msgid "File Not Found" -msgstr "파일을 찾을수 없다" - -#: src/slic3r/GUI/MainFrame.cpp:788 -#, c-format -msgid "Save %s file as:" -msgstr "%s 파일을 다음과 같이 저장 합니다" - -#: src/slic3r/GUI/MainFrame.cpp:788 -msgid "SVG" -msgstr "Svg" - -#: src/slic3r/GUI/MainFrame.cpp:788 -msgid "G-code" -msgstr "G 코드" - -#: src/slic3r/GUI/MainFrame.cpp:803 -msgid "Save zip file as:" -msgstr "압축(zip)파일 다른이름 저장:" - -#: src/slic3r/GUI/MainFrame.cpp:815 src/slic3r/GUI/Plater.cpp:2933 -#: src/slic3r/GUI/Plater.cpp:4418 src/slic3r/GUI/Tab.cpp:1170 -#: src/slic3r/GUI/Tab.cpp:3700 -msgid "Slicing" -msgstr "슬라이싱" - -#. TRN "Processing input_file_basename" -#: src/slic3r/GUI/MainFrame.cpp:817 -#, c-format -msgid "Processing %s" -msgstr "처리 %s" - -#: src/slic3r/GUI/MainFrame.cpp:840 -msgid " was successfully sliced." -msgstr " 성공적으로 슬라이스." - -#: src/slic3r/GUI/MainFrame.cpp:842 -msgid "Slicing Done!" -msgstr "슬라이스 완료!" - -#: src/slic3r/GUI/MainFrame.cpp:857 -msgid "Select the STL file to repair:" -msgstr "복구 할 STL 파일을 선택하십시오:" - -#: src/slic3r/GUI/MainFrame.cpp:870 -msgid "Save OBJ file (less prone to coordinate errors than STL) as:" -msgstr "OBJ 파일을 저장하십시오 (STL보다 오류를 덜 조정할 가능성이 적음):" - -#: src/slic3r/GUI/MainFrame.cpp:885 -msgid "Your file was repaired." -msgstr "파일이 복구되었습니다." - -#: src/slic3r/GUI/MainFrame.cpp:885 src/libslic3r/PrintConfig.cpp:3221 -msgid "Repair" -msgstr "수정" - -#: src/slic3r/GUI/MainFrame.cpp:899 -msgid "Save configuration as:" -msgstr "구성을 저장 :" - -#: src/slic3r/GUI/MainFrame.cpp:919 src/slic3r/GUI/MainFrame.cpp:983 -msgid "Select configuration to load:" -msgstr "로드 할 구성 선택 :" - -#: src/slic3r/GUI/MainFrame.cpp:956 -msgid "Save presets bundle as:" -msgstr "이전 설정 번들을 다음과 같이 저장 :" - -#: src/slic3r/GUI/MainFrame.cpp:1007 -#, c-format -msgid "%d presets successfully imported." -msgstr "% d 사전 설정을 가져 왔습니다." - -#: src/slic3r/GUI/MsgDialog.cpp:73 -#, c-format -msgid "%s error" -msgstr "%s 오류" - -#: src/slic3r/GUI/MsgDialog.cpp:74 -#, c-format -msgid "%s has encountered an error" -msgstr "%s에 오류가 발생 했습니다" - -#: src/slic3r/GUI/Plater.cpp:146 -msgid "Volume" -msgstr "크기" - -#: src/slic3r/GUI/Plater.cpp:147 -msgid "Facets" -msgstr "측면" - -#: src/slic3r/GUI/Plater.cpp:148 -msgid "Materials" -msgstr "재료" - -#: src/slic3r/GUI/Plater.cpp:151 -msgid "Manifold" -msgstr "많은" - -#: src/slic3r/GUI/Plater.cpp:201 -msgid "Sliced Info" -msgstr "슬라이스된 정보" - -#: src/slic3r/GUI/Plater.cpp:220 src/slic3r/GUI/Plater.cpp:1135 -msgid "Used Filament (m)" -msgstr "사용자 필라멘트 (m)" - -#: src/slic3r/GUI/Plater.cpp:221 -msgid "Used Filament (mm³)" -msgstr "사용자 필라멘트 (mm³)" - -#: src/slic3r/GUI/Plater.cpp:222 -msgid "Used Filament (g)" -msgstr "사용자 필라멘트 (g)" - -#: src/slic3r/GUI/Plater.cpp:223 -msgid "Used Material (unit)" -msgstr "사용 재료 (단위)" - -#: src/slic3r/GUI/Plater.cpp:224 src/slic3r/GUI/Plater.cpp:1150 -#: src/libslic3r/PrintConfig.cpp:742 -msgid "Cost" -msgstr "비용" - -#: src/slic3r/GUI/Plater.cpp:225 src/slic3r/GUI/Plater.cpp:1122 -#: src/slic3r/GUI/Plater.cpp:1164 -msgid "Estimated printing time" -msgstr "예상 인쇄 시간" - -#: src/slic3r/GUI/Plater.cpp:226 -msgid "Number of tool changes" -msgstr "공구(tool) 변경 수" - -#: src/slic3r/GUI/Plater.cpp:317 -msgid "Click to edit preset" -msgstr "사전 설정을 편집 하려면 클릭 하십시오" - -#: src/slic3r/GUI/Plater.cpp:469 -msgid "Select what kind of support do you need" -msgstr "서포트의 종류를 선택하세요" - -#: src/slic3r/GUI/Plater.cpp:471 src/libslic3r/PrintConfig.cpp:1865 -#: src/libslic3r/PrintConfig.cpp:2529 -msgid "Support on build plate only" -msgstr "출력물만 서포트를 지지" - -#: src/slic3r/GUI/Plater.cpp:472 src/slic3r/GUI/Plater.cpp:587 -msgid "For support enforcers only" -msgstr "서포트 지원영역 전용" - -#: src/slic3r/GUI/Plater.cpp:473 -msgid "Everywhere" -msgstr "모든곳" - -#: src/slic3r/GUI/Plater.cpp:505 src/slic3r/GUI/Tab.cpp:1067 -msgid "Brim" -msgstr "브림" - -#: src/slic3r/GUI/Plater.cpp:507 -msgid "" -"This flag enables the brim that will be printed around each object on the " -"first layer." -msgstr "" -"이 플래그는 첫 번째 레이어의 각 개체 주위에 인쇄 될 브림을 활성화합니다." - -#: src/slic3r/GUI/Plater.cpp:515 -msgid "Purging volumes" -msgstr "볼륨 삭제" - -#: src/slic3r/GUI/Plater.cpp:766 -msgid "Print settings" -msgstr "프린트 설정" - -#: src/slic3r/GUI/Plater.cpp:767 src/slic3r/GUI/Tab.cpp:1604 -#: src/slic3r/GUI/Tab.cpp:1605 -msgid "Filament" -msgstr "필라멘트" - -#: src/slic3r/GUI/Plater.cpp:768 -msgid "SLA print settings" -msgstr "SLA 인쇄 설정" - -#: src/slic3r/GUI/Plater.cpp:769 src/slic3r/GUI/Preset.cpp:1310 -msgid "SLA material" -msgstr "SLA 재료" - -#: src/slic3r/GUI/Plater.cpp:770 -msgid "Printer" -msgstr "프린터" - -#: src/slic3r/GUI/Plater.cpp:820 src/slic3r/GUI/Plater.cpp:4688 -msgid "Send to printer" -msgstr "프린터로 보내기" - -#: src/slic3r/GUI/Plater.cpp:823 src/slic3r/GUI/Plater.cpp:2933 -#: src/slic3r/GUI/Plater.cpp:4421 -msgid "Slice now" -msgstr "지금 자르기" - -#: src/slic3r/GUI/Plater.cpp:963 -msgid "Hold Shift to Slice & Export G-code" -msgstr "Shift 키를 누른 채 G 코드 내보내기" - -#: src/slic3r/GUI/Plater.cpp:1068 -#, c-format -msgid "%d (%d shells)" -msgstr "% d (% d 쉘)" - -#: src/slic3r/GUI/Plater.cpp:1073 -#, c-format -msgid "Auto-repaired (%d errors)" -msgstr "오류자동수정 (%d errors)" - -#: src/slic3r/GUI/Plater.cpp:1076 -#, c-format -msgid "" -"%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d " -"facets reversed, %d backwards edges" -msgstr "" -"%d 면 고정, %d 모서리 고정, %d 면 제거, %d 면 추가, %d 면 반전, %d 후방 모서" -"리" - -#: src/slic3r/GUI/Plater.cpp:1086 -msgid "Yes" -msgstr "예" - -#: src/slic3r/GUI/Plater.cpp:1109 -msgid "Used Material (ml)" -msgstr "사용 재료 (ml)" - -#: src/slic3r/GUI/Plater.cpp:1112 -msgid "object(s)" -msgstr "개체(들)" - -#: src/slic3r/GUI/Plater.cpp:1112 -msgid "supports and pad" -msgstr "지지대 및 패드" - -#: src/slic3r/GUI/Plater.cpp:1137 src/slic3r/GUI/Plater.cpp:1152 -msgid "objects" -msgstr "개체" - -#: src/slic3r/GUI/Plater.cpp:1137 src/slic3r/GUI/Plater.cpp:1152 -msgid "wipe tower" -msgstr "와이프 타워(Wipe tower)" - -#: src/slic3r/GUI/Plater.cpp:1167 -msgid "normal mode" -msgstr "일반 모드" - -#: src/slic3r/GUI/Plater.cpp:1171 src/slic3r/GUI/Plater.cpp:1180 -msgid "Color " -msgstr "색" - -#: src/slic3r/GUI/Plater.cpp:1176 -msgid "stealth mode" -msgstr "스텔스 모드" - -#: src/slic3r/GUI/Plater.cpp:1271 -msgid "Load File" -msgstr "파일 로드" - -#: src/slic3r/GUI/Plater.cpp:1275 -msgid "Load Files" -msgstr "파일 로드" - -#: src/slic3r/GUI/Plater.cpp:1503 -msgid "ERROR: not enough resources to execute a new job." -msgstr "오류: 새 작업을 실행하기에 충분한 리소스가 아닙니다." - -#: src/slic3r/GUI/Plater.cpp:2056 -msgid "New Project" -msgstr "새로운 프로젝트" - -#: src/slic3r/GUI/Plater.cpp:2173 -msgid "Loading" -msgstr "로딩" - -#: src/slic3r/GUI/Plater.cpp:2183 -#, c-format -msgid "Processing input file %s\n" -msgstr "입력 파일 처리 %s\n" - -#: src/slic3r/GUI/Plater.cpp:2211 -msgid "" -"You can't to load SLA project if there is at least one multi-part object on " -"the bed" -msgstr "" -"침대에 다중 부품 개체가 하나 이상 있는 경우 SLA 프로젝트를 로드할 수 없습니" -"다." - -#: src/slic3r/GUI/Plater.cpp:2212 src/slic3r/GUI/Tab.cpp:3064 -msgid "Please check your object list before preset changing." -msgstr "사전 설정을 변경 하기 전에 개체 목록을 확인 하십시오." - -#: src/slic3r/GUI/Plater.cpp:2255 -msgid "" -"This file contains several objects positioned at multiple heights. Instead " -"of considering them as multiple objects, should I consider\n" -"this file as a single object having multiple parts?\n" -msgstr "" -"이 파일에는 여러 높이에 위치한 여러 객체가 들어 있습니다. 여러 객체로 간주하" -"는 대신,\n" -"이 파일은 여러 부분을 갖는 단일 객체로 보입니까?\n" - -#: src/slic3r/GUI/Plater.cpp:2258 src/slic3r/GUI/Plater.cpp:2310 -msgid "Multi-part object detected" -msgstr "다중 부품 객체가 감지" - -#: src/slic3r/GUI/Plater.cpp:2265 -msgid "" -"This file cannot be loaded in a simple mode. Do you want to switch to an " -"advanced mode?\n" -msgstr "" -"이 파일은 단순 모드에서 로드할 수 없습니다. 고급 모드로 전환 하시겠습니까?\n" - -#: src/slic3r/GUI/Plater.cpp:2266 -msgid "Detected advanced data" -msgstr "감지된 고급 데이터" - -#: src/slic3r/GUI/Plater.cpp:2287 -#, c-format -msgid "" -"You can't to add the object(s) from %s because of one or some of them " -"is(are) multi-part" -msgstr "멀티파트 하나 또는 그 중 일부 때문에 %s에서 개체를 추가 할 수 없습니다" - -#: src/slic3r/GUI/Plater.cpp:2307 -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?\n" -msgstr "" -"다중 재료 프린터에 대해 여러 객체가로드되었습니다.\n" -"여러 객체로 간주하는 대신,\n" -"이 파일들은 여러 부분을 갖는 단일 객체를 나타낼 수 있습니까?\n" - -#: src/slic3r/GUI/Plater.cpp:2323 -msgid "Loaded" -msgstr "로드(loaded)" - -#: src/slic3r/GUI/Plater.cpp:2418 -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:2419 -msgid "Object too large?" -msgstr "개체가 너무 큽니까?" - -#: src/slic3r/GUI/Plater.cpp:2476 -msgid "Export STL file:" -msgstr "STL 파일 내보내기:" - -#: src/slic3r/GUI/Plater.cpp:2483 -msgid "Export AMF file:" -msgstr "AMF 파일 내보내기:" - -#: src/slic3r/GUI/Plater.cpp:2489 -msgid "Save file as:" -msgstr "다른 이름으로 파일 저장:" - -#: src/slic3r/GUI/Plater.cpp:2592 -msgid "Delete Object" -msgstr "오브젝트 지우기" - -#: src/slic3r/GUI/Plater.cpp:2603 -msgid "Reset Project" -msgstr "프로젝트 재설정" - -#: src/slic3r/GUI/Plater.cpp:2630 src/slic3r/GUI/Plater.cpp:3517 -msgid "Mirror" -msgstr "반전(Mirror)" - -#: src/slic3r/GUI/Plater.cpp:2643 -msgid "Optimize Rotation" -msgstr "회전 최적화" - -#: src/slic3r/GUI/Plater.cpp:2689 -msgid "Arranging" -msgstr "정렬" - -#: src/slic3r/GUI/Plater.cpp:2712 -msgid "Could not arrange model objects! Some geometries may be invalid." -msgstr "" -"모델 개체를 정렬할 수 없습니다. 일부 형상은 유효 하지 않을 수 있습니다." - -#: src/slic3r/GUI/Plater.cpp:2718 -msgid "Arranging canceled." -msgstr "취소 된 정렬" - -#: src/slic3r/GUI/Plater.cpp:2719 -msgid "Arranging done." -msgstr "정렬 완료." - -#: src/slic3r/GUI/Plater.cpp:2735 -msgid "Searching for optimal orientation" -msgstr "최적의 방향 검색" - -#: src/slic3r/GUI/Plater.cpp:2768 -msgid "Orientation search canceled." -msgstr "오리엔테이션 검색이 취소 됨" - -#: src/slic3r/GUI/Plater.cpp:2769 -msgid "Orientation found." -msgstr "방향을 찾았습니다." - -#: src/slic3r/GUI/Plater.cpp:2785 -msgid "" -"The selected object can't be split because it contains more than one volume/" -"material." -msgstr "" -"선택한 객체는 둘 이상의 볼륨 / 재료가 포함되어 있기 때문에 분할 할 수 없습니" -"다." - -#: src/slic3r/GUI/Plater.cpp:2796 -msgid "Split to Objects" -msgstr "객체로 분할" - -#: src/slic3r/GUI/Plater.cpp:2918 -msgid "Invalid data" -msgstr "잘못 된 데이터" - -#: src/slic3r/GUI/Plater.cpp:2927 -msgid "Ready to slice" -msgstr "슬라이스 준비" - -#: src/slic3r/GUI/Plater.cpp:2965 src/slic3r/GUI/PrintHostDialogs.cpp:232 -msgid "Cancelling" -msgstr "취소 중" - -#: src/slic3r/GUI/Plater.cpp:2982 -msgid "Another export job is currently running." -msgstr "다른 내보내기 작업이 현재 실행 중입니다." - -#: src/slic3r/GUI/Plater.cpp:3036 src/slic3r/GUI/Plater.cpp:3493 -msgid "Reload from Disk" -msgstr "디스크에서 다시 불러오기" - -#: src/slic3r/GUI/Plater.cpp:3072 -msgid "Fix Throught NetFabb" -msgstr "NetFabb으로 수정" - -#: src/slic3r/GUI/Plater.cpp:3254 -msgid "Export failed" -msgstr "내보내기 실패" - -#: src/slic3r/GUI/Plater.cpp:3259 src/slic3r/GUI/PrintHostDialogs.cpp:233 -msgid "Cancelled" -msgstr "취소됨" - -#: src/slic3r/GUI/Plater.cpp:3347 src/slic3r/GUI/Plater.cpp:3359 -#: src/slic3r/GUI/Plater.cpp:3473 -msgid "Increase copies" -msgstr "복사본 늘리기" - -#: src/slic3r/GUI/Plater.cpp:3467 src/slic3r/GUI/Plater.cpp:3486 -msgid "Remove the selected object" -msgstr "선택한 객체 제거" - -#: src/slic3r/GUI/Plater.cpp:3473 -msgid "Place one more copy of the selected object" -msgstr "선택한 객체를 하나 더 복사합니다" - -#: src/slic3r/GUI/Plater.cpp:3475 -msgid "Decrease copies" -msgstr "복사본 감소" - -#: src/slic3r/GUI/Plater.cpp:3475 -msgid "Remove one copy of the selected object" -msgstr "선택한 객체 복사본 하나 삭제" - -#: src/slic3r/GUI/Plater.cpp:3477 -msgid "Set number of copies" -msgstr "복사될 수량 설정" - -#: src/slic3r/GUI/Plater.cpp:3477 -msgid "Change the number of copies of the selected object" -msgstr "선택한 개체의 복사본 수 변경" - -#: src/slic3r/GUI/Plater.cpp:3493 -msgid "Reload the selected file from Disk" -msgstr "디스크에서 다시 불러오기" - -#: src/slic3r/GUI/Plater.cpp:3496 -msgid "Export the selected object as STL file" -msgstr "선택한 객체를 STL 파일로 내보내기" - -#: src/slic3r/GUI/Plater.cpp:3510 -msgid "Along X axis" -msgstr "X 축을 따라" - -#: src/slic3r/GUI/Plater.cpp:3510 -msgid "Mirror the selected object along the X axis" -msgstr "선택한 객체를 X 축을 따라 반전합니다" - -#: src/slic3r/GUI/Plater.cpp:3512 -msgid "Along Y axis" -msgstr "Y 축을 따라" - -#: src/slic3r/GUI/Plater.cpp:3512 -msgid "Mirror the selected object along the Y axis" -msgstr "선택한 객체를 Y 축을 따라 반전합니다" - -#: src/slic3r/GUI/Plater.cpp:3514 -msgid "Along Z axis" -msgstr "Z 축 따라" - -#: src/slic3r/GUI/Plater.cpp:3514 -msgid "Mirror the selected object along the Z axis" -msgstr "선택한 객체를 Z 축을 따라 반전합니다" - -#: src/slic3r/GUI/Plater.cpp:3517 -msgid "Mirror the selected object" -msgstr "반전할 객제를 선택" - -#: src/slic3r/GUI/Plater.cpp:3529 -msgid "To objects" -msgstr "개체에" - -#: src/slic3r/GUI/Plater.cpp:3529 src/slic3r/GUI/Plater.cpp:3549 -msgid "Split the selected object into individual objects" -msgstr "선택한 개체를 개별 개체로 분할 합니다." - -#: src/slic3r/GUI/Plater.cpp:3531 -msgid "To parts" -msgstr "부품에" - -#: src/slic3r/GUI/Plater.cpp:3531 src/slic3r/GUI/Plater.cpp:3563 -msgid "Split the selected object into individual sub-parts" -msgstr "선택한 오브젝트를 개별 하위 파트로 분할" - -#: src/slic3r/GUI/Plater.cpp:3534 src/slic3r/GUI/Plater.cpp:3549 -#: src/slic3r/GUI/Plater.cpp:3563 src/libslic3r/PrintConfig.cpp:3245 -msgid "Split" -msgstr "쪼개기" - -#: src/slic3r/GUI/Plater.cpp:3534 -msgid "Split the selected object" -msgstr "선택한 개체 분할" - -#: src/slic3r/GUI/Plater.cpp:3555 -msgid "Optimize orientation" -msgstr "방향 최적화" - -#: src/slic3r/GUI/Plater.cpp:3555 -msgid "Optimize the rotation of the object for better print results." -msgstr "더 나은 인쇄 결과를 위해 개체의 회전을 최적화합니다." - -#: src/slic3r/GUI/Plater.cpp:3595 -msgid "3D editor view" -msgstr "3D 편집화면 보기" - -#: src/slic3r/GUI/Plater.cpp:3603 src/slic3r/GUI/Tab.cpp:2534 -msgid "Preview" -msgstr "프리뷰" - -#: src/slic3r/GUI/Plater.cpp:3831 -msgid "" -"%1% printer was active at the time the target Undo / Redo snapshot was " -"taken. Switching to %1% printer requires reloading of %1% presets." -msgstr "" -"%1% 프린터가 대상 재생 취소/다시 작업 스냅샷을 생성할 때 활성화되었습니다. " -"%1% 프린터로 전환하려면 %1% 사전 설정을 다시 로드해야 합니다." - -#: src/slic3r/GUI/Plater.cpp:3992 -msgid "Load Project" -msgstr "프로젝트 로드" - -#: src/slic3r/GUI/Plater.cpp:4016 -msgid "Import Object" -msgstr "개체 가져오기" - -#: src/slic3r/GUI/Plater.cpp:4020 -msgid "Import Objects" -msgstr "객체 가져오기" - -#: src/slic3r/GUI/Plater.cpp:4075 -msgid "All objects will be removed, continue ?" -msgstr "모든 개체가 제거 됩니다, 계속합니까?" - -#: src/slic3r/GUI/Plater.cpp:4083 -msgid "Delete Selected Objects" -msgstr "선택한 객체 삭제" - -#: src/slic3r/GUI/Plater.cpp:4091 -msgid "Increase Instances" -msgstr "복제본 늘리기" - -#: src/slic3r/GUI/Plater.cpp:4127 -msgid "Decrease Instances" -msgstr "복제본 감소" - -#: src/slic3r/GUI/Plater.cpp:4163 -#, c-format -msgid "Set numbers of copies to %d" -msgstr "복사본 수를 %d로 설정" - -#: src/slic3r/GUI/Plater.cpp:4193 -msgid "Cut by Plane" -msgstr "평면으로 절단" - -#: src/slic3r/GUI/Plater.cpp:4225 -msgid "Save G-code file as:" -msgstr "G-code 파일 다른 이름 저장:" - -#: src/slic3r/GUI/Plater.cpp:4225 -msgid "Save SL1 file as:" -msgstr "SL1 파일 다른이름 저장:" - -#: src/slic3r/GUI/Plater.cpp:4337 -#, c-format -msgid "STL file exported to %s" -msgstr "내보낸 STL 파일 %s" - -#: src/slic3r/GUI/Plater.cpp:4353 -#, c-format -msgid "AMF file exported to %s" -msgstr "내보낸 AMF 파일 %s" - -#: src/slic3r/GUI/Plater.cpp:4356 -#, c-format -msgid "Error exporting AMF file %s" -msgstr "AMF 파일 내보내기 오류 %s" - -#: src/slic3r/GUI/Plater.cpp:4382 -#, c-format -msgid "3MF file exported to %s" -msgstr "3MF 파일을 내보냈습니다 %s" - -#: src/slic3r/GUI/Plater.cpp:4387 -#, c-format -msgid "Error exporting 3MF file %s" -msgstr "3MF 파일 내보내기 오류 %s" - -#: src/slic3r/GUI/Plater.cpp:4687 -msgid "Export" -msgstr "내보내기" - -#: src/slic3r/GUI/Plater.cpp:4688 -msgid "Send G-code" -msgstr "G 코드 보내기" - -#: src/slic3r/GUI/Plater.cpp:4772 -msgid "Paste From Clipboard" -msgstr "클립보드에서 붙여넣기" - -#: src/slic3r/GUI/Preferences.cpp:22 src/slic3r/GUI/Tab.cpp:1955 -#: src/slic3r/GUI/Tab.cpp:2193 -msgid "General" -msgstr "일반" - -#: src/slic3r/GUI/Preferences.cpp:44 -msgid "Remember output directory" -msgstr "출력 디렉토리 기억하기" - -#: src/slic3r/GUI/Preferences.cpp:46 -msgid "" -"If this is enabled, Slic3r will prompt the last output directory instead of " -"the one containing the input files." -msgstr "" -"이 옵션을 사용하면 Slic3r은 입력 파일이 들어있는 디렉터리 대신 마지막 출력 디" -"렉터리를 묻습니다." - -#: src/slic3r/GUI/Preferences.cpp:52 -msgid "Auto-center parts" -msgstr "부품을 자동으로 중심에" - -#: src/slic3r/GUI/Preferences.cpp:54 -msgid "" -"If this is enabled, Slic3r will auto-center objects around the print bed " -"center." -msgstr "이 옵션을 사용하면 Slic3r가 개체를 인쇄판 중앙에 자동으로 배치합니다." - -#: src/slic3r/GUI/Preferences.cpp:60 -msgid "Background processing" -msgstr "백그라운드 프로세싱" - -#: src/slic3r/GUI/Preferences.cpp:62 -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 "" -"이 사용 하는 경우 Slic3r는 전처리 개체 최대한 빨리 그들이 시간을 절약 하기 위" -"해 로드 G-코드를 내보낼 때." - -#: src/slic3r/GUI/Preferences.cpp:71 -msgid "" -"If enabled, PrusaSlicer will check for the new versions of itself online. " -"When a new version becomes available a notification is displayed at the next " -"application startup (never during program usage). This is only a " -"notification mechanisms, no automatic installation is done." -msgstr "" -"프루사 슬라이서는 온라인의 새로운 버전을 확인합니다. 새 버전을 사용할 수 있게" -"되면 다음 응용 프로그램 시작시 (프로그램 사용 중이 아님) 알림이 표시 됩니다. " -"이는 알림 메커니즘일뿐이며 자동 설치는 수행되지 않습니다." - -#: src/slic3r/GUI/Preferences.cpp:79 -msgid "" -"If enabled, Slic3r downloads updates of built-in system presets in the " -"background. These updates are downloaded into a separate temporary location. " -"When a new preset version becomes available it is offered at application " -"startup." -msgstr "" -"활성화 된 경우 Slic3r은 백그라운드에서 내장 시스템 사전 설정의 업데이트를 다" -"운로드합니다. 이러한 업데이트는 별도의 임시 위치에 다운로드됩니다. 새로운 사" -"전 설정 버전을 사용할 수있게되면 응용 프로그램 시작시 제공됩니다." - -#: src/slic3r/GUI/Preferences.cpp:84 -msgid "Suppress \" - default - \" presets" -msgstr "\"- 기본 -\"사전 설정 숨기기" - -#: src/slic3r/GUI/Preferences.cpp:86 -msgid "" -"Suppress \" - default - \" presets in the Print / Filament / Printer " -"selections once there are any other valid presets available." -msgstr "" -"사용 가능한 다른 유효한 사전 설정이 있으면 인쇄 / 필라멘트 / 프린터 선택에서 " -"\"- 기본 -\"사전 설정을 억제하십시오." - -#: src/slic3r/GUI/Preferences.cpp:92 -msgid "Show incompatible print and filament presets" -msgstr "호환 되지 않는 인쇄 및 필라멘트 설정" - -#: src/slic3r/GUI/Preferences.cpp:94 -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:101 -msgid "Use Retina resolution for the 3D scene" -msgstr "3D 장면에 레티나 해상도 사용" - -#: src/slic3r/GUI/Preferences.cpp:103 -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 "" -"활성화 된 경우 3D 장면은 레티나 해상도로 렌더링 됩니다. 3D 성능 문제가 발생하" -"는 경우, 옵션을 사용하지 않도록 설정 하면 도움이 될 수 있습니다." - -#: src/slic3r/GUI/Preferences.cpp:110 -msgid "Use perspective camera" -msgstr "원근 카메라 사용" - -#: src/slic3r/GUI/Preferences.cpp:112 -msgid "" -"If enabled, use perspective camera. If not enabled, use orthographic camera." -msgstr "" -"이 옵션을 사용하면 원근 카메라를 사용합니다. 활성화되지 않은 경우 직교 카메라" -"를 사용합니다." - -#: src/slic3r/GUI/Preferences.cpp:117 -msgid "Use custom size for toolbar icons" -msgstr "도구 모음 아이콘에 사용자 지정 크기 사용" - -#: src/slic3r/GUI/Preferences.cpp:119 -msgid "If enabled, you can change size of toolbar icons manually." -msgstr "활성화된 경우 도구 모음 아이콘의 크기를 수동으로 변경할 수 있습니다." - -#: src/slic3r/GUI/Preferences.cpp:144 -#, c-format -msgid "You need to restart %s to make the changes effective." -msgstr "변경 내용을 적용 하려면 %s를 다시 시작 해야 합니다." - -#: src/slic3r/GUI/Preferences.cpp:192 -msgid "Icon size in a respect to the default size" -msgstr "기본 크기에 대한 아이콘 크기" - -#: src/slic3r/GUI/Preferences.cpp:207 -msgid "Select toolbar icon size in respect to the default one." -msgstr "기본 도구 모음에 대해 도구 모음 아이콘 크기를 선택합니다." - -#: src/slic3r/GUI/Preset.cpp:212 -msgid "modified" -msgstr "수정된곳" - -#: src/slic3r/GUI/Preset.cpp:963 src/slic3r/GUI/Preset.cpp:1003 -#: src/slic3r/GUI/Preset.cpp:1068 src/slic3r/GUI/Preset.cpp:1100 -#: src/slic3r/GUI/PresetBundle.cpp:1480 src/slic3r/GUI/PresetBundle.cpp:1545 -msgid "System presets" -msgstr "시스템 기본설정" - -#: src/slic3r/GUI/Preset.cpp:1007 src/slic3r/GUI/Preset.cpp:1104 -#: src/slic3r/GUI/PresetBundle.cpp:1550 -msgid "User presets" -msgstr "사용자 사전설정" - -#: src/slic3r/GUI/Preset.cpp:1036 src/slic3r/GUI/Tab.cpp:241 -msgid "Add a new printer" -msgstr "새 프린터 추가" - -#: src/slic3r/GUI/Preset.cpp:1308 -msgid "filament" -msgstr "필라멘트" - -#: src/slic3r/GUI/Preset.cpp:1309 -msgid "SLA print" -msgstr "SLA 인쇄" - -#: src/slic3r/GUI/PresetHints.cpp:28 -msgid "" -"If estimated layer time is below ~%1%s, fan will run at %2%%% and print " -"speed will be reduced so that no less than %3%s are spent on that layer " -"(however, speed will never be reduced below %4%mm/s)." -msgstr "" -"예상 레이어 시간이 ~%1%초 미만이면 팬이 %2%%%에서 실행되고 인쇄 속도가 감소되" -"어 해당 레이어에 %3%초 이상 소비됩니다 (단, 속도는 %4%mm/s 이하로 감소하지 않" -"습니다) ." - -#: src/slic3r/GUI/PresetHints.cpp:35 -msgid "" -"\n" -"If estimated layer time is greater, but still below ~%1%s, fan will run at a " -"proportionally decreasing speed between %2%%% and %3%%%." -msgstr "" -"\n" -"예상 레이어 시간이 더 길지만 ~%1%초 미만인 경우 팬은 %2%%%와 %3%%%사이 비례, " -"감소하는 속도로 실행됩니다." - -#: src/slic3r/GUI/PresetHints.cpp:39 -msgid "" -"\n" -"During the other layers, fan" -msgstr "" -"\n" -"다른 레이어의, 팬설정은 " - -#: src/slic3r/GUI/PresetHints.cpp:41 -msgid "Fan" -msgstr "팬(Fan)" - -#: src/slic3r/GUI/PresetHints.cpp:47 -msgid "will always run at %1%%%" -msgstr "항상 다음처럼 실행 %1%%%" - -#: src/slic3r/GUI/PresetHints.cpp:50 -msgid "except for the first %1% layers." -msgstr "첫 번째 %d 레이어를 제외하고" - -#: src/slic3r/GUI/PresetHints.cpp:52 -msgid "except for the first layer." -msgstr "첫 번째 레이어를 제외하고" - -#: src/slic3r/GUI/PresetHints.cpp:54 -msgid "will be turned off." -msgstr "off 됩니다." - -#: src/slic3r/GUI/PresetHints.cpp:155 -msgid "external perimeters" -msgstr "외부 둘레" - -#: src/slic3r/GUI/PresetHints.cpp:164 -msgid "perimeters" -msgstr "둘레" - -#: src/slic3r/GUI/PresetHints.cpp:173 -msgid "infill" -msgstr "채움(infill)" - -#: src/slic3r/GUI/PresetHints.cpp:183 -msgid "solid infill" -msgstr "외부(solid)부분 채움" - -#: src/slic3r/GUI/PresetHints.cpp:191 -msgid "top solid infill" -msgstr "가장 윗부분 채움" - -#: src/slic3r/GUI/PresetHints.cpp:202 -msgid "support" -msgstr "서포트" - -#: src/slic3r/GUI/PresetHints.cpp:212 -msgid "support interface" -msgstr "서포트 인터페이스" - -#: src/slic3r/GUI/PresetHints.cpp:218 -msgid "First layer volumetric" -msgstr "첫번째 레이어 용적은" - -#: src/slic3r/GUI/PresetHints.cpp:218 -msgid "Bridging volumetric" -msgstr "브리징(Bridging) 용적" - -#: src/slic3r/GUI/PresetHints.cpp:218 -msgid "Volumetric" -msgstr "용적" - -#: src/slic3r/GUI/PresetHints.cpp:219 -msgid "flow rate is maximized" -msgstr "의 유속(flow)이 최대화된다. " - -#: src/slic3r/GUI/PresetHints.cpp:222 -msgid "by the print profile maximum" -msgstr "인쇄 프로파일 최대 값" - -#: src/slic3r/GUI/PresetHints.cpp:223 -msgid "when printing" -msgstr "인쇄 할 때" - -#: src/slic3r/GUI/PresetHints.cpp:224 -msgid "with a volumetric rate" -msgstr "의 용적 비율로 " - -#: src/slic3r/GUI/PresetHints.cpp:228 -#, c-format -msgid "%3.2f mm³/s at filament speed %3.2f mm/s." -msgstr "%3.2f mm³/s 필라멘트 속도는 %3.2f mm/s이다." - -#: src/slic3r/GUI/PresetHints.cpp:246 -msgid "" -"Recommended object thin wall thickness: Not available due to invalid layer " -"height." -msgstr "" -"권장 객체(object)의 벽(wall) 두께: 잘못된 레이어 높이 때문에 사용할 수 없음." - -#: src/slic3r/GUI/PresetHints.cpp:262 -#, c-format -msgid "Recommended object thin wall thickness for layer height %.2f and" -msgstr "객체 레이어 높이 %.2f 에 권장하는 두깨는 " - -#: src/slic3r/GUI/PresetHints.cpp:268 -#, c-format -msgid "%d lines: %.2f mm" -msgstr "%d 라인:%.2f mm" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:33 -msgid "Send G-Code to printer host" -msgstr "프린터 호스트로 G 코드 보내기" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:33 -msgid "Upload to Printer Host with the following filename:" -msgstr "다음 파일 이름으로 프린터 호스트에 업로드:" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:35 -msgid "Start printing after upload" -msgstr "업로드 후 인쇄 시작" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:42 -msgid "Use forward slashes ( / ) as a directory separator if needed." -msgstr "필요한 경우 디렉토리 분리 기호로 슬래시 (/)를 사용하십시오." - -#: src/slic3r/GUI/PrintHostDialogs.cpp:149 -msgid "ID" -msgstr "아이디" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:150 -msgid "Progress" -msgstr "진행률" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:151 -msgid "Status" -msgstr "상태" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:152 -msgid "Host" -msgstr "호스트" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:153 -msgid "Filename" -msgstr "파일이름" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:154 -msgid "Error Message" -msgstr "에러 메시지" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:157 -msgid "Cancel selected" -msgstr "선택 취소" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:159 -msgid "Show error message" -msgstr "오류 메시지 표시" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:198 -#: src/slic3r/GUI/PrintHostDialogs.cpp:229 -msgid "Enqueued" -msgstr "입력됨" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:230 -msgid "Uploading" -msgstr "업로드" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:234 -msgid "Completed" -msgstr "완료됨" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:272 -msgid "Error uploading to print host:" -msgstr "인쇄 호스트에 업로드 하는 중 오류 발생:" - -#: src/slic3r/GUI/RammingChart.cpp:23 -msgid "NO RAMMING AT ALL" -msgstr "전혀 충돌 없음" - -#: src/slic3r/GUI/RammingChart.cpp:76 -msgid "Time" -msgstr "시간" - -#: src/slic3r/GUI/RammingChart.cpp:76 src/slic3r/GUI/WipeTowerDialog.cpp:82 -#: src/libslic3r/PrintConfig.cpp:627 src/libslic3r/PrintConfig.cpp:671 -#: src/libslic3r/PrintConfig.cpp:686 src/libslic3r/PrintConfig.cpp:2349 -#: src/libslic3r/PrintConfig.cpp:2358 src/libslic3r/PrintConfig.cpp:2418 -#: src/libslic3r/PrintConfig.cpp:2425 -msgid "s" -msgstr "s" - -#: src/slic3r/GUI/RammingChart.cpp:81 -msgid "Volumetric speed" -msgstr "용적(Volumetric) 스피트" - -#: src/slic3r/GUI/RammingChart.cpp:81 src/libslic3r/PrintConfig.cpp:584 -#: src/libslic3r/PrintConfig.cpp:1234 -msgid "mm³/s" -msgstr "밀리미터 ³/s" - -#: src/slic3r/GUI/SysInfoDialog.cpp:78 -msgid "System Information" -msgstr "시스템 정보" - -#: src/slic3r/GUI/SysInfoDialog.cpp:154 -msgid "Copy to Clipboard" -msgstr "클립보드에 복사" - -#: src/slic3r/GUI/Tab.cpp:52 src/libslic3r/PrintConfig.cpp:239 -msgid "Compatible printers" -msgstr "호환 가능한 프린터들" - -#: src/slic3r/GUI/Tab.cpp:53 -msgid "Select the printers this profile is compatible with." -msgstr "이 프로파일과 호환 가능한 프린터를 선택하세요." - -#: src/slic3r/GUI/Tab.cpp:58 src/libslic3r/PrintConfig.cpp:254 -msgid "Compatible print profiles" -msgstr "호환되는 인쇄 프로 파일" - -#: src/slic3r/GUI/Tab.cpp:59 -msgid "Select the print profiles this profile is compatible with." -msgstr "이 프로필이 호환되는 인쇄 프로필을 선택 합니다." - -#. TRN "Save current Settings" -#: src/slic3r/GUI/Tab.cpp:133 -#, c-format -msgid "Save current %s" -msgstr "현재 %s 저장" - -#: src/slic3r/GUI/Tab.cpp:134 -msgid "Delete this preset" -msgstr "이전 설정 삭제" - -#: src/slic3r/GUI/Tab.cpp:139 -msgid "" -"Hover the cursor over buttons to find more information \n" -"or click this button." -msgstr "" -"버튼 위로 커서를 가져 가서 자세한 정보를 찾습니다.\n" -"또는이 버튼을 클릭하십시오." - -#: src/slic3r/GUI/Tab.cpp:921 -msgid "This is a default preset." -msgstr "기본 설정입니다." - -#: src/slic3r/GUI/Tab.cpp:923 -msgid "This is a system preset." -msgstr "시스템 설정입니다." - -#: src/slic3r/GUI/Tab.cpp:925 -msgid "Current preset is inherited from the default preset." -msgstr "현재 사전 설정은 기본 사전 설정에서 상속됩니다." - -#: src/slic3r/GUI/Tab.cpp:928 -#, c-format -msgid "" -"Current preset is inherited from:\n" -"\t%s" -msgstr "전의 %s 설정에서 가져 옵니다 " - -#: src/slic3r/GUI/Tab.cpp:932 -msgid "It can't be deleted or modified." -msgstr "삭제하거나 수정할 수 없습니다." - -#: src/slic3r/GUI/Tab.cpp:933 -msgid "" -"Any modifications should be saved as a new preset inherited from this one." -msgstr "모든 수정 사항은 이 항목에서 받은 기본 설정으로 저장해야합니다." - -#: src/slic3r/GUI/Tab.cpp:934 -msgid "To do that please specify a new name for the preset." -msgstr "그렇게하려면 기본 설정의 새 이름을 지정하십시오." - -#: src/slic3r/GUI/Tab.cpp:938 -msgid "Additional information:" -msgstr "추가 정보:" - -#: src/slic3r/GUI/Tab.cpp:944 -msgid "printer model" -msgstr "프린터 모델" - -#: src/slic3r/GUI/Tab.cpp:952 -msgid "default print profile" -msgstr "기본 인쇄 프로파일" - -#: src/slic3r/GUI/Tab.cpp:955 -msgid "default filament profile" -msgstr "기본 필라멘트 프로파일" - -#: src/slic3r/GUI/Tab.cpp:969 -msgid "default SLA material profile" -msgstr "기본 SLA 재질 프로 파일" - -#: src/slic3r/GUI/Tab.cpp:973 -msgid "default SLA print profile" -msgstr "기본 SLA 인쇄 프로필" - -#: src/slic3r/GUI/Tab.cpp:1008 src/slic3r/GUI/Tab.cpp:3649 -msgid "Layers and perimeters" -msgstr "레이어 및 경계선" - -#: src/slic3r/GUI/Tab.cpp:1009 src/slic3r/GUI/Tab.cpp:1257 -#: src/libslic3r/PrintConfig.cpp:66 -msgid "Layer height" -msgstr "레이어 높이" - -#: src/slic3r/GUI/Tab.cpp:1013 -msgid "Vertical shells" -msgstr "쉘 높이" - -#: src/slic3r/GUI/Tab.cpp:1024 -msgid "Horizontal shells" -msgstr "쉘 너비" - -#: src/slic3r/GUI/Tab.cpp:1025 src/libslic3r/PrintConfig.cpp:1759 -msgid "Solid layers" -msgstr "솔리드 레이어" - -#: src/slic3r/GUI/Tab.cpp:1030 -msgid "Quality (slower slicing)" -msgstr "품질(슬라이싱이 느려짐)" - -#: src/slic3r/GUI/Tab.cpp:1048 -msgid "Reducing printing time" -msgstr "출력 시간 단축" - -#: src/slic3r/GUI/Tab.cpp:1060 -msgid "Skirt and brim" -msgstr "스커트와 브림" - -#: src/slic3r/GUI/Tab.cpp:1077 -msgid "Raft" -msgstr "라프트" - -#: src/slic3r/GUI/Tab.cpp:1081 -msgid "Options for support material and raft" -msgstr "서포트와 라프트 재료를 선택" - -#: src/slic3r/GUI/Tab.cpp:1096 -msgid "Speed for print moves" -msgstr "출력중 이동 속도" - -#: src/slic3r/GUI/Tab.cpp:1108 -msgid "Speed for non-print moves" -msgstr "미출력시 이동속도" - -#: src/slic3r/GUI/Tab.cpp:1111 -msgid "Modifiers" -msgstr "수정" - -#: src/slic3r/GUI/Tab.cpp:1114 -msgid "Acceleration control (advanced)" -msgstr "가속 제어(고급)" - -#: src/slic3r/GUI/Tab.cpp:1121 -msgid "Autospeed (advanced)" -msgstr "오토스피트(고급)" - -#: src/slic3r/GUI/Tab.cpp:1129 -msgid "Multiple Extruders" -msgstr "다중 익스트루더" - -#: src/slic3r/GUI/Tab.cpp:1137 -msgid "Ooze prevention" -msgstr "오즈 방지(Ooze prevention)" - -#: src/slic3r/GUI/Tab.cpp:1154 -msgid "Extrusion width" -msgstr "악출 폭(Extrusion width)" - -#: src/slic3r/GUI/Tab.cpp:1164 -msgid "Overlap" -msgstr "겹침(Overlap)" - -#: src/slic3r/GUI/Tab.cpp:1167 -msgid "Flow" -msgstr "유량(Flow)" - -#: src/slic3r/GUI/Tab.cpp:1176 -msgid "Other" -msgstr "그 외" - -#: src/slic3r/GUI/Tab.cpp:1179 src/slic3r/GUI/Tab.cpp:3703 -msgid "Output options" -msgstr "출력 옵션" - -#: src/slic3r/GUI/Tab.cpp:1180 -msgid "Sequential printing" -msgstr "연속 인쇄" - -#: src/slic3r/GUI/Tab.cpp:1182 -msgid "Extruder clearance (mm)" -msgstr "익스트루더 간격(mm)" - -#: src/slic3r/GUI/Tab.cpp:1191 src/slic3r/GUI/Tab.cpp:3704 -msgid "Output file" -msgstr "출력 파일" - -#: src/slic3r/GUI/Tab.cpp:1198 src/libslic3r/PrintConfig.cpp:1432 -msgid "Post-processing scripts" -msgstr "사후 처리 스크립트" - -#: src/slic3r/GUI/Tab.cpp:1204 src/slic3r/GUI/Tab.cpp:1205 -#: src/slic3r/GUI/Tab.cpp:1716 src/slic3r/GUI/Tab.cpp:1717 -#: src/slic3r/GUI/Tab.cpp:2165 src/slic3r/GUI/Tab.cpp:2166 -#: src/slic3r/GUI/Tab.cpp:2273 src/slic3r/GUI/Tab.cpp:2274 -#: src/slic3r/GUI/Tab.cpp:3586 src/slic3r/GUI/Tab.cpp:3587 -msgid "Notes" -msgstr "메모" - -#: src/slic3r/GUI/Tab.cpp:1211 src/slic3r/GUI/Tab.cpp:1724 -#: src/slic3r/GUI/Tab.cpp:2172 src/slic3r/GUI/Tab.cpp:2280 -#: src/slic3r/GUI/Tab.cpp:3594 src/slic3r/GUI/Tab.cpp:3709 -msgid "Dependencies" -msgstr "속한 그룹" - -#: src/slic3r/GUI/Tab.cpp:1212 src/slic3r/GUI/Tab.cpp:1725 -#: src/slic3r/GUI/Tab.cpp:2173 src/slic3r/GUI/Tab.cpp:2281 -#: src/slic3r/GUI/Tab.cpp:3595 src/slic3r/GUI/Tab.cpp:3710 -msgid "Profile dependencies" -msgstr "프로파일 속한곳" - -#: src/slic3r/GUI/Tab.cpp:1256 -msgid "" -"Zero layer height is not valid.\n" -"\n" -"The layer height will be reset to 0.01." -msgstr "" -"바닥 레이어 높이가 잘못되었습니다.\n" -"\n" -"레이어 높이가 0.01로 재설정됩니다." - -#: src/slic3r/GUI/Tab.cpp:1268 -msgid "" -"Zero first layer height is not valid.\n" -"\n" -"The first layer height will be reset to 0.01." -msgstr "" -"첫 번째 레이어 높이가 0이면 유효하지 않습니다.\n" -"\n" -"첫 번째 레이어 높이는 0.01로 재설정됩니다." - -#: src/slic3r/GUI/Tab.cpp:1269 src/libslic3r/PrintConfig.cpp:866 -msgid "First layer height" -msgstr "첫 레이어 높이" - -#: src/slic3r/GUI/Tab.cpp:1283 -#, c-format -msgid "" -"The Spiral Vase mode requires:\n" -"- one perimeter\n" -"- no top solid layers\n" -"- 0% fill density\n" -"- no support material\n" -"- no ensure_vertical_shell_thickness\n" -"\n" -"Shall I adjust those settings in order to enable Spiral Vase?" -msgstr "" -"스파이럴 바이스 모드에는 다음이 필요합니다.\n" -"- one 둘레\n" -"- 탑 솔리드 레이어 없음\n" -"- 0% fill density\n" -"- 서포트 재료 없음\n" -"- 수직 벽 두깨를 보장하지 않음\n" -"\n" -"스파이럴 바이스를 사용하려면 이러한 설정을 조정해야합니까?" - -#: src/slic3r/GUI/Tab.cpp:1290 -msgid "Spiral Vase" -msgstr "스파이럴 바이스" - -#: src/slic3r/GUI/Tab.cpp:1311 -msgid "" -"The Wipe Tower currently supports the non-soluble supports only\n" -"if they are printed with the current extruder without triggering a tool " -"change.\n" -"(both support_material_extruder and support_material_interface_extruder need " -"to be set to 0).\n" -"\n" -"Shall I adjust those settings in order to enable the Wipe Tower?" -msgstr "" -"와이퍼 타워는 현재 비 가용성 서포트 만 지원합니다.\n" -"공구 교환을 트리거하지 않고 현재 압출기로 인쇄 한 경우.\n" -"(support_material_extruder 및 support_material_interface_extruder를 모두 0으" -"로 설정해야 함).\n" -"\n" -"와이퍼 타워를 사용하려면 이러한 설정을 조정해야합니까?" - -#: src/slic3r/GUI/Tab.cpp:1315 src/slic3r/GUI/Tab.cpp:1332 -msgid "Wipe Tower" -msgstr "와이프 타워(Wipe Tower)" - -#: src/slic3r/GUI/Tab.cpp:1329 -msgid "" -"For the Wipe Tower to work with the soluble supports, the support layers\n" -"need to be synchronized with the object layers.\n" -"\n" -"Shall I synchronize support layers in order to enable the Wipe Tower?" -msgstr "" -"와이퍼 타워가 가용성 서포트와 함께 작용하기 위해, 서포트 레이어\n" -"객체 레이어와 동기화되어야합니다.\n" -"\n" -"와이퍼 타워를 사용하려면 서포트 레이어를 동기화해야합니까?" - -#: src/slic3r/GUI/Tab.cpp:1347 -msgid "" -"Supports work better, if the following feature is enabled:\n" -"- Detect bridging perimeters\n" -"\n" -"Shall I adjust those settings for supports?" -msgstr "" -"다음 기능을 사용하는 경우 더 나은 작업을 지원합니다.\n" -"- 브리지 경계 검출\n" -"\n" -"서포트에 대한 설정을 조정해야합니까?" - -#: src/slic3r/GUI/Tab.cpp:1350 -msgid "Support Generator" -msgstr "서포트 생성" - -#: src/slic3r/GUI/Tab.cpp:1392 -msgid "" -"The %1% infill pattern is not supposed to work at 100%% density.\n" -"\n" -"Shall I switch to rectilinear fill pattern?" -msgstr "" -"%1% 채우기 패턴은 100%의 밀도로 작동 하지 않습니다.\n" -"\n" -"직선 채우기 패턴으로 전환 해야 합니까?" - -#: src/slic3r/GUI/Tab.cpp:1502 src/slic3r/GUI/Tab.cpp:1557 -msgid "Filament Overrides" -msgstr "필라멘트 재정의" - -#: src/slic3r/GUI/Tab.cpp:1503 src/slic3r/GUI/Tab.cpp:1562 -#: src/slic3r/GUI/Tab.cpp:2514 -msgid "Retraction" -msgstr "리트렉션" - -#: src/slic3r/GUI/Tab.cpp:1612 src/libslic3r/PrintConfig.cpp:2030 -msgid "Temperature" -msgstr "온도" - -#: src/slic3r/GUI/Tab.cpp:1618 -msgid "Bed" -msgstr "배드(Bed)" - -#: src/slic3r/GUI/Tab.cpp:1623 -msgid "Cooling" -msgstr "냉각(Cooling)" - -#: src/slic3r/GUI/Tab.cpp:1624 src/libslic3r/PrintConfig.cpp:1335 -#: src/libslic3r/PrintConfig.cpp:2150 -msgid "Enable" -msgstr "사용" - -#: src/slic3r/GUI/Tab.cpp:1635 -msgid "Fan settings" -msgstr "팬 설정" - -#: src/slic3r/GUI/Tab.cpp:1636 -msgid "Fan speed" -msgstr "팬 속도" - -#: src/slic3r/GUI/Tab.cpp:1644 -msgid "Cooling thresholds" -msgstr "냉각 임계 값" - -#: src/slic3r/GUI/Tab.cpp:1650 -msgid "Filament properties" -msgstr "필라멘트 특성" - -#: src/slic3r/GUI/Tab.cpp:1654 -msgid "Print speed override" -msgstr "인쇄 속도 중단" - -#: src/slic3r/GUI/Tab.cpp:1664 -msgid "Wipe tower parameters" -msgstr "타워 매개변수 지우기" - -#: src/slic3r/GUI/Tab.cpp:1667 -msgid "Toolchange parameters with single extruder MM printers" -msgstr "싱글 익스트루더 멀티 터리알 프린터를 사용한 공구 교환 매개 변수" - -#: src/slic3r/GUI/Tab.cpp:1681 -msgid "Ramming settings" -msgstr "래밍 설정" - -#: src/slic3r/GUI/Tab.cpp:1703 src/slic3r/GUI/Tab.cpp:2128 -msgid "Custom G-code" -msgstr "수동 G코드" - -#: src/slic3r/GUI/Tab.cpp:1704 src/slic3r/GUI/Tab.cpp:2129 -#: src/libslic3r/PrintConfig.cpp:1785 src/libslic3r/PrintConfig.cpp:1800 -msgid "Start G-code" -msgstr "스타트 G코드" - -#: src/slic3r/GUI/Tab.cpp:1710 src/slic3r/GUI/Tab.cpp:2135 -#: src/libslic3r/PrintConfig.cpp:369 src/libslic3r/PrintConfig.cpp:379 -msgid "End G-code" -msgstr "엔드 G코드" - -#: src/slic3r/GUI/Tab.cpp:1843 src/slic3r/GUI/Tab.cpp:2068 -msgid "Test" -msgstr "시험(test)" - -#: src/slic3r/GUI/Tab.cpp:1853 -msgid "Could not get a valid Printer Host reference" -msgstr "유효한 프린터 호스트 참조를 가져올 수 없습니다" - -#: src/slic3r/GUI/Tab.cpp:1859 src/slic3r/GUI/Tab.cpp:2081 -msgid "Success!" -msgstr "성공!" - -#: src/slic3r/GUI/Tab.cpp:1874 -msgid "" -"HTTPS CA file is optional. It is only needed if you use HTTPS with a self-" -"signed certificate." -msgstr "" -"HTTPS CA 파일은 선택 사항입니다. 자체 서명 된 인증서로 HTTPS를 사용하는 경우" -"에만 필요합니다." - -#: src/slic3r/GUI/Tab.cpp:1887 -msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" -msgstr "인증서 파일 (* .crt, * .pem) | * .crt; * .pem | 모든 파일 | *. *" - -#: src/slic3r/GUI/Tab.cpp:1888 -msgid "Open CA certificate file" -msgstr "CA 인증서 파일 열기" - -#: src/slic3r/GUI/Tab.cpp:1916 -#, c-format -msgid "" -"HTTPS CA File:\n" -" \tOn this system, %s uses HTTPS certificates from the system Certificate " -"Store or Keychain.\n" -" \tTo use a custom CA file, please import your CA file into Certificate " -"Store / Keychain." -msgstr "" -"HTTPS CA 파일:\n" -"\t이 시스템에서 %s는 시스템 인증서 저장소나 키체인의 HTTPS 인증서를 사용 합니" -"다.\n" -"\t사용자 지정 CA 파일을 사용 하려면 CA 파일을 인증서 저장소/키체인에 가져오십" -"시오." - -#: src/slic3r/GUI/Tab.cpp:1956 src/slic3r/GUI/Tab.cpp:2194 -msgid "Size and coordinates" -msgstr "크기와 좌표" - -#: src/slic3r/GUI/Tab.cpp:1961 src/slic3r/GUI/Tab.cpp:2199 -#: src/slic3r/GUI/Tab.cpp:3256 -msgid "Set" -msgstr "설정" - -#: src/slic3r/GUI/Tab.cpp:1993 -msgid "Capabilities" -msgstr "기능" - -#: src/slic3r/GUI/Tab.cpp:1998 -msgid "Number of extruders of the printer." -msgstr "프린터 익스트루더 숫자." - -#: src/slic3r/GUI/Tab.cpp:2023 -msgid "" -"Single Extruder Multi Material is selected, \n" -"and all extruders must have the same diameter.\n" -"Do you want to change the diameter for all extruders to first extruder " -"nozzle diameter value?" -msgstr "" -"단일 압출기 멀티 재질이 선택되고, \n" -"모든 압출기는 동일한 직경을 가져야 합니다.\n" -"모든 압출기의 지름을 첫 번째 압출기 노즐 값으로 변경하시겠습니까?" - -#: src/slic3r/GUI/Tab.cpp:2026 src/slic3r/GUI/Tab.cpp:2484 -#: src/libslic3r/PrintConfig.cpp:1310 -msgid "Nozzle diameter" -msgstr "노즐 직경" - -#: src/slic3r/GUI/Tab.cpp:2053 -msgid "USB/Serial connection" -msgstr "USB/시리얼 연결" - -#: src/slic3r/GUI/Tab.cpp:2054 src/libslic3r/PrintConfig.cpp:1640 -msgid "Serial port" -msgstr "시리얼 포트" - -#: src/slic3r/GUI/Tab.cpp:2059 -msgid "Rescan serial ports" -msgstr "시리얼포트 재검색" - -#: src/slic3r/GUI/Tab.cpp:2081 -msgid "Connection to printer works correctly." -msgstr "프린터 연결이 올바르게 작동합니다." - -#: src/slic3r/GUI/Tab.cpp:2084 -msgid "Connection failed." -msgstr "연결 실패." - -#: src/slic3r/GUI/Tab.cpp:2097 src/slic3r/GUI/Tab.cpp:2268 -msgid "Print Host upload" -msgstr "호스트 업로드 인쇄" - -#: src/slic3r/GUI/Tab.cpp:2141 src/libslic3r/PrintConfig.cpp:138 -msgid "Before layer change G-code" -msgstr "레이어 변경 전 G 코드" - -#: src/slic3r/GUI/Tab.cpp:2147 src/libslic3r/PrintConfig.cpp:1056 -msgid "After layer change G-code" -msgstr "레이어 변경 후 G 코드" - -#: src/slic3r/GUI/Tab.cpp:2153 src/libslic3r/PrintConfig.cpp:2056 -msgid "Tool change G-code" -msgstr "툴 채인지 G 코드" - -#: src/slic3r/GUI/Tab.cpp:2159 -msgid "Between objects G-code (for sequential printing)" -msgstr "객체 간 G 코드 (순차 인쇄용)" - -#: src/slic3r/GUI/Tab.cpp:2231 -msgid "Display" -msgstr "표시" - -#: src/slic3r/GUI/Tab.cpp:2246 -msgid "Tilt" -msgstr "기울이기" - -#: src/slic3r/GUI/Tab.cpp:2247 -msgid "Tilt time" -msgstr "기울이기 시간" - -#: src/slic3r/GUI/Tab.cpp:2253 src/slic3r/GUI/Tab.cpp:3568 -msgid "Corrections" -msgstr "수정" - -#: src/slic3r/GUI/Tab.cpp:2333 src/slic3r/GUI/Tab.cpp:2418 -#: src/libslic3r/PrintConfig.cpp:1106 src/libslic3r/PrintConfig.cpp:1124 -#: src/libslic3r/PrintConfig.cpp:1142 src/libslic3r/PrintConfig.cpp:1159 -#: src/libslic3r/PrintConfig.cpp:1170 src/libslic3r/PrintConfig.cpp:1181 -#: src/libslic3r/PrintConfig.cpp:1192 -msgid "Machine limits" -msgstr "머신 한계설정" - -#: src/slic3r/GUI/Tab.cpp:2347 -msgid "Values in this column are for Normal mode" -msgstr "이 열의 값은 일반 모드입니다" - -#: src/slic3r/GUI/Tab.cpp:2348 -msgid "Normal" -msgstr "보통" - -#: src/slic3r/GUI/Tab.cpp:2353 -msgid "Values in this column are for Stealth mode" -msgstr "이 열의 값은 무음 모드 용입니다" - -#: src/slic3r/GUI/Tab.cpp:2354 -msgid "Stealth" -msgstr "스텔스" - -#: src/slic3r/GUI/Tab.cpp:2362 -msgid "Maximum feedrates" -msgstr "최대 이송속도" - -#: src/slic3r/GUI/Tab.cpp:2367 -msgid "Maximum accelerations" -msgstr "최고 가속도" - -#: src/slic3r/GUI/Tab.cpp:2374 -msgid "Jerk limits" -msgstr "저크(Jerk)값 한계" - -#: src/slic3r/GUI/Tab.cpp:2379 -msgid "Minimum feedrates" -msgstr "최대 이송속도" - -#: src/slic3r/GUI/Tab.cpp:2443 src/slic3r/GUI/Tab.cpp:2451 -msgid "Single extruder MM setup" -msgstr "싱글 익스트루더 MM 설정" - -#: src/slic3r/GUI/Tab.cpp:2452 -msgid "Single extruder multimaterial parameters" -msgstr "싱글 익스트루더 멀티메터리알 파라미터" - -#: src/slic3r/GUI/Tab.cpp:2465 src/libslic3r/GCode/PreviewData.cpp:477 -#, c-format -msgid "Extruder %d" -msgstr "익스트루더 %d" - -#: src/slic3r/GUI/Tab.cpp:2483 -msgid "Do you want to change the diameter for all extruders?" -msgstr "모든 압출기의 지름을 변경하시겠습니까?" - -#: src/slic3r/GUI/Tab.cpp:2506 -msgid "Layer height limits" -msgstr "레이어 높이 한계치" - -#: src/slic3r/GUI/Tab.cpp:2511 -msgid "Position (for multi-extruder printers)" -msgstr "위치 (멀티 익스트루더 프린터 포함)" - -#: src/slic3r/GUI/Tab.cpp:2517 -msgid "Only lift Z" -msgstr "Z축 올림" - -#: src/slic3r/GUI/Tab.cpp:2530 -msgid "" -"Retraction when tool is disabled (advanced settings for multi-extruder " -"setups)" -msgstr "도구 비활성화시 리트렉션 (멀티 익스트루더 고급 설정)" - -#: src/slic3r/GUI/Tab.cpp:2693 -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 "" -"펌웨어 리트렉션 모드를 사용할 때는 Wipe 옵션을 사용할 수 없습니다.\n" -"\n" -"펌웨어 리트렉션 하려면 비활성화해야합니까?" - -#: src/slic3r/GUI/Tab.cpp:2695 -msgid "Firmware Retraction" -msgstr "펌웨어 레트렉션" - -#: src/slic3r/GUI/Tab.cpp:3024 -#, c-format -msgid "Default preset (%s)" -msgstr "시스템 기본값 (%s)" - -#: src/slic3r/GUI/Tab.cpp:3025 -#, c-format -msgid "Preset (%s)" -msgstr "프리셋 ( %s)" - -#: src/slic3r/GUI/Tab.cpp:3042 -msgid "has the following unsaved changes:" -msgstr "저장되지 않은 수정사항:" - -#: src/slic3r/GUI/Tab.cpp:3045 -msgid "is not compatible with printer" -msgstr "프린터와 호완 되지 않습니다" - -#: src/slic3r/GUI/Tab.cpp:3046 -msgid "is not compatible with print profile" -msgstr "인쇄 프로필과 호환 되지 않음" - -#: src/slic3r/GUI/Tab.cpp:3048 -msgid "and it has the following unsaved changes:" -msgstr "저장되지 않은 변경점은 다음과 같습니다:" - -#: src/slic3r/GUI/Tab.cpp:3052 -msgid "Unsaved Changes" -msgstr "미 저장된 변경점" - -#: src/slic3r/GUI/Tab.cpp:3143 -msgid "%1% - Copy" -msgstr "%1%-복사" - -#: src/slic3r/GUI/Tab.cpp:3166 -msgid "The supplied name is empty. It can't be saved." -msgstr "파일 이름이 비어 있습니다. 저장할 수 없습니다." - -#: src/slic3r/GUI/Tab.cpp:3171 -msgid "Cannot overwrite a system profile." -msgstr "시스템 프로파일을 겹쳐 쓸 수 없습니다." - -#: src/slic3r/GUI/Tab.cpp:3175 -msgid "Cannot overwrite an external profile." -msgstr "외부 프로필을 덮어 쓸 수 없습니다." - -#: src/slic3r/GUI/Tab.cpp:3201 -msgid "remove" -msgstr "제거(remove)" - -#: src/slic3r/GUI/Tab.cpp:3201 -msgid "delete" -msgstr "지우기" - -#. TRN remove/delete -#: src/slic3r/GUI/Tab.cpp:3203 -msgid "Are you sure you want to %1% the selected preset?" -msgstr "선택한 사전 설정의 %1%를 선택 하시겠습니까?" - -#. TRN Remove/Delete -#: src/slic3r/GUI/Tab.cpp:3206 -msgid "%1% Preset" -msgstr "%1% 기본설정" - -#: src/slic3r/GUI/Tab.cpp:3332 -msgid "LOCKED LOCK" -msgstr "잠긴 잠금" - -#. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3334 -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:3336 -msgid "UNLOCKED LOCK" -msgstr "잠금 해제 잠금" - -#. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3338 -msgid "" -"indicates that some settings were changed and are not equal to the system " -"(or default) values for the current option group.\n" -"Click the UNLOCKED LOCK icon to reset all settings for current option group " -"to the system (or default) values." -msgstr "" -"은 일부 설정이 변경되었으며 현재 옵션 그룹의 시스템(또는 기본값) 값과 같지 않" -"음을 나타냅니다.\n" -"잠금 해제 잠금 아이콘을 클릭하여 현재 옵션 그룹에 대한 모든 설정을 시스템(또" -"는 기본값) 값으로 재설정합니다." - -#: src/slic3r/GUI/Tab.cpp:3343 -msgid "WHITE BULLET" -msgstr "흰색 글머리 기호" - -#. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3345 -msgid "" -"for the left button: \tindicates a non-system (or non-default) preset,\n" -"for the right button: \tindicates that the settings hasn't been modified." -msgstr "" -"왼쪽 단추의 경우: 비시스템(또는 기본이 아닌) 사전 설정을 나타냅니다.\n" -"오른쪽 버튼: 설정이 수정되지 않았음을 나타냅니다." - -#: src/slic3r/GUI/Tab.cpp:3348 -msgid "BACK ARROW" -msgstr "돌아가기 화살표" - -#. TRN Description for "BACK ARROW" -#: src/slic3r/GUI/Tab.cpp:3350 -msgid "" -"indicates that the settings were changed and are not equal to the last saved " -"preset for the current option group.\n" -"Click the BACK ARROW icon to reset all settings for the current option group " -"to the last saved preset." -msgstr "" -"잠금 풀림;일부 설정이 변경되었으며 현재 옵션 그룹의 시스템 값과 같지 않음을 " -"나타냅니다.\n" -"현재 옵션 그룹의 모든 설정을 시스템 값으로 재설정하려면 자물쇠 잠금 아이콘을 " -"클릭하십시오." - -#: src/slic3r/GUI/Tab.cpp:3360 -msgid "" -"LOCKED LOCK icon indicates that the settings are the same as the system (or " -"default) values for the current option group" -msgstr "" -"LOCKED LOCK 아이콘은 설정이 현재 옵션 그룹의 시스템(또는 기본값) 값과 동일하" -"다는 것을 나타냅니다." - -#: src/slic3r/GUI/Tab.cpp:3362 -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" -"Click to reset all settings for current option group to the system (or " -"default) values." -msgstr "" -"UNLOCKED LOCK 아이콘은 일부 설정이 변경되었으며 현재 옵션 그룹의 시스템(또는 " -"기본값) 값과 같지 않음을 나타냅니다.\n" -"현재 옵션 그룹에 대한 모든 설정을 시스템(또는 기본값) 값으로 재설정하려면 클" -"릭합니다." - -#: src/slic3r/GUI/Tab.cpp:3365 -msgid "WHITE BULLET icon indicates a non system (or non default) preset." -msgstr "WHITE BULLET 아이콘은 시스템 사전 설정이 아닌 것을 나타냅니다." - -#: src/slic3r/GUI/Tab.cpp:3368 -msgid "" -"WHITE BULLET icon indicates that the settings are the same as in the last " -"saved preset for the current option group." -msgstr "" -"WHITE BULLET 기호 아이콘은 설정이 현재 옵션 그룹에 대해 마지막으로 저장 된 사" -"전 설정과 동일 하다는 것을 나타냅니다." - -#: src/slic3r/GUI/Tab.cpp:3370 -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" -"Click to reset all settings for the current option group to the last saved " -"preset." -msgstr "" -"BACK ARROW 이콘 설정을 변경 하 고 현재 옵션 그룹에 대 한 마지막 저장 된 프리" -"셋을 동일 하지 않습니다 나타냅니다.\n" -"마지막 현재 옵션 그룹에 대 한 모든 설정 다시 설정을 클릭 하 여 사전 설정을 저" -"장." - -#: src/slic3r/GUI/Tab.cpp:3376 -msgid "" -"LOCKED LOCK icon indicates that the value is the same as the system (or " -"default) value." -msgstr "" -"LOCKED LOCK 아이콘은 값이 시스템(또는 기본값) 값과 동일하다는 것을 나타냅니" -"다." - -#: src/slic3r/GUI/Tab.cpp:3377 -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 "" -"UNLOCKED LOCK 아이콘은 값이 변경되었으며 시스템(또는 기본값) 값과 같지 않음" -"을 나타냅니다.\n" -"현재 값을 시스템(또는 기본값) 값으로 재설정하려면 클릭합니다." - -#: src/slic3r/GUI/Tab.cpp:3383 -msgid "" -"WHITE BULLET icon indicates that the value is the same as in the last saved " -"preset." -msgstr "" -"WHITE BULLET 기호 아이콘은 마지막으로 저장 한 사전 설정과 동일한 값을 나타냅" -"니다." - -#: src/slic3r/GUI/Tab.cpp:3384 -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 "" -"BACK ARROW 아이콘은 값이 변경되었으며 마지막으로 저장된 사전 설정과 같지 않음" -"을 나타냅니다.\n" -"현재 값을 마지막으로 저장된 사전 설정으로 재설정하려면 클릭합니다." - -#. TRN Preset -#: src/slic3r/GUI/Tab.cpp:3497 -#, c-format -msgid "Save %s as:" -msgstr "Save %s as:" - -#: src/slic3r/GUI/Tab.cpp:3541 -msgid "the following suffix is not allowed:" -msgstr "다음 접미사는 허용되지 않습니다:" - -#: src/slic3r/GUI/Tab.cpp:3545 -msgid "The supplied name is not available." -msgstr "제공된 이름을 사용할 수 없습니다." - -#: src/slic3r/GUI/Tab.cpp:3558 -msgid "Material" -msgstr "재료" - -#: src/slic3r/GUI/Tab.cpp:3560 src/slic3r/GUI/Tab.cpp:3651 -#: src/slic3r/GUI/wxExtensions.cpp:454 -msgid "Layers" -msgstr "레이어" - -#: src/slic3r/GUI/Tab.cpp:3564 -msgid "Exposure" -msgstr "노출" - -#: src/slic3r/GUI/Tab.cpp:3659 -msgid "Support head" -msgstr "서포트 헤드" - -#: src/slic3r/GUI/Tab.cpp:3664 -msgid "Support pillar" -msgstr "서포트 기둥" - -#: src/slic3r/GUI/Tab.cpp:3675 -msgid "Connection of the support sticks and junctions" -msgstr "서포트 기둥 및 접합부 연결" - -#: src/slic3r/GUI/Tab.cpp:3680 -msgid "Automatic generation" -msgstr "자동 생성" - -#: src/slic3r/GUI/Tab.cpp:3747 -msgid "Head penetration should not be greater than the head width." -msgstr "헤드 관통은 헤드 폭 보다 크지 않아야 합니다." - -#: src/slic3r/GUI/Tab.cpp:3751 -msgid "Invalid Head penetration" -msgstr "잘못된 헤드 관통" - -#: src/slic3r/GUI/Tab.cpp:3767 -msgid "Pinhead diameter should be smaller than the pillar diameter." -msgstr "핀헤드 지름은 기둥 지름 보다 작아야 합니다." - -#: src/slic3r/GUI/Tab.cpp:3771 -msgid "Invalid pinhead diameter" -msgstr "잘못된 핀 헤드 지름" - -#: src/slic3r/GUI/Tab.hpp:324 src/slic3r/GUI/Tab.hpp:422 -msgid "Print Settings" -msgstr "출력 설정" - -#: src/slic3r/GUI/Tab.hpp:348 -msgid "Filament Settings" -msgstr "필라멘트 설정" - -#: src/slic3r/GUI/Tab.hpp:383 -msgid "Printer Settings" -msgstr "프린터 설정" - -#: src/slic3r/GUI/Tab.hpp:407 -msgid "Material Settings" -msgstr "재질 설정" - -#: src/slic3r/GUI/Tab.hpp:434 -msgid "Save preset" -msgstr "사전 설정 저장" - -#: src/slic3r/GUI/UpdateDialogs.cpp:38 -msgid "Update available" -msgstr "사용가능한 업데이트" - -#: src/slic3r/GUI/UpdateDialogs.cpp:38 -#, c-format -msgid "New version of %s is available" -msgstr "%s의 새 버전을 사용할 수 있습니다" - -#: src/slic3r/GUI/UpdateDialogs.cpp:45 -msgid "Current version:" -msgstr "현재 버전:" - -#: src/slic3r/GUI/UpdateDialogs.cpp:47 -msgid "New version:" -msgstr "새로운 버전:" - -#: src/slic3r/GUI/UpdateDialogs.cpp:55 -msgid "Changelog && Download" -msgstr "변경 로그 및 다운로드" - -#: src/slic3r/GUI/UpdateDialogs.cpp:62 src/slic3r/GUI/UpdateDialogs.cpp:125 -msgid "Open changelog page" -msgstr "변경 로그 페이지 열기" - -#: src/slic3r/GUI/UpdateDialogs.cpp:67 -msgid "Open download page" -msgstr "다운로드 페이지 열기" - -#: src/slic3r/GUI/UpdateDialogs.cpp:73 -msgid "Don't notify about new releases any more" -msgstr "새로운 수정사항에 대해 더 이상 알림 안 함" - -#: src/slic3r/GUI/UpdateDialogs.cpp:91 src/slic3r/GUI/UpdateDialogs.cpp:205 -msgid "Configuration update" -msgstr "구성 업데이트" - -#: src/slic3r/GUI/UpdateDialogs.cpp:91 -msgid "Configuration update is available" -msgstr "구성 업데이트를 사용할 수 있음" - -#: src/slic3r/GUI/UpdateDialogs.cpp:94 -msgid "" -"Would you like to install it?\n" -"\n" -"Note that a full configuration snapshot will be created first. It can then " -"be restored at any time should there be a problem with the new version.\n" -"\n" -"Updated configuration bundles:" -msgstr "" -"그것을 설치 하시겠습니까?\n" -"\n" -"전체 구성 스냅 샷이 먼저 만들어집니다. 그런 다음 새 버전에 문제가있을 경우 언" -"제든지 복원 할 수 있습니다.\n" -"\n" -"업데이트 된 구성 번들 :" - -#: src/slic3r/GUI/UpdateDialogs.cpp:115 -msgid "Comment:" -msgstr "\"댓글\"" - -#: src/slic3r/GUI/UpdateDialogs.cpp:149 -#, c-format -msgid "%s incompatibility" -msgstr "%s 비 호환성" - -#: src/slic3r/GUI/UpdateDialogs.cpp:150 -#, c-format -msgid "%s configuration is incompatible" -msgstr "%s 과 호환되지 않습니다" - -#: src/slic3r/GUI/UpdateDialogs.cpp:155 -#, c-format -msgid "" -"This version of %s is not compatible with currently installed configuration " -"bundles.\n" -"This probably happened as a result of running an older %s after using a " -"newer one.\n" -"\n" -"You may either exit %s and try again with a newer version, or you may re-run " -"the initial configuration. Doing so will create a backup snapshot of the " -"existing configuration before installing files compatible with this %s.\n" -msgstr "" -"%s의 이 버전은 현재 설치 된 구성 번들과 호환 되지 않습니다.\n" -"이것은 새로운 것을 사용한 후 이전 %s를 실행 한 결과로 발생 했을 것입니다.\n" -"\n" -" %s를 종료하고 최신 버전으로 다시 시도 하거나 초기 구성을 다시 실행할 수 있습" -"니다. 이렇게 하면 %s와 호환 되는 파일을 설치하기 전에 기존 구성의 백업 스냅샷" -"이 생성 됩니다.\n" - -#: src/slic3r/GUI/UpdateDialogs.cpp:164 -#, c-format -msgid "This %s version: %s" -msgstr "이 %s 버전: %s" - -#: src/slic3r/GUI/UpdateDialogs.cpp:169 -msgid "Incompatible bundles:" -msgstr "호환되지 않는 번들 :" - -#: src/slic3r/GUI/UpdateDialogs.cpp:185 -#, c-format -msgid "Exit %s" -msgstr "%s Exit" - -#: src/slic3r/GUI/UpdateDialogs.cpp:188 -msgid "Re-configure" -msgstr "재구성" - -#: src/slic3r/GUI/UpdateDialogs.cpp:209 -#, c-format -msgid "" -"%s now uses an updated configuration structure.\n" -"\n" -"So called 'System presets' have been introduced, which hold the built-in " -"default settings for various printers. These System presets cannot be " -"modified, instead, users now may create their own presets inheriting " -"settings from one of the System presets.\n" -"An inheriting preset may either inherit a particular value from its parent " -"or override it with a customized value.\n" -"\n" -"Please proceed with the %s that follows to set up the new presets and to " -"choose whether to enable automatic preset updates." -msgstr "" -"%s이 (가) 이제 업데이트 된 구성 구조를 사용 합니다.\n" -"\n" -"'시스템 프리셋 '이 도입 되었습니다, 다양한 프린터에 대한 기본 설정을 내장. 이" -"러한 시스템 프리셋은 수정할 수 없으며, 사용자는 이제 시스템 프리셋 중 하나에" -"서 설정을 상속하는 자신만의 프리셋을 생성할 수 있습니다.\n" -"상속하는 사전 설정은 해당 기본 설정에서 특정 값을 상속 하거나 사용자 지정 된 " -"값으로 재정의할 수 있습니다.\n" -"\n" -"다음의 %s를 계속 진행하여 새 프리셋을 설정하고 자동 프리셋 업데이트를 사용할" -"지 여부를 선택하십시오." - -#: src/slic3r/GUI/UpdateDialogs.cpp:225 -msgid "For more information please visit our wiki page:" -msgstr "자세한 정보는 위키 페이지를 참조하십시오 :" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:14 -msgid "Ramming customization" -msgstr "사용자 정의 다지기(Ramming)" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:40 -msgid "" -"Ramming denotes the rapid extrusion just before a tool change in a single-" -"extruder MM printer. Its purpose is to properly shape the end of the " -"unloaded filament so it does not prevent insertion of the new filament and " -"can itself be reinserted later. This phase is important and different " -"materials can require different extrusion speeds to get the good shape. For " -"this reason, the extrusion rates during ramming are adjustable.\n" -"\n" -"This is an expert-level setting, incorrect adjustment will likely lead to " -"jams, extruder wheel grinding into filament etc." -msgstr "" -"래밍은 단일 압출기 MM 프린터에서 공구 교환 직전의 신속한 압출을 나타냅니다. " -"그 목적은 언로드 된 필라멘트의 끝 부분을 적절히 형성하여 새로운 필라멘트의 삽" -"입을 방지하고 나중에 다시 삽입 할 수 있도록하기위한 것입니다. 이 단계는 중요" -"하며 다른 재료는 좋은 모양을 얻기 위해 다른 압출 속도를 요구할 수 있습니다. " -"이러한 이유로, 래밍 중 압출 속도는 조정 가능합니다.\n" -"\n" -"전문가 수준의 설정이므로 잘못된 조정으로 인해 용지 걸림, 압출기 휠이 필라멘" -"트 등에 연삭 될 수 있습니다." - -#: src/slic3r/GUI/WipeTowerDialog.cpp:82 -msgid "Total ramming time" -msgstr "총 래밍 시간" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:84 -msgid "Total rammed volume" -msgstr "총 레미드 양" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:88 -msgid "Ramming line width" -msgstr "래밍 선 너비" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:90 -msgid "Ramming line spacing" -msgstr "래밍 선 간격" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:141 -msgid "Wipe tower - Purging volume adjustment" -msgstr "와이프 타워 - 버려진 필라멘트 조절" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:225 -msgid "" -"Here you can adjust required purging volume (mm³) for any given pair of " -"tools." -msgstr "여기서 주어진 도구 쌍에 필요한 정화 용량 (mm³)을 조정할 수 있습니다." - -#: src/slic3r/GUI/WipeTowerDialog.cpp:226 -msgid "Extruder changed to" -msgstr "익스트루더 번경" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:234 -msgid "unloaded" -msgstr "언로드(unloaded)" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:235 -msgid "loaded" -msgstr "로드(loaded)" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:240 -msgid "Tool #" -msgstr "도구(Tool) #" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:247 -msgid "" -"Total purging volume is calculated by summing two values below, depending on " -"which tools are loaded/unloaded." -msgstr "" -"총 정화 량은 어느 공구가로드 / 언로드되는지에 따라 아래의 두 값을 합산하여 계" -"산됩니다." - -#: src/slic3r/GUI/WipeTowerDialog.cpp:248 -msgid "Volume to purge (mm³) when the filament is being" -msgstr "제거할 필라멘트 양 (mm³)" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:262 -msgid "From" -msgstr "From" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:327 -msgid "" -"Switching to simple settings will discard changes done in the advanced " -"mode!\n" -"\n" -"Do you want to proceed?" -msgstr "" -"단순 설정으로 전환하면 고급 모드에서 수행된 변경 내용이 삭제됨!\n" -"\n" -"계속하시겠습니까?" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:339 -msgid "Show simplified settings" -msgstr "간단한 설정보기" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:339 -msgid "Show advanced settings" -msgstr "고급 설정보기" - -#: src/slic3r/GUI/wxExtensions.cpp:443 -msgid "Instances" -msgstr "복제본" - -#: src/slic3r/GUI/wxExtensions.cpp:447 src/slic3r/GUI/wxExtensions.cpp:592 -#, c-format -msgid "Instance %d" -msgstr "복제본 %d" - -#: src/slic3r/GUI/wxExtensions.cpp:486 -msgid "Range" -msgstr "범위" - -#: src/slic3r/GUI/wxExtensions.cpp:2570 -msgid "One layer mode" -msgstr "하나의 레이어 모드" - -#: src/slic3r/GUI/wxExtensions.cpp:2571 -msgid "Add/Del color change" -msgstr "현재 레이어의 색상 변경 마커 추가" - -#: src/slic3r/GUI/wxExtensions.cpp:2572 -msgid "Discard all color changes" -msgstr "모든 색상 변경 무시" - -#: src/slic3r/GUI/wxExtensions.cpp:2832 -#, c-format -msgid "Switch to the %s mode" -msgstr "%s 모드로 전환" - -#: src/slic3r/GUI/wxExtensions.cpp:2833 -#, c-format -msgid "Current mode is %s" -msgstr "현재 모드는 %s입니다" - -#: src/slic3r/Utils/Duet.cpp:51 -msgid "Connection to Duet works correctly." -msgstr "듀엣보드에 대한 연결이 올바르게 작동 합니다." - -#: src/slic3r/Utils/Duet.cpp:56 -msgid "Could not connect to Duet" -msgstr "듀엣보드에 연결할 수 없습니다" - -#: src/slic3r/Utils/Duet.cpp:84 src/slic3r/Utils/Duet.cpp:154 -msgid "Unknown error occured" -msgstr "알 수 없는 오류가 발생 했습니다" - -#: src/slic3r/Utils/Duet.cpp:148 -msgid "Wrong password" -msgstr "잘못된 암호" - -#: src/slic3r/Utils/Duet.cpp:151 -msgid "Could not get resources to create a new connection" -msgstr "새 연결을 만들 리소스를 가져올수 없습니다" - -#: src/slic3r/Utils/OctoPrint.cpp:69 -#, c-format -msgid "Mismatched type of print host: %s" -msgstr "일치 하지않는 인쇄 호스트 유형: %s" - -#: src/slic3r/Utils/OctoPrint.cpp:84 -msgid "Connection to OctoPrint works correctly." -msgstr "OctoPrint에 연결하면 올바르게 작동합니다." - -#: src/slic3r/Utils/OctoPrint.cpp:90 -msgid "Could not connect to OctoPrint" -msgstr "OctoPrint에 연결할 수 없습니다" - -#: src/slic3r/Utils/OctoPrint.cpp:90 -msgid "Note: OctoPrint version at least 1.1.0 is required." -msgstr "참고 : OctoPrint 버전 1.1.0 이상이 필요합니다." - -#: src/slic3r/Utils/OctoPrint.cpp:195 -msgid "Connection to Prusa SL1 works correctly." -msgstr "Prusa SL1에 대한 연결이 제대로 작동 합니다." - -#: src/slic3r/Utils/OctoPrint.cpp:200 -msgid "Could not connect to Prusa SLA" -msgstr "Prusa SLA에 연결할 수 없습니다" - -#: src/slic3r/Utils/PresetUpdater.cpp:614 -#, c-format -msgid "requires min. %s and max. %s" -msgstr "최소. %s 와 최대. %s" - -#: src/slic3r/Utils/PresetUpdater.cpp:619 -#, c-format -msgid "requires min. %s" -msgstr "최소 %s가 필요 합니다" - -#: src/slic3r/Utils/PresetUpdater.cpp:621 -#, c-format -msgid "requires max. %s" -msgstr "최대 필요 합니다. %s" - -#: src/slic3r/Utils/FixModelByWin10.cpp:219 -#: src/slic3r/Utils/FixModelByWin10.cpp:359 -msgid "Exporting source model" -msgstr "소스 모델 내보내기" - -#: src/slic3r/Utils/FixModelByWin10.cpp:235 -msgid "Failed loading the input model." -msgstr "입력 모델을 로드하지 못했습니다." - -#: src/slic3r/Utils/FixModelByWin10.cpp:242 -msgid "Repairing model by the Netfabb service" -msgstr "Netfabb 서비스에의 한 모델 복구" - -#: src/slic3r/Utils/FixModelByWin10.cpp:248 -msgid "Mesh repair failed." -msgstr "메쉬 복구에 실패 했습니다." - -#: src/slic3r/Utils/FixModelByWin10.cpp:251 -#: src/slic3r/Utils/FixModelByWin10.cpp:378 -msgid "Loading repaired model" -msgstr "복구 된 모델 로드" - -#: src/slic3r/Utils/FixModelByWin10.cpp:263 -#: src/slic3r/Utils/FixModelByWin10.cpp:270 -#: src/slic3r/Utils/FixModelByWin10.cpp:302 -msgid "Saving mesh into the 3MF container failed." -msgstr "3MF 컨테이너에 메쉬를 저장하지 못했습니다." - -#: src/slic3r/Utils/FixModelByWin10.cpp:340 -msgid "Model fixing" -msgstr "모델 고정" - -#: src/slic3r/Utils/FixModelByWin10.cpp:341 -msgid "Exporting model..." -msgstr "소스 모델 내보내기..." - -#: src/slic3r/Utils/FixModelByWin10.cpp:368 -msgid "Export of a temporary 3mf file failed" -msgstr "임시 3mf 파일을 내보내지 못했습니다" - -#: src/slic3r/Utils/FixModelByWin10.cpp:383 -msgid "Import of the repaired 3mf file failed" -msgstr "복구된 3mf 파일을 가져오지 못했습니다" - -#: src/slic3r/Utils/FixModelByWin10.cpp:385 -msgid "Repaired 3MF file does not contain any object" -msgstr "복구된 3MF 파일에 개체가 포함 되어있지 않습니다" - -#: src/slic3r/Utils/FixModelByWin10.cpp:387 -msgid "Repaired 3MF file contains more than one object" -msgstr "복구된 3MF 파일에 둘 이상의 개체가 포함되어 있습니다" - -#: src/slic3r/Utils/FixModelByWin10.cpp:389 -msgid "Repaired 3MF file does not contain any volume" -msgstr "복구 된 3MF 파일에 개체가 포함 되어있지 않습니다" - -#: src/slic3r/Utils/FixModelByWin10.cpp:391 -msgid "Repaired 3MF file contains more than one volume" -msgstr "복구된 3MF 파일에 둘 이상의 개체가 포함되어 있습니다" - -#: src/slic3r/Utils/FixModelByWin10.cpp:400 -msgid "Model repair finished" -msgstr "모델 수리 완료" - -#: src/slic3r/Utils/FixModelByWin10.cpp:406 -msgid "Model repair canceled" -msgstr "모델 복구가 취소 되었습니다" - -#: src/slic3r/Utils/FixModelByWin10.cpp:423 -msgid "Model repaired successfully" -msgstr "모델이 성공적으로 복구 되었습니다" - -#: src/slic3r/Utils/FixModelByWin10.cpp:423 -#: src/slic3r/Utils/FixModelByWin10.cpp:426 -msgid "Model Repair by the Netfabb service" -msgstr "Netfabb 서비스에의 한 모델 복구" - -#: src/slic3r/Utils/FixModelByWin10.cpp:426 -msgid "Model repair failed: \n" -msgstr "모델 복구 실패:\n" - -#: src/libslic3r/Zipper.cpp:32 -msgid "undefined error" -msgstr "정의 되지 않은 오류" - -#: src/libslic3r/Zipper.cpp:34 -msgid "too many files" -msgstr "파일이 너무 많음" - -#: src/libslic3r/Zipper.cpp:36 -msgid "file too large" -msgstr "파일이 너무 큼" - -#: src/libslic3r/Zipper.cpp:38 -msgid "unsupported method" -msgstr "지원 되지 않는 방법" - -#: src/libslic3r/Zipper.cpp:40 -msgid "unsupported encryption" -msgstr "지원 되지 않는 암호화" - -#: src/libslic3r/Zipper.cpp:42 -msgid "unsupported feature" -msgstr "지원 되지 않는 기능" - -#: src/libslic3r/Zipper.cpp:44 -msgid "failed finding central directory" -msgstr "중앙 디렉터리를 찾지 못했습니다." - -#: src/libslic3r/Zipper.cpp:46 -msgid "not a ZIP archive" -msgstr "zIP 아카이브 아님" - -#: src/libslic3r/Zipper.cpp:48 -msgid "invalid header or archive is corrupted" -msgstr "잘못 된 헤더 또는 아카이브가 손상 되었습니다" - -#: src/libslic3r/Zipper.cpp:50 -msgid "unsupported multidisk archive" -msgstr "지원 되지 않는 멀티 디스크 아카이브" - -#: src/libslic3r/Zipper.cpp:52 -msgid "decompression failed or archive is corrupted" -msgstr "압축 풀기 실패 또는 아카이브가 손상 되었습니다" - -#: src/libslic3r/Zipper.cpp:54 -msgid "compression failed" -msgstr "압축 실패" - -#: src/libslic3r/Zipper.cpp:56 -msgid "unexpected decompressed size" -msgstr "예기치 않은 압축 해제 크기" - -#: src/libslic3r/Zipper.cpp:58 -msgid "CRC-32 check failed" -msgstr "CRC-32 확인 실패" - -#: src/libslic3r/Zipper.cpp:60 -msgid "unsupported central directory size" -msgstr "지원 되지 않는 중앙 디렉터리 크기" - -#: src/libslic3r/Zipper.cpp:62 -msgid "allocation failed" -msgstr "할당 실패" - -#: src/libslic3r/Zipper.cpp:64 -msgid "file open failed" -msgstr "파일 열기 실패" - -#: src/libslic3r/Zipper.cpp:66 -msgid "file create failed" -msgstr "파일 만들기 실패" - -#: src/libslic3r/Zipper.cpp:68 -msgid "file write failed" -msgstr "파일 쓰기 실패" - -#: src/libslic3r/Zipper.cpp:70 -msgid "file read failed" -msgstr "파일 읽기 실패" - -#: src/libslic3r/Zipper.cpp:72 -msgid "file close failed" -msgstr "파일 닫기 실패" - -#: src/libslic3r/Zipper.cpp:74 -msgid "file seek failed" -msgstr "파일 검색 실패" - -#: src/libslic3r/Zipper.cpp:76 -msgid "file stat failed" -msgstr "파일 통계 실패" - -#: src/libslic3r/Zipper.cpp:78 -msgid "invalid parameter" -msgstr "잘못 된 매개 변수" - -#: src/libslic3r/Zipper.cpp:80 -msgid "invalid filename" -msgstr "잘못 된 파일 이름" - -#: src/libslic3r/Zipper.cpp:82 -msgid "buffer too small" -msgstr "버퍼가 너무 작음" - -#: src/libslic3r/Zipper.cpp:84 -msgid "internal error" -msgstr "내부 오류" - -#: src/libslic3r/Zipper.cpp:86 -msgid "file not found" -msgstr "파일을 찾을수 없다" - -#: src/libslic3r/Zipper.cpp:88 -msgid "archive is too large" -msgstr "아카이브가 너무 큼" - -#: src/libslic3r/Zipper.cpp:90 -msgid "validation failed" -msgstr "유효성 검사 실패" - -#: src/libslic3r/Zipper.cpp:92 -msgid "write calledback failed" -msgstr "쓰기 다시 실패" - -#: src/libslic3r/Zipper.cpp:102 -msgid "Error with zip archive" -msgstr "zip 아카이브와 오류가 발생 했습니다" - -#: src/libslic3r/Print.cpp:1093 -msgid "All objects are outside of the print volume." -msgstr "모든 개체가 인쇄 볼륨 외부에 있습니다." - -#: src/libslic3r/Print.cpp:1120 -msgid "Some objects are too close; your extruder will collide with them." -msgstr "일부 개체가 너무 가깝습니다. 귀하의 압출기가 그들과 충돌합니다." - -#: src/libslic3r/Print.cpp:1135 -msgid "" -"Some objects are too tall and cannot be printed without extruder collisions." -msgstr "일부 개체는 너무 크고 익스트루더 충돌없이 인쇄 할 수 없습니다." - -#: src/libslic3r/Print.cpp:1145 -msgid "The Spiral Vase option can only be used when printing a single object." -msgstr "" -"나선형 꽃병(Spiral Vase) 옵션은 단일 개체를 인쇄 할 때만 사용할 수 있습니다." - -#: src/libslic3r/Print.cpp:1147 -msgid "" -"The Spiral Vase option can only be used when printing single material " -"objects." -msgstr "" -"나선형 꽃병 옵션(Spiral Vase)은 단일 재료 객체를 인쇄 할 때만 사용할 수 있습" -"니다." - -#: src/libslic3r/Print.cpp:1155 -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:1159 -msgid "" -"The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter " -"and Repetier G-code flavors." -msgstr "" -"와이프 타워는 현재 말린, RepRap/Sprinter 및 리피티어에 대해서만 G-코드지원 됩" -"니다." - -#: src/libslic3r/Print.cpp:1161 -msgid "" -"The Wipe Tower is currently only supported with the relative extruder " -"addressing (use_relative_e_distances=1)." -msgstr "" -"와이프 타워는 현재 상대적 압출기 어드레싱 (use_relative_e_distances = 1)에서" -"만 지원됩니다." - -#: src/libslic3r/Print.cpp:1165 -msgid "All extruders must have the same diameter for the Wipe Tower." -msgstr "모든 압출기는 와이프 타워의 지름이 같아야 합니다." - -#: src/libslic3r/Print.cpp:1186 -msgid "" -"The Wipe Tower is only supported for multiple objects if they have equal " -"layer heights" -msgstr "" -"와이프 타워 (Wipe Tower)는 같은 레이어 높이에 경우 여러 객체에 대해서만 지원" -"됩니다" - -#: src/libslic3r/Print.cpp:1188 -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:1190 -msgid "" -"The Wipe Tower is only supported for multiple objects if they are printed " -"with the same support_material_contact_distance" -msgstr "" -"와이프 타워는 동일한 support_material_contact_distance로 인쇄 된 경우 여러 객" -"체에 대해서만 지원됩니다" - -#: src/libslic3r/Print.cpp:1192 -msgid "" -"The Wipe Tower is only supported for multiple objects if they are sliced " -"equally." -msgstr "" -"와이프 타워는 똑같이 슬라이스 된 경우 여러 오브젝트에 대해서만 지원됩니다." - -#: src/libslic3r/Print.cpp:1220 -msgid "" -"The Wipe tower is only supported if all objects have the same layer height " -"profile" -msgstr "" -"모든 오브젝트의 레이어 높이 프로필이 동일한 경우에만 와이프 타워가 지원됩니다" - -#: src/libslic3r/Print.cpp:1230 -msgid "The supplied settings will cause an empty print." -msgstr "제공된 설정으로 인해 빈 인쇄가 발생합니다." - -#: src/libslic3r/Print.cpp:1247 -msgid "" -"One or more object were assigned an extruder that the printer does not have." -msgstr "하나 이상의 개체에 프린터에없는 압출기가 지정되었습니다." - -#: src/libslic3r/Print.cpp:1256 -msgid "" -"Printing with multiple extruders of differing nozzle diameters. If support " -"is to be printed with the current extruder (support_material_extruder == 0 " -"or support_material_interface_extruder == 0), all nozzles have to be of the " -"same diameter." -msgstr "" -"노즐 지름이 다른 여러 압출기로 인쇄. 지원이 현재 압출기 " -"(support_material_extruder == 0 또는 support_material_interface_extruder == " -"0)로 인쇄되는 경우 모든 노즐은 동일한 지름이어야합니다." - -#: src/libslic3r/Print.cpp:1264 -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:1268 -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 " -"support_material_extruder and support_material_interface_extruder need to be " -"set to 0)." -msgstr "" -"와이프 타워는 현재 공구 교체를 트리거하지 않고 현재의 압출기로 인쇄 하는 경우" -"에만 비가용성 서포트를 지원 합니다. (support_material_extruder과 " -"support_material_interface_extruder 모두 0으로 설정 해야 합니다.)" - -#: src/libslic3r/Print.cpp:1290 -msgid "First layer height can't be greater than nozzle diameter" -msgstr "첫번째 레이어 높이는 노즐 직경보다 클 수 없습니다" - -#: src/libslic3r/Print.cpp:1294 -msgid "Layer height can't be greater than nozzle diameter" -msgstr "레이어 높이는 노즐 직경보다 클 수 없습니다" - -#: src/libslic3r/Print.cpp:1438 -msgid "Infilling layers" -msgstr "레이어 채우기" - -#: src/libslic3r/Print.cpp:1446 -msgid "Generating skirt" -msgstr "스커트 생성" - -#: src/libslic3r/Print.cpp:1454 -msgid "Generating brim" -msgstr "브림 생성" - -#: src/libslic3r/Print.cpp:1482 -msgid "Exporting G-code" -msgstr "G 코드 내보내기" - -#: src/libslic3r/Print.cpp:1486 -msgid "Generating G-code" -msgstr "G 코드 생성" - -#: src/libslic3r/SLAPrint.cpp:58 -msgid "Slicing model" -msgstr "슬라이싱 모델" - -#: src/libslic3r/SLAPrint.cpp:59 src/libslic3r/SLAPrint.cpp:871 -msgid "Generating support points" -msgstr "서포트 지점 생성" - -#: src/libslic3r/SLAPrint.cpp:60 -msgid "Generating support tree" -msgstr "서포트 트리 생성" - -#: src/libslic3r/SLAPrint.cpp:61 -msgid "Generating pad" -msgstr "패드 생성" - -#: src/libslic3r/SLAPrint.cpp:62 -msgid "Slicing supports" -msgstr "슬라이싱 서포트즈" - -#: src/libslic3r/SLAPrint.cpp:79 -msgid "Merging slices and calculating statistics" -msgstr "슬라이스 병합 및 통계 계산" - -#: src/libslic3r/SLAPrint.cpp:80 -msgid "Rasterizing layers" -msgstr "레이어 래스터화" - -#: src/libslic3r/SLAPrint.cpp:650 -msgid "" -"Cannot proceed without support points! Add support points or disable support " -"generation." -msgstr "" -"서포트 포인트 없이 진행할 수 없습니다! 서포트 지점을 추가 하거나 서포트 생성" -"을 사용 하지 않도록 설정 합니다." - -#: src/libslic3r/SLAPrint.cpp:664 -msgid "Elevation is too low for object." -msgstr "객체 고도가 너무 낮습니다." - -#: src/libslic3r/SLAPrint.cpp:670 -msgid "" -"The endings of the support pillars will be deployed on the gap between the " -"object and the pad. 'Support base safety distance' has to be greater than " -"the 'Pad object gap' parameter to avoid this." -msgstr "" -"서포트 기둥 끝은 오브젝트와 패드 사이의 간격에 배치됩니다. 이를 방지하기 위" -"해 '베이스 서포트 안전 거리'는 '패드 오브젝트 갭' 매개변수보다 커야 합니다." - -#: src/libslic3r/SLAPrint.cpp:759 -msgid "" -"Slicing had to be stopped due to an internal error: Inconsistent slice index." -msgstr "" -"내부 오류: 일치하지 않는 슬라이스 인덱스로 인해 슬라이싱을 중지해야 했습니다." - -#: src/libslic3r/SLAPrint.cpp:954 src/libslic3r/SLAPrint.cpp:964 -#: src/libslic3r/SLAPrint.cpp:1005 -msgid "Visualizing supports" -msgstr "시각화 지원" - -#: src/libslic3r/SLAPrint.cpp:1537 -msgid "Slicing done" -msgstr "슬라이싱 완료" - -#: src/libslic3r/PrintBase.cpp:71 -msgid "Failed processing of the output_filename_format template." -msgstr "아래 output_filename_format 템플리트의 처리에 실패했습니다." - -#: src/libslic3r/PrintConfig.cpp:43 src/libslic3r/PrintConfig.cpp:44 -msgid "Printer technology" -msgstr "프린터 기술" - -#: src/libslic3r/PrintConfig.cpp:51 -msgid "Bed shape" -msgstr "배드 모양" - -#: src/libslic3r/PrintConfig.cpp:56 -msgid "Bed custom texture" -msgstr "침대 사용자 정의 질감" - -#: src/libslic3r/PrintConfig.cpp:61 -msgid "Bed custom model" -msgstr "침대 사용자 정의 모델" - -#: src/libslic3r/PrintConfig.cpp:68 -msgid "" -"This setting controls the height (and thus the total number) of the slices/" -"layers. Thinner layers give better accuracy but take more time to print." -msgstr "" -"이 설정은 슬라이스/레이어의 높이(따라서 총 수)를 제어합니다. 얇은 층은 더 나" -"은 정확성을 제공하지만 인쇄하는 데는 더 많은 시간이 걸린다." - -#: src/libslic3r/PrintConfig.cpp:75 -msgid "Max print height" -msgstr "최대 프린트 높이" - -#: src/libslic3r/PrintConfig.cpp:76 -msgid "" -"Set this to the maximum height that can be reached by your extruder while " -"printing." -msgstr "인쇄 중에 익스트루더가 도달 할 수있는 최대 높이로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:82 -msgid "Slice gap closing radius" -msgstr "슬라이스 간격 닫힘 반경" - -#: src/libslic3r/PrintConfig.cpp:84 -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 "" -"삼각형 메쉬 슬라이싱 중에, 2배 간격 폐쇄 반경 보다 작은 균열이 채워집니다. " -"틈 닫기 작업은 최종 인쇄 해상도를 줄일 수 있으므로 값을 합리적으로 낮게 유지 " -"하는 것이 좋습니다." - -#: src/libslic3r/PrintConfig.cpp:92 -msgid "Hostname, IP or URL" -msgstr "호스트 이름(Hostname), IP or URL" - -#: src/libslic3r/PrintConfig.cpp:93 -msgid "" -"Slic3r can upload G-code files to a printer host. This field should contain " -"the hostname, IP address or URL of the printer host instance." -msgstr "" -"Slic3r는 프린터 호스트에 G 코드 파일을 업로드할 수 있습니다. 이 필드는 호스" -"트 이름, IP 주소 또는 프린터 호스트 복제본의 URL을 포함 해야 합니다." - -#: src/libslic3r/PrintConfig.cpp:99 -msgid "API Key / Password" -msgstr "API 키/암호" - -#: src/libslic3r/PrintConfig.cpp:100 -msgid "" -"Slic3r can upload G-code files to a printer host. This field should contain " -"the API Key or the password required for authentication." -msgstr "" -"Slic3r는 프린터 호스트에 G 코드 파일을 업로드할 수 있습니다. 이 필드는 API " -"키 또는 인증에 필요한 암호를 포함 해야 합니다." - -#: src/libslic3r/PrintConfig.cpp:106 -msgid "HTTPS CA File" -msgstr "HTTPS CA 파일" - -#: src/libslic3r/PrintConfig.cpp:107 -msgid "" -"Custom CA certificate file can be specified for HTTPS OctoPrint connections, " -"in crt/pem format. If left blank, the default OS CA certificate repository " -"is used." -msgstr "" -"사용자 지정 CA 인증서 파일은 crt/pem 형식의 HTTPS 옥토 프린트 연결에 대해 지" -"정할 수 있습니다. 비워 두면 기본 OS CA 인증서 리포지토리가 사용 됩니다." - -#: src/libslic3r/PrintConfig.cpp:121 -msgid "Avoid crossing perimeters" -msgstr "출력된 외측을 피하세요" - -#: src/libslic3r/PrintConfig.cpp:122 -msgid "" -"Optimize travel moves in order to minimize the crossing of perimeters. This " -"is mostly useful with Bowden extruders which suffer from oozing. This " -"feature slows down both the print and the G-code generation." -msgstr "" -"둘레의 교차를 최소화하기 위해 여행 이동을 최적화하십시오. 이것은 보 잉 " -"(Bowling) 압출기가 흘러 나오기 쉬운 경우에 주로 유용합니다. 이 기능을 사용하" -"면 인쇄 및 G 코드 생성 속도가 느려집니다." - -#: src/libslic3r/PrintConfig.cpp:129 src/libslic3r/PrintConfig.cpp:2027 -msgid "Other layers" -msgstr "다른 레이어" - -#: src/libslic3r/PrintConfig.cpp:130 -msgid "" -"Bed temperature for layers after the first one. Set this to zero to disable " -"bed temperature control commands in the output." -msgstr "" -"첫 번째 레이어 이후의 레이어 온도. 이 값을 0으로 설정하면 출력에서 ​​베드 온도 " -"제어 명령을 비활성화합니다." - -#: src/libslic3r/PrintConfig.cpp:132 -msgid "Bed temperature" -msgstr "배드 온도" - -#: src/libslic3r/PrintConfig.cpp:139 -msgid "" -"This custom code is inserted at every layer change, right before the Z move. " -"Note that you can use placeholder variables for all Slic3r settings as well " -"as [layer_num] and [layer_z]." -msgstr "" -"이 사용자 정의 코드는 Z 이동 직전의 모든 레이어 변경에 삽입됩니다. [Slide3r] " -"설정과 [layer_num] 및 [layer_z]에 대한 자리 표시 자 변수를 사용할 수 있습니" -"다." - -#: src/libslic3r/PrintConfig.cpp:149 -msgid "Between objects G-code" -msgstr "객체 간 G 코드" - -#: src/libslic3r/PrintConfig.cpp:150 -msgid "" -"This code is inserted between objects when using sequential printing. By " -"default extruder and bed temperature are reset using non-wait command; " -"however if M104, M109, M140 or M190 are detected in this custom code, Slic3r " -"will not add temperature commands. Note that you can use placeholder " -"variables for all Slic3r settings, so you can put a \"M109 " -"S[first_layer_temperature]\" command wherever you want." -msgstr "" -"이 코드는 순차 인쇄를 사용할 때 객체간에 삽입됩니다. 기본적으로 익스트루더 " -"및 베드 온도는 대기 모드가 아닌 명령을 사용하여 재설정됩니다. 그러나 이 사용" -"자 코드에서 M104, M109, M140 또는 M190이 감지되면 Slic3r은 온도 명령을 추가하" -"지 않습니다. 모든 Slic3r 설정에 자리 표시 변수를 사용할 수 있으므로 원하는 위" -"치에 \"M109 S [first_layer_temperature]\"명령을 넣을 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:161 -msgid "Number of solid layers to generate on bottom surfaces." -msgstr "바닥면에 생성 할 솔리드 레이어의 수." - -#: src/libslic3r/PrintConfig.cpp:162 -msgid "Bottom solid layers" -msgstr "바닥 단일 레이어" - -#: src/libslic3r/PrintConfig.cpp:167 -msgid "Bridge" -msgstr "브리지" - -#: src/libslic3r/PrintConfig.cpp:168 -msgid "" -"This is the acceleration your printer will use for bridges. Set zero to " -"disable acceleration control for bridges." -msgstr "" -"이것은 프린터가 브릿지에 사용할 가속도입니다. 브리지의 가속 제어를 사용하지 " -"않으려면 0으로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:170 src/libslic3r/PrintConfig.cpp:313 -#: src/libslic3r/PrintConfig.cpp:840 src/libslic3r/PrintConfig.cpp:961 -#: src/libslic3r/PrintConfig.cpp:1130 src/libslic3r/PrintConfig.cpp:1183 -#: src/libslic3r/PrintConfig.cpp:1194 src/libslic3r/PrintConfig.cpp:1383 -msgid "mm/s²" -msgstr "mm/s ²" - -#: src/libslic3r/PrintConfig.cpp:176 -msgid "Bridging angle" -msgstr "브릿지 각도" - -#: src/libslic3r/PrintConfig.cpp:178 -msgid "" -"Bridging angle override. If left to zero, the bridging angle will be " -"calculated automatically. Otherwise the provided angle will be used for all " -"bridges. Use 180° for zero angle." -msgstr "" -"브리징 각도 오버라이드(override)값이. 왼쪽으로 0 일 경우 브리징 각도가 자동으" -"로 계산됩니다. 그렇지 않으면 제공된 각도가 모든 브리지에 사용됩니다. 각도 제" -"로는 180 °를 사용하십시오." - -#: src/libslic3r/PrintConfig.cpp:181 src/libslic3r/PrintConfig.cpp:758 -#: src/libslic3r/PrintConfig.cpp:1619 src/libslic3r/PrintConfig.cpp:1629 -#: src/libslic3r/PrintConfig.cpp:1858 src/libslic3r/PrintConfig.cpp:2012 -#: src/libslic3r/PrintConfig.cpp:2197 src/libslic3r/PrintConfig.cpp:2582 -#: src/libslic3r/PrintConfig.cpp:2693 -msgid "°" -msgstr "°" - -#: src/libslic3r/PrintConfig.cpp:187 -msgid "Bridges fan speed" -msgstr "브릿지 팬 속도" - -#: src/libslic3r/PrintConfig.cpp:188 -msgid "This fan speed is enforced during all bridges and overhangs." -msgstr "이 팬 속도는 모든 브릿지 및 오버행 중에 적용됩니다." - -#: src/libslic3r/PrintConfig.cpp:189 src/libslic3r/PrintConfig.cpp:770 -#: src/libslic3r/PrintConfig.cpp:1203 src/libslic3r/PrintConfig.cpp:1266 -#: src/libslic3r/PrintConfig.cpp:1511 src/libslic3r/PrintConfig.cpp:2366 -#: src/libslic3r/PrintConfig.cpp:2623 -msgid "%" -msgstr "%" - -#: src/libslic3r/PrintConfig.cpp:196 -msgid "Bridge flow ratio" -msgstr "브릿지 유량(flow)값" - -#: src/libslic3r/PrintConfig.cpp:198 -msgid "" -"This factor affects the amount of plastic for bridging. You can decrease it " -"slightly to pull the extrudates and prevent sagging, although default " -"settings are usually good and you should experiment with cooling (use a fan) " -"before tweaking this." -msgstr "" -"이 요인은 브리징을위한 플라스틱의 양에 영향을 미칩니다. 압출 성형물을 잡아 당" -"겨 처짐을 방지하기 위해 약간 줄일 수 있지만 기본 설정은 일반적으로 좋지만이 " -"문제를 해결하기 전에 냉각 (팬 사용)을 시도해야합니다." - -#: src/libslic3r/PrintConfig.cpp:208 -msgid "Bridges" -msgstr "브릿지(Bridges)" - -#: src/libslic3r/PrintConfig.cpp:210 -msgid "Speed for printing bridges." -msgstr "브릿지 인쇄 속도." - -#: src/libslic3r/PrintConfig.cpp:211 src/libslic3r/PrintConfig.cpp:592 -#: src/libslic3r/PrintConfig.cpp:600 src/libslic3r/PrintConfig.cpp:609 -#: src/libslic3r/PrintConfig.cpp:617 src/libslic3r/PrintConfig.cpp:644 -#: src/libslic3r/PrintConfig.cpp:663 src/libslic3r/PrintConfig.cpp:899 -#: src/libslic3r/PrintConfig.cpp:1026 src/libslic3r/PrintConfig.cpp:1112 -#: src/libslic3r/PrintConfig.cpp:1148 src/libslic3r/PrintConfig.cpp:1161 -#: src/libslic3r/PrintConfig.cpp:1172 src/libslic3r/PrintConfig.cpp:1225 -#: src/libslic3r/PrintConfig.cpp:1284 src/libslic3r/PrintConfig.cpp:1412 -#: src/libslic3r/PrintConfig.cpp:1586 src/libslic3r/PrintConfig.cpp:1595 -#: src/libslic3r/PrintConfig.cpp:1991 src/libslic3r/PrintConfig.cpp:2104 -msgid "mm/s" -msgstr "mm/s" - -#: src/libslic3r/PrintConfig.cpp:218 -msgid "Brim width" -msgstr "브림 폭" - -#: src/libslic3r/PrintConfig.cpp:219 -msgid "" -"Horizontal width of the brim that will be printed around each object on the " -"first layer." -msgstr "첫 번째 레이어의 각 객체 주위에 인쇄 될 가장자리의 가로 폭입니다." - -#: src/libslic3r/PrintConfig.cpp:226 -msgid "Clip multi-part objects" -msgstr "여러 파트 오브젝트 클립" - -#: src/libslic3r/PrintConfig.cpp:227 -msgid "" -"When printing multi-material objects, this settings will make Slic3r to clip " -"the overlapping object parts one by the other (2nd part will be clipped by " -"the 1st, 3rd part will be clipped by the 1st and 2nd etc)." -msgstr "" -"멀티 메터리얼(multi-material) 개체를 인쇄 할 때이 설정을 사용하면 겹치는 개" -"체 파트를 서로 겹쳐서 잘라낼 수 있습니다 (두 번째 부분은 첫 번째 부분에서 클" -"리핑되며 세 번째 부분은 첫 번째 및 두 번째 부분에서 잘립니다)." - -#: src/libslic3r/PrintConfig.cpp:234 -msgid "Colorprint height" -msgstr "컬러 인쇄 높이" - -#: src/libslic3r/PrintConfig.cpp:235 -msgid "Heights at which a filament change is to occur." -msgstr "필라멘트 체인지가 발생 하는 높이." - -#: src/libslic3r/PrintConfig.cpp:245 -msgid "Compatible printers condition" -msgstr "호환 가능한 프린터 조건" - -#: src/libslic3r/PrintConfig.cpp:246 -msgid "" -"A boolean expression using the configuration values of an active printer " -"profile. If this expression evaluates to true, this profile is considered " -"compatible with the active printer profile." -msgstr "" -"활성 프린터 프로파일의 구성 값을 사용하는 부울 표현식. 이 표현식이 true로 평" -"가되면이 프로필은 활성 프린터 프로필과 호환되는 것으로 간주됩니다." - -#: src/libslic3r/PrintConfig.cpp:260 -msgid "Compatible print profiles condition" -msgstr "호환 되는 인쇄 프로 파일 조건" - -#: src/libslic3r/PrintConfig.cpp:261 -msgid "" -"A boolean expression using the configuration values of an active print " -"profile. If this expression evaluates to true, this profile is considered " -"compatible with the active print profile." -msgstr "" -"활성 인쇄 프로 파일의 구성 값을 사용하는 부울식입니다. 이 식이 true로 평가 되" -"면, 이 프로필이 활성 인쇄 프로필과 호환 되는 것으로 간주 됩니다." - -#: src/libslic3r/PrintConfig.cpp:278 -msgid "Complete individual objects" -msgstr "개별 개체 완성" - -#: src/libslic3r/PrintConfig.cpp:279 -msgid "" -"When printing multiple objects or copies, this feature will complete each " -"object before moving onto next one (and starting it from its bottom layer). " -"This feature is useful to avoid the risk of ruined prints. Slic3r should " -"warn and prevent you from extruder collisions, but beware." -msgstr "" -"여러 객체 또는 사본을 인쇄 할 때이 객체는 다음 객체로 이동하기 전에 각 객체" -"를 완성합니다 (맨 아래 레이어에서 시작). 이 기능은 인쇄물이 망가지는 위험을 " -"피할 때 유용합니다. Slic3r은 압출기 충돌을 경고하고 예방해야하지만 조심하십시" -"오." - -#: src/libslic3r/PrintConfig.cpp:287 -msgid "Enable auto cooling" -msgstr "자동 냉각 사용" - -#: src/libslic3r/PrintConfig.cpp:288 -msgid "" -"This flag enables the automatic cooling logic that adjusts print speed and " -"fan speed according to layer printing time." -msgstr "" -"이 플래그는 레이어 인쇄 시간에 따라 인쇄 속도와 팬 속도를 조정하는 자동 냉각 " -"논리를 활성화합니다." - -#: src/libslic3r/PrintConfig.cpp:293 -msgid "Cooling tube position" -msgstr "냉각 튜브 위치" - -#: src/libslic3r/PrintConfig.cpp:294 -msgid "Distance of the center-point of the cooling tube from the extruder tip." -msgstr "압출기 팁에서 냉각 튜브의 중심점까지의 거리 " - -#: src/libslic3r/PrintConfig.cpp:301 -msgid "Cooling tube length" -msgstr "냉각 튜브 길이" - -#: src/libslic3r/PrintConfig.cpp:302 -msgid "Length of the cooling tube to limit space for cooling moves inside it." -msgstr "내부의 냉각 이동을 위해 공간을 제한하는 냉각 튜브의 길이 " - -#: src/libslic3r/PrintConfig.cpp:310 -msgid "" -"This is the acceleration your printer will be reset to after the role-" -"specific acceleration values are used (perimeter/infill). Set zero to " -"prevent resetting acceleration at all." -msgstr "" -"역할 별 가속도 값이 사용 된 후에 프린터가 재설정되는 속도입니다 (둘레 / 충" -"전). 가속을 전혀 재설정하지 않으려면 0으로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:319 -msgid "Default filament profile" -msgstr "기본 필라멘트 프로파일" - -#: src/libslic3r/PrintConfig.cpp:320 -msgid "" -"Default filament profile associated with the current printer profile. On " -"selection of the current printer profile, this filament profile will be " -"activated." -msgstr "" -"현재 프린터 프로파일과 연관된 기본 필라멘트 프로파일. 현재 프린터 프로파일을 " -"선택하면 이 필라멘트 프로파일이 활성화됩니다." - -#: src/libslic3r/PrintConfig.cpp:326 -msgid "Default print profile" -msgstr "기본 인쇄 프로파일" - -#: src/libslic3r/PrintConfig.cpp:327 src/libslic3r/PrintConfig.cpp:2447 -#: src/libslic3r/PrintConfig.cpp:2458 -msgid "" -"Default print profile associated with the current printer profile. On " -"selection of the current printer profile, this print profile will be " -"activated." -msgstr "" -"현재 프린터 프로파일과 연관된 기본 인쇄 프로파일. 현재 프린터 프로파일을 선택" -"하면이 인쇄 프로파일이 활성화됩니다." - -#: src/libslic3r/PrintConfig.cpp:333 -msgid "Disable fan for the first" -msgstr "첫 번째 팬 사용 중지" - -#: src/libslic3r/PrintConfig.cpp:334 -msgid "" -"You can set this to a positive value to disable fan at all during the first " -"layers, so that it does not make adhesion worse." -msgstr "" -"이 값을 양수 값으로 설정하면 첫 번째 레이어에서 팬을 사용하지 않도록 설정하" -"여 접착력을 악화시키지 않습니다." - -#: src/libslic3r/PrintConfig.cpp:336 src/libslic3r/PrintConfig.cpp:971 -#: src/libslic3r/PrintConfig.cpp:1484 src/libslic3r/PrintConfig.cpp:1669 -#: src/libslic3r/PrintConfig.cpp:1730 src/libslic3r/PrintConfig.cpp:1894 -#: src/libslic3r/PrintConfig.cpp:1939 -msgid "layers" -msgstr "레이어" - -#: src/libslic3r/PrintConfig.cpp:343 -msgid "Don't support bridges" -msgstr "서포트와 브릿지를 사용하지 않음" - -#: src/libslic3r/PrintConfig.cpp:345 -msgid "" -"Experimental option for preventing support material from being generated " -"under bridged areas." -msgstr "" -"브릿지 영역 아래에 서포팅 재료가 생성되는 것을 방지하기위한 실험적 옵션." - -#: src/libslic3r/PrintConfig.cpp:351 -msgid "Distance between copies" -msgstr "복사본 간 거리" - -#: src/libslic3r/PrintConfig.cpp:352 -msgid "Distance used for the auto-arrange feature of the plater." -msgstr "플래이터(plater)의 자동 정렬 기능에 사용되는 거리입니다." - -#: src/libslic3r/PrintConfig.cpp:359 -msgid "Elephant foot compensation" -msgstr "코끼리 발(Elephant foot) 보상값" - -#: src/libslic3r/PrintConfig.cpp:361 -msgid "" -"The first layer will be shrunk in the XY plane by the configured value to " -"compensate for the 1st layer squish aka an Elephant Foot effect." -msgstr "" -"첫 번째 레이어는 구성 요소 값에 따라 XY 평면에서 수축되어 일층 스 퀴시 코끼리" -"발(Elephant Foot) 효과를 보완합니다." - -#: src/libslic3r/PrintConfig.cpp:370 -msgid "" -"This end procedure is inserted at the end of the output file. Note that you " -"can use placeholder variables for all Slic3r settings." -msgstr "" -"이 종료 절차는 출력 파일의 끝에 삽입된다. 모든 Slic3r 설정에 자리 표시자 변수" -"를 사용할 수 있다는 점에 유의하십시오." - -#: src/libslic3r/PrintConfig.cpp:380 -msgid "" -"This end procedure is inserted at the end of the output file, before the " -"printer end gcode (and before any toolchange from this filament in case of " -"multimaterial printers). Note that you can use placeholder variables for all " -"Slic3r settings. If you have multiple extruders, the gcode is processed in " -"extruder order." -msgstr "" -"이 종료 절차는 출력 파일의 끝, 프린터 종료 gcode 이전 (및 복합 재료 프린터의 " -"경우이 필라멘트에서 도구를 변경하기 전에)에 삽입됩니다. 모든 Slic3r 설정에 자" -"리 표시 자 변수를 사용할 수 있습니다. 압출기가 여러 개인 경우 gcode는 압출기 " -"순서대로 처리됩니다." - -#: src/libslic3r/PrintConfig.cpp:391 -msgid "Ensure vertical shell thickness" -msgstr "수직 쉘(shell) 두께 확인" - -#: src/libslic3r/PrintConfig.cpp:393 -msgid "" -"Add solid infill near sloping surfaces to guarantee the vertical shell " -"thickness (top+bottom solid layers)." -msgstr "" -"경사 표면 근처에 솔리드 인필을 추가하여 수직 셸 두께(상단+하단 솔리드 레이어)" -"를 보장하십시오." - -#: src/libslic3r/PrintConfig.cpp:399 -msgid "Top fill pattern" -msgstr "상단 채우기 패턴" - -#: src/libslic3r/PrintConfig.cpp:401 -msgid "" -"Fill pattern for top infill. This only affects the top visible layer, and " -"not its adjacent solid shells." -msgstr "" -"상단 채우기의 채우기 패턴. 이는 인접 한 솔리드 쉘이 아니라 보이는 상위 레이어" -"에만 영향을 줍니다." - -#: src/libslic3r/PrintConfig.cpp:409 src/libslic3r/PrintConfig.cpp:821 -#: src/libslic3r/PrintConfig.cpp:1972 -msgid "Rectilinear" -msgstr "직선면(Rectilinear)" - -#: src/libslic3r/PrintConfig.cpp:410 src/libslic3r/PrintConfig.cpp:827 -msgid "Concentric" -msgstr "동심원(Concentric)" - -#: src/libslic3r/PrintConfig.cpp:411 src/libslic3r/PrintConfig.cpp:831 -msgid "Hilbert Curve" -msgstr "힐버트 곡선(Hilbert Curve)" - -#: src/libslic3r/PrintConfig.cpp:412 src/libslic3r/PrintConfig.cpp:832 -msgid "Archimedean Chords" -msgstr "아르키메데우스(Archimedean Chords)" - -#: src/libslic3r/PrintConfig.cpp:413 src/libslic3r/PrintConfig.cpp:833 -msgid "Octagram Spiral" -msgstr "옥타그램 나선(Octagram Spiral)" - -#: src/libslic3r/PrintConfig.cpp:419 -msgid "Bottom fill pattern" -msgstr "아래쪽 채우기 패턴" - -#: src/libslic3r/PrintConfig.cpp:421 -msgid "" -"Fill pattern for bottom infill. This only affects the bottom external " -"visible layer, and not its adjacent solid shells." -msgstr "" -"하단 채우기의 채우기 패턴. 이는 인접 한 솔리드 쉘이 아니라 아래쪽에 보이는 외" -"부 레이어에만 영향을 줍니다." - -#: src/libslic3r/PrintConfig.cpp:430 src/libslic3r/PrintConfig.cpp:440 -msgid "External perimeters" -msgstr "외측 둘레" - -#: src/libslic3r/PrintConfig.cpp:432 -msgid "" -"Set this to a non-zero value to set a manual extrusion width for external " -"perimeters. If left zero, default extrusion width will be used if set, " -"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " -"(for example 200%), it will be computed over layer height." -msgstr "" -"외부 경계에 대한 수동 압출 폭을 설정하려면 이 값을 0이 아닌 값으로 설정하십시" -"오. 0인 경우 기본 압출 너비가 사용되며, 그렇지 않으면 1.125 x 노즐 직경이 사" -"용된다. 백분율(예: 200%)로 표현되는 경우, 레이어 높이에 걸쳐 계산됩니다." - -#: src/libslic3r/PrintConfig.cpp:435 src/libslic3r/PrintConfig.cpp:543 -#: src/libslic3r/PrintConfig.cpp:860 src/libslic3r/PrintConfig.cpp:872 -#: src/libslic3r/PrintConfig.cpp:992 src/libslic3r/PrintConfig.cpp:1017 -#: src/libslic3r/PrintConfig.cpp:1403 src/libslic3r/PrintConfig.cpp:1741 -#: src/libslic3r/PrintConfig.cpp:1847 src/libslic3r/PrintConfig.cpp:1915 -#: src/libslic3r/PrintConfig.cpp:2074 -msgid "mm or %" -msgstr "mm/s 또는 %" - -#: src/libslic3r/PrintConfig.cpp:442 -msgid "" -"This separate setting will affect the speed of external perimeters (the " -"visible ones). If expressed as percentage (for example: 80%) it will be " -"calculated on the perimeters speed setting above. Set to zero for auto." -msgstr "" -"이 별도의 설정은 외부 경계선(시각적 경계선)의 속도에 영향을 미친다. 백분율" -"(예: 80%)로 표현되는 경우 위의 Perimeter 속도 설정에 따라 계산된다. 자동을 위" -"해 0으로 설정한다." - -#: src/libslic3r/PrintConfig.cpp:445 src/libslic3r/PrintConfig.cpp:881 -#: src/libslic3r/PrintConfig.cpp:1700 src/libslic3r/PrintConfig.cpp:1751 -#: src/libslic3r/PrintConfig.cpp:1958 src/libslic3r/PrintConfig.cpp:2086 -msgid "mm/s or %" -msgstr "mm/s 또는 %" - -#: src/libslic3r/PrintConfig.cpp:452 -msgid "External perimeters first" -msgstr "외부 경계선 먼저" - -#: src/libslic3r/PrintConfig.cpp:454 -msgid "" -"Print contour perimeters from the outermost one to the innermost one instead " -"of the default inverse order." -msgstr "" -"기본 역순 대신 가장 바깥쪽부터 가장 안쪽까지 윤곽선을 인쇄하십시오. 타겟 TTS" -"복사하기번역 저장번역 저장번역 수정." - -#: src/libslic3r/PrintConfig.cpp:460 -msgid "Extra perimeters if needed" -msgstr "필요한 경우 추가 둘레" - -#: src/libslic3r/PrintConfig.cpp:462 -#, c-format -msgid "" -"Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r " -"keeps adding perimeters, until more than 70% of the loop immediately above " -"is supported." -msgstr "" -"경사 벽의 틈을 피하기 위해 필요한 경우 더 많은 둘래(perimeter)를 추가하십시" -"오. 위의 루프의 70% of 이상이 지지될 때까지 Slic3r는 계속해서 둘ㄹ를 추가한" -"다." - -#: src/libslic3r/PrintConfig.cpp:472 -msgid "" -"The extruder to use (unless more specific extruder settings are specified). " -"This value overrides perimeter and infill extruders, but not the support " -"extruders." -msgstr "" -"사용할 압출부(더 구체적인 압출부 설정이 지정되지 않은 경우) 이 값은 경계 및 " -"압출부를 초과하지만 지원 압출자를 주입하지는 않는다." - -#: src/libslic3r/PrintConfig.cpp:484 -msgid "" -"Set this to the vertical distance between your nozzle tip and (usually) the " -"X carriage rods. In other words, this is the height of the clearance " -"cylinder around your extruder, and it represents the maximum depth the " -"extruder can peek before colliding with other printed objects." -msgstr "" -"이것을 노즐 팁과 (일반적으로) X 캐리지 로드 사이의 수직 거리로 설정하십시오. " -"다시 말하면, 이것은 당신의 압출기 주위의 틈새 실린더의 높이이며, 그것은 다른 " -"인쇄된 물체와 충돌하기 전에 압출기가 엿볼 수 있는 최대 깊이를 나타낸다." - -#: src/libslic3r/PrintConfig.cpp:494 -msgid "Radius" -msgstr "반지름" - -#: src/libslic3r/PrintConfig.cpp:495 -msgid "" -"Set this to the clearance radius around your extruder. If the extruder is " -"not centered, choose the largest value for safety. This setting is used to " -"check for collisions and to display the graphical preview in the plater." -msgstr "" -"이것을 당신의 압출기 주변의 간극 반경으로 설정하시오. 압출부가 중앙에 있지 않" -"으면 안전을 위해 가장 큰 값을 선택하십시오. 이 설정은 충돌 여부를 확인하고 플" -"래터에 그래픽 미리 보기를 표시하기 위해 사용된다." - -#: src/libslic3r/PrintConfig.cpp:505 -msgid "Extruder Color" -msgstr "익스트루더 컬러" - -#: src/libslic3r/PrintConfig.cpp:506 src/libslic3r/PrintConfig.cpp:566 -msgid "This is only used in the Slic3r interface as a visual help." -msgstr "이것은 시각적 도움말로 Slic3r 인터페이스에서만 사용된다." - -#: src/libslic3r/PrintConfig.cpp:512 -msgid "Extruder offset" -msgstr "익스트루더 오프셋" - -#: src/libslic3r/PrintConfig.cpp:513 -msgid "" -"If your firmware doesn't handle the extruder displacement you need the G-" -"code to take it into account. This option lets you specify the displacement " -"of each extruder with respect to the first one. It expects positive " -"coordinates (they will be subtracted from the XY coordinate)." -msgstr "" -"펌웨어가 압출기 위치 변경을 처리하지 못하면 G 코드를 고려해야합니다. 이 옵션" -"을 사용하면 첫 번째 것에 대한 각 압출기의 변위를 지정할 수 있습니다. 양의 좌" -"표가 필요합니다 (XY 좌표에서 뺍니다)." - -#: src/libslic3r/PrintConfig.cpp:522 -msgid "Extrusion axis" -msgstr "압출 축" - -#: src/libslic3r/PrintConfig.cpp:523 -msgid "" -"Use this option to set the axis letter associated to your printer's extruder " -"(usually E but some printers use A)." -msgstr "" -"이 옵션을 사용하여 프린터의 압출기에 연결된 축 문자를 설정합니다 (보통 E이지" -"만 일부 프린터는 A를 사용합니다)." - -#: src/libslic3r/PrintConfig.cpp:528 -msgid "Extrusion multiplier" -msgstr "압출 승수" - -#: src/libslic3r/PrintConfig.cpp:529 -msgid "" -"This factor changes the amount of flow proportionally. You may need to tweak " -"this setting to get nice surface finish and correct single wall widths. " -"Usual values are between 0.9 and 1.1. If you think you need to change this " -"more, check filament diameter and your firmware E steps." -msgstr "" -"이 요소는 비례하여 유량의 양을 변경합니다. 멋진 서페이스 마무리와 단일 벽 너" -"비를 얻기 위해이 설정을 조정해야 할 수도 있습니다. 일반적인 값은 0.9와 1.1 사" -"이입니다. 이 값을 더 변경해야한다고 판단되면 필라멘트 직경과 펌웨어 E 단계를 " -"확인하십시오." - -#: src/libslic3r/PrintConfig.cpp:537 -msgid "Default extrusion width" -msgstr "기본 압출 폭" - -#: src/libslic3r/PrintConfig.cpp:539 -msgid "" -"Set this to a non-zero value to allow a manual extrusion width. If left to " -"zero, Slic3r derives extrusion widths from the nozzle diameter (see the " -"tooltips for perimeter extrusion width, infill extrusion width etc). If " -"expressed as percentage (for example: 230%), it will be computed over layer " -"height." -msgstr "" -"수동 압출 폭을 허용하려면이 값을 0이 아닌 값으로 설정하십시오. 0으로 남겨두" -"면 Slic3r은 노즐 직경에서 압출 폭을 도출합니다 (주변 압출 폭, 성형 압출 폭 등" -"의 툴팁 참조). 백분율로 표시되는 경우 (예 : 230 %) 레이어 높이를 기준으로 계" -"산됩니다." - -#: src/libslic3r/PrintConfig.cpp:548 -msgid "Keep fan always on" -msgstr "항상 팬 켜기" - -#: src/libslic3r/PrintConfig.cpp:549 -msgid "" -"If this is enabled, fan will never be disabled and will be kept running at " -"least at its minimum speed. Useful for PLA, harmful for ABS." -msgstr "" -"이 기능을 사용하면 팬이 비활성화되지 않으며 최소한 최소 속도로 계속 회전합니" -"다. PLA에 유용하며 ABS에 해롭다." - -#: src/libslic3r/PrintConfig.cpp:554 -msgid "Enable fan if layer print time is below" -msgstr "레이어 인쇄 시간이 미만인 경우 팬 활성화" - -#: src/libslic3r/PrintConfig.cpp:555 -msgid "" -"If layer print time is estimated below this number of seconds, fan will be " -"enabled and its speed will be calculated by interpolating the minimum and " -"maximum speeds." -msgstr "" -"레이어 인쇄 시간이이 초 미만으로 예상되는 경우 팬이 활성화되고 속도는 최소 " -"및 최대 속도를 보간하여 계산됩니다." - -#: src/libslic3r/PrintConfig.cpp:557 src/libslic3r/PrintConfig.cpp:1687 -msgid "approximate seconds" -msgstr "근사치 초" - -#: src/libslic3r/PrintConfig.cpp:565 -msgid "Color" -msgstr "색상" - -#: src/libslic3r/PrintConfig.cpp:571 -msgid "Filament notes" -msgstr "필라멘트 메모" - -#: src/libslic3r/PrintConfig.cpp:572 -msgid "You can put your notes regarding the filament here." -msgstr "여기에 필라멘트에 관한 메모를 넣을 수 있다." - -#: src/libslic3r/PrintConfig.cpp:580 src/libslic3r/PrintConfig.cpp:1231 -msgid "Max volumetric speed" -msgstr "최대 체적 속도" - -#: src/libslic3r/PrintConfig.cpp:581 -msgid "" -"Maximum volumetric speed allowed for this filament. Limits the maximum " -"volumetric speed of a print to the minimum of print and filament volumetric " -"speed. Set to zero for no limit." -msgstr "" -"이 필라멘트에 허용되는 최대 체적 속도. 인쇄물의 최대 체적 속도를 인쇄 및 필라" -"멘트 체적 속도 최소로 제한한다. 제한 없음에 대해 0으로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:590 -msgid "Loading speed" -msgstr "로딩 속도" - -#: src/libslic3r/PrintConfig.cpp:591 -msgid "Speed used for loading the filament on the wipe tower." -msgstr "와이퍼 탑(wipe)에 필라멘트를 장착하는 데 사용되는 속도. " - -#: src/libslic3r/PrintConfig.cpp:598 -msgid "Loading speed at the start" -msgstr "시작시 로딩 속도" - -#: src/libslic3r/PrintConfig.cpp:599 -msgid "Speed used at the very beginning of loading phase." -msgstr "로딩 단계의 시작에 사용 되는 속도." - -#: src/libslic3r/PrintConfig.cpp:606 -msgid "Unloading speed" -msgstr "언로딩 스피드" - -#: src/libslic3r/PrintConfig.cpp:607 -msgid "" -"Speed used for unloading the filament on the wipe tower (does not affect " -"initial part of unloading just after ramming)." -msgstr "" -"와이퍼 타워에서 필라멘트를 언로드하는 데 사용되는 속도(램핑 후 바로 언로딩의 " -"초기 부분에는 영향을 주지 않음)." - -#: src/libslic3r/PrintConfig.cpp:615 -msgid "Unloading speed at the start" -msgstr "시작 시 언로드 속도" - -#: src/libslic3r/PrintConfig.cpp:616 -msgid "" -"Speed used for unloading the tip of the filament immediately after ramming." -msgstr "속도는 램 밍 직후 필 라 멘 트의 팁을 언로딩 하는 데 사용 됩니다." - -#: src/libslic3r/PrintConfig.cpp:623 -msgid "Delay after unloading" -msgstr "언로드 후 딜레이" - -#: src/libslic3r/PrintConfig.cpp:624 -msgid "" -"Time to wait after the filament is unloaded. May help to get reliable " -"toolchanges with flexible materials that may need more time to shrink to " -"original dimensions." -msgstr "" -"필라멘트를 내린 후 기다리는 시간. 원래 치수로 축소하는 데, 더 많은 시간이 필" -"요할 수 있는 유연한 재료로 신뢰할 수있는 공구 교환을 얻을 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:633 -msgid "Number of cooling moves" -msgstr "쿨링 이동 숫자" - -#: src/libslic3r/PrintConfig.cpp:634 -msgid "" -"Filament is cooled by being moved back and forth in the cooling tubes. " -"Specify desired number of these moves." -msgstr "" -"필라멘트는 쿨링 튜브에서 앞뒤로 이동 하여 냉각 됩니다. 이러한 이동의 원하는 " -"값을 지정 합니다." - -#: src/libslic3r/PrintConfig.cpp:642 -msgid "Speed of the first cooling move" -msgstr "첫 번째 냉각 이동 속도" - -#: src/libslic3r/PrintConfig.cpp:643 -msgid "Cooling moves are gradually accelerating beginning at this speed." -msgstr "냉각 속도가 서서히 빨라지고 있습니다." - -#: src/libslic3r/PrintConfig.cpp:650 -msgid "Minimal purge on wipe tower" -msgstr "와이프(wipe) 탑의 최소 퍼지" - -#: src/libslic3r/PrintConfig.cpp:651 -msgid "" -"After a tool change, the exact position of the newly loaded filament inside " -"the nozzle may not be known, and the filament pressure is likely not yet " -"stable. Before purging the print head into an infill or a sacrificial " -"object, Slic3r will always prime this amount of material into the wipe tower " -"to produce successive infill or sacrificial object extrusions reliably." -msgstr "" -"공구가 변경 된 후 노즐 내부에 새로 로드 된 필라멘트의 정확한 위치를 알 수 없" -"으며, 필라멘트 압력이 아직 안정적이지 않을 수 있습니다. 프린트 헤드를 인필 또" -"는 희생(sacrificial) 객체로 소거 하기 전에 Slic3r는 항상이 양의 재료를 와이" -"프 탑에 넣어 연속적인 채우기 또는 희생(sacrificial) 객체 돌출을 안정적으로 생" -"성 합니다." - -#: src/libslic3r/PrintConfig.cpp:655 -msgid "mm³" -msgstr "mm ³" - -#: src/libslic3r/PrintConfig.cpp:661 -msgid "Speed of the last cooling move" -msgstr "마지막 냉각 이동 속도" - -#: src/libslic3r/PrintConfig.cpp:662 -msgid "Cooling moves are gradually accelerating towards this speed." -msgstr "냉각은 이 속도쪽으로 점차 가속화되고 있습니다. " - -#: src/libslic3r/PrintConfig.cpp:669 -msgid "Filament load time" -msgstr "필라멘트 로드 시간" - -#: src/libslic3r/PrintConfig.cpp:670 -msgid "" -"Time for the printer firmware (or the Multi Material Unit 2.0) to load a new " -"filament during a tool change (when executing the T code). This time is " -"added to the total print time by the G-code time estimator." -msgstr "" -"프린터 펌웨어 (또는 MMU 2.0)가 공구를 변경하는 동안(T 코드를 실행할 때) 새필" -"라멘트를 로드하는 시간입니다. 이 시간은 G 코드 시간 추정기에 의해 총 인쇄 시" -"간에 추가 됩니다." - -#: src/libslic3r/PrintConfig.cpp:677 -msgid "Ramming parameters" -msgstr "래밍 파라미터" - -#: src/libslic3r/PrintConfig.cpp:678 -msgid "" -"This string is edited by RammingDialog and contains ramming specific " -"parameters." -msgstr "" -"이 문자열은 RammingDialog에 의해 편집되고 래밍 특정 매개 변수를 포함합니다." - -#: src/libslic3r/PrintConfig.cpp:684 -msgid "Filament unload time" -msgstr "필라멘트 언로드 시간" - -#: src/libslic3r/PrintConfig.cpp:685 -msgid "" -"Time for the printer firmware (or the Multi Material Unit 2.0) to unload a " -"filament during a tool change (when executing the T code). This time is " -"added to the total print time by the G-code time estimator." -msgstr "" -"프린터 펌웨어 (또는 MMU2.0)가 공구 교환 중에 필라멘트를 언로드하기 위한 시간" -"입니다 (T 코드를 실행할 때). 이 시간은 G 코드 시간추정기에 의해 총 인쇄 시간" -"에 추가 됩니다." - -#: src/libslic3r/PrintConfig.cpp:693 -msgid "" -"Enter your filament diameter here. Good precision is required, so use a " -"caliper and do multiple measurements along the filament, then compute the " -"average." -msgstr "" -"여기에 필라멘트 직경을 입력하십시오. 정밀도가 필요하므로 캘리퍼를 사용하여 필" -"라멘트를 따라 여러 번 측정 한 다음 평균을 계산하십시오." - -#: src/libslic3r/PrintConfig.cpp:700 -msgid "Density" -msgstr "밀도" - -#: src/libslic3r/PrintConfig.cpp:701 -msgid "" -"Enter your filament density here. This is only for statistical information. " -"A decent way is to weigh a known length of filament and compute the ratio of " -"the length to volume. Better is to calculate the volume directly through " -"displacement." -msgstr "" -"여기서 필라멘트 밀도를 입력하십시오. 이것은 통계 정보 용입니다. 괜찮은 방법" -"은 알려진 길이의 필라멘트의 무게를 측정하고 길이와 볼륨의 비율을 계산하는 것" -"입니다. 변위를 통해 직접적으로 부피를 계산하는 것이 더 좋습니다." - -#: src/libslic3r/PrintConfig.cpp:704 -msgid "g/cm³" -msgstr "g/cm³" - -#: src/libslic3r/PrintConfig.cpp:709 -msgid "Filament type" -msgstr "필라멘트 타입" - -#: src/libslic3r/PrintConfig.cpp:710 -msgid "The filament material type for use in custom G-codes." -msgstr "사용자 지정 G 코드에 사용할 필라멘트재료 유형입니다." - -#: src/libslic3r/PrintConfig.cpp:736 -msgid "Soluble material" -msgstr "수용성 재료" - -#: src/libslic3r/PrintConfig.cpp:737 -msgid "Soluble material is most likely used for a soluble support." -msgstr "수용성 재료눈 물에 녹는 서포트에 가장 많이 사용된다." - -#: src/libslic3r/PrintConfig.cpp:743 -msgid "" -"Enter your filament cost per kg here. This is only for statistical " -"information." -msgstr "필라멘트(kg당) 비용을 여기에 입력하십시오. 통계를 내기 위해서 입니다." - -#: src/libslic3r/PrintConfig.cpp:744 -msgid "money/kg" -msgstr "원(\\)/kg" - -#: src/libslic3r/PrintConfig.cpp:753 -msgid "Fill angle" -msgstr "채움 각도" - -#: src/libslic3r/PrintConfig.cpp:755 -msgid "" -"Default base angle for infill orientation. Cross-hatching will be applied to " -"this. Bridges will be infilled using the best direction Slic3r can detect, " -"so this setting does not affect them." -msgstr "" -"본 오리엔테이션 방향의 기본 각도입니다. 해칭이 적용될 것입니다. Slic3r이 감" -"지 할 수있는 최상의 방향을 사용하여 브릿징이 채워지므로이 설정은 영향을 미치" -"지 않습니다." - -#: src/libslic3r/PrintConfig.cpp:767 -msgid "Fill density" -msgstr "채우기(fill) 밀도" - -#: src/libslic3r/PrintConfig.cpp:769 -msgid "Density of internal infill, expressed in the range 0% - 100%." -msgstr "0 % - 100 % 범위로 표현 된 내부 채움(infill)의 밀도." - -#: src/libslic3r/PrintConfig.cpp:804 -msgid "Fill pattern" -msgstr "채우기(fill) 패턴" - -#: src/libslic3r/PrintConfig.cpp:806 -msgid "Fill pattern for general low-density infill." -msgstr "일반 낮은 밀도 채움의 패턴." - -#: src/libslic3r/PrintConfig.cpp:822 -msgid "Grid" -msgstr "그리드(Grid)" - -#: src/libslic3r/PrintConfig.cpp:823 -msgid "Triangles" -msgstr "삼각형(Triangles)" - -#: src/libslic3r/PrintConfig.cpp:824 -msgid "Stars" -msgstr "별(Stars)" - -#: src/libslic3r/PrintConfig.cpp:825 -msgid "Cubic" -msgstr "큐빅" - -#: src/libslic3r/PrintConfig.cpp:826 -msgid "Line" -msgstr "선(Line)" - -#: src/libslic3r/PrintConfig.cpp:828 src/libslic3r/PrintConfig.cpp:1974 -msgid "Honeycomb" -msgstr "벌집" - -#: src/libslic3r/PrintConfig.cpp:829 -msgid "3D Honeycomb" -msgstr "3D 벌집" - -#: src/libslic3r/PrintConfig.cpp:830 -msgid "Gyroid" -msgstr "자이로이드(Gyroid)" - -#: src/libslic3r/PrintConfig.cpp:837 src/libslic3r/PrintConfig.cpp:846 -#: src/libslic3r/PrintConfig.cpp:854 src/libslic3r/PrintConfig.cpp:887 -msgid "First layer" -msgstr "첫 레이어" - -#: src/libslic3r/PrintConfig.cpp:838 -msgid "" -"This is the acceleration your printer will use for first layer. Set zero to " -"disable acceleration control for first layer." -msgstr "" -"이것은 프린터가 첫 번째 레이어에 사용할 가속도입니다. 0을 설정하면 첫 번째 레" -"이어에 대한 가속 제어가 사용되지 않습니다." - -#: src/libslic3r/PrintConfig.cpp:847 -msgid "" -"Heated build plate temperature for the first layer. Set this to zero to " -"disable bed temperature control commands in the output." -msgstr "" -"첫 번째 레이어에 대한 빌드 플레이트 온도를 가열. 이 값을 0으로 설정하면 출력" -"에서 ​​베드 온도 제어 명령을 비활성화합니다." - -#: src/libslic3r/PrintConfig.cpp:856 -msgid "" -"Set this to a non-zero value to set a manual extrusion width for first " -"layer. You can use this to force fatter extrudates for better adhesion. If " -"expressed as percentage (for example 120%) it will be computed over first " -"layer height. If set to zero, it will use the default extrusion width." -msgstr "" -"첫 번째 레이어의 수동 압출 폭을 설정하려면이 값을 0이 아닌 값으로 설정합니" -"다. 이 방법을 사용하면보다 우수한 접착력을 위해 더 두꺼운 압출 성형물을 만들 " -"수 있습니다. 백분율 (예 : 120 %)로 표현하면 첫 번째 레이어 높이를 기준으로 계" -"산됩니다. 0으로 설정하면 기본 압출 폭이 사용됩니다." - -#: src/libslic3r/PrintConfig.cpp:868 -msgid "" -"When printing with very low layer heights, you might still want to print a " -"thicker bottom layer to improve adhesion and tolerance for non perfect build " -"plates. This can be expressed as an absolute value or as a percentage (for " -"example: 150%) over the default layer height." -msgstr "" -"매우 낮은 층의 높이로 인쇄할 때, 당신은 여전히 완벽하지 않은 빌드 플레이트의 " -"부착력과 허용오차를 개선하기 위해 더 두꺼운 바닥 층을 인쇄하기를 원할 수 있" -"다. 이것은 절대값 또는 기본 계층 높이에 대한 백분율(예: 150%)로 표시할 수 있" -"다." - -#: src/libslic3r/PrintConfig.cpp:877 -msgid "First layer speed" -msgstr "첫 레이어 속도" - -#: src/libslic3r/PrintConfig.cpp:878 -msgid "" -"If expressed as absolute value in mm/s, this speed will be applied to all " -"the print moves of the first layer, regardless of their type. If expressed " -"as a percentage (for example: 40%) it will scale the default speeds." -msgstr "" -"절대값(mm/s)으로 표현되는 경우, 이 속도는 유형에 관계없이 첫 번째 층의 모든 " -"인쇄 이동에 적용된다. 백분율(예: 40%)로 표현되는 경우 기본 속도를 스케일링한" -"다." - -#: src/libslic3r/PrintConfig.cpp:888 -msgid "" -"Extruder temperature for first layer. If you want to control temperature " -"manually during print, set this to zero to disable temperature control " -"commands in the output file." -msgstr "" -"첫 번째 층의 외부 온도. 인쇄 중에 온도를 수동으로 제어하려면 출력 파일에서 온" -"도 제어 명령을 사용하지 않으려면 이 값을 0으로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:897 -msgid "" -"Speed for filling small gaps using short zigzag moves. Keep this reasonably " -"low to avoid too much shaking and resonance issues. Set zero to disable gaps " -"filling." -msgstr "" -"짧은 지그재그로 작은 틈을 메우기 위한 속도. 너무 많은 진동과 공진 문제를 피하" -"기 위해 이것을 합리적으로 낮게 유지한다. 간격 채우기를 사용하지 않으려면 0을 " -"설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:905 -msgid "Verbose G-code" -msgstr "세부 G-코드" - -#: src/libslic3r/PrintConfig.cpp:906 -msgid "" -"Enable this to get a commented G-code file, with each line explained by a " -"descriptive text. If you print from SD card, the additional weight of the " -"file could make your firmware slow down." -msgstr "" -"설명 텍스트로 설명되는 각 행과 함께 코멘트된 G-code 파일을 가져오려면 이 옵션" -"을 선택하십시오. 만일 당신이 SD카드로 인쇄한다면, 파일의 추가 무게로 인해 펌" -"웨어의 속도가 느려질 수 있다." - -#: src/libslic3r/PrintConfig.cpp:913 -msgid "G-code flavor" -msgstr "G-code 형식" - -#: src/libslic3r/PrintConfig.cpp:914 -msgid "" -"Some G/M-code commands, including temperature control and others, are not " -"universal. Set this option to your printer's firmware to get a compatible " -"output. The \"No extrusion\" flavor prevents Slic3r from exporting any " -"extrusion value at all." -msgstr "" -"온도 조절 등을 포함한 일부 G/M-코드 명령은 보편적이지 않습니다. 호환되는 출력" -"을 얻으려면 보드에 적제된 프린터의 펌웨어로 설정하십시오. \"압출 없음\" 형식" -"은 Slic3r가 어떠한 압출 값도 출력하지 못하게 합니다." - -#: src/libslic3r/PrintConfig.cpp:937 -msgid "No extrusion" -msgstr "압출 없음" - -#: src/libslic3r/PrintConfig.cpp:942 -msgid "Label objects" -msgstr "레이블 개체" - -#: src/libslic3r/PrintConfig.cpp:943 -msgid "" -"Enable this to add comments into the G-Code labeling print moves with what " -"object they belong to, which is useful for the Octoprint CancelObject " -"plugin. This settings is NOT compatible with Single Extruder Multi Material " -"setup and Wipe into Object / Wipe into Infill." -msgstr "" -"이 기능을 사용 하 여 G 코드 레이블 인쇄에 주석이 속해 있는 객체와 함께 이동 " -"하 여 주석을 추가할 수 있으며,이는 옥 토 프린트 캔 커 작업 플러그인에 유용 합" -"니다. 이 설정은 단일 압출 기 다중 재료 설정과 호환 되지 않으며 객체를 닦아 " -"내 고 채우기로 닦습니다." - -#: src/libslic3r/PrintConfig.cpp:950 -msgid "High extruder current on filament swap" -msgstr "필라멘트스왑에 높은 압출 기 전류" - -#: src/libslic3r/PrintConfig.cpp:951 -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:959 -msgid "" -"This is the acceleration your printer will use for infill. Set zero to " -"disable acceleration control for infill." -msgstr "" -"이것은 당신 프린터의 채움 가속력이다. 주입에 대한 가속 제어를 비활성화하려면 " -"0을 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:967 -msgid "Combine infill every" -msgstr "다음 시간마다 결합" - -#: src/libslic3r/PrintConfig.cpp:969 -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:972 -msgid "Combine infill every n layers" -msgstr "모든 n개 층을 채우기 위해 결합" - -#: src/libslic3r/PrintConfig.cpp:978 -msgid "Infill extruder" -msgstr "채움(Infill) 익스트루더" - -#: src/libslic3r/PrintConfig.cpp:980 -msgid "The extruder to use when printing infill." -msgstr "채움으로 사용할 익스트루더." - -#: src/libslic3r/PrintConfig.cpp:988 -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 " -"nozzle diameter will be used. You may want to use fatter extrudates to speed " -"up the infill and make your parts stronger. If expressed as percentage (for " -"example 90%) it will be computed over layer height." -msgstr "" -"채움에 수동 압출 폭을 설정하려면이 값을 0이 아닌 값으로 설정합니다. 0으로 설" -"정하면 설정된 경우 기본 압출 폭이 사용되고 그렇지 않으면 1.125 x 노즐 직경이 " -"사용됩니다. 채움 속도를 높이고 부품을 더 강하게 만들려면보다 큰 압출 성형물" -"을 사용하는 것이 좋습니다. 백분율 (예 : 90 %)로 표현하면 레이어 높이를 기준으" -"로 계산됩니다." - -#: src/libslic3r/PrintConfig.cpp:997 -msgid "Infill before perimeters" -msgstr "둘레보다 앞쪽에 채움" - -#: src/libslic3r/PrintConfig.cpp:998 -msgid "" -"This option will switch the print order of perimeters and infill, making the " -"latter first." -msgstr "이 옵션은 외부출력과 채움 인쇄 순서를 바꾸어, 후자를 먼저 만든다." - -#: src/libslic3r/PrintConfig.cpp:1003 -msgid "Only infill where needed" -msgstr "필요한 경우 채음" - -#: src/libslic3r/PrintConfig.cpp:1005 -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 "" -"이 옵션은 천장 지원에 실제로 필요한 영역에만 적용된다(내부 서포트 재료 역할" -"을 할 것이다). 활성화된 경우 관련된 여러 번의 점검으로 인해 G-code 생성 속도" -"를 늦춰라." - -#: src/libslic3r/PrintConfig.cpp:1012 -msgid "Infill/perimeters overlap" -msgstr "채움/둘레 겹침(perimeters overlap)" - -#: src/libslic3r/PrintConfig.cpp:1014 -msgid "" -"This setting applies an additional overlap between infill and perimeters for " -"better bonding. Theoretically this shouldn't be needed, but backlash might " -"cause gaps. If expressed as percentage (example: 15%) it is calculated over " -"perimeter extrusion width." -msgstr "" -"이 설정은 더 나은 본딩을 위해 충전 및 둘레 사이에 추가 겹침을 적용합니다. 이" -"론적으로 이것은 필요하지 않아야하지만 백래시가 갭을 유발할 수 있습니다. 백분" -"율 (예 : 15 %)로 표시되는 경우 경계 압출 폭을 기준으로 계산됩니다." - -#: src/libslic3r/PrintConfig.cpp:1025 -msgid "Speed for printing the internal fill. Set to zero for auto." -msgstr "내부 채우기 인쇄 속도. 자동으로 0으로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:1033 -msgid "Inherits profile" -msgstr "프로필 상속" - -#: src/libslic3r/PrintConfig.cpp:1034 -msgid "Name of the profile, from which this profile inherits." -msgstr "이 프로파일이 상속되는 프로파일의 이름." - -#: src/libslic3r/PrintConfig.cpp:1047 -msgid "Interface shells" -msgstr "인터페이스 셸(shells)" - -#: src/libslic3r/PrintConfig.cpp:1048 -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:1057 -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 " -"use placeholder variables for all Slic3r settings as well as [layer_num] and " -"[layer_z]." -msgstr "" -"이 사용자 정의 코드는 Z 이동 직후와 압출부가 첫 번째 레이어 포인트로 이동하" -"기 전에 모든 레이어 변경 시 삽입된다. 모든 Slic3r 설정뿐만 아니라 " -"[layer_num] 및 [layer_z]에 자리 표시자 변수를 사용할 수 있다는 점에 유의하십" -"시오." - -#: src/libslic3r/PrintConfig.cpp:1068 -msgid "Supports remaining times" -msgstr "남은 시간 지원" - -#: src/libslic3r/PrintConfig.cpp:1069 -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. " -"As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 " -"firmware supports M73 Qxx Sxx for the silent mode." -msgstr "" -"G 코드에 1 분 간격으로 M73 P [퍼센트 인쇄] R[remaining time in minutes]을 방" -"출하여 펌웨어가 정확한 잔여 시간을 표시 하도록 합니다. 현재만 Prusa i3 MK3 펌" -"웨어는 M73를 인식 하 고 있습니다. 또한 i3 MK3 펌웨어는 자동 모드에서 M73 Qxx " -"Sxx를 지원 합니다." - -#: src/libslic3r/PrintConfig.cpp:1077 -msgid "Supports stealth mode" -msgstr "자동 모드 지원" - -#: src/libslic3r/PrintConfig.cpp:1078 -msgid "The firmware supports stealth mode" -msgstr "펌웨어는 스텔스 모드를 지원 합니다" - -#: src/libslic3r/PrintConfig.cpp:1102 -msgid "Maximum feedrate X" -msgstr "최대 이송 속도 X" - -#: src/libslic3r/PrintConfig.cpp:1103 -msgid "Maximum feedrate Y" -msgstr "최대 이송 속도 Y" - -#: src/libslic3r/PrintConfig.cpp:1104 -msgid "Maximum feedrate Z" -msgstr "최대 이송 속도 Z" - -#: src/libslic3r/PrintConfig.cpp:1105 -msgid "Maximum feedrate E" -msgstr "최대 이송 속도 E" - -#: src/libslic3r/PrintConfig.cpp:1108 -msgid "Maximum feedrate of the X axis" -msgstr "X 축의 최대 이송 속도" - -#: src/libslic3r/PrintConfig.cpp:1109 -msgid "Maximum feedrate of the Y axis" -msgstr "Y 축의 최대 이송 속도" - -#: src/libslic3r/PrintConfig.cpp:1110 -msgid "Maximum feedrate of the Z axis" -msgstr "Z 축의 최대 이송 속도" - -#: src/libslic3r/PrintConfig.cpp:1111 -msgid "Maximum feedrate of the E axis" -msgstr "E 축의 최대 이송 속도" - -#: src/libslic3r/PrintConfig.cpp:1120 -msgid "Maximum acceleration X" -msgstr "최대 가속도 X" - -#: src/libslic3r/PrintConfig.cpp:1121 -msgid "Maximum acceleration Y" -msgstr "최대 가속도 Y" - -#: src/libslic3r/PrintConfig.cpp:1122 -msgid "Maximum acceleration Z" -msgstr "최대 가속 Z" - -#: src/libslic3r/PrintConfig.cpp:1123 -msgid "Maximum acceleration E" -msgstr "최대 가속 E" - -#: src/libslic3r/PrintConfig.cpp:1126 -msgid "Maximum acceleration of the X axis" -msgstr "X 축의 최대 가속도" - -#: src/libslic3r/PrintConfig.cpp:1127 -msgid "Maximum acceleration of the Y axis" -msgstr "Y 축의 최대 가속도" - -#: src/libslic3r/PrintConfig.cpp:1128 -msgid "Maximum acceleration of the Z axis" -msgstr "Z 축의 최대 가속도" - -#: src/libslic3r/PrintConfig.cpp:1129 -msgid "Maximum acceleration of the E axis" -msgstr "E 축의 최대 가속도" - -#: src/libslic3r/PrintConfig.cpp:1138 -msgid "Maximum jerk X" -msgstr "최대 저크(jerk) X" - -#: src/libslic3r/PrintConfig.cpp:1139 -msgid "Maximum jerk Y" -msgstr "최대 저크(jerk) Y" - -#: src/libslic3r/PrintConfig.cpp:1140 -msgid "Maximum jerk Z" -msgstr "최대 저크(jerk) Z" - -#: src/libslic3r/PrintConfig.cpp:1141 -msgid "Maximum jerk E" -msgstr "최대 저크(jerk) E" - -#: src/libslic3r/PrintConfig.cpp:1144 -msgid "Maximum jerk of the X axis" -msgstr "X축 최대 저크(jerk)" - -#: src/libslic3r/PrintConfig.cpp:1145 -msgid "Maximum jerk of the Y axis" -msgstr "Y축 최대 저크는(jerk)" - -#: src/libslic3r/PrintConfig.cpp:1146 -msgid "Maximum jerk of the Z axis" -msgstr "Z축 최대 저크(jerk)" - -#: src/libslic3r/PrintConfig.cpp:1147 -msgid "Maximum jerk of the E axis" -msgstr "E축 최대 저크(jerk)" - -#: src/libslic3r/PrintConfig.cpp:1158 -msgid "Minimum feedrate when extruding" -msgstr "압출시 최소 공급 속도" - -#: src/libslic3r/PrintConfig.cpp:1160 -msgid "Minimum feedrate when extruding (M205 S)" -msgstr "압출 시 최소 이송 속도 (M205 S)" - -#: src/libslic3r/PrintConfig.cpp:1169 -msgid "Minimum travel feedrate" -msgstr "최소 이송 속도" - -#: src/libslic3r/PrintConfig.cpp:1171 -msgid "Minimum travel feedrate (M205 T)" -msgstr "최소 이동 이송 속도 (M205 T)" - -#: src/libslic3r/PrintConfig.cpp:1180 -msgid "Maximum acceleration when extruding" -msgstr "압출시 최대 가속도" - -#: src/libslic3r/PrintConfig.cpp:1182 -msgid "Maximum acceleration when extruding (M204 S)" -msgstr "압출 시 최대 가속도 (M204 S)" - -#: src/libslic3r/PrintConfig.cpp:1191 -msgid "Maximum acceleration when retracting" -msgstr "리트렉션 최대 가속도" - -#: src/libslic3r/PrintConfig.cpp:1193 -msgid "Maximum acceleration when retracting (M204 T)" -msgstr "후퇴 시 최대 가속도 (M204 T)" - -#: src/libslic3r/PrintConfig.cpp:1201 src/libslic3r/PrintConfig.cpp:1210 -msgid "Max" -msgstr "최대" - -#: src/libslic3r/PrintConfig.cpp:1202 -msgid "This setting represents the maximum speed of your fan." -msgstr "이 설정은 팬의 최대 속도를 나타냅니다." - -#: src/libslic3r/PrintConfig.cpp:1211 -#, c-format -msgid "" -"This is the highest printable layer height for this extruder, used to cap " -"the variable layer height and support layer height. Maximum recommended " -"layer height is 75% of the extrusion width to achieve reasonable inter-layer " -"adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." -msgstr "" -"이것은이 익스트루더의 가장 높은 인쇄 가능 층 높이이며, 가변 층 높이 및 지지" -"층 높이를 캡하는 데 사용됩니다. 합당한 층간 접착력을 얻기 위해 최대 권장 높이" -"는 압출 폭의 75% of 입니다. 0으로 설정하면 층 높이가 노즐 지름의 75% of로 제" -"한됩니다." - -#: src/libslic3r/PrintConfig.cpp:1221 -msgid "Max print speed" -msgstr "최대 프린트 속도" - -#: src/libslic3r/PrintConfig.cpp:1222 -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 "" -"다른 속도 설정을 0으로 설정할 경우, 지속적인 외부 압력을 유지하기 위해 최적" -"의 속도를 자동 계산한다. 이 실험 설정은 허용할 최대 인쇄 속도를 설정하는 데 " -"사용된다." - -#: src/libslic3r/PrintConfig.cpp:1232 -msgid "" -"This experimental setting is used to set the maximum volumetric speed your " -"extruder supports." -msgstr "" -"이 실험 설정은 압출기가 지원하는 최대 체적 속도를 설정하기 위해 사용된다." - -#: src/libslic3r/PrintConfig.cpp:1241 -msgid "Max volumetric slope positive" -msgstr "최대 체적 기울기 양" - -#: src/libslic3r/PrintConfig.cpp:1242 src/libslic3r/PrintConfig.cpp:1253 -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 " -"of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/" -"s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." -msgstr "" -"이 실험 설정은 돌출율의 변화 속도를 제한하는데 사용된다. 1.8mm3/s2 값은 " -"1.8mm3/s(0.45mm 압출 폭, 0.2mm 압출 높이, 공급 속도 20mm/s)에서 5.4mm3/s(공" -"급 속도 60mm/s)로 변경하는 데 최소 2초 이상 걸린다." - -#: src/libslic3r/PrintConfig.cpp:1246 src/libslic3r/PrintConfig.cpp:1257 -msgid "mm³/s²" -msgstr "mm³/s²" - -#: src/libslic3r/PrintConfig.cpp:1252 -msgid "Max volumetric slope negative" -msgstr "최대 체적 기울기 음수" - -#: src/libslic3r/PrintConfig.cpp:1264 src/libslic3r/PrintConfig.cpp:1273 -msgid "Min" -msgstr "최소" - -#: src/libslic3r/PrintConfig.cpp:1265 -msgid "This setting represents the minimum PWM your fan needs to work." -msgstr "이 설정은 최소 PWM팬이 활동하는데 필요한를 나타냅니다." - -#: src/libslic3r/PrintConfig.cpp:1274 -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 "" -"이것은 이 압출기에 대한 가장 낮은 인쇄 가능한 층 높이이고 가변 층 높이에 대" -"한 분해능을 제한한다. 대표적인 값은 0.05mm와 0.1mm이다." - -#: src/libslic3r/PrintConfig.cpp:1282 -msgid "Min print speed" -msgstr "최소 인쇄 속도" - -#: src/libslic3r/PrintConfig.cpp:1283 -msgid "Slic3r will not scale speed down below this speed." -msgstr "Slic3r는 이 속도 이하로 속도를 낮추지 않을 것이다." - -#: src/libslic3r/PrintConfig.cpp:1290 -msgid "Minimal filament extrusion length" -msgstr "최소 필라멘트 압출 길이" - -#: src/libslic3r/PrintConfig.cpp:1291 -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:1300 -msgid "Configuration notes" -msgstr "구성 노트" - -#: src/libslic3r/PrintConfig.cpp:1301 -msgid "" -"You can put here your personal notes. This text will be added to the G-code " -"header comments." -msgstr "" -"여기에 개인 노트를 넣을 수 있다. 이 텍스트는 G-code 헤더 코멘트에 추가될 것이" -"다." - -#: src/libslic3r/PrintConfig.cpp:1311 -msgid "" -"This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" -msgstr "이 지름은 엑스트루더 노즐의 직경이다(예: 0.5, 0.35 등)." - -#: src/libslic3r/PrintConfig.cpp:1316 -msgid "Host Type" -msgstr "호스트 유형" - -#: src/libslic3r/PrintConfig.cpp:1317 -msgid "" -"Slic3r can upload G-code files to a printer host. This field must contain " -"the kind of the host." -msgstr "" -"Slic3r는 프린터 호스트에 G 코드 파일을 업로드할 수 있습니다. 이 필드에는 호스" -"트의 종류가 포함 되어야 합니다." - -#: src/libslic3r/PrintConfig.cpp:1328 -msgid "Only retract when crossing perimeters" -msgstr "둘레를 횡단 할 때만 수축" - -#: src/libslic3r/PrintConfig.cpp:1329 -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:1336 -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:1343 -msgid "Output filename format" -msgstr "출력 파일이름 형식" - -#: src/libslic3r/PrintConfig.cpp:1344 -msgid "" -"You can use all configuration options as variables inside this template. For " -"example: [layer_height], [fill_density] etc. You can also use [timestamp], " -"[year], [month], [day], [hour], [minute], [second], [version], " -"[input_filename], [input_filename_base]." -msgstr "" -"모든 구성 옵션을이 템플릿 내의 변수로 사용할 수 있습니다. 예: " -"[layer_height], [fill_density] 등 또한 [타임 스탬프], [연도], [월], [일], [시" -"간], [input_filename], [input_filename_base]을 사용할 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:1353 -msgid "Detect bridging perimeters" -msgstr "브릿 징 경계선 감지" - -#: src/libslic3r/PrintConfig.cpp:1355 -msgid "" -"Experimental option to adjust flow for overhangs (bridge flow will be used), " -"to apply bridge speed to them and enable fan." -msgstr "" -"오버행에 대한 유량을 조정하는 실험 옵션 (브리지 흐름(flow)이 사용됨)에 브릿" -"지 속도를 적용하고 팬을 활성화합니다." - -#: src/libslic3r/PrintConfig.cpp:1361 -msgid "Filament parking position" -msgstr "필라멘트 멈춤 위치" - -#: src/libslic3r/PrintConfig.cpp:1362 -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:1370 -msgid "Extra loading distance" -msgstr "추가 로딩 거리" - -#: src/libslic3r/PrintConfig.cpp:1371 -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 " -"positive, it is loaded further, if negative, the loading move is shorter " -"than unloading." -msgstr "" -"0으로 설정하면로드 중에 필라멘트가 위치에서 이동 한 거리는 언로드 중에 다시 " -"이동 한 거리와 동일합니다. 양수이면 음수가 더 많이 로드되고 로드가 음수 인 경" -"우 언로드보다 짧습니다." - -#: src/libslic3r/PrintConfig.cpp:1379 src/libslic3r/PrintConfig.cpp:1397 -#: src/libslic3r/PrintConfig.cpp:1409 src/libslic3r/PrintConfig.cpp:1419 -msgid "Perimeters" -msgstr "둘레" - -#: src/libslic3r/PrintConfig.cpp:1380 -msgid "" -"This is the acceleration your printer will use for perimeters. A high value " -"like 9000 usually gives good results if your hardware is up to the job. Set " -"zero to disable acceleration control for perimeters." -msgstr "" -"프린터가 둘레로 사용할 가속도입니다. 9000과 같은 높은 값은 하드웨어가 제대로 " -"작동하면 좋은 결과를 제공합니다. 주변을 가속 제어하지 않으려면 0으로 설정하십" -"시오." - -#: src/libslic3r/PrintConfig.cpp:1388 -msgid "Perimeter extruder" -msgstr "주변 익스트루더" - -#: src/libslic3r/PrintConfig.cpp:1390 -msgid "" -"The extruder to use when printing perimeters and brim. First extruder is 1." -msgstr "" -"둘레와 가장자리를 인쇄 할 때 사용할 압출기입니다. 첫 번째 압출기는 1입니다." - -#: src/libslic3r/PrintConfig.cpp:1399 -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 " -"left zero, default extrusion width will be used if set, otherwise 1.125 x " -"nozzle diameter will be used. If expressed as percentage (for example 200%) " -"it will be computed over layer height." -msgstr "" -"이 값을 0이 아닌 값으로 설정하면 수동 압출 폭을 둘레로 설정할 수 있습니다. 보" -"다 정확한 서페이스를 얻으려면 더 얇은 압출 성형품을 사용하는 것이 좋습니다. 0" -"으로 설정하면 설정된 경우 기본 돌출 폭이 사용되고 그렇지 않으면 1.125 x 노즐 " -"직경이 사용됩니다. 백분율 (예 : 200 %)로 표현하면 레이어 높이를 기준으로 계산" -"됩니다." - -#: src/libslic3r/PrintConfig.cpp:1411 -msgid "" -"Speed for perimeters (contours, aka vertical shells). Set to zero for auto." -msgstr "둘레의 속도 (등고선, 일명 세로 셸). 자동으로 0으로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:1421 -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 " -"surfaces which benefit from a higher number of perimeters if the Extra " -"Perimeters option is enabled." -msgstr "" -"이 옵션은 각 레이어에 대해 생성 할 경계 수를 설정합니다. 추가 경계선 옵션을 " -"사용하면 더 큰 주변 수를 사용하는 경사면을 감지 할 때 Slic3r이이 수를 자동으" -"로 증가시킬 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:1425 -msgid "(minimum)" -msgstr "(최소)" - -#: src/libslic3r/PrintConfig.cpp:1433 -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. " -"Scripts will be passed the absolute path to the G-code file as the first " -"argument, and they can access the Slic3r config settings by reading " -"environment variables." -msgstr "" -"사용자 정의 스크립트를 통해 출력 G 코드를 처리하려면 여기에 절대 경로를 나열" -"하십시오. 여러 개의 스크립트를 세미콜론으로 구분하십시오. 스크립트는 G 코드 " -"파일의 절대 경로를 첫 번째 인수로 전달되며 환경 변수를 읽음으로써 Slic3r 구" -"성 설정에 액세스 할 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:1445 -msgid "Printer type" -msgstr "프린터 타입" - -#: src/libslic3r/PrintConfig.cpp:1446 -msgid "Type of the printer." -msgstr "프린터 유형." - -#: src/libslic3r/PrintConfig.cpp:1451 -msgid "Printer notes" -msgstr "프린터 노트" - -#: src/libslic3r/PrintConfig.cpp:1452 -msgid "You can put your notes regarding the printer here." -msgstr "프린터 관련 메모를 여기에 넣을 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:1460 -msgid "Printer vendor" -msgstr "제조 회사" - -#: src/libslic3r/PrintConfig.cpp:1461 -msgid "Name of the printer vendor." -msgstr "프린터 공급 업체의 이름입니다." - -#: src/libslic3r/PrintConfig.cpp:1466 -msgid "Printer variant" -msgstr "프린터 변형" - -#: src/libslic3r/PrintConfig.cpp:1467 -msgid "" -"Name of the printer variant. For example, the printer variants may be " -"differentiated by a nozzle diameter." -msgstr "" -"프린터 변종 이름입니다. 예를 들어, 프린터 변형은 노즐 지름으로 구별 될 수 있" -"습니다." - -#: src/libslic3r/PrintConfig.cpp:1480 -msgid "Raft layers" -msgstr "라프트(Raft) 레이어" - -#: src/libslic3r/PrintConfig.cpp:1482 -msgid "" -"The object will be raised by this number of layers, and support material " -"will be generated under it." -msgstr "" -"물체는 이 개수의 층에 의해 상승되며, 그 아래에서 서포트 재료가 생성될 것이다." - -#: src/libslic3r/PrintConfig.cpp:1490 -msgid "Resolution" -msgstr "해결" - -#: src/libslic3r/PrintConfig.cpp:1491 -msgid "" -"Minimum detail resolution, used to simplify the input file for speeding up " -"the slicing job and reducing memory usage. High-resolution models often " -"carry more detail than printers can render. Set to zero to disable any " -"simplification and use full resolution from input." -msgstr "" -"잘라내기 작업의 속도를 높이고 메모리 사용량을 줄이기 위해 입력 파일을 단순화" -"하는 데 사용되는 최소 세부 해상도. 고해상도 모델은 종종 프린터가 렌더링할 수 " -"있는 것보다 더 많은 디테일을 가지고 있다. 단순화를 사용하지 않고 입력에서 전" -"체 해상도를 사용하려면 0으로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:1501 -msgid "Minimum travel after retraction" -msgstr "리트랙션 후 최소 이동 거리" - -#: src/libslic3r/PrintConfig.cpp:1502 -msgid "" -"Retraction is not triggered when travel moves are shorter than this length." -msgstr "이동 거리가 이 길이보다 짧으면 리트렉션이 트리거되지 않습니다." - -#: src/libslic3r/PrintConfig.cpp:1508 -msgid "Retract amount before wipe" -msgstr "닦아 내기 전의 수축량" - -#: src/libslic3r/PrintConfig.cpp:1509 -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:1516 -msgid "Retract on layer change" -msgstr "레이어 변경 후퇴" - -#: src/libslic3r/PrintConfig.cpp:1517 -msgid "This flag enforces a retraction whenever a Z move is done." -msgstr "이 플래그는 Z 이동이 완료 될 때마다 취소를 강제 실행합니다." - -#: src/libslic3r/PrintConfig.cpp:1522 src/libslic3r/PrintConfig.cpp:1530 -msgid "Length" -msgstr "길이" - -#: src/libslic3r/PrintConfig.cpp:1523 -msgid "Retraction Length" -msgstr "리트랙션 길이" - -#: src/libslic3r/PrintConfig.cpp:1524 -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:1526 src/libslic3r/PrintConfig.cpp:1535 -msgid "mm (zero to disable)" -msgstr "mm (0은 비활성화)" - -#: src/libslic3r/PrintConfig.cpp:1531 -msgid "Retraction Length (Toolchange)" -msgstr "리트랙션 길이 (툴 체인지)" - -#: src/libslic3r/PrintConfig.cpp:1532 -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:1540 -msgid "Lift Z" -msgstr "Z축 올림" - -#: src/libslic3r/PrintConfig.cpp:1541 -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 "" -"이 값을 양수 값으로 설정하면 철회가 트리거 될 때마다 Z가 빠르게 올라갑니다. " -"여러 개의 압출기를 사용하는 경우 첫 번째 압출기의 설정 만 고려됩니다." - -#: src/libslic3r/PrintConfig.cpp:1548 -msgid "Above Z" -msgstr "Z 위" - -#: src/libslic3r/PrintConfig.cpp:1549 -msgid "Only lift Z above" -msgstr "오직 Z축 위로만" - -#: src/libslic3r/PrintConfig.cpp:1550 -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 "" -"이것을 양의 값으로 설정하면, Z 리프트는 지정된 절대 Z 위로만 발생한다. 첫 번" -"째 층에서 리프트를 건너뛸 수 있도록 이 설정을 조정할 수 있다." - -#: src/libslic3r/PrintConfig.cpp:1557 -msgid "Below Z" -msgstr "Z 아래" - -#: src/libslic3r/PrintConfig.cpp:1558 -msgid "Only lift Z below" -msgstr "Z값 아래만" - -#: src/libslic3r/PrintConfig.cpp:1559 -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 "" -"이것을 양수 값으로 설정하면 Z 리프트가 지정된 절대 Z 아래에서만 발생합니다. " -"첫 번째 레이어로 리프트를 제한하기 위해이 설정을 조정할 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:1567 src/libslic3r/PrintConfig.cpp:1575 -msgid "Extra length on restart" -msgstr "재시작시 여분의 길이" - -#: src/libslic3r/PrintConfig.cpp:1568 -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:1576 -msgid "" -"When the retraction is compensated after changing tool, the extruder will " -"push this additional amount of filament." -msgstr "" -"도구를 교환 한 후 리트렉션를 보정하면 익스트루더가 추가 양의 필라멘트를 밀게" -"됩니다." - -#: src/libslic3r/PrintConfig.cpp:1583 src/libslic3r/PrintConfig.cpp:1584 -msgid "Retraction Speed" -msgstr "리트랙션 속도" - -#: src/libslic3r/PrintConfig.cpp:1585 -msgid "The speed for retractions (it only applies to the extruder motor)." -msgstr "리트랙션 속도 (익스트루더 모터에만 적용됨)." - -#: src/libslic3r/PrintConfig.cpp:1591 src/libslic3r/PrintConfig.cpp:1592 -msgid "Deretraction Speed" -msgstr "감속 속도" - -#: src/libslic3r/PrintConfig.cpp:1593 -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 "" -"리트랙션 후 압출기에 필라멘트를 로드하는 속도 (압출기 모터에만 적용됨). 0으" -"로 방치하면 리트랙션 속도가 사용됩니다." - -#: src/libslic3r/PrintConfig.cpp:1600 -msgid "Seam position" -msgstr "재봉선 위치" - -#: src/libslic3r/PrintConfig.cpp:1602 -msgid "Position of perimeters starting points." -msgstr "둘레의 시작점의 위치." - -#: src/libslic3r/PrintConfig.cpp:1608 -msgid "Random" -msgstr "무작위" - -#: src/libslic3r/PrintConfig.cpp:1609 -msgid "Nearest" -msgstr "가장 가까운" - -#: src/libslic3r/PrintConfig.cpp:1610 -msgid "Aligned" -msgstr "정렬" - -#: src/libslic3r/PrintConfig.cpp:1618 -msgid "Direction" -msgstr "방향" - -#: src/libslic3r/PrintConfig.cpp:1620 -msgid "Preferred direction of the seam" -msgstr "선호하는 심(seam)의 방향" - -#: src/libslic3r/PrintConfig.cpp:1621 -msgid "Seam preferred direction" -msgstr "심(Seam) 선호 방향" - -#: src/libslic3r/PrintConfig.cpp:1628 -msgid "Jitter" -msgstr "지터(Jitter)" - -#: src/libslic3r/PrintConfig.cpp:1630 -msgid "Seam preferred direction jitter" -msgstr "(Seam) 선호 방향 지터(Jitter)" - -#: src/libslic3r/PrintConfig.cpp:1631 -msgid "Preferred direction of the seam - jitter" -msgstr "재봉선 지터의 선호 방향" - -#: src/libslic3r/PrintConfig.cpp:1641 -msgid "USB/serial port for printer connection." -msgstr "프린터 연결을 위한 USB/시리얼 포트." - -#: src/libslic3r/PrintConfig.cpp:1648 -msgid "Serial port speed" -msgstr "시리얼 포트 속도" - -#: src/libslic3r/PrintConfig.cpp:1649 -msgid "Speed (baud) of USB/serial port for printer connection." -msgstr "프린터 연결을 위한 USB/시리얼 포트의 속도(보드)" - -#: src/libslic3r/PrintConfig.cpp:1658 -msgid "Distance from object" -msgstr "객체로부터의 거리" - -#: src/libslic3r/PrintConfig.cpp:1659 -msgid "" -"Distance between skirt and object(s). Set this to zero to attach the skirt " -"to the object(s) and get a brim for better adhesion." -msgstr "" -"스커트와 객체 사이의 거리. 스커트를 객체에 부착하고 접착력을 높이기 위해 이" -"를 0으로 설정한다." - -#: src/libslic3r/PrintConfig.cpp:1666 -msgid "Skirt height" -msgstr "스커트(Skirt) 높이" - -#: src/libslic3r/PrintConfig.cpp:1667 -msgid "" -"Height of skirt expressed in layers. Set this to a tall value to use skirt " -"as a shield against drafts." -msgstr "" -"스커트의 높이 레이어로 표현된다. 이를 높은 값으로 설정하여 스커트를 드래프트" -"에 대한 쉴ㄷ로 활용하십시오." - -#: src/libslic3r/PrintConfig.cpp:1674 -msgid "Loops (minimum)" -msgstr "루프 (최소)" - -#: src/libslic3r/PrintConfig.cpp:1675 -msgid "Skirt Loops" -msgstr "스커트 루프" - -#: src/libslic3r/PrintConfig.cpp:1676 -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 "" -"스커트의 루프 수입니다. 최소 압출 길이 옵션을 설정한 경우 여기에 구성된 루프 " -"수보다 클 수 있다. 스커트를 완전히 비활성화하려면 이 값을 0으로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:1684 -msgid "Slow down if layer print time is below" -msgstr "레이어 인쇄 시간이 다음과 같은 경우 속도를 낮추십시오" - -#: src/libslic3r/PrintConfig.cpp:1685 -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:1695 -msgid "Small perimeters" -msgstr "작은 둘레" - -#: src/libslic3r/PrintConfig.cpp:1697 -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 "" -"이 개별 설정은 반경이 6.5mm 미만인 속도 (일반적으로 구멍)에 영향을줍니다. 백" -"분율로 표시되는 경우 (예 : 80 %) 위의 속도 설정에서 계산됩니다. 자동으로 0으" -"로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:1707 -msgid "Solid infill threshold area" -msgstr "솔리드 채우기 임계값 영역" - -#: src/libslic3r/PrintConfig.cpp:1709 -msgid "" -"Force solid infill for regions having a smaller area than the specified " -"threshold." -msgstr "" -"지정된 한계값보다 작은 영역을 가진 영역에 대해 솔리드 인필을 강제 적용." - -#: src/libslic3r/PrintConfig.cpp:1710 -msgid "mm²" -msgstr "mm²" - -#: src/libslic3r/PrintConfig.cpp:1716 -msgid "Solid infill extruder" -msgstr "솔리드 인필 익스트루더" - -#: src/libslic3r/PrintConfig.cpp:1718 -msgid "The extruder to use when printing solid infill." -msgstr "꽉찬 면을 인쇄할 때 사용하는 익스트루더." - -#: src/libslic3r/PrintConfig.cpp:1724 -msgid "Solid infill every" -msgstr "솔리드 인필 간격" - -#: src/libslic3r/PrintConfig.cpp:1726 -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 " -"will automatically choose the maximum possible number of layers to combine " -"according to nozzle diameter and layer height." -msgstr "" -"이 특징은 주어진 개수의 층마다 단단한 층을 넣을수 있게 한다. 비활성화할 수 없" -"음. 당신은 이것을 어떤 값으로도 설정할 수 있다(예: 9999). Slic3r는 노즐 직경" -"과 층 높이에 따라 결합할 최대 가능한 층 수를 자동으로 선택한다." - -#: src/libslic3r/PrintConfig.cpp:1738 -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, " -"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " -"(for example 90%) it will be computed over layer height." -msgstr "" -"이 값을 0이 아닌 값으로 설정하여 솔리드 표면 인필에 대한 수동 압출 폭을 설정" -"하십시오. 0인 경우 기본 압출 너비가 사용되며, 그렇지 않으면 1.125 x 노즐 직경" -"이 사용된다. 백분율(예: 90%)로 표현되는 경우, 계층 높이에 걸쳐 계산된다." - -#: src/libslic3r/PrintConfig.cpp:1748 -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 "" -"솔리드 영역(상단/하부/내부 수평 셸) 인쇄 속도 이는 위의 기본 주입 속도에 대" -"한 백분율(예: 80%)로 표시할 수 있다. 자동을 위해 0으로 설정한다." - -#: src/libslic3r/PrintConfig.cpp:1760 -msgid "Number of solid layers to generate on top and bottom surfaces." -msgstr "상단 및 하단 표면에 생성할 솔리드 레이어 수입니다." - -#: src/libslic3r/PrintConfig.cpp:1766 -msgid "Spiral vase" -msgstr "스파이럴 바이스" - -#: src/libslic3r/PrintConfig.cpp:1767 -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, " -"no infill, no top solid layers and no support material. You can still set " -"any number of bottom solid layers as well as skirt/brim loops. It won't work " -"when printing more than an object." -msgstr "" -"이 기능은 단일 벽 물체를 인쇄하는 동안 눈에 보이는 심을 제거하기 위해 Z를 점" -"진적으로 상승시킨다. 이 옵션은 단일 둘레, 주입, 상단 솔리드 레이어 및 지지 재" -"료가 필요하지 않다. 당신은 스커트/브림 루프뿐만 아니라 아래 솔리드 레이어의 " -"수에 상관없이 설정할 수 있다. 그것은 물체보다 더 많이 인쇄할 때는 작동하지 않" -"을 것이다." - -#: src/libslic3r/PrintConfig.cpp:1775 -msgid "Temperature variation" -msgstr "온도 변화" - -#: src/libslic3r/PrintConfig.cpp:1776 -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:1786 -msgid "" -"This start procedure is inserted at the beginning, after bed has reached the " -"target temperature and extruder just started heating, and before extruder " -"has finished heating. If Slic3r detects M104 or M190 in your custom codes, " -"such commands will not be prepended automatically so you're free to " -"customize the order of heating commands and other custom actions. Note that " -"you can use placeholder variables for all Slic3r settings, so you can put a " -"\"M109 S[first_layer_temperature]\" command wherever you want." -msgstr "" -"이 시작 절차는 침대가 목표 온도에 도달하고 압출기가 막 가열을 시작한 직후 및 " -"압출기가 가열을 완료하기 전에 처음에 삽입됩니다. Slic3r이 사용자 지정 코드에" -"서 M104 또는 M190을 감지하면 이러한 명령은 자동으로 추가되지 않으므로 가열 명" -"령 및 기타 사용자 지정 동작의 순서를 자유롭게 사용자 지정할 수 있습니다. 모" -"든 Slic3r 설정에 자리 표시 자 변수를 사용할 수 있으므로 원하는 위치에 \"M109 " -"S [first_layer_temperature]\"명령을 넣을 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:1801 -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 " -"printers). This is used to override settings for a specific filament. If " -"Slic3r detects M104, M109, M140 or M190 in your custom codes, such commands " -"will not be prepended automatically so you're free to customize the order of " -"heating commands and other custom actions. Note that you can use placeholder " -"variables for all Slic3r settings, so you can put a \"M109 " -"S[first_layer_temperature]\" command wherever you want. If you have multiple " -"extruders, the gcode is processed in extruder order." -msgstr "" -"이 시작 절차는 프린터가 gcode를 시작한 후(그리고 다중 재질 프린터의 경우 이 " -"필라멘트에 대한 도구 변경 후) 처음에 삽입됩니다. 특정 필라멘트에 대한 설정을 " -"재정의하는 데 사용됩니다. Slic3r가 사용자 지정 코드에서 M104, M109, M140 또" -"는 M190을 감지하면 이러한 명령이 자동으로 준비되지 않으므로 가열 명령 및 기" -"타 사용자 지정 작업의 순서를 자유롭게 사용자 지정할 수 있습니다. 모든 Slic3r " -"설정에 자리 표시자 변수를 사용할 수 있으므로 원하는 위치에 \"M109 " -"S[first_layer_temperature]\" 명령을 넣을 수 있습니다. 압출기가 여러 개 있는 " -"경우 gcode는 압출기 순서로 처리됩니다." - -#: src/libslic3r/PrintConfig.cpp:1817 -msgid "Single Extruder Multi Material" -msgstr "싱글 익스트루더 멀티메터리얼" - -#: src/libslic3r/PrintConfig.cpp:1818 -msgid "The printer multiplexes filaments into a single hot end." -msgstr "프린터는 필라멘트를 하나의 핫 엔드에 멀티플렉싱합니다." - -#: src/libslic3r/PrintConfig.cpp:1823 -msgid "Prime all printing extruders" -msgstr "모든 인쇄 압출기 프라임" - -#: src/libslic3r/PrintConfig.cpp:1824 -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:1829 -msgid "Generate support material" -msgstr "서포트 재료 생성" - -#: src/libslic3r/PrintConfig.cpp:1831 -msgid "Enable support material generation." -msgstr "서포트 재료를 사용합니다." - -#: src/libslic3r/PrintConfig.cpp:1835 -msgid "Auto generated supports" -msgstr "자동 생성 지원" - -#: src/libslic3r/PrintConfig.cpp:1837 -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:1843 -msgid "XY separation between an object and its support" -msgstr "물체와 그 서포트 사이 XY 분리" - -#: src/libslic3r/PrintConfig.cpp:1845 -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 "" -"객체와 그 서포트 사이의 XY 분리. 백분율 (예 : 50 %)로 표시되는 경우 외부 둘" -"레 너비를 기준으로 계산됩니다." - -#: src/libslic3r/PrintConfig.cpp:1855 -msgid "Pattern angle" -msgstr "채움 각도" - -#: src/libslic3r/PrintConfig.cpp:1857 -msgid "" -"Use this setting to rotate the support material pattern on the horizontal " -"plane." -msgstr "이 설정을 사용하여지지 평면 패턴을 수평면으로 회전시킵니다." - -#: src/libslic3r/PrintConfig.cpp:1867 src/libslic3r/PrintConfig.cpp:2531 -msgid "" -"Only create support if it lies on a build plate. Don't create support on a " -"print." -msgstr "" -"그것이 빌드 플레이트에있는 경우에만 지원을 작성하십시오. 인쇄물에 대한 지원" -"을 작성하지 마십시오." - -#: src/libslic3r/PrintConfig.cpp:1873 -msgid "Contact Z distance" -msgstr "Z 거리 문의" - -#: src/libslic3r/PrintConfig.cpp:1875 -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 "" -"물체와 서포트 사이의 수직 거리. 이 값을 0으로 설정하면 Slic3r이 첫 번째 객체 " -"레이어에 브리지 흐름과 속도를 사용하지 못하게됩니다." - -#: src/libslic3r/PrintConfig.cpp:1882 -msgid "0 (soluble)" -msgstr "0 (수용성)" - -#: src/libslic3r/PrintConfig.cpp:1883 -msgid "0.2 (detachable)" -msgstr "0.2 (분리 가능)" - -#: src/libslic3r/PrintConfig.cpp:1888 -msgid "Enforce support for the first" -msgstr "첫 번째 서포트 더 강화" - -#: src/libslic3r/PrintConfig.cpp:1890 -msgid "" -"Generate support material for the specified number of layers counting from " -"bottom, regardless of whether normal support material is enabled or not and " -"regardless of any angle threshold. This is useful for getting more adhesion " -"of objects having a very thin or poor footprint on the build plate." -msgstr "" -"일반적인 서포트 소재의 활성화 여부와, 각도 임계 값에 관계없이 하단에서부터 세" -"어 지정된 레이어 수에 대한지지 자료를 생성합니다. 이것은 빌드 플레이트에 매" -"우 얇거나 부족한 풋 프린트를 가진 물체를 더 많이 부착 할 때 유용합니다." - -#: src/libslic3r/PrintConfig.cpp:1895 -msgid "Enforce support for the first n layers" -msgstr "첫 번째 n 개의 레이어에 대한 서포트 강화" - -#: src/libslic3r/PrintConfig.cpp:1901 -msgid "Support material/raft/skirt extruder" -msgstr "서포트 재료 / 라프트 / 스커트 익스트루더" - -#: src/libslic3r/PrintConfig.cpp:1903 -msgid "" -"The extruder to use when printing support material, raft and skirt (1+, 0 to " -"use the current extruder to minimize tool changes)." -msgstr "" -"서포트 재료, 라프트 및 스커트를 인쇄 할 때 사용하는 압출기 (도구 변경을 최소" -"화하기 위해 현재 압출기를 사용하려면 1+, 0)." - -#: src/libslic3r/PrintConfig.cpp:1912 -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, " -"otherwise nozzle diameter will be used. If expressed as percentage (for " -"example 90%) it will be computed over layer height." -msgstr "" -"서포트 재료의 수동 압출 폭을 설정하려면이 값을 0이 아닌 값으로 설정하십시오. " -"0으로 설정하면 설정된 경우 기본 압출 폭이 사용되고 그렇지 않으면 노즐 지름이 " -"사용됩니다. 백분율 (예 : 90 %)로 표현하면 레이어 높이를 기준으로 계산됩니다." - -#: src/libslic3r/PrintConfig.cpp:1920 -msgid "Interface loops" -msgstr "인터페이스 루프" - -#: src/libslic3r/PrintConfig.cpp:1922 -msgid "" -"Cover the top contact layer of the supports with loops. Disabled by default." -msgstr "지지대의 상단 접촉 층을 루프로 덮으십시오. 기본적으로 사용 안 함." - -#: src/libslic3r/PrintConfig.cpp:1927 -msgid "Support material/raft interface extruder" -msgstr "서포트 재료/라프트 인터페이스 익스트루더" - -#: src/libslic3r/PrintConfig.cpp:1929 -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 "" -"서포트 재료 인터페이스를 인쇄 할 때 사용할 익스트루더 (도구 변경을 최소화하" -"기 위해 현재 익스트루더를 사용하려면 1+, 0). 이것은 라프트에도 영향을 미칩니" -"다." - -#: src/libslic3r/PrintConfig.cpp:1936 -msgid "Interface layers" -msgstr "인터페이스 레이어" - -#: src/libslic3r/PrintConfig.cpp:1938 -msgid "" -"Number of interface layers to insert between the object(s) and support " -"material." -msgstr "객체와 서포트 재료 사이에 삽입할 인터페이스 레이어 수입니다." - -#: src/libslic3r/PrintConfig.cpp:1945 -msgid "Interface pattern spacing" -msgstr "인터페이스 패턴 간격" - -#: src/libslic3r/PrintConfig.cpp:1947 -msgid "Spacing between interface lines. Set zero to get a solid interface." -msgstr "" -"인터페이스 라인 간 간격. 솔리드 인터페이스를 가져오려면 0을 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:1956 -msgid "" -"Speed for printing support material interface layers. If expressed as " -"percentage (for example 50%) it will be calculated over support material " -"speed." -msgstr "" -"서포트 재료 인터페이스 레이어 인쇄 속도 백분율(예: 50%)로 표현될 경우 서포트 " -"재료 속도에 따라 계산된다." - -#: src/libslic3r/PrintConfig.cpp:1965 -msgid "Pattern" -msgstr "패턴" - -#: src/libslic3r/PrintConfig.cpp:1967 -msgid "Pattern used to generate support material." -msgstr "서포트 재료를 생성하는 데 사용되는 패턴." - -#: src/libslic3r/PrintConfig.cpp:1973 -msgid "Rectilinear grid" -msgstr "직선 그리드" - -#: src/libslic3r/PrintConfig.cpp:1979 -msgid "Pattern spacing" -msgstr "패턴 간격" - -#: src/libslic3r/PrintConfig.cpp:1981 -msgid "Spacing between support material lines." -msgstr "서포트 재료 라인 사이의 간격." - -#: src/libslic3r/PrintConfig.cpp:1990 -msgid "Speed for printing support material." -msgstr "서포트 재료를 인쇄하는 속도." - -#: src/libslic3r/PrintConfig.cpp:1997 -msgid "Synchronize with object layers" -msgstr "객체 레이어와 동기화" - -#: src/libslic3r/PrintConfig.cpp:1999 -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:2005 -msgid "Overhang threshold" -msgstr "오버행 한계점" - -#: src/libslic3r/PrintConfig.cpp:2007 -msgid "" -"Support material will not be generated for overhangs whose slope angle (90° " -"= vertical) is above the given threshold. In other words, this value " -"represent the most horizontal slope (measured from the horizontal plane) " -"that you can print without support material. Set to zero for automatic " -"detection (recommended)." -msgstr "" -"서포트 재료는 경사각(90° = 수직)이 지정된 임계점보다 높은 압출에 대해서는 생" -"성되지 않는다. 즉, 이 값은 서포트 재료 없이 인쇄할 수 있는 가장 수평 경사(수" -"평면에서 측정됨)를 나타낸다. 자동 감지를 위해 0으로 설정하십시오(권장)." - -#: src/libslic3r/PrintConfig.cpp:2019 -msgid "With sheath around the support" -msgstr "서포트 주변이나 외부로" - -#: src/libslic3r/PrintConfig.cpp:2021 -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:2028 -msgid "" -"Extruder temperature for layers after the first one. Set this to zero to " -"disable temperature control commands in the output." -msgstr "" -"첫 번째 것 이후에 레이어에 대한 더 낮은 온도. 이 값을 0으로 설정하면 출력에" -"서 ​​온도 제어 명령을 비활성화 할 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:2036 -msgid "Detect thin walls" -msgstr "얇은 벽(walls) 감지" - -#: src/libslic3r/PrintConfig.cpp:2038 -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:2044 -msgid "Threads" -msgstr "스레드(Threads)" - -#: src/libslic3r/PrintConfig.cpp:2045 -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:2057 -msgid "" -"This custom code is inserted at every extruder change. If you don't leave " -"this empty, you are expected to take care of the toolchange yourself - " -"PrusaSlicer will not output any other G-code to change the filament. You can " -"use placeholder variables for all Slic3r settings as well as " -"[previous_extruder] and [next_extruder], so e.g. the standard toolchange " -"command can be scripted as T[next_extruder]." -msgstr "" -"이 사용자 지정 코드는 모든 압출기 변경 시 삽입됩니다. 이 것을 비워 두지 않으" -"면 도구 변경을 직접 처리해야합니다 - PrusaSlicer는 필라멘트를 변경하기 위해 " -"다른 G 코드를 출력하지 않습니다. 모든 Slic3r 설정과 [이전_압출기] 및 " -"[next_extruder]에 대해 자리 표시자 변수를 사용할 수 있으므로 표준 도구 변경 " -"명령을 T[next_extruder]로 스크립팅할 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:2070 -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 " -"regions and get a smoother finish. If left zero, default extrusion width " -"will be used if set, otherwise nozzle diameter will be used. If expressed as " -"percentage (for example 90%) it will be computed over layer height." -msgstr "" -"이 값을 0이 아닌 값으로 설정하여 상단 서피스에 대한 infill의 수동 압출 폭을 " -"설정합니다. 얇은 압출 성형물을 사용하여 모든 좁은 지역을 채우고 더 매끄러운 " -"마무리를 할 수 있습니다. 0으로 설정된 경우 기본 압출 폭이 사용되고 그렇지 않" -"으면 노즐 지름이 사용됩니다. 백분율 (예 : 90 %)로 표현하면 레이어 높이를 기준" -"으로 계산됩니다." - -#: src/libslic3r/PrintConfig.cpp:2081 -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 " -"slow down this to get a nicer surface finish. This can be expressed as a " -"percentage (for example: 80%) over the solid infill speed above. Set to zero " -"for auto." -msgstr "" -"상단 솔리드 레이어 인쇄 속도 (솔리드 레이어가 아닌 최상단 외부 레이어에만 적" -"용) 표면을 더 좋게 마무리하려면 속도를 늦추시기 바랍니다. 이것은 위의 고체 충" -"전 속도에 대한 백분율 (예 : 80 %)로 나타낼 수 있습니다. 자동으로 0으로 설정하" -"십시오." - -#: src/libslic3r/PrintConfig.cpp:2096 -msgid "Number of solid layers to generate on top surfaces." -msgstr "상단 표면에 생성 할 솔리드 레이어 수입니다." - -#: src/libslic3r/PrintConfig.cpp:2097 -msgid "Top solid layers" -msgstr "탑 솔리드 레이어" - -#: src/libslic3r/PrintConfig.cpp:2103 -msgid "Speed for travel moves (jumps between distant extrusion points)." -msgstr "이동 속도 (먼 돌출 점 사이의 점프)." - -#: src/libslic3r/PrintConfig.cpp:2111 -msgid "Use firmware retraction" -msgstr "펌웨어 철회" - -#: src/libslic3r/PrintConfig.cpp:2112 -msgid "" -"This experimental setting uses G10 and G11 commands to have the firmware " -"handle the retraction. This is only supported in recent Marlin." -msgstr "" -"이 실험 설정은 G10 및 G11 명령을 사용하여 펌웨어에서 취소를 처리하도록합니" -"다. 이것은 최근의 말린에서만 지원됩니다." - -#: src/libslic3r/PrintConfig.cpp:2118 -msgid "Use relative E distances" -msgstr "상대적인 E 거리 사용" - -#: src/libslic3r/PrintConfig.cpp:2119 -msgid "" -"If your firmware requires relative E values, check this, otherwise leave it " -"unchecked. Most firmwares use absolute values." -msgstr "" -"펌웨어에 상대 E 값이 필요한 경우이 값을 선택하고, 그렇지 않으면 선택하지 마십" -"시오. 대부분의 회사는 절대 값을 사용합니다." - -#: src/libslic3r/PrintConfig.cpp:2125 -msgid "Use volumetric E" -msgstr "용적 E 사용" - -#: src/libslic3r/PrintConfig.cpp:2126 -msgid "" -"This experimental setting uses outputs the E values in cubic millimeters " -"instead of linear millimeters. If your firmware doesn't already know " -"filament diameter(s), you can put commands like 'M200 D[filament_diameter_0] " -"T0' in your start G-code in order to turn volumetric mode on and use the " -"filament diameter associated to the filament selected in Slic3r. This is " -"only supported in recent Marlin." -msgstr "" -"이 실험 설정은 선형 밀리미터 대신에 입방 밀리미터 단위의 E 값을 출력으로 사용" -"합니다. 펌웨어가 필라멘트 직경을 모르는 경우 볼륨 모드를 켜고 선택한 필라멘트" -"와 연결된 필라멘트 직경을 사용하기 위해 시작 G 코드에 'M200 D " -"[filament_diameter_0] T0'과 같은 명령을 입력 할 수 있습니다 Slic3r. 이것은 최" -"근의 말린에서만 지원됩니다." - -#: src/libslic3r/PrintConfig.cpp:2136 -msgid "Enable variable layer height feature" -msgstr "가변 레이어 높이 기능 사용" - -#: src/libslic3r/PrintConfig.cpp:2137 -msgid "" -"Some printers or printer setups may have difficulties printing with a " -"variable layer height. Enabled by default." -msgstr "" -"일부 프린터 또는 프린터 설정은 가변 레이어 높이로 인쇄하는 데 어려움이있을 " -"수 있습니다. 기본적으로 사용됩니다." - -#: src/libslic3r/PrintConfig.cpp:2143 -msgid "Wipe while retracting" -msgstr "수축시 닦아내십시오" - -#: src/libslic3r/PrintConfig.cpp:2144 -msgid "" -"This flag will move the nozzle while retracting to minimize the possible " -"blob on leaky extruders." -msgstr "" -"이 플래그는 누출된 리트랙싱의 블럽 가능성을 최소화하기 위해 수축하는 동안 노" -"즐을 이동시킨다." - -#: src/libslic3r/PrintConfig.cpp:2151 -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:2157 -msgid "Purging volumes - load/unload volumes" -msgstr "볼륨 삭제 - 볼륨 로드/언로드" - -#: src/libslic3r/PrintConfig.cpp:2158 -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:2164 -msgid "Purging volumes - matrix" -msgstr "볼륨 삭제 - 행렬" - -#: src/libslic3r/PrintConfig.cpp:2165 -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:2174 -msgid "Position X" -msgstr "X축 위치" - -#: src/libslic3r/PrintConfig.cpp:2175 -msgid "X coordinate of the left front corner of a wipe tower" -msgstr "와이프 타워의 좌측 전면 모서리의 X 좌표" - -#: src/libslic3r/PrintConfig.cpp:2181 -msgid "Position Y" -msgstr "Y축 위치" - -#: src/libslic3r/PrintConfig.cpp:2182 -msgid "Y coordinate of the left front corner of a wipe tower" -msgstr "와이퍼 작동 타워의 좌측 전방 모서리의 Y 좌표" - -#: src/libslic3r/PrintConfig.cpp:2189 -msgid "Width of a wipe tower" -msgstr "와이퍼 타워 폭" - -#: src/libslic3r/PrintConfig.cpp:2195 -msgid "Wipe tower rotation angle" -msgstr "와이퍼 타워 회전각도" - -#: src/libslic3r/PrintConfig.cpp:2196 -msgid "Wipe tower rotation angle with respect to x-axis." -msgstr "X 축에 대해 타워 회전 각도를 닦습니다." - -#: src/libslic3r/PrintConfig.cpp:2203 -msgid "Wipe into this object's infill" -msgstr "이 오브젝트의 채우기로 지우기" - -#: src/libslic3r/PrintConfig.cpp:2204 -msgid "" -"Purging after toolchange will 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:2211 -msgid "Wipe into this object" -msgstr "이 개체로 지우기" - -#: src/libslic3r/PrintConfig.cpp:2212 -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:2218 -msgid "Maximal bridging distance" -msgstr "최대 브리징 거리" - -#: src/libslic3r/PrintConfig.cpp:2219 -msgid "Maximal distance between supports on sparse infill sections." -msgstr "드문드문한 인필 섹션에서 지지대 사이의 최대 거리." - -#: src/libslic3r/PrintConfig.cpp:2225 -msgid "XY Size Compensation" -msgstr "XY 크기 보정" - -#: src/libslic3r/PrintConfig.cpp:2227 -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 "" -"XY 평면에서 설정된 값(음수 = 안, 양 = 바깥쪽)에 따라 객체가 증가/정격된다. 이" -"는 구멍 크기를 미세 조정하는데 유용할 수 있다." - -#: src/libslic3r/PrintConfig.cpp:2235 -msgid "Z offset" -msgstr "Z 오프셋" - -#: src/libslic3r/PrintConfig.cpp:2236 -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 " -"example, if your endstop zero actually leaves the nozzle 0.3mm far from the " -"print bed, set this to -0.3 (or fix your endstop)." -msgstr "" -"이 값은 출력 G-코드의 모든 Z 좌표에서 추가(또는 감산)된다. 예를 들어, 엔드 스" -"톱 0이 실제로 노즐을 프린트 베드에서 0.3mm 떨어진 곳에 둔 경우, 이를 -0.3(또" -"는 엔드 스톱을 고정)으로 설정하십시오." - -#: src/libslic3r/PrintConfig.cpp:2294 -msgid "Display width" -msgstr "디스플레이 너비" - -#: src/libslic3r/PrintConfig.cpp:2295 -msgid "Width of the display" -msgstr "디스플레이의 폭입니다" - -#: src/libslic3r/PrintConfig.cpp:2300 -msgid "Display height" -msgstr "표시 높이" - -#: src/libslic3r/PrintConfig.cpp:2301 -msgid "Height of the display" -msgstr "디스플레이의 높이" - -#: src/libslic3r/PrintConfig.cpp:2306 -msgid "Number of pixels in" -msgstr "의 픽셀 수" - -#: src/libslic3r/PrintConfig.cpp:2308 -msgid "Number of pixels in X" -msgstr "X의 픽셀 수" - -#: src/libslic3r/PrintConfig.cpp:2314 -msgid "Number of pixels in Y" -msgstr "Y의 픽셀 수" - -#: src/libslic3r/PrintConfig.cpp:2319 -msgid "Display horizontal mirroring" -msgstr "수평 미러링 표시" - -#: src/libslic3r/PrintConfig.cpp:2320 -msgid "Mirror horizontally" -msgstr "수평으로 미러" - -#: src/libslic3r/PrintConfig.cpp:2321 -msgid "Enable horizontal mirroring of output images" -msgstr "출력 이미지의 수평 미러링 사용" - -#: src/libslic3r/PrintConfig.cpp:2326 -msgid "Display vertical mirroring" -msgstr "수직 미러링 표시" - -#: src/libslic3r/PrintConfig.cpp:2327 -msgid "Mirror vertically" -msgstr "수직으로 미러" - -#: src/libslic3r/PrintConfig.cpp:2328 -msgid "Enable vertical mirroring of output images" -msgstr "출력 이미지의 수직 미러링 사용" - -#: src/libslic3r/PrintConfig.cpp:2333 -msgid "Display orientation" -msgstr "디스플레이 방향" - -#: src/libslic3r/PrintConfig.cpp:2334 -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 "" -"SLA 프린터 내에서 실제 LCD 디스플레이 방향을 설정 합니다. 세로 모드는 디스플" -"레이 너비 및 높이 매개 변수의 의미를 반전 하 고 출력 이미지는 90도 회전 합니" -"다." - -#: src/libslic3r/PrintConfig.cpp:2340 -msgid "Landscape" -msgstr "가로" - -#: src/libslic3r/PrintConfig.cpp:2341 -msgid "Portrait" -msgstr "세로모드" - -#: src/libslic3r/PrintConfig.cpp:2346 -msgid "Fast" -msgstr "빠른" - -#: src/libslic3r/PrintConfig.cpp:2347 -msgid "Fast tilt" -msgstr "빠른 기울기" - -#: src/libslic3r/PrintConfig.cpp:2348 -msgid "Time of the fast tilt" -msgstr "기울이기 시간" - -#: src/libslic3r/PrintConfig.cpp:2355 -msgid "Slow" -msgstr "느리게" - -#: src/libslic3r/PrintConfig.cpp:2356 -msgid "Slow tilt" -msgstr "슬로우 틸트" - -#: src/libslic3r/PrintConfig.cpp:2357 -msgid "Time of the slow tilt" -msgstr "느린 기울기의 시간" - -#: src/libslic3r/PrintConfig.cpp:2364 -msgid "Area fill" -msgstr "영역 채우기" - -#: src/libslic3r/PrintConfig.cpp:2365 -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 "" -"침대 영역의 비율입니다. \n" -"인쇄 영역이 지정 된 값을 초과 하면 \n" -"그런 다음 느린 기울기가 사용 됩니다, 그렇지 않으면-빠른 기울기가 됩니다" - -#: src/libslic3r/PrintConfig.cpp:2372 src/libslic3r/PrintConfig.cpp:2373 -#: src/libslic3r/PrintConfig.cpp:2374 -msgid "Printer scaling correction" -msgstr "프린터 스케일링 보정" - -#: src/libslic3r/PrintConfig.cpp:2380 src/libslic3r/PrintConfig.cpp:2381 -msgid "Printer absolute correction" -msgstr "프린터 절대 보정" - -#: src/libslic3r/PrintConfig.cpp:2382 -msgid "" -"Will inflate or deflate the sliced 2D polygons according to the sign of the " -"correction." -msgstr "교정 기호에 따라 슬라이스된 2D 폴리곤을 팽창 하거나 수축 합니다." - -#: src/libslic3r/PrintConfig.cpp:2388 src/libslic3r/PrintConfig.cpp:2389 -msgid "Printer gamma correction" -msgstr "프린터 감마 보정" - -#: src/libslic3r/PrintConfig.cpp:2390 -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 "" -"이렇게 하면 래스터화된 2D 다각형에 감마 보정이 적용 됩니다. 감마 값이 0 이면 " -"중간에 임계값이 임계화 의미입니다. 이 동작은 폴리곤의 구멍을 잃지 않고 안티알" -"리아싱을 제거 합니다." - -#: src/libslic3r/PrintConfig.cpp:2401 src/libslic3r/PrintConfig.cpp:2402 -msgid "Initial layer height" -msgstr "초기 레이어 높이" - -#: src/libslic3r/PrintConfig.cpp:2408 -msgid "Faded layers" -msgstr "페이드 레이어" - -#: src/libslic3r/PrintConfig.cpp:2409 -msgid "" -"Number of the layers needed for the exposure time fade from initial exposure " -"time to the exposure time" -msgstr "노출 시간에 필요한 레이어 수는 초기 노출 시간에서 노출 시간으로 페이드" - -#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2417 -msgid "Exposure time" -msgstr "노출 시간" - -#: src/libslic3r/PrintConfig.cpp:2423 src/libslic3r/PrintConfig.cpp:2424 -msgid "Initial exposure time" -msgstr "초기 노출 시간" - -#: src/libslic3r/PrintConfig.cpp:2430 src/libslic3r/PrintConfig.cpp:2431 -msgid "Correction for expansion" -msgstr "확장 보정" - -#: src/libslic3r/PrintConfig.cpp:2437 -msgid "SLA print material notes" -msgstr "SLA 인쇄 재료 참고 사항" - -#: src/libslic3r/PrintConfig.cpp:2438 -msgid "You can put your notes regarding the SLA print material here." -msgstr "여기에서 SLA 인쇄 자료에 대한 메모를 넣을 수 있습니다." - -#: src/libslic3r/PrintConfig.cpp:2446 src/libslic3r/PrintConfig.cpp:2457 -msgid "Default SLA material profile" -msgstr "기본 SLA 재질 프로 파일" - -#: src/libslic3r/PrintConfig.cpp:2468 -msgid "Generate supports" -msgstr "지원 생성" - -#: src/libslic3r/PrintConfig.cpp:2470 -msgid "Generate supports for the models" -msgstr "모델에 대한 지원 생성" - -#: src/libslic3r/PrintConfig.cpp:2475 -msgid "Support head front diameter" -msgstr "서포트 헤드 전면 지름" - -#: src/libslic3r/PrintConfig.cpp:2477 -msgid "Diameter of the pointing side of the head" -msgstr "헤드 포인팅 측면 지름" - -#: src/libslic3r/PrintConfig.cpp:2484 -msgid "Support head penetration" -msgstr "서포트 헤드 관통" - -#: src/libslic3r/PrintConfig.cpp:2486 -msgid "How much the pinhead has to penetrate the model surface" -msgstr "핀 헤드가 모델 표면에 침투 하는 정도" - -#: src/libslic3r/PrintConfig.cpp:2493 -msgid "Support head width" -msgstr "서포트 헤드 폭" - -#: src/libslic3r/PrintConfig.cpp:2495 -msgid "Width from the back sphere center to the front sphere center" -msgstr "뒤쪽 구 중심에서 앞쪽 구 중심 까지의 폭입니다" - -#: src/libslic3r/PrintConfig.cpp:2503 -msgid "Support pillar diameter" -msgstr "서포트 기둥 지름" - -#: src/libslic3r/PrintConfig.cpp:2505 -msgid "Diameter in mm of the support pillars" -msgstr "서포트 기둥의 지름 (mm)" - -#: src/libslic3r/PrintConfig.cpp:2513 -msgid "Support pillar connection mode" -msgstr "기둥 연결 모드 지원" - -#: src/libslic3r/PrintConfig.cpp:2514 -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:2522 -msgid "Zig-Zag" -msgstr "지그재그" - -#: src/libslic3r/PrintConfig.cpp:2523 -msgid "Cross" -msgstr "크로스" - -#: src/libslic3r/PrintConfig.cpp:2524 -msgid "Dynamic" -msgstr "동적" - -#: src/libslic3r/PrintConfig.cpp:2536 -msgid "Pillar widening factor" -msgstr "기둥 확장 계수" - -#: src/libslic3r/PrintConfig.cpp:2538 -msgid "" -"Merging bridges or pillars into another pillars can increase the radius. " -"Zero means no increase, one means full increase." -msgstr "" -"브릿지 또는 기둥을 다른 기둥에 병합 하면 반지름을 늘릴 수 있습니다. 0은 증가 " -"없음을 의미 하나는 전체 증가를 의미 합니다." - -#: src/libslic3r/PrintConfig.cpp:2547 -msgid "Support base diameter" -msgstr "서포트 베이스 지름" - -#: src/libslic3r/PrintConfig.cpp:2549 -msgid "Diameter in mm of the pillar base" -msgstr "기둥 베이스의 mm 직경" - -#: src/libslic3r/PrintConfig.cpp:2557 -msgid "Support base height" -msgstr "서포트 기준 높이" - -#: src/libslic3r/PrintConfig.cpp:2559 -msgid "The height of the pillar base cone" -msgstr "서포트 베이스 원추의 높이" - -#: src/libslic3r/PrintConfig.cpp:2566 -msgid "Support base safety distance" -msgstr "지지기본 안전 거리" - -#: src/libslic3r/PrintConfig.cpp:2569 -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 "" -"모델에서 기둥 베이스의 최소 거리(mm.mm.)는 이 매개변수에 따른 간격이 모델과 " -"패드 사이에 삽입되는 제로 고도 모드에서 의미가 있습니다." - -#: src/libslic3r/PrintConfig.cpp:2579 -msgid "Critical angle" -msgstr "임계 각도" - -#: src/libslic3r/PrintConfig.cpp:2581 -msgid "The default angle for connecting support sticks and junctions." -msgstr "서포트 스틱과 접합부를 연결 하는 기본 각도입니다." - -#: src/libslic3r/PrintConfig.cpp:2589 -msgid "Max bridge length" -msgstr "최대 브리지 길이" - -#: src/libslic3r/PrintConfig.cpp:2591 -msgid "The max length of a bridge" -msgstr "브릿지의 최대 길이" - -#: src/libslic3r/PrintConfig.cpp:2598 -msgid "Max pillar linking distance" -msgstr "최대 기둥 연결 거리" - -#: src/libslic3r/PrintConfig.cpp:2600 -msgid "" -"The max distance of two pillars to get linked with each other. A zero value " -"will prohibit pillar cascading." -msgstr "" -"서로 연결 되는 두기둥의 최대 거리. 0 값은 기둥을 계단식으로 금지 합니다." - -#: src/libslic3r/PrintConfig.cpp:2608 -msgid "Object elevation" -msgstr "객체 고도" - -#: src/libslic3r/PrintConfig.cpp:2610 -msgid "" -"How much the supports should lift up the supported object. If this value is " -"zero, the bottom of the model geometry will be considered as part of the pad." -msgstr "" -"지원 대상을 들어 올려야 하는 양입니다. 이 값이 0이면 모델 형상의 맨 아래가 패" -"드의 일부로 간주됩니다." - -#: src/libslic3r/PrintConfig.cpp:2622 -msgid "This is a relative measure of support points density." -msgstr "이는 서포트 점 밀도의 상대적인 척도입니다." - -#: src/libslic3r/PrintConfig.cpp:2628 -msgid "Minimal distance of the support points" -msgstr "서포트 지점의 최소 거리" - -#: src/libslic3r/PrintConfig.cpp:2630 -msgid "No support points will be placed closer than this threshold." -msgstr "서포트 지점은 이 임계값 보다 더 가깝게 배치 되지 않습니다." - -#: src/libslic3r/PrintConfig.cpp:2636 -msgid "Use pad" -msgstr "패드 사용" - -#: src/libslic3r/PrintConfig.cpp:2638 -msgid "Add a pad underneath the supported model" -msgstr "서포트 되는 모델 아래에 패드 추가" - -#: src/libslic3r/PrintConfig.cpp:2643 -msgid "Pad wall thickness" -msgstr "패드 벽 두께" - -#: src/libslic3r/PrintConfig.cpp:2645 -msgid "The thickness of the pad and its optional cavity walls." -msgstr "패드의 두께와 옵션 캐비티 벽." - -#: src/libslic3r/PrintConfig.cpp:2653 -msgid "Pad wall height" -msgstr "패드 벽 높이" - -#: src/libslic3r/PrintConfig.cpp:2654 -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 " -"effect inside the cavity, which makes peeling the print off the vat foil " -"difficult." -msgstr "" -"패드 캐비티 깊이를 정의 합니다. 캐비티를 비활성화 하려면 0으로 설정 합니다. " -"이 기능을 활성화 할 때 주의 해야할, 일부 수 캐비티 내부 극단적인 흡입 효과를 " -"생성 할 수도 있기 때문에, vat 호일 인쇄를 벗겨 어렵게 만든다." - -#: src/libslic3r/PrintConfig.cpp:2667 -msgid "Max merge distance" -msgstr "최대 병합 거리" - -#: src/libslic3r/PrintConfig.cpp:2669 -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:2680 -msgid "Pad edge radius" -msgstr "패드 가장자리 반경" - -#: src/libslic3r/PrintConfig.cpp:2689 -msgid "Pad wall slope" -msgstr "패드 벽 경사" - -#: src/libslic3r/PrintConfig.cpp:2691 -msgid "" -"The slope of the pad wall relative to the bed plane. 90 degrees means " -"straight walls." -msgstr "" -"침대 평면을 기준으로 하는 패드 벽의 기울기입니다. 90도는 직선 벽을 의미 합니" -"다." - -#: src/libslic3r/PrintConfig.cpp:2700 -msgid "Pad object gap" -msgstr "패드 오브젝트 갭" - -#: src/libslic3r/PrintConfig.cpp:2702 -msgid "" -"The gap between the object bottom and the generated pad in zero elevation " -"mode." -msgstr "0 고도 모드에서 오브젝트 바닥과 생성된 패드 사이의 간격입니다." - -#: src/libslic3r/PrintConfig.cpp:2711 -msgid "Pad object connector stride" -msgstr "패드 오브젝트 커넥터 보폭" - -#: src/libslic3r/PrintConfig.cpp:2713 -msgid "" -"Distance between two connector sticks between the object pad and the " -"generated pad." -msgstr "오브젝트 패드와 생성된 패드 사이의 두 커넥터 스틱 사이의 거리입니다." - -#: src/libslic3r/PrintConfig.cpp:2721 -msgid "Pad object connector width" -msgstr "패드 오브젝트 커넥터 너비" - -#: src/libslic3r/PrintConfig.cpp:2723 -msgid "" -"The width of the connectors sticks which connect the object pad and the " -"generated pad." -msgstr "커넥터의 너비는 오브젝트 패드와 생성된 패드를 연결하는 스틱입니다." - -#: src/libslic3r/PrintConfig.cpp:2731 -msgid "Pad object connector penetration" -msgstr "패드 오브젝트 커넥터 침투" - -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "How much should the tiny connectors penetrate into the model body." -msgstr "작은 커넥터가 모델 본체에 얼마나 침투해야 하는가?" - -#: src/libslic3r/PrintConfig.cpp:3094 -msgid "Export OBJ" -msgstr "OBJ 내보내기" - -#: src/libslic3r/PrintConfig.cpp:3095 -msgid "Export the model(s) as OBJ." -msgstr "모델을 OBJ로 내보냅니다." - -#: src/libslic3r/PrintConfig.cpp:3106 -msgid "Export SLA" -msgstr "STL로 내보내기" - -#: src/libslic3r/PrintConfig.cpp:3107 -msgid "Slice the model and export SLA printing layers as PNG." -msgstr "모델을 분할하고 SLA 인쇄 레이어를 PNG로 내보냅니다." - -#: src/libslic3r/PrintConfig.cpp:3112 -msgid "Export 3MF" -msgstr "3MF 내보내기" - -#: src/libslic3r/PrintConfig.cpp:3113 -msgid "Export the model(s) as 3MF." -msgstr "모델을 3MF로 내보냅니다." - -#: src/libslic3r/PrintConfig.cpp:3117 -msgid "Export AMF" -msgstr "AMF 내보내기" - -#: src/libslic3r/PrintConfig.cpp:3118 -msgid "Export the model(s) as AMF." -msgstr "모델을 AMF로 내보냅니다." - -#: src/libslic3r/PrintConfig.cpp:3122 -msgid "Export STL" -msgstr "STL 내보내기" - -#: src/libslic3r/PrintConfig.cpp:3123 -msgid "Export the model(s) as STL." -msgstr "모델을 STL로 내보냅니다." - -#: src/libslic3r/PrintConfig.cpp:3128 -msgid "Slice the model and export toolpaths as G-code." -msgstr "모델을 슬라이스하고 공구 경로를 G 코드로 내보냅니다." - -#: src/libslic3r/PrintConfig.cpp:3133 -msgid "Slice" -msgstr "슬라이스" - -#: src/libslic3r/PrintConfig.cpp:3134 -msgid "" -"Slice the model as FFF or SLA based on the printer_technology configuration " -"value." -msgstr "" -" printer_technology 구성 값을 기반으로 모델을 FFF 또는 SLA로 슬라이스합니다." - -#: src/libslic3r/PrintConfig.cpp:3139 -msgid "Help" -msgstr "도움말" - -#: src/libslic3r/PrintConfig.cpp:3140 -msgid "Show this help." -msgstr "이 도움말을 표시 합니다." - -#: src/libslic3r/PrintConfig.cpp:3145 -msgid "Help (FFF options)" -msgstr "도움말 (FFF 옵션)" - -#: src/libslic3r/PrintConfig.cpp:3146 -msgid "Show the full list of print/G-code configuration options." -msgstr "인쇄/G 코드 구성 옵션의 전체 목록을 표시 합니다." - -#: src/libslic3r/PrintConfig.cpp:3150 -msgid "Help (SLA options)" -msgstr "도움말 (SLA 옵션)" - -#: src/libslic3r/PrintConfig.cpp:3151 -msgid "Show the full list of SLA print configuration options." -msgstr "SLA 인쇄 구성 옵션의 전체 목록을 표시 합니다." - -#: src/libslic3r/PrintConfig.cpp:3155 -msgid "Output Model Info" -msgstr "출력 모델 정보" - -#: src/libslic3r/PrintConfig.cpp:3156 -msgid "Write information about the model to the console." -msgstr "모델에 대한 정보를 콘솔에 씁니다." - -#: src/libslic3r/PrintConfig.cpp:3160 -msgid "Save config file" -msgstr "구성 파일 저장" - -#: src/libslic3r/PrintConfig.cpp:3161 -msgid "Save configuration to the specified file." -msgstr "지정 된 파일에 구성을 저장 합니다." - -#: src/libslic3r/PrintConfig.cpp:3171 -msgid "Align XY" -msgstr "XY 정렬" - -#: src/libslic3r/PrintConfig.cpp:3172 -msgid "Align the model to the given point." -msgstr "모델을 지정된 점에 맞춥니다." - -#: src/libslic3r/PrintConfig.cpp:3177 -msgid "Cut model at the given Z." -msgstr "지정된 Z에서 모델을 잘라냅니다." - -#: src/libslic3r/PrintConfig.cpp:3198 -msgid "Center" -msgstr "중앙" - -#: src/libslic3r/PrintConfig.cpp:3199 -msgid "Center the print around the given center." -msgstr "지정된 점을 중심으로 인쇄 합니다." - -#: src/libslic3r/PrintConfig.cpp:3203 -msgid "Don't arrange" -msgstr "준비하지 마십시오" - -#: src/libslic3r/PrintConfig.cpp:3204 -msgid "" -"Do not rearrange the given models before merging and keep their original XY " -"coordinates." -msgstr "" -"병합하기 전에 지정된 모델을 재정렬하고 원래 XY 좌표를 유지하지 마십시오." - -#: src/libslic3r/PrintConfig.cpp:3207 -msgid "Duplicate" -msgstr "복사" - -#: src/libslic3r/PrintConfig.cpp:3208 -msgid "Multiply copies by this factor." -msgstr "이 계수로 복사본을 곱합니다." - -#: src/libslic3r/PrintConfig.cpp:3212 -msgid "Duplicate by grid" -msgstr "모눈에 따라 복제" - -#: src/libslic3r/PrintConfig.cpp:3213 -msgid "Multiply copies by creating a grid." -msgstr "그리드를 만들어 복사본을 곱합니다." - -#: src/libslic3r/PrintConfig.cpp:3216 -msgid "Merge" -msgstr "병합" - -#: src/libslic3r/PrintConfig.cpp:3217 -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:3222 -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:3226 -msgid "Rotation angle around the Z axis in degrees." -msgstr "Z 축 주위 회전 각도입니다." - -#: src/libslic3r/PrintConfig.cpp:3230 -msgid "Rotate around X" -msgstr "X 주위 회전" - -#: src/libslic3r/PrintConfig.cpp:3231 -msgid "Rotation angle around the X axis in degrees." -msgstr "X 축을 중심 회전 각도 입니다." - -#: src/libslic3r/PrintConfig.cpp:3235 -msgid "Rotate around Y" -msgstr "Y 주위로 회전" - -#: src/libslic3r/PrintConfig.cpp:3236 -msgid "Rotation angle around the Y axis in degrees." -msgstr "Y 축을 중심 회전 각도 입니다." - -#: src/libslic3r/PrintConfig.cpp:3241 -msgid "Scaling factor or percentage." -msgstr "배율 인수 또는 백분율입니다." - -#: src/libslic3r/PrintConfig.cpp:3246 -msgid "" -"Detect unconnected parts in the given model(s) and split them into separate " -"objects." -msgstr "" -"지정 된 모델에서 연결 되지 않은 부품을 감지 하여 별도의 객체로 분할 합니다." - -#: src/libslic3r/PrintConfig.cpp:3249 -msgid "Scale to Fit" -msgstr "크기에 맞게 조정" - -#: src/libslic3r/PrintConfig.cpp:3250 -msgid "Scale to fit the given volume." -msgstr "지정 된 볼륨에 맞게 크기를 조정 합니다." - -#: src/libslic3r/PrintConfig.cpp:3259 -msgid "Ignore non-existent config files" -msgstr "존재 하지 않는 구성 파일 무시" - -#: src/libslic3r/PrintConfig.cpp:3260 -msgid "Do not fail if a file supplied to --load does not exist." -msgstr "로드에 제공 된 파일이 없는 경우 실패 하지 않습니다." - -#: src/libslic3r/PrintConfig.cpp:3263 -msgid "Load config file" -msgstr "구성 파일 로드" - -#: src/libslic3r/PrintConfig.cpp:3264 -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:3267 -msgid "Output File" -msgstr "출력 파일" - -#: src/libslic3r/PrintConfig.cpp:3268 -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:3278 -msgid "Data directory" -msgstr "데이터 디렉터리" - -#: src/libslic3r/PrintConfig.cpp:3279 -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:3282 -msgid "Logging level" -msgstr "로깅 수준" - -#: src/libslic3r/PrintConfig.cpp:3283 -msgid "" -"Messages with severity lower or eqal to the loglevel will be printed out. 0:" -"trace, 1:debug, 2:info, 3:warning, 4:error, 5:fatal" -msgstr "" -"로그 수준에 대한 심각도가 낮거나 eqal인 메시지가 인쇄됩니다. 0:추적, 1:디버" -"그, 2:정보, 3:경고, 4:오류, 5:치명적" - -#: src/libslic3r/PrintConfig.cpp:3288 -msgid "Render with a software renderer" -msgstr "소프트웨어 렌더러를 사용 하 여 렌더링" - -#: src/libslic3r/PrintConfig.cpp:3289 -msgid "" -"Render with a software renderer. The bundled MESA software renderer is " -"loaded instead of the default OpenGL driver." -msgstr "" -"소프트웨어 렌더러를 사용 하여 렌더링 합니다. 번들 메사 소프트웨어 렌더러는 기" -"본 OpenGL 드라이버 대신 로드 됩니다." - -#: src/libslic3r/PrintObject.cpp:110 -msgid "Processing triangulated mesh" -msgstr "삼각 측정 메시 처리" - -#: src/libslic3r/PrintObject.cpp:141 -msgid "Generating perimeters" -msgstr "둘레 생성" - -#: src/libslic3r/PrintObject.cpp:251 -msgid "Preparing infill" -msgstr "채우기 준비" - -#: src/libslic3r/PrintObject.cpp:391 -msgid "Generating support material" -msgstr "지원할 서포트 생성" - -#: src/libslic3r/GCode/PreviewData.cpp:176 -msgid "Mixed" -msgstr "혼합" - -#: src/libslic3r/GCode/PreviewData.cpp:396 -msgid "Height (mm)" -msgstr "높이 (mm)" - -#: src/libslic3r/GCode/PreviewData.cpp:398 -msgid "Width (mm)" -msgstr "폭 (mm)" - -#: src/libslic3r/GCode/PreviewData.cpp:400 -msgid "Speed (mm/s)" -msgstr "속도 (mm/s)" - -#: src/libslic3r/GCode/PreviewData.cpp:402 -msgid "Volumetric flow rate (mm3/s)" -msgstr "용적 유량값 (mm3/s)" - -#: src/libslic3r/GCode/PreviewData.cpp:493 -msgid "Default print color" -msgstr "기본 인쇄 색상" - -#: src/libslic3r/GCode/PreviewData.cpp:500 -#, c-format -msgid "up to %.2f mm" -msgstr "최대%.2f mm" - -#: src/libslic3r/GCode/PreviewData.cpp:504 -#, c-format -msgid "above %.2f mm" -msgstr "above %.2f mm" - -#: src/libslic3r/GCode/PreviewData.cpp:509 -#, c-format -msgid "%.2f - %.2f mm" -msgstr "%.2f - %.2f mm" \ No newline at end of file diff --git a/resources/localization/ko_KR/PrusaSlicer.mo b/resources/localization/ko_KR/PrusaSlicer.mo new file mode 100644 index 00000000000..8e1edfd474b Binary files /dev/null and b/resources/localization/ko_KR/PrusaSlicer.mo differ diff --git a/resources/localization/ko_KR/PrusaSlicer_kr.po b/resources/localization/ko_KR/PrusaSlicer_kr.po new file mode 100644 index 00000000000..395df5e026e --- /dev/null +++ b/resources/localization/ko_KR/PrusaSlicer_kr.po @@ -0,0 +1,7441 @@ +msgid "" +msgstr "" +"Project-Id-Version: slic3rkorean\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-09 14:34+0200\n" +"PO-Revision-Date: 2019-05-23 23:51+0900\n" +"Last-Translator: lee hak-min \n" +"Language-Team: ulsanether\n" +"Language: ko_KR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Crowdin-Project: slic3rkorean\n" +"X-Crowdin-Language: ko\n" +"X-Crowdin-File: ko_KR.po\n" + +#: src/slic3r/GUI/AboutDialog.cpp:194 +#, c-format +msgid "About %s" +msgstr "%s에 대하여" + +#: src/slic3r/GUI/AboutDialog.cpp:64 src/slic3r/GUI/MainFrame.cpp:52 +msgid "Version" +msgstr "버전" + +#: src/slic3r/GUI/BedShapeDialog.cpp:43 +msgid "Shape" +msgstr "모양" + +#: src/slic3r/GUI/BedShapeDialog.cpp:51 +msgid "Rectangular" +msgstr "직사각형" + +#: src/slic3r/GUI/BedShapeDialog.cpp:55 src/slic3r/GUI/GUI_ObjectManipulation.cpp:118 +#: src/slic3r/GUI/Plater.cpp:136 src/slic3r/GUI/Tab.cpp:2185 +msgid "Size" +msgstr "사이즈" + +#: src/slic3r/GUI/BedShapeDialog.cpp:56 +msgid "Size in X and Y of the rectangular plate." +msgstr "사격형 플레이트 X 및 Y 크기." + +#: src/slic3r/GUI/BedShapeDialog.cpp:62 +msgid "Origin" +msgstr "원본" + +#: src/slic3r/GUI/BedShapeDialog.cpp:63 +msgid "Distance of the 0,0 G-code coordinate from the front left corner of the rectangle." +msgstr "사각형의 전면 왼쪽된 모서리에서 0, 0 G-코드 좌표 거리입니다." + +#: src/slic3r/GUI/BedShapeDialog.cpp:67 +msgid "Circular" +msgstr "원형" + +#: src/slic3r/GUI/BedShapeDialog.cpp:70 src/slic3r/GUI/ConfigWizard.cpp:111 src/slic3r/GUI/ConfigWizard.cpp:544 +#: src/slic3r/GUI/ConfigWizard.cpp:558 src/slic3r/GUI/GUI_ObjectManipulation.cpp:115 +#: src/slic3r/GUI/RammingChart.cpp:81 src/slic3r/GUI/WipeTowerDialog.cpp:84 src/libslic3r/PrintConfig.cpp:59 +#: src/libslic3r/PrintConfig.cpp:66 src/libslic3r/PrintConfig.cpp:75 src/libslic3r/PrintConfig.cpp:209 +#: src/libslic3r/PrintConfig.cpp:284 src/libslic3r/PrintConfig.cpp:292 src/libslic3r/PrintConfig.cpp:342 +#: src/libslic3r/PrintConfig.cpp:352 src/libslic3r/PrintConfig.cpp:472 src/libslic3r/PrintConfig.cpp:483 +#: src/libslic3r/PrintConfig.cpp:501 src/libslic3r/PrintConfig.cpp:679 src/libslic3r/PrintConfig.cpp:1165 +#: src/libslic3r/PrintConfig.cpp:1226 src/libslic3r/PrintConfig.cpp:1244 src/libslic3r/PrintConfig.cpp:1262 +#: src/libslic3r/PrintConfig.cpp:1314 src/libslic3r/PrintConfig.cpp:1324 src/libslic3r/PrintConfig.cpp:1445 +#: src/libslic3r/PrintConfig.cpp:1453 src/libslic3r/PrintConfig.cpp:1494 src/libslic3r/PrintConfig.cpp:1502 +#: src/libslic3r/PrintConfig.cpp:1512 src/libslic3r/PrintConfig.cpp:1520 src/libslic3r/PrintConfig.cpp:1528 +#: src/libslic3r/PrintConfig.cpp:1611 src/libslic3r/PrintConfig.cpp:1827 src/libslic3r/PrintConfig.cpp:1897 +#: src/libslic3r/PrintConfig.cpp:1931 src/libslic3r/PrintConfig.cpp:2123 src/libslic3r/PrintConfig.cpp:2130 +#: src/libslic3r/PrintConfig.cpp:2137 src/libslic3r/PrintConfig.cpp:2167 src/libslic3r/PrintConfig.cpp:2177 +#: src/libslic3r/PrintConfig.cpp:2187 src/libslic3r/PrintConfig.cpp:2293 src/libslic3r/PrintConfig.cpp:2368 +#: src/libslic3r/PrintConfig.cpp:2377 src/libslic3r/PrintConfig.cpp:2386 src/libslic3r/PrintConfig.cpp:2396 +#: src/libslic3r/PrintConfig.cpp:2440 src/libslic3r/PrintConfig.cpp:2450 src/libslic3r/PrintConfig.cpp:2469 +#: src/libslic3r/PrintConfig.cpp:2479 src/libslic3r/PrintConfig.cpp:2488 src/libslic3r/PrintConfig.cpp:2506 +#: src/libslic3r/PrintConfig.cpp:2521 src/libslic3r/PrintConfig.cpp:2532 src/libslic3r/PrintConfig.cpp:2545 +#: src/libslic3r/PrintConfig.cpp:2555 +msgid "mm" +msgstr "mm" + +#: src/slic3r/GUI/BedShapeDialog.cpp:71 src/libslic3r/PrintConfig.cpp:676 +msgid "Diameter" +msgstr "노즐 직경" + +#: src/slic3r/GUI/BedShapeDialog.cpp:72 +msgid "Diameter of the print bed. It is assumed that origin (0,0) is located in the center." +msgstr "인쇄 침대의 직경. 원점 (0,0) 은 중심에 있다고 가정합니다." + +#: src/slic3r/GUI/BedShapeDialog.cpp:76 src/slic3r/GUI/GUI_Preview.cpp:239 +#: src/libslic3r/GCode/PreviewData.cpp:175 +msgid "Custom" +msgstr "사용자 정의" + +#: src/slic3r/GUI/BedShapeDialog.cpp:80 +msgid "Load shape from STL..." +msgstr "STL파일 로드." + +#: src/slic3r/GUI/BedShapeDialog.cpp:126 +msgid "Settings" +msgstr "설정" + +#: src/slic3r/GUI/BedShapeDialog.cpp:299 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "침대 모양 (STL/OBJ/AMF/3MF/PRUSA) 에서 가져오려는 파일을 선택 합니다:" + +#: src/slic3r/GUI/BedShapeDialog.cpp:316 src/slic3r/GUI/GUI_ObjectList.cpp:1252 +msgid "Error! " +msgstr "에러! " + +#: src/slic3r/GUI/BedShapeDialog.cpp:325 +msgid "The selected file contains no geometry." +msgstr "선택한 파일에는 형상이 없는 포함 되어 있습니다." + +#: src/slic3r/GUI/BedShapeDialog.cpp:329 +msgid "The selected file contains several disjoint areas. This is not supported." +msgstr "선택한 파일 여러 분리 된 영역을 포함 되어 있습니다. 이 지원 되지 않습니다." + +#: src/slic3r/GUI/BedShapeDialog.hpp:44 src/slic3r/GUI/ConfigWizard.cpp:507 +msgid "Bed Shape" +msgstr "배드 모양" + +#: src/slic3r/GUI/BonjourDialog.cpp:55 +msgid "Network lookup" +msgstr "네트워크 조회" + +#: src/slic3r/GUI/BonjourDialog.cpp:72 +msgid "Address" +msgstr "주소" + +#: src/slic3r/GUI/BonjourDialog.cpp:73 +msgid "Hostname" +msgstr "호스트이름" + +#: src/slic3r/GUI/BonjourDialog.cpp:74 +msgid "Service name" +msgstr "서비스 이름" + +#: src/slic3r/GUI/BonjourDialog.cpp:76 +msgid "OctoPrint version" +msgstr "옥토프린트 버전" + +#: src/slic3r/GUI/BonjourDialog.cpp:218 +msgid "Searching for devices" +msgstr "디바이스 검색" + +#: src/slic3r/GUI/BonjourDialog.cpp:225 +msgid "Finished" +msgstr "완료" + +#: src/slic3r/GUI/ButtonsDescription.cpp:15 +msgid "Buttons And Text Colors Description" +msgstr "버튼 및 텍스트 색상 설명" + +#: src/slic3r/GUI/ButtonsDescription.cpp:40 +msgid "Value is the same as the system value" +msgstr "값은 시스템 값과 같습니다" + +#: src/slic3r/GUI/ButtonsDescription.cpp:57 +msgid "Value was changed and is not equal to the system value or the last saved preset" +msgstr "값이 변경 되었고 시스템 값 또는 마지막으로 저장 된 사전 설정과 같지 않음" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:17 +msgid "Upgrade" +msgstr "업그레이드" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:19 +msgid "Downgrade" +msgstr "다운그레이드" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:21 +msgid "Before roll back" +msgstr "롤백 전에" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:23 +msgid "User" +msgstr "사용자" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:26 +msgid "Unknown" +msgstr "알 수 없음" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:38 +msgid "Active: " +msgstr "활성: " + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:44 +msgid "slic3r version" +msgstr "slic3r에 대하여" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 src/slic3r/GUI/Preset.cpp:1250 +msgid "print" +msgstr "프린트" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:46 +msgid "filaments" +msgstr "필라멘트" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:47 src/slic3r/GUI/Preset.cpp:1254 +msgid "printer" +msgstr "프린터" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:51 src/slic3r/GUI/Tab.cpp:872 +msgid "vendor" +msgstr "제조 회사" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:51 +msgid "version" +msgstr "버전" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 +msgid "min slic3r version" +msgstr "최소 slic3r 버전" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:54 +msgid "max slic3r version" +msgstr "최대 slic3r 버전" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:57 +msgid "model" +msgstr "모델" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:57 +msgid "variants" +msgstr "변종" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 +msgid "Incompatible with this Slic3r" +msgstr "이 Slic3r와 호환 되지 않음" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:72 +msgid "Activate" +msgstr "활성화" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:98 +msgid "Configuration Snapshots" +msgstr "구성 스냅숏" + +#: src/slic3r/GUI/ConfigWizard.cpp:111 +msgid "nozzle" +msgstr "노즐" + +#: src/slic3r/GUI/ConfigWizard.cpp:115 +msgid "Alternate nozzles:" +msgstr "대체 노즐:" + +#: src/slic3r/GUI/ConfigWizard.cpp:181 +msgid "All standard" +msgstr "모두 표준설정" + +#: src/slic3r/GUI/ConfigWizard.cpp:182 src/slic3r/GUI/Tab.cpp:2909 +msgid "All" +msgstr "모두 선택" + +#: src/slic3r/GUI/ConfigWizard.cpp:183 src/slic3r/GUI/Plater.cpp:414 src/libslic3r/GCode/PreviewData.cpp:162 +msgid "None" +msgstr "없음" + +#: src/slic3r/GUI/ConfigWizard.cpp:298 +#, c-format +msgid "Welcome to the %s Configuration Wizard" +msgstr "%s에 오신것을 환영 합니다." + +#: src/slic3r/GUI/ConfigWizard.cpp:284 +msgid "Welcome" +msgstr "환영합니다" + +#: src/slic3r/GUI/ConfigWizard.cpp:288 src/slic3r/GUI/GUI_App.cpp:600 +#, c-format +msgid "Run %s" +msgstr "%s 실행" + +#: src/slic3r/GUI/ConfigWizard.cpp:290 +#, c-format +msgid "" +"Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial configuration; just a few settings " +"and you will be ready to print." +msgstr "" +"안녕하세요, Slic3r prusa 버전에 오신 것을 환영 합니다! 이 %s 초기 구성;에 도움이 됩니다. 단지 몇 가지 설정 하 " +"고 당신은 인쇄 준비가 될 것입니다." + +#: src/slic3r/GUI/ConfigWizard.cpp:294 +msgid "Remove user profiles - install from scratch (a snapshot will be taken beforehand)" +msgstr "사용자 프로필 제거-처음부터 설치 (스냅숏은 사전에 수행 됩니다)" + +#: src/slic3r/GUI/ConfigWizard.cpp:342 +#, c-format +msgid "%s Family" +msgstr "%s의 가족들" + +#: src/slic3r/GUI/ConfigWizard.cpp:379 +msgid "Custom Printer Setup" +msgstr "사용자 지정 프린터 설정" + +#: src/slic3r/GUI/ConfigWizard.cpp:379 +msgid "Custom Printer" +msgstr "사용자 정의 프린터" + +#: src/slic3r/GUI/ConfigWizard.cpp:381 +msgid "Define a custom printer profile" +msgstr "사용자 정의 프린터 프로필 정의" + +#: src/slic3r/GUI/ConfigWizard.cpp:383 +msgid "Custom profile name:" +msgstr "사용자 지정 프로필 이름:" + +#: src/slic3r/GUI/ConfigWizard.cpp:407 +msgid "Automatic updates" +msgstr "자동 업데이트" + +#: src/slic3r/GUI/ConfigWizard.cpp:407 +msgid "Updates" +msgstr "업데이트" + +#: src/slic3r/GUI/ConfigWizard.cpp:415 src/slic3r/GUI/Preferences.cpp:61 +msgid "Check for application updates" +msgstr "프로그램 업데이트 확인" + +#: src/slic3r/GUI/ConfigWizard.cpp:419 +#, c-format +msgid "" +"If enabled, %s checks for new application versions online. When a new version becomes available, a " +"notification is displayed at the next application startup (never during program usage). This is only a " +"notification mechanisms, no automatic installation is done." +msgstr "" +"활성화 된 경우 %s은 온라인의 새 버전을 확인합니다. 새 버전을 사용할 수있게되면 다음 응용 프로그램 시작시 알림" +"이 표시됩니다 (프로그램 사용 중에는 절대로 사용하지 마십시오).이것은 알림 메커니즘 일뿐 자동 설치가 수행되지 " +"않습니다." + +#: src/slic3r/GUI/ConfigWizard.cpp:425 src/slic3r/GUI/Preferences.cpp:69 +msgid "Update built-in Presets automatically" +msgstr "기존의 설정 자동 업데이트" + +#: src/slic3r/GUI/ConfigWizard.cpp:429 +#, c-format +msgid "" +"If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded " +"into a separate temporary location.When a new preset version becomes available it is offered at application " +"startup." +msgstr "" +"활성화 된 경우 %s은 백그라운드에서 내장 시스템 사전 설정의 업데이트를 다운로드합니다. 이러한 업데이트는 별도" +"의 임시 위치에 다운로드됩니다. 새로운 사전 설정 버전을 사용할 수있게되면 응용 프로그램 시작시 제공됩니다." + +#: src/slic3r/GUI/ConfigWizard.cpp:432 +msgid "Updates are never applied without user's consent and never overwrite user's customized settings." +msgstr "업데이트는 사용자의 동의없이 적용되지 않으며 사용자의 사용자 지정된 설정을 덮어 쓰지 않습니다." + +#: src/slic3r/GUI/ConfigWizard.cpp:437 +msgid "Additionally a backup snapshot of the whole configuration is created before an update is applied." +msgstr "또한 업데이트가 적용되기 전에 전체 구성의 백업 스냅 샷이 생성됩니다." + +#: src/slic3r/GUI/ConfigWizard.cpp:444 +msgid "Other Vendors" +msgstr "다른 공급 업체" + +#: src/slic3r/GUI/ConfigWizard.cpp:446 +#, c-format +msgid "Pick another vendor supported by %s:" +msgstr "%s가 지원하는 다른 공급 업체를 선택하십시오:" + +#: src/slic3r/GUI/ConfigWizard.cpp:492 +msgid "Firmware Type" +msgstr "펌웨어 타입" + +#: src/slic3r/GUI/ConfigWizard.cpp:492 src/slic3r/GUI/Tab.cpp:1957 +msgid "Firmware" +msgstr "펌웨어" + +#: src/slic3r/GUI/ConfigWizard.cpp:473 +msgid "Choose the type of firmware used by your printer." +msgstr "프린터에 패치할 펌웨어를 선택하세요." + +#: src/slic3r/GUI/ConfigWizard.cpp:507 +msgid "Bed Shape and Size" +msgstr "배드 모양과 크기" + +#: src/slic3r/GUI/ConfigWizard.cpp:510 +msgid "Set the shape of your printer's bed." +msgstr "프린터 배드모양을 설정하세요." + +#: src/slic3r/GUI/ConfigWizard.cpp:524 +msgid "Filament and Nozzle Diameters" +msgstr "필라멘트와 노즐 크기" + +#: src/slic3r/GUI/ConfigWizard.cpp:524 +msgid "Print Diameters" +msgstr "인쇄 직경" + +#: src/slic3r/GUI/ConfigWizard.cpp:540 +msgid "Enter the diameter of your printer's hot end nozzle." +msgstr "핫 엔드 노즐 직경을 입력하십시오." + +#: src/slic3r/GUI/ConfigWizard.cpp:543 +msgid "Nozzle Diameter:" +msgstr "노즐 직경:" + +#: src/slic3r/GUI/ConfigWizard.cpp:553 +msgid "Enter the diameter of your filament." +msgstr "필라멘트의 직경을 입력하십시오." + +#: src/slic3r/GUI/ConfigWizard.cpp:554 +msgid "" +"Good precision is required, so use a caliper and do multiple measurements along the filament, then compute " +"the average." +msgstr "정밀도가 필요하므로 캘리퍼를 사용하여 필라멘트를 따라 여러 번 측정 한 다음 평균을 계산하십시오." + +#: src/slic3r/GUI/ConfigWizard.cpp:557 +msgid "Filament Diameter:" +msgstr "필라멘트 직경:" + +#: src/slic3r/GUI/ConfigWizard.cpp:575 +msgid "Extruder and Bed Temperatures" +msgstr "익스트루더와 배드 온도" + +#: src/slic3r/GUI/ConfigWizard.cpp:575 +msgid "Temperatures" +msgstr "온도" + +#: src/slic3r/GUI/ConfigWizard.cpp:591 +msgid "Enter the temperature needed for extruding your filament." +msgstr "필라멘트 압출에 필요한 온도를 입력하십시오." + +#: src/slic3r/GUI/ConfigWizard.cpp:592 +msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS." +msgstr "보통 PLA의 경우 160 ~ 230 ° C, ABS의 경우 215 ~ 250 ° C입니다." + +#: src/slic3r/GUI/ConfigWizard.cpp:595 +msgid "Extrusion Temperature:" +msgstr "출력 온도 :" + +#: src/slic3r/GUI/ConfigWizard.cpp:596 src/slic3r/GUI/ConfigWizard.cpp:610 +msgid "°C" +msgstr "°C" + +#: src/slic3r/GUI/ConfigWizard.cpp:605 +msgid "Enter the bed temperature needed for getting your filament to stick to your heated bed." +msgstr "필라멘트가 핫배드에 접착하는데 필요한 배드온도를 입력하십시오." + +#: src/slic3r/GUI/ConfigWizard.cpp:606 +msgid "A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have no heated bed." +msgstr "보통은 PLA의 경우 60 ° C이고 ABS의 경우 110 ° C입니다. 핫배드가 없는 경우에는 0으로 두십시오." + +#: src/slic3r/GUI/ConfigWizard.cpp:609 +msgid "Bed Temperature:" +msgstr "배드 온도 :" + +#: src/slic3r/GUI/ConfigWizard.cpp:1001 +msgid "Select all standard printers" +msgstr "이 프로파일과 호환 가능한 프린터를 선택하세요" + +#: src/slic3r/GUI/ConfigWizard.cpp:1004 +msgid "< &Back" +msgstr "< &뒤로" + +#: src/slic3r/GUI/ConfigWizard.cpp:1005 +msgid "&Next >" +msgstr "&다음 >" + +#: src/slic3r/GUI/ConfigWizard.cpp:1006 +msgid "&Finish" +msgstr "&완료" + +#: src/slic3r/GUI/ConfigWizard.cpp:1007 src/slic3r/GUI/FirmwareDialog.cpp:142 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:37 src/slic3r/GUI/ProgressStatusBar.cpp:28 +msgid "Cancel" +msgstr "취소" + +#: src/slic3r/GUI/ConfigWizard.cpp:1021 +msgid "Prusa FFF Technology Printers" +msgstr "Prusa FFF 방식 프린터" + +#: src/slic3r/GUI/ConfigWizard.cpp:1024 +msgid "Prusa MSLA Technology Printers" +msgstr "Prusa MSLA 방식 프린터" + +#: src/slic3r/GUI/ConfigWizard.cpp:1111 +msgid "Configuration Wizard" +msgstr "구성 마법사" + +#: src/slic3r/GUI/ConfigWizard.cpp:1112 +msgid "Configuration &Wizard" +msgstr "구성 마법사" + +#: src/slic3r/GUI/ConfigWizard.cpp:1114 +msgid "Configuration Assistant" +msgstr "구성 도우미" + +#: src/slic3r/GUI/ConfigWizard.cpp:1115 +msgid "Configuration &Assistant" +msgstr "구성 도우미" + +#: src/slic3r/GUI/Field.cpp:112 +msgid "default value" +msgstr "기본값" + +#: src/slic3r/GUI/Field.cpp:115 +msgid "parameter name" +msgstr "매개 변수 이름" + +#: src/slic3r/GUI/Field.cpp:143 +#, c-format +msgid "%s doesn't support percentage" +msgstr "%s 이(가) 백분율을 지원하지 않음" + +#: src/slic3r/GUI/Field.cpp:157 src/slic3r/GUI/Field.cpp:180 +msgid "Invalid numeric input." +msgstr "숫자 입력이 잘못 되었습니다." + +#: src/slic3r/GUI/Field.cpp:162 +msgid "Input value is out of range" +msgstr "Input value is out of range" + +#: src/slic3r/GUI/Field.cpp:188 +#, c-format +msgid "" +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." +msgstr "" +"%d%% 대신 %d %s 를 의미 합니까?\n" +"이 값을 %d%%,로 변경 하려면 예를 선택 하십시오. \n" +"또는 %d %s가 올바른 값 인지 확인 하십시오." + +#: src/slic3r/GUI/Field.cpp:191 +msgid "Parameter validation" +msgstr "매개 변수 이름" + +#: src/slic3r/GUI/FirmwareDialog.cpp:141 +msgid "Flash!" +msgstr "완료!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:143 +msgid "Flashing in progress. Please do not disconnect the printer!" +msgstr "아직 플래싱 중입니다. 커넥트를 분리하지 마십시오!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:187 +msgid "Flashing failed: " +msgstr "펌웨어 플래싱 실패: " + +#: src/slic3r/GUI/FirmwareDialog.cpp:268 +msgid "Flashing succeeded!" +msgstr "플래싱 성공!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:269 +msgid "Flashing failed. Please see the avrdude log below." +msgstr "플래시 실패. 아래의 로그를 확인하세요." + +#: src/slic3r/GUI/FirmwareDialog.cpp:270 +msgid "Flashing cancelled." +msgstr "깜빡임 취소됨." + +#: src/slic3r/GUI/FirmwareDialog.cpp:308 +#, c-format +msgid "" +"This firmware hex file does not match the printer model.\n" +"The hex file is intended for: %s\n" +"Printer reported: %s\n" +"\n" +"Do you want to continue and flash this hex file anyway?\n" +"Please only continue if you are sure this is the right thing to do." +msgstr "" +"이 펌웨어 hex 파일이 프린터 모델과 일치 하지 않습니다.\n" +"Hex 파일은 다음을 위한 것입니다: %s\n" +"보고 된 프린터: %s\n" +"\n" +"그래도이 hex 파일을 계속 플래싱 하시겠습니까?\n" +"이것이 옳은 일 이라고 확신 하는 경우에만 계속 하십시오." + +#: src/slic3r/GUI/FirmwareDialog.cpp:395 src/slic3r/GUI/FirmwareDialog.cpp:431 +#, c-format +msgid "Multiple %s devices found. Please only connect one at a time for flashing." +msgstr "여러 %s 장치를 찾았습니다. 깜박이는 경우에는 한 번에 하나씩만 연결 하십시오." + +#: src/slic3r/GUI/FirmwareDialog.cpp:412 +#, c-format +msgid "" +"The %s device was not found.\n" +"If the device is connected, please press the Reset button next to the USB connector ..." +msgstr "" +"%s 장치를 찾을 하지 않았습니다.\n" +"장치가 연결 된 경우 USB 커넥터 옆에 있는 리셋 단추를 누르십시오." + +#: src/slic3r/GUI/FirmwareDialog.cpp:525 +#, c-format +msgid "The %s device could not have been found" +msgstr "%s 장치를 찾을 수 없습니다" + +#: src/slic3r/GUI/FirmwareDialog.cpp:603 +#, c-format +msgid "Error accessing port at %s: %s" +msgstr "%s 포트에 액세스 하는 중 오류가 발생 했습니다 :%s" + +#: src/slic3r/GUI/FirmwareDialog.cpp:605 +#, c-format +msgid "Error: %s" +msgstr "에러: %s" + +#: src/slic3r/GUI/FirmwareDialog.cpp:735 +msgid "Firmware flasher" +msgstr "펌웨어 플래셔" + +#: src/slic3r/GUI/FirmwareDialog.cpp:762 +msgid "Firmware image:" +msgstr "펌웨어 이미지:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:766 +msgid "Serial port:" +msgstr "시리얼 포트:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:768 +msgid "Autodetected" +msgstr "자동 감지" + +#: src/slic3r/GUI/FirmwareDialog.cpp:769 +msgid "Rescan" +msgstr "재검색" + +#: src/slic3r/GUI/FirmwareDialog.cpp:776 +msgid "Progress:" +msgstr "진행:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:779 +msgid "Status:" +msgstr "지위:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:780 +msgid "Ready" +msgstr "준비" + +#: src/slic3r/GUI/FirmwareDialog.cpp:800 +msgid "Advanced: Output log" +msgstr "고급: 출력 로그" + +#: src/slic3r/GUI/FirmwareDialog.cpp:811 src/slic3r/GUI/PrintHostDialogs.cpp:161 +msgid "Close" +msgstr "닫기" + +#: src/slic3r/GUI/FirmwareDialog.cpp:859 +msgid "" +"Are you sure you want to cancel firmware flashing?\n" +"This could leave your printer in an unusable state!" +msgstr "" +"펌웨어 플래싱을 취소하시겠습니까?\n" +"프린터가 사용할 수 없는 상태가 될 수 있습니다!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:860 +msgid "Confirmation" +msgstr "확인" + +#: src/slic3r/GUI/FirmwareDialog.cpp:863 +msgid "Cancelling..." +msgstr "취소 중...." + +#: src/slic3r/GUI/GLCanvas3D.cpp:709 +msgid "Detected object outside print volume" +msgstr "출력물이 프린터 출력 사이즈를 넘었습니다" + +#: src/slic3r/GUI/GLCanvas3D.cpp:710 +msgid "Detected toolpath outside print volume" +msgstr "인쇄 영역 밖에 있는 공구 경로가 감지 되었습니다" + +#: src/slic3r/GUI/GLCanvas3D.cpp:711 +msgid "Some objects are not visible when editing supports" +msgstr "편집 지원 시 일부 객체가 표시 되지 않음" + +#: src/slic3r/GUI/GLCanvas3D.cpp:713 +msgid "" +"Detected object outside print volume\n" +"Resolve a clash to continue slicing/export process correctly" +msgstr "" +"인쇄 볼륨 외부에서 감지 된 오브젝트\n" +"조각화/내보내기 프로세스를 올바르게 계속 하려면 충돌 해결" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:35 src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:195 +msgid "Rotate lower part upwards" +msgstr "아래쪽 부분을 위쪽으로 회전" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:36 src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:198 +msgid "Perform cut" +msgstr "절단 실행" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" +msgstr "객체 잘라내기:" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +msgid "Cut [C]" +msgstr "자르기 [C]" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3006 +msgid "Cut" +msgstr "자르기" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:193 +msgid "Keep upper part" +msgstr "상위 부분 유지" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:194 +msgid "Keep lower part" +msgstr "낮은 부분 유지" + +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 +msgid "Place on face" +msgstr "면 배치 " + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:52 +msgid "Move" +msgstr "이동" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:176 +msgid "Position (mm)" +msgstr "위치 (mm)" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:176 +msgid "Displacement (mm)" +msgstr "변위 (mm)" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +msgid "Rotate [R]" +msgstr "회전 [R]" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:491 +msgid "Rotation (deg)" +msgstr "회전 (°)" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:51 +msgid "Scale [S]" +msgstr "크기 [S]" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:276 +msgid "Scale (%)" +msgstr "스케일 (%)" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:597 +msgid "Left mouse click - add point" +msgstr "마우스 왼쪽 클릭-점 추가" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:598 +msgid "Right mouse click - remove point" +msgstr "마우스 오른쪽 버튼 클릭-점 제거" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:599 +msgid "Shift + Left (+ drag) - select point(s)" +msgstr "Shift + 왼쪽 (+ 끌기)-점 선택" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:840 +msgid "Head diameter" +msgstr "헤드 지름: " + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:856 +msgid "Lock supports under new islands" +msgstr "새 고립 영역에서 잠금 지원" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:860 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1249 +msgid "Remove selected points" +msgstr "선택한 점 제거" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:864 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:921 +msgid "Remove all points" +msgstr "모든 점 제거" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:869 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1252 +msgid "Apply changes" +msgstr "변경 내용을 적용" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:874 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1253 +msgid "Discard changes" +msgstr "변경사항을 취소" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:881 +msgid "Minimal points distance" +msgstr "최소 포인트 거리: " + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:882 src/libslic3r/PrintConfig.cpp:2534 +msgid "Support points density" +msgstr "지원 포인트 밀도" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:911 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1255 +msgid "Auto-generate points" +msgstr "점 자동 생성" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:917 +msgid "Manual editing" +msgstr "수동 편집" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:934 +msgid "Clipping of view" +msgstr "클립핑 보기" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1007 +msgid "SLA Support Points" +msgstr "SLA 지원 포인트" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:767 +msgid "Do you want to save your manually edited support points ?\n" +msgstr "수동으로 편집한 지원 지점을 저장 하시겠습니까?\n" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:768 +msgid "Save changes?" +msgstr "변경 사항을 저장 하 시겠습니까?" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:897 +msgid "" +"Autogeneration will erase all manually edited points.\n" +"\n" +"Are you sure you want to do it?\n" +msgstr "" +"자동 생성은 수동으로 편집한 모든 점을 지웁니다.\n" +"\n" +"당신은 당신은 그렇게 하시겠습니까?\n" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:899 src/slic3r/GUI/GUI.cpp:288 +#: src/slic3r/GUI/WipeTowerDialog.cpp:44 src/slic3r/GUI/WipeTowerDialog.cpp:328 +msgid "Warning" +msgstr "위험" + +#: src/slic3r/GUI/GUI.cpp:147 src/slic3r/GUI/Tab.cpp:2720 +msgid "It's impossible to print multi-part object(s) with SLA technology." +msgstr "SLA 방식을 사용 하여 멀티파트를 인쇄할 수는 없습니다." + +#: src/slic3r/GUI/GUI.cpp:148 +msgid "Please check and fix your object list." +msgstr "개체 목록을 확인 하고 수정 하십시오." + +#: src/slic3r/GUI/GUI.cpp:149 src/slic3r/GUI/GUI_App.cpp:679 src/slic3r/GUI/Tab.cpp:2722 +msgid "Attention!" +msgstr "주목!" + +#: src/slic3r/GUI/GUI.cpp:282 +msgid "Notice" +msgstr "공지" + +#: src/slic3r/GUI/GUI_App.cpp:318 +msgid "Changing of an application language" +msgstr "응용 프로그램 언어 변경" + +#: src/slic3r/GUI/GUI_App.cpp:326 src/slic3r/GUI/GUI_App.cpp:335 +msgid "Recreating" +msgstr "재현" + +#: src/slic3r/GUI/GUI_App.cpp:339 +msgid "Loading of a current presets" +msgstr "현재 프리셋 불러오기" + +#: src/slic3r/GUI/GUI_App.cpp:347 +msgid "Loading of a mode view" +msgstr "모드 보기 로드" + +#: src/slic3r/GUI/GUI_App.cpp:429 +msgid "Choose one file (3MF):" +msgstr "파일 (3MF)를 선택:" + +#: src/slic3r/GUI/GUI_App.cpp:441 +msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "파일을 선택하세요 (STL/OBJ/AMF/3MF/PRUSA):" + +#: src/slic3r/GUI/GUI_App.cpp:454 +msgid "Array of language names and identifiers should have the same size." +msgstr "언어 이름과 식별자 배열은 같은 크기 여야합니다." + +#: src/slic3r/GUI/GUI_App.cpp:464 +msgid "Select the language" +msgstr "언어를 선택" + +#: src/slic3r/GUI/GUI_App.cpp:464 +msgid "Language" +msgstr "언어" + +#: src/slic3r/GUI/GUI_App.cpp:534 src/slic3r/GUI/GUI_ObjectList.cpp:1067 src/libslic3r/PrintConfig.cpp:298 +msgid "Default" +msgstr "기본값" + +# xs/src/slic3r/GUI/GUI.cpp:349 +#: src/slic3r/GUI/GUI_App.cpp:603 +msgid "&Configuration Snapshots" +msgstr "구성 스냅숏" + +#: src/slic3r/GUI/GUI_App.cpp:603 +msgid "Inspect / activate configuration snapshots" +msgstr "구성 스냅 샷 검사 / 활성화" + +#: src/slic3r/GUI/GUI_App.cpp:604 +msgid "Take Configuration &Snapshot" +msgstr "구성 스냅 샷 가져 오기" + +#: src/slic3r/GUI/GUI_App.cpp:604 +msgid "Capture a configuration snapshot" +msgstr "구성 스냅 샷 캡처" + +#: src/slic3r/GUI/GUI_App.cpp:607 +msgid "&Preferences" +msgstr "환경 설정" + +#: src/slic3r/GUI/GUI_App.cpp:613 +msgid "Application preferences" +msgstr "응용 프로그램 환경 설정" + +#: src/slic3r/GUI/GLCanvas3D.cpp:3434 +msgid "Add..." +msgstr "추가..." + +#: src/slic3r/GUI/GLCanvas3D.cpp:3455 src/slic3r/GUI/Plater.cpp:3375 +msgid "Delete all" +msgstr "전부 지우기" + +#: src/slic3r/GUI/GLCanvas3D.cpp:3491 +msgid "Paste" +msgstr "붙여넣기" + +#: src/slic3r/GUI/GLCanvas3D.cpp:3505 +msgid "Add instance" +msgstr "인스턴스 추가" + +#: src/slic3r/GUI/GLCanvas3D.cpp:3517 +msgid "Remove instance" +msgstr "인스턴스 제거" + +#: src/slic3r/GUI/GLCanvas3D.cpp:3532 +msgid "Split to objects" +msgstr "객체로 분할" + +#: src/slic3r/GUI/GLCanvas3D.cpp:3544 src/slic3r/GUI/GUI_ObjectList.cpp:1122 +msgid "Split to parts" +msgstr "파트로 분할" + +#: src/slic3r/GUI/GLCanvas3D.cpp:3559 +msgid "Layers editing" +msgstr "레이어층을 편집" + +#: src/slic3r/GUI/GUI_App.cpp:616 src/slic3r/GUI/wxExtensions.cpp:2446 +msgid "Simple" +msgstr "단순" + +#: src/slic3r/GUI/GUI_App.cpp:729 +msgid "Simple View Mode" +msgstr "단순 보기 모드" + +#: src/slic3r/GUI/GUI_App.cpp:730 src/slic3r/GUI/GUI_ObjectList.cpp:85 src/slic3r/GUI/GUI_ObjectList.cpp:541 +#: src/slic3r/GUI/Tab.cpp:1032 src/slic3r/GUI/Tab.cpp:1047 src/slic3r/GUI/Tab.cpp:1145 +#: src/slic3r/GUI/Tab.cpp:1148 src/slic3r/GUI/Tab.cpp:1551 src/slic3r/GUI/Tab.cpp:1977 +#: src/slic3r/GUI/Tab.cpp:3492 src/slic3r/GUI/wxExtensions.cpp:2556 src/libslic3r/PrintConfig.cpp:73 +#: src/libslic3r/PrintConfig.cpp:188 src/libslic3r/PrintConfig.cpp:351 src/libslic3r/PrintConfig.cpp:999 +#: src/libslic3r/PrintConfig.cpp:2210 +msgid "Advanced" +msgstr "고급" + +#: src/slic3r/GUI/GUI_App.cpp:730 +msgid "Advanced View Mode" +msgstr "고급 보기 모드" + +#: src/slic3r/GUI/GUI_App.cpp:731 src/slic3r/GUI/wxExtensions.cpp:2557 +msgid "Expert" +msgstr "전문가" + +#: src/slic3r/GUI/GUI_App.cpp:731 +msgid "Expert View Mode" +msgstr "전문가 보기 모드" + +#: src/slic3r/GUI/GUI_App.cpp:736 +msgid "Mode" +msgstr "모드" + +#: src/slic3r/GUI/GUI_App.cpp:736 +#, c-format +msgid "%s View Mode" +msgstr "%s 보기 모드" + +#: src/slic3r/GUI/GUI_App.cpp:738 +msgid "Change Application &Language" +msgstr "응용 프로그램 언어 번경" + +#: src/slic3r/GUI/GUI_App.cpp:740 +msgid "Flash printer &firmware" +msgstr "프린터 펌웨어 플래시" + +#: src/slic3r/GUI/GUI_App.cpp:740 +msgid "Upload a firmware image into an Arduino based printer" +msgstr "아두이노 기반의 프린터 이미지 업로드" + +#: src/slic3r/GUI/GUI_App.cpp:752 +msgid "Taking configuration snapshot" +msgstr "구성 스냅 샷 만들기" + +#: src/slic3r/GUI/GUI_App.cpp:752 +msgid "Snapshot name" +msgstr "스냅 샷 이름" + +#: src/slic3r/GUI/GUI_App.cpp:676 +msgid "Application will be restarted after language change." +msgstr "언어 변경 후 응용 프로그램이 다시 시작 됩니다." + +#: src/slic3r/GUI/GUI_App.cpp:677 +msgid "3D-Scene will be cleaned." +msgstr "3D-장면이 청소 됩니다." + +#: src/slic3r/GUI/GUI_App.cpp:798 +msgid "Language selection" +msgstr "국가에 맞는 언어를 선택" + +#: src/slic3r/GUI/GUI_App.cpp:795 +msgid "" +"Switching the language will trigger application restart.\n" +"You will lose content of the plater." +msgstr "언어를 전환 하면 응용 프로그램 재시작 합니다.플레이트 위 오브젝트는 모두 지워집니다." + +#: src/slic3r/GUI/GUI_App.cpp:678 +msgid "Please, check your changes before." +msgstr "이전에 변경 사항을 확인 하십시오." + +#: src/slic3r/GUI/GUI_App.cpp:706 +msgid "&Configuration" +msgstr "&구성" + +#: src/slic3r/GUI/GUI_App.cpp:726 +msgid "You have unsaved changes " +msgstr "저장되지 않은 변경 사항이 있습니다 " + +#: src/slic3r/GUI/GUI_App.cpp:726 +msgid ". Discard changes and continue anyway?" +msgstr ". 변경 사항을 취소하고 계속 하시겠습니까?" + +#: src/slic3r/GUI/GUI_App.cpp:727 +msgid "Unsaved Presets" +msgstr "저장되지 않은 기존설정" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:28 src/slic3r/GUI/GUI_ObjectList.cpp:65 src/libslic3r/PrintConfig.cpp:56 +#: src/libslic3r/PrintConfig.cpp:149 src/libslic3r/PrintConfig.cpp:380 src/libslic3r/PrintConfig.cpp:437 +#: src/libslic3r/PrintConfig.cpp:445 src/libslic3r/PrintConfig.cpp:841 src/libslic3r/PrintConfig.cpp:1025 +#: src/libslic3r/PrintConfig.cpp:1304 src/libslic3r/PrintConfig.cpp:1370 src/libslic3r/PrintConfig.cpp:1551 +#: src/libslic3r/PrintConfig.cpp:1986 src/libslic3r/PrintConfig.cpp:2042 +msgid "Layers and Perimeters" +msgstr "레이어 및 경계선" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:66 src/slic3r/GUI/Plater.cpp:431 +#: src/slic3r/GUI/Tab.cpp:981 src/slic3r/GUI/Tab.cpp:982 src/slic3r/GUI/Tab.cpp:1311 +#: src/libslic3r/PrintConfig.cpp:166 src/libslic3r/PrintConfig.cpp:388 src/libslic3r/PrintConfig.cpp:728 +#: src/libslic3r/PrintConfig.cpp:742 src/libslic3r/PrintConfig.cpp:779 src/libslic3r/PrintConfig.cpp:932 +#: src/libslic3r/PrintConfig.cpp:942 src/libslic3r/PrintConfig.cpp:960 src/libslic3r/PrintConfig.cpp:978 +#: src/libslic3r/PrintConfig.cpp:997 src/libslic3r/PrintConfig.cpp:1658 src/libslic3r/PrintConfig.cpp:1675 +msgid "Infill" +msgstr "인필(채움)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:30 src/slic3r/GUI/GUI_ObjectList.cpp:67 src/slic3r/GUI/GUI_Preview.cpp:236 +#: src/slic3r/GUI/Tab.cpp:1010 src/slic3r/GUI/Tab.cpp:1011 src/libslic3r/PrintConfig.cpp:333 +#: src/libslic3r/PrintConfig.cpp:1431 src/libslic3r/PrintConfig.cpp:1779 src/libslic3r/PrintConfig.cpp:1785 +#: src/libslic3r/PrintConfig.cpp:1793 src/libslic3r/PrintConfig.cpp:1805 src/libslic3r/PrintConfig.cpp:1815 +#: src/libslic3r/PrintConfig.cpp:1823 src/libslic3r/PrintConfig.cpp:1838 src/libslic3r/PrintConfig.cpp:1859 +#: src/libslic3r/PrintConfig.cpp:1870 src/libslic3r/PrintConfig.cpp:1886 src/libslic3r/PrintConfig.cpp:1895 +#: src/libslic3r/PrintConfig.cpp:1904 src/libslic3r/PrintConfig.cpp:1915 src/libslic3r/PrintConfig.cpp:1929 +#: src/libslic3r/PrintConfig.cpp:1937 src/libslic3r/PrintConfig.cpp:1938 src/libslic3r/PrintConfig.cpp:1947 +#: src/libslic3r/PrintConfig.cpp:1955 src/libslic3r/PrintConfig.cpp:1969 src/libslic3r/GCode/PreviewData.cpp:172 +msgid "Support material" +msgstr "서포트 재료(Support material)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:33 src/slic3r/GUI/GUI_ObjectList.cpp:69 src/slic3r/GUI/Tab.cpp:1070 +#: src/slic3r/GUI/Tab.cpp:1794 src/libslic3r/PrintConfig.cpp:455 src/libslic3r/PrintConfig.cpp:953 +#: src/libslic3r/PrintConfig.cpp:1339 src/libslic3r/PrintConfig.cpp:1667 src/libslic3r/PrintConfig.cpp:1851 +#: src/libslic3r/PrintConfig.cpp:1877 src/libslic3r/PrintConfig.cpp:2149 src/libslic3r/PrintConfig.cpp:2157 +msgid "Extruders" +msgstr "익스트루더" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:39 +msgid "Pad and Support" +msgstr "패드 및 서포트" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:68 src/slic3r/GUI/GUI_Preview.cpp:215 src/slic3r/GUI/Tab.cpp:1035 +#: src/libslic3r/PrintConfig.cpp:198 src/libslic3r/PrintConfig.cpp:425 src/libslic3r/PrintConfig.cpp:870 +#: src/libslic3r/PrintConfig.cpp:998 src/libslic3r/PrintConfig.cpp:1360 src/libslic3r/PrintConfig.cpp:1597 +#: src/libslic3r/PrintConfig.cpp:1646 src/libslic3r/PrintConfig.cpp:1697 src/libslic3r/PrintConfig.cpp:2028 +msgid "Speed" +msgstr "속도" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:70 src/libslic3r/PrintConfig.cpp:415 src/libslic3r/PrintConfig.cpp:522 +#: src/libslic3r/PrintConfig.cpp:829 src/libslic3r/PrintConfig.cpp:961 src/libslic3r/PrintConfig.cpp:1348 +#: src/libslic3r/PrintConfig.cpp:1687 src/libslic3r/PrintConfig.cpp:1860 src/libslic3r/PrintConfig.cpp:2017 +msgid "Extrusion Width" +msgstr "압출 폭" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:75 src/slic3r/GUI/Plater.cpp:410 src/slic3r/GUI/Tab.cpp:3309 +#: src/slic3r/GUI/Tab.cpp:3310 src/libslic3r/PrintConfig.cpp:2359 src/libslic3r/PrintConfig.cpp:2366 +#: src/libslic3r/PrintConfig.cpp:2375 src/libslic3r/PrintConfig.cpp:2384 src/libslic3r/PrintConfig.cpp:2394 +#: src/libslic3r/PrintConfig.cpp:2420 src/libslic3r/PrintConfig.cpp:2427 src/libslic3r/PrintConfig.cpp:2438 +#: src/libslic3r/PrintConfig.cpp:2448 src/libslic3r/PrintConfig.cpp:2457 src/libslic3r/PrintConfig.cpp:2467 +#: src/libslic3r/PrintConfig.cpp:2476 src/libslic3r/PrintConfig.cpp:2486 src/libslic3r/PrintConfig.cpp:2496 +#: src/libslic3r/PrintConfig.cpp:2504 +msgid "Supports" +msgstr "서포트" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:76 src/slic3r/GUI/Tab.cpp:3337 src/slic3r/GUI/Tab.cpp:3338 +#: src/libslic3r/PrintConfig.cpp:2512 src/libslic3r/PrintConfig.cpp:2519 src/libslic3r/PrintConfig.cpp:2530 +#: src/libslic3r/PrintConfig.cpp:2540 src/libslic3r/PrintConfig.cpp:2553 src/libslic3r/PrintConfig.cpp:2562 +msgid "Pad" +msgstr "패드" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:173 src/slic3r/GUI/GUI_ObjectManipulation.cpp:45 +msgid "Name" +msgstr "이름" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:201 +msgid "Right button click the icon to change the object settings" +msgstr "아이콘을 클릭 하여 개체 설정을 변경 합니다" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:209 +#, c-format +msgid "Auto-repaired (%d errors):\n" +msgstr "오류자동수정 (%d errors)\n" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:212 +msgid "degenerate facets" +msgstr "더러운 면" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:213 +msgid "edges fixed" +msgstr "모서리 고정" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:214 +msgid "facets removed" +msgstr "면 제거" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:215 +msgid "facets added" +msgstr "면 추가됨" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:216 +msgid "facets reversed" +msgstr "면 반전" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:217 +msgid "backwards edges" +msgstr "뒤쪽 가장자리" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:231 +msgid "Right button click the icon to fix STL through Netfabb" +msgstr "아이콘을 클릭 하여 Netfabb에서 STL을 수정 합니다" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:278 src/slic3r/GUI/Tab.cpp:1430 src/libslic3r/PrintConfig.cpp:454 +msgid "Extruder" +msgstr "익스트루더(Extruder)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:683 src/slic3r/GUI/GUI_ObjectList.cpp:963 +#: src/slic3r/GUI/GUI_ObjectList.cpp:969 src/slic3r/GUI/GUI_ObjectList.cpp:1199 +#, c-format +msgid "Quick Add Settings (%s)" +msgstr "빠른 추가 설정 (%s)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:746 +msgid "Select showing settings" +msgstr "설정 표시를 선택 합니다" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:874 +msgid "Load" +msgstr "불러오기" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 src/slic3r/GUI/GUI_ObjectList.cpp:911 +#: src/slic3r/GUI/GUI_ObjectList.cpp:914 +msgid "Box" +msgstr "박스" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 +msgid "Cylinder" +msgstr "원통" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 +msgid "Sphere" +msgstr "영역" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 +msgid "Slab" +msgstr "슬랩" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:890 src/slic3r/GUI/GUI_ObjectList.cpp:906 +msgid "Add part" +msgstr "파트 추가" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:891 +msgid "Add modifier" +msgstr "편집영역(modifier) 추가" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:892 src/slic3r/GUI/GUI_ObjectList.cpp:910 +msgid "Add support enforcer" +msgstr "서포트 지원(enforcer)영역 추가" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:893 src/slic3r/GUI/GUI_ObjectList.cpp:913 +msgid "Add support blocker" +msgstr "서포트 금지영역(blocker) 추가" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:942 +msgid "Add settings" +msgstr "다음 설정" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1009 +msgid "Change type" +msgstr "타입 변경" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1016 src/slic3r/GUI/GUI_ObjectList.cpp:1153 +msgid "Set as a Separated Object" +msgstr "분리 된 객체로 설정" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1024 +msgid "Rename" +msgstr "이름 변경" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1034 +msgid "Fix through the Netfabb" +msgstr "네트워크를 통해 수정" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1041 src/slic3r/GUI/Plater.cpp:2861 +msgid "Export as STL" +msgstr "STL로 내보내기" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1048 +msgid "Change extruder" +msgstr "압출기(익스트루더) 변경" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1073 +msgid "Select new extruder for the object/part" +msgstr "객체/부품에 대한 새 압출(익스트루더) 기 선택" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1079 src/slic3r/GUI/Plater.cpp:2825 src/slic3r/GUI/Plater.cpp:2843 +#: src/slic3r/GUI/Tab.cpp:2860 +msgid "Delete" +msgstr "지우기 " + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1153 +msgid "Set as a Separated Objects" +msgstr "분리 된 객체로 설정" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1374 +msgid "Generic" +msgstr "일반" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1516 +msgid "You can't delete the last solid part from object." +msgstr "마지막 솔리드 파트는 객체에서 삭제할 수 없습니다." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1533 +msgid "You can't delete the last intance from object." +msgstr "개체에서 마지막 인텐스(intance)를 삭제할 수 없습니다." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1560 src/slic3r/GUI/Plater.cpp:2219 +msgid "The selected object couldn't be split because it contains only one part." +msgstr "선택한 오브젝트는 파트가 하나만 포함되어 있기 때문에 분할 할 수 없습니다." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1676 +msgid "Group manipulation" +msgstr "그룹 조작" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1688 +msgid "Object manipulation" +msgstr "개체 조작" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1698 +msgid "Object Settings to modify" +msgstr "수정할 개체 설정" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1702 +msgid "Part Settings to modify" +msgstr "수정할 부품 설정" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1711 +msgid "Part manipulation" +msgstr "파트 조작" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1717 +msgid "Instance manipulation" +msgstr "인스턴스 제거" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2240 +msgid "Object or Instance" +msgstr "개체 또는 인스턴스" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2240 +msgid "Part" +msgstr "부품(Part)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2242 +msgid "Unsupported selection" +msgstr "지원 되지 않는 선택" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2243 +#, c-format +msgid "You started your selection with %s Item." +msgstr "%s 항목으로 선택을 시작 했습니다." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2244 +#, c-format +msgid "In this mode you can select only other %s Items%s" +msgstr "이 모드에서는 %s의 다른 %s 항목만 선택할 수 있습니다" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2247 +msgid "of a current Object" +msgstr "현재 개체의" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2252 src/slic3r/GUI/GUI_ObjectList.cpp:2325 src/slic3r/GUI/Plater.cpp:117 +msgid "Info" +msgstr "정보" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2366 +msgid "You can't change a type of the last solid part of the object." +msgstr "객체의 마지막 솔리드 부품 유형은 변경할 수 없습니다." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 +msgid "Modifier" +msgstr "편집 영역" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 +msgid "Support Enforcer" +msgstr "서포트 지원 영역" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 +msgid "Support Blocker" +msgstr "서포트 금지 영역" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2549 +msgid "Type:" +msgstr "형식:" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2549 +msgid "Select type of part" +msgstr "부품 유형 선택" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2538 +msgid "Enter new name" +msgstr "새 이름 입력" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2538 +msgid "Renaming" +msgstr "이름 바꾸기" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2554 src/slic3r/GUI/GUI_ObjectList.cpp:2632 src/slic3r/GUI/Tab.cpp:3191 +#: src/slic3r/GUI/Tab.cpp:3195 +msgid "The supplied name is not valid;" +msgstr "제공된 이름이 유효하지 않습니다;" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2555 src/slic3r/GUI/GUI_ObjectList.cpp:2633 src/slic3r/GUI/Tab.cpp:3192 +msgid "the following characters are not allowed:" +msgstr "다음 문자는 허용되지 않습니다:" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2653 +msgid "Set extruder for selected items" +msgstr "선택한 항목에 대한 압출기(익스트루더) 설정" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2654 +msgid "Select extruder number for selected objects and/or parts" +msgstr "선택한 객체 및 부품에 대한 압출기(익스트루더) 번호 선택" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2667 +msgid "Select extruder number:" +msgstr "압출기(익스트루더) 번호 선택:" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2668 +msgid "This extruder will be set for selected items" +msgstr "선택한 항목에 대한 압출기(익스트루더) 설정" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:40 src/slic3r/GUI/GUI_ObjectManipulation.cpp:83 +msgid "World coordinates" +msgstr "전체크기와 좌표" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:41 src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 +msgid "Local coordinates" +msgstr "로컬 좌표" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:25 +msgid "Object Manipulation" +msgstr "개체 조작" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:47 +msgid "Object name" +msgstr "개체 이름" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:115 src/slic3r/GUI/GUI_ObjectManipulation.cpp:160 +msgid "Position" +msgstr "위치" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:116 src/slic3r/GUI/GUI_ObjectManipulation.cpp:161 +msgid "Rotation" +msgstr "회전" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:117 src/slic3r/GUI/GUI_ObjectManipulation.cpp:201 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:221 src/libslic3r/PrintConfig.cpp:3070 +msgid "Scale" +msgstr "크기" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:162 +msgid "Scale factors" +msgstr "축척 계수" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:200 src/slic3r/GUI/GUI_ObjectManipulation.cpp:220 +#: src/libslic3r/PrintConfig.cpp:3055 +msgid "Rotate" +msgstr "회전" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:219 +msgid "Translate" +msgstr "번역" + +#: src/slic3r/GUI/GUI_ObjectSettings.cpp:58 +msgid "Additional Settings" +msgstr "추가적인 세팅" + +#: src/slic3r/GUI/GUI_Preview.cpp:209 +msgid "View" +msgstr "보기" + +#: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:525 src/libslic3r/GCode/PreviewData.cpp:394 +msgid "Feature type" +msgstr "특색 유형" + +#: src/slic3r/GUI/GUI_Preview.cpp:213 src/libslic3r/PrintConfig.cpp:467 +msgid "Height" +msgstr "높이" + +#: src/slic3r/GUI/GUI_Preview.cpp:214 src/libslic3r/PrintConfig.cpp:2135 +msgid "Width" +msgstr "폭" + +#: src/slic3r/GUI/GUI_Preview.cpp:216 +msgid "Volumetric flow rate" +msgstr "용적의 유량값" + +#: src/slic3r/GUI/GUI_Preview.cpp:217 src/slic3r/GUI/GUI_Preview.cpp:315 src/slic3r/GUI/GUI_Preview.cpp:469 +#: src/slic3r/GUI/GUI_Preview.cpp:525 src/slic3r/GUI/GUI_Preview.cpp:701 src/libslic3r/GCode/PreviewData.cpp:404 +msgid "Tool" +msgstr "도구" + +#: src/slic3r/GUI/GUI_Preview.cpp:218 src/slic3r/GUI/GUI_Preview.cpp:523 src/libslic3r/GCode/PreviewData.cpp:406 +msgid "Color Print" +msgstr "컬러 프린트" + +#: src/slic3r/GUI/GUI_Preview.cpp:221 +msgid "Show" +msgstr "보다" + +#: src/slic3r/GUI/GUI_Preview.cpp:224 src/slic3r/GUI/GUI_Preview.cpp:225 +msgid "Feature types" +msgstr "특색 유형" + +#: src/slic3r/GUI/GUI_Preview.cpp:227 src/libslic3r/GCode/PreviewData.cpp:163 +msgid "Perimeter" +msgstr "가장자리" + +#: src/slic3r/GUI/GUI_Preview.cpp:228 src/libslic3r/GCode/PreviewData.cpp:164 +msgid "External perimeter" +msgstr "외부 가장자리" + +#: src/slic3r/GUI/GUI_Preview.cpp:229 src/libslic3r/GCode/PreviewData.cpp:165 +msgid "Overhang perimeter" +msgstr "오버행(Overhang) 둘레" + +#: src/slic3r/GUI/GUI_Preview.cpp:230 src/libslic3r/GCode/PreviewData.cpp:166 +msgid "Internal infill" +msgstr "내부 채움" + +#: src/slic3r/GUI/GUI_Preview.cpp:231 src/libslic3r/PrintConfig.cpp:1686 src/libslic3r/PrintConfig.cpp:1696 +#: src/libslic3r/GCode/PreviewData.cpp:167 +msgid "Solid infill" +msgstr "솔리드 인필" + +#: src/slic3r/GUI/GUI_Preview.cpp:232 src/libslic3r/PrintConfig.cpp:2016 src/libslic3r/PrintConfig.cpp:2027 +#: src/libslic3r/GCode/PreviewData.cpp:168 +msgid "Top solid infill" +msgstr "가장 윗부분 채움" + +#: src/slic3r/GUI/GUI_Preview.cpp:233 src/libslic3r/GCode/PreviewData.cpp:169 +msgid "Bridge infill" +msgstr "프릿지 채움" + +#: src/slic3r/GUI/GUI_Preview.cpp:234 src/libslic3r/PrintConfig.cpp:869 src/libslic3r/GCode/PreviewData.cpp:170 +msgid "Gap fill" +msgstr "공백 채움" + +#: src/slic3r/GUI/GUI_Preview.cpp:235 src/slic3r/GUI/Tab.cpp:1001 src/libslic3r/GCode/PreviewData.cpp:171 +msgid "Skirt" +msgstr "스커트" + +#: src/slic3r/GUI/GUI_Preview.cpp:237 src/libslic3r/PrintConfig.cpp:1903 src/libslic3r/GCode/PreviewData.cpp:173 +msgid "Support material interface" +msgstr "서포트 재료 인터페이스" + +#: src/slic3r/GUI/GUI_Preview.cpp:238 src/slic3r/GUI/Tab.cpp:1081 src/libslic3r/GCode/PreviewData.cpp:174 +msgid "Wipe tower" +msgstr "와이프 타워(Wipe tower)" + +#: src/slic3r/GUI/GUI_Preview.cpp:243 src/libslic3r/PrintConfig.cpp:2049 +msgid "Travel" +msgstr "이송" + +#: src/slic3r/GUI/GUI_Preview.cpp:244 +msgid "Retractions" +msgstr "리트랙션" + +#: src/slic3r/GUI/GUI_Preview.cpp:245 +msgid "Unretractions" +msgstr "리트랙션 취소" + +#: src/slic3r/GUI/GUI_Preview.cpp:246 +msgid "Shells" +msgstr "쉘" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 +msgid "Slic3r Prusa Edition - Keyboard Shortcuts" +msgstr "Slic3r Prusa 에디션-키보드 단축키" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:100 +msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" +msgstr "구성으로 프로젝트 STL/OBJ/AMF/3MF 열기, 배드 삭제" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:101 +msgid "Import STL/OBJ/AMF/3MF without config, keep bed" +msgstr "구성 없이 STL/OBJ/AMF/3MF 가져오기, 배드 유지" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:102 +msgid "Load Config from .ini/amf/3mf/gcode" +msgstr ".Ini/amf/3mf/gcode에서 구성 로드" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:103 src/slic3r/GUI/Plater.cpp:725 src/slic3r/GUI/Plater.cpp:3673 +#: src/libslic3r/PrintConfig.cpp:2957 +msgid "Export G-code" +msgstr "G-코드 내보내기" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:104 +msgid "Save project (3MF)" +msgstr "프로젝트 저장 (3MF)" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:105 +msgid "Load Config from .ini/amf/3mf/gcode and merge" +msgstr ".Ini/amf/3mf/gcode 및 병합에서 구성 로드" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:106 +msgid "(Re)slice" +msgstr "(Re)슬라이스" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:107 +msgid "Quick slice" +msgstr "빠른 슬라이스" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:108 src/slic3r/GUI/MainFrame.cpp:326 +msgid "Repeat last quick slice" +msgstr "마지막으로 빠른 슬라이스 반복" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:109 +msgid "Select Plater Tab" +msgstr "선택 및 플래이트 탭" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:110 +msgid "Quick slice and Save as" +msgstr "빠른 슬라이스 및 다른 이름으로 저장" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:111 +msgid "Select Print Settings Tab" +msgstr "인쇄 설정 탭을 선택 합니다" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +msgid "Select Filament Settings Tab" +msgstr "필라멘트 설정 탭 선택" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:113 +msgid "Select Printer Settings Tab" +msgstr "프린터 설정 탭을 선택 합니다" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:114 +msgid "Switch to 3D" +msgstr "3D로 전환" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 +msgid "Switch to Preview" +msgstr "미리 보기로 전환" + +# xs/src/slic3r/GUI/Preferences.cpp:9 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:116 src/slic3r/GUI/Preferences.cpp:10 +msgid "Preferences" +msgstr "환경 설정" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:117 src/slic3r/GUI/PrintHostDialogs.cpp:134 +msgid "Print host upload queue" +msgstr "호스트 업로드 대기열 인쇄" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 +msgid "Camera view" +msgstr "카메라 뷰" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Add Instance of the selected object" +msgstr "선택한 개체의 인스턴스 추가" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 +msgid "Remove Instance of the selected object" +msgstr "선택한 개체의 인스턴스 제거" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:121 +msgid "Show keyboard shortcuts list" +msgstr "바로 가기 키 목록 표시" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 +msgid "Press to select multiple object or move multiple object with mouse" +msgstr "여러 개체를 선택 하거나 마우스로 여러 개체를 이동 하려면 누릅니다." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 +msgid "Select multiple object/Move multiple object" +msgstr "여러 개체 선택/여러 개체 이동" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Main Shortcuts" +msgstr "주요 단축키" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:134 +msgid "Arrange" +msgstr "정렬" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:135 +msgid "Select All objects" +msgstr "모든 객체 선택" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:136 +msgid "Delete selected" +msgstr "선택 삭제" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:137 +msgid "Delete All" +msgstr "전부 지움" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 +msgid "Gizmo move" +msgstr "기즈모 이동" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:141 +msgid "Gizmo scale" +msgstr "기즈모 배율" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:142 +msgid "Gizmo rotate" +msgstr "기즈모 회전" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 +msgid "Gizmo cut" +msgstr "기즈모 자르기" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:138 +msgid "Gizmo Place face on bed" +msgstr "기즈모를 배드위에서" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:139 +msgid "Copy to clipboard" +msgstr "클립보드로 복사" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 +msgid "Paste from clipboard" +msgstr "클립보드에서 붙여넣기" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:145 +msgid "Gizmo SLA support points" +msgstr "기즈모 SLA 지원 포인트" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 +#, c-format +msgid "" +"Press to activate selection rectangle\n" +"or to snap by 5% in Gizmo scale\n" +"or to snap by 1mm in Gizmo move" +msgstr "" +"활성화된 사각형을 선택합니다.\n" +"5% in 객체 크기를 스냅에 맞춰 조절합니다.\n" +"1mm 씩 객체를 스냅에 맞추 이동합니다." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +msgid "" +"Press to activate deselection rectangle\n" +"or to scale or rotate selected objects\n" +"around their own center" +msgstr "" +"자신의 중심 주변\n" +"선택한 개체의 크기를 조정 하거나\n" +"회전 하려면 누릅니다" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:148 +msgid "Press to activate one direction scaling in Gizmo scale" +msgstr "기즈모 크기 조절을 활성화 합니다." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:149 +msgid "Zoom to Bed" +msgstr "배드 확대" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:150 +msgid "Zoom to all objects in scene, if none selected" +msgstr "장면의 모든 오브젝트로 확대/축소 (선택 하지 않은 경우)" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:151 +msgid "Zoom to selected object" +msgstr "선택한 개체로 확대/축소" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:152 +msgid "Zoom in" +msgstr "확대" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:153 +msgid "Zoom out" +msgstr "줌 아웃" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 +msgid "Unselect gizmo / Clear selection" +msgstr "기즈모 선택을 취소 하거나 지우기" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:156 +msgid "Plater Shortcuts" +msgstr "플레이터 단축기" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:171 src/slic3r/GUI/KBShortcutsDialog.cpp:182 +msgid "Arrow Up" +msgstr "위쪽 화살표" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:171 src/slic3r/GUI/KBShortcutsDialog.cpp:173 +msgid "Upper Layer" +msgstr "상위 레이어" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:172 src/slic3r/GUI/KBShortcutsDialog.cpp:183 +msgid "Arrow Down" +msgstr "아래쪽 화살표" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:172 src/slic3r/GUI/KBShortcutsDialog.cpp:174 +msgid "Lower Layer" +msgstr "하위 레이어" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Preview Shortcuts" +msgstr "미리보기 단축기" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 +msgid "Move current slider thumb Up" +msgstr "현재 마우스 휠 슬라이더를 위로 이동" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:183 +msgid "Move current slider thumb Down" +msgstr "현재 마우스 휠 슬라이더를 아래로 이동" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:184 +msgid "Arrow Left" +msgstr "왼쪽 화살표" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:184 +msgid "Set upper thumb to current slider thumb" +msgstr "마우스 휠을 위로 움직여 설정" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 +msgid "Arrow Right" +msgstr "오른쪽 화살표" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 +msgid "Set lower thumb to current slider thumb" +msgstr "마우스 휠을 아래로 움직여 설정" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:186 +msgid "Add color change marker for current layer" +msgstr "현재 레이어의 색상 변경 마커 추가" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:187 +msgid "Delete color change marker for current layer" +msgstr "현재 레이어의 색상 변경 마커 삭제" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:189 +msgid "Layers Slider Shortcuts" +msgstr "레이어 슬라이더 단축키" + +#: src/slic3r/GUI/MainFrame.cpp:61 +msgid " - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/releases" +msgstr " -http://github.com/prusa3d/slic3r/releases에서 업데이트를 확인하는 것을 잊지 마십시오" + +#: src/slic3r/GUI/MainFrame.cpp:160 +msgid "Plater" +msgstr "플레이터" + +#: src/slic3r/GUI/MainFrame.cpp:374 +msgid "&New Project" +msgstr "&새로운 프로젝트" + +#: src/slic3r/GUI/MainFrame.cpp:374 +msgid "Start a new project" +msgstr "새로운 프로젝트 시작" + +#: src/slic3r/GUI/MainFrame.cpp:273 +msgid "&Open Project" +msgstr "&프로젝트 열기" + +#: src/slic3r/GUI/MainFrame.cpp:273 +msgid "Open a project file" +msgstr "프로젝트 파일 열기" + +#: src/slic3r/GUI/MainFrame.cpp:275 +msgid "&Save Project" +msgstr "프로젝트 저장" + +#: src/slic3r/GUI/MainFrame.cpp:275 +msgid "Save current project file" +msgstr "현재 프로젝트 파일 저장" + +#: src/slic3r/GUI/MainFrame.cpp:277 +msgid "Save Project &as" +msgstr "프로젝트 저장" + +#: src/slic3r/GUI/MainFrame.cpp:277 +msgid "Save current project file as" +msgstr "현재 프로젝트 파일을 다른 이름으로 저장" + +#: src/slic3r/GUI/MainFrame.cpp:283 +msgid "Import STL/OBJ/AM&F/3MF" +msgstr "가져오기 STL/OBJ/AM&F/3MF" + +#: src/slic3r/GUI/MainFrame.cpp:283 +msgid "Load a model" +msgstr "모델 로드" + +#: src/slic3r/GUI/MainFrame.cpp:286 +msgid "Import &Config" +msgstr "&구성 가져오기" + +#: src/slic3r/GUI/MainFrame.cpp:286 +msgid "Load exported configuration file" +msgstr "내 보낸 구성 파일로드" + +#: src/slic3r/GUI/MainFrame.cpp:288 +msgid "Import Config from &project" +msgstr "프로젝트에서 설정 가져오기" + +#: src/slic3r/GUI/MainFrame.cpp:288 +msgid "Load configuration from project file" +msgstr "프로젝트 파일에서 구성 로드" + +#: src/slic3r/GUI/MainFrame.cpp:291 +msgid "Import Config &Bundle" +msgstr "번들 &설정 가져오기" + +#: src/slic3r/GUI/MainFrame.cpp:291 +msgid "Load presets from a bundle" +msgstr "번들에서 미리 설정로드" + +#: src/slic3r/GUI/MainFrame.cpp:293 +msgid "&Import" +msgstr "가져오기" + +#: src/slic3r/GUI/MainFrame.cpp:296 +msgid "Export &G-code" +msgstr "G-코드 내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:296 +msgid "Export current plate as G-code" +msgstr "현재 플레이트를 G 코드로 내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:299 +msgid "Export plate as &STL" +msgstr "STL로 내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:299 +msgid "Export current plate as STL" +msgstr "현재 플레이트를 STL로 내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:301 +msgid "Export plate as &AMF" +msgstr "AMF로 내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:301 +msgid "Export current plate as AMF" +msgstr "현재 플레이트를AMF로 내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:304 +msgid "Export &Config" +msgstr "&구성 내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:304 +msgid "Export current configuration to file" +msgstr "현재 구성을 파일로 내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:306 +msgid "Export Config &Bundle" +msgstr "번들 & 내보내기 설정" + +#: src/slic3r/GUI/MainFrame.cpp:306 +msgid "Export all presets to file" +msgstr "모든 이전 설정을 파일로 내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:308 +msgid "&Export" +msgstr "&내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:314 +msgid "Quick Slice" +msgstr "빠른 슬라이스" + +#: src/slic3r/GUI/MainFrame.cpp:314 +msgid "Slice a file into a G-code" +msgstr "파일을 G 코드로 분할" + +#: src/slic3r/GUI/MainFrame.cpp:320 +msgid "Quick Slice and Save As" +msgstr "빠른 슬라이스 및 다른 이름으로 저장" + +#: src/slic3r/GUI/MainFrame.cpp:320 +msgid "Slice a file into a G-code, save as" +msgstr "파일을 G 코드로 분할하고 다음으로 저장" + +#: src/slic3r/GUI/MainFrame.cpp:326 +msgid "Repeat Last Quick Slice" +msgstr "마지막으로 빠른 슬라이스 반복" + +#: src/slic3r/GUI/MainFrame.cpp:453 +msgid "(Re)Slice No&w" +msgstr "지금(다시)자르기" + +#: src/slic3r/GUI/MainFrame.cpp:453 +msgid "Start new slicing process" +msgstr "새로운 슬라이싱 작업 시작" + +#: src/slic3r/GUI/MainFrame.cpp:337 +msgid "&Repair STL file" +msgstr "STL 파일 복구" + +#: src/slic3r/GUI/MainFrame.cpp:337 +msgid "Automatically repair an STL file" +msgstr "STL 파일을 자동으로 복구합니다" + +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "&Quit" +msgstr "종료(&Q)" + +#: src/slic3r/GUI/MainFrame.cpp:460 +#, c-format +msgid "Quit %s" +msgstr "%s 종료" + +#: src/slic3r/GUI/MainFrame.cpp:416 +msgid "Export plate as STL including supports" +msgstr "서포트를 포함하여 STL파일로 내보내기" + +#: src/slic3r/GUI/MainFrame.cpp:374 +msgid "&Select all" +msgstr "&모두 선택 " + +#: src/slic3r/GUI/MainFrame.cpp:374 +msgid "Selects all objects" +msgstr "모든 개체를 선택 합니다" + +#: src/slic3r/GUI/MainFrame.cpp:377 +msgid "&Delete selected" +msgstr "&선택 삭제 " + +#: src/slic3r/GUI/MainFrame.cpp:377 +msgid "Deletes the current selection" +msgstr "현재 선택 영역을 삭제 합니다" + +#: src/slic3r/GUI/MainFrame.cpp:379 +msgid "Delete &all" +msgstr "전부 지움 " + +#: src/slic3r/GUI/MainFrame.cpp:379 +msgid "Deletes all objects" +msgstr "모든 객체를 삭제 합니다" + +#: src/slic3r/GUI/MainFrame.cpp:392 +msgid "&Plater Tab" +msgstr "&선택 및 플래이터 탭" + +#: src/slic3r/GUI/MainFrame.cpp:392 +msgid "Show the plater" +msgstr "플레이트를 보기" + +#: src/slic3r/GUI/MainFrame.cpp:399 +msgid "P&rint Settings Tab" +msgstr "프린트 설정 탭" + +#: src/slic3r/GUI/MainFrame.cpp:399 +msgid "Show the print settings" +msgstr "인쇄 설정 표시" + +#: src/slic3r/GUI/MainFrame.cpp:401 +msgid "&Filament Settings Tab" +msgstr "&필라멘트 설정 탭" + +#: src/slic3r/GUI/MainFrame.cpp:401 +msgid "Show the filament settings" +msgstr "필라멘트 설정보기" + +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "Print&er Settings Tab" +msgstr "설정 인쇄 탭" + +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "Show the printer settings" +msgstr "간단한 설정보기" + +#: src/slic3r/GUI/MainFrame.cpp:407 +msgid "3&D" +msgstr "3&D" + +#: src/slic3r/GUI/MainFrame.cpp:407 +msgid "Show the 3D editing view" +msgstr "3D 편집용 보기 표시" + +#: src/slic3r/GUI/MainFrame.cpp:409 +msgid "Pre&view" +msgstr "미리 보기" + +#: src/slic3r/GUI/MainFrame.cpp:409 +msgid "Show the 3D slices preview" +msgstr "3D 슬라이스 미리 보기 표시" + +#: src/slic3r/GUI/MainFrame.cpp:430 +msgid "Print &Host Upload Queue" +msgstr "호스트 업로드 대기열 인쇄" + +#: src/slic3r/GUI/MainFrame.cpp:430 +msgid "Display the Print Host Upload Queue window" +msgstr "호스트 업로드 대기열 인쇄 창 표시" + +#: src/slic3r/GUI/MainFrame.cpp:439 +msgid "Iso" +msgstr "기본 " + +#: src/slic3r/GUI/MainFrame.cpp:439 +msgid "Iso View" +msgstr "Iso 보기" + +# lib/Slic3r/GUI/MainFrame.pm:327 +#: src/slic3r/GUI/MainFrame.cpp:441 +msgid "Top" +msgstr "윗부분 " + +#: src/libslic3r/PrintConfig.cpp:2041 +msgctxt "Layers" +msgid "Top" +msgstr "윗부분" + +#: src/slic3r/GUI/MainFrame.cpp:441 +msgid "Top View" +msgstr "위에서 보기" + +# lib/Slic3r/GUI/MainFrame.pm:328 +#: src/slic3r/GUI/MainFrame.cpp:442 +msgid "Bottom" +msgstr "바닥 " + +#: src/libslic3r/PrintConfig.cpp:148 +msgctxt "Layers" +msgid "Bottom" +msgstr "바닥 " + +#: src/slic3r/GUI/MainFrame.cpp:442 +msgid "Bottom View" +msgstr "바닥 보기" + +#: src/slic3r/GUI/MainFrame.cpp:443 +msgid "Front" +msgstr "앞 " + +#: src/slic3r/GUI/MainFrame.cpp:443 +msgid "Front View" +msgstr "앞면 보기 " + +#: src/slic3r/GUI/MainFrame.cpp:444 src/libslic3r/PrintConfig.cpp:1561 +msgid "Rear" +msgstr "뒷면 " + +#: src/slic3r/GUI/MainFrame.cpp:444 +msgid "Rear View" +msgstr "뒷면 보기" + +#: src/slic3r/GUI/MainFrame.cpp:445 +msgid "Left" +msgstr "왼쪽 " + +#: src/slic3r/GUI/MainFrame.cpp:445 +msgid "Left View" +msgstr "왼쪽 보기" + +#: src/slic3r/GUI/MainFrame.cpp:446 +msgid "Right" +msgstr "오른쪽 " + +#: src/slic3r/GUI/MainFrame.cpp:446 +msgid "Right View" +msgstr "오른쪽 보기" + +#: src/slic3r/GUI/MainFrame.cpp:460 +msgid "Prusa 3D &Drivers" +msgstr "푸르사 3D 드라이버" + +#: src/slic3r/GUI/MainFrame.cpp:460 +msgid "Open the Prusa3D drivers download page in your browser" +msgstr "브라우저에서 Prusa3D 드라이버 다운로드 페이지를 엽니다" + +#: src/slic3r/GUI/MainFrame.cpp:462 +msgid "Prusa Edition &Releases" +msgstr "Prusa 에디션 릴리스" + +#: src/slic3r/GUI/MainFrame.cpp:462 +msgid "Open the Prusa Edition releases page in your browser" +msgstr "브라우저에서 Prusa Edition 릴리즈 페이지를 엽니 다" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Slic3r &Website" +msgstr "Slic3r 및 웹 사이트" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Open the Slic3r website in your browser" +msgstr "브라우저에서 Slic3r 웹 사이트 열기" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Slic3r &Manual" +msgstr "Slic3r &메뉴얼" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Open the Slic3r manual in your browser" +msgstr "브라우저에서 Slic3r 설명서를 엽니다" + +#: src/slic3r/GUI/MainFrame.cpp:473 +msgid "System &Info" +msgstr "시스템 정보" + +#: src/slic3r/GUI/MainFrame.cpp:473 +msgid "Show system information" +msgstr "시스템 정보 표시" + +#: src/slic3r/GUI/MainFrame.cpp:475 +msgid "Show &Configuration Folder" +msgstr "폴더 표시 및 구성" + +#: src/slic3r/GUI/MainFrame.cpp:475 +msgid "Show user configuration folder (datadir)" +msgstr "사용자 구성 폴더 표시 (datadir)" + +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an I&ssue" +msgstr "문제를 보고" + +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an issue on the Slic3r Prusa Edition" +msgstr "Slic3r Prusa Edition에 관한 문제점 보고" + +#: src/slic3r/GUI/MainFrame.cpp:607 +#, c-format +msgid "&About %s" +msgstr "%s 에 대하여" + +#: src/slic3r/GUI/MainFrame.cpp:607 +msgid "Show about dialog" +msgstr "다이얼로그 표시" + +#: src/slic3r/GUI/MainFrame.cpp:482 +msgid "Keyboard Shortcuts" +msgstr "키보드 바로 가기" + +#: src/slic3r/GUI/MainFrame.cpp:482 +msgid "Show the list of the keyboard shortcuts" +msgstr "키보드 단축키 목록 표시" + +#: src/slic3r/GUI/MainFrame.cpp:490 +msgid "&File" +msgstr "&파일" + +#: src/slic3r/GUI/MainFrame.cpp:491 +msgid "&Edit" +msgstr "&수정" + +#: src/slic3r/GUI/MainFrame.cpp:492 +msgid "&Window" +msgstr "&윈도우" + +#: src/slic3r/GUI/MainFrame.cpp:493 +msgid "&View" +msgstr "&시점" + +#: src/slic3r/GUI/MainFrame.cpp:496 +msgid "&Help" +msgstr "&도움말" + +#: src/slic3r/GUI/MainFrame.cpp:504 +msgid "&Copy" +msgstr "&복사 " + +#: src/slic3r/GUI/MainFrame.cpp:507 +msgid "&Paste" +msgstr "&붙이기 " + +#: src/slic3r/GUI/MainFrame.cpp:524 +msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "슬라이스 할 파일을 선택하십시오 (STL / OBJ / AMF / 3MF / PRUSA):" + +#: src/slic3r/GUI/MainFrame.cpp:538 +msgid "No previously sliced file." +msgstr "이전에 분리 된 파일이 없습니다." + +#: src/slic3r/GUI/MainFrame.cpp:539 src/slic3r/GUI/PrintHostDialogs.cpp:219 +msgid "Error" +msgstr "에러" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Previously sliced file (" +msgstr "이전에 분리 된 파일 (" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid ") not found." +msgstr ")을 찾을 수 없습니다." + +#: src/slic3r/GUI/MainFrame.cpp:545 +msgid "File Not Found" +msgstr "파일을 찾을수 없다" + +#: src/slic3r/GUI/MainFrame.cpp:580 src/slic3r/GUI/Tab.cpp:3152 +msgid "Save " +msgstr "저장 " + +#: src/slic3r/GUI/MainFrame.cpp:580 +msgid "SVG" +msgstr "Svg" + +#: src/slic3r/GUI/MainFrame.cpp:580 +msgid "G-code" +msgstr "G 코드" + +#: src/slic3r/GUI/MainFrame.cpp:580 +msgid " file as:" +msgstr " 다음 파일 :" + +#: src/slic3r/GUI/MainFrame.cpp:588 +msgid "Software &Releases" +msgstr "소프트웨어 &자료" + +#: src/slic3r/GUI/MainFrame.cpp:588 +msgid "Open the software releases page in your browser" +msgstr "브라우저에서 소프트웨어 정보 페이지 열기" + +#: src/slic3r/GUI/MainFrame.cpp:594 +#, c-format +msgid "%s &Website" +msgstr "%s &웹사이트" + +#: src/slic3r/GUI/MainFrame.cpp:595 +#, c-format +msgid "Open the %s website in your browser" +msgstr "%s 웹사이트를 브라우저에서 열기" + +#: src/slic3r/GUI/MainFrame.cpp:595 +msgid "Save zip file as:" +msgstr "압축(zip)파일 다른이름 저장:" + +#: src/slic3r/GUI/MainFrame.cpp:607 src/slic3r/GUI/Plater.cpp:2352 src/slic3r/GUI/Plater.cpp:3467 +#: src/slic3r/GUI/Tab.cpp:1110 src/slic3r/GUI/Tab.cpp:3348 +msgid "Slicing" +msgstr "슬라이싱" + +#: src/slic3r/GUI/MainFrame.cpp:607 +msgid "Processing " +msgstr "프로세싱 " + +#: src/slic3r/GUI/MainFrame.cpp:630 +msgid " was successfully sliced." +msgstr " 성공적으로 슬라이스." + +#: src/slic3r/GUI/MainFrame.cpp:632 +msgid "Slicing Done!" +msgstr "슬라이스 완료!" + +#: src/slic3r/GUI/MainFrame.cpp:647 +msgid "Select the STL file to repair:" +msgstr "복구 할 STL 파일을 선택하십시오:" + +#: src/slic3r/GUI/MainFrame.cpp:661 +msgid "Save OBJ file (less prone to coordinate errors than STL) as:" +msgstr "OBJ 파일을 저장하십시오 (STL보다 오류를 덜 조정할 가능성이 적음):" + +#: src/slic3r/GUI/MainFrame.cpp:676 +msgid "Your file was repaired." +msgstr "파일이 복구되었습니다." + +#: src/slic3r/GUI/MainFrame.cpp:676 src/libslic3r/PrintConfig.cpp:3051 +msgid "Repair" +msgstr "수정" + +#: src/slic3r/GUI/MainFrame.cpp:690 +msgid "Save configuration as:" +msgstr "구성을 저장 :" + +#: src/slic3r/GUI/MainFrame.cpp:710 src/slic3r/GUI/MainFrame.cpp:774 +msgid "Select configuration to load:" +msgstr "로드 할 구성 선택 :" + +#: src/slic3r/GUI/MainFrame.cpp:747 +msgid "Save presets bundle as:" +msgstr "이전 설정 번들을 다음과 같이 저장 :" + +#: src/slic3r/GUI/MainFrame.cpp:798 +#, c-format +msgid "%d presets successfully imported." +msgstr "% d 사전 설정을 가져 왔습니다." + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r error" +msgstr "Slic3r 오류" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r has encountered an error" +msgstr "Slic3r에 오류가 발생했습니다" + +#: src/slic3r/GUI/Plater.cpp:137 +msgid "Volume" +msgstr "크기" + +#: src/slic3r/GUI/Plater.cpp:138 +msgid "Facets" +msgstr "측면" + +#: src/slic3r/GUI/Plater.cpp:139 +msgid "Materials" +msgstr "재료" + +#: src/slic3r/GUI/Plater.cpp:142 +msgid "Manifold" +msgstr "많은" + +#: src/slic3r/GUI/Plater.cpp:188 +msgid "Sliced Info" +msgstr "슬라이스된 정보" + +#: src/slic3r/GUI/Plater.cpp:207 src/slic3r/GUI/Plater.cpp:998 +msgid "Used Filament (m)" +msgstr "사용자 필라멘트 (m)" + +#: src/slic3r/GUI/Plater.cpp:208 +msgid "Used Filament (mm³)" +msgstr "사용자 필라멘트 (mm³)" + +#: src/slic3r/GUI/Plater.cpp:209 +msgid "Used Filament (g)" +msgstr "사용자 필라멘트 (g)" + +#: src/slic3r/GUI/Plater.cpp:210 +msgid "Used Material (unit)" +msgstr "사용 재료 (단위)" + +#: src/slic3r/GUI/Plater.cpp:211 src/slic3r/GUI/Plater.cpp:1013 src/libslic3r/PrintConfig.cpp:716 +msgid "Cost" +msgstr "비용" + +#: src/slic3r/GUI/Plater.cpp:212 src/slic3r/GUI/Plater.cpp:985 src/slic3r/GUI/Plater.cpp:1027 +msgid "Estimated printing time" +msgstr "예상 인쇄 시간" + +#: src/slic3r/GUI/Plater.cpp:213 +msgid "Number of tool changes" +msgstr "공구(tool) 변경 수" + +#: src/slic3r/GUI/Plater.cpp:290 +msgid "Click to edit preset" +msgstr "사전 설정을 편집 하려면 클릭 하십시오" + +#: src/slic3r/GUI/Plater.cpp:413 +msgid "Select what kind of support do you need" +msgstr "서포트의 종류를 선택하세요" + +#: src/slic3r/GUI/Plater.cpp:415 src/libslic3r/PrintConfig.cpp:1814 src/libslic3r/PrintConfig.cpp:2419 +msgid "Support on build plate only" +msgstr "출력물만 서포트를 지지" + +#: src/slic3r/GUI/Plater.cpp:434 src/slic3r/GUI/Plater.cpp:527 +msgid "For support enforcers only" +msgstr "서포트 지원영역 생성시 선택" + +#: src/slic3r/GUI/Plater.cpp:416 +msgid "Everywhere" +msgstr "모든곳" + +#: src/slic3r/GUI/Plater.cpp:438 src/slic3r/GUI/Tab.cpp:1007 +msgid "Brim" +msgstr "브림" + +#: src/slic3r/GUI/Plater.cpp:440 +msgid "This flag enables the brim that will be printed around each object on the first layer." +msgstr "이 플래그는 첫 번째 레이어의 각 개체 주위에 인쇄 될 브림을 활성화합니다." + +#: src/slic3r/GUI/Plater.cpp:448 +msgid "Purging volumes" +msgstr "볼륨 삭제" + +#: src/slic3r/GUI/Plater.cpp:673 +msgid "Print settings" +msgstr "프린트 설정" + +#: src/slic3r/GUI/Plater.cpp:674 src/slic3r/GUI/Tab.cpp:1421 src/slic3r/GUI/Tab.cpp:1422 +msgid "Filament" +msgstr "필라멘트" + +#: src/slic3r/GUI/Plater.cpp:675 src/slic3r/GUI/Preset.cpp:1252 +msgid "SLA print" +msgstr "SLA 인쇄" + +#: src/slic3r/GUI/Plater.cpp:676 src/slic3r/GUI/Preset.cpp:1253 +msgid "SLA material" +msgstr "SLA 재료" + +#: src/slic3r/GUI/Plater.cpp:677 +msgid "Printer" +msgstr "프린터" + +#: src/slic3r/GUI/Plater.cpp:707 src/slic3r/GUI/Plater.cpp:3674 +msgid "Send to printer" +msgstr "프린터로 보내기" + +#: src/slic3r/GUI/Plater.cpp:727 src/slic3r/GUI/Plater.cpp:2352 src/slic3r/GUI/Plater.cpp:3470 +msgid "Slice now" +msgstr "지금 자르기" + +#: src/slic3r/GUI/Plater.cpp:860 +msgid "Hold Shift to Slice & Export G-code" +msgstr "Shift 키를 누른 채 G 코드 내보내기" + +#: src/slic3r/GUI/Plater.cpp:931 +#, c-format +msgid "%d (%d shells)" +msgstr "% d (% d 쉘)" + +#: src/slic3r/GUI/Plater.cpp:936 +#, c-format +msgid "Auto-repaired (%d errors)" +msgstr "오류자동수정 (%d errors)" + +#: src/slic3r/GUI/Plater.cpp:939 +#, c-format +msgid "" +"%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards " +"edges" +msgstr "%d 면 고정, %d 모서리 고정, %d 면 제거, %d 면 추가, %d 면 반전, %d 후방 모서리" + +#: src/slic3r/GUI/Plater.cpp:949 +msgid "Yes" +msgstr "예" + +#: src/slic3r/GUI/Plater.cpp:972 +msgid "Used Material (ml)" +msgstr "사용 재료 (ml)" + +#: src/slic3r/GUI/Plater.cpp:975 +msgid "object(s)" +msgstr "스커트와 객체 사이의 거리. 스커트를 객체에 부착하고 접착력을 높이기 위해 이를 0으로 설정한다." + +#: src/slic3r/GUI/Plater.cpp:975 +msgid "supports and pad" +msgstr "지지대 및 패드" + +#: src/slic3r/GUI/Plater.cpp:1000 src/slic3r/GUI/Plater.cpp:1015 +msgid "objects" +msgstr "개체" + +#: src/slic3r/GUI/Plater.cpp:1000 src/slic3r/GUI/Plater.cpp:1015 +msgid "wipe tower" +msgstr "와이프 타워(Wipe tower)" + +#: src/slic3r/GUI/Plater.cpp:1030 +msgid "normal mode" +msgstr "일반 모드" + +#: src/slic3r/GUI/Plater.cpp:1034 +msgid "silent mode" +msgstr "무음 모드" + +#: src/slic3r/GUI/Plater.cpp:1544 +msgid "Loading" +msgstr "로딩" + +#: src/slic3r/GUI/Plater.cpp:1554 +#, c-format +msgid "Processing input file %s\n" +msgstr "입력 파일 처리 %s\n" + +#: src/slic3r/GUI/Plater.cpp:1612 +msgid "" +"This file contains several objects positioned at multiple heights. Instead of considering them as multiple " +"objects, should I consider\n" +"this file as a single object having multiple parts?\n" +msgstr "" +"이 파일에는 여러 높이에 위치한 여러 객체가 들어 있습니다. 여러 객체로 간주하는 대신,\n" +"이 파일은 여러 부분을 갖는 단일 객체로 보입니까?\n" + +#: src/slic3r/GUI/Plater.cpp:1615 src/slic3r/GUI/Plater.cpp:1707 +msgid "Multi-part object detected" +msgstr "다중 부품 객체가 감지" + +#: src/slic3r/GUI/Plater.cpp:1650 +msgid "This file cannot be loaded in simple mode. Do you want to switch to expert mode?\n" +msgstr "이 파일은 단순 모드에서 로드할 수 없습니다. 전문가 모드로 전환 하시겠습니까?\n" + +#: src/slic3r/GUI/Plater.cpp:1651 +msgid "Detected advanced data" +msgstr "감지된 고급 데이터" + +#: src/slic3r/GUI/Plater.cpp:1684 +#, c-format +msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part" +msgstr "멀티파트 하나 또는 그 중 일부 때문에 %s에서 개체를 추가 할 수 없습니다" + +#: src/slic3r/GUI/Plater.cpp:1704 +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?\n" +msgstr "" +"다중 재료 프린터에 대해 여러 객체가로드되었습니다.\n" +"여러 객체로 간주하는 대신,\n" +"이 파일들은 여러 부분을 갖는 단일 객체를 나타낼 수 있습니까?\n" + +#: src/slic3r/GUI/Plater.cpp:1720 +msgid "Loaded" +msgstr "로드(loaded)" + +#: src/slic3r/GUI/Plater.cpp:1812 +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:1813 +msgid "Object too large?" +msgstr "개체가 너무 큽니까?" + +#: src/slic3r/GUI/Plater.cpp:1863 +msgid "Export STL file:" +msgstr "STL 파일 내보내기:" + +#: src/slic3r/GUI/Plater.cpp:1870 +msgid "Export AMF file:" +msgstr "AMF 파일 내보내기:" + +#: src/slic3r/GUI/Plater.cpp:1876 +msgid "Save file as:" +msgstr "다른 이름으로 파일 저장:" + +#: src/slic3r/GUI/Plater.cpp:2042 +msgid "Arranging canceled" +msgstr "취소 된 정렬" + +#: src/slic3r/GUI/Plater.cpp:2045 +msgid "Arranging" +msgstr "정렬" + +#: src/slic3r/GUI/Plater.cpp:2079 +msgid "Could not arrange model objects! Some geometries may be invalid." +msgstr "모델 개체를 정렬할 수 없습니다. 일부 형상은 유효 하지 않을 수 있습니다." + +#: src/slic3r/GUI/Plater.cpp:2083 +msgid "Arranging done." +msgstr "정렬 완료." + +#: src/slic3r/GUI/Plater.cpp:2124 +msgid "Orientation search canceled" +msgstr "오리엔테이션 검색이 취소 됨" + +#: src/slic3r/GUI/Plater.cpp:2129 +msgid "Searching for optimal orientation" +msgstr "최적의 방향 검색" + +#: src/slic3r/GUI/Plater.cpp:2190 +msgid "Orientation found." +msgstr "방향을 찾았습니다." + +#: src/slic3r/GUI/Plater.cpp:2211 +msgid "The selected object can't be split because it contains more than one volume/material." +msgstr "선택한 객체는 둘 이상의 볼륨 / 재료가 포함되어 있기 때문에 분할 할 수 없습니다." + +#: src/slic3r/GUI/Plater.cpp:2337 +msgid "Invalid data" +msgstr "잘못 된 데이터" + +#: src/slic3r/GUI/Plater.cpp:2346 +msgid "Ready to slice" +msgstr "슬라이스 준비" + +#: src/slic3r/GUI/Plater.cpp:2379 src/slic3r/GUI/PrintHostDialogs.cpp:220 +msgid "Cancelling" +msgstr "취소 중" + +#: src/slic3r/GUI/Plater.cpp:2396 +msgid "Another export job is currently running." +msgstr "다른 내보내기 작업이 현재 실행 중입니다." + +#: src/slic3r/GUI/Plater.cpp:2656 +msgid "Export failed" +msgstr "내보내기 실패" + +#: src/slic3r/GUI/Plater.cpp:2661 src/slic3r/GUI/PrintHostDialogs.cpp:221 +msgid "Cancelled" +msgstr "취소됨" + +#: src/slic3r/GUI/Plater.cpp:2747 src/slic3r/GUI/Plater.cpp:2759 src/slic3r/GUI/Plater.cpp:2831 +msgid "Increase copies" +msgstr "복사본 늘리기" + +#: src/slic3r/GUI/Plater.cpp:2825 src/slic3r/GUI/Plater.cpp:2843 +msgid "Remove the selected object" +msgstr "선택한 객체 제거" + +#: src/slic3r/GUI/Plater.cpp:2831 +msgid "Place one more copy of the selected object" +msgstr "선택한 객체를 하나 더 복사합니다" + +#: src/slic3r/GUI/Plater.cpp:2833 +msgid "Decrease copies" +msgstr "복사본 감소" + +#: src/slic3r/GUI/Plater.cpp:2833 +msgid "Remove one copy of the selected object" +msgstr "선택한 객체 복사본 하나 삭제" + +#: src/slic3r/GUI/Plater.cpp:2835 +msgid "Set number of copies" +msgstr "복사될 수량 설정" + +#: src/slic3r/GUI/Plater.cpp:2835 +msgid "Change the number of copies of the selected object" +msgstr "선택한 개체의 복사본 수 변경" + +#: src/slic3r/GUI/Plater.cpp:2858 +msgid "Reload from Disk" +msgstr "디스크에서 다시 불러오기" + +#: src/slic3r/GUI/Plater.cpp:2858 +msgid "Reload the selected file from Disk" +msgstr "디스크에서 다시 불러오기" + +#: src/slic3r/GUI/Plater.cpp:2861 +msgid "Export the selected object as STL file" +msgstr "선택한 객체를 STL 파일로 내보내기" + +#: src/slic3r/GUI/Plater.cpp:2873 +msgid "Along X axis" +msgstr "X 축을 따라" + +#: src/slic3r/GUI/Plater.cpp:2873 +msgid "Mirror the selected object along the X axis" +msgstr "선택한 객체를 X 축을 따라 반전합니다" + +#: src/slic3r/GUI/Plater.cpp:2875 +msgid "Along Y axis" +msgstr "Y 축을 따라" + +#: src/slic3r/GUI/Plater.cpp:2875 +msgid "Mirror the selected object along the Y axis" +msgstr "선택한 객체를 Y 축을 따라 반전합니다" + +#: src/slic3r/GUI/Plater.cpp:2877 +msgid "Along Z axis" +msgstr "Z 축 따라" + +#: src/slic3r/GUI/Plater.cpp:2877 +msgid "Mirror the selected object along the Z axis" +msgstr "선택한 객체를 Z 축을 따라 반전합니다" + +#: src/slic3r/GUI/Plater.cpp:2880 +msgid "Mirror" +msgstr "반전(Mirror)" + +#: src/slic3r/GUI/Plater.cpp:2880 +msgid "Mirror the selected object" +msgstr "반전할 객제를 선택" + +#: src/slic3r/GUI/Plater.cpp:2898 +msgid "To objects" +msgstr "개체에" + +#: src/slic3r/GUI/Plater.cpp:2898 src/slic3r/GUI/Plater.cpp:2920 +msgid "Split the selected object into individual objects" +msgstr "선택한 개체를 개별 개체로 분할 합니다." + +#: src/slic3r/GUI/Plater.cpp:2900 +msgid "To parts" +msgstr "부품에" + +#: src/slic3r/GUI/Plater.cpp:2900 src/slic3r/GUI/Plater.cpp:2940 +msgid "Split the selected object into individual sub-parts" +msgstr "선택한 오브젝트를 개별 하위 파트로 분할" + +#: src/slic3r/GUI/Plater.cpp:2903 src/slic3r/GUI/Plater.cpp:2920 src/slic3r/GUI/Plater.cpp:2940 +#: src/libslic3r/PrintConfig.cpp:3075 +msgid "Split" +msgstr "쪼개기" + +#: src/slic3r/GUI/Plater.cpp:2903 +msgid "Split the selected object" +msgstr "선택한 개체 분할" + +#: src/slic3r/GUI/Plater.cpp:2926 +msgid "Optimize orientation" +msgstr "방향 최적화" + +#: src/slic3r/GUI/Plater.cpp:2926 +msgid "Optimize the rotation of the object for better print results." +msgstr "더 나은 인쇄 결과를 위해 개체의 회전을 최적화합니다." + +#: src/slic3r/GUI/Plater.cpp:3127 +msgid "3D editor view" +msgstr "3D 편집화면 보기" + +#: src/slic3r/GUI/Plater.cpp:3342 +msgid "Save G-code file as:" +msgstr "G-code 파일 다른 이름 저장:" + +#: src/slic3r/GUI/Plater.cpp:3342 +msgid "Save SL1 file as:" +msgstr "SL1 파일 다른이름 저장:" + +#: src/slic3r/GUI/Plater.cpp:3397 +#, c-format +msgid "STL file exported to %s" +msgstr "내보낸 STL 파일 %s" + +#: src/slic3r/GUI/Plater.cpp:3413 +#, c-format +msgid "AMF file exported to %s" +msgstr "내보낸 AMF 파일 %s" + +#: src/slic3r/GUI/Plater.cpp:3416 +#, c-format +msgid "Error exporting AMF file %s" +msgstr "AMF 파일 내보내기 오류 %s" + +#: src/slic3r/GUI/Plater.cpp:3442 +#, c-format +msgid "3MF file exported to %s" +msgstr "3MF 파일을 내보냈습니다 %s" + +#: src/slic3r/GUI/Plater.cpp:3445 +#, c-format +msgid "Error exporting 3MF file %s" +msgstr "3MF 파일 내보내기 오류 %s" + +#: src/slic3r/GUI/Plater.cpp:3673 +msgid "Export" +msgstr "내보내기" + +#: src/slic3r/GUI/Plater.cpp:3674 +msgid "Send G-code" +msgstr "G 코드 보내기" + +#: src/slic3r/GUI/Preferences.cpp:17 src/slic3r/GUI/Tab.cpp:1762 src/slic3r/GUI/Tab.cpp:1963 +msgid "General" +msgstr "일반" + +#: src/slic3r/GUI/Preferences.cpp:34 +msgid "Remember output directory" +msgstr "출력 디렉토리 기억하기" + +#: src/slic3r/GUI/Preferences.cpp:36 +msgid "" +"If this is enabled, Slic3r will prompt the last output directory instead of the one containing the input " +"files." +msgstr "이 옵션을 사용하면 Slic3r은 입력 파일이 들어있는 디렉터리 대신 마지막 출력 디렉터리를 묻습니다." + +#: src/slic3r/GUI/Preferences.cpp:42 +msgid "Auto-center parts" +msgstr "부품을 자동으로 중심에" + +#: src/slic3r/GUI/Preferences.cpp:44 +msgid "If this is enabled, Slic3r will auto-center objects around the print bed center." +msgstr "이 옵션을 사용하면 Slic3r이 개체를 인쇄판 중앙에 자동으로 배치합니다." + +#: src/slic3r/GUI/Preferences.cpp:50 +msgid "Background processing" +msgstr "백그라운드 프로세싱" + +#: src/slic3r/GUI/Preferences.cpp:52 +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 "" +"이 사용 하는 경우 Slic3r는 전처리 개체 최대한 빨리 그들이 시간을 절약 하기 위해 로드 G-코드를 내보낼 때." + +#: src/slic3r/GUI/Preferences.cpp:74 +msgid "Suppress \" - default - \" presets" +msgstr "\"- 기본 -\"사전 설정 숨기기" + +#: src/slic3r/GUI/Preferences.cpp:76 +msgid "" +"Suppress \" - default - \" presets in the Print / Filament / Printer selections once there are any other " +"valid presets available." +msgstr "" +"사용 가능한 다른 유효한 사전 설정이 있으면 인쇄 / 필라멘트 / 프린터 선택에서 \"- 기본 -\"사전 설정을 억제하십" +"시오." + +#: src/slic3r/GUI/Preferences.cpp:82 +msgid "Show incompatible print and filament presets" +msgstr "호환 되지 않는 인쇄 및 필라멘트 설정" + +#: src/slic3r/GUI/Preferences.cpp:84 +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:91 +msgid "Use legacy OpenGL 1.1 rendering" +msgstr "레거시 OpenGL 1.1 렌더링 사용" + +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "" +"If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may try to check this checkbox. This " +"will disable the layer height editing and anti aliasing, so it is likely better to upgrade your graphics " +"driver." +msgstr "" +"버그가있는 OpenGL 2.0 드라이버로 인한 렌더링 문제가있는 경우이 확인란을 선택해보십시오. 이렇게하면 레이어 높" +"이 편집 및 앤티 앨리어싱이 비활성화되므로 그래픽 드라이버를 업그레이드하는 것이 좋습니다." + +#: src/slic3r/GUI/Preferences.cpp:101 +msgid "Use Retina resolution for the 3D scene" +msgstr "3D 장면에 레티나 해상도 사용" + +#: src/slic3r/GUI/Preferences.cpp:103 +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 "" +"활성화 된 경우 3D 장면은 레티나 해상도로 렌더링 됩니다. 3D 성능 문제가 발생하는 경우, 옵션을 사용하지 않도록 " +"설정 하면 도움이 될 수 있습니다." + +#: src/slic3r/GUI/Preferences.cpp:126 +msgid "You need to restart Slic3r to make the changes effective." +msgstr "변경 사항을 적용하려면 Slic3r을 다시 시작해야합니다." + +#: src/slic3r/GUI/Preset.cpp:207 +msgid "modified" +msgstr "수정된곳" + +#: src/slic3r/GUI/Preset.cpp:918 src/slic3r/GUI/Preset.cpp:958 src/slic3r/GUI/Preset.cpp:1011 +#: src/slic3r/GUI/Preset.cpp:1043 src/slic3r/GUI/PresetBundle.cpp:1484 src/slic3r/GUI/PresetBundle.cpp:1537 +msgid "System presets" +msgstr "시스템 기본설정" + +#: src/slic3r/GUI/Preset.cpp:962 src/slic3r/GUI/Preset.cpp:1047 src/slic3r/GUI/PresetBundle.cpp:1542 +msgid "User presets" +msgstr "사용자 사전설정" + +#: src/slic3r/GUI/Preset.cpp:991 src/slic3r/GUI/Tab.cpp:247 +msgid "Add a new printer" +msgstr "새 프린터 추가" + +#: src/slic3r/GUI/Preset.cpp:1251 +msgid "filament" +msgstr "필라멘트" + +#: src/slic3r/GUI/PresetHints.cpp:28 +msgid "" +"If estimated layer time is below ~%1%s, fan will run at %2%%% and print speed will be reduced so that no less " +"than %3%s are spent on that layer (however, speed will never be reduced below %4%mm/s)." +msgstr "" +"예상 레이어 시간이 ~%1%초 미만이면 팬이 %2%%%에서 실행되고 인쇄 속도가 감소되어 해당 레이어에 %3%초 이상 소비" +"됩니다 (단, 속도는 %4%mm/s 이하로 감소하지 않습니다) ." + +#: src/slic3r/GUI/PresetHints.cpp:35 +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed " +"between %2%%% and %3%%%." +msgstr "" +"\n" +"예상 레이어 시간이 더 길지만 ~%1%초 미만인 경우 팬은 %2%%%와 %3%%%사이 비례, 감소하는 속도로 실행됩니다." + +#: src/slic3r/GUI/PresetHints.cpp:39 +msgid "" +"\n" +"During the other layers, fan" +msgstr "" +"\n" +"다른 레이어의, 팬설정은 " + +#: src/slic3r/GUI/PresetHints.cpp:41 +msgid "Fan" +msgstr "팬(Fan) " + +#: src/slic3r/GUI/PresetHints.cpp:47 +msgid "will always run at %1%%%" +msgstr "항상 다음처럼 실행 %1%%%" + +#: src/slic3r/GUI/PresetHints.cpp:50 +msgid "except for the first %1% layers." +msgstr "첫 번째 %d 레이어를 제외하고" + +#: src/slic3r/GUI/PresetHints.cpp:52 +msgid "except for the first layer." +msgstr "첫 번째 레이어를 제외하고" + +#: src/slic3r/GUI/PresetHints.cpp:54 +msgid "will be turned off." +msgstr "off 됩니다." + +#: src/slic3r/GUI/PresetHints.cpp:153 +msgid "external perimeters" +msgstr "외부 둘레" + +#: src/slic3r/GUI/PresetHints.cpp:162 +msgid "perimeters" +msgstr "둘레" + +#: src/slic3r/GUI/PresetHints.cpp:171 +msgid "infill" +msgstr "채움(infill)" + +#: src/slic3r/GUI/PresetHints.cpp:181 +msgid "solid infill" +msgstr "고체(solid)부분 채움" + +#: src/slic3r/GUI/PresetHints.cpp:189 +msgid "top solid infill" +msgstr "가장 윗부분 채움" + +#: src/slic3r/GUI/PresetHints.cpp:200 +msgid "support" +msgstr "서포트" + +#: src/slic3r/GUI/PresetHints.cpp:210 +msgid "support interface" +msgstr "서포트 인터페이스" + +#: src/slic3r/GUI/PresetHints.cpp:218 +msgid "First layer volumetric" +msgstr "첫번째 레이어 용적은" + +#: src/slic3r/GUI/PresetHints.cpp:218 +msgid "Bridging volumetric" +msgstr "브리징(Bridging) 용적" + +#: src/slic3r/GUI/PresetHints.cpp:218 +msgid "Volumetric" +msgstr "용적" + +#: src/slic3r/GUI/PresetHints.cpp:219 +msgid "flow rate is maximized" +msgstr "의 유속(flow)이 최대화된다. " + +#: src/slic3r/GUI/PresetHints.cpp:222 +msgid "by the print profile maximum" +msgstr "인쇄 프로파일 최대 값" + +#: src/slic3r/GUI/PresetHints.cpp:223 +msgid "when printing" +msgstr "인쇄 할때 " + +#: src/slic3r/GUI/PresetHints.cpp:224 +msgid "with a volumetric rate" +msgstr "의 용적 비율로 " + +#: src/slic3r/GUI/PresetHints.cpp:226 +#, c-format +msgid "%3.2f mm³/s" +msgstr "%3.2f mm³/s" + +#: src/slic3r/GUI/PresetHints.cpp:228 +#, c-format +msgid "%3.2f mm³/s at filament speed %3.2f mm/s." +msgstr "%3.2f mm³/s 필라멘트 속도는 %3.2f mm/s이다." + +#: src/slic3r/GUI/PresetHints.cpp:246 +msgid "Recommended object thin wall thickness: Not available due to invalid layer height." +msgstr "권장 객체(object)의 벽(wall) 두께: 잘못된 레이어 높이 때문에 사용할 수 없음." + +#: src/slic3r/GUI/PresetHints.cpp:262 +#, c-format +msgid "Recommended object thin wall thickness for layer height %.2f and" +msgstr "객체 레이어 높이 %.2f 에 권장하는 두깨는 " + +#: src/slic3r/GUI/PresetHints.cpp:271 +#, c-format +msgid "%d lines: %.2lf mm" +msgstr "%d 라인(lines): %.2lf mm 입니다." + +#: src/slic3r/GUI/PrintHostDialogs.cpp:32 +msgid "Send G-Code to printer host" +msgstr "프린터 호스트로 G 코드 보내기" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:32 +msgid "Upload to Printer Host with the following filename:" +msgstr "다음 파일 이름으로 프린터 호스트에 업로드:" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:34 +msgid "Start printing after upload" +msgstr "업로드 후 인쇄 시작" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:41 +msgid "Use forward slashes ( / ) as a directory separator if needed." +msgstr "필요한 경우 디렉토리 분리 기호로 슬래시 (/)를 사용하십시오." + +#: src/slic3r/GUI/PrintHostDialogs.cpp:157 +msgid "Cancel selected" +msgstr "선택 취소" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:159 +msgid "Show error message" +msgstr "오류 메시지 표시" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:198 src/slic3r/GUI/PrintHostDialogs.cpp:217 +msgid "Enqueued" +msgstr "입력됨" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:218 +msgid "Uploading" +msgstr "업로드" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:222 +msgid "Completed" +msgstr "완료됨" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:260 +msgid "Error uploading to print host:" +msgstr "인쇄 호스트에 업로드 하는 중 오류 발생:" + +#: src/slic3r/GUI/RammingChart.cpp:23 +msgid "NO RAMMING AT ALL" +msgstr "전혀 충돌 없음" + +#: src/slic3r/GUI/RammingChart.cpp:76 +msgid "Time" +msgstr "시간" + +#: src/slic3r/GUI/RammingChart.cpp:76 src/slic3r/GUI/RammingChart.cpp:81 src/slic3r/GUI/WipeTowerDialog.cpp:82 +#: src/libslic3r/PrintConfig.cpp:611 src/libslic3r/PrintConfig.cpp:655 src/libslic3r/PrintConfig.cpp:670 +#: src/libslic3r/PrintConfig.cpp:2241 src/libslic3r/PrintConfig.cpp:2250 src/libslic3r/PrintConfig.cpp:2308 +#: src/libslic3r/PrintConfig.cpp:2315 +msgid "s" +msgstr "s" + +#: src/slic3r/GUI/RammingChart.cpp:81 +msgid "Volumetric speed" +msgstr "용적(Volumetric) 스피트" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "Slic3r Prusa Edition - System Information" +msgstr "Slic3r Prusa 에디션-시스템 정보" + +#: src/slic3r/GUI/Tab.cpp:50 src/libslic3r/PrintConfig.cpp:228 +msgid "Compatible printers" +msgstr "호환 가능한 프린터들" + +#: src/slic3r/GUI/Tab.cpp:51 +msgid "Select the printers this profile is compatible with." +msgstr "이 프로파일과 호환 가능한 프린터를 선택하세요." + +#: src/slic3r/GUI/Tab.cpp:56 src/libslic3r/PrintConfig.cpp:243 +msgid "Compatible print profiles" +msgstr "호환되는 인쇄 프로 파일" + +#: src/slic3r/GUI/Tab.cpp:57 +msgid "Select the print profiles this profile is compatible with." +msgstr "이 프로필이 호환되는 인쇄 프로필을 선택 합니다." + +#: src/slic3r/GUI/Tab.cpp:132 +msgid "Save current " +msgstr "지금 저장 " + +#: src/slic3r/GUI/Tab.cpp:133 +msgid "Delete this preset" +msgstr "이전 설정 삭제" + +#: src/slic3r/GUI/Tab.cpp:145 +msgid "" +"Hover the cursor over buttons to find more information \n" +"or click this button." +msgstr "" +"버튼 위로 커서를 가져 가서 자세한 정보를 찾습니다.\n" +"또는이 버튼을 클릭하십시오." + +#: src/slic3r/GUI/Tab.cpp:920 +msgid "It's a default preset." +msgstr "기본 설정입니다." + +#: src/slic3r/GUI/Tab.cpp:921 +msgid "It's a system preset." +msgstr "시스템 설정입니다." + +#: src/slic3r/GUI/Tab.cpp:922 +#, c-format +msgid "Current preset is inherited from %s" +msgstr "전의 %s 설정에서 가져 옵니다 " + +#: src/slic3r/GUI/Tab.cpp:923 +msgid "default preset" +msgstr "기본 프리셋" + +#: src/slic3r/GUI/Tab.cpp:927 +msgid "It can't be deleted or modified." +msgstr "삭제하거나 수정할 수 없습니다. " + +#: src/slic3r/GUI/Tab.cpp:928 +msgid "Any modifications should be saved as a new preset inherited from this one." +msgstr "모든 수정 사항은 이 항목에서 받은 기본 설정으로 저장해야합니다. " + +#: src/slic3r/GUI/Tab.cpp:929 +msgid "To do that please specify a new name for the preset." +msgstr "그렇게하려면 기본 설정의 새 이름을 지정하십시오." + +#: src/slic3r/GUI/Tab.cpp:933 +msgid "Additional information:" +msgstr "추가 정보:" + +#: src/slic3r/GUI/Tab.cpp:939 +msgid "printer model" +msgstr "프린터 모델" + +#: src/slic3r/GUI/Tab.cpp:947 +msgid "default print profile" +msgstr "기본 인쇄 프로파일" + +#: src/slic3r/GUI/Tab.cpp:950 +msgid "default filament profile" +msgstr "기본 필라멘트 프로파일" + +#: src/slic3r/GUI/Tab.cpp:964 +msgid "default SLA material profile" +msgstr "기본 SLA 재질 프로 파일" + +#: src/slic3r/GUI/Tab.cpp:968 +msgid "default SLA print profile" +msgstr "기본 SLA 인쇄 프로필" + +#: src/slic3r/GUI/Tab.cpp:948 src/slic3r/GUI/Tab.cpp:3303 +msgid "Layers and perimeters" +msgstr "레이어 및 경계선" + +#: src/slic3r/GUI/Tab.cpp:949 src/libslic3r/PrintConfig.cpp:55 +msgid "Layer height" +msgstr "레이어 높이" + +#: src/slic3r/GUI/Tab.cpp:953 +msgid "Vertical shells" +msgstr "쉘 높이" + +#: src/slic3r/GUI/Tab.cpp:964 +msgid "Horizontal shells" +msgstr "쉘 너비" + +#: src/slic3r/GUI/Tab.cpp:965 src/libslic3r/PrintConfig.cpp:1709 +msgid "Solid layers" +msgstr "솔리드 레이어" + +#: src/slic3r/GUI/Tab.cpp:970 +msgid "Quality (slower slicing)" +msgstr "품질(슬라이싱이 느려짐)" + +#: src/slic3r/GUI/Tab.cpp:988 +msgid "Reducing printing time" +msgstr "출력 시간 단축" + +#: src/slic3r/GUI/Tab.cpp:1000 +msgid "Skirt and brim" +msgstr "스커트와 브림" + +#: src/slic3r/GUI/Tab.cpp:1017 +msgid "Raft" +msgstr "라프트" + +#: src/slic3r/GUI/Tab.cpp:1021 +msgid "Options for support material and raft" +msgstr "서포트와 라프트 재료를 선택" + +#: src/slic3r/GUI/Tab.cpp:1036 +msgid "Speed for print moves" +msgstr "출력중 이동 속도" + +#: src/slic3r/GUI/Tab.cpp:1048 +msgid "Speed for non-print moves" +msgstr "미출력시 이동속도" + +#: src/slic3r/GUI/Tab.cpp:1051 +msgid "Modifiers" +msgstr "수정" + +#: src/slic3r/GUI/Tab.cpp:1054 +msgid "Acceleration control (advanced)" +msgstr "가속 제어(고급)" + +#: src/slic3r/GUI/Tab.cpp:1061 +msgid "Autospeed (advanced)" +msgstr "오토스피트(고급)" + +#: src/slic3r/GUI/Tab.cpp:1069 +msgid "Multiple Extruders" +msgstr "다중 익스트루더" + +#: src/slic3r/GUI/Tab.cpp:1077 +msgid "Ooze prevention" +msgstr "오즈 방지(Ooze prevention)" + +#: src/slic3r/GUI/Tab.cpp:1094 +msgid "Extrusion width" +msgstr "악출 폭(Extrusion width)" + +#: src/slic3r/GUI/Tab.cpp:1104 +msgid "Overlap" +msgstr "겹침(Overlap)" + +#: src/slic3r/GUI/Tab.cpp:1107 +msgid "Flow" +msgstr "유량(Flow)" + +#: src/slic3r/GUI/Tab.cpp:1116 +msgid "Other" +msgstr "그 외" + +#: src/slic3r/GUI/Tab.cpp:1119 src/slic3r/GUI/Tab.cpp:3351 +msgid "Output options" +msgstr "출력 옵션" + +#: src/slic3r/GUI/Tab.cpp:1120 +msgid "Sequential printing" +msgstr "연속 인쇄" + +#: src/slic3r/GUI/Tab.cpp:1122 +msgid "Extruder clearance (mm)" +msgstr "익스트루더 간격(mm)" + +#: src/slic3r/GUI/Tab.cpp:1131 src/slic3r/GUI/Tab.cpp:3352 +msgid "Output file" +msgstr "출력 파일" + +#: src/slic3r/GUI/Tab.cpp:1138 src/libslic3r/PrintConfig.cpp:1382 +msgid "Post-processing scripts" +msgstr "포스트 프로세싱 스크립트" + +#: src/slic3r/GUI/Tab.cpp:1144 src/slic3r/GUI/Tab.cpp:1145 src/slic3r/GUI/Tab.cpp:1527 +#: src/slic3r/GUI/Tab.cpp:1528 src/slic3r/GUI/Tab.cpp:1935 src/slic3r/GUI/Tab.cpp:1936 +#: src/slic3r/GUI/Tab.cpp:2027 src/slic3r/GUI/Tab.cpp:2028 src/slic3r/GUI/Tab.cpp:3240 +#: src/slic3r/GUI/Tab.cpp:3241 +msgid "Notes" +msgstr "메모" + +#: src/slic3r/GUI/Tab.cpp:1151 src/slic3r/GUI/Tab.cpp:1535 src/slic3r/GUI/Tab.cpp:1942 +#: src/slic3r/GUI/Tab.cpp:2034 src/slic3r/GUI/Tab.cpp:3248 src/slic3r/GUI/Tab.cpp:3357 +msgid "Dependencies" +msgstr "속한 그룹" + +#: src/slic3r/GUI/Tab.cpp:1152 src/slic3r/GUI/Tab.cpp:1536 src/slic3r/GUI/Tab.cpp:1943 +#: src/slic3r/GUI/Tab.cpp:2035 src/slic3r/GUI/Tab.cpp:3249 src/slic3r/GUI/Tab.cpp:3358 +msgid "Profile dependencies" +msgstr "프로파일 속한곳" + +#: src/slic3r/GUI/Tab.cpp:1198 +#, no-c-format +msgid "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" +msgstr "" +"스파이럴 바이스 모드에는 다음이 필요합니다.\n" +"- one 둘레\n" +"- 탑 솔리드 레이어 없음\n" +"- 채우기(fill) 밀도 0 %\n" +"- 서포트 재료 없음\n" +"- 수직 벽 두깨를 보장하지 않음\n" +"\n" +"스파이럴 바이스를 사용하려면 이러한 설정을 조정해야합니까?" + +#: src/slic3r/GUI/Tab.cpp:1205 +msgid "Spiral Vase" +msgstr "스파이럴 바이스" + +#: src/slic3r/GUI/Tab.cpp:1228 +msgid "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool change.\n" +"(both support_material_extruder and support_material_interface_extruder need to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" +msgstr "" +"와이퍼 타워는 현재 비 가용성 서포트 만 지원합니다.\n" +"공구 교환을 트리거하지 않고 현재 압출기로 인쇄 한 경우.\n" +"(support_material_extruder 및 support_material_interface_extruder를 모두 0으로 설정해야 함).\n" +"\n" +"와이퍼 타워를 사용하려면 이러한 설정을 조정해야합니까?" + +#: src/slic3r/GUI/Tab.cpp:1232 src/slic3r/GUI/Tab.cpp:1249 +msgid "Wipe Tower" +msgstr "와이프 타워(Wipe Tower)" + +#: src/slic3r/GUI/Tab.cpp:1246 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "" +"와이퍼 타워가 가용성 서포트와 함께 작용하기 위해, 서포트 레이어\n" +"객체 레이어와 동기화되어야합니다.\n" +"\n" +"와이퍼 타워를 사용하려면 서포트 레이어를 동기화해야합니까?" + +#: src/slic3r/GUI/Tab.cpp:1264 +msgid "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" +msgstr "" +"다음 기능을 사용하는 경우 더 나은 작업을 지원합니다.\n" +"- 브리지 경계 검출\n" +"\n" +"서포트에 대한 설정을 조정해야합니까?" + +#: src/slic3r/GUI/Tab.cpp:1267 +msgid "Support Generator" +msgstr "서포트 생성" + +#: src/slic3r/GUI/Tab.cpp:1309 +msgid "The " +msgstr "The " + +#: src/slic3r/GUI/Tab.cpp:1309 +#, no-c-format +msgid "" +" infill pattern is not supposed to work at 100% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +" infill 패턴은 100 % 밀도에서 작동하지 않습니다.\n" +"\n" +"직선 채우기 패턴으로 전환해야합니까?" + +#: src/slic3r/GUI/Tab.cpp:1429 +msgid "Temperature " +msgstr "온도 " + +#: src/slic3r/GUI/Tab.cpp:1435 +msgid "Bed" +msgstr "배드(Bed)" + +#: src/slic3r/GUI/Tab.cpp:1440 +msgid "Cooling" +msgstr "냉각(Cooling)" + +#: src/slic3r/GUI/Tab.cpp:1441 src/libslic3r/PrintConfig.cpp:1285 src/libslic3r/PrintConfig.cpp:2097 +msgid "Enable" +msgstr "사용" + +#: src/slic3r/GUI/Tab.cpp:1452 +msgid "Fan settings" +msgstr "팬 설정" + +#: src/slic3r/GUI/Tab.cpp:1453 +msgid "Fan speed" +msgstr "팬 속도" + +#: src/slic3r/GUI/Tab.cpp:1461 +msgid "Cooling thresholds" +msgstr "냉각 임계 값" + +#: src/slic3r/GUI/Tab.cpp:1467 +msgid "Filament properties" +msgstr "필라멘트 특성" + +#: src/slic3r/GUI/Tab.cpp:1471 +msgid "Print speed override" +msgstr "인쇄 속도 중단" + +#: src/slic3r/GUI/Tab.cpp:1481 +msgid "Toolchange parameters with single extruder MM printers" +msgstr "싱글 익스트루더 MM 프린터를 사용한 공구 교환 매개 변수" + +#: src/slic3r/GUI/Tab.cpp:1496 +msgid "Ramming settings" +msgstr "래밍 설정" + +#: src/slic3r/GUI/Tab.cpp:1514 src/slic3r/GUI/Tab.cpp:1898 +msgid "Custom G-code" +msgstr "수동 G코드" + +#: src/slic3r/GUI/Tab.cpp:1515 src/slic3r/GUI/Tab.cpp:1899 src/libslic3r/PrintConfig.cpp:1735 +#: src/libslic3r/PrintConfig.cpp:1750 +msgid "Start G-code" +msgstr "스타트 G코드" + +#: src/slic3r/GUI/Tab.cpp:1521 src/slic3r/GUI/Tab.cpp:1905 src/libslic3r/PrintConfig.cpp:358 +#: src/libslic3r/PrintConfig.cpp:368 +msgid "End G-code" +msgstr "엔드 G코드" + +#: src/slic3r/GUI/FirmwareDialog.cpp:768 src/slic3r/GUI/Tab.cpp:1718 src/slic3r/GUI/Tab.cpp:1774 +msgid "Browse" +msgstr "검색" + +#: src/slic3r/GUI/Tab.cpp:1651 src/slic3r/GUI/Tab.cpp:1838 +msgid "Test" +msgstr "시험(test)" + +#: src/slic3r/GUI/Tab.cpp:1747 +msgid "Could not get a valid Printer Host reference" +msgstr "유효한 프린터 호스트 참조를 가져올 수 없습니다" + +#: src/slic3r/GUI/Tab.cpp:1753 src/slic3r/GUI/Tab.cpp:1938 +msgid "Success!" +msgstr "성공!" + +#: src/slic3r/GUI/Tab.cpp:1768 +msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate." +msgstr "HTTPS CA 파일은 선택 사항입니다. 자체 서명 된 인증서로 HTTPS를 사용하는 경우에만 필요합니다." + +#: src/slic3r/GUI/Tab.cpp:1781 +msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" +msgstr "인증서 파일 (* .crt, * .pem) | * .crt; * .pem | 모든 파일 | *. *" + +#: src/slic3r/GUI/Tab.cpp:1782 +msgid "Open CA certificate file" +msgstr "CA 인증서 파일 열기" + +#: src/slic3r/GUI/Tab.cpp:1810 +#, c-format +msgid "" +"HTTPS CA File:\n" +" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n" +" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"HTTPS CA 파일:\n" +"\t이 시스템에서 %s는 시스템 인증서 저장소나 키체인의 HTTPS 인증서를 사용 합니다.\n" +"\t사용자 지정 CA 파일을 사용 하려면 CA 파일을 인증서 저장소/키체인에 가져오십시오." + +#: src/slic3r/GUI/Tab.cpp:1850 src/slic3r/GUI/Tab.cpp:2051 +msgid "Size and coordinates" +msgstr "크기와 좌표" + +#: src/slic3r/GUI/Tab.cpp:1855 src/slic3r/GUI/Tab.cpp:2056 src/slic3r/GUI/Tab.cpp:3040 +msgid "Set" +msgstr " 세트 " + +#: src/slic3r/GUI/Tab.cpp:1877 +msgid "Capabilities" +msgstr "기능" + +#: src/slic3r/GUI/Tab.cpp:1882 +msgid "Number of extruders of the printer." +msgstr "프린터 익스트루더 숫자." + +#: src/slic3r/GUI/Tab.cpp:1910 +msgid "USB/Serial connection" +msgstr "USB/시리얼 연결" + +#: src/slic3r/GUI/Tab.cpp:1911 src/libslic3r/PrintConfig.cpp:1626 +msgid "Serial port" +msgstr "시리얼 포트" + +#: src/slic3r/GUI/Tab.cpp:1916 +msgid "Rescan serial ports" +msgstr "시리얼포트 재검색" + +#: src/slic3r/GUI/Tab.cpp:1938 +msgid "Connection to printer works correctly." +msgstr "프린터 연결이 올바르게 작동합니다." + +#: src/slic3r/GUI/Tab.cpp:1941 +msgid "Connection failed." +msgstr "연결 실패." + +#: src/slic3r/GUI/Tab.cpp:1954 src/slic3r/GUI/Tab.cpp:2111 +msgid "Print Host upload" +msgstr "호스트 업로드 인쇄" + +#: src/slic3r/GUI/Tab.cpp:1998 src/libslic3r/PrintConfig.cpp:129 +msgid "Before layer change G-code" +msgstr "레이어 변경 전 G 코드" + +#: src/slic3r/GUI/Tab.cpp:2004 src/libslic3r/PrintConfig.cpp:1042 +msgid "After layer change G-code" +msgstr "레이어 변경 후 G 코드" + +#: src/slic3r/GUI/Tab.cpp:2010 src/libslic3r/PrintConfig.cpp:2041 +msgid "Tool change G-code" +msgstr "툴 채인지 G 코드" + +#: src/slic3r/GUI/Tab.cpp:2016 +msgid "Between objects G-code (for sequential printing)" +msgstr "객체 간 G 코드 (순차 인쇄용)" + +#: src/slic3r/GUI/Tab.cpp:1990 +msgid "Display" +msgstr "표시" + +#: src/slic3r/GUI/Tab.cpp:2001 +msgid "Tilt" +msgstr "기울이기" + +#: src/slic3r/GUI/Tab.cpp:2002 +msgid "Tilt time" +msgstr "기울이기 시간" + +#: src/slic3r/GUI/Tab.cpp:2008 src/slic3r/GUI/Tab.cpp:3223 +msgid "Corrections" +msgstr "수정" + +#: src/slic3r/GUI/Tab.cpp:2074 src/slic3r/GUI/Tab.cpp:2136 src/libslic3r/PrintConfig.cpp:1076 +#: src/libslic3r/PrintConfig.cpp:1086 src/libslic3r/PrintConfig.cpp:1096 src/libslic3r/PrintConfig.cpp:1109 +#: src/libslic3r/PrintConfig.cpp:1120 src/libslic3r/PrintConfig.cpp:1131 src/libslic3r/PrintConfig.cpp:1142 +msgid "Machine limits" +msgstr "머신 한계설정" + +#: src/slic3r/GUI/Tab.cpp:2088 +msgid "Values in this column are for Full Power mode" +msgstr "이 열의 값은 최대 전력 모드입니다" + +#: src/slic3r/GUI/Tab.cpp:2089 +msgid "Full Power" +msgstr "최대 파워" + +#: src/slic3r/GUI/Tab.cpp:2094 +msgid "Values in this column are for Silent mode" +msgstr "이 열의 값은 무음 모드 용입니다" + +#: src/slic3r/GUI/Tab.cpp:2095 +msgid "Silent" +msgstr "무음" + +#: src/slic3r/GUI/Tab.cpp:2103 +msgid "Maximum feedrates" +msgstr "최대 이송속도" + +#: src/slic3r/GUI/Tab.cpp:2108 +msgid "Maximum accelerations" +msgstr "최고 가속도" + +#: src/slic3r/GUI/Tab.cpp:2115 +msgid "Jerk limits" +msgstr "저크(Jerk)값 한계" + +#: src/slic3r/GUI/Tab.cpp:2120 +msgid "Minimum feedrates" +msgstr "최대 이송속도" + +#: src/slic3r/GUI/Tab.cpp:2158 src/slic3r/GUI/Tab.cpp:2166 +msgid "Single extruder MM setup" +msgstr "싱글 익스트루더 MM 설정" + +#: src/slic3r/GUI/Tab.cpp:2167 +msgid "Single extruder multimaterial parameters" +msgstr "싱글 익스트루더 멀티메터리알 파라미터" + +#: src/slic3r/GUI/Tab.cpp:2181 src/libslic3r/GCode/PreviewData.cpp:475 +#, c-format +msgid "Extruder %d" +msgstr "익스트루더 %d" + +#: src/slic3r/GUI/Tab.cpp:2188 +msgid "Layer height limits" +msgstr "레이어 높이 한계치" + +#: src/slic3r/GUI/Tab.cpp:2193 +msgid "Position (for multi-extruder printers)" +msgstr "위치 (멀티 익스트루더 프린터 포함)" + +#: src/slic3r/GUI/Tab.cpp:2196 +msgid "Retraction" +msgstr "리트렉션" + +#: src/slic3r/GUI/Tab.cpp:2199 +msgid "Only lift Z" +msgstr "Z축만 올림" + +#: src/slic3r/GUI/Tab.cpp:2212 +msgid "Retraction when tool is disabled (advanced settings for multi-extruder setups)" +msgstr "도구 비활성화시 리트렉션 (멀티 익스트루더 고급 설정)" + +#: src/slic3r/GUI/Tab.cpp:2216 +msgid "Preview" +msgstr "프리뷰" + +#: src/slic3r/GUI/Tab.cpp:2352 +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 "" +"펌웨어 리트렉션 모드를 사용할 때는 Wipe 옵션을 사용할 수 없습니다.\n" +"\n" +"펌웨어 리트렉션 하려면 비활성화해야합니까?" + +#: src/slic3r/GUI/Tab.cpp:2354 +msgid "Firmware Retraction" +msgstr "펌웨어 레트렉션" + +#: src/slic3r/GUI/Tab.cpp:2681 +#, c-format +msgid "Default preset (%s)" +msgstr "시스템 기본값 (%s)" + +#: src/slic3r/GUI/Tab.cpp:2682 +#, c-format +msgid "Preset (%s)" +msgstr "프리셋 ( %s)" + +#: src/slic3r/GUI/Tab.cpp:2699 +msgid "has the following unsaved changes:" +msgstr "저장되지 않은 수정사항:" + +#: src/slic3r/GUI/Tab.cpp:2702 +msgid "is not compatible with printer" +msgstr "프린터와 호완 되지 않습니다" + +#: src/slic3r/GUI/Tab.cpp:2703 +msgid "is not compatible with print profile" +msgstr "인쇄 프로필과 호환 되지 않음" + +#: src/slic3r/GUI/Tab.cpp:2705 +msgid "and it has the following unsaved changes:" +msgstr "저장되지 않은 변경점은 다음과 같습니다:" + +#: src/slic3r/GUI/Tab.cpp:2708 +msgid "Discard changes and continue anyway?" +msgstr "수정된 사항을 취소하고 계속하겠습니까?" + +#: src/slic3r/GUI/Tab.cpp:2709 +msgid "Unsaved Changes" +msgstr "미 저장된 변경점" + +#: src/slic3r/GUI/Tab.cpp:2721 +msgid "Please check your object list before preset changing." +msgstr "사전 설정을 변경 하기 전에 개체 목록을 확인 하십시오." + +#: src/slic3r/GUI/Tab.cpp:2801 +msgid "Copy" +msgstr "복사" + +#: src/slic3r/GUI/Tab.cpp:2823 +msgid "The supplied name is empty. It can't be saved." +msgstr "파일 이름이 비어 있습니다. 저장할 수 없습니다." + +#: src/slic3r/GUI/Tab.cpp:2828 +msgid "Cannot overwrite a system profile." +msgstr "시스템 프로파일을 겹쳐 쓸 수 없습니다." + +#: src/slic3r/GUI/Tab.cpp:2832 +msgid "Cannot overwrite an external profile." +msgstr "외부 프로필을 덮어 쓸 수 없습니다." + +#: src/slic3r/GUI/Tab.cpp:2858 +msgid "remove" +msgstr "제거(remove)" + +#: src/slic3r/GUI/Tab.cpp:2858 +msgid "delete" +msgstr "지우기" + +#: src/slic3r/GUI/Tab.cpp:2859 +msgid "Are you sure you want to " +msgstr "정말로 다음과 같이 하겠습니까? " + +#: src/slic3r/GUI/Tab.cpp:2859 +msgid " the selected preset?" +msgstr " 를(가) 선택된 설정을 실행 할까요?" + +#: src/slic3r/GUI/Tab.cpp:2860 +msgid "Remove" +msgstr "제거(remove)" + +#: src/slic3r/GUI/Tab.cpp:2861 +msgid " Preset" +msgstr " 기본 설정" + +#: src/slic3r/GUI/Tab.cpp:2989 +msgid "LOCKED LOCK;indicates that the settings are the same as the system values for the current option group" +msgstr "자물쇠 잠금 : 설정이 현재 옵션 그룹의 시스템 값과 동일 함을 나타냅니다" + +#: src/slic3r/GUI/Tab.cpp:2992 +msgid "" +"UNLOCKED LOCK;indicates that some settings were changed and are not equal to the system values for the " +"current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"잠금 풀림 : 일부 설정이 변경되었으며 현재 옵션 그룹의 시스템 값과 같지 않음을 나타냅니다.\n" +"현재 옵션 그룹의 모든 설정을 시스템 값으로 재설정하려면 자물쇠 잠금 아이콘을 클릭하십시오." + +#: src/slic3r/GUI/Tab.cpp:2998 +msgid "" +"WHITE BULLET;for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"흰색 총알; 왼쪽 버튼 : 시스템이 아닌 사전 설정을 나타내며,\n" +"오른쪽 버튼의 경우 : 설정이 수정되지 않았 음을 나타냅니다." + +#: src/slic3r/GUI/Tab.cpp:3002 +msgid "" +"BACK ARROW;indicates that the settings were changed and are not equal to the last saved preset for the " +"current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "" +"잠금 풀림;일부 설정이 변경되었으며 현재 옵션 그룹의 시스템 값과 같지 않음을 나타냅니다.\n" +"현재 옵션 그룹의 모든 설정을 시스템 값으로 재설정하려면 자물쇠 잠금 아이콘을 클릭하십시오." + +#: src/slic3r/GUI/Tab.cpp:3028 +msgid "" +"LOCKED LOCK icon indicates that the settings are the same as the system values for the current option group" +msgstr "자물쇠 잠금 아이코 설정이 현재 옵션 그룹의 시스템 값과 동일 함을 나타냅니다" + +#: src/slic3r/GUI/Tab.cpp:3030 +msgid "" +"UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system values for the " +"current option group.\n" +"Click to reset all settings for current option group to the system values." +msgstr "" +"잠금 풀림 아이코 일부 설정이 변경되었으며 현재 옵션 그룹의 시스템 값과 같지 않음을 나타냅니다.\n" +"현재 옵션 그룹의 모든 설정을 시스템 값으로 재설정하려면 자물쇠 잠금 아이콘을 클릭하십시오." + +#: src/slic3r/GUI/Tab.cpp:3033 +msgid "WHITE BULLET icon indicates a non system preset." +msgstr "흰색 글머리 아이콘은 시스템 사전 설정이 아닌 것을 나타냅니다." + +#: src/slic3r/GUI/Tab.cpp:3036 +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:3038 +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" +"Click to reset all settings for the current option group to the last saved preset." +msgstr "" +"백화살표 아이콘 설정을 변경 하 고 현재 옵션 그룹에 대 한 마지막 저장 된 프리셋을 동일 하지 않습니다 나타냅니" +"다.\n" +"마지막 현재 옵션 그룹에 대 한 모든 설정 다시 설정을 클릭 하 여 사전 설정을 저장." + +#: src/slic3r/GUI/Tab.cpp:3044 +msgid "LOCKED LOCK icon indicates that the value is the same as the system value." +msgstr "잠긴 자물쇠 아이콘 값 같은 시스템 값 임을 나타냅니다." + +#: src/slic3r/GUI/Tab.cpp:3045 +msgid "" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system value.\n" +"Click to reset current value to the system value." +msgstr "" +"잠금 해제 자물쇠 아이콘 값 변경 된 시스템 값은 나타냅니다.\n" +"시스템 값을 현재 값으로 설정 하려면 클릭 합니다." + +#: src/slic3r/GUI/Tab.cpp:3051 +msgid "WHITE BULLET icon indicates that the value is the same as in the last saved preset." +msgstr "흰색 글머리 기호 아이콘은 마지막으로 저장 한 사전 설정과 동일한 값을 나타냅니다." + +#: src/slic3r/GUI/Tab.cpp:3052 +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 "" +"잠금 해제 자물쇠 아이콘 값 변경 된 시스템 값은 나타냅니다.\n" +"시스템 값을 현재 값으로 설정 하려면 클릭 합니다." + +#: src/slic3r/GUI/Tab.cpp:3152 +msgid " as:" +msgstr " as:" + +#: src/slic3r/GUI/Tab.cpp:3196 +msgid "the following postfix are not allowed:" +msgstr "다음 접미사는 허용되지 않습니다:" + +#: src/slic3r/GUI/Tab.cpp:3200 +msgid "The supplied name is not available." +msgstr "The supplied name is not available." + +#: src/slic3r/GUI/Tab.cpp:3213 +msgid "Material" +msgstr "재료" + +#: src/slic3r/GUI/Tab.cpp:3215 src/slic3r/GUI/Tab.cpp:3305 +msgid "Layers" +msgstr "레이어" + +#: src/slic3r/GUI/Tab.cpp:3219 +msgid "Exposure" +msgstr "노출" + +#: src/slic3r/GUI/Tab.cpp:3313 +msgid "Support head" +msgstr "서포트 헤드" + +#: src/slic3r/GUI/Tab.cpp:3318 +msgid "Support pillar" +msgstr "서포트 기둥" + +#: src/slic3r/GUI/Tab.cpp:3328 +msgid "Connection of the support sticks and junctions" +msgstr "서포트 기둥 및 접합부 연결" + +#: src/slic3r/GUI/Tab.cpp:3333 +msgid "Automatic generation" +msgstr "자동 생성" + +#: src/slic3r/GUI/Tab.cpp:3395 +msgid "Head penetration should not be greater than the head width." +msgstr "헤드 관통은 헤드 폭 보다 크지 않아야 합니다." + +#: src/slic3r/GUI/Tab.cpp:3396 +msgid "Invalid Head penetration" +msgstr "잘못된 헤드 관통" + +#: src/slic3r/GUI/Tab.cpp:3408 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "핀헤드 지름은 기둥 지름 보다 작아야 합니다." + +#: src/slic3r/GUI/Tab.cpp:3409 +msgid "Invalid pinhead diameter" +msgstr "잘못된 핀 헤드 지름" + +#: src/slic3r/GUI/Tab.hpp:307 src/slic3r/GUI/Tab.hpp:395 +msgid "Print Settings" +msgstr "출력 설정" + +#: src/slic3r/GUI/Tab.hpp:325 +msgid "Filament Settings" +msgstr "필라멘트 설정" + +#: src/slic3r/GUI/Tab.hpp:358 +msgid "Printer Settings" +msgstr "프린터 설정" + +#: src/slic3r/GUI/Tab.hpp:381 +msgid "Material Settings" +msgstr "재질 설정" + +#: src/slic3r/GUI/Tab.hpp:407 +msgid "Save preset" +msgstr "사전 설정 저장" + +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "Update available" +msgstr "사용가능한 업데이트" + +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "New version of Slic3r PE is available" +msgstr "새로운 버전의 Slic3r PE 사용 가능" + +#: src/slic3r/GUI/UpdateDialogs.cpp:36 +msgid "To download, follow the link below." +msgstr "다운로드하려면 아래 링크를 클릭하십시오." + +#: src/slic3r/GUI/UpdateDialogs.cpp:44 +msgid "Current version:" +msgstr "현재 버전:" + +#: src/slic3r/GUI/UpdateDialogs.cpp:46 +msgid "New version:" +msgstr "새로운 버전:" + +#: src/slic3r/GUI/UpdateDialogs.cpp:54 +msgid "Don't notify about new releases any more" +msgstr "새로운 수정사항에 대해 더 이상 알림 안 함" + +#: src/slic3r/GUI/UpdateDialogs.cpp:72 src/slic3r/GUI/UpdateDialogs.cpp:164 +msgid "Configuration update" +msgstr "구성 업데이트" + +#: src/slic3r/GUI/UpdateDialogs.cpp:72 +msgid "Configuration update is available" +msgstr "구성 업데이트를 사용할 수 있음" + +#: src/slic3r/GUI/UpdateDialogs.cpp:75 +msgid "" +"Would you like to install it?\n" +"\n" +"Note that a full configuration snapshot will be created first. It can then be restored at any time should " +"there be a problem with the new version.\n" +"\n" +"Updated configuration bundles:" +msgstr "" +"그것을 설치 하시겠습니까?\n" +"\n" +"전체 구성 스냅 샷이 먼저 만들어집니다. 그런 다음 새 버전에 문제가있을 경우 언제든지 복원 할 수 있습니다.\n" +"\n" +"업데이트 된 구성 번들 :" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r incompatibility" +msgstr "Slic3r와 호환 되지 않음" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r configuration is incompatible" +msgstr "Slic3r 구성이 호환되지 않습니다" + +#: src/slic3r/GUI/UpdateDialogs.cpp:114 +msgid "" +"This version of Slic3r PE is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older Slic3r PE after using a newer one.\n" +"\n" +"You may either exit Slic3r and try again with a newer version, or you may re-run the initial configuration. " +"Doing so will create a backup snapshot of the existing configuration before installing files compatible with " +"this Slic3r.\n" +msgstr "" +"이 버전의 Slic3r PE는 현재 설치된 구성 번들과 호환되지 않습니다.\n" +"이것은 아마도 새로운 Slic3r PE를 사용한 후에 실행 된 결과 일 것입니다.\n" +"\n" +"Slic3r을 종료하고 새 버전으로 다시 시도하거나 초기 구성을 다시 실행할 수 있습니다. 이렇게하면이 Slic3r과 호환" +"되는 파일을 설치하기 전에 기존 구성의 백업 스냅 샷을 생성 할 수 있습니다.\n" + +#: src/slic3r/GUI/UpdateDialogs.cpp:123 +#, c-format +msgid "This Slic3r PE version: %s" +msgstr "이 Slic3r PE 버전 : % s" + +#: src/slic3r/GUI/UpdateDialogs.cpp:128 +msgid "Incompatible bundles:" +msgstr "호환되지 않는 번들 :" + +#: src/slic3r/GUI/UpdateDialogs.cpp:144 +msgid "Exit Slic3r" +msgstr "Exit Slic3r" + +#: src/slic3r/GUI/UpdateDialogs.cpp:147 +msgid "Re-configure" +msgstr "재구성" + +#: src/slic3r/GUI/UpdateDialogs.cpp:168 +#, c-format +msgid "" +"Slic3r PE now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various " +"printers. These System presets cannot be modified, instead, users now may create their own presets inheriting " +"settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized " +"value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic " +"preset updates." +msgstr "" +"Slic3r PE는 이제 업데이트 된 구성 구조를 사용합니다.\n" +"\n" +"'시스템 사전 설정'이 도입되어 다양한 프린터에 기본 제공되는 기본 설정이 유지됩니다. 이러한 시스템 사전 설정은 " +"수정할 수 없으며 대신 사용자는 시스템 사전 설정 중 하나에서 설정을 상속하는 자체 사전 설정을 만들 수 있습니" +"다.\n" +"상속 된 사전 설정은 부모로부터 특정 값을 상속 받거나 사용자 정의 값으로 대체 할 수 있습니다.\n" +"\n" +"새 사전 설정을 설정하고 자동 사전 설정 업데이트를 사용할지 여부를 선택하려면 다음의 % s을 계속 진행하십시오." + +#: src/slic3r/GUI/UpdateDialogs.cpp:184 +msgid "For more information please visit our wiki page:" +msgstr "자세한 정보는 위키 페이지를 참조하십시오 :" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:14 +msgid "Ramming customization" +msgstr "사용자 정의 다지기(Ramming)" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:40 +msgid "" +"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is " +"to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and " +"can itself be reinserted later. This phase is important and different materials can require different " +"extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n" +"\n" +"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into " +"filament etc." +msgstr "" +"래밍은 단일 압출기 MM 프린터에서 공구 교환 직전의 신속한 압출을 나타냅니다. 그 목적은 언로드 된 필라멘트의 끝 " +"부분을 적절히 형성하여 새로운 필라멘트의 삽입을 방지하고 나중에 다시 삽입 할 수 있도록하기위한 것입니다. 이 단" +"계는 중요하며 다른 재료는 좋은 모양을 얻기 위해 다른 압출 속도를 요구할 수 있습니다. 이러한 이유로, 래밍 중 압" +"출 속도는 조정 가능합니다.\n" +"\n" +"전문가 수준의 설정이므로 잘못된 조정으로 인해 용지 걸림, 압출기 휠이 필라멘트 등에 연삭 될 수 있습니다." + +#: src/slic3r/GUI/WipeTowerDialog.cpp:82 +msgid "Total ramming time" +msgstr "총 래밍 시간" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:84 +msgid "Total rammed volume" +msgstr "총 레미드 양" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:88 +msgid "Ramming line width" +msgstr "래밍 선 너비" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:90 +msgid "Ramming line spacing" +msgstr "래밍 선 간격" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:141 +msgid "Wipe tower - Purging volume adjustment" +msgstr "와이프 타워 - 버려진 필라멘트 조절" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:225 +msgid "Here you can adjust required purging volume (mm³) for any given pair of tools." +msgstr "여기서 주어진 도구 쌍에 필요한 정화 용량 (mm³)을 조정할 수 있습니다." + +#: src/slic3r/GUI/WipeTowerDialog.cpp:226 +msgid "Extruder changed to" +msgstr "익스트루더 번경" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:234 +msgid "unloaded" +msgstr "언로드(unloaded)" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:235 +msgid "loaded" +msgstr "로드(loaded)" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:240 +msgid "Tool #" +msgstr "툴(Tool) #" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:247 +msgid "" +"Total purging volume is calculated by summing two values below, depending on which tools are loaded/unloaded." +msgstr "총 정화 량은 어느 공구가로드 / 언로드되는지에 따라 아래의 두 값을 합산하여 계산됩니다." + +#: src/slic3r/GUI/WipeTowerDialog.cpp:248 +msgid "Volume to purge (mm³) when the filament is being" +msgstr "제거할 필라멘트 양 (mm³)" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:262 +msgid "From" +msgstr "From" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:327 +msgid "" +"Switching to simple settings will discard changes done in the advanced mode!\n" +"\n" +"Do you want to proceed?" +msgstr "" +"단순 설정으로 전환하면 고급 모드에서 수행된 변경 내용이 삭제됨!\n" +"\n" +"계속하시겠습니까?" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:339 +msgid "Show simplified settings" +msgstr "간단한 설정보기" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:339 +msgid "Show advanced settings" +msgstr "고급 설정보기" + +#: src/slic3r/GUI/wxExtensions.cpp:2398 +#, c-format +msgid "Switch to the %s mode" +msgstr "%s 모드로 전환" + +#: src/slic3r/GUI/wxExtensions.cpp:2399 +#, c-format +msgid "Current mode is %s" +msgstr "현재 모드는 %s입니다" + +#: src/slic3r/Utils/Duet.cpp:51 +msgid "Connection to Duet works correctly." +msgstr "듀엣보드에 대한 연결이 올바르게 작동 합니다." + +#: src/slic3r/Utils/Duet.cpp:56 +msgid "Could not connect to Duet" +msgstr "듀엣보드에 연결할 수 없습니다" + +#: src/slic3r/Utils/Duet.cpp:84 src/slic3r/Utils/Duet.cpp:154 +msgid "Unknown error occured" +msgstr "알 수 없는 오류가 발생 했습니다" + +#: src/slic3r/Utils/Duet.cpp:148 +msgid "Wrong password" +msgstr "잘못된 암호" + +#: src/slic3r/Utils/Duet.cpp:151 +msgid "Could not get resources to create a new connection" +msgstr "새 연결을 만들 리소스를 가져올수 없습니다" + +#: src/slic3r/Utils/OctoPrint.cpp:69 +#, c-format +msgid "Mismatched type of print host: %s" +msgstr "일치 하지않는 인쇄 호스트 유형: %s" + +#: src/slic3r/Utils/OctoPrint.cpp:84 +msgid "Connection to OctoPrint works correctly." +msgstr "OctoPrint에 연결하면 올바르게 작동합니다." + +#: src/slic3r/Utils/OctoPrint.cpp:90 +msgid "Could not connect to OctoPrint" +msgstr "OctoPrint에 연결할 수 없습니다" + +#: src/slic3r/Utils/OctoPrint.cpp:90 +msgid "Note: OctoPrint version at least 1.1.0 is required." +msgstr "참고 : OctoPrint 버전 1.1.0 이상이 필요합니다." + +#: src/slic3r/Utils/OctoPrint.cpp:195 +msgid "Connection to Prusa SLA works correctly." +msgstr "Prusa SLA에 대한 연결이 올바르게 작동 합니다." + +#: src/slic3r/Utils/OctoPrint.cpp:200 +msgid "Could not connect to Prusa SLA" +msgstr "Prusa SLA에 연결할 수 없습니다" + +#: src/slic3r/Utils/PresetUpdater.cpp:583 +#, c-format +msgid "requires min. %s and max. %s" +msgstr "최소. %s 와 최대. %s" + +#: src/slic3r/Utils/PresetUpdater.cpp:588 +#, c-format +msgid "requires min. %s" +msgstr "최소 %s가 필요 합니다" + +#: src/slic3r/Utils/PresetUpdater.cpp:590 +#, c-format +msgid "requires max. %s" +msgstr "최대 필요 합니다. %s" + +#: src/slic3r/Utils/FixModelByWin10.cpp:219 src/slic3r/Utils/FixModelByWin10.cpp:359 +msgid "Exporting source model" +msgstr "소스 모델 내보내기" + +#: src/slic3r/Utils/FixModelByWin10.cpp:235 +msgid "Failed loading the input model." +msgstr "입력 모델을 로드하지 못했습니다." + +#: src/slic3r/Utils/FixModelByWin10.cpp:242 +msgid "Repairing model by the Netfabb service" +msgstr "Netfabb 서비스에의 한 모델 복구" + +#: src/slic3r/Utils/FixModelByWin10.cpp:248 +msgid "Mesh repair failed." +msgstr "메ㅅ 복구에 실패 했습니다." + +#: src/slic3r/Utils/FixModelByWin10.cpp:251 src/slic3r/Utils/FixModelByWin10.cpp:378 +msgid "Loading repaired model" +msgstr "복구 된 모델 로드" + +#: src/slic3r/Utils/FixModelByWin10.cpp:263 src/slic3r/Utils/FixModelByWin10.cpp:270 +#: src/slic3r/Utils/FixModelByWin10.cpp:302 +msgid "Saving mesh into the 3MF container failed." +msgstr "3MF 컨테이너에 메쉬를 저장하지 못했습니다." + +#: src/slic3r/Utils/FixModelByWin10.cpp:340 +msgid "Model fixing" +msgstr "모델 고정" + +#: src/slic3r/Utils/FixModelByWin10.cpp:341 +msgid "Exporting model..." +msgstr "소스 모델 내보내기..." + +#: src/slic3r/Utils/FixModelByWin10.cpp:368 +msgid "Export of a temporary 3mf file failed" +msgstr "임시 3mf 파일을 내보내지 못했습니다" + +#: src/slic3r/Utils/FixModelByWin10.cpp:383 +msgid "Import of the repaired 3mf file failed" +msgstr "복구된 3mf 파일을 가져오지 못했습니다" + +#: src/slic3r/Utils/FixModelByWin10.cpp:385 +msgid "Repaired 3MF file does not contain any object" +msgstr "복구된 3MF 파일에 개체가 포함 되어있지 않습니다" + +#: src/slic3r/Utils/FixModelByWin10.cpp:387 +msgid "Repaired 3MF file contains more than one object" +msgstr "복구된 3MF 파일에 둘 이상의 개체가 포함되어 있습니다" + +#: src/slic3r/Utils/FixModelByWin10.cpp:389 +msgid "Repaired 3MF file does not contain any volume" +msgstr "복구 된 3MF 파일에 개체가 포함 되어있지 않습니다" + +#: src/slic3r/Utils/FixModelByWin10.cpp:391 +msgid "Repaired 3MF file contains more than one volume" +msgstr "복구된 3MF 파일에 둘 이상의 개체가 포함되어 있습니다" + +#: src/slic3r/Utils/FixModelByWin10.cpp:400 +msgid "Model repair finished" +msgstr "모델 수리 완료" + +#: src/slic3r/Utils/FixModelByWin10.cpp:406 +msgid "Model repair canceled" +msgstr "모델 복구가 취소 되었습니다" + +#: src/slic3r/Utils/FixModelByWin10.cpp:423 +msgid "Model repaired successfully" +msgstr "모델이 성공적으로 복구 되었습니다" + +#: src/slic3r/Utils/FixModelByWin10.cpp:423 src/slic3r/Utils/FixModelByWin10.cpp:426 +msgid "Model Repair by the Netfabb service" +msgstr "Netfabb 서비스에의 한 모델 복구" + +#: src/slic3r/Utils/FixModelByWin10.cpp:426 +msgid "Model repair failed: \n" +msgstr "모델 복구 실패:\n" + +#: src/libslic3r/Zipper.cpp:35 +msgid "undefined error" +msgstr "정의 되지 않은 오류" + +#: src/libslic3r/Zipper.cpp:37 +msgid "too many files" +msgstr "파일이 너무 많음" + +#: src/libslic3r/Zipper.cpp:39 +msgid "file too large" +msgstr "파일이 너무 큼" + +#: src/libslic3r/Zipper.cpp:41 +msgid "unsupported method" +msgstr "지원 되지 않는 방법" + +#: src/libslic3r/Zipper.cpp:43 +msgid "unsupported encryption" +msgstr "지원 되지 않는 암호화" + +#: src/libslic3r/Zipper.cpp:45 +msgid "unsupported feature" +msgstr "지원 되지 않는 기능" + +#: src/libslic3r/Zipper.cpp:47 +msgid "failed finding central directory" +msgstr "중앙 디렉터리를 찾지 못했습니다." + +#: src/libslic3r/Zipper.cpp:49 +msgid "not a ZIP archive" +msgstr "zIP 아카이브 아님" + +#: src/libslic3r/Zipper.cpp:51 +msgid "invalid header or archive is corrupted" +msgstr "잘못 된 헤더 또는 아카이브가 손상 되었습니다" + +#: src/libslic3r/Zipper.cpp:53 +msgid "unsupported multidisk archive" +msgstr "지원 되지 않는 멀티 디스크 아카이브" + +#: src/libslic3r/Zipper.cpp:55 +msgid "decompression failed or archive is corrupted" +msgstr "압축 풀기 실패 또는 아카이브가 손상 되었습니다" + +#: src/libslic3r/Zipper.cpp:57 +msgid "compression failed" +msgstr "압축 실패" + +#: src/libslic3r/Zipper.cpp:59 +msgid "unexpected decompressed size" +msgstr "예기치 않은 압축 해제 크기" + +#: src/libslic3r/Zipper.cpp:61 +msgid "CRC-32 check failed" +msgstr "CRC-32 확인 실패" + +#: src/libslic3r/Zipper.cpp:63 +msgid "unsupported central directory size" +msgstr "지원 되지 않는 중앙 디렉터리 크기" + +#: src/libslic3r/Zipper.cpp:65 +msgid "allocation failed" +msgstr "할당 실패" + +#: src/libslic3r/Zipper.cpp:67 +msgid "file open failed" +msgstr "파일 열기 실패" + +#: src/libslic3r/Zipper.cpp:69 +msgid "file create failed" +msgstr "파일 만들기 실패" + +#: src/libslic3r/Zipper.cpp:71 +msgid "file write failed" +msgstr "파일 쓰기 실패" + +#: src/libslic3r/Zipper.cpp:73 +msgid "file read failed" +msgstr "파일 읽기 실패" + +#: src/libslic3r/Zipper.cpp:75 +msgid "file close failed" +msgstr "파일 닫기 실패" + +#: src/libslic3r/Zipper.cpp:77 +msgid "file seek failed" +msgstr "파일 검색 실패" + +#: src/libslic3r/Zipper.cpp:79 +msgid "file stat failed" +msgstr "파일 통계 실패" + +#: src/libslic3r/Zipper.cpp:81 +msgid "invalid parameter" +msgstr "잘못 된 매개 변수" + +#: src/libslic3r/Zipper.cpp:83 +msgid "invalid filename" +msgstr "잘못 된 파일 이름" + +#: src/libslic3r/Zipper.cpp:85 +msgid "buffer too small" +msgstr "버퍼가 너무 작음" + +#: src/libslic3r/Zipper.cpp:87 +msgid "internal error" +msgstr "내부 오류" + +#: src/libslic3r/Zipper.cpp:89 +msgid "file not found" +msgstr "파일을 찾을수 없다" + +#: src/libslic3r/Zipper.cpp:91 +msgid "archive is too large" +msgstr "아카이브가 너무 큼" + +#: src/libslic3r/Zipper.cpp:93 +msgid "validation failed" +msgstr "유효성 검사 실패" + +#: src/libslic3r/Zipper.cpp:95 +msgid "write calledback failed" +msgstr "쓰기 다시 실패" + +#: src/libslic3r/Zipper.cpp:105 +msgid "Error with zip archive" +msgstr "zip 아카이브와 오류가 발생 했습니다" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2153 +msgid "Starting" +msgstr "부터" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2154 +msgid "Filtering" +msgstr "필터링" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2155 +msgid "Generate pinheads" +msgstr "핀 헤드 생성" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2156 +msgid "Classification" +msgstr "주소" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2157 +msgid "Routing to ground" +msgstr "면으로의 라우팅" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2158 +msgid "Routing supports to model surface" +msgstr "모델 표면에 대한 라우팅 지원" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2159 +msgid "Cascading pillars" +msgstr "계단식 기둥" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2160 +msgid "Processing small holes" +msgstr "작은 구멍 가공" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2161 +msgid "Done" +msgstr "완료" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2162 +msgid "Abort" +msgstr "중단" + +#: src/libslic3r/Print.cpp:1136 +msgid "All objects are outside of the print volume." +msgstr "모든 개체가 인쇄 볼륨 외부에 있습니다." + +#: src/libslic3r/Print.cpp:1165 +msgid "Some objects are too close; your extruder will collide with them." +msgstr "일부 개체가 너무 가깝습니다. 귀하의 압출기가 그들과 충돌합니다." + +#: src/libslic3r/Print.cpp:1180 +msgid "Some objects are too tall and cannot be printed without extruder collisions." +msgstr "일부 개체는 너무 크고 익스트루더 충돌없이 인쇄 할 수 없습니다." + +#: src/libslic3r/Print.cpp:1190 +msgid "The Spiral Vase option can only be used when printing a single object." +msgstr "나선형 꽃병(Spiral Vase) 옵션은 단일 개체를 인쇄 할 때만 사용할 수 있습니다." + +#: src/libslic3r/Print.cpp:1192 +msgid "The Spiral Vase option can only be used when printing single material objects." +msgstr "나선형 꽃병 옵션(Spiral Vase)은 단일 재료 객체를 인쇄 할 때만 사용할 수 있습니다." + +#: src/libslic3r/Print.cpp:1198 +msgid "All extruders must have the same diameter for single extruder multimaterial printer." +msgstr "모든 익스트루더는 멀티메터리얼 프린터의 싱글 익스트루더에 대해 동일한 직경을 가져야합니다." + +#: src/libslic3r/Print.cpp:1203 +msgid "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors." +msgstr "와이프 타워는 현재 말린, RepRap/Sprinter 및 리피티어에 대해서만 G-코드지원 됩니다." + +#: src/libslic3r/Print.cpp:1205 +msgid "" +"The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)." +msgstr "와이프 타워는 현재 상대적 압출기 어드레싱 (use_relative_e_distances = 1)에서만 지원됩니다." + +#: src/libslic3r/Print.cpp:1226 +msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heigths" +msgstr "와이프 타워 (Wipe Tower)는 같은 레이어 높이에 경우 여러 객체에 대해서만 지원됩니다" + +#: src/libslic3r/Print.cpp:1228 +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:1230 +msgid "" +"The Wipe Tower is only supported for multiple objects if they are printed with the same " +"support_material_contact_distance" +msgstr "와이프 타워는 동일한 support_material_contact_distance로 인쇄 된 경우 여러 객체에 대해서만 지원됩니다" + +#: src/libslic3r/Print.cpp:1232 +msgid "The Wipe Tower is only supported for multiple objects if they are sliced equally." +msgstr "와이프 타워는 똑같이 슬라이스 된 경우 여러 오브젝트에 대해서만 지원됩니다." + +#: src/libslic3r/Print.cpp:1261 +msgid "The Wipe tower is only supported if all objects have the same layer height profile" +msgstr "모든 오브젝트의 레이어 높이 프로필이 동일한 경우에만 와이프 타워가 지원됩니다" + +#: src/libslic3r/Print.cpp:1271 +msgid "The supplied settings will cause an empty print." +msgstr "제공된 설정으로 인해 빈 인쇄가 발생합니다." + +#: src/libslic3r/Print.cpp:1288 +msgid "One or more object were assigned an extruder that the printer does not have." +msgstr "하나 이상의 개체에 프린터에없는 압출기가 지정되었습니다." + +#: src/libslic3r/Print.cpp:1297 +msgid "" +"Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current " +"extruder (support_material_extruder == 0 or support_material_interface_extruder == 0), all nozzles have to be " +"of the same diameter." +msgstr "" +"노즐 지름이 다른 여러 압출기로 인쇄. 지원이 현재 압출기 (support_material_extruder == 0 또는 " +"support_material_interface_extruder == 0)로 인쇄되는 경우 모든 노즐은 동일한 지름이어야합니다." + +#: src/libslic3r/Print.cpp:1305 +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:1309 +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 support_material_extruder and support_material_interface_extruder " +"need to be set to 0)." +msgstr "" +"와이프 타워는 현재 공구 교체를 트리거하지 않고 현재의 압출기로 인쇄 하는 경우에만 비가용성 서포트를 지원 합니" +"다. (support_material_extruder과 support_material_interface_extruder 모두 0으로 설정 해야 합니다.)" + +#: src/libslic3r/Print.cpp:1316 +msgid "first_layer_height" +msgstr "first_layer_height" + +#: src/libslic3r/Print.cpp:1331 +msgid "First layer height can't be greater than nozzle diameter" +msgstr "첫번째 레이어 높이는 노즐 직경보다 클 수 없습니다" + +#: src/libslic3r/Print.cpp:1335 +msgid "Layer height can't be greater than nozzle diameter" +msgstr "레이어 높이는 노즐 직경보다 클 수 없습니다" + +#: src/libslic3r/SLAPrint.cpp:55 +msgid "Slicing model" +msgstr "슬라이싱 모델" + +#: src/libslic3r/SLAPrint.cpp:56 src/libslic3r/SLAPrint.cpp:801 +msgid "Generating support points" +msgstr "서포트 지점 생성" + +#: src/libslic3r/SLAPrint.cpp:57 +msgid "Generating support tree" +msgstr "서포트 트리 생성" + +#: src/libslic3r/SLAPrint.cpp:58 +msgid "Generating pad" +msgstr "패드 생성" + +#: src/libslic3r/SLAPrint.cpp:59 +msgid "Slicing supports" +msgstr "슬라이싱 서포트즈" + +#: src/libslic3r/SLAPrint.cpp:71 +msgid "Merging slices and calculating statistics" +msgstr "분할 영역 병합 및 통계 계산" + +#: src/libslic3r/SLAPrint.cpp:72 +msgid "Rasterizing layers" +msgstr "레이어 래스터화" + +#: src/libslic3r/SLAPrint.cpp:605 +msgid "Cannot proceed without support points! Add support points or disable support generation." +msgstr "" +"서포트 포인트 없이 진행할 수 없습니다! 서포트 지점을 추가 하거나 서포트 생성을 사용 하지 않도록 설정 합니다." + +#: src/libslic3r/SLAPrint.cpp:617 +msgid "Elevation is too low for object." +msgstr "객체 고도가 너무 낮습니다." + +#: src/libslic3r/SLAPrint.cpp:699 +msgid "Slicing had to be stopped due to an internal error." +msgstr "내부 오류로 인해 슬라이스를 중지 해야 했습니다." + +#: src/libslic3r/SLAPrint.cpp:849 src/libslic3r/SLAPrint.cpp:859 src/libslic3r/SLAPrint.cpp:907 +msgid "Visualizing supports" +msgstr "시각화 지원" + +#: src/libslic3r/SLAPrint.cpp:1449 +msgid "Slicing done" +msgstr "슬라이싱 완료" + +#: src/libslic3r/PrintBase.cpp:65 +msgid "Failed processing of the output_filename_format template." +msgstr "아래 output_filename_format 템플리트의 처리에 실패했습니다." + +#: src/libslic3r/PrintConfig.cpp:42 src/libslic3r/PrintConfig.cpp:43 +msgid "Printer technology" +msgstr "프린터 기술" + +#: src/libslic3r/PrintConfig.cpp:50 +msgid "Bed shape" +msgstr "배드 모양" + +#: src/libslic3r/PrintConfig.cpp:57 +msgid "" +"This setting controls the height (and thus the total number) of the slices/layers. Thinner layers give better " +"accuracy but take more time to print." +msgstr "" +"이 설정은 슬라이스/레이어의 높이(따라서 총 수)를 제어한다. 얇은 층은 더 나은 정확성을 제공하지만 인쇄하는 데" +"는 더 많은 시간이 걸린다." + +#: src/libslic3r/PrintConfig.cpp:64 +msgid "Max print height" +msgstr "최대 프린트 높이" + +#: src/libslic3r/PrintConfig.cpp:65 +msgid "Set this to the maximum height that can be reached by your extruder while printing." +msgstr "인쇄 중에 익스트루더가 도달 할 수있는 최대 높이로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:71 +msgid "Slice gap closing radius" +msgstr "슬라이스 간격 닫힘 반경" + +#: src/libslic3r/PrintConfig.cpp:73 +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 "" +"삼각형 메쉬 슬라이싱 중에, 2배 간격 폐쇄 반경 보다 작은 균열이 채워집니다. 틈 닫기 작업은 최종 인쇄 해상도를 " +"줄일 수 있으므로 값을 합리적으로 낮게 유지 하는 것이 좋습니다." + +#: src/libslic3r/PrintConfig.cpp:81 +msgid "Hostname, IP or URL" +msgstr "호스트 이름(Hostname), IP or URL" + +#: src/libslic3r/PrintConfig.cpp:82 +msgid "" +"Slic3r can upload G-code files to a printer host. This field should contain the hostname, IP address or URL " +"of the printer host instance." +msgstr "" +"Slic3r는 프린터 호스트에 G 코드 파일을 업로드할 수 있습니다. 이 필드는 호스트 이름, IP 주소 또는 프린터 호스" +"트 인스턴스의 URL을 포함 해야 합니다." + +#: src/libslic3r/PrintConfig.cpp:88 +msgid "API Key / Password" +msgstr "API 키/암호" + +#: src/libslic3r/PrintConfig.cpp:89 +msgid "" +"Slic3r can upload G-code files to a printer host. This field should contain the API Key or the password " +"required for authentication." +msgstr "" +"Slic3r는 프린터 호스트에 G 코드 파일을 업로드할 수 있습니다. 이 필드는 API 키 또는 인증에 필요한 암호를 포함 " +"해야 합니다." + +#: src/libslic3r/PrintConfig.cpp:111 +msgid "Avoid crossing perimeters" +msgstr "출력된 외측을 피하세요" + +#: src/libslic3r/PrintConfig.cpp:112 +msgid "" +"Optimize travel moves in order to minimize the crossing of perimeters. This is mostly useful with Bowden " +"extruders which suffer from oozing. This feature slows down both the print and the G-code generation." +msgstr "" +"둘레의 교차를 최소화하기 위해 여행 이동을 최적화하십시오. 이것은 보 잉 (Bowling) 압출기가 흘러 나오기 쉬운 경" +"우에 주로 유용합니다. 이 기능을 사용하면 인쇄 및 G 코드 생성 속도가 느려집니다." + +#: src/libslic3r/PrintConfig.cpp:119 src/libslic3r/PrintConfig.cpp:1976 +msgid "Other layers" +msgstr "다른 레이어" + +#: src/libslic3r/PrintConfig.cpp:120 +msgid "" +"Bed temperature for layers after the first one. Set this to zero to disable bed temperature control commands " +"in the output." +msgstr "" +"첫 번째 레이어 이후의 레이어 온도. 이 값을 0으로 설정하면 출력에서 ​​베드 온도 제어 명령을 비활성화합니다." + +#: src/libslic3r/PrintConfig.cpp:122 +msgid "Bed temperature" +msgstr "배드 온도" + +#: src/libslic3r/PrintConfig.cpp:129 +msgid "" +"This custom code is inserted at every layer change, right before the Z move. Note that you can use " +"placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." +msgstr "" +"이 사용자 정의 코드는 Z 이동 직전의 모든 레이어 변경에 삽입됩니다. [Slide3r] 설정과 [layer_num] 및 [layer_z]" +"에 대한 자리 표시 자 변수를 사용할 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:139 +msgid "Between objects G-code" +msgstr "객체 간 G 코드" + +#: src/libslic3r/PrintConfig.cpp:140 +msgid "" +"This code is inserted between objects when using sequential printing. By default extruder and bed temperature " +"are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, " +"Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r " +"settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "" +"이 코드는 순차 인쇄를 사용할 때 객체간에 삽입됩니다. 기본적으로 익스트루더 및 베드 온도는 대기 모드가 아닌 명" +"령을 사용하여 재설정됩니다. 그러나 이 사용자 코드에서 M104, M109, M140 또는 M190이 감지되면 Slic3r은 온도 명령" +"을 추가하지 않습니다. 모든 Slic3r 설정에 자리 표시 변수를 사용할 수 있으므로 원하는 위치에 \"M109 S " +"[first_layer_temperature]\"명령을 넣을 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:150 +msgid "Number of solid layers to generate on bottom surfaces." +msgstr "바닥면에 생성 할 솔리드 레이어의 수." + +#: src/libslic3r/PrintConfig.cpp:151 +msgid "Bottom solid layers" +msgstr "바닥 단일 레이어" + +#: src/libslic3r/PrintConfig.cpp:156 +msgid "Bridge" +msgstr "브리지" + +#: src/libslic3r/PrintConfig.cpp:157 +msgid "" +"This is the acceleration your printer will use for bridges. Set zero to disable acceleration control for " +"bridges." +msgstr "" +"이것은 프린터가 브릿지에 사용할 가속도입니다. 브리지의 가속 제어를 사용하지 않으려면 0으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:159 src/libslic3r/PrintConfig.cpp:302 src/libslic3r/PrintConfig.cpp:814 +#: src/libslic3r/PrintConfig.cpp:935 src/libslic3r/PrintConfig.cpp:1088 src/libslic3r/PrintConfig.cpp:1133 +#: src/libslic3r/PrintConfig.cpp:1144 src/libslic3r/PrintConfig.cpp:1333 +msgid "mm/s²" +msgstr "mm/s ²" + +#: src/libslic3r/PrintConfig.cpp:165 +msgid "Bridging angle" +msgstr "브릿지 각도" + +#: src/libslic3r/PrintConfig.cpp:167 +msgid "" +"Bridging angle override. If left to zero, the bridging angle will be calculated automatically. Otherwise the " +"provided angle will be used for all bridges. Use 180° for zero angle." +msgstr "" +"브리징 각도 오버라이드(override)값이. 왼쪽으로 0 일 경우 브리징 각도가 자동으로 계산됩니다. 그렇지 않으면 제공" +"된 각도가 모든 브리지에 사용됩니다. 각도 제로는 180 °를 사용하십시오." + +#: src/libslic3r/PrintConfig.cpp:170 src/libslic3r/PrintConfig.cpp:732 src/libslic3r/PrintConfig.cpp:1569 +#: src/libslic3r/PrintConfig.cpp:1579 src/libslic3r/PrintConfig.cpp:1807 src/libslic3r/PrintConfig.cpp:1961 +#: src/libslic3r/PrintConfig.cpp:2459 +msgid "°" +msgstr "°" + +#: src/libslic3r/PrintConfig.cpp:176 +msgid "Bridges fan speed" +msgstr "브릿지 팬 속도" + +#: src/libslic3r/PrintConfig.cpp:177 +msgid "This fan speed is enforced during all bridges and overhangs." +msgstr "이 팬 속도는 모든 브릿지 및 오버행 중에 적용됩니다." + +#: src/libslic3r/PrintConfig.cpp:178 src/libslic3r/PrintConfig.cpp:744 src/libslic3r/PrintConfig.cpp:1153 +#: src/libslic3r/PrintConfig.cpp:1216 src/libslic3r/PrintConfig.cpp:1461 src/libslic3r/PrintConfig.cpp:2258 +#: src/libslic3r/PrintConfig.cpp:2498 +msgid "%" +msgstr "%" + +#: src/libslic3r/PrintConfig.cpp:185 +msgid "Bridge flow ratio" +msgstr "브릿지 유량(flow)값" + +#: src/libslic3r/PrintConfig.cpp:187 +msgid "" +"This factor affects the amount of plastic for bridging. You can decrease it slightly to pull the extrudates " +"and prevent sagging, although default settings are usually good and you should experiment with cooling (use a " +"fan) before tweaking this." +msgstr "" +"이 요인은 브리징을위한 플라스틱의 양에 영향을 미칩니다. 압출 성형물을 잡아 당겨 처짐을 방지하기 위해 약간 줄" +"일 수 있지만 기본 설정은 일반적으로 좋지만이 문제를 해결하기 전에 냉각 (팬 사용)을 시도해야합니다." + +#: src/libslic3r/PrintConfig.cpp:197 +msgid "Bridges" +msgstr "브릿지(Bridges)" + +#: src/libslic3r/PrintConfig.cpp:199 +msgid "Speed for printing bridges." +msgstr "브릿지 인쇄 속도." + +#: src/libslic3r/PrintConfig.cpp:200 src/libslic3r/PrintConfig.cpp:576 src/libslic3r/PrintConfig.cpp:584 +#: src/libslic3r/PrintConfig.cpp:593 src/libslic3r/PrintConfig.cpp:601 src/libslic3r/PrintConfig.cpp:628 +#: src/libslic3r/PrintConfig.cpp:647 src/libslic3r/PrintConfig.cpp:873 src/libslic3r/PrintConfig.cpp:1000 +#: src/libslic3r/PrintConfig.cpp:1078 src/libslic3r/PrintConfig.cpp:1098 src/libslic3r/PrintConfig.cpp:1111 +#: src/libslic3r/PrintConfig.cpp:1122 src/libslic3r/PrintConfig.cpp:1175 src/libslic3r/PrintConfig.cpp:1234 +#: src/libslic3r/PrintConfig.cpp:1362 src/libslic3r/PrintConfig.cpp:1536 src/libslic3r/PrintConfig.cpp:1545 +#: src/libslic3r/PrintConfig.cpp:1940 src/libslic3r/PrintConfig.cpp:2051 +msgid "mm/s" +msgstr "mm/s" + +#: src/libslic3r/PrintConfig.cpp:207 +msgid "Brim width" +msgstr "브림 폭" + +#: src/libslic3r/PrintConfig.cpp:208 +msgid "Horizontal width of the brim that will be printed around each object on the first layer." +msgstr "첫 번째 레이어의 각 객체 주위에 인쇄 될 가장자리의 가로 폭입니다." + +#: src/libslic3r/PrintConfig.cpp:215 +msgid "Clip multi-part objects" +msgstr "여러 파트 오브젝트 클립" + +#: src/libslic3r/PrintConfig.cpp:216 +msgid "" +"When printing multi-material objects, this settings will make slic3r to clip the overlapping object parts one " +"by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "" +"멀티 메터리얼(multi-material) 개체를 인쇄 할 때이 설정을 사용하면 겹치는 개체 파트를 서로 겹쳐서 잘라낼 수 있" +"습니다 (두 번째 부분은 첫 번째 부분에서 클리핑되며 세 번째 부분은 첫 번째 및 두 번째 부분에서 잘립니다)." + +#: src/libslic3r/PrintConfig.cpp:223 +msgid "Colorprint height" +msgstr "컬러 인쇄 높이" + +#: src/libslic3r/PrintConfig.cpp:224 +msgid "Heights at which a filament change is to occur. " +msgstr "필라멘트 체인지가 발생 하는 높이. " + +#: src/libslic3r/PrintConfig.cpp:234 +msgid "Compatible printers condition" +msgstr "호환 가능한 프린터 조건" + +#: src/libslic3r/PrintConfig.cpp:235 +msgid "" +"A boolean expression using the configuration values of an active printer profile. If this expression " +"evaluates to true, this profile is considered compatible with the active printer profile." +msgstr "" +"활성 프린터 프로파일의 구성 값을 사용하는 부울 표현식. 이 표현식이 true로 평가되면이 프로필은 활성 프린터 프로" +"필과 호환되는 것으로 간주됩니다." + +#: src/libslic3r/PrintConfig.cpp:249 +msgid "Compatible print profiles condition" +msgstr "호환 되는 인쇄 프로 파일 조건" + +#: src/libslic3r/PrintConfig.cpp:250 +msgid "" +"A boolean expression using the configuration values of an active print profile. If this expression evaluates " +"to true, this profile is considered compatible with the active print profile." +msgstr "" +"활성 인쇄 프로 파일의 구성 값을 사용하는 부울식입니다. 이 식이 true로 평가 되면, 이 프로필이 활성 인쇄 프로필" +"과 호환 되는 것으로 간주 됩니다." + +#: src/libslic3r/PrintConfig.cpp:267 +msgid "Complete individual objects" +msgstr "개별 개체 완성" + +#: src/libslic3r/PrintConfig.cpp:268 +msgid "" +"When printing multiple objects or copies, this feature will complete each object before moving onto next one " +"(and starting it from its bottom layer). This feature is useful to avoid the risk of ruined prints. Slic3r " +"should warn and prevent you from extruder collisions, but beware." +msgstr "" +"여러 객체 또는 사본을 인쇄 할 때이 객체는 다음 객체로 이동하기 전에 각 객체를 완성합니다 (맨 아래 레이어에서 " +"시작). 이 기능은 인쇄물이 망가지는 위험을 피할 때 유용합니다. Slic3r은 압출기 충돌을 경고하고 예방해야하지만 " +"조심하십시오." + +#: src/libslic3r/PrintConfig.cpp:276 +msgid "Enable auto cooling" +msgstr "자동 냉각 사용" + +#: src/libslic3r/PrintConfig.cpp:277 +msgid "" +"This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer " +"printing time." +msgstr "이 플래그는 레이어 인쇄 시간에 따라 인쇄 속도와 팬 속도를 조정하는 자동 냉각 논리를 활성화합니다." + +#: src/libslic3r/PrintConfig.cpp:282 +msgid "Cooling tube position" +msgstr "냉각 튜브 위치" + +#: src/libslic3r/PrintConfig.cpp:283 +msgid "Distance of the center-point of the cooling tube from the extruder tip " +msgstr "압출기 팁에서 냉각 튜브의 중심점까지의 거리 " + +#: src/libslic3r/PrintConfig.cpp:290 +msgid "Cooling tube length" +msgstr "냉각 튜브 길이" + +#: src/libslic3r/PrintConfig.cpp:291 +msgid "Length of the cooling tube to limit space for cooling moves inside it " +msgstr "내부의 냉각 이동을 위해 공간을 제한하는 냉각 튜브의 길이 " + +#: src/libslic3r/PrintConfig.cpp:299 +msgid "" +"This is the acceleration your printer will be reset to after the role-specific acceleration values are used " +"(perimeter/infill). Set zero to prevent resetting acceleration at all." +msgstr "" +"역할 별 가속도 값이 사용 된 후에 프린터가 재설정되는 속도입니다 (둘레 / 충전). 가속을 전혀 재설정하지 않으려" +"면 0으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:308 +msgid "Default filament profile" +msgstr "기본 필라멘트 프로파일" + +#: src/libslic3r/PrintConfig.cpp:309 +msgid "" +"Default filament profile associated with the current printer profile. On selection of the current printer " +"profile, this filament profile will be activated." +msgstr "" +"현재 프린터 프로파일과 연관된 기본 필라멘트 프로파일. 현재 프린터 프로파일을 선택하면 이 필라멘트 프로파일이 " +"활성화됩니다." + +#: src/libslic3r/PrintConfig.cpp:315 +msgid "Default print profile" +msgstr "기본 인쇄 프로파일" + +#: src/libslic3r/PrintConfig.cpp:316 src/libslic3r/PrintConfig.cpp:2337 src/libslic3r/PrintConfig.cpp:2348 +msgid "" +"Default print profile associated with the current printer profile. On selection of the current printer " +"profile, this print profile will be activated." +msgstr "" +"현재 프린터 프로파일과 연관된 기본 인쇄 프로파일. 현재 프린터 프로파일을 선택하면이 인쇄 프로파일이 활성화됩니" +"다." + +#: src/libslic3r/PrintConfig.cpp:322 +msgid "Disable fan for the first" +msgstr "첫 번째 팬 사용 중지" + +#: src/libslic3r/PrintConfig.cpp:323 +msgid "" +"You can set this to a positive value to disable fan at all during the first layers, so that it does not make " +"adhesion worse." +msgstr "" +"이 값을 양수 값으로 설정하면 첫 번째 레이어에서 팬을 사용하지 않도록 설정하여 접착력을 악화시키지 않습니다." + +#: src/libslic3r/PrintConfig.cpp:325 src/libslic3r/PrintConfig.cpp:945 src/libslic3r/PrintConfig.cpp:1434 +#: src/libslic3r/PrintConfig.cpp:1619 src/libslic3r/PrintConfig.cpp:1680 src/libslic3r/PrintConfig.cpp:1843 +#: src/libslic3r/PrintConfig.cpp:1888 +msgid "layers" +msgstr "레이어" + +#: src/libslic3r/PrintConfig.cpp:332 +msgid "Don't support bridges" +msgstr "서포트와 브릿지를 사용하지 않음" + +#: src/libslic3r/PrintConfig.cpp:334 +msgid "Experimental option for preventing support material from being generated under bridged areas." +msgstr "브릿지 영역 아래에 서포팅 재료가 생성되는 것을 방지하기위한 실험적 옵션." + +#: src/libslic3r/PrintConfig.cpp:340 +msgid "Distance between copies" +msgstr "복사본 간 거리" + +#: src/libslic3r/PrintConfig.cpp:341 +msgid "Distance used for the auto-arrange feature of the plater." +msgstr "플래터(plater)의 자동 정렬 기능에 사용되는 거리입니다." + +#: src/libslic3r/PrintConfig.cpp:348 +msgid "Elephant foot compensation" +msgstr "코끼리 발(Elephant foot) 보상값" + +#: src/libslic3r/PrintConfig.cpp:350 +msgid "" +"The first layer will be shrunk in the XY plane by the configured value to compensate for the 1st layer squish " +"aka an Elephant Foot effect." +msgstr "" +"첫 번째 레이어는 구성 요소 값에 따라 XY 평면에서 수축되어 일층 스 퀴시 코끼리발(Elephant Foot) 효과를 보완합니" +"다." + +#: src/libslic3r/PrintConfig.cpp:359 +msgid "" +"This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for " +"all Slic3r settings." +msgstr "" +"이 종료 절차는 출력 파일의 끝에 삽입된다. 모든 Slic3r 설정에 자리 표시자 변수를 사용할 수 있다는 점에 유의하십" +"시오." + +#: src/libslic3r/PrintConfig.cpp:369 +msgid "" +"This end procedure is inserted at the end of the output file, before the printer end gcode. Note that you can " +"use placeholder variables for all Slic3r settings. If you have multiple extruders, the gcode is processed in " +"extruder order." +msgstr "" +"이 종료 절차는 출력 파일의 끝에 프린터 끝 코드 앞에 삽입된다. 모든 Slic3r 설정에 자리 표시자 변수를 사용할 수 " +"있다는 점에 유의하십시오. 여러 개의 압출부가 있는 경우, 그 코드는 압출 순서대로 처리된다." + +#: src/libslic3r/PrintConfig.cpp:379 +msgid "Ensure vertical shell thickness" +msgstr "수직 쉘(shell) 두께 확인" + +#: src/libslic3r/PrintConfig.cpp:381 +msgid "" +"Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)." +msgstr "경사 표면 근처에 솔리드 인필을 추가하여 수직 셸 두께(상단+하단 솔리드 레이어)를 보장하십시오." + +#: src/libslic3r/PrintConfig.cpp:387 +msgid "Top fill pattern" +msgstr "상단 채우기 패턴" + +#: src/libslic3r/PrintConfig.cpp:389 +msgid "Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells." +msgstr "상단 채우기의 채우기 패턴. 이는 인접 한 솔리드 쉘이 아니라 보이는 상위 레이어에만 영향을 줍니다." + +#: src/libslic3r/PrintConfig.cpp:397 src/libslic3r/PrintConfig.cpp:795 src/libslic3r/PrintConfig.cpp:1921 +msgid "Rectilinear" +msgstr "직선면(Rectilinear)" + +#: src/libslic3r/PrintConfig.cpp:398 src/libslic3r/PrintConfig.cpp:801 +msgid "Concentric" +msgstr "동심원(Concentric)" + +#: src/libslic3r/PrintConfig.cpp:399 src/libslic3r/PrintConfig.cpp:805 +msgid "Hilbert Curve" +msgstr "힐버트 곡선(Hilbert Curve)" + +#: src/libslic3r/PrintConfig.cpp:400 src/libslic3r/PrintConfig.cpp:806 +msgid "Archimedean Chords" +msgstr "아르키메데우스(Archimedean Chords)" + +#: src/libslic3r/PrintConfig.cpp:401 src/libslic3r/PrintConfig.cpp:807 +msgid "Octagram Spiral" +msgstr "옥타그램 나선(Octagram Spiral)" + +#: src/libslic3r/PrintConfig.cpp:408 +msgid "Bottom fill pattern" +msgstr "아래쪽 채우기 패턴" + +#: src/libslic3r/PrintConfig.cpp:409 +msgid "" +"Fill pattern for bottom infill. This only affects the bottom external visible layer, and not its adjacent " +"solid shells." +msgstr "" +"하단 채우기의 채우기 패턴. 이는 인접 한 솔리드 쉘이 아니라 아래쪽에 보이는 외부 레이어에만 영향을 줍니다." + +#: src/libslic3r/PrintConfig.cpp:414 src/libslic3r/PrintConfig.cpp:424 +msgid "External perimeters" +msgstr "외측 둘레" + +#: src/libslic3r/PrintConfig.cpp:416 +msgid "" +"Set this to a non-zero value to set a manual extrusion width for external perimeters. If left zero, default " +"extrusion width will be used if set, otherwise 1.125 x nozzle diameter will be used. If expressed as " +"percentage (for example 200%), it will be computed over layer height." +msgstr "" +"외부 경계에 대한 수동 압출 폭을 설정하려면 이 값을 0이 아닌 값으로 설정하십시오. 0인 경우 기본 압출 너비가 사" +"용되며, 그렇지 않으면 1.125 x 노즐 직경이 사용된다. 백분율(예: 200%)로 표현되는 경우, 레이어 높이에 걸쳐 계산" +"된다." + +#: src/libslic3r/PrintConfig.cpp:419 src/libslic3r/PrintConfig.cpp:834 src/libslic3r/PrintConfig.cpp:966 +#: src/libslic3r/PrintConfig.cpp:1353 src/libslic3r/PrintConfig.cpp:1691 src/libslic3r/PrintConfig.cpp:1864 +#: src/libslic3r/PrintConfig.cpp:2022 +msgid "mm or % (leave 0 for default)" +msgstr "mm 또는 %(기본값의 경우 0으로 유지)" + +#: src/libslic3r/PrintConfig.cpp:426 +msgid "" +"This separate setting will affect the speed of external perimeters (the visible ones). If expressed as " +"percentage (for example: 80%) it will be calculated on the perimeters speed setting above. Set to zero for " +"auto." +msgstr "" +"이 별도의 설정은 외부 경계선(시각적 경계선)의 속도에 영향을 미친다. 백분율(예: 80%)로 표현되는 경우 위의 " +"Perimeter 속도 설정에 따라 계산된다. 자동을 위해 0으로 설정한다." + +#: src/libslic3r/PrintConfig.cpp:429 src/libslic3r/PrintConfig.cpp:855 src/libslic3r/PrintConfig.cpp:1650 +#: src/libslic3r/PrintConfig.cpp:1701 src/libslic3r/PrintConfig.cpp:1907 src/libslic3r/PrintConfig.cpp:2034 +msgid "mm/s or %" +msgstr "mm/s 또는 %" + +#: src/libslic3r/PrintConfig.cpp:436 +msgid "External perimeters first" +msgstr "외부 경계선 먼저" + +#: src/libslic3r/PrintConfig.cpp:438 +msgid "" +"Print contour perimeters from the outermost one to the innermost one instead of the default inverse order." +msgstr "" +"기본 역순 대신 가장 바깥쪽부터 가장 안쪽까지 윤곽선을 인쇄하십시오. 타겟 TTS복사하기번역 저장번역 저장번역 수" +"정." + +#: src/libslic3r/PrintConfig.cpp:444 +msgid "Extra perimeters if needed" +msgstr "필요한 경우 추가 둘레" + +#: src/libslic3r/PrintConfig.cpp:446 +#, no-c-format +msgid "" +"Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps adding perimeters, until " +"more than 70% of the loop immediately above is supported." +msgstr "" +"경사 벽의 틈을 피하기 위해 필요한 경우 더 많은 perimeter를 추가하십시오. 위의 루프의 70% 이상이 지지될 때까지 " +"Slic3r는 계속해서 perimeter를 추가한다." + +#: src/libslic3r/PrintConfig.cpp:456 +msgid "" +"The extruder to use (unless more specific extruder settings are specified). This value overrides perimeter " +"and infill extruders, but not the support extruders." +msgstr "" +"사용할 압출부(더 구체적인 압출부 설정이 지정되지 않은 경우) 이 값은 경계 및 압출부를 초과하지만 지원 압출자를 " +"주입하지는 않는다." + +#: src/libslic3r/PrintConfig.cpp:468 +msgid "" +"Set this to the vertical distance between your nozzle tip and (usually) the X carriage rods. In other words, " +"this is the height of the clearance cylinder around your extruder, and it represents the maximum depth the " +"extruder can peek before colliding with other printed objects." +msgstr "" +"이것을 노즐 팁과 (일반적으로) X 캐리지 로드 사이의 수직 거리로 설정하십시오. 다시 말하면, 이것은 당신의 압출" +"기 주위의 틈새 실린더의 높이이며, 그것은 다른 인쇄된 물체와 충돌하기 전에 압출기가 엿볼 수 있는 최대 깊이를 나" +"타낸다." + +#: src/libslic3r/PrintConfig.cpp:478 +msgid "Radius" +msgstr "반지름" + +#: src/libslic3r/PrintConfig.cpp:479 +msgid "" +"Set this to the clearance radius around your extruder. If the extruder is not centered, choose the largest " +"value for safety. This setting is used to check for collisions and to display the graphical preview in the " +"plater." +msgstr "" +"이것을 당신의 압출기 주변의 간극 반경으로 설정하시오. 압출부가 중앙에 있지 않으면 안전을 위해 가장 큰 값을 선" +"택하십시오. 이 설정은 충돌 여부를 확인하고 플래터에 그래픽 미리 보기를 표시하기 위해 사용된다." + +#: src/libslic3r/PrintConfig.cpp:489 +msgid "Extruder Color" +msgstr "익스트루더 컬러" + +#: src/libslic3r/PrintConfig.cpp:490 src/libslic3r/PrintConfig.cpp:550 +msgid "This is only used in the Slic3r interface as a visual help." +msgstr "이것은 시각적 도움말로 Slic3r 인터페이스에서만 사용된다." + +#: src/libslic3r/PrintConfig.cpp:496 +msgid "Extruder offset" +msgstr "익스트루더 오프셋" + +#: src/libslic3r/PrintConfig.cpp:497 +msgid "" +"If your firmware doesn't handle the extruder displacement you need the G-code to take it into account. This " +"option lets you specify the displacement of each extruder with respect to the first one. It expects positive " +"coordinates (they will be subtracted from the XY coordinate)." +msgstr "" +"펌웨어가 압출기 위치 변경을 처리하지 못하면 G 코드를 고려해야합니다. 이 옵션을 사용하면 첫 번째 것에 대한 각 " +"압출기의 변위를 지정할 수 있습니다. 양의 좌표가 필요합니다 (XY 좌표에서 뺍니다)." + +#: src/libslic3r/PrintConfig.cpp:506 +msgid "Extrusion axis" +msgstr "압출 축" + +#: src/libslic3r/PrintConfig.cpp:507 +msgid "" +"Use this option to set the axis letter associated to your printer's extruder (usually E but some printers use " +"A)." +msgstr "" +"이 옵션을 사용하여 프린터의 압출기에 연결된 축 문자를 설정합니다 (보통 E이지만 일부 프린터는 A를 사용합니다)." + +#: src/libslic3r/PrintConfig.cpp:512 +msgid "Extrusion multiplier" +msgstr "압출 승수" + +#: src/libslic3r/PrintConfig.cpp:513 +msgid "" +"This factor changes the amount of flow proportionally. You may need to tweak this setting to get nice surface " +"finish and correct single wall widths. Usual values are between 0.9 and 1.1. If you think you need to change " +"this more, check filament diameter and your firmware E steps." +msgstr "" +"이 요소는 비례하여 유량의 양을 변경합니다. 멋진 서페이스 마무리와 단일 벽 너비를 얻기 위해이 설정을 조정해야 " +"할 수도 있습니다. 일반적인 값은 0.9와 1.1 사이입니다. 이 값을 더 변경해야한다고 판단되면 필라멘트 직경과 펌웨" +"어 E 단계를 확인하십시오." + +#: src/libslic3r/PrintConfig.cpp:521 +msgid "Default extrusion width" +msgstr "기본 압출 폭" + +#: src/libslic3r/PrintConfig.cpp:523 +msgid "" +"Set this to a non-zero value to allow a manual extrusion width. If left to zero, Slic3r derives extrusion " +"widths from the nozzle diameter (see the tooltips for perimeter extrusion width, infill extrusion width etc). " +"If expressed as percentage (for example: 230%), it will be computed over layer height." +msgstr "" +"수동 압출 폭을 허용하려면이 값을 0이 아닌 값으로 설정하십시오. 0으로 남겨두면 Slic3r은 노즐 직경에서 압출 폭" +"을 도출합니다 (주변 압출 폭, 성형 압출 폭 등의 툴팁 참조). 백분율로 표시되는 경우 (예 : 230 %) 레이어 높이를 " +"기준으로 계산됩니다." + +#: src/libslic3r/PrintConfig.cpp:527 +msgid "mm or % (leave 0 for auto)" +msgstr "mm 또는 % (자동으로 0을 유지)" + +#: src/libslic3r/PrintConfig.cpp:532 +msgid "Keep fan always on" +msgstr "항상 팬 켜기" + +#: src/libslic3r/PrintConfig.cpp:533 +msgid "" +"If this is enabled, fan will never be disabled and will be kept running at least at its minimum speed. Useful " +"for PLA, harmful for ABS." +msgstr "" +"이 기능을 사용하면 팬이 비활성화되지 않으며 최소한 최소 속도로 계속 회전합니다. PLA에 유용하며 ABS에 해롭다." + +#: src/libslic3r/PrintConfig.cpp:538 +msgid "Enable fan if layer print time is below" +msgstr "레이어 인쇄 시간이 미만인 경우 팬 활성화" + +#: src/libslic3r/PrintConfig.cpp:539 +msgid "" +"If layer print time is estimated below this number of seconds, fan will be enabled and its speed will be " +"calculated by interpolating the minimum and maximum speeds." +msgstr "" +"레이어 인쇄 시간이이 초 미만으로 예상되는 경우 팬이 활성화되고 속도는 최소 및 최대 속도를 보간하여 계산됩니다." + +#: src/libslic3r/PrintConfig.cpp:541 src/libslic3r/PrintConfig.cpp:1637 +msgid "approximate seconds" +msgstr "근사치 초" + +#: src/libslic3r/PrintConfig.cpp:549 +msgid "Color" +msgstr "색상" + +#: src/libslic3r/PrintConfig.cpp:555 +msgid "Filament notes" +msgstr "필라멘트 메모" + +#: src/libslic3r/PrintConfig.cpp:556 +msgid "You can put your notes regarding the filament here." +msgstr "여기에 필라멘트에 관한 메모를 넣을 수 있다." + +#: src/libslic3r/PrintConfig.cpp:564 src/libslic3r/PrintConfig.cpp:1181 +msgid "Max volumetric speed" +msgstr "최대 체적 속도" + +#: src/libslic3r/PrintConfig.cpp:565 +msgid "" +"Maximum volumetric speed allowed for this filament. Limits the maximum volumetric speed of a print to the " +"minimum of print and filament volumetric speed. Set to zero for no limit." +msgstr "" +"이 필라멘트에 허용되는 최대 체적 속도. 인쇄물의 최대 체적 속도를 인쇄 및 필라멘트 체적 속도 최소로 제한한다. " +"제한 없음에 대해 0으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:568 src/libslic3r/PrintConfig.cpp:1184 +msgid "mm³/s" +msgstr "밀리미터 ³/s" + +#: src/libslic3r/PrintConfig.cpp:574 +msgid "Loading speed" +msgstr "로딩 속도" + +#: src/libslic3r/PrintConfig.cpp:575 +msgid "Speed used for loading the filament on the wipe tower. " +msgstr "와이퍼 탑(wipe)에 필라멘트를 장착하는 데 사용되는 속도. " + +#: src/libslic3r/PrintConfig.cpp:582 +msgid "Loading speed at the start" +msgstr "시작시 로딩 속도" + +#: src/libslic3r/PrintConfig.cpp:583 +msgid "Speed used at the very beginning of loading phase. " +msgstr "로딩 단계의 시작에 사용 되는 속도. " + +#: src/libslic3r/PrintConfig.cpp:590 +msgid "Unloading speed" +msgstr "언로딩 스피드" + +#: src/libslic3r/PrintConfig.cpp:591 +msgid "" +"Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just " +"after ramming). " +msgstr "" +"와이퍼 타워에서 필라멘트를 언로드하는 데 사용되는 속도(램핑 후 바로 언로딩의 초기 부분에는 영향을 주지 않음). " + +#: src/libslic3r/PrintConfig.cpp:599 +msgid "Unloading speed at the start" +msgstr "시작 시 언로드 속도" + +#: src/libslic3r/PrintConfig.cpp:600 +msgid "Speed used for unloading the tip of the filament immediately after ramming. " +msgstr "속도는 레밍 직후 필라멘트의 팁을 언로딩 하는 데 사용 됩니다. " + +#: src/libslic3r/PrintConfig.cpp:607 +msgid "Delay after unloading" +msgstr "언로드 후 딜레이" + +#: src/libslic3r/PrintConfig.cpp:608 +msgid "" +"Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials " +"that may need more time to shrink to original dimensions. " +msgstr "" +"필라멘트를 내린 후 기다리는 시간. 원래 치수로 축소하는 데 더 많은 시간이 필요할 수있는 유연한 재료로 신뢰할 수" +"있는 공구 교환을 얻을 수 있습니다. " + +#: src/libslic3r/PrintConfig.cpp:617 +msgid "Number of cooling moves" +msgstr "쿨링 이동 숫자" + +#: src/libslic3r/PrintConfig.cpp:618 +msgid "" +"Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves " +msgstr "필라멘트는 냉각 튜브에서 앞뒤로 움직여 냉각됩니다. 원하는 이동 숫자 지정 " + +#: src/libslic3r/PrintConfig.cpp:626 +msgid "Speed of the first cooling move" +msgstr "첫 번째 냉각 이동 속도" + +#: src/libslic3r/PrintConfig.cpp:627 +msgid "Cooling moves are gradually accelerating beginning at this speed. " +msgstr "냉각 속도가 서서히 빨라지고 있습니다. " + +#: src/libslic3r/PrintConfig.cpp:634 +msgid "Minimal purge on wipe tower" +msgstr "와이프(wipe) 탑의 최소 퍼지" + +#: src/libslic3r/PrintConfig.cpp:635 +msgid "" +"After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and " +"the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial " +"object, Slic3r will always prime this amount of material into the wipe tower to produce successive infill or " +"sacrificial object extrusions reliably." +msgstr "" +"공구가 변경 된 후 노즐 내부에 새로 로드 된 필라멘트의 정확한 위치를 알 수 없으며, 필라멘트 압력이 아직 안정적" +"이지 않을 수 있습니다. 프린트 헤드를 인필 또는 희생(sacrificial) 객체로 소거 하기 전에 Slic3r는 항상이 양의 재" +"료를 와이프 탑에 넣어 연속적인 채우기 또는 희생(sacrificial) 객체 돌출을 안정적으로 생성 합니다." + +#: src/libslic3r/PrintConfig.cpp:639 +msgid "mm³" +msgstr "mm ³" + +#: src/libslic3r/PrintConfig.cpp:645 +msgid "Speed of the last cooling move" +msgstr "마지막 냉각 이동 속도" + +#: src/libslic3r/PrintConfig.cpp:646 +msgid "Cooling moves are gradually accelerating towards this speed. " +msgstr "냉각은 이 속도쪽으로 점차 가속화되고 있습니다. " + +#: src/libslic3r/PrintConfig.cpp:653 +msgid "Filament load time" +msgstr "필라멘트 로드 시간" + +#: src/libslic3r/PrintConfig.cpp:654 +msgid "" +"Time for the printer firmware (or the Multi Material Unit 2.0) to load a new filament during a tool change " +"(when executing the T code). This time is added to the total print time by the G-code time estimator." +msgstr "" +"프린터 펌웨어 (또는 MMU 2.0)가 공구를 변경하는 동안(T 코드를 실행할 때) 새필라멘트를 로드하는 시간입니다. 이 " +"시간은 G 코드 시간 추정기에 의해 총 인쇄 시간에 추가 됩니다." + +#: src/libslic3r/PrintConfig.cpp:661 +msgid "Ramming parameters" +msgstr "래밍 파라미터" + +#: src/libslic3r/PrintConfig.cpp:662 +msgid "This string is edited by RammingDialog and contains ramming specific parameters " +msgstr "이 문자열은 RammingDialog에 의해 편집되고 램밍 특정 매개 변수를 포함합니다 " + +#: src/libslic3r/PrintConfig.cpp:668 +msgid "Filament unload time" +msgstr "필라멘트 언로드 시간" + +#: src/libslic3r/PrintConfig.cpp:669 +msgid "" +"Time for the printer firmware (or the Multi Material Unit 2.0) to unload a filament during a tool change " +"(when executing the T code). This time is added to the total print time by the G-code time estimator." +msgstr "" +"프린터 펌웨어 (또는 MMU2.0)가 공구 교환 중에 필라멘트를 언로드하기 위한 시간입니다 (T 코드를 실행할 때). 이 시" +"간은 G 코드 시간추정기에 의해 총 인쇄 시간에 추가 됩니다." + +#: src/libslic3r/PrintConfig.cpp:677 +msgid "" +"Enter your filament diameter here. Good precision is required, so use a caliper and do multiple measurements " +"along the filament, then compute the average." +msgstr "" +"여기에 필라멘트 직경을 입력하십시오. 정밀도가 필요하므로 캘리퍼를 사용하여 필라멘트를 따라 여러 번 측정 한 다" +"음 평균을 계산하십시오." + +#: src/libslic3r/PrintConfig.cpp:684 +msgid "Density" +msgstr "밀도" + +#: src/libslic3r/PrintConfig.cpp:685 +msgid "" +"Enter your filament density here. This is only for statistical information. A decent way is to weigh a known " +"length of filament and compute the ratio of the length to volume. Better is to calculate the volume directly " +"through displacement." +msgstr "" +"여기서 필라멘트 밀도를 입력하십시오. 이것은 통계 정보 용입니다. 괜찮은 방법은 알려진 길이의 필라멘트의 무게를 " +"측정하고 길이와 볼륨의 비율을 계산하는 것입니다. 변위를 통해 직접적으로 부피를 계산하는 것이 더 좋습니다." + +#: src/libslic3r/PrintConfig.cpp:688 +msgid "g/cm³" +msgstr "g/cm³" + +#: src/libslic3r/PrintConfig.cpp:693 +msgid "Filament type" +msgstr "필라멘트 타입" + +#: src/libslic3r/PrintConfig.cpp:694 +msgid "The filament material type for use in custom G-codes." +msgstr "사용자 지정 G 코드에 사용할 필라멘트재료 유형입니다." + +#: src/libslic3r/PrintConfig.cpp:710 +msgid "Soluble material" +msgstr "수용성 재료" + +#: src/libslic3r/PrintConfig.cpp:711 +msgid "Soluble material is most likely used for a soluble support." +msgstr "수용성 재료눈 물에 녹는 서포트에 가장 많이 사용된다." + +#: src/libslic3r/PrintConfig.cpp:717 +msgid "Enter your filament cost per kg here. This is only for statistical information." +msgstr "필라멘트(kg당) 비용을 여기에 입력하십시오. 통계를 내기 위해서 입니다." + +#: src/libslic3r/PrintConfig.cpp:718 +msgid "money/kg" +msgstr "원(\\)/kg" + +#: src/libslic3r/PrintConfig.cpp:727 +msgid "Fill angle" +msgstr "채움 각도" + +#: src/libslic3r/PrintConfig.cpp:729 +msgid "" +"Default base angle for infill orientation. Cross-hatching will be applied to this. Bridges will be infilled " +"using the best direction Slic3r can detect, so this setting does not affect them." +msgstr "" +"본 오리엔테이션 방향의 기본 각도입니다. 해칭이 적용될 것입니다. Slic3r이 감지 할 수있는 최상의 방향을 사용하" +"여 브릿징이 채워지므로이 설정은 영향을 미치지 않습니다." + +#: src/libslic3r/PrintConfig.cpp:741 +msgid "Fill density" +msgstr "채우기(fill) 밀도" + +#: src/libslic3r/PrintConfig.cpp:743 +msgid "Density of internal infill, expressed in the range 0% - 100%." +msgstr "0 % - 100 % 범위로 표현 된 내부 채움(infill)의 밀도." + +#: src/libslic3r/PrintConfig.cpp:778 +msgid "Fill pattern" +msgstr "채우기(fill) 패턴" + +#: src/libslic3r/PrintConfig.cpp:780 +msgid "Fill pattern for general low-density infill." +msgstr "일반 낮은 밀도 채움의 패턴." + +#: src/libslic3r/PrintConfig.cpp:796 +msgid "Grid" +msgstr "그리드(Grid)" + +#: src/libslic3r/PrintConfig.cpp:797 +msgid "Triangles" +msgstr "삼각형(Triangles)" + +#: src/libslic3r/PrintConfig.cpp:798 +msgid "Stars" +msgstr "별(Stars)" + +#: src/libslic3r/PrintConfig.cpp:799 +msgid "Cubic" +msgstr "큐빅" + +#: src/libslic3r/PrintConfig.cpp:800 +msgid "Line" +msgstr "선(Line)" + +#: src/libslic3r/PrintConfig.cpp:802 src/libslic3r/PrintConfig.cpp:1923 +msgid "Honeycomb" +msgstr "벌집" + +#: src/libslic3r/PrintConfig.cpp:803 +msgid "3D Honeycomb" +msgstr "3D 벌집" + +#: src/libslic3r/PrintConfig.cpp:804 +msgid "Gyroid" +msgstr "자이로이드(Gyroid)" + +#: src/libslic3r/PrintConfig.cpp:811 src/libslic3r/PrintConfig.cpp:820 src/libslic3r/PrintConfig.cpp:828 +#: src/libslic3r/PrintConfig.cpp:861 +msgid "First layer" +msgstr "첫 레이어" + +#: src/libslic3r/PrintConfig.cpp:812 +msgid "" +"This is the acceleration your printer will use for first layer. Set zero to disable acceleration control for " +"first layer." +msgstr "" +"이것은 프린터가 첫 번째 레이어에 사용할 가속도입니다. 0을 설정하면 첫 번째 레이어에 대한 가속 제어가 사용되지 " +"않습니다." + +#: src/libslic3r/PrintConfig.cpp:821 +msgid "" +"Heated build plate temperature for the first layer. Set this to zero to disable bed temperature control " +"commands in the output." +msgstr "" +"첫 번째 레이어에 대한 빌드 플레이트 온도를 가열. 이 값을 0으로 설정하면 출력에서 ​​베드 온도 제어 명령을 비활성" +"화합니다." + +#: src/libslic3r/PrintConfig.cpp:830 +msgid "" +"Set this to a non-zero value to set a manual extrusion width for first layer. You can use this to force " +"fatter extrudates for better adhesion. If expressed as percentage (for example 120%) it will be computed over " +"first layer height. If set to zero, it will use the default extrusion width." +msgstr "" +"첫 번째 레이어의 수동 압출 폭을 설정하려면이 값을 0이 아닌 값으로 설정합니다. 이 방법을 사용하면보다 우수한 접" +"착력을 위해 더 두꺼운 압출 성형물을 만들 수 있습니다. 백분율 (예 : 120 %)로 표현하면 첫 번째 레이어 높이를 기" +"준으로 계산됩니다. 0으로 설정하면 기본 압출 폭이 사용됩니다." + +#: src/libslic3r/PrintConfig.cpp:840 +msgid "First layer height" +msgstr "첫 레이어 높이" + +#: src/libslic3r/PrintConfig.cpp:842 +msgid "" +"When printing with very low layer heights, you might still want to print a thicker bottom layer to improve " +"adhesion and tolerance for non perfect build plates. This can be expressed as an absolute value or as a " +"percentage (for example: 150%) over the default layer height." +msgstr "" +"매우 낮은 층의 높이로 인쇄할 때, 당신은 여전히 완벽하지 않은 빌드 플레이트의 부착력과 허용오차를 개선하기 위" +"해 더 두꺼운 바닥 층을 인쇄하기를 원할 수 있다. 이것은 절대값 또는 기본 계층 높이에 대한 백분율(예: 150%)로 표" +"시할 수 있다." + +#: src/libslic3r/PrintConfig.cpp:846 src/libslic3r/PrintConfig.cpp:991 src/libslic3r/PrintConfig.cpp:1796 +msgid "mm or %" +msgstr "mm/s 또는 %" + +#: src/libslic3r/PrintConfig.cpp:851 +msgid "First layer speed" +msgstr "첫 레이어 속도" + +#: src/libslic3r/PrintConfig.cpp:852 +msgid "" +"If expressed as absolute value in mm/s, this speed will be applied to all the print moves of the first layer, " +"regardless of their type. If expressed as a percentage (for example: 40%) it will scale the default speeds." +msgstr "" +"절대값(mm/s)으로 표현되는 경우, 이 속도는 유형에 관계없이 첫 번째 층의 모든 인쇄 이동에 적용된다. 백분율(예: " +"40%)로 표현되는 경우 기본 속도를 스케일링한다." + +#: src/libslic3r/PrintConfig.cpp:862 +msgid "" +"Extruder temperature for first layer. If you want to control temperature manually during print, set this to " +"zero to disable temperature control commands in the output file." +msgstr "" +"첫 번째 층의 외부 온도. 인쇄 중에 온도를 수동으로 제어하려면 출력 파일에서 온도 제어 명령을 사용하지 않으려면 " +"이 값을 0으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:871 +msgid "" +"Speed for filling small gaps using short zigzag moves. Keep this reasonably low to avoid too much shaking and " +"resonance issues. Set zero to disable gaps filling." +msgstr "" +"짧은 지그재그로 작은 틈을 메우기 위한 속도. 너무 많은 진동과 공진 문제를 피하기 위해 이것을 합리적으로 낮게 유" +"지한다. 간격 채우기를 사용하지 않으려면 0을 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:879 +msgid "Verbose G-code" +msgstr "세부 G-코드" + +#: src/libslic3r/PrintConfig.cpp:880 +msgid "" +"Enable this to get a commented G-code file, with each line explained by a descriptive text. If you print from " +"SD card, the additional weight of the file could make your firmware slow down." +msgstr "" +"설명 텍스트로 설명되는 각 행과 함께 코멘트된 G-code 파일을 가져오려면 이 옵션을 선택하십시오. 만일 당신이 SD카" +"드로 인쇄한다면, 파일의 추가 무게로 인해 펌웨어의 속도가 느려질 수 있다." + +#: src/libslic3r/PrintConfig.cpp:887 +msgid "G-code flavor" +msgstr "G-code 형식" + +#: src/libslic3r/PrintConfig.cpp:888 +msgid "" +"Some G/M-code commands, including temperature control and others, are not universal. Set this option to your " +"printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents Slic3r from exporting any " +"extrusion value at all." +msgstr "" +"온도 조절 등을 포함한 일부 G/M-코드 명령은 보편적이지 않습니다. 호환되는 출력을 얻으려면 보드에 적제된 프린터" +"의 펌웨어로 설정하십시오. \"압출 없음\" 형식은 Slic3r가 어떠한 압출 값도 출력하지 못하게 합니다." + +#: src/libslic3r/PrintConfig.cpp:911 +msgid "No extrusion" +msgstr "압출 없음" + +#: src/libslic3r/PrintConfig.cpp:918 +msgid "Label objects" +msgstr "레이블 개체" + +#: src/libslic3r/PrintConfig.cpp:924 +msgid "High extruder current on filament swap" +msgstr "필라멘트스왑에 높은 압출 기 전류" + +#: src/libslic3r/PrintConfig.cpp:925 +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:933 +msgid "" +"This is the acceleration your printer will use for infill. Set zero to disable acceleration control for " +"infill." +msgstr "이것은 당신 프린터의 채움 가속력이다. 주입에 대한 가속 제어를 비활성화하려면 0을 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:941 +msgid "Combine infill every" +msgstr "다음 시간마다 결합" + +#: src/libslic3r/PrintConfig.cpp:943 +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:946 +msgid "Combine infill every n layers" +msgstr "모든 n개 층을 채우기 위해 결합" + +#: src/libslic3r/PrintConfig.cpp:952 +msgid "Infill extruder" +msgstr "채움(Infill) 익스트루더" + +#: src/libslic3r/PrintConfig.cpp:954 +msgid "The extruder to use when printing infill." +msgstr "채움으로 사용할 익스트루더." + +#: src/libslic3r/PrintConfig.cpp:962 +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 nozzle diameter will be used. You may want to use fatter " +"extrudates to speed up the infill and make your parts stronger. If expressed as percentage (for example 90%) " +"it will be computed over layer height." +msgstr "" +"채움에 수동 압출 폭을 설정하려면이 값을 0이 아닌 값으로 설정합니다. 0으로 설정하면 설정된 경우 기본 압출 폭이 " +"사용되고 그렇지 않으면 1.125 x 노즐 직경이 사용됩니다. 채움 속도를 높이고 부품을 더 강하게 만들려면보다 큰 압" +"출 성형물을 사용하는 것이 좋습니다. 백분율 (예 : 90 %)로 표현하면 레이어 높이를 기준으로 계산됩니다." + +#: src/libslic3r/PrintConfig.cpp:971 +msgid "Infill before perimeters" +msgstr "둘레보다 앞쪽에 채움" + +#: src/libslic3r/PrintConfig.cpp:972 +msgid "This option will switch the print order of perimeters and infill, making the latter first." +msgstr "이 옵션은 외부출력과 채움 인쇄 순서를 바꾸어, 후자를 먼저 만든다." + +#: src/libslic3r/PrintConfig.cpp:977 +msgid "Only infill where needed" +msgstr "필요한 경우 채음" + +#: src/libslic3r/PrintConfig.cpp:979 +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 "" +"이 옵션은 천장 지원에 실제로 필요한 영역에만 적용된다(내부 서포트 재료 역할을 할 것이다). 활성화된 경우 관련" +"된 여러 번의 점검으로 인해 G-code 생성 속도를 늦춰라." + +#: src/libslic3r/PrintConfig.cpp:986 +msgid "Infill/perimeters overlap" +msgstr "채움/둘레 겹침(perimeters overlap)" + +#: src/libslic3r/PrintConfig.cpp:988 +msgid "" +"This setting applies an additional overlap between infill and perimeters for better bonding. Theoretically " +"this shouldn't be needed, but backlash might cause gaps. If expressed as percentage (example: 15%) it is " +"calculated over perimeter extrusion width." +msgstr "" +"이 설정은 더 나은 본딩을 위해 충전 및 둘레 사이에 추가 겹침을 적용합니다. 이론적으로 이것은 필요하지 않아야하" +"지만 백래시가 갭을 유발할 수 있습니다. 백분율 (예 : 15 %)로 표시되는 경우 경계 압출 폭을 기준으로 계산됩니다." + +#: src/libslic3r/PrintConfig.cpp:999 +msgid "Speed for printing the internal fill. Set to zero for auto." +msgstr "내부 채우기 인쇄 속도. 자동으로 0으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:1007 +msgid "Inherits profile" +msgstr "프로필 상속" + +#: src/libslic3r/PrintConfig.cpp:1008 +msgid "Name of the profile, from which this profile inherits." +msgstr "이 프로파일이 상속되는 프로파일의 이름." + +#: src/libslic3r/PrintConfig.cpp:1021 +msgid "Interface shells" +msgstr "인터페이스 셸(shells)" + +#: src/libslic3r/PrintConfig.cpp:1022 +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:1031 +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 use placeholder variables for all Slic3r settings as well as " +"[layer_num] and [layer_z]." +msgstr "" +"이 사용자 정의 코드는 Z 이동 직후와 압출부가 첫 번째 레이어 포인트로 이동하기 전에 모든 레이어 변경 시 삽입된" +"다. 모든 Slic3r 설정뿐만 아니라 [layer_num] 및 [layer_z]에 자리 표시자 변수를 사용할 수 있다는 점에 유의하십시" +"오." + +#: src/libslic3r/PrintConfig.cpp:1042 +msgid "Supports remaining times" +msgstr "남은 시간 지원" + +#: src/libslic3r/PrintConfig.cpp:1043 +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. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 " +"MK3 firmware supports M73 Qxx Sxx for the silent mode." +msgstr "" +"G 코드에 1 분 간격으로 M73 P [퍼센트 인쇄] R을 방출하여 펌웨어가 정확한 잔여 시간을 표시 하도록 합니다. 현재" +"만 Prusa i3 MK3 펌웨어는 M73를 인식 하 고 있습니다. 또한 i3 MK3 펌웨어는 자동 모드에서 M73 Qxx Sxx를 지원 합니" +"다." + +#: src/libslic3r/PrintConfig.cpp:1063 +msgid "Supports stealth mode" +msgstr "자동 모드 지원" + +#: src/libslic3r/PrintConfig.cpp:1052 +msgid "Set silent mode for the G-code flavor" +msgstr "G-코드 특징에 대한 무음 모드 설정" + +#: src/libslic3r/PrintConfig.cpp:1075 +msgid "Maximum feedrate %1%" +msgstr "최대 공급 속도 %1%" + +#: src/libslic3r/PrintConfig.cpp:1078 +msgid "Maximum feedrate X" +msgstr "최대 이송 속도 X" + +#: src/libslic3r/PrintConfig.cpp:1079 +msgid "Maximum feedrate Y" +msgstr "최대 이송 속도 Y" + +#: src/libslic3r/PrintConfig.cpp:1080 +msgid "Maximum feedrate Z" +msgstr "최대 이송 속도 Z" + +#: src/libslic3r/PrintConfig.cpp:1081 +msgid "Maximum feedrate E" +msgstr "최대 이송 속도 E" + +#: src/libslic3r/PrintConfig.cpp:1077 +msgid "Maximum feedrate of the %1% axis" +msgstr "최대 공급 속도 of the %1% axis " + +#: src/libslic3r/PrintConfig.cpp:1096 +msgid "Maximum acceleration X" +msgstr "최대 가속도 X" + +#: src/libslic3r/PrintConfig.cpp:1097 +msgid "Maximum acceleration Y" +msgstr "최대 가속도 Y" + +#: src/libslic3r/PrintConfig.cpp:1098 +msgid "Maximum acceleration Z" +msgstr "최대 가속 Z" + +#: src/libslic3r/PrintConfig.cpp:1099 +msgid "Maximum acceleration E" +msgstr "최대 가속 E" + +#: src/libslic3r/PrintConfig.cpp:1087 +msgid "Maximum acceleration of the %1% axis" +msgstr "최대 가속도는 %1% 축" + +#: src/libslic3r/PrintConfig.cpp:1095 +msgid "Maximum jerk %1%" +msgstr "최대 저크(jerk) %1%" + +#: src/libslic3r/PrintConfig.cpp:1114 +msgid "Maximum jerk X" +msgstr "최대 저크(jerk) X" + +#: src/libslic3r/PrintConfig.cpp:1115 +msgid "Maximum jerk Y" +msgstr "최대 저크(jerk) Y" + +#: src/libslic3r/PrintConfig.cpp:1116 +msgid "Maximum jerk Z" +msgstr "최대 저크(jerk) Z" + +#: src/libslic3r/PrintConfig.cpp:1117 +msgid "Maximum jerk E" +msgstr "최대 저크(jerk) E" + +#: src/libslic3r/PrintConfig.cpp:1097 +msgid "Maximum jerk of the %1% axis" +msgstr "최대 저크는(jerk) %1% axis" + +#: src/libslic3r/PrintConfig.cpp:1108 src/libslic3r/PrintConfig.cpp:1110 +msgid "Minimum feedrate when extruding" +msgstr "압출시 최소 공급 속도" + +#: src/libslic3r/PrintConfig.cpp:1119 src/libslic3r/PrintConfig.cpp:1121 +msgid "Minimum travel feedrate" +msgstr "최소 이송 속도" + +#: src/libslic3r/PrintConfig.cpp:1130 src/libslic3r/PrintConfig.cpp:1132 +msgid "Maximum acceleration when extruding" +msgstr "압출시 최대 가속도" + +#: src/libslic3r/PrintConfig.cpp:1141 src/libslic3r/PrintConfig.cpp:1143 +msgid "Maximum acceleration when retracting" +msgstr "리트렉션 최대 가속도" + +#: src/libslic3r/PrintConfig.cpp:1151 src/libslic3r/PrintConfig.cpp:1160 +msgid "Max" +msgstr "최대" + +#: src/libslic3r/PrintConfig.cpp:1152 +msgid "This setting represents the maximum speed of your fan." +msgstr "이 설정은 팬의 최대 속도를 나타냅니다." + +#: src/libslic3r/PrintConfig.cpp:1161 +#, no-c-format +msgid "" +"This is the highest printable layer height for this extruder, used to cap the variable layer height and " +"support layer height. Maximum recommended layer height is 75% of the extrusion width to achieve reasonable " +"inter-layer adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." +msgstr "" +"이것은이 익스트루더의 가장 높은 인쇄 가능 층 높이이며, 가변 층 높이 및 지지층 높이를 캡하는 데 사용됩니다. 합" +"당한 층간 접착력을 얻기 위해 최대 권장 높이는 압출 폭의 75 %입니다. 0으로 설정하면 층 높이가 노즐 지름의 75 %" +"로 제한됩니다." + +#: src/libslic3r/PrintConfig.cpp:1171 +msgid "Max print speed" +msgstr "최대 프린트 속도" + +#: src/libslic3r/PrintConfig.cpp:1172 +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 "" +"다른 속도 설정을 0으로 설정할 경우, 지속적인 외부 압력을 유지하기 위해 최적의 속도를 자동 계산한다. 이 실험 설" +"정은 허용할 최대 인쇄 속도를 설정하는 데 사용된다." + +#: src/libslic3r/PrintConfig.cpp:1182 +msgid "This experimental setting is used to set the maximum volumetric speed your extruder supports." +msgstr "이 실험 설정은 압출기가 지원하는 최대 체적 속도를 설정하기 위해 사용된다." + +#: src/libslic3r/PrintConfig.cpp:1191 +msgid "Max volumetric slope positive" +msgstr "최대 체적 기울기 양" + +#: src/libslic3r/PrintConfig.cpp:1192 src/libslic3r/PrintConfig.cpp:1203 +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 of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, " +"feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." +msgstr "" +"이 실험 설정은 돌출율의 변화 속도를 제한하는데 사용된다. 1.8mm3/s2 값은 1.8mm3/s(0.45mm 압출 폭, 0.2mm 압출 높" +"이, 공급 속도 20mm/s)에서 5.4mm3/s(공급 속도 60mm/s)로 변경하는 데 최소 2초 이상 걸린다." + +#: src/libslic3r/PrintConfig.cpp:1196 src/libslic3r/PrintConfig.cpp:1207 +msgid "mm³/s²" +msgstr "mm³/s²" + +#: src/libslic3r/PrintConfig.cpp:1202 +msgid "Max volumetric slope negative" +msgstr "최대 체적 기울기 음수" + +#: src/libslic3r/PrintConfig.cpp:1214 src/libslic3r/PrintConfig.cpp:1223 +msgid "Min" +msgstr "최소" + +#: src/libslic3r/PrintConfig.cpp:1215 +msgid "This setting represents the minimum PWM your fan needs to work." +msgstr "이 설정은 최소 PWM팬이 활동하는데 필요한를 나타냅니다." + +#: src/libslic3r/PrintConfig.cpp:1224 +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 "" +"이것은 이 압출기에 대한 가장 낮은 인쇄 가능한 층 높이이고 가변 층 높이에 대한 분해능을 제한한다. 대표적인 값" +"은 0.05mm와 0.1mm이다." + +#: src/libslic3r/PrintConfig.cpp:1232 +msgid "Min print speed" +msgstr "최소 인쇄 속도" + +#: src/libslic3r/PrintConfig.cpp:1233 +msgid "Slic3r will not scale speed down below this speed." +msgstr "Slic3r는 이 속도 이하로 속도를 낮추지 않을 것이다." + +#: src/libslic3r/PrintConfig.cpp:1240 +msgid "Minimal filament extrusion length" +msgstr "최소 필라멘트 압출 길이" + +#: src/libslic3r/PrintConfig.cpp:1241 +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:1250 +msgid "Configuration notes" +msgstr "구성 노트" + +#: src/libslic3r/PrintConfig.cpp:1251 +msgid "You can put here your personal notes. This text will be added to the G-code header comments." +msgstr "여기에 개인 노트를 넣을 수 있다. 이 텍스트는 G-code 헤더 코멘트에 추가될 것이다." + +#: src/libslic3r/PrintConfig.cpp:1260 +msgid "Nozzle diameter" +msgstr "노즐 직경" + +#: src/libslic3r/PrintConfig.cpp:1261 +msgid "This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" +msgstr "이 지름은 엑스트루더 노즐의 직경이다(예: 0.5, 0.35 등)." + +#: src/libslic3r/PrintConfig.cpp:1266 +msgid "Host Type" +msgstr "호스트 유형" + +#: src/libslic3r/PrintConfig.cpp:1267 +msgid "Slic3r can upload G-code files to a printer host. This field must contain the kind of the host." +msgstr "" +"Slic3r는 프린터 호스트에 G 코드 파일을 업로드할 수 있습니다. 이 필드에는 호스트의 종류가 포함 되어야 합니다." + +#: src/libslic3r/PrintConfig.cpp:1278 +msgid "Only retract when crossing perimeters" +msgstr "둘레를 횡단 할 때만 수축" + +#: src/libslic3r/PrintConfig.cpp:1279 +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:1286 +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:1293 +msgid "Output filename format" +msgstr "출력 파일이름 형식" + +#: src/libslic3r/PrintConfig.cpp:1294 +msgid "" +"You can use all configuration options as variables inside this template. For example: [layer_height], " +"[fill_density] etc. You can also use [timestamp], [year], [month], [day], [hour], [minute], [second], " +"[version], [input_filename], [input_filename_base]." +msgstr "" +"모든 구성 옵션을이 템플릿 내의 변수로 사용할 수 있습니다. 예: [layer_height], [fill_density] 등 또한 [타임 스" +"탬프], [연도], [월], [일], [시간], [input_filename], [input_filename_base]을 사용할 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:1303 +msgid "Detect bridging perimeters" +msgstr "브릿 징 경계선 감지" + +#: src/libslic3r/PrintConfig.cpp:1305 +msgid "" +"Experimental option to adjust flow for overhangs (bridge flow will be used), to apply bridge speed to them " +"and enable fan." +msgstr "" +"오버행에 대한 유량을 조정하는 실험 옵션 (브리지 흐름(flow)이 사용됨)에 브릿지 속도를 적용하고 팬을 활성화합니" +"다." + +#: src/libslic3r/PrintConfig.cpp:1311 +msgid "Filament parking position" +msgstr "필라멘트 멈춤 위치" + +#: src/libslic3r/PrintConfig.cpp:1312 +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:1320 +msgid "Extra loading distance" +msgstr "추가 로딩 거리" + +#: src/libslic3r/PrintConfig.cpp:1321 +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 positive, it is loaded further, if negative, the loading move is " +"shorter than unloading. " +msgstr "" +"0으로 설정하면로드 중에 필라멘트가 위치에서 이동 한 거리는 언로드 중에 다시 이동 한 거리와 동일합니다. 양수이" +"면 음수가 더 많이 로드되고 로드가 음수 인 경우 언로드보다 짧습니다. " + +#: src/libslic3r/PrintConfig.cpp:1329 src/libslic3r/PrintConfig.cpp:1347 src/libslic3r/PrintConfig.cpp:1359 +#: src/libslic3r/PrintConfig.cpp:1369 +msgid "Perimeters" +msgstr "둘레" + +#: src/libslic3r/PrintConfig.cpp:1330 +msgid "" +"This is the acceleration your printer will use for perimeters. A high value like 9000 usually gives good " +"results if your hardware is up to the job. Set zero to disable acceleration control for perimeters." +msgstr "" +"프린터가 둘레로 사용할 가속도입니다. 9000과 같은 높은 값은 하드웨어가 제대로 작동하면 좋은 결과를 제공합니다. " +"주변을 가속 제어하지 않으려면 0으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:1338 +msgid "Perimeter extruder" +msgstr "주변 익스트루더" + +#: src/libslic3r/PrintConfig.cpp:1340 +msgid "The extruder to use when printing perimeters and brim. First extruder is 1." +msgstr "둘레와 가장자리를 인쇄 할 때 사용할 압출기입니다. 첫 번째 압출기는 1입니다." + +#: src/libslic3r/PrintConfig.cpp:1349 +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 left zero, default extrusion width will be used if set, " +"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage (for example 200%) it will be " +"computed over layer height." +msgstr "" +"이 값을 0이 아닌 값으로 설정하면 수동 압출 폭을 둘레로 설정할 수 있습니다. 보다 정확한 서페이스를 얻으려면 더 " +"얇은 압출 성형품을 사용하는 것이 좋습니다. 0으로 설정하면 설정된 경우 기본 돌출 폭이 사용되고 그렇지 않으면 " +"1.125 x 노즐 직경이 사용됩니다. 백분율 (예 : 200 %)로 표현하면 레이어 높이를 기준으로 계산됩니다." + +#: src/libslic3r/PrintConfig.cpp:1361 +msgid "Speed for perimeters (contours, aka vertical shells). Set to zero for auto." +msgstr "둘레의 속도 (등고선, 일명 세로 셸). 자동으로 0으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:1371 +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 surfaces which benefit from a higher number of perimeters if the " +"Extra Perimeters option is enabled." +msgstr "" +"이 옵션은 각 레이어에 대해 생성 할 경계 수를 설정합니다. 추가 경계선 옵션을 사용하면 더 큰 주변 수를 사용하는 " +"경사면을 감지 할 때 Slic3r이이 수를 자동으로 증가시킬 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:1375 +msgid "(minimum)" +msgstr "(최소)" + +#: src/libslic3r/PrintConfig.cpp:1383 +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. Scripts will be passed the absolute path to the G-code file as " +"the first argument, and they can access the Slic3r config settings by reading environment variables." +msgstr "" +"사용자 정의 스크립트를 통해 출력 G 코드를 처리하려면 여기에 절대 경로를 나열하십시오. 여러 개의 스크립트를 세" +"미콜론으로 구분하십시오. 스크립트는 G 코드 파일의 절대 경로를 첫 번째 인수로 전달되며 환경 변수를 읽음으로써 " +"Slic3r 구성 설정에 액세스 할 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:1395 +msgid "Printer type" +msgstr "프린터 타입" + +#: src/libslic3r/PrintConfig.cpp:1396 +msgid "Type of the printer." +msgstr "프린터 유형." + +#: src/libslic3r/PrintConfig.cpp:1401 +msgid "Printer notes" +msgstr "프린터 노트" + +#: src/libslic3r/PrintConfig.cpp:1402 +msgid "You can put your notes regarding the printer here." +msgstr "프린터 관련 메모를 여기에 넣을 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:1410 +msgid "Printer vendor" +msgstr "제조 회사" + +#: src/libslic3r/PrintConfig.cpp:1411 +msgid "Name of the printer vendor." +msgstr "프린터 공급 업체의 이름입니다." + +#: src/libslic3r/PrintConfig.cpp:1416 +msgid "Printer variant" +msgstr "프린터 변형" + +#: src/libslic3r/PrintConfig.cpp:1417 +msgid "" +"Name of the printer variant. For example, the printer variants may be differentiated by a nozzle diameter." +msgstr "프린터 변종 이름입니다. 예를 들어, 프린터 변형은 노즐 지름으로 구별 될 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:1430 +msgid "Raft layers" +msgstr "라프트(Raft) 레이어" + +#: src/libslic3r/PrintConfig.cpp:1432 +msgid "The object will be raised by this number of layers, and support material will be generated under it." +msgstr "물체는 이 개수의 층에 의해 상승되며, 그 아래에서 서포트 재료가 생성될 것이다." + +#: src/libslic3r/PrintConfig.cpp:1440 +msgid "Resolution" +msgstr "해결" + +#: src/libslic3r/PrintConfig.cpp:1441 +msgid "" +"Minimum detail resolution, used to simplify the input file for speeding up the slicing job and reducing " +"memory usage. High-resolution models often carry more detail than printers can render. Set to zero to disable " +"any simplification and use full resolution from input." +msgstr "" +"잘라내기 작업의 속도를 높이고 메모리 사용량을 줄이기 위해 입력 파일을 단순화하는 데 사용되는 최소 세부 해상" +"도. 고해상도 모델은 종종 프린터가 렌더링할 수 있는 것보다 더 많은 디테일을 가지고 있다. 단순화를 사용하지 않" +"고 입력에서 전체 해상도를 사용하려면 0으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:1451 +msgid "Minimum travel after retraction" +msgstr "리트랙션 후 최소 이동 거리" + +#: src/libslic3r/PrintConfig.cpp:1452 +msgid "Retraction is not triggered when travel moves are shorter than this length." +msgstr "이동 거리가 이 길이보다 짧으면 리트렉션이 트리거되지 않습니다." + +#: src/libslic3r/PrintConfig.cpp:1458 +msgid "Retract amount before wipe" +msgstr "닦아 내기 전의 수축량" + +#: src/libslic3r/PrintConfig.cpp:1459 +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:1466 +msgid "Retract on layer change" +msgstr "레이어 변경 후퇴" + +#: src/libslic3r/PrintConfig.cpp:1467 +msgid "This flag enforces a retraction whenever a Z move is done." +msgstr "이 플래그는 Z 이동이 완료 될 때마다 취소를 강제 실행합니다." + +#: src/libslic3r/PrintConfig.cpp:1472 src/libslic3r/PrintConfig.cpp:1480 +msgid "Length" +msgstr "길이" + +#: src/libslic3r/PrintConfig.cpp:1473 +msgid "Retraction Length" +msgstr "리트랙션 길이" + +#: src/libslic3r/PrintConfig.cpp:1474 +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:1476 src/libslic3r/PrintConfig.cpp:1485 +msgid "mm (zero to disable)" +msgstr "mm (0은 비활성화)" + +#: src/libslic3r/PrintConfig.cpp:1481 +msgid "Retraction Length (Toolchange)" +msgstr "리트랙션 길이 (툴 체인지)" + +#: src/libslic3r/PrintConfig.cpp:1482 +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:1490 +msgid "Lift Z" +msgstr "Z축 올림" + +#: src/libslic3r/PrintConfig.cpp:1491 +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 "" +"이 값을 양수 값으로 설정하면 철회가 트리거 될 때마다 Z가 빠르게 올라갑니다. 여러 개의 압출기를 사용하는 경우 " +"첫 번째 압출기의 설정 만 고려됩니다." + +#: src/libslic3r/PrintConfig.cpp:1498 +msgid "Above Z" +msgstr "Z 위" + +#: src/libslic3r/PrintConfig.cpp:1499 +msgid "Only lift Z above" +msgstr "오직 Z축 위로만" + +#: src/libslic3r/PrintConfig.cpp:1500 +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 "" +"이것을 양의 값으로 설정하면, Z 리프트는 지정된 절대 Z 위로만 발생한다. 첫 번째 층에서 리프트를 건너뛸 수 있도" +"록 이 설정을 조정할 수 있다." + +#: src/libslic3r/PrintConfig.cpp:1507 +msgid "Below Z" +msgstr "Z 아래" + +#: src/libslic3r/PrintConfig.cpp:1508 +msgid "Only lift Z below" +msgstr "Z값 아래만" + +#: src/libslic3r/PrintConfig.cpp:1509 +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 "" +"이것을 양수 값으로 설정하면 Z 리프트가 지정된 절대 Z 아래에서만 발생합니다. 첫 번째 레이어로 리프트를 제한하" +"기 위해이 설정을 조정할 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:1517 src/libslic3r/PrintConfig.cpp:1525 +msgid "Extra length on restart" +msgstr "재시작시 여분의 길이" + +#: src/libslic3r/PrintConfig.cpp:1518 +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:1526 +msgid "" +"When the retraction is compensated after changing tool, the extruder will push this additional amount of " +"filament." +msgstr "도구를 교환 한 후 리트렉션를 보정하면 익스트루더가 추가 양의 필라멘트를 밀게됩니다." + +#: src/libslic3r/PrintConfig.cpp:1533 src/libslic3r/PrintConfig.cpp:1534 +msgid "Retraction Speed" +msgstr "리트랙션 속도" + +#: src/libslic3r/PrintConfig.cpp:1535 +msgid "The speed for retractions (it only applies to the extruder motor)." +msgstr "리트랙션 속도 (익스트루더 모터에만 적용됨)." + +#: src/libslic3r/PrintConfig.cpp:1541 src/libslic3r/PrintConfig.cpp:1542 +msgid "Deretraction Speed" +msgstr "감속 속도" + +#: src/libslic3r/PrintConfig.cpp:1543 +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 "" +"리트랙션 후 압출기에 필라멘트를 로드하는 속도 (압출기 모터에만 적용됨). 0으로 방치하면 리트랙션 속도가 사용됩" +"니다." + +#: src/libslic3r/PrintConfig.cpp:1550 +msgid "Seam position" +msgstr "재봉선 위치" + +#: src/libslic3r/PrintConfig.cpp:1552 +msgid "Position of perimeters starting points." +msgstr "둘레의 시작점의 위치." + +#: src/libslic3r/PrintConfig.cpp:1558 +msgid "Random" +msgstr "무작위" + +#: src/libslic3r/PrintConfig.cpp:1559 +msgid "Nearest" +msgstr "가장 가까운" + +#: src/libslic3r/PrintConfig.cpp:1560 +msgid "Aligned" +msgstr "정렬" + +#: src/libslic3r/PrintConfig.cpp:1568 +msgid "Direction" +msgstr "방향" + +#: src/libslic3r/PrintConfig.cpp:1570 +msgid "Preferred direction of the seam" +msgstr "선호하는 심(seam)의 방향" + +#: src/libslic3r/PrintConfig.cpp:1571 +msgid "Seam preferred direction" +msgstr "심(Seam) 선호 방향" + +#: src/libslic3r/PrintConfig.cpp:1578 +msgid "Jitter" +msgstr "지터(Jitter)" + +#: src/libslic3r/PrintConfig.cpp:1580 +msgid "Seam preferred direction jitter" +msgstr "(Seam) 선호 방향 지터(Jitter)" + +#: src/libslic3r/PrintConfig.cpp:1581 +msgid "Preferred direction of the seam - jitter" +msgstr "재봉선 지터의 선호 방향" + +#: src/libslic3r/PrintConfig.cpp:1591 +msgid "USB/serial port for printer connection." +msgstr "프린터 연결을 위한 USB/시리얼 포트." + +#: src/libslic3r/PrintConfig.cpp:1598 +msgid "Serial port speed" +msgstr "시리얼 포트 속도" + +#: src/libslic3r/PrintConfig.cpp:1599 +msgid "Speed (baud) of USB/serial port for printer connection." +msgstr "프린터 연결을 위한 USB/시리얼 포트의 속도(보드)" + +#: src/libslic3r/PrintConfig.cpp:1608 +msgid "Distance from object" +msgstr "객체로부터의 거리" + +#: src/libslic3r/PrintConfig.cpp:1609 +msgid "" +"Distance between skirt and object(s). Set this to zero to attach the skirt to the object(s) and get a brim " +"for better adhesion." +msgstr "스커트와 객체 사이의 거리. 스커트를 객체에 부착하고 접착력을 높이기 위해 이를 0으로 설정한다." + +#: src/libslic3r/PrintConfig.cpp:1616 +msgid "Skirt height" +msgstr "스커트(Skirt) 높이" + +#: src/libslic3r/PrintConfig.cpp:1617 +msgid "Height of skirt expressed in layers. Set this to a tall value to use skirt as a shield against drafts." +msgstr "" +"스커트의 높이 레이어로 표현된다. 이를 높은 값으로 설정하여 스커트를 드래프트에 대한 쉴ㄷ로 활용하십시오." + +#: src/libslic3r/PrintConfig.cpp:1624 +msgid "Loops (minimum)" +msgstr "루프 (최소)" + +#: src/libslic3r/PrintConfig.cpp:1625 +msgid "Skirt Loops" +msgstr "스커트 루프" + +#: src/libslic3r/PrintConfig.cpp:1626 +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 "" +"스커트의 루프 수입니다. 최소 압출 길이 옵션을 설정한 경우 여기에 구성된 루프 수보다 클 수 있다. 스커트를 완전" +"히 비활성화하려면 이 값을 0으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:1634 +msgid "Slow down if layer print time is below" +msgstr "레이어 인쇄 시간이 다음과 같은 경우 속도를 낮추십시오" + +#: src/libslic3r/PrintConfig.cpp:1635 +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:1645 +msgid "Small perimeters" +msgstr "작은 둘레" + +#: src/libslic3r/PrintConfig.cpp:1647 +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 "" +"이 개별 설정은 반경이 6.5mm 미만인 속도 (일반적으로 구멍)에 영향을줍니다. 백분율로 표시되는 경우 (예 : 80 %) " +"위의 속도 설정에서 계산됩니다. 자동으로 0으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:1657 +msgid "Solid infill threshold area" +msgstr "솔리드 채우기 임계값 영역" + +#: src/libslic3r/PrintConfig.cpp:1659 +msgid "Force solid infill for regions having a smaller area than the specified threshold." +msgstr "지정된 한계값보다 작은 영역을 가진 영역에 대해 솔리드 인필을 강제 적용." + +#: src/libslic3r/PrintConfig.cpp:1660 +msgid "mm²" +msgstr "mm²" + +#: src/libslic3r/PrintConfig.cpp:1666 +msgid "Solid infill extruder" +msgstr "솔리드 인필 익스트루더" + +#: src/libslic3r/PrintConfig.cpp:1668 +msgid "The extruder to use when printing solid infill." +msgstr "꽉찬 면을 인쇄할 때 사용하는 익스트루더." + +#: src/libslic3r/PrintConfig.cpp:1674 +msgid "Solid infill every" +msgstr "솔리드 인필 간격" + +#: src/libslic3r/PrintConfig.cpp:1676 +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 will automatically choose the maximum possible number of layers to " +"combine according to nozzle diameter and layer height." +msgstr "" +"이 특징은 주어진 개수의 층마다 단단한 층을 강요할 수 있게 한다. 비활성화할 수 없음. 당신은 이것을 어떤 값으로" +"도 설정할 수 있다(예: 9999). Slic3r는 노즐 직경과 층 높이에 따라 결합할 최대 가능한 층 수를 자동으로 선택한다." + +#: src/libslic3r/PrintConfig.cpp:1688 +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, otherwise 1.125 x nozzle diameter will be used. If expressed as " +"percentage (for example 90%) it will be computed over layer height." +msgstr "" +"이 값을 0이 아닌 값으로 설정하여 솔리드 표면 인필에 대한 수동 압출 폭을 설정하십시오. 0인 경우 기본 압출 너비" +"가 사용되며, 그렇지 않으면 1.125 x 노즐 직경이 사용된다. 백분율(예: 90%)로 표현되는 경우, 계층 높이에 걸쳐 계" +"산된다." + +#: src/libslic3r/PrintConfig.cpp:1698 +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 "" +"솔리드 영역(상단/하부/내부 수평 셸) 인쇄 속도 이는 위의 기본 주입 속도에 대한 백분율(예: 80%)로 표시할 수 있" +"다. 자동을 위해 0으로 설정한다." + +#: src/libslic3r/PrintConfig.cpp:1710 +msgid "Number of solid layers to generate on top and bottom surfaces." +msgstr "상단 및 하단 표면에 생성할 솔리드 레이어 수입니다." + +#: src/libslic3r/PrintConfig.cpp:1716 +msgid "Spiral vase" +msgstr "스파이럴 바이스" + +#: src/libslic3r/PrintConfig.cpp:1717 +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, no infill, no top solid layers and no support material. You " +"can still set any number of bottom solid layers as well as skirt/brim loops. It won't work when printing more " +"than an object." +msgstr "" +"이 기능은 단일 벽 물체를 인쇄하는 동안 눈에 보이는 심을 제거하기 위해 Z를 점진적으로 상승시킨다. 이 옵션은 단" +"일 둘레, 주입, 상단 솔리드 레이어 및 지지 재료가 필요하지 않다. 당신은 스커트/브림 루프뿐만 아니라 아래 솔리" +"드 레이어의 수에 상관없이 설정할 수 있다. 그것은 물체보다 더 많이 인쇄할 때는 작동하지 않을 것이다." + +#: src/libslic3r/PrintConfig.cpp:1725 +msgid "Temperature variation" +msgstr "온도 변화" + +#: src/libslic3r/PrintConfig.cpp:1726 +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:1736 +msgid "" +"This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder " +"just started heating, and before extruder has finished heating. If Slic3r detects M104 or M190 in your custom " +"codes, such commands will not be prepended automatically so you're free to customize the order of heating " +"commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so " +"you can put a \"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "" +"이 시작 절차는 침대가 목표 온도에 도달하고 압출기가 막 가열을 시작한 직후 및 압출기가 가열을 완료하기 전에 처" +"음에 삽입됩니다. Slic3r이 사용자 지정 코드에서 M104 또는 M190을 감지하면 이러한 명령은 자동으로 추가되지 않으" +"므로 가열 명령 및 기타 사용자 지정 동작의 순서를 자유롭게 사용자 지정할 수 있습니다. 모든 Slic3r 설정에 자리 " +"표시 자 변수를 사용할 수 있으므로 원하는 위치에 \"M109 S [first_layer_temperature]\"명령을 넣을 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:1751 +msgid "" +"This start procedure is inserted at the beginning, after any printer start gcode. This is used to override " +"settings for a specific filament. If Slic3r detects M104, M109, M140 or M190 in your custom codes, such " +"commands will not be prepended automatically so you're free to customize the order of heating commands and " +"other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a " +"\"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is " +"processed in extruder order." +msgstr "" +"이 시작 절차는 프린터가 gcode를 시작한 후 처음에 삽입됩니다. 특정 필라멘트의 설정을 무시하는 데 사용됩니다. " +"Slic3r이 사용자 지정 코드에서 M104, M109, M140 또는 M190을 감지하면 이러한 명령은 자동으로 추가되지 않으므로 " +"가열 명령 및 기타 사용자 지정 동작의 순서를 자유롭게 사용자 지정할 수 있습니다. 모든 Slic3r 설정에 자리 표시 " +"자 변수를 사용할 수 있으므로 원하는 위치에 \"M109 S [first_layer_temperature]\"명령을 넣을 수 있습니다. 여러 " +"개의 압출기가있는 경우 gcode가 압출기 순서로 처리됩니다." + +#: src/libslic3r/PrintConfig.cpp:1766 +msgid "Single Extruder Multi Material" +msgstr "싱글 익스트루더 멀티메터리얼" + +#: src/libslic3r/PrintConfig.cpp:1767 +msgid "The printer multiplexes filaments into a single hot end." +msgstr "프린터는 필라멘트를 하나의 핫 엔드에 멀티플렉싱합니다." + +#: src/libslic3r/PrintConfig.cpp:1772 +msgid "Prime all printing extruders" +msgstr "모든 인쇄 압출기 프라임" + +#: src/libslic3r/PrintConfig.cpp:1773 +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:1778 +msgid "Generate support material" +msgstr "서포트 재료 생성" + +#: src/libslic3r/PrintConfig.cpp:1780 +msgid "Enable support material generation." +msgstr "서포트 재료를 사용합니다." + +#: src/libslic3r/PrintConfig.cpp:1784 +msgid "Auto generated supports" +msgstr "자동 생성 지원" + +#: src/libslic3r/PrintConfig.cpp:1786 +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:1792 +msgid "XY separation between an object and its support" +msgstr "물체와 그 서포트 사이 XY 분리" + +#: src/libslic3r/PrintConfig.cpp:1794 +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 "" +"객체와 그 서포트 사이의 XY 분리. 백분율 (예 : 50 %)로 표시되는 경우 외부 둘레 너비를 기준으로 계산됩니다." + +#: src/libslic3r/PrintConfig.cpp:1804 +msgid "Pattern angle" +msgstr "채움 각도" + +#: src/libslic3r/PrintConfig.cpp:1806 +msgid "Use this setting to rotate the support material pattern on the horizontal plane." +msgstr "이 설정을 사용하여지지 평면 패턴을 수평면으로 회전시킵니다." + +#: src/libslic3r/PrintConfig.cpp:1816 src/libslic3r/PrintConfig.cpp:2421 +msgid "Only create support if it lies on a build plate. Don't create support on a print." +msgstr "그것이 빌드 플레이트에있는 경우에만 지원을 작성하십시오. 인쇄물에 대한 지원을 작성하지 마십시오." + +#: src/libslic3r/PrintConfig.cpp:1822 +msgid "Contact Z distance" +msgstr "Z 거리 문의" + +#: src/libslic3r/PrintConfig.cpp:1824 +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 "" +"물체와 서포트 사이의 수직 거리. 이 값을 0으로 설정하면 Slic3r이 첫 번째 객체 레이어에 브리지 흐름과 속도를 사" +"용하지 못하게됩니다." + +#: src/libslic3r/PrintConfig.cpp:1831 +msgid "soluble" +msgstr "수용성" + +#: src/libslic3r/PrintConfig.cpp:1832 +msgid "detachable" +msgstr "분리 가능" + +#: src/libslic3r/PrintConfig.cpp:1837 +msgid "Enforce support for the first" +msgstr "첫 번째 서포트 더 강화" + +#: src/libslic3r/PrintConfig.cpp:1839 +msgid "" +"Generate support material for the specified number of layers counting from bottom, regardless of whether " +"normal support material is enabled or not and regardless of any angle threshold. This is useful for getting " +"more adhesion of objects having a very thin or poor footprint on the build plate." +msgstr "" +"일반지지 소재의 활성화 여부와 관계없이 각도 임계 값에 관계없이 하단에서부터 세어 지정된 레이어 수에 대한지지 " +"자료를 생성합니다. 이것은 빌드 플레이트에 매우 얇거나 부족한 풋 프린트를 가진 물체를 더 많이 부착 할 때 유용합" +"니다." + +#: src/libslic3r/PrintConfig.cpp:1844 +msgid "Enforce support for the first n layers" +msgstr "첫 번째 n 개의 레이어에 대한 서포트 강화" + +#: src/libslic3r/PrintConfig.cpp:1850 +msgid "Support material/raft/skirt extruder" +msgstr "서포트 재료 / 라프트 / 스커트 익스트루더" + +#: src/libslic3r/PrintConfig.cpp:1852 +msgid "" +"The extruder to use when printing support material, raft and skirt (1+, 0 to use the current extruder to " +"minimize tool changes)." +msgstr "" +"서포트 재료, 라프트 및 스커트를 인쇄 할 때 사용하는 압출기 (도구 변경을 최소화하기 위해 현재 압출기를 사용하려" +"면 1+, 0)." + +#: src/libslic3r/PrintConfig.cpp:1861 +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, otherwise nozzle diameter will be used. If expressed as percentage (for " +"example 90%) it will be computed over layer height." +msgstr "" +"서포트 재료의 수동 압출 폭을 설정하려면이 값을 0이 아닌 값으로 설정하십시오. 0으로 설정하면 설정된 경우 기본 " +"압출 폭이 사용되고 그렇지 않으면 노즐 지름이 사용됩니다. 백분율 (예 : 90 %)로 표현하면 레이어 높이를 기준으로 " +"계산됩니다." + +#: src/libslic3r/PrintConfig.cpp:1869 +msgid "Interface loops" +msgstr "인터페이스 루프" + +#: src/libslic3r/PrintConfig.cpp:1871 +msgid "Cover the top contact layer of the supports with loops. Disabled by default." +msgstr "지지대의 상단 접촉 층을 루프로 덮으십시오. 기본적으로 사용 안 함." + +#: src/libslic3r/PrintConfig.cpp:1876 +msgid "Support material/raft interface extruder" +msgstr "서포트 재료/라프트 인터페이스 익스트루더" + +#: src/libslic3r/PrintConfig.cpp:1878 +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 "" +"서포트 재료 인터페이스를 인쇄 할 때 사용할 익스트루더 (도구 변경을 최소화하기 위해 현재 익스트루더를 사용하려" +"면 1+, 0). 이것은 라프트에도 영향을 미칩니다." + +#: src/libslic3r/PrintConfig.cpp:1885 +msgid "Interface layers" +msgstr "인터페이스 레이어" + +#: src/libslic3r/PrintConfig.cpp:1887 +msgid "Number of interface layers to insert between the object(s) and support material." +msgstr "객체와 서포트 재료 사이에 삽입할 인터페이스 레이어 수입니다." + +#: src/libslic3r/PrintConfig.cpp:1894 +msgid "Interface pattern spacing" +msgstr "인터페이스 패턴 간격" + +#: src/libslic3r/PrintConfig.cpp:1896 +msgid "Spacing between interface lines. Set zero to get a solid interface." +msgstr "인터페이스 라인 간 간격. 솔리드 인터페이스를 가져오려면 0을 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:1905 +msgid "" +"Speed for printing support material interface layers. If expressed as percentage (for example 50%) it will be " +"calculated over support material speed." +msgstr "서포트 재료 인터페이스 레이어 인쇄 속도 백분율(예: 50%)로 표현될 경우 서포트 재료 속도에 따라 계산된다." + +#: src/libslic3r/PrintConfig.cpp:1914 +msgid "Pattern" +msgstr "패턴" + +#: src/libslic3r/PrintConfig.cpp:1916 +msgid "Pattern used to generate support material." +msgstr "서포트 재료를 생성하는 데 사용되는 패턴." + +#: src/libslic3r/PrintConfig.cpp:1922 +msgid "Rectilinear grid" +msgstr "직선 그리드" + +#: src/libslic3r/PrintConfig.cpp:1928 +msgid "Pattern spacing" +msgstr "패턴 간격" + +#: src/libslic3r/PrintConfig.cpp:1930 +msgid "Spacing between support material lines." +msgstr "서포트 재료 라인 사이의 간격." + +#: src/libslic3r/PrintConfig.cpp:1939 +msgid "Speed for printing support material." +msgstr "서포트 재료를 인쇄하는 속도." + +#: src/libslic3r/PrintConfig.cpp:1946 +msgid "Synchronize with object layers" +msgstr "객체 레이어와 동기화" + +#: src/libslic3r/PrintConfig.cpp:1948 +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:1954 +msgid "Overhang threshold" +msgstr "오버행 한계점" + +#: src/libslic3r/PrintConfig.cpp:1956 +msgid "" +"Support material will not be generated for overhangs whose slope angle (90° = vertical) is above the given " +"threshold. In other words, this value represent the most horizontal slope (measured from the horizontal " +"plane) that you can print without support material. Set to zero for automatic detection (recommended)." +msgstr "" +"서포트 재료는 경사각(90° = 수직)이 지정된 임계점보다 높은 압출에 대해서는 생성되지 않는다. 즉, 이 값은 서포트 " +"재료 없이 인쇄할 수 있는 가장 수평 경사(수평면에서 측정됨)를 나타낸다. 자동 감지를 위해 0으로 설정하십시오(권" +"장)." + +#: src/libslic3r/PrintConfig.cpp:1968 +msgid "With sheath around the support" +msgstr "서포트 주변이나 외부로" + +#: src/libslic3r/PrintConfig.cpp:1970 +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:1977 +msgid "" +"Extruder temperature for layers after the first one. Set this to zero to disable temperature control commands " +"in the output." +msgstr "" +"첫 번째 것 이후에 레이어에 대한 더 낮은 온도. 이 값을 0으로 설정하면 출력에서 ​​온도 제어 명령을 비활성화 할 수 " +"있습니다." + +#: src/libslic3r/PrintConfig.cpp:1979 +msgid "Temperature" +msgstr "온도" + +#: src/libslic3r/PrintConfig.cpp:1985 +msgid "Detect thin walls" +msgstr "얇은 벽(walls) 감지" + +#: src/libslic3r/PrintConfig.cpp:1987 +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:1993 +msgid "Threads" +msgstr "스레드(Threads)" + +#: src/libslic3r/PrintConfig.cpp:1994 +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:2006 +msgid "" +"This custom code is inserted right before every extruder change. Note that you can use placeholder variables " +"for all Slic3r settings as well as [previous_extruder] and [next_extruder]." +msgstr "" +"이 사용자 정의 코드는 모든 압출기 변경 직전에 삽입됩니다. [previous_extruder] 및 [next_extruder]뿐 아니라 모" +"든 Slic3r 설정에 대해 자리 표시 자 변수를 사용할 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:2018 +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 regions and get a smoother finish. If left zero, default extrusion " +"width will be used if set, otherwise nozzle diameter will be used. If expressed as percentage (for example " +"90%) it will be computed over layer height." +msgstr "" +"이 값을 0이 아닌 값으로 설정하여 상단 서피스에 대한 infill의 수동 압출 폭을 설정합니다. 얇은 압출 성형물을 사" +"용하여 모든 좁은 지역을 채우고 더 매끄러운 마무리를 할 수 있습니다. 0으로 설정된 경우 기본 압출 폭이 사용되고 " +"그렇지 않으면 노즐 지름이 사용됩니다. 백분율 (예 : 90 %)로 표현하면 레이어 높이를 기준으로 계산됩니다." + +#: src/libslic3r/PrintConfig.cpp:2029 +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 slow down this to get a nicer surface finish. This can be expressed " +"as a percentage (for example: 80%) over the solid infill speed above. Set to zero for auto." +msgstr "" +"상단 솔리드 레이어 인쇄 속도 (솔리드 레이어가 아닌 최상단 외부 레이어에만 적용) 표면을 더 좋게 마무리하려면 속" +"도를 늦추시기 바랍니다. 이것은 위의 고체 충전 속도에 대한 백분율 (예 : 80 %)로 나타낼 수 있습니다. 자동으로 0" +"으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:2043 +msgid "Number of solid layers to generate on top surfaces." +msgstr "상단 표면에 생성 할 솔리드 레이어 수입니다." + +#: src/libslic3r/PrintConfig.cpp:2044 +msgid "Top solid layers" +msgstr "탑 솔리드 레이어" + +#: src/libslic3r/PrintConfig.cpp:2050 +msgid "Speed for travel moves (jumps between distant extrusion points)." +msgstr "이동 속도 (먼 돌출 점 사이의 점프)." + +#: src/libslic3r/PrintConfig.cpp:2058 +msgid "Use firmware retraction" +msgstr "펌웨어 철회" + +#: src/libslic3r/PrintConfig.cpp:2059 +msgid "" +"This experimental setting uses G10 and G11 commands to have the firmware handle the retraction. This is only " +"supported in recent Marlin." +msgstr "" +"이 실험 설정은 G10 및 G11 명령을 사용하여 펌웨어에서 취소를 처리하도록합니다. 이것은 최근의 말린에서만 지원됩" +"니다." + +#: src/libslic3r/PrintConfig.cpp:2065 +msgid "Use relative E distances" +msgstr "상대적인 E 거리 사용" + +#: src/libslic3r/PrintConfig.cpp:2066 +msgid "" +"If your firmware requires relative E values, check this, otherwise leave it unchecked. Most firmwares use " +"absolute values." +msgstr "" +"펌웨어에 상대 E 값이 필요한 경우이 값을 선택하고, 그렇지 않으면 선택하지 마십시오. 대부분의 회사는 절대 값을 " +"사용합니다." + +#: src/libslic3r/PrintConfig.cpp:2072 +msgid "Use volumetric E" +msgstr "용적 E 사용" + +#: src/libslic3r/PrintConfig.cpp:2073 +msgid "" +"This experimental setting uses outputs the E values in cubic millimeters instead of linear millimeters. If " +"your firmware doesn't already know filament diameter(s), you can put commands like 'M200 " +"D[filament_diameter_0] T0' in your start G-code in order to turn volumetric mode on and use the filament " +"diameter associated to the filament selected in Slic3r. This is only supported in recent Marlin." +msgstr "" +"이 실험 설정은 선형 밀리미터 대신에 입방 밀리미터 단위의 E 값을 출력으로 사용합니다. 펌웨어가 필라멘트 직경을 " +"모르는 경우 볼륨 모드를 켜고 선택한 필라멘트와 연결된 필라멘트 직경을 사용하기 위해 시작 G 코드에 'M200 D " +"[filament_diameter_0] T0'과 같은 명령을 입력 할 수 있습니다 Slic3r. 이것은 최근의 말린에서만 지원됩니다." + +#: src/libslic3r/PrintConfig.cpp:2083 +msgid "Enable variable layer height feature" +msgstr "가변 레이어 높이 기능 사용" + +#: src/libslic3r/PrintConfig.cpp:2084 +msgid "" +"Some printers or printer setups may have difficulties printing with a variable layer height. Enabled by " +"default." +msgstr "" +"일부 프린터 또는 프린터 설정은 가변 레이어 높이로 인쇄하는 데 어려움이있을 수 있습니다. 기본적으로 사용됩니다." + +#: src/libslic3r/PrintConfig.cpp:2090 +msgid "Wipe while retracting" +msgstr "수축시 닦아내십시오" + +#: src/libslic3r/PrintConfig.cpp:2091 +msgid "This flag will move the nozzle while retracting to minimize the possible blob on leaky extruders." +msgstr "이 플래그는 누출된 리트랙싱의 블럽 가능성을 최소화하기 위해 수축하는 동안 노즐을 이동시킨다." + +#: src/libslic3r/PrintConfig.cpp:2098 +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:2104 +msgid "Purging volumes - load/unload volumes" +msgstr "볼륨 삭제 - 볼륨 로드/언로드" + +#: src/libslic3r/PrintConfig.cpp:2105 +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:2111 +msgid "Purging volumes - matrix" +msgstr "볼륨 삭제 - 행렬" + +#: src/libslic3r/PrintConfig.cpp:2112 +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:2121 +msgid "Position X" +msgstr "X축 위치" + +#: src/libslic3r/PrintConfig.cpp:2122 +msgid "X coordinate of the left front corner of a wipe tower" +msgstr "와이프 타워의 좌측 전면 모서리의 X 좌표" + +#: src/libslic3r/PrintConfig.cpp:2128 +msgid "Position Y" +msgstr "Y축 위치" + +#: src/libslic3r/PrintConfig.cpp:2129 +msgid "Y coordinate of the left front corner of a wipe tower" +msgstr "와이퍼 작동 타워의 좌측 전방 모서리의 Y 좌표" + +#: src/libslic3r/PrintConfig.cpp:2136 +msgid "Width of a wipe tower" +msgstr "와이퍼 타워 폭" + +#: src/libslic3r/PrintConfig.cpp:2142 +msgid "Wipe tower rotation angle" +msgstr "와이퍼 타워 회전각도" + +#: src/libslic3r/PrintConfig.cpp:2143 +msgid "Wipe tower rotation angle with respect to x-axis " +msgstr "X 축에 대한 와이퍼 타워 각도 " + +#: src/libslic3r/PrintConfig.cpp:2144 src/libslic3r/PrintConfig.cpp:2565 +msgid "degrees" +msgstr "각도" + +#: src/libslic3r/PrintConfig.cpp:2150 +msgid "Wipe into this object's infill" +msgstr "이 오브젝트의 채우기로 지우기" + +#: src/libslic3r/PrintConfig.cpp:2151 +msgid "" +"Purging after toolchange will 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:2158 +msgid "Wipe into this object" +msgstr "이 개체로 지우기" + +#: src/libslic3r/PrintConfig.cpp:2159 +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:2165 +msgid "Maximal bridging distance" +msgstr "최대 브리징 거리" + +#: src/libslic3r/PrintConfig.cpp:2166 +msgid "Maximal distance between supports on sparse infill sections. " +msgstr "드문드문하 인필 섹션에서 지지대 사이의 최대 거리. " + +#: src/libslic3r/PrintConfig.cpp:2172 +msgid "XY Size Compensation" +msgstr "XY 크기 보정" + +#: src/libslic3r/PrintConfig.cpp:2174 +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 "" +"XY 평면에서 설정된 값(음수 = 안, 양 = 바깥쪽)에 따라 객체가 증가/정격된다. 이는 구멍 크기를 미세 조정하는데 유" +"용할 수 있다." + +#: src/libslic3r/PrintConfig.cpp:2182 +msgid "Z offset" +msgstr "Z 오프셋" + +#: src/libslic3r/PrintConfig.cpp:2183 +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 example, if your endstop zero actually leaves the nozzle 0.3mm far " +"from the print bed, set this to -0.3 (or fix your endstop)." +msgstr "" +"이 값은 출력 G-코드의 모든 Z 좌표에서 추가(또는 감산)된다. 예를 들어, 엔드 스톱 0이 실제로 노즐을 프린트 베드" +"에서 0.3mm 떨어진 곳에 둔 경우, 이를 -0.3(또는 엔드 스톱을 고정)으로 설정하십시오." + +#: src/libslic3r/PrintConfig.cpp:2200 +msgid "Display width" +msgstr "디스플레이 너비" + +#: src/libslic3r/PrintConfig.cpp:2201 +msgid "Width of the display" +msgstr "디스플레이의 폭입니다" + +#: src/libslic3r/PrintConfig.cpp:2206 +msgid "Display height" +msgstr "표시 높이" + +#: src/libslic3r/PrintConfig.cpp:2207 +msgid "Height of the display" +msgstr "디스플레이의 높이" + +#: src/libslic3r/PrintConfig.cpp:2212 +msgid "Number of pixels in" +msgstr "의 픽셀 수" + +#: src/libslic3r/PrintConfig.cpp:2214 +msgid "Number of pixels in X" +msgstr "X의 픽셀 수" + +#: src/libslic3r/PrintConfig.cpp:2220 +msgid "Number of pixels in Y" +msgstr "Y의 픽셀 수" + +#: src/libslic3r/PrintConfig.cpp:2225 +msgid "Display orientation" +msgstr "디스플레이 방향" + +#: src/libslic3r/PrintConfig.cpp:2226 +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 "" +"SLA 프린터 내에서 실제 LCD 디스플레이 방향을 설정 합니다. 세로 모드는 디스플레이 너비 및 높이 매개 변수의 의미" +"를 반전 하 고 출력 이미지는 90도 회전 합니다." + +#: src/libslic3r/PrintConfig.cpp:2232 +msgid "Landscape" +msgstr "가로" + +#: src/libslic3r/PrintConfig.cpp:2233 +msgid "Portrait" +msgstr "세로모드" + +#: src/libslic3r/PrintConfig.cpp:2238 +msgid "Fast" +msgstr "빠른" + +#: src/libslic3r/PrintConfig.cpp:2239 +msgid "Fast tilt" +msgstr "빠른 기울기" + +#: src/libslic3r/PrintConfig.cpp:2240 +msgid "Time of the fast tilt" +msgstr "기울이기 시간" + +#: src/libslic3r/PrintConfig.cpp:2247 +msgid "Slow" +msgstr "느리게" + +#: src/libslic3r/PrintConfig.cpp:2248 +msgid "Slow tilt" +msgstr "슬로우 틸트" + +#: src/libslic3r/PrintConfig.cpp:2249 +msgid "Time of the slow tilt" +msgstr "느린 기울기의 시간" + +#: src/libslic3r/PrintConfig.cpp:2256 +msgid "Area fill" +msgstr "영역 채우기" + +#: src/libslic3r/PrintConfig.cpp:2257 +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 "" +"침대 영역의 비율입니다. \n" +"인쇄 영역이 지정 된 값을 초과 하면 \n" +"그런 다음 느린 기울기가 사용 됩니다, 그렇지 않으면-빠른 기울기가 됩니다" + +#: src/libslic3r/PrintConfig.cpp:2264 src/libslic3r/PrintConfig.cpp:2265 src/libslic3r/PrintConfig.cpp:2266 +msgid "Printer scaling correction" +msgstr "프린터 스케일링 보정" + +#: src/libslic3r/PrintConfig.cpp:2272 src/libslic3r/PrintConfig.cpp:2273 +msgid "Printer absolute correction" +msgstr "프린터 절대 보정" + +#: src/libslic3r/PrintConfig.cpp:2274 +msgid "Will inflate or deflate the sliced 2D polygons according to the sign of the correction." +msgstr "교정 기호에 따라 슬라이스된 2D 폴리곤을 팽창 하거나 수축 합니다." + +#: src/libslic3r/PrintConfig.cpp:2280 src/libslic3r/PrintConfig.cpp:2281 +msgid "Printer gamma correction" +msgstr "프린터 감마 보정" + +#: src/libslic3r/PrintConfig.cpp:2282 +msgid "This will apply a gamm correction to the rasterized 2D polygons." +msgstr "그러면 래스터화된 2d 다각형 폴리고 보정이 적용 됩니다." + +#: src/libslic3r/PrintConfig.cpp:2291 src/libslic3r/PrintConfig.cpp:2292 +msgid "Initial layer height" +msgstr "초기 레이어 높이" + +#: src/libslic3r/PrintConfig.cpp:2298 +msgid "Faded layers" +msgstr "페이드 레이어" + +#: src/libslic3r/PrintConfig.cpp:2299 +msgid "Number of the layers needed for the exposure time fade from initial exposure time to the exposure time" +msgstr "노출 시간에 필요한 레이어 수는 초기 노출 시간에서 노출 시간으로 페이드" + +#: src/libslic3r/PrintConfig.cpp:2306 src/libslic3r/PrintConfig.cpp:2307 +msgid "Exposure time" +msgstr "노출 시간" + +#: src/libslic3r/PrintConfig.cpp:2313 src/libslic3r/PrintConfig.cpp:2314 +msgid "Initial exposure time" +msgstr "초기 노출 시간" + +#: src/libslic3r/PrintConfig.cpp:2320 src/libslic3r/PrintConfig.cpp:2321 +msgid "Correction for expansion" +msgstr "확장 보정" + +#: src/libslic3r/PrintConfig.cpp:2327 +msgid "SLA print material notes" +msgstr "SLA 인쇄 재료 참고 사항" + +#: src/libslic3r/PrintConfig.cpp:2328 +msgid "You can put your notes regarding the SLA print material here." +msgstr "여기에서 SLA 인쇄 자료에 대한 메모를 넣을 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:2336 src/libslic3r/PrintConfig.cpp:2347 +msgid "Default SLA material profile" +msgstr "기본 SLA 재질 프로 파일" + +#: src/libslic3r/PrintConfig.cpp:2358 +msgid "Generate supports" +msgstr "지원 생성" + +#: src/libslic3r/PrintConfig.cpp:2360 +msgid "Generate supports for the models" +msgstr "모델에 대한 지원 생성" + +#: src/libslic3r/PrintConfig.cpp:2365 +msgid "Support head front diameter" +msgstr "서포트 헤드 전면 지름" + +#: src/libslic3r/PrintConfig.cpp:2367 +msgid "Diameter of the pointing side of the head" +msgstr "헤드 포인팅 측면 지름" + +#: src/libslic3r/PrintConfig.cpp:2374 +msgid "Support head penetration" +msgstr "서포트 헤드 관통" + +#: src/libslic3r/PrintConfig.cpp:2376 +msgid "How much the pinhead has to penetrate the model surface" +msgstr "핀 헤드가 모델 표면에 침투 하는 정도" + +#: src/libslic3r/PrintConfig.cpp:2383 +msgid "Support head width" +msgstr "서포트 헤드 폭" + +#: src/libslic3r/PrintConfig.cpp:2385 +msgid "Width from the back sphere center to the front sphere center" +msgstr "뒤쪽 구 중심에서 앞쪽 구 중심 까지의 폭입니다" + +#: src/libslic3r/PrintConfig.cpp:2393 +msgid "Support pillar diameter" +msgstr "서포트 기둥 지름" + +#: src/libslic3r/PrintConfig.cpp:2395 +msgid "Diameter in mm of the support pillars" +msgstr "서포트 기둥의 지름 (mm)" + +#: src/libslic3r/PrintConfig.cpp:2403 +msgid "Support pillar connection mode" +msgstr "기둥 연결 모드 지원" + +#: src/libslic3r/PrintConfig.cpp:2404 +msgid "" +"Controls the bridge type between two neigboring 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 "" +"두 개의 neigboring 기둥 사이의 브릿지 유형을 제어 합니다. 두 기둥의 거리에 따라 자동으로 처음 두 사이를 전환 " +"하는 지그재그, 크로스 (지그재그 더블 지그재그) 또는 동적 수 있습니다." + +#: src/libslic3r/PrintConfig.cpp:2412 +msgid "Zig-Zag" +msgstr "지그재그" + +#: src/libslic3r/PrintConfig.cpp:2413 +msgid "Cross" +msgstr "크로스" + +#: src/libslic3r/PrintConfig.cpp:2414 +msgid "Dynamic" +msgstr "동적" + +#: src/libslic3r/PrintConfig.cpp:2426 +msgid "Pillar widening factor" +msgstr "기둥 확장 계수" + +#: src/libslic3r/PrintConfig.cpp:2428 +msgid "" +"Merging bridges or pillars into another pillars can increase the radius. Zero means no increase, one means " +"full increase." +msgstr "" +"브릿지 또는 기둥을 다른 기둥에 병합 하면 반지름을 늘릴 수 있습니다. 0은 증가 없음을 의미 하나는 전체 증가를 의" +"미 합니다." + +#: src/libslic3r/PrintConfig.cpp:2437 +msgid "Support base diameter" +msgstr "서포트 베이스 지름" + +#: src/libslic3r/PrintConfig.cpp:2439 +msgid "Diameter in mm of the pillar base" +msgstr "기둥 베이스의 mm 직경" + +#: src/libslic3r/PrintConfig.cpp:2447 +msgid "Support base height" +msgstr "서포트 기준 높이" + +#: src/libslic3r/PrintConfig.cpp:2449 +msgid "The height of the pillar base cone" +msgstr "서포트 베이스 원추의 높이" + +#: src/libslic3r/PrintConfig.cpp:2456 +msgid "Critical angle" +msgstr "임계 각도" + +#: src/libslic3r/PrintConfig.cpp:2458 +msgid "The default angle for connecting support sticks and junctions." +msgstr "서포트 스틱과 접합부를 연결 하는 기본 각도입니다." + +#: src/libslic3r/PrintConfig.cpp:2466 +msgid "Max bridge length" +msgstr "최대 브리지 길이" + +#: src/libslic3r/PrintConfig.cpp:2468 +msgid "The max length of a bridge" +msgstr "브릿지의 최대 길이" + +#: src/libslic3r/PrintConfig.cpp:2475 +msgid "Max pillar linking distance" +msgstr "최대 기둥 연결 거리" + +#: src/libslic3r/PrintConfig.cpp:2477 +msgid "" +"The max distance of two pillars to get linked with each other. A zero value will prohibit pillar cascading." +msgstr "서로 연결 되는 두기둥의 최대 거리. 0 값은 기둥을 계단식으로 금지 합니다." + +#: src/libslic3r/PrintConfig.cpp:2485 +msgid "Object elevation" +msgstr "객체 고도" + +#: src/libslic3r/PrintConfig.cpp:2487 +msgid "How much the supports should lift up the supported object." +msgstr "서포트 되는 개체를 서포트 해야 하는 정도입니다." + +#: src/libslic3r/PrintConfig.cpp:2497 +msgid "This is a relative measure of support points density." +msgstr "이는 서포트 점 밀도의 상대적인 척도입니다." + +#: src/libslic3r/PrintConfig.cpp:2503 +msgid "Minimal distance of the support points" +msgstr "서포트 지점의 최소 거리" + +#: src/libslic3r/PrintConfig.cpp:2505 +msgid "No support points will be placed closer than this threshold." +msgstr "서포트 지점은 이 임계값 보다 더 가깝게 배치 되지 않습니다." + +#: src/libslic3r/PrintConfig.cpp:2511 +msgid "Use pad" +msgstr "패드 사용" + +#: src/libslic3r/PrintConfig.cpp:2513 +msgid "Add a pad underneath the supported model" +msgstr "서포트 되는 모델 아래에 패드 추가" + +#: src/libslic3r/PrintConfig.cpp:2518 +msgid "Pad wall thickness" +msgstr "패드 벽 두께" + +#: src/libslic3r/PrintConfig.cpp:2520 +msgid "The thickness of the pad and its optional cavity walls." +msgstr "패드의 두께와 옵션 캐비티 벽." + +#: src/libslic3r/PrintConfig.cpp:2528 +msgid "Pad wall height" +msgstr "패드 벽 높이" + +#: src/libslic3r/PrintConfig.cpp:2529 +msgid "Defines the cavity depth. Set to zero to disable the cavity." +msgstr "캐비티 깊이를 정의 합니다. 캐비티를 비활성화 하려면 0으로 설정 합니다." + +#: src/libslic3r/PrintConfig.cpp:2539 +msgid "Max merge distance" +msgstr "최대 병합 거리" + +#: src/libslic3r/PrintConfig.cpp:2541 +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:2552 +msgid "Pad edge radius" +msgstr "패드 가장자리 반경" + +#: src/libslic3r/PrintConfig.cpp:2561 +msgid "Pad wall slope" +msgstr "패드 벽 경사" + +#: src/libslic3r/PrintConfig.cpp:2563 +msgid "The slope of the pad wall relative to the bed plane. 90 degrees means straight walls." +msgstr "침대 평면을 기준으로 하는 패드 벽의 기울기입니다. 90도는 직선 벽을 의미 합니다." + +#: src/libslic3r/PrintConfig.cpp:2924 +msgid "Export SVG" +msgstr "내보내기 SVG" + +#: src/libslic3r/PrintConfig.cpp:2925 +msgid "Export the model(s) as OBJ." +msgstr "모델을 OBJ로 내보냅니다." + +#: src/libslic3r/PrintConfig.cpp:2936 +msgid "Export SLA" +msgstr "STL로 내보내기" + +#: src/libslic3r/PrintConfig.cpp:2937 +msgid "Slice the model and export SLA printing layers as PNG." +msgstr "모델을 분할하고 SLA 인쇄 레이어를 PNG로 내보냅니다." + +#: src/libslic3r/PrintConfig.cpp:2942 +msgid "Export 3MF" +msgstr "3MF 내보내기" + +#: src/libslic3r/PrintConfig.cpp:2943 +msgid "Export the model(s) as 3MF." +msgstr "모델을 3MF로 내보냅니다." + +#: src/libslic3r/PrintConfig.cpp:2947 +msgid "Export AMF" +msgstr "AMF 내보내기" + +#: src/libslic3r/PrintConfig.cpp:2948 +msgid "Export the model(s) as AMF." +msgstr "모델을 AMF로 내보냅니다." + +#: src/libslic3r/PrintConfig.cpp:2952 +msgid "Export STL" +msgstr "STL 내보내기" + +#: src/libslic3r/PrintConfig.cpp:2953 +msgid "Export the model(s) as STL." +msgstr "모델을 STL로 내보냅니다." + +#: src/libslic3r/PrintConfig.cpp:2958 +msgid "Slice the model and export toolpaths as G-code." +msgstr "모델을 슬라이스하고 공구 경로를 G 코드로 내보냅니다." + +#: src/libslic3r/PrintConfig.cpp:2963 +msgid "Slice" +msgstr "슬라이스" + +#: src/libslic3r/PrintConfig.cpp:2964 +msgid "Slice the model as FFF or SLA based on the printer_technology configuration value." +msgstr "Printer_technology 구성 값을 기반으로 모델을 FFF 또는 SLA로 조각화 합니다." + +#: src/libslic3r/PrintConfig.cpp:2969 +msgid "Help" +msgstr "도움말" + +#: src/libslic3r/PrintConfig.cpp:2970 +msgid "Show this help." +msgstr "이 도움말을 표시 합니다." + +#: src/libslic3r/PrintConfig.cpp:2975 +msgid "Help (FFF options)" +msgstr "도움말 (FFF 옵션)" + +#: src/libslic3r/PrintConfig.cpp:2976 +msgid "Show the full list of print/G-code configuration options." +msgstr "인쇄/G 코드 구성 옵션의 전체 목록을 표시 합니다." + +#: src/libslic3r/PrintConfig.cpp:2980 +msgid "Help (SLA options)" +msgstr "도움말 (SLA 옵션)" + +#: src/libslic3r/PrintConfig.cpp:2981 +msgid "Show the full list of SLA print configuration options." +msgstr "SLA 인쇄 구성 옵션의 전체 목록을 표시 합니다." + +#: src/libslic3r/PrintConfig.cpp:2985 +msgid "Output Model Info" +msgstr "출력 모델 정보" + +#: src/libslic3r/PrintConfig.cpp:2986 +msgid "Write information about the model to the console." +msgstr "모델에 대한 정보를 콘솔에 씁니다." + +#: src/libslic3r/PrintConfig.cpp:2990 +msgid "Save config file" +msgstr "구성 파일 저장" + +#: src/libslic3r/PrintConfig.cpp:2991 +msgid "Save configuration to the specified file." +msgstr "지정 된 파일에 구성을 저장 합니다." + +#: src/libslic3r/PrintConfig.cpp:3001 +msgid "Align XY" +msgstr "XY 정렬" + +#: src/libslic3r/PrintConfig.cpp:3002 +msgid "Align the model to the given point." +msgstr "모델을 지정된 점에 맞춥니다." + +#: src/libslic3r/PrintConfig.cpp:3007 +msgid "Cut model at the given Z." +msgstr "지정된 Z에서 모델을 잘라냅니다." + +#: src/libslic3r/PrintConfig.cpp:3028 +msgid "Center" +msgstr "중앙" + +#: src/libslic3r/PrintConfig.cpp:3029 +msgid "Center the print around the given center." +msgstr "지정된 중심을 중심으로 인쇄 합니다." + +#: src/libslic3r/PrintConfig.cpp:3033 +msgid "Don't arrange" +msgstr "준비하지 마십시오" + +#: src/libslic3r/PrintConfig.cpp:3034 +msgid "Do not rearrange the given models before merging and keep their original XY coordinates." +msgstr "병합하기 전에 지정된 모델을 재정렬하고 원래 XY 좌표를 유지하지 마십시오." + +#: src/libslic3r/PrintConfig.cpp:3037 +msgid "Duplicate" +msgstr "복사" + +#: src/libslic3r/PrintConfig.cpp:3038 +msgid "Multiply copies by this factor." +msgstr "이 계수로 복사본을 곱합니다." + +#: src/libslic3r/PrintConfig.cpp:3042 +msgid "Duplicate by grid" +msgstr "모눈에 따라 복제" + +#: src/libslic3r/PrintConfig.cpp:3043 +msgid "Multiply copies by creating a grid." +msgstr "격자를 만들어 복사본을 곱합니다." + +#: src/libslic3r/PrintConfig.cpp:3046 +msgid "Merge" +msgstr "병합" + +#: src/libslic3r/PrintConfig.cpp:3047 +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:3052 +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:3056 +msgid "Rotation angle around the Z axis in degrees." +msgstr "Z 축 주위의 회전 각도입니다." + +#: src/libslic3r/PrintConfig.cpp:3060 +msgid "Rotate around X" +msgstr "X 주위 회전" + +#: src/libslic3r/PrintConfig.cpp:3061 +msgid "Rotation angle around the X axis in degrees." +msgstr "X 축을 중심으로 회전 각도 (도)입니다." + +#: src/libslic3r/PrintConfig.cpp:3065 +msgid "Rotate around Y" +msgstr "Y 주위로 회전" + +#: src/libslic3r/PrintConfig.cpp:3066 +msgid "Rotation angle around the Y axis in degrees." +msgstr "Y 축을 중심으로 회전 각도 (도)입니다." + +#: src/libslic3r/PrintConfig.cpp:3071 +msgid "Scaling factor or percentage." +msgstr "배율 인수 또는 백분율입니다." + +#: src/libslic3r/PrintConfig.cpp:3076 +msgid "Detect unconnected parts in the given model(s) and split them into separate objects." +msgstr "지정 된 모델에서 연결 되지 않은 부품을 감지 하 여 별도의 객체로 분할 합니다." + +#: src/libslic3r/PrintConfig.cpp:3079 +msgid "Scale to Fit" +msgstr "크기에 맞게 조정" + +#: src/libslic3r/PrintConfig.cpp:3080 +msgid "Scale to fit the given volume." +msgstr "지정 된 볼륨에 맞게 크기를 조정 합니다." + +#: src/libslic3r/PrintConfig.cpp:3089 +msgid "Ignore non-existent config files" +msgstr "존재 하지 않는 구성 파일 무시" + +#: src/libslic3r/PrintConfig.cpp:3090 +msgid "Do not fail if a file supplied to --load does not exist." +msgstr "로드에 제공 된 파일이 없는 경우 실패 하지 않습니다." + +#: src/libslic3r/PrintConfig.cpp:3093 +msgid "Load config file" +msgstr "구성 파일 로드" + +#: src/libslic3r/PrintConfig.cpp:3094 +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:3097 +msgid "Output File" +msgstr "출력파일" + +#: src/libslic3r/PrintConfig.cpp:3098 +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:3108 +msgid "Data directory" +msgstr "데이터 디렉터리" + +#: src/libslic3r/PrintConfig.cpp:3109 +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:3112 +msgid "Logging level" +msgstr "로깅 수준" + +#: src/libslic3r/PrintConfig.cpp:3113 +msgid "" +"Messages with severity lower or eqal to the loglevel will be printed out. 0:trace, 1:debug, 2:info, 3:" +"warning, 4:error, 5:fatal" +msgstr "심각도가 낮은 또는 eqal로 loglevel으로 메시지가 인쇄 됩니다. 추적, 1: 디버그, 2: 경고, 오류 5: 치명적" + +#: src/libslic3r/GCode/PreviewData.cpp:176 +msgid "Mixed" +msgstr "뒤석음" + +#: src/libslic3r/GCode/PreviewData.cpp:396 +msgid "Height (mm)" +msgstr "높이 (mm)" + +#: src/libslic3r/GCode/PreviewData.cpp:398 +msgid "Width (mm)" +msgstr "폭 (mm)" + +#: src/libslic3r/GCode/PreviewData.cpp:400 +msgid "Speed (mm/s)" +msgstr "속도 (mm/s)" + +#: src/libslic3r/GCode/PreviewData.cpp:402 +msgid "Volumetric flow rate (mm3/s)" +msgstr "용적 유량값 (mm3/s)" + +#: src/libslic3r/GCode/PreviewData.cpp:491 +msgid "Default print color" +msgstr "기본 인쇄 색상" + +#: src/libslic3r/GCode/PreviewData.cpp:495 +#, c-format +msgid "up to %.2f mm" +msgstr "최대%.2f mm" + +#: src/libslic3r/GCode/PreviewData.cpp:499 +#, c-format +msgid "above %.2f mm" +msgstr "above %.2f mm" + +#: src/libslic3r/GCode/PreviewData.cpp:504 +#, c-format +msgid "%.2f - %.2f mm" +msgstr "%.2f - %.2f mm" diff --git a/resources/localization/list.txt b/resources/localization/list.txt index 82f109df444..fdffaf9d9ab 100644 --- a/resources/localization/list.txt +++ b/resources/localization/list.txt @@ -9,17 +9,14 @@ src/slic3r/GUI/ConfigWizard.cpp src/slic3r/GUI/Field.cpp src/slic3r/GUI/FirmwareDialog.cpp src/slic3r/GUI/GLCanvas3D.cpp -src/slic3r/GUI/GLCanvas3DManager.cpp src/slic3r/GUI/Gizmos/GLGizmoCut.cpp src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp src/slic3r/GUI/Gizmos/GLGizmoMove.cpp src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp src/slic3r/GUI/Gizmos/GLGizmoScale.cpp src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp -src/slic3r/GUI/Gizmos/GLGizmosManager.cpp src/slic3r/GUI/GUI.cpp src/slic3r/GUI/GUI_App.cpp -src/slic3r/GUI/GUI_ObjectLayers.cpp src/slic3r/GUI/GUI_ObjectList.cpp src/slic3r/GUI/GUI_ObjectManipulation.cpp src/slic3r/GUI/GUI_ObjectSettings.cpp @@ -27,7 +24,6 @@ src/slic3r/GUI/GUI_Preview.cpp src/slic3r/GUI/KBShortcutsDialog.cpp src/slic3r/GUI/MainFrame.cpp src/slic3r/GUI/MsgDialog.cpp -src/slic3r/GUI/OptionsGroup.cpp src/slic3r/GUI/Plater.cpp src/slic3r/GUI/Preferences.cpp src/slic3r/GUI/Preset.cpp @@ -36,7 +32,6 @@ src/slic3r/GUI/PresetHints.cpp src/slic3r/GUI/PrintHostDialogs.cpp src/slic3r/GUI/ProgressStatusBar.cpp src/slic3r/GUI/RammingChart.cpp -src/slic3r/GUI/Selection.cpp src/slic3r/GUI/SysInfoDialog.cpp src/slic3r/GUI/Tab.cpp src/slic3r/GUI/Tab.hpp diff --git a/resources/localization/pl/PrusaSlicer.mo b/resources/localization/pl/PrusaSlicer.mo index e7683ee03c2..3b7a5c25e48 100644 Binary files a/resources/localization/pl/PrusaSlicer.mo and b/resources/localization/pl/PrusaSlicer.mo differ diff --git a/resources/localization/pl/PrusaSlicer_pl.po b/resources/localization/pl/PrusaSlicer_pl.po index e09c143c2ec..e358bd12b67 100644 --- a/resources/localization/pl/PrusaSlicer_pl.po +++ b/resources/localization/pl/PrusaSlicer_pl.po @@ -5,24 +5,167 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || n%10 == 1 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 12 && n%100 <= 14)) ? 2 : 3);\n" -"X-Generator: PhraseApp (phraseapp.com)\n" +"X-Generator: Poedit 2.0.8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Oleksandra Iushchenko \n" +"Language-Team: \n" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"and it has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"i ma następujące niezapisane zmiany:" + +#: xs/src/slic3r/GUI/Tab.cpp:2152 +msgid "" +"\n" +"\n" +"Discard changes and continue anyway?" +msgstr "" +"\n" +"\n" +"Odrzucić zmiany i kontynuować?" + +#: xs/src/slic3r/GUI/Tab.cpp:2150 +msgid "" +"\n" +"\n" +"has the following unsaved changes:" +msgstr "" +"\n" +"\n" +"ma następujące niezapisane zmiany:" + +#: xs/src/slic3r/GUI/Tab.cpp:2149 +msgid "" +"\n" +"\n" +"is not compatible with printer\n" +msgstr "" +"\n" +"\n" +"nie jest kompatybilne z drukarką\n" + +#: src/slic3r/GUI/PresetHints.cpp:36 +msgid "" +"\n" +"During the other layers, fan " +msgstr "" +"\n" +"Na pozostałych warstwach, wentylator " #: src/slic3r/GUI/PresetHints.cpp:39 -msgid "\nDuring the other layers, fan" -msgstr "\nNa pozostałych warstwach, wentylator" +msgid "" +"\n" +"During the other layers, fan" +msgstr "" +"\n" +"Na pozostałych warstwach, wentylator" #: src/slic3r/GUI/PresetHints.cpp:35 -msgid "\nIf estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." -msgstr "\nJeśli szacowany czas jest wyższy, ale poniżej ~%1%s, wentylator będzie pracował z proporcjonalnie zmniejszaną prędkością poniędzy %2%%% a %3%%%." +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." +msgstr "" +"\n" +"Jeśli szacowany czas jest wyższy, ale poniżej ~%1%s, wentylator będzie pracował z proporcjonalnie zmniejszaną prędkością poniędzy %2%%% a %3%%%." + +#: src/slic3r/GUI/PresetHints.cpp:32 +#, c-format +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%ds, fan will run at a proportionally decreasing speed between %d%% and %d%%." +msgstr "" +"\n" +"Jeśli szacowany czas jest wyższy, ale poniżej ~%ds, wentylator będzie pracował z proporcjonalnie zmniejszaną prędkością poniędzy %d%% a %d%%." + +#: lib/Slic3r/GUI/Plater.pm:1019 +msgid "" +"\n" +"Non-positive value." +msgstr "" +"\n" +"Wartość ujemna." + +#: lib/Slic3r/GUI/Plater.pm:1020 +msgid "" +"\n" +"Not a numeric value." +msgstr "" +"\n" +"Wartość nie jest liczbą." + +#: src/slic3r/GUI/MainFrame.cpp:55 +msgid " - Remember to check for updates at http://github.com/prusa3d/slic3r/releases" +msgstr " - Pamiętaj aby sprawdzać aktualizacje na http://github.com/prusa3d/slic3r/releases" + +#: src/slic3r/GUI/Tab.cpp:3239 +msgid " as:" +msgstr " jako:" + +#: src/slic3r/GUI/PresetHints.cpp:228 +#, c-format +msgid " at filament speed %3.2f mm/s." +msgstr " z prędkością filamentu %3.2f mm/s." + +#: src/slic3r/GUI/Tab.cpp:1737 +msgid " Browse " +msgstr " Przeglądaj " + +#: src/slic3r/GUI/MainFrame.cpp:677 +msgid " file as:" +msgstr " plik jako:" + +#: src/slic3r/GUI/PresetHints.cpp:217 +msgid " flow rate is maximized " +msgstr "przepływ osiąga wartości szczytowe " + +#: src/slic3r/GUI/Tab.cpp:1358 +#, no-c-format +msgid "" +" infill pattern is not supposed to work at 100% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +" wzór wypełnienia nie działa z gęstością 100%.\n" +"\n" +"Zmienić wzór wypełnienia na linie równoległe?" -#: src/slic3r/GUI/MainFrame.cpp:61 -msgid " - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/releases" -msgstr " - Pamiętaj, aby sprawdzać aktualizacje na http://github.com/prusa3d/PrusaSlicer/releases" +#: xs/src/slic3r/GUI/Tab.cpp:2131 +msgid " preset\n" +msgstr " zestaw ustawień\n" + +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid " preset" +msgstr " zestaw ustawień" + +#: src/slic3r/GUI/Tab.cpp:2938 +msgid " Preset" +msgstr " Zestaw ustawień" + +#: src/slic3r/GUI/Tab.cpp:1818 src/slic3r/GUI/Tab.cpp:2019 +#: src/slic3r/GUI/Tab.cpp:2988 +msgid " Set " +msgstr "Ustaw " + +#: src/slic3r/GUI/Tab.cpp:2936 +msgid " the selected preset?" +msgstr " wybrany zestaw ustawień?" #: src/slic3r/GUI/MainFrame.cpp:727 msgid " was successfully sliced." msgstr " został pomyślnie pocięty." +#: src/slic3r/GUI/PresetHints.cpp:222 +msgid " with a volumetric rate " +msgstr "ze współczynnikiem objętościowym " + #: src/libslic3r/PrintConfig.cpp:179 src/libslic3r/PrintConfig.cpp:745 #: src/libslic3r/PrintConfig.cpp:1154 src/libslic3r/PrintConfig.cpp:1217 #: src/libslic3r/PrintConfig.cpp:1462 src/libslic3r/PrintConfig.cpp:2260 @@ -31,7 +174,7 @@ msgid "%" msgstr "%" #: src/libslic3r/GCode/PreviewData.cpp:504 -#, possible-c-format +#, c-format msgid "%.2f - %.2f mm" msgstr "%.2f - %.2f mm" @@ -44,99 +187,112 @@ msgstr "%1% - Kopiuj" msgid "%1% Preset" msgstr "%1% Zestaw ustawień" -#: src/slic3r/GUI/Plater.cpp:3831 -msgid "%1% printer was active at the time the target Undo / Redo snapshot was taken. Switching to %1% printer requires reloading of %1% presets." -msgstr "Drukarka %1% była aktywna podczas Cofnięcia / Powtórzenia zrzutu. Zmiana drukarki na %1% wymaga załadowania zestawów ustawień %1%." - -#: src/libslic3r/Print.cpp:1282 -msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm" -msgstr "%1%=%2% mm to zbyt mała wartość, żeby była możliwa do wydrukowania na wysokości warstwy %3% mm" +#: src/slic3r/GUI/PresetHints.cpp:226 +#, c-format +msgid "%3.2f mm³/s" +msgstr "%3.2f mm³/s" #: src/slic3r/GUI/PresetHints.cpp:228 -#, possible-c-format +#, c-format msgid "%3.2f mm³/s at filament speed %3.2f mm/s." msgstr "%3.2f mm³/s z prędkością filamentu %3.2f mm/s." #: src/slic3r/GUI/Plater.cpp:974 -#, possible-c-format +#, c-format msgid "%d (%d shells)" msgstr "%d (%d obrysów)" #: src/slic3r/GUI/Plater.cpp:982 -#, possible-c-format +#, c-format msgid "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards edges" msgstr "%d nieprawidłowych powierzchni, %d naprawionych krawędzi, %d powierzchni usunięto, %d powierzchni dodano, %d powierzchni odwrócono, %d odwróconych krawędzi" #: src/slic3r/GUI/PresetHints.cpp:268 -#, possible-c-format +#, c-format msgid "%d lines: %.2f mm" msgstr "%d linii: %.2f mm" +#: src/slic3r/GUI/PresetHints.cpp:271 +#, c-format +msgid "%d lines: %.2lf mm" +msgstr "%d linii: %.2lf mm" + #: src/slic3r/GUI/MainFrame.cpp:894 -#, possible-c-format +#, c-format msgid "%d presets successfully imported." msgstr "pomyślnie zaimportowano %d zestawów ustawień." +#: src/slic3r/GUI/MainFrame.cpp:553 +#, c-format +msgid "%s &Manual" +msgstr "I&nstrukcja %s" + #: src/slic3r/GUI/MainFrame.cpp:550 -#, possible-c-format +#, c-format msgid "%s &Website" msgstr "Strona &WWW %s" #: src/slic3r/GUI/UpdateDialogs.cpp:113 -#, possible-c-format +#, c-format msgid "%s configuration is incompatible" msgstr "Konfiguracja niekompatybilna: %s" #: src/slic3r/GUI/Field.cpp:136 -#, possible-c-format +#, c-format msgid "%s doesn't support percentage" msgstr "%s nie może być wartością procentową" #: src/slic3r/GUI/MsgDialog.cpp:73 -#, possible-c-format +#, c-format msgid "%s error" msgstr "błąd %s" #: src/slic3r/GUI/ConfigWizard.cpp:336 -#, possible-c-format +#, c-format msgid "%s Family" msgstr "Rodzina %s" #: src/slic3r/GUI/MsgDialog.cpp:74 -#, possible-c-format +#, c-format msgid "%s has encountered an error" msgstr "%s napotkał błąd" -#: src/slic3r/GUI/GUI_App.cpp:132 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n\nThe application will now terminate." -msgstr "Błąd %s . Prawdopodobnie wystąpił przez brak pamięci. Jeśli masz pewność, że ilość RAMu jest wystarczająca, to może to być bug, a którego zgłoszenie będziemy wdzięczni.\n\nAplikacja zostanie zamknięta." - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:155 -#, possible-c-format -msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it." -msgstr "Błąd %s . Prawdopodobnie wystąpił przez brak pamięci. Jeśli masz pewność, że ilość RAMu jest wystarczająca, to może to być bug, a którego zgłoszenie będziemy wdzięczni." - #: src/slic3r/GUI/UpdateDialogs.cpp:112 -#, possible-c-format +#, c-format msgid "%s incompatibility" msgstr "niekompatybilność: %s" #: src/slic3r/GUI/UpdateDialogs.cpp:172 -#, possible-c-format -msgid "%s now uses an updated configuration structure.\n\nSo called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\nAn inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n\nPlease proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." -msgstr "%s używa teraz zaktualizowanej struktury konfiguracji.\n\nZostały wprowadzone tzw. \"Ustawienia systemowe\", w których zachowane są domyślne ustawienia dla wielu drukarek. Te ustawienia nie mogą być modyfikowane, ale użytkownicy mogą tworzyć własne profile, bazujące na Ustawieniach systemowych.\nZestaw ustawień może dziedziczyć wartości ustawień z profilu źródłowego lub nadpisać je własnymi.\n\nKontynuuj do %s , które pozwoli ustawić nowe Zestawy i wybrać automatyczną aktualizację wbudowanych Zestawów." +#, c-format +msgid "" +"%s now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"%s używa teraz zaktualizowanej struktury konfiguracji.\n" +"\n" +"Zostały wprowadzone tzw. \"Ustawienia systemowe\", w których zachowane są domyślne ustawienia dla wielu drukarek. Te ustawienia nie mogą być modyfikowane, ale użytkownicy mogą tworzyć własne profile, bazujące na Ustawieniach systemowych.\n" +"Zestaw ustawień może dziedziczyć wartości ustawień z profilu źródłowego lub nadpisać je własnymi.\n" +"\n" +"Kontynuuj do %s , które pozwoli ustawić nowe Zestawy i wybrać automatyczną aktualizację wbudowanych Zestawów." #: src/slic3r/GUI/GUI_App.cpp:681 -#, possible-c-format +#, c-format msgid "%s View Mode" msgstr "Tryb %s" #: src/slic3r/GUI/MainFrame.cpp:563 -#, possible-c-format +#, c-format msgid "&About %s" msgstr "&O %s" +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "&About Slic3r" +msgstr "Inform&acje o Slic3r" + #: src/slic3r/GUI/GUI_App.cpp:769 msgid "&Configuration" msgstr "&Konfiguracja" @@ -161,6 +317,14 @@ msgstr "&Edytuj" msgid "&Export" msgstr "&Eksport" +#: lib/Slic3r/GUI/MainFrame.pm:227 +msgid "&Export Config Bundle…" +msgstr "&Eksport Paczki Konfiguracyjnej…" + +#: lib/Slic3r/GUI/MainFrame.pm:221 +msgid "&Export Config…\tCtrl+E" +msgstr "&Eksport Konfiguracji... \tCtrl+E" + #: src/slic3r/GUI/MainFrame.cpp:480 src/slic3r/GUI/MainFrame.cpp:604 msgid "&Filament Settings Tab" msgstr "Ustawienia &Filamentu" @@ -181,14 +345,22 @@ msgstr "Pomo&c" msgid "&Import" msgstr "&Import" -#: src/slic3r/GUI/MainFrame.cpp:376 -msgid "&New Project" -msgstr "&Nowy Projekt" +#: lib/Slic3r/GUI/MainFrame.pm:224 +msgid "&Load Config Bundle…" +msgstr "Wczytaj Paczkę &Konfiguracyjną…" + +#: lib/Slic3r/GUI/MainFrame.pm:218 +msgid "&Load Config…\tCtrl+L" +msgstr "Wczytaj &Konfigurację...\tCtrl+L" #: src/slic3r/GUI/ConfigWizard.cpp:1093 msgid "&Next >" msgstr "&Dalej>" +#: lib/Slic3r/GUI/MainFrame.pm:376 +msgid "&Object" +msgstr "&Model" + #: src/slic3r/GUI/MainFrame.cpp:339 msgid "&Open Project" msgstr "&Otwórz Projekt" @@ -197,6 +369,10 @@ msgstr "&Otwórz Projekt" msgid "&Paste" msgstr "Wkle&j" +#: lib/Slic3r/GUI/MainFrame.pm:375 +msgid "&Plater" +msgstr "&Stół" + #: src/slic3r/GUI/MainFrame.cpp:471 msgid "&Plater Tab" msgstr "Podgląd Stoł&u" @@ -209,14 +385,14 @@ msgstr "&Preferencje" msgid "&Quit" msgstr "&Wyjście" -#: src/slic3r/GUI/MainFrame.cpp:561 -msgid "&Redo" -msgstr "Powtó&rz" - #: src/slic3r/GUI/MainFrame.cpp:406 msgid "&Repair STL file" msgstr "&Naprawa pliku STL" +#: lib/Slic3r/GUI/MainFrame.pm:244 +msgid "&Repeat Last Quick Slice\tCtrl+Shift+U" +msgstr "Powtórz Ostatnie Szybkie &Cięcie\tCtrl+Shift+U" + #: src/slic3r/GUI/MainFrame.cpp:341 msgid "&Save Project" msgstr "&Zapisz projekt" @@ -225,10 +401,6 @@ msgstr "&Zapisz projekt" msgid "&Select all" msgstr "&Zaznacz wszystko" -#: src/slic3r/GUI/MainFrame.cpp:558 -msgid "&Undo" -msgstr "Co&fnij" - #: src/slic3r/GUI/MainFrame.cpp:577 msgid "&View" msgstr "&Widok" @@ -237,6 +409,14 @@ msgstr "&Widok" msgid "&Window" msgstr "&Okno" +#: lib/Slic3r/GUI/MainFrame.pm:255 +msgid "(&Re)Slice Now\tCtrl+S" +msgstr "T&nij (ponownie)\tCtrl+S" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:89 +msgid "(default)" +msgstr "(domyślnie)" + #: src/libslic3r/PrintConfig.cpp:1376 msgid "(minimum)" msgstr "(minimum)" @@ -245,14 +425,18 @@ msgstr "(minimum)" msgid "(Re)slice" msgstr "(Ponowne) Cięcie" -#: src/slic3r/GUI/MainFrame.cpp:455 -msgid "(Re)Slice No&w" -msgstr "(Pono&wne) Cięcie" +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "(Re)Slice &Now" +msgstr "(Ponowne) &Cięcie" #: src/slic3r/GUI/MainFrame.cpp:641 msgid ") not found." msgstr ") nie znaleziono." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid ". Discard changes and continue anyway?" +msgstr ". Odrzucić zmiany i kontynuować?" + #: src/libslic3r/PrintConfig.cpp:1857 msgid "0 (soluble)" msgstr "0 (rozpuszczalne)" @@ -261,10 +445,22 @@ msgstr "0 (rozpuszczalne)" msgid "0.2 (detachable)" msgstr "0.2 (odłączane)" +#: lib/Slic3r/GUI/Plater/3DPreview.pm:69 +msgid "1 Layer" +msgstr "1 warstwa" + +#: lib/Slic3r/GUI/Plater.pm:206 +msgid "2D" +msgstr "2D" + #: src/slic3r/GUI/MainFrame.cpp:487 msgid "3&D" msgstr "3&D" +#: lib/Slic3r/GUI/Plater.pm:164 lib/Slic3r/GUI/Plater.pm:2323 +msgid "3D" +msgstr "3D" + #: src/slic3r/GUI/Plater.cpp:3074 msgid "3D editor view" msgstr "Podgląd edycji 3D" @@ -273,11 +469,27 @@ msgstr "Podgląd edycji 3D" msgid "3D Honeycomb" msgstr "Plaster miodu 3D" +#: src/slic3r/GUI/GUI_App.cpp:741 +msgid "3D-Scene will be cleaned." +msgstr "Podgląd sceny zostanie wyczyszczony." + +#: lib/Slic3r/GUI/Plater.pm:1756 +msgid "3MF file exported to " +msgstr "Plik 3MF został wyeksportowany do " + #: src/slic3r/GUI/Plater.cpp:3590 -#, possible-c-format +#, c-format msgid "3MF file exported to %s" msgstr "Plik 3MF wyeksportowany do %s" +#: lib/Slic3r/GUI/Plater.pm:258 +msgid "45° ccw" +msgstr "45° przeciwnie do wskazówek zegara" + +#: lib/Slic3r/GUI/Plater.pm:259 +msgid "45° cw" +msgstr "45° zgodnie ze wskazówkami zegara" + #: src/slic3r/GUI/ConfigWizard.cpp:1092 msgid "< &Back" msgstr "<&Wstecz" @@ -302,13 +514,21 @@ msgstr "Generalną zasadą jest 60 °C dla PLA i 110 °C dla ABS. Ustaw zero je msgid "A toolpath outside the print area was detected" msgstr "Wykryto ścieżkę narzędzia poza obszarem roboczym" +#: src/libslic3r/SLA/SLASupportTree.cpp:2162 +msgid "Abort" +msgstr "Anuluj" + #: src/slic3r/GUI/AboutDialog.cpp:35 -#, possible-c-format +#, c-format msgid "About %s" msgstr "O %s" +#: src/slic3r/GUI/AboutDialog.cpp:35 +msgid "About Slic3r" +msgstr "O Slic3r" + #: src/libslic3r/GCode/PreviewData.cpp:499 -#, possible-c-format +#, c-format msgid "above %.2f mm" msgstr "powyżej %.2f mm" @@ -328,6 +548,10 @@ msgstr "Aktywacja" msgid "Active" msgstr "Aktywny" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:39 +msgid "Active: " +msgstr "Aktywny: " + #: src/slic3r/GUI/Preset.cpp:1003 src/slic3r/GUI/Tab.cpp:237 msgid "Add a new printer" msgstr "Dodaj nową drukarkę" @@ -344,16 +568,6 @@ msgstr "Dodaj osłonę (pojedynczą linię) wokół podpory bazowej. Sprawi to, msgid "Add color change marker for current layer" msgstr "Dodaj punkt zmiany filamentu na obecnej warstwie" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1662 -msgid "Add Generic Subobject" -msgstr "Dodaj Standardowy Model Podrzędny" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2584 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2613 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2631 -msgid "Add Height Range" -msgstr "Dodaj zakres wysokości" - #: src/slic3r/GUI/GLCanvas3D.cpp:3463 msgid "Add instance" msgstr "Dodaj kopię" @@ -362,13 +576,9 @@ msgstr "Dodaj kopię" msgid "Add Instance of the selected object" msgstr "Dodaj kopię wybranego modelu" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:162 -msgid "Add layer range" -msgstr "Dodaj zakres warstw" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1950 -msgid "Add Layers" -msgstr "Dodaj Warstwy" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Add Instance to selected object " +msgstr "Dodaj kopię wybranego modelu" #: src/slic3r/GUI/GUI_ObjectList.cpp:1067 msgid "Add modifier" @@ -379,10 +589,6 @@ msgstr "Dodaj modyfikator" msgid "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps adding perimeters, until more than 70% of the loop immediately above is supported." msgstr "Dodaj więcej obrysów, aby uniknąć przerw przy pochyłych ścianach. Slic3r będzie dodawał tyle obrysów, ile jest potrzebne aby podeprzeć co najmniej 70% grubości ściany kolejnej warstwy." -#: src/slic3r/GUI/Plater.cpp:3516 -msgid "Add one more instance of the selected object" -msgstr "Dodaj kolejną kopię wybranego modelu" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1066 #: src/slic3r/GUI/GUI_ObjectList.cpp:1082 msgid "Add part" @@ -400,30 +606,6 @@ msgstr "Dodaj punkt do zaznaczenia" msgid "Add settings" msgstr "Dodaj ustawienia" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1252 -msgid "Add Settings Bundle for Height range" -msgstr "Dodaj Paczkę Ustawień dla Zakresu Wysokości" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1191 -msgid "Add Settings Bundle for Object" -msgstr "Dodaj Paczkę Ustawień dla Modelu" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1190 -msgid "Add Settings Bundle for Sub-object" -msgstr "Dodaj Paczkę Ustawień dla Modelu Podrzędnego" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1126 -msgid "Add Settings for Layers" -msgstr "Dodaj Ustawienia dla Warstw" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1128 -msgid "Add Settings for Object" -msgstr "Dodaj Ustawienia dla Modelu" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1127 -msgid "Add Settings for Sub-object" -msgstr "Dodaj Ustawienia dla Modelu Podrzędnego" - #: src/libslic3r/PrintConfig.cpp:382 msgid "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)." msgstr "Dodaj zwarte wypełnienie przy pochyłych powierzchniach aby zagwarantować odpowiednią grubość warstwy (suma górnych i dolnych zwartych warstw)." @@ -438,18 +620,10 @@ msgstr "Dodaj blokadę podpór" msgid "Add support enforcer" msgstr "Dodaj wymuszenie podpór" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:531 -msgid "Add support point" -msgstr "Dodaj punkt podpory" - #: src/slic3r/GUI/GLCanvas3D.cpp:3392 msgid "Add..." msgstr "Dodaj..." -#: src/slic3r/GUI/wxExtensions.cpp:2571 -msgid "Add/Del color change" -msgstr "Dodaj/usuń zmianę koloru" - #: src/slic3r/GUI/Tab.cpp:920 msgid "Additional information:" msgstr "Dodatkowe informacje:" @@ -466,6 +640,10 @@ msgstr "Dodatkowa kopia zrzutu całej konfiguracji jest tworzona przed zainstalo msgid "Address" msgstr "Adres" +#: lib/Slic3r/GUI/Plater.pm:250 lib/Slic3r/GUI/Plater.pm:268 +msgid "Add…" +msgstr "Dodaj…" + #: src/slic3r/GUI/GUI_App.cpp:675 src/slic3r/GUI/GUI_ObjectList.cpp:76 #: src/slic3r/GUI/GUI_ObjectList.cpp:517 src/slic3r/GUI/Tab.cpp:1026 #: src/slic3r/GUI/Tab.cpp:1041 src/slic3r/GUI/Tab.cpp:1139 @@ -481,6 +659,10 @@ msgstr "Zaawansowane" msgid "Advanced View Mode" msgstr "Widok Zaawansowany" +#: xs/src/slic3r/GUI/FirmwareDialog.cpp:400 +msgid "Advanced: avrdude output log" +msgstr "Zaawansowane: log wyjściowy z avrdude" + #: src/slic3r/GUI/FirmwareDialog.cpp:803 msgid "Advanced: Output log" msgstr "Zaawansowane: log wyjściowy" @@ -509,6 +691,10 @@ msgstr "Wyrównany" msgid "All" msgstr "Wszystko" +#: src/libslic3r/Print.cpp:1195 +msgid "All extruders must have the same diameter for single extruder multimaterial printer." +msgstr "Wszystkie ekstrudery (dysze) muszą mieć taką samą średnicę dla druku multimaterial z jednym ekstruderem." + #: src/libslic3r/Print.cpp:1135 msgid "All objects are outside of the print volume." msgstr "Wszystkie modele znajdują się poza obszarem roboczym." @@ -529,26 +715,49 @@ msgstr "niepowodzenie alokacji" msgid "Along X axis" msgstr "Wzdłuż osi X" +#: lib/Slic3r/GUI/Plater.pm:2251 lib/Slic3r/GUI/Plater.pm:2267 +#: lib/Slic3r/GUI/Plater.pm:2283 +msgid "Along X axis…" +msgstr "Wzdłuż osi X…" + #: src/slic3r/GUI/Plater.cpp:2941 msgid "Along Y axis" msgstr "Wzdłuż osi Y" +#: lib/Slic3r/GUI/Plater.pm:2254 lib/Slic3r/GUI/Plater.pm:2270 +#: lib/Slic3r/GUI/Plater.pm:2286 +msgid "Along Y axis…" +msgstr "Wzdłuż osi Y…" + #: src/slic3r/GUI/Plater.cpp:2943 msgid "Along Z axis" msgstr "Wzdłuż osi Z" +#: lib/Slic3r/GUI/Plater.pm:2257 lib/Slic3r/GUI/Plater.pm:2273 +#: lib/Slic3r/GUI/Plater.pm:2289 +msgid "Along Z axis…" +msgstr "Wzdłuż osi Z…" + #: src/slic3r/GUI/ConfigWizard.cpp:122 msgid "Alternate nozzles:" msgstr "Inne rozmiary dysz:" +#: lib/Slic3r/GUI/Plater.pm:1740 +msgid "AMF file exported to " +msgstr "Plik AMF został wyeksportowany do " + #: src/slic3r/GUI/Plater.cpp:3561 -#, possible-c-format +#, c-format msgid "AMF file exported to %s" msgstr "Plik AMF wyeksportowany do %s" #: src/slic3r/GUI/GLCanvas3D.cpp:725 -msgid "An object outside the print area was detected\nResolve the current problem to continue slicing" -msgstr "Wykryto model poza obszarem roboczym\nUsuń problem, aby kontynuować cięcie" +msgid "" +"An object outside the print area was detected\n" +"Resolve the current problem to continue slicing" +msgstr "" +"Wykryto model poza obszarem roboczym\n" +"Usuń problem, aby kontynuować cięcie" #: src/slic3r/GUI/GLCanvas3D.cpp:720 msgid "An object outside the print area was detected" @@ -562,10 +771,18 @@ msgstr "i ma następujące niezapisane zmiany:" msgid "Another export job is currently running." msgstr "W tej chwili trwa inny proces eksportu." +#: src/slic3r/GUI/Tab.cpp:915 +msgid "Any modifications should be saved as a new preset inherited from this one. " +msgstr "Każda modyfikacja powinna zostać zapisana jako nowy zestaw ustawień dziedziczony z obecnego. " + #: src/slic3r/GUI/Tab.cpp:926 msgid "Any modifications should be saved as a new preset inherited from this one." msgstr "Każda modyfikacja powinna zostać zapisana jako nowy zestaw ustawień dziedziczony z obecnego." +#: xs/src/libslic3r/PrintConfig.cpp:1109 +msgid "API Key" +msgstr "Klucz API" + #: src/libslic3r/PrintConfig.cpp:88 msgid "API Key / Password" msgstr "Klucz API / Hasło" @@ -574,6 +791,14 @@ msgstr "Klucz API / Hasło" msgid "Application preferences" msgstr "Preferencje aplikacji" +#: xs/src/slic3r/GUI/GUI.cpp:406 +msgid "Application will be restarted" +msgstr "Aplikacja zostanie uruchomiona ponownie" + +#: src/slic3r/GUI/GUI_App.cpp:740 +msgid "Application will be restarted after language change." +msgstr "Aplikacja zostanie zrestartowana po zmianie języka." + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:864 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Apply changes" @@ -591,31 +816,43 @@ msgstr "Spirala Archimedesa" msgid "archive is too large" msgstr "archiwum jest zbyt duże" +#: src/slic3r/GUI/Tab.cpp:2936 +msgid "Are you sure you want to " +msgstr "Czy na pewno chcesz " + #. TRN remove/delete #: src/slic3r/GUI/Tab.cpp:2955 msgid "Are you sure you want to %1% the selected preset?" msgstr "Czy na pewno chcesz %1% ten zestaw ustawień?" #: src/slic3r/GUI/FirmwareDialog.cpp:862 -msgid "Are you sure you want to cancel firmware flashing?\nThis could leave your printer in an unusable state!" -msgstr "Czy na pewno chcesz przerwać flashowanie firmware?\nMoże to spowodować nieprzewidziane problemy z drukarką!" +msgid "" +"Are you sure you want to cancel firmware flashing?\n" +"This could leave your printer in an unusable state!" +msgstr "" +"Czy na pewno chcesz przerwać flashowanie firmware?\n" +"Może to spowodować nieprzewidziane problemy z drukarką!" #: src/libslic3r/PrintConfig.cpp:2258 msgid "Area fill" msgstr "Wypełnienie obszaru" -#: src/slic3r/GUI/Plater.cpp:609 -msgid "Around object" -msgstr "Wokół modelu" +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Around X axis…" +msgstr "Wokół osi X…" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Around Y axis…" +msgstr "Wokół osi Y…" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Around Z axis…" +msgstr "Wokół osi Z…" #: src/slic3r/GUI/KBShortcutsDialog.cpp:135 msgid "Arrange" msgstr "Rozmieść" -#: src/slic3r/GUI/GLCanvas3D.cpp:3486 -msgid "Arrange selection" -msgstr "Rozmieść zaznaczone" - #: src/libslic3r/PrintConfig.cpp:3054 msgid "Arrange the supplied models in a plate and merge them in a single model in order to perform actions once." msgstr "Ułóż modele na stole i połącz je w jedną grupę, aby zastosować ustawienia do wszystkich na raz." @@ -624,14 +861,18 @@ msgstr "Ułóż modele na stole i połącz je w jedną grupę, aby zastosować u msgid "Arranging" msgstr "Układanie" -#: src/slic3r/GUI/Plater.cpp:2718 -msgid "Arranging canceled." -msgstr "Układanie anulowane." +#: src/slic3r/GUI/Plater.cpp:2103 +msgid "Arranging canceled" +msgstr "Układanie anulowane" #: src/slic3r/GUI/Plater.cpp:2144 msgid "Arranging done." msgstr "Układanie zakończone." +#: src/slic3r/GUI/GUI_App.cpp:514 +msgid "Array of language names and identifiers should have the same size." +msgstr "Listy nazw języków i oznaczeń powinny mieć taki sam rozmiar." + #: src/slic3r/GUI/KBShortcutsDialog.cpp:172 #: src/slic3r/GUI/KBShortcutsDialog.cpp:183 msgid "Arrow Down" @@ -650,9 +891,9 @@ msgstr "Strzałka w prawo" msgid "Arrow Up" msgstr "Strzałka w górę" -#: src/slic3r/GUI/GUI_App.cpp:303 -msgid "As a workaround, you may run PrusaSlicer with a software rendered 3D graphics by running prusa-slicer.exe with the --sw_renderer parameter." -msgstr "Jako obejście, możesz uruchomić PrusaSlicer z grafiką 3D renderowaną przez oprogramowanie, dodając parametr --sw_renderer do prusa-slicer.exe." +#: xs/src/slic3r/GUI/GUI.cpp:660 +msgid "Attempt to free unreferenced scalar" +msgstr "Próba uwolnienia nieokreślonego skalara" #: src/slic3r/GUI/GUI.cpp:144 src/slic3r/GUI/GUI_App.cpp:743 #: src/slic3r/GUI/Tab.cpp:2798 @@ -672,13 +913,17 @@ msgstr "Rozmieść modele automatycznie" msgid "Auto-generate points" msgstr "Generuj punkty automatycznie" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:669 +msgid "Auto-generate points [A]" +msgstr "Automatyczne generowanie punktów [A]" + #: src/slic3r/GUI/Plater.cpp:979 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors)" msgstr "Naprawiono automatycznie (%d błędów)" #: src/slic3r/GUI/GUI_ObjectList.cpp:230 -#, possible-c-format +#, c-format msgid "Auto-repaired (%d errors):\n" msgstr "Naprawiono automatycznie (%d błędów):\n" @@ -686,13 +931,15 @@ msgstr "Naprawiono automatycznie (%d błędów):\n" msgid "Autodetected" msgstr "Wykryto automatycznie" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1338 -msgid "Autogenerate support points" -msgstr "Automatycznie generuj punkty podpór" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1166 -msgid "Autogeneration will erase all manually edited points.\n\nAre you sure you want to do it?\n" -msgstr "Generowanie automatyczne usunie wszystkie ręcznie ustawione punkty.\n\nCzy chcesz kontynować?\n" +msgid "" +"Autogeneration will erase all manually edited points.\n" +"\n" +"Are you sure you want to do it?\n" +msgstr "" +"Generowanie automatyczne usunie wszystkie ręcznie ustawione punkty.\n" +"\n" +"Czy chcesz kontynować?\n" #: src/slic3r/GUI/Tab.cpp:3421 msgid "Automatic generation" @@ -719,12 +966,28 @@ msgid "BACK ARROW" msgstr "STRZAŁKA W TYŁ" #: src/slic3r/GUI/Tab.cpp:3113 -msgid "BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick to reset all settings for the current option group to the last saved preset." -msgstr "STRZAŁKA W TYŁ oznacza, że ustawienia zostały zmodyfikowane i nie odpowiadają tym z ostatnio zapisanego zestawu ustawień dla obecnej grupy opcji.\nKliknij aby zresetować wszystkie ustawienia w obecnej grupie opcji do tych z ostatnio zapisanego zestawu ustawień." +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" +"Click to reset all settings for the current option group to the last saved preset." +msgstr "" +"STRZAŁKA W TYŁ oznacza, że ustawienia zostały zmodyfikowane i nie odpowiadają tym z ostatnio zapisanego zestawu ustawień dla obecnej grupy opcji.\n" +"Kliknij aby zresetować wszystkie ustawienia w obecnej grupie opcji do tych z ostatnio zapisanego zestawu ustawień." #: src/slic3r/GUI/Tab.cpp:3127 -msgid "BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\nClick to reset current value to the last saved preset." -msgstr "STRZAŁKA W TYŁ oznacza, że ustawienia zostały zmodyfikowane i nie odpowiadają tym z ostatnio zapisanego zestawu ustawień.\nKliknij aby zresetować wszystkie ustawienia do tych z ostatnio zapisanego zestawu ustawień." +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 "" +"STRZAŁKA W TYŁ oznacza, że ustawienia zostały zmodyfikowane i nie odpowiadają tym z ostatnio zapisanego zestawu ustawień.\n" +"Kliknij aby zresetować wszystkie ustawienia do tych z ostatnio zapisanego zestawu ustawień." + +#: src/slic3r/GUI/Tab.cpp:3077 +msgid "" +"BACK ARROW;indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "" +"STRZAŁKA W TYŁ;oznacza, że ustawienia zostały zmodyfikowane i nie odpowiadają tym z ostatnio zapisanego zestawu ustawień dla obecnej grupy opcji.\n" +"Kliknij ikonę STRZAŁKI W TYŁ aby zresetować wszystkie ustawienia w obecnej grupie opcji do tych z ostatnio zapisanego zestawu ustawień." #: src/slic3r/GUI/Preferences.cpp:52 msgid "Background processing" @@ -734,22 +997,10 @@ msgstr "Przetwarzanie w tle" msgid "backwards edges" msgstr "odwrócone krawędzie" -#: src/slic3r/GUI/MainFrame.cpp:152 -msgid "based on Slic3r" -msgstr "bazuje na projekcie Slic3r" - #: src/slic3r/GUI/Tab.cpp:1484 msgid "Bed" msgstr "Stół" -#: src/libslic3r/PrintConfig.cpp:61 -msgid "Bed custom model" -msgstr "Własny model stołu" - -#: src/libslic3r/PrintConfig.cpp:56 -msgid "Bed custom texture" -msgstr "Własna tekstura stołu" - #: src/slic3r/GUI/BedShapeDialog.hpp:45 src/slic3r/GUI/ConfigWizard.cpp:524 msgid "Bed Shape" msgstr "Kształt stołu" @@ -782,10 +1033,6 @@ msgstr "G-code wykonywany przed zmianą warstwy" msgid "Before roll back" msgstr "Przez zmianą" -#: src/slic3r/GUI/Plater.cpp:608 -msgid "Below object" -msgstr "Pod modelem" - #: src/libslic3r/PrintConfig.cpp:1508 msgid "Below Z" msgstr "Poniżej Z" @@ -855,7 +1102,7 @@ msgstr "Mosty objętościowe" #: src/slic3r/GUI/Plater.cpp:446 src/slic3r/GUI/Tab.cpp:1056 msgid "Brim" -msgstr "Brim (obramowanie)" +msgstr "Brim" #: src/libslic3r/PrintConfig.cpp:208 msgid "Brim width" @@ -877,6 +1124,10 @@ msgstr "Opis Przycisków i Kolorów Tekstu" msgid "by the print profile maximum" msgstr "maksimum zależny od profilu wydruku" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 +msgid "Camera view " +msgstr "Widok kamery" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:123 msgid "Camera view" msgstr "Widok kamery" @@ -923,6 +1174,10 @@ msgstr "Możliwości" msgid "Capture a configuration snapshot" msgstr "Zapisz zrzut konfiguracji" +#: src/libslic3r/SLA/SLASupportTree.cpp:2159 +msgid "Cascading pillars" +msgstr "Podpory przecinające się" + #: src/libslic3r/PrintConfig.cpp:3035 msgid "Center" msgstr "Punkt centralny" @@ -939,39 +1194,22 @@ msgstr "Pliki certyfikatów (*.crt, *.pem)|*.crt;*.pem|Wszystkie pliki|*.*" msgid "Change Application &Language" msgstr "Zmień &Język Aplikacji" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Change camera type (perspective, orthographic)" -msgstr "Zmień rodzaj widoku (perspektywiczny/ortograficzny)" +#: xs/src/slic3r/GUI/GUI.cpp:354 +msgid "Change Application Language" +msgstr "Zmień język aplikacji" #: src/slic3r/GUI/GUI_ObjectList.cpp:1226 msgid "Change extruder" msgstr "Zmiana ekstrudera" -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:144 -#, possible-c-format -msgid "Change Option %s" -msgstr "Zmień Opcję %s" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3134 -msgid "Change Part Type" -msgstr "Zmień Rodzaj Elementu" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:925 -msgid "Change point head diameter" -msgstr "Zmień średnicę łącznika" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Change the number of instances of the selected object" -msgstr "Zmień liczbę kopii wybranego modelu" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Change the number of copies of the selected object" +msgstr "Zmień ilość kopii wybranego modelu" #: src/slic3r/GUI/GUI_ObjectList.cpp:1185 msgid "Change type" msgstr "Zmiana rodzaju" -#: src/slic3r/GUI/UpdateDialogs.cpp:56 -msgid "Changelog && Download" -msgstr "Pobierz && Listę Zmian" - #: src/slic3r/GUI/GUI_App.cpp:378 msgid "Changing of an application language" msgstr "Zmiana języka aplikacji" @@ -980,25 +1218,17 @@ msgstr "Zmiana języka aplikacji" msgid "Check for application updates" msgstr "Sprawdź aktualizacje aplikacji" -#: src/slic3r/GUI/BedShapeDialog.cpp:509 -msgid "Choose a file to import bed texture from (PNG/SVG):" -msgstr "Wybierz plik, z którego ma być zaimportowana tekstura stołu (PNG/SVG):" +#: src/slic3r/GUI/BedShapeDialog.cpp:316 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "Wybierz plik do importu kształtu stołu (STL/OBJ/AMF/3MF/PRUSA):" #: src/slic3r/GUI/MainFrame.cpp:621 msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" msgstr "Wybierz plik do pocięcia (STL/OBJ/AMF/3MF/PRUSA):" -#: src/slic3r/GUI/BedShapeDialog.cpp:532 -msgid "Choose an STL file to import bed model from:" -msgstr "Wybierz plik STL, z którego ma być zaimportowany model stołu:" - -#: src/slic3r/GUI/BedShapeDialog.cpp:464 -msgid "Choose an STL file to import bed shape from:" -msgstr "Wybierz plik STL, z którego ma być zaimportowany kształt stołu:" - -#: src/slic3r/GUI/GUI_App.cpp:510 -msgid "Choose one file (3MF/AMF):" -msgstr "Wybierz jeden plik (3MF/AMF):" +#: src/slic3r/GUI/GUI_App.cpp:489 +msgid "Choose one file (3MF):" +msgstr "Wybierz jeden plik (3MF):" #: src/slic3r/GUI/GUI_App.cpp:501 msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" @@ -1012,17 +1242,9 @@ msgstr "Wybierz rodzaj firmware używanego przez Twoją drukarkę." msgid "Circular" msgstr "Okrągły" -#: src/slic3r/GUI/GLCanvas3D.cpp:3701 src/slic3r/GUI/GLCanvas3D.cpp:3734 -msgid "Click right mouse button to open History" -msgstr "Kliknij prawym przyciskiem myszy, aby otworzyć Historię" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:383 -msgid "Click the icon to change the object printable property" -msgstr "Kliknij na ikonę, aby zmienić możliwą do wydrukowania właściwość modelu" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:377 -msgid "Click the icon to change the object settings" -msgstr "Kliknij na ikonę, aby zmienić ustawienia modelu" +#: src/libslic3r/SLA/SLASupportTree.cpp:2156 +msgid "Classification" +msgstr "Klasyfikacja" #: src/slic3r/GUI/Plater.cpp:292 msgid "Click to edit preset" @@ -1036,6 +1258,10 @@ msgstr "Przycinaj modele złożone z kilku części" msgid "Clipping of view" msgstr "Widok przecinania" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:926 +msgid "Clipping of view:" +msgstr "Widok przecinania:" + #: src/slic3r/GUI/FirmwareDialog.cpp:814 #: src/slic3r/GUI/PrintHostDialogs.cpp:160 msgid "Close" @@ -1062,10 +1288,6 @@ msgstr "Scalaj wypełnienie co" msgid "Combine infill every n layers" msgstr "Scalaj wypełnienie co n warstw" -#: src/slic3r/GUI/UpdateDialogs.cpp:116 -msgid "Comment:" -msgstr "Komentarz:" - #: src/slic3r/GUI/Tab.cpp:56 src/libslic3r/PrintConfig.cpp:244 msgid "Compatible print profiles" msgstr "Kompatybilne profile druku" @@ -1158,6 +1380,10 @@ msgstr "Połączenie z drukarką pomyślne." msgid "Connection to Prusa SL1 works correctly." msgstr "Połączenie z Prusa SL1 działa prawidłowo." +#: src/slic3r/Utils/OctoPrint.cpp:195 +msgid "Connection to Prusa SLA works correctly." +msgstr "Połączenie z Prusa SLA działa prawidłowo." + #: src/libslic3r/PrintConfig.cpp:1823 msgid "Contact Z distance" msgstr "Odstęp w osi Z" @@ -1166,6 +1392,14 @@ msgstr "Odstęp w osi Z" msgid "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and numerous others." msgstr "Wkład: Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik i wielu innych." +#: lib/Slic3r/GUI/MainFrame.pm:137 +msgid "Controller" +msgstr "Kontroler" + +#: src/libslic3r/PrintConfig.cpp:2408 +msgid "Controls the bridge type between two neigboring 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 "Odpowiada za rodzaj łącznika pomiędzy dwoma sąsiadującymi słupkami podpór. Może być zygzakiem, krzyżem (podwójnym zygzakiem) lub dynamiczny, który będzie przełączał się pomiędzy obydwoma w zależności od odległości pomiędzy nimi." + #: src/libslic3r/PrintConfig.cpp:2433 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 "Kontroluje typ mostu pomiędzy sąsiadującymi słupkami. Może być zyg-zagowy, krzyżowy (podwójny zyg-zag) lub dynamiczny, który oznacza automatyczne przełączanie się pomiędzy pierwszymi dwoma, w zależności od odstępu pomiędzy słupkami." @@ -1174,10 +1408,18 @@ msgstr "Kontroluje typ mostu pomiędzy sąsiadującymi słupkami. Może być zyg msgid "Cooling" msgstr "Chłodzenie" +#: src/libslic3r/PrintConfig.cpp:628 +msgid "Cooling moves are gradually accelerating beginning at this speed. " +msgstr "Ruchy chłodzące przyspieszają zaczynając od tej prędkości" + #: src/libslic3r/PrintConfig.cpp:629 msgid "Cooling moves are gradually accelerating beginning at this speed." msgstr "Ruchy chłodzące przyspieszają zaczynając od tej prędkości." +#: src/libslic3r/PrintConfig.cpp:647 +msgid "Cooling moves are gradually accelerating towards this speed. " +msgstr "Ruchy chłodzące przyspieszają kończąc z tą prędkością." + #: src/libslic3r/PrintConfig.cpp:648 msgid "Cooling moves are gradually accelerating towards this speed." msgstr "Ruchy chłodzące przyspieszają kończąc z tą prędkością." @@ -1194,6 +1436,10 @@ msgstr "Długość rurki chłodzącej" msgid "Cooling tube position" msgstr "Pozycja rurki chłodzącej" +#: lib/Slic3r/GUI/Plater.pm:304 lib/Slic3r/GUI/Plater.pm:992 +msgid "Copies" +msgstr "Kopie" + #: src/slic3r/GUI/Tab.cpp:2878 msgid "Copy" msgstr "Kopiuj" @@ -1206,19 +1452,11 @@ msgstr "Skopiuj zaznaczenie do schowka" msgid "Copy to clipboard" msgstr "Skopiuj do schowka" -#: src/slic3r/GUI/SysInfoDialog.cpp:120 -msgid "Copy to Clipboard" -msgstr "Kopiuj do Schowka" - #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:84 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:400 msgid "Copying of the temporary G-code to the output G-code failed" msgstr "Kopiowanie tymczasowego G-code do wyjściowego nie powiodło się" -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:92 -msgid "Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?" -msgstr "Kopiowanie tymczasowego G-code do wyjściowego nie powiodło się. Sprawdź, czy karta nie jest zabezpieczona przed zapisem." - #: src/slic3r/GUI/AboutDialog.cpp:92 msgid "Copyright" msgstr "Prawa autorskie" @@ -1272,10 +1510,6 @@ msgstr "Szpary mniejsze niż dwukrotność wartości parametru \"promień zamyka msgid "CRC-32 check failed" msgstr "Weryfikacja CRC-32 nie powiodła się" -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "Create pad around object and ignore the support elevation" -msgstr "Dodaj podkładkę wokół modelu i zignoruj podniesienie na podporach" - #: src/libslic3r/PrintConfig.cpp:2460 msgid "Critical angle" msgstr "Kąt krytyczny" @@ -1289,18 +1523,18 @@ msgid "Cubic" msgstr "Sześcienny" #: src/slic3r/GUI/wxExtensions.cpp:2413 -#, possible-c-format +#, c-format msgid "Current mode is %s" msgstr "Obecny tryb to %s" -#: src/slic3r/GUI/Tab.cpp:925 -msgid "Current preset is inherited from the default preset." -msgstr "Obecny zestaw ustawień jest dziedziczony z zestawu domyślnego." +#: src/slic3r/GUI/Tab.cpp:909 +msgid "Current preset is inherited from " +msgstr "Obecny zestaw ustawień jest dziedziczony z " -#: src/slic3r/GUI/Tab.cpp:928 -#, possible-c-format -msgid "Current preset is inherited from:\n\t%s" -msgstr "Obecny zestaw ustawień jest dziedziczony z:\n%s" +#: src/slic3r/GUI/Tab.cpp:920 +#, c-format +msgid "Current preset is inherited from %s" +msgstr "Obecny zestaw ustawień jest dziedziczony z %s" #: src/slic3r/GUI/UpdateDialogs.cpp:45 msgid "Current version:" @@ -1331,26 +1565,35 @@ msgstr "Ustawienie Własnej Drukarki" msgid "Custom profile name:" msgstr "Nazwa własnego profilu:" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:254 +msgid "Custom setup" +msgstr "Własne ustawienia" + #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3013 msgid "Cut" -msgstr "Przetnij" - -#: src/slic3r/GUI/Plater.cpp:4193 -msgid "Cut by Plane" -msgstr "Tnij Płaszczyzną" +msgstr "Przytnij" #: src/libslic3r/PrintConfig.cpp:3014 msgid "Cut model at the given Z." -msgstr "Przetnij model na zadanej wysokości Z." +msgstr "Przytnij model na zadanej wysokości Z." + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" +msgstr "Przytnij model:" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +msgid "Cut [C]" +msgstr "Przytnij (C)" + +#: lib/Slic3r/GUI/Plater.pm:262 lib/Slic3r/GUI/Plater.pm:278 +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Cut…" +msgstr "Obcinanie…" #: src/slic3r/GUI/GUI_ObjectList.cpp:1055 msgid "Cylinder" msgstr "Cylinder" -#: src/slic3r/GUI/MainFrame.cpp:491 -msgid "D&eselect all" -msgstr "O&dznacz wszystko" - #: src/libslic3r/PrintConfig.cpp:3115 msgid "Data directory" msgstr "Katalog danych" @@ -1359,15 +1602,19 @@ msgstr "Katalog danych" msgid "decompression failed or archive is corrupted" msgstr "niepowodzenie rozpakowywania lub uszkodzone archiwum" -#: src/slic3r/GUI/Plater.cpp:4127 -msgid "Decrease Instances" -msgstr "Zmniejsz ilość kopii" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Decrease copies" +msgstr "Zmniejsz kopie" #: src/slic3r/GUI/GUI_App.cpp:594 src/slic3r/GUI/GUI_ObjectList.cpp:1245 #: src/libslic3r/PrintConfig.cpp:299 msgid "Default" msgstr "Domyślnie" +#: xs/src/slic3r/GUI/Tab.cpp:2130 +msgid "Default " +msgstr "Domyślnie " + #: xs/src/slic3r/GUI/Field.cpp:98 msgid "default" msgstr "domyślnie" @@ -1392,11 +1639,19 @@ msgstr "Domyślny profil filamentu" msgid "Default filament profile associated with the current printer profile. On selection of the current printer profile, this filament profile will be activated." msgstr "Domyślny profil filamentu powiązany z obecnym profilem drukarki. Przy wybraniu obecnego profilu drukarki automatycznie zostanie wybrany ten profil filamentu." +#: src/slic3r/GUI/Tab.cpp:921 +msgid "default preset" +msgstr "domyślny zestaw ustawień" + #: src/slic3r/GUI/Tab.cpp:2757 -#, possible-c-format +#, c-format msgid "Default preset (%s)" msgstr "Domyślny zestaw ustawień (%s)" +#: xs/src/slic3r/GUI/Tab.cpp:2410 xs/src/slic3r/GUI/Tab.cpp:2496 +msgid "Default presets" +msgstr "Domyślne zestawy ustawień" + #: src/libslic3r/GCode/PreviewData.cpp:491 msgid "Default print color" msgstr "Domyślny kolor druku" @@ -1434,6 +1689,14 @@ msgstr "wartość domyślna" msgid "Define a custom printer profile" msgstr "Zdefiniuj własny profil drukarki" +#: src/libslic3r/PrintConfig.cpp:2529 +msgid "Defines the cavity depth. Set to zero to disable the cavity." +msgstr "Ustala głębokość wgłębienia. Ustaw 0 aby wyłączyć wgłębienie." + +#: src/libslic3r/PrintConfig.cpp:2533 +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 effect inside the cavity, which makes pealing the print off the vat foil difficult." +msgstr "Definiuje wgłębienie podkładki. Ustaw 0 aby je wyłączyć. Zachowaj ostrożność przy ustawianiu wgłębienia, ponieważ niektóre żywice mogą powodować bardzo silny efekt zasysania wewnątrz wgłębienia, co może powodować trudności z oddzieleniem wydruku od folii zbiornika." + #: src/libslic3r/PrintConfig.cpp:2558 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 effect inside the cavity, which makes peeling the print off the vat foil difficult." msgstr "Definiuje wgłębienie podkładki. Ustaw 0 aby je wyłączyć. Zachowaj ostrożność przy ustawianiu wgłębienia, ponieważ niektóre żywice mogą powodować bardzo silny efekt zasysania wewnątrz wgłębienia, co może powodować trudności z oddzieleniem wydruku od folii zbiornika." @@ -1442,6 +1705,10 @@ msgstr "Definiuje wgłębienie podkładki. Ustaw 0 aby je wyłączyć. Zachowaj msgid "degenerate facets" msgstr "ponowne generowanie ścianek" +#: src/libslic3r/PrintConfig.cpp:2572 +msgid "degrees" +msgstr "stopni" + #: src/libslic3r/PrintConfig.cpp:608 msgid "Delay after unloading" msgstr "Opóźnienie po rozładowaniu" @@ -1467,59 +1734,14 @@ msgstr "Usuń wszystko" msgid "Delete all" msgstr "Usuń wszystko" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1806 -msgid "Delete All Instances from Object" -msgstr "Usuń wszystkie kopie modelu" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:187 msgid "Delete color change marker for current layer" msgstr "Usuń punkt zmiany filamentu na obecnej warstwie" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1898 -msgid "Delete Height Range" -msgstr "Usuń zakres wysokości" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1876 -msgid "Delete Instance" -msgstr "Usuń Kopię" - -#: src/slic3r/GUI/Plater.cpp:2592 -msgid "Delete Object" -msgstr "Usuń Model" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:100 -#, possible-c-format -msgid "Delete Option %s" -msgstr "Usuń Opcję %s" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:137 msgid "Delete selected" msgstr "Usuń wybrane" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -msgid "Delete Selected" -msgstr "Usuń Zaznaczone" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2303 -msgid "Delete Selected Item" -msgstr "Usuń Wybrany Obiekt" - -#: src/slic3r/GUI/Plater.cpp:4083 -msgid "Delete Selected Objects" -msgstr "Usuń Zaznaczone Modele" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1782 -msgid "Delete Settings" -msgstr "Usuń Ustawienia" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1857 -msgid "Delete Subobject" -msgstr "Usuń Model Podrzędny" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:720 -msgid "Delete support point" -msgstr "Usuń punkt podpory" - #: src/slic3r/GUI/Tab.cpp:131 msgid "Delete this preset" msgstr "Usuń ten zestaw ustawień" @@ -1554,9 +1776,9 @@ msgstr "Prędkość powrotu retrakcji" msgid "Deselect by rectangle" msgstr "Odznaczenie prostokątem" -#: src/slic3r/GUI/MainFrame.cpp:492 -msgid "Deselects all objects" -msgstr "Odznacza wszystkie modele" +#: src/libslic3r/PrintConfig.cpp:1833 +msgid "detachable" +msgstr "odłączane" #: src/libslic3r/PrintConfig.cpp:1304 msgid "Detect bridging perimeters" @@ -1578,6 +1800,22 @@ msgstr "Wykryj niepołączone elementy załadowanych modelu i odłącz je, tworz msgid "Detected advanced data" msgstr "Wykryto zaawansowane dane" +#: src/slic3r/GUI/GLCanvas3D.cpp:723 +msgid "" +"Detected object outside print volume\n" +"Resolve a clash to continue slicing/export process correctly" +msgstr "" +"Wykryto obiekt poza obszarem roboczym.\n" +"Rozwiąż problem, aby kontynuować cięcie/eksport" + +#: src/slic3r/GUI/GLCanvas3D.cpp:719 +msgid "Detected object outside print volume" +msgstr "Wykryto model znajdujący się poza polem roboczym" + +#: src/slic3r/GUI/GLCanvas3D.cpp:720 +msgid "Detected toolpath outside print volume" +msgstr "Wykryto ścieżkę narzędzia poza obszarem roboczym" + #: src/slic3r/GUI/BedShapeDialog.cpp:88 src/libslic3r/PrintConfig.cpp:677 msgid "Diameter" msgstr "Średnica" @@ -1602,18 +1840,22 @@ msgstr "Średnica stołu. Z założenia punkt bazowy (0, 0) jest zlokalizowany n msgid "Direction" msgstr "Kierunek" +#: xs/src/slic3r/GUI/Preferences.cpp:76 +msgid "Disable communication with the printer over a serial / USB cable. This simplifies the user interface in case the printer is never attached to the computer." +msgstr "Wyłącz komunikację z drukarką przez port szeregowy / kabel USB. Upraszcza to interfejs gdy np. drukarka nigdy nie będzie podłączona do komputera." + #: src/libslic3r/PrintConfig.cpp:323 msgid "Disable fan for the first" msgstr "Wyłącz wentylator przy pierwszych" +#: xs/src/slic3r/GUI/Preferences.cpp:74 +msgid "Disable USB/serial connection" +msgstr "Wyłącz połączenie USB/szeregowe" + #: src/libslic3r/PrintConfig.cpp:1280 msgid "Disables retraction when the travel path does not exceed the upper layer's perimeters (and thus any ooze will be probably invisible)." msgstr "Wyłącza retrakcję gdy ruch jałowy nie wykracza poza zewnętrzny obrys górnej warstwy (więc jakiekolwiek wycieki z dyszy prawdopodobnie i tak nie będą widoczne)." -#: src/slic3r/GUI/wxExtensions.cpp:2572 -msgid "Discard all color changes" -msgstr "Odrzuć wszystkie zmiany koloru" - #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:869 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1241 msgid "Discard changes" @@ -1635,10 +1877,6 @@ msgstr "Wyświetlacz" msgid "Display height" msgstr "Wysokość wyświetlacza" -#: src/libslic3r/PrintConfig.cpp:2319 -msgid "Display horizontal mirroring" -msgstr "Pokaż odbicie poziome" - #: src/libslic3r/PrintConfig.cpp:2227 msgid "Display orientation" msgstr "Pokaż orientację" @@ -1647,10 +1885,6 @@ msgstr "Pokaż orientację" msgid "Display the Print Host Upload Queue window" msgstr "Wyświetl okno kolejki Serwera Druku" -#: src/libslic3r/PrintConfig.cpp:2326 -msgid "Display vertical mirroring" -msgstr "Pokaż odbicie pionowe" - #: src/libslic3r/PrintConfig.cpp:2202 msgid "Display width" msgstr "Orientacja wyświetlacza" @@ -1663,10 +1897,6 @@ msgstr "Odstęp pomiędzy kopiami" msgid "Distance between skirt and object(s). Set this to zero to attach the skirt to the object(s) and get a brim for better adhesion." msgstr "Odległość skirtu od modelu. Ustaw zero aby dołączyć do modelu i uzyskać obramowanie dla lepszej przyczepności." -#: src/libslic3r/PrintConfig.cpp:2752 -msgid "Distance between two connector sticks which connect the object and the generated pad." -msgstr "Odstęp pomiędzy dwoma słupkami łączącymi model z wygenerowaną podkładką." - #: src/libslic3r/PrintConfig.cpp:1609 msgid "Distance from object" msgstr "Odstęp od modelu" @@ -1675,10 +1905,18 @@ msgstr "Odstęp od modelu" msgid "Distance of the 0,0 G-code coordinate from the front left corner of the rectangle." msgstr "Odległość koordynaty punktu zerowego od przedniego lewego rogu prostokąta." +#: src/libslic3r/PrintConfig.cpp:284 +msgid "Distance of the center-point of the cooling tube from the extruder tip " +msgstr "Odległość punktu centralnego rurki chłodzącej od końcówki ekstrudera " + #: src/libslic3r/PrintConfig.cpp:285 msgid "Distance of the center-point of the cooling tube from the extruder tip." msgstr "Odległość punktu centralnego rurki chłodzącej od końcówki ekstrudera." +#: src/libslic3r/PrintConfig.cpp:1313 +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 "Odległość końcówki ekstrudera do miejsca zatrzymania filamentu po rozładowaniu. Ta wartość powinna odpowiadać tej ustawionej w firmware drukarki." + #: src/libslic3r/PrintConfig.cpp:1338 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 "Odległość końcówki ekstrudera do miejsca zatrzymania filamentu po rozładowaniu. Ta wartość powinna odpowiadać tej ustawionej w firmware drukarki." @@ -1695,15 +1933,25 @@ msgstr "Nie przerywaj jeśli plik dołączony do --load nie istnieje." msgid "Do not rearrange the given models before merging and keep their original XY coordinates." msgstr "Nie przestawiaj modeli przed łączeniem i zachowaj ich początkowe koordynaty XY." -#: src/slic3r/GUI/Field.cpp:206 -#, possible-c-format -msgid "Do you mean %s%% instead of %s %s?\nSelect YES if you want to change this value to %s%%, \nor NO if you are sure that %s %s is a correct value." -msgstr "Czy masz na myśli %s %% zamiast %s %s ?\nKliknij TAK, jeśli chcesz zmienić wartość na %s %%,\nlub NIE, jeśli masz pewność, że %s %s jest prawidłową wartością." +#: src/slic3r/GUI/Field.cpp:181 +#, c-format +msgid "" +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." +msgstr "" +"Czy masz na myśli %d%% zamiast %d %s?\n" +"Wybierz TAK, jeśli chcesz zmienić wartość na %d%%,\n" +"lub NIE, jeśli masz pewność, że %d %s jest poprawną wartością." #: src/slic3r/GUI/GUI_App.cpp:754 msgid "Do you want to proceed?" msgstr "Czy chcesz kontynuować?" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1022 +msgid "Do you want to save your manually edited support points ?\n" +msgstr "Czy chcesz zapisać ręcznie edytowane punkty podpór?\n" + #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1024 msgid "Do you want to save your manually edited support points?" msgstr "Czy chcesz zapisać ręcznie edytowane punkty podpór?" @@ -1720,6 +1968,10 @@ msgstr "Nie powiadamiaj o nowych wersjach" msgid "Don't support bridges" msgstr "Nie używaj podpór pod mostami" +#: src/libslic3r/SLA/SLASupportTree.cpp:2161 +msgid "Done" +msgstr "Gotowe" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:20 msgid "Downgrade" msgstr "Deaktualizacja" @@ -1730,10 +1982,9 @@ msgstr "Deaktualizacja" msgid "Drag" msgstr "Przeciągnij" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:340 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:355 -msgid "Drop to bed" -msgstr "Upuść na stół" +#: lib/Slic3r/GUI/Plater/2D.pm:132 +msgid "Drag your objects here" +msgstr "Przeciągnij modele tutaj" #: src/libslic3r/PrintConfig.cpp:3044 msgid "Duplicate" @@ -1747,37 +1998,21 @@ msgstr "Duplikuj wg siatki" msgid "Dynamic" msgstr "Dynamicznie" -#: src/slic3r/GUI/MainFrame.cpp:708 -msgid "E&xport" -msgstr "&Eksport" - #: src/slic3r/GUI/GUI_ObjectList.cpp:238 msgid "edges fixed" msgstr "naprawiono krawędzie" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2690 -msgid "Edit Height Range" -msgstr "Edytuj Zakres Wysokości" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:373 -msgid "Editing" -msgstr "Edytowanie" - #: src/libslic3r/PrintConfig.cpp:349 msgid "Elephant foot compensation" msgstr "Kompensacja \"stopy słonia\"" -#: src/libslic3r/SLAPrint.cpp:681 -msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation." -msgstr "Podniesienie zbyt małe dla modelu. Użyj funkcji \"Podkładka wokół modelu\", aby wydrukować model bez podniesienia." - -#: src/libslic3r/SLAPrint.cpp:678 -msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation." -msgstr "Podniesienie zbyt małe dla modelu. Użyj funkcji \"Podkładka wokół modelu\", aby wydrukować model bez podniesienia." +#: src/libslic3r/SLAPrint.cpp:624 +msgid "Elevation is too low for object." +msgstr "Podniesienie jest zbyt niskie dla tego modelu." #: src/libslic3r/PrintConfig.cpp:1044 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. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode." -msgstr "Umieść M73 P[postęp w procentach] R[pozostały czas w minutach] co 1 minutę w G-code, aby pozwolić firmware na wyświetlanie dokładnego pozostałego czasu. Na ten moment jedynie firmware drukarki Prusa i3 MK3 rozpoznaje komendę M73. Firmware i3 MK3 wspiera również M73 Qxx Sxx dla trybu Stealth." +msgstr "Umieść M73 P[postęp w procentach] R[pozostały czas w minutach] co 1 minutę w G-code, aby pozwolić firmware na wyświetlanie dokładnego pozostałego czasu. Na ten moment jedynie firmware drukarki Prusa i3 MK3 rozpoznaje komendę M73. Firmware i3 MK3 wspiera również M73 Qxx Sxx dla trybu cichego." #: src/slic3r/GUI/Tab.cpp:1490 src/libslic3r/PrintConfig.cpp:1286 #: src/libslic3r/PrintConfig.cpp:2099 @@ -1792,10 +2027,6 @@ msgstr "Włącz automatyczne chłodzenie" msgid "Enable fan if layer print time is below" msgstr "Włącz chłodzenie jeśli czas druku warstwy wynosi poniżej" -#: src/libslic3r/PrintConfig.cpp:2321 -msgid "Enable horizontal mirroring of output images" -msgstr "Włącz odbicie poziome dla obrazów wyjściowych" - #: src/libslic3r/PrintConfig.cpp:1781 msgid "Enable support material generation." msgstr "Włącz generowanie materiału podporowego." @@ -1810,11 +2041,7 @@ msgstr "Włącz tą opcję aby dodawać komentarz opsiujący do każdej liniki p #: src/libslic3r/PrintConfig.cpp:2085 msgid "Enable variable layer height feature" -msgstr "Zmienna wysokość warstwy" - -#: src/libslic3r/PrintConfig.cpp:2328 -msgid "Enable vertical mirroring of output images" -msgstr "Włącz odbicie pionowe dla obrazów wyjściowych" +msgstr "Włącz funkcję zmiennej wysokości warstwy" #: src/slic3r/GUI/Tab.cpp:1570 src/slic3r/GUI/Tab.cpp:1955 #: src/libslic3r/PrintConfig.cpp:359 src/libslic3r/PrintConfig.cpp:369 @@ -1854,6 +2081,28 @@ msgstr "Wprowadź średnicę filamentu." msgid "Enter the diameter of your printer's hot end nozzle." msgstr "Wprowadź średnicę dyszy hotendu." +#: lib/Slic3r/GUI/Plater.pm:1158 +msgid "Enter the new max size for the selected object:" +msgstr "Wprowadź maksymalny rozmiar dla wybranego modelu:" + +#: lib/Slic3r/GUI/Plater.pm:1132 +#, perl-format +msgid "Enter the new size for the selected object (print bed: %smm):" +msgstr "Wprowadź rozmiar dla wybranego modelu (stół: %s mm):" + +#: lib/Slic3r/GUI/Plater.pm:992 +msgid "Enter the number of copies of the selected object:" +msgstr "Wprowadź ilość kopii wybranego modelu:" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Enter the rotation angle:" +msgstr "Wprowadź kąt obrotu:" + +#: lib/Slic3r/GUI/Plater.pm:1137 lib/Slic3r/GUI/Plater.pm:1163 +#, no-perl-format +msgid "Enter the scale % for the selected object:" +msgstr "Wprowadź skalę w % dla wybranego modelu:" + #: src/slic3r/GUI/ConfigWizard.cpp:608 msgid "Enter the temperature needed for extruding your filament." msgstr "Wprowadź temperaturę potrzebną do ekstruzji filamentu." @@ -1875,17 +2124,25 @@ msgid "Error" msgstr "Błąd" #: src/slic3r/GUI/FirmwareDialog.cpp:608 -#, possible-c-format +#, c-format msgid "Error accessing port at %s: %s" msgstr "Brak dostępu do portu %s: %s" +#: lib/Slic3r/GUI/Plater.pm:1760 +msgid "Error exporting 3MF file " +msgstr "Błąd eksportu pliku 3MF " + #: src/slic3r/GUI/Plater.cpp:3593 -#, possible-c-format +#, c-format msgid "Error exporting 3MF file %s" msgstr "Błąd eksportowania pliku 3MF %s" +#: lib/Slic3r/GUI/Plater.pm:1744 +msgid "Error exporting AMF file " +msgstr "Błąd eksportu pliku AMF " + #: src/slic3r/GUI/Plater.cpp:3564 -#, possible-c-format +#, c-format msgid "Error exporting AMF file %s" msgstr "Błąd eksportu pliku AMF %s" @@ -1897,32 +2154,40 @@ msgstr "Komunikat o błędzie" msgid "Error uploading to print host:" msgstr "Błąd wysyłania do serwera druku:" +#: xs/src/slic3r/Utils/OctoPrint.cpp:98 +msgid "Error while uploading to the OctoPrint server" +msgstr "Błąd podczas transferu do serwera OctoPrint" + #: src/libslic3r/Zipper.cpp:105 msgid "Error with zip archive" msgstr "Błąd archiwum .zip" +#: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1431 +msgid "Error! " +msgstr "Błąd! " + #: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/GUI_ObjectList.cpp:1443 msgid "Error!" msgstr "Błąd!" -#: src/slic3r/GUI/BedShapeDialog.cpp:482 -msgid "Error! Invalid model" -msgstr "Błąd! Nieprawidłowy model" - #: src/slic3r/GUI/FirmwareDialog.cpp:610 -#, possible-c-format +#, c-format msgid "Error: %s" msgstr "Błąd: %s" -#: src/slic3r/GUI/Plater.cpp:1503 -msgid "ERROR: not enough resources to execute a new job." -msgstr "BŁĄD: brak zasobów do wykonania nowego zadania." - #: src/slic3r/GUI/Plater.cpp:217 src/slic3r/GUI/Plater.cpp:1028 #: src/slic3r/GUI/Plater.cpp:1070 msgid "Estimated printing time" msgstr "Szacowany czas druku" +#: lib/Slic3r/GUI/Plater.pm:1618 +msgid "Estimated printing time (normal mode)" +msgstr "Szacowany czas druku (tryb normalny)" + +#: lib/Slic3r/GUI/Plater.pm:1620 +msgid "Estimated printing time (silent mode)" +msgstr "Szacowany czas druku (tryb cichy)" + #: src/slic3r/GUI/Plater.cpp:424 msgid "Everywhere" msgstr "Wszędzie" @@ -1931,19 +2196,28 @@ msgstr "Wszędzie" msgid "except for the first %1% layers." msgstr "za wyjątkiem pierwszych %1% warstw." +#: src/slic3r/GUI/PresetHints.cpp:46 +#, c-format +msgid "except for the first %d layers" +msgstr "za wyjątkiem pierwszych %d warstw" + +#: src/slic3r/GUI/PresetHints.cpp:50 +msgid "except for the first layer" +msgstr "za wyjątkiem pierwszej warstwy" + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "except for the first layer." msgstr "za wyjątkiem pierwszej warstwy." -#: src/libslic3r/Print.cpp:1285 -msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm" -msgstr "Wartość %1%=%2% mm jest zbyt duża, żeby mogła być wydrukowana z dyszą o średnicy %3% mm" - #: src/slic3r/GUI/UpdateDialogs.cpp:148 -#, possible-c-format +#, c-format msgid "Exit %s" msgstr "Wyjście %s" +#: src/slic3r/GUI/UpdateDialogs.cpp:144 +msgid "Exit Slic3r" +msgstr "Zamknij Slic3r" + #: src/libslic3r/PrintConfig.cpp:335 msgid "Experimental option for preventing support material from being generated under bridged areas." msgstr "Funkcja eksperymentalna mająca zapobiegać tworzeniu podpór pod mostami." @@ -1972,10 +2246,6 @@ msgstr "Eksport Konfigura&cji" msgid "Export &G-code" msgstr "Eksport &G-code" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export &toolpaths as OBJ" -msgstr "Ekspor&t ścieżek narzędzi jako OBJ" - #: src/libslic3r/PrintConfig.cpp:2949 msgid "Export 3MF" msgstr "Eksport 3MF" @@ -1996,6 +2266,10 @@ msgstr "Eksport pliku AMF:" msgid "Export as STL" msgstr "Eksport jako STL" +#: lib/Slic3r/GUI/Plater.pm:1416 +msgid "Export cancelled" +msgstr "Eksport anulowany" + #: src/slic3r/GUI/MainFrame.cpp:375 msgid "Export Config &Bundle" msgstr "Eksport Paczki Konfi&guracyjnej" @@ -2004,6 +2278,10 @@ msgstr "Eksport Paczki Konfi&guracyjnej" msgid "Export current configuration to file" msgstr "Eksport obecnej konfiguracji do pliku" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export current plate as 3MF" +msgstr "Eksport zawartości stołu jako 3MF" + #: src/slic3r/GUI/MainFrame.cpp:370 msgid "Export current plate as AMF" msgstr "Eksport zawartości stołu jako AMF" @@ -2029,13 +2307,21 @@ msgstr "Niepowodzenie eksportu" msgid "Export G-code" msgstr "Eksport G-code" +#: lib/Slic3r/GUI/MainFrame.pm:272 +msgid "Export G-code..." +msgstr "Eksport G-code..." + +#: lib/Slic3r/GUI/Plater.pm:322 +msgid "Export G-code…" +msgstr "Eksport G-code…" + #: src/libslic3r/PrintConfig.cpp:2931 msgid "Export OBJ" msgstr "Eksport OBJ" -#: src/slic3r/GUI/Plater.cpp:2531 -msgid "Export OBJ file:" -msgstr "Eksport pliku OBJ:" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export object as STL…" +msgstr "Eksport modelu jako STL…" #: src/slic3r/Utils/FixModelByWin10.cpp:368 msgid "Export of a temporary 3mf file failed" @@ -2049,9 +2335,25 @@ msgstr "Eksport zawartości stołu jako &AMF" msgid "Export plate as &STL" msgstr "Eksport zawartości stołu jako &STL" -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export plate as STL &including supports" -msgstr "Eksportuj zawartość stołu do STL zaw&ierając podpory" +#: lib/Slic3r/GUI/MainFrame.pm:281 +msgid "Export plate as 3MF..." +msgstr "Eksport zawartości stołu jako 3MF..." + +#: lib/Slic3r/GUI/MainFrame.pm:278 +msgid "Export plate as AMF..." +msgstr "Eksport zawartości stołu jako AMF..." + +#: src/slic3r/GUI/MainFrame.cpp:368 +msgid "Export plate as STL including supports" +msgstr "Eksport zawartości stołu jako STL wraz z podporami" + +#: lib/Slic3r/GUI/MainFrame.pm:275 +msgid "Export plate as STL..." +msgstr "Eksport zawartości stołu jako STL..." + +#: xs/src/slic3r/GUI/GUI.cpp:930 +msgid "Export print config" +msgstr "Export konfiguracji druku" #: src/libslic3r/PrintConfig.cpp:2943 msgid "Export SLA" @@ -2065,6 +2367,14 @@ msgstr "Eksport STL" msgid "Export STL file:" msgstr "Eksport pliku STL:" +#: lib/Slic3r/GUI/Plater.pm:326 +msgid "Export STL…" +msgstr "Eksport STL…" + +#: src/libslic3r/PrintConfig.cpp:2924 +msgid "Export SVG" +msgstr "Eksport SVG" + #: src/libslic3r/PrintConfig.cpp:2950 msgid "Export the model(s) as 3MF." msgstr "Eksport model(i) jako 3MF." @@ -2085,9 +2395,9 @@ msgstr "Eksport modeli jako STL." msgid "Export the selected object as STL file" msgstr "Eksport wybranego modelu jako plik STL" -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export toolpaths as OBJ" -msgstr "Eksport ścieżek narzędzi jako OBJ" +#: lib/Slic3r/GUI/Plater.pm:2307 +msgid "Export this single object as STL file" +msgstr "Eksport pojedynczego modelu jako plik STL" #: src/libslic3r/Print.cpp:1517 msgid "Exporting G-code" @@ -2102,10 +2412,6 @@ msgstr "Eksportowanie modelu..." msgid "Exporting source model" msgstr "Eksport modelu źródłowego" -#: src/libslic3r/SLAPrint.cpp:700 -msgid "Exposition time is out of printer profile bounds." -msgstr "Czas naświetlania jest poza zakresem profilu drukarki." - #: src/slic3r/GUI/Tab.cpp:3306 msgid "Exposure" msgstr "Naświetlanie" @@ -2148,7 +2454,7 @@ msgid "Extruder" msgstr "Ekstruder" #: src/slic3r/GUI/Tab.cpp:2253 src/libslic3r/GCode/PreviewData.cpp:475 -#, possible-c-format +#, c-format msgid "Extruder %d" msgstr "Ekstruder %d" @@ -2246,6 +2552,10 @@ msgstr "Niepowodzenie ładowania modelu wejściowego." msgid "Failed processing of the output_filename_format template." msgstr "Błąd przetwarzania wzoru output_filename_format (format nazwy pliku wyjściowego)." +#: src/slic3r/GUI/PresetHints.cpp:38 +msgid "Fan " +msgstr "Wentylator " + #: src/slic3r/GUI/PresetHints.cpp:41 msgid "Fan" msgstr "Wentylator" @@ -2264,11 +2574,7 @@ msgstr "Szybkie" #: src/libslic3r/PrintConfig.cpp:2241 msgid "Fast tilt" -msgstr "Szybkie przechylanie" - -#: src/slic3r/GUI/GUI_App.cpp:135 -msgid "Fatal error" -msgstr "Błąd krytyczny" +msgstr "Szybkie falowanie" #: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:537 #: src/libslic3r/GCode/PreviewData.cpp:394 @@ -2279,6 +2585,10 @@ msgstr "Rodzaj funkcji" msgid "Feature types" msgstr "Rodzaje funkcji" +#: lib/Slic3r/GUI/Plater.pm:256 +msgid "Fewer" +msgstr "Mniej" + #: src/slic3r/GUI/Plater.cpp:682 src/slic3r/GUI/Tab.cpp:1470 #: src/slic3r/GUI/Tab.cpp:1471 msgid "Filament" @@ -2296,6 +2606,10 @@ msgstr "Średnice filamentu i dyszy" msgid "Filament Diameter:" msgstr "Średnica Filamentu:" +#: src/libslic3r/PrintConfig.cpp:619 +msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves " +msgstr "Filament jest chłodzony przez ruch w tę i z powrotem wewnątrz rurek chłodzących. Określ ilość tych ruchów." + #: src/libslic3r/PrintConfig.cpp:620 msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves." msgstr "Filament jest chłodzony przez ruch w tę i z powrotem wewnątrz rurek chłodzących. Określ ilość tych ruchów." @@ -2308,10 +2622,6 @@ msgstr "Czas ładowania filamentu" msgid "Filament notes" msgstr "Notatki do filamentu" -#: src/slic3r/GUI/Tab.cpp:1502 src/slic3r/GUI/Tab.cpp:1557 -msgid "Filament Overrides" -msgstr "Nadpisywane Ustawienia" - #: src/libslic3r/PrintConfig.cpp:1312 msgid "Filament parking position" msgstr "Pozycja zatrzymania filamentu" @@ -2336,6 +2646,10 @@ msgstr "Czas rozładowania filamentu" msgid "filaments" msgstr "filamenty" +#: lib/Slic3r/GUI/Plater.pm:1555 +msgid "File added to print queue" +msgstr "Plik dodany do kolejki druku" + #: src/libslic3r/Zipper.cpp:75 msgid "file close failed" msgstr "niepowodzenia zamykania pliku" @@ -2404,6 +2718,14 @@ msgstr "Wzór dla ogólnego wypełnienia o niskiej gęstości." msgid "Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells." msgstr "Wzór wypełnienia górnej warstwy. Ma wpływ jedynie na zewnętrzne widoczne warstwy, nie ma wpływu na przylegające do nich powłoki zwartego wypełnienia." +#: xs/src/libslic3r/PrintConfig.cpp:285 +msgid "Fill pattern for top/bottom infill. This only affects the external visible layer, and not its adjacent solid shells." +msgstr "Wzór wypełnienia górnego/dolnego. Ma wpływ jedynie na zewnętrzne widoczne warstwy, nie ma wpływu na przylegające do nich powłoki zwartego wypełnienia." + +#: src/libslic3r/SLA/SLASupportTree.cpp:2154 +msgid "Filtering" +msgstr "Filtrowanie" + #: src/slic3r/GUI/BonjourDialog.cpp:225 msgid "Finished" msgstr "Zakończono" @@ -2449,18 +2771,30 @@ msgstr "Prędkość pierwszej warstwy" msgid "First layer volumetric" msgstr "Na pierwszej warstwie" +#: src/libslic3r/Print.cpp:1313 +msgid "first_layer_height" +msgstr "first_layer_height" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix STL through Netfabb" +msgstr "Napraw STL używając Netfab" + +#: lib/Slic3r/GUI/Plater.pm:2311 +msgid "Fix the model by sending it to a Netfabb cloud service through Windows 10 API" +msgstr "Napraw model wysyłając go do usługi w chmurze Netfab przez API Windows 10" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1210 msgid "Fix through the Netfabb" msgstr "Napraw używając Netfabb" -#: src/slic3r/GUI/Plater.cpp:3072 -msgid "Fix Throught NetFabb" -msgstr "Napraw przez NetFabb" - #: src/slic3r/GUI/GUI_App.cpp:685 msgid "Flash printer &firmware" msgstr "Flash &firmware drukarki" +#: xs/src/slic3r/GUI/GUI.cpp:356 +msgid "Flash printer firmware" +msgstr "Flashowanie firmware drukarki" + #: src/slic3r/GUI/FirmwareDialog.cpp:146 msgid "Flash!" msgstr "Flash!" @@ -2477,6 +2811,10 @@ msgstr "Niepowodzenie flashowania" msgid "Flashing failed. Please see the avrdude log below." msgstr "Flashowanie nie powiodło się. Zobacz log z avrdude poniżej." +#: src/slic3r/GUI/FirmwareDialog.cpp:192 +msgid "Flashing failed: " +msgstr "Niepowodzenie flashowania:" + #: src/slic3r/GUI/FirmwareDialog.cpp:148 msgid "Flashing in progress. Please do not disconnect the printer!" msgstr "Flashowanie w toku. Proszę nie odłączać drukarki!" @@ -2502,9 +2840,24 @@ msgid "For support enforcers only" msgstr "Tylko dla wymuszania podpór" #. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3345 -msgid "for the left button: \tindicates a non-system (or non-default) preset,\nfor the right button: \tindicates that the settings hasn't been modified." -msgstr "dla lewego przycisku: wskazuje na niesystemowy (lub inny niż domyślny) zestaw ustawień,\ndla prawego przycisku: wskazuje, że ustawienia nie zostały zmodyfikowane." +#: src/slic3r/GUI/Tab.cpp:3078 +msgid "" +"for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"dla lewego przycisku: wskazuje na niesystemowy zestaw ustawień,\n" +"dla prawego przycisku: wskazuje, że ustawienia nie zostały zmodyfikowane." + +#: src/slic3r/GUI/Tab.cpp:1295 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "" +"Aby wieża czyszcząca działała przy rozpuszczalnych podporach, warstwy podporowe muszą być zsynchronizowane z warstwami modelu.\n" +"\n" +"Zsynchronizować warstwy podporowe aby włączyć wieżę czyszczącą?" #: src/libslic3r/Print.cpp:1302 msgid "For the Wipe Tower to work with the soluble supports, the support layers need to be synchronized with the object layers." @@ -2522,10 +2875,6 @@ msgstr "Wymuś generowanie zwartych powłok pomiędzy przylegającymi do siebie msgid "From" msgstr "Od" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1853 -msgid "From Object List You can't delete the last solid part from object." -msgstr "Nie możesz usunąć ostatniej bryły modelu z Listy Modeli." - #: src/slic3r/GUI/MainFrame.cpp:525 msgid "Front" msgstr "Przód" @@ -2534,10 +2883,18 @@ msgstr "Przód" msgid "Front View" msgstr "Widok przodu" +#: src/slic3r/GUI/Tab.cpp:2151 +msgid "Full Power" +msgstr "Pełna Moc" + #: src/slic3r/GUI/MainFrame.cpp:677 msgid "G-code" msgstr "G-code" +#: lib/Slic3r/GUI/Plater.pm:1561 +msgid "G-code file exported to " +msgstr "Plik G-code wyeksportowany do " + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:87 msgid "G-code file exported to %1%" msgstr "Plik G-code wyeksportowany do %1%" @@ -2564,6 +2921,10 @@ msgstr "Ogólne" 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 "Generuj ilość pętli skirtu nie mniejszą niż określona aby zużyć taką ilość filamentu na dolnej warstwie. Dla drukarek z kilkoma ekstuderami ta wartość jest stosowana dla każdego z nich." +#: src/libslic3r/SLA/SLASupportTree.cpp:2155 +msgid "Generate pinheads" +msgstr "Generowanie łączników podpór" + #: src/libslic3r/PrintConfig.cpp:1779 msgid "Generate support material" msgstr "Generuj materiał podporowy" @@ -2618,43 +2979,27 @@ msgstr "Źródłowy" #: src/slic3r/GUI/KBShortcutsDialog.cpp:144 msgid "Gizmo cut" -msgstr "Cięcie przy pomocy \"uchwytów\"" +msgstr "Cięcie przy pomocy \"wihajstrów\"" #: src/slic3r/GUI/KBShortcutsDialog.cpp:141 msgid "Gizmo move" -msgstr "Przemieszczanie przy pomocy \"uchwytów\"" +msgstr "Przemieszczanie przy pomocy \"wihajstrów\"" #: src/slic3r/GUI/KBShortcutsDialog.cpp:145 msgid "Gizmo Place face on bed" -msgstr "Położenie na płaszczyźnie przy pomocy \"uchwytów\"" +msgstr "Położenie na płaszczyźnie przy pomocy \"wihajstrów\"" #: src/slic3r/GUI/KBShortcutsDialog.cpp:143 msgid "Gizmo rotate" -msgstr "Obracanie przy pomocy \"uchwytów\"" +msgstr "Obracanie przy pomocy \"wihajstrów\"" #: src/slic3r/GUI/KBShortcutsDialog.cpp:142 msgid "Gizmo scale" -msgstr "Skalowanie przy pomocy \"uchwytów\"" +msgstr "Skalowanie przy pomocy \"wihajstrów\"" #: src/slic3r/GUI/KBShortcutsDialog.cpp:146 msgid "Gizmo SLA support points" -msgstr "Punkty podpór SLA przy pomocy \"uchwytów\"" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:641 -msgid "Gizmo-Move" -msgstr "Uchwyt-Przesuń" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:569 -msgid "Gizmo-Place on Face" -msgstr "Uchwyt-Połóż na Płaszczyźnie" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:651 -msgid "Gizmo-Rotate" -msgstr "Uchwyt-Obróć" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:646 -msgid "Gizmo-Scale" -msgstr "Uchwyt-Skaluj" +msgstr "Punkty podpór SLA przy pomocy \"wihajstrów\"" #: src/slic3r/GUI/AboutDialog.cpp:95 msgid "GNU Affero General Public License, version 3" @@ -2684,6 +3029,14 @@ msgstr "ma następujące niezapisane zmiany:" msgid "Head diameter" msgstr "Średnica łącznika" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:838 +msgid "Head diameter: " +msgstr "Średnica łącznika:" + +#: src/slic3r/GUI/Tab.cpp:3483 +msgid "Head penetration should not be greater than the head width." +msgstr "Przenikanie łącznika podpory nie powinno mieć wartości większej niż jego szerokość." + #: src/libslic3r/PrintConfig.cpp:822 msgid "Heated build plate temperature for the first layer. Set this to zero to disable bed temperature control commands in the output." msgstr "Temperatura podgrzewanego stołu dla pierwszej warstwy. Ustaw zero aby wyłączyć komendy kontrolujące temperaturę stołu w pliku wyjściowym." @@ -2704,23 +3057,24 @@ msgstr "Wysokość skirtu wyrażona w warstwach. Ustawienie wysokiej wartości s msgid "Height of the display" msgstr "Wysokość wyświetlacza" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1350 -msgid "Height range Modifier" -msgstr "Modyfikator zakresu wysokości" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3650 src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Height ranges" -msgstr "Zakres wysokości" +#: src/libslic3r/PrintConfig.cpp:225 +msgid "Heights at which a filament change is to occur. " +msgstr "Wysokość w osi Z, na której ma nastąpić zmiana filamentu." #: src/libslic3r/PrintConfig.cpp:226 msgid "Heights at which a filament change is to occur." msgstr "Wysokość w osi Z, na której ma nastąpić zmiana filamentu." #: src/slic3r/GUI/ConfigWizard.cpp:300 -#, possible-c-format +#, c-format msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print." msgstr "Witaj w %s! Ten %s pomoże Ci z konfiguracją początkową - wszystko będzie gotowe do drukowania po zaledwie kilku kliknięciach." +#: src/slic3r/GUI/ConfigWizard.cpp:290 +#, c-format +msgid "Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial configuration; just a few settings and you will be ready to print." +msgstr "Witaj w Slic3r Prusa Edition! Ten %s pomoże we wstępnej konfiguracji - tylko kilka ustawień dzieli Cię od gotowości do drukowania." + #: src/libslic3r/PrintConfig.cpp:2976 msgid "Help" msgstr "Pomoc" @@ -2778,20 +3132,20 @@ msgid "Hostname, IP or URL" msgstr "Nazwa Hosta, IP lub URL" #: src/slic3r/GUI/Tab.cpp:136 -msgid "Hover the cursor over buttons to find more information \nor click this button." -msgstr "Umieść kursor nad przyciskiem aby uzyskać więcej informacji\nlub kliknij ten przycisk." - -#: src/libslic3r/PrintConfig.cpp:2734 -msgid "How much should the tiny connectors penetrate into the model body." -msgstr "Głębokość, na którą malutkie łączniki podpór powinny wnikać w powłokę modelu." +msgid "" +"Hover the cursor over buttons to find more information \n" +"or click this button." +msgstr "" +"Umieść kursor nad przyciskiem aby uzyskać więcej informacji\n" +"lub kliknij ten przycisk." #: src/libslic3r/PrintConfig.cpp:2380 msgid "How much the pinhead has to penetrate the model surface" msgstr "Głębokość, na którą łącznik podpory powinien wnikać w powłokę modelu" -#: src/libslic3r/PrintConfig.cpp:2642 -msgid "How much the supports should lift up the supported object. If \"Pad around object\" is enabled, this value is ignored." -msgstr "Odległość, na którą model zostanie podniesiony na podporach. Jeśli opcja \"Podkładka wokół modelu\" jest włączona, to ten parametr zostanie zignorowany." +#: src/libslic3r/PrintConfig.cpp:2491 +msgid "How much the supports should lift up the supported object." +msgstr "Wysokość, na którą model powinien zostać podniesiony na podporach." #: src/libslic3r/PrintConfig.cpp:95 msgid "HTTPS CA File" @@ -2802,13 +3156,23 @@ msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self msgstr "Plik HTTPS CA jest opcjonalny. Jest potrzebny jedynie w sytuacji, gdy używasz HTTPS z certyfikatem samopodpisanym." #: src/slic3r/GUI/Tab.cpp:1773 -#, possible-c-format -msgid "HTTPS CA File:\n \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." -msgstr "Plik certyfikatu HTTPS:\nW tym systemie, %s używa certyfikatu HTTPS z magazynu systemowego (Certificate Store) lub Keychain. Aby użyć własnego certyfikatu, zaimportuj plik do Certificate Store / Keychain." +#, c-format +msgid "" +"HTTPS CA File:\n" +" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n" +" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"Plik certyfikatu HTTPS:\n" +"W tym systemie, %s używa certyfikatu HTTPS z magazynu systemowego (Certificate Store) lub Keychain. Aby użyć własnego certyfikatu, zaimportuj plik do Certificate Store / Keychain." -#: src/slic3r/GUI/Preferences.cpp:192 -msgid "Icon size in a respect to the default size" -msgstr "Rozmiar ikon w odniesieniu do domyślnego" +#: src/slic3r/GUI/Tab.cpp:1725 +msgid "" +"HTTPS CA File:\n" +"\tOn this system, Slic3r uses HTTPS certificates from the system Certificate Store or Keychain.\n" +"\tTo use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "" +"Plik certyfikatu HTTPS:\n" +"W tym systemie, PrusaSlicer używa certyfikatu HTTPS z magazynu systemowego (Certificate Store) lub Keychain. Aby użyć własnego certyfikatu, zaimportuj plik do Certificate Store / Keychain." #: src/slic3r/GUI/PrintHostDialogs.cpp:148 msgid "ID" @@ -2819,12 +3183,12 @@ msgid "If checked, supports will be generated automatically based on the overhan msgstr "Jeśli ta opcja będzie zaznaczona, to podpory zostaną wygenerowane automatycznie, na podstawie ustawionego progu zwisu. Jeśli ją odznaczysz, to podpory będą generowane jedynie w środku modyfikatora wymuszającego podpory." #: src/slic3r/GUI/ConfigWizard.cpp:413 -#, possible-c-format +#, c-format msgid "If enabled, %s checks for new application versions online. When a new version becomes available, a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." msgstr "To ustawienie spowoduje wyszukiwanie nowych wersji aplikacji %s online. Po pojawieniu się nowej wersji, przy kolejnym uruchomieniu zostanie wyświetlone powiadomienie (nie pojawi się, gdy aplikacja będzie uruchomiona). Jest to tylko mechanizm powiadamiania - nie instaluje aktualizacji automatycznie." #: src/slic3r/GUI/ConfigWizard.cpp:423 -#, possible-c-format +#, c-format msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup." msgstr "Jeśli aktywna, to %s będzie pobierać aktualizacje wbudowanych zestawów ustawień w tle. Będą one pobierane do folderu tymczasowego. Opcja aktualizacji ustawień będzie oferowana przy starcie aplikacji." @@ -2833,8 +3197,12 @@ msgid "If enabled, all printing extruders will be primed at the front edge of th msgstr "Jeśli ta opcja będzie aktywna, to wszystkie ekstrudery będą czyszczone na przedniej krawędzi powierzchni roboczej na początku wydruku." #: src/slic3r/GUI/Preferences.cpp:63 -msgid "If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." -msgstr "Włączenie automatycznego sprawdzania dostępności nowych wersji PrusaSlicer online. Pojawienie się nowej wersji spowoduje wyświetlenie powiadomienia przy starcie aplikacji (nigdy podczas jej pracy). Ta funkcja służy tylko powiadamianiu, nie instaluje aktualizacji automatycznie." +msgid "If enabled, Slic3r checks for new versions of " +msgstr "Po włączeniu, PrusaSlicer sprawdzi dostępność nowych wersji" + +#: src/slic3r/GUI/ConfigWizard.cpp:401 src/slic3r/GUI/Preferences.cpp:61 +msgid "If enabled, Slic3r checks for new versions of Slic3r PE online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." +msgstr "Włączenie automatycznego sprawdzania dostępności nowych wersji Slic3r PE online. Pojawienie się nowej wersji spowoduje wyświetlenie powiadomienia przy starcie aplikacji (nigdy podczas jej pracy). Ta funkcja służy tylko powiadamianiu, nie instaluje aktualizacji automatycznie." #: src/slic3r/GUI/Preferences.cpp:71 msgid "If enabled, Slic3r downloads updates of built-in system presets in the background. These updates are downloaded into a separate temporary location. When a new preset version becomes available it is offered at application startup." @@ -2844,18 +3212,15 @@ msgstr "Włączenie powoduje pobieranie wbudowanych systemowych zestawów ustawi 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 "Po włączeniu podgląd 3D będzie renderowany w rozdzielczości Retina. Wyłącz tę opcję w przypadku wystąpienia problemów z wydajnością 3D." -#: src/slic3r/GUI/Preferences.cpp:112 -msgid "If enabled, use perspective camera. If not enabled, use orthographic camera." -msgstr "Po włączeniu będzie wyświetlony widok perspektywiczny. Po wyłączeniu, ortograficzny." - -#: src/slic3r/GUI/Preferences.cpp:119 -msgid "If enabled, you can change size of toolbar icons manually." -msgstr "Włączenie umożliwi ręczną zmianę rozmiaru ikon pasków narzędzi." - #: src/slic3r/GUI/PresetHints.cpp:28 msgid "If estimated layer time is below ~%1%s, fan will run at %2%%% and print speed will be reduced so that no less than %3%s are spent on that layer (however, speed will never be reduced below %4%mm/s)." msgstr "Jeśli szacowany czas druku warstwy jest niższy niż ~%1%s, wentylator będzie pracował na %2%%% a prędkość druku zostanie obniżona tak, aby warstwa była drukowana przez nie mniej niż %3%s (jednakże prędkość nie zejdzie poniżej %4%mm/s)." +#: src/slic3r/GUI/PresetHints.cpp:28 +#, c-format +msgid "If estimated layer time is below ~%ds, fan will run at %d%% and print speed will be reduced so that no less than %ds are spent on that layer (however, speed will never be reduced below %dmm/s)." +msgstr "Jeśli szacowany czas druku warstwy jest niższy niż ~%d s, wentylator będzie pracował na %d %% a prędkość druku zostanie obniżona tak, aby warstwa była drukowana przez nie mniej niż %ds (jednakże prędkość nie zejdzie poniżej %dmm/s)." + #: src/libslic3r/PrintConfig.cpp:853 msgid "If expressed as absolute value in mm/s, this speed will be applied to all the print moves of the first layer, regardless of their type. If expressed as a percentage (for example: 40%) it will scale the default speeds." msgstr "Jeśli ustawisz wartość bezwzględną wyrażoną w mm/s, taka prędkość będzie zastosowana dla wszystkich ruchów drukujących dla pierwszej warstwy, nie zależnie od ich rodzajów. Jeśli ustawisz wartość procentową (np. 40%), będzie ona skalowana wg domyślnej prędkości." @@ -2884,6 +3249,10 @@ msgstr "Spowoduje, że Slic3r będzie automatycznie procesował modele jak tylko msgid "If this is enabled, Slic3r will prompt the last output directory instead of the one containing the input files." msgstr "Włączenie spowoduje, że Slic3r będzie za każdym razem pytał gdzie wyeksportować plik zamiast używać katalogu z plikami wejściowymi." +#: src/slic3r/GUI/Preferences.cpp:95 +msgid "If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may try to check this checkbox. This will disable the layer height editing and anti aliasing, so it is likely better to upgrade your graphics driver." +msgstr "Jeśli napotykasz błędy spowodowane problematycznym sterownikiem OpenGL 2.0, spróbuj zaznaczyć to pole. Wyłączy to edycję wysokości warstwy i anti-aliasing, więc prawdopodobnie lepiej będzie zaktualizować sterowniki karty graficznej." + #: src/libslic3r/PrintConfig.cpp:1492 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 "Jeśli ustawisz tu wartość dodatnią to oś Z wykona szybki ruch w górę przy każdej retrakcji. Przy używaniu kilku ekstruderów tylko ustawienia pierwszego z nich będą brane pod uwagę." @@ -2924,14 +3293,6 @@ msgstr "Import Paczki Konfi&guracyjnej" msgid "Import Config from &project" msgstr "Import Konfiguracji z &projektu" -#: src/slic3r/GUI/Plater.cpp:4016 -msgid "Import Object" -msgstr "Import Modelu" - -#: src/slic3r/GUI/Plater.cpp:4020 -msgid "Import Objects" -msgstr "Importuj Modele" - #: src/slic3r/Utils/FixModelByWin10.cpp:383 msgid "Import of the repaired 3mf file failed" msgstr "Niepowodzenie importu naprawionego pliku 3MF" @@ -2945,7 +3306,7 @@ msgid "Import STL/OBJ/AMF/3MF without config, keep bed" msgstr "Otwórz projekt STL/OBJ/AMF/3MF bez konfiguracji, zachowaj stół" #: src/slic3r/GUI/GUI_ObjectList.cpp:2416 -#, possible-c-format +#, c-format msgid "In this mode you can select only other %s Items%s" msgstr "W tym trybie możesz wybrać jedynie %s elementów %s" @@ -2954,28 +3315,41 @@ msgid "Incompatible bundles:" msgstr "Niekompatybilne zestawy ustawień:" #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70 -#, possible-c-format +#, c-format msgid "Incompatible with this %s" msgstr "Brak kompatybilności z %s" -#: src/slic3r/GUI/Plater.cpp:4091 -msgid "Increase Instances" -msgstr "Zwiększ ilość kopii" +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 +msgid "Incompatible with this Slic3r" +msgstr "Niekompatybilne z tą wersją Slic3r" + +#: src/slic3r/GUI/Plater.cpp:2813 src/slic3r/GUI/Plater.cpp:2825 +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Increase copies" +msgstr "Zwiększ kopie" #. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3338 -msgid "indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\nClick the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values." -msgstr "oznacza, że niektóre ustawienia zostały zmodyfikowane i nie odpowiadają wartościom systemowym (lub domyślnym) w obecnej grupie opcji. \nKliknij ikonę OTWARTEJ KŁÓDKI, aby zresetować wszystkie ustawienia obecnej grupy ustawień do wartości systemowych (lub domyślnych)." +#: src/slic3r/GUI/Tab.cpp:3071 +msgid "" +"indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"oznacza, że niektóre ustawienia zostały zmodyfikowane i nie odpowiadają wartościom systemowym w obecnej grupie opcji.\n" +"Kliknij ikonę OTWARTEJ KŁÓDKI aby zresetować wszystkie ustawienia obecnej grupy ustawień do wartości systemowych." #. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3334 -msgid "indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "wskazuje na to, że ustawienia są takie same jak systemowe (lub domyślne) wartości dla danej grupy opcji" +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "indicates that the settings are the same as the system values for the current option group" +msgstr "oznacza, że ustawienia są takie same jak wartości systemowe w obecnej grupie ustawień" #. TRN Description for "BACK ARROW" #: src/slic3r/GUI/Tab.cpp:3083 -msgid "indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick the BACK ARROW icon to reset all settings for the current option group to the last saved preset." -msgstr "oznacza, że ustawienia zostały zmodyfikowane i nie odpowiadają tym z ostatnio zapisanego zestawu ustawień dla obecnej grupy opcji.\nKliknij ikonę STRZAŁKI W TYŁ aby zresetować wszystkie ustawienia w obecnej grupie opcji do tych z ostatnio zapisanego zestawu ustawień." +msgid "" +"indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." +msgstr "" +"oznacza, że ustawienia zostały zmodyfikowane i nie odpowiadają tym z ostatnio zapisanego zestawu ustawień dla obecnej grupy opcji.\n" +"Kliknij ikonę STRZAŁKI W TYŁ aby zresetować wszystkie ustawienia w obecnej grupie opcji do tych z ostatnio zapisanego zestawu ustawień." #: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:69 #: src/slic3r/GUI/GUI_ObjectList.cpp:510 src/slic3r/GUI/Plater.cpp:439 @@ -3019,10 +3393,6 @@ msgstr "Info" msgid "Inherits profile" msgstr "Dziedziczy profil" -#: src/libslic3r/SLAPrint.cpp:707 -msgid "Initial exposition time is out of printer profile bounds." -msgstr "Początkowy czas naświetlania jest poza zakresem profilu drukarki." - #: src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2318 msgid "Initial exposure time" msgstr "Początkowy czas naświetlania" @@ -3040,7 +3410,7 @@ msgid "Inspect / activate configuration snapshots" msgstr "Sprawdzenie / aktywacja zrzutów konfiguracji" #: src/slic3r/GUI/wxExtensions.cpp:407 src/slic3r/GUI/wxExtensions.cpp:474 -#, possible-c-format +#, c-format msgid "Instance %d" msgstr "Kopia %d" @@ -3052,9 +3422,10 @@ msgstr "Manipulacja kopią modelu" msgid "Instances" msgstr "Instancje (kopie)" -#: src/slic3r/GUI/GUI_ObjectList.cpp:934 src/slic3r/GUI/GUI_ObjectList.cpp:3346 -msgid "Instances to Separated Objects" -msgstr "Kopie jako Osobne Modele" +#: src/slic3r/GUI/wxExtensions.cpp:365 +#, c-format +msgid "Instance_%d" +msgstr "Instancja_%d" #: src/libslic3r/PrintConfig.cpp:1886 msgid "Interface layers" @@ -3080,19 +3451,22 @@ msgstr "błąd wewnętrzny" msgid "Internal infill" msgstr "Wypełnienie wewnętrzne" +#: xs/src/slic3r/Utils/OctoPrint.cpp:120 +msgid "Invalid API key" +msgstr "Niewłaściwy klucz API" + #: src/slic3r/GUI/Plater.cpp:2397 msgid "Invalid data" msgstr "Nieprawidłowe dane" -#: src/slic3r/GUI/BedShapeDialog.cpp:471 src/slic3r/GUI/BedShapeDialog.cpp:520 -#: src/slic3r/GUI/BedShapeDialog.cpp:543 -msgid "Invalid file format." -msgstr "Nieprawidłowy format pliku." - #: src/libslic3r/Zipper.cpp:83 msgid "invalid filename" msgstr "nieprawidłowa nazwa" +#: src/slic3r/GUI/Tab.cpp:3484 +msgid "Invalid Head penetration" +msgstr "Nieprawidłowe przenikanie łączników podpór" + #: src/libslic3r/Zipper.cpp:51 msgid "invalid header or archive is corrupted" msgstr "niewłaściwy nagłówek lub uszkodzone archiwum" @@ -3105,6 +3479,19 @@ msgstr "Nieprawidłowa wartość numeryczna." msgid "invalid parameter" msgstr "nieprawidłowy parametr" +#: src/slic3r/GUI/Tab.cpp:3497 +msgid "Invalid pinhead diameter" +msgstr "Nieprawidłowa średnica łącznika" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Invalid rotation angle entered" +msgstr "Nieprawidłowa wartość obrotu" + +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +#: lib/Slic3r/GUI/Plater.pm:1158 lib/Slic3r/GUI/Plater.pm:1163 +msgid "Invalid scaling value entered" +msgstr "Nieprawidłowa wartość skalowania" + #. TRN "Slic3r _is licensed under the_ License" #: src/slic3r/GUI/AboutDialog.cpp:94 msgid "is licensed under the" @@ -3126,6 +3513,10 @@ msgstr "Izometryczny" msgid "Iso View" msgstr "Widok izometryczny" +#: src/slic3r/GUI/Tab.cpp:914 +msgid "It can't be deleted or modified. " +msgstr "Nie można usunąć ani zmodyfikować. " + #: src/slic3r/GUI/Tab.cpp:925 msgid "It can't be deleted or modified." msgstr "Nie można usunąć ani zmodyfikować." @@ -3134,6 +3525,14 @@ msgstr "Nie można usunąć ani zmodyfikować." 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 "Zwiększenie prądu podawanego do silnika ekstrudera może mieć pozytywny wpływ podczas zmiany filamentu, pomagając kształtować końcówkę przez wyciskanie oraz przepychać filament z nieprawidłowo ukształtowaną końcówką." +#: src/slic3r/GUI/Tab.cpp:907 +msgid "It's a default preset." +msgstr "Domyślny zestaw ustawień." + +#: src/slic3r/GUI/Tab.cpp:908 +msgid "It's a system preset." +msgstr "To jest systemowy zestaw ustawień." + #: src/slic3r/GUI/GUI.cpp:142 src/slic3r/GUI/Tab.cpp:2796 msgid "It's impossible to print multi-part object(s) with SLA technology." msgstr "Drukowanie modeli złożonych z wielu elementów jest niemożliwe w technologii SLA." @@ -3178,14 +3577,17 @@ msgstr "Język" msgid "Language selection" msgstr "Wybór języka" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1770 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1872 -msgid "Last instance of an object cannot be deleted." -msgstr "Ostatnia kopia modelu nie może zostać usunięta." +#: src/slic3r/GUI/GLCanvas3D.cpp:1694 +msgid "Last frame" +msgstr "Ostatnia klatka" + +#: lib/Slic3r/GUI/Plater.pm:265 +msgid "Layer Editing" +msgstr "Edycja Warstw" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2994 -msgid "Layer" -msgstr "Warstwa" +#: lib/Slic3r/GUI/Plater.pm:280 +msgid "Layer editing" +msgstr "Edycja warstw" #: src/slic3r/GUI/Tab.cpp:998 src/libslic3r/PrintConfig.cpp:55 msgid "Layer height" @@ -3199,10 +3601,6 @@ msgstr "Wysokość pierwszej warstwy nie może być większa od średnicy dyszy" msgid "Layer height limits" msgstr "Limit wysokości warstw" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2109 -msgid "Layer range Settings to modify" -msgstr "Zakres warstw dla modyfikacji ustawień" - #: src/libslic3r/PrintConfig.cpp:326 src/libslic3r/PrintConfig.cpp:946 #: src/libslic3r/PrintConfig.cpp:1435 src/libslic3r/PrintConfig.cpp:1620 #: src/libslic3r/PrintConfig.cpp:1681 src/libslic3r/PrintConfig.cpp:1844 @@ -3229,9 +3627,9 @@ msgstr "Warstwy i obrysy" msgid "Layers and Perimeters" msgstr "Warstwy i Obrysy" -#: src/slic3r/GUI/GLCanvas3D.cpp:526 -msgid "Layers heights" -msgstr "Wysokości warstw" +#: src/slic3r/GUI/GLCanvas3D.cpp:3517 +msgid "Layers editing" +msgstr "Edycja warstw" #: src/slic3r/GUI/KBShortcutsDialog.cpp:189 msgid "Layers Slider Shortcuts" @@ -3259,26 +3657,25 @@ msgstr "Lewo" msgid "Left click" msgstr "Lewy przycisk" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:597 +msgid "Left mouse click - add point" +msgstr "Lewy przycisk myszy - dodaj punkt" + #: src/slic3r/GUI/MainFrame.cpp:527 msgid "Left View" msgstr "Widok lewy" -#: src/slic3r/GUI/GUI_Preview.cpp:255 -msgid "Legend" -msgstr "Legenda" - #: src/libslic3r/PrintConfig.cpp:1473 src/libslic3r/PrintConfig.cpp:1481 msgid "Length" msgstr "Długość" +#: src/libslic3r/PrintConfig.cpp:292 +msgid "Length of the cooling tube to limit space for cooling moves inside it " +msgstr "Długość rurki chłodzącej ograniczająca ruchy chłodzące wewnątrz jej " + #: src/libslic3r/PrintConfig.cpp:293 msgid "Length of the cooling tube to limit space for cooling moves inside it." -msgstr "Długość rurki chłodzącej ograniczająca ruchy chłodzące do jej zakresu." - -#. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:124 -msgid "License agreements of all following programs (libraries) are part of application license agreement" -msgstr "Umowy licencyjne dla wszystkich części programu (bibliotek) są częścią umowy licencyjnej programu" +msgstr "Długość rurki chłodzącej ograniczająca ruchy chłodzące wewnątrz jej." #: src/libslic3r/PrintConfig.cpp:1491 msgid "Lift Z" @@ -3324,33 +3721,17 @@ msgstr "Wczytaj konfigurację z określonego pliku. Może być użyte więcej ni msgid "Load exported configuration file" msgstr "Wczytaj wyeksportowany plik konfiguracyjny" -#: src/slic3r/GUI/Plater.cpp:1271 -msgid "Load File" -msgstr "Wczytaj Plik" - -#: src/slic3r/GUI/Plater.cpp:1275 -msgid "Load Files" -msgstr "Wczytaj Pliki" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1585 -msgid "Load Part" -msgstr "Wczytaj Element" - #: src/slic3r/GUI/MainFrame.cpp:357 msgid "Load presets from a bundle" msgstr "Wczytaj zestaw ustawień" -#: src/slic3r/GUI/Plater.cpp:3992 -msgid "Load Project" -msgstr "Wczytaj Projekt" - #: src/slic3r/GUI/BedShapeDialog.cpp:97 msgid "Load shape from STL..." msgstr "Wczytaj kształt z STL..." -#: src/slic3r/GUI/BedShapeDialog.cpp:181 src/slic3r/GUI/BedShapeDialog.cpp:249 -msgid "Load..." -msgstr "Załaduje..." +#: lib/Slic3r/GUI/Plater.pm:779 +msgid "Loaded " +msgstr "Wczytano " #: src/slic3r/GUI/WipeTowerDialog.cpp:235 msgid "loaded" @@ -3364,6 +3745,10 @@ msgstr "Wczytano" msgid "Loading" msgstr "Ładowanie" +#: src/slic3r/GUI/GUI_App.cpp:339 +msgid "Loading of a current presets" +msgstr "Ładowanie zestawów ustawień" + #: src/slic3r/GUI/GUI_App.cpp:407 msgid "Loading of a mode view" msgstr "Ładowanie trybu wyświetlania" @@ -3385,6 +3770,10 @@ msgstr "Prędkość ładowania" msgid "Loading speed at the start" msgstr "Początkowa prędkość ładowania" +#: lib/Slic3r/GUI/Plater.pm:713 +msgid "Loading…" +msgstr "Wczytywanie…" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:41 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 msgid "Local coordinates" @@ -3398,13 +3787,17 @@ msgstr "Zablokuj podpory pod nowymi wyspami" msgid "LOCKED LOCK" msgstr "ZAMKNIĘTA KŁÓDKA" -#: src/slic3r/GUI/Tab.cpp:3360 -msgid "LOCKED LOCK icon indicates that the settings are the same as the system (or default) values for the current option group" -msgstr "ZAMKNIĘTA KŁÓDKA oznacza, że ustawienia są takie same jak wartości systemowe (lub domyślne) w obecnej grupie ustawień" +#: src/slic3r/GUI/Tab.cpp:3103 +msgid "LOCKED LOCK icon indicates that the settings are the same as the system values for the current option group" +msgstr "ZAMKNIĘTA KŁÓDKA oznacza, że ustawienia są takie same jak wartości systemowe w obecnej grupie ustawień" + +#: src/slic3r/GUI/Tab.cpp:3119 +msgid "LOCKED LOCK icon indicates that the value is the same as the system value." +msgstr "ZAMKNIĘTA KŁÓDKA oznacza, że ustawienia są takie same jak wartości systemowe." -#: src/slic3r/GUI/Tab.cpp:3376 -msgid "LOCKED LOCK icon indicates that the value is the same as the system (or default) value." -msgstr "ZAMKNIĘTA KŁÓDKA oznacza, że wartości są takie same jak systemowe (lub domyślne)." +#: src/slic3r/GUI/Tab.cpp:3064 +msgid "LOCKED LOCK;indicates that the settings are the same as the system values for the current option group" +msgstr "ZAMKNIĘTA KŁÓDKA;oznacza, że ustawienia są takie same jak wartości systemowe w obecnej grupie ustawień" #: src/libslic3r/PrintConfig.cpp:3119 msgid "Logging level" @@ -3439,6 +3832,10 @@ msgstr "Model zamknięty" msgid "Manual editing" msgstr "Edycja ręczna" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:675 +msgid "Manual editing [M]" +msgstr "Edycja ręczna [M]" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:105 msgid "Masked SLA file exported to %1%" msgstr "Maskowany plik SLA wyeksportowany do %1%" @@ -3503,14 +3900,26 @@ msgstr "Maksymalny przepływ" msgid "Maximal bridging distance" msgstr "Maksymalna odległość drukowania mostów" +#: src/libslic3r/PrintConfig.cpp:2168 +msgid "Maximal distance between supports on sparse infill sections. " +msgstr "Minimalny odstęp pomiędzy podporami w sekcjach rzadkiego wypełnienia. " + #: src/libslic3r/PrintConfig.cpp:2193 msgid "Maximal distance between supports on sparse infill sections." msgstr "Minimalny odstęp pomiędzy podporami w sekcjach rzadkiego wypełnienia." +#: src/libslic3r/PrintConfig.cpp:1086 +msgid "Maximum acceleration %1%" +msgstr "Maksymalne przyspieszenie %1%" + #: src/libslic3r/PrintConfig.cpp:1099 msgid "Maximum acceleration E" msgstr "Maksymalne przyspieszenie E" +#: src/libslic3r/PrintConfig.cpp:1088 +msgid "Maximum acceleration of the %1% axis" +msgstr "Maksymalne przyspieszenie osi %1%" + #: src/libslic3r/PrintConfig.cpp:1105 msgid "Maximum acceleration of the E axis" msgstr "Maksymalne przyspieszenie osi E (ekstrudera)" @@ -3559,14 +3968,18 @@ msgstr "Maksymalne przyspieszenie Z" msgid "Maximum accelerations" msgstr "Maksymalne przyspieszenia" -#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2425 -msgid "Maximum exposure time" -msgstr "Maksymalny czas naświetlania" +#: src/libslic3r/PrintConfig.cpp:1076 +msgid "Maximum feedrate %1%" +msgstr "Maksymalna prędkość posuwu %1%" #: src/libslic3r/PrintConfig.cpp:1081 msgid "Maximum feedrate E" msgstr "Maksymalny posuw E" +#: src/libslic3r/PrintConfig.cpp:1078 +msgid "Maximum feedrate of the %1% axis" +msgstr "Maksymalna prędkość posuwu osi %1%" + #: src/libslic3r/PrintConfig.cpp:1087 msgid "Maximum feedrate of the E axis" msgstr "Maksymalny posuw (prędkość ruchu) osi E (ekstrudera)" @@ -3599,14 +4012,18 @@ msgstr "Maksymalny posuw Z" msgid "Maximum feedrates" msgstr "Maksymalne prędkości posuwu" -#: src/libslic3r/PrintConfig.cpp:2447 src/libslic3r/PrintConfig.cpp:2448 -msgid "Maximum initial exposure time" -msgstr "Maksymalny początkowy czas naświetlania" +#: src/libslic3r/PrintConfig.cpp:1096 +msgid "Maximum jerk %1%" +msgstr "Maksymalny jerk %1%" #: src/libslic3r/PrintConfig.cpp:1117 msgid "Maximum jerk E" msgstr "Maksymalny jerk E" +#: src/libslic3r/PrintConfig.cpp:1098 +msgid "Maximum jerk of the %1% axis" +msgstr "Maksymalny jerk osi %1%" + #: src/libslic3r/PrintConfig.cpp:1123 msgid "Maximum jerk of the E axis" msgstr "Maksymalny jerk dla osi E (ekstrudera)" @@ -3683,18 +4100,18 @@ msgstr "Minimalna długość ekstruzji" msgid "Minimal points distance" msgstr "Minimalny dystans pomiędzy punktami" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:877 +msgid "Minimal points distance: " +msgstr "Minimalny dystans pomiędzy punktami:" + #: src/libslic3r/PrintConfig.cpp:635 msgid "Minimal purge on wipe tower" -msgstr "Minimalna objętość czyszczenia" +msgstr "Minimalna objętość czyszczenia na wieży" #: src/libslic3r/PrintConfig.cpp:1442 msgid "Minimum detail resolution, used to simplify the input file for speeding up the slicing job and reducing memory usage. High-resolution models often carry more detail than printers can render. Set to zero to disable any simplification and use full resolution from input." msgstr "Minimalna rozdzielczość, używana do uproszczenia modelu wejściowego, co prowadzi do przyspieszenia procesu cięcia. Modele w wysokiej rozdzielczości mogą zawierać więcej szczegółów niż drukarka jest w stanie przetworzyć. Ustaw zero aby wyłączyć upraszczanie i użyć pełnej rozdzielczości pliku wejściowego." -#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2417 -msgid "Minimum exposure time" -msgstr "Minimalny czas naświetlania" - #: src/libslic3r/PrintConfig.cpp:1109 src/libslic3r/PrintConfig.cpp:1111 msgid "Minimum feedrate when extruding" msgstr "Minimalna prędkość posuwu z ekstruzją" @@ -3707,10 +4124,6 @@ msgstr "Minimalna prędkość posuwu z ekstruzją (M205 S)" msgid "Minimum feedrates" msgstr "Minimalna prędkość posuwu" -#: src/libslic3r/PrintConfig.cpp:2439 src/libslic3r/PrintConfig.cpp:2440 -msgid "Minimum initial exposure time" -msgstr "Minimalny początkowy czas naświetlania" - #: src/libslic3r/PrintConfig.cpp:1452 msgid "Minimum travel after retraction" msgstr "Minimalny ruch jałowy po retrakcji" @@ -3727,14 +4140,6 @@ msgstr "Minimalna prędkość posuwu ruchu jałowego (M205 T)" msgid "Mirror" msgstr "Lustrzane" -#: src/libslic3r/PrintConfig.cpp:2320 -msgid "Mirror horizontally" -msgstr "Odbij w poziomie" - -#: src/slic3r/GUI/GLCanvas3D.cpp:1711 -msgid "Mirror Object" -msgstr "Odbicie Lustrzane" - #: src/slic3r/GUI/Plater.cpp:2946 msgid "Mirror the selected object" msgstr "Odbicie lustrzane wybranego modelu" @@ -3751,12 +4156,8 @@ msgstr "Odbicie lustrzane wybranego modelu w osi Y" msgid "Mirror the selected object along the Z axis" msgstr "Odbicie lustrzane wybranego modelu w osi Z" -#: src/libslic3r/PrintConfig.cpp:2327 -msgid "Mirror vertically" -msgstr "Odbij w poziomie" - #: src/slic3r/Utils/OctoPrint.cpp:69 -#, possible-c-format +#, c-format msgid "Mismatched type of print host: %s" msgstr "Niepasujący typ serwera wydruku: %s" @@ -3805,6 +4206,17 @@ msgstr "mm (zero aby wyłączyć)" msgid "mm or %" msgstr "mm lub %" +#: src/libslic3r/PrintConfig.cpp:528 +msgid "mm or % (leave 0 for auto)" +msgstr "mm lub % (zero dla wartości automatycznych)" + +#: src/libslic3r/PrintConfig.cpp:420 src/libslic3r/PrintConfig.cpp:835 +#: src/libslic3r/PrintConfig.cpp:967 src/libslic3r/PrintConfig.cpp:1354 +#: src/libslic3r/PrintConfig.cpp:1692 src/libslic3r/PrintConfig.cpp:1865 +#: src/libslic3r/PrintConfig.cpp:2023 +msgid "mm or % (leave 0 for default)" +msgstr "mm lub % (zero dla domyślnych)" + #: src/libslic3r/PrintConfig.cpp:201 src/libslic3r/PrintConfig.cpp:577 #: src/libslic3r/PrintConfig.cpp:585 src/libslic3r/PrintConfig.cpp:594 #: src/libslic3r/PrintConfig.cpp:602 src/libslic3r/PrintConfig.cpp:629 @@ -3855,10 +4267,6 @@ msgstr "Tryb" msgid "model" msgstr "model" -#: src/slic3r/GUI/BedShapeDialog.cpp:239 -msgid "Model" -msgstr "Model" - #: src/slic3r/Utils/FixModelByWin10.cpp:340 msgid "Model fixing" msgstr "Naprawianie modelu" @@ -3888,17 +4296,17 @@ msgstr "Model naprawiono pomyślnie" msgid "modified" msgstr "zmodyfikowano" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Modifier" -msgstr "Modyfikator" - #: src/slic3r/GUI/Tab.cpp:1100 msgid "Modifiers" msgstr "Modyfikatory" #: src/libslic3r/PrintConfig.cpp:719 msgid "money/kg" -msgstr "pieniędzy/kg" +msgstr "piniendzy/kg" + +#: lib/Slic3r/GUI/Plater.pm:255 +msgid "More" +msgstr "Więcej" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1240 msgid "Mouse wheel" @@ -3906,7 +4314,7 @@ msgstr "Kółko myszy" #: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:51 msgid "Move" -msgstr "Przesuwaj" +msgstr "Przemieszczaj" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1238 msgid "Move clipping plane" @@ -3920,17 +4328,25 @@ msgstr "Przesuń suwak w dół" msgid "Move current slider thumb Up" msgstr "Przesuń suwak w górę" -#: src/slic3r/GUI/GLCanvas3D.cpp:2872 -msgid "Move Object" -msgstr "Przesuń Model" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Move current slider thump Down" +msgstr "Przesuń suwak w dół" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Move current slider thump Up" +msgstr "Przesuń suwak w górę" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 msgid "Move point" msgstr "Przesuń punkt" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1183 -msgid "Move support point" -msgstr "Przenieś plik podpory" +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:51 +msgid "Move [M]" +msgstr "Przemieszczaj [M]" + +#: src/slic3r/GUI/GLCanvas3D.cpp:1698 +msgid "ms" +msgstr "ms" #: src/libslic3r/PrintConfig.cpp:2100 msgid "Multi material printers may need to prime or purge extruders on tool changes. Extrude the excess material into the wipe tower." @@ -3941,7 +4357,7 @@ msgid "Multi-part object detected" msgstr "Wykryto obiekt wieloczęściowy" #: src/slic3r/GUI/FirmwareDialog.cpp:400 src/slic3r/GUI/FirmwareDialog.cpp:436 -#, possible-c-format +#, c-format msgid "Multiple %s devices found. Please only connect one at a time for flashing." msgstr "Wiele urządzeń %s znaleziono. Proszę zostawić tylko jedno podłączone podczas flashowania." @@ -3950,8 +4366,13 @@ msgid "Multiple Extruders" msgstr "Kilka ekstruderów" #: src/slic3r/GUI/Plater.cpp:1766 -msgid "Multiple objects were loaded for a multi-material printer.\nInstead of considering them as multiple objects, should I consider\nthese files to represent a single object having multiple parts?\n" -msgstr "Kilka obiektów zostało załadowanych dla drukarki typu multi-material.\nTraktować je jako jeden model zawierający kilka części?\n" +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?\n" +msgstr "" +"Kilka obiektów zostało załadowanych dla drukarki typu multi-material.\n" +"Traktować je jako jeden model zawierający kilka części?\n" #: src/libslic3r/PrintConfig.cpp:3050 msgid "Multiply copies by creating a grid." @@ -3961,10 +4382,6 @@ msgstr "Pomnóż ilość kopii przez stworzenie siatki." msgid "Multiply copies by this factor." msgstr "Pomnóż ilość kopii przez tę wartość." -#: src/slic3r/GUI/Field.cpp:139 -msgid "N/A" -msgstr "N/D" - #: src/slic3r/GUI/GUI_ObjectList.cpp:176 msgid "Name" msgstr "Nazwa" @@ -3989,27 +4406,19 @@ msgstr "Najbliższy" msgid "Network lookup" msgstr "Podgląd sieci" -#: src/slic3r/GUI/Plater.cpp:2056 -msgid "New Project" -msgstr "Nowy Projekt" - #: src/slic3r/GUI/UpdateDialogs.cpp:30 -#, possible-c-format +#, c-format msgid "New version of %s is available" msgstr "Dostępna jest nowa wersja: %s" +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "New version of Slic3r PE is available" +msgstr "Dostępna jest nowa wersja Slic3r PE" + #: src/slic3r/GUI/UpdateDialogs.cpp:47 msgid "New version:" msgstr "Nowa wersja:" -#: src/slic3r/GUI/GLCanvas3D.cpp:3750 -msgid "Next Redo action: %1%" -msgstr "Następna akcja do powtórzenia: %1%" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3718 -msgid "Next Undo action: %1%" -msgstr "Następna akcja do cofnięcia: %1%" - #: src/libslic3r/PrintConfig.cpp:912 msgid "No extrusion" msgstr "Brak ekstruzji" @@ -4143,10 +4552,6 @@ msgstr "Nazwa modelu" msgid "Object or Instance" msgstr "Model lub Kopia" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Object reordered" -msgstr "Model przeorganizowany" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1868 msgid "Object Settings to modify" msgstr "Ustawienia Modelu do modyfikacji" @@ -4167,10 +4572,22 @@ msgstr "model(e)" msgid "objects" msgstr "modele" +#: xs/src/libslic3r/PrintConfig.cpp:2006 +msgid "Objects will be used to wipe 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 "Modele zostaną użyte do czyszczenia dyszy po zmianie narzędzia (filamentu) aby oszczędzić materiał, który inaczej zostałby wyekstrudowany do wieży czyszczącej i aby skrócić czas wydruku. W rezultacie kolor tego modelu będzie niejednolity." + #: src/libslic3r/PrintConfig.cpp:402 src/libslic3r/PrintConfig.cpp:808 msgid "Octagram Spiral" msgstr "Spirala ośmiokątna" +#: xs/src/slic3r/GUI/Tab.cpp:1520 xs/src/slic3r/Utils/OctoPrint.cpp:110 +msgid "OctoPrint upload" +msgstr "Transfer do OctoPrint" + +#: lib/Slic3r/GUI/Plater.pm:1576 +msgid "OctoPrint upload finished." +msgstr "Przesyłanie do OctoPrint zakończone." + #: src/slic3r/GUI/BonjourDialog.cpp:76 msgid "OctoPrint version" msgstr "Wersja OctoPrint" @@ -4179,10 +4596,6 @@ msgstr "Wersja OctoPrint" msgid "of a current Object" msgstr "obecnego Modelu" -#: src/slic3r/GUI/wxExtensions.cpp:2570 -msgid "One layer mode" -msgstr "Tryb jednej warstwy" - #: src/libslic3r/Print.cpp:1285 msgid "One or more object were assigned an extruder that the printer does not have." msgstr "Jeden lub więcej modeli zostało przypisanych do ekstrudera, którego drukarka nie posiada." @@ -4215,9 +4628,9 @@ msgstr "Retrakcja tylko przy przechodzeniu nad obrysami" msgid "Ooze prevention" msgstr "Zapobieganie wyciekom (ooze)" -#: src/libslic3r/Print.cpp:1193 -msgid "Ooze prevention is currently not supported with the wipe tower enabled." -msgstr "Zapobieganie wyciekom jest obecnie niedostępne przy włączonej wieży czyszczącej." +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open a model" +msgstr "Otwórz model" #: src/slic3r/GUI/MainFrame.cpp:339 msgid "Open a project file" @@ -4227,27 +4640,48 @@ msgstr "Otwórz plik projektu" msgid "Open CA certificate file" msgstr "Otwórz plik certyfikatu CA" -#: src/slic3r/GUI/UpdateDialogs.cpp:63 src/slic3r/GUI/UpdateDialogs.cpp:126 -msgid "Open changelog page" -msgstr "Otwórz stronę z listami zmian" - -#: src/slic3r/GUI/UpdateDialogs.cpp:68 -msgid "Open download page" -msgstr "Otwórz stronę pobierania" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:105 msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" msgstr "Otwórz projekt STL/OBJ/AMF/3MF z konfiguracją, wyczyść stół" +#: lib/Slic3r/GUI/MainFrame.pm:215 +msgid "Open STL/OBJ/AMF/3MF…\tCtrl+O" +msgstr "Otwórz plik STL/OBJ/AMF/3MF... Crtl+O" + +#: src/slic3r/GUI/MainFrame.cpp:554 +#, c-format +msgid "Open the %s manual in your browser" +msgstr "Otwórz instrukcję %s w przeglądarce" + #: src/slic3r/GUI/MainFrame.cpp:551 -#, possible-c-format +#, c-format msgid "Open the %s website in your browser" msgstr "Otwórz stronę %s w przeglądarce" +#: lib/Slic3r/GUI/Plater.pm:2296 +msgid "Open the 3D cutting tool" +msgstr "Otwórz narzędzie do wycinania 3D" + +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Open the object editor dialog" +msgstr "Otwórz menu edytora modelu" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Open the Prusa Edition releases page in your browser" +msgstr "Otwórz stronę z wydaniami Prusa Edition w przeglądarce" + #: src/slic3r/GUI/MainFrame.cpp:542 msgid "Open the Prusa3D drivers download page in your browser" msgstr "Otwórz stronę Prusa3D ze sterownikami w przeglądarce" +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Open the Slic3r manual in your browser" +msgstr "Otwórz instrukcję do Slic3ra w przeglądarce" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Open the Slic3r website in your browser" +msgstr "Otwórz stronę Slic3ra w przeglądarce" + #: src/slic3r/GUI/MainFrame.cpp:549 msgid "Open the software releases page in your browser" msgstr "Otwórz stronę z wersjami oprogramowania w przeglądarce" @@ -4256,10 +4690,6 @@ msgstr "Otwórz stronę z wersjami oprogramowania w przeglądarce" msgid "Optimize orientation" msgstr "Optymalizuj orientację" -#: src/slic3r/GUI/Plater.cpp:2643 -msgid "Optimize Rotation" -msgstr "Optymalizuj obrót" - #: src/slic3r/GUI/Plater.cpp:2994 msgid "Optimize the rotation of the object for better print results." msgstr "Optymalizuj obrót modelu dla lepszych efektów." @@ -4276,9 +4706,9 @@ msgstr "Opcje materiału podporowego i tratwy (raft)" msgid "Orientation found." msgstr "Znaleziono orientację." -#: src/slic3r/GUI/Plater.cpp:2768 -msgid "Orientation search canceled." -msgstr "Anulowano ustawianie orientacji." +#: src/slic3r/GUI/Plater.cpp:2185 +msgid "Orientation search canceled" +msgstr "Anulowano wyszukiwanie orientacji" #: src/slic3r/GUI/BedShapeDialog.cpp:79 msgid "Origin" @@ -4292,6 +4722,10 @@ msgstr "Inne" msgid "Other layers" msgstr "Inne warstwy" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:252 +msgid "Other vendors" +msgstr "Inni dostawcy" + #: src/slic3r/GUI/ConfigWizard.cpp:438 msgid "Other Vendors" msgstr "Inni dostawcy" @@ -4344,25 +4778,9 @@ msgstr "Podkładka" msgid "Pad and Support" msgstr "Podkładka i Podpory" -#: src/libslic3r/PrintConfig.cpp:2732 -msgid "Pad around object" -msgstr "Podkładka wokół modelu" - -#: src/libslic3r/PrintConfig.cpp:2731 -msgid "Pad object connector penetration" -msgstr "Przenikanie łącznika podkładki z modelem" - -#: src/libslic3r/PrintConfig.cpp:2711 -msgid "Pad object connector stride" -msgstr "Rozmieszczenie łączników podkładki z modelem" - -#: src/libslic3r/PrintConfig.cpp:2721 -msgid "Pad object connector width" -msgstr "Szerokość łącznika podkładki z modelem" - -#: src/libslic3r/PrintConfig.cpp:2700 -msgid "Pad object gap" -msgstr "Odstęp modelu od podkładki" +#: src/libslic3r/PrintConfig.cpp:2559 +msgid "Pad edge radius" +msgstr "Promień krawędzi podkładki" #: src/libslic3r/PrintConfig.cpp:2532 msgid "Pad wall height" @@ -4408,10 +4826,6 @@ msgstr "Wklej zawartość schowka" msgid "Paste from clipboard" msgstr "Wklej ze schowka" -#: src/slic3r/GUI/Plater.cpp:4772 -msgid "Paste From Clipboard" -msgstr "Wklej Ze Schowka" - #: src/libslic3r/PrintConfig.cpp:1915 msgid "Pattern" msgstr "Wzór" @@ -4451,18 +4865,34 @@ msgid "Perimeters" msgstr "Obrysy" #: src/slic3r/GUI/ConfigWizard.cpp:440 -#, possible-c-format +#, c-format msgid "Pick another vendor supported by %s:" msgstr "Wybierz producenta wspieranego przez %s:" +#: src/slic3r/GUI/ConfigWizard.cpp:423 +msgid "Pick another vendor supported by Slic3r PE:" +msgstr "Wybierz innego dostawcę wspieranego przez Slic3r PE:" + #: src/libslic3r/PrintConfig.cpp:2430 msgid "Pillar widening factor" msgstr "Współczynnik rozszerzania słupka" +#: src/slic3r/GUI/Tab.cpp:3496 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "Średnica łącznika powinna być mniejsza niż średnica słupka podpory." + #: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 msgid "Place on face" msgstr "Połóż na płaszczyźnie" +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 +msgid "Place on face [F]" +msgstr "Połóż na płaszczyźnie [F]" + +#: src/slic3r/GUI/Plater.cpp:2897 +msgid "Place one more copy of the selected object" +msgstr "Umieść jedną kopię zaznaczonego modelu" + #: src/slic3r/GUI/MainFrame.cpp:161 msgid "Plater" msgstr "Zawartość Stołu" @@ -4479,9 +4909,13 @@ msgstr "Sprawdź i popraw listę modeli." msgid "Please check your object list before preset changing." msgstr "Sprawdź listę modeli przed zmianą zestawu ustawień." -#: src/slic3r/GUI/AboutDialog.cpp:39 src/slic3r/GUI/AboutDialog.cpp:286 -msgid "Portions copyright" -msgstr "Częściowe prawa autorskie" +#: lib/Slic3r/GUI/Plater.pm:1897 +msgid "Please install the OpenGL modules to use this feature (see build instructions)." +msgstr "Proszę zainstalować moduły OpenGL aby używać tej funkcji (zobacz w instrukcji)" + +#: src/slic3r/GUI/GUI_App.cpp:742 +msgid "Please, check your changes before." +msgstr "Sprawdź ustawienia przed." #: src/libslic3r/PrintConfig.cpp:2235 msgid "Portrait" @@ -4537,31 +4971,31 @@ msgid "Preparing infill" msgstr "Przygotowywanie wypełnienia" #: src/slic3r/GUI/Tab.cpp:2758 -#, possible-c-format +#, c-format msgid "Preset (%s)" msgstr "Zestaw ustawień (%s)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center" -msgstr "Naciśnij aby aktywować prostokąt odznaczający\nlub skalować bądź obracać wybrane modele\nwokół ich środka" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:148 -msgid "Press to activate one direction scaling in Gizmo scale" -msgstr "Naciśnij aby aktywować skalowanie uchwytem w jednym kierunku" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 -#, possible-c-format -msgid "Press to activate selection rectangle\nor to snap by 5% in Gizmo scale\nor to snap by 1mm in Gizmo move" -msgstr "Naciśnij aby aktywować prostokąt zaznaczający\nlub przyciągać co 5% podczas skalowania z uchwytem\nlub przyciągać co 1 mm podczas przemieszczania z uchwytem" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Press to scale selection to fit print volume\nin Gizmo scale" -msgstr "Naciśnij aby skalować zaznaczenie do wielkości przestrzeni roboczej\nw skalowaniu z uchwytem" +msgid "" +"Press to scale or rotate selected objects\n" +"around their own center" +msgstr "" +"Naciśnij aby skalować lub obracać wybrane modele\n" +"wokół ich osi" #: src/slic3r/GUI/KBShortcutsDialog.cpp:127 msgid "Press to select multiple object or move multiple object with mouse" msgstr "Kliknij aby wybrać wiele modeli lub przesunąć je przy pomocy myszki" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +#, no-c-format +msgid "" +"Press to snap by 5% in Gizmo scale\n" +"or by 1mm in Gizmo move" +msgstr "" +"Naciśnij aby przyciągać co 5% wihajstrem skalowania\n" +"lub co 1 mm wihajstrem przesuwania" + #: src/slic3r/GUI/Tab.cpp:2288 msgid "Preview" msgstr "Podgląd" @@ -4619,10 +5053,6 @@ msgstr "Nadpisanie prędkości druku" msgid "Print&er Settings Tab" msgstr "Ustawi&enia Drukarki" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1438 -msgid "Printable" -msgstr "Do druku" - #: src/slic3r/GUI/Plater.cpp:685 msgid "Printer" msgstr "Drukarka" @@ -4676,17 +5106,33 @@ msgstr "Dostawca drukarki" msgid "Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current extruder (support_material_extruder == 0 or support_material_interface_extruder == 0), all nozzles have to be of the same diameter." msgstr "Druk ekstruderami o różnych średnicach dysz. Jeśli podpory mają być drukowane obecnie ustawionym ekstruderem (support_material_extruder == 0 lub support_material_interface_extruder == 0) to wszystkie dysze muszą mieć taką samą średnicę." +#: lib/Slic3r/GUI/Plater.pm:324 +msgid "Print…" +msgstr "Druk…" + +#: src/slic3r/GUI/MainFrame.cpp:704 +msgid "Processing " +msgstr "Przetwarzanie " + #. TRN "Processing input_file_basename" #: src/slic3r/GUI/MainFrame.cpp:715 -#, possible-c-format +#, c-format msgid "Processing %s" msgstr "Przetwarzanie %s" +#: lib/Slic3r/GUI/Plater.pm:713 lib/Slic3r/GUI/Plater.pm:727 +msgid "Processing input file\n" +msgstr "Przetwarzanie pliku wejściowego\n" + #: src/slic3r/GUI/Plater.cpp:1600 -#, possible-c-format +#, c-format msgid "Processing input file %s\n" msgstr "Przetwarzanie pliku wejściowego %s\n" +#: src/libslic3r/SLA/SLASupportTree.cpp:2160 +msgid "Processing small holes" +msgstr "Przetwarzanie małych otworów" + #: src/libslic3r/PrintObject.cpp:110 msgid "Processing triangulated mesh" msgstr "Przetwarzanie siatki trójkątów" @@ -4709,6 +5155,18 @@ msgstr "Postęp:" msgid "Prusa 3D &Drivers" msgstr "Sterowniki Prusa 3&D" +#: lib/Slic3r/GUI/MainFrame.pm:338 +msgid "Prusa 3D Drivers" +msgstr "Sterowniki Prusa3D" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Prusa Edition &Releases" +msgstr "Wydania P&rusa Edition" + +#: lib/Slic3r/GUI/MainFrame.pm:341 +msgid "Prusa Edition Releases" +msgstr "Wydania Prusa Edition" + #: src/slic3r/GUI/ConfigWizard.cpp:1109 msgid "Prusa FFF Technology Printers" msgstr "Drukarki Prusa w technologii FFF" @@ -4717,19 +5175,18 @@ msgstr "Drukarki Prusa w technologii FFF" msgid "Prusa MSLA Technology Printers" msgstr "Drukarki Prusa w technologii MSLA" -#: src/slic3r/GUI/AboutDialog.cpp:255 -msgid "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community." -msgstr "PrusaSlicer bazuje na projekcie Slic3r autorstwa Alessandro Ranelucciego i społeczności RepRap." - -#: src/slic3r/GUI/GUI_App.cpp:297 -#, possible-c-format -msgid "PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \nwhile OpenGL version %s, render %s, vendor %s was detected." -msgstr "PrusaSlicer wymaga karty graficznej kompatybilnej z OpenGL 2.0, aby działać prawidłowo.\nwykryto OpenGL w wersji %s, render %s, producent %s ." - #: src/libslic3r/PrintConfig.cpp:2153 msgid "Purging after toolchange will 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 "Czyszczenie po zmianie filamentu następować wewnątrz wypełnienia tego modelu. Obniża to ilość zużywanego materiału, jednak może skutkować wydłużeniem czasu druku przez dodatkowe ruchy jałowe." +#: xs/src/libslic3r/PrintConfig.cpp:1996 +msgid "Purging into infill" +msgstr "Czyszczenie do wypełnienia" + +#: xs/src/libslic3r/PrintConfig.cpp:2005 +msgid "Purging into objects" +msgstr "Czyszczenie na modelu" + #: src/slic3r/GUI/Plater.cpp:456 msgid "Purging volumes" msgstr "Objętości czyszczenia" @@ -4742,6 +5199,10 @@ msgstr "Objętość czyszczenia - objętość ładowania/rozładowania" msgid "Purging volumes - matrix" msgstr "Objętości czyszczenia - formuła" +#: lib/Slic3r/GUI/MainFrame.pm:232 +msgid "Q&uick Slice…\tCtrl+U" +msgstr "Sz&ybkie cięcie… \tCtrl+U" + #: src/slic3r/GUI/Tab.cpp:1019 msgid "Quality (slower slicing)" msgstr "Jakość (wolniejsze cięcie)" @@ -4749,23 +5210,39 @@ msgstr "Jakość (wolniejsze cięcie)" #: src/slic3r/GUI/GUI_ObjectList.cpp:854 src/slic3r/GUI/GUI_ObjectList.cpp:1139 #: src/slic3r/GUI/GUI_ObjectList.cpp:1145 #: src/slic3r/GUI/GUI_ObjectList.cpp:1377 -#, possible-c-format +#, c-format msgid "Quick Add Settings (%s)" msgstr "Szybkie Dodanie Ustawień (%s)" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +msgid "Quick slice" +msgstr "Szybkie cięcie" + #: src/slic3r/GUI/MainFrame.cpp:383 msgid "Quick Slice" msgstr "Szybkie Cięcie" +#: lib/Slic3r/GUI/MainFrame.pm:238 +msgid "Quick Slice and Save &As…\tCtrl+Alt+U" +msgstr "Szybkie Cięcie i &Zapis...\tCtrl+Alt+U" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 +msgid "Quick slice and Save as" +msgstr "Szybkie cięcie i Zapis" + #: src/slic3r/GUI/MainFrame.cpp:389 msgid "Quick Slice and Save As" msgstr "Szybkie cięcie i Zapis jako" #: src/slic3r/GUI/MainFrame.cpp:409 -#, possible-c-format +#, c-format msgid "Quit %s" msgstr "Wyjście z %s" +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "Quit Slic3r" +msgstr "Zamknij Slic3r" + #: src/libslic3r/PrintConfig.cpp:479 msgid "Radius" msgstr "Promień" @@ -4778,13 +5255,23 @@ msgstr "Tratwa (raft)" msgid "Raft layers" msgstr "Warstwy tratwy" +#: xs/src/slic3r/GUI/Tab.cpp:1299 +msgid "Ramming" +msgstr "Wyciskanie" + #: src/slic3r/GUI/WipeTowerDialog.cpp:14 msgid "Ramming customization" msgstr "Dostosowywanie wyciskania" #: src/slic3r/GUI/WipeTowerDialog.cpp:40 -msgid "Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n\nThis is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." -msgstr "Wyciskanie oznacza szybką ekstruzję bezpośrednio przed zmianą narzędzia w drukarce typu MultiMaterial z jednym ekstruderem (narzędzie w tym przypadku oznacza filament). Jego zadaniem jest odpowiednie ukształtowanie końcówki rozładowywanego filamentu, aby jego ponowne załadowanie mogło odbyć się bez przeszkód. Ta faza procesu zmiany filamentu jest bardzo ważna a różne filamenty mogą potrzebować różnej prędkości wyciskania aby uzyskać odpowiedni kształt końcówki. Z tego powodu można edytować jego parametry.\n\nTo jest ustawienie dla zaawansowanych użytkowników. Nieprawidłowe wartości mogą powodować blokady, ścieranie filamentu przez radełko itp." +msgid "" +"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n" +"\n" +"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." +msgstr "" +"Wyciskanie oznacza szybką ekstruzję bezpośrednio przed zmianą narzędzia w drukarce typu MultiMaterial z jednym ekstruderem (narzędzie w tym przypadku oznacza filament). Jego zadaniem jest odpowiednie ukształtowanie końcówki rozładowywanego filamentu, aby jego ponowne załadowanie mogło odbyć się bez przeszkód. Ta faza procesu zmiany filamentu jest bardzo ważna a różne filamenty mogą potrzebować różnej prędkości wyciskania aby uzyskać odpowiedni kształt końcówki. Z tego powodu można edytować jego parametry.\n" +"\n" +"To jest ustawienie dla zaawansowanych użytkowników. Nieprawidłowe wartości mogą powodować blokady, ścieranie filamentu przez radełko itp." #: src/slic3r/GUI/WipeTowerDialog.cpp:90 msgid "Ramming line spacing" @@ -4806,10 +5293,6 @@ msgstr "Ustawienia wyciskania" msgid "Random" msgstr "Dowolny" -#: src/slic3r/GUI/wxExtensions.cpp:486 -msgid "Range" -msgstr "Zakres" - #: src/libslic3r/SLAPrint.cpp:72 msgid "Rasterizing layers" msgstr "Rasteryzowanie warstw" @@ -4834,12 +5317,13 @@ msgstr "Tył" msgid "Rear View" msgstr "Widok z tyłu" -#: src/slic3r/GUI/MainFrame.cpp:401 -msgid "Recent projects" -msgstr "Ostatnie projekty" +#: src/slic3r/GUI/PresetHints.cpp:264 +#, c-format +msgid "Recommended object thin wall thickness for layer height %.2f and " +msgstr "Zalecana grubość ściany modelu dla wysokości warstwy %.2f i " #: src/slic3r/GUI/PresetHints.cpp:262 -#, possible-c-format +#, c-format msgid "Recommended object thin wall thickness for layer height %.2f and" msgstr "Zalecana grubość ściany modelu dla wysokości warstwy %.2f i" @@ -4864,24 +5348,6 @@ msgstr "Linie równoległe" msgid "Rectilinear grid" msgstr "Linie równoległe - kratka" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3639 -#: src/slic3r/GUI/MainFrame.cpp:562 -msgid "Redo" -msgstr "Powtórz" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Redo %1$d Action" -msgid_plural "Redo %1$d Actions" -msgstr[0] "Powtórz %1$d akcję" -msgstr[1] "Powtórz %1$d akcje" -msgstr[2] "Powtórz %1$d akcji" -msgstr[3] "Powtórz %1$d akcji" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Redo History" -msgstr "Historia Powtórzeń" - #: src/slic3r/GUI/Tab.cpp:1037 msgid "Reducing printing time" msgstr "Obniżanie czasu wydruku" @@ -4916,15 +5382,15 @@ msgid "Remove instance" msgstr "Usuń kopię" #: src/slic3r/GUI/KBShortcutsDialog.cpp:125 -msgid "Remove Instance of the selected object" +msgid "Remove Instance from selected object" msgstr "Usuń kopię wybranego modelu" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:153 -msgid "Remove layer range" -msgstr "Usuń zakres warstw" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 +msgid "Remove Instance of the selected object" +msgstr "Usuń kopię wybranego modelu" -#: src/slic3r/GUI/Plater.cpp:3518 -msgid "Remove one instance of the selected object" +#: src/slic3r/GUI/Plater.cpp:2899 +msgid "Remove one copy of the selected object" msgstr "Usuń jedną kopię wybranego modelu" #: src/slic3r/GUI/GUI_ObjectSettings.cpp:83 @@ -4956,14 +5422,6 @@ msgstr "Usuń profile użytkownika - czysta instalacja (najpierw zostanie wykona msgid "Rename" msgstr "Zmień nazwę" -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Object" -msgstr "Zmień Nazwę Modelu" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:493 -msgid "Rename Sub-object" -msgstr "Zmień Nazwę Modelu Podrzędnego" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2709 msgid "Renaming" msgstr "Zmiana nazwy" @@ -4980,6 +5438,10 @@ msgstr "Renderowanie software'owe. Dołączony silnik MESA zostanie użyty zamia msgid "Repair" msgstr "Naprawa" +#: lib/Slic3r/GUI/MainFrame.pm:258 +msgid "Repair STL file…" +msgstr "Naprawa pliku STL…" + #: src/slic3r/Utils/FixModelByWin10.cpp:387 msgid "Repaired 3MF file contains more than one object" msgstr "Naprawiony plik 3MF zawiera więcej niż jeden model" @@ -5012,23 +5474,31 @@ msgstr "Powtórz Ostatnie Szybkie Cięcie" msgid "Report an I&ssue" msgstr "Zgło&szenie problemu" +#: lib/Slic3r/GUI/MainFrame.pm:361 +msgid "Report an Issue" +msgstr "Zgłoś problem" + #: src/slic3r/GUI/MainFrame.cpp:561 -#, possible-c-format +#, c-format msgid "Report an issue on %s" msgstr "Zgłoś problem z %s" +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an issue on the Slic3r Prusa Edition" +msgstr "Zgłoś problem z Slic3r Prusa Edition" + #: src/slic3r/Utils/PresetUpdater.cpp:590 -#, possible-c-format +#, c-format msgid "requires max. %s" msgstr "wymaga max %s" #: src/slic3r/Utils/PresetUpdater.cpp:588 -#, possible-c-format +#, c-format msgid "requires min. %s" msgstr "wymaga min. %s" #: src/slic3r/Utils/PresetUpdater.cpp:583 -#, possible-c-format +#, c-format msgid "requires min. %s and max. %s" msgstr "wymaga min. %s i max. %s" @@ -5048,27 +5518,6 @@ msgstr "Reset płaszczyzny przecinania" msgid "Reset direction" msgstr "Reset kierunku" -#: src/slic3r/GUI/Plater.cpp:2603 -msgid "Reset Project" -msgstr "Resetuj Projekt" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:303 -msgid "Reset rotation" -msgstr "Resetuj obrót" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:328 -msgid "Reset Rotation" -msgstr "Resetuj Obrót" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:285 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:290 -msgid "Reset scale" -msgstr "Resetuj skalę" - -#: src/slic3r/GUI/Tab.cpp:2584 -msgid "Reset to Filament Color" -msgstr "Zresetuj do koloru filamentu" - #: src/libslic3r/PrintConfig.cpp:1441 msgid "Resolution" msgstr "Rozdzielczość" @@ -5113,10 +5562,6 @@ msgstr "Retrakcje" msgid "Right" msgstr "Prawo" -#: src/slic3r/GUI/GUI_ObjectList.cpp:381 -msgid "Right button click the icon to change the object printable property" -msgstr "Kliknij na ikonę prawym przyciskiem, aby zmienić możliwą do wydrukowania właściwość modelu" - #: src/slic3r/GUI/GUI_ObjectList.cpp:279 msgid "Right button click the icon to change the object settings" msgstr "Kliknij na ikonę prawym przyciskiem, aby zmienić ustawienia modelu" @@ -5129,6 +5574,10 @@ msgstr "Kliknij prawym przyciskiem myszy na ikonę, aby naprawić plik STL przez msgid "Right click" msgstr "Prawy przycisk" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:598 +msgid "Right mouse click - remove point" +msgstr "Prawy przycisk myszy - usuń punkt" + #: src/slic3r/GUI/MainFrame.cpp:528 msgid "Right View" msgstr "Widok prawy" @@ -5139,6 +5588,18 @@ msgstr "Widok prawy" msgid "Rotate" msgstr "Obróć" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate 45° clockwise" +msgstr "Obróć o 45° zgodnie ze wskazówkami zegara" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate 45° counter-clockwise" +msgstr "Obróć o 45° przeciwnie do wskazówek zegara" + +#: lib/Slic3r/GUI/Plater.pm:1042 +msgid "Rotate around " +msgstr "Obróć" + #: src/libslic3r/PrintConfig.cpp:3067 msgid "Rotate around X" msgstr "Obróć wokół osi X" @@ -5152,6 +5613,34 @@ msgstr "Obróć wokół osi Y" msgid "Rotate lower part upwards" msgstr "Obróć dolną część do góry nogami" +#: lib/Slic3r/GUI/Plater.pm:2228 +msgid "Rotate the selected object by 45° clockwise" +msgstr "Obróć wybrany model o 45° zgodnie ze wskazówkami zegara" + +#: lib/Slic3r/GUI/Plater.pm:2231 +msgid "Rotate the selected object by 45° counter-clockwise" +msgstr "Obróć wybrany model o 45° przeciwnie do wskazówek zegara" + +#: lib/Slic3r/GUI/Plater.pm:2236 +msgid "Rotate the selected object by an arbitrary angle" +msgstr "Obróć wybrany model dowolnie" + +#: lib/Slic3r/GUI/Plater.pm:2238 +msgid "Rotate the selected object by an arbitrary angle around X axis" +msgstr "Obróć wybrany model o dowolny kąt wokół osi X" + +#: lib/Slic3r/GUI/Plater.pm:2241 +msgid "Rotate the selected object by an arbitrary angle around Y axis" +msgstr "Obróć wybrany model o dowolny kąt wokół osi Y" + +#: lib/Slic3r/GUI/Plater.pm:2244 +msgid "Rotate the selected object by an arbitrary angle around Z axis" +msgstr "Obróć wybrany model o dowolny kąt wokół osi Z" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +msgid "Rotate [R]" +msgstr "Obróć [R]" + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:151 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:194 msgid "Rotation" @@ -5173,8 +5662,16 @@ msgstr "Kąt obrotu w stopniach wokół osi Y." msgid "Rotation angle around the Z axis in degrees." msgstr "Kąt obrotu w stopniach wokół osi Z." +#: src/libslic3r/SLA/SLASupportTree.cpp:2158 +msgid "Routing supports to model surface" +msgstr "Zakorzenianie podpór w powierzchni modelu" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2157 +msgid "Routing to ground" +msgstr "Zakorzenianie w podstawie" + #: src/slic3r/GUI/ConfigWizard.cpp:298 src/slic3r/GUI/GUI_App.cpp:658 -#, possible-c-format +#, c-format msgid "Run %s" msgstr "Uruchom %s" @@ -5191,22 +5688,18 @@ msgstr "Wykonywanie skryptów przetwarzania końcowego (post-processing)" msgid "s" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:466 src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end G-code" -msgstr "W&yślij G-code" - -#: src/slic3r/GUI/MainFrame.cpp:709 -msgid "S&end to print" -msgstr "W&yślij do druku" +#: src/slic3r/GUI/MainFrame.cpp:677 src/slic3r/GUI/Tab.cpp:3239 +msgid "Save " +msgstr "Zapisz " #. TRN Preset #: src/slic3r/GUI/Tab.cpp:3264 -#, possible-c-format +#, c-format msgid "Save %s as:" msgstr "Zapisz %s jako:" #: src/slic3r/GUI/MainFrame.cpp:686 -#, possible-c-format +#, c-format msgid "Save %s file as:" msgstr "Zapisz plik %s jako:" @@ -5226,9 +5719,13 @@ msgstr "Zapisz konfigurację jako:" msgid "Save configuration to the specified file." msgstr "Zapisz konfigurację jako wskazany plik." +#: src/slic3r/GUI/Tab.cpp:130 +msgid "Save current " +msgstr "Zapisz bieżące " + #. TRN "Save current Settings" #: src/slic3r/GUI/Tab.cpp:133 -#, possible-c-format +#, c-format msgid "Save current %s" msgstr "Zapisz bieżące %s" @@ -5287,35 +5784,59 @@ msgstr "Niepowodzenie zapisywania siatki jako 3MF." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:254 #: src/libslic3r/PrintConfig.cpp:3077 msgid "Scale" -msgstr "Skaluj" +msgstr "Skalowanie" #: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:276 msgid "Scale (%)" msgstr "Skala (%)" +#: lib/Slic3r/GUI/Plater.pm:1133 lib/Slic3r/GUI/Plater.pm:1137 +msgid "Scale along " +msgstr "Skalowanie wzdłuż " + #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:195 msgid "Scale factors" msgstr "Współczynnik skalowania" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale the selected object to fit the print volume" -msgstr "Skaluj wybrany model, aby zmieścił się w przestrzeni roboczej" +#: lib/Slic3r/GUI/Plater.pm:2262 lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale the selected object along a single axis" +msgstr "Skalowanie wybranego modelu wzdłuż jednej osi" + +#: lib/Slic3r/GUI/Plater.pm:2267 lib/Slic3r/GUI/Plater.pm:2283 +msgid "Scale the selected object along the X axis" +msgstr "Skalowanie wybranego modelu wzdłuż osi X" + +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Scale the selected object along the XYZ axes" +msgstr "Skalowanie wybranego modelu wzdłuż osi XYZ" + +#: lib/Slic3r/GUI/Plater.pm:2270 lib/Slic3r/GUI/Plater.pm:2286 +msgid "Scale the selected object along the Y axis" +msgstr "Skalowanie wybranego modelu wzdłuż osi Y" + +#: lib/Slic3r/GUI/Plater.pm:2273 lib/Slic3r/GUI/Plater.pm:2289 +msgid "Scale the selected object along the Z axis" +msgstr "Skalowanie wybranego modelu wzdłuż osi Z" #: src/libslic3r/PrintConfig.cpp:3086 msgid "Scale to Fit" -msgstr "Skaluj, aby dopasować" - -#: src/slic3r/GUI/Selection.cpp:947 -msgid "Scale To Fit" -msgstr "Skaluj aby zmieścić" +msgstr "Skalowanie, aby dopasować" #: src/libslic3r/PrintConfig.cpp:3087 msgid "Scale to fit the given volume." msgstr "Skaluj, aby wypełnić zadaną objętość." -#: src/slic3r/GUI/GUI_ObjectList.cpp:1440 -msgid "Scale to print volume" -msgstr "Skaluj do obszaru roboczego" +#: lib/Slic3r/GUI/Plater.pm:2278 +msgid "Scale to size" +msgstr "Skalowanie do wymiaru" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:51 +msgid "Scale [S]" +msgstr "Skalowanie [S]" + +#: lib/Slic3r/GUI/Plater.pm:260 lib/Slic3r/GUI/Plater.pm:276 +msgid "Scale…" +msgstr "Skalowanie…" #: src/libslic3r/PrintConfig.cpp:3078 msgid "Scaling factor or percentage." @@ -5345,6 +5866,22 @@ msgstr "Wyszukiwanie urządzeń" msgid "Searching for optimal orientation" msgstr "Wyszukiwanie optymalnej orientacji" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Select &Controller Tab\tCtrl+T" +msgstr "Kontrole&r\tCtrl+T" + +#: lib/Slic3r/GUI/MainFrame.pm:311 +msgid "Select &Filament Settings Tab\tCtrl+3" +msgstr "Ustawienia &Filamentu\tCtrl+3" + +#: lib/Slic3r/GUI/MainFrame.pm:294 +msgid "Select &Plater Tab\tCtrl+1" +msgstr "Zakładka &Stół\tCtrl+1" + +#: xs/src/slic3r/GUI/ConfigWizard.cpp:108 +msgid "Select all" +msgstr "Zaznacz wszystko" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:136 msgid "Select All objects" msgstr "Zaznacz Wszystkie modele" @@ -5381,10 +5918,22 @@ msgstr "Wybierz numer ekstrudera:" msgid "Select Filament Settings Tab" msgstr "Wybierz Zakładkę Ustawień Filamentu" +#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 +msgid "Select multiple object/Move multiple object" +msgstr "Zaznacz wiele modelu/Przesuń wiele modeli" + #: src/slic3r/GUI/GUI_ObjectList.cpp:1251 msgid "Select new extruder for the object/part" msgstr "Wybierz nowy ekstruder dla modelu/części" +#: xs/src/slic3r/GUI/ConfigWizard.cpp:109 +msgid "Select none" +msgstr "Odznacz" + +#: lib/Slic3r/GUI/MainFrame.pm:308 +msgid "Select P&rint Settings Tab\tCtrl+2" +msgstr "Ustawienia &Druku\tCtrl+2" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:114 msgid "Select Plater Tab" msgstr "Wybierz Zakładkę Podglądu Stołu" @@ -5393,6 +5942,10 @@ msgstr "Wybierz Zakładkę Podglądu Stołu" msgid "Select Print Settings Tab" msgstr "Wybierz Zakładkę Ustawień Druku" +#: lib/Slic3r/GUI/MainFrame.pm:314 +msgid "Select Print&er Settings Tab\tCtrl+4" +msgstr "&Ustawienia Drukarki\tCtrl+4" + #: src/slic3r/GUI/KBShortcutsDialog.cpp:118 msgid "Select Printer Settings Tab" msgstr "Wybierz Zakładkę Ustawień Drukarki" @@ -5417,70 +5970,14 @@ msgstr "Wybierz drukarki kompatybilne z tym profilem." msgid "Select the STL file to repair:" msgstr "Wybierz plik STL do naprawy:" -#: src/slic3r/GUI/Preferences.cpp:207 -msgid "Select toolbar icon size in respect to the default one." -msgstr "Wybierz rozmiar ikon w odniesieniu do domyślnego." - #: src/slic3r/GUI/GUI_ObjectList.cpp:2545 msgid "Select type of part" msgstr "Wybierz rodzaj części" -#: src/slic3r/GUI/Plater.cpp:606 -msgid "Select what kind of pad do you need" -msgstr "Wybierz rodzaj wymaganej podkładki" - #: src/slic3r/GUI/Plater.cpp:421 msgid "Select what kind of support do you need" msgstr "Wybierz rodzaj potrzebnych podpór" -#: src/slic3r/GUI/Selection.cpp:146 -msgid "Selection-Add" -msgstr "Zaznaczenie-Dodaj" - -#: src/slic3r/GUI/Selection.cpp:384 -msgid "Selection-Add All" -msgstr "Zaznaczenie-Dodaj wszystko" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2875 -msgid "Selection-Add from list" -msgstr "Zaznaczenie-Dodaj z listy" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5623 -msgid "Selection-Add from rectangle" -msgstr "Zaznaczenie-Dodaj z prostokąta" - -#: src/slic3r/GUI/Selection.cpp:256 -msgid "Selection-Add Instance" -msgstr "Zaznaczenie-Dodaj kopię" - -#: src/slic3r/GUI/Selection.cpp:219 -msgid "Selection-Add Object" -msgstr "Zaznaczenie-Dodaj Model" - -#: src/slic3r/GUI/Selection.cpp:187 -msgid "Selection-Remove" -msgstr "Zaznaczenie-Usuń" - -#: src/slic3r/GUI/Selection.cpp:410 -msgid "Selection-Remove All" -msgstr "Zaznaczenie-Usuń Wszystko" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2867 -msgid "Selection-Remove from list" -msgstr "Zaznaczenie-Usunięcie z listy" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5642 -msgid "Selection-Remove from rectangle" -msgstr "Zaznaczenie-Usuń z prostokąta" - -#: src/slic3r/GUI/Selection.cpp:275 -msgid "Selection-Remove Instance" -msgstr "Zaznaczenie-Usuń kopię" - -#: src/slic3r/GUI/Selection.cpp:238 -msgid "Selection-Remove Object" -msgstr "Zaznaczenie-Usuń model" - #: src/slic3r/GUI/MainFrame.cpp:444 msgid "Selects all objects" msgstr "Zaznacza wszystkie modele" @@ -5489,18 +5986,22 @@ msgstr "Zaznacza wszystkie modele" msgid "Send G-code" msgstr "Wyślij G-code" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Send G-Code to printer" +msgstr "Wyślij G-code do drukarki" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Send G-Code to printer host" msgstr "Wyślij G-code do serwera druku" -#: src/slic3r/GUI/MainFrame.cpp:466 -msgid "Send to print current plate as G-code" -msgstr "Wyślij zawartość stołu do druku jako G-code" - #: src/slic3r/GUI/Plater.cpp:731 src/slic3r/GUI/Plater.cpp:3822 msgid "Send to printer" msgstr "Wyślij do drukarki" +#: xs/src/slic3r/Utils/OctoPrint.cpp:111 lib/Slic3r/GUI/Plater.pm:1558 +msgid "Sending G-code file to the OctoPrint server..." +msgstr "Wysyłanie pliku G-code do serwera OctoPrint..." + #: src/slic3r/GUI/Tab.cpp:1169 msgid "Sequential printing" msgstr "Drukowanie sekwencyjne (model po modelu)" @@ -5543,38 +6044,17 @@ msgstr "Ustaw ekstruder dla wybranych elementów" msgid "Set lower thumb to current slider thumb" msgstr "Ustaw punkt zmiany koloru na poziomie dolnego suwaka" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:245 -msgid "Set Mirror" -msgstr "Ustaw Odbicie" - -#: src/slic3r/GUI/Plater.cpp:3520 -msgid "Set number of instances" -msgstr "Ustaw liczbę kopii" - -#: src/slic3r/GUI/Plater.cpp:4163 -#, possible-c-format -msgid "Set numbers of copies to %d" -msgstr "Ustaw ilość kopii na %d" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:746 -msgid "Set Orientation" -msgstr "Ustaw Orientację" +#: src/slic3r/GUI/Plater.cpp:2901 +msgid "Set number of copies" +msgstr "Ustaw ilość kopii" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:715 -msgid "Set Position" -msgstr "Ustaw Pozycję" +#: lib/Slic3r/GUI/Plater.pm:2224 +msgid "Set number of copies…" +msgstr "Ustaw ilość kopii…" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Printable" -msgstr "Ustaw możliwe do wydrukowania" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Printable Instance" -msgstr "Ustaw możliwą do wydrukowania kopię" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:811 -msgid "Set Scale" -msgstr "Ustaw Skalę" +#: src/libslic3r/PrintConfig.cpp:1053 +msgid "Set silent mode for the G-code flavor" +msgstr "Ustawienie trybu cichego dla G-code w stylu" #: src/libslic3r/PrintConfig.cpp:2228 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." @@ -5628,14 +6108,6 @@ msgstr "Ustaw tutaj maksymalną wysokość, jaką może osiągnąć Twój ekstru msgid "Set this to the vertical distance between your nozzle tip and (usually) the X carriage rods. In other words, this is the height of the clearance cylinder around your extruder, and it represents the maximum depth the extruder can peek before colliding with other printed objects." msgstr "Określa pionową odległość końcówki dyszy od (zazwyczaj) prętów osi X. Inaczej mówiąc (matematycznie), jest to wysokość cylindra opisanego na zespole ekstrudera i określa maksymalną głębokość, na którą może opuścić się ekstruder aby nie uderzyć w obiekt znajdujący się bezpośrednio pod prętami osi X." -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 -msgid "Set Unprintable" -msgstr "Ustaw niemożliwe do wydrukowania" - -#: src/slic3r/GUI/Selection.cpp:1482 -msgid "Set Unprintable Instance" -msgstr "Ustaw niemożliwą do wydrukowania kopię" - #: src/slic3r/GUI/KBShortcutsDialog.cpp:184 msgid "Set upper thumb to current slider thumb" msgstr "Ustaw punkt zmiany koloru na poziomie górnego suwaka" @@ -5644,9 +6116,10 @@ msgstr "Ustaw punkt zmiany koloru na poziomie górnego suwaka" msgid "Settings" msgstr "Ustawienia" -#: src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Settings for height range" -msgstr "Ustawienie zakresu wysokości" +#: lib/Slic3r/GUI/Plater.pm:264 lib/Slic3r/GUI/Plater.pm:279 +#: lib/Slic3r/GUI/Plater.pm:2300 +msgid "Settings…" +msgstr "Ustawienia…" #: src/slic3r/GUI/BedShapeDialog.cpp:60 msgid "Shape" @@ -5656,6 +6129,10 @@ msgstr "Kształt" msgid "Shells" msgstr "Powłoki" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:599 +msgid "Shift + Left (+ drag) - select point(s)" +msgstr "Shift + lewy przycisk (+ przeciągnięcie) - wybierz punkt(y)" + #: src/slic3r/GUI/GUI_Preview.cpp:221 msgid "Show" msgstr "Pokaż" @@ -5724,6 +6201,10 @@ msgstr "Pokaż zawartość stołu" msgid "Show the print settings" msgstr "Pokaż ustawienia druku" +#: lib/Slic3r/GUI/MainFrame.pm:300 +msgid "Show the printer controller" +msgstr "Pokaż kontroler drukarki" + #: src/slic3r/GUI/MainFrame.cpp:483 msgid "Show the printer settings" msgstr "Pokaż ustawienia drukarki" @@ -5736,9 +6217,13 @@ msgstr "Pokaż tą wskazówkę pomocy." msgid "Show user configuration folder (datadir)" msgstr "Pokaż folder z konfiguracjami użytkownika (datadir)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 -msgid "Show/Hide (L)egend" -msgstr "Pokaż/Ukryj (L)egendę" +#: src/slic3r/GUI/Tab.cpp:2157 +msgid "Silent" +msgstr "Cichy" + +#: src/slic3r/GUI/Plater.cpp:1077 +msgid "silent mode" +msgstr "tryb cichy" #: src/slic3r/GUI/GUI_App.cpp:674 src/slic3r/GUI/wxExtensions.cpp:2459 msgid "Simple" @@ -5756,10 +6241,6 @@ msgstr "Ustawienia MM dla jednego ekstrudera" msgid "Single Extruder Multi Material" msgstr "Multi Material z jednym ekstruderem" -#: src/slic3r/GUI/Tab.cpp:2023 -msgid "Single Extruder Multi Material is selected, \nand all extruders must have the same diameter.\nDo you want to change the diameter for all extruders to first extruder nozzle diameter value?" -msgstr "Wybrano Multi Material z jednym ekstruderem,\nwięc wszystkie ekstrudery muszą mieć taką samą średnicę dyszy.\nCzy chcesz zmienić średnicę dyszy dla wszystkich ekstruderów na wartość z pierwszego?" - #: src/slic3r/GUI/Tab.cpp:2240 msgid "Single extruder multimaterial parameters" msgstr "Parametry multimaterial przy jednym ekstruderze" @@ -5797,15 +6278,7 @@ msgstr "Liczba obrysów skirt" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1200 msgid "SLA gizmo keyboard shortcuts" -msgstr "Skróty klawiszowe \"uchwytów\" SLA" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1150 -msgid "SLA gizmo turned off" -msgstr "Uchwyt SLA wyłączony" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1115 -msgid "SLA gizmo turned on" -msgstr "Uchwyt SLA włączony" +msgstr "Skróty klawiszowe \"wihajstrów\" SLA" #: src/slic3r/GUI/Plater.cpp:684 src/slic3r/GUI/Preset.cpp:1277 msgid "SLA material" @@ -5827,6 +6300,10 @@ msgstr "Ustawienia Druku SLA" msgid "SLA Support Points" msgstr "Punkty podpór SLA" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:995 +msgid "SLA Support Points [L]" +msgstr "Punkty podpór SLA [L]" + #: src/slic3r/GUI/GLCanvas3D.cpp:722 msgid "SLA supports outside the print area were detected" msgstr "Wykryto podpory SLA poza obszarem roboczym" @@ -5835,6 +6312,22 @@ msgstr "Wykryto podpory SLA poza obszarem roboczym" msgid "Slab" msgstr "Tafla" +#: src/slic3r/GUI/Tab.hpp:389 +msgid "sla_material" +msgstr "materiał_sla" + +#: src/slic3r/GUI/Tab.hpp:403 +msgid "sla_print" +msgstr "druk_sla" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Slic3r &Manual" +msgstr "&Instrukcja" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Slic3r &Website" +msgstr "Strona &WWW Slic3ra" + #: src/libslic3r/PrintConfig.cpp:1268 msgid "Slic3r can upload G-code files to a printer host. This field must contain the kind of the host." msgstr "Slic3r może przesyłać pliki G-code do serwera druku. To pole powinno zawierać rodzaj serwera." @@ -5847,10 +6340,67 @@ msgstr "Slic3r może przesyłać pliki G-code do serwera druku. To pole powinno msgid "Slic3r can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance." msgstr "Slic3r może przesyłać pliki G-code do serwera druku. Ta sekcja powinna zawierać nazwę hosta, adres IP lub adres URL serwera." +#: xs/src/libslic3r/PrintConfig.cpp:1110 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the API Key required for authentication." +msgstr "Slic3r może przesyłać pliki G-code do OctoPrint. To pole powinno zawierać klucz API niezbędny do uwierzytelnienia." + +#: xs/src/libslic3r/PrintConfig.cpp:1124 +msgid "Slic3r can upload G-code files to OctoPrint. This field should contain the hostname, IP address or URL of the OctoPrint instance." +msgstr "Slic3r może wysyłać pliki G-code do OctoPrint. To pole powinno zawierać nazwę hosta, adres IP lub URL serwera OctoPrint." + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r configuration is incompatible" +msgstr "Konfiguracja Slic3r jest niekompatybilna" + +#: lib/Slic3r/GUI/Plater.pm:1021 +msgid "Slic3r Error" +msgstr "Błąd Slic3ra" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r error" +msgstr "Błąd Slic3r" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r has encountered an error" +msgstr "Slic3r napotkał błąd" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r incompatibility" +msgstr "Niekompatybilność ze Slic3r" + +#: src/slic3r/GUI/UpdateDialogs.cpp:168 +#, c-format +msgid "" +"Slic3r PE now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." +msgstr "" +"Slic3r PE używa teraz ulepszonej struktury konfiguracji.\n" +"\n" +"Wprowadzamy tak zwane \"Zestawy systemowe\", które zawierają preinstalowane ustawienia domyślne dla różnych drukarek. Te Zestawy nie mogą być zmodyfikowane, ale za to użytkownik może na ich bazie utworzyć własne - kopiując ustawienia z jednego z Zestawów.\n" +"Zestaw dziedziczący ustawienia może skopiować ustawienia z zestawu nadrzędnego lub nadpisać je własnymi.\n" +"\n" +"Przejdź do %s aby stworzyć nowe zestawy i wybrać opcję ich automatycznej aktualizacji." + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 +msgid "Slic3r Prusa Edition - Keyboard Shortcuts" +msgstr "Slic3r Prusa Edition - Skróty Klawiszowe" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "Slic3r Prusa Edition - System Information" +msgstr "Slic3r Prusa Edition - Informacje o systemie" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 msgid "slic3r version" msgstr "wersja Slic3r" +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Slic3r View Mode" +msgstr "Tryb Widoku Slic3r" + #: src/libslic3r/PrintConfig.cpp:1234 msgid "Slic3r will not scale speed down below this speed." msgstr "Slic3r nie będzie skalował prędkości poniżej tej wartości." @@ -5867,6 +6417,10 @@ msgstr "Cięcie jako G-code" msgid "Slice a file into a G-code, save as" msgstr "Cięcie jako G-code, zapisz jako" +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice file to a multi-layer SVG" +msgstr "Cięcie jako wielowarstwowy SVG" + #: src/libslic3r/PrintConfig.cpp:71 msgid "Slice gap closing radius" msgstr "Promień zamykania szpar" @@ -5888,6 +6442,10 @@ msgstr "Cięcie modelu i eksport ścieżek narzędzi jako G-code." msgid "Slice the model as FFF or SLA based on the printer_technology configuration value." msgstr "Cięcie modelu jako FFF lub SLA oparte o ustawienie konfiguracji printer_technology." +#: lib/Slic3r/GUI/MainFrame.pm:251 +msgid "Slice to SV&G…\tCtrl+G" +msgstr "Cięcie do SV&G...\tCtrl+G" + #: src/slic3r/GUI/Plater.cpp:193 msgid "Sliced Info" msgstr "Informacje o cięciu" @@ -5898,6 +6456,10 @@ msgstr "Informacje o cięciu" msgid "Slicing" msgstr "Cięcie" +#: lib/Slic3r/GUI/Plater.pm:1391 +msgid "Slicing cancelled" +msgstr "Cięcie przerwane" + #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:91 #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:109 msgid "Slicing complete" @@ -5911,9 +6473,10 @@ msgstr "Cięcie zakończone" msgid "Slicing Done!" msgstr "Cięcie zakończone!" -#: src/libslic3r/SLAPrint.cpp:759 -msgid "Slicing had to be stopped due to an internal error: Inconsistent slice index." -msgstr "Cięcie zostało zatrzymane z powodu błędu wewnętrznego: nieciągły indeks cięcia." +#. TRN To be shown at the status bar on SLA slicing error. +#: src/libslic3r/SLAPrint.cpp:709 +msgid "Slicing had to be stopped due to an internal error." +msgstr "Cięcie przerwane z powodu błędu wewnętrznego." #: src/libslic3r/SLAPrint.cpp:55 msgid "Slicing model" @@ -5923,6 +6486,10 @@ msgstr "Cięcie modelu" msgid "Slicing supports" msgstr "Cięcie podpór" +#: lib/Slic3r/GUI/MainFrame.pm:483 +msgid "Slicing…" +msgstr "Cięcie…" + #: src/libslic3r/PrintConfig.cpp:2249 msgid "Slow" msgstr "Wolne" @@ -5933,7 +6500,7 @@ msgstr "Zwolnij jeśli czas warstwy wynosi mniej niż" #: src/libslic3r/PrintConfig.cpp:2250 msgid "Slow tilt" -msgstr "Wolne przechylanie" +msgstr "Wolne falowanie" #: src/libslic3r/PrintConfig.cpp:1646 msgid "Small perimeters" @@ -5972,6 +6539,10 @@ msgstr "Próg powierzchni zwartego wypełnienia" msgid "Solid layers" msgstr "Zwarte warstwy" +#: src/libslic3r/PrintConfig.cpp:1832 +msgid "soluble" +msgstr "rozpuszczalny" + #: src/libslic3r/PrintConfig.cpp:711 msgid "Soluble material" msgstr "Materiał rozpuszczalny" @@ -5980,9 +6551,9 @@ msgstr "Materiał rozpuszczalny" msgid "Soluble material is most likely used for a soluble support." msgstr "Materiał rozpuszczalny jest używany zazwyczaj do rozpuszczalnych podpór." -#: src/libslic3r/PrintConfig.cpp:914 -msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any extrusion value at all." -msgstr "Niektóre komendy kodu G/M, wliczając kontrolę temperatury i inne, nie są uniwersalne. Ustaw tą opcję w firmware Twojej drukarki, aby uzyskać kompatybilny plik wyjściowy. Wariant \"no extrusion\" wyłączy generowanie jakichkolwiek wartości ekstruzji." +#: src/libslic3r/PrintConfig.cpp:889 +msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents Slic3r from exporting any extrusion value at all." +msgstr "Niektóre komendy G/M-code, wliczając w to dot. kontroli temperatury i inne, nie są uniwersalne. Ustaw tą opcję zgodnie z oprogramowaniem układowym Twojej drukarki aby dostać kompatybilny plik wyjściowy. Parametr \"Bez ekstruzji\" (\"No extrusion\") zapobiega generowaniu przez Slic3r jakichkolwiek ekstruzji." #: src/slic3r/GUI/GLCanvas3D.cpp:721 msgid "Some objects are not visible when editing supports" @@ -6076,24 +6647,40 @@ msgstr "Prędkość ruchów jałowych (przeskoków pomiędzy punktami ekstruzji) #: src/libslic3r/PrintConfig.cpp:627 msgid "Speed of the first cooling move" -msgstr "Prędkość pierwszego ruchu chłodzącego" +msgstr "Prędkość pierwszego ruchu czyszczącego" #: src/libslic3r/PrintConfig.cpp:646 msgid "Speed of the last cooling move" msgstr "Prędkość ostatniego ruchu chłodzącego" +#: src/libslic3r/PrintConfig.cpp:584 +msgid "Speed used at the very beginning of loading phase. " +msgstr "Prędkość używana podczas początkowej fazy ładowania filamentu." + #: src/libslic3r/PrintConfig.cpp:585 msgid "Speed used at the very beginning of loading phase." msgstr "Prędkość używana podczas początkowej fazy ładowania filamentu." +#: src/libslic3r/PrintConfig.cpp:576 +msgid "Speed used for loading the filament on the wipe tower. " +msgstr "Prędkość ładowania filamentu przy druku wieży czyszczącej. " + #: src/libslic3r/PrintConfig.cpp:577 msgid "Speed used for loading the filament on the wipe tower." msgstr "Prędkość ładowania filamentu podczas drukowania wieży czyszczącej." +#: src/libslic3r/PrintConfig.cpp:592 +msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming). " +msgstr "Prędkość rozładowywania filamentu dla wieży czyszczącej (nie wpływa na początkową fazę rozładowywania zaraz po wyciskaniu). " + #: src/libslic3r/PrintConfig.cpp:593 msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)." msgstr "Prędkość rozładowywania filamentu dla wieży czyszczącej (nie wpływa na początkową fazę rozładowywania zaraz po wyciskaniu)." +#: src/libslic3r/PrintConfig.cpp:601 +msgid "Speed used for unloading the tip of the filament immediately after ramming. " +msgstr "Prędkość wycofywania (rozładowywania) końcówki filamentu bezpośrednio po wyciskaniu." + #: src/libslic3r/PrintConfig.cpp:602 msgid "Speed used for unloading the tip of the filament immediately after ramming." msgstr "Prędkość wycofywania (rozładowywania) końcówki filamentu bezpośrednio po wyciskaniu." @@ -6102,6 +6689,10 @@ msgstr "Prędkość wycofywania (rozładowywania) końcówki filamentu bezpośre msgid "Sphere" msgstr "Kula" +#: src/slic3r/GUI/Tab.cpp:1254 +msgid "Spiral Vase" +msgstr "Tryb Wazy" + #: src/libslic3r/PrintConfig.cpp:1717 msgid "Spiral vase" msgstr "Tryb wazy" @@ -6119,6 +6710,10 @@ msgstr "Podziel zaznaczony model" msgid "Split the selected object into individual objects" msgstr "Podziel wybrany model na osobne części" +#: lib/Slic3r/GUI/Plater.pm:2293 +msgid "Split the selected object into individual parts" +msgstr "Podziel wybrany model na części" + #: src/slic3r/GUI/Plater.cpp:2968 src/slic3r/GUI/Plater.cpp:3008 msgid "Split the selected object into individual sub-parts" msgstr "Podziel wybrany model na osobne elementy" @@ -6127,30 +6722,14 @@ msgstr "Podziel wybrany model na osobne elementy" msgid "Split to objects" msgstr "Podziel na osobne modele" -#: src/slic3r/GUI/Plater.cpp:2796 -msgid "Split to Objects" -msgstr "Podziel na modele" - #: src/slic3r/GUI/GUI_ObjectList.cpp:1110 msgid "Split to parts" msgstr "Podziel na części" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1904 -msgid "Split to Parts" -msgstr "Podziel na części" - #: src/libslic3r/PrintConfig.cpp:799 msgid "Stars" msgstr "Gwiazdki" -#: src/slic3r/GUI/MainFrame.cpp:376 -msgid "Start a new project" -msgstr "Rozpocznij nowy projekt" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Start at height" -msgstr "Rozpocznij na zadanej wysokości" - #: src/slic3r/GUI/Tab.cpp:1564 src/slic3r/GUI/Tab.cpp:1949 #: src/libslic3r/PrintConfig.cpp:1736 src/libslic3r/PrintConfig.cpp:1751 msgid "Start G-code" @@ -6164,6 +6743,10 @@ msgstr "Uruchom nowy proces cięcia" msgid "Start printing after upload" msgstr "Zacznij druk po przesłaniu" +#: src/libslic3r/SLA/SLASupportTree.cpp:2153 +msgid "Starting" +msgstr "Uruchamianie" + #: src/slic3r/GUI/PrintHostDialogs.cpp:150 msgid "Status" msgstr "Stan" @@ -6180,15 +6763,15 @@ msgstr "Stealth" msgid "stealth mode" msgstr "tryb stealth" +#: lib/Slic3r/GUI/Plater.pm:1659 lib/Slic3r/GUI/Plater.pm:1701 +msgid "STL file exported to " +msgstr "Plik STL został wyeksportowany do " + #: src/slic3r/GUI/Plater.cpp:3545 -#, possible-c-format +#, c-format msgid "STL file exported to %s" msgstr "Plik STL wyeksportowany do %s" -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Stop at height" -msgstr "Zatrzymaj na danej wysokości" - #: src/slic3r/GUI/Tab.cpp:1716 src/slic3r/GUI/Tab.cpp:1901 msgid "Success!" msgstr "Powodzenie!" @@ -6197,6 +6780,10 @@ msgstr "Powodzenie!" msgid "support" msgstr "podpora" +#: xs/src/slic3r/GUI/GUI.cpp:859 +msgid "Support" +msgstr "Podpory" + #: src/libslic3r/PrintConfig.cpp:2441 msgid "Support base diameter" msgstr "Średnica stopy podpory" @@ -6205,17 +6792,9 @@ msgstr "Średnica stopy podpory" msgid "Support base height" msgstr "Wysokość stopy podpory" -#: src/libslic3r/PrintConfig.cpp:2566 -msgid "Support base safety distance" -msgstr "Bezpieczna odległość stopy podpory" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Support Blocker" -msgstr "Blokada podpór" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2547 -msgid "Support Enforcer" -msgstr "Wymuszenie podpór" +#: src/slic3r/GUI/Tab.cpp:1316 +msgid "Support Generator" +msgstr "Generator Podpór" #: src/slic3r/GUI/Tab.cpp:3401 msgid "Support head" @@ -6276,10 +6855,6 @@ msgstr "Ekstruder dla podpór/tratwy (raft)/skirtu" msgid "Support on build plate only" msgstr "Podpory jedynie na powierzchni stołu" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:991 -msgid "Support parameter change" -msgstr "Zmiana parametrów podpór" - #: src/slic3r/GUI/Tab.cpp:3406 msgid "Support pillar" msgstr "Słupek podpory" @@ -6296,9 +6871,13 @@ msgstr "Średnica słupków podpór" msgid "Support points density" msgstr "Gęstość punktów podpór" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1282 -msgid "Support points edit" -msgstr "Edycja punktów podpór" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:888 +msgid "Support points density: " +msgstr "Gęstość punktów podporowych:" + +#: xs/src/libslic3r/PrintConfig.cpp:896 +msgid "Support silent mode" +msgstr "Tryb cichy dostępny" #: src/slic3r/GUI/GUI_ObjectList.cpp:78 src/slic3r/GUI/GUI_ObjectList.cpp:519 #: src/slic3r/GUI/Plater.cpp:418 src/slic3r/GUI/Tab.cpp:3397 @@ -6319,11 +6898,27 @@ msgstr "podpory i podkładka" #: src/libslic3r/PrintConfig.cpp:1043 msgid "Supports remaining times" -msgstr "Obsługa pozostałego czasu druku" +msgstr "Pozostały czas podpór" + +#: src/libslic3r/PrintConfig.cpp:1052 +msgid "Supports silent mode" +msgstr "Cichy tryb podpór" #: src/libslic3r/PrintConfig.cpp:1053 msgid "Supports stealth mode" -msgstr "Wspiera tryb Stealth" +msgstr "Wwspiera tryb Stealth" + +#: src/slic3r/GUI/Tab.cpp:1313 +msgid "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" +msgstr "" +"Druk podpór daje lepsze efekty, gdy następująca funkcja jest włączona:\n" +"- Wykrywanie mostów przy obrysach\n" +"\n" +"Zmienić tą opcję dla druku podpór?" #: src/slic3r/GUI/Preferences.cpp:76 msgid "Suppress \" - default - \" presets" @@ -6350,16 +6945,23 @@ msgid "Switch to Preview" msgstr "Przełącz na Podgląd" #: src/slic3r/GUI/wxExtensions.cpp:2412 -#, possible-c-format +#, c-format msgid "Switch to the %s mode" msgstr "Przełącz na tryb %s" #: src/slic3r/GUI/GUI_App.cpp:752 -msgid "Switching the language will trigger application restart.\nYou will lose content of the plater." -msgstr "Zmiana języka spowoduje zrestartowanie aplikacji.\nZawartość stołu zostanie wyczyszczona." +msgid "" +"Switching the language will trigger application restart.\n" +"You will lose content of the plater." +msgstr "" +"Zmiana języka spowoduje zrestartowanie aplikacji.\n" +"Zawartość stołu zostanie wyczyszczona." #: src/slic3r/GUI/WipeTowerDialog.cpp:327 -msgid "Switching to simple settings will discard changes done in the advanced mode!\n\nDo you want to proceed?" +msgid "" +"Switching to simple settings will discard changes done in the advanced mode!\n" +"\n" +"Do you want to proceed?" msgstr "Włączenie trybu prostego spowoduje odrzucenie zmian wprowadzonych w trybie zaawansowanym! Czy chcesz kontynować?" #: src/libslic3r/PrintConfig.cpp:1949 @@ -6374,6 +6976,10 @@ msgstr "Synchronizuj z warstwami modelu" msgid "System &Info" msgstr "&Informacje o Systemie" +#: lib/Slic3r/GUI/MainFrame.pm:355 +msgid "System Info" +msgstr "Informacje o systemie" + #: src/slic3r/GUI/SysInfoDialog.cpp:44 msgid "System Information" msgstr "Informacje o systemie" @@ -6388,10 +6994,18 @@ msgstr "Ustawienia systemowe" msgid "Take Configuration &Snapshot" msgstr "Wykonaj Zr&zut Konfiguracji" +#: xs/src/slic3r/GUI/GUI.cpp:350 +msgid "Take Configuration Snapshot" +msgstr "Wykonaj Zrzut Konfiguracji" + #: src/slic3r/GUI/GUI_App.cpp:697 msgid "Taking configuration snapshot" msgstr "Zrzucanie konfiguracji" +#: src/slic3r/GUI/Tab.cpp:1478 +msgid "Temperature " +msgstr "Temperatura " + #: src/libslic3r/PrintConfig.cpp:1980 msgid "Temperature" msgstr "Temperatura" @@ -6412,32 +7026,47 @@ msgstr "Temperatury" msgid "Test" msgstr "Test" -#: src/slic3r/GUI/BedShapeDialog.cpp:171 -msgid "Texture" -msgstr "Tekstura" +#: src/slic3r/GUI/Tab.cpp:1358 +msgid "The " +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1362 +msgid "" +"The %1% infill pattern is not supposed to work at 100%% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +"%1% wzór wypełnienia nie działa z gęstością 100%%.\n" +"\n" +"Zmienić wzór wypełnienia na linie równoległe?" #: src/slic3r/GUI/FirmwareDialog.cpp:530 -#, possible-c-format +#, c-format msgid "The %s device could not have been found" msgstr "Nie znaleziono urządzenia %s" #: src/slic3r/GUI/FirmwareDialog.cpp:417 -#, possible-c-format -msgid "The %s device was not found.\nIf the device is connected, please press the Reset button next to the USB connector ..." -msgstr "Nie znaleziono urządzenia %s .\nJeśli urządzenie jest podłączone, to naciśnij przycisk Reset obok złącza USB ..." +#, c-format +msgid "" +"The %s device was not found.\n" +"If the device is connected, please press the Reset button next to the USB connector ..." +msgstr "" +"Nie znaleziono urządzenia %s .\n" +"Jeśli urządzenie jest podłączone, to naciśnij przycisk Reset obok złącza USB ..." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640 -msgid "The currently manipulated object is tilted (rotation angles are not multiples of 90°).\nNon-uniform scaling of tilted objects is only possible in the World coordinate system,\nonce the rotation is embedded into the object coordinates." -msgstr "Obecnie przekształcany model jest przechylony (kąty obrotu nie są wielokrotnością 90°).\nNierównomierne skalowanie przechylonych modeli jest możliwe tylko w globalnym systemie koordynat, po osadzeniu kątów obrotu w koordynatach modelu." +msgid "" +"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n" +"Non-uniform scaling of tilted objects is only possible in the World coordinate system,\n" +"once the rotation is embedded into the object coordinates." +msgstr "" +"Obecnie przekształcany model jest przechylony (kąty obrotu nie są wielokrotnością 90°).\n" +"Nierównomierne skalowanie przechylonych modeli jest możliwe tylko w globalnym systemie koordynat, po osadzeniu kątów obrotu w koordynatach modelu." #: src/libslic3r/PrintConfig.cpp:2462 msgid "The default angle for connecting support sticks and junctions." msgstr "Domyślny kąt łączenia słupków i \"skrzyżowań\" podpór." -#: src/libslic3r/SLAPrint.cpp:670 -msgid "The endings of the support pillars will be deployed on the gap between the object and the pad. 'Support base safety distance' has to be greater than the 'Pad object gap' parameter to avoid this." -msgstr "Końcówki słupków podpór będą rozmieszczone w przestrzeni pomiędzy modelem a podkładką. Aby tego uniknąć, parametr \"Bezpieczna odległość stopy podpory\" powinien być większy niż \"Odstęp modelu od podkładki\"." - #: src/libslic3r/PrintConfig.cpp:457 msgid "The extruder to use (unless more specific extruder settings are specified). This value overrides perimeter and infill extruders, but not the support extruders." msgstr "Używany ekstruder (jeśli nie są określone dokładniejsze ustawienia ekstuderów). To ustawienie nadpisuje ustawienia ekstruderów dla obrysów i wypełnienia, ale nie tych dla podpór." @@ -6483,13 +7112,17 @@ msgstr "Pierwsza warstwa zostanie zmniejszona o tą wartość w osiach X i Y aby msgid "the following characters are not allowed:" msgstr "następujące znaki nie są dozwolone:" -#: src/slic3r/GUI/Tab.cpp:3311 -msgid "the following suffix is not allowed:" -msgstr "następujący sufiks nie jest dozwolony:" +#: src/slic3r/GUI/Tab.cpp:3283 +msgid "the following postfix are not allowed:" +msgstr "następujące znaczniki postfix nie są dozwolone:" + +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified" +msgstr "Następujące zestawy ustawień zostały zmodyfikowane" -#: src/libslic3r/PrintConfig.cpp:2702 -msgid "The gap between the object bottom and the generated pad in zero elevation mode." -msgstr "Odstęp między najniższą częścią modelu a wygenerowaną podkładką w trybie zerowego podniesienia." +#: src/slic3r/GUI/GUI_App.cpp:801 +msgid "The following presets were modified: " +msgstr "Następujące zestawy ustawień zostały zmodyfikowane:" #: src/libslic3r/PrintConfig.cpp:2453 msgid "The height of the pillar base cone" @@ -6503,10 +7136,6 @@ msgstr "Maksymalny dystans pomiędzy słupkami podpór, które powinny zostać p msgid "The max length of a bridge" msgstr "Maksymalna długość mostu" -#: src/libslic3r/PrintConfig.cpp:2569 -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 "Minimalny odstęp stopy słupka od modelu, wyrażony w mm. Ma zastosowanie w trybie zerowego podniesienia, gdy odstęp określony tym parametrem będzie oddzielał model od podkładki." - #: src/libslic3r/PrintConfig.cpp:2176 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 "Model zostanie zmniejszony lub zwiększony w osiach X i Y o zadaną wartość (ujemna = zmniejszenie, dotatnia = zwiększenie). Może być przydatne przy kalibracji średnic otworów." @@ -6516,8 +7145,14 @@ msgid "The object will be raised by this number of layers, and support material msgstr "Model zostanie podniesiony o zadaną ilość warstw i umieszczony na podporach." #: src/libslic3r/PrintConfig.cpp:2259 -msgid "The percentage of the bed area. \nIf the print area exceeds the specified value, \nthen a slow tilt will be used, otherwise - a fast tilt" -msgstr "Procentowa powierzchnia stołu.\nJeśli gabaryty wydruku przekraczają zadaną wartość,\nto zostanie użyte wolne przechylanie, w innym przypadku - szybkie" +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 "" +"Procentowa powierzchnia stołu.\n" +"Jeśli gabaryty wydruku przekraczają zadaną wartość,\n" +"to zostanie użyte wolne falowanie, w innym przypadku - szybkie" #: src/slic3r/GUI/GUI_App.cpp:831 msgid "The presets on the following tabs were modified" @@ -6543,10 +7178,6 @@ msgstr "Wybrany model nie może być podzielony ponieważ składa się z więcej msgid "The selected object couldn't be split because it contains only one part." msgstr "Wybrany model nie może być rozdzielony ponieważ zawiera tylko jedną część." -#: src/slic3r/GUI/MainFrame.cpp:410 -msgid "The selected project is no more available" -msgstr "Wybrany projekt nie jest dostępny" - #: src/libslic3r/PrintConfig.cpp:2570 msgid "The slope of the pad wall relative to the bed plane. 90 degrees means straight walls." msgstr "Kąt pochylenia ścian podkładki względem powierzchni stołu. 90 stopni oznacza proste ściany." @@ -6559,6 +7190,27 @@ msgstr "Prędkość powrotu filamentu do ekstrudera po retrakcji (dotyczy tylko msgid "The speed for retractions (it only applies to the extruder motor)." msgstr "Prędkość retrakcji (stosowana tylko dla silnika ekstrudera)." +#: src/slic3r/GUI/Tab.cpp:1247 +#, no-c-format +msgid "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" +msgstr "" +"Wymagania trybu wazy:\n" +"- jeden obrys\n" +"- brak warstw górnych\n" +"- 0% wypełnienia\n" +"- brak materiału podporowego\n" +"- brak opcji \"zagwarantuj odpowiednią grubość ścianki\"\n" +"\n" +"Czy ustawić te parametry odpowiednio dla trybu wazy?" + #: src/libslic3r/Print.cpp:1187 msgid "The Spiral Vase option can only be used when printing a single object." msgstr "Tryb Wazy może być aktywny tylko podczas druku pojedynczego modelu." @@ -6581,6 +7233,10 @@ msgstr "Podana nazwa jest niedostępna." msgid "The supplied name is not valid;" msgstr "Podana nazwa nie jest prawidłowa;" +#: c:\src\Slic3r\xs\src\slic3r\GUI\Tab.cpp:1785 +msgid "The supplied name is not valid; the following characters are not allowed:" +msgstr "Podana nazwa jest nieprawidłowa; następujące znaki są niedozwolone:" + #: src/libslic3r/Print.cpp:1268 msgid "The supplied settings will cause an empty print." msgstr "Wprowadzone ustawienia spowodują pusty wydruk." @@ -6594,13 +7250,37 @@ msgid "The vertical distance between object and support material interface. Sett msgstr "Dystans w pionie między modelem a warstwą łączącą materiału podporowego. Ustawienie na 0 wyłączy ustawienie mostu (prędkości i przepływu) dla pierwszej warstwy modelu nad warstwą łączącą." #: src/slic3r/GUI/Tab.cpp:2429 -msgid "The Wipe option is not available when using the Firmware Retraction mode.\n\nShall I disable it in order to enable Firmware Retraction?" -msgstr "Opcja czyszczenia dyszy nie jest dostępna z funkcją Retrakcji w Firmware (Firmware Retraction).\n\nWyłączyć ją aby włączyć Firmware Retraction?" +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 "" +"Opcja czyszczenia dyszy nie jest dostępna z funkcją Retrakcji w Firmware (Firmware Retraction).\n" +"\n" +"Wyłączyć ją aby włączyć Firmware Retraction?" + +#: src/slic3r/GUI/Tab.cpp:1277 +msgid "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool change.\n" +"(both support_material_extruder and support_material_interface_extruder need to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" +msgstr "" +"Użycie wieży czyszczącej jest możliwe jedynie przy użyciu nierozpuszczalnych podpór\n" +"gdy są drukowane z obecnie używanego ekstrudera, bez inicjowania jego zmiany.\n" +"(zarówno support_material_extruder i support_material_interface_extruder muszą być ustawione na 0).\n" +"\n" +"Zmienić te ustawienia aby włączyć wieżę czyszczącą?" #: src/libslic3r/Print.cpp:1306 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 support_material_extruder and support_material_interface_extruder need to be set to 0)." msgstr "Wieża Czyszcząca wspiera podpory nierozpuszczalne jedynie, gdy są drukowane tym samym ekstruderem - bez wywoływania zmiany narzędzia (zarówno support_material_extruder i support_material_interface_extruder muszą być ustawione na 0)." +#: xs/src/libslic3r/Print.cpp:617 +msgid "The Wipe Tower is currently only supported for the Marlin and RepRap/Sprinter G-code flavors." +msgstr "Wieża Czyszcząca jest obecnie dostępna tylko dla G-code w stylu RepRap/Sprinter." + #: src/libslic3r/Print.cpp:1200 msgid "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors." msgstr "Wieża Czyszcząca jest obecnie dostępna tylko dla G-code w stylu Marlin, RepRap/Sprinter i Repetier." @@ -6625,16 +7305,16 @@ msgstr "Wieża Czyszcząca jest dostępna dla kilku modeli tylko jeśli są cię msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heights" msgstr "Wieża czyszcząca jest dostępna dla wielu modeli pod warunkiem, że mają one równą wysokość warstwy" -#: src/libslic3r/Print.cpp:1155 -msgid "The wipe tower is only supported if all extruders have the same nozzle diameter and use filaments of the same diameter." -msgstr "Wieża Czyszcząca jest dostępna tylko, gdy wszystkie ekstrudery mają taką samą średnicę dyszy i używają filamentów i takiej samej średnicy." +#: src/libslic3r/Print.cpp:1223 +msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heigths" +msgstr "Wieża czyszcząca jest dostępna dla wielu modeli pod warunkiem, że mają one równą wysokość warstwy" #: src/libslic3r/Print.cpp:1258 msgid "The Wipe tower is only supported if all objects have the same layer height profile" msgstr "Wieża Czyszcząca jest dostępna tylko dla modeli o takiej samej wysokości warstwy" #: src/slic3r/GUI/UpdateDialogs.cpp:127 -#, possible-c-format +#, c-format msgid "This %s version: %s" msgstr "%s wersja: %s" @@ -6642,29 +7322,25 @@ msgstr "%s wersja: %s" msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." msgstr "Ten kod jest wykonywany pomiędzy drukiem poszczególnych modeli w trybie druku sekwencyjnego. Domyślnie przy komendzie non-wait temperatury dyszy i stołu są resetowane; jednakże jeśli przy tej opcji zostaną użyte komendy M104, M109, M140 lub M190 to Slic3r nie doda własnych komend do kontroli temperatury. Pamiętaj, że możesz używać zmiennych typu placeholder, więc np. komendę \"M109 S[first_layer_temperature]\" (temperatura pierwszej warstwy) możesz umieścić gdzie chcesz." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted at every extruder change. If you don't leave this empty, you are expected to take care of the toolchange yourself - PrusaSlicer will not output any other G-code to change the filament. You can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder], so e.g. the standard toolchange command can be scripted as T[next_extruder]." -msgstr "Ten kod jest dodawany do każdej zmiany ekstrudera. Jeśli ta sekcja nie pozostanie pusta, to zmiany narzędzi będą musiały zostać wykonane ręcznie - PrusaSlicer nie wygeneruje żadnego G-kodu dla zmiany filamentu. Możesz użyć zmiennych dla wszystkich ustawień Slic3r, jak i również [previous_extruder] oraz [next_extruder], tak aby np. standardowa komenda zmiany narzędzia była skryptem jako T[next_extruder]." - #: src/libslic3r/PrintConfig.cpp:1032 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 use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." msgstr "Ten kod jest wykonywany przy każdej zmianie warstwy - zaraz po podniesieniu głowicy na wysokość kolejnej warstwy ale zanim ekstruder przejdzie do pierwszego punktu nowej warstwy. Pamiętaj, że możesz użyć zmiennych typu placeholder dla wszystkich ustawień Slic3r, jak np. [layer_num] (numer warstwy) i [layer_z] (położenie warstwy w osi Z)." #: src/libslic3r/PrintConfig.cpp:129 msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." -msgstr "Ten kod jest wykonywany przy każdej zmianie warstwy, zaraz przed podniesieniem ekstrudera na wysokość nowej warstwy. Pamiętaj, że możesz użyć zmiennych typu placeholder dla wszystkich ustawień PrusaSlicer, jak np. [layer_num] (numer warstwy) i [layer_z] (położenie warstwy w osi Z)." +msgstr "Ten kod jest wykonywany przy każdej zmianie warstwy, zaraz przed podniesieniem ekstrudera na wysokość nowej warstwy. Pamiętaj, że możesz użyć zmiennych typu placeholder dla wszystkich ustawień Slic3r, jak np. [layer_num] (numer warstwy) i [layer_z] (położenie warstwy w osi Z)." -#: src/libslic3r/PrintConfig.cpp:2057 -msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange." -msgstr "Ten kod jest wykonywany przy każdej zmianie narzędzia (filamentu). Możesz użyć zmiennych dla wszystkich ustawień PrusaSlicer, jak i również {previous_extruder} i {next_extruder}. Po wysłaniu komendy zmiany narzędzia, która zmienia obecny ekstruder (np. T{next_extruder}), PrusaSlicer nie powtórzy tej komendy. Możliwe jest więc zdefiniowanie własnego zachowania zarówno przed jak i po zmianie narzędzia." - -#: src/libslic3r/PrintConfig.cpp:380 -msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Ta procedura końcowa jest dodawana na końcu pliku wyjściowego, przed kodem końcowym (jak i również przed każdą zmianą z tego filamentu na kolejny w przypadku drukarek wielomateriałowych). Zauważ, że możesz używać zmiennych dla wszystkich ustawień PrusaSlicer. Jeśli masz kilka ekstruderów, to G-code jest wykonywany w ich kolejności." +#: src/libslic3r/PrintConfig.cpp:2007 +msgid "This custom code is inserted right before every extruder change. Note that you can use placeholder variables for all Slic3r settings as well as [previous_extruder] and [next_extruder]." +msgstr "Ten kod jest wykonywany przed każdą zmianą ekstrudera/filamentu. Pamiętaj, że możesz użyć zmiennych typu placeholder dla wszystkich ustawień Slic3r, jak np. [previous_extruder] (poprzedni ekstruder) i [next_extruder] (następny ekstruder)." #: src/libslic3r/PrintConfig.cpp:370 -msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all PrusaSlicer settings." -msgstr "Ta procedura końcowa jest dodawana na końcu pliku wyjściowego. Zauważ, że możesz używać zmiennych dla wszystkich ustawień PrusaSlicer." +msgid "This end procedure is inserted at the end of the output file, before the printer end gcode. Note that you can use placeholder variables for all Slic3r settings. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Ten kod jest wykonywany na samym końcu, przed samym zakończeniem wykonywania pliku G-code. Pamiętaj, że możesz użyć zmiennych typu placeholder dla wszystkich ustawień Slic3r. Jeśli masz kilka ekstruderów, ten G-code jest wykonywany zgodnie z ich kolejnością." + +#: src/libslic3r/PrintConfig.cpp:360 +msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all Slic3r settings." +msgstr "Ten kod jest wykonywany jako ostatni w pliku wyjściowym. Pamiętaj, że możesz użyć zmiennych typu placeholder dla wszystkich ustawień Slic3r." #: src/libslic3r/PrintConfig.cpp:1193 src/libslic3r/PrintConfig.cpp:1204 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 of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." @@ -6714,14 +7390,34 @@ msgstr "Ta funkcja pozwala drukować modele z 1 zewnętrzną ścianką z ciągł msgid "This file cannot be loaded in a simple mode. Do you want to switch to an advanced mode?\n" msgstr "Ten plik nie może zostać wczytany w Trybie Prostym. Czy chcesz przełączyć na Tryb Zaawansowany?\n" +#: src/slic3r/GUI/Plater.cpp:1650 +msgid "This file cannot be loaded in simple mode. Do you want to switch to expert mode?\n" +msgstr "Ten plik nie może być wczytany w trybie prostym. Czy chcesz przełączyć na tryb ekspert?\n" + #: src/slic3r/GUI/Plater.cpp:1658 -msgid "This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\nthis file as a single object having multiple parts?\n" -msgstr "Ten plik zawiera kilka modeli umieszczonych na różnych wysokościach. Potraktować go jako\njeden model składający się z kilku części?\n" +msgid "" +"This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\n" +"this file as a single object having multiple parts?\n" +msgstr "" +"Ten plik zawiera kilka modeli umieszczonych na różnych wysokościach. Potraktować go jako\n" +"jeden model składający się z kilku części?\n" #: src/slic3r/GUI/FirmwareDialog.cpp:313 -#, possible-c-format -msgid "This firmware hex file does not match the printer model.\nThe hex file is intended for: %s\nPrinter reported: %s\n\nDo you want to continue and flash this hex file anyway?\nPlease only continue if you are sure this is the right thing to do." -msgstr "Ten plik .hex z firmware nie jest przeznaczony dla tej drukarki.\nPlik .hex jest przeznaczony dla: %s\nWykryta drukarka: %s\n\nCzy chcesz kontynuować i mimo wszystko wgrać ten plik .hex?\nKontynuuj tylko, jeśli wiesz, że tak powinno być." +#, c-format +msgid "" +"This firmware hex file does not match the printer model.\n" +"The hex file is intended for: %s\n" +"Printer reported: %s\n" +"\n" +"Do you want to continue and flash this hex file anyway?\n" +"Please only continue if you are sure this is the right thing to do." +msgstr "" +"Ten plik .hex z firmware nie jest przeznaczony dla tej drukarki.\n" +"Plik .hex jest przeznaczony dla: %s\n" +"Wykryta drukarka: %s\n" +"\n" +"Czy chcesz kontynuować i mimo wszystko wgrać ten plik .hex?\n" +"Kontynuuj tylko, jeśli wiesz, że tak powinno być." #: src/libslic3r/PrintConfig.cpp:278 msgid "This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer printing time." @@ -6739,22 +7435,10 @@ msgstr "Ta flaga wymusza retrakcję przy każdej zmianie wysokości Z." msgid "This flag will move the nozzle while retracting to minimize the possible blob on leaky extruders." msgstr "Ta flaga włączy ruch dyszy przy retrakcji aby zminimalizować formowanie się kropli filamentu wokół końcówki dyszy przy ekstruderach, które mają tendencję do wyciekania filamentu." -#: src/slic3r/GUI/Tab.cpp:921 -msgid "This is a default preset." -msgstr "To jest domyślny zestaw ustawień." - #: src/libslic3r/PrintConfig.cpp:2501 msgid "This is a relative measure of support points density." msgstr "To jest względna miara gęstości punktów podpór." -#: src/slic3r/GUI/Tab.cpp:2528 -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 "To jest drukarka wielomateriałowa z jednym ekstruderem, więc średnice wszystkich ekstruderów zostaną zastąpione nową wartością. Kontynuować?" - -#: src/slic3r/GUI/Tab.cpp:923 -msgid "This is a system preset." -msgstr "To jest systemowy zestaw ustawień." - #: src/libslic3r/PrintConfig.cpp:491 src/libslic3r/PrintConfig.cpp:551 msgid "This is only used in the Slic3r interface as a visual help." msgstr "Ta funkcja jest używana jedynie w interfejsie Slic3ra jako pomoc wizualna." @@ -6792,13 +7476,21 @@ msgstr "To jest najwyższa możliwa do wydrukowania wysokość warstwy dla tego 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 "To jest najniższa możliwa do wydrukowania wysokość warstwy dla tego ekstrudera i jednocześnie dolny limit dla funkcji zmiennej wysokości warstwy. Zazwyczaj jest to 0.05 lub 0.1 mm." +#: src/libslic3r/PrintConfig.cpp:2114 +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 "Ta formuła określa objętość (w milimetrach sześciennych) wymaganą do wyczyszczenia filamentu na wieży czyszczącej dla danej pary narzędzi (filamentów). " + #: src/libslic3r/PrintConfig.cpp:2139 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 "Ta formuła określa objętość (w milimetrach sześciennych) wymaganą do wyczyszczenia filamentu na wieży czyszczącej dla danej pary narzędzi (filamentów)." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:643 -msgid "This operation is irreversible.\nDo you want to proceed?" -msgstr "Tej czynności nie można cofnąć.\nCzy chcesz kontynuować?" +msgid "" +"This operation is irreversible.\n" +"Do you want to proceed?" +msgstr "" +"Tej czynności nie można cofnąć.\n" +"Czy chcesz kontynuować?" #: src/libslic3r/PrintConfig.cpp:1372 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 surfaces which benefit from a higher number of perimeters if the Extra Perimeters option is enabled." @@ -6840,13 +7532,22 @@ msgstr "To ustawienie odpowiada za maksymalną prędkość wentylatora." msgid "This setting represents the minimum PWM your fan needs to work." msgstr "To ustawienie wyraża minimalny PWM (Pulse Width Modulation), który jest niezbędny dla wentylatora." -#: src/libslic3r/PrintConfig.cpp:1801 -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 printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." -msgstr "Ta procedura startowa jest dodawana po kodzie startowym drukarki (i po zmianie filamentu w przypadku drukarek wielomateriałowych). Jest używana, aby nadpisać ustawienia dla konkretnego filamentu. Jeśli PrusaSlicer wykryje M104, M109, M140 lub M190 w Twoich kodach, to takie komendy nie będą automatycznie poprzedzane, więc możesz dowolnie ustawić kolejność nagrzewania i inne skonfigurowane przez siebie akcje. Zauważ, że możesz używać zmiennych dla wszystkich ustawień PrusaSlicer, więc możesz umieścić komendę \"M109 S[first_layer_temperature]\" gdzie tylko zechcesz. Jeśli masz kilka ekstruderów, to ten G-code jest wykonywany zgodnie z kolejnością ekstruderów." +#: src/slic3r/GUI/UpdateDialogs.cpp:123 +#, c-format +msgid "This Slic3r PE version: %s" +msgstr "Ta wersja Slic3r PE: %s" + +#: src/libslic3r/PrintConfig.cpp:1752 +msgid "This start procedure is inserted at the beginning, after any printer start gcode. This is used to override settings for a specific filament. If Slic3r detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order." +msgstr "Ten skrypt jest wykonywany na samym początku G-code. Może być użyty do nadpisania określonych ustawień filamentu. Jeśli Slic3r wykryje komendy typu M104, M109, M140 lub M190, to nie zostaną one wykonane na początku, więc możesz określić kolejność komend dot. podgrzewania i innych dodanych akcji. Pamiętaj, że możesz używać zmiennych typu placeholder, więc np. komendę \"M109 S[first_layer_temperature]\" (temperatura pierwszej warstwy) możesz umieścić gdzie chcesz. Jeśli posiadasz kilka ekstruderów, ten G-code jest wykonywany w ich kolejności." + +#: src/libslic3r/PrintConfig.cpp:1737 +msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If Slic3r detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "Ten skrypt jest wykonywany na początku, po tym jak stół roboczy osiągnie zadaną temperaturę i ekstruder zacznie podgrzewanie, ale zanim nagrzeje się do zadanej temperatury. Jeśli Slic3r wykryje komendy typu M104, M109, M140 lub M190, to nie zostaną one wykonane na początku, więc możesz określić kolejność komend dot. podgrzewania i innych dodanych akcji. Pamiętaj, że możesz używać zmiennych typu placeholder, więc np. komendę \"M109 S[first_layer_temperature]\" (temperatura pierwszej warstwy) możesz umieścić gdzie chcesz." -#: src/libslic3r/PrintConfig.cpp:1786 -msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." -msgstr "Ta procedura startowa jest dodawana na początku, po osiągnięciu przez stół zadanej temperatury i rozpoczęciu nagrzewania ekstrudera, ale przed zakończeniem tego procesu. Jeśli PrusaSlicer wykryje M140 lub M190 w Twoich kodach, to takie komendy nie będą automatycznie poprzedzane, więc możesz dowolnie ustawić kolejność nagrzewania i inne skonfigurowane przez siebie akcje. Zauważ, że możesz używać zmiennych dla wszystkich ustawień PrusaSlicer, więc możesz umieścić komendę \"M109 S[first_layer_temperature]\" gdzie tylko zechcesz." +#: src/libslic3r/PrintConfig.cpp:663 +msgid "This string is edited by RammingDialog and contains ramming specific parameters " +msgstr "Ten ciąg jest edytowany przez RammingDialog i zawiera parametry właściwe dla wyciskania " #: src/libslic3r/PrintConfig.cpp:664 msgid "This string is edited by RammingDialog and contains ramming specific parameters." @@ -6856,14 +7557,42 @@ msgstr "Ten ciąg jest edytowany przez RammingDialog i zawiera parametry właśc 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 example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)." msgstr "Wartość tego ustawienia zostanie dodana (lub odjęta) od wszystkich koordynat w osi Z w pliku wyjściowym G-code. Jest używana dla korekcji złego położenia wyłącznika krańcowego osi Z. Np. jeśli końcówka dyszy znajduje się 0.3 mm ponad położeniem zerowym, ustaw tutaj -0.3 (lub napraw krańcówkę)." +#: src/libslic3r/PrintConfig.cpp:2107 +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 "To ustawienie określa wymaganą objętość wieży czyszczącej przy zmianie danego narzędzia. Te wartości używane są do uproszczenia określenia pełnych wartości czyszczenia poniżej. " + #: src/libslic3r/PrintConfig.cpp:2132 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 "To ustawienie określa wymaganą objętość wieży czyszczącej przy zmianie danego narzędzia. Te wartości używane są do uproszczenia określenia pełnych wartości czyszczenia poniżej." #: src/slic3r/GUI/UpdateDialogs.cpp:118 -#, possible-c-format -msgid "This version of %s is not compatible with currently installed configuration bundles.\nThis probably happened as a result of running an older %s after using a newer one.\n\nYou may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" -msgstr "Ta wersja %s nie jest kompatybilna z aktualnie zainstalowanym zestawem konfiguracji.\nPrawdopodobnie stało się tak, ponieważ uruchomiono starszy %s po użyciu nowszego.\n\nMożesz zamknąć %s i spróbować ponownie z nowszą wersją, lub możesz też uruchomić ponownie konfigurację początkową. Spowoduje to stworzenie kopii istniejącej konfiguracji przed zainstalowaniem plików kompatybilnych z %s .\n" +#, c-format +msgid "" +"This version of %s is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older %s after using a newer one.\n" +"\n" +"You may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n" +msgstr "" +"Ta wersja %s nie jest kompatybilna z aktualnie zainstalowanym zestawem konfiguracji.\n" +"Prawdopodobnie stało się tak, ponieważ uruchomiono starszy %s po użyciu nowszego.\n" +"\n" +"Możesz zamknąć %s i spróbować ponownie z nowszą wersją, lub możesz też uruchomić ponownie konfigurację początkową. Spowoduje to stworzenie kopii istniejącej konfiguracji przed zainstalowaniem plików kompatybilnych z %s .\n" + +#: src/slic3r/GUI/UpdateDialogs.cpp:114 +msgid "" +"This version of Slic3r PE is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older Slic3r PE after using a newer one.\n" +"\n" +"You may either exit Slic3r and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this Slic3r.\n" +msgstr "" +"Ta wersja Slic3r PE nie jest kompatybilna z aktualnie zainstalowanym zestawem konfiguracji.\n" +"Może to być rezultatem uruchomienia starszej wersji Slic3r PE po instalacji nowszej.\n" +"\n" +"Masz 2 opcje wyboru: możesz zamknąć Slic3r i spróbować ponownie uruchomić nowszą wersję lub uruchomić ponownie konfigurację początkową. Wybranie drugiej opcji spowoduje stworzenie zrzutu istniejącej konfiguracji przed instalacją konfiguracji kompatybilnej z tą wersją Slic3ra.\n" + +#: src/libslic3r/PrintConfig.cpp:2282 +msgid "This will apply a gamm correction to the rasterized 2D polygons." +msgstr "To ustawienie zastosuje korekcję gamma do wszystkich rasteryzowanych polygonów 2D." #: src/libslic3r/PrintConfig.cpp:2284 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." @@ -6879,11 +7608,11 @@ msgstr "Wątki są używane do równoległego przetwarzania zadań wymagających #: src/slic3r/GUI/Tab.cpp:2052 msgid "Tilt" -msgstr "Przechylanie" +msgstr "Falowanie" #: src/slic3r/GUI/Tab.cpp:2053 msgid "Tilt time" -msgstr "Czas przechylania" +msgstr "Czas falowania" #: src/slic3r/GUI/RammingChart.cpp:76 msgid "Time" @@ -6899,11 +7628,15 @@ msgstr "Czas, który drukarka (lub dodatek Multi Material 2.0) poświęca na roz #: src/libslic3r/PrintConfig.cpp:2242 msgid "Time of the fast tilt" -msgstr "Czas szybkiego przechylania" +msgstr "Czas szybkiego falowania" #: src/libslic3r/PrintConfig.cpp:2251 msgid "Time of the slow tilt" -msgstr "Czas wolnego przechylania" +msgstr "Czas wolnego falowania" + +#: src/libslic3r/PrintConfig.cpp:609 +msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions. " +msgstr "Czas bezczynności po rozładowaniu filamentu. Może pomóc w bezproblemowej zmianie narzędzia podczas druku z materiałami elastycznymi, które mogą potrzebować więcej czasu na skurcz termiczny wracając do nominalnego rozmiaru. " #: src/libslic3r/PrintConfig.cpp:610 msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions." @@ -6913,6 +7646,10 @@ msgstr "Czas bezczynności po rozładowaniu filamentu. Może pomóc w bezproblem msgid "To do that please specify a new name for the preset." msgstr "Aby to zrobić ustaw nową nazwę zestawu ustawień." +#: src/slic3r/GUI/UpdateDialogs.cpp:37 +msgid "To download, follow the link below." +msgstr "Przejdź do linku aby pobrać." + #: src/slic3r/GUI/Plater.cpp:2966 msgid "To objects" msgstr "Do modeli" @@ -6921,11 +7658,6 @@ msgstr "Do modeli" msgid "To parts" msgstr "Na części" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:212 -#, possible-c-format -msgid "Toggle %c axis mirroring" -msgstr "Włącz odbicie w osi %c" - #: src/libslic3r/Zipper.cpp:37 msgid "too many files" msgstr "zbyt wiele plików" @@ -6974,6 +7706,10 @@ msgstr "Zwarte warstwy górne" msgid "Top View" msgstr "Widok z góry" +#: xs/src/libslic3r/PrintConfig.cpp:283 +msgid "Top/bottom fill pattern" +msgstr "Wzór wypełnienia góry/dołu" + #: src/slic3r/GUI/WipeTowerDialog.cpp:247 msgid "Total purging volume is calculated by summing two values below, depending on which tools are loaded/unloaded." msgstr "Całkowita objętość czyszczenia jest obliczana z sumy obydwóch wartości poniżej, w zależności która para narzędzi jest rozładowana/ładowana." @@ -7006,36 +7742,18 @@ msgstr "Podejmij próbę naprawienia wszystkich niezamkniętych obszarów siatki msgid "Type of the printer." msgstr "Rodzaj drukarki." -#: src/slic3r/GUI/GUI_ObjectList.cpp:2549 -msgid "Type:" -msgstr "Typ:" - #: src/libslic3r/Zipper.cpp:35 msgid "undefined error" msgstr "nieznany błąd" -#: src/slic3r/GUI/GLCanvas3D.cpp:3389 src/slic3r/GUI/GLCanvas3D.cpp:3609 -#: src/slic3r/GUI/MainFrame.cpp:559 -msgid "Undo" -msgstr "Cofnij" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, possible-c-format -msgid "Undo %1$d Action" -msgid_plural "Undo %1$d Actions" -msgstr[0] "Cofnij %1$d akcję" -msgstr[1] "Cofnij %1$d akcji" -msgstr[2] "Cofnij %1$d akcji" -msgstr[3] "Cofnij %1$d akcji" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Undo History" -msgstr "Historia Cofnięć" - #: src/libslic3r/Zipper.cpp:59 msgid "unexpected decompressed size" msgstr "nieoczekiwany rozmiar po rozpakowaniu" +#: lib/Slic3r/GUI/Plater.pm:2264 lib/Slic3r/GUI/Plater.pm:2280 +msgid "Uniformly…" +msgstr "Jednakowo…" + #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:27 msgid "Unknown" msgstr "Nieznane" @@ -7060,13 +7778,29 @@ msgstr "Początkowa prędkość rozładowania" msgid "UNLOCKED LOCK" msgstr "OTWARTA KŁÓDKA" -#: src/slic3r/GUI/Tab.cpp:3362 -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.\nClick to reset all settings for current option group to the system (or default) values." -msgstr "OTWARTA KŁÓDKA oznacza, że niektóre ustawienia zostały zmodyfikowane i nie odpowiadają wartościom systemowym (lub domyślnym) w obecnej grupie opcji.\nKliknij aby zresetować wszystkie ustawienia obecnej grupy ustawień do wartości systemowych (lub domyślnych)." +#: src/slic3r/GUI/Tab.cpp:3105 +msgid "" +"UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click to reset all settings for current option group to the system values." +msgstr "" +"OTWARTA KŁÓDKA oznacza, że niektóre ustawienia zostały zmodyfikowane i nie odpowiadają wartościom systemowym w obecnej grupie opcji.\n" +"Kliknij aby zresetować wszystkie ustawienia obecnej grupy ustawień do wartości systemowych." + +#: src/slic3r/GUI/Tab.cpp:3120 +msgid "" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system value.\n" +"Click to reset current value to the system value." +msgstr "" +"OTWARTA KŁÓDKA oznacza, że niektóre ustawienia zostały zmodyfikowane i nie odpowiadają wartościom systemowym.\n" +"Kliknij ikonę aby zresetować do wartości systemowej." -#: src/slic3r/GUI/Tab.cpp:3377 -msgid "UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\nClick to reset current value to the system (or default) value." -msgstr "OTWARTA KŁÓDKA oznacza, że niektóre wartości zostały zmodyfikowane i nie odpowiadają systemowym (lub domyślnym).\nKliknij ikonę aby zresetować do wartości systemowej (lub domyślnej)." +#: src/slic3r/GUI/Tab.cpp:3067 +msgid "" +"UNLOCKED LOCK;indicates that some settings were changed and are not equal to the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system values." +msgstr "" +"OTWARTA KŁÓDKA; oznacza, że niektóre ustawienia zostały zmodyfikowane i nie odpowiadają wartościom systemowym w obecnej grupie opcji.\n" +"Kliknij ikonę OTWARTEJ KŁÓDKI aby zresetować wszystkie ustawienia obecnej grupy ustawień do wartości systemowych." #: src/slic3r/GUI/GUI_Preview.cpp:245 msgid "Unretractions" @@ -7081,8 +7815,8 @@ msgid "Unsaved Presets" msgstr "Niezapisane zestawy ustawień" #: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Unselect gizmo / Clear selection" -msgstr "Uchwyt do odznaczania / usuń zaznaczenie" +msgid "Unselect gizmo, keep object selection" +msgstr "Odznacz wihajster, zachowaj zaznaczenie modelu" #: src/libslic3r/Zipper.cpp:63 msgid "unsupported central directory size" @@ -7104,16 +7838,12 @@ msgstr "nieobsługiwana metoda" msgid "unsupported multidisk archive" msgstr "nieobsługiwane archiwum wielodyskowe" -#: src/slic3r/GUI/GUI_App.cpp:305 -msgid "Unsupported OpenGL version" -msgstr "Nieobsługiwana wersja OpenGL" - #: src/slic3r/GUI/GUI_ObjectList.cpp:2414 msgid "Unsupported selection" msgstr "Niewłaściwy wybór" #: src/libslic3r/GCode/PreviewData.cpp:495 -#, possible-c-format +#, c-format msgid "up to %.2f mm" msgstr "do %.2f mm" @@ -7141,6 +7871,10 @@ msgstr "Aktualizacja" msgid "Upload a firmware image into an Arduino based printer" msgstr "Wgraj obraz firmware do drukarki opartej na Adruino" +#: xs/src/slic3r/Utils/OctoPrint.cpp:33 +msgid "Upload to OctoPrint with the following filename:" +msgstr "Prześlij do OctoPrint z następującą nazwą pliku:" + #: src/slic3r/GUI/PrintHostDialogs.cpp:33 msgid "Upload to Printer Host with the following filename:" msgstr "Prześlij do Serwera Druku z następującą nazwą pliku:" @@ -7162,10 +7896,6 @@ msgstr "Połączenie USB/szeregowe" msgid "USB/serial port for printer connection." msgstr "Port USB/szeregowy do połączenia z drukarką." -#: src/slic3r/GUI/Preferences.cpp:117 -msgid "Use custom size for toolbar icons" -msgstr "Użyj własnego rozmiaru ikon pasków narzędzi" - #: src/libslic3r/PrintConfig.cpp:2060 msgid "Use firmware retraction" msgstr "Użyj retrakcji z firmware" @@ -7174,14 +7904,14 @@ msgstr "Użyj retrakcji z firmware" msgid "Use forward slashes ( / ) as a directory separator if needed." msgstr "Użyj prawego ukośnika ( / ) jako separatora katalogu w razie potrzeby." +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "Use legacy OpenGL 1.1 rendering" +msgstr "Użyj renderowania OpenGL 1.1 (przestarzałe)" + #: src/libslic3r/PrintConfig.cpp:2515 msgid "Use pad" msgstr "Użyj podkładki" -#: src/slic3r/GUI/Preferences.cpp:110 -msgid "Use perspective camera" -msgstr "Użyj widoku perspektywicznego" - #: src/libslic3r/PrintConfig.cpp:2067 msgid "Use relative E distances" msgstr "Użyj względnych wartości E (ekstruzji)" @@ -7243,10 +7973,18 @@ msgstr "Wartość jest taka sama jak systemowa" msgid "Value was changed and is not equal to the system value or the last saved preset" msgstr "Wartość została zmieniona i nie równa się wartości systemowej lub tej z ostatnio zapisanego zestawu ustawień" +#: src/slic3r/GUI/Tab.cpp:2150 +msgid "Values in this column are for Full Power mode" +msgstr "Wartości w tej kolumnie odnoszą się do trybu Pełnej Mocy" + #: src/slic3r/GUI/Tab.cpp:2151 msgid "Values in this column are for Normal mode" msgstr "Wartości w tej kolumnie dotyczą trybu Normal" +#: src/slic3r/GUI/Tab.cpp:2156 +msgid "Values in this column are for Silent mode" +msgstr "Wartości w tej kolumnie odnoszą się do trybu cichego" + #: src/slic3r/GUI/Tab.cpp:2157 msgid "Values in this column are for Stealth mode" msgstr "Wartości w tej kolumnie dotyczą trybu Stealth" @@ -7263,6 +8001,10 @@ msgstr "dostawca" msgid "Verbose G-code" msgstr "G-code rozszerzony" +#: lib/Slic3r/GUI/MainFrame.pm:66 +msgid "Version " +msgstr "Wersja " + #: src/slic3r/GUI/AboutDialog.cpp:67 src/slic3r/GUI/MainFrame.cpp:53 msgid "Version" msgstr "Wersja" @@ -7292,18 +8034,10 @@ msgstr "Objętość" msgid "Volume to purge (mm³) when the filament is being" msgstr "Objętość do wyczyszczenia (mm³), gdy filament jest" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Volumes in Object reordered" -msgstr "Części modelu przeorganizowane" - #: src/slic3r/GUI/PresetHints.cpp:216 msgid "Volumetric" msgstr "Objętościowy" -#: src/slic3r/GUI/Tab.cpp:1800 -msgid "Volumetric flow hints not available" -msgstr "Podpowiedzi dot. objętości przepływu są niedostępne" - #: src/slic3r/GUI/GUI_Preview.cpp:216 msgid "Volumetric flow rate" msgstr "Objętościowa wartość przepływu" @@ -7325,24 +8059,46 @@ msgstr "Ostrzeżenie" msgid "Welcome" msgstr "Witaj" +#: src/slic3r/GUI/ConfigWizard.cpp:294 +#, c-format +msgid "Welcome to the %s %s" +msgstr "Witaj w %s %s" + #: src/slic3r/GUI/ConfigWizard.cpp:296 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Assistant" msgstr "Witamy w Asystencie Konfiguracji %s" #: src/slic3r/GUI/ConfigWizard.cpp:298 -#, possible-c-format +#, c-format msgid "Welcome to the %s Configuration Wizard" msgstr "Witamy w Asystencie Konfiguracji %s" +#: src/slic3r/GUI/ConfigWizard.cpp:284 +#, c-format +msgid "Welcome to the Slic3r %s" +msgstr "Witaj w Slic3r %s" + +#: lib/Slic3r/GUI/Plater/2D.pm:131 +msgid "What do you want to print today? ™" +msgstr "Co chcesz dziś wydrukować? ™" + #: src/slic3r/GUI/Preferences.cpp:86 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 "Zaznaczenie tej opcji spowoduje wyświetlanie wszystkich ustawień druku i filamentów w edytorze zestawów ustawień, nawet jeśli są oznaczone jak niekompatybilne z wybraną drukarką" +#: src/slic3r/GUI/PresetHints.cpp:221 +msgid "when printing " +msgstr "podczas druku " + #: src/slic3r/GUI/PresetHints.cpp:223 msgid "when printing" msgstr "podczas druku" +#: src/libslic3r/PrintConfig.cpp:216 +msgid "When printing multi-material objects, this settings will make slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "To ustawienie sprawi, że podczas druku modeli z wielu materiałów, Slic3r przytnie nachodzące na siebie części (druga część zostanie przycięta przez pierwszą, trzecia przez pierwszą i drugą itd.)" + #: src/libslic3r/PrintConfig.cpp:217 msgid "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." msgstr "To ustawienie sprawi, że podczas druku modeli z wielu materiałów, PrusaSlicer przytnie nachodzące na siebie części (druga część zostanie przycięta przez pierwszą, trzecia przez pierwszą i drugą itd.)" @@ -7363,6 +8119,10 @@ msgstr "Kiedy retrakcja zostaje wykonana przed zmianą ekstrudera, filament o ok 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 "Kiedy zostaje wykonana retrakcja to filament o określonej długości jest wciągany z powrotem (mierzona jest długość nieprzetworzonego filamentu, zanim wejdzie do ekstrudera)." +#: src/libslic3r/PrintConfig.cpp:1322 +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 positive, it is loaded further, if negative, the loading move is shorter than unloading. " +msgstr "Gdy ta wartość wynosi zero, to długość ładowania filamentu z pozycji zaparkowanej jest dokładnie taka sama, jak podczas rozładowywania. Jeśli jest dodatnia to jest większa (więcej filamentu zostanie załadowane), jeśli ujemna to jest mniejsza niż przy rozładowywaniu." + #: src/libslic3r/PrintConfig.cpp:1347 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 positive, it is loaded further, if negative, the loading move is shorter than unloading." msgstr "Gdy ta wartość wynosi zero, to długość ładowania filamentu z pozycji zaparkowanej jest dokładnie taka sama, jak podczas rozładowywania. Jeśli jest dodatnia to jest większa (więcej filamentu zostanie załadowane), jeśli ujemna to jest mniejsza niż przy rozładowywaniu." @@ -7383,9 +8143,9 @@ msgstr "Jeśli retrakcja jest korygowana po ruchu jałowym, ekstruder przepchnie msgid "WHITE BULLET" msgstr "BIAŁA KROPKA" -#: src/slic3r/GUI/Tab.cpp:3365 -msgid "WHITE BULLET icon indicates a non system (or non default) preset." -msgstr "BIAŁA KROPKA oznacza niesystemowy (lub inny niż domyślny) zestaw ustawień." +#: src/slic3r/GUI/Tab.cpp:3108 +msgid "WHITE BULLET icon indicates a non system preset." +msgstr "BIAŁA KROPKA oznacza niesystemowy zestaw ustawień." #: src/slic3r/GUI/Tab.cpp:3111 msgid "WHITE BULLET icon indicates that the settings are the same as in the last saved preset for the current option group." @@ -7395,6 +8155,14 @@ msgstr "BIAŁA KROPKA oznacza, że ustawienia są takie same jak w ostatnio zapi msgid "WHITE BULLET icon indicates that the value is the same as in the last saved preset." msgstr "BIAŁA KROPKA oznacza, że wartość jest taka sama jak w ostatnio zapisanym zestawie ustawień." +#: src/slic3r/GUI/Tab.cpp:3073 +msgid "" +"WHITE BULLET;for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"BIAŁA KROPKA;dla lewego przycisku: wskazuje na niesystemowy zestaw ustawień,\n" +"dla prawego przycisku: wskazuje, że ustawienia nie zostały zmodyfikowane." + #: src/slic3r/GUI/GUI_Preview.cpp:214 src/libslic3r/PrintConfig.cpp:2137 msgid "Width" msgstr "Szerokość" @@ -7411,10 +8179,6 @@ msgstr "Odstęp pomiędzy środkami przedniej i tylnej części łącznika podpo msgid "Width of a wipe tower" msgstr "Szerokość wieży czyszczącej" -#: src/libslic3r/PrintConfig.cpp:2761 -msgid "Width of the connector sticks which connect the object and the generated pad." -msgstr "Średnica słupków łączących model z wygenerowaną podkładką." - #: src/libslic3r/PrintConfig.cpp:2203 msgid "Width of the display" msgstr "Szerokość wyświetlacza" @@ -7423,6 +8187,11 @@ msgstr "Szerokość wyświetlacza" msgid "will always run at %1%%%" msgstr "będzie zawsze pracować w %1%%%" +#: src/slic3r/GUI/PresetHints.cpp:43 +#, c-format +msgid "will always run at %d%% " +msgstr "będzie zawsze pracować w %d%% " + #: src/slic3r/GUI/PresetHints.cpp:52 msgid "will be turned off." msgstr "będzie wyłączony." @@ -7439,17 +8208,15 @@ msgstr "Czyszczenie na tym modelu" msgid "Wipe into this object's infill" msgstr "Czyszczenie na wypełnieniu modelu" -#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:90 -#: src/slic3r/GUI/GUI_ObjectList.cpp:564 src/libslic3r/PrintConfig.cpp:2202 -#: src/libslic3r/PrintConfig.cpp:2210 -msgid "Wipe options" -msgstr "Opcje czyszczenia" - #: src/slic3r/GUI/GUI_Preview.cpp:238 src/slic3r/GUI/Tab.cpp:1130 #: src/libslic3r/GCode/PreviewData.cpp:174 msgid "Wipe tower" msgstr "Wieża czyszcząca" +#: src/slic3r/GUI/Tab.cpp:1281 src/slic3r/GUI/Tab.cpp:1298 +msgid "Wipe Tower" +msgstr "Wieża Czyszcząca" + #: src/slic3r/GUI/Plater.cpp:1043 src/slic3r/GUI/Plater.cpp:1058 msgid "wipe tower" msgstr "wieża czyszcząca" @@ -7458,14 +8225,14 @@ msgstr "wieża czyszcząca" msgid "Wipe tower - Purging volume adjustment" msgstr "Wieża czyszcząca - dostosowanie objętości czyszczenia" -#: src/slic3r/GUI/Tab.cpp:1664 -msgid "Wipe tower parameters" -msgstr "Parametry wieży czyszczącej" - #: src/libslic3r/PrintConfig.cpp:2144 msgid "Wipe tower rotation angle" msgstr "Kąt obrotu wieży czyszczącej" +#: src/libslic3r/PrintConfig.cpp:2145 +msgid "Wipe tower rotation angle with respect to x-axis " +msgstr "Obrót wieży czyszczącej względem osi X " + #: src/libslic3r/PrintConfig.cpp:2170 msgid "Wipe tower rotation angle with respect to x-axis." msgstr "Obrót wieży czyszczącej względem osi X." @@ -7474,6 +8241,10 @@ msgstr "Obrót wieży czyszczącej względem osi X." msgid "Wipe while retracting" msgstr "Czyszczenie przy retrakcji" +#: xs/src/libslic3r/PrintConfig.cpp:1997 +msgid "Wiping after toolchange will be preferentially done inside infills. This lowers the amount of waste but may result in longer print time due to additional travel moves." +msgstr "Czyszczenie po zmianie narzędzia (filamentu) będzie odbywało się w formie wypełnienia. Zmniejsza to ilość zużywanego filamentu, ale może wydłużyć czas druku ze względu na dodatkowe ruchy jałowe." + #: src/slic3r/GUI/PresetHints.cpp:224 msgid "with a volumetric rate" msgstr "ze współczynnikiem objętościowym" @@ -7492,8 +8263,18 @@ msgid "World coordinates" msgstr "Globalny układ współrzędnych" #: src/slic3r/GUI/UpdateDialogs.cpp:76 -msgid "Would you like to install it?\n\nNote that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n\nUpdated configuration bundles:" -msgstr "Czy chcesz kontynuować instalację?\n\nWeź pod uwagę, że najpierw zostanie stworzony zrzut konfiguracji. Może być przywrócony w każdej chwili, gdyby okazało się, że nowa wersja powoduje problemy.\n\nZaktualizowane paczki konfiguracyjne:" +msgid "" +"Would you like to install it?\n" +"\n" +"Note that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n" +"\n" +"Updated configuration bundles:" +msgstr "" +"Czy chcesz kontynuować instalację?\n" +"\n" +"Weź pod uwagę, że najpierw zostanie stworzony zrzut konfiguracji. Może być przywrócony w każdej chwili, gdyby okazało się, że nowa wersja powoduje problemy.\n" +"\n" +"Zaktualizowane paczki konfiguracyjne:" #: src/libslic3r/Zipper.cpp:95 msgid "write calledback failed" @@ -7559,30 +8340,34 @@ msgstr "Możesz użyć wszystkich opcji konfiguracjnych jako zmiennych w tym sza msgid "You can't change a type of the last solid part of the object." msgstr "Nie możesz zmienić typu ostatniej zwartej części modelu." -#: src/slic3r/GUI/Plater.cpp:2243 -msgid "You can't load SLA project if there is at least one multi-part object on the bed" -msgstr "Nie można wczytać projektu SLA, jeśli na stole jest co najmniej jeden model wieloczęściowy" +#: src/slic3r/GUI/GUI_ObjectList.cpp:1711 +msgid "You can't delete the last intance from object." +msgstr "Nie możesz usunąć ostatniej kopii modelu." + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1694 +msgid "You can't delete the last solid part from object." +msgstr "Nie możesz usunąć ostatniej zwartej części modelu." #: src/slic3r/GUI/Plater.cpp:1746 -#, possible-c-format +#, c-format msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part" msgstr "Nie możesz dodać obiektu/ów z %s, ponieważ jeden lub więcej modeli składa się z wielu części" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:565 -msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection" -msgstr "Nie możesz używać skalowania nierównomiernego dla kliku modeli/części" - -#: src/slic3r/GUI/GUI_App.cpp:300 -msgid "You may need to update your graphics card driver." -msgstr "Może być wymagana aktualizacja sterowników karty graficznej." +#: src/slic3r/GUI/GUI_App.cpp:789 +msgid "You have unsaved changes " +msgstr "Masz niesapisane zmiany " #: src/slic3r/GUI/Preferences.cpp:130 -#, possible-c-format +#, c-format msgid "You need to restart %s to make the changes effective." msgstr "Wymagany jest restart %s, aby wprowadzić zmiany." +#: src/slic3r/GUI/Preferences.cpp:126 +msgid "You need to restart Slic3r to make the changes effective." +msgstr "Trzeba zrestartować Slic3r aby wprowadzić zmiany." + #: src/slic3r/GUI/GUI_ObjectList.cpp:2415 -#, possible-c-format +#, c-format msgid "You started your selection with %s Item." msgstr "Wybór rozpoczęty przez %s." diff --git a/resources/localization/zh_CN/PrusaSlicer.mo b/resources/localization/zh_CN/PrusaSlicer.mo new file mode 100644 index 00000000000..b9e2f20aa9e Binary files /dev/null and b/resources/localization/zh_CN/PrusaSlicer.mo differ diff --git a/resources/localization/zh_CN/PrusaSlicer_zh.po b/resources/localization/zh_CN/PrusaSlicer_zh.po new file mode 100644 index 00000000000..8d8b6ae9ec7 --- /dev/null +++ b/resources/localization/zh_CN/PrusaSlicer_zh.po @@ -0,0 +1,8009 @@ +msgid "" +msgstr "" +"Project-Id-Version: Slic3rPE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-04-09 14:34+0200\n" +"PO-Revision-Date: 2019-05-21 14:38+0800\n" +"Last-Translator: Jiang Yue \n" +"Language-Team: \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" +"X-Poedit-Basepath: ..\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: L\n" +"X-Poedit-SearchPath-0: xs/src/libslic3r\n" +"X-Poedit-SearchPath-1: xs/xrc/slic3r/GUI\n" +"X-Poedit-SearchPath-2: xs/xrc/slic3r\n" + +#: src/slic3r/GUI/AboutDialog.cpp:35 +msgid "About Slic3r" +msgstr "关于Slic3r" + +#: src/slic3r/GUI/AboutDialog.cpp:64 src/slic3r/GUI/MainFrame.cpp:52 +msgid "Version" +msgstr "版本" + +#: src/slic3r/GUI/BedShapeDialog.cpp:43 +msgid "Shape" +msgstr "形状" + +#: src/slic3r/GUI/BedShapeDialog.cpp:51 +msgid "Rectangular" +msgstr "矩形" + +#: src/slic3r/GUI/BedShapeDialog.cpp:55 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:118 src/slic3r/GUI/Plater.cpp:136 +#: src/slic3r/GUI/Tab.cpp:2185 +msgid "Size" +msgstr "尺寸" + +#: src/slic3r/GUI/BedShapeDialog.cpp:56 +msgid "Size in X and Y of the rectangular plate." +msgstr "矩形框在X和Y方向的尺寸。" + +#: src/slic3r/GUI/BedShapeDialog.cpp:62 +msgid "Origin" +msgstr "原点" + +#: src/slic3r/GUI/BedShapeDialog.cpp:63 +msgid "" +"Distance of the 0,0 G-code coordinate from the front left corner of the " +"rectangle." +msgstr "G-code 0,0 坐标相对于矩形框左前角落的距离。" + +#: src/slic3r/GUI/BedShapeDialog.cpp:67 +msgid "Circular" +msgstr "圆形" + +#: src/slic3r/GUI/BedShapeDialog.cpp:70 src/slic3r/GUI/ConfigWizard.cpp:111 +#: src/slic3r/GUI/ConfigWizard.cpp:544 src/slic3r/GUI/ConfigWizard.cpp:558 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:115 +#: src/slic3r/GUI/RammingChart.cpp:81 src/slic3r/GUI/WipeTowerDialog.cpp:84 +#: src/libslic3r/PrintConfig.cpp:59 src/libslic3r/PrintConfig.cpp:66 +#: src/libslic3r/PrintConfig.cpp:75 src/libslic3r/PrintConfig.cpp:209 +#: src/libslic3r/PrintConfig.cpp:284 src/libslic3r/PrintConfig.cpp:292 +#: src/libslic3r/PrintConfig.cpp:342 src/libslic3r/PrintConfig.cpp:352 +#: src/libslic3r/PrintConfig.cpp:472 src/libslic3r/PrintConfig.cpp:483 +#: src/libslic3r/PrintConfig.cpp:501 src/libslic3r/PrintConfig.cpp:679 +#: src/libslic3r/PrintConfig.cpp:1165 src/libslic3r/PrintConfig.cpp:1226 +#: src/libslic3r/PrintConfig.cpp:1244 src/libslic3r/PrintConfig.cpp:1262 +#: src/libslic3r/PrintConfig.cpp:1314 src/libslic3r/PrintConfig.cpp:1324 +#: src/libslic3r/PrintConfig.cpp:1445 src/libslic3r/PrintConfig.cpp:1453 +#: src/libslic3r/PrintConfig.cpp:1494 src/libslic3r/PrintConfig.cpp:1502 +#: src/libslic3r/PrintConfig.cpp:1512 src/libslic3r/PrintConfig.cpp:1520 +#: src/libslic3r/PrintConfig.cpp:1528 src/libslic3r/PrintConfig.cpp:1611 +#: src/libslic3r/PrintConfig.cpp:1827 src/libslic3r/PrintConfig.cpp:1897 +#: src/libslic3r/PrintConfig.cpp:1931 src/libslic3r/PrintConfig.cpp:2123 +#: src/libslic3r/PrintConfig.cpp:2130 src/libslic3r/PrintConfig.cpp:2137 +#: src/libslic3r/PrintConfig.cpp:2167 src/libslic3r/PrintConfig.cpp:2177 +#: src/libslic3r/PrintConfig.cpp:2187 src/libslic3r/PrintConfig.cpp:2293 +#: src/libslic3r/PrintConfig.cpp:2368 src/libslic3r/PrintConfig.cpp:2377 +#: src/libslic3r/PrintConfig.cpp:2386 src/libslic3r/PrintConfig.cpp:2396 +#: src/libslic3r/PrintConfig.cpp:2440 src/libslic3r/PrintConfig.cpp:2450 +#: src/libslic3r/PrintConfig.cpp:2469 src/libslic3r/PrintConfig.cpp:2479 +#: src/libslic3r/PrintConfig.cpp:2488 src/libslic3r/PrintConfig.cpp:2506 +#: src/libslic3r/PrintConfig.cpp:2521 src/libslic3r/PrintConfig.cpp:2532 +#: src/libslic3r/PrintConfig.cpp:2545 src/libslic3r/PrintConfig.cpp:2555 +msgid "mm" +msgstr "毫米" + +#: src/slic3r/GUI/BedShapeDialog.cpp:71 src/libslic3r/PrintConfig.cpp:676 +msgid "Diameter" +msgstr "直径" + +#: src/slic3r/GUI/BedShapeDialog.cpp:72 +msgid "" +"Diameter of the print bed. It is assumed that origin (0,0) is located in the " +"center." +msgstr "打印床的直径。假定原点 (0, 0) 位于中心。" + +#: src/slic3r/GUI/BedShapeDialog.cpp:76 src/slic3r/GUI/GUI_Preview.cpp:239 +#: src/libslic3r/GCode/PreviewData.cpp:175 +msgid "Custom" +msgstr "自定义" + +#: src/slic3r/GUI/BedShapeDialog.cpp:80 +msgid "Load shape from STL..." +msgstr "从STL文件加载形状..." + +#: src/slic3r/GUI/BedShapeDialog.cpp:126 +msgid "Settings" +msgstr "设置" + +#: src/slic3r/GUI/BedShapeDialog.cpp:299 +msgid "Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "选择用来导入热床形状的文件 (STL/OBJ/AMF/3MF/PRUSA):" + +#: src/slic3r/GUI/BedShapeDialog.cpp:316 src/slic3r/GUI/GUI_ObjectList.cpp:1252 +msgid "Error! " +msgstr "错误! " + +#: src/slic3r/GUI/BedShapeDialog.cpp:325 +msgid "The selected file contains no geometry." +msgstr "所选文件不包含任何几何图形。" + +#: src/slic3r/GUI/BedShapeDialog.cpp:329 +msgid "" +"The selected file contains several disjoint areas. This is not supported." +msgstr "所选文件包含多个不重合的区域。暂不支持这种类型。" + +#: src/slic3r/GUI/BedShapeDialog.hpp:44 src/slic3r/GUI/ConfigWizard.cpp:507 +msgid "Bed Shape" +msgstr "热床形状" + +#: src/slic3r/GUI/BonjourDialog.cpp:55 +msgid "Network lookup" +msgstr "从网络查找" + +#: src/slic3r/GUI/BonjourDialog.cpp:72 +msgid "Address" +msgstr "地址" + +#: src/slic3r/GUI/BonjourDialog.cpp:73 +msgid "Hostname" +msgstr "主机名" + +#: src/slic3r/GUI/BonjourDialog.cpp:74 +msgid "Service name" +msgstr "服务名称" + +#: src/slic3r/GUI/BonjourDialog.cpp:76 +msgid "OctoPrint version" +msgstr "OctoPrint 版本" + +#: src/slic3r/GUI/BonjourDialog.cpp:218 +msgid "Searching for devices" +msgstr "正在查找设备" + +#: src/slic3r/GUI/BonjourDialog.cpp:225 +msgid "Finished" +msgstr "已完成" + +#: src/slic3r/GUI/ButtonsDescription.cpp:15 +msgid "Buttons And Text Colors Description" +msgstr "按钮和文本颜色描述" + +#: src/slic3r/GUI/ButtonsDescription.cpp:40 +msgid "Value is the same as the system value" +msgstr "值与系统值相同" + +#: src/slic3r/GUI/ButtonsDescription.cpp:57 +msgid "" +"Value was changed and is not equal to the system value or the last saved " +"preset" +msgstr "值已更改, 不等于系统值或上次保存的预设值" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:17 +msgid "Upgrade" +msgstr "升级" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:19 +msgid "Downgrade" +msgstr "降级" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:21 +msgid "Before roll back" +msgstr "回滚之前" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:23 +msgid "User" +msgstr "用户" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:26 +msgid "Unknown" +msgstr "未知" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:38 +msgid "Active: " +msgstr "启动: " + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:44 +msgid "slic3r version" +msgstr "slic3r 版本" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 src/slic3r/GUI/Preset.cpp:1250 +msgid "print" +msgstr "打印" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:46 +msgid "filaments" +msgstr "耗材" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:47 src/slic3r/GUI/Preset.cpp:1254 +msgid "printer" +msgstr "打印机" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:51 src/slic3r/GUI/Tab.cpp:872 +msgid "vendor" +msgstr "供应商" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:51 +msgid "version" +msgstr "版本" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 +msgid "min slic3r version" +msgstr "最低 slic3r 版本" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:54 +msgid "max slic3r version" +msgstr "最高 slic3r 版本" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:57 +msgid "model" +msgstr "模型" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:57 +msgid "variants" +msgstr "变种" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 +msgid "Incompatible with this Slic3r" +msgstr "与当前 Slic3r 版本不兼容" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:72 +msgid "Activate" +msgstr "激活" + +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:98 +msgid "Configuration Snapshots" +msgstr "配置快照" + +#: src/slic3r/GUI/ConfigWizard.cpp:111 +msgid "nozzle" +msgstr "喷嘴" + +#: src/slic3r/GUI/ConfigWizard.cpp:115 +msgid "Alternate nozzles:" +msgstr "备用喷嘴:" + +#: src/slic3r/GUI/ConfigWizard.cpp:181 +msgid "All standard" +msgstr "所有标准" + +#: src/slic3r/GUI/ConfigWizard.cpp:182 src/slic3r/GUI/Tab.cpp:2909 +msgid "All" +msgstr "所有" + +#: src/slic3r/GUI/ConfigWizard.cpp:183 src/slic3r/GUI/Plater.cpp:414 +#: src/libslic3r/GCode/PreviewData.cpp:162 +msgid "None" +msgstr "无" + +#: src/slic3r/GUI/ConfigWizard.cpp:284 +#, c-format +msgid "Welcome to the Slic3r %s" +msgstr "欢迎使用 Slic3r %s" + +#: src/slic3r/GUI/ConfigWizard.cpp:284 +msgid "Welcome" +msgstr "欢迎" + +#: src/slic3r/GUI/ConfigWizard.cpp:288 src/slic3r/GUI/GUI_App.cpp:600 +#, c-format +msgid "Run %s" +msgstr "运行 %s" + +#: src/slic3r/GUI/ConfigWizard.cpp:290 +#, c-format +msgid "" +"Hello, welcome to Slic3r Prusa Edition! This %s helps you with the initial " +"configuration; just a few settings and you will be ready to print." +msgstr "" +"您好, 欢迎来到 Slic3r Prusa版 !此 %s 可帮助您进行初始配置; 只需几个设置, 您就" +"可以打印了。" + +#: src/slic3r/GUI/ConfigWizard.cpp:294 +msgid "" +"Remove user profiles - install from scratch (a snapshot will be taken " +"beforehand)" +msgstr "删除用户配置文件-从头开始安装 (将事先创建快照)" + +#: src/slic3r/GUI/ConfigWizard.cpp:325 +#, c-format +msgid "%s Family" +msgstr "%s 家庭" + +#: src/slic3r/GUI/ConfigWizard.cpp:362 +msgid "Custom Printer Setup" +msgstr "自定义打印机设置" + +#: src/slic3r/GUI/ConfigWizard.cpp:362 +msgid "Custom Printer" +msgstr "自定义打印机" + +#: src/slic3r/GUI/ConfigWizard.cpp:364 +msgid "Define a custom printer profile" +msgstr "定义自定义打印机配置文件" + +#: src/slic3r/GUI/ConfigWizard.cpp:366 +msgid "Custom profile name:" +msgstr "自定义配置文件名称:" + +#: src/slic3r/GUI/ConfigWizard.cpp:390 +msgid "Automatic updates" +msgstr "自动更新" + +#: src/slic3r/GUI/ConfigWizard.cpp:390 +msgid "Updates" +msgstr "更新" + +#: src/slic3r/GUI/ConfigWizard.cpp:398 src/slic3r/GUI/Preferences.cpp:59 +msgid "Check for application updates" +msgstr "检查应用程序更新" + +#: src/slic3r/GUI/ConfigWizard.cpp:401 src/slic3r/GUI/Preferences.cpp:61 +msgid "" +"If enabled, Slic3r checks for new versions of Slic3r PE online. When a new " +"version becomes available a notification is displayed at the next " +"application startup (never during program usage). This is only a " +"notification mechanisms, no automatic installation is done." +msgstr "" +"如果启用, Slic3r 将在线检查新版本的 Slic3r PE。当新版本可用时, 在下一次应用程" +"序启动时将显示通知 (在程序使用过程中永远不会显示通知)。这只是一个通知机制, 不" +"进行自动安装。" + +#: src/slic3r/GUI/ConfigWizard.cpp:405 src/slic3r/GUI/Preferences.cpp:67 +msgid "Update built-in Presets automatically" +msgstr "自动更新内置预设" + +#: src/slic3r/GUI/ConfigWizard.cpp:408 src/slic3r/GUI/Preferences.cpp:69 +msgid "" +"If enabled, Slic3r downloads updates of built-in system presets in the " +"background. These updates are downloaded into a separate temporary location. " +"When a new preset version becomes available it is offered at application " +"startup." +msgstr "" +"如果启用,Slic3r 将在后台下载内置系统预设的更新。 这些更新将会下载到一个单独" +"的临时文件夹。当一切准备就绪,将在应用启动的时候提供新版本。" + +#: src/slic3r/GUI/ConfigWizard.cpp:409 +msgid "" +"Updates are never applied without user's consent and never overwrite user's " +"customized settings." +msgstr "未经用户同意, 永远不会应用更新, 也永远不会覆盖用户的自定义设置。" + +#: src/slic3r/GUI/ConfigWizard.cpp:414 +msgid "" +"Additionally a backup snapshot of the whole configuration is created before " +"an update is applied." +msgstr "此外, 在应用更新之前, 将创建整个配置的备份快照。" + +#: src/slic3r/GUI/ConfigWizard.cpp:421 +msgid "Other Vendors" +msgstr "其他供应商" + +#: src/slic3r/GUI/ConfigWizard.cpp:423 +msgid "Pick another vendor supported by Slic3r PE:" +msgstr "选择 Slic3r pe 支持的其他供应商:" + +#: src/slic3r/GUI/ConfigWizard.cpp:469 +msgid "Firmware Type" +msgstr "固件类型" + +#: src/slic3r/GUI/ConfigWizard.cpp:469 src/slic3r/GUI/Tab.cpp:1870 +msgid "Firmware" +msgstr "固件" + +#: src/slic3r/GUI/ConfigWizard.cpp:473 +msgid "Choose the type of firmware used by your printer." +msgstr "选择打印机使用的固件类型。" + +#: src/slic3r/GUI/ConfigWizard.cpp:507 +msgid "Bed Shape and Size" +msgstr "热床形状和大小" + +#: src/slic3r/GUI/ConfigWizard.cpp:510 +msgid "Set the shape of your printer's bed." +msgstr "设置打印机热床的形状。" + +#: src/slic3r/GUI/ConfigWizard.cpp:524 +msgid "Filament and Nozzle Diameters" +msgstr "耗材丝和喷嘴直径" + +#: src/slic3r/GUI/ConfigWizard.cpp:524 +msgid "Print Diameters" +msgstr "打印直径" + +#: src/slic3r/GUI/ConfigWizard.cpp:540 +msgid "Enter the diameter of your printer's hot end nozzle." +msgstr "输入打印机热端喷嘴的直径。" + +#: src/slic3r/GUI/ConfigWizard.cpp:543 +msgid "Nozzle Diameter:" +msgstr "喷嘴直径:" + +#: src/slic3r/GUI/ConfigWizard.cpp:553 +msgid "Enter the diameter of your filament." +msgstr "输入耗材丝的直径。" + +#: src/slic3r/GUI/ConfigWizard.cpp:554 +msgid "" +"Good precision is required, so use a caliper and do multiple measurements " +"along the filament, then compute the average." +msgstr "" +"需要良好的精度, 因此请使用游标卡尺, 沿耗材丝进行多次测量, 然后计算平均值。" + +#: src/slic3r/GUI/ConfigWizard.cpp:557 +msgid "Filament Diameter:" +msgstr "耗材丝直径:" + +#: src/slic3r/GUI/ConfigWizard.cpp:575 +msgid "Extruder and Bed Temperatures" +msgstr "挤出机和热床温温度" + +#: src/slic3r/GUI/ConfigWizard.cpp:575 +msgid "Temperatures" +msgstr "温度" + +#: src/slic3r/GUI/ConfigWizard.cpp:591 +msgid "Enter the temperature needed for extruding your filament." +msgstr "输入挤出耗材丝所需的温度。" + +#: src/slic3r/GUI/ConfigWizard.cpp:592 +msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS." +msgstr "根据经验, PLA 为160至 230°C, ABS 为215至250°C。" + +#: src/slic3r/GUI/ConfigWizard.cpp:595 +msgid "Extrusion Temperature:" +msgstr "挤出温度:" + +#: src/slic3r/GUI/ConfigWizard.cpp:596 src/slic3r/GUI/ConfigWizard.cpp:610 +msgid "°C" +msgstr "°C" + +#: src/slic3r/GUI/ConfigWizard.cpp:605 +msgid "" +"Enter the bed temperature needed for getting your filament to stick to your " +"heated bed." +msgstr "输入让你的耗材粘在热床上所需的床温。" + +#: src/slic3r/GUI/ConfigWizard.cpp:606 +msgid "" +"A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have " +"no heated bed." +msgstr "根据经验, PLA 为 60°C, ABS 为 110°C. 如果没有加热床, 请保留零。" + +#: src/slic3r/GUI/ConfigWizard.cpp:609 +msgid "Bed Temperature:" +msgstr "热床温度:" + +#: src/slic3r/GUI/ConfigWizard.cpp:1001 +msgid "Select all standard printers" +msgstr "选择所有标准打印机" + +#: src/slic3r/GUI/ConfigWizard.cpp:1004 +msgid "< &Back" +msgstr "< &返回" + +#: src/slic3r/GUI/ConfigWizard.cpp:1005 +msgid "&Next >" +msgstr "&继续 >" + +#: src/slic3r/GUI/ConfigWizard.cpp:1006 +msgid "&Finish" +msgstr "&结束" + +#: src/slic3r/GUI/ConfigWizard.cpp:1007 src/slic3r/GUI/FirmwareDialog.cpp:142 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:37 +#: src/slic3r/GUI/ProgressStatusBar.cpp:28 +msgid "Cancel" +msgstr "取消" + +#: src/slic3r/GUI/ConfigWizard.cpp:1021 +msgid "Prusa FFF Technology Printers" +msgstr "Prusa FFF 技术打印机" + +#: src/slic3r/GUI/ConfigWizard.cpp:1024 +msgid "Prusa MSLA Technology Printers" +msgstr "Prusa MSLA 技术打印机" + +#: src/slic3r/GUI/ConfigWizard.cpp:1111 +msgid "Configuration Wizard" +msgstr "配置向导" + +#: src/slic3r/GUI/ConfigWizard.cpp:1112 +msgid "Configuration &Wizard" +msgstr "配置 &向导" + +#: src/slic3r/GUI/ConfigWizard.cpp:1114 +msgid "Configuration Assistant" +msgstr "配置助手" + +#: src/slic3r/GUI/ConfigWizard.cpp:1115 +msgid "Configuration &Assistant" +msgstr "配置 &助手" + +#: src/slic3r/GUI/Field.cpp:112 +msgid "default value" +msgstr "默认值" + +#: src/slic3r/GUI/Field.cpp:115 +msgid "parameter name" +msgstr "参数名称" + +#: src/slic3r/GUI/Field.cpp:143 +#, c-format +msgid "%s doesn't support percentage" +msgstr "%s 不支持百分比" + +#: src/slic3r/GUI/Field.cpp:157 src/slic3r/GUI/Field.cpp:180 +msgid "Invalid numeric input." +msgstr "无效的数字输入。" + +#: src/slic3r/GUI/Field.cpp:162 +msgid "Input value is out of range" +msgstr "输入值超出范围" + +#: src/slic3r/GUI/Field.cpp:188 +#, c-format +msgid "" +"Do you mean %d%% instead of %d %s?\n" +"Select YES if you want to change this value to %d%%, \n" +"or NO if you are sure that %d %s is a correct value." +msgstr "" +"你是否要输入 %d%% 而不是 %d %s?\n" +"如果要将此值更改为 %d%%, 请选择 \"是\"; \n" +"如果您确定 %d %s 是正确的值, 请选择 \"否\"。" + +#: src/slic3r/GUI/Field.cpp:191 +msgid "Parameter validation" +msgstr "参数验证" + +#: src/slic3r/GUI/FirmwareDialog.cpp:141 +msgid "Flash!" +msgstr "烧录!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:143 +msgid "Flashing in progress. Please do not disconnect the printer!" +msgstr "烧录正在进行中。请不要断开打印机的连接!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:187 +msgid "Flashing failed: " +msgstr "烧录失败: " + +#: src/slic3r/GUI/FirmwareDialog.cpp:268 +msgid "Flashing succeeded!" +msgstr "烧录成功!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:269 +msgid "Flashing failed. Please see the avrdude log below." +msgstr "烧录失败。请参见下面的日志。" + +#: src/slic3r/GUI/FirmwareDialog.cpp:270 +msgid "Flashing cancelled." +msgstr "烧录取消。" + +#: src/slic3r/GUI/FirmwareDialog.cpp:308 +#, c-format +msgid "" +"This firmware hex file does not match the printer model.\n" +"The hex file is intended for: %s\n" +"Printer reported: %s\n" +"\n" +"Do you want to continue and flash this hex file anyway?\n" +"Please only continue if you are sure this is the right thing to do." +msgstr "" +"此固件十六进制文件与打印机型号不匹配。\n" +"十六进制文件用于: %s \n" +"打印机报告: %s \n" +" \n" +"是否仍要继续并烧录此十六进制文件?\n" +"只有在你确定这是正确的做法的情况下才能继续。" + +#: src/slic3r/GUI/FirmwareDialog.cpp:395 src/slic3r/GUI/FirmwareDialog.cpp:431 +#, c-format +msgid "" +"Multiple %s devices found. Please only connect one at a time for flashing." +msgstr "找到多个 %s 设备。请一次只连接一个以进行烧录。" + +#: src/slic3r/GUI/FirmwareDialog.cpp:412 +#, c-format +msgid "" +"The %s device was not found.\n" +"If the device is connected, please press the Reset button next to the USB " +"connector ..." +msgstr "" +"找不到 %s 设备。\n" +"如果设备已连接, 请按 USB 连接器旁边的 \"重置\" 按钮…" + +#: src/slic3r/GUI/FirmwareDialog.cpp:525 +#, c-format +msgid "The %s device could not have been found" +msgstr "找不到 %s 设备" + +#: src/slic3r/GUI/FirmwareDialog.cpp:603 +#, c-format +msgid "Error accessing port at %s: %s" +msgstr "访问 %s: %s 端口时出错" + +#: src/slic3r/GUI/FirmwareDialog.cpp:605 +#, c-format +msgid "Error: %s" +msgstr "错误: %s" + +#: src/slic3r/GUI/FirmwareDialog.cpp:735 +msgid "Firmware flasher" +msgstr "固件烧录器" + +#: src/slic3r/GUI/FirmwareDialog.cpp:762 +msgid "Firmware image:" +msgstr "固件镜像:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:766 +msgid "Serial port:" +msgstr "串行端口:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:768 +msgid "Autodetected" +msgstr "自动检测" + +#: src/slic3r/GUI/FirmwareDialog.cpp:769 +msgid "Rescan" +msgstr "重新扫描" + +#: src/slic3r/GUI/FirmwareDialog.cpp:776 +msgid "Progress:" +msgstr "进度:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:779 +msgid "Status:" +msgstr "状态:" + +#: src/slic3r/GUI/FirmwareDialog.cpp:780 +msgid "Ready" +msgstr "准备好了" + +#: src/slic3r/GUI/FirmwareDialog.cpp:800 +msgid "Advanced: Output log" +msgstr "高级: 输出日志" + +#: src/slic3r/GUI/FirmwareDialog.cpp:811 +#: src/slic3r/GUI/PrintHostDialogs.cpp:161 +msgid "Close" +msgstr "关闭" + +#: src/slic3r/GUI/FirmwareDialog.cpp:859 +msgid "" +"Are you sure you want to cancel firmware flashing?\n" +"This could leave your printer in an unusable state!" +msgstr "" +"确实要取消固件烧录吗?\n" +"这可能会使您的打印机处于无法使用的状态!" + +#: src/slic3r/GUI/FirmwareDialog.cpp:860 +msgid "Confirmation" +msgstr "确认" + +#: src/slic3r/GUI/FirmwareDialog.cpp:863 +msgid "Cancelling..." +msgstr "正在取消...." + +#: src/slic3r/GUI/GLCanvas3D.cpp:709 +msgid "Detected object outside print volume" +msgstr "在打印范围之外检测到的对象" + +#: src/slic3r/GUI/GLCanvas3D.cpp:710 +msgid "Detected toolpath outside print volume" +msgstr "检测到热头路径超出打印范围" + +#: src/slic3r/GUI/GLCanvas3D.cpp:711 +msgid "Some objects are not visible when editing supports" +msgstr "编辑支撑时, 某些对象不可见" + +#: src/slic3r/GUI/GLCanvas3D.cpp:713 +msgid "" +"Detected object outside print volume\n" +"Resolve a clash to continue slicing/export process correctly" +msgstr "" +"在打印范围之外检测到的对象\n" +"解决冲突后可以正常地继续切片/导出" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:35 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:195 +msgid "Rotate lower part upwards" +msgstr "旋转下部向上" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:36 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:198 +msgid "Perform cut" +msgstr "执行切割" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:43 +msgid "Cut object:" +msgstr "切割对象:" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:88 +msgid "Cut [C]" +msgstr "切割 [C]" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 src/libslic3r/PrintConfig.cpp:3006 +msgid "Cut" +msgstr "切割" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:193 +msgid "Keep upper part" +msgstr "保留上半部分" + +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:194 +msgid "Keep lower part" +msgstr "保留下半部分" + +#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:32 +msgid "Place on face [F]" +msgstr "放在面上 [F]" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:51 +msgid "Move [M]" +msgstr "移动 [M]" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:176 +msgid "Position (mm)" +msgstr "位置 (mm)" + +#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:176 +msgid "Displacement (mm)" +msgstr "位移 (mm)" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:458 +msgid "Rotate [R]" +msgstr "旋转 [R]" + +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:491 +msgid "Rotation (deg)" +msgstr "旋转 (deg)" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:51 +msgid "Scale [S]" +msgstr "比例 [S]" + +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:276 +msgid "Scale (%)" +msgstr "缩放 (%)" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:597 +msgid "Left mouse click - add point" +msgstr "鼠标左键单击-添加点" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:598 +msgid "Right mouse click - remove point" +msgstr "鼠标右键单击-删除点" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:599 +msgid "Shift + Left (+ drag) - select point(s)" +msgstr "移位 + 左 (+ 拖动)-选择点" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:606 +msgid "Head diameter: " +msgstr "热头直径: " + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:618 +msgid "Lock supports under new islands" +msgstr "在新的岛之下锁定支持" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:622 +msgid "Remove selected points" +msgstr "删除选定的点" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:626 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:679 +msgid "Remove all points" +msgstr "删除所有点" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:631 +msgid "Apply changes" +msgstr "应用更改" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:636 +msgid "Discard changes" +msgstr "放弃更改" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:644 +msgid "Minimal points distance: " +msgstr "最小点距离: " + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:655 +msgid "Support points density: " +msgstr "支撑点密度: " + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:669 +msgid "Auto-generate points [A]" +msgstr "自动生成点 [A]" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:675 +msgid "Manual editing [M]" +msgstr "手动编辑 [M]" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:738 +msgid "SLA Support Points [L]" +msgstr "SLA 支撑点 [L]" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:767 +msgid "Do you want to save your manually edited support points ?\n" +msgstr "是否要保存手动编辑的支持点?\n" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:768 +msgid "Save changes?" +msgstr "保存更改吗?" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:897 +msgid "" +"Autogeneration will erase all manually edited points.\n" +"\n" +"Are you sure you want to do it?\n" +msgstr "" +"自动生成将擦除所有手动编辑的点。\n" +"\n" +"您确定要这样做吗?\n" + +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:899 src/slic3r/GUI/GUI.cpp:288 +#: src/slic3r/GUI/WipeTowerDialog.cpp:44 src/slic3r/GUI/WipeTowerDialog.cpp:328 +msgid "Warning" +msgstr "警告" + +#: src/slic3r/GUI/GUI.cpp:147 src/slic3r/GUI/Tab.cpp:2720 +msgid "It's impossible to print multi-part object(s) with SLA technology." +msgstr "无法使用 SLA 技术打印多部分对象。" + +#: src/slic3r/GUI/GUI.cpp:148 +msgid "Please check and fix your object list." +msgstr "请检查并修复您的对象列表。" + +#: src/slic3r/GUI/GUI.cpp:149 src/slic3r/GUI/GUI_App.cpp:679 +#: src/slic3r/GUI/Tab.cpp:2722 +msgid "Attention!" +msgstr "注意!" + +#: src/slic3r/GUI/GUI.cpp:282 +msgid "Notice" +msgstr "通知" + +#: src/slic3r/GUI/GUI_App.cpp:318 +msgid "Changing of an application language" +msgstr "更改应用程序语言" + +#: src/slic3r/GUI/GUI_App.cpp:326 src/slic3r/GUI/GUI_App.cpp:335 +msgid "Recreating" +msgstr "再造" + +#: src/slic3r/GUI/GUI_App.cpp:339 +msgid "Loading of a current presets" +msgstr "加载当前预设" + +#: src/slic3r/GUI/GUI_App.cpp:347 +msgid "Loading of a mode view" +msgstr "加载模式视图" + +#: src/slic3r/GUI/GUI_App.cpp:429 +msgid "Choose one file (3MF):" +msgstr "选择一个文件 (3MF):" + +#: src/slic3r/GUI/GUI_App.cpp:441 +msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "选择一个或多个文件 (STL/OBJ/AMF/3MF/PRUSA):" + +#: src/slic3r/GUI/GUI_App.cpp:454 +msgid "Array of language names and identifiers should have the same size." +msgstr "语言名称和标识符的数组应具有相同的大小。" + +#: src/slic3r/GUI/GUI_App.cpp:464 +msgid "Select the language" +msgstr "选择语言" + +#: src/slic3r/GUI/GUI_App.cpp:464 +msgid "Language" +msgstr "语言" + +#: src/slic3r/GUI/GUI_App.cpp:534 src/slic3r/GUI/GUI_ObjectList.cpp:1067 +#: src/libslic3r/PrintConfig.cpp:298 +msgid "Default" +msgstr "默认" + +#: src/slic3r/GUI/GUI_App.cpp:603 +msgid "&Configuration Snapshots" +msgstr "&配置快照" + +#: src/slic3r/GUI/GUI_App.cpp:603 +msgid "Inspect / activate configuration snapshots" +msgstr "检查/激活配置快照" + +#: src/slic3r/GUI/GUI_App.cpp:604 +msgid "Take Configuration &Snapshot" +msgstr "获取配置和快照" + +#: src/slic3r/GUI/GUI_App.cpp:604 +msgid "Capture a configuration snapshot" +msgstr "捕获配置快照" + +#: src/slic3r/GUI/GUI_App.cpp:607 +msgid "&Preferences" +msgstr "&首选项" + +#: src/slic3r/GUI/GUI_App.cpp:613 +msgid "Application preferences" +msgstr "应用程序首选项" + +#: src/slic3r/GUI/GUI_App.cpp:616 src/slic3r/GUI/wxExtensions.cpp:2446 +msgid "Simple" +msgstr "简单" + +#: src/slic3r/GUI/GUI_App.cpp:616 +msgid "Simple View Mode" +msgstr "简单界面模式" + +#: src/slic3r/GUI/GUI_App.cpp:617 src/slic3r/GUI/GUI_ObjectList.cpp:73 +#: src/slic3r/GUI/Tab.cpp:977 src/slic3r/GUI/Tab.cpp:992 +#: src/slic3r/GUI/Tab.cpp:1090 src/slic3r/GUI/Tab.cpp:1093 +#: src/slic3r/GUI/Tab.cpp:1466 src/slic3r/GUI/Tab.cpp:1890 +#: src/slic3r/GUI/Tab.cpp:3347 src/slic3r/GUI/wxExtensions.cpp:2447 +#: src/libslic3r/PrintConfig.cpp:72 src/libslic3r/PrintConfig.cpp:186 +#: src/libslic3r/PrintConfig.cpp:349 src/libslic3r/PrintConfig.cpp:987 +#: src/libslic3r/PrintConfig.cpp:2173 +msgid "Advanced" +msgstr "高级" + +#: src/slic3r/GUI/GUI_App.cpp:617 +msgid "Advanced View Mode" +msgstr "高级界面模式" + +#: src/slic3r/GUI/GUI_App.cpp:618 src/slic3r/GUI/wxExtensions.cpp:2448 +msgid "Expert" +msgstr "专家" + +#: src/slic3r/GUI/GUI_App.cpp:618 +msgid "Expert View Mode" +msgstr "专家界面模式" + +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Mode" +msgstr "模式" + +#: src/slic3r/GUI/GUI_App.cpp:623 +msgid "Slic3r View Mode" +msgstr "Slic3r 界面模式" + +#: src/slic3r/GUI/GUI_App.cpp:625 +msgid "Change Application &Language" +msgstr "更改应用程序&语言" + +#: src/slic3r/GUI/GUI_App.cpp:627 +msgid "Flash printer &firmware" +msgstr "烧录打印机&固件" + +#: src/slic3r/GUI/GUI_App.cpp:627 +msgid "Upload a firmware image into an Arduino based printer" +msgstr "将固件镜像上传到基于 arduino 的打印机" + +#: src/slic3r/GUI/GUI_App.cpp:639 +msgid "Taking configuration snapshot" +msgstr "创建配置快照" + +#: src/slic3r/GUI/GUI_App.cpp:639 +msgid "Snapshot name" +msgstr "快照名称" + +#: src/slic3r/GUI/GUI_App.cpp:676 +msgid "Application will be restarted after language change." +msgstr "更改语言后, 应用程序将重新启动。" + +#: src/slic3r/GUI/GUI_App.cpp:677 +msgid "3D-Scene will be cleaned." +msgstr "3D 场景将被清理。" + +#: src/slic3r/GUI/GUI_App.cpp:678 +msgid "Please, check your changes before." +msgstr "请检查您之前的更改。" + +#: src/slic3r/GUI/GUI_App.cpp:706 +msgid "&Configuration" +msgstr "&配置" + +#: src/slic3r/GUI/GUI_App.cpp:726 +msgid "You have unsaved changes " +msgstr "您有未保存的更改 " + +#: src/slic3r/GUI/GUI_App.cpp:726 +msgid ". Discard changes and continue anyway?" +msgstr "是否放弃更改并继续?" + +#: src/slic3r/GUI/GUI_App.cpp:727 +msgid "Unsaved Presets" +msgstr "未保存的预设" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:28 src/slic3r/GUI/GUI_ObjectList.cpp:65 +#: src/libslic3r/PrintConfig.cpp:56 src/libslic3r/PrintConfig.cpp:149 +#: src/libslic3r/PrintConfig.cpp:380 src/libslic3r/PrintConfig.cpp:437 +#: src/libslic3r/PrintConfig.cpp:445 src/libslic3r/PrintConfig.cpp:841 +#: src/libslic3r/PrintConfig.cpp:1025 src/libslic3r/PrintConfig.cpp:1304 +#: src/libslic3r/PrintConfig.cpp:1370 src/libslic3r/PrintConfig.cpp:1551 +#: src/libslic3r/PrintConfig.cpp:1986 src/libslic3r/PrintConfig.cpp:2042 +msgid "Layers and Perimeters" +msgstr "层和轮廓" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:66 +#: src/slic3r/GUI/Plater.cpp:431 src/slic3r/GUI/Tab.cpp:981 +#: src/slic3r/GUI/Tab.cpp:982 src/slic3r/GUI/Tab.cpp:1311 +#: src/libslic3r/PrintConfig.cpp:166 src/libslic3r/PrintConfig.cpp:388 +#: src/libslic3r/PrintConfig.cpp:728 src/libslic3r/PrintConfig.cpp:742 +#: src/libslic3r/PrintConfig.cpp:779 src/libslic3r/PrintConfig.cpp:932 +#: src/libslic3r/PrintConfig.cpp:942 src/libslic3r/PrintConfig.cpp:960 +#: src/libslic3r/PrintConfig.cpp:978 src/libslic3r/PrintConfig.cpp:997 +#: src/libslic3r/PrintConfig.cpp:1658 src/libslic3r/PrintConfig.cpp:1675 +msgid "Infill" +msgstr "填充" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:30 src/slic3r/GUI/GUI_ObjectList.cpp:67 +#: src/slic3r/GUI/GUI_Preview.cpp:236 src/slic3r/GUI/Tab.cpp:1010 +#: src/slic3r/GUI/Tab.cpp:1011 src/libslic3r/PrintConfig.cpp:333 +#: src/libslic3r/PrintConfig.cpp:1431 src/libslic3r/PrintConfig.cpp:1779 +#: src/libslic3r/PrintConfig.cpp:1785 src/libslic3r/PrintConfig.cpp:1793 +#: src/libslic3r/PrintConfig.cpp:1805 src/libslic3r/PrintConfig.cpp:1815 +#: src/libslic3r/PrintConfig.cpp:1823 src/libslic3r/PrintConfig.cpp:1838 +#: src/libslic3r/PrintConfig.cpp:1859 src/libslic3r/PrintConfig.cpp:1870 +#: src/libslic3r/PrintConfig.cpp:1886 src/libslic3r/PrintConfig.cpp:1895 +#: src/libslic3r/PrintConfig.cpp:1904 src/libslic3r/PrintConfig.cpp:1915 +#: src/libslic3r/PrintConfig.cpp:1929 src/libslic3r/PrintConfig.cpp:1937 +#: src/libslic3r/PrintConfig.cpp:1938 src/libslic3r/PrintConfig.cpp:1947 +#: src/libslic3r/PrintConfig.cpp:1955 src/libslic3r/PrintConfig.cpp:1969 +#: src/libslic3r/GCode/PreviewData.cpp:172 +msgid "Support material" +msgstr "支撑材料" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:33 src/slic3r/GUI/GUI_ObjectList.cpp:69 +#: src/slic3r/GUI/Tab.cpp:1070 src/slic3r/GUI/Tab.cpp:1794 +#: src/libslic3r/PrintConfig.cpp:455 src/libslic3r/PrintConfig.cpp:953 +#: src/libslic3r/PrintConfig.cpp:1339 src/libslic3r/PrintConfig.cpp:1667 +#: src/libslic3r/PrintConfig.cpp:1851 src/libslic3r/PrintConfig.cpp:1877 +#: src/libslic3r/PrintConfig.cpp:2149 src/libslic3r/PrintConfig.cpp:2157 +msgid "Extruders" +msgstr "挤出头" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:39 +msgid "Pad and Support" +msgstr "垫和支持" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:68 src/slic3r/GUI/GUI_Preview.cpp:215 +#: src/slic3r/GUI/Tab.cpp:1035 src/libslic3r/PrintConfig.cpp:198 +#: src/libslic3r/PrintConfig.cpp:425 src/libslic3r/PrintConfig.cpp:870 +#: src/libslic3r/PrintConfig.cpp:998 src/libslic3r/PrintConfig.cpp:1360 +#: src/libslic3r/PrintConfig.cpp:1597 src/libslic3r/PrintConfig.cpp:1646 +#: src/libslic3r/PrintConfig.cpp:1697 src/libslic3r/PrintConfig.cpp:2028 +msgid "Speed" +msgstr "速度" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:70 src/libslic3r/PrintConfig.cpp:415 +#: src/libslic3r/PrintConfig.cpp:522 src/libslic3r/PrintConfig.cpp:829 +#: src/libslic3r/PrintConfig.cpp:961 src/libslic3r/PrintConfig.cpp:1348 +#: src/libslic3r/PrintConfig.cpp:1687 src/libslic3r/PrintConfig.cpp:1860 +#: src/libslic3r/PrintConfig.cpp:2017 +msgid "Extrusion Width" +msgstr "挤出宽度" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:75 src/slic3r/GUI/Plater.cpp:410 +#: src/slic3r/GUI/Tab.cpp:3309 src/slic3r/GUI/Tab.cpp:3310 +#: src/libslic3r/PrintConfig.cpp:2359 src/libslic3r/PrintConfig.cpp:2366 +#: src/libslic3r/PrintConfig.cpp:2375 src/libslic3r/PrintConfig.cpp:2384 +#: src/libslic3r/PrintConfig.cpp:2394 src/libslic3r/PrintConfig.cpp:2420 +#: src/libslic3r/PrintConfig.cpp:2427 src/libslic3r/PrintConfig.cpp:2438 +#: src/libslic3r/PrintConfig.cpp:2448 src/libslic3r/PrintConfig.cpp:2457 +#: src/libslic3r/PrintConfig.cpp:2467 src/libslic3r/PrintConfig.cpp:2476 +#: src/libslic3r/PrintConfig.cpp:2486 src/libslic3r/PrintConfig.cpp:2496 +#: src/libslic3r/PrintConfig.cpp:2504 +msgid "Supports" +msgstr "支持" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:76 src/slic3r/GUI/Tab.cpp:3337 +#: src/slic3r/GUI/Tab.cpp:3338 src/libslic3r/PrintConfig.cpp:2512 +#: src/libslic3r/PrintConfig.cpp:2519 src/libslic3r/PrintConfig.cpp:2530 +#: src/libslic3r/PrintConfig.cpp:2540 src/libslic3r/PrintConfig.cpp:2553 +#: src/libslic3r/PrintConfig.cpp:2562 +msgid "Pad" +msgstr "垫" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:173 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:45 +msgid "Name" +msgstr "名称" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:201 +msgid "Right button click the icon to change the object settings" +msgstr "右键单击图标以更改对象设置" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:209 +#, c-format +msgid "Auto-repaired (%d errors):\n" +msgstr "自动修复 (% d 错误):\n" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:212 +msgid "degenerate facets" +msgstr "简并平面" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:213 +msgid "edges fixed" +msgstr "修复边缘" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:214 +msgid "facets removed" +msgstr "已移除平面" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:215 +msgid "facets added" +msgstr "已添加平面" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:216 +msgid "facets reversed" +msgstr "已反转平面" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:217 +msgid "backwards edges" +msgstr "反向边缘" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:231 +msgid "Right button click the icon to fix STL through Netfabb" +msgstr "右按钮单击图标, 通过 Netfabb 修复 STL" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:278 src/slic3r/GUI/Tab.cpp:1430 +#: src/libslic3r/PrintConfig.cpp:454 +msgid "Extruder" +msgstr "挤出头" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:683 src/slic3r/GUI/GUI_ObjectList.cpp:963 +#: src/slic3r/GUI/GUI_ObjectList.cpp:969 src/slic3r/GUI/GUI_ObjectList.cpp:1199 +#, c-format +msgid "Quick Add Settings (%s)" +msgstr "快速添加设置 (%s)" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:746 +msgid "Select showing settings" +msgstr "选择显示的设置" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:874 +msgid "Load" +msgstr "加载" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 src/slic3r/GUI/GUI_ObjectList.cpp:911 +#: src/slic3r/GUI/GUI_ObjectList.cpp:914 +msgid "Box" +msgstr "盒子" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 +msgid "Cylinder" +msgstr "圆柱体" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 +msgid "Sphere" +msgstr "球" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:879 +msgid "Slab" +msgstr "板坯" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:890 src/slic3r/GUI/GUI_ObjectList.cpp:906 +msgid "Add part" +msgstr "添加部件" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:891 +msgid "Add modifier" +msgstr "添加修饰器" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:892 src/slic3r/GUI/GUI_ObjectList.cpp:910 +msgid "Add support enforcer" +msgstr "添加支撑执行者" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:893 src/slic3r/GUI/GUI_ObjectList.cpp:913 +msgid "Add support blocker" +msgstr "添加支撑屏蔽" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:934 +msgid "Split to parts" +msgstr "拆分到零件" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:942 +msgid "Add settings" +msgstr "添加设置" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1009 +msgid "Change type" +msgstr "更改类型" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1016 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1153 +msgid "Set as a Separated Object" +msgstr "设置为分隔的对象" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1024 +msgid "Rename" +msgstr "重命名" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1034 +msgid "Fix through the Netfabb" +msgstr "通过 Netfabb 修复" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1041 src/slic3r/GUI/Plater.cpp:2861 +msgid "Export as STL" +msgstr "导出为 STL" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1048 +msgid "Change extruder" +msgstr "更换挤出机" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1073 +msgid "Select new extruder for the object/part" +msgstr "为对象部分选择新的挤出机" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1079 src/slic3r/GUI/Plater.cpp:2825 +#: src/slic3r/GUI/Plater.cpp:2843 src/slic3r/GUI/Tab.cpp:2860 +msgid "Delete" +msgstr "删除" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1153 +msgid "Set as a Separated Objects" +msgstr "设置为分隔的对象" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1374 +msgid "Generic" +msgstr "通用" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1516 +msgid "You can't delete the last solid part from object." +msgstr "不能从对象中删除最后一个实体部分。" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1533 +msgid "You can't delete the last intance from object." +msgstr "不能从对象中删除最后的实例。" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1560 src/slic3r/GUI/Plater.cpp:2219 +msgid "" +"The selected object couldn't be split because it contains only one part." +msgstr "无法拆分所选对象, 因为它只包含一个部分。" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1676 +msgid "Group manipulation" +msgstr "操作组" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1688 +msgid "Object manipulation" +msgstr "操作对象" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1698 +msgid "Object Settings to modify" +msgstr "要修改的对象设置" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1702 +msgid "Part Settings to modify" +msgstr "要修改的零件设置" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1711 +msgid "Part manipulation" +msgstr "零件操作" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:1717 +msgid "Instance manipulation" +msgstr "实例操作" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2240 +msgid "Object or Instance" +msgstr "对象或实例" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2240 +msgid "Part" +msgstr "部件" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2242 +msgid "Unsupported selection" +msgstr "不支持的选择" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2243 +#, c-format +msgid "You started your selection with %s Item." +msgstr "您使用 %s 项开始选择。" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2244 +#, c-format +msgid "In this mode you can select only other %s Items%s" +msgstr "在此模式下, 您只能选择其他 %s 项目 %s" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2247 +msgid "of a current Object" +msgstr "当前对象的" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2252 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2325 src/slic3r/GUI/Plater.cpp:117 +msgid "Info" +msgstr "信息" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2366 +msgid "You can't change a type of the last solid part of the object." +msgstr "不能更改对象的最后一个实体部分的类型。" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2373 +msgid "Select type of part" +msgstr "选择零件类型" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2538 +msgid "Enter new name" +msgstr "输入新名称" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2538 +msgid "Renaming" +msgstr "重命名" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2554 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2632 src/slic3r/GUI/Tab.cpp:3191 +#: src/slic3r/GUI/Tab.cpp:3195 +msgid "The supplied name is not valid;" +msgstr "提供的名称无效;" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2555 +#: src/slic3r/GUI/GUI_ObjectList.cpp:2633 src/slic3r/GUI/Tab.cpp:3192 +msgid "the following characters are not allowed:" +msgstr "不允许使用以下字符:" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2653 +msgid "Set extruder for selected items" +msgstr "为所选项目设置挤出机" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2654 +msgid "Select extruder number for selected objects and/or parts" +msgstr "为选定的对象和/或零件选择挤出机编号" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2667 +msgid "Select extruder number:" +msgstr "选择挤出机编号:" + +#: src/slic3r/GUI/GUI_ObjectList.cpp:2668 +msgid "This extruder will be set for selected items" +msgstr "将为选定的项目设置此挤出机" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:25 +msgid "Object Manipulation" +msgstr "操作对象" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:47 +msgid "Object name" +msgstr "对象名称" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:115 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:160 +msgid "Position" +msgstr "位置" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:116 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:161 +msgid "Rotation" +msgstr "旋转" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:117 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:201 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:221 +#: src/libslic3r/PrintConfig.cpp:3070 +msgid "Scale" +msgstr "缩放" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:162 +msgid "Scale factors" +msgstr "缩放比例因子" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:200 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:220 +#: src/libslic3r/PrintConfig.cpp:3055 +msgid "Rotate" +msgstr "旋转" + +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:219 +msgid "Translate" +msgstr "翻译" + +#: src/slic3r/GUI/GUI_ObjectSettings.cpp:58 +msgid "Additional Settings" +msgstr "其他设置" + +#: src/slic3r/GUI/GUI_Preview.cpp:209 +msgid "View" +msgstr "查看" + +#: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:525 +#: src/libslic3r/GCode/PreviewData.cpp:394 +msgid "Feature type" +msgstr "功能类型" + +#: src/slic3r/GUI/GUI_Preview.cpp:213 src/libslic3r/PrintConfig.cpp:467 +msgid "Height" +msgstr "高度" + +#: src/slic3r/GUI/GUI_Preview.cpp:214 src/libslic3r/PrintConfig.cpp:2135 +msgid "Width" +msgstr "宽度" + +#: src/slic3r/GUI/GUI_Preview.cpp:216 +msgid "Volumetric flow rate" +msgstr "体积流量" + +#: src/slic3r/GUI/GUI_Preview.cpp:217 src/slic3r/GUI/GUI_Preview.cpp:315 +#: src/slic3r/GUI/GUI_Preview.cpp:469 src/slic3r/GUI/GUI_Preview.cpp:525 +#: src/slic3r/GUI/GUI_Preview.cpp:701 src/libslic3r/GCode/PreviewData.cpp:404 +msgid "Tool" +msgstr "工具" + +#: src/slic3r/GUI/GUI_Preview.cpp:218 src/slic3r/GUI/GUI_Preview.cpp:523 +#: src/libslic3r/GCode/PreviewData.cpp:406 +msgid "Color Print" +msgstr "彩色打印" + +#: src/slic3r/GUI/GUI_Preview.cpp:221 +msgid "Show" +msgstr "显示" + +#: src/slic3r/GUI/GUI_Preview.cpp:224 src/slic3r/GUI/GUI_Preview.cpp:225 +msgid "Feature types" +msgstr "功能类型" + +#: src/slic3r/GUI/GUI_Preview.cpp:227 src/libslic3r/GCode/PreviewData.cpp:163 +msgid "Perimeter" +msgstr "周长" + +#: src/slic3r/GUI/GUI_Preview.cpp:228 src/libslic3r/GCode/PreviewData.cpp:164 +msgid "External perimeter" +msgstr "外部轮廓" + +#: src/slic3r/GUI/GUI_Preview.cpp:229 src/libslic3r/GCode/PreviewData.cpp:165 +msgid "Overhang perimeter" +msgstr "悬空轮廓" + +#: src/slic3r/GUI/GUI_Preview.cpp:230 src/libslic3r/GCode/PreviewData.cpp:166 +msgid "Internal infill" +msgstr "内部填充" + +#: src/slic3r/GUI/GUI_Preview.cpp:231 src/libslic3r/PrintConfig.cpp:1686 +#: src/libslic3r/PrintConfig.cpp:1696 src/libslic3r/GCode/PreviewData.cpp:167 +msgid "Solid infill" +msgstr "实心填充" + +#: src/slic3r/GUI/GUI_Preview.cpp:232 src/libslic3r/PrintConfig.cpp:2016 +#: src/libslic3r/PrintConfig.cpp:2027 src/libslic3r/GCode/PreviewData.cpp:168 +msgid "Top solid infill" +msgstr "顶部实心填充" + +#: src/slic3r/GUI/GUI_Preview.cpp:233 src/libslic3r/GCode/PreviewData.cpp:169 +msgid "Bridge infill" +msgstr "搭桥填充" + +#: src/slic3r/GUI/GUI_Preview.cpp:234 src/libslic3r/PrintConfig.cpp:869 +#: src/libslic3r/GCode/PreviewData.cpp:170 +msgid "Gap fill" +msgstr "间隙填充" + +#: src/slic3r/GUI/GUI_Preview.cpp:235 src/slic3r/GUI/Tab.cpp:1001 +#: src/libslic3r/GCode/PreviewData.cpp:171 +msgid "Skirt" +msgstr "裙边" + +#: src/slic3r/GUI/GUI_Preview.cpp:237 src/libslic3r/PrintConfig.cpp:1903 +#: src/libslic3r/GCode/PreviewData.cpp:173 +msgid "Support material interface" +msgstr "支持材料端口" + +#: src/slic3r/GUI/GUI_Preview.cpp:238 src/slic3r/GUI/Tab.cpp:1081 +#: src/libslic3r/GCode/PreviewData.cpp:174 +msgid "Wipe tower" +msgstr "擦料塔" + +#: src/slic3r/GUI/GUI_Preview.cpp:243 src/libslic3r/PrintConfig.cpp:2049 +msgid "Travel" +msgstr "空程" + +#: src/slic3r/GUI/GUI_Preview.cpp:244 +msgid "Retractions" +msgstr "回抽" + +#: src/slic3r/GUI/GUI_Preview.cpp:245 +msgid "Unretractions" +msgstr "返回回抽" + +#: src/slic3r/GUI/GUI_Preview.cpp:246 +msgid "Shells" +msgstr "壳" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:13 +msgid "Slic3r Prusa Edition - Keyboard Shortcuts" +msgstr "Slic3r Prusa 版-键盘快捷方式" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:100 +msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" +msgstr "打开 STL/OBJ/AMF/3MF 项目配置,删除热床" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:101 +msgid "Import STL/OBJ/AMF/3MF without config, keep bed" +msgstr "导入 STL/OBJ/AMF/3MF 项目配置,保留热床" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:102 +msgid "Load Config from .ini/amf/3mf/gcode" +msgstr "从 .ini/amf/3mf/gcode 加载配置" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:103 src/slic3r/GUI/Plater.cpp:725 +#: src/slic3r/GUI/Plater.cpp:3673 src/libslic3r/PrintConfig.cpp:2957 +msgid "Export G-code" +msgstr "导出 G-code" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:104 +msgid "Save project (3MF)" +msgstr "保存项目 (3MF)" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:105 +msgid "Load Config from .ini/amf/3mf/gcode and merge" +msgstr "从 .ini/amf/3mf/gcode 导入设置并合并" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:106 +msgid "(Re)slice" +msgstr "重新切片" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:107 +msgid "Quick slice" +msgstr "快速切片" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:108 src/slic3r/GUI/MainFrame.cpp:326 +msgid "Repeat last quick slice" +msgstr "重复上一个快速切片" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:109 +msgid "Select Plater Tab" +msgstr "选择 \"布局器\" 选项卡" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:110 +msgid "Quick slice and Save as" +msgstr "快速切片并另存为" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:111 +msgid "Select Print Settings Tab" +msgstr "选择 \"打印设置\" 选项卡" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 +msgid "Select Filament Settings Tab" +msgstr "选择 \"耗材设置\" 选项卡" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:113 +msgid "Select Printer Settings Tab" +msgstr "选择 \"打印机设置\" 选项卡" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:114 +msgid "Switch to 3D" +msgstr "切换到3D" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 +msgid "Switch to Preview" +msgstr "切换到预览" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:116 src/slic3r/GUI/Preferences.cpp:10 +msgid "Preferences" +msgstr "首选项" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:117 +#: src/slic3r/GUI/PrintHostDialogs.cpp:134 +msgid "Print host upload queue" +msgstr "打印主机上传队列" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:118 +msgid "Camera view " +msgstr "相机视图 " + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:119 +msgid "Add Instance to selected object " +msgstr "将实例添加到选定的对象 " + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:120 +msgid "Remove Instance from selected object" +msgstr "从选定对象中删除实例" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:121 +msgid "Show keyboard shortcuts list" +msgstr "显示键盘快捷键列表" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 +msgid "Select multiple object/Move multiple object" +msgstr "选择多个对象/移动多个对象" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 +msgid "Main Shortcuts" +msgstr "主要快捷方式" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:130 +msgid "Arrange" +msgstr "整理" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:131 +msgid "Select All objects" +msgstr "选择所有对象" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:132 +msgid "Delete selected" +msgstr "删除所选" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:133 +msgid "Delete All" +msgstr "删除所有" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:134 +msgid "Gizmo move" +msgstr "线框移动" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:135 +msgid "Gizmo scale" +msgstr "线框缩放" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:136 +msgid "Gizmo rotate" +msgstr "旋转小物件" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:137 +msgid "Gizmo cut" +msgstr "剪切小物件" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:138 +msgid "Gizmo Place face on bed" +msgstr "放置小物件面到热床" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:139 +msgid "Gizmo SLA support points" +msgstr "小物件SLA支撑点" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 +#, no-c-format +msgid "" +"Press to snap by 5% in Gizmo scale\n" +"or by 1mm in Gizmo move" +msgstr "" +"按下 Gizmo 刻度可捕捉5%\n" +"或1毫米在 Gizmo 移动" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:141 +msgid "" +"Press to scale or rotate selected objects\n" +"around their own center" +msgstr "" +"按下可缩放或旋转选定对象\n" +"围绕着对象中心" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:142 +msgid "Zoom to Bed" +msgstr "缩放至热床" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 +msgid "Zoom to all objects in scene, if none selected" +msgstr "如果未选择, 则缩放到场景中的所有对象" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:144 +msgid "Zoom to selected object" +msgstr "缩放到选定的对象" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:145 +msgid "Zoom in" +msgstr "放大" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 +msgid "Zoom out" +msgstr "缩小" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 +msgid "Unselect gizmo, keep object selection" +msgstr "取消选择小物件, 保留对象选择" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:149 +msgid "Plater Shortcuts" +msgstr "布局器快捷方式" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:164 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Arrow Up" +msgstr "上箭头" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:164 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:166 +msgid "Upper Layer" +msgstr "高层" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:165 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Arrow Down" +msgstr "上箭头" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:165 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:167 +msgid "Lower Layer" +msgstr "低层" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:169 +msgid "Preview Shortcuts" +msgstr "预览快捷方式" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:175 +msgid "Move current slider thump Up" +msgstr "向上移动当前滑块" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:176 +msgid "Move current slider thump Down" +msgstr "向下移动当前滑块" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:177 +msgid "Arrow Left" +msgstr "左箭头" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:177 +msgid "Set upper thumb to current slider thumb" +msgstr "将上拇指设置为当前滑块拇指" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:178 +msgid "Arrow Right" +msgstr "右箭头" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:178 +msgid "Set lower thumb to current slider thumb" +msgstr "将下拇指设置为当前滑块拇指" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:179 +msgid "Add color change marker for current layer" +msgstr "添加当前图层的颜色更改标记" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:180 +msgid "Delete color change marker for current layer" +msgstr "删除当前图层的颜色更改标记" + +#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 +msgid "Layers Slider Shortcuts" +msgstr "图层滑块快捷方式" + +#: src/slic3r/GUI/MainFrame.cpp:54 +msgid "" +" - Remember to check for updates at http://github.com/prusa3d/slic3r/releases" +msgstr " - 记得在 http://github.com/prusa3d/slic3r/releases 检查更新" + +#: src/slic3r/GUI/MainFrame.cpp:160 +msgid "Plater" +msgstr "布局器" + +#: src/slic3r/GUI/MainFrame.cpp:273 +msgid "&Open Project" +msgstr "&打开项目" + +#: src/slic3r/GUI/MainFrame.cpp:273 +msgid "Open a project file" +msgstr "打开项目文件" + +#: src/slic3r/GUI/MainFrame.cpp:275 +msgid "&Save Project" +msgstr "&保存项目" + +#: src/slic3r/GUI/MainFrame.cpp:275 +msgid "Save current project file" +msgstr "将当前项目文件另存为" + +#: src/slic3r/GUI/MainFrame.cpp:277 +msgid "Save Project &as" +msgstr "保存项目 &为" + +#: src/slic3r/GUI/MainFrame.cpp:277 +msgid "Save current project file as" +msgstr "将当前项目文件另存为" + +#: src/slic3r/GUI/MainFrame.cpp:283 +msgid "Import STL/OBJ/AM&F/3MF" +msgstr "导入 STL/OBJ/AM&F/3MF" + +#: src/slic3r/GUI/MainFrame.cpp:283 +msgid "Load a model" +msgstr "加载模型" + +#: src/slic3r/GUI/MainFrame.cpp:286 +msgid "Import &Config" +msgstr "导入&配置" + +#: src/slic3r/GUI/MainFrame.cpp:286 +msgid "Load exported configuration file" +msgstr "加载导出的配置文件" + +#: src/slic3r/GUI/MainFrame.cpp:288 +msgid "Import Config from &project" +msgstr "从 &项目 导入配置" + +#: src/slic3r/GUI/MainFrame.cpp:288 +msgid "Load configuration from project file" +msgstr "从项目文件加载配置" + +#: src/slic3r/GUI/MainFrame.cpp:291 +msgid "Import Config &Bundle" +msgstr "导入配置&组" + +#: src/slic3r/GUI/MainFrame.cpp:291 +msgid "Load presets from a bundle" +msgstr "从包加载预设" + +#: src/slic3r/GUI/MainFrame.cpp:293 +msgid "&Import" +msgstr "&导入" + +#: src/slic3r/GUI/MainFrame.cpp:296 +msgid "Export &G-code" +msgstr "导出 &G-code" + +#: src/slic3r/GUI/MainFrame.cpp:296 +msgid "Export current plate as G-code" +msgstr "将当布局板导出为 G-code" + +#: src/slic3r/GUI/MainFrame.cpp:299 +msgid "Export plate as &STL" +msgstr "导出布局板为 &STL" + +#: src/slic3r/GUI/MainFrame.cpp:299 +msgid "Export current plate as STL" +msgstr "将当前布局板导出为 STL" + +#: src/slic3r/GUI/MainFrame.cpp:301 +msgid "Export plate as &AMF" +msgstr "导出布局板为 &AMF" + +#: src/slic3r/GUI/MainFrame.cpp:301 +msgid "Export current plate as AMF" +msgstr "将当布局板导出为 AMF" + +#: src/slic3r/GUI/MainFrame.cpp:304 +msgid "Export &Config" +msgstr "导出&配置" + +#: src/slic3r/GUI/MainFrame.cpp:304 +msgid "Export current configuration to file" +msgstr "将当前配置导出到文件" + +#: src/slic3r/GUI/MainFrame.cpp:306 +msgid "Export Config &Bundle" +msgstr "导出配置&包" + +#: src/slic3r/GUI/MainFrame.cpp:306 +msgid "Export all presets to file" +msgstr "将所有预设导出到文件" + +#: src/slic3r/GUI/MainFrame.cpp:308 +msgid "&Export" +msgstr "导出(&E)" + +#: src/slic3r/GUI/MainFrame.cpp:314 +msgid "Quick Slice" +msgstr "快速切片" + +#: src/slic3r/GUI/MainFrame.cpp:314 +msgid "Slice a file into a G-code" +msgstr "将文件切片成 G-code" + +#: src/slic3r/GUI/MainFrame.cpp:320 +msgid "Quick Slice and Save As" +msgstr "快速切片并另存为" + +#: src/slic3r/GUI/MainFrame.cpp:320 +msgid "Slice a file into a G-code, save as" +msgstr "将文件切片成 G-code, 并另存为" + +#: src/slic3r/GUI/MainFrame.cpp:326 +msgid "Repeat Last Quick Slice" +msgstr "重复上一个快速切片" + +#: src/slic3r/GUI/MainFrame.cpp:334 +msgid "(Re)Slice &Now" +msgstr "立即(重新)&切片" + +#: src/slic3r/GUI/MainFrame.cpp:334 +msgid "Start new slicing process" +msgstr "开始新的切片流程" + +#: src/slic3r/GUI/MainFrame.cpp:337 +msgid "&Repair STL file" +msgstr "&修复 STL 文件" + +#: src/slic3r/GUI/MainFrame.cpp:337 +msgid "Automatically repair an STL file" +msgstr "自动修复 STL 文件" + +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "&Quit" +msgstr "&退出" + +#: src/slic3r/GUI/MainFrame.cpp:340 +msgid "Quit Slic3r" +msgstr "退出 Slic3r" + +#: src/slic3r/GUI/MainFrame.cpp:374 +msgid "&Select all" +msgstr "&选择所有" + +#: src/slic3r/GUI/MainFrame.cpp:374 +msgid "Selects all objects" +msgstr "选择所有对象" + +#: src/slic3r/GUI/MainFrame.cpp:377 +msgid "&Delete selected" +msgstr "&删除所选" + +#: src/slic3r/GUI/MainFrame.cpp:377 +msgid "Deletes the current selection" +msgstr "删除当前所选内容" + +#: src/slic3r/GUI/MainFrame.cpp:379 +msgid "Delete &all" +msgstr "删除&所有" + +#: src/slic3r/GUI/MainFrame.cpp:379 +msgid "Deletes all objects" +msgstr "删除所有对象" + +#: src/slic3r/GUI/MainFrame.cpp:392 +msgid "&Plater Tab" +msgstr "&布局器 选项卡" + +#: src/slic3r/GUI/MainFrame.cpp:392 +msgid "Show the plater" +msgstr "显示平台布局器" + +#: src/slic3r/GUI/MainFrame.cpp:399 +msgid "P&rint Settings Tab" +msgstr "&打印设置选项卡" + +#: src/slic3r/GUI/MainFrame.cpp:399 +msgid "Show the print settings" +msgstr "显示打印设置" + +#: src/slic3r/GUI/MainFrame.cpp:401 +msgid "&Filament Settings Tab" +msgstr "&打印丝设置选项卡" + +#: src/slic3r/GUI/MainFrame.cpp:401 +msgid "Show the filament settings" +msgstr "显示耗材设置" + +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "Print&er Settings Tab" +msgstr "&打印机设置选项卡" + +#: src/slic3r/GUI/MainFrame.cpp:403 +msgid "Show the printer settings" +msgstr "显示打印机设置" + +#: src/slic3r/GUI/MainFrame.cpp:407 +msgid "3&D" +msgstr "3&D" + +#: src/slic3r/GUI/MainFrame.cpp:407 +msgid "Show the 3D editing view" +msgstr "显示3D 编辑视图" + +#: src/slic3r/GUI/MainFrame.cpp:409 +msgid "Pre&view" +msgstr "预览" + +#: src/slic3r/GUI/MainFrame.cpp:409 +msgid "Show the 3D slices preview" +msgstr "显示3D 切片预览" + +#: src/slic3r/GUI/MainFrame.cpp:430 +msgid "Print &Host Upload Queue" +msgstr "打印&主机上载队列" + +#: src/slic3r/GUI/MainFrame.cpp:430 +msgid "Display the Print Host Upload Queue window" +msgstr "显示 \"打印主机上载队列\" 窗口" + +#: src/slic3r/GUI/MainFrame.cpp:439 +msgid "Iso" +msgstr "Iso" + +#: src/slic3r/GUI/MainFrame.cpp:439 +msgid "Iso View" +msgstr "Iso 视图" + +#: src/slic3r/GUI/MainFrame.cpp:441 +msgid "Top" +msgstr "顶部" + +#: src/libslic3r/PrintConfig.cpp:2041 +msgctxt "Layers" +msgid "Top" +msgstr "顶部" + +#: src/slic3r/GUI/MainFrame.cpp:441 +msgid "Top View" +msgstr "顶视图" + +#: src/slic3r/GUI/MainFrame.cpp:442 +msgid "Bottom" +msgstr "底部" + +#: src/libslic3r/PrintConfig.cpp:148 +msgctxt "Layers" +msgid "Bottom" +msgstr "底部" + +#: src/slic3r/GUI/MainFrame.cpp:442 +msgid "Bottom View" +msgstr "底部视图" + +#: src/slic3r/GUI/MainFrame.cpp:443 +msgid "Front" +msgstr "前面" + +#: src/slic3r/GUI/MainFrame.cpp:443 +msgid "Front View" +msgstr "正视图" + +#: src/slic3r/GUI/MainFrame.cpp:444 src/libslic3r/PrintConfig.cpp:1561 +msgid "Rear" +msgstr "背面" + +#: src/slic3r/GUI/MainFrame.cpp:444 +msgid "Rear View" +msgstr "后视图" + +#: src/slic3r/GUI/MainFrame.cpp:445 +msgid "Left" +msgstr "左" + +#: src/slic3r/GUI/MainFrame.cpp:445 +msgid "Left View" +msgstr "左视图" + +#: src/slic3r/GUI/MainFrame.cpp:446 +msgid "Right" +msgstr "右" + +#: src/slic3r/GUI/MainFrame.cpp:446 +msgid "Right View" +msgstr "右视图" + +#: src/slic3r/GUI/MainFrame.cpp:460 +msgid "Prusa 3D &Drivers" +msgstr "Prusa 3D &驱动程序" + +#: src/slic3r/GUI/MainFrame.cpp:460 +msgid "Open the Prusa3D drivers download page in your browser" +msgstr "在浏览器中打开Prusa3d 驱动程序下载页" + +#: src/slic3r/GUI/MainFrame.cpp:462 +msgid "Prusa Edition &Releases" +msgstr "Prusa版 版本" + +#: src/slic3r/GUI/MainFrame.cpp:462 +msgid "Open the Prusa Edition releases page in your browser" +msgstr "在浏览器中打开Prusa版版本页面" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Slic3r &Website" +msgstr "Slic3r &网站" + +#: src/slic3r/GUI/MainFrame.cpp:468 +msgid "Open the Slic3r website in your browser" +msgstr "在浏览器中打开 Slic3r 网站" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Slic3r &Manual" +msgstr "Slic3r &手册" + +#: src/slic3r/GUI/MainFrame.cpp:470 +msgid "Open the Slic3r manual in your browser" +msgstr "在浏览器中打开 Slic3r 手册" + +#: src/slic3r/GUI/MainFrame.cpp:473 +msgid "System &Info" +msgstr "系统&信息" + +#: src/slic3r/GUI/MainFrame.cpp:473 +msgid "Show system information" +msgstr "显示系统信息" + +#: src/slic3r/GUI/MainFrame.cpp:475 +msgid "Show &Configuration Folder" +msgstr "显示&配置文件夹" + +#: src/slic3r/GUI/MainFrame.cpp:475 +msgid "Show user configuration folder (datadir)" +msgstr "显示用户配置文件夹 (datadir)" + +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an I&ssue" +msgstr "报告&问题" + +#: src/slic3r/GUI/MainFrame.cpp:477 +msgid "Report an issue on the Slic3r Prusa Edition" +msgstr "报告关于 Slic3r Prusa 版的问题" + +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "&About Slic3r" +msgstr "&关于 Slic3r" + +#: src/slic3r/GUI/MainFrame.cpp:479 +msgid "Show about dialog" +msgstr "关于对话框" + +#: src/slic3r/GUI/MainFrame.cpp:482 +msgid "Keyboard Shortcuts" +msgstr "键盘快捷键" + +#: src/slic3r/GUI/MainFrame.cpp:482 +msgid "Show the list of the keyboard shortcuts" +msgstr "显示键盘快捷键的列表" + +#: src/slic3r/GUI/MainFrame.cpp:490 +msgid "&File" +msgstr "&文件" + +#: src/slic3r/GUI/MainFrame.cpp:491 +msgid "&Edit" +msgstr "&编辑" + +#: src/slic3r/GUI/MainFrame.cpp:492 +msgid "&Window" +msgstr "&窗口" + +#: src/slic3r/GUI/MainFrame.cpp:493 +msgid "&View" +msgstr "&视图" + +#: src/slic3r/GUI/MainFrame.cpp:496 +msgid "&Help" +msgstr "&帮助" + +#: src/slic3r/GUI/MainFrame.cpp:524 +msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" +msgstr "选择要切片的文件(STL/OBJ/AMF/3MF/PRUSA):" + +#: src/slic3r/GUI/MainFrame.cpp:538 +msgid "No previously sliced file." +msgstr "没有预切片的文件。" + +#: src/slic3r/GUI/MainFrame.cpp:539 src/slic3r/GUI/PrintHostDialogs.cpp:219 +msgid "Error" +msgstr "错误" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid "Previously sliced file (" +msgstr "预切片文件 (" + +#: src/slic3r/GUI/MainFrame.cpp:544 +msgid ") not found." +msgstr ") 无法找到。" + +#: src/slic3r/GUI/MainFrame.cpp:545 +msgid "File Not Found" +msgstr "文件未找到" + +#: src/slic3r/GUI/MainFrame.cpp:580 src/slic3r/GUI/Tab.cpp:3152 +msgid "Save " +msgstr "保存 " + +#: src/slic3r/GUI/MainFrame.cpp:580 +msgid "SVG" +msgstr "SVG" + +#: src/slic3r/GUI/MainFrame.cpp:580 +msgid "G-code" +msgstr "G-code" + +#: src/slic3r/GUI/MainFrame.cpp:580 +msgid " file as:" +msgstr " 文件为:" + +#: src/slic3r/GUI/MainFrame.cpp:595 +msgid "Save zip file as:" +msgstr "将 zip 文件另存为:" + +#: src/slic3r/GUI/MainFrame.cpp:607 src/slic3r/GUI/Plater.cpp:2352 +#: src/slic3r/GUI/Plater.cpp:3467 src/slic3r/GUI/Tab.cpp:1110 +#: src/slic3r/GUI/Tab.cpp:3348 +msgid "Slicing" +msgstr "切片" + +#: src/slic3r/GUI/MainFrame.cpp:607 +msgid "Processing " +msgstr "处理 " + +#: src/slic3r/GUI/MainFrame.cpp:630 +msgid " was successfully sliced." +msgstr " 已成功切片。" + +#: src/slic3r/GUI/MainFrame.cpp:632 +msgid "Slicing Done!" +msgstr "切片完成!" + +#: src/slic3r/GUI/MainFrame.cpp:647 +msgid "Select the STL file to repair:" +msgstr "选择要修复的 STL 文件:" + +#: src/slic3r/GUI/MainFrame.cpp:661 +msgid "Save OBJ file (less prone to coordinate errors than STL) as:" +msgstr "将 OBJ 文件 (不像 STL 那样容易发生坐标错误) 保存为:" + +#: src/slic3r/GUI/MainFrame.cpp:676 +msgid "Your file was repaired." +msgstr "您的文件已修复。" + +#: src/slic3r/GUI/MainFrame.cpp:676 src/libslic3r/PrintConfig.cpp:3051 +msgid "Repair" +msgstr "修复" + +#: src/slic3r/GUI/MainFrame.cpp:690 +msgid "Save configuration as:" +msgstr "将配置另存为:" + +#: src/slic3r/GUI/MainFrame.cpp:710 src/slic3r/GUI/MainFrame.cpp:774 +msgid "Select configuration to load:" +msgstr "选择要加载的配置:" + +#: src/slic3r/GUI/MainFrame.cpp:747 +msgid "Save presets bundle as:" +msgstr "将预设包保存为:" + +#: src/slic3r/GUI/MainFrame.cpp:798 +#, c-format +msgid "%d presets successfully imported." +msgstr "%d 预设已成功导入。" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r error" +msgstr "Slic3r 错误" + +#: src/slic3r/GUI/MsgDialog.cpp:71 +msgid "Slic3r has encountered an error" +msgstr "Slic3r 遇到错误" + +#: src/slic3r/GUI/Plater.cpp:137 +msgid "Volume" +msgstr "体积" + +#: src/slic3r/GUI/Plater.cpp:138 +msgid "Facets" +msgstr "平面" + +#: src/slic3r/GUI/Plater.cpp:139 +msgid "Materials" +msgstr "材料" + +#: src/slic3r/GUI/Plater.cpp:142 +msgid "Manifold" +msgstr "流形" + +#: src/slic3r/GUI/Plater.cpp:188 +msgid "Sliced Info" +msgstr "切片信息" + +#: src/slic3r/GUI/Plater.cpp:207 src/slic3r/GUI/Plater.cpp:998 +msgid "Used Filament (m)" +msgstr "消耗耗材丝 (m)" + +#: src/slic3r/GUI/Plater.cpp:208 +msgid "Used Filament (mm³)" +msgstr "消耗耗材丝 (mm³)" + +#: src/slic3r/GUI/Plater.cpp:209 +msgid "Used Filament (g)" +msgstr "消耗耗材丝 (g)" + +#: src/slic3r/GUI/Plater.cpp:210 +msgid "Used Material (unit)" +msgstr "消耗材料 (单位)" + +#: src/slic3r/GUI/Plater.cpp:211 src/slic3r/GUI/Plater.cpp:1013 +#: src/libslic3r/PrintConfig.cpp:716 +msgid "Cost" +msgstr "单价" + +#: src/slic3r/GUI/Plater.cpp:212 src/slic3r/GUI/Plater.cpp:985 +#: src/slic3r/GUI/Plater.cpp:1027 +msgid "Estimated printing time" +msgstr "预计打印时间" + +#: src/slic3r/GUI/Plater.cpp:213 +msgid "Number of tool changes" +msgstr "工具更换次数" + +#: src/slic3r/GUI/Plater.cpp:290 +msgid "Click to edit preset" +msgstr "点击编辑预设" + +#: src/slic3r/GUI/Plater.cpp:413 +msgid "Select what kind of support do you need" +msgstr "选择您需要的支持类型" + +#: src/slic3r/GUI/Plater.cpp:415 src/libslic3r/PrintConfig.cpp:1814 +#: src/libslic3r/PrintConfig.cpp:2419 +msgid "Support on build plate only" +msgstr "仅在热床上生成支撑" + +#: src/slic3r/GUI/Plater.cpp:416 +msgid "Everywhere" +msgstr "任何地方" + +#: src/slic3r/GUI/Plater.cpp:438 src/slic3r/GUI/Tab.cpp:1007 +msgid "Brim" +msgstr "侧裙" + +#: src/slic3r/GUI/Plater.cpp:440 +msgid "" +"This flag enables the brim that will be printed around each object on the " +"first layer." +msgstr "此标志启用将在第一层上的每个对象周围打印裙边." + +#: src/slic3r/GUI/Plater.cpp:448 +msgid "Purging volumes" +msgstr "清理量" + +#: src/slic3r/GUI/Plater.cpp:673 +msgid "Print settings" +msgstr "打印设置" + +#: src/slic3r/GUI/Plater.cpp:674 src/slic3r/GUI/Tab.cpp:1421 +#: src/slic3r/GUI/Tab.cpp:1422 +msgid "Filament" +msgstr "打印丝" + +#: src/slic3r/GUI/Plater.cpp:675 src/slic3r/GUI/Preset.cpp:1252 +msgid "SLA print" +msgstr "SLA 打印" + +#: src/slic3r/GUI/Plater.cpp:676 src/slic3r/GUI/Preset.cpp:1253 +msgid "SLA material" +msgstr "SLA 材料" + +#: src/slic3r/GUI/Plater.cpp:677 +msgid "Printer" +msgstr "打印机" + +#: src/slic3r/GUI/Plater.cpp:707 src/slic3r/GUI/Plater.cpp:3674 +msgid "Send to printer" +msgstr "发送到打印机" + +#: src/slic3r/GUI/Plater.cpp:727 src/slic3r/GUI/Plater.cpp:2352 +#: src/slic3r/GUI/Plater.cpp:3470 +msgid "Slice now" +msgstr "立即切片" + +#: src/slic3r/GUI/Plater.cpp:860 +msgid "Hold Shift to Slice & Export G-code" +msgstr "按住Shift键来切片 并 导出G-code" + +#: src/slic3r/GUI/Plater.cpp:931 +#, c-format +msgid "%d (%d shells)" +msgstr "%d (%d 壳)" + +#: src/slic3r/GUI/Plater.cpp:936 +#, c-format +msgid "Auto-repaired (%d errors)" +msgstr "自动修复 (%d 错误):" + +#: src/slic3r/GUI/Plater.cpp:939 +#, c-format +msgid "" +"%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d " +"facets reversed, %d backwards edges" +msgstr "%d 退化面,%d 边缘固定,%d 面被移除,%d 面被删除,%d 面反转,%d 逆向边缘" + +#: src/slic3r/GUI/Plater.cpp:949 +msgid "Yes" +msgstr "是" + +#: src/slic3r/GUI/Plater.cpp:972 +msgid "Used Material (ml)" +msgstr "使用的材料 (毫升)" + +#: src/slic3r/GUI/Plater.cpp:975 +msgid "object(s)" +msgstr "对象 (s)" + +#: src/slic3r/GUI/Plater.cpp:975 +msgid "supports and pad" +msgstr "支撑和垫" + +#: src/slic3r/GUI/Plater.cpp:1000 src/slic3r/GUI/Plater.cpp:1015 +msgid "objects" +msgstr "对象" + +#: src/slic3r/GUI/Plater.cpp:1000 src/slic3r/GUI/Plater.cpp:1015 +msgid "wipe tower" +msgstr "擦料塔" + +#: src/slic3r/GUI/Plater.cpp:1030 +msgid "normal mode" +msgstr "正常模式" + +#: src/slic3r/GUI/Plater.cpp:1034 +msgid "silent mode" +msgstr "静音模式" + +#: src/slic3r/GUI/Plater.cpp:1544 +msgid "Loading" +msgstr "载入中" + +#: src/slic3r/GUI/Plater.cpp:1554 +#, c-format +msgid "Processing input file %s\n" +msgstr "处理输入文件 %s\n" + +#: src/slic3r/GUI/Plater.cpp:1612 +msgid "" +"This file contains several objects positioned at multiple heights. Instead " +"of considering them as multiple objects, should I consider\n" +"this file as a single object having multiple parts?\n" +msgstr "" +"此文件包含位于多个高度的多个对象。是否把文件当作有多个部件的单一物体?\n" + +#: src/slic3r/GUI/Plater.cpp:1615 src/slic3r/GUI/Plater.cpp:1707 +msgid "Multi-part object detected" +msgstr "检测到多部分对象" + +#: src/slic3r/GUI/Plater.cpp:1650 +msgid "" +"This file cannot be loaded in simple mode. Do you want to switch to expert " +"mode?\n" +msgstr "无法在简单模式下加载此文件。是否要切换到专家模式?\n" + +#: src/slic3r/GUI/Plater.cpp:1651 +msgid "Detected advanced data" +msgstr "检测到的高级数据" + +#: src/slic3r/GUI/Plater.cpp:1684 +#, c-format +msgid "" +"You can't to add the object(s) from %s because of one or some of them " +"is(are) multi-part" +msgstr "不能从 %s 中添加对象, 因为其中一个或一些有多个部分" + +#: src/slic3r/GUI/Plater.cpp:1704 +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?\n" +msgstr "" +"为多材料打印机加载了多个对象。\n" +"是否将这些文件视为具有多个部分的单个对象?\n" + +#: src/slic3r/GUI/Plater.cpp:1720 +msgid "Loaded" +msgstr "加载" + +#: src/slic3r/GUI/Plater.cpp:1812 +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:1813 +msgid "Object too large?" +msgstr "对象太大?" + +#: src/slic3r/GUI/Plater.cpp:1863 +msgid "Export STL file:" +msgstr "导出 STL 文件:" + +#: src/slic3r/GUI/Plater.cpp:1870 +msgid "Export AMF file:" +msgstr "导出 AMF 文件:" + +#: src/slic3r/GUI/Plater.cpp:1876 +msgid "Save file as:" +msgstr "将文件另存为:" + +#: src/slic3r/GUI/Plater.cpp:2042 +msgid "Arranging canceled" +msgstr "布局已取消" + +#: src/slic3r/GUI/Plater.cpp:2045 +msgid "Arranging" +msgstr "自动布局" + +#: src/slic3r/GUI/Plater.cpp:2079 +msgid "Could not arrange model objects! Some geometries may be invalid." +msgstr "无法排列模型对象!某些几何形状可能无效。" + +#: src/slic3r/GUI/Plater.cpp:2083 +msgid "Arranging done." +msgstr "布局完成." + +#: src/slic3r/GUI/Plater.cpp:2124 +msgid "Orientation search canceled" +msgstr "方向搜索已取消" + +#: src/slic3r/GUI/Plater.cpp:2129 +msgid "Searching for optimal orientation" +msgstr "寻找最佳方向" + +#: src/slic3r/GUI/Plater.cpp:2190 +msgid "Orientation found." +msgstr "找到方向。" + +#: src/slic3r/GUI/Plater.cpp:2211 +msgid "" +"The selected object can't be split because it contains more than one volume/" +"material." +msgstr "无法拆分所选对象, 因为它包含多个容量/材质。" + +#: src/slic3r/GUI/Plater.cpp:2337 +msgid "Invalid data" +msgstr "无效数据" + +#: src/slic3r/GUI/Plater.cpp:2346 +msgid "Ready to slice" +msgstr "准备切片" + +#: src/slic3r/GUI/Plater.cpp:2379 src/slic3r/GUI/PrintHostDialogs.cpp:220 +msgid "Cancelling" +msgstr "取消中" + +#: src/slic3r/GUI/Plater.cpp:2396 +msgid "Another export job is currently running." +msgstr "另一个导出作业当前正在运行。" + +#: src/slic3r/GUI/Plater.cpp:2656 +msgid "Export failed" +msgstr "导出失败" + +#: src/slic3r/GUI/Plater.cpp:2661 src/slic3r/GUI/PrintHostDialogs.cpp:221 +msgid "Cancelled" +msgstr "已取消" + +#: src/slic3r/GUI/Plater.cpp:2747 src/slic3r/GUI/Plater.cpp:2759 +#: src/slic3r/GUI/Plater.cpp:2831 +msgid "Increase copies" +msgstr "增加副本" + +#: src/slic3r/GUI/Plater.cpp:2825 src/slic3r/GUI/Plater.cpp:2843 +msgid "Remove the selected object" +msgstr "删除选定的对象" + +#: src/slic3r/GUI/Plater.cpp:2831 +msgid "Place one more copy of the selected object" +msgstr "再放置所选对象的一个副本" + +#: src/slic3r/GUI/Plater.cpp:2833 +msgid "Decrease copies" +msgstr "减少副本" + +#: src/slic3r/GUI/Plater.cpp:2833 +msgid "Remove one copy of the selected object" +msgstr "删除所选对象的一个副本" + +#: src/slic3r/GUI/Plater.cpp:2835 +msgid "Set number of copies" +msgstr "设置份数" + +#: src/slic3r/GUI/Plater.cpp:2835 +msgid "Change the number of copies of the selected object" +msgstr "更改所选对象的份数" + +#: src/slic3r/GUI/Plater.cpp:2858 +msgid "Reload from Disk" +msgstr "从磁盘重新加载" + +#: src/slic3r/GUI/Plater.cpp:2858 +msgid "Reload the selected file from Disk" +msgstr "从磁盘重新加载所选文件" + +#: src/slic3r/GUI/Plater.cpp:2861 +msgid "Export the selected object as STL file" +msgstr "将所选对象导出为 STL 文件" + +#: src/slic3r/GUI/Plater.cpp:2873 +msgid "Along X axis" +msgstr "沿 X 轴" + +#: src/slic3r/GUI/Plater.cpp:2873 +msgid "Mirror the selected object along the X axis" +msgstr "沿 X 轴镜像所选对象" + +#: src/slic3r/GUI/Plater.cpp:2875 +msgid "Along Y axis" +msgstr "沿 Y 轴" + +#: src/slic3r/GUI/Plater.cpp:2875 +msgid "Mirror the selected object along the Y axis" +msgstr "沿 Y 轴镜像所选对象" + +#: src/slic3r/GUI/Plater.cpp:2877 +msgid "Along Z axis" +msgstr "沿 Z 轴" + +#: src/slic3r/GUI/Plater.cpp:2877 +msgid "Mirror the selected object along the Z axis" +msgstr "沿 Z 轴镜像所选对象" + +#: src/slic3r/GUI/Plater.cpp:2880 +msgid "Mirror" +msgstr "镜像" + +#: src/slic3r/GUI/Plater.cpp:2880 +msgid "Mirror the selected object" +msgstr "镜像所选对象" + +#: src/slic3r/GUI/Plater.cpp:2898 +msgid "To objects" +msgstr "拆分到对象" + +#: src/slic3r/GUI/Plater.cpp:2898 src/slic3r/GUI/Plater.cpp:2920 +msgid "Split the selected object into individual objects" +msgstr "将所选对象拆分为单个对象" + +#: src/slic3r/GUI/Plater.cpp:2900 +msgid "To parts" +msgstr "到零件" + +#: src/slic3r/GUI/Plater.cpp:2900 src/slic3r/GUI/Plater.cpp:2940 +msgid "Split the selected object into individual sub-parts" +msgstr "将所选对象拆分为各个子部件" + +#: src/slic3r/GUI/Plater.cpp:2903 src/slic3r/GUI/Plater.cpp:2920 +#: src/slic3r/GUI/Plater.cpp:2940 src/libslic3r/PrintConfig.cpp:3075 +msgid "Split" +msgstr "拆分" + +#: src/slic3r/GUI/Plater.cpp:2903 +msgid "Split the selected object" +msgstr "拆分所选对象" + +#: src/slic3r/GUI/Plater.cpp:2926 +msgid "Optimize orientation" +msgstr "优化方向" + +#: src/slic3r/GUI/Plater.cpp:2926 +msgid "Optimize the rotation of the object for better print results." +msgstr "优化对象的旋转, 以获得更好的打印效果。" + +#: src/slic3r/GUI/Plater.cpp:3342 +msgid "Save G-code file as:" +msgstr "将 G-code 文件另存为:" + +#: src/slic3r/GUI/Plater.cpp:3342 +msgid "Save SL1 file as:" +msgstr "将 SL1 文件另存为:" + +#: src/slic3r/GUI/Plater.cpp:3397 +#, c-format +msgid "STL file exported to %s" +msgstr "STL 文件导出到 %s" + +#: src/slic3r/GUI/Plater.cpp:3413 +#, c-format +msgid "AMF file exported to %s" +msgstr "AMF 文件导出到 %s" + +#: src/slic3r/GUI/Plater.cpp:3416 +#, c-format +msgid "Error exporting AMF file %s" +msgstr "导出 AMF 文件 %s 时出错" + +#: src/slic3r/GUI/Plater.cpp:3442 +#, c-format +msgid "3MF file exported to %s" +msgstr "3MF 文件导出到 %s" + +#: src/slic3r/GUI/Plater.cpp:3445 +#, c-format +msgid "Error exporting 3MF file %s" +msgstr "导出3MF 文件 %s 时出错" + +#: src/slic3r/GUI/Plater.cpp:3673 +msgid "Export" +msgstr "导出" + +#: src/slic3r/GUI/Plater.cpp:3674 +msgid "Send G-code" +msgstr "发送 G 代码" + +#: src/slic3r/GUI/Preferences.cpp:17 src/slic3r/GUI/Tab.cpp:1762 +#: src/slic3r/GUI/Tab.cpp:1963 +msgid "General" +msgstr "常规" + +#: src/slic3r/GUI/Preferences.cpp:34 +msgid "Remember output directory" +msgstr "记住输出目录" + +#: src/slic3r/GUI/Preferences.cpp:36 +msgid "" +"If this is enabled, Slic3r will prompt the last output directory instead of " +"the one containing the input files." +msgstr "" +"如果启用此功能, Slic3r 将提示最后一个输出目录, 而不是包含输入文件的目录。" + +#: src/slic3r/GUI/Preferences.cpp:42 +msgid "Auto-center parts" +msgstr "自动居中部件" + +#: src/slic3r/GUI/Preferences.cpp:44 +msgid "" +"If this is enabled, Slic3r will auto-center objects around the print bed " +"center." +msgstr "如果启用此功能, Slic3r 将在打印床中心周围自动居中对象。" + +#: src/slic3r/GUI/Preferences.cpp:50 +msgid "Background processing" +msgstr "后台处理" + +#: src/slic3r/GUI/Preferences.cpp:52 +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 "" +"如果启用此功能, Slic3r 将在加载对象后立即对其进行预处理, 以便在导出 G-code " +"时节省时间。" + +#: src/slic3r/GUI/Preferences.cpp:74 +msgid "Suppress \" - default - \" presets" +msgstr "禁止 \"-默认-\" 预设" + +#: src/slic3r/GUI/Preferences.cpp:76 +msgid "" +"Suppress \" - default - \" presets in the Print / Filament / Printer " +"selections once there are any other valid presets available." +msgstr "" +"在 \"打印/耗材丝/打印机\" 选择中禁止 \"-默认-\" 预设, 一旦有任何其他有效的预" +"设可用。" + +#: src/slic3r/GUI/Preferences.cpp:82 +msgid "Show incompatible print and filament presets" +msgstr "显示不兼容的打印和耗材丝预设" + +#: src/slic3r/GUI/Preferences.cpp:84 +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:91 +msgid "Use legacy OpenGL 1.1 rendering" +msgstr "使用旧版 OpenGL 1.1 渲染" + +#: src/slic3r/GUI/Preferences.cpp:93 +msgid "" +"If you have rendering issues caused by a buggy OpenGL 2.0 driver, you may " +"try to check this checkbox. This will disable the layer height editing and " +"anti aliasing, so it is likely better to upgrade your graphics driver." +msgstr "" +"如果您有由错误 OpenGL 2.0 驱动程序引起的呈现问题, 您可以尝试选中此复选框。这" +"将禁用图层高度编辑和抗锯齿, 因此升级图形驱动程序可能更好。" + +#: src/slic3r/GUI/Preferences.cpp:101 +msgid "Use Retina resolution for the 3D scene" +msgstr "对3D 场景使用视网膜分辨率" + +#: src/slic3r/GUI/Preferences.cpp:103 +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 "" +"如果启用, 3D 场景将以视网膜分辨率呈现。如果您遇到3D 性能问题, 禁用此选项可能" +"会有所帮助。" + +#: src/slic3r/GUI/Preferences.cpp:126 +msgid "You need to restart Slic3r to make the changes effective." +msgstr "您需要重新启动 Slic3r 才能使更改生效。" + +#: src/slic3r/GUI/Preset.cpp:207 +msgid "modified" +msgstr "修改" + +#: src/slic3r/GUI/Preset.cpp:918 src/slic3r/GUI/Preset.cpp:958 +#: src/slic3r/GUI/Preset.cpp:1011 src/slic3r/GUI/Preset.cpp:1043 +#: src/slic3r/GUI/PresetBundle.cpp:1484 src/slic3r/GUI/PresetBundle.cpp:1537 +msgid "System presets" +msgstr "系统预设" + +#: src/slic3r/GUI/Preset.cpp:962 src/slic3r/GUI/Preset.cpp:1047 +#: src/slic3r/GUI/PresetBundle.cpp:1542 +msgid "User presets" +msgstr "用户预设" + +#: src/slic3r/GUI/Preset.cpp:991 src/slic3r/GUI/Tab.cpp:247 +msgid "Add a new printer" +msgstr "添加新打印机" + +#: src/slic3r/GUI/Preset.cpp:1251 +msgid "filament" +msgstr "耗材" + +#: src/slic3r/GUI/PresetHints.cpp:28 +#, c-format +msgid "" +"If estimated layer time is below ~%ds, fan will run at %d%% and print speed " +"will be reduced so that no less than %ds are spent on that layer (however, " +"speed will never be reduced below %dmm/s)." +msgstr "" +"如果估计图层时间低于 ~%ds, 风扇将以 %d%% 运行, 打印速度将降低, 从而在该图层上" +"花费的时间不低于 %ds (但是, 速度永远不会降低到 %dmm/s 以下)。" + +#: src/slic3r/GUI/PresetHints.cpp:32 +#, c-format +msgid "" +"\n" +"If estimated layer time is greater, but still below ~%ds, fan will run at a " +"proportionally decreasing speed between %d%% and %d%%." +msgstr "" +"\n" +"如果估计图层时间较大, 但仍低于 ~%ds, 则风扇将以 %d%% 和 %d%% 之间按比例减少" +"的速度运行。" + +#: src/slic3r/GUI/PresetHints.cpp:36 +msgid "" +"\n" +"During the other layers, fan " +msgstr "" +"\n" +"在其他图层中, 风扇 " + +#: src/slic3r/GUI/PresetHints.cpp:38 +msgid "Fan " +msgstr "风扇 " + +#: src/slic3r/GUI/PresetHints.cpp:43 +#, c-format +msgid "will always run at %d%% " +msgstr "将始终以 %d%% 运行 " + +#: src/slic3r/GUI/PresetHints.cpp:46 +#, c-format +msgid "except for the first %d layers" +msgstr "除了第一个 %d 层" + +#: src/slic3r/GUI/PresetHints.cpp:50 +msgid "except for the first layer" +msgstr "除第一层外" + +#: src/slic3r/GUI/PresetHints.cpp:52 +msgid "will be turned off." +msgstr "将被关闭。" + +#: src/slic3r/GUI/PresetHints.cpp:153 +msgid "external perimeters" +msgstr "外围轮廓" + +#: src/slic3r/GUI/PresetHints.cpp:162 +msgid "perimeters" +msgstr "轮廓" + +#: src/slic3r/GUI/PresetHints.cpp:171 +msgid "infill" +msgstr "填充" + +#: src/slic3r/GUI/PresetHints.cpp:181 +msgid "solid infill" +msgstr "实心填充" + +#: src/slic3r/GUI/PresetHints.cpp:189 +msgid "top solid infill" +msgstr "顶部实心填充" + +#: src/slic3r/GUI/PresetHints.cpp:200 +msgid "support" +msgstr "支持" + +#: src/slic3r/GUI/PresetHints.cpp:210 +msgid "support interface" +msgstr "支撑面" + +#: src/slic3r/GUI/PresetHints.cpp:216 +msgid "First layer volumetric" +msgstr "首层流量" + +#: src/slic3r/GUI/PresetHints.cpp:216 +msgid "Bridging volumetric" +msgstr "桥接流量" + +#: src/slic3r/GUI/PresetHints.cpp:216 +msgid "Volumetric" +msgstr "体积" + +#: src/slic3r/GUI/PresetHints.cpp:217 +msgid " flow rate is maximized " +msgstr " 流量已经最大化 " + +#: src/slic3r/GUI/PresetHints.cpp:220 +msgid "by the print profile maximum" +msgstr "根据打印配置文件的最大值" + +#: src/slic3r/GUI/PresetHints.cpp:221 +msgid "when printing " +msgstr "当打印 " + +#: src/slic3r/GUI/PresetHints.cpp:222 +msgid " with a volumetric rate " +msgstr " 用流量速率 " + +#: src/slic3r/GUI/PresetHints.cpp:226 +#, c-format +msgid "%3.2f mm³/s" +msgstr "%3.2f mm³/s" + +#: src/slic3r/GUI/PresetHints.cpp:228 +#, c-format +msgid " at filament speed %3.2f mm/s." +msgstr " 耗材丝速度 %3.2f mm/s." + +#: src/slic3r/GUI/PresetHints.cpp:247 +msgid "" +"Recommended object thin wall thickness: Not available due to invalid layer " +"height." +msgstr "推荐物体薄壁厚度: 由于图层高度无效, 不可用。" + +#: src/slic3r/GUI/PresetHints.cpp:264 +#, c-format +msgid "Recommended object thin wall thickness for layer height %.2f and " +msgstr "当层高度 %.2f 时建议的物体薄壁厚度为 " + +#: src/slic3r/GUI/PresetHints.cpp:271 +#, c-format +msgid "%d lines: %.2lf mm" +msgstr "%d 圈: %.2lf 毫米" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:32 +msgid "Send G-Code to printer host" +msgstr "向打印机主机发送 G-Code" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:32 +msgid "Upload to Printer Host with the following filename:" +msgstr "使用以下文件名上载到打印机主机:" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:34 +msgid "Start printing after upload" +msgstr "上传后开始打印" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:41 +msgid "Use forward slashes ( / ) as a directory separator if needed." +msgstr "如果需要, 使用正向斜杠 (/) 作为目录分隔符。" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:157 +msgid "Cancel selected" +msgstr "取消选定" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:159 +msgid "Show error message" +msgstr "显示错误消息" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:198 +#: src/slic3r/GUI/PrintHostDialogs.cpp:217 +msgid "Enqueued" +msgstr "加入队列" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:218 +msgid "Uploading" +msgstr "上传中" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:222 +msgid "Completed" +msgstr "已完成" + +#: src/slic3r/GUI/PrintHostDialogs.cpp:260 +msgid "Error uploading to print host:" +msgstr "上载到打印主机时出错:" + +#: src/slic3r/GUI/RammingChart.cpp:23 +msgid "NO RAMMING AT ALL" +msgstr "完全不存在" + +#: src/slic3r/GUI/RammingChart.cpp:76 +msgid "Time" +msgstr "时间" + +#: src/slic3r/GUI/RammingChart.cpp:76 src/slic3r/GUI/RammingChart.cpp:81 +#: src/slic3r/GUI/WipeTowerDialog.cpp:82 src/libslic3r/PrintConfig.cpp:611 +#: src/libslic3r/PrintConfig.cpp:655 src/libslic3r/PrintConfig.cpp:670 +#: src/libslic3r/PrintConfig.cpp:2241 src/libslic3r/PrintConfig.cpp:2250 +#: src/libslic3r/PrintConfig.cpp:2308 src/libslic3r/PrintConfig.cpp:2315 +msgid "s" +msgstr "s" + +#: src/slic3r/GUI/RammingChart.cpp:81 +msgid "Volumetric speed" +msgstr "流量速度" + +#: src/slic3r/GUI/SysInfoDialog.cpp:44 +msgid "Slic3r Prusa Edition - System Information" +msgstr "Slic3r Prusa 版-系统信息" + +#: src/slic3r/GUI/Tab.cpp:50 src/libslic3r/PrintConfig.cpp:228 +msgid "Compatible printers" +msgstr "兼容的打印机" + +#: src/slic3r/GUI/Tab.cpp:51 +msgid "Select the printers this profile is compatible with." +msgstr "选择与此配置文件兼容的打印机。" + +#: src/slic3r/GUI/Tab.cpp:56 src/libslic3r/PrintConfig.cpp:243 +msgid "Compatible print profiles" +msgstr "兼容的打印配置文件" + +#: src/slic3r/GUI/Tab.cpp:57 +msgid "Select the print profiles this profile is compatible with." +msgstr "选择与此配置文件兼容的打印配置文件。" + +#: src/slic3r/GUI/Tab.cpp:132 +msgid "Save current " +msgstr "保存当前 " + +#: src/slic3r/GUI/Tab.cpp:133 +msgid "Delete this preset" +msgstr "删除该预设" + +#: src/slic3r/GUI/Tab.cpp:145 +msgid "" +"Hover the cursor over buttons to find more information \n" +"or click this button." +msgstr "" +"将光标悬停在按钮上以查找更多信息\n" +"或单击此按钮。" + +#: src/slic3r/GUI/Tab.cpp:858 +msgid "It's a default preset." +msgstr "这是一个默认预设。" + +#: src/slic3r/GUI/Tab.cpp:859 +msgid "It's a system preset." +msgstr "这是一个系统预设。" + +#: src/slic3r/GUI/Tab.cpp:860 +msgid "Current preset is inherited from " +msgstr "当前预设继承自 " + +#: src/slic3r/GUI/Tab.cpp:865 +msgid "It can't be deleted or modified. " +msgstr "它不能被删除或修改. " + +#: src/slic3r/GUI/Tab.cpp:866 +msgid "" +"Any modifications should be saved as a new preset inherited from this one. " +msgstr "任何修改都应保存为从当前配置继承的新预设. " + +#: src/slic3r/GUI/Tab.cpp:867 +msgid "To do that please specify a new name for the preset." +msgstr "为此, 请为预设指定新名称。" + +#: src/slic3r/GUI/Tab.cpp:871 +msgid "Additional information:" +msgstr "附加信息:" + +#: src/slic3r/GUI/Tab.cpp:877 +msgid "printer model" +msgstr "打印机型号" + +#: src/slic3r/GUI/Tab.cpp:885 +msgid "default print profile" +msgstr "默认 SLA 打印配置文件" + +#: src/slic3r/GUI/Tab.cpp:888 +msgid "default filament profile" +msgstr "默认耗材丝配置" + +#: src/slic3r/GUI/Tab.cpp:902 +msgid "default SLA material profile" +msgstr "默认 SLA 材料配置文件" + +#: src/slic3r/GUI/Tab.cpp:906 +msgid "default SLA print profile" +msgstr "默认 SLA 打印配置文件" + +#: src/slic3r/GUI/Tab.cpp:948 src/slic3r/GUI/Tab.cpp:3303 +msgid "Layers and perimeters" +msgstr "层和轮廓" + +#: src/slic3r/GUI/Tab.cpp:949 src/libslic3r/PrintConfig.cpp:55 +msgid "Layer height" +msgstr "层高" + +#: src/slic3r/GUI/Tab.cpp:953 +msgid "Vertical shells" +msgstr "垂直外壳" + +#: src/slic3r/GUI/Tab.cpp:964 +msgid "Horizontal shells" +msgstr "水平外壳" + +#: src/slic3r/GUI/Tab.cpp:965 src/libslic3r/PrintConfig.cpp:1709 +msgid "Solid layers" +msgstr "可靠层数" + +#: src/slic3r/GUI/Tab.cpp:970 +msgid "Quality (slower slicing)" +msgstr "质量 (慢切)" + +#: src/slic3r/GUI/Tab.cpp:988 +msgid "Reducing printing time" +msgstr "缩短打印时间" + +#: src/slic3r/GUI/Tab.cpp:1000 +msgid "Skirt and brim" +msgstr "环边和裙边" + +#: src/slic3r/GUI/Tab.cpp:1017 +msgid "Raft" +msgstr "基座" + +#: src/slic3r/GUI/Tab.cpp:1021 +msgid "Options for support material and raft" +msgstr "支撑材料和基座的选项" + +#: src/slic3r/GUI/Tab.cpp:1036 +msgid "Speed for print moves" +msgstr "打印移动的速度" + +#: src/slic3r/GUI/Tab.cpp:1048 +msgid "Speed for non-print moves" +msgstr "非打印移动的速度" + +#: src/slic3r/GUI/Tab.cpp:1051 +msgid "Modifiers" +msgstr "武器性能修改" + +#: src/slic3r/GUI/Tab.cpp:1054 +msgid "Acceleration control (advanced)" +msgstr "加速控制 (高级)" + +#: src/slic3r/GUI/Tab.cpp:1061 +msgid "Autospeed (advanced)" +msgstr "自动调速 (高级)" + +#: src/slic3r/GUI/Tab.cpp:1069 +msgid "Multiple Extruders" +msgstr "多个挤出头" + +#: src/slic3r/GUI/Tab.cpp:1077 +msgid "Ooze prevention" +msgstr "Ooze 预防" + +#: src/slic3r/GUI/Tab.cpp:1094 +msgid "Extrusion width" +msgstr "挤出宽度" + +#: src/slic3r/GUI/Tab.cpp:1104 +msgid "Overlap" +msgstr "交叠" + +#: src/slic3r/GUI/Tab.cpp:1107 +msgid "Flow" +msgstr "流量" + +#: src/slic3r/GUI/Tab.cpp:1116 +msgid "Other" +msgstr "其他" + +#: src/slic3r/GUI/Tab.cpp:1119 src/slic3r/GUI/Tab.cpp:3351 +msgid "Output options" +msgstr "输出选项" + +#: src/slic3r/GUI/Tab.cpp:1120 +msgid "Sequential printing" +msgstr "顺序打印" + +#: src/slic3r/GUI/Tab.cpp:1122 +msgid "Extruder clearance (mm)" +msgstr "挤出机间隙 (毫米)" + +#: src/slic3r/GUI/Tab.cpp:1131 src/slic3r/GUI/Tab.cpp:3352 +msgid "Output file" +msgstr "输出文件" + +#: src/slic3r/GUI/Tab.cpp:1138 src/libslic3r/PrintConfig.cpp:1382 +msgid "Post-processing scripts" +msgstr "后处理脚本" + +#: src/slic3r/GUI/Tab.cpp:1144 src/slic3r/GUI/Tab.cpp:1145 +#: src/slic3r/GUI/Tab.cpp:1527 src/slic3r/GUI/Tab.cpp:1528 +#: src/slic3r/GUI/Tab.cpp:1935 src/slic3r/GUI/Tab.cpp:1936 +#: src/slic3r/GUI/Tab.cpp:2027 src/slic3r/GUI/Tab.cpp:2028 +#: src/slic3r/GUI/Tab.cpp:3240 src/slic3r/GUI/Tab.cpp:3241 +msgid "Notes" +msgstr "备注" + +#: src/slic3r/GUI/Tab.cpp:1151 src/slic3r/GUI/Tab.cpp:1535 +#: src/slic3r/GUI/Tab.cpp:1942 src/slic3r/GUI/Tab.cpp:2034 +#: src/slic3r/GUI/Tab.cpp:3248 src/slic3r/GUI/Tab.cpp:3357 +msgid "Dependencies" +msgstr "依赖" + +#: src/slic3r/GUI/Tab.cpp:1152 src/slic3r/GUI/Tab.cpp:1536 +#: src/slic3r/GUI/Tab.cpp:1943 src/slic3r/GUI/Tab.cpp:2035 +#: src/slic3r/GUI/Tab.cpp:3249 src/slic3r/GUI/Tab.cpp:3358 +msgid "Profile dependencies" +msgstr "配置文件依赖" + +#: src/slic3r/GUI/Tab.cpp:1198 +#, no-c-format +msgid "" +"The Spiral Vase mode requires:\n" +"- one perimeter\n" +"- no top solid layers\n" +"- 0% fill density\n" +"- no support material\n" +"- no ensure_vertical_shell_thickness\n" +"\n" +"Shall I adjust those settings in order to enable Spiral Vase?" +msgstr "" +"螺旋花瓶模式需要:\n" +" - 单层边界\n" +" - 没有顶层固体层\n" +" - 0%填充密度\n" +" - 没有支持材料\n" +" - 没有ensure_vertical_shell_thickness\n" +"\n" +"我可以调整这些设置以启用Spiral Vase吗?" + +#: src/slic3r/GUI/Tab.cpp:1205 +msgid "Spiral Vase" +msgstr "螺旋式容器" + +#: src/slic3r/GUI/Tab.cpp:1228 +msgid "" +"The Wipe Tower currently supports the non-soluble supports only\n" +"if they are printed with the current extruder without triggering a tool " +"change.\n" +"(both support_material_extruder and support_material_interface_extruder need " +"to be set to 0).\n" +"\n" +"Shall I adjust those settings in order to enable the Wipe Tower?" +msgstr "" +"擦拭塔目前支持非溶性支撑仅适用于\n" +"使用当前挤出机打印并且不会触发工具更改的情况。\n" +"(支撑材料 _ 挤出机和支撑材料 _ 接口 _ 挤出机都需要设置为 0)。\n" +"\n" +"要我调整这些设置以启用 \"擦拭塔\" 吗?" + +#: src/slic3r/GUI/Tab.cpp:1232 src/slic3r/GUI/Tab.cpp:1249 +msgid "Wipe Tower" +msgstr "擦料塔" + +#: src/slic3r/GUI/Tab.cpp:1246 +msgid "" +"For the Wipe Tower to work with the soluble supports, the support layers\n" +"need to be synchronized with the object layers.\n" +"\n" +"Shall I synchronize support layers in order to enable the Wipe Tower?" +msgstr "" +"要使擦料塔与可溶性支撑配合使用, 支撑层需要与对象图层同步。\n" +"\n" +"是否应同步支撑图层以启用擦料塔?" + +#: src/slic3r/GUI/Tab.cpp:1264 +msgid "" +"Supports work better, if the following feature is enabled:\n" +"- Detect bridging perimeters\n" +"\n" +"Shall I adjust those settings for supports?" +msgstr "" +"如果启用了以下功能, 则支撑工作更好:\n" +"-检测桥接边界\n" +"\n" +"是否应为支撑调整这些设置?" + +#: src/slic3r/GUI/Tab.cpp:1267 +msgid "Support Generator" +msgstr "支撑生成器" + +#: src/slic3r/GUI/Tab.cpp:1309 +msgid "The " +msgstr "这个 " + +#: src/slic3r/GUI/Tab.cpp:1309 +#, no-c-format +msgid "" +" infill pattern is not supposed to work at 100% density.\n" +"\n" +"Shall I switch to rectilinear fill pattern?" +msgstr "" +" 填充模式不应该在100% 密度下工作。\n" +"\n" +"我应该切换到直线填充图案吗?" + +#: src/slic3r/GUI/Tab.cpp:1429 +msgid "Temperature " +msgstr "温度 " + +#: src/slic3r/GUI/Tab.cpp:1435 +msgid "Bed" +msgstr "床" + +#: src/slic3r/GUI/Tab.cpp:1440 +msgid "Cooling" +msgstr "冷却" + +#: src/slic3r/GUI/Tab.cpp:1441 src/libslic3r/PrintConfig.cpp:1285 +#: src/libslic3r/PrintConfig.cpp:2097 +msgid "Enable" +msgstr "使能" + +#: src/slic3r/GUI/Tab.cpp:1452 +msgid "Fan settings" +msgstr "风扇设置" + +#: src/slic3r/GUI/Tab.cpp:1453 +msgid "Fan speed" +msgstr "风扇速度" + +#: src/slic3r/GUI/Tab.cpp:1461 +msgid "Cooling thresholds" +msgstr "冷却阈值" + +#: src/slic3r/GUI/Tab.cpp:1467 +msgid "Filament properties" +msgstr "耗材丝特性" + +#: src/slic3r/GUI/Tab.cpp:1471 +msgid "Print speed override" +msgstr "打印速度覆盖" + +#: src/slic3r/GUI/Tab.cpp:1481 +msgid "Toolchange parameters with single extruder MM printers" +msgstr "单挤出机 MM 打印机的工具更换参数" + +#: src/slic3r/GUI/Tab.cpp:1496 +msgid "Ramming settings" +msgstr "冲压设置" + +#: src/slic3r/GUI/Tab.cpp:1514 src/slic3r/GUI/Tab.cpp:1898 +msgid "Custom G-code" +msgstr "自定义 G-code" + +#: src/slic3r/GUI/Tab.cpp:1515 src/slic3r/GUI/Tab.cpp:1899 +#: src/libslic3r/PrintConfig.cpp:1735 src/libslic3r/PrintConfig.cpp:1750 +msgid "Start G-code" +msgstr "起始G代码" + +#: src/slic3r/GUI/Tab.cpp:1521 src/slic3r/GUI/Tab.cpp:1905 +#: src/libslic3r/PrintConfig.cpp:358 src/libslic3r/PrintConfig.cpp:368 +msgid "End G-code" +msgstr "结尾G代码" + +#: src/slic3r/GUI/Tab.cpp:1632 src/slic3r/GUI/Tab.cpp:1689 +msgid " Browse " +msgstr " 浏览 " + +#: src/slic3r/GUI/Tab.cpp:1651 src/slic3r/GUI/Tab.cpp:1838 +msgid "Test" +msgstr "测试" + +#: src/slic3r/GUI/Tab.cpp:1662 +msgid "Could not get a valid Printer Host reference" +msgstr "无法获取有效的打印机主机引用" + +#: src/slic3r/GUI/Tab.cpp:1668 src/slic3r/GUI/Tab.cpp:1851 +msgid "Success!" +msgstr "成功!" + +#: src/slic3r/GUI/Tab.cpp:1683 +msgid "" +"HTTPS CA file is optional. It is only needed if you use HTTPS with a self-" +"signed certificate." +msgstr "" +"HTTPS CA 文件是可选的。只有在使用带有自签名证书的 HTTPS 时, 才需要使用它。" + +#: src/slic3r/GUI/Tab.cpp:1696 +msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" +msgstr "证书文件 (*.crt, *.pem)|*.crt;*.pem|All files|*.*" + +#: src/slic3r/GUI/Tab.cpp:1697 +msgid "Open CA certificate file" +msgstr "打开 CA 证书文件" + +#: src/slic3r/GUI/Tab.cpp:1725 +msgid "" +"HTTPS CA File:\n" +"\tOn this system, Slic3r uses HTTPS certificates from the system Certificate " +"Store or Keychain.\n" +"\tTo use a custom CA file, please import your CA file into Certificate " +"Store / Keychain." +msgstr "" +"HTTPS CA 文件:\n" +"\t在此系统上, Slic3r 使用来自系统证书存储或钥匙串的 https 证书。\n" +"\t要使用自定义 CA 文件, 请将 CA 文件导入到证书存储/钥匙串。" + +#: src/slic3r/GUI/Tab.cpp:1763 src/slic3r/GUI/Tab.cpp:1964 +msgid "Size and coordinates" +msgstr "尺寸和坐标" + +#: src/slic3r/GUI/Tab.cpp:1767 src/slic3r/GUI/Tab.cpp:1968 +#: src/slic3r/GUI/Tab.cpp:2911 +msgid " Set " +msgstr " 设置 " + +#: src/slic3r/GUI/Tab.cpp:1790 +msgid "Capabilities" +msgstr "权限" + +#: src/slic3r/GUI/Tab.cpp:1795 +msgid "Number of extruders of the printer." +msgstr "打印机挤出机的数量。" + +#: src/slic3r/GUI/Tab.cpp:1823 +msgid "USB/Serial connection" +msgstr "串行连接" + +#: src/slic3r/GUI/Tab.cpp:1824 src/libslic3r/PrintConfig.cpp:1590 +msgid "Serial port" +msgstr "串行端口" + +#: src/slic3r/GUI/Tab.cpp:1829 +msgid "Rescan serial ports" +msgstr "重新扫描串行端口" + +#: src/slic3r/GUI/Tab.cpp:1851 +msgid "Connection to printer works correctly." +msgstr "与打印机的连接工作正常。" + +#: src/slic3r/GUI/Tab.cpp:1854 +msgid "Connection failed." +msgstr "连接失败。" + +#: src/slic3r/GUI/Tab.cpp:1867 src/slic3r/GUI/Tab.cpp:2022 +msgid "Print Host upload" +msgstr "打印主机上传队列" + +#: src/slic3r/GUI/Tab.cpp:1911 src/libslic3r/PrintConfig.cpp:128 +msgid "Before layer change G-code" +msgstr "层改变前的G代码" + +#: src/slic3r/GUI/Tab.cpp:1917 src/libslic3r/PrintConfig.cpp:1030 +msgid "After layer change G-code" +msgstr "层变化后G代码" + +#: src/slic3r/GUI/Tab.cpp:1923 src/libslic3r/PrintConfig.cpp:2005 +msgid "Tool change G-code" +msgstr "切换工具G代码" + +#: src/slic3r/GUI/Tab.cpp:1929 +msgid "Between objects G-code (for sequential printing)" +msgstr "模型对象之间的 G-code (用于顺序打印)" + +#: src/slic3r/GUI/Tab.cpp:1990 +msgid "Display" +msgstr "显示" + +#: src/slic3r/GUI/Tab.cpp:2001 +msgid "Tilt" +msgstr "倾斜" + +#: src/slic3r/GUI/Tab.cpp:2002 +msgid "Tilt time" +msgstr "倾斜时间" + +#: src/slic3r/GUI/Tab.cpp:2008 src/slic3r/GUI/Tab.cpp:3223 +msgid "Corrections" +msgstr "修正" + +#: src/slic3r/GUI/Tab.cpp:2074 src/slic3r/GUI/Tab.cpp:2136 +#: src/libslic3r/PrintConfig.cpp:1076 src/libslic3r/PrintConfig.cpp:1086 +#: src/libslic3r/PrintConfig.cpp:1096 src/libslic3r/PrintConfig.cpp:1109 +#: src/libslic3r/PrintConfig.cpp:1120 src/libslic3r/PrintConfig.cpp:1131 +#: src/libslic3r/PrintConfig.cpp:1142 +msgid "Machine limits" +msgstr "机器限制" + +#: src/slic3r/GUI/Tab.cpp:2088 +msgid "Values in this column are for Full Power mode" +msgstr "此列中的值适用于 \"全功率\" 模式" + +#: src/slic3r/GUI/Tab.cpp:2089 +msgid "Full Power" +msgstr "全功率" + +#: src/slic3r/GUI/Tab.cpp:2094 +msgid "Values in this column are for Silent mode" +msgstr "此列中的值适用于 \"静音” 模式" + +#: src/slic3r/GUI/Tab.cpp:2095 +msgid "Silent" +msgstr "静音" + +#: src/slic3r/GUI/Tab.cpp:2103 +msgid "Maximum feedrates" +msgstr "最大进给率" + +#: src/slic3r/GUI/Tab.cpp:2108 +msgid "Maximum accelerations" +msgstr "最大加速度" + +#: src/slic3r/GUI/Tab.cpp:2115 +msgid "Jerk limits" +msgstr "抖动限制" + +#: src/slic3r/GUI/Tab.cpp:2120 +msgid "Minimum feedrates" +msgstr "最小进给率" + +#: src/slic3r/GUI/Tab.cpp:2158 src/slic3r/GUI/Tab.cpp:2166 +msgid "Single extruder MM setup" +msgstr "单挤出机 MM 设置" + +#: src/slic3r/GUI/Tab.cpp:2167 +msgid "Single extruder multimaterial parameters" +msgstr "单挤出机多材料参数" + +#: src/slic3r/GUI/Tab.cpp:2181 src/libslic3r/GCode/PreviewData.cpp:475 +#, c-format +msgid "Extruder %d" +msgstr "挤出头 %d" + +#: src/slic3r/GUI/Tab.cpp:2188 +msgid "Layer height limits" +msgstr "层高度限制" + +#: src/slic3r/GUI/Tab.cpp:2193 +msgid "Position (for multi-extruder printers)" +msgstr "位置 (适用于多挤出机打印机)" + +#: src/slic3r/GUI/Tab.cpp:2196 +msgid "Retraction" +msgstr "回缩" + +#: src/slic3r/GUI/Tab.cpp:2199 +msgid "Only lift Z" +msgstr "仅提升 Z" + +#: src/slic3r/GUI/Tab.cpp:2212 +msgid "" +"Retraction when tool is disabled (advanced settings for multi-extruder " +"setups)" +msgstr "禁用工具时的回缩 (多挤出机设置的高级设置)" + +#: src/slic3r/GUI/Tab.cpp:2216 +msgid "Preview" +msgstr "预览" + +#: src/slic3r/GUI/Tab.cpp:2352 +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 "" +"使用固件回抽模式时, \"擦除\" 选项不可用。\n" +"\n" +"要禁用它以启用固件回抽吗?" + +#: src/slic3r/GUI/Tab.cpp:2354 +msgid "Firmware Retraction" +msgstr "固件回缩" + +#: src/slic3r/GUI/Tab.cpp:2681 +#, c-format +msgid "Default preset (%s)" +msgstr "默认预设 (%s)" + +#: src/slic3r/GUI/Tab.cpp:2682 +#, c-format +msgid "Preset (%s)" +msgstr "预设 (%s)" + +#: src/slic3r/GUI/Tab.cpp:2699 +msgid "has the following unsaved changes:" +msgstr "具有以下未保存的更改:" + +#: src/slic3r/GUI/Tab.cpp:2702 +msgid "is not compatible with printer" +msgstr "与打印机不兼容" + +#: src/slic3r/GUI/Tab.cpp:2703 +msgid "is not compatible with print profile" +msgstr "与打印配置文件不兼容" + +#: src/slic3r/GUI/Tab.cpp:2705 +msgid "and it has the following unsaved changes:" +msgstr "并具有以下未保存的更改:" + +#: src/slic3r/GUI/Tab.cpp:2708 +msgid "Discard changes and continue anyway?" +msgstr "是否放弃更改并继续?" + +#: src/slic3r/GUI/Tab.cpp:2709 +msgid "Unsaved Changes" +msgstr "未保存的更改" + +#: src/slic3r/GUI/Tab.cpp:2721 +msgid "Please check your object list before preset changing." +msgstr "在预设更改之前, 请检查对象列表。" + +#: src/slic3r/GUI/Tab.cpp:2801 +msgid "Copy" +msgstr "复制" + +#: src/slic3r/GUI/Tab.cpp:2823 +msgid "The supplied name is empty. It can't be saved." +msgstr "提供的名称为空。无法保存。" + +#: src/slic3r/GUI/Tab.cpp:2828 +msgid "Cannot overwrite a system profile." +msgstr "无法覆盖系统配置文件。" + +#: src/slic3r/GUI/Tab.cpp:2832 +msgid "Cannot overwrite an external profile." +msgstr "无法覆盖外部配置文件。" + +#: src/slic3r/GUI/Tab.cpp:2858 +msgid "remove" +msgstr "移除" + +#: src/slic3r/GUI/Tab.cpp:2858 +msgid "delete" +msgstr "删除" + +#: src/slic3r/GUI/Tab.cpp:2859 +msgid "Are you sure you want to " +msgstr "你确定你想要 " + +#: src/slic3r/GUI/Tab.cpp:2859 +msgid " the selected preset?" +msgstr " 选中的部分?" + +#: src/slic3r/GUI/Tab.cpp:2860 +msgid "Remove" +msgstr "移除" + +#: src/slic3r/GUI/Tab.cpp:2861 +msgid " Preset" +msgstr " 预设" + +#: src/slic3r/GUI/Tab.cpp:2989 +msgid "" +"LOCKED LOCK;indicates that the settings are the same as the system values " +"for the current option group" +msgstr "锁定的锁; 表示设置与当前选项组的系统值相同" + +#: src/slic3r/GUI/Tab.cpp:2992 +msgid "" +"UNLOCKED LOCK;indicates that some settings were changed and are not equal to " +"the system values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group " +"to the system values." +msgstr "" +"未锁定的锁; 表示某些设置已更改, 并且不等于当前选项组的系统值。\n" +"单击 \"未锁定的锁\" 图标, 将当前选项组的所有设置重置为系统值。" + +#: src/slic3r/GUI/Tab.cpp:2998 +msgid "" +"WHITE BULLET;for the left button: \tindicates a non-system preset,\n" +"for the right button: \tindicates that the settings hasn't been modified." +msgstr "" +"白色弹头; 对于左侧按钮: \t表示非系统预设,\n" +"对于右侧按钮: \t表示设置尚未被修改。" + +#: src/slic3r/GUI/Tab.cpp:3002 +msgid "" +"BACK ARROW;indicates that the settings were changed and are not equal to the " +"last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group " +"to the last saved preset." +msgstr "" +"返回箭头; 表示设置已更改, 不等于当前选项组的上一次保存的预设。\n" +"单击 \"返回箭头\" 图标, 将当前选项组的所有设置重置为上次保存的预设。" + +#: src/slic3r/GUI/Tab.cpp:3028 +msgid "" +"LOCKED LOCK icon indicates that the settings are the same as the system " +"values for the current option group" +msgstr "锁定的锁图标表示设置与当前选项组的系统值相同" + +#: src/slic3r/GUI/Tab.cpp:3030 +msgid "" +"UNLOCKED LOCK icon indicates that some settings were changed and are not " +"equal to the system values for the current option group.\n" +"Click to reset all settings for current option group to the system values." +msgstr "" +"\"未锁定的锁\" 图标表示某些设置已更改, 并且与当前选项组的系统值不相等。\n" +"单击可将当前选项组的所有设置重置为系统值。" + +#: src/slic3r/GUI/Tab.cpp:3033 +msgid "WHITE BULLET icon indicates a non system preset." +msgstr "白色弹头图标表示非系统预设。" + +#: src/slic3r/GUI/Tab.cpp:3036 +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:3038 +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" +"Click to reset all settings for the current option group to the last saved " +"preset." +msgstr "" +"\"后退箭头\" 图标表示设置已更改, 与当前选项组的上次保存的预设不相等。\n" +"单击可将当前选项组的所有设置重置为上次保存的预设。" + +#: src/slic3r/GUI/Tab.cpp:3044 +msgid "" +"LOCKED LOCK icon indicates that the value is the same as the system value." +msgstr "锁定的锁图标表示该值与系统值相同。" + +#: src/slic3r/GUI/Tab.cpp:3045 +msgid "" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to " +"the system value.\n" +"Click to reset current value to the system value." +msgstr "" +"未锁定的锁图标表示该值已更改, 且不等于系统值。\n" +"单击可将当前值重置为系统值。" + +#: src/slic3r/GUI/Tab.cpp:3051 +msgid "" +"WHITE BULLET icon indicates that the value is the same as in the last saved " +"preset." +msgstr "白色子弹图标表示该值与上次保存的预设中的值相同。" + +#: src/slic3r/GUI/Tab.cpp:3052 +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 "" +"\"后退箭头\" 图标表示该值已更改, 不等于上次保存的预设。\n" +"单击可将当前值重置为上次保存的预设。" + +#: src/slic3r/GUI/Tab.cpp:3152 +msgid " as:" +msgstr " 为:" + +#: src/slic3r/GUI/Tab.cpp:3196 +msgid "the following postfix are not allowed:" +msgstr "不允许使用以下后缀:" + +#: src/slic3r/GUI/Tab.cpp:3200 +msgid "The supplied name is not available." +msgstr "提供的名称不可用。" + +#: src/slic3r/GUI/Tab.cpp:3213 +msgid "Material" +msgstr "材料" + +#: src/slic3r/GUI/Tab.cpp:3215 src/slic3r/GUI/Tab.cpp:3305 +msgid "Layers" +msgstr "图层" + +#: src/slic3r/GUI/Tab.cpp:3219 +msgid "Exposure" +msgstr "曝光" + +#: src/slic3r/GUI/Tab.cpp:3313 +msgid "Support head" +msgstr "支撑头部宽度" + +#: src/slic3r/GUI/Tab.cpp:3318 +msgid "Support pillar" +msgstr "支撑支柱" + +#: src/slic3r/GUI/Tab.cpp:3328 +msgid "Connection of the support sticks and junctions" +msgstr "支撑杆和连接点的连接" + +#: src/slic3r/GUI/Tab.cpp:3333 +msgid "Automatic generation" +msgstr "自动生成" + +#: src/slic3r/GUI/Tab.cpp:3395 +msgid "Head penetration should not be greater than the head width." +msgstr "头部渗透不应大于头部宽度。" + +#: src/slic3r/GUI/Tab.cpp:3396 +msgid "Invalid Head penetration" +msgstr "无效的头部渗透" + +#: src/slic3r/GUI/Tab.cpp:3408 +msgid "Pinhead diameter should be smaller than the pillar diameter." +msgstr "针头直径应小于柱直径。" + +#: src/slic3r/GUI/Tab.cpp:3409 +msgid "Invalid pinhead diameter" +msgstr "针头直径无效" + +#: src/slic3r/GUI/Tab.hpp:307 src/slic3r/GUI/Tab.hpp:395 +msgid "Print Settings" +msgstr "打印设置" + +#: src/slic3r/GUI/Tab.hpp:325 +msgid "Filament Settings" +msgstr "耗材丝设置" + +#: src/slic3r/GUI/Tab.hpp:358 +msgid "Printer Settings" +msgstr "打印机设置" + +#: src/slic3r/GUI/Tab.hpp:381 +msgid "Material Settings" +msgstr "材料设置" + +#: src/slic3r/GUI/Tab.hpp:407 +msgid "Save preset" +msgstr "保存预设" + +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "Update available" +msgstr "更新可用" + +#: src/slic3r/GUI/UpdateDialogs.cpp:29 +msgid "New version of Slic3r PE is available" +msgstr "新版本的 Slic3r PE 可用" + +#: src/slic3r/GUI/UpdateDialogs.cpp:36 +msgid "To download, follow the link below." +msgstr "要下载, 请点击下面的链接。" + +#: src/slic3r/GUI/UpdateDialogs.cpp:44 +msgid "Current version:" +msgstr "当前版本:" + +#: src/slic3r/GUI/UpdateDialogs.cpp:46 +msgid "New version:" +msgstr "新版本:" + +#: src/slic3r/GUI/UpdateDialogs.cpp:54 +msgid "Don't notify about new releases any more" +msgstr "不再通知有关新版本的信息" + +#: src/slic3r/GUI/UpdateDialogs.cpp:72 src/slic3r/GUI/UpdateDialogs.cpp:164 +msgid "Configuration update" +msgstr "配置更新" + +#: src/slic3r/GUI/UpdateDialogs.cpp:72 +msgid "Configuration update is available" +msgstr "配置更新可用" + +#: src/slic3r/GUI/UpdateDialogs.cpp:75 +msgid "" +"Would you like to install it?\n" +"\n" +"Note that a full configuration snapshot will be created first. It can then " +"be restored at any time should there be a problem with the new version.\n" +"\n" +"Updated configuration bundles:" +msgstr "" +"是否要安装它?\n" +"\n" +"请注意, 将首先创建完整的配置快照。如果新版本有问题, 可以随时对其进行还原。\n" +"\n" +"更新的配置包:" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r incompatibility" +msgstr "Slic3r 不兼容" + +#: src/slic3r/GUI/UpdateDialogs.cpp:111 +msgid "Slic3r configuration is incompatible" +msgstr "Slic3r 配置不兼容" + +#: src/slic3r/GUI/UpdateDialogs.cpp:114 +msgid "" +"This version of Slic3r PE is not compatible with currently installed " +"configuration bundles.\n" +"This probably happened as a result of running an older Slic3r PE after using " +"a newer one.\n" +"\n" +"You may either exit Slic3r and try again with a newer version, or you may re-" +"run the initial configuration. Doing so will create a backup snapshot of the " +"existing configuration before installing files compatible with this Slic3r.\n" +msgstr "" +"此版本的 Slic3r PE 与当前安装的配置包不兼容。\n" +"这可能是由于在使用较新的 Slic3r pe 后运行了较旧的 Slic3r PE。\n" +"\n" +"您可以退出 Slic3r 并使用较新的版本重试, 也可以重新运行初始配置。这样做将在安" +"装与此 Slic3r 兼容的文件之前创建现有配置的备份快照。\n" + +#: src/slic3r/GUI/UpdateDialogs.cpp:123 +#, c-format +msgid "This Slic3r PE version: %s" +msgstr "当前 Slic3r PE 版本: %s" + +#: src/slic3r/GUI/UpdateDialogs.cpp:128 +msgid "Incompatible bundles:" +msgstr "不兼容的包:" + +#: src/slic3r/GUI/UpdateDialogs.cpp:144 +msgid "Exit Slic3r" +msgstr "退出 Slic3r" + +#: src/slic3r/GUI/UpdateDialogs.cpp:147 +msgid "Re-configure" +msgstr "重新配置" + +#: src/slic3r/GUI/UpdateDialogs.cpp:168 +#, c-format +msgid "" +"Slic3r PE now uses an updated configuration structure.\n" +"\n" +"So called 'System presets' have been introduced, which hold the built-in " +"default settings for various printers. These System presets cannot be " +"modified, instead, users now may create their own presets inheriting " +"settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent " +"or override it with a customized value.\n" +"\n" +"Please proceed with the %s that follows to set up the new presets and to " +"choose whether to enable automatic preset updates." +msgstr "" +"Slic3r PE 现在使用更新的配置结构。\n" +"\n" +"所谓的 \"系统预设\" 已经引入, 它包含各种打印机的内置默认设置。无法修改这些系" +"统预设, 相反, 用户现在可以创建自己的预设继承从系统预设之一的设置。\n" +"继承预设可以从其父级继承特定值, 也可以使用自定义值覆盖该值。\n" +"\n" +"请继续下面的 %s, 以设置新的预设, 并选择是否启用自动预设更新。" + +#: src/slic3r/GUI/UpdateDialogs.cpp:184 +msgid "For more information please visit our wiki page:" +msgstr "欲了解更多信息, 请访问我们的维基页面:" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:14 +msgid "Ramming customization" +msgstr "冲击自定义" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:40 +msgid "" +"Ramming denotes the rapid extrusion just before a tool change in a single-" +"extruder MM printer. Its purpose is to properly shape the end of the " +"unloaded filament so it does not prevent insertion of the new filament and " +"can itself be reinserted later. This phase is important and different " +"materials can require different extrusion speeds to get the good shape. For " +"this reason, the extrusion rates during ramming are adjustable.\n" +"\n" +"This is an expert-level setting, incorrect adjustment will likely lead to " +"jams, extruder wheel grinding into filament etc." +msgstr "" +"冲击表示在单挤出机 MM 打印机的刀具更换之前的快速挤出。它的目的是正确地塑造卸" +"载的灯丝的末端, 这样它就不会导致插入新的耗材丝卡住, 并且原耗材丝本身可以再重" +"新插入。这个阶段很重要, 不同的材料可能需要不同的挤压速度, 以获得良好的形状。" +"因此, 夯实冲击过程中的挤出速率是可调的。\n" +"\n" +"这是一个专家级设置, 不正确的调整很可能会导致卡料, 挤出机砂轮磨耗材丝等。" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:82 +msgid "Total ramming time" +msgstr "总冲击时间" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:84 +msgid "Total rammed volume" +msgstr "总冲击量" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:88 +msgid "Ramming line width" +msgstr "冲击线宽度" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:90 +msgid "Ramming line spacing" +msgstr "冲击线行距" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:141 +msgid "Wipe tower - Purging volume adjustment" +msgstr "擦拭塔-挤出清理体积调整" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:225 +msgid "" +"Here you can adjust required purging volume (mm³) for any given pair of " +"tools." +msgstr "在这里, 您可以调整任何给定的对工具所需的清除体积 (mm³) 。" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:226 +msgid "Extruder changed to" +msgstr "挤出机更改为" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:234 +msgid "unloaded" +msgstr "卸载" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:235 +msgid "loaded" +msgstr "装载" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:240 +msgid "Tool #" +msgstr "工具 #" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:247 +msgid "" +"Total purging volume is calculated by summing two values below, depending on " +"which tools are loaded/unloaded." +msgstr "总清除量是通过求和下面的两个值来计算的, 具体取决于装载/卸载的工具。" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:248 +msgid "Volume to purge (mm³) when the filament is being" +msgstr "要清除的体积 (mm³) 当耗材正在被" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:262 +msgid "From" +msgstr "从" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:327 +msgid "" +"Switching to simple settings will discard changes done in the advanced " +"mode!\n" +"\n" +"Do you want to proceed?" +msgstr "" +"切换到简单设置将放弃在高级模式下所做的更改!\n" +"\n" +"要继续吗?" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:339 +msgid "Show simplified settings" +msgstr "显示简单设置" + +#: src/slic3r/GUI/WipeTowerDialog.cpp:339 +msgid "Show advanced settings" +msgstr "显示高级设置" + +#: src/slic3r/GUI/wxExtensions.cpp:2398 +#, c-format +msgid "Switch to the %s mode" +msgstr "切换到 %s 模式" + +#: src/slic3r/GUI/wxExtensions.cpp:2399 +#, c-format +msgid "Current mode is %s" +msgstr "当前模式为 %s" + +#: src/slic3r/Utils/Duet.cpp:51 +msgid "Connection to Duet works correctly." +msgstr "与 Duet 的连接工作正常。" + +#: src/slic3r/Utils/Duet.cpp:56 +msgid "Could not connect to Duet" +msgstr "无法连接到 Duet" + +#: src/slic3r/Utils/Duet.cpp:84 src/slic3r/Utils/Duet.cpp:154 +msgid "Unknown error occured" +msgstr "发生未知错误" + +#: src/slic3r/Utils/Duet.cpp:148 +msgid "Wrong password" +msgstr "密码错误" + +#: src/slic3r/Utils/Duet.cpp:151 +msgid "Could not get resources to create a new connection" +msgstr "无法获取资源来创建新连接" + +#: src/slic3r/Utils/OctoPrint.cpp:69 +#, c-format +msgid "Mismatched type of print host: %s" +msgstr "打印主机类型不匹配: %s" + +#: src/slic3r/Utils/OctoPrint.cpp:84 +msgid "Connection to OctoPrint works correctly." +msgstr "与OctoPrint的连接工作正常。" + +#: src/slic3r/Utils/OctoPrint.cpp:90 +msgid "Could not connect to OctoPrint" +msgstr "无法连接到 OctoPrint" + +#: src/slic3r/Utils/OctoPrint.cpp:90 +msgid "Note: OctoPrint version at least 1.1.0 is required." +msgstr "注意: 至少需要1.1.0 版本的 OctoPrint." + +#: src/slic3r/Utils/OctoPrint.cpp:195 +msgid "Connection to Prusa SLA works correctly." +msgstr "与 Prusa SLA 的连接工作正常。" + +#: src/slic3r/Utils/OctoPrint.cpp:200 +msgid "Could not connect to Prusa SLA" +msgstr "无法连接到 Prusa SLA" + +#: src/slic3r/Utils/PresetUpdater.cpp:583 +#, c-format +msgid "requires min. %s and max. %s" +msgstr "需要最小 %s 和最大 %s" + +#: src/slic3r/Utils/PresetUpdater.cpp:588 +#, c-format +msgid "requires min. %s" +msgstr "需要最小 %s" + +#: src/slic3r/Utils/PresetUpdater.cpp:590 +#, c-format +msgid "requires max. %s" +msgstr "需要最大 %s" + +#: src/slic3r/Utils/FixModelByWin10.cpp:219 +#: src/slic3r/Utils/FixModelByWin10.cpp:359 +msgid "Exporting source model" +msgstr "导出源模型" + +#: src/slic3r/Utils/FixModelByWin10.cpp:235 +msgid "Failed loading the input model." +msgstr "加载输入模型失败。" + +#: src/slic3r/Utils/FixModelByWin10.cpp:242 +msgid "Repairing model by the Netfabb service" +msgstr "基于 Netfabb 服务的修复模型" + +#: src/slic3r/Utils/FixModelByWin10.cpp:248 +msgid "Mesh repair failed." +msgstr "网格修复失败。" + +#: src/slic3r/Utils/FixModelByWin10.cpp:251 +#: src/slic3r/Utils/FixModelByWin10.cpp:378 +msgid "Loading repaired model" +msgstr "装载修复的模型" + +#: src/slic3r/Utils/FixModelByWin10.cpp:263 +#: src/slic3r/Utils/FixModelByWin10.cpp:270 +#: src/slic3r/Utils/FixModelByWin10.cpp:302 +msgid "Saving mesh into the 3MF container failed." +msgstr "将网格保存到 3MF 容器失败。" + +#: src/slic3r/Utils/FixModelByWin10.cpp:340 +msgid "Model fixing" +msgstr "模型修复中" + +#: src/slic3r/Utils/FixModelByWin10.cpp:341 +msgid "Exporting model..." +msgstr "导出模型..." + +#: src/slic3r/Utils/FixModelByWin10.cpp:368 +msgid "Export of a temporary 3mf file failed" +msgstr "导出临时 3mf 文件失败" + +#: src/slic3r/Utils/FixModelByWin10.cpp:383 +msgid "Import of the repaired 3mf file failed" +msgstr "导入修复的 3mf 文件失败" + +#: src/slic3r/Utils/FixModelByWin10.cpp:385 +msgid "Repaired 3MF file does not contain any object" +msgstr "已修复的3MF 文件不包含任何对象" + +#: src/slic3r/Utils/FixModelByWin10.cpp:387 +msgid "Repaired 3MF file contains more than one object" +msgstr "修复的3MF 文件包含多个对象" + +#: src/slic3r/Utils/FixModelByWin10.cpp:389 +msgid "Repaired 3MF file does not contain any volume" +msgstr "已修复的3MF 文件不包含任何卷" + +#: src/slic3r/Utils/FixModelByWin10.cpp:391 +msgid "Repaired 3MF file contains more than one volume" +msgstr "修复的3MF 文件包含多个卷" + +#: src/slic3r/Utils/FixModelByWin10.cpp:400 +msgid "Model repair finished" +msgstr "模型修复完成" + +#: src/slic3r/Utils/FixModelByWin10.cpp:406 +msgid "Model repair canceled" +msgstr "模型修复取消" + +#: src/slic3r/Utils/FixModelByWin10.cpp:423 +msgid "Model repaired successfully" +msgstr "模型已成功修复" + +#: src/slic3r/Utils/FixModelByWin10.cpp:423 +#: src/slic3r/Utils/FixModelByWin10.cpp:426 +msgid "Model Repair by the Netfabb service" +msgstr "通过 Netfabb 服务修复模型" + +#: src/slic3r/Utils/FixModelByWin10.cpp:426 +msgid "Model repair failed: \n" +msgstr "模型修复失败: \n" + +#: src/libslic3r/Zipper.cpp:35 +msgid "undefined error" +msgstr "未定义的错误" + +#: src/libslic3r/Zipper.cpp:37 +msgid "too many files" +msgstr "文件太多" + +#: src/libslic3r/Zipper.cpp:39 +msgid "file too large" +msgstr "文件太大" + +#: src/libslic3r/Zipper.cpp:41 +msgid "unsupported method" +msgstr "不支持的方法" + +#: src/libslic3r/Zipper.cpp:43 +msgid "unsupported encryption" +msgstr "不支持的加密" + +#: src/libslic3r/Zipper.cpp:45 +msgid "unsupported feature" +msgstr "不支持的功能" + +#: src/libslic3r/Zipper.cpp:47 +msgid "failed finding central directory" +msgstr "找不到中心目录" + +#: src/libslic3r/Zipper.cpp:49 +msgid "not a ZIP archive" +msgstr "而不是 ZIP 存档" + +#: src/libslic3r/Zipper.cpp:51 +msgid "invalid header or archive is corrupted" +msgstr "无效的标头或存档已损坏" + +#: src/libslic3r/Zipper.cpp:53 +msgid "unsupported multidisk archive" +msgstr "不支持的多磁盘存档" + +#: src/libslic3r/Zipper.cpp:55 +msgid "decompression failed or archive is corrupted" +msgstr "解压缩失败或存档已损坏" + +#: src/libslic3r/Zipper.cpp:57 +msgid "compression failed" +msgstr "压缩失败" + +#: src/libslic3r/Zipper.cpp:59 +msgid "unexpected decompressed size" +msgstr "意外解压缩大小" + +#: src/libslic3r/Zipper.cpp:61 +msgid "CRC-32 check failed" +msgstr "CRC-32 检查失败" + +#: src/libslic3r/Zipper.cpp:63 +msgid "unsupported central directory size" +msgstr "不支持的中心目录大小" + +#: src/libslic3r/Zipper.cpp:65 +msgid "allocation failed" +msgstr "烧录失败" + +#: src/libslic3r/Zipper.cpp:67 +msgid "file open failed" +msgstr "文件打开失败" + +#: src/libslic3r/Zipper.cpp:69 +msgid "file create failed" +msgstr "文件创建失败" + +#: src/libslic3r/Zipper.cpp:71 +msgid "file write failed" +msgstr "文件写入失败" + +#: src/libslic3r/Zipper.cpp:73 +msgid "file read failed" +msgstr "文件读取失败" + +#: src/libslic3r/Zipper.cpp:75 +msgid "file close failed" +msgstr "文件关闭失败" + +#: src/libslic3r/Zipper.cpp:77 +msgid "file seek failed" +msgstr "文件查找失败" + +#: src/libslic3r/Zipper.cpp:79 +msgid "file stat failed" +msgstr "文件统计失败" + +#: src/libslic3r/Zipper.cpp:81 +msgid "invalid parameter" +msgstr "无效参数" + +#: src/libslic3r/Zipper.cpp:83 +msgid "invalid filename" +msgstr "无效的文件名" + +#: src/libslic3r/Zipper.cpp:85 +msgid "buffer too small" +msgstr "缓冲区太小" + +#: src/libslic3r/Zipper.cpp:87 +msgid "internal error" +msgstr "内部错误" + +#: src/libslic3r/Zipper.cpp:89 +msgid "file not found" +msgstr "文件未找到" + +#: src/libslic3r/Zipper.cpp:91 +msgid "archive is too large" +msgstr "存档太大" + +#: src/libslic3r/Zipper.cpp:93 +msgid "validation failed" +msgstr "验证失败" + +#: src/libslic3r/Zipper.cpp:95 +msgid "write calledback failed" +msgstr "写回失败" + +#: src/libslic3r/Zipper.cpp:105 +msgid "Error with zip archive" +msgstr "Zip 存档出错" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2153 +msgid "Starting" +msgstr "正在启动" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2154 +msgid "Filtering" +msgstr "筛选" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2155 +msgid "Generate pinheads" +msgstr "生成针头" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2156 +msgid "Classification" +msgstr "分类" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2157 +msgid "Routing to ground" +msgstr "路由到地面" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2158 +msgid "Routing supports to model surface" +msgstr "模型曲面的路由支持" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2159 +msgid "Cascading pillars" +msgstr "级联柱" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2160 +msgid "Processing small holes" +msgstr "加工小孔" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2161 +msgid "Done" +msgstr "完成" + +#: src/libslic3r/SLA/SLASupportTree.cpp:2162 +msgid "Abort" +msgstr "中止" + +#: src/libslic3r/Print.cpp:1136 +msgid "All objects are outside of the print volume." +msgstr "所有对象都在打印范围之外。" + +#: src/libslic3r/Print.cpp:1165 +msgid "Some objects are too close; your extruder will collide with them." +msgstr "有些对象太近; 你的挤出机会和他们相撞。" + +#: src/libslic3r/Print.cpp:1180 +msgid "" +"Some objects are too tall and cannot be printed without extruder collisions." +msgstr "某些对象太高, 无法在挤出机不冲突的情况下打印。" + +#: src/libslic3r/Print.cpp:1190 +msgid "The Spiral Vase option can only be used when printing a single object." +msgstr "只有在打印单个对象时, 才能使用 \"螺旋花瓶\" 选项。" + +#: src/libslic3r/Print.cpp:1192 +msgid "" +"The Spiral Vase option can only be used when printing single material " +"objects." +msgstr "\"螺旋花瓶\" 选项只能在打印单个材料对象时使用。" + +#: src/libslic3r/Print.cpp:1198 +msgid "" +"All extruders must have the same diameter for single extruder multimaterial " +"printer." +msgstr "对于单挤出机多材料打印机, 所有挤出机的直径必须相同。" + +#: src/libslic3r/Print.cpp:1203 +msgid "" +"The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter " +"and Repetier G-code flavors." +msgstr "擦料塔目前只支持 Marlin, RepRap/Sprinter 和 Repetier G-code 类型。" + +#: src/libslic3r/Print.cpp:1205 +msgid "" +"The Wipe Tower is currently only supported with the relative extruder " +"addressing (use_relative_e_distances=1)." +msgstr "擦料塔目前仅支持相对挤出机寻址 (use_relative_e_distances=1)。" + +#: src/libslic3r/Print.cpp:1226 +msgid "" +"The Wipe Tower is only supported for multiple objects if they have equal " +"layer heigths" +msgstr "只有在多个物体具有相等的层高的情况下, 才支持擦料塔" + +#: src/libslic3r/Print.cpp:1228 +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:1230 +msgid "" +"The Wipe Tower is only supported for multiple objects if they are printed " +"with the same support_material_contact_distance" +msgstr "" +"只有在使用相同的support_material_contact_distance(支撑材料距离)打印多个对象" +"时, 才支持擦料塔" + +#: src/libslic3r/Print.cpp:1232 +msgid "" +"The Wipe Tower is only supported for multiple objects if they are sliced " +"equally." +msgstr "只有在多个对象被平均切割的情况下, 才支持擦料塔。" + +#: src/libslic3r/Print.cpp:1261 +msgid "" +"The Wipe tower is only supported if all objects have the same layer height " +"profile" +msgstr "只有当所有对象具有相同的层高度配置文件时, 才支持擦料塔" + +#: src/libslic3r/Print.cpp:1271 +msgid "The supplied settings will cause an empty print." +msgstr "当前提供的设置将导致空打印。" + +#: src/libslic3r/Print.cpp:1288 +msgid "" +"One or more object were assigned an extruder that the printer does not have." +msgstr "为一个或多个对象分配了打印机不存在的挤出机。" + +#: src/libslic3r/Print.cpp:1297 +msgid "" +"Printing with multiple extruders of differing nozzle diameters. If support " +"is to be printed with the current extruder (support_material_extruder == 0 " +"or support_material_interface_extruder == 0), all nozzles have to be of the " +"same diameter." +msgstr "" +"使用不同喷嘴直径的多个挤出机进行打印。如果要使用当前挤出机" +"(support_material_extruder == 0 或 support_material_interface_extruder == 0)" +"打印支撑物, 则所有喷嘴的直径必须相同。" + +#: src/libslic3r/Print.cpp:1305 +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:1309 +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 " +"support_material_extruder and support_material_interface_extruder need to be " +"set to 0)." +msgstr "" +"只有在不触发工具更改的情况下, 使用当前挤出机打印的未溶性支撑塔目前才支持不溶" +"于的支架。(support_material_extruder 和support_material_interface_extruder " +"都需要设置为 0)。" + +#: src/libslic3r/Print.cpp:1316 +msgid "first_layer_height" +msgstr "first_layer_height" + +#: src/libslic3r/Print.cpp:1331 +msgid "First layer height can't be greater than nozzle diameter" +msgstr "第一层高度不能大于喷嘴直径" + +#: src/libslic3r/Print.cpp:1335 +msgid "Layer height can't be greater than nozzle diameter" +msgstr "层高度不能大于喷嘴直径" + +#: src/libslic3r/SLAPrint.cpp:55 +msgid "Slicing model" +msgstr "切片模型" + +#: src/libslic3r/SLAPrint.cpp:56 src/libslic3r/SLAPrint.cpp:801 +msgid "Generating support points" +msgstr "生成支持点" + +#: src/libslic3r/SLAPrint.cpp:57 +msgid "Generating support tree" +msgstr "生成支持树" + +#: src/libslic3r/SLAPrint.cpp:58 +msgid "Generating pad" +msgstr "生成板" + +#: src/libslic3r/SLAPrint.cpp:59 +msgid "Slicing supports" +msgstr "切片支持" + +#: src/libslic3r/SLAPrint.cpp:71 +msgid "Merging slices and calculating statistics" +msgstr "合并切片和计算统计信息" + +#: src/libslic3r/SLAPrint.cpp:72 +msgid "Rasterizing layers" +msgstr "栅格化图层" + +#: src/libslic3r/SLAPrint.cpp:605 +msgid "" +"Cannot proceed without support points! Add support points or disable support " +"generation." +msgstr "没有支持点就无法继续!添加支持点或禁用支持生成。" + +#: src/libslic3r/SLAPrint.cpp:617 +msgid "Elevation is too low for object." +msgstr "对于对象来说, 高程太低。" + +#: src/libslic3r/SLAPrint.cpp:699 +msgid "Slicing had to be stopped due to an internal error." +msgstr "由于内部错误, 必须停止切片。" + +#: src/libslic3r/SLAPrint.cpp:849 src/libslic3r/SLAPrint.cpp:859 +#: src/libslic3r/SLAPrint.cpp:907 +msgid "Visualizing supports" +msgstr "可视化支持" + +#: src/libslic3r/SLAPrint.cpp:1449 +msgid "Slicing done" +msgstr "切片完成" + +#: src/libslic3r/PrintBase.cpp:65 +msgid "Failed processing of the output_filename_format template." +msgstr "处理 output_filename_format 模板失败。" + +#: src/libslic3r/PrintConfig.cpp:42 src/libslic3r/PrintConfig.cpp:43 +msgid "Printer technology" +msgstr "打印机技术" + +#: src/libslic3r/PrintConfig.cpp:50 +msgid "Bed shape" +msgstr "机床形状" + +#: src/libslic3r/PrintConfig.cpp:57 +msgid "" +"This setting controls the height (and thus the total number) of the slices/" +"layers. Thinner layers give better accuracy but take more time to print." +msgstr "" +"该参数控制切片的高度(因此也控制总层数)。较薄的切片可以使精度更高,但花费的" +"打印时间也更长。" + +#: src/libslic3r/PrintConfig.cpp:64 +msgid "Max print height" +msgstr "最大打印高度" + +#: src/libslic3r/PrintConfig.cpp:65 +msgid "" +"Set this to the maximum height that can be reached by your extruder while " +"printing." +msgstr "将其设置为您的挤出机在打印时可以达到的最大高度。" + +#: src/libslic3r/PrintConfig.cpp:71 +msgid "Slice gap closing radius" +msgstr "切片间隙闭合半径" + +#: src/libslic3r/PrintConfig.cpp:73 +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 "" +"在三角形网格切片过程中, 小于2倍间隙闭合半径的裂纹将会被填充。间隙闭合操作可能" +"会降低最终打印分辨率, 因此最好将该值保持在合理的较低水平。" + +#: src/libslic3r/PrintConfig.cpp:81 +msgid "Hostname, IP or URL" +msgstr "主机名, IP 或 URL" + +#: src/libslic3r/PrintConfig.cpp:82 +msgid "" +"Slic3r can upload G-code files to a printer host. This field should contain " +"the hostname, IP address or URL of the printer host instance." +msgstr "" +"Slic3r 可以将 G-code 文件上载到打印机主机。此字段应包含打印机主机实例的主机" +"名, IP 地址或 URL。" + +#: src/libslic3r/PrintConfig.cpp:88 +msgid "API Key / Password" +msgstr "API 密钥/密码" + +#: src/libslic3r/PrintConfig.cpp:89 +msgid "" +"Slic3r can upload G-code files to a printer host. This field should contain " +"the API Key or the password required for authentication." +msgstr "" +"Slic3r 可以将 G-code 文件上载到打印机主机。此字段应包含 API 密钥或身份验证所" +"需的密码。" + +#: src/libslic3r/PrintConfig.cpp:111 +msgid "Avoid crossing perimeters" +msgstr "避免跨越轮廓" + +#: src/libslic3r/PrintConfig.cpp:112 +msgid "" +"Optimize travel moves in order to minimize the crossing of perimeters. This " +"is mostly useful with Bowden extruders which suffer from oozing. This " +"feature slows down both the print and the G-code generation." +msgstr "" +"为了尽量减少跨越轮廓,优化空程的移动方式。这非常适用于受渗漏问题影响的鲍登挤" +"出头。此功能会减慢打印速度和 G 代码生成速度。" + +#: src/libslic3r/PrintConfig.cpp:119 src/libslic3r/PrintConfig.cpp:1976 +msgid "Other layers" +msgstr "其它层" + +#: src/libslic3r/PrintConfig.cpp:120 +msgid "" +"Bed temperature for layers after the first one. Set this to zero to disable " +"bed temperature control commands in the output." +msgstr "第一个图层后的层的床温。将此设置为零, 以禁用输出中的床温控制命令。" + +#: src/libslic3r/PrintConfig.cpp:122 +msgid "Bed temperature" +msgstr "机床温度" + +#: src/libslic3r/PrintConfig.cpp:129 +msgid "" +"This custom code is inserted at every layer change, right before the Z move. " +"Note that you can use placeholder variables for all Slic3r settings as well " +"as [layer_num] and [layer_z]." +msgstr "" +"这段自定义代码在层改变,即Z轴移动前插入。注意除了可以使用[layer_num]和" +"[layer_z],也可以使用占位符变量替代所有的slic3r设置。" + +#: src/libslic3r/PrintConfig.cpp:139 +msgid "Between objects G-code" +msgstr "对象之间的 G-code" + +#: src/libslic3r/PrintConfig.cpp:140 +msgid "" +"This code is inserted between objects when using sequential printing. By " +"default extruder and bed temperature are reset using non-wait command; " +"however if M104, M109, M140 or M190 are detected in this custom code, Slic3r " +"will not add temperature commands. Note that you can use placeholder " +"variables for all Slic3r settings, so you can put a \"M109 " +"S[first_layer_temperature]\" command wherever you want." +msgstr "" +"使用顺序打印时, 此代码将插入对象之间。默认情况下, 使用非等待命令重置挤出机和" +"床温;但是, 如果在此自定义代码中检测到 m104、m109、m140 或 m190, Slic3r 将不会" +"添加温度命令。请注意, 您可以对所有 Slic3r 设置使用占位符变量, 因此您可以将 " +"\"M109 S[first_layer_temperature]\" 命令放在任何需要的地方。" + +#: src/libslic3r/PrintConfig.cpp:150 +msgid "Number of solid layers to generate on bottom surfaces." +msgstr "底部表面生成的可靠层数。" + +#: src/libslic3r/PrintConfig.cpp:151 +msgid "Bottom solid layers" +msgstr "底部可靠层" + +#: src/libslic3r/PrintConfig.cpp:156 +msgid "Bridge" +msgstr "桥" + +#: src/libslic3r/PrintConfig.cpp:157 +msgid "" +"This is the acceleration your printer will use for bridges. Set zero to " +"disable acceleration control for bridges." +msgstr "此项为打印机在打印桥时的加速度。设为0可以禁用打印桥的加速度控制。" + +#: src/libslic3r/PrintConfig.cpp:159 src/libslic3r/PrintConfig.cpp:302 +#: src/libslic3r/PrintConfig.cpp:814 src/libslic3r/PrintConfig.cpp:935 +#: src/libslic3r/PrintConfig.cpp:1088 src/libslic3r/PrintConfig.cpp:1133 +#: src/libslic3r/PrintConfig.cpp:1144 src/libslic3r/PrintConfig.cpp:1333 +msgid "mm/s²" +msgstr "mm/s²" + +#: src/libslic3r/PrintConfig.cpp:165 +msgid "Bridging angle" +msgstr "桥接角度" + +#: src/libslic3r/PrintConfig.cpp:167 +msgid "" +"Bridging angle override. If left to zero, the bridging angle will be " +"calculated automatically. Otherwise the provided angle will be used for all " +"bridges. Use 180° for zero angle." +msgstr "" +"桥接角度覆盖。如果保持为零, 则将自动计算桥接角度。否则, 所提供的角度将用于所" +"有桥梁。使用180°实现零角度。" + +#: src/libslic3r/PrintConfig.cpp:170 src/libslic3r/PrintConfig.cpp:732 +#: src/libslic3r/PrintConfig.cpp:1569 src/libslic3r/PrintConfig.cpp:1579 +#: src/libslic3r/PrintConfig.cpp:1807 src/libslic3r/PrintConfig.cpp:1961 +#: src/libslic3r/PrintConfig.cpp:2459 +msgid "°" +msgstr "°" + +#: src/libslic3r/PrintConfig.cpp:176 +msgid "Bridges fan speed" +msgstr "桥风扇速度" + +#: src/libslic3r/PrintConfig.cpp:177 +msgid "This fan speed is enforced during all bridges and overhangs." +msgstr "此项为在打印所有桥和悬垂部位时的风扇速度。" + +#: src/libslic3r/PrintConfig.cpp:178 src/libslic3r/PrintConfig.cpp:744 +#: src/libslic3r/PrintConfig.cpp:1153 src/libslic3r/PrintConfig.cpp:1216 +#: src/libslic3r/PrintConfig.cpp:1461 src/libslic3r/PrintConfig.cpp:2258 +#: src/libslic3r/PrintConfig.cpp:2498 +msgid "%" +msgstr "%" + +#: src/libslic3r/PrintConfig.cpp:185 +msgid "Bridge flow ratio" +msgstr "桥流量比" + +#: src/libslic3r/PrintConfig.cpp:187 +msgid "" +"This factor affects the amount of plastic for bridging. You can decrease it " +"slightly to pull the extrudates and prevent sagging, although default " +"settings are usually good and you should experiment with cooling (use a fan) " +"before tweaking this." +msgstr "" +"此因素影响桥接部位的塑料用量。可以略微减少该值以回撤挤出物避免滴垂。但默认设" +"置通常来说已经可以满足使用,在修改前需通过冷却(使用风扇)进行测试。" + +#: src/libslic3r/PrintConfig.cpp:197 +msgid "Bridges" +msgstr "桥接处" + +#: src/libslic3r/PrintConfig.cpp:199 +msgid "Speed for printing bridges." +msgstr "打印桥接处的速度。" + +#: src/libslic3r/PrintConfig.cpp:200 src/libslic3r/PrintConfig.cpp:576 +#: src/libslic3r/PrintConfig.cpp:584 src/libslic3r/PrintConfig.cpp:593 +#: src/libslic3r/PrintConfig.cpp:601 src/libslic3r/PrintConfig.cpp:628 +#: src/libslic3r/PrintConfig.cpp:647 src/libslic3r/PrintConfig.cpp:873 +#: src/libslic3r/PrintConfig.cpp:1000 src/libslic3r/PrintConfig.cpp:1078 +#: src/libslic3r/PrintConfig.cpp:1098 src/libslic3r/PrintConfig.cpp:1111 +#: src/libslic3r/PrintConfig.cpp:1122 src/libslic3r/PrintConfig.cpp:1175 +#: src/libslic3r/PrintConfig.cpp:1234 src/libslic3r/PrintConfig.cpp:1362 +#: src/libslic3r/PrintConfig.cpp:1536 src/libslic3r/PrintConfig.cpp:1545 +#: src/libslic3r/PrintConfig.cpp:1940 src/libslic3r/PrintConfig.cpp:2051 +msgid "mm/s" +msgstr "mm/s" + +#: src/libslic3r/PrintConfig.cpp:207 +msgid "Brim width" +msgstr "裙边宽度" + +#: src/libslic3r/PrintConfig.cpp:208 +msgid "" +"Horizontal width of the brim that will be printed around each object on the " +"first layer." +msgstr "第一层每个物体周围打印的裙边水平宽度。" + +#: src/libslic3r/PrintConfig.cpp:215 +msgid "Clip multi-part objects" +msgstr "剪切多部分对象" + +#: src/libslic3r/PrintConfig.cpp:216 +msgid "" +"When printing multi-material objects, this settings will make slic3r to clip " +"the overlapping object parts one by the other (2nd part will be clipped by " +"the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "" +"打印多材料对象时, 此设置将使 slic3r 将一个接一个地剪裁重叠对象部分 (第二部分" +"将被第1部分裁剪, 第3部分将被第1和第2部分裁剪)。" + +#: src/libslic3r/PrintConfig.cpp:223 +msgid "Colorprint height" +msgstr "彩色打印高度" + +#: src/libslic3r/PrintConfig.cpp:224 +msgid "Heights at which a filament change is to occur. " +msgstr "将发生耗材丝变化的高度. " + +#: src/libslic3r/PrintConfig.cpp:234 +msgid "Compatible printers condition" +msgstr "兼容的打印机条件" + +#: src/libslic3r/PrintConfig.cpp:235 +msgid "" +"A boolean expression using the configuration values of an active printer " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active printer profile." +msgstr "" +"使用中的打印机配置文件的配置值的布尔表达式。如果此表达式的计算结果为 true, 则" +"此配置文件被视为与活动打印机配置文件兼容。" + +#: src/libslic3r/PrintConfig.cpp:249 +msgid "Compatible print profiles condition" +msgstr "兼容的打印配置文件条件" + +#: src/libslic3r/PrintConfig.cpp:250 +msgid "" +"A boolean expression using the configuration values of an active print " +"profile. If this expression evaluates to true, this profile is considered " +"compatible with the active print profile." +msgstr "" +"使用中的打印配置文件的配置值的布尔表达式。如果此表达式的计算结果为 true, 则此" +"配置文件被视为与活动打印配置文件兼容。" + +#: src/libslic3r/PrintConfig.cpp:267 +msgid "Complete individual objects" +msgstr "打印完成单个物体" + +#: src/libslic3r/PrintConfig.cpp:268 +msgid "" +"When printing multiple objects or copies, this feature will complete each " +"object before moving onto next one (and starting it from its bottom layer). " +"This feature is useful to avoid the risk of ruined prints. Slic3r should " +"warn and prevent you from extruder collisions, but beware." +msgstr "" +"勾选此项表示当打印多个物体或复制体时,先打印完一整个物体再继续打印后续物体" +"(从底层开始)。此选项利于避免打毁掉物体。Slic3r应该给出警示,避免挤出头碰" +"撞,但请小心。" + +#: src/libslic3r/PrintConfig.cpp:276 +msgid "Enable auto cooling" +msgstr "自动冷却使能" + +#: src/libslic3r/PrintConfig.cpp:277 +msgid "" +"This flag enables the automatic cooling logic that adjusts print speed and " +"fan speed according to layer printing time." +msgstr "该选项启动自动冷却,使得可根据层打印时间调整打印速度和风扇速度。" + +#: src/libslic3r/PrintConfig.cpp:282 +msgid "Cooling tube position" +msgstr "冷却管位置" + +#: src/libslic3r/PrintConfig.cpp:283 +msgid "Distance of the center-point of the cooling tube from the extruder tip " +msgstr "冷却管中心点与挤出机尖端的距离 " + +#: src/libslic3r/PrintConfig.cpp:290 +msgid "Cooling tube length" +msgstr "冷却管长度" + +#: src/libslic3r/PrintConfig.cpp:291 +msgid "Length of the cooling tube to limit space for cooling moves inside it " +msgstr "冷却管的长度, 以限制冷却内的移动空间 " + +#: src/libslic3r/PrintConfig.cpp:299 +msgid "" +"This is the acceleration your printer will be reset to after the role-" +"specific acceleration values are used (perimeter/infill). Set zero to " +"prevent resetting acceleration at all." +msgstr "" +"该值为打印机在使用了特定的加速度值(如轮廓/填充)后将重置的加速度值。设为0以" +"防止重置加速度。" + +#: src/libslic3r/PrintConfig.cpp:308 +msgid "Default filament profile" +msgstr "默认耗材丝配置" + +#: src/libslic3r/PrintConfig.cpp:309 +msgid "" +"Default filament profile associated with the current printer profile. On " +"selection of the current printer profile, this filament profile will be " +"activated." +msgstr "" +"与当前打印机配置文件关联的默认耗材丝配置文件。在选择当前打印机配置文件时, 将" +"激活此耗材丝丝配置文件。" + +#: src/libslic3r/PrintConfig.cpp:315 +msgid "Default print profile" +msgstr "默认 SLA 打印配置文件" + +#: src/libslic3r/PrintConfig.cpp:316 src/libslic3r/PrintConfig.cpp:2337 +#: src/libslic3r/PrintConfig.cpp:2348 +msgid "" +"Default print profile associated with the current printer profile. On " +"selection of the current printer profile, this print profile will be " +"activated." +msgstr "" +"与当前打印机配置文件关联的默认打印配置文件。在选择当前打印机配置文件时, 将激" +"活此打印配置文件。" + +#: src/libslic3r/PrintConfig.cpp:322 +msgid "Disable fan for the first" +msgstr "前几层禁用风扇" + +#: src/libslic3r/PrintConfig.cpp:323 +msgid "" +"You can set this to a positive value to disable fan at all during the first " +"layers, so that it does not make adhesion worse." +msgstr "" +"您可以将其设置为正值, 以便在第一层期间完全禁用风扇, 这样就不会使粘附变得更" +"糟。" + +#: src/libslic3r/PrintConfig.cpp:325 src/libslic3r/PrintConfig.cpp:945 +#: src/libslic3r/PrintConfig.cpp:1434 src/libslic3r/PrintConfig.cpp:1619 +#: src/libslic3r/PrintConfig.cpp:1680 src/libslic3r/PrintConfig.cpp:1843 +#: src/libslic3r/PrintConfig.cpp:1888 +msgid "layers" +msgstr "层" + +#: src/libslic3r/PrintConfig.cpp:332 +msgid "Don't support bridges" +msgstr "不支持桥接" + +#: src/libslic3r/PrintConfig.cpp:334 +msgid "" +"Experimental option for preventing support material from being generated " +"under bridged areas." +msgstr "试验项,在桥接处禁止生成支撑材料。" + +#: src/libslic3r/PrintConfig.cpp:340 +msgid "Distance between copies" +msgstr "复制物体之间的距离" + +#: src/libslic3r/PrintConfig.cpp:341 +msgid "Distance used for the auto-arrange feature of the plater." +msgstr "自动分布时所使用的距离。" + +#: src/libslic3r/PrintConfig.cpp:348 +msgid "Elephant foot compensation" +msgstr "大象脚补偿" + +#: src/libslic3r/PrintConfig.cpp:350 +msgid "" +"The first layer will be shrunk in the XY plane by the configured value to " +"compensate for the 1st layer squish aka an Elephant Foot effect." +msgstr "" +"第一层将被相对于配置的值在 XY 平面上缩小, 以补偿第一层斜视, 也就是大象脚的效" +"果。" + +#: src/libslic3r/PrintConfig.cpp:359 +msgid "" +"This end procedure is inserted at the end of the output file. Note that you " +"can use placeholder variables for all Slic3r settings." +msgstr "该部分将插入到输出文件的结尾。注意可对所有的Slic3r参数使用占位符变量。" + +#: src/libslic3r/PrintConfig.cpp:369 +msgid "" +"This end procedure is inserted at the end of the output file, before the " +"printer end gcode. Note that you can use placeholder variables for all " +"Slic3r settings. If you have multiple extruders, the gcode is processed in " +"extruder order." +msgstr "" +"该部分将被插入输出文件的结尾,但在打印机结尾G代码之前。注意可以对所有Slic3r参" +"数使用占位符变量代替。如果有多个打印头,G代码将按打印头的顺序来处理。" + +#: src/libslic3r/PrintConfig.cpp:379 +msgid "Ensure vertical shell thickness" +msgstr "确保垂直外壳厚度" + +#: src/libslic3r/PrintConfig.cpp:381 +msgid "" +"Add solid infill near sloping surfaces to guarantee the vertical shell " +"thickness (top+bottom solid layers)." +msgstr "在倾斜表面附近添加实心填充, 以保证垂直外壳厚度 (顶部 + 底部实心层)。" + +#: src/libslic3r/PrintConfig.cpp:387 +msgid "Top fill pattern" +msgstr "顶部填充图案" + +#: src/libslic3r/PrintConfig.cpp:389 +msgid "" +"Fill pattern for top infill. This only affects the top visible layer, and " +"not its adjacent solid shells." +msgstr "填充模式的顶部填充。这只影响顶部可见层, 而不影响其相邻的实体外壳。" + +#: src/libslic3r/PrintConfig.cpp:397 src/libslic3r/PrintConfig.cpp:795 +#: src/libslic3r/PrintConfig.cpp:1921 +msgid "Rectilinear" +msgstr "折线式" + +#: src/libslic3r/PrintConfig.cpp:398 src/libslic3r/PrintConfig.cpp:801 +msgid "Concentric" +msgstr "同轴式" + +#: src/libslic3r/PrintConfig.cpp:399 src/libslic3r/PrintConfig.cpp:805 +msgid "Hilbert Curve" +msgstr "希尔伯特曲线式" + +#: src/libslic3r/PrintConfig.cpp:400 src/libslic3r/PrintConfig.cpp:806 +msgid "Archimedean Chords" +msgstr "阿基米德和铉式" + +# Not so sure about how to put "Octagram Spiral" in Chinese. Or maybe "Octagram螺旋“ is good. +#: src/libslic3r/PrintConfig.cpp:401 src/libslic3r/PrintConfig.cpp:807 +msgid "Octagram Spiral" +msgstr "八角星螺旋式" + +#: src/libslic3r/PrintConfig.cpp:408 +msgid "Bottom fill pattern" +msgstr "底部填充图案" + +#: src/libslic3r/PrintConfig.cpp:409 +msgid "" +"Fill pattern for bottom infill. This only affects the bottom external " +"visible layer, and not its adjacent solid shells." +msgstr "底部填充填充模式。这只影响底部的外部可见层, 而不影响其相邻的实体外壳。" + +#: src/libslic3r/PrintConfig.cpp:414 src/libslic3r/PrintConfig.cpp:424 +msgid "External perimeters" +msgstr "外围轮廓" + +#: src/libslic3r/PrintConfig.cpp:416 +msgid "" +"Set this to a non-zero value to set a manual extrusion width for external " +"perimeters. If left zero, default extrusion width will be used if set, " +"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " +"(for example 200%), it will be computed over layer height." +msgstr "" +"将其设置为非零值, 以设置外部周长的手动挤出宽度。如果为零, 将使用默认挤出宽" +"度, 如果没有设置默认值将使用 1.125 x 喷嘴直径。如果以百分比表示 (例如 200%), " +"则将根据图层高度计算。" + +#: src/libslic3r/PrintConfig.cpp:419 src/libslic3r/PrintConfig.cpp:834 +#: src/libslic3r/PrintConfig.cpp:966 src/libslic3r/PrintConfig.cpp:1353 +#: src/libslic3r/PrintConfig.cpp:1691 src/libslic3r/PrintConfig.cpp:1864 +#: src/libslic3r/PrintConfig.cpp:2022 +msgid "mm or % (leave 0 for default)" +msgstr "mm 或 % (0为默认值)" + +#: src/libslic3r/PrintConfig.cpp:426 +msgid "" +"This separate setting will affect the speed of external perimeters (the " +"visible ones). If expressed as percentage (for example: 80%) it will be " +"calculated on the perimeters speed setting above. Set to zero for auto." +msgstr "" +"此单独设置将影响外围轮廓 (可见的表面) 的速度。如果以百分比表示 (例如: 80%)它" +"将在上面的周界速度设置上计算。自动设置为零。" + +#: src/libslic3r/PrintConfig.cpp:429 src/libslic3r/PrintConfig.cpp:855 +#: src/libslic3r/PrintConfig.cpp:1650 src/libslic3r/PrintConfig.cpp:1701 +#: src/libslic3r/PrintConfig.cpp:1907 src/libslic3r/PrintConfig.cpp:2034 +msgid "mm/s or %" +msgstr "mm/s 或 %" + +#: src/libslic3r/PrintConfig.cpp:436 +msgid "External perimeters first" +msgstr "先打印外围轮廓" + +#: src/libslic3r/PrintConfig.cpp:438 +msgid "" +"Print contour perimeters from the outermost one to the innermost one instead " +"of the default inverse order." +msgstr "从最外围轮廓向最内部的轮廓打印,而不是反方向。" + +#: src/libslic3r/PrintConfig.cpp:444 +msgid "Extra perimeters if needed" +msgstr "如果需要的话,扩展外围轮廓" + +#: src/libslic3r/PrintConfig.cpp:446 +#, no-c-format +msgid "" +"Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r " +"keeps adding perimeters, until more than 70% of the loop immediately above " +"is supported." +msgstr "" +"在需要时添加更多外围轮廓, 以避免倾斜墙中的缝隙。Slic3r不断添加轮廓,直到支持" +"上面70%以上的循环。" + +#: src/libslic3r/PrintConfig.cpp:456 +msgid "" +"The extruder to use (unless more specific extruder settings are specified). " +"This value overrides perimeter and infill extruders, but not the support " +"extruders." +msgstr "" +"要使用的挤出机 (除非指定了更具体的挤出机设置)。此值覆盖外围和填充挤出机, 但不" +"覆盖支持挤出机。" + +#: src/libslic3r/PrintConfig.cpp:468 +msgid "" +"Set this to the vertical distance between your nozzle tip and (usually) the " +"X carriage rods. In other words, this is the height of the clearance " +"cylinder around your extruder, and it represents the maximum depth the " +"extruder can peek before colliding with other printed objects." +msgstr "" +"设置为喷嘴尖端和(通常)X架杆之间的垂直距离。换句话说,这是在你的挤出机周围的" +"空隙气缸的高度,它代表了挤出头在与其他印打印物体碰撞前科达到的最大深度。" + +#: src/libslic3r/PrintConfig.cpp:478 +msgid "Radius" +msgstr "半径" + +#: src/libslic3r/PrintConfig.cpp:479 +msgid "" +"Set this to the clearance radius around your extruder. If the extruder is " +"not centered, choose the largest value for safety. This setting is used to " +"check for collisions and to display the graphical preview in the plater." +msgstr "" +"设置为挤出头周围的空隙半径。如果挤出头未置中,安全起见请选择最大值。该参数用" +"于检查碰撞,并在界面中显示图形预览。" + +#: src/libslic3r/PrintConfig.cpp:489 +msgid "Extruder Color" +msgstr "挤出头颜色" + +#: src/libslic3r/PrintConfig.cpp:490 src/libslic3r/PrintConfig.cpp:550 +msgid "This is only used in the Slic3r interface as a visual help." +msgstr "仅提供Slic3r界面的视觉帮助。" + +#: src/libslic3r/PrintConfig.cpp:496 +msgid "Extruder offset" +msgstr "挤出头偏置" + +#: src/libslic3r/PrintConfig.cpp:497 +msgid "" +"If your firmware doesn't handle the extruder displacement you need the G-" +"code to take it into account. This option lets you specify the displacement " +"of each extruder with respect to the first one. It expects positive " +"coordinates (they will be subtracted from the XY coordinate)." +msgstr "" +"如果你的固件不能处理挤出头的位移量,需要使用G代码将其考虑进去。该选项可让你细" +"化每个挤出头相对第一个挤出头的位移量。一般为正坐标(它们将从XY坐标相减得" +"到)。" + +#: src/libslic3r/PrintConfig.cpp:506 +msgid "Extrusion axis" +msgstr "挤出轴" + +#: src/libslic3r/PrintConfig.cpp:507 +msgid "" +"Use this option to set the axis letter associated to your printer's extruder " +"(usually E but some printers use A)." +msgstr "" +"使用该项设置你的打印机挤出头的轴所用字母(一般为E,但有的打印机使用A)。" + +#: src/libslic3r/PrintConfig.cpp:512 +msgid "Extrusion multiplier" +msgstr "挤出倍数" + +#: src/libslic3r/PrintConfig.cpp:513 +msgid "" +"This factor changes the amount of flow proportionally. You may need to tweak " +"this setting to get nice surface finish and correct single wall widths. " +"Usual values are between 0.9 and 1.1. If you think you need to change this " +"more, check filament diameter and your firmware E steps." +msgstr "" +"该选项按比例改变流量。你可能需要调整该设置来获取更好的表面尾处理,更正单层墙" +"的宽度。通常值范围在0.9到1.1之间。如果你觉得有必要更改幅度更大,检查丝料直径" +"和你的固件E步骤。" + +#: src/libslic3r/PrintConfig.cpp:521 +msgid "Default extrusion width" +msgstr "默认挤出宽度" + +#: src/libslic3r/PrintConfig.cpp:523 +msgid "" +"Set this to a non-zero value to allow a manual extrusion width. If left to " +"zero, Slic3r derives extrusion widths from the nozzle diameter (see the " +"tooltips for perimeter extrusion width, infill extrusion width etc). If " +"expressed as percentage (for example: 230%), it will be computed over layer " +"height." +msgstr "" +"将其设置为非零值, 以允许手动挤出宽度。如果保持为零, Slic3r 将从喷嘴直径中提取" +"挤出宽度 (请参阅周边挤出宽度、填充挤出宽度等工具提示)。如果以百分比表示 (例" +"如: 230%), 则将根据图层高度计算。" + +#: src/libslic3r/PrintConfig.cpp:527 +msgid "mm or % (leave 0 for auto)" +msgstr "mm/s 或 % (0 为自动)" + +#: src/libslic3r/PrintConfig.cpp:532 +msgid "Keep fan always on" +msgstr "保持风扇总是打开" + +#: src/libslic3r/PrintConfig.cpp:533 +msgid "" +"If this is enabled, fan will never be disabled and will be kept running at " +"least at its minimum speed. Useful for PLA, harmful for ABS." +msgstr "" +"勾选此项,风扇将不会被关闭,在整个打印过程中将持续以不低于最低速开启。对于PLA" +"材料有用,对ABS材料不适用。" + +#: src/libslic3r/PrintConfig.cpp:538 +msgid "Enable fan if layer print time is below" +msgstr "如果打印时间低于该值,则气动风扇" + +#: src/libslic3r/PrintConfig.cpp:539 +msgid "" +"If layer print time is estimated below this number of seconds, fan will be " +"enabled and its speed will be calculated by interpolating the minimum and " +"maximum speeds." +msgstr "" +"如果估算的打印时间低于该数值(单位为秒),风扇将启用,而且速度值根据插补最小" +"速度值和最大速度值来计算。" + +#: src/libslic3r/PrintConfig.cpp:541 src/libslic3r/PrintConfig.cpp:1637 +msgid "approximate seconds" +msgstr "秒(大约)" + +#: src/libslic3r/PrintConfig.cpp:549 +msgid "Color" +msgstr "颜色" + +#: src/libslic3r/PrintConfig.cpp:555 +msgid "Filament notes" +msgstr "丝料备注" + +#: src/libslic3r/PrintConfig.cpp:556 +msgid "You can put your notes regarding the filament here." +msgstr "关于材料的备注可放这里。" + +#: src/libslic3r/PrintConfig.cpp:564 src/libslic3r/PrintConfig.cpp:1181 +msgid "Max volumetric speed" +msgstr "最大体积速度" + +#: src/libslic3r/PrintConfig.cpp:565 +msgid "" +"Maximum volumetric speed allowed for this filament. Limits the maximum " +"volumetric speed of a print to the minimum of print and filament volumetric " +"speed. Set to zero for no limit." +msgstr "" +"该材料所允许的最大体积速度。把最大体积速度限定为打印速度和材料体积速度的最小" +"值。设为0则无限制。" + +#: src/libslic3r/PrintConfig.cpp:568 src/libslic3r/PrintConfig.cpp:1184 +msgid "mm³/s" +msgstr "mm³/s" + +#: src/libslic3r/PrintConfig.cpp:574 +msgid "Loading speed" +msgstr "加载速度" + +#: src/libslic3r/PrintConfig.cpp:575 +msgid "Speed used for loading the filament on the wipe tower. " +msgstr "用于在擦拭塔上加载耗材丝的速度. " + +#: src/libslic3r/PrintConfig.cpp:582 +msgid "Loading speed at the start" +msgstr "启动时的加载速度" + +#: src/libslic3r/PrintConfig.cpp:583 +msgid "Speed used at the very beginning of loading phase. " +msgstr "加载阶段开始时使用的速度. " + +#: src/libslic3r/PrintConfig.cpp:590 +msgid "Unloading speed" +msgstr "卸载速度" + +#: src/libslic3r/PrintConfig.cpp:591 +msgid "" +"Speed used for unloading the filament on the wipe tower (does not affect " +"initial part of unloading just after ramming). " +msgstr "用于擦料塔上耗材丝的速度 (不影响撞击后卸载的初始部分). " + +#: src/libslic3r/PrintConfig.cpp:599 +msgid "Unloading speed at the start" +msgstr "启动时卸载速度" + +#: src/libslic3r/PrintConfig.cpp:600 +msgid "" +"Speed used for unloading the tip of the filament immediately after ramming. " +msgstr "用于在撞击后立即卸载细丝尖端的速度. " + +#: src/libslic3r/PrintConfig.cpp:607 +msgid "Delay after unloading" +msgstr "卸载后的延迟" + +#: src/libslic3r/PrintConfig.cpp:608 +msgid "" +"Time to wait after the filament is unloaded. May help to get reliable " +"toolchanges with flexible materials that may need more time to shrink to " +"original dimensions. " +msgstr "" +"耗材丝卸掉后的等待时间。有助于使用柔性材料时的工具切换, 这些材料可能需要更多" +"的时间来缩小到原始尺寸. " + +#: src/libslic3r/PrintConfig.cpp:617 +msgid "Number of cooling moves" +msgstr "冷却移动次数" + +#: src/libslic3r/PrintConfig.cpp:618 +msgid "" +"Filament is cooled by being moved back and forth in the cooling tubes. " +"Specify desired number of these moves " +msgstr "耗材丝是通过在冷却管中来回移动来冷却的。指定这些移动的所需数量 " + +#: src/libslic3r/PrintConfig.cpp:626 +msgid "Speed of the first cooling move" +msgstr "第一次冷却运动的速度" + +#: src/libslic3r/PrintConfig.cpp:627 +msgid "Cooling moves are gradually accelerating beginning at this speed. " +msgstr "冷却动作正以这样的速度逐渐开始加速. " + +#: src/libslic3r/PrintConfig.cpp:634 +msgid "Minimal purge on wipe tower" +msgstr "擦拭塔上的最小清理量" + +#: src/libslic3r/PrintConfig.cpp:635 +msgid "" +"After a tool change, the exact position of the newly loaded filament inside " +"the nozzle may not be known, and the filament pressure is likely not yet " +"stable. Before purging the print head into an infill or a sacrificial " +"object, Slic3r will always prime this amount of material into the wipe tower " +"to produce successive infill or sacrificial object extrusions reliably." +msgstr "" +"换料后, 新加载的耗材丝在喷嘴内的确切位置可能尚不清楚, 而且耗材丝压力可能尚不" +"稳定。在将打印头清洗成填充物或填充对象之前, Slic3r 将始终将这些数量的材料放入" +"擦拭塔中, 以可靠地产生连续的填充物或填充对象。" + +#: src/libslic3r/PrintConfig.cpp:639 +msgid "mm³" +msgstr "mm³" + +#: src/libslic3r/PrintConfig.cpp:645 +msgid "Speed of the last cooling move" +msgstr "最后一次冷却移动的速度" + +#: src/libslic3r/PrintConfig.cpp:646 +msgid "Cooling moves are gradually accelerating towards this speed. " +msgstr "冷却动作会逐渐加速到这个速度. " + +#: src/libslic3r/PrintConfig.cpp:653 +msgid "Filament load time" +msgstr "耗材丝加载时间" + +#: src/libslic3r/PrintConfig.cpp:654 +msgid "" +"Time for the printer firmware (or the Multi Material Unit 2.0) to load a new " +"filament during a tool change (when executing the T code). This time is " +"added to the total print time by the G-code time estimator." +msgstr "" +"打印机固件 (或Multi Material Unit 2.0) 在工具更换期间 (执行 T 代码时) 加载新" +"耗材丝的时间。 G-code时间估计器将此时间添加到总打印时间中。" + +#: src/libslic3r/PrintConfig.cpp:661 +msgid "Ramming parameters" +msgstr "冲压参数" + +#: src/libslic3r/PrintConfig.cpp:662 +msgid "" +"This string is edited by RammingDialog and contains ramming specific " +"parameters " +msgstr "此字符串由 RammingDialog 编辑, 并包含冲压特定参数 " + +#: src/libslic3r/PrintConfig.cpp:668 +msgid "Filament unload time" +msgstr "耗材丝卸载时间" + +#: src/libslic3r/PrintConfig.cpp:669 +msgid "" +"Time for the printer firmware (or the Multi Material Unit 2.0) to unload a " +"filament during a tool change (when executing the T code). This time is " +"added to the total print time by the G-code time estimator." +msgstr "" +"打印机固件 (或Multi Material Unit 2.0) 在工具更换期间 (执行 T 代码时) 卸载耗" +"材丝的时间。 G-code时间估计器将此时间添加到总打印时间中。" + +#: src/libslic3r/PrintConfig.cpp:677 +msgid "" +"Enter your filament diameter here. Good precision is required, so use a " +"caliper and do multiple measurements along the filament, then compute the " +"average." +msgstr "" +"在这里输入你的材料直径。需要较高精度,所以请使用卡尺,沿着材料长丝做多次测" +"量,计算平均值。" + +#: src/libslic3r/PrintConfig.cpp:684 +msgid "Density" +msgstr "密度" + +#: src/libslic3r/PrintConfig.cpp:685 +msgid "" +"Enter your filament density here. This is only for statistical information. " +"A decent way is to weigh a known length of filament and compute the ratio of " +"the length to volume. Better is to calculate the volume directly through " +"displacement." +msgstr "" +"在这里输入你的丝料密度。此仅为统计信息。一个不错的方法是测量一段已知长度丝料" +"的重量,然后计算体积。更好的方法式直接通过位移计算体积。" + +#: src/libslic3r/PrintConfig.cpp:688 +msgid "g/cm³" +msgstr "g/cm³" + +#: src/libslic3r/PrintConfig.cpp:693 +msgid "Filament type" +msgstr "耗材类型" + +#: src/libslic3r/PrintConfig.cpp:694 +msgid "The filament material type for use in custom G-codes." +msgstr "用于自定义 G-codes的耗材丝材料类型。" + +#: src/libslic3r/PrintConfig.cpp:710 +msgid "Soluble material" +msgstr "可溶性材料" + +#: src/libslic3r/PrintConfig.cpp:711 +msgid "Soluble material is most likely used for a soluble support." +msgstr "可溶性材料最可能用于可溶性支撑。" + +#: src/libslic3r/PrintConfig.cpp:717 +msgid "" +"Enter your filament cost per kg here. This is only for statistical " +"information." +msgstr "在这里输入丝料每公斤的价格。仅用于统计信息。" + +# Set this to be the local currency symbol. +#: src/libslic3r/PrintConfig.cpp:718 +msgid "money/kg" +msgstr "¥/kg" + +#: src/libslic3r/PrintConfig.cpp:727 +msgid "Fill angle" +msgstr "填充角度" + +#: src/libslic3r/PrintConfig.cpp:729 +msgid "" +"Default base angle for infill orientation. Cross-hatching will be applied to " +"this. Bridges will be infilled using the best direction Slic3r can detect, " +"so this setting does not affect them." +msgstr "" +"填充的默认基础方向角。交叉引线适用于此。桥接处将使用Slic3r所侦测的最好方向来" +"填充,所以此参数不影响它们。" + +#: src/libslic3r/PrintConfig.cpp:741 +msgid "Fill density" +msgstr "填充密度" + +#: src/libslic3r/PrintConfig.cpp:743 +msgid "Density of internal infill, expressed in the range 0% - 100%." +msgstr "内部填充的密度,以0% - 100% 表示。" + +#: src/libslic3r/PrintConfig.cpp:778 +msgid "Fill pattern" +msgstr "填充样式" + +#: src/libslic3r/PrintConfig.cpp:780 +msgid "Fill pattern for general low-density infill." +msgstr "一般低密度填充的填充样式。" + +#: src/libslic3r/PrintConfig.cpp:796 +msgid "Grid" +msgstr "网格" + +#: src/libslic3r/PrintConfig.cpp:797 +msgid "Triangles" +msgstr "三角形" + +#: src/libslic3r/PrintConfig.cpp:798 +msgid "Stars" +msgstr "星级" + +#: src/libslic3r/PrintConfig.cpp:799 +msgid "Cubic" +msgstr "立方体" + +#: src/libslic3r/PrintConfig.cpp:800 +msgid "Line" +msgstr "线" + +#: src/libslic3r/PrintConfig.cpp:802 src/libslic3r/PrintConfig.cpp:1923 +msgid "Honeycomb" +msgstr "蜂窝" + +#: src/libslic3r/PrintConfig.cpp:803 +msgid "3D Honeycomb" +msgstr "3D 蜂窝" + +#: src/libslic3r/PrintConfig.cpp:804 +msgid "Gyroid" +msgstr "螺旋形" + +#: src/libslic3r/PrintConfig.cpp:811 src/libslic3r/PrintConfig.cpp:820 +#: src/libslic3r/PrintConfig.cpp:828 src/libslic3r/PrintConfig.cpp:861 +msgid "First layer" +msgstr "首层" + +#: src/libslic3r/PrintConfig.cpp:812 +msgid "" +"This is the acceleration your printer will use for first layer. Set zero to " +"disable acceleration control for first layer." +msgstr "此项为打印机对首层使用的加速度。设为0则对首层禁用加速控制。" + +#: src/libslic3r/PrintConfig.cpp:821 +msgid "" +"Heated build plate temperature for the first layer. Set this to zero to " +"disable bed temperature control commands in the output." +msgstr "首层的加热板温度。设为0,可在输出中禁用机床温度控制指令。" + +#: src/libslic3r/PrintConfig.cpp:830 +msgid "" +"Set this to a non-zero value to set a manual extrusion width for first " +"layer. You can use this to force fatter extrudates for better adhesion. If " +"expressed as percentage (for example 120%) it will be computed over first " +"layer height. If set to zero, it will use the default extrusion width." +msgstr "" +"将其设置为非零值, 以设置第一层的手动挤出宽度。您可以使用它强制挤出更多挤出物" +"以得到更好的附着力。如果以百分比表示 (例如 120%), 则将在第一层高度上计算。如" +"果设置为零, 它将使用默认的挤出宽度。" + +#: src/libslic3r/PrintConfig.cpp:840 +msgid "First layer height" +msgstr "首层高度" + +#: src/libslic3r/PrintConfig.cpp:842 +msgid "" +"When printing with very low layer heights, you might still want to print a " +"thicker bottom layer to improve adhesion and tolerance for non perfect build " +"plates. This can be expressed as an absolute value or as a percentage (for " +"example: 150%) over the default layer height." +msgstr "" +"当以非常低的层高打印时,对于不太理想的热床来说可能需要打印较厚的底层来提高粘" +"附效果。该值可被表示为一个绝对值,或者一个相对于默认层高的百分数(如150%)。" + +#: src/libslic3r/PrintConfig.cpp:846 src/libslic3r/PrintConfig.cpp:991 +#: src/libslic3r/PrintConfig.cpp:1796 +msgid "mm or %" +msgstr "mm 或 %" + +#: src/libslic3r/PrintConfig.cpp:851 +msgid "First layer speed" +msgstr "首层速度" + +#: src/libslic3r/PrintConfig.cpp:852 +msgid "" +"If expressed as absolute value in mm/s, this speed will be applied to all " +"the print moves of the first layer, regardless of their type. If expressed " +"as a percentage (for example: 40%) it will scale the default speeds." +msgstr "" +"如果表示为mm/s的数值,该值将被用于首层的打印动作,无关动作的类型。如果表示为" +"百分数(如40%),则以默认速度值为基准。" + +#: src/libslic3r/PrintConfig.cpp:862 +msgid "" +"Extruder temperature for first layer. If you want to control temperature " +"manually during print, set this to zero to disable temperature control " +"commands in the output file." +msgstr "" +"首层挤出头温度。如果要在打印过程中手动控制温度,将该项设为0来禁止输出文件中的" +"控制命令。" + +#: src/libslic3r/PrintConfig.cpp:871 +msgid "" +"Speed for filling small gaps using short zigzag moves. Keep this reasonably " +"low to avoid too much shaking and resonance issues. Set zero to disable gaps " +"filling." +msgstr "" +"使用短锯齿形移动来填补小缝隙的速度。保持合理的低值, 以避免过多的晃动和共振问" +"题。设置为零, 以禁用间隙填充。" + +#: src/libslic3r/PrintConfig.cpp:879 +msgid "Verbose G-code" +msgstr "详细的G代码" + +#: src/libslic3r/PrintConfig.cpp:880 +msgid "" +"Enable this to get a commented G-code file, with each line explained by a " +"descriptive text. If you print from SD card, the additional weight of the " +"file could make your firmware slow down." +msgstr "" +"启动该项可获得带注释的G代码文件,每一行都有对应的解释性文字。如果从SD卡打印," +"文件冗余部分可能减缓你的固件运行速度。" + +#: src/libslic3r/PrintConfig.cpp:887 +msgid "G-code flavor" +msgstr "G代码风格" + +#: src/libslic3r/PrintConfig.cpp:888 +msgid "" +"Some G/M-code commands, including temperature control and others, are not " +"universal. Set this option to your printer's firmware to get a compatible " +"output. The \"No extrusion\" flavor prevents Slic3r from exporting any " +"extrusion value at all." +msgstr "" +"一些 G/M 代码的指令,包括温度控制和其他,但不通用。将此项设为打印机的固件来获" +"取兼容性的输出。“无挤出”选项使得Slic3r不输出任何挤出值。" + +#: src/libslic3r/PrintConfig.cpp:911 +msgid "No extrusion" +msgstr "无挤出" + +#: src/libslic3r/PrintConfig.cpp:924 +msgid "High extruder current on filament swap" +msgstr "耗材丝切换时的高挤出机电流" + +#: src/libslic3r/PrintConfig.cpp:925 +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:933 +msgid "" +"This is the acceleration your printer will use for infill. Set zero to " +"disable acceleration control for infill." +msgstr "打印机填充加速度。设为0可禁用填充加速控制。" + +#: src/libslic3r/PrintConfig.cpp:941 +msgid "Combine infill every" +msgstr "每几层联合填充" + +#: src/libslic3r/PrintConfig.cpp:943 +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:946 +msgid "Combine infill every n layers" +msgstr "混合填充每 n 个层" + +#: src/libslic3r/PrintConfig.cpp:952 +msgid "Infill extruder" +msgstr "填充挤出头" + +#: src/libslic3r/PrintConfig.cpp:954 +msgid "The extruder to use when printing infill." +msgstr "打印填充时使用的挤出头。" + +#: src/libslic3r/PrintConfig.cpp:962 +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 " +"nozzle diameter will be used. You may want to use fatter extrudates to speed " +"up the infill and make your parts stronger. If expressed as percentage (for " +"example 90%) it will be computed over layer height." +msgstr "" +"将其设置为非零值, 以设置填充的手动挤出宽度。如果为零, 则如果设置, 将使用默认" +"挤出宽度, 否则将使用 1.125 x 喷嘴直径。你可能想使用更多的挤出物来加速填充, 使" +"你的部件更结实。如果以百分比表示 (例如 90%), 则将在图层高度上计算。" + +#: src/libslic3r/PrintConfig.cpp:971 +msgid "Infill before perimeters" +msgstr "先填充后打印轮廓" + +#: src/libslic3r/PrintConfig.cpp:972 +msgid "" +"This option will switch the print order of perimeters and infill, making the " +"latter first." +msgstr "该选项将打印轮廓和填充的方式对调,使后者提前。" + +#: src/libslic3r/PrintConfig.cpp:977 +msgid "Only infill where needed" +msgstr "仅在需要时填充" + +#: src/libslic3r/PrintConfig.cpp:979 +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 "" +"该选项将把填充限定用于支撑天花板(将充当内部支撑材料的作用)。如果启用,由于" +"多个包含的选项将使G代码生成速度变慢。" + +#: src/libslic3r/PrintConfig.cpp:986 +msgid "Infill/perimeters overlap" +msgstr "填充/轮廓重叠" + +#: src/libslic3r/PrintConfig.cpp:988 +msgid "" +"This setting applies an additional overlap between infill and perimeters for " +"better bonding. Theoretically this shouldn't be needed, but backlash might " +"cause gaps. If expressed as percentage (example: 15%) it is calculated over " +"perimeter extrusion width." +msgstr "" +"使得填充和轮廓间有额外的重叠部分,便于结合。理论上并不需要,但偏移可能会导致" +"间隙。如果表示为百分数(如15%),则以轮廓挤出宽度为基准。" + +#: src/libslic3r/PrintConfig.cpp:999 +msgid "Speed for printing the internal fill. Set to zero for auto." +msgstr "打印内部填充的速度。零为自动设置。" + +#: src/libslic3r/PrintConfig.cpp:1007 +msgid "Inherits profile" +msgstr "继承配置文件" + +#: src/libslic3r/PrintConfig.cpp:1008 +msgid "Name of the profile, from which this profile inherits." +msgstr "此配置文件从中继承的配置文件的名称。" + +#: src/libslic3r/PrintConfig.cpp:1021 +msgid "Interface shells" +msgstr "表面外壳" + +#: src/libslic3r/PrintConfig.cpp:1022 +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:1031 +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 " +"use placeholder variables for all Slic3r settings as well as [layer_num] and " +"[layer_z]." +msgstr "" +"这段G代码在每一层变化后,即Z轴移动后,挤出头移动到第一层的点之前插入。注意除" +"了使用如[layer_num]和[layer_z],也可以使用占位符变量来代替Slic3r的参数。" + +#: src/libslic3r/PrintConfig.cpp:1042 +msgid "Supports remaining times" +msgstr "支撑剩余时间" + +#: src/libslic3r/PrintConfig.cpp:1043 +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. " +"As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 " +"firmware supports M73 Qxx Sxx for the silent mode." +msgstr "" +"以1分钟的间隔发出M73 P[percent printed] R[remaining time in minutes] 进入 G-" +"code , 让固件显示准确的剩余时间。到目前为止, 只有 Prusa i3 MK3 固件识别 M73。" +"此外, i3 MK3 固件支持 M73 Qxx Sxx 的静音模式。" + +#: src/libslic3r/PrintConfig.cpp:1051 +msgid "Supports silent mode" +msgstr "支持静默模式" + +#: src/libslic3r/PrintConfig.cpp:1052 +msgid "Set silent mode for the G-code flavor" +msgstr "为 G-code 风格设置静默模式" + +#: src/libslic3r/PrintConfig.cpp:1075 +msgid "Maximum feedrate %1%" +msgstr "最大进给率 %1%" + +#: src/libslic3r/PrintConfig.cpp:1077 +msgid "Maximum feedrate of the %1% axis" +msgstr "%1% 轴的最大进给率" + +#: src/libslic3r/PrintConfig.cpp:1085 +msgid "Maximum acceleration %1%" +msgstr "最大加速度 %1%" + +#: src/libslic3r/PrintConfig.cpp:1087 +msgid "Maximum acceleration of the %1% axis" +msgstr "%1% 轴的最大加速度" + +#: src/libslic3r/PrintConfig.cpp:1095 +msgid "Maximum jerk %1%" +msgstr "最大抖动 %1%" + +#: src/libslic3r/PrintConfig.cpp:1097 +msgid "Maximum jerk of the %1% axis" +msgstr "%1% 轴的最大抖动" + +#: src/libslic3r/PrintConfig.cpp:1108 src/libslic3r/PrintConfig.cpp:1110 +msgid "Minimum feedrate when extruding" +msgstr "挤出时的最小进给率" + +#: src/libslic3r/PrintConfig.cpp:1119 src/libslic3r/PrintConfig.cpp:1121 +msgid "Minimum travel feedrate" +msgstr "最小移动进给率" + +#: src/libslic3r/PrintConfig.cpp:1130 src/libslic3r/PrintConfig.cpp:1132 +msgid "Maximum acceleration when extruding" +msgstr "挤出时的最大加速度" + +#: src/libslic3r/PrintConfig.cpp:1141 src/libslic3r/PrintConfig.cpp:1143 +msgid "Maximum acceleration when retracting" +msgstr "回缩时的最大加速度" + +#: src/libslic3r/PrintConfig.cpp:1151 src/libslic3r/PrintConfig.cpp:1160 +msgid "Max" +msgstr "最大值" + +#: src/libslic3r/PrintConfig.cpp:1152 +msgid "This setting represents the maximum speed of your fan." +msgstr "该值表示风扇的最大速度。" + +#: src/libslic3r/PrintConfig.cpp:1161 +#, no-c-format +msgid "" +"This is the highest printable layer height for this extruder, used to cap " +"the variable layer height and support layer height. Maximum recommended " +"layer height is 75% of the extrusion width to achieve reasonable inter-layer " +"adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." +msgstr "" +"这是此挤出机的最高可打印层高度, 用于封顶可变图层高度和支撑层高度。建议的最大" +"层高度为挤出宽度的 75%, 以实现合理的层间粘附。如果设置为 0, 图层高度将限制为" +"喷嘴直径的75%。" + +#: src/libslic3r/PrintConfig.cpp:1171 +msgid "Max print speed" +msgstr "最大打印速度" + +#: src/libslic3r/PrintConfig.cpp:1172 +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 "" +"当将其他速度参数设为0时,Slic3r会自动计算最优速度以保证挤出头压力稳定。该试验" +"参数用于设置所允许的最大打印速度。" + +#: src/libslic3r/PrintConfig.cpp:1182 +msgid "" +"This experimental setting is used to set the maximum volumetric speed your " +"extruder supports." +msgstr "该实验参数用于设置你的挤出头所支持的最大体积速度。" + +#: src/libslic3r/PrintConfig.cpp:1191 +msgid "Max volumetric slope positive" +msgstr "最大流量增加率" + +#: src/libslic3r/PrintConfig.cpp:1192 src/libslic3r/PrintConfig.cpp:1203 +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 " +"of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/" +"s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." +msgstr "" +"该实验设置用于限制挤出速率的变化速度。1.8 mm/sm²的值确保从1.8 毫米/(0.45 mm " +"挤出宽度, 0.2 mm 挤出高度, 进给率 20 m) 到 5.4 mm/(进给率 60 m) 的挤出速率变" +"化至少需要2秒。" + +#: src/libslic3r/PrintConfig.cpp:1196 src/libslic3r/PrintConfig.cpp:1207 +msgid "mm³/s²" +msgstr "mm³/s²" + +#: src/libslic3r/PrintConfig.cpp:1202 +msgid "Max volumetric slope negative" +msgstr "最大流量减少率" + +#: src/libslic3r/PrintConfig.cpp:1214 src/libslic3r/PrintConfig.cpp:1223 +msgid "Min" +msgstr "最小值" + +#: src/libslic3r/PrintConfig.cpp:1215 +msgid "This setting represents the minimum PWM your fan needs to work." +msgstr "该参数表示你的风扇工作的最小PWM。" + +#: src/libslic3r/PrintConfig.cpp:1224 +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 "" +"这是此挤出机的最低可打印层高度, 并限制可变图层高度的分辨率。典型值介于 0.05 " +"mm 和 0.1 mm 之间。" + +#: src/libslic3r/PrintConfig.cpp:1232 +msgid "Min print speed" +msgstr "最小打印速度" + +#: src/libslic3r/PrintConfig.cpp:1233 +msgid "Slic3r will not scale speed down below this speed." +msgstr "Slic3r的最小打印速度。" + +#: src/libslic3r/PrintConfig.cpp:1240 +msgid "Minimal filament extrusion length" +msgstr "最小耗材丝挤出长度" + +#: src/libslic3r/PrintConfig.cpp:1241 +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:1250 +msgid "Configuration notes" +msgstr "配置备注" + +#: src/libslic3r/PrintConfig.cpp:1251 +msgid "" +"You can put here your personal notes. This text will be added to the G-code " +"header comments." +msgstr "" +"你可以在这里输入你的个人备注。该段文字内容将被添加到G代码文件开头的注释里。" + +#: src/libslic3r/PrintConfig.cpp:1260 +msgid "Nozzle diameter" +msgstr "喷嘴直径" + +#: src/libslic3r/PrintConfig.cpp:1261 +msgid "" +"This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" +msgstr "这是你的挤出头喷嘴的直径(比如:0.5,0.35等。)" + +#: src/libslic3r/PrintConfig.cpp:1266 +msgid "Host Type" +msgstr "主机类型" + +#: src/libslic3r/PrintConfig.cpp:1267 +msgid "" +"Slic3r can upload G-code files to a printer host. This field must contain " +"the kind of the host." +msgstr "Slic3r 可以将 G-code 文件上载到打印机主机。此字段必须包含主机的类型。" + +#: src/libslic3r/PrintConfig.cpp:1278 +msgid "Only retract when crossing perimeters" +msgstr "仅在越过轮廓时回缩" + +#: src/libslic3r/PrintConfig.cpp:1279 +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:1286 +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:1293 +msgid "Output filename format" +msgstr "输出文件名称格式" + +#: src/libslic3r/PrintConfig.cpp:1294 +msgid "" +"You can use all configuration options as variables inside this template. For " +"example: [layer_height], [fill_density] etc. You can also use [timestamp], " +"[year], [month], [day], [hour], [minute], [second], [version], " +"[input_filename], [input_filename_base]." +msgstr "" +"可以使用所有的配置选项。如: [layer_height], [fill_density] 等。你也可以使用 " +"[timestamp], [year], [month], [day], [hour], [minute], [second], [version], " +"[input_filename], [input_filename_base]。" + +#: src/libslic3r/PrintConfig.cpp:1303 +msgid "Detect bridging perimeters" +msgstr "侦测桥接轮廓" + +#: src/libslic3r/PrintConfig.cpp:1305 +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:1311 +msgid "Filament parking position" +msgstr "耗材丝停车位" + +#: src/libslic3r/PrintConfig.cpp:1312 +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:1320 +msgid "Extra loading distance" +msgstr "额外的装载长度" + +#: src/libslic3r/PrintConfig.cpp:1321 +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 " +"positive, it is loaded further, if negative, the loading move is shorter " +"than unloading. " +msgstr "" +"当设置为零时, 灯丝在装载过程中从停车位置移动的距离与卸载时移回的距离完全相" +"同。当正值时, 它将进一步加载, 如果为负数, 则加载移动比卸载短. " + +#: src/libslic3r/PrintConfig.cpp:1329 src/libslic3r/PrintConfig.cpp:1347 +#: src/libslic3r/PrintConfig.cpp:1359 src/libslic3r/PrintConfig.cpp:1369 +msgid "Perimeters" +msgstr "轮廓" + +#: src/libslic3r/PrintConfig.cpp:1330 +msgid "" +"This is the acceleration your printer will use for perimeters. A high value " +"like 9000 usually gives good results if your hardware is up to the job. Set " +"zero to disable acceleration control for perimeters." +msgstr "" +"打印机将用于打印轮廓的加速度。如果你的硬件性能足够,一个9000这样的高数值通常" +"会给出很好的打印效果。设为0将禁用轮廓加速度控制。" + +#: src/libslic3r/PrintConfig.cpp:1338 +msgid "Perimeter extruder" +msgstr "轮廓挤出头" + +#: src/libslic3r/PrintConfig.cpp:1340 +msgid "" +"The extruder to use when printing perimeters and brim. First extruder is 1." +msgstr "打印轮廓和裙边所使用的挤出头。第一个挤出头是1。" + +#: src/libslic3r/PrintConfig.cpp:1349 +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 " +"left zero, default extrusion width will be used if set, otherwise 1.125 x " +"nozzle diameter will be used. If expressed as percentage (for example 200%) " +"it will be computed over layer height." +msgstr "" +"将此设置为非零值, 以手动设置边界的挤出宽度。您可能需要使用更薄的挤出物来获得" +"更精确的表面。如果为零, 则如果设置, 将使用默认挤出宽度, 否则将使用 1.125 x 喷" +"嘴直径。如果以百分比表示 (例如 200%), 则将在图层高度上计算。" + +#: src/libslic3r/PrintConfig.cpp:1361 +msgid "" +"Speed for perimeters (contours, aka vertical shells). Set to zero for auto." +msgstr "边界的速度 (等高线, 也称为垂直壳)。自动设置为零。" + +#: src/libslic3r/PrintConfig.cpp:1371 +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 " +"surfaces which benefit from a higher number of perimeters if the Extra " +"Perimeters option is enabled." +msgstr "" +"该选项设置每一层生成的轮廓个数。注意,如果”额外轮廓“选项被启动,Slic3r在侦测" +"到斜坡表面时可能会自动增加该数值,因为较多的轮廓有利于斜坡表面的打印。" + +#: src/libslic3r/PrintConfig.cpp:1375 +msgid "(minimum)" +msgstr "(最小)" + +#: src/libslic3r/PrintConfig.cpp:1383 +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. " +"Scripts will be passed the absolute path to the G-code file as the first " +"argument, and they can access the Slic3r config settings by reading " +"environment variables." +msgstr "" +"如果要通过自定义脚本处理输出 G-code , 只需在此处列出它们的绝对路径即可。用分" +"号分隔多个脚本。脚本将作为第一个参数传递到 G-code 文件的绝对路径, 并且它们可" +"以通过读取环境变量访问 Slic3r 配置设置。" + +#: src/libslic3r/PrintConfig.cpp:1395 +msgid "Printer type" +msgstr "打印机类型" + +#: src/libslic3r/PrintConfig.cpp:1396 +msgid "Type of the printer." +msgstr "打印机的类型." + +#: src/libslic3r/PrintConfig.cpp:1401 +msgid "Printer notes" +msgstr "打印机备注" + +#: src/libslic3r/PrintConfig.cpp:1402 +msgid "You can put your notes regarding the printer here." +msgstr "您可以在此处放置有关打印机的备注." + +#: src/libslic3r/PrintConfig.cpp:1410 +msgid "Printer vendor" +msgstr "打印机供应商" + +#: src/libslic3r/PrintConfig.cpp:1411 +msgid "Name of the printer vendor." +msgstr "打印机供应商的名称." + +#: src/libslic3r/PrintConfig.cpp:1416 +msgid "Printer variant" +msgstr "打印机版本" + +#: src/libslic3r/PrintConfig.cpp:1417 +msgid "" +"Name of the printer variant. For example, the printer variants may be " +"differentiated by a nozzle diameter." +msgstr "打印机变体的版本。例如, 打印机版本可以通过喷嘴直径进行区分。" + +#: src/libslic3r/PrintConfig.cpp:1430 +msgid "Raft layers" +msgstr "筏板层" + +#: src/libslic3r/PrintConfig.cpp:1432 +msgid "" +"The object will be raised by this number of layers, and support material " +"will be generated under it." +msgstr "物体将被该数目的层数抬起,而支撑材料将在其下方生成。" + +#: src/libslic3r/PrintConfig.cpp:1440 +msgid "Resolution" +msgstr "分辨率" + +#: src/libslic3r/PrintConfig.cpp:1441 +msgid "" +"Minimum detail resolution, used to simplify the input file for speeding up " +"the slicing job and reducing memory usage. High-resolution models often " +"carry more detail than printers can render. Set to zero to disable any " +"simplification and use full resolution from input." +msgstr "" +"最小细节分辨率,用来简化输入文件,加速切片,减少内存占用。打印机通常很难渲染" +"出高精度模型的细节。设为0则禁用任何简化,完全依照输入文件的精度。" + +#: src/libslic3r/PrintConfig.cpp:1451 +msgid "Minimum travel after retraction" +msgstr "回缩后最小空程" + +#: src/libslic3r/PrintConfig.cpp:1452 +msgid "" +"Retraction is not triggered when travel moves are shorter than this length." +msgstr "当空程短于此长度时不会触发回缩。" + +#: src/libslic3r/PrintConfig.cpp:1458 +msgid "Retract amount before wipe" +msgstr "擦拭前的回缩量" + +#: src/libslic3r/PrintConfig.cpp:1459 +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:1466 +msgid "Retract on layer change" +msgstr "层变化时回缩" + +#: src/libslic3r/PrintConfig.cpp:1467 +msgid "This flag enforces a retraction whenever a Z move is done." +msgstr "该项强制在Z轴移动完成时回缩。" + +#: src/libslic3r/PrintConfig.cpp:1472 src/libslic3r/PrintConfig.cpp:1480 +msgid "Length" +msgstr "长度" + +#: src/libslic3r/PrintConfig.cpp:1473 +msgid "Retraction Length" +msgstr "回缩长度" + +#: src/libslic3r/PrintConfig.cpp:1474 +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:1476 src/libslic3r/PrintConfig.cpp:1485 +msgid "mm (zero to disable)" +msgstr "mm (0禁用)" + +#: src/libslic3r/PrintConfig.cpp:1481 +msgid "Retraction Length (Toolchange)" +msgstr "回缩长度 (工具更换)" + +#: src/libslic3r/PrintConfig.cpp:1482 +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:1490 +msgid "Lift Z" +msgstr "抬高Z" + +#: src/libslic3r/PrintConfig.cpp:1491 +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 "" +"如果设为正值,每当回缩触发时Z轴会快速抬升。当使用多个挤出头时,仅会考虑第一个" +"挤出头的该参数。" + +#: src/libslic3r/PrintConfig.cpp:1498 +msgid "Above Z" +msgstr "在Z上方" + +#: src/libslic3r/PrintConfig.cpp:1499 +msgid "Only lift Z above" +msgstr "仅提升 Z 高于" + +#: src/libslic3r/PrintConfig.cpp:1500 +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 "" +"如果设为正值,仅在指定的绝对Z值上方才会抬高Z。可以调整该参数,用于跳过在前几" +"层时跳过Z抬高的步骤。" + +#: src/libslic3r/PrintConfig.cpp:1507 +msgid "Below Z" +msgstr "Z下方" + +#: src/libslic3r/PrintConfig.cpp:1508 +msgid "Only lift Z below" +msgstr "仅提升 Z 低于" + +#: src/libslic3r/PrintConfig.cpp:1509 +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 "" +"如果设为正值,仅在指定的绝对Z值选房可以调整该参数,用于将抬高Z的动作限制在前" +"几层时。" + +#: src/libslic3r/PrintConfig.cpp:1517 src/libslic3r/PrintConfig.cpp:1525 +msgid "Extra length on restart" +msgstr "重启时额外长度" + +#: src/libslic3r/PrintConfig.cpp:1518 +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:1526 +msgid "" +"When the retraction is compensated after changing tool, the extruder will " +"push this additional amount of filament." +msgstr "当在切换工具后回缩被补偿时,挤出头会基础额外的指定量丝料。" + +#: src/libslic3r/PrintConfig.cpp:1533 src/libslic3r/PrintConfig.cpp:1534 +msgid "Retraction Speed" +msgstr "回抽速度" + +#: src/libslic3r/PrintConfig.cpp:1535 +msgid "The speed for retractions (it only applies to the extruder motor)." +msgstr "回缩速度 (仅适用于挤出机电机)." + +#: src/libslic3r/PrintConfig.cpp:1541 src/libslic3r/PrintConfig.cpp:1542 +msgid "Deretraction Speed" +msgstr "减速速度" + +#: src/libslic3r/PrintConfig.cpp:1543 +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:1550 +msgid "Seam position" +msgstr "接合位置" + +#: src/libslic3r/PrintConfig.cpp:1552 +msgid "Position of perimeters starting points." +msgstr "轮廓开始点的位置。" + +#: src/libslic3r/PrintConfig.cpp:1558 +msgid "Random" +msgstr "随机" + +#: src/libslic3r/PrintConfig.cpp:1559 +msgid "Nearest" +msgstr "最近的" + +#: src/libslic3r/PrintConfig.cpp:1560 +msgid "Aligned" +msgstr "对齐" + +#: src/libslic3r/PrintConfig.cpp:1568 +msgid "Direction" +msgstr "方向" + +#: src/libslic3r/PrintConfig.cpp:1570 +msgid "Preferred direction of the seam" +msgstr "接缝的首选方向" + +#: src/libslic3r/PrintConfig.cpp:1571 +msgid "Seam preferred direction" +msgstr "接缝首选方向" + +#: src/libslic3r/PrintConfig.cpp:1578 +msgid "Jitter" +msgstr "Jitter" + +#: src/libslic3r/PrintConfig.cpp:1580 +msgid "Seam preferred direction jitter" +msgstr "接缝首选方向抖动" + +#: src/libslic3r/PrintConfig.cpp:1581 +msgid "Preferred direction of the seam - jitter" +msgstr "接缝抖动的首选方向" + +#: src/libslic3r/PrintConfig.cpp:1591 +msgid "USB/serial port for printer connection." +msgstr "用于打印机连接的USB/串口。" + +#: src/libslic3r/PrintConfig.cpp:1598 +msgid "Serial port speed" +msgstr "串行端口速度" + +#: src/libslic3r/PrintConfig.cpp:1599 +msgid "Speed (baud) of USB/serial port for printer connection." +msgstr "用于打印机连接的USB/串口速度(波特率)。" + +#: src/libslic3r/PrintConfig.cpp:1608 +msgid "Distance from object" +msgstr "离物体的距离" + +#: src/libslic3r/PrintConfig.cpp:1609 +msgid "" +"Distance between skirt and object(s). Set this to zero to attach the skirt " +"to the object(s) and get a brim for better adhesion." +msgstr "环边与物体间的距离。设为0,则使环边紧贴物体,可获得裙边利于粘附。" + +#: src/libslic3r/PrintConfig.cpp:1616 +msgid "Skirt height" +msgstr "环边高度" + +#: src/libslic3r/PrintConfig.cpp:1617 +msgid "" +"Height of skirt expressed in layers. Set this to a tall value to use skirt " +"as a shield against drafts." +msgstr "图层中表示的环边高度。设为一个较高值,可将环边用作。" + +#: src/libslic3r/PrintConfig.cpp:1624 +msgid "Loops (minimum)" +msgstr "圈数(最小)" + +#: src/libslic3r/PrintConfig.cpp:1625 +msgid "Skirt Loops" +msgstr "裙边圈数" + +#: src/libslic3r/PrintConfig.cpp:1626 +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 "" +"环边的圈数。如果设置了最小挤出长度,那么圈数必须比这里设置的值要大。设为0则完" +"全禁用环边。" + +#: src/libslic3r/PrintConfig.cpp:1634 +msgid "Slow down if layer print time is below" +msgstr "如果图层打印时间低于该值则减速" + +#: src/libslic3r/PrintConfig.cpp:1635 +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:1645 +msgid "Small perimeters" +msgstr "小边界" + +#: src/libslic3r/PrintConfig.cpp:1647 +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 "" +"此单独设置将影响半径为 < = 6.5 mm (通常为孔) 的边界的速度。如果以百分比表示 " +"(例如: 80%), 则将根据上面的边界速度设置进行计算。自动设置为零。" + +#: src/libslic3r/PrintConfig.cpp:1657 +msgid "Solid infill threshold area" +msgstr "可靠填充阈值区域" + +#: src/libslic3r/PrintConfig.cpp:1659 +msgid "" +"Force solid infill for regions having a smaller area than the specified " +"threshold." +msgstr "对于比指定阈值小的区域强制进行可靠填充。" + +#: src/libslic3r/PrintConfig.cpp:1660 +msgid "mm²" +msgstr "mm²" + +#: src/libslic3r/PrintConfig.cpp:1666 +msgid "Solid infill extruder" +msgstr "可靠填充挤出头" + +#: src/libslic3r/PrintConfig.cpp:1668 +msgid "The extruder to use when printing solid infill." +msgstr "当打印可靠填充时使用的挤出头。" + +#: src/libslic3r/PrintConfig.cpp:1674 +msgid "Solid infill every" +msgstr "每几层可靠填充" + +#: src/libslic3r/PrintConfig.cpp:1676 +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 " +"will automatically choose the maximum possible number of layers to combine " +"according to nozzle diameter and layer height." +msgstr "" +"该功能使得每指定数目层强制进行一次可靠填充。设为0禁用该功能。可以设为任意值" +"(如9999);Slic3r会根据喷嘴直径和层高来自动选择图层的最大可能个数。" + +#: src/libslic3r/PrintConfig.cpp:1688 +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, " +"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " +"(for example 90%) it will be computed over layer height." +msgstr "" +"将其设置为非零值, 为实体曲面的填充设置手动挤出宽度。如果为零, 则如果设置, 将" +"使用默认挤出宽度, 否则将使用 1.125 x 喷嘴直径。如果以百分比表示 (例如 90%)它" +"将被计算在层的高度。" + +#: src/libslic3r/PrintConfig.cpp:1698 +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 "" +"打印实心区域的速度 (顶部/内部水平外壳)。这可以用百分比表示 (例如: 80%)超过上" +"面的默认填充速度。自动设置为零。" + +#: src/libslic3r/PrintConfig.cpp:1710 +msgid "Number of solid layers to generate on top and bottom surfaces." +msgstr "在顶部和底部表面生成的可靠层数。" + +#: src/libslic3r/PrintConfig.cpp:1716 +msgid "Spiral vase" +msgstr "螺旋式容器" + +#: src/libslic3r/PrintConfig.cpp:1717 +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, " +"no infill, no top solid layers and no support material. You can still set " +"any number of bottom solid layers as well as skirt/brim loops. It won't work " +"when printing more than an object." +msgstr "" +"该功能使得在打印单壁物体时会逐渐抬升Z,以便移除可见的缝合点。该选项要求单轮" +"廓,无填充,无顶部可靠层,无支撑。仍可以设置环边、裙边圈数,和底部可靠层。但" +"在打印多个物体时不适用。" + +#: src/libslic3r/PrintConfig.cpp:1725 +msgid "Temperature variation" +msgstr "温度变化" + +#: src/libslic3r/PrintConfig.cpp:1726 +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:1736 +msgid "" +"This start procedure is inserted at the beginning, after bed has reached the " +"target temperature and extruder just started heating, and before extruder " +"has finished heating. If Slic3r detects M104 or M190 in your custom codes, " +"such commands will not be prepended automatically so you're free to " +"customize the order of heating commands and other custom actions. Note that " +"you can use placeholder variables for all Slic3r settings, so you can put a " +"\"M109 S[first_layer_temperature]\" command wherever you want." +msgstr "" +"此启动过程在开始时插入, 床层达到目标温度后, 挤出机才开始加热, 然后挤出机才完" +"成加热。如果 Slic3r 在自定义代码中检测到 M104 或 M190, 则不会自动前置此类命" +"令, 因此您可以自由自定义加热命令和其他自定义操作的顺序。请注意, 您可以对所有 " +"Slic3r 设置使用占位符变量, 因此您可以将 \"M109 S[first_layer_temperature]\" " +"命令放在任何需要的地方。" + +#: src/libslic3r/PrintConfig.cpp:1751 +msgid "" +"This start procedure is inserted at the beginning, after any printer start " +"gcode. This is used to override settings for a specific filament. If Slic3r " +"detects M104, M109, M140 or M190 in your custom codes, such commands will " +"not be prepended automatically so you're free to customize the order of " +"heating commands and other custom actions. Note that you can use placeholder " +"variables for all Slic3r settings, so you can put a \"M109 " +"S[first_layer_temperature]\" command wherever you want. If you have multiple " +"extruders, the gcode is processed in extruder order." +msgstr "" +"该段代码放在G代码开头,在所有打印机起始G代码后插入。用于覆盖指定材料的参数。" +"该段代码放在G代码开头,在热床达到目标温度、挤出头开始加热后,挤出头完成加热前" +"插入。如果其中不包含有M104, M109, M140 或 M190,这段指令就会在Slic3r自动放置" +"的M指令之后;否则Slic3r将不会自动生成M指令,这样你可以自由定义加热命令和其他" +"自定义动作的顺序。注意可以使用占位符变量替代所有Slic3r参数,所以你可以把一" +"个“M109 S[ first_layer_temperature ]”命令放在任意处。如果你有多个挤出头,G代" +"码将按挤出头顺序处理。" + +#: src/libslic3r/PrintConfig.cpp:1766 +msgid "Single Extruder Multi Material" +msgstr "单挤出机多材料" + +#: src/libslic3r/PrintConfig.cpp:1767 +msgid "The printer multiplexes filaments into a single hot end." +msgstr "打印机将耗材丝多路复用到一个热端。" + +#: src/libslic3r/PrintConfig.cpp:1772 +msgid "Prime all printing extruders" +msgstr "装填所有印刷挤出机" + +#: src/libslic3r/PrintConfig.cpp:1773 +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:1778 +msgid "Generate support material" +msgstr "生成支撑材料" + +#: src/libslic3r/PrintConfig.cpp:1780 +msgid "Enable support material generation." +msgstr "启用支撑材料生成功能。" + +#: src/libslic3r/PrintConfig.cpp:1784 +msgid "Auto generated supports" +msgstr "自动生成支撑" + +#: src/libslic3r/PrintConfig.cpp:1786 +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:1792 +msgid "XY separation between an object and its support" +msgstr "对象与其支撑之间的 XY 分离距离" + +#: src/libslic3r/PrintConfig.cpp:1794 +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 "" +"对象与其支撑之间的 xy 分离距离。如果表示为百分比 (例如 50%), 则将根据外部外围" +"宽度计算。" + +#: src/libslic3r/PrintConfig.cpp:1804 +msgid "Pattern angle" +msgstr "样式角度" + +#: src/libslic3r/PrintConfig.cpp:1806 +msgid "" +"Use this setting to rotate the support material pattern on the horizontal " +"plane." +msgstr "使用该参数对支撑材料的样子在水平面上进行旋转。" + +#: src/libslic3r/PrintConfig.cpp:1816 src/libslic3r/PrintConfig.cpp:2421 +msgid "" +"Only create support if it lies on a build plate. Don't create support on a " +"print." +msgstr "仅在热床上生成支撑,不在打印出来的物体上生成。" + +#: src/libslic3r/PrintConfig.cpp:1822 +msgid "Contact Z distance" +msgstr "接触Z值" + +#: src/libslic3r/PrintConfig.cpp:1824 +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 "" +"物体和支撑材料平面之间的垂直距离。设为0,则表面上第一层不会被当做桥来处理。" + +#: src/libslic3r/PrintConfig.cpp:1831 +msgid "soluble" +msgstr "可溶" + +#: src/libslic3r/PrintConfig.cpp:1832 +msgid "detachable" +msgstr "可拆卸" + +#: src/libslic3r/PrintConfig.cpp:1837 +msgid "Enforce support for the first" +msgstr "前几层增强支撑" + +#: src/libslic3r/PrintConfig.cpp:1839 +msgid "" +"Generate support material for the specified number of layers counting from " +"bottom, regardless of whether normal support material is enabled or not and " +"regardless of any angle threshold. This is useful for getting more adhesion " +"of objects having a very thin or poor footprint on the build plate." +msgstr "" +"从底部开始,对指定数目的图层生成支撑材料,无论正常的支撑材料是否启用,也不管" +"任何角度阈值。适用于在热床上脚太细、站不住的物件,便于更好的粘附。" + +#: src/libslic3r/PrintConfig.cpp:1844 +msgid "Enforce support for the first n layers" +msgstr "强制支撑前 n 层" + +#: src/libslic3r/PrintConfig.cpp:1850 +msgid "Support material/raft/skirt extruder" +msgstr "支撑材料/筏/环边挤出头" + +#: src/libslic3r/PrintConfig.cpp:1852 +msgid "" +"The extruder to use when printing support material, raft and skirt (1+, 0 to " +"use the current extruder to minimize tool changes)." +msgstr "" +"打印支撑材料、基座和裙边时使用的挤出机 (1+, 0 用于使用当前挤出机以最大限度地" +"减少工具切换)." + +#: src/libslic3r/PrintConfig.cpp:1861 +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, " +"otherwise nozzle diameter will be used. If expressed as percentage (for " +"example 90%) it will be computed over layer height." +msgstr "" +"将其设置为非零值, 以设置支持材料的手动挤出宽度。如果为零, 则如果设置, 将使用" +"默认的挤出宽度, 否则将使用喷嘴直径。如果以百分比表示 (例如 90%)它将根据层的高" +"度计算。" + +#: src/libslic3r/PrintConfig.cpp:1869 +msgid "Interface loops" +msgstr "接触面圈数" + +#: src/libslic3r/PrintConfig.cpp:1871 +msgid "" +"Cover the top contact layer of the supports with loops. Disabled by default." +msgstr "用循环覆盖支撑物的顶部接触层。默认情况下禁用。" + +#: src/libslic3r/PrintConfig.cpp:1876 +msgid "Support material/raft interface extruder" +msgstr "支撑材料/筏表面挤出头" + +#: src/libslic3r/PrintConfig.cpp:1878 +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 "" +"打印支撑材料界面时要使用的挤出机 (1+, 0 用于使用当前挤出机以最大限度地减少工" +"具切换)。这也会影响基座." + +#: src/libslic3r/PrintConfig.cpp:1885 +msgid "Interface layers" +msgstr "表面层数" + +#: src/libslic3r/PrintConfig.cpp:1887 +msgid "" +"Number of interface layers to insert between the object(s) and support " +"material." +msgstr "在物体和支撑材料中间插入的表面层数。" + +#: src/libslic3r/PrintConfig.cpp:1894 +msgid "Interface pattern spacing" +msgstr "表面样式间隔" + +#: src/libslic3r/PrintConfig.cpp:1896 +msgid "Spacing between interface lines. Set zero to get a solid interface." +msgstr "表面直线间的间隔。设为0获得可靠表面。" + +#: src/libslic3r/PrintConfig.cpp:1905 +msgid "" +"Speed for printing support material interface layers. If expressed as " +"percentage (for example 50%) it will be calculated over support material " +"speed." +msgstr "" +"打印支撑材料表面层的速度。若表示为百分数(如50%),则以支撑材料速度为基准计" +"算。" + +#: src/libslic3r/PrintConfig.cpp:1914 +msgid "Pattern" +msgstr "样式" + +#: src/libslic3r/PrintConfig.cpp:1916 +msgid "Pattern used to generate support material." +msgstr "生成支撑材料的样式。" + +#: src/libslic3r/PrintConfig.cpp:1922 +msgid "Rectilinear grid" +msgstr "直线网格" + +#: src/libslic3r/PrintConfig.cpp:1928 +msgid "Pattern spacing" +msgstr "样式间隔" + +#: src/libslic3r/PrintConfig.cpp:1930 +msgid "Spacing between support material lines." +msgstr "支撑材料直线间的间隙。" + +#: src/libslic3r/PrintConfig.cpp:1939 +msgid "Speed for printing support material." +msgstr "打印支撑材料的速度。" + +#: src/libslic3r/PrintConfig.cpp:1946 +msgid "Synchronize with object layers" +msgstr "与对象图层同步" + +#: src/libslic3r/PrintConfig.cpp:1948 +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:1954 +msgid "Overhang threshold" +msgstr "悬空阈值" + +#: src/libslic3r/PrintConfig.cpp:1956 +msgid "" +"Support material will not be generated for overhangs whose slope angle (90° " +"= vertical) is above the given threshold. In other words, this value " +"represent the most horizontal slope (measured from the horizontal plane) " +"that you can print without support material. Set to zero for automatic " +"detection (recommended)." +msgstr "" +"对于坡度角度 (90° = 垂直) 高于给定阈值的悬空部分, 将不会生成支撑材料。换句话" +"说, 此值表示在没有支撑材料的情况下可以打印的最水平坡度 (从水平面测量)。设置为" +"零, 用于自动检测 (推荐)。" + +#: src/libslic3r/PrintConfig.cpp:1968 +msgid "With sheath around the support" +msgstr "用护套围绕支撑" + +#: src/libslic3r/PrintConfig.cpp:1970 +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:1977 +msgid "" +"Extruder temperature for layers after the first one. Set this to zero to " +"disable temperature control commands in the output." +msgstr "第一层之后的挤出头温度。设为0以在输出文件中禁用温度控制指令。" + +#: src/libslic3r/PrintConfig.cpp:1979 +msgid "Temperature" +msgstr "温度" + +#: src/libslic3r/PrintConfig.cpp:1985 +msgid "Detect thin walls" +msgstr "检测薄壁" + +#: src/libslic3r/PrintConfig.cpp:1987 +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:1993 +msgid "Threads" +msgstr "线程" + +#: src/libslic3r/PrintConfig.cpp:1994 +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:2006 +msgid "" +"This custom code is inserted right before every extruder change. Note that " +"you can use placeholder variables for all Slic3r settings as well as " +"[previous_extruder] and [next_extruder]." +msgstr "" +"该段自定义代码在每次挤出头切换前插入。注意可以使用占位符变量代替Slic3r的所有" +"参数,如 [previous_extruder] 和 [next_extruder]。" + +#: src/libslic3r/PrintConfig.cpp:2018 +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 " +"regions and get a smoother finish. If left zero, default extrusion width " +"will be used if set, otherwise nozzle diameter will be used. If expressed as " +"percentage (for example 90%) it will be computed over layer height." +msgstr "" +"将其设置为非零值, 为顶部曲面的填充设置手动挤出宽度。您可能需要使用更薄的挤出" +"物来填充所有狭窄的区域, 并获得更平滑的完成。如果为零, 则如果设置, 将使用默认" +"的挤出宽度, 否则将使用喷嘴直径。如果以百分比表示 (例如 90%)它将被计算在层的高" +"度。" + +#: src/libslic3r/PrintConfig.cpp:2029 +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 " +"slow down this to get a nicer surface finish. This can be expressed as a " +"percentage (for example: 80%) over the solid infill speed above. Set to zero " +"for auto." +msgstr "" +"打印顶部实体图层的速度 (它仅适用于最上面的外部图层, 而不适用于其内部实体图" +"层)。你可能想放慢速度, 以获得更好的表面光洁度。这可以用百分比表示 (例如: 80%)" +"以上的固体填充速度。自动设置为零。" + +#: src/libslic3r/PrintConfig.cpp:2043 +msgid "Number of solid layers to generate on top surfaces." +msgstr "在顶部表面上生成的可靠层数。" + +#: src/libslic3r/PrintConfig.cpp:2044 +msgid "Top solid layers" +msgstr "顶部实心层" + +#: src/libslic3r/PrintConfig.cpp:2050 +msgid "Speed for travel moves (jumps between distant extrusion points)." +msgstr "空程移动的速度(从一个挤出点结束调到另一个挤出点开始)。" + +#: src/libslic3r/PrintConfig.cpp:2058 +msgid "Use firmware retraction" +msgstr "使用固件回缩" + +#: src/libslic3r/PrintConfig.cpp:2059 +msgid "" +"This experimental setting uses G10 and G11 commands to have the firmware " +"handle the retraction. This is only supported in recent Marlin." +msgstr "" +"该试验参数使用G10和G11指令来使固件处理回缩。仅在最新的Marlin中支持该功能。" + +#: src/libslic3r/PrintConfig.cpp:2065 +msgid "Use relative E distances" +msgstr "使用相对E距离" + +#: src/libslic3r/PrintConfig.cpp:2066 +msgid "" +"If your firmware requires relative E values, check this, otherwise leave it " +"unchecked. Most firmwares use absolute values." +msgstr "如果固件需要相对E值,勾选此项,否则不要勾选。大部分固件使用绝对值。" + +#: src/libslic3r/PrintConfig.cpp:2072 +msgid "Use volumetric E" +msgstr "使用体积E" + +#: src/libslic3r/PrintConfig.cpp:2073 +msgid "" +"This experimental setting uses outputs the E values in cubic millimeters " +"instead of linear millimeters. If your firmware doesn't already know " +"filament diameter(s), you can put commands like 'M200 D[filament_diameter_0] " +"T0' in your start G-code in order to turn volumetric mode on and use the " +"filament diameter associated to the filament selected in Slic3r. This is " +"only supported in recent Marlin." +msgstr "" +"该试验参数在E值中使用立方米为单位,而非毫米。如果固件不知道丝料直径,你可以在" +"起始G代码中输入如'M200 D[filament_diameter_0] T0' 以开启体积模式,并使用在" +"Slic3r中已选的丝料直径。仅在最新Marlin中支持该功能。" + +#: src/libslic3r/PrintConfig.cpp:2083 +msgid "Enable variable layer height feature" +msgstr "启用可变图层高度功能" + +#: src/libslic3r/PrintConfig.cpp:2084 +msgid "" +"Some printers or printer setups may have difficulties printing with a " +"variable layer height. Enabled by default." +msgstr "" +"某些打印机或打印机设置可能难以使用可变图层高度进行打印。默认情况下启用。" + +#: src/libslic3r/PrintConfig.cpp:2090 +msgid "Wipe while retracting" +msgstr "回缩时擦拭" + +#: src/libslic3r/PrintConfig.cpp:2091 +msgid "" +"This flag will move the nozzle while retracting to minimize the possible " +"blob on leaky extruders." +msgstr "在回缩时移动喷嘴以避免挤出头滴漏。" + +#: src/libslic3r/PrintConfig.cpp:2098 +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:2104 +msgid "Purging volumes - load/unload volumes" +msgstr "清除量-加载/卸载卷" + +#: src/libslic3r/PrintConfig.cpp:2105 +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:2111 +msgid "Purging volumes - matrix" +msgstr "清除量-矩阵" + +#: src/libslic3r/PrintConfig.cpp:2112 +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:2121 +msgid "Position X" +msgstr "横向位置X" + +#: src/libslic3r/PrintConfig.cpp:2122 +msgid "X coordinate of the left front corner of a wipe tower" +msgstr "擦料塔左前角的 X 坐标" + +#: src/libslic3r/PrintConfig.cpp:2128 +msgid "Position Y" +msgstr "纵向位置Y" + +#: src/libslic3r/PrintConfig.cpp:2129 +msgid "Y coordinate of the left front corner of a wipe tower" +msgstr "擦拭塔左前角的 Y 坐标" + +#: src/libslic3r/PrintConfig.cpp:2136 +msgid "Width of a wipe tower" +msgstr "擦料塔的宽度" + +#: src/libslic3r/PrintConfig.cpp:2142 +msgid "Wipe tower rotation angle" +msgstr "擦料塔旋转角度" + +#: src/libslic3r/PrintConfig.cpp:2143 +msgid "Wipe tower rotation angle with respect to x-axis " +msgstr "擦料塔相对于 x 轴的旋转角度 " + +#: src/libslic3r/PrintConfig.cpp:2144 src/libslic3r/PrintConfig.cpp:2565 +msgid "degrees" +msgstr "度" + +#: src/libslic3r/PrintConfig.cpp:2150 +msgid "Wipe into this object's infill" +msgstr "擦入此物体的填充" + +#: src/libslic3r/PrintConfig.cpp:2151 +msgid "" +"Purging after toolchange will 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:2158 +msgid "Wipe into this object" +msgstr "擦入此物体的填充" + +#: src/libslic3r/PrintConfig.cpp:2159 +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:2165 +msgid "Maximal bridging distance" +msgstr "最大桥接距离" + +#: src/libslic3r/PrintConfig.cpp:2166 +msgid "Maximal distance between supports on sparse infill sections. " +msgstr "稀疏填充部分上的支撑之间的最大距离. " + +#: src/libslic3r/PrintConfig.cpp:2172 +msgid "XY Size Compensation" +msgstr "XY尺寸补偿" + +#: src/libslic3r/PrintConfig.cpp:2174 +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:2182 +msgid "Z offset" +msgstr "Z补偿" + +#: src/libslic3r/PrintConfig.cpp:2183 +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 " +"example, if your endstop zero actually leaves the nozzle 0.3mm far from the " +"print bed, set this to -0.3 (or fix your endstop)." +msgstr "" +"在输出G代码中,所有Z坐标将在原基础上增大(或减少)该数值。用来对糟糕的Z终点挡" +"板位置进行补偿,如果你的终点挡板为零时,喷嘴离打印热床还有0.3毫米,将该值设" +"为-0.3(或者调整你的终点挡板)。" + +#: src/libslic3r/PrintConfig.cpp:2200 +msgid "Display width" +msgstr "显示宽度" + +#: src/libslic3r/PrintConfig.cpp:2201 +msgid "Width of the display" +msgstr "显示宽度" + +#: src/libslic3r/PrintConfig.cpp:2206 +msgid "Display height" +msgstr "显示高度" + +#: src/libslic3r/PrintConfig.cpp:2207 +msgid "Height of the display" +msgstr "显示高度" + +#: src/libslic3r/PrintConfig.cpp:2212 +msgid "Number of pixels in" +msgstr "像素点的数量" + +#: src/libslic3r/PrintConfig.cpp:2214 +msgid "Number of pixels in X" +msgstr "X 中的像素数" + +#: src/libslic3r/PrintConfig.cpp:2220 +msgid "Number of pixels in Y" +msgstr "Y 中的像素数" + +#: src/libslic3r/PrintConfig.cpp:2225 +msgid "Display orientation" +msgstr "显示方向" + +#: src/libslic3r/PrintConfig.cpp:2226 +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 "" +"在 SLA 打印机内设置实际的 LCD 显示方向。人像模式将翻转显示宽度和高度参数的含" +"义, 输出图像将旋转90度。" + +#: src/libslic3r/PrintConfig.cpp:2232 +msgid "Landscape" +msgstr "景观" + +#: src/libslic3r/PrintConfig.cpp:2233 +msgid "Portrait" +msgstr "肖像" + +#: src/libslic3r/PrintConfig.cpp:2238 +msgid "Fast" +msgstr "快" + +#: src/libslic3r/PrintConfig.cpp:2239 +msgid "Fast tilt" +msgstr "快速倾斜" + +#: src/libslic3r/PrintConfig.cpp:2240 +msgid "Time of the fast tilt" +msgstr "快速倾斜的时间" + +#: src/libslic3r/PrintConfig.cpp:2247 +msgid "Slow" +msgstr "慢" + +#: src/libslic3r/PrintConfig.cpp:2248 +msgid "Slow tilt" +msgstr "缓慢倾斜" + +#: src/libslic3r/PrintConfig.cpp:2249 +msgid "Time of the slow tilt" +msgstr "缓慢倾斜的时间" + +#: src/libslic3r/PrintConfig.cpp:2256 +msgid "Area fill" +msgstr "区域填充" + +#: src/libslic3r/PrintConfig.cpp:2257 +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 "" +"床面积的百分比。\n" +"如果打印区域超过指定的值,\n" +"然后一个缓慢的倾斜将被使用, 否则-一个快速倾斜" + +#: src/libslic3r/PrintConfig.cpp:2264 src/libslic3r/PrintConfig.cpp:2265 +#: src/libslic3r/PrintConfig.cpp:2266 +msgid "Printer scaling correction" +msgstr "打印机缩放校正" + +#: src/libslic3r/PrintConfig.cpp:2272 src/libslic3r/PrintConfig.cpp:2273 +msgid "Printer absolute correction" +msgstr "打印机绝对校正" + +#: src/libslic3r/PrintConfig.cpp:2274 +msgid "" +"Will inflate or deflate the sliced 2D polygons according to the sign of the " +"correction." +msgstr "将根据校正的符号对切片的2D 多边形进行放大或收缩。" + +#: src/libslic3r/PrintConfig.cpp:2280 src/libslic3r/PrintConfig.cpp:2281 +msgid "Printer gamma correction" +msgstr "打印机伽玛校正" + +#: src/libslic3r/PrintConfig.cpp:2282 +msgid "This will apply a gamm correction to the rasterized 2D polygons." +msgstr "这将对栅格化的2D 多边形应用伽玛校正。" + +#: src/libslic3r/PrintConfig.cpp:2291 src/libslic3r/PrintConfig.cpp:2292 +msgid "Initial layer height" +msgstr "初始图层高度" + +#: src/libslic3r/PrintConfig.cpp:2298 +msgid "Faded layers" +msgstr "淡入淡出的图层" + +#: src/libslic3r/PrintConfig.cpp:2299 +msgid "" +"Number of the layers needed for the exposure time fade from initial exposure " +"time to the exposure time" +msgstr "曝光时间所需的层数从最初的曝光时间消失到曝光时间" + +#: src/libslic3r/PrintConfig.cpp:2306 src/libslic3r/PrintConfig.cpp:2307 +msgid "Exposure time" +msgstr "曝光时间" + +#: src/libslic3r/PrintConfig.cpp:2313 src/libslic3r/PrintConfig.cpp:2314 +msgid "Initial exposure time" +msgstr "初始曝光时间" + +#: src/libslic3r/PrintConfig.cpp:2320 src/libslic3r/PrintConfig.cpp:2321 +msgid "Correction for expansion" +msgstr "扩展的更正" + +#: src/libslic3r/PrintConfig.cpp:2327 +msgid "SLA print material notes" +msgstr "SLA 打印材料注释" + +#: src/libslic3r/PrintConfig.cpp:2328 +msgid "You can put your notes regarding the SLA print material here." +msgstr "您可以在此处放置有关 sla 打印材料的注释." + +#: src/libslic3r/PrintConfig.cpp:2336 src/libslic3r/PrintConfig.cpp:2347 +msgid "Default SLA material profile" +msgstr "默认 SLA 材料配置文件" + +#: src/libslic3r/PrintConfig.cpp:2358 +msgid "Generate supports" +msgstr "生成支撑" + +#: src/libslic3r/PrintConfig.cpp:2360 +msgid "Generate supports for the models" +msgstr "生成模型的支撑" + +#: src/libslic3r/PrintConfig.cpp:2365 +msgid "Support head front diameter" +msgstr "支撑头前径" + +#: src/libslic3r/PrintConfig.cpp:2367 +msgid "Diameter of the pointing side of the head" +msgstr "头部指向侧的直径" + +#: src/libslic3r/PrintConfig.cpp:2374 +msgid "Support head penetration" +msgstr "支持头部渗透" + +#: src/libslic3r/PrintConfig.cpp:2376 +msgid "How much the pinhead has to penetrate the model surface" +msgstr "针头穿透模型表面的程度" + +#: src/libslic3r/PrintConfig.cpp:2383 +msgid "Support head width" +msgstr "支撑头部宽度" + +#: src/libslic3r/PrintConfig.cpp:2385 +msgid "Width from the back sphere center to the front sphere center" +msgstr "从后球体中心到前球体中心的宽度" + +#: src/libslic3r/PrintConfig.cpp:2393 +msgid "Support pillar diameter" +msgstr "支撑柱直径" + +#: src/libslic3r/PrintConfig.cpp:2395 +msgid "Diameter in mm of the support pillars" +msgstr "支撑柱直径 (毫米)" + +#: src/libslic3r/PrintConfig.cpp:2403 +msgid "Support pillar connection mode" +msgstr "支持支柱连接模式" + +#: src/libslic3r/PrintConfig.cpp:2404 +msgid "" +"Controls the bridge type between two neigboring 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:2412 +msgid "Zig-Zag" +msgstr "锯齿形" + +#: src/libslic3r/PrintConfig.cpp:2413 +msgid "Cross" +msgstr "交叉" + +#: src/libslic3r/PrintConfig.cpp:2414 +msgid "Dynamic" +msgstr "动态" + +#: src/libslic3r/PrintConfig.cpp:2426 +msgid "Pillar widening factor" +msgstr "支柱加宽系数" + +#: src/libslic3r/PrintConfig.cpp:2428 +msgid "" +"Merging bridges or pillars into another pillars can increase the radius. " +"Zero means no increase, one means full increase." +msgstr "" +"将桥梁或柱子合并到另一个柱子中可以增加半径。零意味着没有增加,1意味着全增加。" + +#: src/libslic3r/PrintConfig.cpp:2437 +msgid "Support base diameter" +msgstr "支撑底座直径" + +#: src/libslic3r/PrintConfig.cpp:2439 +msgid "Diameter in mm of the pillar base" +msgstr "柱底座直径 (毫米)" + +#: src/libslic3r/PrintConfig.cpp:2447 +msgid "Support base height" +msgstr "支撑基座高度" + +#: src/libslic3r/PrintConfig.cpp:2449 +msgid "The height of the pillar base cone" +msgstr "柱基锥的高度" + +#: src/libslic3r/PrintConfig.cpp:2456 +msgid "Critical angle" +msgstr "临界角度" + +#: src/libslic3r/PrintConfig.cpp:2458 +msgid "The default angle for connecting support sticks and junctions." +msgstr "连接支撑杆和连接点的默认角度。" + +#: src/libslic3r/PrintConfig.cpp:2466 +msgid "Max bridge length" +msgstr "最大桥长" + +#: src/libslic3r/PrintConfig.cpp:2468 +msgid "The max length of a bridge" +msgstr "桥的最大长度" + +#: src/libslic3r/PrintConfig.cpp:2475 +msgid "Max pillar linking distance" +msgstr "最大柱连接距离" + +#: src/libslic3r/PrintConfig.cpp:2477 +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:2485 +msgid "Object elevation" +msgstr "对象高程" + +#: src/libslic3r/PrintConfig.cpp:2487 +msgid "How much the supports should lift up the supported object." +msgstr "支撑提升被支撑的对象的高度." + +#: src/libslic3r/PrintConfig.cpp:2495 +msgid "Support points density" +msgstr "支撑点密度" + +#: src/libslic3r/PrintConfig.cpp:2497 +msgid "This is a relative measure of support points density." +msgstr "这是支持点密度的相对度量。" + +#: src/libslic3r/PrintConfig.cpp:2503 +msgid "Minimal distance of the support points" +msgstr "支撑点的最小距离" + +#: src/libslic3r/PrintConfig.cpp:2505 +msgid "No support points will be placed closer than this threshold." +msgstr "没有任何支助点将被放置在比这一阈值更近的地方。" + +#: src/libslic3r/PrintConfig.cpp:2511 +msgid "Use pad" +msgstr "使用垫" + +#: src/libslic3r/PrintConfig.cpp:2513 +msgid "Add a pad underneath the supported model" +msgstr "在支撑模型下添加一个垫" + +#: src/libslic3r/PrintConfig.cpp:2518 +msgid "Pad wall thickness" +msgstr "垫壁厚度" + +#: src/libslic3r/PrintConfig.cpp:2520 +msgid "The thickness of the pad and its optional cavity walls." +msgstr "垫片的厚度及其可选的空腔壁。" + +#: src/libslic3r/PrintConfig.cpp:2528 +msgid "Pad wall height" +msgstr "垫壁高度" + +#: src/libslic3r/PrintConfig.cpp:2529 +msgid "Defines the cavity depth. Set to zero to disable the cavity." +msgstr "定义空腔深度。设置为零以禁用空腔。" + +#: src/libslic3r/PrintConfig.cpp:2539 +msgid "Max merge distance" +msgstr "最大合并距离" + +#: src/libslic3r/PrintConfig.cpp:2541 +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:2552 +msgid "Pad edge radius" +msgstr "垫边半径" + +#: src/libslic3r/PrintConfig.cpp:2561 +msgid "Pad wall slope" +msgstr "垫壁坡度" + +#: src/libslic3r/PrintConfig.cpp:2563 +msgid "" +"The slope of the pad wall relative to the bed plane. 90 degrees means " +"straight walls." +msgstr "垫壁相对于床面的斜率。90度意味着直墙。" + +#: src/libslic3r/PrintConfig.cpp:2924 +msgid "Export SVG" +msgstr "导出 SVG" + +#: src/libslic3r/PrintConfig.cpp:2925 +msgid "Export the model(s) as OBJ." +msgstr "将模型导出为 OBJ。" + +#: src/libslic3r/PrintConfig.cpp:2936 +msgid "Export SLA" +msgstr "导出 SLA" + +#: src/libslic3r/PrintConfig.cpp:2937 +msgid "Slice the model and export SLA printing layers as PNG." +msgstr "将模型切片, 并将 SLA 打印图层导出为 PNG。" + +#: src/libslic3r/PrintConfig.cpp:2942 +msgid "Export 3MF" +msgstr "导出 3MF" + +#: src/libslic3r/PrintConfig.cpp:2943 +msgid "Export the model(s) as 3MF." +msgstr "将模型导出为3MF。" + +#: src/libslic3r/PrintConfig.cpp:2947 +msgid "Export AMF" +msgstr "导出 AMF" + +#: src/libslic3r/PrintConfig.cpp:2948 +msgid "Export the model(s) as AMF." +msgstr "将模型导出为 AMF。" + +#: src/libslic3r/PrintConfig.cpp:2952 +msgid "Export STL" +msgstr "导出STL Export STL" + +#: src/libslic3r/PrintConfig.cpp:2953 +msgid "Export the model(s) as STL." +msgstr "将模型导出为 STL。" + +#: src/libslic3r/PrintConfig.cpp:2958 +msgid "Slice the model and export toolpaths as G-code." +msgstr "将模型切片并将刀具路径导出为 G 代码。" + +#: src/libslic3r/PrintConfig.cpp:2963 +msgid "Slice" +msgstr "切片" + +#: src/libslic3r/PrintConfig.cpp:2964 +msgid "" +"Slice the model as FFF or SLA based on the printer_technology configuration " +"value." +msgstr "根据打印机技术配置值将模型切片为 FFF 或 SLA。" + +#: src/libslic3r/PrintConfig.cpp:2969 +msgid "Help" +msgstr "帮助" + +#: src/libslic3r/PrintConfig.cpp:2970 +msgid "Show this help." +msgstr "显示此帮助。" + +#: src/libslic3r/PrintConfig.cpp:2975 +msgid "Help (FFF options)" +msgstr "帮助 (FFF 选项)" + +#: src/libslic3r/PrintConfig.cpp:2976 +msgid "Show the full list of print/G-code configuration options." +msgstr "显示打印代码配置选项的完整列表。" + +#: src/libslic3r/PrintConfig.cpp:2980 +msgid "Help (SLA options)" +msgstr "帮助 (SLA 选项)" + +#: src/libslic3r/PrintConfig.cpp:2981 +msgid "Show the full list of SLA print configuration options." +msgstr "显示 SLA 打印配置选项的完整列表。" + +#: src/libslic3r/PrintConfig.cpp:2985 +msgid "Output Model Info" +msgstr "输出模型信息" + +#: src/libslic3r/PrintConfig.cpp:2986 +msgid "Write information about the model to the console." +msgstr "给控制台写入模型的信息。" + +#: src/libslic3r/PrintConfig.cpp:2990 +msgid "Save config file" +msgstr "保存配置文件" + +#: src/libslic3r/PrintConfig.cpp:2991 +msgid "Save configuration to the specified file." +msgstr "将配置参数保存到指定文件。" + +#: src/libslic3r/PrintConfig.cpp:3001 +msgid "Align XY" +msgstr "对齐 XY" + +#: src/libslic3r/PrintConfig.cpp:3002 +msgid "Align the model to the given point." +msgstr "将模型对齐到给定点。" + +#: src/libslic3r/PrintConfig.cpp:3007 +msgid "Cut model at the given Z." +msgstr "在给定Z处切割模型。" + +#: src/libslic3r/PrintConfig.cpp:3028 +msgid "Center" +msgstr "居中" + +#: src/libslic3r/PrintConfig.cpp:3029 +msgid "Center the print around the given center." +msgstr "将打印内容集中在给定的中心周围。" + +#: src/libslic3r/PrintConfig.cpp:3033 +msgid "Don't arrange" +msgstr "不要排列布局" + +#: src/libslic3r/PrintConfig.cpp:3034 +msgid "" +"Do not rearrange the given models before merging and keep their original XY " +"coordinates." +msgstr "在合并之前, 不要重新排列给定的模型, 并保留其原始 XY 坐标。" + +#: src/libslic3r/PrintConfig.cpp:3037 +msgid "Duplicate" +msgstr "复制" + +#: src/libslic3r/PrintConfig.cpp:3038 +msgid "Multiply copies by this factor." +msgstr "按此倍数增加副本。" + +#: src/libslic3r/PrintConfig.cpp:3042 +msgid "Duplicate by grid" +msgstr "按网格复制" + +#: src/libslic3r/PrintConfig.cpp:3043 +msgid "Multiply copies by creating a grid." +msgstr "通过创建网格将副本增加。" + +#: src/libslic3r/PrintConfig.cpp:3046 +msgid "Merge" +msgstr "合并" + +#: src/libslic3r/PrintConfig.cpp:3047 +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:3052 +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:3056 +msgid "Rotation angle around the Z axis in degrees." +msgstr "围绕 Z 轴的旋转角度 (以度为单位)。" + +#: src/libslic3r/PrintConfig.cpp:3060 +msgid "Rotate around X" +msgstr "绕X轴旋转" + +#: src/libslic3r/PrintConfig.cpp:3061 +msgid "Rotation angle around the X axis in degrees." +msgstr "围绕 X 轴的旋转角度 (以度为单位)。" + +#: src/libslic3r/PrintConfig.cpp:3065 +msgid "Rotate around Y" +msgstr "绕Y轴旋转" + +#: src/libslic3r/PrintConfig.cpp:3066 +msgid "Rotation angle around the Y axis in degrees." +msgstr "围绕 Y 轴的旋转角度 (以度为单位)。" + +#: src/libslic3r/PrintConfig.cpp:3071 +msgid "Scaling factor or percentage." +msgstr "缩放因子或百分比。" + +#: src/libslic3r/PrintConfig.cpp:3076 +msgid "" +"Detect unconnected parts in the given model(s) and split them into separate " +"objects." +msgstr "检测给定模型中未连接的部件, 并将其拆分为单独的对象。" + +#: src/libslic3r/PrintConfig.cpp:3079 +msgid "Scale to Fit" +msgstr "缩放到合适大小" + +#: src/libslic3r/PrintConfig.cpp:3080 +msgid "Scale to fit the given volume." +msgstr "缩放到适合于给定体积。" + +#: src/libslic3r/PrintConfig.cpp:3089 +msgid "Ignore non-existent config files" +msgstr "忽略不存在的配置文件" + +#: src/libslic3r/PrintConfig.cpp:3090 +msgid "Do not fail if a file supplied to --load does not exist." +msgstr "如果提供给—load 的文件不存在, 不要报错。" + +#: src/libslic3r/PrintConfig.cpp:3093 +msgid "Load config file" +msgstr "加载配置文件" + +#: src/libslic3r/PrintConfig.cpp:3094 +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:3097 +msgid "Output File" +msgstr "输出文件" + +#: src/libslic3r/PrintConfig.cpp:3098 +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:3108 +msgid "Data directory" +msgstr "数据目录" + +#: src/libslic3r/PrintConfig.cpp:3109 +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:3112 +msgid "Logging level" +msgstr "日志级别" + +#: src/libslic3r/PrintConfig.cpp:3113 +msgid "" +"Messages with severity lower or eqal to the loglevel will be printed out. 0:" +"trace, 1:debug, 2:info, 3:warning, 4:error, 5:fatal" +msgstr "" +"严重级别较小于或等于日志级别的消息将被打印出来。0: 跟踪, 1: 调试, 2: 信息, " +"3: 警告, 4: 错误, 5: 致命" + +#: src/libslic3r/GCode/PreviewData.cpp:176 +msgid "Mixed" +msgstr "混合" + +#: src/libslic3r/GCode/PreviewData.cpp:396 +msgid "Height (mm)" +msgstr "高度(毫米)" + +#: src/libslic3r/GCode/PreviewData.cpp:398 +msgid "Width (mm)" +msgstr "宽度 (mm)" + +#: src/libslic3r/GCode/PreviewData.cpp:400 +msgid "Speed (mm/s)" +msgstr "回退速度(mm/s)" + +#: src/libslic3r/GCode/PreviewData.cpp:402 +msgid "Volumetric flow rate (mm3/s)" +msgstr "体积流量 (mm3/s)" + +#: src/libslic3r/GCode/PreviewData.cpp:491 +msgid "Default print color" +msgstr "默认打印颜色" + +#: src/libslic3r/GCode/PreviewData.cpp:495 +#, c-format +msgid "up to %.2f mm" +msgstr "高达 %.2f mm" + +#: src/libslic3r/GCode/PreviewData.cpp:499 +#, c-format +msgid "above %.2f mm" +msgstr "%.2f mm以上" + +#: src/libslic3r/GCode/PreviewData.cpp:504 +#, c-format +msgid "%.2f - %.2f mm" +msgstr "%.2f - %.2f mm" + +#~ msgid "Top/bottom fill pattern" +#~ msgstr "顶部/底部填充样式" + +#~ msgid "" +#~ "Fill pattern for top/bottom infill. This only affects the external " +#~ "visible layer, and not its adjacent solid shells." +#~ msgstr "" +#~ "对顶部/底部内部填充的类型。这将影响外围可见层,不影响其相邻的可靠层。" + +#~ msgid "Rotation angle around the Z axis in degrees (0-360, default: 0)." +#~ msgstr "绕Z轴旋转角度(0-360,默认:0)。" + +#~ msgid "Rotation angle around the X axis in degrees (0-360, default: 0)." +#~ msgstr "绕X轴旋转角度(0-360,默认:0)。" + +#~ msgid "Rotation angle around the Y axis in degrees (0-360, default: 0)." +#~ msgstr "绕Y轴旋转角度(0-360,默认:0)。" + +#~ msgid "Scaling factor (default: 1)." +#~ msgstr "缩放比例(默认:1)。" + +#~ msgid "Minimum extrusion length" +#~ msgstr "最大挤出长度" + +#~ msgid "API Key" +#~ msgstr "API密钥" + +#~ msgid "" +#~ "Slic3r can upload G-code files to OctoPrint. This field should contain " +#~ "the API Key required for authentication." +#~ msgstr "" +#~ "Slic3r可以把G代码文件上传至Octoprint。此字段应包含API密钥,用于身份验证。" + +#~ msgid "Host or IP" +#~ msgstr "主机名或IP" + +#~ msgid "" +#~ "Slic3r can upload G-code files to OctoPrint. This field should contain " +#~ "the hostname or IP address of the OctoPrint instance." +#~ msgstr "" +#~ "Slic3r可以把G代码文件上传至Octoprint。此字段应包含OctoPrint实例的主机名称" +#~ "或IP地址。" + +#~ msgid "Has heated bed" +#~ msgstr "有热床" + +#~ msgid "" +#~ "Unselecting this will suppress automatic generation of bed heating gcode." +#~ msgstr "不勾选此项将不自动生成机床加热的G代码。" + +#~ msgid "Bed temperature for layers after the first one." +#~ msgstr "第一层之后的机床温度。" + +#~ msgid "Bottom infill pattern" +#~ msgstr "底部填充样式" + +#~ msgid "" +#~ "Infill pattern for bottom layers. This only affects the external visible " +#~ "layer, and not its adjacent solid shells." +#~ msgstr "底层的填充样式。此项仅影响外部可见层,不影响其相邻的可靠层。" + +#~ msgid "Speed > Acceleration" +#~ msgstr "速度 > 加速度" + +#~ msgid "Brim connections width" +#~ msgstr "裙边连接宽度" + +#~ msgid "" +#~ "If set to a positive value, straight connections will be built on the " +#~ "first layer between adjacent objects." +#~ msgstr "如果设为正值,第一层相邻的物体间将建立直接连接。" + +#~ msgid "Exterior brim width" +#~ msgstr "外围裙边宽度" + +#~ msgid "" +#~ "This disables the fan completely for the first N layers to aid in the " +#~ "adhesion of media to the bed. (default 3)" +#~ msgstr "此项在打印前N层时完全禁用风扇,以帮助材料更好地黏合热床。(默认3)" + +#~ msgid "↳ external" +#~ msgstr "↳外部的" + +#~ msgid "External perimeters extrusion width" +#~ msgstr "外围轮廓挤出宽度" + +#~ msgid "" +#~ "Set this to a non-zero value to set a manual extrusion width for external " +#~ "perimeters. If auto is chosen, a value will be used that maximizes " +#~ "accuracy of the external visible surfaces. If expressed as percentage " +#~ "(for example 200%) it will be computed over layer height." +#~ msgstr "" +#~ "该值若非0,意为外围轮廓的手动挤出宽度。如果选择自动,将使用一个使得外围可" +#~ "见层精度最高的值。如果表示为百分数(如200%),则该值以层高为基准。" + +#~ msgid "External perimeters speed" +#~ msgstr "外围轮廓速度" + +#~ msgid "" +#~ "This separate setting will affect the speed of external perimeters (the " +#~ "visible ones). If expressed as percentage (for example: 80%) it will be " +#~ "calculated on the perimeters speed setting above." +#~ msgstr "" +#~ "该参数将影响外围可见层的打印速度。如果表示为百分数(如80%),数值将以上面" +#~ "设置的外围速度参数为基准。" + +#~ msgid "Add more perimeters when needed for avoiding gaps in sloping walls." +#~ msgstr "为避免在打印倾斜的外墙中产生间隙,有必要时增加更多的轮廓。" + +#~ msgid "" +#~ "The extruder to use (unless more specific extruder settings are " +#~ "specified)." +#~ msgstr "使用的挤出头(除非指明了更多详细的挤出头参数)。" + +#~ msgid "" +#~ "Set this to a non-zero value to set a manual extrusion width. If " +#~ "expressed as percentage (for example: 230%) it will be computed over " +#~ "layer height." +#~ msgstr "" +#~ "该值若为非0,则代表手动挤出宽度。如果设为百分数(如230%),则值是以层高为" +#~ "基准。" + +#~ msgid "Fill gaps" +#~ msgstr "填充间隙" + +#~ msgid "" +#~ "If this is enabled, gaps will be filled with single passes. Enable this " +#~ "for better quality, disable it for shorter printing times." +#~ msgstr "" +#~ "如果勾选该项,间隙将被单通道填充。启用该项可优化打印质量,禁用则可以节省时" +#~ "间。" + +#~ msgid "" +#~ "Set this to a non-zero value to set a manual extrusion width for first " +#~ "layer. You can use this to force fatter extrudates for better adhesion. " +#~ "If expressed as percentage (for example 120%) it will be computed over " +#~ "first layer height." +#~ msgstr "" +#~ "若为非0,则表示首层手动挤出宽度。可用于强制更宽的挤出量便于黏着。如果表示" +#~ "为百分数(如120%),则该值是相对于首层高度。" + +#~ msgid "↳ gaps" +#~ msgstr "↳ 间隙" + +#~ msgid "" +#~ "Speed for filling gaps. Since these are usually single lines you might " +#~ "want to use a low speed for better sticking. If expressed as percentage " +#~ "(for example: 80%) it will be calculated on the infill speed setting " +#~ "above." +#~ msgstr "" +#~ "填充间隙的速度。由于这些通常是独立的直线,所以尽量使用低速来保证黏着。如果" +#~ "表示为百分数(如80%),则以上面设置的填充速度为基准。" + +#~ msgid "Use native G-code arcs" +#~ msgstr "使用本地的G代码弧线" + +#~ msgid "" +#~ "This experimental feature tries to detect arcs from segments and " +#~ "generates G2/G3 arc commands instead of multiple straight G1 commands." +#~ msgstr "" +#~ "这个试验性能尝试从段中侦测出弧线,生成 G2/G3 弧线指令,而不是生成多个G1直" +#~ "线指令。" + +#~ msgid "" +#~ "Set this to a non-zero value to set a manual extrusion width for infill. " +#~ "You may want to use fatter extrudates to speed up the infill and make " +#~ "your parts stronger. If expressed as percentage (for example 90%) it will " +#~ "be computed over layer height." +#~ msgstr "" +#~ "该值若为非0,则表示填充的手动挤出宽度。可使用较宽的挤出来加速填充并使部件" +#~ "牢固。如果表示为百分数(如90%),则该值以层高为基准。" + +#~ msgid "Speed for printing the internal fill." +#~ msgstr "打印内部填充的速度。" + +#~ msgid "Interior brim width" +#~ msgstr "内部裙边宽度" + +#~ msgid "" +#~ "Horizontal width of the brim that will be printed inside object holes on " +#~ "the first layer." +#~ msgstr "第一层打印于物件孔洞内部的裙边宽度。" + +#~ msgid "" +#~ "During multi-extruder prints, 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 "" +#~ "在多挤出头的打印过程中,该选项将降低非活跃挤出头的温度以避免滴垂现象。启动" +#~ "它将自动使能一个高环边,并在改变温度时将挤出头移除该环边。" + +#~ msgid "Overridable options" +#~ msgstr "可覆盖的选项" + +#~ 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 expressed as percentage (for example 200%) it will be " +#~ "computed over layer height." +#~ msgstr "" +#~ "该值若非0,则表示轮廓的手动基础宽度。可以使用更细的挤出宽度来获得更精确的" +#~ "表面。如果表示为百分数(如200%),则该值以层高为基准。" + +#~ msgid "Speed for perimeters (contours, aka vertical shells)." +#~ msgstr "轮廓的打印速度(轮廓,又名垂直外壳)。" + +#~ msgid "" +#~ "If you want to process the output G-code through custom scripts, just " +#~ "list their absolute paths here. Separate multiple scripts on individual " +#~ "lines. Scripts will be passed the absolute path to the G-code file as the " +#~ "first argument, and they can access the Slic3r config settings by reading " +#~ "environment variables." +#~ msgstr "" +#~ "如果你想要通过自定义脚本来处理输出G代码,在这里列出它们的绝对路径即可。将" +#~ "多个脚本分行输入。脚本的绝对路径将被以第一个参数传递给G代码文件,而且它们" +#~ "可以通过读取环境变量来获取Slic3r的配置参数。" + +#~ msgid "Pressure advance" +#~ msgstr "压力高级设置" + +#~ msgid "" +#~ "When set to a non-zero value, this experimental option enables pressure " +#~ "regulation. It's the K constant for the advance algorithm that pushes " +#~ "more or less filament upon speed changes. It's useful for Bowden-tube " +#~ "extruders. Reasonable values are in range 0-10." +#~ msgstr "" +#~ "若为非0,该试验选项启用压力调节。该值为一个高级算法的K常数。这个算法根据速" +#~ "度变化来改变推动丝料多少。适用于鲍登管挤出头。合理的值范围是0-10." + +#~ msgid "Raft offset" +#~ msgstr "筏偏置" + +#~ msgid "Horizontal margin between object base layer and raft contour." +#~ msgstr "物体基层和筏轮廓之间的水平距离。" + +#~ msgid "Resolution (deprecated)" +#~ msgstr "精度(不赞成)" + +#~ msgid "" +#~ "The speed for retractions (it only applies to the extruder motor). If you " +#~ "use the Firmware Retraction option, please note this value still affects " +#~ "the auto-speed pressure regulator." +#~ msgstr "" +#~ "回缩速度(仅适用于挤出头电机)。如果试用了固件回缩选项,请注意该值仍影响自" +#~ "动速度电压调节器。" + +#~ msgid "↳ small" +#~ msgstr "↳ 小" + +#~ 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." +#~ msgstr "" +#~ "该参数影响半径 <= 6.5mm(通常是孔洞)的轮廓打印速度。如果表示为百分比(如" +#~ "80%),则以上面设置的轮廓速度为基准计算。" + +#~ msgid "↳ solid" +#~ msgstr "↳ 可靠的" + +#~ msgid "" +#~ "Set this to a non-zero value to set a manual extrusion width for infill " +#~ "for solid surfaces. If expressed as percentage (for example 90%) it will " +#~ "be computed over layer height." +#~ msgstr "" +#~ "设为非0值,则表示可靠表面填充的手动挤出宽度。若表示为百分数(如90%),将以" +#~ "层高为基准计算。" + +#~ 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." +#~ msgstr "" +#~ "打印可靠区域的速度(顶部的/底部的/内部水平外壳)。以百分数(如80%)表示," +#~ "则以上述的默认填充速度为基准计算。" + +#~ 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 "" +#~ "当挤出头处于非活跃状态时用到的温度差。启用一个全高度的环边,纯用于定期给喷" +#~ "嘴擦拭。" + +#~ msgid "" +#~ "This start procedure is inserted at the beginning, after bed has reached " +#~ "the target temperature and extruder just started heating, and before " +#~ "extruder has finished heating. If Slic3r detects M104, M109, M140 or M190 " +#~ "in your custom codes, such commands will not be prepended automatically " +#~ "so you're free to customize the order of heating commands and other " +#~ "custom actions. Note that you can use placeholder variables for all " +#~ "Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" " +#~ "command wherever you want." +#~ msgstr "" +#~ "该段代码放在G代码开头,在热床达到目标温度、挤出头开始加热后,挤出头完成加" +#~ "热前插入。如果其中不包含有M104, M109, M140 或 M190,这段指令就会在Slic3r自" +#~ "动放置的M指令之后;否则Slic3r将不会自动生成M指令,这样你可以自由定义加热命" +#~ "令和其他自定义动作的顺序。注意可以使用占位符变量替代所有Slic3r参数,所以你" +#~ "可以把一个“M109 S[ first_layer_temperature ]”命令放在任意处。" + +#~ msgid "The extruder to use when printing support material, raft and skirt." +#~ msgstr "打印支撑材料、筏和环边时使用的挤出头。" + +#~ msgid "" +#~ "Set this to a non-zero value to set a manual extrusion width for support " +#~ "material. If expressed as percentage (for example 90%) it will be " +#~ "computed over layer height." +#~ msgstr "" +#~ "设为非0值,表示对支撑材料的手动挤出宽度。如果表示为百分数(如90%),则以层" +#~ "高为基准计算。" + +#~ msgid "" +#~ "The extruder to use when printing support material interface. This " +#~ "affects raft too." +#~ msgstr "打印支撑材料表面时使用的挤出头。也影响筏。" + +#~ msgid "↳ interface" +#~ msgstr "↳ 表面" + +#~ msgid "Interface Speed" +#~ msgstr "表面速度" + +#~ msgid "Support material interface speed" +#~ msgstr "支撑材料表面速度" + +# "% o“ format mistake? +#~ msgid "" +#~ "Support material will not be generated for overhangs whose slope angle " +#~ "(90° = vertical) is above the given threshold. In other words, this value " +#~ "represent the most horizontal slope (measured from the horizontal plane) " +#~ "that you can print without support material. Set to a percentage to " +#~ "automatically detect based on some % of overhanging perimeter width " +#~ "instead (recommended)." +#~ msgstr "" +#~ "对于倾斜度(90° = 垂直)高于指定阈值的悬空部位,不生成相应的支撑材料。换句" +#~ "话说,该值表示不用支撑材料所能打印的最水平的角度。设为百分数,则以悬空轮廓" +#~ "宽度的 % o自动计算(推荐)。" + +#~ msgid "↳ top solid" +#~ msgstr "↳ 顶部可靠层" + +#~ 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 regions and get a smoother finish. If expressed as percentage (for " +#~ "example 90%) it will be computed over layer height." +#~ msgstr "" +#~ "设为非0值,表示顶层表面填充的手动挤出宽度。可以使用较细的挤出宽度来对所有" +#~ "的狭长区域进行填充并获得较光滑的尾部。如果表示为百分数(如90%),则以层高" +#~ "为基准计算。" + +#~ msgid "" +#~ "Infill pattern for top layers. This only affects the external visible " +#~ "layer, and not its adjacent solid shells." +#~ msgstr "顶层填充样式。仅影响外部可见层,不影响其相邻可靠层。" + +#~ 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 " +#~ "slow down this to get a nicer surface finish. This can be expressed as a " +#~ "percentage (for example: 80%) over the solid infill speed above." +#~ msgstr "" +#~ "打印顶部可靠层的速度(仅适用于最外部的顶层,而非它们的内部可靠填充层)。可" +#~ "降低该速度值以获得较好的表面尾处理。若表示为百分数(如80%),则以可靠填充" +#~ "速度为基准计算。" + +#~ msgid "Vibration limit (deprecated)" +#~ msgstr "振动限制(赞成)" + +#~ msgid "" +#~ "This experimental option will slow down those moves hitting the " +#~ "configured frequency limit. The purpose of limiting vibrations is to " +#~ "avoid mechanical resonance. Set zero to disable." +#~ msgstr "" +#~ "该试验选项将减缓达到指定频率值的打印动作。目的为避免机械共振。设为0以禁" +#~ "用。" + +#~ msgid "Z full steps/mm" +#~ msgstr "Z全部步数/毫米" + +#~ msgid "" +#~ "Set this to the number of *full* steps (not microsteps) needed for moving " +#~ "the Z axis by 1mm; you can calculate this by dividing the number of " +#~ "microsteps configured in your firmware by the microstepping amount (8, " +#~ "16, 32). Slic3r will round your configured layer height to the nearest " +#~ "multiple of that value in order to ensure the best accuracy. This is most " +#~ "useful for machines with imperial leadscrews or belt-driven Z or for " +#~ "unusual layer heights with metric leadscrews. Set to zero to disable this " +#~ "experimental feature." +#~ msgstr "" +#~ "将该值设为移动Z轴1毫米所需的*全部*步数(而不是细分);可以这样计算:把固件" +#~ "中已配置的细分数除以倍增系数(8,16,32)。Sli3r会把你设置的层高四舍五入到" +#~ "该值的最近倍数以确保精度。此项设置对于使用英制丝杠、皮带传动Z轴的机器,或" +#~ "者机器使用公制丝杠且层高值特别时比较适用。设为0以禁用该功能。" + +#~ msgid "Cut model in the XY plane into tiles of the specified max size." +#~ msgstr "将XY面的模型切割成指定最大尺寸的小块。" + +# POV-Ray? +#~ msgid "Export the model as POV-Ray definition." +#~ msgstr "" +#~ "将模型以POV-Ray定义导出。(参见开源射线描迹软件:http://www.povray." +#~ "org/)。" + +#~ msgid "Slice the model and export slices as SVG." +#~ msgstr "切割模型并以SVG格式导出切片结果。" diff --git a/resources/localization/zh_cn/PrusaSlicer.mo b/resources/localization/zh_cn/PrusaSlicer.mo deleted file mode 100644 index 2d8b31823e5..00000000000 Binary files a/resources/localization/zh_cn/PrusaSlicer.mo and /dev/null differ diff --git a/resources/localization/zh_cn/PrusaSlicer_zh_CN.po b/resources/localization/zh_cn/PrusaSlicer_zh_CN.po deleted file mode 100644 index 3a13519bb57..00000000000 --- a/resources/localization/zh_cn/PrusaSlicer_zh_CN.po +++ /dev/null @@ -1,8889 +0,0 @@ -# Copyright (C) 2019 THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST Translator Jiang Yue , 2019. -# -msgid "" -msgstr "" -"Project-Id-Version: Slic3rPE\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-08-30 11:18+0200\n" -"PO-Revision-Date: 2019-09-06 16:24+0800\n" -"Last-Translator: Jiang Yue \n" -"Language-Team: \n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.3\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: src/slic3r/GUI/AboutDialog.cpp:39 src/slic3r/GUI/AboutDialog.cpp:291 -msgid "Portions copyright" -msgstr "部分版权" - -#: src/slic3r/GUI/AboutDialog.cpp:127 src/slic3r/GUI/AboutDialog.cpp:256 -msgid "Copyright" -msgstr "版权" - -#. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:129 -msgid "" -"License agreements of all following programs (libraries) are part of " -"application license agreement" -msgstr "所有以下程序(库)的许可协议是应用程序许可协议的一部分" - -#: src/slic3r/GUI/AboutDialog.cpp:199 -#, c-format -msgid "About %s" -msgstr "关于 %s" - -#: src/slic3r/GUI/AboutDialog.cpp:231 src/slic3r/GUI/MainFrame.cpp:62 -msgid "Version" -msgstr "版本" - -#. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:258 -msgid "is licensed under the" -msgstr "根据" - -#: src/slic3r/GUI/AboutDialog.cpp:259 -msgid "GNU Affero General Public License, version 3" -msgstr "GNU Affero 通用公共许可证,版本 3" - -#: src/slic3r/GUI/AboutDialog.cpp:260 -msgid "" -"PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap " -"community." -msgstr "" -"Pruspaslicer 是以 Alessandro Ranellucci 和 RepRap 社区的 Slic3r 为基础的。" - -#: src/slic3r/GUI/AboutDialog.cpp:261 -msgid "" -"Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, " -"Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and " -"numerous others." -msgstr "" -"Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph " -"Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik 等人的贡献。" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:92 -msgid "" -"Copying of the temporary G-code to the output G-code failed. Maybe the SD " -"card is write locked?" -msgstr "将临时 G 代码复制到输出 G 代码失败。也许 SD 卡写入已锁定?" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:93 -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:411 -msgid "Running post-processing scripts" -msgstr "运行后处理脚本" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:95 -msgid "G-code file exported to %1%" -msgstr "G 代码文件导出到 %1%" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:99 -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:117 -msgid "Slicing complete" -msgstr "切片完成" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:113 -msgid "Masked SLA file exported to %1%" -msgstr "已将 贴面过 SLA 文件导出到 %1%" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:155 -#, c-format -msgid "" -"%s has encountered an error. It was likely caused by running out of memory. " -"If you are sure you have enough RAM on your system, this may also be a bug " -"and we would be glad if you reported it." -msgstr "" -"%s 遇到错误。这可能是由于内存不足造成的。如果您确定您的系统上有足够的内存,这" -"可能也是一个软件错误,欢迎你向我们提交问题报告。" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:413 -msgid "Copying of the temporary G-code to the output G-code failed" -msgstr "将临时 G 代码复制到输出 G 代码失败" - -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:422 -msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue" -msgstr "计划上传到 `%1%`。请参阅窗口-> 打印主机上传队列" - -#: src/slic3r/GUI/BedShapeDialog.cpp:65 -msgid "Shape" -msgstr "形状" - -#: src/slic3r/GUI/BedShapeDialog.cpp:72 -msgid "Rectangular" -msgstr "矩形" - -#: src/slic3r/GUI/BedShapeDialog.cpp:76 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:393 src/slic3r/GUI/Plater.cpp:145 -#: src/slic3r/GUI/Tab.cpp:2521 -msgid "Size" -msgstr "大小" - -#: src/slic3r/GUI/BedShapeDialog.cpp:77 -msgid "Size in X and Y of the rectangular plate." -msgstr "矩形框在X和Y方向的尺寸。" - -#: src/slic3r/GUI/BedShapeDialog.cpp:83 -msgid "Origin" -msgstr "起源" - -#: src/slic3r/GUI/BedShapeDialog.cpp:84 -msgid "" -"Distance of the 0,0 G-code coordinate from the front left corner of the " -"rectangle." -msgstr "G-code 0,0 坐标相对于矩形框左前角落的距离。" - -#: src/slic3r/GUI/BedShapeDialog.cpp:88 -msgid "Circular" -msgstr "圆" - -#: src/slic3r/GUI/BedShapeDialog.cpp:91 src/slic3r/GUI/ConfigWizard.cpp:123 -#: src/slic3r/GUI/ConfigWizard.cpp:576 src/slic3r/GUI/ConfigWizard.cpp:590 -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:135 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:390 -#: src/slic3r/GUI/WipeTowerDialog.cpp:84 src/slic3r/GUI/wxExtensions.cpp:509 -#: src/libslic3r/PrintConfig.cpp:70 src/libslic3r/PrintConfig.cpp:77 -#: src/libslic3r/PrintConfig.cpp:86 src/libslic3r/PrintConfig.cpp:220 -#: src/libslic3r/PrintConfig.cpp:295 src/libslic3r/PrintConfig.cpp:303 -#: src/libslic3r/PrintConfig.cpp:353 src/libslic3r/PrintConfig.cpp:363 -#: src/libslic3r/PrintConfig.cpp:488 src/libslic3r/PrintConfig.cpp:499 -#: src/libslic3r/PrintConfig.cpp:517 src/libslic3r/PrintConfig.cpp:695 -#: src/libslic3r/PrintConfig.cpp:1215 src/libslic3r/PrintConfig.cpp:1276 -#: src/libslic3r/PrintConfig.cpp:1294 src/libslic3r/PrintConfig.cpp:1312 -#: src/libslic3r/PrintConfig.cpp:1364 src/libslic3r/PrintConfig.cpp:1374 -#: src/libslic3r/PrintConfig.cpp:1495 src/libslic3r/PrintConfig.cpp:1503 -#: src/libslic3r/PrintConfig.cpp:1544 src/libslic3r/PrintConfig.cpp:1552 -#: src/libslic3r/PrintConfig.cpp:1562 src/libslic3r/PrintConfig.cpp:1570 -#: src/libslic3r/PrintConfig.cpp:1578 src/libslic3r/PrintConfig.cpp:1661 -#: src/libslic3r/PrintConfig.cpp:1878 src/libslic3r/PrintConfig.cpp:1948 -#: src/libslic3r/PrintConfig.cpp:1982 src/libslic3r/PrintConfig.cpp:2176 -#: src/libslic3r/PrintConfig.cpp:2183 src/libslic3r/PrintConfig.cpp:2190 -#: src/libslic3r/PrintConfig.cpp:2220 src/libslic3r/PrintConfig.cpp:2230 -#: src/libslic3r/PrintConfig.cpp:2240 src/libslic3r/PrintConfig.cpp:2403 -#: src/libslic3r/PrintConfig.cpp:2510 src/libslic3r/PrintConfig.cpp:2519 -#: src/libslic3r/PrintConfig.cpp:2528 src/libslic3r/PrintConfig.cpp:2538 -#: src/libslic3r/PrintConfig.cpp:2582 src/libslic3r/PrintConfig.cpp:2592 -#: src/libslic3r/PrintConfig.cpp:2604 src/libslic3r/PrintConfig.cpp:2624 -#: src/libslic3r/PrintConfig.cpp:2634 src/libslic3r/PrintConfig.cpp:2644 -#: src/libslic3r/PrintConfig.cpp:2662 src/libslic3r/PrintConfig.cpp:2677 -#: src/libslic3r/PrintConfig.cpp:2691 src/libslic3r/PrintConfig.cpp:2704 -#: src/libslic3r/PrintConfig.cpp:2742 src/libslic3r/PrintConfig.cpp:2752 -#: src/libslic3r/PrintConfig.cpp:2761 src/libslic3r/PrintConfig.cpp:2771 -msgid "mm" -msgstr "mm" - -#: src/slic3r/GUI/BedShapeDialog.cpp:92 src/libslic3r/PrintConfig.cpp:692 -msgid "Diameter" -msgstr "直径" - -#: src/slic3r/GUI/BedShapeDialog.cpp:93 -msgid "" -"Diameter of the print bed. It is assumed that origin (0,0) is located in the " -"center." -msgstr "构建板(打印床)的直径。假定原点 (0,0) 位于中心。" - -#: src/slic3r/GUI/BedShapeDialog.cpp:97 src/slic3r/GUI/GUI_Preview.cpp:247 -#: src/libslic3r/GCode/PreviewData.cpp:159 -msgid "Custom" -msgstr "自定义" - -#: src/slic3r/GUI/BedShapeDialog.cpp:101 -msgid "Load shape from STL..." -msgstr "从STL文件加载形状..." - -#: src/slic3r/GUI/BedShapeDialog.cpp:154 -msgid "Settings" -msgstr "设置" - -#: src/slic3r/GUI/BedShapeDialog.cpp:171 -msgid "Texture" -msgstr "纹理" - -#: src/slic3r/GUI/BedShapeDialog.cpp:181 src/slic3r/GUI/BedShapeDialog.cpp:249 -msgid "Load..." -msgstr "加载..." - -#: src/slic3r/GUI/BedShapeDialog.cpp:189 src/slic3r/GUI/BedShapeDialog.cpp:257 -#: src/slic3r/GUI/Tab.cpp:3283 -msgid "Remove" -msgstr "移除" - -#: src/slic3r/GUI/BedShapeDialog.cpp:239 -msgid "Model" -msgstr "模型" - -#: src/slic3r/GUI/BedShapeDialog.cpp:464 -msgid "Choose an STL file to import bed shape from:" -msgstr "选择 STL 文件以从以下对象导入床形:" - -#: src/slic3r/GUI/BedShapeDialog.cpp:471 src/slic3r/GUI/BedShapeDialog.cpp:520 -#: src/slic3r/GUI/BedShapeDialog.cpp:543 -msgid "Invalid file format." -msgstr "无效的文件格式。" - -#: src/slic3r/GUI/BedShapeDialog.cpp:482 -msgid "Error! Invalid model" -msgstr "错误!无效模型" - -#: src/slic3r/GUI/BedShapeDialog.cpp:490 -msgid "The selected file contains no geometry." -msgstr "所选文件不包含任何几何图形。" - -#: src/slic3r/GUI/BedShapeDialog.cpp:494 -msgid "" -"The selected file contains several disjoint areas. This is not supported." -msgstr "所选文件包含多个不重合的区域。暂不支持这种类型。" - -#: src/slic3r/GUI/BedShapeDialog.cpp:509 -msgid "Choose a file to import bed texture from (PNG/SVG):" -msgstr "选择要从 (PNG/SVG) 文件来导入床纹理:" - -#: src/slic3r/GUI/BedShapeDialog.cpp:532 -msgid "Choose an STL file to import bed model from:" -msgstr "选择 STL 文件来导入床模型:" - -#: src/slic3r/GUI/BedShapeDialog.hpp:59 src/slic3r/GUI/ConfigWizard.cpp:535 -msgid "Bed Shape" -msgstr "热床形状" - -#: src/slic3r/GUI/BonjourDialog.cpp:55 -msgid "Network lookup" -msgstr "从网络查找" - -#: src/slic3r/GUI/BonjourDialog.cpp:72 -msgid "Address" -msgstr "地址" - -#: src/slic3r/GUI/BonjourDialog.cpp:73 -msgid "Hostname" -msgstr "主机名" - -#: src/slic3r/GUI/BonjourDialog.cpp:74 -msgid "Service name" -msgstr "服务名称" - -#: src/slic3r/GUI/BonjourDialog.cpp:76 -msgid "OctoPrint version" -msgstr "OctoPrint 版本" - -#: src/slic3r/GUI/BonjourDialog.cpp:218 -msgid "Searching for devices" -msgstr "正在查找设备" - -#: src/slic3r/GUI/BonjourDialog.cpp:225 -msgid "Finished" -msgstr "已完成" - -#: src/slic3r/GUI/ButtonsDescription.cpp:16 -msgid "Buttons And Text Colors Description" -msgstr "按钮和文本颜色描述" - -#: src/slic3r/GUI/ButtonsDescription.cpp:36 -msgid "Value is the same as the system value" -msgstr "值与系统值相同" - -#: src/slic3r/GUI/ButtonsDescription.cpp:53 -msgid "" -"Value was changed and is not equal to the system value or the last saved " -"preset" -msgstr "值已更改, 不等于系统值或上次保存的预设值" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:18 -msgid "Upgrade" -msgstr "升级" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:20 -msgid "Downgrade" -msgstr "降级" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:22 -msgid "Before roll back" -msgstr "回滚前" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:24 -msgid "User" -msgstr "用户" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:27 -msgid "Unknown" -msgstr "未知" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:39 -msgid "Active" -msgstr "激活" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:45 -msgid "slic3r version" -msgstr "slic3r 版本" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:46 src/slic3r/GUI/Preset.cpp:1311 -msgid "print" -msgstr "打印" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:47 -msgid "filaments" -msgstr "耗材" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:48 src/slic3r/GUI/Preset.cpp:1315 -msgid "printer" -msgstr "打印机" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 src/slic3r/GUI/Tab.cpp:958 -msgid "vendor" -msgstr "供应商" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:52 -msgid "version" -msgstr "版本" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:53 -msgid "min slic3r version" -msgstr "最低 slic3r 版本" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:55 -msgid "max slic3r version" -msgstr "最高 slic3r 版本" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:58 -msgid "model" -msgstr "模型" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:58 -msgid "variants" -msgstr "变种" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70 -#, c-format -msgid "Incompatible with this %s" -msgstr "与此 %s 不兼容" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:73 -msgid "Activate" -msgstr "激活" - -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:99 -msgid "Configuration Snapshots" -msgstr "配置快照" - -#: src/slic3r/GUI/ConfigWizard.cpp:123 -msgid "nozzle" -msgstr "喷嘴" - -#: src/slic3r/GUI/ConfigWizard.cpp:127 -msgid "Alternate nozzles:" -msgstr "备用喷嘴:" - -#: src/slic3r/GUI/ConfigWizard.cpp:193 -msgid "All standard" -msgstr "所有标准" - -#: src/slic3r/GUI/ConfigWizard.cpp:194 src/slic3r/GUI/Tab.cpp:3333 -msgid "All" -msgstr "所有" - -#: src/slic3r/GUI/ConfigWizard.cpp:195 src/slic3r/GUI/Plater.cpp:469 -#: src/slic3r/GUI/Plater.cpp:607 src/libslic3r/GCode/PreviewData.cpp:146 -msgid "None" -msgstr "无" - -#: src/slic3r/GUI/ConfigWizard.cpp:301 -#, c-format -msgid "Welcome to the %s Configuration Assistant" -msgstr "欢迎访问 %s 配置助手" - -#: src/slic3r/GUI/ConfigWizard.cpp:303 -#, c-format -msgid "Welcome to the %s Configuration Wizard" -msgstr "欢迎访问 %s 配置向导" - -#: src/slic3r/GUI/ConfigWizard.cpp:305 -msgid "Welcome" -msgstr "欢迎" - -#: src/slic3r/GUI/ConfigWizard.cpp:309 src/slic3r/GUI/GUI_App.cpp:791 -#, c-format -msgid "Run %s" -msgstr "运行 %s" - -#: src/slic3r/GUI/ConfigWizard.cpp:311 -#, c-format -msgid "" -"Hello, welcome to %s! This %s helps you with the initial configuration; just " -"a few settings and you will be ready to print." -msgstr "" -"您好,欢迎来到 %s!此 %s 可帮助您进行初始配置;只需几个设置,您就可以打印。" - -#: src/slic3r/GUI/ConfigWizard.cpp:316 -msgid "" -"Remove user profiles - install from scratch (a snapshot will be taken " -"beforehand)" -msgstr "删除用户配置文件-从头开始安装 (将事先创建快照)" - -#: src/slic3r/GUI/ConfigWizard.cpp:347 -#, c-format -msgid "%s Family" -msgstr "%s 系列" - -#: src/slic3r/GUI/ConfigWizard.cpp:384 -msgid "Custom Printer Setup" -msgstr "自定义打印机设置" - -#: src/slic3r/GUI/ConfigWizard.cpp:384 -msgid "Custom Printer" -msgstr "自定义打印机" - -#: src/slic3r/GUI/ConfigWizard.cpp:386 -msgid "Define a custom printer profile" -msgstr "定义自定义打印机配置文件" - -#: src/slic3r/GUI/ConfigWizard.cpp:388 -msgid "Custom profile name:" -msgstr "自定义配置文件名称:" - -#: src/slic3r/GUI/ConfigWizard.cpp:412 -msgid "Automatic updates" -msgstr "自动更新" - -#: src/slic3r/GUI/ConfigWizard.cpp:412 -msgid "Updates" -msgstr "更新" - -#: src/slic3r/GUI/ConfigWizard.cpp:420 src/slic3r/GUI/Preferences.cpp:69 -msgid "Check for application updates" -msgstr "检查应用程序更新" - -#: src/slic3r/GUI/ConfigWizard.cpp:424 -#, c-format -msgid "" -"If enabled, %s checks for new application versions online. When a new " -"version becomes available, a notification is displayed at the next " -"application startup (never during program usage). This is only a " -"notification mechanisms, no automatic installation is done." -msgstr "" -"如果启用,%s 将联机检查新的应用程序版本。当新版本可用时,在下次应用程序启动时" -"将会显示通知(在程序使用期间从不显示通知)。这只是一个通知机制,不会自动安" -"装。" - -#: src/slic3r/GUI/ConfigWizard.cpp:430 src/slic3r/GUI/Preferences.cpp:77 -msgid "Update built-in Presets automatically" -msgstr "自动更新内置预设" - -#: src/slic3r/GUI/ConfigWizard.cpp:434 -#, c-format -msgid "" -"If enabled, %s downloads updates of built-in system presets in the " -"background.These updates are downloaded into a separate temporary location." -"When a new preset version becomes available it is offered at application " -"startup." -msgstr "" -"如果启用,%s 会在后台下载内置系统预设的更新。这些更新将下载到单独的临时位置。" -"当新的预设版本可用时,它会在应用程序启动时提示。" - -#: src/slic3r/GUI/ConfigWizard.cpp:437 -msgid "" -"Updates are never applied without user's consent and never overwrite user's " -"customized settings." -msgstr "未经用户同意,绝不会应用更新,也绝不会覆盖用户的自定义设置。" - -#: src/slic3r/GUI/ConfigWizard.cpp:442 -msgid "" -"Additionally a backup snapshot of the whole configuration is created before " -"an update is applied." -msgstr "此外,在应用更新之前,将创建整个配置的备份快照。" - -#: src/slic3r/GUI/ConfigWizard.cpp:449 -msgid "Other Vendors" -msgstr "其他供应商" - -#: src/slic3r/GUI/ConfigWizard.cpp:451 -#, c-format -msgid "Pick another vendor supported by %s:" -msgstr "选择由 %s 支持的其他供应商:" - -#: src/slic3r/GUI/ConfigWizard.cpp:497 -msgid "Firmware Type" -msgstr "固件类型" - -#: src/slic3r/GUI/ConfigWizard.cpp:497 src/slic3r/GUI/Tab.cpp:2146 -msgid "Firmware" -msgstr "固件" - -#: src/slic3r/GUI/ConfigWizard.cpp:501 -msgid "Choose the type of firmware used by your printer." -msgstr "选择打印机使用的固件类型。" - -#: src/slic3r/GUI/ConfigWizard.cpp:535 -msgid "Bed Shape and Size" -msgstr "热床形状和大小" - -#: src/slic3r/GUI/ConfigWizard.cpp:538 -msgid "Set the shape of your printer's bed." -msgstr "设置打印机热床的形状。" - -#: src/slic3r/GUI/ConfigWizard.cpp:558 -msgid "Filament and Nozzle Diameters" -msgstr "耗材丝和喷嘴直径" - -#: src/slic3r/GUI/ConfigWizard.cpp:558 -msgid "Print Diameters" -msgstr "打印直径" - -#: src/slic3r/GUI/ConfigWizard.cpp:572 -msgid "Enter the diameter of your printer's hot end nozzle." -msgstr "输入打印机热端喷嘴的直径。" - -#: src/slic3r/GUI/ConfigWizard.cpp:575 -msgid "Nozzle Diameter:" -msgstr "喷嘴直径:" - -#: src/slic3r/GUI/ConfigWizard.cpp:585 -msgid "Enter the diameter of your filament." -msgstr "输入耗材丝的直径。" - -#: src/slic3r/GUI/ConfigWizard.cpp:586 -msgid "" -"Good precision is required, so use a caliper and do multiple measurements " -"along the filament, then compute the average." -msgstr "" -"需要良好的精度, 因此请使用游标卡尺, 沿耗材丝进行多次测量, 然后计算平均值。" - -#: src/slic3r/GUI/ConfigWizard.cpp:589 -msgid "Filament Diameter:" -msgstr "耗材丝直径:" - -#: src/slic3r/GUI/ConfigWizard.cpp:623 -msgid "Extruder and Bed Temperatures" -msgstr "挤出机和热床温温度" - -#: src/slic3r/GUI/ConfigWizard.cpp:623 -msgid "Temperatures" -msgstr "温度" - -#: src/slic3r/GUI/ConfigWizard.cpp:639 -msgid "Enter the temperature needed for extruding your filament." -msgstr "输入挤出耗材丝所需的温度。" - -#: src/slic3r/GUI/ConfigWizard.cpp:640 -msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS." -msgstr "根据经验, PLA 为160至 230°C, ABS 为215至250°C。" - -#: src/slic3r/GUI/ConfigWizard.cpp:643 -msgid "Extrusion Temperature:" -msgstr "挤出温度:" - -#: src/slic3r/GUI/ConfigWizard.cpp:644 src/slic3r/GUI/ConfigWizard.cpp:658 -msgid "°C" -msgstr "°C" - -#: src/slic3r/GUI/ConfigWizard.cpp:653 -msgid "" -"Enter the bed temperature needed for getting your filament to stick to your " -"heated bed." -msgstr "输入让你的耗材粘在热床上所需的床温。" - -#: src/slic3r/GUI/ConfigWizard.cpp:654 -msgid "" -"A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have " -"no heated bed." -msgstr "根据经验, PLA 为 60°C, ABS 为 110°C. 如果没有加热床, 请保留零。" - -#: src/slic3r/GUI/ConfigWizard.cpp:657 -msgid "Bed Temperature:" -msgstr "热床温度:" - -#: src/slic3r/GUI/ConfigWizard.cpp:1138 -msgid "Select all standard printers" -msgstr "选择所有标准打印机" - -#: src/slic3r/GUI/ConfigWizard.cpp:1141 -msgid "< &Back" -msgstr "< &返回" - -#: src/slic3r/GUI/ConfigWizard.cpp:1142 -msgid "&Next >" -msgstr "&继续 >" - -#: src/slic3r/GUI/ConfigWizard.cpp:1143 -msgid "&Finish" -msgstr "&结束" - -#: src/slic3r/GUI/ConfigWizard.cpp:1144 src/slic3r/GUI/FirmwareDialog.cpp:151 -#: src/slic3r/GUI/ProgressStatusBar.cpp:27 -msgid "Cancel" -msgstr "取消" - -#: src/slic3r/GUI/ConfigWizard.cpp:1158 -msgid "Prusa FFF Technology Printers" -msgstr "Prusa FFF 技术打印机" - -#: src/slic3r/GUI/ConfigWizard.cpp:1161 -msgid "Prusa MSLA Technology Printers" -msgstr "Prusa MSLA 技术打印机" - -#: src/slic3r/GUI/ConfigWizard.cpp:1230 -msgid "Configuration Assistant" -msgstr "配置助手" - -#: src/slic3r/GUI/ConfigWizard.cpp:1231 -msgid "Configuration &Assistant" -msgstr "配置 &助手" - -#: src/slic3r/GUI/ConfigWizard.cpp:1233 -msgid "Configuration Wizard" -msgstr "配置向导" - -#: src/slic3r/GUI/ConfigWizard.cpp:1234 -msgid "Configuration &Wizard" -msgstr "配置 &向导" - -#: src/slic3r/GUI/Field.cpp:125 -msgid "default value" -msgstr "默认值" - -#: src/slic3r/GUI/Field.cpp:128 -msgid "parameter name" -msgstr "参数名称" - -#: src/slic3r/GUI/Field.cpp:139 src/slic3r/GUI/OptionsGroup.cpp:569 -msgid "N/A" -msgstr "N/A" - -#: src/slic3r/GUI/Field.cpp:158 -#, c-format -msgid "%s doesn't support percentage" -msgstr "%s 不支持百分比" - -#: src/slic3r/GUI/Field.cpp:174 src/slic3r/GUI/Field.cpp:197 -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:337 -msgid "Invalid numeric input." -msgstr "无效的数字输入。" - -#: src/slic3r/GUI/Field.cpp:179 -msgid "Input value is out of range" -msgstr "输入值超出范围外" - -#: src/slic3r/GUI/Field.cpp:206 -#, c-format -msgid "" -"Do you mean %s%% instead of %s %s?\n" -"Select YES if you want to change this value to %s%%, \n" -"or NO if you are sure that %s %s is a correct value." -msgstr "" -"您指的是 %s%% 而不是 %s %s?\n" -"如果要将此值更改为 %s%%,请选择\"是\",\n" -"或 否,如果您确定 %s %s 是一个正确的值。" - -#: src/slic3r/GUI/Field.cpp:209 -msgid "Parameter validation" -msgstr "参数验证" - -#: src/slic3r/GUI/FirmwareDialog.cpp:150 -msgid "Flash!" -msgstr "写入!" - -#: src/slic3r/GUI/FirmwareDialog.cpp:152 -msgid "Flashing in progress. Please do not disconnect the printer!" -msgstr "烧录正在进行中。请不要断开打印机的连接!" - -#: src/slic3r/GUI/FirmwareDialog.cpp:199 -msgid "Flashing failed" -msgstr "烧录失败" - -#: src/slic3r/GUI/FirmwareDialog.cpp:282 -msgid "Flashing succeeded!" -msgstr "烧录成功!" - -#: src/slic3r/GUI/FirmwareDialog.cpp:283 -msgid "Flashing failed. Please see the avrdude log below." -msgstr "烧录失败。请参见下面的日志。" - -#: src/slic3r/GUI/FirmwareDialog.cpp:284 -msgid "Flashing cancelled." -msgstr "烧录取消。" - -#: src/slic3r/GUI/FirmwareDialog.cpp:332 -#, c-format -msgid "" -"This firmware hex file does not match the printer model.\n" -"The hex file is intended for: %s\n" -"Printer reported: %s\n" -"\n" -"Do you want to continue and flash this hex file anyway?\n" -"Please only continue if you are sure this is the right thing to do." -msgstr "" -"此固件十六进制文件与打印机型号不匹配。\n" -"十六进制文件用于: %s \n" -"打印机报告: %s \n" -" \n" -"是否仍要继续并烧录此十六进制文件?\n" -"只有在你确定这是正确的做法的情况下才能继续。" - -#: src/slic3r/GUI/FirmwareDialog.cpp:419 src/slic3r/GUI/FirmwareDialog.cpp:454 -#, c-format -msgid "" -"Multiple %s devices found. Please only connect one at a time for flashing." -msgstr "找到多个 %s 设备。请一次只连接一个设备来烧录。" - -#: src/slic3r/GUI/FirmwareDialog.cpp:436 -#, c-format -msgid "" -"The %s device was not found.\n" -"If the device is connected, please press the Reset button next to the USB " -"connector ..." -msgstr "" -"找不到 %s 设备。\n" -"如果设备已连接,请按 USB 接口旁边的\"重置\"按钮..." - -#: src/slic3r/GUI/FirmwareDialog.cpp:548 -#, c-format -msgid "The %s device could not have been found" -msgstr "找不到 %s 设备" - -#: src/slic3r/GUI/FirmwareDialog.cpp:645 -#, c-format -msgid "Error accessing port at %s: %s" -msgstr "在访问 %s: %s 端口时出错" - -#: src/slic3r/GUI/FirmwareDialog.cpp:647 -#, c-format -msgid "Error: %s" -msgstr "错误: %s" - -#: src/slic3r/GUI/FirmwareDialog.cpp:777 -msgid "Firmware flasher" -msgstr "固件烧录器" - -#: src/slic3r/GUI/FirmwareDialog.cpp:802 -msgid "Firmware image:" -msgstr "固件镜像:" - -#: src/slic3r/GUI/FirmwareDialog.cpp:805 src/slic3r/GUI/Tab.cpp:1867 -#: src/slic3r/GUI/Tab.cpp:1923 -msgid "Browse" -msgstr "浏览" - -#: src/slic3r/GUI/FirmwareDialog.cpp:807 -msgid "Serial port:" -msgstr "串行端口:" - -#: src/slic3r/GUI/FirmwareDialog.cpp:809 -msgid "Autodetected" -msgstr "自动检测" - -#: src/slic3r/GUI/FirmwareDialog.cpp:810 -msgid "Rescan" -msgstr "重新扫描" - -#: src/slic3r/GUI/FirmwareDialog.cpp:817 -msgid "Progress:" -msgstr "进度:" - -#: src/slic3r/GUI/FirmwareDialog.cpp:820 -msgid "Status:" -msgstr "状态:" - -#: src/slic3r/GUI/FirmwareDialog.cpp:821 -msgid "Ready" -msgstr "准备好了" - -#: src/slic3r/GUI/FirmwareDialog.cpp:841 -msgid "Advanced: Output log" -msgstr "高级:输出日志" - -#: src/slic3r/GUI/FirmwareDialog.cpp:852 -#: src/slic3r/GUI/PrintHostDialogs.cpp:161 -msgid "Close" -msgstr "关闭" - -#: src/slic3r/GUI/FirmwareDialog.cpp:903 -msgid "" -"Are you sure you want to cancel firmware flashing?\n" -"This could leave your printer in an unusable state!" -msgstr "" -"确实要取消固件烧录吗?\n" -"这可能会使您的打印机处于无法使用的状态!" - -#: src/slic3r/GUI/FirmwareDialog.cpp:904 -msgid "Confirmation" -msgstr "确认" - -#: src/slic3r/GUI/FirmwareDialog.cpp:907 -msgid "Cancelling..." -msgstr "正在取消...." - -#: src/slic3r/GUI/GLCanvas3D.cpp:534 -msgid "Layers heights" -msgstr "图层高度" - -#: src/slic3r/GUI/GLCanvas3D.cpp:631 -msgid "An object outside the print area was detected" -msgstr "检测到打印区域外的对象" - -#: src/slic3r/GUI/GLCanvas3D.cpp:632 -msgid "A toolpath outside the print area was detected" -msgstr "检测到打印区域外的工具路径" - -#: src/slic3r/GUI/GLCanvas3D.cpp:633 -msgid "SLA supports outside the print area were detected" -msgstr "检测到打印区域外的 SLA 支撑" - -#: src/slic3r/GUI/GLCanvas3D.cpp:634 -msgid "Some objects are not visible when editing supports" -msgstr "某些对象在支撑编辑时不可见" - -#: src/slic3r/GUI/GLCanvas3D.cpp:636 -msgid "" -"An object outside the print area was detected\n" -"Resolve the current problem to continue slicing" -msgstr "" -"检测到打印区域外的对象\n" -"解决当前问题以继续切片" - -#: src/slic3r/GUI/GLCanvas3D.cpp:1733 -msgid "Mirror Object" -msgstr "镜像物体 Mirror Object" - -#: src/slic3r/GUI/GLCanvas3D.cpp:2943 -msgid "Move Object" -msgstr "移动对象" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Undo History" -msgstr "撤销历史操作" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3479 -msgid "Redo History" -msgstr "重做历史操作" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, c-format -msgid "Undo %1$d Action" -msgid_plural "Undo %1$d Actions" -msgstr[0] "撤消 %1$d 操作" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3497 -#, c-format -msgid "Redo %1$d Action" -msgid_plural "Redo %1$d Actions" -msgstr[0] "重做 %1$d 操作" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3544 -msgid "Add..." -msgstr "添加..." - -#: src/slic3r/GUI/GLCanvas3D.cpp:3552 src/slic3r/GUI/GUI_ObjectList.cpp:1504 -#: src/slic3r/GUI/Plater.cpp:3515 src/slic3r/GUI/Plater.cpp:3534 -#: src/slic3r/GUI/Tab.cpp:3283 -msgid "Delete" -msgstr "删除" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3561 src/slic3r/GUI/Plater.cpp:4163 -msgid "Delete all" -msgstr "全部删除" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3570 src/slic3r/GUI/KBShortcutsDialog.cpp:137 -#: src/slic3r/GUI/Plater.cpp:2676 -msgid "Arrange" -msgstr "整理" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3570 src/slic3r/GUI/KBShortcutsDialog.cpp:138 -msgid "Arrange selection" -msgstr "整理选中的" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3582 -msgid "Copy" -msgstr "复制" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3591 -msgid "Paste" -msgstr "粘贴" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3603 src/slic3r/GUI/Plater.cpp:3395 -#: src/slic3r/GUI/Plater.cpp:3407 src/slic3r/GUI/Plater.cpp:3521 -msgid "Add instance" -msgstr "添加实例" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3614 src/slic3r/GUI/Plater.cpp:3523 -msgid "Remove instance" -msgstr "删除实例" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3627 -msgid "Split to objects" -msgstr "拆分为对象" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3637 src/slic3r/GUI/GUI_ObjectList.cpp:1343 -msgid "Split to parts" -msgstr "拆分为零件" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3650 src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Height ranges" -msgstr "高度范围" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3701 src/slic3r/GUI/MainFrame.cpp:570 -msgid "Undo" -msgstr "撤销" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3701 src/slic3r/GUI/GLCanvas3D.cpp:3734 -msgid "Click right mouse button to open History" -msgstr "单击鼠标右键打开\"历史记录\"" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3718 -msgid "Next Undo action: %1%" -msgstr "下一个撤消操作: %1%" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3734 src/slic3r/GUI/MainFrame.cpp:573 -msgid "Redo" -msgstr "重做" - -#: src/slic3r/GUI/GLCanvas3D.cpp:3750 -msgid "Next Redo action: %1%" -msgstr "下一个重做操作: %1%" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5528 -msgid "Selection-Add from rectangle" -msgstr "从矩形选择-添加" - -#: src/slic3r/GUI/GLCanvas3D.cpp:5547 -msgid "Selection-Remove from rectangle" -msgstr "从矩形中选择-删除" - -#: src/slic3r/GUI/GLCanvas3DManager.cpp:273 -#, c-format -msgid "" -"PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \n" -"while OpenGL version %s, render %s, vendor %s was detected." -msgstr "" -"PrusaSlicer 需要支持 OpenGL 2.0 的图形驱动程序才能正确运行,\n" -"当检测到 OpenGL 版本 %s、呈现 %s、供应商 %s 时。" - -#: src/slic3r/GUI/GLCanvas3DManager.cpp:276 -msgid "You may need to update your graphics card driver." -msgstr "您可能需要更新图形卡驱动程序。" - -#: src/slic3r/GUI/GLCanvas3DManager.cpp:279 -msgid "" -"As a workaround, you may run PrusaSlicer with a software rendered 3D " -"graphics by running prusa-slicer.exe with the --sw_renderer parameter." -msgstr "" -"作为解决方法,您可以使用使用 --sw_renderer 参数运行 prusa-slicer.exe 切片器," -"来打开 3D 图形效果的 PrusaSlicer。" - -#: src/slic3r/GUI/GLCanvas3DManager.cpp:281 -msgid "Unsupported OpenGL version" -msgstr "不支持的 OpenGL 版本" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:40 -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:145 src/libslic3r/PrintConfig.cpp:3212 -msgid "Cut" -msgstr "剪切" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:150 -msgid "Keep upper part" -msgstr "保留上半部分" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:151 -msgid "Keep lower part" -msgstr "保留下半部分" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:152 -msgid "Rotate lower part upwards" -msgstr "旋转下部向上" - -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:155 -msgid "Perform cut" -msgstr "执行切割" - -#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:45 -msgid "Place on face" -msgstr "放置在平面" - -#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:48 -msgid "Move" -msgstr "移动" - -#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:177 -msgid "Position (mm)" -msgstr "位置 (mm)" - -#: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:177 -msgid "Displacement (mm)" -msgstr "位移 (mm)" - -#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:449 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:477 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:496 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:514 -#: src/libslic3r/PrintConfig.cpp:3261 -msgid "Rotate" -msgstr "旋转" - -#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:482 -msgid "Rotation (deg)" -msgstr "旋转(deg)" - -#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:47 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:392 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:497 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:515 -#: src/libslic3r/PrintConfig.cpp:3276 -msgid "Scale" -msgstr "规模" - -#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:292 -msgid "Scale (%)" -msgstr "缩放 (%)" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:44 -msgid "Head diameter" -msgstr "头直径" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:45 -msgid "Lock supports under new islands" -msgstr "新岛屿下的锁支撑" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:46 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1449 -msgid "Remove selected points" -msgstr "删除所选点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:47 -msgid "Remove all points" -msgstr "删除所有点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:48 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1452 -msgid "Apply changes" -msgstr "应用更改" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:49 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1453 -msgid "Discard changes" -msgstr "放弃更改" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:50 -msgid "Minimal points distance" -msgstr "最小点距离" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:51 -#: src/libslic3r/PrintConfig.cpp:2651 -msgid "Support points density" -msgstr "支撑点密度" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:52 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1455 -msgid "Auto-generate points" -msgstr "自动生成点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:53 -msgid "Manual editing" -msgstr "手动编辑" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:54 -msgid "Clipping of view" -msgstr "剪切视图" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:55 -msgid "Reset direction" -msgstr "重置方向" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:531 -msgid "Add support point" -msgstr "添加支撑点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:719 -msgid "Delete support point" -msgstr "删除支撑点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:920 -msgid "Change point head diameter" -msgstr "改变支撑点的头直径" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:986 -msgid "Support parameter change" -msgstr "支撑参数更改" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1094 -msgid "SLA Support Points" -msgstr "SLA 支撑点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1115 -msgid "SLA gizmo turned on" -msgstr "SLA Gizmo 已打开" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1137 -msgid "Do you want to save your manually edited support points?" -msgstr "是否要保存手动编辑的支撑点?" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1138 -msgid "Save changes?" -msgstr "保存更改吗?" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1150 -msgid "SLA gizmo turned off" -msgstr "SLA Gizmo 已关闭" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1187 -msgid "Move support point" -msgstr "移动支撑点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1286 -msgid "Support points edit" -msgstr "支撑点编辑" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1355 -msgid "" -"Autogeneration will erase all manually edited points.\n" -"\n" -"Are you sure you want to do it?\n" -msgstr "" -"自动生成将擦除所有手动编辑的点。\n" -"\n" -"是否确实要这样做?\n" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1357 src/slic3r/GUI/GUI.cpp:289 -#: src/slic3r/GUI/WipeTowerDialog.cpp:44 src/slic3r/GUI/WipeTowerDialog.cpp:328 -msgid "Warning" -msgstr "警告" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1360 -msgid "Autogenerate support points" -msgstr "自动生成支撑点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1412 -msgid "SLA gizmo keyboard shortcuts" -msgstr "SLA Gizmo 键盘快捷键" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1423 -msgid "Note: some shortcuts work in (non)editing mode only." -msgstr "注意:某些快捷方式仅在(非)编辑模式下工作。" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1441 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1444 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1445 -msgid "Left click" -msgstr "左鍵單擊" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1441 -msgid "Add point" -msgstr "添加点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1442 -msgid "Right click" -msgstr "右键点击" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1442 -msgid "Remove point" -msgstr "移除点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1443 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1446 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1447 -msgid "Drag" -msgstr "拖动" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1443 -msgid "Move point" -msgstr "移动点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1444 -msgid "Add point to selection" -msgstr "将点添加到选择" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1445 -msgid "Remove point from selection" -msgstr "从选择中删除点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1446 -msgid "Select by rectangle" -msgstr "按矩形选择" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1447 -msgid "Deselect by rectangle" -msgstr "按矩形取消选择" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1448 -msgid "Select all points" -msgstr "选择所有点" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1450 -msgid "Mouse wheel" -msgstr "鼠标滚动" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1450 -msgid "Move clipping plane" -msgstr "移动剪切平面" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1451 -msgid "Reset clipping plane" -msgstr "重置剪切平面" - -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1454 -msgid "Switch to editing mode" -msgstr "切换到编辑模式" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:569 -msgid "Gizmo-Place on Face" -msgstr "Gizmo-放在面上" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:641 -msgid "Gizmo-Move" -msgstr "Gizmo-移动" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:646 -msgid "Gizmo-Scale" -msgstr "Gizmo-缩放" - -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:651 -msgid "Gizmo-Rotate" -msgstr "Gizmo-旋转" - -#: src/slic3r/GUI/GUI.cpp:141 src/slic3r/GUI/Tab.cpp:3142 -msgid "It's impossible to print multi-part object(s) with SLA technology." -msgstr "无法使用 SLA 技术打印多部分对象。" - -#: src/slic3r/GUI/GUI.cpp:142 -msgid "Please check and fix your object list." -msgstr "请检查并修复对象列表。" - -#: src/slic3r/GUI/GUI.cpp:143 src/slic3r/GUI/Plater.cpp:2245 -#: src/slic3r/GUI/Tab.cpp:3144 -msgid "Attention!" -msgstr "注意!" - -#: src/slic3r/GUI/GUI.cpp:283 -msgid "Notice" -msgstr "通知" - -#: src/slic3r/GUI/GUI_App.cpp:132 -#, c-format -msgid "" -"%s has encountered an error. It was likely caused by running out of memory. " -"If you are sure you have enough RAM on your system, this may also be a bug " -"and we would be glad if you reported it.\n" -"\n" -"The application will now terminate." -msgstr "" -"%s 遇到错误。这可能是由于内存不足造成的。如果您确定您的系统上有足够的内存,这" -"可能也是一个软件错误,欢迎你向我们提交问题报告。\n" -"\n" -"应用程序现在将终止。" - -#: src/slic3r/GUI/GUI_App.cpp:135 -msgid "Fatal error" -msgstr "致命错误" - -#: src/slic3r/GUI/GUI_App.cpp:443 -msgid "Changing of an application language" -msgstr "更改应用程序语言" - -#: src/slic3r/GUI/GUI_App.cpp:451 src/slic3r/GUI/GUI_App.cpp:460 -msgid "Recreating" -msgstr "重造" - -#: src/slic3r/GUI/GUI_App.cpp:464 -msgid "Loading of current presets" -msgstr "加载当前预设" - -#: src/slic3r/GUI/GUI_App.cpp:472 -msgid "Loading of a mode view" -msgstr "加载模式视图" - -#: src/slic3r/GUI/GUI_App.cpp:552 -msgid "Choose one file (3MF/AMF):" -msgstr "选择一个文件 (3MF/AMF):" - -#: src/slic3r/GUI/GUI_App.cpp:564 -msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" -msgstr "选择一个或多个文件 (STL/OBJ/AMF/3MF/PRUSA):" - -#: src/slic3r/GUI/GUI_App.cpp:626 -msgid "Select the language" -msgstr "选择语言" - -#: src/slic3r/GUI/GUI_App.cpp:626 -msgid "Language" -msgstr "语言" - -#: src/slic3r/GUI/GUI_App.cpp:794 -msgid "&Configuration Snapshots" -msgstr "&配置快照" - -#: src/slic3r/GUI/GUI_App.cpp:794 -msgid "Inspect / activate configuration snapshots" -msgstr "检查/激活配置快照" - -#: src/slic3r/GUI/GUI_App.cpp:795 -msgid "Take Configuration &Snapshot" -msgstr "保存配置 &快照" - -#: src/slic3r/GUI/GUI_App.cpp:795 -msgid "Capture a configuration snapshot" -msgstr "捕获配置快照" - -#: src/slic3r/GUI/GUI_App.cpp:798 -msgid "&Preferences" -msgstr "&首选项" - -#: src/slic3r/GUI/GUI_App.cpp:804 -msgid "Application preferences" -msgstr "应用程序首选项" - -#: src/slic3r/GUI/GUI_App.cpp:807 src/slic3r/GUI/wxExtensions.cpp:3041 -msgid "Simple" -msgstr "简单" - -#: src/slic3r/GUI/GUI_App.cpp:807 -msgid "Simple View Mode" -msgstr "简单界面模式" - -#: src/slic3r/GUI/GUI_App.cpp:808 src/slic3r/GUI/GUI_ObjectList.cpp:97 -#: src/slic3r/GUI/GUI_ObjectList.cpp:620 src/slic3r/GUI/Tab.cpp:1058 -#: src/slic3r/GUI/Tab.cpp:1073 src/slic3r/GUI/Tab.cpp:1171 -#: src/slic3r/GUI/Tab.cpp:1174 src/slic3r/GUI/Tab.cpp:1682 -#: src/slic3r/GUI/Tab.cpp:2166 src/slic3r/GUI/Tab.cpp:3782 -#: src/slic3r/GUI/wxExtensions.cpp:3042 src/libslic3r/PrintConfig.cpp:83 -#: src/libslic3r/PrintConfig.cpp:197 src/libslic3r/PrintConfig.cpp:360 -#: src/libslic3r/PrintConfig.cpp:1013 src/libslic3r/PrintConfig.cpp:2226 -msgid "Advanced" -msgstr "高级" - -#: src/slic3r/GUI/GUI_App.cpp:808 -msgid "Advanced View Mode" -msgstr "高级界面模式" - -#: src/slic3r/GUI/GUI_App.cpp:809 src/slic3r/GUI/wxExtensions.cpp:3043 -msgid "Expert" -msgstr "专家" - -#: src/slic3r/GUI/GUI_App.cpp:809 -msgid "Expert View Mode" -msgstr "专家界面模式" - -#: src/slic3r/GUI/GUI_App.cpp:814 -msgid "Mode" -msgstr "模式" - -#: src/slic3r/GUI/GUI_App.cpp:814 -#, c-format -msgid "%s View Mode" -msgstr "%s 视图模式" - -#: src/slic3r/GUI/GUI_App.cpp:816 -msgid "Change Application &Language" -msgstr "更改应用程序&语言" - -#: src/slic3r/GUI/GUI_App.cpp:818 -msgid "Flash printer &firmware" -msgstr "烧录打印机&固件" - -#: src/slic3r/GUI/GUI_App.cpp:818 -msgid "Upload a firmware image into an Arduino based printer" -msgstr "将固件镜像上传到基于 arduino 的打印机" - -#: src/slic3r/GUI/GUI_App.cpp:830 -msgid "Taking configuration snapshot" -msgstr "创建配置快照" - -#: src/slic3r/GUI/GUI_App.cpp:830 -msgid "Snapshot name" -msgstr "快照名称" - -#: src/slic3r/GUI/GUI_App.cpp:873 -msgid "" -"Switching the language will trigger application restart.\n" -"You will lose content of the plater." -msgstr "" -"切换语言将触发应用程序重新启动。\n" -"您将丢失未保存的内容。" - -#: src/slic3r/GUI/GUI_App.cpp:875 -msgid "Do you want to proceed?" -msgstr "是否继续?" - -#: src/slic3r/GUI/GUI_App.cpp:876 -msgid "Language selection" -msgstr "语言选择" - -#: src/slic3r/GUI/GUI_App.cpp:899 -msgid "&Configuration" -msgstr "&配置" - -#: src/slic3r/GUI/GUI_App.cpp:921 -msgid "The presets on the following tabs were modified" -msgstr "以下选项卡上的预设已修改" - -#: src/slic3r/GUI/GUI_App.cpp:921 src/slic3r/GUI/Tab.cpp:3130 -msgid "Discard changes and continue anyway?" -msgstr "是否放弃更改并继续?" - -#: src/slic3r/GUI/GUI_App.cpp:924 -msgid "Unsaved Presets" -msgstr "未保存的预设" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Start at height" -msgstr "开始高度" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 -msgid "Stop at height" -msgstr "停止高度" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 src/slic3r/GUI/Tab.cpp:1030 -#: src/libslic3r/PrintConfig.cpp:66 -msgid "Layer height" -msgstr "层高度" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:153 -msgid "Remove layer range" -msgstr "移除图层范围" - -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:162 -msgid "Add layer range" -msgstr "添加图层范围" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:34 src/slic3r/GUI/GUI_ObjectList.cpp:88 -#: src/slic3r/GUI/GUI_ObjectList.cpp:611 src/libslic3r/PrintConfig.cpp:67 -#: src/libslic3r/PrintConfig.cpp:160 src/libslic3r/PrintConfig.cpp:392 -#: src/libslic3r/PrintConfig.cpp:453 src/libslic3r/PrintConfig.cpp:461 -#: src/libslic3r/PrintConfig.cpp:867 src/libslic3r/PrintConfig.cpp:1051 -#: src/libslic3r/PrintConfig.cpp:1354 src/libslic3r/PrintConfig.cpp:1420 -#: src/libslic3r/PrintConfig.cpp:1601 src/libslic3r/PrintConfig.cpp:2037 -#: src/libslic3r/PrintConfig.cpp:2095 -msgid "Layers and Perimeters" -msgstr "图层和周长" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:89 -#: src/slic3r/GUI/GUI_ObjectList.cpp:612 src/slic3r/GUI/Plater.cpp:497 -#: src/slic3r/GUI/Tab.cpp:1062 src/slic3r/GUI/Tab.cpp:1063 -#: src/libslic3r/PrintConfig.cpp:177 src/libslic3r/PrintConfig.cpp:400 -#: src/libslic3r/PrintConfig.cpp:420 src/libslic3r/PrintConfig.cpp:754 -#: src/libslic3r/PrintConfig.cpp:768 src/libslic3r/PrintConfig.cpp:805 -#: src/libslic3r/PrintConfig.cpp:958 src/libslic3r/PrintConfig.cpp:968 -#: src/libslic3r/PrintConfig.cpp:986 src/libslic3r/PrintConfig.cpp:1004 -#: src/libslic3r/PrintConfig.cpp:1023 src/libslic3r/PrintConfig.cpp:1708 -#: src/libslic3r/PrintConfig.cpp:1725 -msgid "Infill" -msgstr "填充" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:36 src/slic3r/GUI/GUI_ObjectList.cpp:90 -#: src/slic3r/GUI/GUI_ObjectList.cpp:613 src/slic3r/GUI/GUI_Preview.cpp:244 -#: src/slic3r/GUI/Tab.cpp:1091 src/slic3r/GUI/Tab.cpp:1092 -#: src/libslic3r/PrintConfig.cpp:344 src/libslic3r/PrintConfig.cpp:1481 -#: src/libslic3r/PrintConfig.cpp:1830 src/libslic3r/PrintConfig.cpp:1836 -#: src/libslic3r/PrintConfig.cpp:1844 src/libslic3r/PrintConfig.cpp:1856 -#: src/libslic3r/PrintConfig.cpp:1866 src/libslic3r/PrintConfig.cpp:1874 -#: src/libslic3r/PrintConfig.cpp:1889 src/libslic3r/PrintConfig.cpp:1910 -#: src/libslic3r/PrintConfig.cpp:1921 src/libslic3r/PrintConfig.cpp:1937 -#: src/libslic3r/PrintConfig.cpp:1946 src/libslic3r/PrintConfig.cpp:1955 -#: src/libslic3r/PrintConfig.cpp:1966 src/libslic3r/PrintConfig.cpp:1980 -#: src/libslic3r/PrintConfig.cpp:1988 src/libslic3r/PrintConfig.cpp:1989 -#: src/libslic3r/PrintConfig.cpp:1998 src/libslic3r/PrintConfig.cpp:2006 -#: src/libslic3r/PrintConfig.cpp:2020 src/libslic3r/GCode/PreviewData.cpp:156 -msgid "Support material" -msgstr "支撑材料" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:39 src/slic3r/GUI/GUI_ObjectList.cpp:94 -#: src/slic3r/GUI/GUI_ObjectList.cpp:617 src/libslic3r/PrintConfig.cpp:2202 -#: src/libslic3r/PrintConfig.cpp:2210 -msgid "Wipe options" -msgstr "擦除选项" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:45 -msgid "Pad and Support" -msgstr "垫和支撑" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:51 -msgid "Add part" -msgstr "添加部件" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:52 -msgid "Add modifier" -msgstr "添加修改器" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:53 -msgid "Add support enforcer" -msgstr "添加支撑生成器" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:54 -msgid "Add support blocker" -msgstr "添加支撑屏蔽" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:91 src/slic3r/GUI/GUI_ObjectList.cpp:614 -#: src/slic3r/GUI/GUI_Preview.cpp:223 src/slic3r/GUI/Tab.cpp:1116 -#: src/libslic3r/PrintConfig.cpp:209 src/libslic3r/PrintConfig.cpp:441 -#: src/libslic3r/PrintConfig.cpp:896 src/libslic3r/PrintConfig.cpp:1024 -#: src/libslic3r/PrintConfig.cpp:1410 src/libslic3r/PrintConfig.cpp:1647 -#: src/libslic3r/PrintConfig.cpp:1696 src/libslic3r/PrintConfig.cpp:1747 -#: src/libslic3r/PrintConfig.cpp:2080 -msgid "Speed" -msgstr "速度" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:92 src/slic3r/GUI/GUI_ObjectList.cpp:615 -#: src/slic3r/GUI/Tab.cpp:1151 src/slic3r/GUI/Tab.cpp:2040 -#: src/libslic3r/PrintConfig.cpp:471 src/libslic3r/PrintConfig.cpp:979 -#: src/libslic3r/PrintConfig.cpp:1389 src/libslic3r/PrintConfig.cpp:1717 -#: src/libslic3r/PrintConfig.cpp:1902 src/libslic3r/PrintConfig.cpp:1928 -msgid "Extruders" -msgstr "挤出机" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:93 src/slic3r/GUI/GUI_ObjectList.cpp:616 -#: src/libslic3r/PrintConfig.cpp:431 src/libslic3r/PrintConfig.cpp:538 -#: src/libslic3r/PrintConfig.cpp:855 src/libslic3r/PrintConfig.cpp:987 -#: src/libslic3r/PrintConfig.cpp:1398 src/libslic3r/PrintConfig.cpp:1737 -#: src/libslic3r/PrintConfig.cpp:1911 src/libslic3r/PrintConfig.cpp:2069 -msgid "Extrusion Width" -msgstr "挤出宽度" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:99 src/slic3r/GUI/GUI_ObjectList.cpp:622 -#: src/slic3r/GUI/Plater.cpp:465 src/slic3r/GUI/Tab.cpp:3734 -#: src/slic3r/GUI/Tab.cpp:3735 src/libslic3r/PrintConfig.cpp:2501 -#: src/libslic3r/PrintConfig.cpp:2508 src/libslic3r/PrintConfig.cpp:2517 -#: src/libslic3r/PrintConfig.cpp:2526 src/libslic3r/PrintConfig.cpp:2536 -#: src/libslic3r/PrintConfig.cpp:2562 src/libslic3r/PrintConfig.cpp:2569 -#: src/libslic3r/PrintConfig.cpp:2580 src/libslic3r/PrintConfig.cpp:2590 -#: src/libslic3r/PrintConfig.cpp:2599 src/libslic3r/PrintConfig.cpp:2612 -#: src/libslic3r/PrintConfig.cpp:2622 src/libslic3r/PrintConfig.cpp:2631 -#: src/libslic3r/PrintConfig.cpp:2641 src/libslic3r/PrintConfig.cpp:2652 -#: src/libslic3r/PrintConfig.cpp:2660 -msgid "Supports" -msgstr "支持" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:100 src/slic3r/GUI/GUI_ObjectList.cpp:623 -#: src/slic3r/GUI/Plater.cpp:603 src/slic3r/GUI/Tab.cpp:3766 -#: src/slic3r/GUI/Tab.cpp:3767 src/libslic3r/PrintConfig.cpp:2668 -#: src/libslic3r/PrintConfig.cpp:2675 src/libslic3r/PrintConfig.cpp:2689 -#: src/libslic3r/PrintConfig.cpp:2699 src/libslic3r/PrintConfig.cpp:2721 -#: src/libslic3r/PrintConfig.cpp:2732 src/libslic3r/PrintConfig.cpp:2739 -#: src/libslic3r/PrintConfig.cpp:2750 src/libslic3r/PrintConfig.cpp:2759 -#: src/libslic3r/PrintConfig.cpp:2768 -msgid "Pad" -msgstr "垫" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:260 -msgid "Name" -msgstr "名称" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:271 src/slic3r/GUI/GUI_ObjectList.cpp:373 -msgid "Editing" -msgstr "编辑" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:318 -#, c-format -msgid "Auto-repaired (%d errors):\n" -msgstr "自动修复(%d 错误):\n" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:325 -msgid "degenerate facets" -msgstr "简并平面" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:326 -msgid "edges fixed" -msgstr "修复边缘" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:327 -msgid "facets removed" -msgstr "已移除平面" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:328 -msgid "facets added" -msgstr "已添加平面" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:329 -msgid "facets reversed" -msgstr "已反转平面" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:330 -msgid "backwards edges" -msgstr "反向边缘" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:338 -msgid "Right button click the icon to fix STL through Netfabb" -msgstr "右按钮单击图标, 通过 Netfabb 修复 STL" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:375 -msgid "Right button click the icon to change the object settings" -msgstr "右键单击图标以更改对象设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:377 -msgid "Click the icon to change the object settings" -msgstr "单击图标可更改对象设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:381 -msgid "Right button click the icon to change the object printable property" -msgstr "右键单击图标以更改对象可打印属性" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:383 -msgid "Click the icon to change the object printable property" -msgstr "单击图标可更改对象可打印属性" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:428 src/slic3r/GUI/GUI_ObjectList.cpp:449 -#: src/slic3r/GUI/GUI_ObjectList.cpp:461 src/slic3r/GUI/GUI_ObjectList.cpp:3642 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3652 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3684 src/slic3r/GUI/wxExtensions.cpp:603 -#: src/slic3r/GUI/wxExtensions.cpp:660 src/slic3r/GUI/wxExtensions.cpp:685 -#: src/slic3r/GUI/wxExtensions.cpp:897 -msgid "default" -msgstr "默认" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:433 src/slic3r/GUI/Tab.cpp:1646 -#: src/libslic3r/PrintConfig.cpp:470 -msgid "Extruder" -msgstr "挤出机" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:546 -msgid "Rename Object" -msgstr "重命名对象" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:546 -msgid "Rename Sub-object" -msgstr "重命名子对象" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:992 src/slic3r/GUI/GUI_ObjectList.cpp:3464 -msgid "Instances to Separated Objects" -msgstr "分隔对象的实例" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Volumes in Object reordered" -msgstr "重新排序的对象中的空间" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1010 -msgid "Object reordered" -msgstr "对象重新排序" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1065 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1379 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1385 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1626 -#, c-format -msgid "Quick Add Settings (%s)" -msgstr "快速添加设置 (%s)" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1140 -msgid "Select showing settings" -msgstr "选择显示设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1189 -msgid "Add Settings for Layers" -msgstr "添加图层设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1190 -msgid "Add Settings for Sub-object" -msgstr "添加子对象的设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1191 -msgid "Add Settings for Object" -msgstr "添加对象的设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1252 -msgid "Add Settings Bundle for Height range" -msgstr "为高度范围添加配置组" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1253 -msgid "Add Settings Bundle for Sub-object" -msgstr "为子对象添加配置组" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1254 -msgid "Add Settings Bundle for Object" -msgstr "为对象添加配置组" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1293 -msgid "Load" -msgstr "加载" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1298 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1323 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1326 -msgid "Box" -msgstr "盒子" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1298 -msgid "Cylinder" -msgstr "圆柱体" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1298 -msgid "Sphere" -msgstr "球" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1298 -msgid "Slab" -msgstr "板坯" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1350 -msgid "Height range Modifier" -msgstr "高度范围修改器" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1358 -msgid "Add settings" -msgstr "添加设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1425 -msgid "Change type" -msgstr "更改类型" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1432 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1580 -msgid "Set as a Separated Object" -msgstr "设置为独立的对象" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1438 -msgid "Printable" -msgstr "可打印的" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1445 -msgid "Rename" -msgstr "重命名" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1456 -msgid "Fix through the Netfabb" -msgstr "通过Netfabb修复" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1466 src/slic3r/GUI/Plater.cpp:3547 -msgid "Export as STL" -msgstr "导出为 STL" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1473 -msgid "Change extruder" -msgstr "更换挤出机" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1492 src/libslic3r/PrintConfig.cpp:309 -msgid "Default" -msgstr "默认" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1498 -msgid "Select new extruder for the object/part" -msgstr "为对象/零件选择新的挤出机" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1510 -msgid "Scale to print volume" -msgstr "缩放打印体积" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1510 -msgid "Scale the selected object to fit the print volume" -msgstr "缩放所选对象以适合可打印体积" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1580 -msgid "Set as a Separated Objects" -msgstr "设置为独立的对象" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1655 -msgid "Load Part" -msgstr "加载部件" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1690 -msgid "Error!" -msgstr "错误!" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1735 -msgid "Add Generic Subobject" -msgstr "添加通用子对象" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1742 -msgid "Generic" -msgstr "通用" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1846 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1948 -msgid "Last instance of an object cannot be deleted." -msgstr "无法删除对象的最后一个实例。" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1858 -msgid "Delete Settings" -msgstr "删除设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1882 -msgid "Delete All Instances from Object" -msgstr "从对象中删除所有实例" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1898 -msgid "Delete Height Range" -msgstr "删除高度范围" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1929 -msgid "From Object List You can't delete the last solid part from object." -msgstr "从对象列表中无法从对象中删除最后一个实体零件。" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1933 -msgid "Delete Subobject" -msgstr "删除子对象" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1952 -msgid "Delete Instance" -msgstr "删除实例" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1976 src/slic3r/GUI/Plater.cpp:2833 -msgid "" -"The selected object couldn't be split because it contains only one part." -msgstr "无法拆分所选对象,因为它仅包含一个部件。" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:1980 -msgid "Split to Parts" -msgstr "拆分为零件" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2028 -msgid "Add Layers" -msgstr "添加图层" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2153 -msgid "Group manipulation" -msgstr "操作组" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2165 -msgid "Object manipulation" -msgstr "操作对象" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2178 -msgid "Object Settings to modify" -msgstr "要修改的对象设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2182 -msgid "Part Settings to modify" -msgstr "要修改的零件设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2187 -msgid "Layer range Settings to modify" -msgstr "要修改的图层范围设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2193 -msgid "Part manipulation" -msgstr "零件操作" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2199 -msgid "Instance manipulation" -msgstr "实例操作" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2206 -msgid "Settings for height range" -msgstr "高度范围设置" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2391 -msgid "Delete Selected Item" -msgstr "删除所选项目" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2525 -msgid "Delete Selected" -msgstr "删除所选" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2584 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2613 -#: src/slic3r/GUI/GUI_ObjectList.cpp:2631 -msgid "Add Height Range" -msgstr "添加高度范围" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2690 -msgid "Edit Height Range" -msgstr "编辑高度范围" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2974 -msgid "Selection-Remove from list" -msgstr "从列表中选择-删除" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:2982 -msgid "Selection-Add from list" -msgstr "从列表中选择-添加" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3100 -msgid "Object or Instance" -msgstr "对象或实例" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3101 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3234 -msgid "Part" -msgstr "部件" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3101 -msgid "Layer" -msgstr "层" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3103 -msgid "Unsupported selection" -msgstr "不支持的选择" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3104 -#, c-format -msgid "You started your selection with %s Item." -msgstr "你从 %s 项开始选择。" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3105 -#, c-format -msgid "In this mode you can select only other %s Items%s" -msgstr "在此模式下,您只能选择其他 %s 项%s" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3108 -msgid "of a current Object" -msgstr "当前对象的" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3113 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3188 src/slic3r/GUI/Plater.cpp:126 -msgid "Info" -msgstr "信息" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3229 -msgid "You can't change a type of the last solid part of the object." -msgstr "不能更改对象的最后一个实体部分的类型。" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3234 -msgid "Modifier" -msgstr "修改器 Modifier" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3234 -msgid "Support Enforcer" -msgstr "支撑添加器" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3234 -msgid "Support Blocker" -msgstr "支撑去除器" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3236 -msgid "Type:" -msgstr "类型:" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3236 -msgid "Select type of part" -msgstr "选择零件类型" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3241 -msgid "Change Part Type" -msgstr "更改零件类型" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3486 -msgid "Enter new name" -msgstr "输入新名称" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3486 -msgid "Renaming" -msgstr "重命名" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3502 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3608 src/slic3r/GUI/Tab.cpp:3615 -#: src/slic3r/GUI/Tab.cpp:3619 -msgid "The supplied name is not valid;" -msgstr "提供的名称无效;" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3503 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3609 src/slic3r/GUI/Tab.cpp:3616 -msgid "the following characters are not allowed:" -msgstr "不允许使用以下字符:" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3632 -msgid "Set extruder for selected items" -msgstr "为选定的项设置挤出机" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3633 -msgid "Select extruder number for selected objects and/or parts" -msgstr "为选定对象和/或零件选择挤出机编号" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3646 -msgid "Select extruder number:" -msgstr "选择挤出机编号:" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3647 -msgid "This extruder will be set for selected items" -msgstr "将为所选项目设置此挤出机" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 src/slic3r/GUI/Selection.cpp:1473 -msgid "Set Printable" -msgstr "设置可打印" - -#: src/slic3r/GUI/GUI_ObjectList.cpp:3759 src/slic3r/GUI/Selection.cpp:1473 -msgid "Set Unprintable" -msgstr "设置不可打印" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:62 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:105 -msgid "World coordinates" -msgstr "世界坐标" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:63 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:106 -msgid "Local coordinates" -msgstr "本地坐标" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:82 -msgid "Select coordinate space, in which the transformation will be performed." -msgstr "选择坐标空间,将在其中执行转换。" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:125 -msgid "Object Manipulation" -msgstr "对象操作" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:178 -msgid "Object name" -msgstr "对象名称" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:214 -#, c-format -msgid "Toggle %c axis mirroring" -msgstr "切换 %c 轴镜像" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:247 -msgid "Set Mirror" -msgstr "设置镜像" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:287 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:292 -msgid "Reset scale" -msgstr "重置比例" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:305 -msgid "Reset rotation" -msgstr "重置旋转" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:330 -msgid "Reset Rotation" -msgstr "重置旋转" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:342 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:357 -msgid "Drop to bed" -msgstr "放到床上" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:390 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:454 -msgid "Position" -msgstr "位置" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:391 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:455 -msgid "Rotation" -msgstr "旋转" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:456 -msgid "Scale factors" -msgstr "缩放比例因子" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:513 -msgid "Translate" -msgstr "翻译" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:565 -msgid "" -"You cannot use non-uniform scaling mode for multiple objects/parts selection" -msgstr "不能对多个对象/零件选择使用非均匀缩放模式" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:727 -msgid "Set Position" -msgstr "设置位置" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:758 -msgid "Set Orientation" -msgstr "设置方向" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:823 -msgid "Set Scale" -msgstr "设置缩放 Set Scale" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:907 -msgid "" -"The currently manipulated object is tilted (rotation angles are not " -"multiples of 90°).\n" -"Non-uniform scaling of tilted objects is only possible in the World " -"coordinate system,\n" -"once the rotation is embedded into the object coordinates." -msgstr "" -"当前操作的对象是倾斜的(旋转角度不是 90° 的倍数)。\n" -"倾斜对象的非均匀缩放只能将旋转嵌入到对象的坐标中后,\n" -"在世界坐标系中进行。" - -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:910 -msgid "" -"This operation is irreversible.\n" -"Do you want to proceed?" -msgstr "" -"此操作是不可逆的。\n" -"是否要继续?" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:59 -msgid "Additional Settings" -msgstr "其他设置" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:95 -msgid "Remove parameter" -msgstr "删除参数" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:101 -#, c-format -msgid "Delete Option %s" -msgstr "删除选项 %s" - -#: src/slic3r/GUI/GUI_ObjectSettings.cpp:146 -#, c-format -msgid "Change Option %s" -msgstr "更改选项 %s" - -#: src/slic3r/GUI/GUI_Preview.cpp:217 -msgid "View" -msgstr "查看" - -#: src/slic3r/GUI/GUI_Preview.cpp:220 src/slic3r/GUI/GUI_Preview.cpp:569 -#: src/libslic3r/GCode/PreviewData.cpp:378 -msgid "Feature type" -msgstr "功能类型" - -#: src/slic3r/GUI/GUI_Preview.cpp:221 src/libslic3r/PrintConfig.cpp:483 -msgid "Height" -msgstr "高度" - -#: src/slic3r/GUI/GUI_Preview.cpp:222 src/libslic3r/PrintConfig.cpp:2188 -msgid "Width" -msgstr "宽度" - -#: src/slic3r/GUI/GUI_Preview.cpp:224 -msgid "Volumetric flow rate" -msgstr "体积流量" - -#: src/slic3r/GUI/GUI_Preview.cpp:225 src/slic3r/GUI/GUI_Preview.cpp:333 -#: src/slic3r/GUI/GUI_Preview.cpp:515 src/slic3r/GUI/GUI_Preview.cpp:568 -#: src/slic3r/GUI/GUI_Preview.cpp:769 src/libslic3r/GCode/PreviewData.cpp:388 -msgid "Tool" -msgstr "工具" - -#: src/slic3r/GUI/GUI_Preview.cpp:226 src/slic3r/GUI/GUI_Preview.cpp:566 -#: src/libslic3r/GCode/PreviewData.cpp:390 -msgid "Color Print" -msgstr "彩色打印" - -#: src/slic3r/GUI/GUI_Preview.cpp:229 -msgid "Show" -msgstr "显示" - -#: src/slic3r/GUI/GUI_Preview.cpp:232 src/slic3r/GUI/GUI_Preview.cpp:233 -msgid "Feature types" -msgstr "功能类型" - -#: src/slic3r/GUI/GUI_Preview.cpp:235 src/libslic3r/GCode/PreviewData.cpp:147 -msgid "Perimeter" -msgstr "周长" - -#: src/slic3r/GUI/GUI_Preview.cpp:236 src/libslic3r/GCode/PreviewData.cpp:148 -msgid "External perimeter" -msgstr "外部轮廓" - -#: src/slic3r/GUI/GUI_Preview.cpp:237 src/libslic3r/GCode/PreviewData.cpp:149 -msgid "Overhang perimeter" -msgstr "悬空轮廓" - -#: src/slic3r/GUI/GUI_Preview.cpp:238 src/libslic3r/GCode/PreviewData.cpp:150 -msgid "Internal infill" -msgstr "内部填充" - -#: src/slic3r/GUI/GUI_Preview.cpp:239 src/libslic3r/PrintConfig.cpp:1736 -#: src/libslic3r/PrintConfig.cpp:1746 src/libslic3r/GCode/PreviewData.cpp:151 -msgid "Solid infill" -msgstr "实心填充" - -#: src/slic3r/GUI/GUI_Preview.cpp:240 src/libslic3r/PrintConfig.cpp:2068 -#: src/libslic3r/PrintConfig.cpp:2079 src/libslic3r/GCode/PreviewData.cpp:152 -msgid "Top solid infill" -msgstr "顶部实心填充" - -#: src/slic3r/GUI/GUI_Preview.cpp:241 src/libslic3r/GCode/PreviewData.cpp:153 -msgid "Bridge infill" -msgstr "搭桥填充" - -#: src/slic3r/GUI/GUI_Preview.cpp:242 src/libslic3r/PrintConfig.cpp:895 -#: src/libslic3r/GCode/PreviewData.cpp:154 -msgid "Gap fill" -msgstr "间隙填充" - -#: src/slic3r/GUI/GUI_Preview.cpp:243 src/slic3r/GUI/Tab.cpp:1082 -#: src/libslic3r/GCode/PreviewData.cpp:155 -msgid "Skirt" -msgstr "裙边" - -#: src/slic3r/GUI/GUI_Preview.cpp:245 src/libslic3r/PrintConfig.cpp:1954 -#: src/libslic3r/GCode/PreviewData.cpp:157 -msgid "Support material interface" -msgstr "支撑材料端口" - -#: src/slic3r/GUI/GUI_Preview.cpp:246 src/slic3r/GUI/Tab.cpp:1162 -#: src/libslic3r/GCode/PreviewData.cpp:158 -msgid "Wipe tower" -msgstr "擦料塔" - -#: src/slic3r/GUI/GUI_Preview.cpp:251 src/libslic3r/PrintConfig.cpp:2102 -msgid "Travel" -msgstr "旅行" - -#: src/slic3r/GUI/GUI_Preview.cpp:252 -msgid "Retractions" -msgstr "回抽" - -#: src/slic3r/GUI/GUI_Preview.cpp:253 -msgid "Unretractions" -msgstr "返回回抽" - -#: src/slic3r/GUI/GUI_Preview.cpp:254 -msgid "Shells" -msgstr "壳" - -#: src/slic3r/GUI/GUI_Preview.cpp:255 -msgid "Legend" -msgstr "图例" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:14 src/slic3r/GUI/MainFrame.cpp:683 -msgid "Keyboard Shortcuts" -msgstr "键盘快捷键" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:107 -msgid "Open project STL/OBJ/AMF/3MF with config, delete bed" -msgstr "打开 STL/OBJ/AMF/3MF 项目配置,删除热床" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:108 -msgid "Import STL/OBJ/AMF/3MF without config, keep bed" -msgstr "导入 STL/OBJ/AMF/3MF 项目配置,保留热床" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:109 -msgid "Load Config from .ini/amf/3mf/gcode" -msgstr "从 .ini/amf/3mf/gcode 加载配置" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:110 src/slic3r/GUI/Plater.cpp:837 -#: src/slic3r/GUI/Plater.cpp:4813 src/libslic3r/PrintConfig.cpp:3163 -msgid "Export G-code" -msgstr "导出 G-code" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:111 -msgid "Save project (3MF)" -msgstr "保存项目 (3MF)" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:112 -msgid "Load Config from .ini/amf/3mf/gcode and merge" -msgstr "从 .ini/amf/3mf/gcode 导入设置并合并" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:113 -msgid "(Re)slice" -msgstr "重新切片" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:116 -msgid "Select Plater Tab" -msgstr "选择 构建板 选项卡" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:118 -msgid "Select Print Settings Tab" -msgstr "选择 打印设置 选项卡" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:119 -msgid "Select Filament Settings Tab" -msgstr "选择 耗材设置 选项卡" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:120 -msgid "Select Printer Settings Tab" -msgstr "选择 打印机设置 选项卡" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:121 -msgid "Switch to 3D" -msgstr "切换到3D" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 -msgid "Switch to Preview" -msgstr "切换到预览" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 src/slic3r/GUI/Preferences.cpp:10 -msgid "Preferences" -msgstr "首选项" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:124 -#: src/slic3r/GUI/PrintHostDialogs.cpp:136 -msgid "Print host upload queue" -msgstr "打印主机上传队列" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 -msgid "Camera view" -msgstr "摄像机视图" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:126 -msgid "Add Instance of the selected object" -msgstr "添加所选对象的实例" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:127 -msgid "Remove Instance of the selected object" -msgstr "删除所选对象的实例" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:128 -msgid "Show keyboard shortcuts list" -msgstr "显示键盘快捷键列表" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:129 -msgid "Press to select multiple object or move multiple object with mouse" -msgstr "按以选择多个对象或使用鼠标移动多个对象" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:131 -msgid "Main Shortcuts" -msgstr "主快捷方式" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:139 -msgid "Select All objects" -msgstr "选择所有对象" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 -msgid "Delete selected" -msgstr "删除所选" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:141 -msgid "Delete All" -msgstr "删除所有" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:142 -msgid "Copy to clipboard" -msgstr "复制到剪贴板" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 -msgid "Paste from clipboard" -msgstr "從剪貼板粘貼" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:144 -msgid "Gizmo move" -msgstr "线框移动" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:145 -msgid "Gizmo scale" -msgstr "线框缩放" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:146 -msgid "Gizmo rotate" -msgstr "旋转小物件" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:147 -msgid "Gizmo cut" -msgstr "剪切小物件" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:148 -msgid "Gizmo Place face on bed" -msgstr "放置小物件面到热床" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:149 -msgid "Gizmo SLA support points" -msgstr "小物件SLA支撑点" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:150 -#, no-c-format -msgid "" -"Press to activate selection rectangle\n" -"or to snap by 5% in Gizmo scale\n" -"or to snap by 1mm in Gizmo move" -msgstr "" -"按 以激活选择矩形\n" -"或以 Gizmo 比例捕捉 5% \n" -"或捕捉 1 mm在 Gizmo 移动" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:151 -msgid "" -"Press to scale selection to fit print volume\n" -"in Gizmo scale" -msgstr "" -"按下可缩放选择以适合打印体积\n" -"在 Gizmo 尺度" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:152 -msgid "" -"Press to activate deselection rectangle\n" -"or to scale or rotate selected objects\n" -"around their own center" -msgstr "" -"按 以激活取消选择矩形\n" -"或围绕选定对象的中心\n" -"缩放或旋转选定对象" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:153 -msgid "Press to activate one direction scaling in Gizmo scale" -msgstr "按下以在 Gizmo 比例中激活一个方向缩放" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:154 -msgid "Change camera type (perspective, orthographic)" -msgstr "更改摄像机类型(透视、正交)" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:155 -msgid "Zoom to Bed" -msgstr "缩放至热床" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:156 -msgid "Zoom to all objects in scene, if none selected" -msgstr "缩放至场景中的所有对象(如果未选择)" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:157 -msgid "Zoom to selected object" -msgstr "缩放至选定对象" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:158 -msgid "Zoom in" -msgstr "放大" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:159 -msgid "Zoom out" -msgstr "缩小" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:160 -msgid "Unselect gizmo / Clear selection" -msgstr "取消选择 Gizmo / 清除选择" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:166 -msgid "Plater Shortcuts" -msgstr "构建板快捷方式" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:181 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:193 -msgid "Arrow Up" -msgstr "上箭头" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:181 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:183 -msgid "Upper Layer" -msgstr "上层" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:194 -msgid "Arrow Down" -msgstr "上箭头" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:182 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:184 -msgid "Lower Layer" -msgstr "下层" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:185 -msgid "Show/Hide (L)egend" -msgstr "显示/隐藏 (L)" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:187 -msgid "Preview Shortcuts" -msgstr "预览快捷方式" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:193 -msgid "Move current slider thumb Up" -msgstr "向上移动当前滑块" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:194 -msgid "Move current slider thumb Down" -msgstr "向下移动当前滑块" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:195 -msgid "Arrow Left" -msgstr "左箭头" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:195 -msgid "Set upper thumb to current slider thumb" -msgstr "将上设置为当前滑块" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:196 -msgid "Arrow Right" -msgstr "右箭头" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:196 -msgid "Set lower thumb to current slider thumb" -msgstr "将下设置为当前滑块" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:197 -msgid "Add color change marker for current layer" -msgstr "为当前图层添加颜色更改标记" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:198 -msgid "Delete color change marker for current layer" -msgstr "删除当前图层的颜色更改标记" - -#: src/slic3r/GUI/KBShortcutsDialog.cpp:200 -msgid "Layers Slider Shortcuts" -msgstr "图层滑块快捷方式" - -#: src/slic3r/GUI/MainFrame.cpp:64 -msgid "" -" - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/" -"releases" -msgstr " - 记得在http://github.com/prusa3d/PrusaSlicer/releases检查更新" - -#: src/slic3r/GUI/MainFrame.cpp:159 -msgid "based on Slic3r" -msgstr "基于 Slic3r" - -#: src/slic3r/GUI/MainFrame.cpp:189 -msgid "Plater" -msgstr "构建板" - -#: src/slic3r/GUI/MainFrame.cpp:400 -msgid "&New Project" -msgstr "&新建项目" - -#: src/slic3r/GUI/MainFrame.cpp:400 -msgid "Start a new project" -msgstr "启动一个新项目" - -#: src/slic3r/GUI/MainFrame.cpp:403 -msgid "&Open Project" -msgstr "&打开项目" - -#: src/slic3r/GUI/MainFrame.cpp:403 -msgid "Open a project file" -msgstr "打开项目文件" - -#: src/slic3r/GUI/MainFrame.cpp:408 -msgid "Recent projects" -msgstr "近期项目" - -#: src/slic3r/GUI/MainFrame.cpp:417 -msgid "The selected project is no more available" -msgstr "所选项目不再可用" - -#: src/slic3r/GUI/MainFrame.cpp:417 src/slic3r/GUI/MainFrame.cpp:755 -#: src/slic3r/GUI/PrintHostDialogs.cpp:231 -msgid "Error" -msgstr "错误" - -#: src/slic3r/GUI/MainFrame.cpp:441 -msgid "&Save Project" -msgstr "&保存项目" - -#: src/slic3r/GUI/MainFrame.cpp:441 -msgid "Save current project file" -msgstr "保存当前项目文件" - -#: src/slic3r/GUI/MainFrame.cpp:445 src/slic3r/GUI/MainFrame.cpp:447 -msgid "Save Project &as" -msgstr "将项目另存 &为" - -#: src/slic3r/GUI/MainFrame.cpp:445 src/slic3r/GUI/MainFrame.cpp:447 -msgid "Save current project file as" -msgstr "将当前项目文件另存为" - -#: src/slic3r/GUI/MainFrame.cpp:455 -msgid "Import STL/OBJ/AM&F/3MF" -msgstr "导入 STL/OBJ/AM&F/3MF" - -#: src/slic3r/GUI/MainFrame.cpp:455 -msgid "Load a model" -msgstr "加载模型" - -#: src/slic3r/GUI/MainFrame.cpp:459 -msgid "Import &Config" -msgstr "导入&配置" - -#: src/slic3r/GUI/MainFrame.cpp:459 -msgid "Load exported configuration file" -msgstr "加载导出的配置文件" - -#: src/slic3r/GUI/MainFrame.cpp:461 -msgid "Import Config from &project" -msgstr "从 &项目 导入配置" - -#: src/slic3r/GUI/MainFrame.cpp:461 -msgid "Load configuration from project file" -msgstr "从项目文件加载配置" - -#: src/slic3r/GUI/MainFrame.cpp:464 -msgid "Import Config &Bundle" -msgstr "导入配置&组" - -#: src/slic3r/GUI/MainFrame.cpp:464 -msgid "Load presets from a bundle" -msgstr "从包加载预设" - -#: src/slic3r/GUI/MainFrame.cpp:466 -msgid "&Import" -msgstr "导入(&I)" - -#: src/slic3r/GUI/MainFrame.cpp:469 src/slic3r/GUI/MainFrame.cpp:719 -msgid "Export &G-code" -msgstr "导出 &G-code" - -#: src/slic3r/GUI/MainFrame.cpp:469 -msgid "Export current plate as G-code" -msgstr "将当构建板导出为 G-code" - -#: src/slic3r/GUI/MainFrame.cpp:473 src/slic3r/GUI/MainFrame.cpp:720 -msgid "S&end G-code" -msgstr "发&送 G 代码" - -#: src/slic3r/GUI/MainFrame.cpp:473 -msgid "Send to print current plate as G-code" -msgstr "发送以 G 代码打印当前板" - -#: src/slic3r/GUI/MainFrame.cpp:478 -msgid "Export plate as &STL" -msgstr "导出构建板为 &STL" - -#: src/slic3r/GUI/MainFrame.cpp:478 -msgid "Export current plate as STL" -msgstr "将当前构建板导出为 STL" - -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export plate as STL &including supports" -msgstr "导出构建板为 STL &包括支撑" - -#: src/slic3r/GUI/MainFrame.cpp:481 -msgid "Export current plate as STL including supports" -msgstr "导出当前构建板为 STL,包括支撑" - -#: src/slic3r/GUI/MainFrame.cpp:484 -msgid "Export plate as &AMF" -msgstr "导出构建板为 &AMF" - -#: src/slic3r/GUI/MainFrame.cpp:484 -msgid "Export current plate as AMF" -msgstr "将当构建板导出为 AMF" - -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export &toolpaths as OBJ" -msgstr "导出 &挤出头路径为 OBJ" - -#: src/slic3r/GUI/MainFrame.cpp:488 -msgid "Export toolpaths as OBJ" -msgstr "导出挤出头路径作为 OBJ" - -#: src/slic3r/GUI/MainFrame.cpp:492 -msgid "Export &Config" -msgstr "导出&配置" - -#: src/slic3r/GUI/MainFrame.cpp:492 -msgid "Export current configuration to file" -msgstr "将当前配置导出到文件" - -#: src/slic3r/GUI/MainFrame.cpp:494 -msgid "Export Config &Bundle" -msgstr "导出配置&包" - -#: src/slic3r/GUI/MainFrame.cpp:494 -msgid "Export all presets to file" -msgstr "将所有预设导出到文件" - -#: src/slic3r/GUI/MainFrame.cpp:496 -msgid "&Export" -msgstr "导出(&E)" - -#: src/slic3r/GUI/MainFrame.cpp:502 -msgid "Quick Slice" -msgstr "快速切片" - -#: src/slic3r/GUI/MainFrame.cpp:502 -msgid "Slice a file into a G-code" -msgstr "将文件切片成 G-code" - -#: src/slic3r/GUI/MainFrame.cpp:508 -msgid "Quick Slice and Save As" -msgstr "快速切片并另存为" - -#: src/slic3r/GUI/MainFrame.cpp:508 -msgid "Slice a file into a G-code, save as" -msgstr "将文件切片成 G-code, 并另存为" - -#: src/slic3r/GUI/MainFrame.cpp:514 -msgid "Repeat Last Quick Slice" -msgstr "重复上次快速切片" - -#: src/slic3r/GUI/MainFrame.cpp:514 -msgid "Repeat last quick slice" -msgstr "重复最后一个快速切片" - -#: src/slic3r/GUI/MainFrame.cpp:522 -msgid "(Re)Slice No&w" -msgstr "立即重切片" - -#: src/slic3r/GUI/MainFrame.cpp:522 -msgid "Start new slicing process" -msgstr "开始新的切片流程" - -#: src/slic3r/GUI/MainFrame.cpp:526 -msgid "&Repair STL file" -msgstr "&修复 STL 文件" - -#: src/slic3r/GUI/MainFrame.cpp:526 -msgid "Automatically repair an STL file" -msgstr "自动修复 STL 文件" - -#: src/slic3r/GUI/MainFrame.cpp:529 -msgid "&Quit" -msgstr "&退出" - -#: src/slic3r/GUI/MainFrame.cpp:529 -#, c-format -msgid "Quit %s" -msgstr "退出 %s" - -#: src/slic3r/GUI/MainFrame.cpp:554 -msgid "&Select all" -msgstr "&选择所有" - -#: src/slic3r/GUI/MainFrame.cpp:555 -msgid "Selects all objects" -msgstr "选择所有对象" - -#: src/slic3r/GUI/MainFrame.cpp:557 -msgid "D&eselect all" -msgstr "反&选所有" - -#: src/slic3r/GUI/MainFrame.cpp:558 -msgid "Deselects all objects" -msgstr "取消选择所有对象" - -#: src/slic3r/GUI/MainFrame.cpp:561 -msgid "&Delete selected" -msgstr "&删除所选" - -#: src/slic3r/GUI/MainFrame.cpp:562 -msgid "Deletes the current selection" -msgstr "删除当前选择" - -#: src/slic3r/GUI/MainFrame.cpp:564 -msgid "Delete &all" -msgstr "删除&所有" - -#: src/slic3r/GUI/MainFrame.cpp:565 -msgid "Deletes all objects" -msgstr "删除所有对象" - -#: src/slic3r/GUI/MainFrame.cpp:569 -msgid "&Undo" -msgstr "&撤销" - -#: src/slic3r/GUI/MainFrame.cpp:572 -msgid "&Redo" -msgstr "&重做" - -#: src/slic3r/GUI/MainFrame.cpp:577 -msgid "&Copy" -msgstr "&复制" - -#: src/slic3r/GUI/MainFrame.cpp:578 -msgid "Copy selection to clipboard" -msgstr "将选择复制到剪贴板" - -#: src/slic3r/GUI/MainFrame.cpp:580 -msgid "&Paste" -msgstr "&粘贴" - -#: src/slic3r/GUI/MainFrame.cpp:581 -msgid "Paste clipboard" -msgstr "粘贴剪贴板" - -#: src/slic3r/GUI/MainFrame.cpp:590 -msgid "&Plater Tab" -msgstr "&构建板 选项卡" - -#: src/slic3r/GUI/MainFrame.cpp:590 -msgid "Show the plater" -msgstr "显示平台构建板" - -#: src/slic3r/GUI/MainFrame.cpp:597 -msgid "P&rint Settings Tab" -msgstr "&打印设置选项卡" - -#: src/slic3r/GUI/MainFrame.cpp:597 -msgid "Show the print settings" -msgstr "显示打印设置" - -#: src/slic3r/GUI/MainFrame.cpp:599 src/slic3r/GUI/MainFrame.cpp:722 -msgid "&Filament Settings Tab" -msgstr "&打印丝设置选项卡" - -#: src/slic3r/GUI/MainFrame.cpp:599 -msgid "Show the filament settings" -msgstr "显示耗材设置" - -#: src/slic3r/GUI/MainFrame.cpp:602 -msgid "Print&er Settings Tab" -msgstr "&打印机设置选项卡" - -#: src/slic3r/GUI/MainFrame.cpp:602 -msgid "Show the printer settings" -msgstr "显示打印机设置" - -#: src/slic3r/GUI/MainFrame.cpp:606 -msgid "3&D" -msgstr "3&D" - -#: src/slic3r/GUI/MainFrame.cpp:606 -msgid "Show the 3D editing view" -msgstr "显示3D 编辑视图" - -#: src/slic3r/GUI/MainFrame.cpp:609 -msgid "Pre&view" -msgstr "预览" - -#: src/slic3r/GUI/MainFrame.cpp:609 -msgid "Show the 3D slices preview" -msgstr "显示3D 切片预览" - -#: src/slic3r/GUI/MainFrame.cpp:628 -msgid "Print &Host Upload Queue" -msgstr "打印&主机上传队列" - -#: src/slic3r/GUI/MainFrame.cpp:628 -msgid "Display the Print Host Upload Queue window" -msgstr "显示打印主机上传队列窗口" - -#: src/slic3r/GUI/MainFrame.cpp:637 -msgid "Iso" -msgstr "Iso" - -#: src/slic3r/GUI/MainFrame.cpp:637 -msgid "Iso View" -msgstr "Iso 视图" - -#. 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:641 src/libslic3r/PrintConfig.cpp:2094 -msgid "Top" -msgstr "顶部" - -#: src/slic3r/GUI/MainFrame.cpp:641 -msgid "Top View" -msgstr "顶部视图" - -#. TRN To be shown in the main menu View->Bottom -#. TRN To be shown in Print Settings "Bottom solid layers" -#: src/slic3r/GUI/MainFrame.cpp:644 src/libslic3r/PrintConfig.cpp:159 -msgid "Bottom" -msgstr "底部" - -#: src/slic3r/GUI/MainFrame.cpp:644 -msgid "Bottom View" -msgstr "底部视图" - -#: src/slic3r/GUI/MainFrame.cpp:646 -msgid "Front" -msgstr "前面" - -#: src/slic3r/GUI/MainFrame.cpp:646 -msgid "Front View" -msgstr "正视图" - -#: src/slic3r/GUI/MainFrame.cpp:648 src/libslic3r/PrintConfig.cpp:1611 -msgid "Rear" -msgstr "背面" - -#: src/slic3r/GUI/MainFrame.cpp:648 -msgid "Rear View" -msgstr "后视图" - -#: src/slic3r/GUI/MainFrame.cpp:650 -msgid "Left" -msgstr "左" - -#: src/slic3r/GUI/MainFrame.cpp:650 -msgid "Left View" -msgstr "左视图" - -#: src/slic3r/GUI/MainFrame.cpp:652 -msgid "Right" -msgstr "右" - -#: src/slic3r/GUI/MainFrame.cpp:652 -msgid "Right View" -msgstr "右视图" - -#: src/slic3r/GUI/MainFrame.cpp:659 -msgid "Prusa 3D &Drivers" -msgstr "Prusa 3D &驱动程序" - -#: src/slic3r/GUI/MainFrame.cpp:659 -msgid "Open the Prusa3D drivers download page in your browser" -msgstr "在浏览器中打开Prusa3d 驱动程序下载页" - -#: src/slic3r/GUI/MainFrame.cpp:661 -msgid "Software &Releases" -msgstr "软件&发布" - -#: src/slic3r/GUI/MainFrame.cpp:661 -msgid "Open the software releases page in your browser" -msgstr "在浏览器中打开软件发布页面" - -#: src/slic3r/GUI/MainFrame.cpp:667 -#, c-format -msgid "%s &Website" -msgstr "%s &网站" - -#: src/slic3r/GUI/MainFrame.cpp:668 -#, c-format -msgid "Open the %s website in your browser" -msgstr "在浏览器中打开 %s 网站" - -#: src/slic3r/GUI/MainFrame.cpp:674 -msgid "System &Info" -msgstr "系统&信息" - -#: src/slic3r/GUI/MainFrame.cpp:674 -msgid "Show system information" -msgstr "显示系统信息" - -#: src/slic3r/GUI/MainFrame.cpp:676 -msgid "Show &Configuration Folder" -msgstr "显示&配置文件夹" - -#: src/slic3r/GUI/MainFrame.cpp:676 -msgid "Show user configuration folder (datadir)" -msgstr "显示用户配置文件夹(数据目录)" - -#: src/slic3r/GUI/MainFrame.cpp:678 -msgid "Report an I&ssue" -msgstr "报告&问题" - -#: src/slic3r/GUI/MainFrame.cpp:678 -#, c-format -msgid "Report an issue on %s" -msgstr "报告 %s 上的问题" - -#: src/slic3r/GUI/MainFrame.cpp:680 -#, c-format -msgid "&About %s" -msgstr "&关于 %s" - -#: src/slic3r/GUI/MainFrame.cpp:680 -msgid "Show about dialog" -msgstr "关于对话框" - -#: src/slic3r/GUI/MainFrame.cpp:683 -msgid "Show the list of the keyboard shortcuts" -msgstr "显示键盘快捷键的列表" - -#: src/slic3r/GUI/MainFrame.cpp:691 -msgid "&File" -msgstr "&文件" - -#: src/slic3r/GUI/MainFrame.cpp:692 -msgid "&Edit" -msgstr "&编辑" - -#: src/slic3r/GUI/MainFrame.cpp:693 -msgid "&Window" -msgstr "&窗口" - -#: src/slic3r/GUI/MainFrame.cpp:694 -msgid "&View" -msgstr "&视图" - -#: src/slic3r/GUI/MainFrame.cpp:697 -msgid "&Help" -msgstr "&帮助" - -#: src/slic3r/GUI/MainFrame.cpp:719 -msgid "E&xport" -msgstr "导&出" - -#: src/slic3r/GUI/MainFrame.cpp:720 -msgid "S&end to print" -msgstr "发&送到打印机" - -#: src/slic3r/GUI/MainFrame.cpp:722 -msgid "Mate&rial Settings Tab" -msgstr "配合设置选项卡" - -#: src/slic3r/GUI/MainFrame.cpp:743 -msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" -msgstr "选择要切片的文件(STL/OBJ/AMF/3MF/PRUSA):" - -#: src/slic3r/GUI/MainFrame.cpp:754 -msgid "No previously sliced file." -msgstr "没有预切片的文件。" - -#: src/slic3r/GUI/MainFrame.cpp:760 -msgid "Previously sliced file (" -msgstr "预切片文件 (" - -#: src/slic3r/GUI/MainFrame.cpp:760 -msgid ") not found." -msgstr ") 无法找到。" - -#: src/slic3r/GUI/MainFrame.cpp:761 -msgid "File Not Found" -msgstr "文件未找到" - -#: src/slic3r/GUI/MainFrame.cpp:796 -#, c-format -msgid "Save %s file as:" -msgstr "将 %s 文件另存为:" - -#: src/slic3r/GUI/MainFrame.cpp:796 -msgid "SVG" -msgstr "SVG" - -#: src/slic3r/GUI/MainFrame.cpp:796 -msgid "G-code" -msgstr "G-code" - -#: src/slic3r/GUI/MainFrame.cpp:808 -msgid "Save zip file as:" -msgstr "将 zip 文件另存为:" - -#: src/slic3r/GUI/MainFrame.cpp:817 src/slic3r/GUI/Plater.cpp:2976 -#: src/slic3r/GUI/Plater.cpp:4524 src/slic3r/GUI/Tab.cpp:1191 -#: src/slic3r/GUI/Tab.cpp:3783 -msgid "Slicing" -msgstr "切片" - -#. TRN "Processing input_file_basename" -#: src/slic3r/GUI/MainFrame.cpp:819 -#, c-format -msgid "Processing %s" -msgstr "处理 %s" - -#: src/slic3r/GUI/MainFrame.cpp:842 -msgid " was successfully sliced." -msgstr " 已成功切片。" - -#: src/slic3r/GUI/MainFrame.cpp:844 -msgid "Slicing Done!" -msgstr "切片完成!" - -#: src/slic3r/GUI/MainFrame.cpp:859 -msgid "Select the STL file to repair:" -msgstr "选择要修复的 STL 文件:" - -#: src/slic3r/GUI/MainFrame.cpp:869 -msgid "Save OBJ file (less prone to coordinate errors than STL) as:" -msgstr "将 OBJ 文件 (不像 STL 那样容易发生坐标错误) 保存为:" - -#: src/slic3r/GUI/MainFrame.cpp:881 -msgid "Your file was repaired." -msgstr "您的文件已修复。" - -#: src/slic3r/GUI/MainFrame.cpp:881 src/libslic3r/PrintConfig.cpp:3257 -msgid "Repair" -msgstr "修复" - -#: src/slic3r/GUI/MainFrame.cpp:895 -msgid "Save configuration as:" -msgstr "将配置另存为:" - -#: src/slic3r/GUI/MainFrame.cpp:914 src/slic3r/GUI/MainFrame.cpp:976 -msgid "Select configuration to load:" -msgstr "选择要加载的配置:" - -#: src/slic3r/GUI/MainFrame.cpp:950 -msgid "Save presets bundle as:" -msgstr "将预设配置组另存为:" - -#: src/slic3r/GUI/MainFrame.cpp:997 -#, c-format -msgid "%d presets successfully imported." -msgstr "%d 预设已成功导入。" - -#: src/slic3r/GUI/MsgDialog.cpp:73 -#, c-format -msgid "%s error" -msgstr "%s 错误" - -#: src/slic3r/GUI/MsgDialog.cpp:74 -#, c-format -msgid "%s has encountered an error" -msgstr "%s 遇到错误" - -#: src/slic3r/GUI/OptionsGroup.cpp:249 -msgctxt "Layers" -msgid "Top" -msgstr "顶部" - -#: src/slic3r/GUI/OptionsGroup.cpp:249 -msgctxt "Layers" -msgid "Bottom" -msgstr "底部" - -#: src/slic3r/GUI/Plater.cpp:146 -msgid "Volume" -msgstr "体积" - -#: src/slic3r/GUI/Plater.cpp:147 -msgid "Facets" -msgstr "平面" - -#: src/slic3r/GUI/Plater.cpp:148 -msgid "Materials" -msgstr "材料" - -#: src/slic3r/GUI/Plater.cpp:151 -msgid "Manifold" -msgstr "流形" - -#: src/slic3r/GUI/Plater.cpp:201 -msgid "Sliced Info" -msgstr "切片信息" - -#: src/slic3r/GUI/Plater.cpp:220 src/slic3r/GUI/Plater.cpp:1150 -msgid "Used Filament (m)" -msgstr "消耗耗材丝 (m)" - -#: src/slic3r/GUI/Plater.cpp:221 -msgid "Used Filament (mm³)" -msgstr "消耗耗材丝 (mm³)" - -#: src/slic3r/GUI/Plater.cpp:222 -msgid "Used Filament (g)" -msgstr "消耗耗材丝 (g)" - -#: src/slic3r/GUI/Plater.cpp:223 -msgid "Used Material (unit)" -msgstr "消耗材料(单位)" - -#: src/slic3r/GUI/Plater.cpp:224 src/slic3r/GUI/Plater.cpp:1165 -#: src/libslic3r/PrintConfig.cpp:742 -msgid "Cost" -msgstr "费用" - -#: src/slic3r/GUI/Plater.cpp:225 src/slic3r/GUI/Plater.cpp:1137 -#: src/slic3r/GUI/Plater.cpp:1179 -msgid "Estimated printing time" -msgstr "预计打印时间" - -#: src/slic3r/GUI/Plater.cpp:226 -msgid "Number of tool changes" -msgstr "工具更换次数" - -#: src/slic3r/GUI/Plater.cpp:316 -msgid "Click to edit preset" -msgstr "单击以编辑预设" - -#: src/slic3r/GUI/Plater.cpp:468 -msgid "Select what kind of support do you need" -msgstr "选择您需要何种支撑" - -#: src/slic3r/GUI/Plater.cpp:470 src/libslic3r/PrintConfig.cpp:1865 -#: src/libslic3r/PrintConfig.cpp:2561 -msgid "Support on build plate only" -msgstr "仅从打印面板支撑" - -#: src/slic3r/GUI/Plater.cpp:471 src/slic3r/GUI/Plater.cpp:592 -msgid "For support enforcers only" -msgstr "仅从支撑生成器支撑" - -#: src/slic3r/GUI/Plater.cpp:472 -msgid "Everywhere" -msgstr "任何地方" - -#: src/slic3r/GUI/Plater.cpp:504 src/slic3r/GUI/Tab.cpp:1088 -msgid "Brim" -msgstr "侧裙" - -#: src/slic3r/GUI/Plater.cpp:506 -msgid "" -"This flag enables the brim that will be printed around each object on the " -"first layer." -msgstr "此标志启用将在第一层上的每个对象周围打印裙边." - -#: src/slic3r/GUI/Plater.cpp:514 -msgid "Purging volumes" -msgstr "清理量" - -#: src/slic3r/GUI/Plater.cpp:606 -msgid "Select what kind of pad do you need" -msgstr "选择您需要哪种垫子" - -#: src/slic3r/GUI/Plater.cpp:608 -msgid "Below object" -msgstr "对象底部" - -#: src/slic3r/GUI/Plater.cpp:609 -msgid "Around object" -msgstr "对象周围" - -#: src/slic3r/GUI/Plater.cpp:781 -msgid "Print settings" -msgstr "打印设置" - -#: src/slic3r/GUI/Plater.cpp:782 src/slic3r/GUI/Tab.cpp:1637 -#: src/slic3r/GUI/Tab.cpp:1638 -msgid "Filament" -msgstr "打印丝" - -#: src/slic3r/GUI/Plater.cpp:783 -msgid "SLA print settings" -msgstr "SLA 打印设置" - -#: src/slic3r/GUI/Plater.cpp:784 src/slic3r/GUI/Preset.cpp:1314 -msgid "SLA material" -msgstr "SLA 材料" - -#: src/slic3r/GUI/Plater.cpp:785 -msgid "Printer" -msgstr "打印机" - -#: src/slic3r/GUI/Plater.cpp:835 src/slic3r/GUI/Plater.cpp:4814 -msgid "Send to printer" -msgstr "发送到打印机" - -#: src/slic3r/GUI/Plater.cpp:838 src/slic3r/GUI/Plater.cpp:2976 -#: src/slic3r/GUI/Plater.cpp:4527 -msgid "Slice now" -msgstr "立即切片" - -#: src/slic3r/GUI/Plater.cpp:978 -msgid "Hold Shift to Slice & Export G-code" -msgstr "按住 Shift 来切片并导出 G 代码" - -#: src/slic3r/GUI/Plater.cpp:1083 -#, c-format -msgid "%d (%d shells)" -msgstr "%d (%d 壳)" - -#: src/slic3r/GUI/Plater.cpp:1088 -#, c-format -msgid "Auto-repaired (%d errors)" -msgstr "自动修复 (%d 错误):" - -#: src/slic3r/GUI/Plater.cpp:1091 -#, c-format -msgid "" -"%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d " -"facets reversed, %d backwards edges" -msgstr "" -"%d 退化面、%d 边缘固定、已移除 %d 分面、添加 %d 分面、%d 分面反转、%d 向后边" - -#: src/slic3r/GUI/Plater.cpp:1101 -msgid "Yes" -msgstr "是" - -#: src/slic3r/GUI/Plater.cpp:1124 -msgid "Used Material (ml)" -msgstr "消耗材料(毫升)" - -#: src/slic3r/GUI/Plater.cpp:1127 -msgid "object(s)" -msgstr "对象" - -#: src/slic3r/GUI/Plater.cpp:1127 -msgid "supports and pad" -msgstr "支撑和垫" - -#: src/slic3r/GUI/Plater.cpp:1152 src/slic3r/GUI/Plater.cpp:1167 -msgid "objects" -msgstr "对象" - -#: src/slic3r/GUI/Plater.cpp:1152 src/slic3r/GUI/Plater.cpp:1167 -msgid "wipe tower" -msgstr "擦料塔" - -#: src/slic3r/GUI/Plater.cpp:1182 -msgid "normal mode" -msgstr "正常模式" - -#: src/slic3r/GUI/Plater.cpp:1186 src/slic3r/GUI/Plater.cpp:1195 -#: src/libslic3r/PrintConfig.cpp:565 -msgid "Color" -msgstr "颜色" - -#: src/slic3r/GUI/Plater.cpp:1191 -msgid "stealth mode" -msgstr "隐身模式" - -#: src/slic3r/GUI/Plater.cpp:1286 -msgid "Load File" -msgstr "加载文件" - -#: src/slic3r/GUI/Plater.cpp:1290 -msgid "Load Files" -msgstr "加载文件" - -#: src/slic3r/GUI/Plater.cpp:1518 -msgid "ERROR: not enough resources to execute a new job." -msgstr "错误:没有足够的资源来执行新作业。" - -#: src/slic3r/GUI/Plater.cpp:2088 -msgid "New Project" -msgstr "新项目" - -#: src/slic3r/GUI/Plater.cpp:2205 -msgid "Loading" -msgstr "载入中" - -#: src/slic3r/GUI/Plater.cpp:2215 -#, c-format -msgid "Processing input file %s\n" -msgstr "处理输入文件 %s\n" - -#: src/slic3r/GUI/Plater.cpp:2243 -msgid "" -"You can't load SLA project if there is at least one multi-part object on the " -"bed" -msgstr "如果构建板上有至少一个多部分对象,则无法加载 SLA 项目" - -#: src/slic3r/GUI/Plater.cpp:2244 src/slic3r/GUI/Tab.cpp:3143 -msgid "Please check your object list before preset changing." -msgstr "请在预设更改之前检查对象列表。" - -#: src/slic3r/GUI/Plater.cpp:2287 -msgid "" -"This file contains several objects positioned at multiple heights. Instead " -"of considering them as multiple objects, should I consider\n" -"this file as a single object having multiple parts?\n" -msgstr "" -"此文件包含位于多个高度的多个对象。是否把文件当作有多个部件的单一物体?\n" - -#: src/slic3r/GUI/Plater.cpp:2290 src/slic3r/GUI/Plater.cpp:2342 -msgid "Multi-part object detected" -msgstr "检测到多部分对象" - -#: src/slic3r/GUI/Plater.cpp:2297 -msgid "" -"This file cannot be loaded in a simple mode. Do you want to switch to an " -"advanced mode?\n" -msgstr "此文件无法以简单模式加载。是否要切换到高级模式?\n" - -#: src/slic3r/GUI/Plater.cpp:2298 -msgid "Detected advanced data" -msgstr "检测到高级数据" - -#: src/slic3r/GUI/Plater.cpp:2319 -#, c-format -msgid "" -"You can't to add the object(s) from %s because of one or some of them " -"is(are) multi-part" -msgstr "不能从 %s 中添加对象, 因为其中一个或一些有多个部分" - -#: src/slic3r/GUI/Plater.cpp:2339 -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?\n" -msgstr "" -"为多材料打印机加载了多个对象。\n" -"是否将这些文件视为具有多个部分的单个对象?\n" - -#: src/slic3r/GUI/Plater.cpp:2355 -msgid "Loaded" -msgstr "加载" - -#: src/slic3r/GUI/Plater.cpp:2453 -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:2454 -msgid "Object too large?" -msgstr "对象太大?" - -#: src/slic3r/GUI/Plater.cpp:2512 -msgid "Export STL file:" -msgstr "导出 STL 文件:" - -#: src/slic3r/GUI/Plater.cpp:2519 -msgid "Export AMF file:" -msgstr "导出 AMF 文件:" - -#: src/slic3r/GUI/Plater.cpp:2525 -msgid "Save file as:" -msgstr "将文件另存为:" - -#: src/slic3r/GUI/Plater.cpp:2531 -msgid "Export OBJ file:" -msgstr "导出 OBJ 文件:" - -#: src/slic3r/GUI/Plater.cpp:2633 -msgid "Delete Object" -msgstr "删除对象" - -#: src/slic3r/GUI/Plater.cpp:2644 -msgid "Reset Project" -msgstr "重置项目" - -#: src/slic3r/GUI/Plater.cpp:2683 -msgid "Optimize Rotation" -msgstr "优化旋转" - -#: src/slic3r/GUI/Plater.cpp:2729 -msgid "Arranging" -msgstr "自动布局" - -#: src/slic3r/GUI/Plater.cpp:2752 -msgid "Could not arrange model objects! Some geometries may be invalid." -msgstr "无法排列模型对象!某些几何图形可能无效。" - -#: src/slic3r/GUI/Plater.cpp:2758 -msgid "Arranging canceled." -msgstr "排列布局已取消。" - -#: src/slic3r/GUI/Plater.cpp:2759 -msgid "Arranging done." -msgstr "布局完成." - -#: src/slic3r/GUI/Plater.cpp:2775 -msgid "Searching for optimal orientation" -msgstr "搜索最佳方向" - -#: src/slic3r/GUI/Plater.cpp:2808 -msgid "Orientation search canceled." -msgstr "方向搜索已取消。" - -#: src/slic3r/GUI/Plater.cpp:2809 -msgid "Orientation found." -msgstr "找到方向。" - -#: src/slic3r/GUI/Plater.cpp:2825 -msgid "" -"The selected object can't be split because it contains more than one volume/" -"material." -msgstr "无法拆分所选对象, 因为它包含多个容量/材质。" - -#: src/slic3r/GUI/Plater.cpp:2836 -msgid "Split to Objects" -msgstr "拆分为对象" - -#: src/slic3r/GUI/Plater.cpp:2961 -msgid "Invalid data" -msgstr "无效数据" - -#: src/slic3r/GUI/Plater.cpp:2970 -msgid "Ready to slice" -msgstr "准备切片" - -#: src/slic3r/GUI/Plater.cpp:3008 src/slic3r/GUI/PrintHostDialogs.cpp:232 -msgid "Cancelling" -msgstr "取消中" - -#: src/slic3r/GUI/Plater.cpp:3025 -msgid "Another export job is currently running." -msgstr "当前正在运行另一个导出作业。" - -#: src/slic3r/GUI/Plater.cpp:3079 src/slic3r/GUI/Plater.cpp:3544 -msgid "Reload from Disk" -msgstr "从磁盘重新加载" - -#: src/slic3r/GUI/Plater.cpp:3115 -msgid "Fix Throught NetFabb" -msgstr "通过 NetFabb 修复" - -#: src/slic3r/GUI/Plater.cpp:3302 -msgid "Export failed" -msgstr "导出失败" - -#: src/slic3r/GUI/Plater.cpp:3307 src/slic3r/GUI/PrintHostDialogs.cpp:233 -msgid "Cancelled" -msgstr "已取消" - -#: src/slic3r/GUI/Plater.cpp:3515 src/slic3r/GUI/Plater.cpp:3534 -msgid "Remove the selected object" -msgstr "删除所选对象" - -#: src/slic3r/GUI/Plater.cpp:3521 -msgid "Add one more instance of the selected object" -msgstr "再添加一个选定对象的实例" - -#: src/slic3r/GUI/Plater.cpp:3523 -msgid "Remove one instance of the selected object" -msgstr "删除所选对象的一个实例" - -#: src/slic3r/GUI/Plater.cpp:3525 -msgid "Set number of instances" -msgstr "设置实例数" - -#: src/slic3r/GUI/Plater.cpp:3525 -msgid "Change the number of instances of the selected object" -msgstr "更改所选对象的实例数" - -#: src/slic3r/GUI/Plater.cpp:3544 -msgid "Reload the selected file from Disk" -msgstr "从磁盘重新加载所选文件" - -#: src/slic3r/GUI/Plater.cpp:3547 -msgid "Export the selected object as STL file" -msgstr "将所选对象导出为 STL 文件" - -#: src/slic3r/GUI/Plater.cpp:3572 -msgid "Along X axis" -msgstr "沿 X 轴" - -#: src/slic3r/GUI/Plater.cpp:3572 -msgid "Mirror the selected object along the X axis" -msgstr "沿 X 轴镜像所选对象" - -#: src/slic3r/GUI/Plater.cpp:3574 -msgid "Along Y axis" -msgstr "沿 Y 轴" - -#: src/slic3r/GUI/Plater.cpp:3574 -msgid "Mirror the selected object along the Y axis" -msgstr "沿 Y 轴镜像所选对象" - -#: src/slic3r/GUI/Plater.cpp:3576 -msgid "Along Z axis" -msgstr "沿 Z 轴" - -#: src/slic3r/GUI/Plater.cpp:3576 -msgid "Mirror the selected object along the Z axis" -msgstr "沿 Z 轴镜像所选对象" - -#: src/slic3r/GUI/Plater.cpp:3579 -msgid "Mirror" -msgstr "镜像" - -#: src/slic3r/GUI/Plater.cpp:3579 -msgid "Mirror the selected object" -msgstr "镜像所选对象" - -#: src/slic3r/GUI/Plater.cpp:3591 -msgid "To objects" -msgstr "拆分到对象" - -#: src/slic3r/GUI/Plater.cpp:3591 src/slic3r/GUI/Plater.cpp:3611 -msgid "Split the selected object into individual objects" -msgstr "将所选对象拆分为单个对象" - -#: src/slic3r/GUI/Plater.cpp:3593 -msgid "To parts" -msgstr "到零件" - -#: src/slic3r/GUI/Plater.cpp:3593 src/slic3r/GUI/Plater.cpp:3625 -msgid "Split the selected object into individual sub-parts" -msgstr "将所选对象拆分为各个子部分" - -#: src/slic3r/GUI/Plater.cpp:3596 src/slic3r/GUI/Plater.cpp:3611 -#: src/slic3r/GUI/Plater.cpp:3625 src/libslic3r/PrintConfig.cpp:3281 -msgid "Split" -msgstr "分裂" - -#: src/slic3r/GUI/Plater.cpp:3596 -msgid "Split the selected object" -msgstr "拆分所选对象" - -#: src/slic3r/GUI/Plater.cpp:3617 -msgid "Optimize orientation" -msgstr "优化方向" - -#: src/slic3r/GUI/Plater.cpp:3617 -msgid "Optimize the rotation of the object for better print results." -msgstr "优化对象的旋转,以取得更好的打印效果。" - -#: src/slic3r/GUI/Plater.cpp:3657 -msgid "3D editor view" -msgstr "3D 编辑器视图" - -#: src/slic3r/GUI/Plater.cpp:3665 src/slic3r/GUI/Tab.cpp:2587 -msgid "Preview" -msgstr "预览" - -#: src/slic3r/GUI/Plater.cpp:3902 -msgid "" -"%1% printer was active at the time the target Undo / Redo snapshot was " -"taken. Switching to %1% printer requires reloading of %1% presets." -msgstr "" -"%1% 打印机在拍摄目标撤消/重做快照时处于活动状态。切换到 %1% 打印机需要重新加" -"载 %1% 预设。" - -#: src/slic3r/GUI/Plater.cpp:4076 -msgid "Load Project" -msgstr "加载项目" - -#: src/slic3r/GUI/Plater.cpp:4100 -msgid "Import Object" -msgstr "导入对象" - -#: src/slic3r/GUI/Plater.cpp:4104 -msgid "Import Objects" -msgstr "导入对象" - -#: src/slic3r/GUI/Plater.cpp:4163 -msgid "All objects will be removed, continue ?" -msgstr "将删除所有对象,继续?" - -#: src/slic3r/GUI/Plater.cpp:4171 -msgid "Delete Selected Objects" -msgstr "删除选定对象" - -#: src/slic3r/GUI/Plater.cpp:4179 -msgid "Increase Instances" -msgstr "增加实例" - -#: src/slic3r/GUI/Plater.cpp:4215 -msgid "Decrease Instances" -msgstr "减少实例" - -#: src/slic3r/GUI/Plater.cpp:4251 -#, c-format -msgid "Set numbers of copies to %d" -msgstr "将副本数设置为 %d" - -#: src/slic3r/GUI/Plater.cpp:4281 -msgid "Cut by Plane" -msgstr "按平面切割" - -#: src/slic3r/GUI/Plater.cpp:4313 -msgid "Save G-code file as:" -msgstr "将 G-code 文件另存为:" - -#: src/slic3r/GUI/Plater.cpp:4313 -msgid "Save SL1 file as:" -msgstr "将 SL1 文件另存为:" - -#: src/slic3r/GUI/Plater.cpp:4425 -#, c-format -msgid "STL file exported to %s" -msgstr "STL 文件导出到 %s" - -#: src/slic3r/GUI/Plater.cpp:4441 -#, c-format -msgid "AMF file exported to %s" -msgstr "AMF 文件导出到 %s" - -#: src/slic3r/GUI/Plater.cpp:4444 -#, c-format -msgid "Error exporting AMF file %s" -msgstr "导出 AMF 文件 %s 时出错" - -#: src/slic3r/GUI/Plater.cpp:4470 -#, c-format -msgid "3MF file exported to %s" -msgstr "3MF 文件导出到 %s" - -#: src/slic3r/GUI/Plater.cpp:4475 -#, c-format -msgid "Error exporting 3MF file %s" -msgstr "导出3MF 文件 %s 时出错" - -#: src/slic3r/GUI/Plater.cpp:4813 -msgid "Export" -msgstr "导出" - -#: src/slic3r/GUI/Plater.cpp:4814 -msgid "Send G-code" -msgstr "发送 G 代码" - -#: src/slic3r/GUI/Plater.cpp:4898 -msgid "Paste From Clipboard" -msgstr "从剪贴板粘贴" - -#: src/slic3r/GUI/Preferences.cpp:22 src/slic3r/GUI/Tab.cpp:1998 -#: src/slic3r/GUI/Tab.cpp:2239 -msgid "General" -msgstr "常规" - -#: src/slic3r/GUI/Preferences.cpp:44 -msgid "Remember output directory" -msgstr "记住输出目录" - -#: src/slic3r/GUI/Preferences.cpp:46 -msgid "" -"If this is enabled, Slic3r will prompt the last output directory instead of " -"the one containing the input files." -msgstr "" -"如果启用此功能,Slic3r 将提示最后一个输出目录,而不是包含输入文件的输出目录。" - -#: src/slic3r/GUI/Preferences.cpp:52 -msgid "Auto-center parts" -msgstr "自动居中部件" - -#: src/slic3r/GUI/Preferences.cpp:54 -msgid "" -"If this is enabled, Slic3r will auto-center objects around the print bed " -"center." -msgstr "如果启用此功能,Slic3r 将自动将对象集中在构建板中心周围。" - -#: src/slic3r/GUI/Preferences.cpp:60 -msgid "Background processing" -msgstr "后台处理" - -#: src/slic3r/GUI/Preferences.cpp:62 -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 "" -"如果启用此功能, Slic3r 将在加载对象后立即对其进行预处理, 以便在导出 G-code " -"时节省时间。" - -#: src/slic3r/GUI/Preferences.cpp:71 -msgid "" -"If enabled, PrusaSlicer will check for the new versions of itself online. " -"When a new version becomes available a notification is displayed at the next " -"application startup (never during program usage). This is only a " -"notification mechanisms, no automatic installation is done." -msgstr "" -"如果启用,PrusaSlicer 将在线检查其自身的新版本。当新版本可用时,在下次应用程" -"序启动时(在程序使用期间,不会显示通知)。这只是一个通知机制,没有自动安装。" - -#: src/slic3r/GUI/Preferences.cpp:79 -msgid "" -"If enabled, Slic3r downloads updates of built-in system presets in the " -"background. These updates are downloaded into a separate temporary location. " -"When a new preset version becomes available it is offered at application " -"startup." -msgstr "" -"如果启用,Slic3r 将在后台下载内置系统预设的更新。 这些更新将会下载到一个单独" -"的临时文件夹。当一切准备就绪,将在应用启动的时候提供新版本。" - -#: src/slic3r/GUI/Preferences.cpp:84 -msgid "Suppress \" - default - \" presets" -msgstr "禁止\"- 默认值 - \"预设" - -#: src/slic3r/GUI/Preferences.cpp:86 -msgid "" -"Suppress \" - default - \" presets in the Print / Filament / Printer " -"selections once there are any other valid presets available." -msgstr "" -"在 \"打印/耗材丝/打印机\" 选择中禁止 \"-默认-\" 预设, 一旦有任何其他有效的预" -"设可用。" - -#: src/slic3r/GUI/Preferences.cpp:92 -msgid "Show incompatible print and filament presets" -msgstr "显示不兼容的打印和耗材丝预设" - -#: src/slic3r/GUI/Preferences.cpp:94 -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:101 -msgid "Use Retina resolution for the 3D scene" -msgstr "对 3D 场景使用视网膜分辨率" - -#: src/slic3r/GUI/Preferences.cpp:103 -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 "" -"如果启用,3D 场景将以视网膜分辨率渲染。如果您遇到 3D 性能问题,禁用此选项可能" -"会有所帮助。" - -#: src/slic3r/GUI/Preferences.cpp:110 -msgid "Use perspective camera" -msgstr "使用透视摄像机" - -#: src/slic3r/GUI/Preferences.cpp:112 -msgid "" -"If enabled, use perspective camera. If not enabled, use orthographic camera." -msgstr "如果启用,请使用透视摄像机。如果未启用,请使用正交相机。" - -#: src/slic3r/GUI/Preferences.cpp:117 -msgid "Use custom size for toolbar icons" -msgstr "对工具栏图标使用自定义大小" - -#: src/slic3r/GUI/Preferences.cpp:119 -msgid "If enabled, you can change size of toolbar icons manually." -msgstr "如果启用,您可以手动更改工具栏图标的大小。" - -#: src/slic3r/GUI/Preferences.cpp:144 -#, c-format -msgid "You need to restart %s to make the changes effective." -msgstr "您需要重新启动 %s 以使更改生效。" - -#: src/slic3r/GUI/Preferences.cpp:192 -msgid "Icon size in a respect to the default size" -msgstr "相对于默认大小的图标大小" - -#: src/slic3r/GUI/Preferences.cpp:207 -msgid "Select toolbar icon size in respect to the default one." -msgstr "选择与默认工具栏图标大小有关的大小。" - -#: src/slic3r/GUI/Preset.cpp:212 -msgid "modified" -msgstr "修改" - -#: src/slic3r/GUI/Preset.cpp:967 src/slic3r/GUI/Preset.cpp:1007 -#: src/slic3r/GUI/Preset.cpp:1072 src/slic3r/GUI/Preset.cpp:1104 -#: src/slic3r/GUI/PresetBundle.cpp:1484 src/slic3r/GUI/PresetBundle.cpp:1554 -msgid "System presets" -msgstr "系统预设" - -#: src/slic3r/GUI/Preset.cpp:1011 src/slic3r/GUI/Preset.cpp:1108 -#: src/slic3r/GUI/PresetBundle.cpp:1559 -msgid "User presets" -msgstr "用户预设" - -#: src/slic3r/GUI/Preset.cpp:1040 src/slic3r/GUI/Tab.cpp:243 -msgid "Add a new printer" -msgstr "添加新打印机" - -#: src/slic3r/GUI/Preset.cpp:1312 -msgid "filament" -msgstr "丝" - -#: src/slic3r/GUI/Preset.cpp:1313 -msgid "SLA print" -msgstr "SLA 打印" - -#: src/slic3r/GUI/PresetHints.cpp:28 -msgid "" -"If estimated layer time is below ~%1%s, fan will run at %2%%% and print " -"speed will be reduced so that no less than %3%s are spent on that layer " -"(however, speed will never be reduced below %4%mm/s)." -msgstr "" -"如果估计图层时间低于 ~%1%s,风扇将以 %2%%% 的速度运行,打印速度将降低,因此该图" -"层上花费的时间不会低于 %3%s (但是,速度永远不会降低到 %4%mm/s 以下)。" - -#: src/slic3r/GUI/PresetHints.cpp:35 -msgid "" -"\n" -"If estimated layer time is greater, but still below ~%1%s, fan will run at a " -"proportionally decreasing speed between %2%%% and %3%%%." -msgstr "" -"\n" -"如果估计层时间较大,但仍低于 ~%1%s,则风扇将以 %2%%% 和 %3%%% 之间的比例递减" -"速度运行。" - -#: src/slic3r/GUI/PresetHints.cpp:39 -msgid "" -"\n" -"During the other layers, fan" -msgstr "" -"\n" -"在其他层中,风扇" - -#: src/slic3r/GUI/PresetHints.cpp:41 -msgid "Fan" -msgstr "扇形" - -#: src/slic3r/GUI/PresetHints.cpp:47 -msgid "will always run at %1%%%" -msgstr "始终保持运行在 %1%%%" - -#: src/slic3r/GUI/PresetHints.cpp:50 -msgid "except for the first %1% layers." -msgstr "除前 %1% 图层外。" - -#: src/slic3r/GUI/PresetHints.cpp:52 -msgid "except for the first layer." -msgstr "第一层除外。" - -#: src/slic3r/GUI/PresetHints.cpp:54 -msgid "will be turned off." -msgstr "将被关闭。" - -#: src/slic3r/GUI/PresetHints.cpp:155 -msgid "external perimeters" -msgstr "外围轮廓" - -#: src/slic3r/GUI/PresetHints.cpp:164 -msgid "perimeters" -msgstr "轮廓" - -#: src/slic3r/GUI/PresetHints.cpp:173 -msgid "infill" -msgstr "加密" - -#: src/slic3r/GUI/PresetHints.cpp:183 -msgid "solid infill" -msgstr "实心填充" - -#: src/slic3r/GUI/PresetHints.cpp:191 -msgid "top solid infill" -msgstr "顶部实心填充" - -#: src/slic3r/GUI/PresetHints.cpp:202 -msgid "support" -msgstr "支撑" - -#: src/slic3r/GUI/PresetHints.cpp:212 -msgid "support interface" -msgstr "支撑面" - -#: src/slic3r/GUI/PresetHints.cpp:218 -msgid "First layer volumetric" -msgstr "首层流量" - -#: src/slic3r/GUI/PresetHints.cpp:218 -msgid "Bridging volumetric" -msgstr "桥接流量" - -#: src/slic3r/GUI/PresetHints.cpp:218 -msgid "Volumetric" -msgstr "体积" - -#: src/slic3r/GUI/PresetHints.cpp:219 -msgid "flow rate is maximized" -msgstr "流速已经最大" - -#: src/slic3r/GUI/PresetHints.cpp:222 -msgid "by the print profile maximum" -msgstr "根据打印配置文件的最大值" - -#: src/slic3r/GUI/PresetHints.cpp:223 -msgid "when printing" -msgstr "打印时" - -#: src/slic3r/GUI/PresetHints.cpp:224 -msgid "with a volumetric rate" -msgstr "具有体积速率" - -#: src/slic3r/GUI/PresetHints.cpp:228 -#, c-format -msgid "%3.2f mm³/s at filament speed %3.2f mm/s." -msgstr "%3.2f mm³/s,耗材丝速度 %3.2f mm/s。" - -#: src/slic3r/GUI/PresetHints.cpp:246 -msgid "" -"Recommended object thin wall thickness: Not available due to invalid layer " -"height." -msgstr "推荐对象薄壁厚度:由于层高度无效,不可用。" - -#: src/slic3r/GUI/PresetHints.cpp:262 -#, c-format -msgid "Recommended object thin wall thickness for layer height %.2f and" -msgstr "推荐对象薄壁厚度,当层高度为 %.2f 和" - -#: src/slic3r/GUI/PresetHints.cpp:268 -#, c-format -msgid "%d lines: %.2f mm" -msgstr "%d 线: %.2f mm" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:33 -msgid "Send G-Code to printer host" -msgstr "向打印机主机发送 G-Code" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:33 -msgid "Upload to Printer Host with the following filename:" -msgstr "使用以下文件名上传到打印机主机:" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:35 -msgid "Start printing after upload" -msgstr "上传后开始打印" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:42 -msgid "Use forward slashes ( / ) as a directory separator if needed." -msgstr "如果需要,请使用正向斜杠 ( / ) 作为目录分隔符。" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:149 -msgid "ID" -msgstr "ID" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:150 -msgid "Progress" -msgstr "进度" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:151 -msgid "Status" -msgstr "状态" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:152 -msgid "Host" -msgstr "主机" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:153 -msgid "Filename" -msgstr "文件名" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:154 -msgid "Error Message" -msgstr "错误信息" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:157 -msgid "Cancel selected" -msgstr "取消选定" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:159 -msgid "Show error message" -msgstr "显示错误消息" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:198 -#: src/slic3r/GUI/PrintHostDialogs.cpp:229 -msgid "Enqueued" -msgstr "加入队列" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:230 -msgid "Uploading" -msgstr "上传中" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:234 -msgid "Completed" -msgstr "已完成" - -#: src/slic3r/GUI/PrintHostDialogs.cpp:272 -msgid "Error uploading to print host:" -msgstr "上传到打印主机时出错:" - -#: src/slic3r/GUI/RammingChart.cpp:23 -msgid "NO RAMMING AT ALL" -msgstr "完全不存在" - -#: src/slic3r/GUI/RammingChart.cpp:76 -msgid "Time" -msgstr "时间" - -#: src/slic3r/GUI/RammingChart.cpp:76 src/slic3r/GUI/WipeTowerDialog.cpp:82 -#: src/libslic3r/PrintConfig.cpp:627 src/libslic3r/PrintConfig.cpp:671 -#: src/libslic3r/PrintConfig.cpp:686 src/libslic3r/PrintConfig.cpp:2349 -#: src/libslic3r/PrintConfig.cpp:2358 src/libslic3r/PrintConfig.cpp:2418 -#: src/libslic3r/PrintConfig.cpp:2426 src/libslic3r/PrintConfig.cpp:2434 -#: src/libslic3r/PrintConfig.cpp:2441 src/libslic3r/PrintConfig.cpp:2449 -#: src/libslic3r/PrintConfig.cpp:2457 -msgid "s" -msgstr "s" - -#: src/slic3r/GUI/RammingChart.cpp:81 -msgid "Volumetric speed" -msgstr "流量速度" - -#: src/slic3r/GUI/RammingChart.cpp:81 src/libslic3r/PrintConfig.cpp:584 -#: src/libslic3r/PrintConfig.cpp:1234 -msgid "mm³/s" -msgstr "mm³/s" - -#: src/slic3r/GUI/Selection.cpp:146 -msgid "Selection-Add" -msgstr "选择-添加" - -#: src/slic3r/GUI/Selection.cpp:187 -msgid "Selection-Remove" -msgstr "选择-删除" - -#: src/slic3r/GUI/Selection.cpp:219 -msgid "Selection-Add Object" -msgstr "选择-添加对象" - -#: src/slic3r/GUI/Selection.cpp:238 -msgid "Selection-Remove Object" -msgstr "选择-删除对象" - -#: src/slic3r/GUI/Selection.cpp:256 -msgid "Selection-Add Instance" -msgstr "选择-添加实例" - -#: src/slic3r/GUI/Selection.cpp:275 -msgid "Selection-Remove Instance" -msgstr "选择-删除实例" - -#: src/slic3r/GUI/Selection.cpp:376 -msgid "Selection-Add All" -msgstr "全部选择添加" - -#: src/slic3r/GUI/Selection.cpp:402 -msgid "Selection-Remove All" -msgstr "选择 - 全部删除" - -#: src/slic3r/GUI/Selection.cpp:939 -msgid "Scale To Fit" -msgstr "缩放至合适" - -#: src/slic3r/GUI/Selection.cpp:1474 -msgid "Set Printable Instance" -msgstr "设置可打印实例" - -#: src/slic3r/GUI/Selection.cpp:1474 -msgid "Set Unprintable Instance" -msgstr "设置不可打印的实例" - -#: src/slic3r/GUI/SysInfoDialog.cpp:78 -msgid "System Information" -msgstr "系统信息" - -#: src/slic3r/GUI/SysInfoDialog.cpp:154 -msgid "Copy to Clipboard" -msgstr "复制到剪贴板" - -#: src/slic3r/GUI/Tab.cpp:52 src/libslic3r/PrintConfig.cpp:239 -msgid "Compatible printers" -msgstr "兼容打印机" - -#: src/slic3r/GUI/Tab.cpp:53 -msgid "Select the printers this profile is compatible with." -msgstr "选择与此配置文件兼容的打印机。" - -#: src/slic3r/GUI/Tab.cpp:58 src/libslic3r/PrintConfig.cpp:254 -msgid "Compatible print profiles" -msgstr "兼容的打印配置文件" - -#: src/slic3r/GUI/Tab.cpp:59 -msgid "Select the print profiles this profile is compatible with." -msgstr "选择与此配置文件兼容的打印配置文件。" - -#. TRN "Save current Settings" -#: src/slic3r/GUI/Tab.cpp:135 -#, c-format -msgid "Save current %s" -msgstr "保存当前 %s" - -#: src/slic3r/GUI/Tab.cpp:136 -msgid "Delete this preset" -msgstr "删除该预设" - -#: src/slic3r/GUI/Tab.cpp:141 -msgid "" -"Hover the cursor over buttons to find more information \n" -"or click this button." -msgstr "" -"将光标悬停在按钮上以查找详细信息\n" -"或单击此按钮。" - -#: src/slic3r/GUI/Tab.cpp:940 -msgid "This is a default preset." -msgstr "这是默认预设。" - -#: src/slic3r/GUI/Tab.cpp:942 -msgid "This is a system preset." -msgstr "这是一个系统预设。" - -#: src/slic3r/GUI/Tab.cpp:944 -msgid "Current preset is inherited from the default preset." -msgstr "当前预设从默认预设继承。" - -#: src/slic3r/GUI/Tab.cpp:947 -#, c-format -msgid "" -"Current preset is inherited from:\n" -"\t%s" -msgstr "" -"当前预设继承自:\n" -"\t%s" - -#: src/slic3r/GUI/Tab.cpp:951 -msgid "It can't be deleted or modified." -msgstr "无法删除或修改它。" - -#: src/slic3r/GUI/Tab.cpp:952 -msgid "" -"Any modifications should be saved as a new preset inherited from this one." -msgstr "任何修改都应保存为从此修改继承的新预设。" - -#: src/slic3r/GUI/Tab.cpp:953 -msgid "To do that please specify a new name for the preset." -msgstr "为此,请为预设指定新名称。" - -#: src/slic3r/GUI/Tab.cpp:957 -msgid "Additional information:" -msgstr "附加信息:" - -#: src/slic3r/GUI/Tab.cpp:963 -msgid "printer model" -msgstr "打印机型号" - -#: src/slic3r/GUI/Tab.cpp:971 -msgid "default print profile" -msgstr "默认打印配置文件" - -#: src/slic3r/GUI/Tab.cpp:974 -msgid "default filament profile" -msgstr "默认耗材丝配置" - -#: src/slic3r/GUI/Tab.cpp:988 -msgid "default SLA material profile" -msgstr "默认 SLA 材料配置文件" - -#: src/slic3r/GUI/Tab.cpp:992 -msgid "default SLA print profile" -msgstr "默认 SLA 打印配置文件" - -#: src/slic3r/GUI/Tab.cpp:1029 src/slic3r/GUI/Tab.cpp:3728 -msgid "Layers and perimeters" -msgstr "层和轮廓" - -#: src/slic3r/GUI/Tab.cpp:1034 -msgid "Vertical shells" -msgstr "垂直外壳" - -#: src/slic3r/GUI/Tab.cpp:1045 -msgid "Horizontal shells" -msgstr "水平外壳" - -#: src/slic3r/GUI/Tab.cpp:1046 src/libslic3r/PrintConfig.cpp:1759 -msgid "Solid layers" -msgstr "实心层" - -#: src/slic3r/GUI/Tab.cpp:1051 -msgid "Quality (slower slicing)" -msgstr "质量(较慢的切片)" - -#: src/slic3r/GUI/Tab.cpp:1069 -msgid "Reducing printing time" -msgstr "缩短打印时间" - -#: src/slic3r/GUI/Tab.cpp:1081 -msgid "Skirt and brim" -msgstr "裙边" - -#: src/slic3r/GUI/Tab.cpp:1098 -msgid "Raft" -msgstr "基座" - -#: src/slic3r/GUI/Tab.cpp:1102 -msgid "Options for support material and raft" -msgstr "支撑材料和基座的选项" - -#: src/slic3r/GUI/Tab.cpp:1117 -msgid "Speed for print moves" -msgstr "打印移动速度" - -#: src/slic3r/GUI/Tab.cpp:1129 -msgid "Speed for non-print moves" -msgstr "非打印移动的速度" - -#: src/slic3r/GUI/Tab.cpp:1132 -msgid "Modifiers" -msgstr "修改器" - -#: src/slic3r/GUI/Tab.cpp:1135 -msgid "Acceleration control (advanced)" -msgstr "加速控制(高级)" - -#: src/slic3r/GUI/Tab.cpp:1142 -msgid "Autospeed (advanced)" -msgstr "自动调速 (高级)" - -#: src/slic3r/GUI/Tab.cpp:1150 -msgid "Multiple Extruders" -msgstr "多个挤出机" - -#: src/slic3r/GUI/Tab.cpp:1158 -msgid "Ooze prevention" -msgstr "Ooze 预防" - -#: src/slic3r/GUI/Tab.cpp:1175 -msgid "Extrusion width" -msgstr "挤出宽度" - -#: src/slic3r/GUI/Tab.cpp:1185 -msgid "Overlap" -msgstr "交叠" - -#: src/slic3r/GUI/Tab.cpp:1188 -msgid "Flow" -msgstr "流量" - -#: src/slic3r/GUI/Tab.cpp:1197 -msgid "Other" -msgstr "其他" - -#: src/slic3r/GUI/Tab.cpp:1200 src/slic3r/GUI/Tab.cpp:3786 -msgid "Output options" -msgstr "输出选项" - -#: src/slic3r/GUI/Tab.cpp:1201 -msgid "Sequential printing" -msgstr "顺序打印" - -#: src/slic3r/GUI/Tab.cpp:1203 -msgid "Extruder clearance (mm)" -msgstr "挤出机间隙(mm)" - -#: src/slic3r/GUI/Tab.cpp:1212 src/slic3r/GUI/Tab.cpp:3787 -msgid "Output file" -msgstr "输出文件" - -#: src/slic3r/GUI/Tab.cpp:1219 src/libslic3r/PrintConfig.cpp:1432 -msgid "Post-processing scripts" -msgstr "后处理脚本" - -#: src/slic3r/GUI/Tab.cpp:1225 src/slic3r/GUI/Tab.cpp:1226 -#: src/slic3r/GUI/Tab.cpp:1749 src/slic3r/GUI/Tab.cpp:1750 -#: src/slic3r/GUI/Tab.cpp:2211 src/slic3r/GUI/Tab.cpp:2212 -#: src/slic3r/GUI/Tab.cpp:2325 src/slic3r/GUI/Tab.cpp:2326 -#: src/slic3r/GUI/Tab.cpp:3665 src/slic3r/GUI/Tab.cpp:3666 -msgid "Notes" -msgstr "备注" - -#: src/slic3r/GUI/Tab.cpp:1232 src/slic3r/GUI/Tab.cpp:1757 -#: src/slic3r/GUI/Tab.cpp:2218 src/slic3r/GUI/Tab.cpp:2332 -#: src/slic3r/GUI/Tab.cpp:3673 src/slic3r/GUI/Tab.cpp:3792 -msgid "Dependencies" -msgstr "依赖" - -#: src/slic3r/GUI/Tab.cpp:1233 src/slic3r/GUI/Tab.cpp:1758 -#: src/slic3r/GUI/Tab.cpp:2219 src/slic3r/GUI/Tab.cpp:2333 -#: src/slic3r/GUI/Tab.cpp:3674 src/slic3r/GUI/Tab.cpp:3793 -msgid "Profile dependencies" -msgstr "配置文件依赖" - -#: src/slic3r/GUI/Tab.cpp:1535 src/slic3r/GUI/Tab.cpp:1590 -msgid "Filament Overrides" -msgstr "耗材丝参数替换" - -#: src/slic3r/GUI/Tab.cpp:1536 src/slic3r/GUI/Tab.cpp:1595 -#: src/slic3r/GUI/Tab.cpp:2567 -msgid "Retraction" -msgstr "回抽" - -#: src/slic3r/GUI/Tab.cpp:1645 src/libslic3r/PrintConfig.cpp:2030 -msgid "Temperature" -msgstr "温度" - -#: src/slic3r/GUI/Tab.cpp:1651 -msgid "Bed" -msgstr "床" - -#: src/slic3r/GUI/Tab.cpp:1656 -msgid "Cooling" -msgstr "冷却" - -#: src/slic3r/GUI/Tab.cpp:1657 src/libslic3r/PrintConfig.cpp:1335 -#: src/libslic3r/PrintConfig.cpp:2150 -msgid "Enable" -msgstr "启用" - -#: src/slic3r/GUI/Tab.cpp:1668 -msgid "Fan settings" -msgstr "风扇设置" - -#: src/slic3r/GUI/Tab.cpp:1669 -msgid "Fan speed" -msgstr "风扇速度" - -#: src/slic3r/GUI/Tab.cpp:1677 -msgid "Cooling thresholds" -msgstr "冷却阈值" - -#: src/slic3r/GUI/Tab.cpp:1683 -msgid "Filament properties" -msgstr "耗材丝特性" - -#: src/slic3r/GUI/Tab.cpp:1687 -msgid "Print speed override" -msgstr "打印速度覆盖" - -#: src/slic3r/GUI/Tab.cpp:1697 -msgid "Wipe tower parameters" -msgstr "擦料塔参数" - -#: src/slic3r/GUI/Tab.cpp:1700 -msgid "Toolchange parameters with single extruder MM printers" -msgstr "单挤出机 多色 打印机的工具更换参数" - -#: src/slic3r/GUI/Tab.cpp:1714 -msgid "Ramming settings" -msgstr "冲击设置" - -#: src/slic3r/GUI/Tab.cpp:1736 src/slic3r/GUI/Tab.cpp:2174 -msgid "Custom G-code" -msgstr "自定义 G-code" - -#: src/slic3r/GUI/Tab.cpp:1737 src/slic3r/GUI/Tab.cpp:2175 -#: src/libslic3r/PrintConfig.cpp:1785 src/libslic3r/PrintConfig.cpp:1800 -msgid "Start G-code" -msgstr "起始 G-code" - -#: src/slic3r/GUI/Tab.cpp:1743 src/slic3r/GUI/Tab.cpp:2181 -#: src/libslic3r/PrintConfig.cpp:369 src/libslic3r/PrintConfig.cpp:379 -msgid "End G-code" -msgstr "结尾 G-code" - -#: src/slic3r/GUI/Tab.cpp:1800 -msgid "Volumetric flow hints not available" -msgstr "容积流量提示不可用" - -#: src/slic3r/GUI/Tab.cpp:1886 src/slic3r/GUI/Tab.cpp:2114 -msgid "Test" -msgstr "测试" - -#: src/slic3r/GUI/Tab.cpp:1896 -msgid "Could not get a valid Printer Host reference" -msgstr "无法获取有效的打印机主机引用" - -#: src/slic3r/GUI/Tab.cpp:1902 src/slic3r/GUI/Tab.cpp:2127 -msgid "Success!" -msgstr "成功!" - -#: src/slic3r/GUI/Tab.cpp:1917 -msgid "" -"HTTPS CA file is optional. It is only needed if you use HTTPS with a self-" -"signed certificate." -msgstr "" -"HTTPS CA 文件是可选的。只有在使用带有自签名证书的 HTTPS 时, 才需要使用它。" - -#: src/slic3r/GUI/Tab.cpp:1930 -msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" -msgstr "证书文件 (*.crt, *.pem)|*.crt;*.pem|All files|*.*" - -#: src/slic3r/GUI/Tab.cpp:1931 -msgid "Open CA certificate file" -msgstr "打开 CA 证书文件" - -#: src/slic3r/GUI/Tab.cpp:1959 -#, c-format -msgid "" -"HTTPS CA File:\n" -" \tOn this system, %s uses HTTPS certificates from the system Certificate " -"Store or Keychain.\n" -" \tTo use a custom CA file, please import your CA file into Certificate " -"Store / Keychain." -msgstr "" -"HTTPS CA 文件:\n" -" \t在此系统上,%s 使用来自系统证书存储或钥匙串的 HTTPS 证书。\n" -" \t要使用自定义 CA 文件,请将 CA 文件导入证书存储/钥匙串。" - -#: src/slic3r/GUI/Tab.cpp:1999 src/slic3r/GUI/Tab.cpp:2240 -msgid "Size and coordinates" -msgstr "大小和坐标" - -#: src/slic3r/GUI/Tab.cpp:2004 src/slic3r/GUI/Tab.cpp:2245 -#: src/slic3r/GUI/Tab.cpp:3335 -msgid "Set" -msgstr "设置" - -#: src/slic3r/GUI/Tab.cpp:2036 -msgid "Capabilities" -msgstr "权限" - -#: src/slic3r/GUI/Tab.cpp:2041 -msgid "Number of extruders of the printer." -msgstr "打印机的挤出机数。" - -#: src/slic3r/GUI/Tab.cpp:2066 -msgid "" -"Single Extruder Multi Material is selected, \n" -"and all extruders must have the same diameter.\n" -"Do you want to change the diameter for all extruders to first extruder " -"nozzle diameter value?" -msgstr "" -"选择单挤出机多材料,\n" -"和所有挤出机必须具有相同的直径。\n" -"是否要将所有挤出机的直径更改为第一挤出机喷嘴直径值?" - -#: src/slic3r/GUI/Tab.cpp:2069 src/slic3r/GUI/Tab.cpp:2537 -#: src/libslic3r/PrintConfig.cpp:1310 -msgid "Nozzle diameter" -msgstr "喷嘴直径" - -#: src/slic3r/GUI/Tab.cpp:2099 -msgid "USB/Serial connection" -msgstr "USB/串行连接" - -#: src/slic3r/GUI/Tab.cpp:2100 src/libslic3r/PrintConfig.cpp:1640 -msgid "Serial port" -msgstr "串行端口" - -#: src/slic3r/GUI/Tab.cpp:2105 -msgid "Rescan serial ports" -msgstr "重新扫描串行端口" - -#: src/slic3r/GUI/Tab.cpp:2127 -msgid "Connection to printer works correctly." -msgstr "与打印机的连接工作正常。" - -#: src/slic3r/GUI/Tab.cpp:2130 -msgid "Connection failed." -msgstr "连接失败。" - -#: src/slic3r/GUI/Tab.cpp:2143 src/slic3r/GUI/Tab.cpp:2320 -msgid "Print Host upload" -msgstr "打印主机上传" - -#: src/slic3r/GUI/Tab.cpp:2187 src/libslic3r/PrintConfig.cpp:138 -msgid "Before layer change G-code" -msgstr "在图层更改 G 代码之前" - -#: src/slic3r/GUI/Tab.cpp:2193 src/libslic3r/PrintConfig.cpp:1056 -msgid "After layer change G-code" -msgstr "图层更改 G 代码后" - -#: src/slic3r/GUI/Tab.cpp:2199 src/libslic3r/PrintConfig.cpp:2056 -msgid "Tool change G-code" -msgstr "工具更改 G 代码" - -#: src/slic3r/GUI/Tab.cpp:2205 -msgid "Between objects G-code (for sequential printing)" -msgstr "模型对象之间的 G-code (用于顺序打印)" - -#: src/slic3r/GUI/Tab.cpp:2277 -msgid "Display" -msgstr "显示" - -#: src/slic3r/GUI/Tab.cpp:2292 -msgid "Tilt" -msgstr "倾斜" - -#: src/slic3r/GUI/Tab.cpp:2293 -msgid "Tilt time" -msgstr "倾斜时间" - -#: src/slic3r/GUI/Tab.cpp:2299 src/slic3r/GUI/Tab.cpp:3647 -msgid "Corrections" -msgstr "修正" - -#: src/slic3r/GUI/Tab.cpp:2314 src/slic3r/GUI/Tab.cpp:3643 -msgid "Exposure" -msgstr "曝光" - -#: src/slic3r/GUI/Tab.cpp:2385 src/slic3r/GUI/Tab.cpp:2470 -#: src/libslic3r/PrintConfig.cpp:1106 src/libslic3r/PrintConfig.cpp:1124 -#: src/libslic3r/PrintConfig.cpp:1142 src/libslic3r/PrintConfig.cpp:1159 -#: src/libslic3r/PrintConfig.cpp:1170 src/libslic3r/PrintConfig.cpp:1181 -#: src/libslic3r/PrintConfig.cpp:1192 -msgid "Machine limits" -msgstr "机器限制" - -#: src/slic3r/GUI/Tab.cpp:2399 -msgid "Values in this column are for Normal mode" -msgstr "此列中的值用于正常模式" - -#: src/slic3r/GUI/Tab.cpp:2400 -msgid "Normal" -msgstr "正常" - -#: src/slic3r/GUI/Tab.cpp:2405 -msgid "Values in this column are for Stealth mode" -msgstr "此列中的值用于隐身模式" - -#: src/slic3r/GUI/Tab.cpp:2406 -msgid "Stealth" -msgstr "隐形" - -#: src/slic3r/GUI/Tab.cpp:2414 -msgid "Maximum feedrates" -msgstr "最大进给率" - -#: src/slic3r/GUI/Tab.cpp:2419 -msgid "Maximum accelerations" -msgstr "最大加速度" - -#: src/slic3r/GUI/Tab.cpp:2426 -msgid "Jerk limits" -msgstr "抖动限制" - -#: src/slic3r/GUI/Tab.cpp:2431 -msgid "Minimum feedrates" -msgstr "最小进给率" - -#: src/slic3r/GUI/Tab.cpp:2495 src/slic3r/GUI/Tab.cpp:2503 -msgid "Single extruder MM setup" -msgstr "单挤出机 MM 设置" - -#: src/slic3r/GUI/Tab.cpp:2504 -msgid "Single extruder multimaterial parameters" -msgstr "单挤出机多材料参数" - -#: src/slic3r/GUI/Tab.cpp:2517 src/libslic3r/GCode/PreviewData.cpp:461 -#, c-format -msgid "Extruder %d" -msgstr "挤出机 %d" - -#: src/slic3r/GUI/Tab.cpp:2535 -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:2559 -msgid "Layer height limits" -msgstr "层高度限制" - -#: src/slic3r/GUI/Tab.cpp:2564 -msgid "Position (for multi-extruder printers)" -msgstr "位置(适用于多挤出打印机)" - -#: src/slic3r/GUI/Tab.cpp:2570 -msgid "Only lift Z" -msgstr "仅提升 Z" - -#: src/slic3r/GUI/Tab.cpp:2583 -msgid "" -"Retraction when tool is disabled (advanced settings for multi-extruder " -"setups)" -msgstr "工具禁用时的回抽 (多挤出机设置的高级设置)" - -#: src/slic3r/GUI/Tab.cpp:2591 -msgid "Reset to Filament Color" -msgstr "重置为耗材丝颜色" - -#: src/slic3r/GUI/Tab.cpp:2772 -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 "" -"使用固件回抽模式时,\"擦除\"选项不可用。\n" -"\n" -"我应禁用它,以便启用固件回抽?" - -#: src/slic3r/GUI/Tab.cpp:2774 -msgid "Firmware Retraction" -msgstr "固件回抽" - -#: src/slic3r/GUI/Tab.cpp:3103 -#, c-format -msgid "Default preset (%s)" -msgstr "默认预设 (%s)" - -#: src/slic3r/GUI/Tab.cpp:3104 -#, c-format -msgid "Preset (%s)" -msgstr "预设 (%s)" - -#: src/slic3r/GUI/Tab.cpp:3121 -msgid "has the following unsaved changes:" -msgstr "具有以下未保存的更改:" - -#: src/slic3r/GUI/Tab.cpp:3124 -msgid "is not compatible with printer" -msgstr "与打印机不兼容" - -#: src/slic3r/GUI/Tab.cpp:3125 -msgid "is not compatible with print profile" -msgstr "与打印配置文件不兼容" - -#: src/slic3r/GUI/Tab.cpp:3127 -msgid "and it has the following unsaved changes:" -msgstr "并且它有以下未保存的更改:" - -#: src/slic3r/GUI/Tab.cpp:3131 -msgid "Unsaved Changes" -msgstr "未保存的修改" - -#: src/slic3r/GUI/Tab.cpp:3222 -msgid "%1% - Copy" -msgstr "%1% - 复制" - -#: src/slic3r/GUI/Tab.cpp:3245 -msgid "The supplied name is empty. It can't be saved." -msgstr "提供的名称为空。无法保存。" - -#: src/slic3r/GUI/Tab.cpp:3250 -msgid "Cannot overwrite a system profile." -msgstr "无法覆盖系统配置文件。" - -#: src/slic3r/GUI/Tab.cpp:3254 -msgid "Cannot overwrite an external profile." -msgstr "无法覆盖外部配置文件。" - -#: src/slic3r/GUI/Tab.cpp:3280 -msgid "remove" -msgstr "移除" - -#: src/slic3r/GUI/Tab.cpp:3280 -msgid "delete" -msgstr "删除" - -#. TRN remove/delete -#: src/slic3r/GUI/Tab.cpp:3282 -msgid "Are you sure you want to %1% the selected preset?" -msgstr "是否确实要将所选预设 %1%?" - -#. TRN Remove/Delete -#: src/slic3r/GUI/Tab.cpp:3285 -msgid "%1% Preset" -msgstr "%1% 预设" - -#: src/slic3r/GUI/Tab.cpp:3411 -msgid "LOCKED LOCK" -msgstr "锁定锁" - -#. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3413 -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:3415 -msgid "UNLOCKED LOCK" -msgstr "解锁锁" - -#. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3417 -msgid "" -"indicates that some settings were changed and are not equal to the system " -"(or default) values for the current option group.\n" -"Click the UNLOCKED LOCK icon to reset all settings for current option group " -"to the system (or default) values." -msgstr "" -"指示某些设置已更改,并且不等于当前选项组的系统(或默认值)值。\n" -"单击\"锁定锁定\"图标可将当前选项组的所有设置重置为系统(或默认值)值。" - -#: src/slic3r/GUI/Tab.cpp:3422 -msgid "WHITE BULLET" -msgstr "白色子弹" - -#. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3424 -msgid "" -"for the left button: \tindicates a non-system (or non-default) preset,\n" -"for the right button: \tindicates that the settings hasn't been modified." -msgstr "" -"对于左侧按钮:指示非系统(或非默认)预设,\n" -"对于右侧按钮:指示设置尚未修改。" - -#: src/slic3r/GUI/Tab.cpp:3427 -msgid "BACK ARROW" -msgstr "后箭头" - -#. TRN Description for "BACK ARROW" -#: src/slic3r/GUI/Tab.cpp:3429 -msgid "" -"indicates that the settings were changed and are not equal to the last saved " -"preset for the current option group.\n" -"Click the BACK ARROW icon to reset all settings for the current option group " -"to the last saved preset." -msgstr "" -"指示设置已更改,不等于当前选项组的最后一个保存预设。\n" -"单击\"后退箭头\"图标可将当前选项组的所有设置重置为上次保存的预设。" - -#: src/slic3r/GUI/Tab.cpp:3439 -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:3441 -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" -"Click to reset all settings for current option group to the system (or " -"default) values." -msgstr "" -"锁定的锁 图标指示某些设置已更改,并且不等于当前选项组的系统(或默认值)值。\n" -"单击此处可将当前选项组的所有设置重置为系统(或默认值)值。" - -#: src/slic3r/GUI/Tab.cpp:3444 -msgid "WHITE BULLET icon indicates a non system (or non default) preset." -msgstr "白色 BULLET 图标表示非系统(或非默认)预设。" - -#: src/slic3r/GUI/Tab.cpp:3447 -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:3449 -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" -"Click to reset all settings for the current option group to the last saved " -"preset." -msgstr "" -"后退箭头图标表示设置已更改,不等于当前选项组的最后保存预设。\n" -"单击此处可将当前选项组的所有设置重置为上次保存的预设。" - -#: src/slic3r/GUI/Tab.cpp:3455 -msgid "" -"LOCKED LOCK icon indicates that the value is the same as the system (or " -"default) value." -msgstr "锁定锁定图标表示该值与系统(或默认值)值相同。" - -#: src/slic3r/GUI/Tab.cpp:3456 -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 "" -"锁定的锁 图标指示该值已更改,不等于系统(或默认值)值。\n" -"单击以将当前值重置为系统(或默认值)值。" - -#: src/slic3r/GUI/Tab.cpp:3462 -msgid "" -"WHITE BULLET icon indicates that the value is the same as in the last saved " -"preset." -msgstr "白色子弹图标表示该值与上次保存的预设中的值相同。" - -#: src/slic3r/GUI/Tab.cpp:3463 -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 "" -"后退箭头图标指示该值已更改,不等于上次保存的预设。\n" -"单击以将当前值重置为上次保存的预设。" - -#. TRN Preset -#: src/slic3r/GUI/Tab.cpp:3576 -#, c-format -msgid "Save %s as:" -msgstr "将 %s 另存为:" - -#: src/slic3r/GUI/Tab.cpp:3620 -msgid "the following suffix is not allowed:" -msgstr "不允许使用以下后缀:" - -#: src/slic3r/GUI/Tab.cpp:3624 -msgid "The supplied name is not available." -msgstr "提供的名称不可用。" - -#: src/slic3r/GUI/Tab.cpp:3637 -msgid "Material" -msgstr "材料" - -#: src/slic3r/GUI/Tab.cpp:3639 src/slic3r/GUI/Tab.cpp:3730 -#: src/slic3r/GUI/wxExtensions.cpp:482 -msgid "Layers" -msgstr "图层" - -#: src/slic3r/GUI/Tab.cpp:3738 -msgid "Support head" -msgstr "支撑头" - -#: src/slic3r/GUI/Tab.cpp:3743 -msgid "Support pillar" -msgstr "支撑支柱" - -#: src/slic3r/GUI/Tab.cpp:3757 -msgid "Connection of the support sticks and junctions" -msgstr "支撑杆和接头的连接" - -#: src/slic3r/GUI/Tab.cpp:3762 -msgid "Automatic generation" -msgstr "自动生成" - -#: src/slic3r/GUI/Tab.hpp:328 src/slic3r/GUI/Tab.hpp:428 -msgid "Print Settings" -msgstr "打印设置" - -#: src/slic3r/GUI/Tab.hpp:353 -msgid "Filament Settings" -msgstr "耗材丝设置" - -#: src/slic3r/GUI/Tab.hpp:389 -msgid "Printer Settings" -msgstr "打印机设置" - -#: src/slic3r/GUI/Tab.hpp:413 -msgid "Material Settings" -msgstr "材料设置" - -#: src/slic3r/GUI/Tab.hpp:440 -msgid "Save preset" -msgstr "保存预设" - -#: src/slic3r/GUI/UpdateDialogs.cpp:38 -msgid "Update available" -msgstr "更新可用" - -#: src/slic3r/GUI/UpdateDialogs.cpp:38 -#, c-format -msgid "New version of %s is available" -msgstr "新版本 %s 可用" - -#: src/slic3r/GUI/UpdateDialogs.cpp:45 -msgid "Current version:" -msgstr "当前版本:" - -#: src/slic3r/GUI/UpdateDialogs.cpp:47 -msgid "New version:" -msgstr "新版本:" - -#: src/slic3r/GUI/UpdateDialogs.cpp:55 -msgid "Changelog && Download" -msgstr "更改日志 && 下载" - -#: src/slic3r/GUI/UpdateDialogs.cpp:62 src/slic3r/GUI/UpdateDialogs.cpp:127 -msgid "Open changelog page" -msgstr "打开更改日志页面" - -#: src/slic3r/GUI/UpdateDialogs.cpp:67 -msgid "Open download page" -msgstr "打开下载页面" - -#: src/slic3r/GUI/UpdateDialogs.cpp:73 -msgid "Don't notify about new releases any more" -msgstr "不再通知新版本" - -#: src/slic3r/GUI/UpdateDialogs.cpp:91 src/slic3r/GUI/UpdateDialogs.cpp:207 -msgid "Configuration update" -msgstr "配置更新" - -#: src/slic3r/GUI/UpdateDialogs.cpp:91 -msgid "Configuration update is available" -msgstr "配置更新可用" - -#: src/slic3r/GUI/UpdateDialogs.cpp:94 -msgid "" -"Would you like to install it?\n" -"\n" -"Note that a full configuration snapshot will be created first. It can then " -"be restored at any time should there be a problem with the new version.\n" -"\n" -"Updated configuration bundles:" -msgstr "" -"是否安装它?\n" -"\n" -"请注意,将首先创建完整的配置快照。然后,如果新版本出现问题,可以随时恢复" -"它。\n" -"\n" -"更新的配置捆绑包:" - -#: src/slic3r/GUI/UpdateDialogs.cpp:115 -msgid "Comment:" -msgstr "评论:" - -#: src/slic3r/GUI/UpdateDialogs.cpp:151 -#, c-format -msgid "%s incompatibility" -msgstr "%s 不兼容" - -#: src/slic3r/GUI/UpdateDialogs.cpp:152 -#, c-format -msgid "%s configuration is incompatible" -msgstr "%s 配置不兼容" - -#: src/slic3r/GUI/UpdateDialogs.cpp:157 -#, c-format -msgid "" -"This version of %s is not compatible with currently installed configuration " -"bundles.\n" -"This probably happened as a result of running an older %s after using a " -"newer one.\n" -"\n" -"You may either exit %s and try again with a newer version, or you may re-run " -"the initial configuration. Doing so will create a backup snapshot of the " -"existing configuration before installing files compatible with this %s.\n" -msgstr "" -"这个 %s 版本与现在安装的配置组不兼容。\n" -"也可能是因为在安装新版本后运行了旧的 %s \n" -"你可以退出 %s 再尝试新版本,或者重新运行初始化工具。这个操作将会在安装兼容现" -"有 %s 版本文件时创建一个当前配置备份快照\n" - -#: src/slic3r/GUI/UpdateDialogs.cpp:166 -#, c-format -msgid "This %s version: %s" -msgstr "此 %s 版本: %s" - -#: src/slic3r/GUI/UpdateDialogs.cpp:171 -msgid "Incompatible bundles:" -msgstr "不兼容的包:" - -#: src/slic3r/GUI/UpdateDialogs.cpp:187 -#, c-format -msgid "Exit %s" -msgstr "退出 %s" - -#: src/slic3r/GUI/UpdateDialogs.cpp:190 -msgid "Re-configure" -msgstr "重新配置" - -#: src/slic3r/GUI/UpdateDialogs.cpp:211 -#, c-format -msgid "" -"%s now uses an updated configuration structure.\n" -"\n" -"So called 'System presets' have been introduced, which hold the built-in " -"default settings for various printers. These System presets cannot be " -"modified, instead, users now may create their own presets inheriting " -"settings from one of the System presets.\n" -"An inheriting preset may either inherit a particular value from its parent " -"or override it with a customized value.\n" -"\n" -"Please proceed with the %s that follows to set up the new presets and to " -"choose whether to enable automatic preset updates." -msgstr "" -"%s 现在使用更新的配置结构。\n" -"\n" -"所谓的\"系统预设\"已经引入,它保存各种打印机的内置默认设置。无法修改这些系统预" -"设,相反,用户现在可以创建自己的预设,从其中一个系统预设继承设置。\n" -"继承预设可以从其父级继承特定值,也可以使用自定义值覆盖该值。\n" -"\n" -"请继续以下 %s 以设置新预设并选择是否启用自动预设更新。" - -#: src/slic3r/GUI/UpdateDialogs.cpp:227 -msgid "For more information please visit our wiki page:" -msgstr "欲了解更多信息,请访问我们的维基页面:" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:14 -msgid "Ramming customization" -msgstr "冲击自定义" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:40 -msgid "" -"Ramming denotes the rapid extrusion just before a tool change in a single-" -"extruder MM printer. Its purpose is to properly shape the end of the " -"unloaded filament so it does not prevent insertion of the new filament and " -"can itself be reinserted later. This phase is important and different " -"materials can require different extrusion speeds to get the good shape. For " -"this reason, the extrusion rates during ramming are adjustable.\n" -"\n" -"This is an expert-level setting, incorrect adjustment will likely lead to " -"jams, extruder wheel grinding into filament etc." -msgstr "" -"冲击表示在单挤出机 MM 打印机的挤出机更换之前的快速挤出。它的目的是正确地塑造" -"卸载的耗材丝的末端, 这样它就不会导致插入新的耗材丝卡住, 并且原耗材丝本身可以" -"再重新插入。这个阶段很重要, 不同的材料可能需要不同的挤压速度, 以获得良好的形" -"状。因此, 夯实冲击过程中的挤出速率是可调的。\n" -"\n" -"这是一个专家级设置, 不正确的调整很可能会导致卡料, 挤出机砂轮磨耗材丝等。" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:82 -msgid "Total ramming time" -msgstr "总冲击时间" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:84 -msgid "Total rammed volume" -msgstr "总冲击量" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:88 -msgid "Ramming line width" -msgstr "冲击线宽度" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:90 -msgid "Ramming line spacing" -msgstr "冲击线行距" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:141 -msgid "Wipe tower - Purging volume adjustment" -msgstr "擦料塔 - 清除体积调整" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:225 -msgid "" -"Here you can adjust required purging volume (mm³) for any given pair of " -"tools." -msgstr "在这里, 您可以调整任何给定的对工具所需的清除体积 (mm³) 。" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:226 -msgid "Extruder changed to" -msgstr "挤出机更改为" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:234 -msgid "unloaded" -msgstr "卸载" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:235 -msgid "loaded" -msgstr "装载" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:240 -msgid "Tool #" -msgstr "工具 #" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:247 -msgid "" -"Total purging volume is calculated by summing two values below, depending on " -"which tools are loaded/unloaded." -msgstr "总清除量是通过求和下面的两个值来计算的, 具体取决于装载/卸载的工具。" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:248 -msgid "Volume to purge (mm³) when the filament is being" -msgstr "要清除的体积 (mm³) 当耗材正在被" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:262 -msgid "From" -msgstr "从" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:327 -msgid "" -"Switching to simple settings will discard changes done in the advanced " -"mode!\n" -"\n" -"Do you want to proceed?" -msgstr "" -"切换到简单设置将放弃在高级模式下完成的更改!\n" -"\n" -"是否要继续?" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:339 -msgid "Show simplified settings" -msgstr "显示简单设置" - -#: src/slic3r/GUI/WipeTowerDialog.cpp:339 -msgid "Show advanced settings" -msgstr "显示高级设置" - -#: src/slic3r/GUI/wxExtensions.cpp:471 -msgid "Instances" -msgstr "实例" - -#: src/slic3r/GUI/wxExtensions.cpp:475 src/slic3r/GUI/wxExtensions.cpp:619 -#, c-format -msgid "Instance %d" -msgstr "实例 %d" - -#: src/slic3r/GUI/wxExtensions.cpp:509 -msgid "Range" -msgstr "范围" - -#: src/slic3r/GUI/wxExtensions.cpp:2729 -msgid "One layer mode" -msgstr "一层模式" - -#: src/slic3r/GUI/wxExtensions.cpp:2730 -msgid "Add/Del color change" -msgstr "添加/删除颜色更改" - -#: src/slic3r/GUI/wxExtensions.cpp:2731 -msgid "Discard all color changes" -msgstr "放弃所有颜色更改" - -#: src/slic3r/GUI/wxExtensions.cpp:2991 -#, c-format -msgid "Switch to the %s mode" -msgstr "切换到 %s 模式" - -#: src/slic3r/GUI/wxExtensions.cpp:2992 -#, c-format -msgid "Current mode is %s" -msgstr "当前模式为 %s" - -#: src/slic3r/Utils/Duet.cpp:51 -msgid "Connection to Duet works correctly." -msgstr "与 Duet 的连接工作正常。" - -#: src/slic3r/Utils/Duet.cpp:56 -msgid "Could not connect to Duet" -msgstr "无法连接到 Duet" - -#: src/slic3r/Utils/Duet.cpp:84 src/slic3r/Utils/Duet.cpp:154 -msgid "Unknown error occured" -msgstr "发生未知错误" - -#: src/slic3r/Utils/Duet.cpp:148 -msgid "Wrong password" -msgstr "密码错误" - -#: src/slic3r/Utils/Duet.cpp:151 -msgid "Could not get resources to create a new connection" -msgstr "无法获取资源以创建新连接" - -#: src/slic3r/Utils/OctoPrint.cpp:70 -#, c-format -msgid "Mismatched type of print host: %s" -msgstr "不匹配的打印主机类型:%s" - -#: src/slic3r/Utils/OctoPrint.cpp:85 -msgid "Connection to OctoPrint works correctly." -msgstr "与OctoPrint的连接工作正常。" - -#: src/slic3r/Utils/OctoPrint.cpp:91 -msgid "Could not connect to OctoPrint" -msgstr "无法连接到 OctoPrint" - -#: src/slic3r/Utils/OctoPrint.cpp:91 -msgid "Note: OctoPrint version at least 1.1.0 is required." -msgstr "注意: 至少需要1.1.0 版本的 OctoPrint." - -#: src/slic3r/Utils/OctoPrint.cpp:196 -msgid "Connection to Prusa SL1 works correctly." -msgstr "连接到 Prusa SL1 工作正常。" - -#: src/slic3r/Utils/OctoPrint.cpp:201 -msgid "Could not connect to Prusa SLA" -msgstr "无法连接到 Prusa SLA" - -#: src/slic3r/Utils/PresetUpdater.cpp:614 -#, c-format -msgid "requires min. %s and max. %s" -msgstr "需要最小 %s 和最大 %s" - -#: src/slic3r/Utils/PresetUpdater.cpp:619 -#, c-format -msgid "requires min. %s" -msgstr "需要最小 %s" - -#: src/slic3r/Utils/PresetUpdater.cpp:621 -#, c-format -msgid "requires max. %s" -msgstr "需要最大 %s" - -#: src/slic3r/Utils/FixModelByWin10.cpp:219 -#: src/slic3r/Utils/FixModelByWin10.cpp:359 -msgid "Exporting source model" -msgstr "导出源模型" - -#: src/slic3r/Utils/FixModelByWin10.cpp:235 -msgid "Failed loading the input model." -msgstr "加载输入模型失败。" - -#: src/slic3r/Utils/FixModelByWin10.cpp:242 -msgid "Repairing model by the Netfabb service" -msgstr "由 Netfabb 服务修复模型" - -#: src/slic3r/Utils/FixModelByWin10.cpp:248 -msgid "Mesh repair failed." -msgstr "网格修复失败。" - -#: src/slic3r/Utils/FixModelByWin10.cpp:251 -#: src/slic3r/Utils/FixModelByWin10.cpp:378 -msgid "Loading repaired model" -msgstr "加载修复模型" - -#: src/slic3r/Utils/FixModelByWin10.cpp:263 -#: src/slic3r/Utils/FixModelByWin10.cpp:270 -#: src/slic3r/Utils/FixModelByWin10.cpp:302 -msgid "Saving mesh into the 3MF container failed." -msgstr "将网格保存到 3MF 容器失败。" - -#: src/slic3r/Utils/FixModelByWin10.cpp:340 -msgid "Model fixing" -msgstr "模型修复中" - -#: src/slic3r/Utils/FixModelByWin10.cpp:341 -msgid "Exporting model..." -msgstr "导出模型..." - -#: src/slic3r/Utils/FixModelByWin10.cpp:368 -msgid "Export of a temporary 3mf file failed" -msgstr "导出临时 3mf 文件失败" - -#: src/slic3r/Utils/FixModelByWin10.cpp:383 -msgid "Import of the repaired 3mf file failed" -msgstr "导入修复的 3mf 文件失败" - -#: src/slic3r/Utils/FixModelByWin10.cpp:385 -msgid "Repaired 3MF file does not contain any object" -msgstr "修复的 3MF 文件不包含任何对象" - -#: src/slic3r/Utils/FixModelByWin10.cpp:387 -msgid "Repaired 3MF file contains more than one object" -msgstr "修复的 3MF 文件包含多个对象" - -#: src/slic3r/Utils/FixModelByWin10.cpp:389 -msgid "Repaired 3MF file does not contain any volume" -msgstr "修复的 3MF 文件不包含任何空间" - -#: src/slic3r/Utils/FixModelByWin10.cpp:391 -msgid "Repaired 3MF file contains more than one volume" -msgstr "修复的 3MF 文件包含多个空间" - -#: src/slic3r/Utils/FixModelByWin10.cpp:400 -msgid "Model repair finished" -msgstr "模型修复完成" - -#: src/slic3r/Utils/FixModelByWin10.cpp:406 -msgid "Model repair canceled" -msgstr "模型修复取消" - -#: src/slic3r/Utils/FixModelByWin10.cpp:423 -msgid "Model repaired successfully" -msgstr "已成功修复模型" - -#: src/slic3r/Utils/FixModelByWin10.cpp:423 -#: src/slic3r/Utils/FixModelByWin10.cpp:426 -msgid "Model Repair by the Netfabb service" -msgstr "通过 Netfabb 服务修复模型" - -#: src/slic3r/Utils/FixModelByWin10.cpp:426 -msgid "Model repair failed: \n" -msgstr "模型修复失败: \n" - -#: src/libslic3r/Zipper.cpp:32 -msgid "undefined error" -msgstr "未定义错误" - -#: src/libslic3r/Zipper.cpp:34 -msgid "too many files" -msgstr "文件太多" - -#: src/libslic3r/Zipper.cpp:36 -msgid "file too large" -msgstr "文件太大" - -#: src/libslic3r/Zipper.cpp:38 -msgid "unsupported method" -msgstr "不支持的方法" - -#: src/libslic3r/Zipper.cpp:40 -msgid "unsupported encryption" -msgstr "不支持的加密" - -#: src/libslic3r/Zipper.cpp:42 -msgid "unsupported feature" -msgstr "不支持的功能" - -#: src/libslic3r/Zipper.cpp:44 -msgid "failed finding central directory" -msgstr "查找中心目录失败" - -#: src/libslic3r/Zipper.cpp:46 -msgid "not a ZIP archive" -msgstr "不是 ZIP 存档" - -#: src/libslic3r/Zipper.cpp:48 -msgid "invalid header or archive is corrupted" -msgstr "无效标头或存档已损坏" - -#: src/libslic3r/Zipper.cpp:50 -msgid "unsupported multidisk archive" -msgstr "不支持多磁盘存档" - -#: src/libslic3r/Zipper.cpp:52 -msgid "decompression failed or archive is corrupted" -msgstr "解压缩失败或存档已损坏" - -#: src/libslic3r/Zipper.cpp:54 -msgid "compression failed" -msgstr "压缩失败" - -#: src/libslic3r/Zipper.cpp:56 -msgid "unexpected decompressed size" -msgstr "意外解压缩大小" - -#: src/libslic3r/Zipper.cpp:58 -msgid "CRC-32 check failed" -msgstr "CRC-32 检查失败" - -#: src/libslic3r/Zipper.cpp:60 -msgid "unsupported central directory size" -msgstr "不支持的中央目录大小" - -#: src/libslic3r/Zipper.cpp:62 -msgid "allocation failed" -msgstr "分配失败" - -#: src/libslic3r/Zipper.cpp:64 -msgid "file open failed" -msgstr "文件打开失败" - -#: src/libslic3r/Zipper.cpp:66 -msgid "file create failed" -msgstr "文件创建失败" - -#: src/libslic3r/Zipper.cpp:68 -msgid "file write failed" -msgstr "文件写入失败" - -#: src/libslic3r/Zipper.cpp:70 -msgid "file read failed" -msgstr "文件读取失败" - -#: src/libslic3r/Zipper.cpp:72 -msgid "file close failed" -msgstr "文件关闭失败" - -#: src/libslic3r/Zipper.cpp:74 -msgid "file seek failed" -msgstr "文件查找失败" - -#: src/libslic3r/Zipper.cpp:76 -msgid "file stat failed" -msgstr "文件统计信息失败" - -#: src/libslic3r/Zipper.cpp:78 -msgid "invalid parameter" -msgstr "无效参数" - -#: src/libslic3r/Zipper.cpp:80 -msgid "invalid filename" -msgstr "无效的文件名" - -#: src/libslic3r/Zipper.cpp:82 -msgid "buffer too small" -msgstr "缓冲区太小" - -#: src/libslic3r/Zipper.cpp:84 -msgid "internal error" -msgstr "内部错误" - -#: src/libslic3r/Zipper.cpp:86 -msgid "file not found" -msgstr "文件未找到" - -#: src/libslic3r/Zipper.cpp:88 -msgid "archive is too large" -msgstr "存档太大" - -#: src/libslic3r/Zipper.cpp:90 -msgid "validation failed" -msgstr "验证失败" - -#: src/libslic3r/Zipper.cpp:92 -msgid "write calledback failed" -msgstr "写入回叫失败" - -#: src/libslic3r/Zipper.cpp:102 -msgid "Error with zip archive" -msgstr "使用 zip 存档时出错" - -#: src/libslic3r/Print.cpp:1112 -msgid "All objects are outside of the print volume." -msgstr "所有对象都在打印范围之外。" - -#: src/libslic3r/Print.cpp:1139 -msgid "Some objects are too close; your extruder will collide with them." -msgstr "有些对象太近; 你的挤出机会和他们相撞。" - -#: src/libslic3r/Print.cpp:1154 -msgid "" -"Some objects are too tall and cannot be printed without extruder collisions." -msgstr "某些对象太高, 无法在挤出机不冲突的情况下打印。" - -#: src/libslic3r/Print.cpp:1164 -msgid "The Spiral Vase option can only be used when printing a single object." -msgstr "螺旋花瓶选项只能在打印单个对象时使用。" - -#: src/libslic3r/Print.cpp:1171 -msgid "" -"The Spiral Vase option can only be used when printing single material " -"objects." -msgstr "螺旋花瓶选项只能在打印单个材质对象时使用。" - -#: src/libslic3r/Print.cpp:1184 -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:1189 -msgid "" -"The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter " -"and Repetier G-code flavors." -msgstr "擦料塔目前只支持 Marlin, RepRap/Sprinter 和 Repetier G-code 类型。" - -#: src/libslic3r/Print.cpp:1191 -msgid "" -"The Wipe Tower is currently only supported with the relative extruder " -"addressing (use_relative_e_distances=1)." -msgstr "擦料塔目前仅支持相对挤出机寻址 (use_relative_e_distances=1)。" - -#: src/libslic3r/Print.cpp:1193 -msgid "Ooze prevention is currently not supported with the wipe tower enabled." -msgstr "启用擦料塔时,当前不支持 Ooze 预防。" - -#: src/libslic3r/Print.cpp:1214 -msgid "" -"The Wipe Tower is only supported for multiple objects if they have equal " -"layer heights" -msgstr "仅当多个对象具有相等的图层高度时,才支持擦料塔" - -#: src/libslic3r/Print.cpp:1216 -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:1218 -msgid "" -"The Wipe Tower is only supported for multiple objects if they are printed " -"with the same support_material_contact_distance" -msgstr "" -"只有在使用相同的support_material_contact_distance(支撑材料距离)打印多个对象" -"时, 才支持擦料塔" - -#: src/libslic3r/Print.cpp:1220 -msgid "" -"The Wipe Tower is only supported for multiple objects if they are sliced " -"equally." -msgstr "只有在多个对象被平均切割的情况下, 才支持擦料塔。" - -#: src/libslic3r/Print.cpp:1248 -msgid "" -"The Wipe tower is only supported if all objects have the same layer height " -"profile" -msgstr "只有当所有对象具有相同的层高度配置文件时, 才支持擦料塔" - -#: src/libslic3r/Print.cpp:1258 -msgid "The supplied settings will cause an empty print." -msgstr "当前提供的设置将导致空打印。" - -#: src/libslic3r/Print.cpp:1275 -msgid "" -"One or more object were assigned an extruder that the printer does not have." -msgstr "为一个或多个对象分配了打印机没有的挤出机。" - -#: src/libslic3r/Print.cpp:1284 -msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm" -msgstr "%1%=%2% mm 太低,在图层高度 %3% mm 时无法打印" - -#: src/libslic3r/Print.cpp:1287 -msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm" -msgstr "过量 %1%=%2% mm 可打印,使用喷嘴直径 %3% mm" - -#: src/libslic3r/Print.cpp:1298 -msgid "" -"Printing with multiple extruders of differing nozzle diameters. If support " -"is to be printed with the current extruder (support_material_extruder == 0 " -"or support_material_interface_extruder == 0), all nozzles have to be of the " -"same diameter." -msgstr "" -"使用不同喷嘴直径的多个挤出机进行打印。如果要使用当前挤出机" -"(support_material_extruder == 0 或 support_material_interface_extruder == 0)" -"打印支撑物, 则所有喷嘴的直径必须相同。" - -#: src/libslic3r/Print.cpp:1306 -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:1310 -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 " -"support_material_extruder and support_material_interface_extruder need to be " -"set to 0)." -msgstr "" -"只有在不触发工具更改的情况下, 使用当前挤出机打印的未溶性支撑塔目前才支持不可" -"溶支撑于的支架。(support_material_extruder 和" -"support_material_interface_extruder 都需要设置为 0)。" - -#: src/libslic3r/Print.cpp:1332 -msgid "First layer height can't be greater than nozzle diameter" -msgstr "第一层高度不能大于喷嘴直径" - -#: src/libslic3r/Print.cpp:1337 -msgid "Layer height can't be greater than nozzle diameter" -msgstr "层高度不能大于喷嘴直径" - -#: src/libslic3r/Print.cpp:1492 -msgid "Infilling layers" -msgstr "填充图层" - -#: src/libslic3r/Print.cpp:1500 -msgid "Generating skirt" -msgstr "生成裙边" - -#: src/libslic3r/Print.cpp:1508 -msgid "Generating brim" -msgstr "生成外围裙边" - -#: src/libslic3r/Print.cpp:1536 -msgid "Exporting G-code" -msgstr "导出 G 代码" - -#: src/libslic3r/Print.cpp:1540 -msgid "Generating G-code" -msgstr "生成 G 代码" - -#: src/libslic3r/SLAPrint.cpp:64 -msgid "Slicing model" -msgstr "切片模型" - -#: src/libslic3r/SLAPrint.cpp:65 src/libslic3r/SLAPrint.cpp:899 -msgid "Generating support points" -msgstr "生成支撑点" - -#: src/libslic3r/SLAPrint.cpp:66 -msgid "Generating support tree" -msgstr "生成支撑树" - -#: src/libslic3r/SLAPrint.cpp:67 -msgid "Generating pad" -msgstr "生成垫" - -#: src/libslic3r/SLAPrint.cpp:68 -msgid "Slicing supports" -msgstr "切片支撑" - -#: src/libslic3r/SLAPrint.cpp:85 -msgid "Merging slices and calculating statistics" -msgstr "合并切片并计算统计信息" - -#: src/libslic3r/SLAPrint.cpp:86 -msgid "Rasterizing layers" -msgstr "栅格化层" - -#: src/libslic3r/SLAPrint.cpp:661 -msgid "" -"Cannot proceed without support points! Add support points or disable support " -"generation." -msgstr "没有支撑点就无法继续!添加支撑点或禁用支撑生成。" - -#: src/libslic3r/SLAPrint.cpp:678 -msgid "" -"Elevation is too low for object. Use the \"Pad around obect\" feature to " -"print the object without elevation." -msgstr "对于对象来说,高程太低。使用\"在对象周围增加垫\"功能来打印对象。" - -#: src/libslic3r/SLAPrint.cpp:684 -msgid "" -"The endings of the support pillars will be deployed on the gap between the " -"object and the pad. 'Support base safety distance' has to be greater than " -"the 'Pad object gap' parameter to avoid this." -msgstr "" -"支撑柱的尾数将部署在物体和垫子之间的间隙上。\"支撑基基安全距离\"必须大于\"垫" -"对象间隙\"参数,以避免这种情况。" - -#: src/libslic3r/SLAPrint.cpp:696 -msgid "Exposition time is out of printer profile bounds." -msgstr "曝光时间超出打印机配置文件限制。" - -#: src/libslic3r/SLAPrint.cpp:703 -msgid "Initial exposition time is out of printer profile bounds." -msgstr "初始曝光时间超出打印机配置文件边界。" - -#: src/libslic3r/SLAPrint.cpp:787 -msgid "" -"Slicing had to be stopped due to an internal error: Inconsistent slice index." -msgstr "由于内部错误:切片索引不一致,必须停止切片。" - -#: src/libslic3r/SLAPrint.cpp:982 src/libslic3r/SLAPrint.cpp:992 -#: src/libslic3r/SLAPrint.cpp:1033 -msgid "Visualizing supports" -msgstr "可视化支撑" - -#: src/libslic3r/SLAPrint.cpp:1566 -msgid "Slicing done" -msgstr "切片完成" - -#: src/libslic3r/PrintBase.cpp:71 -msgid "Failed processing of the output_filename_format template." -msgstr "模板output_filename_format 处理失败。" - -#: src/libslic3r/PrintConfig.cpp:43 src/libslic3r/PrintConfig.cpp:44 -msgid "Printer technology" -msgstr "打印机技术" - -#: src/libslic3r/PrintConfig.cpp:51 -msgid "Bed shape" -msgstr "打印平台形状" - -#: src/libslic3r/PrintConfig.cpp:56 -msgid "Bed custom texture" -msgstr "床自定义纹理" - -#: src/libslic3r/PrintConfig.cpp:61 -msgid "Bed custom model" -msgstr "床自定义模型" - -#: src/libslic3r/PrintConfig.cpp:68 -msgid "" -"This setting controls the height (and thus the total number) of the slices/" -"layers. Thinner layers give better accuracy but take more time to print." -msgstr "" -"此设置控制切片/图层的高度(以及总数)。较薄的图层具有更高的精度,但打印时间更" -"长。" - -#: src/libslic3r/PrintConfig.cpp:75 -msgid "Max print height" -msgstr "最大打印高度" - -#: src/libslic3r/PrintConfig.cpp:76 -msgid "" -"Set this to the maximum height that can be reached by your extruder while " -"printing." -msgstr "将此设置为挤出头在打印时可以达到的最大高度。" - -#: src/libslic3r/PrintConfig.cpp:82 -msgid "Slice gap closing radius" -msgstr "切片间隙闭合半径" - -#: src/libslic3r/PrintConfig.cpp:84 -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 "" -"在三角形网格切片过程中,小于 2 倍间隙闭合半径的裂纹将被填充。间隙闭合操作可能" -"会降低最终打印分辨率,因此建议将值保持在合理的较低水平。" - -#: src/libslic3r/PrintConfig.cpp:92 -msgid "Hostname, IP or URL" -msgstr "主机名, IP 或 URL" - -#: src/libslic3r/PrintConfig.cpp:93 -msgid "" -"Slic3r can upload G-code files to a printer host. This field should contain " -"the hostname, IP address or URL of the printer host instance." -msgstr "" -"Slic3r 可以将 G-code 文件上传到打印机主机。此字段应包含打印机主机实例的主机" -"名, IP 地址或 URL。" - -#: src/libslic3r/PrintConfig.cpp:99 -msgid "API Key / Password" -msgstr "API 密钥/密码" - -#: src/libslic3r/PrintConfig.cpp:100 -msgid "" -"Slic3r can upload G-code files to a printer host. This field should contain " -"the API Key or the password required for authentication." -msgstr "" -"Slic3r 可以将 G-code 文件上传到打印机主机。此字段应包含 API 密钥或身份验证所" -"需的密码。" - -#: src/libslic3r/PrintConfig.cpp:106 -msgid "HTTPS CA File" -msgstr "HTTPS CA 文件" - -#: src/libslic3r/PrintConfig.cpp:107 -msgid "" -"Custom CA certificate file can be specified for HTTPS OctoPrint connections, " -"in crt/pem format. If left blank, the default OS CA certificate repository " -"is used." -msgstr "" -"可以为 HTTPS OctoPrint 连接指定自定义 CA 证书文件,格式为 crt/pem 格式。如果留" -"空,则使用默认的 OS CA 证书存储库。" - -#: src/libslic3r/PrintConfig.cpp:121 -msgid "Avoid crossing perimeters" -msgstr "避免跨越轮廓边界" - -#: src/libslic3r/PrintConfig.cpp:122 -msgid "" -"Optimize travel moves in order to minimize the crossing of perimeters. This " -"is mostly useful with Bowden extruders which suffer from oozing. This " -"feature slows down both the print and the G-code generation." -msgstr "" -"优化移动移动,以尽量减少周界交叉。这在鲍登挤出机中最有用,它们容易渗漏。此功" -"能可降低打印和 G 代码生成速度。" - -#: src/libslic3r/PrintConfig.cpp:129 src/libslic3r/PrintConfig.cpp:2027 -msgid "Other layers" -msgstr "其他图层" - -#: src/libslic3r/PrintConfig.cpp:130 -msgid "" -"Bed temperature for layers after the first one. Set this to zero to disable " -"bed temperature control commands in the output." -msgstr "第一层之后层的床温。将此设置为零以禁用输出中的床温控制命令。" - -#: src/libslic3r/PrintConfig.cpp:132 -msgid "Bed temperature" -msgstr "热床温度" - -#: src/libslic3r/PrintConfig.cpp:139 -msgid "" -"This custom code is inserted at every layer change, right before the Z move. " -"Note that you can use placeholder variables for all Slic3r settings as well " -"as [layer_num] and [layer_z]." -msgstr "" -"此自定义代码在 Z 移动之前,每次图层更改时都会插入。请注意,您可以将占位符变量" -"用于所有 Slic3r 设置以及 [layer_num] 和 [layer_z]。" - -#: src/libslic3r/PrintConfig.cpp:149 -msgid "Between objects G-code" -msgstr "对象之间的 G-code" - -#: src/libslic3r/PrintConfig.cpp:150 -msgid "" -"This code is inserted between objects when using sequential printing. By " -"default extruder and bed temperature are reset using non-wait command; " -"however if M104, M109, M140 or M190 are detected in this custom code, Slic3r " -"will not add temperature commands. Note that you can use placeholder " -"variables for all Slic3r settings, so you can put a \"M109 " -"S[first_layer_temperature]\" command wherever you want." -msgstr "" -"使用顺序打印时, 此代码将插入对象之间。默认情况下, 使用非等待命令重置挤出机和" -"床温;但是, 如果在此自定义代码中检测到 m104、m109、m140 或 m190, Slic3r 将不会" -"添加温度命令。请注意, 您可以对所有 Slic3r 设置使用占位符变量, 因此您可以将 " -"\"M109 S[first_layer_temperature]\" 命令放在任何需要的地方。" - -#: src/libslic3r/PrintConfig.cpp:161 -msgid "Number of solid layers to generate on bottom surfaces." -msgstr "要在底部曲面上生成的实心图层数。" - -#: src/libslic3r/PrintConfig.cpp:162 -msgid "Bottom solid layers" -msgstr "底部实心层" - -#: src/libslic3r/PrintConfig.cpp:167 -msgid "Bridge" -msgstr "网桥" - -#: src/libslic3r/PrintConfig.cpp:168 -msgid "" -"This is the acceleration your printer will use for bridges. Set zero to " -"disable acceleration control for bridges." -msgstr "这是打印机用于搭桥的加速。设置为零以禁用搭桥的加速度控制。" - -#: src/libslic3r/PrintConfig.cpp:170 src/libslic3r/PrintConfig.cpp:313 -#: src/libslic3r/PrintConfig.cpp:840 src/libslic3r/PrintConfig.cpp:961 -#: src/libslic3r/PrintConfig.cpp:1130 src/libslic3r/PrintConfig.cpp:1183 -#: src/libslic3r/PrintConfig.cpp:1194 src/libslic3r/PrintConfig.cpp:1383 -msgid "mm/s²" -msgstr "mm/s²" - -#: src/libslic3r/PrintConfig.cpp:176 -msgid "Bridging angle" -msgstr "桥接角度" - -#: src/libslic3r/PrintConfig.cpp:178 -msgid "" -"Bridging angle override. If left to zero, the bridging angle will be " -"calculated automatically. Otherwise the provided angle will be used for all " -"bridges. Use 180° for zero angle." -msgstr "" -"桥接角度覆盖。如果设为零,将自动计算桥接角度。否则,提供的角度将用于所有桥" -"接。使用 180° 实现零角度。" - -#: src/libslic3r/PrintConfig.cpp:181 src/libslic3r/PrintConfig.cpp:758 -#: src/libslic3r/PrintConfig.cpp:1619 src/libslic3r/PrintConfig.cpp:1629 -#: src/libslic3r/PrintConfig.cpp:1858 src/libslic3r/PrintConfig.cpp:2012 -#: src/libslic3r/PrintConfig.cpp:2197 src/libslic3r/PrintConfig.cpp:2614 -#: src/libslic3r/PrintConfig.cpp:2724 -msgid "°" -msgstr "°" - -#: src/libslic3r/PrintConfig.cpp:187 -msgid "Bridges fan speed" -msgstr "桥接风扇速度" - -#: src/libslic3r/PrintConfig.cpp:188 -msgid "This fan speed is enforced during all bridges and overhangs." -msgstr "此风扇速度在所有桥和悬空期间强制执行。" - -#: src/libslic3r/PrintConfig.cpp:189 src/libslic3r/PrintConfig.cpp:770 -#: src/libslic3r/PrintConfig.cpp:1203 src/libslic3r/PrintConfig.cpp:1266 -#: src/libslic3r/PrintConfig.cpp:1511 src/libslic3r/PrintConfig.cpp:2366 -#: src/libslic3r/PrintConfig.cpp:2654 -msgid "%" -msgstr "%" - -#: src/libslic3r/PrintConfig.cpp:196 -msgid "Bridge flow ratio" -msgstr "桥接流量比" - -#: src/libslic3r/PrintConfig.cpp:198 -msgid "" -"This factor affects the amount of plastic for bridging. You can decrease it " -"slightly to pull the extrudates and prevent sagging, although default " -"settings are usually good and you should experiment with cooling (use a fan) " -"before tweaking this." -msgstr "" -"此因子影响用于桥接的耗材量。您可以稍微减小它挤出和防止下垂,虽然默认设置通常" -"很好,您应该尝试冷却(使用风扇),然后再调整它。" - -#: src/libslic3r/PrintConfig.cpp:208 -msgid "Bridges" -msgstr "桥接" - -#: src/libslic3r/PrintConfig.cpp:210 -msgid "Speed for printing bridges." -msgstr "打印桥接的速度。" - -#: src/libslic3r/PrintConfig.cpp:211 src/libslic3r/PrintConfig.cpp:592 -#: src/libslic3r/PrintConfig.cpp:600 src/libslic3r/PrintConfig.cpp:609 -#: src/libslic3r/PrintConfig.cpp:617 src/libslic3r/PrintConfig.cpp:644 -#: src/libslic3r/PrintConfig.cpp:663 src/libslic3r/PrintConfig.cpp:899 -#: src/libslic3r/PrintConfig.cpp:1026 src/libslic3r/PrintConfig.cpp:1112 -#: src/libslic3r/PrintConfig.cpp:1148 src/libslic3r/PrintConfig.cpp:1161 -#: src/libslic3r/PrintConfig.cpp:1172 src/libslic3r/PrintConfig.cpp:1225 -#: src/libslic3r/PrintConfig.cpp:1284 src/libslic3r/PrintConfig.cpp:1412 -#: src/libslic3r/PrintConfig.cpp:1586 src/libslic3r/PrintConfig.cpp:1595 -#: src/libslic3r/PrintConfig.cpp:1991 src/libslic3r/PrintConfig.cpp:2104 -msgid "mm/s" -msgstr "mm/s" - -#: src/libslic3r/PrintConfig.cpp:218 -msgid "Brim width" -msgstr "裙边宽度" - -#: src/libslic3r/PrintConfig.cpp:219 -msgid "" -"Horizontal width of the brim that will be printed around each object on the " -"first layer." -msgstr "打印在第一层上每个对象周围的外围裙边的宽度。" - -#: src/libslic3r/PrintConfig.cpp:226 -msgid "Clip multi-part objects" -msgstr "剪切多部分对象" - -#: src/libslic3r/PrintConfig.cpp:227 -msgid "" -"When printing multi-material objects, this settings will make Slic3r to clip " -"the overlapping object parts one by the other (2nd part will be clipped by " -"the 1st, 3rd part will be clipped by the 1st and 2nd etc)." -msgstr "" -"打印多材质对象时,此设置将使 Slic3r 将重叠对象部件逐一裁剪(第 2 部分将在第 " -"1 部分中剪切,第 3 部分由第 1 部分和第 2 部分剪切等)。" - -#: src/libslic3r/PrintConfig.cpp:234 -msgid "Colorprint height" -msgstr "彩色打印高度" - -#: src/libslic3r/PrintConfig.cpp:235 -msgid "Heights at which a filament change is to occur." -msgstr "发生耗材变化的高度。" - -#: src/libslic3r/PrintConfig.cpp:245 -msgid "Compatible printers condition" -msgstr "兼容打印机条件" - -#: src/libslic3r/PrintConfig.cpp:246 -msgid "" -"A boolean expression using the configuration values of an active printer " -"profile. If this expression evaluates to true, this profile is considered " -"compatible with the active printer profile." -msgstr "" -"使用活动打印机配置文件的配置值的布尔表达式。如果此表达式计算为 true,则此配置" -"文件将被视为与活动打印机配置文件兼容。" - -#: src/libslic3r/PrintConfig.cpp:260 -msgid "Compatible print profiles condition" -msgstr "兼容的打印配置文件条件" - -#: src/libslic3r/PrintConfig.cpp:261 -msgid "" -"A boolean expression using the configuration values of an active print " -"profile. If this expression evaluates to true, this profile is considered " -"compatible with the active print profile." -msgstr "" -"使用活动打印配置文件的配置值的布尔表达式。如果此表达式计算为 true,则此配置文" -"件将被视为与活动打印配置文件兼容。" - -#: src/libslic3r/PrintConfig.cpp:278 -msgid "Complete individual objects" -msgstr "完成单个对象" - -#: src/libslic3r/PrintConfig.cpp:279 -msgid "" -"When printing multiple objects or copies, this feature will complete each " -"object before moving onto next one (and starting it from its bottom layer). " -"This feature is useful to avoid the risk of ruined prints. Slic3r should " -"warn and prevent you from extruder collisions, but beware." -msgstr "" -"打印多个对象或副本时,此功能将完成每个对象,然后再移动到下一个对象(并从其底" -"层开始)。此功能可用于避免打印损坏的风险。Slic3r 应警告并防止挤出机碰撞,但要" -"小心。" - -#: src/libslic3r/PrintConfig.cpp:287 -msgid "Enable auto cooling" -msgstr "启用自动冷却" - -#: src/libslic3r/PrintConfig.cpp:288 -msgid "" -"This flag enables the automatic cooling logic that adjusts print speed and " -"fan speed according to layer printing time." -msgstr "此标志启用自动冷却逻辑,可根据图层打印时间调整打印速度和风扇速度。" - -#: src/libslic3r/PrintConfig.cpp:293 -msgid "Cooling tube position" -msgstr "冷却管位置" - -#: src/libslic3r/PrintConfig.cpp:294 -msgid "Distance of the center-point of the cooling tube from the extruder tip." -msgstr "冷却管中心点与挤出机尖端的距离。" - -#: src/libslic3r/PrintConfig.cpp:301 -msgid "Cooling tube length" -msgstr "冷却管长度" - -#: src/libslic3r/PrintConfig.cpp:302 -msgid "Length of the cooling tube to limit space for cooling moves inside it." -msgstr "冷却管的长度,以限制冷却管内部的冷却移动空间。" - -#: src/libslic3r/PrintConfig.cpp:310 -msgid "" -"This is the acceleration your printer will be reset to after the role-" -"specific acceleration values are used (perimeter/infill). Set zero to " -"prevent resetting acceleration at all." -msgstr "" -"这是打印机在使用特定于角色的加速值(周长/填充)后将重置为的加速。设置零以防止" -"重置加速度。" - -#: src/libslic3r/PrintConfig.cpp:319 -msgid "Default filament profile" -msgstr "默认耗材配置文件" - -#: src/libslic3r/PrintConfig.cpp:320 -msgid "" -"Default filament profile associated with the current printer profile. On " -"selection of the current printer profile, this filament profile will be " -"activated." -msgstr "" -"与当前打印机配置文件关联的默认耗材丝配置文件。在选择当前打印机配置文件时, 将" -"激活此耗材丝丝配置文件。" - -#: src/libslic3r/PrintConfig.cpp:326 -msgid "Default print profile" -msgstr "默认打印配置文件" - -#: src/libslic3r/PrintConfig.cpp:327 src/libslic3r/PrintConfig.cpp:2479 -#: src/libslic3r/PrintConfig.cpp:2490 -msgid "" -"Default print profile associated with the current printer profile. On " -"selection of the current printer profile, this print profile will be " -"activated." -msgstr "" -"与当前打印机配置文件关联的默认打印配置文件。选择当前打印机配置文件时,将激活" -"此打印配置文件。" - -#: src/libslic3r/PrintConfig.cpp:333 -msgid "Disable fan for the first" -msgstr "禁用风扇在前" - -#: src/libslic3r/PrintConfig.cpp:334 -msgid "" -"You can set this to a positive value to disable fan at all during the first " -"layers, so that it does not make adhesion worse." -msgstr "" -"您可以将此值设置为正值,以便在初始图层期间完全禁用风扇,以免使粘附性恶化。" - -#: src/libslic3r/PrintConfig.cpp:336 src/libslic3r/PrintConfig.cpp:971 -#: src/libslic3r/PrintConfig.cpp:1484 src/libslic3r/PrintConfig.cpp:1669 -#: src/libslic3r/PrintConfig.cpp:1730 src/libslic3r/PrintConfig.cpp:1894 -#: src/libslic3r/PrintConfig.cpp:1939 -msgid "layers" -msgstr "层" - -#: src/libslic3r/PrintConfig.cpp:343 -msgid "Don't support bridges" -msgstr "不支持桥接" - -#: src/libslic3r/PrintConfig.cpp:345 -msgid "" -"Experimental option for preventing support material from being generated " -"under bridged areas." -msgstr "防止在桥接区域下生成支撑材料的实验选项。" - -#: src/libslic3r/PrintConfig.cpp:351 -msgid "Distance between copies" -msgstr "副本之间的距离" - -#: src/libslic3r/PrintConfig.cpp:352 -msgid "Distance used for the auto-arrange feature of the plater." -msgstr "用于构建板自动排列功能的距离。" - -#: src/libslic3r/PrintConfig.cpp:359 -msgid "Elephant foot compensation" -msgstr "大象脚补偿" - -#: src/libslic3r/PrintConfig.cpp:361 -msgid "" -"The first layer will be shrunk in the XY plane by the configured value to " -"compensate for the 1st layer squish aka an Elephant Foot effect." -msgstr "" -"第一层将被相对于配置的值在 XY 平面上缩小, 以补偿第一层斜视, 也就是大象脚的效" -"果。" - -#: src/libslic3r/PrintConfig.cpp:370 -msgid "" -"This end procedure is inserted at the end of the output file. Note that you " -"can use placeholder variables for all PrusaSlicer settings." -msgstr "" -"此结束过程插入到输出文件的末尾。请注意,您可以将占位符变量用于所有 " -"PrusaSlicer 设置。" - -#: src/libslic3r/PrintConfig.cpp:380 -msgid "" -"This end procedure is inserted at the end of the output file, before the " -"printer end gcode (and before any toolchange from this filament in case of " -"multimaterial printers). Note that you can use placeholder variables for all " -"PrusaSlicer settings. If you have multiple extruders, the gcode is processed " -"in extruder order." -msgstr "" -"此结束过程插入输出文件的末尾、打印机结束 G 代码之前(以及多材料打印机情况下从" -"该耗材丝换出任何工具之前)。请注意,您可以将占位符变量用于所有 PrusaSlicer 设" -"置。如果您有多个挤出机,则按挤出机顺序处理 gcode。" - -#: src/libslic3r/PrintConfig.cpp:391 -msgid "Ensure vertical shell thickness" -msgstr "确保垂直外壳厚度" - -#: src/libslic3r/PrintConfig.cpp:393 -msgid "" -"Add solid infill near sloping surfaces to guarantee the vertical shell " -"thickness (top+bottom solid layers)." -msgstr "" -"在靠近倾斜表面附近添加实体填充,以保证垂直壳体厚度(顶部+底部实心层)。" - -#: src/libslic3r/PrintConfig.cpp:399 -msgid "Top fill pattern" -msgstr "顶部填充模式" - -#: src/libslic3r/PrintConfig.cpp:401 -msgid "" -"Fill pattern for top infill. This only affects the top visible layer, and " -"not its adjacent solid shells." -msgstr "填充顶部填充的模式。这仅影响顶部可见图层,而不影响其相邻的实体壳。" - -#: src/libslic3r/PrintConfig.cpp:409 src/libslic3r/PrintConfig.cpp:821 -#: src/libslic3r/PrintConfig.cpp:1972 -msgid "Rectilinear" -msgstr "直线" - -#: src/libslic3r/PrintConfig.cpp:410 src/libslic3r/PrintConfig.cpp:827 -msgid "Concentric" -msgstr "回环" - -#: src/libslic3r/PrintConfig.cpp:411 src/libslic3r/PrintConfig.cpp:831 -msgid "Hilbert Curve" -msgstr "希尔伯特曲线" - -#: src/libslic3r/PrintConfig.cpp:412 src/libslic3r/PrintConfig.cpp:832 -msgid "Archimedean Chords" -msgstr "阿基米德和弦" - -#: src/libslic3r/PrintConfig.cpp:413 src/libslic3r/PrintConfig.cpp:833 -msgid "Octagram Spiral" -msgstr "八角螺旋" - -#: src/libslic3r/PrintConfig.cpp:419 -msgid "Bottom fill pattern" -msgstr "底部填充模式" - -#: src/libslic3r/PrintConfig.cpp:421 -msgid "" -"Fill pattern for bottom infill. This only affects the bottom external " -"visible layer, and not its adjacent solid shells." -msgstr "填充底部填充的模式。这仅影响底部外部可见图层,而不影响其相邻的实体壳。" - -#: src/libslic3r/PrintConfig.cpp:430 src/libslic3r/PrintConfig.cpp:440 -msgid "External perimeters" -msgstr "外部轮廓" - -#: src/libslic3r/PrintConfig.cpp:432 -msgid "" -"Set this to a non-zero value to set a manual extrusion width for external " -"perimeters. If left zero, default extrusion width will be used if set, " -"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " -"(for example 200%), it will be computed over layer height." -msgstr "" -"将其设置为非零值, 以设置外部周长的手动挤出宽度。如果为零, 将使用默认挤出宽" -"度, 如果没有设置默认值将使用 1.125 x 喷嘴直径。如果以百分比表示 (例如 200%), " -"则将根据图层高度计算。" - -#: src/libslic3r/PrintConfig.cpp:435 src/libslic3r/PrintConfig.cpp:543 -#: src/libslic3r/PrintConfig.cpp:860 src/libslic3r/PrintConfig.cpp:872 -#: src/libslic3r/PrintConfig.cpp:992 src/libslic3r/PrintConfig.cpp:1017 -#: src/libslic3r/PrintConfig.cpp:1403 src/libslic3r/PrintConfig.cpp:1741 -#: src/libslic3r/PrintConfig.cpp:1847 src/libslic3r/PrintConfig.cpp:1915 -#: src/libslic3r/PrintConfig.cpp:2074 -msgid "mm or %" -msgstr "mm 或 %" - -#: src/libslic3r/PrintConfig.cpp:442 -msgid "" -"This separate setting will affect the speed of external perimeters (the " -"visible ones). If expressed as percentage (for example: 80%) it will be " -"calculated on the perimeters speed setting above. Set to zero for auto." -msgstr "" -"此单独的设置将影响外部轮廓(可见轮廓)的速度。如果以百分比表示(例如:80%)它" -"将在上述周界速度设置上计算。为自动设置为零。" - -#: src/libslic3r/PrintConfig.cpp:445 src/libslic3r/PrintConfig.cpp:881 -#: src/libslic3r/PrintConfig.cpp:1700 src/libslic3r/PrintConfig.cpp:1751 -#: src/libslic3r/PrintConfig.cpp:1958 src/libslic3r/PrintConfig.cpp:2086 -msgid "mm/s or %" -msgstr "mm/s 或 %" - -#: src/libslic3r/PrintConfig.cpp:452 -msgid "External perimeters first" -msgstr "首先打印外部轮廓" - -#: src/libslic3r/PrintConfig.cpp:454 -msgid "" -"Print contour perimeters from the outermost one to the innermost one instead " -"of the default inverse order." -msgstr "将轮廓周长从最外层的轮廓打印到最里面的轮廓,而不是默认的反向顺序。" - -#: src/libslic3r/PrintConfig.cpp:460 -msgid "Extra perimeters if needed" -msgstr "如果需要,打印额外轮廓" - -#: src/libslic3r/PrintConfig.cpp:462 -#, no-c-format -msgid "" -"Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r " -"keeps adding perimeters, until more than 70% of the loop immediately above " -"is supported." -msgstr "" -"在需要时添加更多轮廓,以避免倾斜的墙壁出现间隙,Slic3r 不断添加轮廓,直到支撑超" -"过 70% 的正上方循环。" - -#: src/libslic3r/PrintConfig.cpp:472 -msgid "" -"The extruder to use (unless more specific extruder settings are specified). " -"This value overrides perimeter and infill extruders, but not the support " -"extruders." -msgstr "" -"要使用的挤出机(除非指定了更具体的挤出机设置)。此值覆盖轮廓和填充挤出机,但" -"不覆盖支撑挤出机。" - -#: src/libslic3r/PrintConfig.cpp:484 -msgid "" -"Set this to the vertical distance between your nozzle tip and (usually) the " -"X carriage rods. In other words, this is the height of the clearance " -"cylinder around your extruder, and it represents the maximum depth the " -"extruder can peek before colliding with other printed objects." -msgstr "" -"将此设置为喷嘴尖端和(通常)X 滑杆之间的垂直距离。换句话说,这是挤出机周围的" -"间隙圆柱体的高度,它表示挤出机在与其他打印对象碰撞之前可以窥视的最大深度。" - -#: src/libslic3r/PrintConfig.cpp:494 -msgid "Radius" -msgstr "半径" - -#: src/libslic3r/PrintConfig.cpp:495 -msgid "" -"Set this to the clearance radius around your extruder. If the extruder is " -"not centered, choose the largest value for safety. This setting is used to " -"check for collisions and to display the graphical preview in the plater." -msgstr "" -"将此设置为挤出机周围的间隙半径。如果挤出机未居中,请选择最大安全值。此设置用" -"于检查碰撞并在板中显示图形预览。" - -#: src/libslic3r/PrintConfig.cpp:505 -msgid "Extruder Color" -msgstr "挤出头颜色" - -#: src/libslic3r/PrintConfig.cpp:506 src/libslic3r/PrintConfig.cpp:566 -msgid "This is only used in the Slic3r interface as a visual help." -msgstr "这仅在 Slic3r 界面中用作视觉帮助。" - -#: src/libslic3r/PrintConfig.cpp:512 -msgid "Extruder offset" -msgstr "挤出机偏移" - -#: src/libslic3r/PrintConfig.cpp:513 -msgid "" -"If your firmware doesn't handle the extruder displacement you need the G-" -"code to take it into account. This option lets you specify the displacement " -"of each extruder with respect to the first one. It expects positive " -"coordinates (they will be subtracted from the XY coordinate)." -msgstr "" -"如果您的固件不处理挤出机位移位,则需要 G 代码来考虑它。此选项允许您指定每个挤" -"出机相对于第一个挤出机的位移。需要填写正坐标(它们将从 XY 坐标中减去)。" - -#: src/libslic3r/PrintConfig.cpp:522 -msgid "Extrusion axis" -msgstr "挤出轴" - -#: src/libslic3r/PrintConfig.cpp:523 -msgid "" -"Use this option to set the axis letter associated to your printer's extruder " -"(usually E but some printers use A)." -msgstr "" -"使用此选项可设置与打印机挤出机关联的轴字母(通常为 E,但某些打印机使用 A)。" - -#: src/libslic3r/PrintConfig.cpp:528 -msgid "Extrusion multiplier" -msgstr "挤出乘数" - -#: src/libslic3r/PrintConfig.cpp:529 -msgid "" -"This factor changes the amount of flow proportionally. You may need to tweak " -"this setting to get nice surface finish and correct single wall widths. " -"Usual values are between 0.9 and 1.1. If you think you need to change this " -"more, check filament diameter and your firmware E steps." -msgstr "" -"此因子按比例更改流量。您可能需要调整此设置,以获得漂亮的表面光洁度和正确的单" -"壁宽度。通常值介于 0.9 和 1.1 之间。如果您认为需要更改更多,请检查耗材丝直径" -"和固件 E 步骤。" - -#: src/libslic3r/PrintConfig.cpp:537 -msgid "Default extrusion width" -msgstr "默认挤出宽度" - -#: src/libslic3r/PrintConfig.cpp:539 -msgid "" -"Set this to a non-zero value to allow a manual extrusion width. If left to " -"zero, Slic3r derives extrusion widths from the nozzle diameter (see the " -"tooltips for perimeter extrusion width, infill extrusion width etc). If " -"expressed as percentage (for example: 230%), it will be computed over layer " -"height." -msgstr "" -"此值设置为非零值,以允许手动挤出宽度。如果向左留为零,Slic3r 将从喷嘴直径派生" -"挤出宽度(参见工具尖,了解周长挤出宽度、填充挤出宽度等)。如果以百分比表示" -"(例如:230%),则将在图层高度上计算。" - -#: src/libslic3r/PrintConfig.cpp:548 -msgid "Keep fan always on" -msgstr "始终保持风扇打开" - -#: src/libslic3r/PrintConfig.cpp:549 -msgid "" -"If this is enabled, fan will never be disabled and will be kept running at " -"least at its minimum speed. Useful for PLA, harmful for ABS." -msgstr "" -"如果启用此功能,风扇将永远不会被禁用,并且将保持至少以最低速度运行。对 PLA 有" -"用,对 ABS 有害。" - -#: src/libslic3r/PrintConfig.cpp:554 -msgid "Enable fan if layer print time is below" -msgstr "启用风扇,如果图层打印时间低于" - -#: src/libslic3r/PrintConfig.cpp:555 -msgid "" -"If layer print time is estimated below this number of seconds, fan will be " -"enabled and its speed will be calculated by interpolating the minimum and " -"maximum speeds." -msgstr "" -"如果图层打印时间估计低于此秒数,则将启用风扇,并通过插值最小和最大速度来计算" -"其速度。" - -#: src/libslic3r/PrintConfig.cpp:557 src/libslic3r/PrintConfig.cpp:1687 -msgid "approximate seconds" -msgstr "近似秒" - -#: src/libslic3r/PrintConfig.cpp:571 -msgid "Filament notes" -msgstr "耗材丝备注" - -#: src/libslic3r/PrintConfig.cpp:572 -msgid "You can put your notes regarding the filament here." -msgstr "你可以把关于耗材丝的笔记放在这里。" - -#: src/libslic3r/PrintConfig.cpp:580 src/libslic3r/PrintConfig.cpp:1231 -msgid "Max volumetric speed" -msgstr "最大体积速度" - -#: src/libslic3r/PrintConfig.cpp:581 -msgid "" -"Maximum volumetric speed allowed for this filament. Limits the maximum " -"volumetric speed of a print to the minimum of print and filament volumetric " -"speed. Set to zero for no limit." -msgstr "" -"此耗材丝允许的最大体积速度。将打印的最大体积速度限制为最小打印和耗材丝体积速" -"度。设置为零,无限制。" - -#: src/libslic3r/PrintConfig.cpp:590 -msgid "Loading speed" -msgstr "加载速度" - -#: src/libslic3r/PrintConfig.cpp:591 -msgid "Speed used for loading the filament on the wipe tower." -msgstr "用于在擦料塔上装载耗材丝的速度。" - -#: src/libslic3r/PrintConfig.cpp:598 -msgid "Loading speed at the start" -msgstr "开始时加载速度" - -#: src/libslic3r/PrintConfig.cpp:599 -msgid "Speed used at the very beginning of loading phase." -msgstr "在加载阶段开始时使用的速度。" - -#: src/libslic3r/PrintConfig.cpp:606 -msgid "Unloading speed" -msgstr "卸载速度" - -#: src/libslic3r/PrintConfig.cpp:607 -msgid "" -"Speed used for unloading the filament on the wipe tower (does not affect " -"initial part of unloading just after ramming)." -msgstr "用于卸载擦聊塔上的耗材丝的速度(不影响冲压后卸载的初始部分)。" - -#: src/libslic3r/PrintConfig.cpp:615 -msgid "Unloading speed at the start" -msgstr "开始时卸载速度" - -#: src/libslic3r/PrintConfig.cpp:616 -msgid "" -"Speed used for unloading the tip of the filament immediately after ramming." -msgstr "冲压后立即卸载耗材尖端的速度。" - -#: src/libslic3r/PrintConfig.cpp:623 -msgid "Delay after unloading" -msgstr "卸载后延迟" - -#: src/libslic3r/PrintConfig.cpp:624 -msgid "" -"Time to wait after the filament is unloaded. May help to get reliable " -"toolchanges with flexible materials that may need more time to shrink to " -"original dimensions." -msgstr "" -"卸下耗材丝后等待的时间。通过弹性材料,可能需要更多时间缩小到原始尺寸,有助于" -"获得可靠的挤出机更换。" - -#: src/libslic3r/PrintConfig.cpp:633 -msgid "Number of cooling moves" -msgstr "冷却移动次数" - -#: src/libslic3r/PrintConfig.cpp:634 -msgid "" -"Filament is cooled by being moved back and forth in the cooling tubes. " -"Specify desired number of these moves." -msgstr "在冷却管中来回移动,使耗材丝冷却。指定这些移动的所需数量。" - -#: src/libslic3r/PrintConfig.cpp:642 -msgid "Speed of the first cooling move" -msgstr "第一次冷却移动的速度" - -#: src/libslic3r/PrintConfig.cpp:643 -msgid "Cooling moves are gradually accelerating beginning at this speed." -msgstr "冷却运动正逐渐以这个速度加速。" - -#: src/libslic3r/PrintConfig.cpp:650 -msgid "Minimal purge on wipe tower" -msgstr "擦料塔上的最小清理量" - -#: src/libslic3r/PrintConfig.cpp:651 -msgid "" -"After a tool change, the exact position of the newly loaded filament inside " -"the nozzle may not be known, and the filament pressure is likely not yet " -"stable. Before purging the print head into an infill or a sacrificial " -"object, Slic3r will always prime this amount of material into the wipe tower " -"to produce successive infill or sacrificial object extrusions reliably." -msgstr "" -"换料后, 新加载的耗材丝在喷嘴内的确切位置可能尚不清楚, 而且耗材丝压力可能尚不" -"稳定。在将打印头清洗成填充物或填充对象之前, Slic3r 将始终将这些数量的材料放入" -"擦料塔中, 以可靠地产生连续的填充物或填充对象。" - -#: src/libslic3r/PrintConfig.cpp:655 -msgid "mm³" -msgstr "mm³" - -#: src/libslic3r/PrintConfig.cpp:661 -msgid "Speed of the last cooling move" -msgstr "上次冷却移动的速度" - -#: src/libslic3r/PrintConfig.cpp:662 -msgid "Cooling moves are gradually accelerating towards this speed." -msgstr "冷却移动正逐渐加速向此速度。" - -#: src/libslic3r/PrintConfig.cpp:669 -msgid "Filament load time" -msgstr "耗材丝加载时间" - -#: src/libslic3r/PrintConfig.cpp:670 -msgid "" -"Time for the printer firmware (or the Multi Material Unit 2.0) to load a new " -"filament during a tool change (when executing the T code). This time is " -"added to the total print time by the G-code time estimator." -msgstr "" -"打印机固件 (或Multi Material Unit 2.0) 在工具更换期间 (执行 T 代码时) 加载新" -"耗材丝的时间。 G-code时间估计器将此时间添加到总打印时间中。" - -#: src/libslic3r/PrintConfig.cpp:677 -msgid "Ramming parameters" -msgstr "冲击参数" - -#: src/libslic3r/PrintConfig.cpp:678 -msgid "" -"This string is edited by RammingDialog and contains ramming specific " -"parameters." -msgstr "此字符串由 RammingDialog 编辑,包含冲压特定参数。" - -#: src/libslic3r/PrintConfig.cpp:684 -msgid "Filament unload time" -msgstr "耗材丝卸载时间" - -#: src/libslic3r/PrintConfig.cpp:685 -msgid "" -"Time for the printer firmware (or the Multi Material Unit 2.0) to unload a " -"filament during a tool change (when executing the T code). This time is " -"added to the total print time by the G-code time estimator." -msgstr "" -"打印机固件 (或Multi Material Unit 2.0) 在工具更换期间 (执行 T 代码时) 卸载耗" -"材丝的时间。 G-code时间估计器将此时间添加到总打印时间中。" - -#: src/libslic3r/PrintConfig.cpp:693 -msgid "" -"Enter your filament diameter here. Good precision is required, so use a " -"caliper and do multiple measurements along the filament, then compute the " -"average." -msgstr "" -"在此处输入您的耗材丝直径。需要比较好的精度,建议使用卡钳沿耗材丝进行多次测" -"量,然后计算平均值。" - -#: src/libslic3r/PrintConfig.cpp:700 -msgid "Density" -msgstr "密度" - -#: src/libslic3r/PrintConfig.cpp:701 -msgid "" -"Enter your filament density here. This is only for statistical information. " -"A decent way is to weigh a known length of filament and compute the ratio of " -"the length to volume. Better is to calculate the volume directly through " -"displacement." -msgstr "" -"在此处输入您的耗材丝密度。这仅用于统计信息。一个方法是称量已知长度的耗材丝," -"并计算长度与体积的比率。最好通过位移直接计算体积。" - -#: src/libslic3r/PrintConfig.cpp:704 -msgid "g/cm³" -msgstr "g/cm³" - -#: src/libslic3r/PrintConfig.cpp:709 -msgid "Filament type" -msgstr "耗材类型" - -#: src/libslic3r/PrintConfig.cpp:710 -msgid "The filament material type for use in custom G-codes." -msgstr "用于自定义 G-codes的耗材丝材料类型。" - -#: src/libslic3r/PrintConfig.cpp:736 -msgid "Soluble material" -msgstr "可溶性材料" - -#: src/libslic3r/PrintConfig.cpp:737 -msgid "Soluble material is most likely used for a soluble support." -msgstr "可溶性材料最有可能用于可溶性支撑。" - -#: src/libslic3r/PrintConfig.cpp:743 -msgid "" -"Enter your filament cost per kg here. This is only for statistical " -"information." -msgstr "在此处输入每公斤耗材丝成本。这仅用于统计信息。" - -#: src/libslic3r/PrintConfig.cpp:744 -msgid "money/kg" -msgstr "元/公斤" - -#: src/libslic3r/PrintConfig.cpp:753 -msgid "Fill angle" -msgstr "填充角度" - -#: src/libslic3r/PrintConfig.cpp:755 -msgid "" -"Default base angle for infill orientation. Cross-hatching will be applied to " -"this. Bridges will be infilled using the best direction Slic3r can detect, " -"so this setting does not affect them." -msgstr "" -"填充方向的默认基本角度。交叉阴影将应用于此。网桥将使用 Slic3r 可以检测到的最" -"佳方向填充,因此此设置不会影响它们。" - -#: src/libslic3r/PrintConfig.cpp:767 -msgid "Fill density" -msgstr "填充密度" - -#: src/libslic3r/PrintConfig.cpp:769 -msgid "Density of internal infill, expressed in the range 0% - 100%." -msgstr "内部填充的密度,表示在0%- 100%的范围内。" - -#: src/libslic3r/PrintConfig.cpp:804 -msgid "Fill pattern" -msgstr "填充图案" - -#: src/libslic3r/PrintConfig.cpp:806 -msgid "Fill pattern for general low-density infill." -msgstr "用于一般低密度填充的填充模式。" - -#: src/libslic3r/PrintConfig.cpp:822 -msgid "Grid" -msgstr "网格" - -#: src/libslic3r/PrintConfig.cpp:823 -msgid "Triangles" -msgstr "三角形" - -#: src/libslic3r/PrintConfig.cpp:824 -msgid "Stars" -msgstr "星形" - -#: src/libslic3r/PrintConfig.cpp:825 -msgid "Cubic" -msgstr "立方体" - -#: src/libslic3r/PrintConfig.cpp:826 -msgid "Line" -msgstr "线" - -#: src/libslic3r/PrintConfig.cpp:828 src/libslic3r/PrintConfig.cpp:1974 -msgid "Honeycomb" -msgstr "蜂窝" - -#: src/libslic3r/PrintConfig.cpp:829 -msgid "3D Honeycomb" -msgstr "3D 蜂窝" - -#: src/libslic3r/PrintConfig.cpp:830 -msgid "Gyroid" -msgstr "螺旋形" - -#: src/libslic3r/PrintConfig.cpp:837 src/libslic3r/PrintConfig.cpp:846 -#: src/libslic3r/PrintConfig.cpp:854 src/libslic3r/PrintConfig.cpp:887 -msgid "First layer" -msgstr "第一层" - -#: src/libslic3r/PrintConfig.cpp:838 -msgid "" -"This is the acceleration your printer will use for first layer. Set zero to " -"disable acceleration control for first layer." -msgstr "这是打印机用于第一层的加速。设置为零以禁用第一层的加速度控制。" - -#: src/libslic3r/PrintConfig.cpp:847 -msgid "" -"Heated build plate temperature for the first layer. Set this to zero to " -"disable bed temperature control commands in the output." -msgstr "第一层加热构建板温度。将此设置为零以禁用输出中的床温控制命令。" - -#: src/libslic3r/PrintConfig.cpp:856 -msgid "" -"Set this to a non-zero value to set a manual extrusion width for first " -"layer. You can use this to force fatter extrudates for better adhesion. If " -"expressed as percentage (for example 120%) it will be computed over first " -"layer height. If set to zero, it will use the default extrusion width." -msgstr "" -"将其设置为非零值, 以设置第一层的手动挤出宽度。您可以使用它强制挤出更多挤出物" -"以得到更好的附着力。如果以百分比表示 (例如 120%), 则将在第一层高度上计算。如" -"果设置为零, 它将使用默认的挤出宽度。" - -#: src/libslic3r/PrintConfig.cpp:866 -msgid "First layer height" -msgstr "第一层高度" - -#: src/libslic3r/PrintConfig.cpp:868 -msgid "" -"When printing with very low layer heights, you might still want to print a " -"thicker bottom layer to improve adhesion and tolerance for non perfect build " -"plates. This can be expressed as an absolute value or as a percentage (for " -"example: 150%) over the default layer height." -msgstr "" -"打印时,图层高度非常低,您可能仍希望打印更厚的底层,以提高非完美构建板的附着" -"力和耐受性。这可以表示为绝对值或百分比(例如:150%)超过默认图层高度。" - -#: src/libslic3r/PrintConfig.cpp:877 -msgid "First layer speed" -msgstr "第一层速度" - -#: src/libslic3r/PrintConfig.cpp:878 -msgid "" -"If expressed as absolute value in mm/s, this speed will be applied to all " -"the print moves of the first layer, regardless of their type. If expressed " -"as a percentage (for example: 40%) it will scale the default speeds." -msgstr "" -"如果以mm/s 表示为绝对值,则此速度将应用于第一层的所有打印移动,而不管其类型如" -"何。如果以百分比表示(例如:40%)它将缩放默认速度。" - -#: src/libslic3r/PrintConfig.cpp:888 -msgid "" -"Extruder temperature for first layer. If you want to control temperature " -"manually during print, set this to zero to disable temperature control " -"commands in the output file." -msgstr "" -"第一层的挤出机温度。如果要在打印过程中手动控制温度,请将此设置为零以禁用输出文" -"件中的温度控制命令。" - -#: src/libslic3r/PrintConfig.cpp:897 -msgid "" -"Speed for filling small gaps using short zigzag moves. Keep this reasonably " -"low to avoid too much shaking and resonance issues. Set zero to disable gaps " -"filling." -msgstr "" -"使用短锯齿形移动来填补小缝隙的速度。保持合理的低值, 以避免过多的晃动和共振问" -"题。设置为零, 以禁用间隙填充。" - -#: src/libslic3r/PrintConfig.cpp:905 -msgid "Verbose G-code" -msgstr "详细 G 代码" - -#: src/libslic3r/PrintConfig.cpp:906 -msgid "" -"Enable this to get a commented G-code file, with each line explained by a " -"descriptive text. If you print from SD card, the additional weight of the " -"file could make your firmware slow down." -msgstr "" -"启用此选项可获取注释的 G 代码文件,每行都由描述性文本解释。如果从 SD 卡打印," -"文件的额外权重可能会降低固件速度。" - -#: src/libslic3r/PrintConfig.cpp:913 -msgid "G-code flavor" -msgstr "G 代码风格" - -#: src/libslic3r/PrintConfig.cpp:914 -msgid "" -"Some G/M-code commands, including temperature control and others, are not " -"universal. Set this option to your printer's firmware to get a compatible " -"output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any " -"extrusion value at all." -msgstr "" -"某些 G/M 代码命令(包括温度控制和其他命令)并不通用。将此选项设置为打印机固件" -"以获取兼容输出。\"无挤出\"风格可防止 PrusaSlicer 导出任何挤出值。" - -#: src/libslic3r/PrintConfig.cpp:937 -msgid "No extrusion" -msgstr "无挤出" - -#: src/libslic3r/PrintConfig.cpp:942 -msgid "Label objects" -msgstr "标记对象" - -#: src/libslic3r/PrintConfig.cpp:943 -msgid "" -"Enable this to add comments into the G-Code labeling print moves with what " -"object they belong to, which is useful for the Octoprint CancelObject " -"plugin. This settings is NOT compatible with Single Extruder Multi Material " -"setup and Wipe into Object / Wipe into Infill." -msgstr "" -"启用此功能,将注释添加到 G 代码标签打印移动与它们所属的对象,这对于 Octoprint " -"的 CancelObject 插件很有用。此设置与单挤出机多材质设置和擦除到对象/擦除填充不" -"兼容。" - -#: src/libslic3r/PrintConfig.cpp:950 -msgid "High extruder current on filament swap" -msgstr "耗材丝切换时的高挤出机电流" - -#: src/libslic3r/PrintConfig.cpp:951 -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:959 -msgid "" -"This is the acceleration your printer will use for infill. Set zero to " -"disable acceleration control for infill." -msgstr "这是打印机用于填充的加速。设置为零以禁用填充的加速度控制。" - -#: src/libslic3r/PrintConfig.cpp:967 -msgid "Combine infill every" -msgstr "将填充每个" - -#: src/libslic3r/PrintConfig.cpp:969 -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:972 -msgid "Combine infill every n layers" -msgstr "混合填充每 n 个层" - -#: src/libslic3r/PrintConfig.cpp:978 -msgid "Infill extruder" -msgstr "填充挤出机" - -#: src/libslic3r/PrintConfig.cpp:980 -msgid "The extruder to use when printing infill." -msgstr "打印填充时要使用的挤出机。" - -#: src/libslic3r/PrintConfig.cpp:988 -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 " -"nozzle diameter will be used. You may want to use fatter extrudates to speed " -"up the infill and make your parts stronger. If expressed as percentage (for " -"example 90%) it will be computed over layer height." -msgstr "" -"将其设置为非零值, 以设置填充的手动挤出宽度。如果为零, 则如果设置, 将使用默认" -"挤出宽度, 否则将使用 1.125 x 喷嘴直径。你可能想使用更多的挤出物来加速填充, 使" -"你的部件更结实。如果以百分比表示 (例如 90%), 则将在图层高度上计算。" - -#: src/libslic3r/PrintConfig.cpp:997 -msgid "Infill before perimeters" -msgstr "在填充前先打印轮廓" - -#: src/libslic3r/PrintConfig.cpp:998 -msgid "" -"This option will switch the print order of perimeters and infill, making the " -"latter first." -msgstr "此选项将切换轮廓和填充的打印顺序,使后者首先进行。" - -#: src/libslic3r/PrintConfig.cpp:1003 -msgid "Only infill where needed" -msgstr "仅在需要时填充" - -#: src/libslic3r/PrintConfig.cpp:1005 -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 "" -"此选项将填充限制为支撑顶部的实际需要区域(它将作为内部支撑材料)。如果启用," -"由于涉及多个检查,将减慢 G 代码的生成速度。" - -#: src/libslic3r/PrintConfig.cpp:1012 -msgid "Infill/perimeters overlap" -msgstr "填充/轮廓重叠" - -#: src/libslic3r/PrintConfig.cpp:1014 -msgid "" -"This setting applies an additional overlap between infill and perimeters for " -"better bonding. Theoretically this shouldn't be needed, but backlash might " -"cause gaps. If expressed as percentage (example: 15%) it is calculated over " -"perimeter extrusion width." -msgstr "" -"此设置应用填充和轮廓之间的额外重叠,以便更好地粘合。从理论上讲,这不应该是需" -"要的,但反弹可能会导致差距。如果以百分比表示(例如:15%)它是在轮廓挤出宽度上" -"计算的。" - -#: src/libslic3r/PrintConfig.cpp:1025 -msgid "Speed for printing the internal fill. Set to zero for auto." -msgstr "打印内部填充的速度。零为自动设置。" - -#: src/libslic3r/PrintConfig.cpp:1033 -msgid "Inherits profile" -msgstr "继承配置文件" - -#: src/libslic3r/PrintConfig.cpp:1034 -msgid "Name of the profile, from which this profile inherits." -msgstr "此配置文件从中继承的配置文件的名称。" - -#: src/libslic3r/PrintConfig.cpp:1047 -msgid "Interface shells" -msgstr "接触面外壳" - -#: src/libslic3r/PrintConfig.cpp:1048 -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:1057 -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 " -"use placeholder variables for all Slic3r settings as well as [layer_num] and " -"[layer_z]." -msgstr "" -"此自定义代码在每次图层更改时插入,即 Z 移动之后和挤出机移动到第一个图层点之" -"前。请注意,您可以将占位符变量用于所有 Slic3r 设置以及 [layer_num] 和 " -"[layer_z]。" - -#: src/libslic3r/PrintConfig.cpp:1068 -msgid "Supports remaining times" -msgstr "支撑剩余时间" - -#: src/libslic3r/PrintConfig.cpp:1069 -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. " -"As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 " -"firmware supports M73 Qxx Sxx for the silent mode." -msgstr "" -"以1分钟的间隔发出M73 P[percent printed] R[remaining time in minutes] 进入 G-" -"code , 让固件显示准确的剩余时间。到目前为止, 只有 Prusa i3 MK3 固件识别 M73。" -"此外, i3 MK3 固件支持 M73 Qxx Sxx 的静音模式。" - -#: src/libslic3r/PrintConfig.cpp:1077 -msgid "Supports stealth mode" -msgstr "支持隐身模式" - -#: src/libslic3r/PrintConfig.cpp:1078 -msgid "The firmware supports stealth mode" -msgstr "固件支持隐身模式" - -#: src/libslic3r/PrintConfig.cpp:1102 -msgid "Maximum feedrate X" -msgstr "最大进给率 X" - -#: src/libslic3r/PrintConfig.cpp:1103 -msgid "Maximum feedrate Y" -msgstr "最大进给率 Y" - -#: src/libslic3r/PrintConfig.cpp:1104 -msgid "Maximum feedrate Z" -msgstr "最大进给率 Z" - -#: src/libslic3r/PrintConfig.cpp:1105 -msgid "Maximum feedrate E" -msgstr "最大进给率 E" - -#: src/libslic3r/PrintConfig.cpp:1108 -msgid "Maximum feedrate of the X axis" -msgstr "X 轴的最大进给率" - -#: src/libslic3r/PrintConfig.cpp:1109 -msgid "Maximum feedrate of the Y axis" -msgstr "Y 轴的最大进给率" - -#: src/libslic3r/PrintConfig.cpp:1110 -msgid "Maximum feedrate of the Z axis" -msgstr "Z 轴的最大进给率" - -#: src/libslic3r/PrintConfig.cpp:1111 -msgid "Maximum feedrate of the E axis" -msgstr "E 轴的最大进给率" - -#: src/libslic3r/PrintConfig.cpp:1120 -msgid "Maximum acceleration X" -msgstr "最大加速度 X" - -#: src/libslic3r/PrintConfig.cpp:1121 -msgid "Maximum acceleration Y" -msgstr "最大加速度 Y" - -#: src/libslic3r/PrintConfig.cpp:1122 -msgid "Maximum acceleration Z" -msgstr "最大加速度 Z" - -#: src/libslic3r/PrintConfig.cpp:1123 -msgid "Maximum acceleration E" -msgstr "最大加速度 E" - -#: src/libslic3r/PrintConfig.cpp:1126 -msgid "Maximum acceleration of the X axis" -msgstr "X 轴的最大加速度" - -#: src/libslic3r/PrintConfig.cpp:1127 -msgid "Maximum acceleration of the Y axis" -msgstr "Y 轴的最大加速度" - -#: src/libslic3r/PrintConfig.cpp:1128 -msgid "Maximum acceleration of the Z axis" -msgstr "Z 轴的最大加速度" - -#: src/libslic3r/PrintConfig.cpp:1129 -msgid "Maximum acceleration of the E axis" -msgstr "E 轴的最大加速度" - -#: src/libslic3r/PrintConfig.cpp:1138 -msgid "Maximum jerk X" -msgstr "最大抖动 X" - -#: src/libslic3r/PrintConfig.cpp:1139 -msgid "Maximum jerk Y" -msgstr "最大抖动 Y" - -#: src/libslic3r/PrintConfig.cpp:1140 -msgid "Maximum jerk Z" -msgstr "最大抖动 Z" - -#: src/libslic3r/PrintConfig.cpp:1141 -msgid "Maximum jerk E" -msgstr "最大抖动 E" - -#: src/libslic3r/PrintConfig.cpp:1144 -msgid "Maximum jerk of the X axis" -msgstr "X 轴的最大抖动" - -#: src/libslic3r/PrintConfig.cpp:1145 -msgid "Maximum jerk of the Y axis" -msgstr "Y 轴的最大抖动" - -#: src/libslic3r/PrintConfig.cpp:1146 -msgid "Maximum jerk of the Z axis" -msgstr "Z 轴的最大抖动" - -#: src/libslic3r/PrintConfig.cpp:1147 -msgid "Maximum jerk of the E axis" -msgstr "E 轴的最大抖动" - -#: src/libslic3r/PrintConfig.cpp:1158 -msgid "Minimum feedrate when extruding" -msgstr "挤出时的最小进给率" - -#: src/libslic3r/PrintConfig.cpp:1160 -msgid "Minimum feedrate when extruding (M205 S)" -msgstr "挤出时的最小进给率 (M205 S)" - -#: src/libslic3r/PrintConfig.cpp:1169 -msgid "Minimum travel feedrate" -msgstr "最小移动进给率" - -#: src/libslic3r/PrintConfig.cpp:1171 -msgid "Minimum travel feedrate (M205 T)" -msgstr "最小移动进给率 (M205 T)" - -#: src/libslic3r/PrintConfig.cpp:1180 -msgid "Maximum acceleration when extruding" -msgstr "挤出时的最大加速度" - -#: src/libslic3r/PrintConfig.cpp:1182 -msgid "Maximum acceleration when extruding (M204 S)" -msgstr "挤出时的最大加速度 (M204 S)" - -#: src/libslic3r/PrintConfig.cpp:1191 -msgid "Maximum acceleration when retracting" -msgstr "回抽时的最大加速度" - -#: src/libslic3r/PrintConfig.cpp:1193 -msgid "Maximum acceleration when retracting (M204 T)" -msgstr "回抽时的最大加速度 (M204 T)" - -#: src/libslic3r/PrintConfig.cpp:1201 src/libslic3r/PrintConfig.cpp:1210 -msgid "Max" -msgstr "最大" - -#: src/libslic3r/PrintConfig.cpp:1202 -msgid "This setting represents the maximum speed of your fan." -msgstr "此设置表示风扇的最大速度。" - -#: src/libslic3r/PrintConfig.cpp:1211 -#, no-c-format -msgid "" -"This is the highest printable layer height for this extruder, used to cap " -"the variable layer height and support layer height. Maximum recommended " -"layer height is 75% of the extrusion width to achieve reasonable inter-layer " -"adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." -msgstr "" -"这是此挤出机的最高可打印层高度,用于盖住可变图层高度和支撑层高度。建议的最大" -"层高度为挤出宽度的 75%,以实现合理的层间粘附。如果设置为 0,则层高度限制为喷" -"嘴直径的 75%。" - -#: src/libslic3r/PrintConfig.cpp:1221 -msgid "Max print speed" -msgstr "最大打印速度" - -#: src/libslic3r/PrintConfig.cpp:1222 -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 "" -"将其他速度设置设置为 0 时,Slic3r将自动计算最佳速度,以保持恒定的挤出压力。此" -"实验设置用于设置您希望允许的最高打印速度。" - -#: src/libslic3r/PrintConfig.cpp:1232 -msgid "" -"This experimental setting is used to set the maximum volumetric speed your " -"extruder supports." -msgstr "此实验设置用于设置挤出机支持的最大体积速度。" - -#: src/libslic3r/PrintConfig.cpp:1241 -msgid "Max volumetric slope positive" -msgstr "最大流量增加率" - -#: src/libslic3r/PrintConfig.cpp:1242 src/libslic3r/PrintConfig.cpp:1253 -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 " -"of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/" -"s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." -msgstr "" -"该实验设置用于限制挤出速率的变化速度。值为 1.8 mm3/s2 可确保从 1.8 mm3/" -"s(0.45mm 挤出宽度、0.2mm 挤出高度、进给率 20 mm/s)的挤出速率更改为 5.4 mm3/" -"s(进料速率 60 mm/s)至少需要 2 秒。" - -#: src/libslic3r/PrintConfig.cpp:1246 src/libslic3r/PrintConfig.cpp:1257 -msgid "mm³/s²" -msgstr "mm³/s²" - -#: src/libslic3r/PrintConfig.cpp:1252 -msgid "Max volumetric slope negative" -msgstr "最大流量减少率" - -#: src/libslic3r/PrintConfig.cpp:1264 src/libslic3r/PrintConfig.cpp:1273 -msgid "Min" -msgstr "最小" - -#: src/libslic3r/PrintConfig.cpp:1265 -msgid "This setting represents the minimum PWM your fan needs to work." -msgstr "此设置表示风扇工作所需的最小 PWM。" - -#: src/libslic3r/PrintConfig.cpp:1274 -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 "" -"这是此挤出机的最低可打印图层高度,并限制了可变图层高度的分辨率。典型值介于 " -"0.05 mm 和 0.1 mm 之间。" - -#: src/libslic3r/PrintConfig.cpp:1282 -msgid "Min print speed" -msgstr "最小打印速度" - -#: src/libslic3r/PrintConfig.cpp:1283 -msgid "Slic3r will not scale speed down below this speed." -msgstr "Slic3r 不会将速度降低到低于此速度。" - -#: src/libslic3r/PrintConfig.cpp:1290 -msgid "Minimal filament extrusion length" -msgstr "最小耗材丝挤出长度" - -#: src/libslic3r/PrintConfig.cpp:1291 -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:1300 -msgid "Configuration notes" -msgstr "配置说明" - -#: src/libslic3r/PrintConfig.cpp:1301 -msgid "" -"You can put here your personal notes. This text will be added to the G-code " -"header comments." -msgstr "你可以把个人笔记放在这里。此文本将添加到 G 代码标题注释中。" - -#: src/libslic3r/PrintConfig.cpp:1311 -msgid "" -"This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" -msgstr "这是挤出机喷嘴的直径(例如:0.5、0.35 等)" - -#: src/libslic3r/PrintConfig.cpp:1316 -msgid "Host Type" -msgstr "主机类型" - -#: src/libslic3r/PrintConfig.cpp:1317 -msgid "" -"Slic3r can upload G-code files to a printer host. This field must contain " -"the kind of the host." -msgstr "Slic3r 可以将 G-code 文件上传到打印机主机。此字段必须包含主机的类型。" - -#: src/libslic3r/PrintConfig.cpp:1328 -msgid "Only retract when crossing perimeters" -msgstr "仅在跨越轮廓时回抽" - -#: src/libslic3r/PrintConfig.cpp:1329 -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:1336 -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:1343 -msgid "Output filename format" -msgstr "输出文件名格式" - -#: src/libslic3r/PrintConfig.cpp:1344 -msgid "" -"You can use all configuration options as variables inside this template. For " -"example: [layer_height], [fill_density] etc. You can also use [timestamp], " -"[year], [month], [day], [hour], [minute], [second], [version], " -"[input_filename], [input_filename_base]." -msgstr "" -"您可以将所有配置选项用作此模板中的变量。例如: [layer_height], " -"[fill_density] 密度等。您还可以使用 [timestamp], [year], [month], [day], " -"[hour], [minute], [second], [version], [input_filename], " -"[input_filename_base] 。" - -#: src/libslic3r/PrintConfig.cpp:1353 -msgid "Detect bridging perimeters" -msgstr "检测桥接轮廓" - -#: src/libslic3r/PrintConfig.cpp:1355 -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:1361 -msgid "Filament parking position" -msgstr "耗材丝停车位" - -#: src/libslic3r/PrintConfig.cpp:1362 -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:1370 -msgid "Extra loading distance" -msgstr "额外装载距离" - -#: src/libslic3r/PrintConfig.cpp:1371 -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 " -"positive, it is loaded further, if negative, the loading move is shorter " -"than unloading." -msgstr "" -"当设置为零时,耗材丝在负载期间与停车位置移动的距离与卸载期间移回的距离完全相" -"同。当为正时,它进一步加载,如果为负,加载移动比卸载短。" - -#: src/libslic3r/PrintConfig.cpp:1379 src/libslic3r/PrintConfig.cpp:1397 -#: src/libslic3r/PrintConfig.cpp:1409 src/libslic3r/PrintConfig.cpp:1419 -msgid "Perimeters" -msgstr "轮廓" - -#: src/libslic3r/PrintConfig.cpp:1380 -msgid "" -"This is the acceleration your printer will use for perimeters. A high value " -"like 9000 usually gives good results if your hardware is up to the job. Set " -"zero to disable acceleration control for perimeters." -msgstr "" -"这是打印机用于轮廓的加速。如果硬件可以胜任工作,则像 9000 这样的高值通常会带" -"来良好的结果。设置为零以禁用轮廓的加速度控制。" - -#: src/libslic3r/PrintConfig.cpp:1388 -msgid "Perimeter extruder" -msgstr "轮廓挤出机" - -#: src/libslic3r/PrintConfig.cpp:1390 -msgid "" -"The extruder to use when printing perimeters and brim. First extruder is 1." -msgstr "打印轮廓和外围裙边时使用的挤出机。第一个挤出机为 1。" - -#: src/libslic3r/PrintConfig.cpp:1399 -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 " -"left zero, default extrusion width will be used if set, otherwise 1.125 x " -"nozzle diameter will be used. If expressed as percentage (for example 200%) " -"it will be computed over layer height." -msgstr "" -"将此设置为非零值, 以手动设置边界的挤出宽度。您可能需要使用更薄的挤出物来获得" -"更精确的表面。如果为零, 则如果设置, 将使用默认挤出宽度, 否则将使用 1.125 x 喷" -"嘴直径。如果以百分比表示 (例如 200%), 则将在图层高度上计算。" - -#: src/libslic3r/PrintConfig.cpp:1411 -msgid "" -"Speed for perimeters (contours, aka vertical shells). Set to zero for auto." -msgstr "边界的速度 (等高线, 也称为垂直壳)。自动设置为零。" - -#: src/libslic3r/PrintConfig.cpp:1421 -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 " -"surfaces which benefit from a higher number of perimeters if the Extra " -"Perimeters option is enabled." -msgstr "" -"此选项设置要为每个图层生成的轮廓数。请注意,Slic3r 在检测到倾斜曲面时可能会自" -"动增加此数字,如果启用了\"额外轮廓\"选项,则这些坡度曲面受益于较高的轮廓数。" - -#: src/libslic3r/PrintConfig.cpp:1425 -msgid "(minimum)" -msgstr "(最小)" - -#: src/libslic3r/PrintConfig.cpp:1433 -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. " -"Scripts will be passed the absolute path to the G-code file as the first " -"argument, and they can access the Slic3r config settings by reading " -"environment variables." -msgstr "" -"如果要通过自定义脚本处理输出 G-code , 只需在此处列出它们的绝对路径即可。用分" -"号分隔多个脚本。脚本将作为第一个参数传递到 G-code 文件的绝对路径, 并且它们可" -"以通过读取环境变量访问 Slic3r 配置设置。" - -#: src/libslic3r/PrintConfig.cpp:1445 -msgid "Printer type" -msgstr "打印机类型" - -#: src/libslic3r/PrintConfig.cpp:1446 -msgid "Type of the printer." -msgstr "打印机的类型." - -#: src/libslic3r/PrintConfig.cpp:1451 -msgid "Printer notes" -msgstr "打印机备注" - -#: src/libslic3r/PrintConfig.cpp:1452 -msgid "You can put your notes regarding the printer here." -msgstr "您可以在此处放置有关打印机的备注." - -#: src/libslic3r/PrintConfig.cpp:1460 -msgid "Printer vendor" -msgstr "打印机供应商" - -#: src/libslic3r/PrintConfig.cpp:1461 -msgid "Name of the printer vendor." -msgstr "打印机供应商的名称." - -#: src/libslic3r/PrintConfig.cpp:1466 -msgid "Printer variant" -msgstr "打印机版本" - -#: src/libslic3r/PrintConfig.cpp:1467 -msgid "" -"Name of the printer variant. For example, the printer variants may be " -"differentiated by a nozzle diameter." -msgstr "打印机变体的版本。例如, 打印机版本可以通过喷嘴直径进行区分。" - -#: src/libslic3r/PrintConfig.cpp:1480 -msgid "Raft layers" -msgstr "筏层" - -#: src/libslic3r/PrintConfig.cpp:1482 -msgid "" -"The object will be raised by this number of layers, and support material " -"will be generated under it." -msgstr "对象将相对此层数抬高,并在其下生成支撑材料。" - -#: src/libslic3r/PrintConfig.cpp:1490 -msgid "Resolution" -msgstr "分辨率" - -#: src/libslic3r/PrintConfig.cpp:1491 -msgid "" -"Minimum detail resolution, used to simplify the input file for speeding up " -"the slicing job and reducing memory usage. High-resolution models often " -"carry more detail than printers can render. Set to zero to disable any " -"simplification and use full resolution from input." -msgstr "" -"最小细节分辨率,用于简化输入文件以加快切片作业和减少内存使用量。高分辨率模型" -"通常携带比打印机渲染更多的细节。设置为零以禁用任何简化并使用输入的全分辨率。" - -#: src/libslic3r/PrintConfig.cpp:1501 -msgid "Minimum travel after retraction" -msgstr "回抽最小行程" - -#: src/libslic3r/PrintConfig.cpp:1502 -msgid "" -"Retraction is not triggered when travel moves are shorter than this length." -msgstr "当打印移动短于此长度时,不会触发回抽。" - -#: src/libslic3r/PrintConfig.cpp:1508 -msgid "Retract amount before wipe" -msgstr "擦拭前的回抽量" - -#: src/libslic3r/PrintConfig.cpp:1509 -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:1516 -msgid "Retract on layer change" -msgstr "在图层更改时回抽" - -#: src/libslic3r/PrintConfig.cpp:1517 -msgid "This flag enforces a retraction whenever a Z move is done." -msgstr "每当完成 Z 移动时,都会强制回抽。" - -#: src/libslic3r/PrintConfig.cpp:1522 src/libslic3r/PrintConfig.cpp:1530 -msgid "Length" -msgstr "长度" - -#: src/libslic3r/PrintConfig.cpp:1523 -msgid "Retraction Length" -msgstr "回抽长度" - -#: src/libslic3r/PrintConfig.cpp:1524 -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:1526 src/libslic3r/PrintConfig.cpp:1535 -msgid "mm (zero to disable)" -msgstr "mm (0禁用)" - -#: src/libslic3r/PrintConfig.cpp:1531 -msgid "Retraction Length (Toolchange)" -msgstr "回抽长度 (工具更换)" - -#: src/libslic3r/PrintConfig.cpp:1532 -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:1540 -msgid "Lift Z" -msgstr "提升 Z" - -#: src/libslic3r/PrintConfig.cpp:1541 -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 "" -"如果将此值设置为正值,则每次触发回抽时都会快速引发 Z。使用多个挤出机时,仅考" -"虑第一个挤出机的设置。" - -#: src/libslic3r/PrintConfig.cpp:1548 -msgid "Above Z" -msgstr "Z 高于" - -#: src/libslic3r/PrintConfig.cpp:1549 -msgid "Only lift Z above" -msgstr "仅提升 Z 高于" - -#: src/libslic3r/PrintConfig.cpp:1550 -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 "" -"如果将此值设置为正值,则 Z 提升将仅发生在指定的绝对 Z 上方。您可以调整此设置" -"以跳过第一个图层上的提升。" - -#: src/libslic3r/PrintConfig.cpp:1557 -msgid "Below Z" -msgstr "Z 低于" - -#: src/libslic3r/PrintConfig.cpp:1558 -msgid "Only lift Z below" -msgstr "仅提升 Z 低于" - -#: src/libslic3r/PrintConfig.cpp:1559 -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 "" -"如果将此值设置为正值,则 Z 提升将仅发生在指定的绝对 Z 以下。您可以调整此设" -"置,将提升限制为第一个图层。" - -#: src/libslic3r/PrintConfig.cpp:1567 src/libslic3r/PrintConfig.cpp:1575 -msgid "Extra length on restart" -msgstr "重新启动时的额外长度" - -#: src/libslic3r/PrintConfig.cpp:1568 -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:1576 -msgid "" -"When the retraction is compensated after changing tool, the extruder will " -"push this additional amount of filament." -msgstr "当更换热头后补偿回抽时,挤出机将推进这额外的耗材丝量。" - -#: src/libslic3r/PrintConfig.cpp:1583 src/libslic3r/PrintConfig.cpp:1584 -msgid "Retraction Speed" -msgstr "回抽速度" - -#: src/libslic3r/PrintConfig.cpp:1585 -msgid "The speed for retractions (it only applies to the extruder motor)." -msgstr "回抽速度 (仅适用于挤出机电机)." - -#: src/libslic3r/PrintConfig.cpp:1591 src/libslic3r/PrintConfig.cpp:1592 -msgid "Deretraction Speed" -msgstr "减速速度" - -#: src/libslic3r/PrintConfig.cpp:1593 -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:1600 -msgid "Seam position" -msgstr "接缝位置" - -#: src/libslic3r/PrintConfig.cpp:1602 -msgid "Position of perimeters starting points." -msgstr "轮廓起点的位置。" - -#: src/libslic3r/PrintConfig.cpp:1608 -msgid "Random" -msgstr "随机" - -#: src/libslic3r/PrintConfig.cpp:1609 -msgid "Nearest" -msgstr "最近的" - -#: src/libslic3r/PrintConfig.cpp:1610 -msgid "Aligned" -msgstr "对齐" - -#: src/libslic3r/PrintConfig.cpp:1618 -msgid "Direction" -msgstr "方向" - -#: src/libslic3r/PrintConfig.cpp:1620 -msgid "Preferred direction of the seam" -msgstr "接缝的首选方向" - -#: src/libslic3r/PrintConfig.cpp:1621 -msgid "Seam preferred direction" -msgstr "接缝首选方向" - -#: src/libslic3r/PrintConfig.cpp:1628 -msgid "Jitter" -msgstr "抖动" - -#: src/libslic3r/PrintConfig.cpp:1630 -msgid "Seam preferred direction jitter" -msgstr "接缝首选方向抖动" - -#: src/libslic3r/PrintConfig.cpp:1631 -msgid "Preferred direction of the seam - jitter" -msgstr "接缝的首选方向 - 抖动" - -#: src/libslic3r/PrintConfig.cpp:1641 -msgid "USB/serial port for printer connection." -msgstr "用于打印机连接的 USB/串行端口。" - -#: src/libslic3r/PrintConfig.cpp:1648 -msgid "Serial port speed" -msgstr "串行端口速度" - -#: src/libslic3r/PrintConfig.cpp:1649 -msgid "Speed (baud) of USB/serial port for printer connection." -msgstr "用于打印机连接的 USB/串行端口的速度(波特)。" - -#: src/libslic3r/PrintConfig.cpp:1658 -msgid "Distance from object" -msgstr "与对象的距离" - -#: src/libslic3r/PrintConfig.cpp:1659 -msgid "" -"Distance between skirt and object(s). Set this to zero to attach the skirt " -"to the object(s) and get a brim for better adhesion." -msgstr "" -"裙边和物体之间的距离。将此设置为零以将裙边附加到对象,并获得边缘以获得更好的" -"附着力。" - -#: src/libslic3r/PrintConfig.cpp:1666 -msgid "Skirt height" -msgstr "裙边高度" - -#: src/libslic3r/PrintConfig.cpp:1667 -msgid "" -"Height of skirt expressed in layers. Set this to a tall value to use skirt " -"as a shield against drafts." -msgstr "裙边的高度以层表示。设置一个高值,以使用裙边作为防翘边的保护。" - -#: src/libslic3r/PrintConfig.cpp:1674 -msgid "Loops (minimum)" -msgstr "圈数(最小值)" - -#: src/libslic3r/PrintConfig.cpp:1675 -msgid "Skirt Loops" -msgstr "裙边圈数" - -#: src/libslic3r/PrintConfig.cpp:1676 -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:1684 -msgid "Slow down if layer print time is below" -msgstr "如果图层打印时间低于" - -#: src/libslic3r/PrintConfig.cpp:1685 -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:1695 -msgid "Small perimeters" -msgstr "小边界" - -#: src/libslic3r/PrintConfig.cpp:1697 -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 "" -"此单独设置将影响半径为 < = 6.5 mm (通常为孔) 的边界的速度。如果以百分比表示 " -"(例如: 80%), 则将根据上面的边界速度设置进行计算。自动设置为零。" - -#: src/libslic3r/PrintConfig.cpp:1707 -msgid "Solid infill threshold area" -msgstr "实心填充阈值区域" - -#: src/libslic3r/PrintConfig.cpp:1709 -msgid "" -"Force solid infill for regions having a smaller area than the specified " -"threshold." -msgstr "对面积小于指定阈值的区域强制实心填充。" - -#: src/libslic3r/PrintConfig.cpp:1710 -msgid "mm²" -msgstr "mm²" - -#: src/libslic3r/PrintConfig.cpp:1716 -msgid "Solid infill extruder" -msgstr "实心填充挤出机" - -#: src/libslic3r/PrintConfig.cpp:1718 -msgid "The extruder to use when printing solid infill." -msgstr "打印实体填充时使用的挤出机。" - -#: src/libslic3r/PrintConfig.cpp:1724 -msgid "Solid infill every" -msgstr "固体填充每个" - -#: src/libslic3r/PrintConfig.cpp:1726 -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 " -"will automatically choose the maximum possible number of layers to combine " -"according to nozzle diameter and layer height." -msgstr "" -"此功能允许强制每个给定数量的图层的实心图层。要禁用的零。您可以将其设置为任何" -"值(例如 9999);Slic3r 将根据喷嘴直径和层高度自动选择要合并的最大层数。" - -#: src/libslic3r/PrintConfig.cpp:1738 -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, " -"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " -"(for example 90%) it will be computed over layer height." -msgstr "" -"此值设置为非零值,以设置实体曲面填充的手动挤出宽度。如果左为零,则如果设置," -"将使用默认挤出宽度,否则将使用 1.125 x 喷嘴直径。如果以百分比表示(例如 90%)" -"它将在层高度上计算。" - -#: src/libslic3r/PrintConfig.cpp:1748 -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 "" -"打印实体区域的速度(顶部/底部/内部水平壳体)。这可以表示为百分比(例如:80%)" -"超过上述默认填充速度。为自动设置为零。" - -#: src/libslic3r/PrintConfig.cpp:1760 -msgid "Number of solid layers to generate on top and bottom surfaces." -msgstr "要在顶部和底部曲面上生成的实心图层数。" - -#: src/libslic3r/PrintConfig.cpp:1766 -msgid "Spiral vase" -msgstr "螺旋花瓶" - -#: src/libslic3r/PrintConfig.cpp:1767 -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, " -"no infill, no top solid layers and no support material. You can still set " -"any number of bottom solid layers as well as skirt/brim loops. It won't work " -"when printing more than an object." -msgstr "" -"此功能将在打印单壁对象时逐渐提升 Z,以便删除任何可见的接缝。此选项需要单个轮" -"廓、无填充、无顶部实心层和支撑材料。您仍然可以设置任意数量的底部实心图层以及" -"裙/边环。打印对象多时,它不起作用。" - -#: src/libslic3r/PrintConfig.cpp:1775 -msgid "Temperature variation" -msgstr "温度变化" - -#: src/libslic3r/PrintConfig.cpp:1776 -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:1786 -msgid "" -"This start procedure is inserted at the beginning, after bed has reached the " -"target temperature and extruder just started heating, and before extruder " -"has finished heating. If PrusaSlicer detects M104 or M190 in your custom " -"codes, such commands will not be prepended automatically so you're free to " -"customize the order of heating commands and other custom actions. Note that " -"you can use placeholder variables for all PrusaSlicer settings, so you can " -"put a \"M109 S[first_layer_temperature]\" command wherever you want." -msgstr "" -"此启动程序在开始时插入,床后达到目标温度,挤出机刚刚开始加热,并且挤出机完成" -"加热。如果 PrusaSlicer 在自定义代码中检测到 M104 或 M190,则此类命令不会自动" -"预置,因此您可以自由自定义加热命令和其他自定义操作的顺序。请注意,您可以将占" -"位符变量用于所有 PrusaSlicer 设置,因此您可以将\"M109 " -"S[first_layer_temperature]\"命令放在任何所需的位置。" - -#: src/libslic3r/PrintConfig.cpp:1801 -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 " -"printers). This is used to override settings for a specific filament. If " -"PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such " -"commands will not be prepended automatically so you're free to customize the " -"order of heating commands and other custom actions. Note that you can use " -"placeholder variables for all PrusaSlicer settings, so you can put a \"M109 " -"S[first_layer_temperature]\" command wherever you want. If you have multiple " -"extruders, the gcode is processed in extruder order." -msgstr "" -"此启动过程在开始、任何打印机启动 gcode 后(以及多材料打印机的情况下的任何工具" -"更换到此耗材丝之后)插入。这用于覆盖特定耗材丝的设置。如果 PrusaSlicer 在自定" -"义代码中检测到 M104、M109、M140 或 M190,则此类命令不会自动预置,因此您可以自" -"由自定义加热命令和其他自定义操作的顺序。请注意,您可以将占位符变量用于所有 " -"PrusaSlicer 设置,因此您可以将\"S[first_layer_temperature]\"命令放在任何所需" -"的位置。如果您有多个挤出机,则按挤出机顺序处理 gcode。" - -#: src/libslic3r/PrintConfig.cpp:1817 -msgid "Single Extruder Multi Material" -msgstr "单挤出机多材料" - -#: src/libslic3r/PrintConfig.cpp:1818 -msgid "The printer multiplexes filaments into a single hot end." -msgstr "打印机将耗材丝多路复用到一个热端。" - -#: src/libslic3r/PrintConfig.cpp:1823 -msgid "Prime all printing extruders" -msgstr "装填所有印刷挤出机" - -#: src/libslic3r/PrintConfig.cpp:1824 -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:1829 -msgid "Generate support material" -msgstr "生成支撑材料" - -#: src/libslic3r/PrintConfig.cpp:1831 -msgid "Enable support material generation." -msgstr "启用支撑材料生成。" - -#: src/libslic3r/PrintConfig.cpp:1835 -msgid "Auto generated supports" -msgstr "自动生成支撑" - -#: src/libslic3r/PrintConfig.cpp:1837 -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:1843 -msgid "XY separation between an object and its support" -msgstr "对象与其支撑之间的 XY 分离距离" - -#: src/libslic3r/PrintConfig.cpp:1845 -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 "" -"对象与其支撑之间的 xy 分离距离。如果表示为百分比 (例如 50%), 则将根据外部外围" -"宽度计算。" - -#: src/libslic3r/PrintConfig.cpp:1855 -msgid "Pattern angle" -msgstr "模式角度" - -#: src/libslic3r/PrintConfig.cpp:1857 -msgid "" -"Use this setting to rotate the support material pattern on the horizontal " -"plane." -msgstr "使用此设置可旋转水平平面上的支撑材料模式。" - -#: src/libslic3r/PrintConfig.cpp:1867 src/libslic3r/PrintConfig.cpp:2563 -msgid "" -"Only create support if it lies on a build plate. Don't create support on a " -"print." -msgstr "仅当支撑位于构建板上时,才能创建支撑。不要在打印上创建支撑。" - -#: src/libslic3r/PrintConfig.cpp:1873 -msgid "Contact Z distance" -msgstr "接触 Z 距离" - -#: src/libslic3r/PrintConfig.cpp:1875 -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 "" -"对象与支撑材料界面之间的垂直距离。将此设置为 0 还会防止 Slic3r 对第一个对象层" -"使用桥流和速度。" - -#: src/libslic3r/PrintConfig.cpp:1882 -msgid "0 (soluble)" -msgstr "0 (可溶性)" - -#: src/libslic3r/PrintConfig.cpp:1883 -msgid "0.2 (detachable)" -msgstr "0.2 (可拆卸)" - -#: src/libslic3r/PrintConfig.cpp:1888 -msgid "Enforce support for the first" -msgstr "强制支撑前" - -#: src/libslic3r/PrintConfig.cpp:1890 -msgid "" -"Generate support material for the specified number of layers counting from " -"bottom, regardless of whether normal support material is enabled or not and " -"regardless of any angle threshold. This is useful for getting more adhesion " -"of objects having a very thin or poor footprint on the build plate." -msgstr "" -"从底部为指定数量的图层生成支撑材料,无论是否启用了普通支撑材料,也无论角度阈值" -"如何。这对于在构建板上具有非常薄或差的封装的物体的粘附性非常有用。" - -#: src/libslic3r/PrintConfig.cpp:1895 -msgid "Enforce support for the first n layers" -msgstr "强制支撑前 n 层" - -#: src/libslic3r/PrintConfig.cpp:1901 -msgid "Support material/raft/skirt extruder" -msgstr "支撑材料/筏/裙边 挤出机" - -#: src/libslic3r/PrintConfig.cpp:1903 -msgid "" -"The extruder to use when printing support material, raft and skirt (1+, 0 to " -"use the current extruder to minimize tool changes)." -msgstr "" -"打印支撑材料、基座和裙边时使用的挤出机 (1+, 0 用于使用当前挤出机以最大限度地" -"减少工具切换)." - -#: src/libslic3r/PrintConfig.cpp:1912 -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, " -"otherwise nozzle diameter will be used. If expressed as percentage (for " -"example 90%) it will be computed over layer height." -msgstr "" -"此值设置为非零值,以设置支撑材料的手动挤出宽度。如果左为零,则如果设置,将使" -"用默认挤出宽度,否则将使用喷嘴直径。如果以百分比表示(例如 90%)它将在层高度" -"上计算。" - -#: src/libslic3r/PrintConfig.cpp:1920 -msgid "Interface loops" -msgstr "接触面圈数" - -#: src/libslic3r/PrintConfig.cpp:1922 -msgid "" -"Cover the top contact layer of the supports with loops. Disabled by default." -msgstr "用循环盖住支架的顶层接触层。默认情况下禁用。" - -#: src/libslic3r/PrintConfig.cpp:1927 -msgid "Support material/raft interface extruder" -msgstr "支撑材料/筏 接触面挤出机" - -#: src/libslic3r/PrintConfig.cpp:1929 -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 "" -"打印支撑材料界面时要使用的挤出机 (1+, 0 用于使用当前挤出机以最大限度地减少工" -"具切换)。这也会影响基座." - -#: src/libslic3r/PrintConfig.cpp:1936 -msgid "Interface layers" -msgstr "接触面层" - -#: src/libslic3r/PrintConfig.cpp:1938 -msgid "" -"Number of interface layers to insert between the object(s) and support " -"material." -msgstr "要在对象和支撑材料之间插入的接触面层数。" - -#: src/libslic3r/PrintConfig.cpp:1945 -msgid "Interface pattern spacing" -msgstr "接触面模式间距" - -#: src/libslic3r/PrintConfig.cpp:1947 -msgid "Spacing between interface lines. Set zero to get a solid interface." -msgstr "接触面行之间的间距。设置为零以获得实心接触面。" - -#: src/libslic3r/PrintConfig.cpp:1956 -msgid "" -"Speed for printing support material interface layers. If expressed as " -"percentage (for example 50%) it will be calculated over support material " -"speed." -msgstr "" -"打印支撑材料接触面图层的速度。如果以百分比表示(例如 50%)它将在支撑材料速度" -"上计算。" - -#: src/libslic3r/PrintConfig.cpp:1965 -msgid "Pattern" -msgstr "模式" - -#: src/libslic3r/PrintConfig.cpp:1967 -msgid "Pattern used to generate support material." -msgstr "用于生成支撑材料的模式。" - -#: src/libslic3r/PrintConfig.cpp:1973 -msgid "Rectilinear grid" -msgstr "直线网格" - -#: src/libslic3r/PrintConfig.cpp:1979 -msgid "Pattern spacing" -msgstr "模式间距" - -#: src/libslic3r/PrintConfig.cpp:1981 -msgid "Spacing between support material lines." -msgstr "支撑材料线之间的间距。" - -#: src/libslic3r/PrintConfig.cpp:1990 -msgid "Speed for printing support material." -msgstr "打印支撑材料的速度。" - -#: src/libslic3r/PrintConfig.cpp:1997 -msgid "Synchronize with object layers" -msgstr "与对象图层同步" - -#: src/libslic3r/PrintConfig.cpp:1999 -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:2005 -msgid "Overhang threshold" -msgstr "悬垂阈值" - -#: src/libslic3r/PrintConfig.cpp:2007 -msgid "" -"Support material will not be generated for overhangs whose slope angle (90° " -"= vertical) is above the given threshold. In other words, this value " -"represent the most horizontal slope (measured from the horizontal plane) " -"that you can print without support material. Set to zero for automatic " -"detection (recommended)." -msgstr "" -"对于斜率(90° = 垂直)高于给定阈值的悬伸,不会生成支撑材料。换句话说,此值表" -"示无需支撑材料即可打印的最水平斜率(从水平平面测量)。设置为零以进行自动检测" -"(建议)。" - -#: src/libslic3r/PrintConfig.cpp:2019 -msgid "With sheath around the support" -msgstr "用护套围绕支撑" - -#: src/libslic3r/PrintConfig.cpp:2021 -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:2028 -msgid "" -"Extruder temperature for layers after the first one. Set this to zero to " -"disable temperature control commands in the output." -msgstr "第一个层之后的挤出机温度。将此设置为零以禁用输出中的温度控制命令。" - -#: src/libslic3r/PrintConfig.cpp:2036 -msgid "Detect thin walls" -msgstr "检测薄壁" - -#: src/libslic3r/PrintConfig.cpp:2038 -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:2044 -msgid "Threads" -msgstr "线程" - -#: src/libslic3r/PrintConfig.cpp:2045 -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:2057 -msgid "" -"This custom code is inserted at every extruder change. If you don't leave " -"this empty, you are expected to take care of the toolchange yourself - " -"PrusaSlicer will not output any other G-code to change the filament. You can " -"use placeholder variables for all Slic3r settings as well as " -"[previous_extruder] and [next_extruder], so e.g. the standard toolchange " -"command can be scripted as T[next_extruder]." -msgstr "" -"此自定义代码在每次挤出机更改时插入。如果不保留此空,则需要自行处理工具更改 - " -"PrusaSlicer 不会输出任何其他 G 代码来更改耗材丝。您可以将占位符变量用于所有 " -"Slic3r 设置以及 [previous_extruder] 和 [next_extruder],因此标准挤出机更改命" -"令可以编写为 T[next_extruder]." - -#: src/libslic3r/PrintConfig.cpp:2070 -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 " -"regions and get a smoother finish. If left zero, default extrusion width " -"will be used if set, otherwise nozzle diameter will be used. If expressed as " -"percentage (for example 90%) it will be computed over layer height." -msgstr "" -"此值设置为非零值,以设置用于顶曲面填充的手动挤出宽度。您可能需要使用较薄的挤" -"出来填充所有狭窄的区域,并获得更平滑的完成。如果左为零,则如果设置,将使用默" -"认挤出宽度,否则将使用喷嘴直径。如果以百分比表示(例如 90%)它将在层高度上计" -"算。" - -#: src/libslic3r/PrintConfig.cpp:2081 -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 " -"slow down this to get a nicer surface finish. This can be expressed as a " -"percentage (for example: 80%) over the solid infill speed above. Set to zero " -"for auto." -msgstr "" -"打印顶部实体图层的速度(它仅适用于最上面的外部图层,不适用于其内部实心图" -"层)。您可能需要减慢速度,以获得更好的表面光洁度。这可以表示为百分比(例如:" -"80%)超过上面的固体填充速度。为自动设置为零。" - -#: src/libslic3r/PrintConfig.cpp:2096 -msgid "Number of solid layers to generate on top surfaces." -msgstr "要在顶部曲面上生成的实心图层数。" - -#: src/libslic3r/PrintConfig.cpp:2097 -msgid "Top solid layers" -msgstr "顶部实心层" - -#: src/libslic3r/PrintConfig.cpp:2103 -msgid "Speed for travel moves (jumps between distant extrusion points)." -msgstr "打印移动的速度(在远处挤出点之间跳跃)。" - -#: src/libslic3r/PrintConfig.cpp:2111 -msgid "Use firmware retraction" -msgstr "使用固件回抽" - -#: src/libslic3r/PrintConfig.cpp:2112 -msgid "" -"This experimental setting uses G10 and G11 commands to have the firmware " -"handle the retraction. This is only supported in recent Marlin." -msgstr "" -"此实验设置使用 G10 和 G11 命令让固件处理回抽。这在最近Marlin中才得到支持。" - -#: src/libslic3r/PrintConfig.cpp:2118 -msgid "Use relative E distances" -msgstr "使用相对 E 距离" - -#: src/libslic3r/PrintConfig.cpp:2119 -msgid "" -"If your firmware requires relative E values, check this, otherwise leave it " -"unchecked. Most firmwares use absolute values." -msgstr "" -"如果您的固件需要相对的 E 值,请检查这一点,否则不要选中它。大多数固件使用绝对" -"值。" - -#: src/libslic3r/PrintConfig.cpp:2125 -msgid "Use volumetric E" -msgstr "使用体积 E" - -#: src/libslic3r/PrintConfig.cpp:2126 -msgid "" -"This experimental setting uses outputs the E values in cubic millimeters " -"instead of linear millimeters. If your firmware doesn't already know " -"filament diameter(s), you can put commands like 'M200 D[filament_diameter_0] " -"T0' in your start G-code in order to turn volumetric mode on and use the " -"filament diameter associated to the filament selected in Slic3r. This is " -"only supported in recent Marlin." -msgstr "" -"此实验设置使用以立方mm为单位的 E 值而不是线性mm。如果您的固件不知道耗材直径," -"您可以将诸如\"M200 D[filament_diameter_0] T0\"这样的命令放入起始 G 代码中,以" -"便打开体积模式并使用与 Slic3r 中选择的耗材丝相关的耗材丝直径。这在最近马林中" -"才得到支持。" - -#: src/libslic3r/PrintConfig.cpp:2136 -msgid "Enable variable layer height feature" -msgstr "启用可变图层高度特征" - -#: src/libslic3r/PrintConfig.cpp:2137 -msgid "" -"Some printers or printer setups may have difficulties printing with a " -"variable layer height. Enabled by default." -msgstr "" -"某些打印机或打印机设置在打印图层高度可变时可能遇到问题。默认情况下启用。" - -#: src/libslic3r/PrintConfig.cpp:2143 -msgid "Wipe while retracting" -msgstr "回抽时擦拭" - -#: src/libslic3r/PrintConfig.cpp:2144 -msgid "" -"This flag will move the nozzle while retracting to minimize the possible " -"blob on leaky extruders." -msgstr "此标志将在回抽时移动喷嘴,以尽量减少泄漏挤出器上可能出现的斑点。" - -#: src/libslic3r/PrintConfig.cpp:2151 -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:2157 -msgid "Purging volumes - load/unload volumes" -msgstr "清除量-加载/卸载量" - -#: src/libslic3r/PrintConfig.cpp:2158 -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:2164 -msgid "Purging volumes - matrix" -msgstr "清除量-矩阵" - -#: src/libslic3r/PrintConfig.cpp:2165 -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:2174 -msgid "Position X" -msgstr "横向位置X" - -#: src/libslic3r/PrintConfig.cpp:2175 -msgid "X coordinate of the left front corner of a wipe tower" -msgstr "擦料塔左前角的 X 坐标" - -#: src/libslic3r/PrintConfig.cpp:2181 -msgid "Position Y" -msgstr "纵向位置Y" - -#: src/libslic3r/PrintConfig.cpp:2182 -msgid "Y coordinate of the left front corner of a wipe tower" -msgstr "擦料塔左前角的 Y 坐标" - -#: src/libslic3r/PrintConfig.cpp:2189 -msgid "Width of a wipe tower" -msgstr "擦料塔的宽度" - -#: src/libslic3r/PrintConfig.cpp:2195 -msgid "Wipe tower rotation angle" -msgstr "擦料塔旋转角度" - -#: src/libslic3r/PrintConfig.cpp:2196 -msgid "Wipe tower rotation angle with respect to x-axis." -msgstr "相对于 x 轴擦料塔旋转角度。" - -#: src/libslic3r/PrintConfig.cpp:2203 -msgid "Wipe into this object's infill" -msgstr "擦入此物体的填充" - -#: src/libslic3r/PrintConfig.cpp:2204 -msgid "" -"Purging after toolchange will 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:2211 -msgid "Wipe into this object" -msgstr "擦除到此对象" - -#: src/libslic3r/PrintConfig.cpp:2212 -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:2218 -msgid "Maximal bridging distance" -msgstr "最大桥接距离" - -#: src/libslic3r/PrintConfig.cpp:2219 -msgid "Maximal distance between supports on sparse infill sections." -msgstr "稀疏填充部分上支撑之间的最大距离。" - -#: src/libslic3r/PrintConfig.cpp:2225 -msgid "XY Size Compensation" -msgstr "XY 尺寸补偿" - -#: src/libslic3r/PrintConfig.cpp:2227 -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 "" -"对象将在 XY 平面中按配置的值(负 = 向内、正 = 向外)进行增长/收缩。这对于微调" -"孔大小可能很有用。" - -#: src/libslic3r/PrintConfig.cpp:2235 -msgid "Z offset" -msgstr "Z 偏移" - -#: src/libslic3r/PrintConfig.cpp:2236 -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 " -"example, if your endstop zero actually leaves the nozzle 0.3mm far from the " -"print bed, set this to -0.3 (or fix your endstop)." -msgstr "" -"此值将从输出 G 代码中的所有 Z 坐标中添加(或减去)。它用于补偿损坏的 Z 端限位器" -"置:例如,如果限位器零实际离开喷嘴 0.3 mm远离构建板(打印床),将其设置为 " -"-0.3(或调整限位器)。" - -#: src/libslic3r/PrintConfig.cpp:2294 -msgid "Display width" -msgstr "显示宽度" - -#: src/libslic3r/PrintConfig.cpp:2295 -msgid "Width of the display" -msgstr "显示宽度" - -#: src/libslic3r/PrintConfig.cpp:2300 -msgid "Display height" -msgstr "显示高度" - -#: src/libslic3r/PrintConfig.cpp:2301 -msgid "Height of the display" -msgstr "显示高度" - -#: src/libslic3r/PrintConfig.cpp:2306 -msgid "Number of pixels in" -msgstr "像素点的数量" - -#: src/libslic3r/PrintConfig.cpp:2308 -msgid "Number of pixels in X" -msgstr "X 中的像素数" - -#: src/libslic3r/PrintConfig.cpp:2314 -msgid "Number of pixels in Y" -msgstr "Y 中的像素数" - -#: src/libslic3r/PrintConfig.cpp:2319 -msgid "Display horizontal mirroring" -msgstr "显示水平镜像" - -#: src/libslic3r/PrintConfig.cpp:2320 -msgid "Mirror horizontally" -msgstr "水平镜像" - -#: src/libslic3r/PrintConfig.cpp:2321 -msgid "Enable horizontal mirroring of output images" -msgstr "启用输出图像的水平镜像" - -#: src/libslic3r/PrintConfig.cpp:2326 -msgid "Display vertical mirroring" -msgstr "显示垂直镜像" - -#: src/libslic3r/PrintConfig.cpp:2327 -msgid "Mirror vertically" -msgstr "垂直镜像" - -#: src/libslic3r/PrintConfig.cpp:2328 -msgid "Enable vertical mirroring of output images" -msgstr "启用输出图像的垂直镜像" - -#: src/libslic3r/PrintConfig.cpp:2333 -msgid "Display orientation" -msgstr "显示方向" - -#: src/libslic3r/PrintConfig.cpp:2334 -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 "" -"在 SLA 打印机内设置实际的 LCD 显示方向。人像模式将翻转显示宽度和高度参数的含" -"义, 输出图像将旋转90度。" - -#: src/libslic3r/PrintConfig.cpp:2340 -msgid "Landscape" -msgstr "景观" - -#: src/libslic3r/PrintConfig.cpp:2341 -msgid "Portrait" -msgstr "肖像" - -#: src/libslic3r/PrintConfig.cpp:2346 -msgid "Fast" -msgstr "快" - -#: src/libslic3r/PrintConfig.cpp:2347 -msgid "Fast tilt" -msgstr "快速倾斜" - -#: src/libslic3r/PrintConfig.cpp:2348 -msgid "Time of the fast tilt" -msgstr "快速倾斜的时间" - -#: src/libslic3r/PrintConfig.cpp:2355 -msgid "Slow" -msgstr "慢" - -#: src/libslic3r/PrintConfig.cpp:2356 -msgid "Slow tilt" -msgstr "缓慢倾斜" - -#: src/libslic3r/PrintConfig.cpp:2357 -msgid "Time of the slow tilt" -msgstr "缓慢倾斜的时间" - -#: src/libslic3r/PrintConfig.cpp:2364 -msgid "Area fill" -msgstr "区域填充" - -#: src/libslic3r/PrintConfig.cpp:2365 -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 "" -"床面积的百分比。\n" -"如果打印区域超过指定值,\n" -"然后缓慢倾斜将被使用,否则 - 快速倾斜" - -#: src/libslic3r/PrintConfig.cpp:2372 src/libslic3r/PrintConfig.cpp:2373 -#: src/libslic3r/PrintConfig.cpp:2374 -msgid "Printer scaling correction" -msgstr "打印机缩放校正" - -#: src/libslic3r/PrintConfig.cpp:2380 src/libslic3r/PrintConfig.cpp:2381 -msgid "Printer absolute correction" -msgstr "打印机绝对校正" - -#: src/libslic3r/PrintConfig.cpp:2382 -msgid "" -"Will inflate or deflate the sliced 2D polygons according to the sign of the " -"correction." -msgstr "将根据校正的符号放大或收缩切片的 2D 多边形。" - -#: src/libslic3r/PrintConfig.cpp:2388 src/libslic3r/PrintConfig.cpp:2389 -msgid "Printer gamma correction" -msgstr "打印机伽玛校正" - -#: src/libslic3r/PrintConfig.cpp:2390 -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 "" -"这将对栅格化的 2D 多边形应用伽玛校正。伽玛值为零表示在中间的阈值阈值。此行为" -"消除了抗锯齿,而不会丢失多边形中的孔。" - -#: src/libslic3r/PrintConfig.cpp:2401 src/libslic3r/PrintConfig.cpp:2402 -msgid "Initial layer height" -msgstr "初始层高度" - -#: src/libslic3r/PrintConfig.cpp:2408 -msgid "Faded layers" -msgstr "褪色图层" - -#: src/libslic3r/PrintConfig.cpp:2409 -msgid "" -"Number of the layers needed for the exposure time fade from initial exposure " -"time to the exposure time" -msgstr "曝光时间所需的图层数从初始曝光时间到曝光时间逐渐淡入淡出" - -#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2417 -msgid "Minimum exposure time" -msgstr "最短曝光时间" - -#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2425 -msgid "Maximum exposure time" -msgstr "最大曝光时间" - -#: src/libslic3r/PrintConfig.cpp:2432 src/libslic3r/PrintConfig.cpp:2433 -msgid "Exposure time" -msgstr "曝光时间" - -#: src/libslic3r/PrintConfig.cpp:2439 src/libslic3r/PrintConfig.cpp:2440 -msgid "Minimum initial exposure time" -msgstr "最短初始暴露时间" - -#: src/libslic3r/PrintConfig.cpp:2447 src/libslic3r/PrintConfig.cpp:2448 -msgid "Maximum initial exposure time" -msgstr "最大初始曝光时间" - -#: src/libslic3r/PrintConfig.cpp:2455 src/libslic3r/PrintConfig.cpp:2456 -msgid "Initial exposure time" -msgstr "初始暴露时间" - -#: src/libslic3r/PrintConfig.cpp:2462 src/libslic3r/PrintConfig.cpp:2463 -msgid "Correction for expansion" -msgstr "扩展校正" - -#: src/libslic3r/PrintConfig.cpp:2469 -msgid "SLA print material notes" -msgstr "SLA 打印材料注释" - -#: src/libslic3r/PrintConfig.cpp:2470 -msgid "You can put your notes regarding the SLA print material here." -msgstr "您可以在此处放置有关 sla 打印材料的注释." - -#: src/libslic3r/PrintConfig.cpp:2478 src/libslic3r/PrintConfig.cpp:2489 -msgid "Default SLA material profile" -msgstr "默认 SLA 材料配置文件" - -#: src/libslic3r/PrintConfig.cpp:2500 -msgid "Generate supports" -msgstr "生成支撑" - -#: src/libslic3r/PrintConfig.cpp:2502 -msgid "Generate supports for the models" -msgstr "生成模型的支撑" - -#: src/libslic3r/PrintConfig.cpp:2507 -msgid "Support head front diameter" -msgstr "支撑头前直径" - -#: src/libslic3r/PrintConfig.cpp:2509 -msgid "Diameter of the pointing side of the head" -msgstr "头部指向侧的直径" - -#: src/libslic3r/PrintConfig.cpp:2516 -msgid "Support head penetration" -msgstr "支撑头穿透" - -#: src/libslic3r/PrintConfig.cpp:2518 -msgid "How much the pinhead has to penetrate the model surface" -msgstr "针头穿透模型表面的程度" - -#: src/libslic3r/PrintConfig.cpp:2525 -msgid "Support head width" -msgstr "支撑头宽度" - -#: src/libslic3r/PrintConfig.cpp:2527 -msgid "Width from the back sphere center to the front sphere center" -msgstr "从后球体中心到前球体中心的宽度" - -#: src/libslic3r/PrintConfig.cpp:2535 -msgid "Support pillar diameter" -msgstr "支撑柱直径" - -#: src/libslic3r/PrintConfig.cpp:2537 -msgid "Diameter in mm of the support pillars" -msgstr "支撑柱的直径以mm为单位" - -#: src/libslic3r/PrintConfig.cpp:2545 -msgid "Support pillar connection mode" -msgstr "支撑柱连接模式" - -#: src/libslic3r/PrintConfig.cpp:2546 -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:2554 -msgid "Zig-Zag" -msgstr "锯齿形" - -#: src/libslic3r/PrintConfig.cpp:2555 -msgid "Cross" -msgstr "交叉" - -#: src/libslic3r/PrintConfig.cpp:2556 -msgid "Dynamic" -msgstr "动态" - -#: src/libslic3r/PrintConfig.cpp:2568 -msgid "Pillar widening factor" -msgstr "支柱加宽系数" - -#: src/libslic3r/PrintConfig.cpp:2570 -msgid "" -"Merging bridges or pillars into another pillars can increase the radius. " -"Zero means no increase, one means full increase." -msgstr "" -"将桥梁或柱子合并到另一个柱子中可以增加半径。零意味着没有增加,1意味着全增加。" - -#: src/libslic3r/PrintConfig.cpp:2579 -msgid "Support base diameter" -msgstr "支撑基直径" - -#: src/libslic3r/PrintConfig.cpp:2581 -msgid "Diameter in mm of the pillar base" -msgstr "柱底直径以mm为单位" - -#: src/libslic3r/PrintConfig.cpp:2589 -msgid "Support base height" -msgstr "支撑基座高度" - -#: src/libslic3r/PrintConfig.cpp:2591 -msgid "The height of the pillar base cone" -msgstr "柱底锥的高度" - -#: src/libslic3r/PrintConfig.cpp:2598 -msgid "Support base safety distance" -msgstr "支撑基部安全距离" - -#: src/libslic3r/PrintConfig.cpp:2601 -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 "" -"柱基与模型的最小距离(以 mm 为单位)在零高程模式下有意义,在模型和焊盘之间插入根" -"据此参数的间隙。" - -#: src/libslic3r/PrintConfig.cpp:2611 -msgid "Critical angle" -msgstr "临界角度" - -#: src/libslic3r/PrintConfig.cpp:2613 -msgid "The default angle for connecting support sticks and junctions." -msgstr "用于连接支撑杆和结的默认角度。" - -#: src/libslic3r/PrintConfig.cpp:2621 -msgid "Max bridge length" -msgstr "最大桥长" - -#: src/libslic3r/PrintConfig.cpp:2623 -msgid "The max length of a bridge" -msgstr "搭桥的最大长度" - -#: src/libslic3r/PrintConfig.cpp:2630 -msgid "Max pillar linking distance" -msgstr "最大柱线链接距离" - -#: src/libslic3r/PrintConfig.cpp:2632 -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:2640 -msgid "Object elevation" -msgstr "对象高程" - -#: src/libslic3r/PrintConfig.cpp:2642 -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:2653 -msgid "This is a relative measure of support points density." -msgstr "这是支撑点密度的相对度量。" - -#: src/libslic3r/PrintConfig.cpp:2659 -msgid "Minimal distance of the support points" -msgstr "支撑点的最小距离" - -#: src/libslic3r/PrintConfig.cpp:2661 -msgid "No support points will be placed closer than this threshold." -msgstr "不会将任何支撑点放置在比此阈值更近的位置。" - -#: src/libslic3r/PrintConfig.cpp:2667 -msgid "Use pad" -msgstr "使用垫" - -#: src/libslic3r/PrintConfig.cpp:2669 -msgid "Add a pad underneath the supported model" -msgstr "在支撑模型下添加一个垫" - -#: src/libslic3r/PrintConfig.cpp:2674 -msgid "Pad wall thickness" -msgstr "垫壁厚度" - -#: src/libslic3r/PrintConfig.cpp:2676 -msgid "The thickness of the pad and its optional cavity walls." -msgstr "垫的厚度及其可选的腔壁。" - -#: src/libslic3r/PrintConfig.cpp:2684 -msgid "Pad wall height" -msgstr "垫墙高度" - -#: src/libslic3r/PrintConfig.cpp:2685 -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 " -"effect inside the cavity, which makes peeling the print off the vat foil " -"difficult." -msgstr "" -"定义垫腔深度。设置为零以禁用型腔。启用此功能时要小心,因为某些树脂可能在腔内产" -"生极端的吸力效果,这使得从桶箔上剥下打印件变得困难。" - -#: src/libslic3r/PrintConfig.cpp:2698 -msgid "Max merge distance" -msgstr "最大合并距离" - -#: src/libslic3r/PrintConfig.cpp:2700 -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:2720 -msgid "Pad wall slope" -msgstr "垫壁斜率" - -#: src/libslic3r/PrintConfig.cpp:2722 -msgid "" -"The slope of the pad wall relative to the bed plane. 90 degrees means " -"straight walls." -msgstr "垫壁相对于床平面的斜率。90 度表示直壁。" - -#: src/libslic3r/PrintConfig.cpp:2731 -msgid "Pad around object" -msgstr "对象周围填充" - -#: src/libslic3r/PrintConfig.cpp:2733 -msgid "Create pad around object and ignore the support elevation" -msgstr "在对象周围创建垫盘并忽略支撑高程" - -#: src/libslic3r/PrintConfig.cpp:2738 -msgid "Pad object gap" -msgstr "垫对象间隙" - -#: src/libslic3r/PrintConfig.cpp:2740 -msgid "" -"The gap between the object bottom and the generated pad in zero elevation " -"mode." -msgstr "在零高程模式下,对象底部和生成的垫盘之间的间隙。" - -#: src/libslic3r/PrintConfig.cpp:2749 -msgid "Pad object connector stride" -msgstr "垫对象连接器步长" - -#: src/libslic3r/PrintConfig.cpp:2751 -msgid "" -"Distance between two connector sticks which connect the object and the " -"generated pad." -msgstr "连接对象和生成的焊盘的两个连接器杆之间的距离。" - -#: src/libslic3r/PrintConfig.cpp:2758 -msgid "Pad object connector width" -msgstr "垫对象连接器宽度" - -#: src/libslic3r/PrintConfig.cpp:2760 -msgid "" -"Width of the connector sticks which connect the object and the generated pad." -msgstr "连接对象和生成的焊盘的连接器杆的宽度。" - -#: src/libslic3r/PrintConfig.cpp:2767 -msgid "Pad object connector penetration" -msgstr "垫对象连接器穿透" - -#: src/libslic3r/PrintConfig.cpp:2770 -msgid "How much should the tiny connectors penetrate into the model body." -msgstr "微型连接器应该渗透到模型主体中多少。" - -#: src/libslic3r/PrintConfig.cpp:3130 -msgid "Export OBJ" -msgstr "导出 OBJ" - -#: src/libslic3r/PrintConfig.cpp:3131 -msgid "Export the model(s) as OBJ." -msgstr "将模型导出为 OBJ。" - -#: src/libslic3r/PrintConfig.cpp:3142 -msgid "Export SLA" -msgstr "导出 SLA" - -#: src/libslic3r/PrintConfig.cpp:3143 -msgid "Slice the model and export SLA printing layers as PNG." -msgstr "将模型切片并导出 SLA 打印图层为 PNG。" - -#: src/libslic3r/PrintConfig.cpp:3148 -msgid "Export 3MF" -msgstr "导出 3MF" - -#: src/libslic3r/PrintConfig.cpp:3149 -msgid "Export the model(s) as 3MF." -msgstr "将模型导出为 3MF。" - -#: src/libslic3r/PrintConfig.cpp:3153 -msgid "Export AMF" -msgstr "导出 AMF" - -#: src/libslic3r/PrintConfig.cpp:3154 -msgid "Export the model(s) as AMF." -msgstr "将模型导出为 AMF。" - -#: src/libslic3r/PrintConfig.cpp:3158 -msgid "Export STL" -msgstr "导出STL Export STL" - -#: src/libslic3r/PrintConfig.cpp:3159 -msgid "Export the model(s) as STL." -msgstr "将模型导出为 STL。" - -#: src/libslic3r/PrintConfig.cpp:3164 -msgid "Slice the model and export toolpaths as G-code." -msgstr "切片模型并导出工具路径为 G 代码。" - -#: src/libslic3r/PrintConfig.cpp:3169 -msgid "Slice" -msgstr "切片" - -#: src/libslic3r/PrintConfig.cpp:3170 -msgid "" -"Slice the model as FFF or SLA based on the printer_technology configuration " -"value." -msgstr "根据 printer_technology 值将模型切片为 FFF 或 SLA。" - -#: src/libslic3r/PrintConfig.cpp:3175 -msgid "Help" -msgstr "帮助" - -#: src/libslic3r/PrintConfig.cpp:3176 -msgid "Show this help." -msgstr "显示此帮助。" - -#: src/libslic3r/PrintConfig.cpp:3181 -msgid "Help (FFF options)" -msgstr "帮助(FFF 选项)" - -#: src/libslic3r/PrintConfig.cpp:3182 -msgid "Show the full list of print/G-code configuration options." -msgstr "显示打印/G 代码配置选项的完整列表。" - -#: src/libslic3r/PrintConfig.cpp:3186 -msgid "Help (SLA options)" -msgstr "帮助(SLA 选项)" - -#: src/libslic3r/PrintConfig.cpp:3187 -msgid "Show the full list of SLA print configuration options." -msgstr "显示 SLA 打印配置选项的完整列表。" - -#: src/libslic3r/PrintConfig.cpp:3191 -msgid "Output Model Info" -msgstr "输出模型信息" - -#: src/libslic3r/PrintConfig.cpp:3192 -msgid "Write information about the model to the console." -msgstr "将有关模型的信息写入控制台。" - -#: src/libslic3r/PrintConfig.cpp:3196 -msgid "Save config file" -msgstr "保存配置文件" - -#: src/libslic3r/PrintConfig.cpp:3197 -msgid "Save configuration to the specified file." -msgstr "将配置保存到指定文件。" - -#: src/libslic3r/PrintConfig.cpp:3207 -msgid "Align XY" -msgstr "对齐 XY" - -#: src/libslic3r/PrintConfig.cpp:3208 -msgid "Align the model to the given point." -msgstr "将模型与给定点对齐。" - -#: src/libslic3r/PrintConfig.cpp:3213 -msgid "Cut model at the given Z." -msgstr "在给定的 Z 处切割模型。" - -#: src/libslic3r/PrintConfig.cpp:3234 -msgid "Center" -msgstr "居中" - -#: src/libslic3r/PrintConfig.cpp:3235 -msgid "Center the print around the given center." -msgstr "将打印居中,以给定的中心为中心。" - -#: src/libslic3r/PrintConfig.cpp:3239 -msgid "Don't arrange" -msgstr "不自动布局" - -#: src/libslic3r/PrintConfig.cpp:3240 -msgid "" -"Do not rearrange the given models before merging and keep their original XY " -"coordinates." -msgstr "在合并之前,不要重新布局给定的模型并保留其原始 XY 坐标。" - -#: src/libslic3r/PrintConfig.cpp:3243 -msgid "Duplicate" -msgstr "复制" - -#: src/libslic3r/PrintConfig.cpp:3244 -msgid "Multiply copies by this factor." -msgstr "生成乘以此数量的副本。" - -#: src/libslic3r/PrintConfig.cpp:3248 -msgid "Duplicate by grid" -msgstr "按网格复制" - -#: src/libslic3r/PrintConfig.cpp:3249 -msgid "Multiply copies by creating a grid." -msgstr "通过创建网格来创建副本。" - -#: src/libslic3r/PrintConfig.cpp:3252 -msgid "Merge" -msgstr "合并" - -#: src/libslic3r/PrintConfig.cpp:3253 -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:3258 -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:3262 -msgid "Rotation angle around the Z axis in degrees." -msgstr "围绕 Z 轴的旋转角度(以度表示)。" - -#: src/libslic3r/PrintConfig.cpp:3266 -msgid "Rotate around X" -msgstr "围绕 X 旋转" - -#: src/libslic3r/PrintConfig.cpp:3267 -msgid "Rotation angle around the X axis in degrees." -msgstr "围绕 X 轴的旋转角度(以度表示)。" - -#: src/libslic3r/PrintConfig.cpp:3271 -msgid "Rotate around Y" -msgstr "围绕 Y 旋转" - -#: src/libslic3r/PrintConfig.cpp:3272 -msgid "Rotation angle around the Y axis in degrees." -msgstr "围绕 Y 轴的旋转角度(以度表示)。" - -#: src/libslic3r/PrintConfig.cpp:3277 -msgid "Scaling factor or percentage." -msgstr "缩放因子或百分比。" - -#: src/libslic3r/PrintConfig.cpp:3282 -msgid "" -"Detect unconnected parts in the given model(s) and split them into separate " -"objects." -msgstr "检测给定模型中的未连接部件,并将它们拆分为单独的对象。" - -#: src/libslic3r/PrintConfig.cpp:3285 -msgid "Scale to Fit" -msgstr "缩放至合适" - -#: src/libslic3r/PrintConfig.cpp:3286 -msgid "Scale to fit the given volume." -msgstr "缩放以适合给定的空间。" - -#: src/libslic3r/PrintConfig.cpp:3295 -msgid "Ignore non-existent config files" -msgstr "忽略不存在的配置文件" - -#: src/libslic3r/PrintConfig.cpp:3296 -msgid "Do not fail if a file supplied to --load does not exist." -msgstr "如果提供给 --load 的文件不存在,不会报错失败。" - -#: src/libslic3r/PrintConfig.cpp:3299 -msgid "Load config file" -msgstr "加载配置文件" - -#: src/libslic3r/PrintConfig.cpp:3300 -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:3303 -msgid "Output File" -msgstr "输出文件" - -#: src/libslic3r/PrintConfig.cpp:3304 -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:3314 -msgid "Data directory" -msgstr "数据目录" - -#: src/libslic3r/PrintConfig.cpp:3315 -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:3318 -msgid "Logging level" -msgstr "日志级别" - -#: src/libslic3r/PrintConfig.cpp:3319 -msgid "" -"Messages with severity lower or eqal to the loglevel will be printed out. 0:" -"trace, 1:debug, 2:info, 3:warning, 4:error, 5:fatal" -msgstr "" -"严重性较低或 eqal 到日志级别的消息将被打印出来。0:跟踪, 1:调试, 2:信" -"息, 3:警告, 4:错误, 5:致命" - -#: src/libslic3r/PrintConfig.cpp:3324 -msgid "Render with a software renderer" -msgstr "使用软件渲染器渲染" - -#: src/libslic3r/PrintConfig.cpp:3325 -msgid "" -"Render with a software renderer. The bundled MESA software renderer is " -"loaded instead of the default OpenGL driver." -msgstr "" -"使用软件渲染器进行渲染。加载捆绑的 MESA 软件呈现器,而不是默认的 OpenGL 驱动程" -"序。" - -#: src/libslic3r/PrintObject.cpp:110 -msgid "Processing triangulated mesh" -msgstr "处理三角网格" - -#: src/libslic3r/PrintObject.cpp:141 -msgid "Generating perimeters" -msgstr "生成轮廓" - -#: src/libslic3r/PrintObject.cpp:251 -msgid "Preparing infill" -msgstr "准备填充" - -#: src/libslic3r/PrintObject.cpp:391 -msgid "Generating support material" -msgstr "生成支撑材料" - -#: src/libslic3r/GCode/PreviewData.cpp:160 -msgid "Mixed" -msgstr "混合" - -#: src/libslic3r/GCode/PreviewData.cpp:380 -msgid "Height (mm)" -msgstr "高度(mm)" - -#: src/libslic3r/GCode/PreviewData.cpp:382 -msgid "Width (mm)" -msgstr "宽度 (mm)" - -#: src/libslic3r/GCode/PreviewData.cpp:384 -msgid "Speed (mm/s)" -msgstr "回退速度(mm/s)" - -#: src/libslic3r/GCode/PreviewData.cpp:386 -msgid "Volumetric flow rate (mm3/s)" -msgstr "体积流量 (mm3/s)" - -#: src/libslic3r/GCode/PreviewData.cpp:477 -msgid "Default print color" -msgstr "默认打印颜色" - -#: src/libslic3r/GCode/PreviewData.cpp:484 -#, c-format -msgid "up to %.2f mm" -msgstr "高达 %.2f mm" - -#: src/libslic3r/GCode/PreviewData.cpp:488 -#, c-format -msgid "above %.2f mm" -msgstr "%.2f mm以上" - -#: src/libslic3r/GCode/PreviewData.cpp:493 -#, c-format -msgid "%.2f - %.2f mm" -msgstr "%.2f - %.2f mm" diff --git a/resources/localization/zh_tw/PrusaSlicer_zh_TW.po b/resources/localization/zh_tw/PrusaSlicer_zhtw.po similarity index 100% rename from resources/localization/zh_tw/PrusaSlicer_zh_TW.po rename to resources/localization/zh_tw/PrusaSlicer_zhtw.po diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index b2bd7f8c87e..81b1ca15fd4 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,14 +1,4 @@ -min_slic3r_version = 2.1.0-alpha0 -1.0.1 Updated MK3 firmware version check to 3.8.0, new soluble support profiles for 0.6mm nozzle diameter MMU2S printers. -1.0.0 Updated end G-code for the MMU2 profiles to lift the extruder at the end of print. Wipe tower bridging distance was made smaller for soluble supports. -1.0.0-beta1 Updated color for the ASA filaments to differ from the other filaments. Single extruder printers now have no extruder color assigned, obects and toolpaths will be colored with the color of the active filament. -1.0.0-beta0 Printer model checks in start G-codes, ASA filament profiles, limits on min / max SL1 exposition times -1.0.0-alpha2 Printer model and nozzle diameter check -1.0.0-alpha1 Added Prusament ASA profile -1.0.0-alpha0 Filament specific retract for PET and similar copolymers, and for FLEX min_slic3r_version = 1.42.0-alpha6 -0.8.5 Updated SL1 printer and material settings -0.8.4 Added Prusament ASA profile 0.8.3 FW version and SL1 materials update 0.8.2 FFF and SL1 settings update 0.8.1 Output settings and SLA materials update diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index 130913b43fd..7a3d7f02093 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -8,7 +8,7 @@ technologies = FFF; SLA # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 1.0.1 +config_version = 0.8.3 # Where to get the updates from? config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/ changelog_url = http://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -266,8 +266,6 @@ perimeter_extrusion_width = 0.65 solid_infill_extrusion_width = 0.65 top_infill_extrusion_width = 0.6 support_material_extrusion_width = 0.55 -support_material_contact_distance = 0.15 -support_material_xy_spacing = 80% output_filename_format = {input_filename_base}_{nozzle_diameter[0]}n_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode [print:*0.6nozzleMK3*] @@ -281,8 +279,6 @@ top_infill_extrusion_width = 0.6 support_material_extrusion_width = 0.55 bridge_flow_ratio = 0.95 bridge_speed = 25 -support_material_contact_distance = 0.15 -support_material_xy_spacing = 80% output_filename_format = {input_filename_base}_{nozzle_diameter[0]}n_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode [print:*soluble_support*] @@ -299,8 +295,7 @@ support_material_interface_spacing = 0.1 support_material_synchronize_layers = 1 support_material_threshold = 80 support_material_with_sheath = 1 -wipe_tower_bridging = 6 -support_material_interface_speed = 80% +wipe_tower_bridging = 8 # XXXXXXXXXXXXXXXXXXXX # XXX--- 0.05mm ---XXX @@ -764,27 +759,6 @@ perimeter_speed = 45 solid_infill_speed = 70 top_solid_infill_speed = 45 -[print:0.30mm SOLUBLE FULL 0.6 nozzle MK3] -inherits = 0.30mm QUALITY 0.6 nozzle MK3; *soluble_support* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and nozzle_diameter[0]==0.6 and num_extruders>1 -notes = Set your soluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -support_material_extruder = 5 -support_material_interface_extruder = 5 -support_material_speed = 40 -perimeter_speed = 40 -solid_infill_speed = 40 -top_infill_extrusion_width = 0.6 -support_material_extrusion_width = 0.6 -top_solid_infill_speed = 30 -support_material_xy_spacing = 80% - -[print:0.30mm SOLUBLE INTERFACE 0.6 nozzle MK3] -inherits = 0.30mm SOLUBLE FULL 0.6 nozzle MK3 -notes = Set your soluble extruder in Multiple Extruders > Support material/raft interface extruder -support_material_extruder = 0 -support_material_interface_layers = 3 -support_material_with_sheath = 0 - [print:0.30mm DRAFT MK3] inherits = *0.30mm*; *MK3* bottom_solid_layers = 3 @@ -806,7 +780,7 @@ infill_extrusion_width = 0.5 perimeter_extrusion_width = 0.5 solid_infill_extrusion_width = 0.5 top_infill_extrusion_width = 0.45 -support_material_extrusion_width = 0.38 +support_material_extrusion_width = 0.35 # XXXXXXXXXXXXXXXXXXXX # XXX--- 0.35mm ---XXX @@ -847,22 +821,20 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and # MK2 MMU # [print:0.35mm FAST sol full 0.6 nozzle] inherits = *0.35mm*; *0.6nozzle*; *soluble_support* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_model=="MK2SMM" and nozzle_diameter[0]==0.6 and num_extruders>1 +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.6 and num_extruders>1 external_perimeter_extrusion_width = 0.6 external_perimeter_speed = 30 -notes = Set your soluble extruder in Multiple Extruders > Support material/raft interface extruder +notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder perimeter_speed = 40 -support_material_speed = 40 -support_material_interface_layers = 2 +support_material_interface_layers = 3 support_material_xy_spacing = 120% -top_infill_extrusion_width = 0.6 -support_material_extrusion_width = 0.6 +top_infill_extrusion_width = 0.57 # MK2 MMU # [print:0.35mm FAST sol int 0.6 nozzle] inherits = 0.35mm FAST sol full 0.6 nozzle support_material_extruder = 0 -support_material_interface_layers = 3 +support_material_interface_layers = 2 support_material_with_sheath = 0 support_material_xy_spacing = 150% @@ -914,8 +886,8 @@ solid_infill_speed = 70 top_solid_infill_speed = 45 external_perimeter_extrusion_width = 0.7 perimeter_extrusion_width = 0.7 -infill_extrusion_width = 0.7 -solid_infill_extrusion_width = 0.7 +infill_extrusion_width = 0.72 +solid_infill_extrusion_width = 0.72 # XXXXXXXXXXXXXXXXXXXXXX # XXX----- MK2.5 ----XXX @@ -981,29 +953,6 @@ inherits = 0.35mm FAST compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.5.*/ and nozzle_diameter[0]==0.4 single_extruder_multi_material_priming = 0 -# MK2.5 MMU2 0.6 nozzle# -[print:0.35mm SOLUBLE FULL 0.6 nozzle MK2.5] -inherits = *0.35mm*; *0.6nozzle*; *soluble_support* -compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and printer_model!="MK2SMM" and nozzle_diameter[0]==0.6 and num_extruders>1 -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 30 -notes = Set your soluble extruder in Multiple Extruders > Support material/raft interface extruder -perimeter_speed = 40 -support_material_speed = 40 -support_material_interface_layers = 2 -support_material_xy_spacing = 80% -support_material_extruder = 5 -support_material_interface_extruder = 5 -top_infill_extrusion_width = 0.6 -support_material_extrusion_width = 0.6 - -[print:0.35mm SOLUBLE INTERFACE 0.6 nozzle MK2.5] -inherits = 0.35mm SOLUBLE FULL 0.6 nozzle MK2.5 -support_material_extruder = 0 -support_material_interface_layers = 3 -support_material_with_sheath = 0 -support_material_xy_spacing = 80% - # XXXXXXxxXXXXXXXXXXXXXX # XXX--- filament ---XXX # XXXXXXXXxxXXXXXXXXXXXX @@ -1070,22 +1019,12 @@ max_fan_speed = 50 min_fan_speed = 30 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{elsif nozzle_diameter[0]==0.6}24{else}45{endif} ; Filament gcode" temperature = 240 -filament_retract_length = 1.4 -filament_retract_lift = 0.2 -compatible_printers_condition = printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:*PET06*] inherits = *PET* -compatible_printers_condition = nozzle_diameter[0]==0.6 and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) +compatible_printers_condition = nozzle_diameter[0]==0.6 and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) filament_max_volumetric_speed = 15 -[filament:*PETMMU1*] -inherits = *PET* -filament_retract_length = nil -filament_retract_speed = nil -filament_retract_lift = 0.2 -compatible_printers_condition = printer_model=="MK2SMM" - [filament:*ABS*] inherits = *common* bed_temperature = 110 @@ -1110,23 +1049,21 @@ inherits = *common* bed_temperature = 50 bridge_fan_speed = 100 # For now, all but selected filaments are disabled for the MMU 2.0 -compatible_printers_condition = nozzle_diameter[0]>0.35 and printer_model!="MK2SMM" and num_extruders==1 && ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and single_extruder_multi_material) +compatible_printers_condition = nozzle_diameter[0]>0.35 and num_extruders==1 && ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and single_extruder_multi_material) cooling = 0 disable_fan_first_layers = 1 extrusion_multiplier = 1.2 fan_always_on = 0 fan_below_layer_time = 100 -filament_colour = #008000 +filament_colour = #00CA0A filament_max_volumetric_speed = 1.5 filament_type = FLEX first_layer_bed_temperature = 50 first_layer_temperature = 240 max_fan_speed = 90 min_fan_speed = 70 -start_filament_gcode = "M900 K0"; Filament gcode" +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 240 -filament_retract_length = 0.4 -filament_retract_lift = 0 [filament:ColorFabb Brass Bronze] inherits = *PLA* @@ -1197,7 +1134,7 @@ temperature = 270 [filament:ColorFabb XT-CF20] inherits = *PET* -compatible_printers_condition = nozzle_diameter[0]>0.35 and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) +compatible_printers_condition = nozzle_diameter[0]>0.35 and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) extrusion_multiplier = 1.2 filament_cost = 80.65 filament_density = 1.35 @@ -1207,8 +1144,6 @@ first_layer_bed_temperature = 90 first_layer_temperature = 260 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" temperature = 260 -filament_retract_length = nil -filament_retract_lift = 0.2 [filament:ColorFabb nGen] inherits = *PET* @@ -1238,15 +1173,13 @@ first_layer_temperature = 260 max_fan_speed = 35 min_fan_speed = 20 temperature = 260 -filament_retract_length = nil -filament_retract_lift = 0 -compatible_printers_condition = nozzle_diameter[0]>0.35 and num_extruders==1 && ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and single_extruder_multi_material) [filament:E3D Edge] inherits = *PET* filament_cost = 56.9 filament_density = 1.26 filament_type = EDGE +filament_notes = "List of manufacturers tested with standard PET print settings:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladec PETG" [filament:E3D PC-ABS] inherits = *ABS* @@ -1266,40 +1199,17 @@ temperature = 240 [filament:Fillamentum ASA] inherits = *ABS* filament_cost = 38.7 -filament_density = 1.07 +filament_density = 1.04 fan_always_on = 1 -cooling = 1 -min_fan_speed = 20 -max_fan_speed = 20 -min_print_speed = 15 -slowdown_below_layer_time = 15 first_layer_temperature = 265 temperature = 265 filament_type = ASA -[filament:Prusament ASA] -inherits = *ABS* -filament_cost = 35.28 -filament_density = 1.07 -fan_always_on = 1 -first_layer_temperature = 260 -first_layer_bed_temperature = 105 -temperature = 260 -bed_temperature = 110 -cooling = 1 -min_fan_speed = 20 -max_fan_speed = 20 -min_print_speed = 15 -slowdown_below_layer_time = 15 -disable_fan_first_layers = 4 -filament_type = ASA -filament_colour = #FFF2EC -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{elsif nozzle_diameter[0]==0.6}12{else}20{endif} ; Filament gcode" - -[filament:Fillamentum CPE] +[filament:Fillamentum CPE HG100 HM100] inherits = *PET* filament_cost = 54.1 filament_density = 1.25 +filament_notes = "CPE HG100 , CPE HM100" filament_type = CPE first_layer_bed_temperature = 90 first_layer_temperature = 275 @@ -1338,15 +1248,6 @@ filament_cost = 25.4 filament_density = 1.24 filament_notes = "List of materials tested with standard PLA print settings:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladec PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -[filament:Generic FLEX] -inherits = *FLEX* -filament_cost = 82 -filament_density = 1.22 -filament_max_volumetric_speed = 1.2 -filament_retract_length = 0 -filament_retract_speed = nil -filament_retract_lift = nil - [filament:Polymaker PC-Max] inherits = *ABS* filament_cost = 77.3 @@ -1365,11 +1266,11 @@ filament_density = 1.23 cooling = 0 fan_always_on = 0 filament_colour = #FFFFD7 -filament_max_volumetric_speed = 3.8 +filament_max_volumetric_speed = 4 filament_notes = "List of materials tested with standard PVA print settings:\n\nPrimaSelect PVA+\nICE FILAMENTS PVA 'NAUGHTY NATURAL'" filament_ramming_parameters = "120 100 8.3871 8.6129 8.93548 9.22581 9.48387 9.70968 9.87097 10.0323 10.2258 10.4194 10.6452 10.8065| 0.05 8.34193 0.45 8.73548 0.95 9.34836 1.45 9.78385 1.95 10.0871 2.45 10.5161 2.95 10.8903 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_soluble = 1 -filament_type = PVA +filament_type = PLA first_layer_temperature = 195 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 195 @@ -1396,28 +1297,6 @@ filament_unloading_speed = 20 [filament:Generic ABS MMU2] inherits = *ABS MMU2* -[filament:Prusament ASA MMU2] -inherits = *ABS MMU2* -filament_cost = 35.28 -filament_density = 1.07 -fan_always_on = 1 -first_layer_temperature = 260 -first_layer_bed_temperature = 105 -temperature = 260 -bed_temperature = 110 -cooling = 1 -min_fan_speed = 20 -max_fan_speed = 20 -min_print_speed = 15 -slowdown_below_layer_time = 15 -disable_fan_first_layers = 4 -filament_cooling_final_speed = 2 -filament_cooling_initial_speed = 3 -filament_cooling_moves = 1 -filament_type = ASA -filament_colour = #FFF2EC -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{elsif nozzle_diameter[0]==0.6}12{else}20{endif} ; Filament gcode" - [filament:Prusa ABS MMU2] inherits = *ABS MMU2* @@ -1444,7 +1323,7 @@ inherits = *PET* filament_cost = 27.82 filament_density = 1.27 filament_notes = "List of manufacturers tested with standard PET print settings:\n\nE3D Edge\nPlasty Mladec PETG" -compatible_printers_condition = nozzle_diameter[0]!=0.6 and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) +compatible_printers_condition = nozzle_diameter[0]!=0.6 and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Prusament PETG] inherits = *PET* @@ -1453,7 +1332,7 @@ temperature = 250 filament_cost = 24.99 filament_density = 1.27 filament_type = PETG -compatible_printers_condition = nozzle_diameter[0]!=0.6 and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) +compatible_printers_condition = nozzle_diameter[0]!=0.6 and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Prusa PET 0.6 nozzle] inherits = *PET06* @@ -1471,7 +1350,7 @@ filament_type = PETG [filament:*PET MMU2*] inherits = Prusa PET -compatible_printers_condition = nozzle_diameter[0]!=0.6 and printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material +compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material temperature = 230 first_layer_temperature = 230 filament_cooling_final_speed = 1 @@ -1485,13 +1364,6 @@ filament_unload_time = 12 filament_unloading_speed = 20 filament_unloading_speed_start = 120 filament_loading_speed_start = 19 -filament_retract_length = 1.4 -filament_retract_lift = 0.2 - -[filament:*PET MMU2 06*] -inherits = *PET MMU2* -compatible_printers_condition = nozzle_diameter[0]==0.6 and printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material -filament_max_volumetric_speed = 13 [filament:Generic PET MMU2] inherits = *PET MMU2* @@ -1503,16 +1375,6 @@ inherits = *PET MMU2* inherits = *PET MMU2* filament_type = PETG -[filament:Generic PET MMU2 0.6 nozzle] -inherits = *PET MMU2 06* - -[filament:Prusa PET MMU2 0.6 nozzle] -inherits = *PET MMU2 06* - -[filament:Prusament PETG MMU2 0.6 nozzle] -inherits = *PET MMU2 06* -filament_type = PETG - [filament:Prusa PLA] inherits = *PLA* filament_cost = 25.4 @@ -1555,7 +1417,6 @@ inherits = *PLA MMU2* inherits = *FLEX* filament_cost = 82 filament_density = 1.22 -filament_max_volumetric_speed = 1.35 [filament:Taulman Bridge] inherits = *common* @@ -1606,7 +1467,7 @@ filament_colour = #FFFFD7 filament_max_volumetric_speed = 4 filament_notes = "List of materials tested with standard PVA print settings:\n\nVerbatim BVOH" filament_soluble = 1 -filament_type = PVA +filament_type = PLA first_layer_bed_temperature = 60 first_layer_temperature = 215 max_fan_speed = 100 @@ -1623,7 +1484,7 @@ first_layer_temperature = 200 filament_cooling_final_speed = 1 filament_cooling_initial_speed = 2 filament_max_volumetric_speed = 4 -filament_type = PVA +filament_type = PLA filament_cooling_moves = 1 filament_load_time = 15 filament_loading_speed = 14 @@ -1652,13 +1513,13 @@ filament_diameter = 1.75 filament_load_time = 15 filament_loading_speed = 14 filament_loading_speed_start = 19 -filament_max_volumetric_speed = 3.8 -filament_minimal_purge_on_wipe_tower = 15 +filament_max_volumetric_speed = 4 +filament_minimal_purge_on_wipe_tower = 5 filament_notes = "List of materials tested with standard PVA print settings:\n\nPrimaSelect PVA+" filament_ramming_parameters = "120 110 3.83871 3.90323 3.96774 4.03226 4.09677 4.19355 4.3871 4.83871 5.67742 6.93548 8.54839 10.3226 11.9677 13.2581 14.129 14.5806| 0.05 3.8258 0.45 3.89676 0.95 4.05807 1.45 4.23548 1.95 5.18386 2.45 7.80651 2.95 11.5356 3.45 13.9872 3.95 14.7613 4.45 7.6 4.95 7.6" filament_soluble = 1 filament_toolchange_delay = 0 -filament_type = PVA +filament_type = PLA filament_unload_time = 12 filament_unloading_speed = 20 filament_unloading_speed_start = 100 @@ -1693,130 +1554,6 @@ min_fan_speed = 100 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" temperature = 220 -## Filaments MMU1 - -[filament:ColorFabb HT MMU1] -inherits = *PETMMU1* -bed_temperature = 110 -bridge_fan_speed = 30 -cooling = 1 -disable_fan_first_layers = 3 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_cost = 58.66 -filament_density = 1.18 -first_layer_bed_temperature = 105 -first_layer_temperature = 270 -max_fan_speed = 20 -min_fan_speed = 10 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 270 - -[filament:ColorFabb XT MMU1] -inherits = *PETMMU1* -filament_type = PET -filament_cost = 62.9 -filament_density = 1.27 -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -temperature = 270 - -[filament:ColorFabb XT-CF20 MMU1] -inherits = *PETMMU1* -compatible_printers_condition = nozzle_diameter[0]>0.35 and printer_model=="MK2SMM" -extrusion_multiplier = 1.2 -filament_cost = 80.65 -filament_density = 1.35 -filament_colour = #804040 -filament_max_volumetric_speed = 1 -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 260 - -[filament:ColorFabb nGen MMU1] -inherits = *PETMMU1* -filament_cost = 21.2 -filament_density = 1.2 -bridge_fan_speed = 40 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_type = NGEN -first_layer_temperature = 240 -max_fan_speed = 35 -min_fan_speed = 20 - -[filament:E3D Edge MMU1] -inherits = *PETMMU1* -filament_cost = 56.9 -filament_density = 1.26 -filament_type = EDGE -filament_notes = "List of manufacturers tested with standard PET print settings:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladec PETG" - -[filament:Fillamentum CPE MMU1] -inherits = *PETMMU1* -filament_cost = 54.1 -filament_density = 1.25 -filament_type = CPE -first_layer_bed_temperature = 90 -first_layer_temperature = 275 -max_fan_speed = 50 -min_fan_speed = 50 -temperature = 275 - -[filament:Generic PET MMU1] -inherits = *PETMMU1* -filament_cost = 27.82 -filament_density = 1.27 -filament_notes = "List of manufacturers tested with standard PET print settings:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladec PETG" - -[filament:Prusa PET MMU1] -inherits = *PETMMU1* -filament_cost = 27.82 -filament_density = 1.27 -filament_notes = "List of manufacturers tested with standard PET print settings:\n\nE3D Edge\nPlasty Mladec PETG" - -[filament:Prusament PETG MMU1] -inherits = *PETMMU1* -first_layer_temperature = 240 -temperature = 250 -filament_cost = 24.99 -filament_density = 1.27 -filament_type = PETG - -[filament:Taulman T-Glase MMU1] -inherits = *PETMMU1* -filament_cost = 40 -filament_density = 1.27 -bridge_fan_speed = 40 -cooling = 0 -fan_always_on = 0 -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" - -[filament:SemiFlex or Flexfill 98A MMU1] -inherits = *FLEX* -filament_cost = 82 -filament_density = 1.22 -filament_max_volumetric_speed = 1.35 -filament_retract_length = nil -filament_retract_speed = nil -filament_retract_lift = nil -compatible_printers_condition = printer_model=="MK2SMM" - -[filament:Generic FLEX MMU1] -inherits = *FLEX* -filament_cost = 82 -filament_density = 1.22 -filament_max_volumetric_speed = 1.2 -filament_retract_length = 0 -filament_retract_speed = nil -filament_retract_lift = nil -compatible_printers_condition = printer_model=="MK2SMM" - [sla_print:*common*] compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_SL1.*/ layer_height = 0.05 @@ -1921,37 +1658,37 @@ initial_exposure_time = 100 [sla_material:Prusa Orange Tough 0.025] inherits = *common 0.025* exposure_time = 6 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Grey Tough 0.025] inherits = *common 0.025* exposure_time = 7 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Azure Blue Tough 0.025] inherits = *common 0.025* exposure_time = 7 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Maroon Tough 0.025] inherits = *common 0.025* exposure_time = 6 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Beige Tough 0.025] inherits = *common 0.025* exposure_time = 6 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Pink Tough 0.025] inherits = *common 0.025* exposure_time = 7 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa White Tough 0.025] inherits = *common 0.025* exposure_time = 6.5 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Transparent Tough 0.025] inherits = *common 0.025* @@ -1966,7 +1703,7 @@ initial_exposure_time = 35 ## [sla_material:Prusa Transparent Green Tough 0.025] ## inherits = *common 0.025* ## exposure_time = 5 -## initial_exposure_time = 35 +## initial_exposure_time = 30 ########### Materials 0.05 @@ -2085,42 +1822,42 @@ initial_exposure_time = 30 [sla_material:Prusa Beige Tough 0.05] inherits = *common 0.05* exposure_time = 7 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Orange Tough 0.05] inherits = *common 0.05* exposure_time = 7.5 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Grey Tough 0.05] inherits = *common 0.05* exposure_time = 8.5 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Black Tough 0.05] inherits = *common 0.05* exposure_time = 6 -initial_exposure_time = 35 +initial_exposure_time = 30 ## [sla_material:Prusa Beige Super Low Odor 0.05] ## inherits = *common 0.05* ## exposure_time = 7.5 -## initial_exposure_time = 35 +## initial_exposure_time = 30 ## [sla_material:Prusa White Super Low Odor 0.05] ## inherits = *common 0.05* ## exposure_time = 6.5 -## initial_exposure_time = 35 +## initial_exposure_time = 30 ## [sla_material:Prusa Grey Super Low Odor 0.05] ## inherits = *common 0.05* ## exposure_time = 6.5 -## initial_exposure_time = 35 +## initial_exposure_time = 30 ## [sla_material:Prusa Black High Tenacity 0.05] ## inherits = *common 0.05* ## exposure_time = 7 -## initial_exposure_time = 35 +## initial_exposure_time = 30 [sla_material:Prusa Green Casting 0.05] inherits = *common 0.05* @@ -2130,37 +1867,37 @@ initial_exposure_time = 40 ## [sla_material:Prusa Yellow Solid 0.05] ## inherits = *common 0.05* ## exposure_time = 7 -## initial_exposure_time = 35 +## initial_exposure_time = 30 [sla_material:Prusa White Tough 0.05] inherits = *common 0.05* exposure_time = 7.5 -initial_exposure_time = 35 +initial_exposure_time = 30 ## [sla_material:Prusa Transparent Green Tough 0.05] ## inherits = *common 0.05* ## exposure_time = 6 -## initial_exposure_time = 35 +## initial_exposure_time = 30 [sla_material:Prusa Transparent Red Tough 0.05] inherits = *common 0.05* exposure_time = 6 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Maroon Tough 0.05] inherits = *common 0.05* exposure_time = 7.5 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Pink Tough 0.05] inherits = *common 0.05* exposure_time = 8 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Azure Blue Tough 0.05] inherits = *common 0.05* exposure_time = 8 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Transparent Tough 0.05] inherits = *common 0.05* @@ -2170,7 +1907,7 @@ initial_exposure_time = 15 ## [sla_material:Prusa Yellow Flexible 0.05] ## inherits = *common 0.05* ## exposure_time = 9 -## initial_exposure_time = 35 +## initial_exposure_time = 30 ## [sla_material:Prusa Clear Flexible 0.05] ## inherits = *common 0.05* @@ -2180,29 +1917,29 @@ initial_exposure_time = 15 ## [sla_material:Prusa White Flexible 0.05] ## inherits = *common 0.05* ## exposure_time = 9 -## initial_exposure_time = 35 +## initial_exposure_time = 30 ## [sla_material:Prusa Blue Flexible 0.05] ## inherits = *common 0.05* ## exposure_time = 9 -## initial_exposure_time = 35 +## initial_exposure_time = 30 ## [sla_material:Prusa Black Flexible 0.05] ## inherits = *common 0.05* ## exposure_time = 9 -## initial_exposure_time = 35 +## initial_exposure_time = 30 ## [sla_material:Prusa Red Flexible 0.05] ## inherits = *common 0.05* ## exposure_time = 9 -## initial_exposure_time = 35 +## initial_exposure_time = 30 ########### Materials 0.035 [sla_material:Prusa Orange Tough 0.035] inherits = *common 0.035* exposure_time = 6 -initial_exposure_time = 35 +initial_exposure_time = 30 ########### Materials 0.1 @@ -2244,7 +1981,7 @@ initial_exposure_time = 55 [sla_material:Prusa Transparent Tough 0.1] inherits = *common 0.1* exposure_time = 8 -initial_exposure_time = 35 +initial_exposure_time = 30 [sla_material:Prusa Green Casting 0.1] inherits = *common 0.1* @@ -2258,6 +1995,7 @@ before_layer_gcode = ;BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\n\n between_objects_gcode = deretract_speed = 0 end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors +extruder_colour = #FFFF00 extruder_offset = 0x0 gcode_flavor = marlin silent_mode = 0 @@ -2301,7 +2039,7 @@ retract_speed = 35 serial_port = serial_speed = 250000 single_extruder_multi_material = 0 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.2.3 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting] ; MK2 firmware only supports the old M204 format\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 +start_gcode = M115 U3.2.3 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting] ; MK2 firmware only supports the old M204 format\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 toolchange_gcode = use_firmware_retraction = 0 use_relative_e_distances = 1 @@ -2338,7 +2076,7 @@ printer_model = MK2SMM inherits = *multimaterial* end_gcode = G1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors\n\n printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.2.3 ; tell printer latest fw version\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting] ; MK2 firmware only supports the old M204 format\n; Start G-Code sequence START\nT?\nM104 S[first_layer_temperature]\nM140 S[first_layer_bed_temperature]\nM109 S[first_layer_temperature]\nM190 S[first_layer_bed_temperature]\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100\nM92 E140\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG92 E0.0 +start_gcode = M115 U3.2.3 ; tell printer latest fw version\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting] ; MK2 firmware only supports the old M204 format\n; Start G-Code sequence START\nT?\nM104 S[first_layer_temperature]\nM140 S[first_layer_bed_temperature]\nM109 S[first_layer_temperature]\nM190 S[first_layer_bed_temperature]\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100\nM92 E140\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG92 E0.0 default_print_profile = 0.15mm OPTIMAL [printer:*mm-multi*] @@ -2348,7 +2086,7 @@ end_gcode = {if not has_wipe_tower}\n; Pull the filament into the cooling tubes. extruder_colour = #FFAA55;#E37BA0;#4ECDD3;#FB7259 nozzle_diameter = 0.4,0.4,0.4,0.4 printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.2.3 ; tell printer latest fw version\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting] ; MK2 firmware only supports the old M204 format\n; Start G-Code sequence START\nT[initial_tool]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100 ; set max feedrate\nM92 E140 ; E-steps per filament milimeter\n{if not has_single_extruder_multi_material_priming}\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\n{endif}\nG92 E0.0 +start_gcode = M115 U3.2.3 ; tell printer latest fw version\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting] ; MK2 firmware only supports the old M204 format\n; Start G-Code sequence START\nT[initial_tool]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100 ; set max feedrate\nM92 E140 ; E-steps per filament milimeter\n{if not has_single_extruder_multi_material_priming}\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\n{endif}\nG92 E0.0 default_print_profile = 0.15mm OPTIMAL # XXXXXXXXXXXXXXXXX @@ -2416,19 +2154,19 @@ min_layer_height = 0.1 inherits = Original Prusa i3 MK2S printer_model = MK2.5 remaining_times = 1 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 [printer:Original Prusa i3 MK2.5 0.25 nozzle] inherits = Original Prusa i3 MK2S 0.25 nozzle printer_model = MK2.5 remaining_times = 1 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 [printer:Original Prusa i3 MK2.5 0.6 nozzle] inherits = Original Prusa i3 MK2S 0.6 nozzle printer_model = MK2.5 remaining_times = 1 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 [printer:Original Prusa i3 MK2.5 MMU2 Single] inherits = Original Prusa i3 MK2.5; *mm2* @@ -2457,8 +2195,8 @@ machine_min_travel_rate = 0 default_print_profile = 0.15mm OPTIMAL MK2.5 default_filament_profile = Prusament PLA printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2.5\n -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\n; select extruder\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; load to nozzle\nTc\n; purge line\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n -end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\n; select extruder\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; load to nozzle\nTc\n; purge line\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n +end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors [printer:Original Prusa i3 MK2.5 MMU2 Single 0.6 nozzle] inherits = Original Prusa i3 MK2.5S MMU2S Single 0.6 nozzle @@ -2499,23 +2237,23 @@ single_extruder_multi_material = 1 # to be defined explicitely. nozzle_diameter = 0.4,0.4,0.4,0.4,0.4 extruder_colour = #FF8000;#DB5182;#00FFFF;#FF4F4F;#9FFF9F -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG21 ; set units to millimeters\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E32.0 F1073.0\nG1 X5.0 E32.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\nG92 E0.0\n +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG21 ; set units to millimeters\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E32.0 F1073.0\nG1 X5.0 E32.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\nG92 E0.0\n end_gcode = {if has_wipe_tower}\nG1 E-15.0000 F3000\n{else}\nG1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n{endif}\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors\n [printer:Original Prusa i3 MK2.5S] inherits = Original Prusa i3 MK2.5 printer_model = MK2.5S -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 [printer:Original Prusa i3 MK2.5S 0.25 nozzle] inherits = Original Prusa i3 MK2.5 0.25 nozzle printer_model = MK2.5S -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 [printer:Original Prusa i3 MK2.5S 0.6 nozzle] inherits = Original Prusa i3 MK2.5 0.6 nozzle printer_model = MK2.5S -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 [printer:Original Prusa i3 MK2.5S MMU2S Single] inherits = Original Prusa i3 MK2.5; *mm2s* @@ -2544,8 +2282,8 @@ machine_min_travel_rate = 0 default_print_profile = 0.15mm OPTIMAL MK2.5 default_filament_profile = Prusament PLA printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2.5\n -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n -end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n +end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors [printer:Original Prusa i3 MK2.5S MMU2S Single 0.6 nozzle] inherits = Original Prusa i3 MK2.5S MMU2S Single @@ -2564,7 +2302,7 @@ min_layer_height = 0.05 nozzle_diameter = 0.25 printer_variant = 0.25 default_print_profile = 0.10mm DETAIL 0.25 nozzle -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F1400.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F1400.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n [printer:Original Prusa i3 MK2.5S MMU2S] inherits = Original Prusa i3 MK2.5; *mm2s* @@ -2597,24 +2335,9 @@ single_extruder_multi_material = 1 # to be defined explicitely. nozzle_diameter = 0.4,0.4,0.4,0.4,0.4 extruder_colour = #FF8000;#DB5182;#00FFFF;#FF4F4F;#9FFF9F -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG21 ; set units to millimeters\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E29.0 F1073.0\nG1 X5.0 E29.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\nG92 E0.0\n +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG21 ; set units to millimeters\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E29.0 F1073.0\nG1 X5.0 E29.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\nG92 E0.0\n end_gcode = {if has_wipe_tower}\nG1 E-15.0000 F3000\n{else}\nG1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n{endif}\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors\n -[printer:Original Prusa i3 MK2.5S MMU2S 0.6 nozzle] -inherits = Original Prusa i3 MK2.5S MMU2S -nozzle_diameter = 0.6,0.6,0.6,0.6,0.6 -max_layer_height = 0.40 -min_layer_height = 0.15 -printer_variant = 0.6 -default_print_profile = 0.20mm NORMAL 0.6 nozzle - -[printer:Original Prusa i3 MK2.5 MMU2 0.6 nozzle] -inherits = Original Prusa i3 MK2.5 MMU2 -nozzle_diameter = 0.6,0.6,0.6,0.6,0.6 -max_layer_height = 0.40 -min_layer_height = 0.15 -printer_variant = 0.6 -default_print_profile = 0.20mm NORMAL 0.6 nozzle # XXXXXXXXXXXXXXXXX # XXX--- MK3 ---XXX @@ -2644,7 +2367,7 @@ remaining_times = 1 printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n retract_lift_below = 209 max_print_height = 210 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} printer_model = MK3 default_print_profile = 0.15mm QUALITY MK3 @@ -2654,7 +2377,7 @@ nozzle_diameter = 0.25 max_layer_height = 0.15 min_layer_height = 0.05 printer_variant = 0.25 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E8.0 F700.0 ; intro line\nG1 X100.0 E12.5 F700.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E8.0 F700.0 ; intro line\nG1 X100.0 E12.5 F700.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} default_print_profile = 0.10mm DETAIL 0.25 nozzle MK3 [printer:Original Prusa i3 MK3 0.6 nozzle] @@ -2668,17 +2391,17 @@ default_print_profile = 0.30mm QUALITY 0.6 nozzle MK3 [printer:Original Prusa i3 MK3S] inherits = Original Prusa i3 MK3 printer_model = MK3S -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} [printer:Original Prusa i3 MK3S 0.25 nozzle] inherits = Original Prusa i3 MK3 0.25 nozzle printer_model = MK3S -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E8.0 F700.0 ; intro line\nG1 X100.0 E12.5 F700.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E8.0 F700.0 ; intro line\nG1 X100.0 E12.5 F700.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} [printer:Original Prusa i3 MK3S 0.6 nozzle] inherits = Original Prusa i3 MK3 0.6 nozzle printer_model = MK3S -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height<0.075}100{else}95{endif} [printer:*mm2*] inherits = Original Prusa i3 MK3 @@ -2708,8 +2431,8 @@ default_filament_profile = Prusament PLA MMU2 inherits = *mm2* single_extruder_multi_material = 0 default_filament_profile = Prusament PLA -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n -end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n +end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors [printer:Original Prusa i3 MK3 MMU2 Single 0.6 nozzle] inherits = Original Prusa i3 MK3 MMU2 Single @@ -2727,7 +2450,7 @@ nozzle_diameter = 0.25 max_layer_height = 0.15 min_layer_height = 0.05 printer_variant = 0.25 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 E8.0 F1000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F1400.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 E8.0 F1000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F1400.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n default_print_profile = 0.10mm DETAIL 0.25 nozzle MK3 [printer:Original Prusa i3 MK3 MMU2] @@ -2738,15 +2461,15 @@ inherits = *mm2* machine_max_acceleration_e = 8000,8000 nozzle_diameter = 0.4,0.4,0.4,0.4,0.4 extruder_colour = #FF8000;#DB5182;#00FFFF;#FF4F4F;#9FFF9F -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG21 ; set units to millimeters\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E32.0 F1073.0\nG1 X5.0 E32.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG21 ; set units to millimeters\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E32.0 F1073.0\nG1 X5.0 E32.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n end_gcode = {if has_wipe_tower}\nG1 E-15.0000 F3000\n{else}\nG1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n{endif}\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors\n [printer:Original Prusa i3 MK3S MMU2S Single] inherits = *mm2s* single_extruder_multi_material = 0 default_filament_profile = Prusament PLA -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n -end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n +end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors [printer:Original Prusa i3 MK3S MMU2S Single 0.6 nozzle] inherits = Original Prusa i3 MK3S MMU2S Single @@ -2764,7 +2487,7 @@ nozzle_diameter = 0.25 max_layer_height = 0.15 min_layer_height = 0.05 printer_variant = 0.25 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F1400.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F1400.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n default_print_profile = 0.10mm DETAIL 0.25 nozzle MK3 [printer:Original Prusa i3 MK3S MMU2S] @@ -2772,26 +2495,18 @@ inherits = *mm2s* machine_max_acceleration_e = 8000,8000 nozzle_diameter = 0.4,0.4,0.4,0.4,0.4 extruder_colour = #FF8000;#DB5182;#00FFFF;#FF4F4F;#9FFF9F -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.8.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG21 ; set units to millimeters\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E29.0 F1073.0\nG1 X5.0 E29.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n +start_gcode = M115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG21 ; set units to millimeters\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E29.0 F1073.0\nG1 X5.0 E29.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n end_gcode = {if has_wipe_tower}\nG1 E-15.0000 F3000\n{else}\nG1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n{endif}\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors\n -## 0.6mm nozzle MMU2/S printer profiles +# 0.6 nozzle MMU printer profile - only for single mode for now -[printer:Original Prusa i3 MK3S MMU2S 0.6 nozzle] -inherits = Original Prusa i3 MK3S MMU2S -nozzle_diameter = 0.6,0.6,0.6,0.6,0.6 -max_layer_height = 0.40 -min_layer_height = 0.15 -printer_variant = 0.6 -default_print_profile = 0.30mm QUALITY 0.6 nozzle MK3 - -[printer:Original Prusa i3 MK3 MMU2 0.6 nozzle] -inherits = Original Prusa i3 MK3 MMU2 -nozzle_diameter = 0.6,0.6,0.6,0.6,0.6 -max_layer_height = 0.40 -min_layer_height = 0.15 -printer_variant = 0.6 -default_print_profile = 0.30mm QUALITY 0.6 nozzle MK3 +# [printer:Original Prusa i3 MK3S MMU2S 0.6 nozzle] +# inherits = Original Prusa i3 MK3S MMU2S +# nozzle_diameter = 0.6,0.6,0.6,0.6,0.6 +# max_layer_height = 0.40 +# min_layer_height = 0.15 +# printer_variant = 0.6 +# default_print_profile = 0.30mm QUALITY 0.6 nozzle MK3 [printer:Original Prusa SL1] printer_technology = SLA @@ -2799,17 +2514,13 @@ printer_model = SL1 printer_variant = default default_sla_material_profile = Prusa Orange Tough 0.05 default_sla_print_profile = 0.05 Normal -bed_shape = 1.48x1.02,119.48x1.02,119.48x67.02,1.48x67.02 +bed_shape = 0.98x1.02,119.98x1.02,119.98x67.02,0.98x67.02 display_height = 68.04 display_orientation = portrait display_pixels_x = 2560 display_pixels_y = 1440 display_width = 120.96 max_print_height = 150 -min_exposure_time = 1 -max_exposure_time = 120 -min_initial_exposure_time = 1 -max_initial_exposure_time = 300 printer_correction = 1,1,1 printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_SL1\n diff --git a/sandboxes/CMakeLists.txt b/sandboxes/CMakeLists.txt index 5905c438e95..0e1f52d6cf6 100644 --- a/sandboxes/CMakeLists.txt +++ b/sandboxes/CMakeLists.txt @@ -1,2 +1 @@ add_subdirectory(slabasebed) -add_subdirectory(slasupporttree) diff --git a/sandboxes/slabasebed/slabasebed.cpp b/sandboxes/slabasebed/slabasebed.cpp index b8b94d86f3d..5393f61fd71 100644 --- a/sandboxes/slabasebed/slabasebed.cpp +++ b/sandboxes/slabasebed/slabasebed.cpp @@ -5,7 +5,6 @@ #include #include #include -#include #include #include #include @@ -16,8 +15,8 @@ const std::string USAGE_STR = { namespace Slic3r { namespace sla { -Contour3D create_base_pool(const Polygons &ground_layer, - const ExPolygons &holes = {}, +Contour3D create_base_pool(const Polygons &ground_layer, + const Polygons &holes = {}, const PoolConfig& cfg = PoolConfig()); Contour3D walls(const Polygon& floor_plate, const Polygon& ceiling, @@ -44,22 +43,22 @@ int main(const int argc, const char *argv[]) { model.ReadSTLFile(argv[1]); model.align_to_origin(); - ExPolygons ground_slice; + Polygons ground_slice; sla::base_plate(model, ground_slice, 0.1f); if(ground_slice.empty()) return EXIT_FAILURE; - ground_slice = offset_ex(ground_slice, 0.5); - ExPolygon gndfirst; gndfirst = ground_slice.front(); - sla::breakstick_holes(gndfirst, 0.5, 10, 0.3); + Polygon gndfirst; gndfirst = ground_slice.front(); + sla::offset_with_breakstick_holes(gndfirst, 0.5, 10, 0.3); sla::Contour3D mesh; + bench.start(); sla::PoolConfig cfg; cfg.min_wall_height_mm = 0; cfg.edge_radius_mm = 0; - mesh = sla::create_base_pool(to_polygons(ground_slice), {}, cfg); + mesh = sla::create_base_pool(ground_slice, {}, cfg); bench.stop(); @@ -76,7 +75,7 @@ int main(const int argc, const char *argv[]) { if(std::abs(a) < 1e-6) std::cout << "degenerate triangle" << std::endl; } - // basepool.write_ascii("out.stl"); +// basepool.write_ascii("out.stl"); std::fstream outstream("out.obj", std::fstream::out); mesh.to_obj(outstream); diff --git a/sandboxes/slasupporttree/CMakeLists.txt b/sandboxes/slasupporttree/CMakeLists.txt deleted file mode 100644 index 79adb842b93..00000000000 --- a/sandboxes/slasupporttree/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -add_executable(slasupporttree slasupporttree.cpp) -target_link_libraries(slasupporttree libslic3r ${Boost_LIBRARIES} ${TBB_LIBRARIES} ${Boost_LIBRARIES} ${CMAKE_DL_LIBS}) diff --git a/sandboxes/slasupporttree/slasupporttree.cpp b/sandboxes/slasupporttree/slasupporttree.cpp deleted file mode 100644 index dcaddf6d3f1..00000000000 --- a/sandboxes/slasupporttree/slasupporttree.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -const std::string USAGE_STR = { - "Usage: slasupporttree stlfilename.stl" -}; - -int main(const int argc, const char *argv[]) { - using namespace Slic3r; - using std::cout; using std::endl; - - if(argc < 2) { - cout << USAGE_STR << endl; - return EXIT_SUCCESS; - } - - DynamicPrintConfig config; - - Model model = Model::read_from_file(argv[1], &config); - - SLAPrint print; - - print.apply(model, config); - print.process(); - - - return EXIT_SUCCESS; -} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f8e4510f2c0..53949465124 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,5 @@ project(Slic3r-native) -add_subdirectory(build-utils) add_subdirectory(admesh) add_subdirectory(avrdude) # boost/nowide @@ -14,7 +13,10 @@ add_subdirectory(qhull) add_subdirectory(Shiny) add_subdirectory(semver) add_subdirectory(libigl) -add_subdirectory(test) + +if(SLIC3R_BUILD_TESTS) + add_subdirectory(test) +endif() # Adding libnest2d project for bin packing... set(LIBNEST2D_UNITTESTS ON CACHE BOOL "Force generating unittests for libnest2d") @@ -49,7 +51,7 @@ if (SLIC3R_GUI) endif () endif () else () - find_package(wxWidgets 3.1 REQUIRED COMPONENTS html adv gl core base) + find_package(wxWidgets 3.1 REQUIRED COMPONENTS base core adv html gl) endif () if(UNIX) @@ -58,9 +60,6 @@ if (SLIC3R_GUI) include(${wxWidgets_USE_FILE}) -# list(REMOVE_ITEM wxWidgets_LIBRARIES oleacc) - message(STATUS "wx libs: ${wxWidgets_LIBRARIES}") - add_subdirectory(slic3r) endif() @@ -70,20 +69,13 @@ endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/PrusaSlicer.rc.in ${CMAKE_CURRENT_BINARY_DIR}/slic3r.rc @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/PrusaSlicer.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/slic3r.manifest @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/osx/Info.plist.in ${CMAKE_CURRENT_BINARY_DIR}/Info.plist @ONLY) -if (WIN32) +if (MSVC) add_library(slic3r SHARED PrusaSlicer.cpp PrusaSlicer.hpp) else () add_executable(slic3r PrusaSlicer.cpp PrusaSlicer.hpp) endif () - add_library(slic3r_lib STATIC PrusaSlicer.cpp PrusaSlicer.hpp) - -if (MINGW) - target_link_options(slic3r PUBLIC "-Wl,-allow-multiple-definition") - set_target_properties(slic3r PROPERTIES PREFIX "") -endif (MINGW) - -if (NOT WIN32) +if (NOT MSVC) # Binary name on unix like systems (OSX, Linux) set_target_properties(slic3r PROPERTIES OUTPUT_NAME "slic3r++") endif () @@ -112,7 +104,7 @@ if (SLIC3R_GUI) # Configure libcurl and its dependencies OpenSSL & zlib find_package(CURL REQUIRED) - if (NOT WIN32) + if (NOT MSVC) # Required by libcurl find_package(ZLIB REQUIRED) endif() @@ -146,7 +138,7 @@ if (SLIC3R_GUI) target_link_libraries(slic3r user32.lib Setupapi.lib OpenGL32.Lib GlU32.Lib) target_link_libraries(slic3r_lib user32.lib Setupapi.lib OpenGL32.Lib GlU32.Lib) elseif (MINGW) - target_link_libraries(slic3r opengl32 ws2_32 uxtheme setupapi) + target_link_libraries(slic3r -lopengl32) target_link_libraries(slic3r_lib -lopengl32) elseif (APPLE) target_link_libraries(slic3r "-framework OpenGL") @@ -159,34 +151,27 @@ endif () # On Windows, a shim application is required to produce a console / non console version of the Slic3r application. # Also the shim may load the Mesa software OpenGL renderer if the default renderer does not support OpenGL 2.0 and higher. -if (WIN32) - if (MINGW) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -municode") - endif() - +if (MSVC) add_executable(slic3r_app_gui WIN32 PrusaSlicer_app_msvc.cpp ${CMAKE_CURRENT_BINARY_DIR}/slic3r.rc) # Generate debug symbols even in release mode. - if(MSVC) - target_link_options(slic3r_app_gui PUBLIC "$<$:/DEBUG>") - endif() + #target_link_options(slic3r_app_gui PUBLIC "$<$:/DEBUG>") target_compile_definitions(slic3r_app_gui PRIVATE -DSLIC3R_WRAPPER_NOCONSOLE) add_dependencies(slic3r_app_gui slic3r) - set_target_properties(slic3r_app_gui PROPERTIES OUTPUT_NAME "prusa-slicer") + set_target_properties(slic3r_app_gui PROPERTIES OUTPUT_NAME "slic3r++") target_link_libraries(slic3r_app_gui PRIVATE boost_headeronly) add_executable(slic3r_app_console PrusaSlicer_app_msvc.cpp ${CMAKE_CURRENT_BINARY_DIR}/slic3r.rc) # Generate debug symbols even in release mode. - if (MSVC) - target_link_options(slic3r_app_console PUBLIC "$<$:/DEBUG>") - endif () + #target_link_options(slic3r_app_console PUBLIC "$<$:/DEBUG>") target_compile_definitions(slic3r_app_console PRIVATE -DSLIC3R_WRAPPER_CONSOLE) add_dependencies(slic3r_app_console slic3r) - set_target_properties(slic3r_app_console PROPERTIES OUTPUT_NAME "prusa-slicer-console") + set_target_properties(slic3r_app_console PROPERTIES OUTPUT_NAME "slic3r++_console") target_link_libraries(slic3r_app_console PRIVATE boost_headeronly) + endif () # Link the resources dir to where Slic3r GUI expects it -if (WIN32) +if (MSVC) if (CMAKE_CONFIGURATION_TYPES) foreach (CONF ${CMAKE_CONFIGURATION_TYPES}) file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${CONF}" WIN_CONF_OUTPUT_DIR) diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp index 58fa4b8c25a..84a4298b7c1 100644 --- a/src/PrusaSlicer.cpp +++ b/src/PrusaSlicer.cpp @@ -26,7 +26,6 @@ #include #include #include -#include #include "unix/fhs.hpp" // Generated by CMake from ../platform/unix/fhs.hpp.in @@ -48,7 +47,6 @@ #ifdef SLIC3R_GUI #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/GUI_App.hpp" - #include "slic3r/GUI/3DScene.hpp" #endif /* SLIC3R_GUI */ using namespace Slic3r; @@ -61,26 +59,6 @@ PrinterTechnology get_printer_technology(const DynamicConfig &config) int CLI::run(int argc, char **argv) { - // Switch boost::filesystem to utf8. - try { - boost::nowide::nowide_filesystem(); - } catch (const std::runtime_error& ex) { - std::string caption = std::string(SLIC3R_APP_NAME) + " Error"; - std::string text = std::string("An error occured while setting up locale.\n") + ( -#if !defined(_WIN32) && !defined(__APPLE__) - // likely some linux system - "You may need to reconfigure the missing locales, likely by running the \"locale-gen\" and \"dpkg-reconfigure locales\" commands.\n" -#endif - SLIC3R_APP_NAME " will now terminate.\n\n") + ex.what(); - #if defined(_WIN32) && defined(SLIC3R_GUI) - if (m_actions.empty()) - // Empty actions means Slicer is executed in the GUI mode. Show a GUI message. - MessageBoxA(NULL, text.c_str(), caption.c_str(), MB_OK | MB_ICONERROR); - #endif - boost::nowide::cerr << text.c_str() << std::endl; - return 1; - } - if (! this->setup(argc, argv)) return 1; @@ -431,7 +409,7 @@ int CLI::run(int argc, char **argv) outfile_final = sla_print.print_statistics().finalize_output_path(outfile); sla_print.export_raster(outfile_final); } - if (outfile != outfile_final && Slic3r::rename_file(outfile, outfile_final)) { + if (outfile != outfile_final && Slic3r::rename_file(outfile, outfile_final) != 0) { boost::nowide::cerr << "Renaming file " << outfile << " to " << outfile_final << " failed" << std::endl; return 1; } @@ -506,10 +484,7 @@ int CLI::run(int argc, char **argv) if (! m_extra_config.empty()) gui->mainframe->load_config(m_extra_config); }); - int result = wxEntry(argc, argv); - //FIXME this is a workaround for the PrusaSlicer 2.1 release. - _3DScene::destroy(); - return result; + return wxEntry(argc, argv); #else /* SLIC3R_GUI */ // No GUI support. Just print out a help. this->print_help(false); @@ -524,7 +499,6 @@ int CLI::run(int argc, char **argv) bool CLI::setup(int argc, char **argv) { { - Slic3r::set_logging_level(1); const char *loglevel = boost::nowide::getenv("SLIC3R_LOGLEVEL"); if (loglevel != nullptr) { if (loglevel[0] >= '0' && loglevel[0] <= '9' && loglevel[1] == 0) @@ -677,7 +651,7 @@ std::string CLI::output_filepath(const Model &model, IO::ExportFormat format) co return proposed_path.string(); } -#if defined(_MSC_VER) || defined(__MINGW32__) +#ifdef _MSC_VER extern "C" { __declspec(dllexport) int __stdcall slic3r_main(int argc, wchar_t **argv) { diff --git a/src/PrusaSlicer_app_msvc.cpp b/src/PrusaSlicer_app_msvc.cpp index d544ca7c574..696acfbec8d 100644 --- a/src/PrusaSlicer_app_msvc.cpp +++ b/src/PrusaSlicer_app_msvc.cpp @@ -205,8 +205,6 @@ extern "C" { Slic3rMainFunc slic3r_main = nullptr; } -extern "C" { - #ifdef SLIC3R_WRAPPER_NOCONSOLE int APIENTRY wWinMain(HINSTANCE /* hInstance */, HINSTANCE /* hPrevInstance */, PWSTR /* lpCmdLine */, int /* nCmdShow */) { @@ -300,4 +298,3 @@ int wmain(int argc, wchar_t **argv) // argc minus the trailing nullptr of the argv return slic3r_main((int)argv_extended.size() - 1, argv_extended.data()); } -} diff --git a/src/admesh/stl.h b/src/admesh/stl.h index 98c85722df0..a3f319096aa 100644 --- a/src/admesh/stl.h +++ b/src/admesh/stl.h @@ -247,7 +247,7 @@ extern void its_transform(indexed_triangle_set &its, T *trafo3x4) template inline void its_transform(indexed_triangle_set &its, const Eigen::Transform& t) { - //const Eigen::Matrix r = t.matrix().template block<3, 3>(0, 0); + const Eigen::Matrix r = t.matrix().template block<3, 3>(0, 0); for (stl_vertex &v : its.vertices) v = (t * v.template cast()).template cast().eval(); } diff --git a/src/admesh/stl_io.cpp b/src/admesh/stl_io.cpp index ddf377c781a..464c98907a2 100644 --- a/src/admesh/stl_io.cpp +++ b/src/admesh/stl_io.cpp @@ -151,8 +151,8 @@ bool stl_write_binary(stl_file *stl, const char *file, const char *label) memcpy(buffer, &stl->stats.number_of_facets, 4); stl_internal_reverse_quads(buffer, 4); fwrite(buffer, 4, 1, fp); - for (const stl_facet &facet : stl->facet_start) { - memcpy(buffer, &facet, 50); + for (i = 0; i < stl->stats.number_of_facets; ++ i) { + memcpy(buffer, stl->facet_start + i, 50); // Convert to little endian. stl_internal_reverse_quads(buffer, 48); fwrite(buffer, SIZEOF_STL_FACET, 1, fp); diff --git a/src/admesh/stlinit.cpp b/src/admesh/stlinit.cpp index 693aad08665..a328baa75f6 100644 --- a/src/admesh/stlinit.cpp +++ b/src/admesh/stlinit.cpp @@ -162,8 +162,8 @@ static bool stl_read(stl_file *stl, FILE *fp, int first_facet, bool first) // Read a single facet from an ASCII .STL file // skip solid/endsolid // (in this order, otherwise it won't work when they are paired in the middle of a file) - fscanf(fp, " endsolid%*[^\n]\n"); - fscanf(fp, " solid%*[^\n]\n"); // name might contain spaces so %*s doesn't work and it also can be empty (just "solid") + fscanf(fp, "endsolid%*[^\n]\n"); + fscanf(fp, "solid%*[^\n]\n"); // name might contain spaces so %*s doesn't work and it also can be empty (just "solid") // Leading space in the fscanf format skips all leading white spaces including numerous new lines and tabs. int res_normal = fscanf(fp, " facet normal %31s %31s %31s", normal_buf[0], normal_buf[1], normal_buf[2]); assert(res_normal == 3); @@ -173,20 +173,13 @@ static bool stl_read(stl_file *stl, FILE *fp, int first_facet, bool first) assert(res_vertex1 == 3); int res_vertex2 = fscanf(fp, " vertex %f %f %f", &facet.vertex[1](0), &facet.vertex[1](1), &facet.vertex[1](2)); assert(res_vertex2 == 3); - // Trailing whitespace is there to eat all whitespaces and empty lines up to the next non-whitespace. - int res_vertex3 = fscanf(fp, " vertex %f %f %f ", &facet.vertex[2](0), &facet.vertex[2](1), &facet.vertex[2](2)); + int res_vertex3 = fscanf(fp, " vertex %f %f %f", &facet.vertex[2](0), &facet.vertex[2](1), &facet.vertex[2](2)); assert(res_vertex3 == 3); - // Some G-code generators tend to produce text after "endloop" and "endfacet". Just ignore it. - char buf[2048]; - fgets(buf, 2047, fp); - bool endloop_ok = strncmp(buf, "endloop", 7) == 0 && (buf[7] == '\r' || buf[7] == '\n' || buf[7] == ' ' || buf[7] == '\t'); - assert(endloop_ok); - // Skip the trailing whitespaces and empty lines. - fscanf(fp, " "); - fgets(buf, 2047, fp); - bool endfacet_ok = strncmp(buf, "endfacet", 8) == 0 && (buf[8] == '\r' || buf[8] == '\n' || buf[8] == ' ' || buf[8] == '\t'); - assert(endfacet_ok); - if (res_normal != 3 || res_outer_loop != 0 || res_vertex1 != 3 || res_vertex2 != 3 || res_vertex3 != 3 || ! endloop_ok || ! endfacet_ok) { + int res_endloop = fscanf(fp, " endloop"); + assert(res_endloop == 0); + // There is a leading and trailing white space around endfacet to eat up all leading and trailing white spaces including numerous tabs and new lines. + int res_endfacet = fscanf(fp, " endfacet "); + if (res_normal != 3 || res_outer_loop != 0 || res_vertex1 != 3 || res_vertex2 != 3 || res_vertex3 != 3 || res_endloop != 0 || res_endfacet != 0) { BOOST_LOG_TRIVIAL(error) << "Something is syntactically very wrong with this ASCII STL! "; return false; } diff --git a/src/avrdude/CMakeLists.txt b/src/avrdude/CMakeLists.txt index 88972002111..0e9b9e6d4d6 100644 --- a/src/avrdude/CMakeLists.txt +++ b/src/avrdude/CMakeLists.txt @@ -74,10 +74,6 @@ if (MSVC) windows/unistd.cpp windows/getopt.c ) -elseif (MINGW) - set(AVRDUDE_SOURCES ${AVRDUDE_SOURCES} - windows/utf8.c - ) endif() add_executable(avrdude-conf-gen conf-generate.cpp) @@ -85,13 +81,13 @@ add_executable(avrdude-conf-gen conf-generate.cpp) # Config file embedding add_custom_command( DEPENDS avrdude-conf-gen ${CMAKE_CURRENT_SOURCE_DIR}/avrdude-slic3r.conf - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/avrdude-slic3r.conf.h - COMMAND $ avrdude-slic3r.conf avrdude_slic3r_conf ${CMAKE_CURRENT_BINARY_DIR}/avrdude-slic3r.conf.h + OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/avrdude-slic3r.conf.h + COMMAND $ avrdude-slic3r.conf avrdude_slic3r_conf > avrdude-slic3r.conf.h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) add_custom_target(gen_conf_h - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/avrdude-slic3r.conf.h + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/avrdude-slic3r.conf.h ) add_library(avrdude STATIC ${AVRDUDE_SOURCES}) @@ -100,15 +96,7 @@ add_dependencies(avrdude gen_conf_h) add_executable(avrdude-slic3r main-standalone.cpp) target_link_libraries(avrdude-slic3r avrdude) -encoding_check(avrdude) -encoding_check(avrdude-slic3r) - -# Make avrdude-slic3r.conf.h includable: -target_include_directories(avrdude SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - if (WIN32) target_compile_definitions(avrdude PRIVATE WIN32NATIVE=1) - if(MSVC) - target_include_directories(avrdude SYSTEM PRIVATE windows) # So that sources find the getopt.h windows drop-in - endif(MSVC) + target_include_directories(avrdude SYSTEM PRIVATE windows) # So that sources find the getopt.h windows drop-in endif() diff --git a/src/avrdude/ChangeLog b/src/avrdude/ChangeLog index 879fbf95761..975f5231721 100644 --- a/src/avrdude/ChangeLog +++ b/src/avrdude/ChangeLog @@ -1,12 +1,3 @@ -2018-01-17 Joerg Wunsch -(cherry-picked) - Submitted by Reinhard Max - patch #8311: Add IPv6 support to the -Pnet:host:port option - * ser_posix.c (net_open): Rewrite to use getaddrinfo() - rather than gethostbyname() - * avrdude.1: Document IPv6 feature - * doc/avrdude.texi: (Dito) - 2016-05-10 Joerg Wunsch Submitted by Hannes Jochriem: diff --git a/src/avrdude/avrdude-slic3r.conf.h b/src/avrdude/avrdude-slic3r.conf.h new file mode 100644 index 00000000000..905b14ee8c7 --- /dev/null +++ b/src/avrdude/avrdude-slic3r.conf.h @@ -0,0 +1,1188 @@ +/* WARN: This file is auto-generated from `avrdude-slic3r.conf` */ +const unsigned char avrdude_slic3r_conf[] = { + 0x0a, 0x23, 0x0a, 0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, + 0x20, 0x61, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x20, + 0x66, 0x69, 0x6c, 0x65, 0x20, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, + 0x76, 0x72, 0x64, 0x75, 0x64, 0x65, 0x2d, 0x73, 0x6c, 0x69, 0x63, 0x33, + 0x72, 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x73, + 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x74, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, + 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x20, 0x6d, + 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x0a, 0x23, 0x0a, 0x23, 0x20, 0x4f, + 0x6e, 0x6c, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x69, 0x74, 0x73, + 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x50, 0x72, 0x75, 0x73, 0x61, 0x33, 0x44, 0x20, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x20, 0x77, 0x65, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x70, + 0x69, 0x65, 0x64, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x66, 0x72, 0x6f, + 0x6d, 0x20, 0x61, 0x76, 0x72, 0x64, 0x75, 0x64, 0x65, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x0a, 0x23, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x65, 0x65, 0x64, + 0x65, 0x64, 0x2c, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x61, 0x6e, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, + 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x61, 0x76, 0x72, 0x64, 0x75, 0x64, 0x65, 0x2d, 0x73, 0x6c, 0x69, 0x63, + 0x33, 0x72, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x61, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x2d, 0x43, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x0a, 0x23, 0x0a, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x6d, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x69, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x77, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3b, 0x0a, + 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x57, + 0x69, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x77, 0x69, 0x72, 0x69, 0x6e, + 0x67, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, + 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x3b, 0x0a, 0x3b, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x0a, 0x20, 0x20, + 0x69, 0x64, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x61, 0x72, 0x64, + 0x75, 0x69, 0x6e, 0x6f, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x65, 0x73, + 0x63, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x41, 0x72, 0x64, 0x75, 0x69, 0x6e, + 0x6f, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x61, 0x72, 0x64, 0x75, 0x69, 0x6e, 0x6f, 0x22, 0x3b, + 0x0a, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x3b, 0x0a, 0x3b, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x69, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x61, 0x76, 0x72, 0x31, 0x30, 0x39, + 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x20, 0x20, 0x3d, + 0x20, 0x22, 0x41, 0x74, 0x6d, 0x65, 0x6c, 0x20, 0x41, 0x70, 0x70, 0x4e, + 0x6f, 0x74, 0x65, 0x20, 0x41, 0x56, 0x52, 0x31, 0x30, 0x39, 0x20, 0x42, + 0x6f, 0x6f, 0x74, 0x20, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3b, + 0x0a, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x22, + 0x62, 0x75, 0x74, 0x74, 0x65, 0x72, 0x66, 0x6c, 0x79, 0x22, 0x3b, 0x0a, + 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x3b, 0x0a, 0x3b, 0x0a, 0x0a, 0x0a, 0x23, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x23, 0x20, + 0x41, 0x54, 0x6d, 0x65, 0x67, 0x61, 0x32, 0x35, 0x36, 0x30, 0x0a, 0x23, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x6d, 0x32, 0x35, 0x36, 0x30, + 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x41, 0x54, 0x6d, 0x65, 0x67, 0x61, 0x32, 0x35, 0x36, + 0x30, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x30, 0x78, 0x31, 0x65, 0x20, 0x30, 0x78, 0x39, 0x38, + 0x20, 0x30, 0x78, 0x30, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, + 0x61, 0x73, 0x5f, 0x6a, 0x74, 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x79, 0x65, 0x73, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x74, 0x6b, 0x35, 0x30, 0x30, 0x5f, 0x64, 0x65, + 0x76, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, + 0x42, 0x32, 0x3b, 0x0a, 0x23, 0x20, 0x20, 0x20, 0x20, 0x61, 0x76, 0x72, + 0x39, 0x31, 0x30, 0x5f, 0x64, 0x65, 0x76, 0x63, 0x6f, 0x64, 0x65, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x34, 0x33, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x63, 0x68, 0x69, 0x70, 0x5f, 0x65, 0x72, 0x61, 0x73, 0x65, + 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x67, 0x65, 0x6c, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x30, 0x78, 0x44, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x62, 0x73, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x41, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x70, 0x67, 0x6d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x31, + 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, + 0x20, 0x31, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x20, 0x31, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x78, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x68, + 0x69, 0x70, 0x5f, 0x65, 0x72, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, + 0x30, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x22, 0x3b, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x32, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x73, 0x74, 0x61, 0x62, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x63, 0x6d, 0x64, 0x65, 0x78, 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x32, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x6c, 0x6f, 0x6f, 0x70, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x62, 0x79, 0x74, 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, + 0x6c, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x35, + 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x65, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x70, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, + 0x74, 0x61, 0x63, 0x6b, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x78, 0x30, 0x45, 0x2c, + 0x20, 0x30, 0x78, 0x31, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x46, 0x2c, + 0x20, 0x30, 0x78, 0x31, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x45, 0x2c, + 0x20, 0x30, 0x78, 0x33, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x46, 0x2c, + 0x20, 0x30, 0x78, 0x33, 0x46, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x78, 0x34, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x35, + 0x45, 0x2c, 0x20, 0x30, 0x78, 0x34, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x35, + 0x46, 0x2c, 0x20, 0x30, 0x78, 0x36, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x37, + 0x45, 0x2c, 0x20, 0x30, 0x78, 0x36, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x37, + 0x46, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x78, 0x36, 0x36, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x36, 0x2c, 0x20, 0x30, + 0x78, 0x36, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x37, 0x2c, 0x20, 0x30, + 0x78, 0x36, 0x41, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x41, 0x2c, 0x20, 0x30, + 0x78, 0x36, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x42, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x78, 0x42, 0x45, 0x2c, + 0x20, 0x30, 0x78, 0x46, 0x44, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x30, 0x2c, + 0x20, 0x30, 0x78, 0x30, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x30, 0x2c, + 0x20, 0x30, 0x78, 0x30, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x30, 0x2c, + 0x20, 0x30, 0x78, 0x30, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, + 0x76, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x74, 0x61, 0x62, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x6d, 0x6f, + 0x64, 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, + 0x61, 0x74, 0x63, 0x68, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x35, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x76, 0x74, + 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x77, + 0x65, 0x72, 0x6f, 0x66, 0x66, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x35, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x6d, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x65, + 0x74, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x75, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x68, 0x76, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x74, 0x61, 0x62, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, + 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x68, 0x69, 0x70, 0x65, + 0x72, 0x61, 0x73, 0x65, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x63, 0x68, 0x69, 0x70, 0x65, 0x72, 0x61, 0x73, 0x65, 0x70, 0x6f, 0x6c, + 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x31, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x66, 0x75, 0x73, 0x65, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x66, 0x75, 0x73, + 0x65, 0x70, 0x6f, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x20, 0x3d, 0x20, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, + 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6c, 0x6f, 0x63, 0x6b, 0x70, 0x75, 0x6c, + 0x73, 0x65, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x6c, 0x6f, 0x63, 0x6b, 0x70, 0x6f, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x35, 0x3b, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x64, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x30, 0x78, 0x33, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, + 0x6d, 0x63, 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x35, 0x37, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x61, 0x6d, 0x70, 0x7a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x33, 0x62, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x66, 0x75, 0x6c, 0x6c, 0x70, + 0x61, 0x67, 0x65, 0x62, 0x69, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x63, 0x64, 0x72, 0x65, 0x76, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x34, 0x3b, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x20, 0x22, 0x65, 0x65, 0x70, 0x72, 0x6f, 0x6d, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x67, 0x65, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x6e, 0x6f, 0x3b, 0x20, 0x2f, 0x2a, 0x20, 0x6c, 0x65, 0x61, 0x76, 0x65, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x22, 0x6e, 0x6f, 0x22, 0x20, 0x2a, + 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x38, 0x3b, 0x20, 0x20, 0x2f, 0x2a, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x20, + 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x20, + 0x2a, 0x2f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x34, 0x30, 0x39, 0x36, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x5f, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, + 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x31, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x62, + 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x30, 0x78, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x61, 0x31, 0x31, + 0x20, 0x61, 0x31, 0x30, 0x20, 0x20, 0x61, 0x39, 0x20, 0x20, 0x61, 0x38, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x61, 0x37, 0x20, 0x20, 0x61, + 0x36, 0x20, 0x20, 0x61, 0x35, 0x20, 0x20, 0x61, 0x34, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x33, 0x20, 0x20, 0x61, 0x32, 0x20, 0x20, 0x61, 0x31, + 0x20, 0x20, 0x61, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, + 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, + 0x6f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, + 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x22, 0x3b, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x31, 0x31, 0x20, 0x61, 0x31, 0x30, 0x20, 0x20, 0x61, + 0x39, 0x20, 0x20, 0x61, 0x38, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, + 0x61, 0x37, 0x20, 0x20, 0x61, 0x36, 0x20, 0x20, 0x61, 0x35, 0x20, 0x20, + 0x61, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x33, 0x20, 0x20, 0x61, + 0x32, 0x20, 0x20, 0x61, 0x31, 0x20, 0x20, 0x61, 0x30, 0x22, 0x2c, 0x20, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, + 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, + 0x20, 0x69, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x6f, 0x20, 0x3d, 0x20, 0x22, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x61, 0x32, 0x20, 0x20, 0x61, + 0x31, 0x20, 0x20, 0x61, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, + 0x20, 0x20, 0x69, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x70, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x31, 0x31, 0x20, 0x61, 0x31, 0x30, 0x20, 0x20, + 0x61, 0x39, 0x20, 0x20, 0x61, 0x38, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x61, 0x37, 0x20, 0x20, 0x61, + 0x36, 0x20, 0x20, 0x61, 0x35, 0x20, 0x20, 0x61, 0x34, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x33, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, + 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x20, 0x78, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x34, 0x31, 0x3b, 0x0a, + 0x20, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x32, + 0x35, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, + 0x22, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x67, 0x65, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x79, 0x65, + 0x73, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x32, 0x36, 0x32, 0x31, 0x34, 0x34, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x32, 0x35, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x30, + 0x32, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x34, 0x35, 0x30, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x5f, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, + 0x3d, 0x20, 0x34, 0x35, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x62, 0x61, 0x63, 0x6b, + 0x5f, 0x70, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, + 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x72, 0x65, 0x61, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x32, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x5f, 0x6c, 0x6f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x61, 0x31, 0x35, 0x20, 0x61, + 0x31, 0x34, 0x20, 0x61, 0x31, 0x33, 0x20, 0x61, 0x31, 0x32, 0x20, 0x20, + 0x20, 0x20, 0x61, 0x31, 0x31, 0x20, 0x61, 0x31, 0x30, 0x20, 0x20, 0x61, + 0x39, 0x20, 0x20, 0x61, 0x38, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, + 0x61, 0x37, 0x20, 0x20, 0x61, 0x36, 0x20, 0x20, 0x61, 0x35, 0x20, 0x20, + 0x61, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x33, 0x20, 0x20, 0x61, + 0x32, 0x20, 0x20, 0x61, 0x31, 0x20, 0x20, 0x61, 0x30, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, + 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, + 0x6f, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x68, 0x69, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x61, 0x31, 0x35, 0x20, 0x61, 0x31, 0x34, 0x20, 0x61, 0x31, 0x33, 0x20, + 0x61, 0x31, 0x32, 0x20, 0x20, 0x20, 0x20, 0x61, 0x31, 0x31, 0x20, 0x61, + 0x31, 0x30, 0x20, 0x20, 0x61, 0x39, 0x20, 0x20, 0x61, 0x38, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x20, 0x61, 0x37, 0x20, 0x20, 0x61, 0x36, 0x20, + 0x20, 0x61, 0x35, 0x20, 0x20, 0x61, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x61, 0x33, 0x20, 0x20, 0x61, 0x32, 0x20, 0x20, 0x61, 0x31, 0x20, 0x20, + 0x61, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x6f, 0x20, + 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, + 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x6c, 0x6f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, + 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, + 0x20, 0x20, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x78, + 0x20, 0x20, 0x61, 0x36, 0x20, 0x20, 0x61, 0x35, 0x20, 0x20, 0x61, 0x34, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x33, 0x20, 0x20, 0x61, 0x32, 0x20, + 0x20, 0x61, 0x31, 0x20, 0x20, 0x61, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x20, + 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x22, + 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, + 0x6f, 0x61, 0x64, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x69, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, + 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x20, 0x20, 0x78, 0x20, 0x20, 0x61, 0x36, 0x20, 0x20, 0x61, + 0x35, 0x20, 0x20, 0x61, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x33, + 0x20, 0x20, 0x61, 0x32, 0x20, 0x20, 0x61, 0x31, 0x20, 0x20, 0x61, 0x30, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, + 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x20, 0x20, 0x69, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x70, 0x61, 0x67, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x61, 0x31, 0x35, 0x20, 0x61, 0x31, 0x34, 0x20, 0x61, + 0x31, 0x33, 0x20, 0x61, 0x31, 0x32, 0x20, 0x20, 0x20, 0x20, 0x61, 0x31, + 0x31, 0x20, 0x61, 0x31, 0x30, 0x20, 0x20, 0x61, 0x39, 0x20, 0x20, 0x61, + 0x38, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x61, 0x37, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x22, 0x3b, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x31, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x61, 0x31, 0x36, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x6d, 0x6f, 0x64, 0x65, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x34, 0x31, 0x3b, 0x0a, + 0x20, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x31, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x32, 0x35, 0x36, 0x3b, 0x0a, 0x20, + 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x3d, + 0x20, 0x32, 0x35, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x20, 0x22, 0x6c, 0x66, 0x75, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, + 0x30, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, + 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x20, + 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x22, 0x3b, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, + 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, + 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, + 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x22, 0x68, 0x66, 0x75, + 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, + 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x31, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, + 0x30, 0x20, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x69, 0x20, + 0x69, 0x20, 0x69, 0x20, 0x69, 0x20, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, + 0x20, 0x69, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x30, 0x20, 0x31, + 0x20, 0x30, 0x20, 0x31, 0x20, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, + 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, + 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, + 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x22, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, + 0x6e, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, + 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x20, 0x22, 0x65, 0x66, 0x75, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, + 0x30, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, + 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x31, + 0x20, 0x30, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x20, 0x78, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x22, 0x3b, 0x0a, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, + 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, + 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, + 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x22, 0x6c, 0x6f, 0x63, + 0x6b, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x30, + 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x20, 0x31, 0x20, 0x30, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, + 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, + 0x6f, 0x20, 0x6f, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x31, 0x20, + 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, 0x31, 0x20, 0x78, + 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x31, 0x20, 0x69, 0x20, 0x69, 0x20, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, + 0x20, 0x69, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, + 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x22, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x30, 0x20, 0x30, 0x20, 0x31, 0x20, 0x31, 0x20, 0x20, + 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x30, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, + 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x22, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x22, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x33, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x22, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, + 0x20, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x78, 0x20, 0x61, 0x31, 0x20, 0x61, 0x30, 0x20, 0x20, + 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, + 0x20, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x6f, + 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, 0x20, + 0x20, 0x3b, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x23, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x23, 0x20, + 0x41, 0x54, 0x6d, 0x65, 0x67, 0x61, 0x33, 0x32, 0x75, 0x34, 0x0a, 0x23, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, + 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x6d, 0x33, 0x32, 0x75, 0x34, + 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x22, 0x41, 0x54, 0x6d, 0x65, 0x67, 0x61, 0x33, 0x32, 0x55, + 0x34, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x30, 0x78, 0x31, 0x65, 0x20, 0x30, 0x78, 0x39, 0x35, + 0x20, 0x30, 0x78, 0x38, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, + 0x73, 0x62, 0x70, 0x69, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x32, 0x66, 0x66, 0x34, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x61, 0x73, 0x5f, 0x6a, 0x74, + 0x61, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x79, 0x65, 0x73, 0x3b, 0x0a, 0x23, 0x20, 0x20, 0x20, 0x20, 0x73, + 0x74, 0x6b, 0x35, 0x30, 0x30, 0x5f, 0x64, 0x65, 0x76, 0x63, 0x6f, 0x64, + 0x65, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x42, 0x32, 0x3b, 0x0a, + 0x23, 0x20, 0x20, 0x20, 0x20, 0x61, 0x76, 0x72, 0x39, 0x31, 0x30, 0x5f, + 0x64, 0x65, 0x76, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x30, 0x78, 0x34, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x68, + 0x69, 0x70, 0x5f, 0x65, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x70, 0x61, 0x67, 0x65, 0x6c, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, + 0x44, 0x37, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x73, 0x32, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x30, 0x78, 0x41, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x64, 0x65, 0x64, 0x69, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, + 0x67, 0x6d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x31, 0x20, 0x30, 0x20, 0x31, + 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x31, 0x20, 0x31, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x22, 0x3b, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x68, 0x69, 0x70, 0x5f, 0x65, + 0x72, 0x61, 0x73, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x22, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x20, 0x31, + 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x78, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x32, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, + 0x61, 0x62, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6d, 0x64, + 0x65, 0x78, 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x32, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x79, 0x6e, + 0x63, 0x68, 0x6c, 0x6f, 0x6f, 0x70, 0x73, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x33, 0x32, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x79, 0x74, + 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x33, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x70, 0x6f, 0x6c, 0x6c, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x35, 0x33, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x70, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x70, 0x6f, 0x73, 0x74, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x6c, + 0x6c, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x31, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x70, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x78, 0x30, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x31, + 0x45, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x31, + 0x46, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x33, + 0x45, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x33, + 0x46, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, + 0x78, 0x34, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x45, 0x2c, 0x20, 0x30, + 0x78, 0x34, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x46, 0x2c, 0x20, 0x30, + 0x78, 0x36, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x45, 0x2c, 0x20, 0x30, + 0x78, 0x36, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x46, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x78, 0x36, 0x36, 0x2c, + 0x20, 0x30, 0x78, 0x37, 0x36, 0x2c, 0x20, 0x30, 0x78, 0x36, 0x37, 0x2c, + 0x20, 0x30, 0x78, 0x37, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x36, 0x41, 0x2c, + 0x20, 0x30, 0x78, 0x37, 0x41, 0x2c, 0x20, 0x30, 0x78, 0x36, 0x42, 0x2c, + 0x20, 0x30, 0x78, 0x37, 0x42, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x78, 0x42, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x46, + 0x44, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x30, + 0x31, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x30, + 0x30, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x30, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x76, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x73, 0x74, 0x61, 0x62, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x6d, 0x6f, 0x64, 0x65, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x61, 0x74, 0x63, 0x68, + 0x63, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x76, 0x74, 0x67, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x6f, 0x66, + 0x66, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x31, 0x35, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x6d, 0x73, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x75, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x68, 0x76, 0x6c, + 0x65, 0x61, 0x76, 0x65, 0x73, 0x74, 0x61, 0x62, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x35, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x63, 0x68, 0x69, 0x70, 0x65, 0x72, 0x61, 0x73, 0x65, + 0x70, 0x75, 0x6c, 0x73, 0x65, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, + 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x68, 0x69, 0x70, + 0x65, 0x72, 0x61, 0x73, 0x65, 0x70, 0x6f, 0x6c, 0x6c, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x66, 0x75, + 0x73, 0x65, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, + 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x66, 0x75, 0x73, 0x65, 0x70, 0x6f, 0x6c, + 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x35, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, + 0x6d, 0x6c, 0x6f, 0x63, 0x6b, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6c, 0x6f, 0x63, 0x6b, + 0x70, 0x6f, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, + 0x3d, 0x20, 0x35, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x64, + 0x72, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x33, 0x31, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x70, 0x6d, 0x63, 0x72, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x35, 0x37, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x61, 0x6d, 0x70, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x30, 0x78, 0x33, 0x62, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x66, 0x75, 0x6c, 0x6c, 0x70, 0x61, 0x67, 0x65, 0x62, + 0x69, 0x74, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x3d, 0x20, 0x6e, + 0x6f, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x63, 0x64, 0x72, + 0x65, 0x76, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x33, 0x3b, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x22, 0x65, 0x65, + 0x70, 0x72, 0x6f, 0x6d, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x70, 0x61, 0x67, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x3b, 0x20, + 0x2f, 0x2a, 0x20, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x22, 0x6e, 0x6f, 0x22, 0x20, 0x2a, 0x2f, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x34, 0x3b, 0x20, 0x20, 0x2f, 0x2a, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x70, + 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x20, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x2a, 0x2f, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x31, 0x30, 0x32, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x61, 0x78, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x62, + 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x31, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x30, 0x78, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x5f, + 0x70, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, + 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, + 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x20, 0x61, 0x31, 0x30, + 0x20, 0x20, 0x61, 0x39, 0x20, 0x20, 0x61, 0x38, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x20, 0x61, 0x37, 0x20, 0x20, 0x61, 0x36, 0x20, 0x20, 0x61, + 0x35, 0x20, 0x20, 0x61, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x33, + 0x20, 0x20, 0x61, 0x32, 0x20, 0x20, 0x61, 0x31, 0x20, 0x20, 0x61, 0x30, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, + 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, + 0x20, 0x20, 0x20, 0x6f, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x61, 0x31, 0x30, 0x20, 0x20, 0x61, 0x39, 0x20, 0x20, 0x61, + 0x38, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x61, 0x37, 0x20, 0x20, + 0x61, 0x36, 0x20, 0x20, 0x61, 0x35, 0x20, 0x20, 0x61, 0x34, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x61, 0x33, 0x20, 0x20, 0x61, 0x32, 0x20, 0x20, 0x61, + 0x31, 0x20, 0x20, 0x61, 0x30, 0x22, 0x2c, 0x20, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, + 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, + 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x22, 0x3b, + 0x0a, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x6c, 0x6f, 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x31, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x61, 0x32, 0x20, 0x20, 0x61, 0x31, 0x20, 0x20, 0x61, + 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, + 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x20, + 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x22, + 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x70, 0x61, + 0x67, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x61, 0x31, 0x30, 0x20, 0x20, 0x61, 0x39, 0x20, 0x20, + 0x61, 0x38, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x20, 0x61, 0x37, 0x20, 0x20, 0x61, 0x36, 0x20, 0x20, 0x61, + 0x35, 0x20, 0x20, 0x61, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x33, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, + 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x22, 0x3b, + 0x0a, 0x0a, 0x20, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x30, 0x78, 0x34, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x32, 0x30, 0x3b, 0x0a, + 0x20, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x3d, 0x20, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x32, 0x35, 0x36, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x22, 0x66, 0x6c, 0x61, + 0x73, 0x68, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x79, 0x65, 0x73, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x33, 0x32, 0x37, 0x36, 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x32, + 0x38, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, + 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3d, 0x20, 0x32, 0x35, 0x36, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, + 0x34, 0x35, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x34, 0x35, 0x30, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x31, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x62, 0x61, + 0x63, 0x6b, 0x5f, 0x70, 0x32, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x30, 0x78, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x6f, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x22, 0x20, 0x20, 0x30, 0x20, 0x61, 0x31, 0x34, 0x20, 0x61, 0x31, 0x33, + 0x20, 0x61, 0x31, 0x32, 0x20, 0x20, 0x20, 0x20, 0x61, 0x31, 0x31, 0x20, + 0x61, 0x31, 0x30, 0x20, 0x20, 0x61, 0x39, 0x20, 0x20, 0x61, 0x38, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x61, 0x37, 0x20, 0x20, 0x61, 0x36, + 0x20, 0x20, 0x61, 0x35, 0x20, 0x20, 0x61, 0x34, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x33, 0x20, 0x20, 0x61, 0x32, 0x20, 0x20, 0x61, 0x31, 0x20, + 0x20, 0x61, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x6f, + 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, + 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x22, 0x3b, 0x0a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x68, 0x69, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x61, 0x31, + 0x34, 0x20, 0x61, 0x31, 0x33, 0x20, 0x61, 0x31, 0x32, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x31, 0x31, 0x20, 0x61, 0x31, 0x30, 0x20, 0x20, 0x61, 0x39, + 0x20, 0x20, 0x61, 0x38, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x61, + 0x37, 0x20, 0x20, 0x61, 0x36, 0x20, 0x20, 0x61, 0x35, 0x20, 0x20, 0x61, + 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x33, 0x20, 0x20, 0x61, 0x32, + 0x20, 0x20, 0x61, 0x31, 0x20, 0x20, 0x61, 0x30, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, + 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, + 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x20, 0x6f, + 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6c, 0x6f, 0x61, 0x64, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x6f, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x22, 0x2c, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x22, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x61, 0x35, 0x20, 0x20, 0x61, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, + 0x33, 0x20, 0x20, 0x61, 0x32, 0x20, 0x20, 0x61, 0x31, 0x20, 0x20, 0x61, + 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x69, 0x20, 0x20, + 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, + 0x69, 0x20, 0x20, 0x20, 0x69, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x68, 0x69, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, + 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x20, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x78, 0x20, + 0x20, 0x20, 0x78, 0x20, 0x20, 0x61, 0x35, 0x20, 0x20, 0x61, 0x34, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x61, 0x33, 0x20, 0x20, 0x61, 0x32, 0x20, 0x20, + 0x61, 0x31, 0x20, 0x20, 0x61, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, + 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, + 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x20, 0x20, 0x20, 0x69, 0x22, 0x3b, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x70, 0x61, 0x67, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x22, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, + 0x20, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x61, 0x31, + 0x35, 0x20, 0x61, 0x31, 0x34, 0x20, 0x61, 0x31, 0x33, 0x20, 0x61, 0x31, + 0x32, 0x20, 0x20, 0x20, 0x20, 0x61, 0x31, 0x31, 0x20, 0x61, 0x31, 0x30, + 0x20, 0x20, 0x61, 0x39, 0x20, 0x20, 0x61, 0x38, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x20, 0x61, 0x37, 0x20, 0x20, 0x61, 0x36, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x78, + 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, + 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, + 0x20, 0x20, 0x20, 0x78, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x6d, 0x6f, + 0x64, 0x65, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x34, 0x31, + 0x3b, 0x0a, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x20, 0x20, + 0x3d, 0x20, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x31, 0x32, 0x38, 0x3b, 0x0a, + 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, + 0x3d, 0x20, 0x32, 0x35, 0x36, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x20, 0x22, 0x6c, 0x66, 0x75, 0x73, 0x65, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x31, 0x20, 0x30, 0x20, 0x31, + 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, + 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, + 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, + 0x20, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x22, 0x3b, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x22, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x20, 0x6f, + 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, + 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x22, 0x68, 0x66, + 0x75, 0x73, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, + 0x22, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, + 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, + 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x69, + 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x20, 0x20, 0x69, 0x20, 0x69, 0x20, + 0x69, 0x20, 0x69, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x30, 0x20, + 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, + 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, + 0x6f, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, + 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x69, 0x6e, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x5f, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, + 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x20, 0x22, 0x65, 0x66, 0x75, 0x73, 0x65, 0x22, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, + 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x31, 0x20, 0x30, 0x20, 0x31, + 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, + 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, + 0x31, 0x20, 0x30, 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, + 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x20, 0x69, 0x22, 0x3b, 0x0a, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x22, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x30, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x20, 0x6f, + 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, + 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x6d, 0x61, 0x78, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x22, 0x6c, 0x6f, + 0x63, 0x6b, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, 0x64, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, + 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x20, 0x20, 0x31, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x22, + 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x6f, + 0x20, 0x6f, 0x20, 0x6f, 0x22, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x22, 0x31, + 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x20, 0x20, 0x31, 0x20, 0x31, 0x20, 0x31, 0x20, + 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x22, 0x2c, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x22, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, + 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x20, 0x31, + 0x20, 0x31, 0x20, 0x69, 0x20, 0x69, 0x20, 0x20, 0x69, 0x20, 0x69, 0x20, + 0x69, 0x20, 0x69, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, + 0x78, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x20, 0x3d, 0x20, 0x39, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x22, 0x63, 0x61, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x31, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3d, 0x20, 0x22, 0x30, 0x20, 0x30, 0x20, 0x31, 0x20, 0x31, 0x20, + 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, + 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x78, + 0x20, 0x78, 0x20, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x30, 0x20, + 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x30, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, + 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x20, 0x6f, 0x22, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x22, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x33, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, + 0x61, 0x64, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3d, 0x20, 0x22, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x31, + 0x20, 0x20, 0x31, 0x20, 0x20, 0x20, 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, + 0x30, 0x20, 0x20, 0x30, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x20, 0x20, 0x78, 0x20, 0x20, 0x78, + 0x20, 0x20, 0x78, 0x20, 0x20, 0x78, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, + 0x78, 0x20, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x20, + 0x20, 0x78, 0x20, 0x20, 0x78, 0x20, 0x61, 0x31, 0x20, 0x61, 0x30, 0x20, + 0x20, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x6f, + 0x20, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x20, 0x6f, 0x20, 0x20, + 0x6f, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3b, 0x0a, + 0x20, 0x20, 0x3b, 0x0a, 0x0a, 0x0a, + 0, 0 +}; +const size_t avrdude_slic3r_conf_size = 14178; +const size_t avrdude_slic3r_conf_size_yy = 14180; diff --git a/src/avrdude/avrdude-slic3r.cpp b/src/avrdude/avrdude-slic3r.cpp index b561cd84332..7eff436e2ed 100644 --- a/src/avrdude/avrdude-slic3r.cpp +++ b/src/avrdude/avrdude-slic3r.cpp @@ -204,6 +204,18 @@ AvrDude::Ptr AvrDude::run() message_fn("\n", 1); } + if (self->p->complete_fn) { + self->p->complete_fn(); + } + } catch (...) { + self->p->exit_code = EXIT_EXCEPTION; + + static const char *msg = "An unkown exception was thrown in the background thread.\n"; + + if (self->p->message_fn) { + self->p->message_fn(msg, sizeof(msg)); + } + if (self->p->complete_fn) { self->p->complete_fn(); } diff --git a/src/avrdude/avrdude.1 b/src/avrdude/avrdude.1 index 47ca4eddec8..65fc7b1d622 100644 --- a/src/avrdude/avrdude.1 +++ b/src/avrdude/avrdude.1 @@ -505,19 +505,12 @@ network connection to (TCP) on .Ar host is established. -Square brackets may be placed around -.Ar host -to improve readability, for numeric IPv6 addresses (e.g. -.Li net:[2001:db8::42]:1337 ) . The remote endpoint is assumed to be a terminal or console server that connects the network stream to a local serial port where the actual programmer has been attached to. The port is assumed to be properly configured, for example using a transparent 8-bit data connection without parity at 115200 Baud for a STK500. -.Pp -Note: The ability to handle IPv6 hostnames and addresses is limited to -Posix systems (by now). .It Fl q Disable (or quell) output of the progress bar while reading or writing to the device. Specify it a second time for even quieter operation. diff --git a/src/avrdude/conf-generate.cpp b/src/avrdude/conf-generate.cpp index e61f42eb4b3..4aa80ae0aff 100644 --- a/src/avrdude/conf-generate.cpp +++ b/src/avrdude/conf-generate.cpp @@ -6,42 +6,36 @@ int main(int argc, char const *argv[]) { - if (argc != 4) { - std::cerr << "Usage: " << argv[0] << " " << std::endl; + if (argc != 3) { + std::cerr << "Usage: " << argv[0] << " " << std::endl; return -1; } - const char* filename_in = argv[1]; + const char* filename = argv[1]; const char* symbol = argv[2]; - const char* filename_out = argv[3]; size_t size = 0; - std::fstream file(filename_in, std::ios::in | std::ios::binary); + std::fstream file(filename); if (!file.good()) { - std::cerr << "Cannot read file: " << filename_in << std::endl; + std::cerr << "Cannot read file: " << filename << std::endl; } - std::fstream output(filename_out, std::ios::out | std::ios::trunc); - if (!output.good()) { - std::cerr << "Cannot open output file: " << filename_out << std::endl; - } - - output << "/* WARN: This file is auto-generated from `" << filename_in << "` */" << std::endl; - output << "const unsigned char " << symbol << "[] = {"; + std::cout << "/* WARN: This file is auto-generated from `" << filename << "` */" << std::endl; + std::cout << "const unsigned char " << symbol << "[] = {"; char c; - output << std::hex; - output.fill('0'); + std::cout << std::hex; + std::cout.fill('0'); for (file.get(c); !file.eof(); size++, file.get(c)) { - if (size % 12 == 0) { output << "\n "; } - output << "0x" << std::setw(2) << (unsigned)c << ", "; + if (size % 12 == 0) { std::cout << "\n "; } + std::cout << "0x" << std::setw(2) << (unsigned)c << ", "; } - output << "\n 0, 0\n};\n"; + std::cout << "\n 0, 0\n};\n"; - output << std::dec; - output << "const size_t " << symbol << "_size = " << size << ";" << std::endl; - output << "const size_t " << symbol << "_size_yy = " << size + 2 << ";" << std::endl; + std::cout << std::dec; + std::cout << "const size_t " << symbol << "_size = " << size << ";" << std::endl; + std::cout << "const size_t " << symbol << "_size_yy = " << size + 2 << ";" << std::endl; return 0; } diff --git a/src/avrdude/configure.ac b/src/avrdude/configure.ac index d14fc545f2a..a23a959f236 100644 --- a/src/avrdude/configure.ac +++ b/src/avrdude/configure.ac @@ -214,7 +214,7 @@ AC_HEADER_TIME AC_CHECK_LIB([ws2_32], [puts]) # Checks for library functions. -AC_CHECK_FUNCS([memset select strcasecmp strdup strerror strncasecmp strtol strtoul gettimeofday usleep getaddrinfo]) +AC_CHECK_FUNCS([memset select strcasecmp strdup strerror strncasecmp strtol strtoul gettimeofday usleep]) AC_MSG_CHECKING([for a Win32 HID libray]) SAVED_LIBS="${LIBS}" diff --git a/src/avrdude/doc/avrdude.texi b/src/avrdude/doc/avrdude.texi index 7062a9920b4..6941389dfc1 100644 --- a/src/avrdude/doc/avrdude.texi +++ b/src/avrdude/doc/avrdude.texi @@ -557,9 +557,6 @@ higher level protocol (as opposed to bit-bang style programmers), In this case, instead of trying to open a local device, a TCP network connection to (TCP) @var{port} on @var{host} is established. -Square brackets may be placed around @var{host} to improve -readability for numeric IPv6 addresses (e.g. -@code{net:[2001:db8::42]:1337}). The remote endpoint is assumed to be a terminal or console server that connects the network stream to a local serial port where the actual programmer has been attached to. @@ -567,8 +564,6 @@ The port is assumed to be properly configured, for example using a transparent 8-bit data connection without parity at 115200 Baud for a STK500. -Note: The ability to handle IPv6 hostnames and addresses is limited to -Posix systems (by now). @item -q Disable (or quell) output of the progress bar while reading or writing diff --git a/src/avrdude/lexer.c b/src/avrdude/lexer.c index 46d88170f5a..f2d8adb4bcb 100644 --- a/src/avrdude/lexer.c +++ b/src/avrdude/lexer.c @@ -30,7 +30,7 @@ /* C99 systems have . Non-C99 systems may or may not. */ -#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(_MSC_VER) +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. diff --git a/src/avrdude/main-standalone.cpp b/src/avrdude/main-standalone.cpp index f7cd6d1d4a8..df6d79e1367 100644 --- a/src/avrdude/main-standalone.cpp +++ b/src/avrdude/main-standalone.cpp @@ -38,10 +38,6 @@ struct ArgvUtf8 : std::vector } }; -#endif - -#ifdef _MSC_VER - int wmain(int argc_w, wchar_t *argv_w[]) { ArgvUtf8 argv_utf8(argc_w, argv_w); diff --git a/src/avrdude/ser_posix.c b/src/avrdude/ser_posix.c index dfa02f9fe41..e2afd1c09b1 100644 --- a/src/avrdude/ser_posix.c +++ b/src/avrdude/ser_posix.c @@ -90,7 +90,7 @@ static speed_t serial_baud_lookup(long baud) * If a non-standard BAUD rate is used, issue * a warning (if we are verbose) and return the raw rate */ - avrdude_message(MSG_NOTICE, "%s: serial_baud_lookup(): Using non-standard baud rate: %ld\n", + avrdude_message(MSG_NOTICE, "%s: serial_baud_lookup(): Using non-standard baud rate: %ld", progname, baud); return baud; @@ -110,7 +110,7 @@ static int ser_setspeed(union filedescriptor *fd, long baud) */ rc = tcgetattr(fd->ifd, &termios); if (rc < 0) { - avrdude_message(MSG_INFO, "%s: ser_setspeed(): tcgetattr() failed\n", + avrdude_message(MSG_INFO, "%s: ser_setspeed(): tcgetattr() failed", progname); return -errno; } @@ -150,7 +150,6 @@ static int ser_setspeed(union filedescriptor *fd, long baud) return 0; } -#include "ac_cfg.h" // Timeout read & write variants // Additionally to the regular -1 on I/O error, they return -2 on timeout @@ -222,35 +221,23 @@ ssize_t write_timeout(int fd, const void *buf, size_t count, long timeout) static int net_open(const char *port, union filedescriptor *fdp) { -#ifdef HAVE_GETADDRINFO - char *hp, *hstr, *pstr; - int s, fd, ret = -1; - struct addrinfo hints; - struct addrinfo *result, *rp; + char *hstr, *pstr, *end; + unsigned int pnum; + int fd; + struct sockaddr_in sockaddr; + struct hostent *hp; - if ((hstr = hp = strdup(port)) == NULL) { + if ((hstr = strdup(port)) == NULL) { avrdude_message(MSG_INFO, "%s: net_open(): Out of memory!\n", progname); return -1; } - /* - * As numeric IPv6 addresses use colons as separators, we need to - * look for the last colon here, which separates the port number or - * service name from the host or IP address. - */ - if (((pstr = strrchr(hstr, ':')) == NULL) || (pstr == hstr)) { + if (((pstr = strchr(hstr, ':')) == NULL) || (pstr == hstr)) { avrdude_message(MSG_INFO, "%s: net_open(): Mangled host:port string \"%s\"\n", progname, hstr); - goto error; - } - - /* - * Remove brackets from the host part, if present. - */ - if (*hstr == '[' && *(pstr-1) == ']') { - hstr++; - *(pstr-1) = '\0'; + free(hstr); + return -1; } /* @@ -258,49 +245,43 @@ net_open(const char *port, union filedescriptor *fdp) */ *pstr++ = '\0'; - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - s = getaddrinfo(hstr, pstr, &hints, &result); - - if (s != 0) { - avrdude_message(MSG_INFO, - "%s: net_open(): Cannot resolve " - "host=\"%s\", port=\"%s\": %s\n", - progname, hstr, pstr, gai_strerror(s)); - goto error; + pnum = strtoul(pstr, &end, 10); + + if ((*pstr == '\0') || (*end != '\0') || (pnum == 0) || (pnum > 65535)) { + avrdude_message(MSG_INFO, "%s: net_open(): Bad port number \"%s\"\n", + progname, pstr); + free(hstr); + return -1; } - for (rp = result; rp != NULL; rp = rp->ai_next) { - fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); - if (fd == -1) { - /* This one failed, loop over */ - continue; - } - if (connect(fd, rp->ai_addr, rp->ai_addrlen) != -1) { - /* Success, we are connected */ - break; - } - close(fd); + + if ((hp = gethostbyname(hstr)) == NULL) { + avrdude_message(MSG_INFO, "%s: net_open(): unknown host \"%s\"\n", + progname, hstr); + free(hstr); + return -1; } - if (rp == NULL) { - avrdude_message(MSG_INFO, "%s: net_open(): Cannot connect: %s\n", - progname, strerror(errno)); + + free(hstr); + + if ((fd = socket(PF_INET, SOCK_STREAM, 0)) < 0) { + avrdude_message(MSG_INFO, "%s: net_open(): Cannot open socket: %s\n", + progname, strerror(errno)); + return -1; } - else { - fdp->ifd = fd; - ret = 0; + + memset(&sockaddr, 0, sizeof(struct sockaddr_in)); + sockaddr.sin_family = AF_INET; + sockaddr.sin_port = htons(pnum); + memcpy(&(sockaddr.sin_addr.s_addr), hp->h_addr, sizeof(struct in_addr)); + + if (connect(fd, (struct sockaddr *)&sockaddr, sizeof(sockaddr))) { + avrdude_message(MSG_INFO, "%s: net_open(): Connect failed: %s\n", + progname, strerror(errno)); + return -1; } - freeaddrinfo(result); - -error: - free(hp); - return ret; -#else - avrdude_message(MSG_INFO, - "%s: Networking is not supported on your platform.\n" - "If you need it, please open a bug report.\n", progname); - return -1; -#endif /* HAVE_GETADDRINFO */ + + fdp->ifd = fd; + return 0; } diff --git a/src/avrdude/windows/unistd.h b/src/avrdude/windows/unistd.h index c88b780bfa1..95ba79a3468 100644 --- a/src/avrdude/windows/unistd.h +++ b/src/avrdude/windows/unistd.h @@ -63,15 +63,10 @@ extern "C" { #define STDOUT_FILENO 1 #define STDERR_FILENO 2 -#if defined(_MSC_VER) && defined(__clang__) -#include -struct timezone; -struct timeval; -#else #ifndef __cplusplus /* should be in some equivalent to */ typedef __int8 int8_t; -typedef __int16 int16_t; +typedef __int16 int16_t; typedef __int32 int32_t; typedef __int64 int64_t; typedef unsigned __int8 uint8_t; @@ -79,7 +74,6 @@ typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; typedef unsigned __int64 uint64_t; #endif -#endif int usleep(unsigned usec); diff --git a/src/build-utils/CMakeLists.txt b/src/build-utils/CMakeLists.txt deleted file mode 100644 index d47e5b97ffd..00000000000 --- a/src/build-utils/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ - -option(SLIC3R_ENC_CHECK "Verify encoding of source files" 1) - -if (SLIC3R_ENC_CHECK) - add_executable(encoding-check encoding-check.cpp) - - # A global no-op target which depends on all encodings checks, - # and on which in turn all checked targets depend. - # This is done to make encoding checks the first thing to be - # performed before actually compiling any sources of the checked targets - # to make the check fail as early as possible. - add_custom_target(global-encoding-check - ALL - DEPENDS encoding-check - ) -endif() - -# Function that adds source file encoding check to a target -# using the above encoding-check binary - -function(encoding_check TARGET) - if (SLIC3R_ENC_CHECK) - # Obtain target source files - get_target_property(T_SOURCES ${TARGET} SOURCES) - - # Define top-level encoding check target for this ${TARGET} - add_custom_target(encoding-check-${TARGET} - DEPENDS encoding-check ${T_SOURCES} - COMMENT "Checking source files encodings for target ${TARGET}" - ) - - # Add checking of each source file as a subcommand of encoding-check-${TARGET} - foreach(file ${T_SOURCES}) - add_custom_command(TARGET encoding-check-${TARGET} - COMMAND $ ${TARGET} ${file} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - ) - endforeach() - - # This adds dependency on encoding-check-${TARGET} to ${TARET} - # via the global-encoding-check - add_dependencies(global-encoding-check encoding-check-${TARGET}) - add_dependencies(${TARGET} global-encoding-check) - endif() -endfunction() diff --git a/src/build-utils/encoding-check.cpp b/src/build-utils/encoding-check.cpp deleted file mode 100644 index afd5318b17d..00000000000 --- a/src/build-utils/encoding-check.cpp +++ /dev/null @@ -1,119 +0,0 @@ -#include -#include -#include -#include - - -/* - * The utf8_check() function scans the '\0'-terminated string starting - * at s. It returns a pointer to the first byte of the first malformed - * or overlong UTF-8 sequence found, or NULL if the string contains - * only correct UTF-8. It also spots UTF-8 sequences that could cause - * trouble if converted to UTF-16, namely surrogate characters - * (U+D800..U+DFFF) and non-Unicode positions (U+FFFE..U+FFFF). This - * routine is very likely to find a malformed sequence if the input - * uses any other encoding than UTF-8. It therefore can be used as a - * very effective heuristic for distinguishing between UTF-8 and other - * encodings. - * - * I wrote this code mainly as a specification of functionality; there - * are no doubt performance optimizations possible for certain CPUs. - * - * Markus Kuhn -- 2005-03-30 - * License: http://www.cl.cam.ac.uk/~mgk25/short-license.html - */ - -unsigned char *utf8_check(unsigned char *s) -{ - while (*s) { - if (*s < 0x80) { - // 0xxxxxxx - s++; - } else if ((s[0] & 0xe0) == 0xc0) { - // 110xxxxx 10xxxxxx - if ((s[1] & 0xc0) != 0x80 || - (s[0] & 0xfe) == 0xc0) { // overlong? - return s; - } else { - s += 2; - } - } else if ((s[0] & 0xf0) == 0xe0) { - // 1110xxxx 10xxxxxx 10xxxxxx - if ((s[1] & 0xc0) != 0x80 || - (s[2] & 0xc0) != 0x80 || - (s[0] == 0xe0 && (s[1] & 0xe0) == 0x80) || // overlong? - (s[0] == 0xed && (s[1] & 0xe0) == 0xa0) || // surrogate? - (s[0] == 0xef && s[1] == 0xbf && - (s[2] & 0xfe) == 0xbe)) { // U+FFFE or U+FFFF? - return s; - } else { - s += 3; - } - } else if ((s[0] & 0xf8) == 0xf0) { - // 11110xxX 10xxxxxx 10xxxxxx 10xxxxxx - if ((s[1] & 0xc0) != 0x80 || - (s[2] & 0xc0) != 0x80 || - (s[3] & 0xc0) != 0x80 || - (s[0] == 0xf0 && (s[1] & 0xf0) == 0x80) || // overlong? - (s[0] == 0xf4 && s[1] > 0x8f) || s[0] > 0xf4) { // > U+10FFFF? - return s; - } else { - s += 4; - } - } else { - return s; - } - } - - return NULL; -} - - -int main(int argc, char const *argv[]) -{ - if (argc != 3) { - std::cerr << "Usage: " << argv[0] << " " << std::endl; - return -1; - } - - const char* target = argv[1]; - const char* filename = argv[2]; - - const auto error_exit = [=](const char* error) { - std::cerr << "\n\tError: " << error << ": " << filename << "\n" - << "\tTarget: " << target << "\n" - << std::endl; - std::exit(-2); - }; - - std::ifstream file(filename, std::ios::binary | std::ios::ate); - const std::streampos size = file.tellg(); - - if (size == std::streampos{ 0 }) { - return 0; - } - - file.seekg(0, std::ios::beg); - std::vector buffer(size); - - if (file.read(buffer.data(), size)) { - buffer.push_back('\0'); - - // Check UTF-8 validity - if (utf8_check(reinterpret_cast(buffer.data())) != nullptr) { - error_exit("Source file does not contain (valid) UTF-8"); - } - - // Check against a BOM mark - if (buffer.size() >= 3 - && buffer[0] == '\xef' - && buffer[1] == '\xbb' - && buffer[2] == '\xbf') { - error_exit("Source file is valid UTF-8 but contains a BOM mark"); - } - } else { - error_exit("Could not read source file"); - } - - return 0; -} diff --git a/src/clipper/CMakeLists.txt b/src/clipper/CMakeLists.txt index 412ab53c7d4..d6f3861dce8 100644 --- a/src/clipper/CMakeLists.txt +++ b/src/clipper/CMakeLists.txt @@ -4,6 +4,4 @@ cmake_minimum_required(VERSION 2.6) add_library(clipper STATIC clipper.cpp clipper.hpp - clipper_z.cpp - clipper_z.hpp ) diff --git a/src/clipper/clipper.cpp b/src/clipper/clipper.cpp index b85cf9025e7..228e0c6ef61 100644 --- a/src/clipper/clipper.cpp +++ b/src/clipper/clipper.cpp @@ -51,11 +51,7 @@ #include #include -#ifdef use_xyz -namespace ClipperLib_Z { -#else /* use_xyz */ namespace ClipperLib { -#endif /* use_xyz */ static double const pi = 3.141592653589793238; static double const two_pi = pi *2; @@ -1620,7 +1616,7 @@ void Clipper::SetZ(IntPoint& pt, TEdge& e1, TEdge& e2) else if (pt == e1.Top) pt.Z = e1.Top.Z; else if (pt == e2.Bot) pt.Z = e2.Bot.Z; else if (pt == e2.Top) pt.Z = e2.Top.Z; - else m_ZFill(e1.Bot, e1.Top, e2.Bot, e2.Top, pt); + else (*m_ZFill)(e1.Bot, e1.Top, e2.Bot, e2.Top, pt); } //------------------------------------------------------------------------------ #endif diff --git a/src/clipper/clipper.hpp b/src/clipper/clipper.hpp index 8b34779e3af..8a28fe46f78 100644 --- a/src/clipper/clipper.hpp +++ b/src/clipper/clipper.hpp @@ -35,7 +35,6 @@ #define clipper_hpp #include -#include #define CLIPPER_VERSION "6.2.6" @@ -57,11 +56,7 @@ #include #include -#ifdef use_xyz -namespace ClipperLib_Z { -#else /* use_xyz */ namespace ClipperLib { -#endif /* use_xyz */ enum ClipType { ctIntersection, ctUnion, ctDifference, ctXor }; enum PolyType { ptSubject, ptClip }; @@ -119,7 +114,7 @@ struct DoublePoint //------------------------------------------------------------------------------ #ifdef use_xyz -typedef std::function ZFillCallback; +typedef void (*ZFillCallback)(IntPoint& e1bot, IntPoint& e1top, IntPoint& e2bot, IntPoint& e2top, IntPoint& pt); #endif enum InitOptions {ioReverseSolution = 1, ioStrictlySimple = 2, ioPreserveCollinear = 4}; diff --git a/src/clipper/clipper_z.cpp b/src/clipper/clipper_z.cpp deleted file mode 100644 index 4a54ef34679..00000000000 --- a/src/clipper/clipper_z.cpp +++ /dev/null @@ -1,7 +0,0 @@ -// Hackish wrapper around the ClipperLib library to compile the Clipper library with the Z support. - -// Enable the Z coordinate support. -#define use_xyz - -// and let it compile -#include "clipper.cpp" diff --git a/src/clipper/clipper_z.hpp b/src/clipper/clipper_z.hpp deleted file mode 100644 index 0f31ac11c56..00000000000 --- a/src/clipper/clipper_z.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// Hackish wrapper around the ClipperLib library to compile the Clipper library with the Z support. - -#ifndef clipper_z_hpp -#ifdef clipper_hpp -#error "You should include the clipper_z.hpp first" -#endif - -#define clipper_z_hpp - -// Enable the Z coordinate support. -#define use_xyz - -#include "clipper.hpp" - -#undef clipper_hpp -#undef use_xyz - -#endif clipper_z_hpp diff --git a/src/libigl/igl/SortableRow.h b/src/libigl/igl/SortableRow.h index 182bf813433..5f172987bfb 100644 --- a/src/libigl/igl/SortableRow.h +++ b/src/libigl/igl/SortableRow.h @@ -1,9 +1,9 @@ // This file is part of libigl, a simple c++ geometry processing library. -// +// // Copyright (C) 2013 Alec Jacobson -// -// This Source Code Form is subject to the terms of the Mozilla Public License -// v. 2.0. If a copy of the MPL was not distributed with this file, You can +// +// This Source Code Form is subject to the terms of the Mozilla Public License +// v. 2.0. If a copy of the MPL was not distributed with this file, You can // obtain one at http://mozilla.org/MPL/2.0/. #ifndef IGL_SORTABLE_ROW_H #define IGL_SORTABLE_ROW_H @@ -14,53 +14,57 @@ namespace igl { -// Templates: -// T should be a matrix that implements .size(), and operator(int i) -template -class SortableRow -{ -public: - T data; -public: - SortableRow():data(){}; - SortableRow(const T & data):data(data){}; - bool operator<(const SortableRow & that) const - { + // Templates: + // T should be a matrix that implements .size(), and operator(int i) + template + class SortableRow + { + public: + T data; + public: + SortableRow():data(){}; + SortableRow(const T & data):data(data){}; + bool operator<(const SortableRow & that) const + { + // Get reference so that I can use parenthesis + const SortableRow & THIS = *this; // Lexicographical - int minc = (this->data.size() < that.data.size()? - this->data.size() : that.data.size()); + int minc = (THIS.data.size() < that.data.size()? + THIS.data.size() : that.data.size()); // loop over columns for(int i = 0;idata(i) == that.data(i)) - { - continue; - } - return this->data(i) < that.data(i); + if(THIS.data(i) == that.data(i)) + { + continue; + } + return THIS.data(i) < that.data(i); } // All characters the same, comes done to length - return this->data.size()data.size() != that.data.size()) + return THIS.data.size() & THIS = *this; + if(THIS.data.size() != that.data.size()) { - return false; + return false; } - for(int i = 0;idata.size();i++) + for(int i = 0;idata(i) != that.data(i)) - { - return false; - } + if(THIS.data(i) != that.data(i)) + { + return false; + } } return true; - }; - bool operator!=(const SortableRow & that) const - { + }; + bool operator!=(const SortableRow & that) const + { return !(*this == that); - }; -}; + }; + }; } #endif diff --git a/src/libigl/igl/ray_box_intersect.cpp b/src/libigl/igl/ray_box_intersect.cpp index 088273f255d..8c6346d86d6 100644 --- a/src/libigl/igl/ray_box_intersect.cpp +++ b/src/libigl/igl/ray_box_intersect.cpp @@ -1,12 +1,12 @@ // This file is part of libigl, a simple c++ geometry processing library. -// +// // Copyright (C) 2016 Alec Jacobson -// -// This Source Code Form is subject to the terms of the Mozilla Public License -// v. 2.0. If a copy of the MPL was not distributed with this file, You can +// +// This Source Code Form is subject to the terms of the Mozilla Public License +// v. 2.0. If a copy of the MPL was not distributed with this file, You can // obtain one at http://mozilla.org/MPL/2.0/. #include "ray_box_intersect.h" -#include +#include template < typename Derivedsource, @@ -27,7 +27,7 @@ IGL_INLINE bool igl::ray_box_intersect( const Eigen::Vector3f& rayo, const Eigen::Vector3f& rayd, const Eigen::Vector3f& bmin, - const Eigen::Vector3f& bmax, + const Eigen::Vector3f& bmax, float & tnear, float & tfar )->bool @@ -35,12 +35,12 @@ IGL_INLINE bool igl::ray_box_intersect( Eigen::Vector3f bnear; Eigen::Vector3f bfar; // Checks for intersection testing on each direction coordinate - // Computes + // Computes float t1, t2; tnear = -1e+6f, tfar = 1e+6f; //, tCube; bool intersectFlag = true; for (int i = 0; i < 3; ++i) { - // std::cout << "coordinate " << i << ": bmin " << bmin(i) << ", bmax " << bmax(i) << std::endl; + // std::cout << "coordinate " << i << ": bmin " << bmin(i) << ", bmax " << bmax(i) << std::endl; assert(bmin(i) <= bmax(i)); if (::fabs(rayd(i)) < 1e-6) { // Ray parallel to axis i-th if (rayo(i) < bmin(i) || rayo(i) > bmax(i)) { @@ -59,12 +59,12 @@ IGL_INLINE bool igl::ray_box_intersect( } // std::cout << " bnear " << bnear(i) << ", bfar " << bfar(i) << std::endl; // Finds the distance parameters t1 and t2 of the two ray-box intersections: - // t1 must be the closest to the ray origin rayo. + // t1 must be the closest to the ray origin rayo. t1 = (bnear(i) - rayo(i)) / rayd(i); t2 = (bfar(i) - rayo(i)) / rayd(i); if (t1 > t2) { std::swap(t1,t2); - } + } // The two intersection values are used to saturate tnear and tfar if (t1 > tnear) { tnear = t1; @@ -72,7 +72,7 @@ IGL_INLINE bool igl::ray_box_intersect( if (t2 < tfar) { tfar = t2; } - // std::cout << " t1 " << t1 << ", t2 " << t2 << ", tnear " << tnear << ", tfar " << tfar + // std::cout << " t1 " << t1 << ", t2 " << t2 << ", tnear " << tnear << ", tfar " << tfar // << " tnear > tfar? " << (tnear > tfar) << ", tfar < 0? " << (tfar < 0) << std::endl; if(tnear > tfar) { intersectFlag = false; @@ -101,11 +101,11 @@ IGL_INLINE bool igl::ray_box_intersect( // This should be precomputed and provided as input typedef Matrix RowVector3S; const RowVector3S inv_dir( 1./dir(0),1./dir(1),1./dir(2)); - const std::array sign = { inv_dir(0)<0, inv_dir(1)<0, inv_dir(2)<0}; + const std::vector sign = { inv_dir(0)<0, inv_dir(1)<0, inv_dir(2)<0}; // http://people.csail.mit.edu/amy/papers/box-jgt.pdf // "An Efficient and Robust Ray–Box Intersection Algorithm" Scalar tymin, tymax, tzmin, tzmax; - std::array bounds = {box.min(),box.max()}; + std::vector bounds = {box.min(),box.max()}; tmin = ( bounds[sign[0]](0) - origin(0)) * inv_dir(0); tmax = ( bounds[1-sign[0]](0) - origin(0)) * inv_dir(0); tymin = (bounds[sign[1]](1) - origin(1)) * inv_dir(1); @@ -146,4 +146,4 @@ IGL_INLINE bool igl::ray_box_intersect( #ifdef IGL_STATIC_LIBRARY template bool igl::ray_box_intersect, Eigen::Matrix, double>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::AlignedBox const&, double const&, double const&, double&, double&); -#endif +#endif \ No newline at end of file diff --git a/src/libigl/igl/ray_mesh_intersect.cpp b/src/libigl/igl/ray_mesh_intersect.cpp index 18060fbadb0..512a35c461e 100644 --- a/src/libigl/igl/ray_mesh_intersect.cpp +++ b/src/libigl/igl/ray_mesh_intersect.cpp @@ -29,9 +29,7 @@ IGL_INLINE bool igl::ray_mesh_intersect( // Should be but can't be const Vector3d s_d = s.template cast(); Vector3d dir_d = dir.template cast(); - hits.clear(); - hits.reserve(F.rows()); - + hits.clear(); // loop over all triangles for(int f = 0;f& shapes) //#define DISABLE_BOOST_SERIALIZE //#define DISABLE_BOOST_UNSERIALIZE -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable: 4244) -#pragma warning(disable: 4267) -#endif // All other operators and algorithms are implemented with boost #include -#ifdef _MSC_VER -#pragma warning(pop) -#endif #endif // CLIPPER_BACKEND_HPP diff --git a/src/libnest2d/include/libnest2d/placers/nfpplacer.hpp b/src/libnest2d/include/libnest2d/placers/nfpplacer.hpp index 1a341d6915a..4ef1fe71d98 100644 --- a/src/libnest2d/include/libnest2d/placers/nfpplacer.hpp +++ b/src/libnest2d/include/libnest2d/placers/nfpplacer.hpp @@ -546,12 +546,7 @@ class _NofitPolyPlacer: public PlacerBoilerplate<_NofitPolyPlacer { return ret; }; - this->template remove_unpackable_items(store_, bin, pconfig); + // Safety test: try to pack each item into an empty bin. If it fails + // then it should be removed from the not_packed list + { auto it = store_.begin(); + while (it != store_.end() && !this->stopcond_()) { + Placer p(bin); p.configure(pconfig); + if(!p.pack(*it, rem(it, store_))) { + it = store_.erase(it); + } else it++; + } + } int acounter = int(store_.size()); std::atomic_flag flg = ATOMIC_FLAG_INIT; diff --git a/src/libnest2d/include/libnest2d/selections/filler.hpp b/src/libnest2d/include/libnest2d/selections/filler.hpp index 3b6527d3e27..19c44bfaae6 100644 --- a/src/libnest2d/include/libnest2d/selections/filler.hpp +++ b/src/libnest2d/include/libnest2d/selections/filler.hpp @@ -30,8 +30,7 @@ class _FillerSelection: public SelectionBoilerplate { TBin&& bin, PConfig&& pconfig = PConfig()) { - using Placer = PlacementStrategyLike; - + store_.clear(); auto total = last-first; store_.reserve(total); @@ -58,12 +57,10 @@ class _FillerSelection: public SelectionBoilerplate { auto sortfunc = [](Item& i1, Item& i2) { return i1.area() > i2.area(); }; - - this->template remove_unpackable_items(store_, bin, pconfig); - + std::sort(store_.begin(), store_.end(), sortfunc); - Placer placer(bin); + PlacementStrategyLike placer(bin); placer.configure(pconfig); auto it = store_.begin(); diff --git a/src/libnest2d/include/libnest2d/selections/firstfit.hpp b/src/libnest2d/include/libnest2d/selections/firstfit.hpp index 373e8b61858..5585e565d52 100644 --- a/src/libnest2d/include/libnest2d/selections/firstfit.hpp +++ b/src/libnest2d/include/libnest2d/selections/firstfit.hpp @@ -77,8 +77,17 @@ class _FirstFitSelection: public SelectionBoilerplate { }; auto& cancelled = this->stopcond_; - - this->template remove_unpackable_items(store_, bin, pconfig); + + // Safety test: try to pack each item into an empty bin. If it fails + // then it should be removed from the list + { auto it = store_.begin(); + while (it != store_.end() && !cancelled()) { + Placer p(bin); p.configure(pconfig); + if(!p.pack(*it)) { + it = store_.erase(it); + } else it++; + } + } auto it = store_.begin(); diff --git a/src/libnest2d/include/libnest2d/selections/selection_boilerplate.hpp b/src/libnest2d/include/libnest2d/selections/selection_boilerplate.hpp index 2df9a26c34b..9ae92fe290c 100644 --- a/src/libnest2d/include/libnest2d/selections/selection_boilerplate.hpp +++ b/src/libnest2d/include/libnest2d/selections/selection_boilerplate.hpp @@ -25,28 +25,6 @@ class SelectionBoilerplate { inline void clear() { packed_bins_.clear(); } protected: - - template - void remove_unpackable_items(Container &c, const Bin &bin, const PCfg& pcfg) - { - // Safety test: try to pack each item into an empty bin. If it fails - // then it should be removed from the list - auto it = c.begin(); - while (it != c.end() && !stopcond_()) { - - // WARNING: The copy of itm needs to be created before Placer. - // Placer is working with references and its destructor still - // manipulates the item this is why the order of stack creation - // matters here. - const Item& itm = *it; - Item cpy{itm}; - - Placer p{bin}; - p.configure(pcfg); - if (!p.pack(cpy)) it = c.erase(it); - else it++; - } - } PackGroup packed_bins_; ProgressFunction progress_ = [](unsigned){}; diff --git a/src/libnest2d/tests/test.cpp b/src/libnest2d/tests/test.cpp index 4a6691415f4..29577344d1d 100644 --- a/src/libnest2d/tests/test.cpp +++ b/src/libnest2d/tests/test.cpp @@ -7,10 +7,6 @@ #include "../tools/svgtools.hpp" #include -#if defined(_MSC_VER) && defined(__clang__) -#define BOOST_NO_CXX17_HDR_STRING_VIEW -#endif - #include "boost/multiprecision/integer.hpp" #include "boost/rational.hpp" diff --git a/src/libslic3r/Arrange.cpp b/src/libslic3r/Arrange.cpp index 52168c92994..b4cfac9546c 100644 --- a/src/libslic3r/Arrange.cpp +++ b/src/libslic3r/Arrange.cpp @@ -12,11 +12,6 @@ #include #include - -#if defined(_MSC_VER) && defined(__clang__) -#define BOOST_NO_CXX17_HDR_STRING_VIEW -#endif - #include #include @@ -133,24 +128,13 @@ class AutoArranger { PConfig m_pconf; // Placement configuration TBin m_bin; double m_bin_area; - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable: 4244) -#pragma warning(disable: 4267) -#endif SpatIndex m_rtree; // spatial index for the normal (bigger) objects SpatIndex m_smallsrtree; // spatial index for only the smaller items -#ifdef _MSC_VER -#pragma warning(pop) -#endif - double m_norm; // A coefficient to scale distances MultiPolygon m_merged_pile; // The already merged pile (vector of items) Box m_pilebb; // The bounding box of the merged pile. - ItemGroup m_remaining; // Remaining items - ItemGroup m_items; // allready packed items - size_t m_item_count = 0; // Number of all items to be packed + ItemGroup m_remaining; // Remaining items (m_items at the beginning) + ItemGroup m_items; // The items to be packed template ArithmeticOnly norm(T val) { @@ -168,6 +152,7 @@ class AutoArranger { const double bin_area = m_bin_area; const SpatIndex& spatindex = m_rtree; const SpatIndex& smalls_spatindex = m_smallsrtree; + const ItemGroup& remaining = m_remaining; // We will treat big items (compared to the print bed) differently auto isBig = [bin_area](double a) { @@ -209,8 +194,8 @@ class AutoArranger { } compute_case; bool bigitems = isBig(item.area()) || spatindex.empty(); - if(bigitems && !m_remaining.empty()) compute_case = BIG_ITEM; - else if (bigitems && m_remaining.empty()) compute_case = LAST_BIG_ITEM; + if(bigitems && !remaining.empty()) compute_case = BIG_ITEM; + else if (bigitems && remaining.empty()) compute_case = LAST_BIG_ITEM; else compute_case = SMALL_ITEM; switch (compute_case) { @@ -235,7 +220,7 @@ class AutoArranger { // The smalles distance from the arranged pile center: double dist = norm(*(std::min_element(dists.begin(), dists.end()))); double bindist = norm(pl::distance(ibb.center(), bincenter)); - dist = 0.8 * dist + 0.2 * bindist; + dist = 0.8 * dist + 0.2*bindist; // Prepare a variable for the alignment score. // This will indicate: how well is the candidate item @@ -267,24 +252,29 @@ class AutoArranger { if(ascore < alignment_score) alignment_score = ascore; } } - + density = std::sqrt(norm(fullbb.width()) * norm(fullbb.height())); - double R = double(m_remaining.size()) / m_item_count; - + // The final mix of the score is the balance between the // distance from the full pile center, the pack density and // the alignment with the neighbors if (result.empty()) - score = 0.50 * dist + 0.50 * density; + score = 0.5 * dist + 0.5 * density; else - score = R * 0.60 * dist + - (1.0 - R) * 0.20 * density + - 0.20 * alignment_score; + score = 0.40 * dist + 0.40 * density + 0.2 * alignment_score; break; } case LAST_BIG_ITEM: { - score = norm(pl::distance(ibb.center(), m_pilebb.center())); + auto mp = m_merged_pile; + mp.emplace_back(item.transformedShape()); + auto chull = sl::convexHull(mp); + + placers::EdgeCache ec(chull); + + double circ = norm(ec.circumference()); + double bcirc = 2.0 * norm(fullbb.width() + fullbb.height()); + score = 0.5 * circ + 0.5 * bcirc; break; } case SMALL_ITEM: { @@ -350,17 +340,9 @@ class AutoArranger { m_pck.configure(m_pconf); } - AutoArranger(const TBin & bin, - std::function progressind, - std::function stopcond) - : AutoArranger{bin, 0 /* no min distance */, progressind, stopcond} - {} - - template inline void operator()(It from, It to) { - m_rtree.clear(); - m_item_count += size_t(to - from); - m_pck.execute(from, to); - m_item_count = 0; + template inline void operator()(Args&&...args) { + m_rtree.clear(); /*m_preload_idx.clear();*/ + m_pck.execute(std::forward(args)...); } inline void preload(std::vector& fixeditems) { @@ -379,7 +361,6 @@ class AutoArranger { } m_pck.configure(m_pconf); - m_item_count += fixeditems.size(); } }; @@ -443,18 +424,6 @@ inline Circle to_lnCircle(const CircleBed& circ) { } // Get the type of bed geometry from a simple vector of points. -void BedShapeHint::reset(BedShapes type) -{ - if (m_type != type) { - if (m_type == bsIrregular) - m_bed.polygon.Slic3r::Polyline::~Polyline(); - else if (type == bsIrregular) - ::new (&m_bed.polygon) Polyline(); - } - - m_type = type; -} - BedShapeHint::BedShapeHint(const Polyline &bed) { auto x = [](const Point& p) { return p(X); }; auto y = [](const Point& p) { return p(Y); }; @@ -523,58 +492,19 @@ BedShapeHint::BedShapeHint(const Polyline &bed) { m_type = BedShapes::bsCircle; m_bed.circ = c; } else { - assert(m_type != BedShapes::bsIrregular); m_type = BedShapes::bsIrregular; - ::new (&m_bed.polygon) Polyline(bed); - } -} - -BedShapeHint &BedShapeHint::operator=(BedShapeHint &&cpy) -{ - reset(cpy.m_type); - - switch(m_type) { - case bsBox: m_bed.box = std::move(cpy.m_bed.box); break; - case bsCircle: m_bed.circ = std::move(cpy.m_bed.circ); break; - case bsIrregular: m_bed.polygon = std::move(cpy.m_bed.polygon); break; - case bsInfinite: m_bed.infbed = std::move(cpy.m_bed.infbed); break; - case bsUnknown: break; - } - - return *this; -} - -BedShapeHint &BedShapeHint::operator=(const BedShapeHint &cpy) -{ - reset(cpy.m_type); - - switch(m_type) { - case bsBox: m_bed.box = cpy.m_bed.box; break; - case bsCircle: m_bed.circ = cpy.m_bed.circ; break; - case bsIrregular: m_bed.polygon = cpy.m_bed.polygon; break; - case bsInfinite: m_bed.infbed = cpy.m_bed.infbed; break; - case bsUnknown: break; + m_bed.polygon = bed; } - - return *this; -} - -template void remove_large_items(std::vector &items, Bin &&bin) -{ - auto it = items.begin(); - while (it != items.end()) - sl::isInside(it->transformedShape(), bin) ? - ++it : it = items.erase(it); } template // Arrange for arbitrary bin type void _arrange( - std::vector & shapes, - std::vector & excludes, - const BinT & bin, - coord_t minobjd, - std::function progressfn, - std::function stopfn) + std::vector & shapes, + std::vector & excludes, + const BinT & bin, + coord_t minobjd, + std::function prind, + std::function stopfn) { // Integer ceiling the min distance from the bed perimeters coord_t md = minobjd - 2 * scaled(0.1 + EPSILON); @@ -583,13 +513,16 @@ void _arrange( auto corrected_bin = bin; sl::offset(corrected_bin, md); - AutoArranger arranger{corrected_bin, progressfn, stopfn}; + AutoArranger arranger{corrected_bin, 0, prind, stopfn}; auto infl = coord_t(std::ceil(minobjd / 2.0)); for (Item& itm : shapes) itm.inflate(infl); for (Item& itm : excludes) itm.inflate(infl); - remove_large_items(excludes, corrected_bin); + auto it = excludes.begin(); + while (it != excludes.end()) + sl::isInside(it->transformedShape(), corrected_bin) ? + ++it : it = excludes.erase(it); // If there is something on the plate if (!excludes.empty()) arranger.preload(excludes); @@ -685,7 +618,7 @@ void arrange(ArrangePolygons & arrangables, _arrange(items, fixeditems, Box::infinite(), min_obj_dist, pri, cfn); break; } - } + }; for(size_t i = 0; i < items.size(); ++i) { clppr::IntPoint tr = items[i].translation(); diff --git a/src/libslic3r/Arrange.hpp b/src/libslic3r/Arrange.hpp index 1cfe1c907d3..c02393dd9ec 100644 --- a/src/libslic3r/Arrange.hpp +++ b/src/libslic3r/Arrange.hpp @@ -39,24 +39,18 @@ enum BedShapes { class BedShapeHint { BedShapes m_type = BedShapes::bsInfinite; - // The union neither calls constructors nor destructors of its members. - // The only member with non-trivial constructor / destructor is the polygon, - // a placement new / delete needs to be called over it. union BedShape_u { // TODO: use variant from cpp17? CircleBed circ; BoundingBox box; Polyline polygon; InfiniteBed infbed{}; ~BedShape_u() {} - BedShape_u() {} + BedShape_u() {}; } m_bed; - // Reset the type, allocate m_bed properly - void reset(BedShapes type); - public: - BedShapeHint(){} + BedShapeHint(){}; /// Get a bed shape hint for arrange() from a naked Polyline. explicit BedShapeHint(const Polyline &polyl); @@ -79,13 +73,38 @@ class BedShapeHint { { if (m_type == BedShapes::bsIrregular) m_bed.polygon.Slic3r::Polyline::~Polyline(); - } + }; BedShapeHint(const BedShapeHint &cpy) { *this = cpy; } BedShapeHint(BedShapeHint &&cpy) { *this = std::move(cpy); } - BedShapeHint &operator=(const BedShapeHint &cpy); - BedShapeHint& operator=(BedShapeHint &&cpy); + BedShapeHint &operator=(const BedShapeHint &cpy) + { + m_type = cpy.m_type; + switch(m_type) { + case bsBox: m_bed.box = cpy.m_bed.box; break; + case bsCircle: m_bed.circ = cpy.m_bed.circ; break; + case bsIrregular: m_bed.polygon = cpy.m_bed.polygon; break; + case bsInfinite: m_bed.infbed = cpy.m_bed.infbed; break; + case bsUnknown: break; + } + + return *this; + } + + BedShapeHint& operator=(BedShapeHint &&cpy) + { + m_type = cpy.m_type; + switch(m_type) { + case bsBox: m_bed.box = std::move(cpy.m_bed.box); break; + case bsCircle: m_bed.circ = std::move(cpy.m_bed.circ); break; + case bsIrregular: m_bed.polygon = std::move(cpy.m_bed.polygon); break; + case bsInfinite: m_bed.infbed = std::move(cpy.m_bed.infbed); break; + case bsUnknown: break; + } + + return *this; + } BedShapes get_type() const { return m_type; } diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index 73abe1f16ac..6865be226f9 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -5,10 +5,6 @@ include(PrecompiledHeader) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libslic3r_version.h.in ${CMAKE_CURRENT_BINARY_DIR}/libslic3r_version.h @ONLY) -if (MINGW) - add_compile_options(-Wa,-mbig-obj) -endif () - add_library(libslic3r STATIC pchheader.cpp pchheader.hpp @@ -76,7 +72,7 @@ add_library(libslic3r STATIC GCode/CoolingBuffer.cpp GCode/CoolingBuffer.hpp GCode/PostProcessor.cpp - GCode/PostProcessor.hpp + GCode/PostProcessor.hpp # GCode/PressureEqualizer.cpp # GCode/PressureEqualizer.hpp GCode/PreviewData.cpp @@ -131,8 +127,6 @@ add_library(libslic3r STATIC Point.hpp Polygon.cpp Polygon.hpp - PolygonTrimmer.cpp - PolygonTrimmer.hpp Polyline.cpp Polyline.hpp PolylineCollection.cpp @@ -145,7 +139,6 @@ add_library(libslic3r STATIC PrintConfig.hpp PrintObject.cpp PrintRegion.cpp - Semver.cpp SLAPrint.cpp SLAPrint.hpp SLA/SLAAutoSupports.hpp @@ -169,8 +162,6 @@ add_library(libslic3r STATIC TriangleMesh.hpp utils.cpp Utils.hpp - Time.cpp - Time.hpp MTUtils.hpp Zipper.hpp Zipper.cpp @@ -195,8 +186,6 @@ add_library(libslic3r STATIC SLA/SLARasterWriter.cpp ) -encoding_check(libslic3r) - if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY) add_precompiled_header(libslic3r pchheader.hpp FORCEINCLUDE) endif () diff --git a/src/libslic3r/Config.hpp b/src/libslic3r/Config.hpp index 2acdf159bda..ede5a16e72e 100644 --- a/src/libslic3r/Config.hpp +++ b/src/libslic3r/Config.hpp @@ -138,9 +138,9 @@ class ConfigOption { virtual ConfigOption* clone() const = 0; // Set a value from a ConfigOption. The two options should be compatible. virtual void set(const ConfigOption *option) = 0; - virtual int getInt() const { throw std::runtime_error("Calling ConfigOption::getInt on a non-int ConfigOption"); } - virtual double getFloat() const { throw std::runtime_error("Calling ConfigOption::getFloat on a non-float ConfigOption"); } - virtual bool getBool() const { throw std::runtime_error("Calling ConfigOption::getBool on a non-boolean ConfigOption"); } + virtual int getInt() const { throw std::runtime_error("Calling ConfigOption::getInt on a non-int ConfigOption"); return 0; } + virtual double getFloat() const { throw std::runtime_error("Calling ConfigOption::getFloat on a non-float ConfigOption"); return 0; } + virtual bool getBool() const { throw std::runtime_error("Calling ConfigOption::getBool on a non-boolean ConfigOption"); return 0; } virtual void setInt(int /* val */) { throw std::runtime_error("Calling ConfigOption::setInt on a non-int ConfigOption"); } virtual bool operator==(const ConfigOption &rhs) const = 0; bool operator!=(const ConfigOption &rhs) const { return ! (*this == rhs); } @@ -225,12 +225,6 @@ class ConfigOptionVectorBase : public ConfigOption { // Is the value nil? That should only be possible if this->nullable(). virtual bool is_nil(size_t idx) const = 0; - // We just overloaded and hid two base class virtual methods. - // Let's show it was intentional (warnings). - using ConfigOption::set; - using ConfigOption::is_nil; - - protected: // Used to verify type compatibility when assigning to / from a scalar ConfigOption. ConfigOptionType scalar_type() const { return static_cast(this->type() - coVectorType); } @@ -402,7 +396,7 @@ class ConfigOptionVector : public ConfigOptionVectorBase this->values[i] = rhs_vec->values[i]; modified = true; } - return modified; + return false; } private: @@ -571,7 +565,7 @@ class ConfigOptionInt : public ConfigOptionSingle static ConfigOptionType static_type() { return coInt; } ConfigOptionType type() const override { return static_type(); } int getInt() const override { return this->value; } - void setInt(int val) override { this->value = val; } + void setInt(int val) { this->value = val; } ConfigOption* clone() const override { return new ConfigOptionInt(*this); } bool operator==(const ConfigOptionInt &rhs) const { return this->value == rhs.value; } @@ -729,7 +723,7 @@ class ConfigOptionStrings : public ConfigOptionVector ConfigOption* clone() const override { return new ConfigOptionStrings(*this); } ConfigOptionStrings& operator=(const ConfigOption *opt) { this->set(opt); return *this; } bool operator==(const ConfigOptionStrings &rhs) const { return this->values == rhs.values; } - bool is_nil(size_t) const override { return false; } + bool is_nil(size_t idx) const override { return false; } std::string serialize() const override { @@ -944,7 +938,7 @@ class ConfigOptionPoints : public ConfigOptionVector ConfigOption* clone() const override { return new ConfigOptionPoints(*this); } ConfigOptionPoints& operator=(const ConfigOption *opt) { this->set(opt); return *this; } bool operator==(const ConfigOptionPoints &rhs) const { return this->values == rhs.values; } - bool is_nil(size_t) const override { return false; } + bool is_nil(size_t idx) const override { return false; } std::string serialize() const override { @@ -1529,7 +1523,7 @@ class ConfigBase // Both opt_key and value may be modified by handle_legacy(). // If the opt_key is no more valid in this version of Slic3r, opt_key is cleared by handle_legacy(). // handle_legacy() is called internally by set_deserialize(). - virtual void handle_legacy(t_config_option_key &/*opt_key*/, std::string &/*value*/) const {} + virtual void handle_legacy(t_config_option_key &opt_key, std::string &value) const {} public: // Non-virtual methods: @@ -1603,7 +1597,7 @@ class DynamicConfig : public virtual ConfigBase DynamicConfig() {} DynamicConfig(const DynamicConfig& other) { *this = other; } DynamicConfig(DynamicConfig&& other) : options(std::move(other.options)) { other.options.clear(); } - virtual ~DynamicConfig() override { clear(); } + virtual ~DynamicConfig() { clear(); } // Copy a content of one DynamicConfig to another DynamicConfig. // If rhs.def() is not null, then it has to be equal to this->def(). @@ -1724,14 +1718,14 @@ class DynamicConfig : public virtual ConfigBase const std::string& opt_string(const t_config_option_key &opt_key, unsigned int idx) const { return const_cast(this)->opt_string(opt_key, idx); } double& opt_float(const t_config_option_key &opt_key) { return this->option(opt_key)->value; } - const double& opt_float(const t_config_option_key &opt_key) const { return dynamic_cast(this->option(opt_key))->value; } + const double opt_float(const t_config_option_key &opt_key) const { return dynamic_cast(this->option(opt_key))->value; } double& opt_float(const t_config_option_key &opt_key, unsigned int idx) { return this->option(opt_key)->get_at(idx); } - const double& opt_float(const t_config_option_key &opt_key, unsigned int idx) const { return dynamic_cast(this->option(opt_key))->get_at(idx); } + const double opt_float(const t_config_option_key &opt_key, unsigned int idx) const { return dynamic_cast(this->option(opt_key))->get_at(idx); } int& opt_int(const t_config_option_key &opt_key) { return this->option(opt_key)->value; } - int opt_int(const t_config_option_key &opt_key) const { return dynamic_cast(this->option(opt_key))->value; } + const int opt_int(const t_config_option_key &opt_key) const { return dynamic_cast(this->option(opt_key))->value; } int& opt_int(const t_config_option_key &opt_key, unsigned int idx) { return this->option(opt_key)->get_at(idx); } - int opt_int(const t_config_option_key &opt_key, unsigned int idx) const { return dynamic_cast(this->option(opt_key))->get_at(idx); } + const int opt_int(const t_config_option_key &opt_key, unsigned int idx) const { return dynamic_cast(this->option(opt_key))->get_at(idx); } template ENUM opt_enum(const t_config_option_key &opt_key) const { return (ENUM)dynamic_cast(this->option(opt_key))->value; } diff --git a/src/libslic3r/EdgeGrid.cpp b/src/libslic3r/EdgeGrid.cpp index c69c52179ae..62d1444cdc2 100644 --- a/src/libslic3r/EdgeGrid.cpp +++ b/src/libslic3r/EdgeGrid.cpp @@ -11,7 +11,6 @@ #include "libslic3r.h" #include "ClipperUtils.hpp" #include "EdgeGrid.hpp" -#include "Geometry.hpp" #include "SVG.hpp" #if 0 @@ -276,27 +275,136 @@ void EdgeGrid::Grid::create_from_m_contours(coord_t resolution) // 6) Finally fill in m_cell_data by rasterizing the lines once again. for (size_t i = 0; i < m_cells.size(); ++i) m_cells[i].end = m_cells[i].begin; - - struct Visitor { - Visitor(std::vector> &cell_data, std::vector &cells, size_t cols) : - cell_data(cell_data), cells(cells), cols(cols), i(0), j(0) {} - - void operator()(coord_t iy, coord_t ix) { cell_data[cells[iy*cols + ix].end++] = std::pair(i, j); } - - std::vector> &cell_data; - std::vector &cells; - size_t cols; - size_t i; - size_t j; - } visitor(m_cell_data, m_cells, m_cols); - - assert(visitor.i == 0); - for (; visitor.i < m_contours.size(); ++ visitor.i) { - const Slic3r::Points &pts = *m_contours[visitor.i]; - for (visitor.j = 0; visitor.j < pts.size(); ++ visitor.j) - this->visit_cells_intersecting_line(pts[visitor.j], pts[(visitor.j + 1 == pts.size()) ? 0 : visitor.j + 1], visitor); + for (size_t i = 0; i < m_contours.size(); ++i) { + const Slic3r::Points &pts = *m_contours[i]; + for (size_t j = 0; j < pts.size(); ++j) { + // End points of the line segment. + Slic3r::Point p1(pts[j]); + Slic3r::Point p2 = pts[(j + 1 == pts.size()) ? 0 : j + 1]; + p1(0) -= m_bbox.min(0); + p1(1) -= m_bbox.min(1); + p2(0) -= m_bbox.min(0); + p2(1) -= m_bbox.min(1); + // Get the cells of the end points. + coord_t ix = p1(0) / m_resolution; + coord_t iy = p1(1) / m_resolution; + coord_t ixb = p2(0) / m_resolution; + coord_t iyb = p2(1) / m_resolution; + assert(ix >= 0 && size_t(ix) < m_cols); + assert(iy >= 0 && size_t(iy) < m_rows); + assert(ixb >= 0 && size_t(ixb) < m_cols); + assert(iyb >= 0 && size_t(iyb) < m_rows); + // Account for the end points. + m_cell_data[m_cells[iy*m_cols + ix].end++] = std::pair(i, j); + if (ix == ixb && iy == iyb) + // Both ends fall into the same cell. + continue; + // Raster the centeral part of the line. + coord_t dx = std::abs(p2(0) - p1(0)); + coord_t dy = std::abs(p2(1) - p1(1)); + if (p1(0) < p2(0)) { + int64_t ex = int64_t((ix + 1)*m_resolution - p1(0)) * int64_t(dy); + if (p1(1) < p2(1)) { + // x positive, y positive + int64_t ey = int64_t((iy + 1)*m_resolution - p1(1)) * int64_t(dx); + do { + assert(ix <= ixb && iy <= iyb); + if (ex < ey) { + ey -= ex; + ex = int64_t(dy) * m_resolution; + ix += 1; + } + else if (ex == ey) { + ex = int64_t(dy) * m_resolution; + ey = int64_t(dx) * m_resolution; + ix += 1; + iy += 1; } + else { + assert(ex > ey); + ex -= ey; + ey = int64_t(dx) * m_resolution; + iy += 1; } + m_cell_data[m_cells[iy*m_cols + ix].end++] = std::pair(i, j); + } while (ix != ixb || iy != iyb); + } + else { + // x positive, y non positive + int64_t ey = int64_t(p1(1) - iy*m_resolution) * int64_t(dx); + do { + assert(ix <= ixb && iy >= iyb); + if (ex <= ey) { + ey -= ex; + ex = int64_t(dy) * m_resolution; + ix += 1; + } + else { + ex -= ey; + ey = int64_t(dx) * m_resolution; + iy -= 1; + } + m_cell_data[m_cells[iy*m_cols + ix].end++] = std::pair(i, j); + } while (ix != ixb || iy != iyb); + } + } + else { + int64_t ex = int64_t(p1(0) - ix*m_resolution) * int64_t(dy); + if (p1(1) < p2(1)) { + // x non positive, y positive + int64_t ey = int64_t((iy + 1)*m_resolution - p1(1)) * int64_t(dx); + do { + assert(ix >= ixb && iy <= iyb); + if (ex < ey) { + ey -= ex; + ex = int64_t(dy) * m_resolution; + ix -= 1; + } + else { + assert(ex >= ey); + ex -= ey; + ey = int64_t(dx) * m_resolution; + iy += 1; + } + m_cell_data[m_cells[iy*m_cols + ix].end++] = std::pair(i, j); + } while (ix != ixb || iy != iyb); + } + else { + // x non positive, y non positive + int64_t ey = int64_t(p1(1) - iy*m_resolution) * int64_t(dx); + do { + assert(ix >= ixb && iy >= iyb); + if (ex < ey) { + ey -= ex; + ex = int64_t(dy) * m_resolution; + ix -= 1; + } + else if (ex == ey) { + // The lower edge of a grid cell belongs to the cell. + // Handle the case where the ray may cross the lower left corner of a cell in a general case, + // or a left or lower edge in a degenerate case (horizontal or vertical line). + if (dx > 0) { + ex = int64_t(dy) * m_resolution; + ix -= 1; + } + if (dy > 0) { + ey = int64_t(dx) * m_resolution; + iy -= 1; + } + } + else { + assert(ex > ey); + ex -= ey; + ey = int64_t(dx) * m_resolution; + iy -= 1; + } + m_cell_data[m_cells[iy*m_cols + ix].end++] = std::pair(i, j); + } while (ix != ixb || iy != iyb); + } + } + } + } +} #if 0 // Divide, round to a grid coordinate. @@ -1252,6 +1360,28 @@ Polygons EdgeGrid::Grid::contours_simplified(coord_t offset, bool fill_holes) co return out; } +inline int segments_could_intersect( + const Slic3r::Point &ip1, const Slic3r::Point &ip2, + const Slic3r::Point &jp1, const Slic3r::Point &jp2) +{ + Vec2crd iv = (ip2 - ip1); + Vec2crd vij1 = (jp1 - ip1); + Vec2crd vij2 = (jp2 - ip1); + int64_t tij1 = cross2(iv, vij1); + int64_t tij2 = cross2(iv, vij2); + int sij1 = (tij1 > 0) ? 1 : ((tij1 < 0) ? -1 : 0); // signum + int sij2 = (tij2 > 0) ? 1 : ((tij2 < 0) ? -1 : 0); + return sij1 * sij2; +} + +inline bool segments_intersect( + const Slic3r::Point &ip1, const Slic3r::Point &ip2, + const Slic3r::Point &jp1, const Slic3r::Point &jp2) +{ + return segments_could_intersect(ip1, ip2, jp1, jp2) <= 0 && + segments_could_intersect(jp1, jp2, ip1, ip2) <= 0; +} + std::vector> EdgeGrid::Grid::intersecting_edges() const { std::vector> out; @@ -1275,7 +1405,7 @@ std::vector> if (&ipts == &jpts && (&ip1 == &jp2 || &jp1 == &ip2)) // Segments of the same contour share a common vertex. continue; - if (Geometry::segments_intersect(ip1, ip2, jp1, jp2)) { + if (segments_intersect(ip1, ip2, jp1, jp2)) { // The two segments intersect. Add them to the output. int jfirst = (&jpts < &ipts) || (&jpts == &ipts && jpt < ipt); out.emplace_back(jfirst ? @@ -1310,7 +1440,7 @@ bool EdgeGrid::Grid::has_intersecting_edges() const const Slic3r::Point &jp1 = jpts[jpt]; const Slic3r::Point &jp2 = jpts[(jpt + 1 == jpts.size()) ? 0 : jpt + 1]; if (! (&ipts == &jpts && (&ip1 == &jp2 || &jp1 == &ip2)) && - Geometry::segments_intersect(ip1, ip2, jp1, jp2)) + segments_intersect(ip1, ip2, jp1, jp2)) return true; } } diff --git a/src/libslic3r/EdgeGrid.hpp b/src/libslic3r/EdgeGrid.hpp index cad20e07bbb..7faafdb3e1b 100644 --- a/src/libslic3r/EdgeGrid.hpp +++ b/src/libslic3r/EdgeGrid.hpp @@ -65,145 +65,6 @@ class Grid std::vector> intersecting_edges() const; bool has_intersecting_edges() const; - template void visit_cells_intersecting_line(Slic3r::Point p1, Slic3r::Point p2, FUNCTION func) const - { - // End points of the line segment. - p1(0) -= m_bbox.min(0); - p1(1) -= m_bbox.min(1); - p2(0) -= m_bbox.min(0); - p2(1) -= m_bbox.min(1); - // Get the cells of the end points. - coord_t ix = p1(0) / m_resolution; - coord_t iy = p1(1) / m_resolution; - coord_t ixb = p2(0) / m_resolution; - coord_t iyb = p2(1) / m_resolution; - assert(ix >= 0 && size_t(ix) < m_cols); - assert(iy >= 0 && size_t(iy) < m_rows); - assert(ixb >= 0 && size_t(ixb) < m_cols); - assert(iyb >= 0 && size_t(iyb) < m_rows); - // Account for the end points. - func(iy, ix); - if (ix == ixb && iy == iyb) - // Both ends fall into the same cell. - return; - // Raster the centeral part of the line. - coord_t dx = std::abs(p2(0) - p1(0)); - coord_t dy = std::abs(p2(1) - p1(1)); - if (p1(0) < p2(0)) { - int64_t ex = int64_t((ix + 1)*m_resolution - p1(0)) * int64_t(dy); - if (p1(1) < p2(1)) { - // x positive, y positive - int64_t ey = int64_t((iy + 1)*m_resolution - p1(1)) * int64_t(dx); - do { - assert(ix <= ixb && iy <= iyb); - if (ex < ey) { - ey -= ex; - ex = int64_t(dy) * m_resolution; - ix += 1; - } - else if (ex == ey) { - ex = int64_t(dy) * m_resolution; - ey = int64_t(dx) * m_resolution; - ix += 1; - iy += 1; - } - else { - assert(ex > ey); - ex -= ey; - ey = int64_t(dx) * m_resolution; - iy += 1; - } - func(iy, ix); - } while (ix != ixb || iy != iyb); - } - else { - // x positive, y non positive - int64_t ey = int64_t(p1(1) - iy*m_resolution) * int64_t(dx); - do { - assert(ix <= ixb && iy >= iyb); - if (ex <= ey) { - ey -= ex; - ex = int64_t(dy) * m_resolution; - ix += 1; - } - else { - ex -= ey; - ey = int64_t(dx) * m_resolution; - iy -= 1; - } - func(iy, ix); - } while (ix != ixb || iy != iyb); - } - } - else { - int64_t ex = int64_t(p1(0) - ix*m_resolution) * int64_t(dy); - if (p1(1) < p2(1)) { - // x non positive, y positive - int64_t ey = int64_t((iy + 1)*m_resolution - p1(1)) * int64_t(dx); - do { - assert(ix >= ixb && iy <= iyb); - if (ex < ey) { - ey -= ex; - ex = int64_t(dy) * m_resolution; - ix -= 1; - } - else { - assert(ex >= ey); - ex -= ey; - ey = int64_t(dx) * m_resolution; - iy += 1; - } - func(iy, ix); - } while (ix != ixb || iy != iyb); - } - else { - // x non positive, y non positive - int64_t ey = int64_t(p1(1) - iy*m_resolution) * int64_t(dx); - do { - assert(ix >= ixb && iy >= iyb); - if (ex < ey) { - ey -= ex; - ex = int64_t(dy) * m_resolution; - ix -= 1; - } - else if (ex == ey) { - // The lower edge of a grid cell belongs to the cell. - // Handle the case where the ray may cross the lower left corner of a cell in a general case, - // or a left or lower edge in a degenerate case (horizontal or vertical line). - if (dx > 0) { - ex = int64_t(dy) * m_resolution; - ix -= 1; - } - if (dy > 0) { - ey = int64_t(dx) * m_resolution; - iy -= 1; - } - } - else { - assert(ex > ey); - ex -= ey; - ey = int64_t(dx) * m_resolution; - iy -= 1; - } - func(iy, ix); - } while (ix != ixb || iy != iyb); - } - } - } - - std::pair>::const_iterator, std::vector>::const_iterator> cell_data_range(coord_t row, coord_t col) const - { - const EdgeGrid::Grid::Cell &cell = m_cells[row * m_cols + col]; - return std::make_pair(m_cell_data.begin() + cell.begin, m_cell_data.begin() + cell.end); - } - - std::pair segment(const std::pair &contour_and_segment_idx) const - { - const Slic3r::Points &ipts = *m_contours[contour_and_segment_idx.first]; - size_t ipt = contour_and_segment_idx.second; - return std::pair(ipts[ipt], ipts[(ipt + 1 == ipts.size()) ? 0 : ipt + 1]); - } - protected: struct Cell { Cell() : begin(0), end(0) {} diff --git a/src/libslic3r/ExtrusionEntity.cpp b/src/libslic3r/ExtrusionEntity.cpp index 5e172afc153..326772d8911 100644 --- a/src/libslic3r/ExtrusionEntity.cpp +++ b/src/libslic3r/ExtrusionEntity.cpp @@ -8,8 +8,6 @@ #include #include -#define L(s) (s) - namespace Slic3r { //// extrusion entity visitor @@ -33,31 +31,39 @@ ExtrusionPath::intersect_expolygons(const ExPolygonCollection &collection, Extru this->_inflate_collection(intersection_pl(this->polyline, collection), retval); } -void ExtrusionPath::subtract_expolygons(const ExPolygonCollection &collection, ExtrusionEntityCollection* retval) const +void +ExtrusionPath::subtract_expolygons(const ExPolygonCollection &collection, ExtrusionEntityCollection* retval) const { this->_inflate_collection(diff_pl(this->polyline, collection), retval); } -void ExtrusionPath::clip_end(double distance) +void +ExtrusionPath::clip_end(double distance) { this->polyline.clip_end(distance); } -void ExtrusionPath::simplify(double tolerance) +void +ExtrusionPath::simplify(double tolerance) { this->polyline.simplify(tolerance); } -double ExtrusionPath::length() const +double +ExtrusionPath::length() const { return this->polyline.length(); } -void ExtrusionPath::_inflate_collection(const Polylines &polylines, ExtrusionEntityCollection* collection) const +void +ExtrusionPath::_inflate_collection(const Polylines &polylines, ExtrusionEntityCollection* collection) const { - for (const Polyline &polyline : polylines) - collection->entities.emplace_back(new ExtrusionPath(polyline, *this)); + for (Polylines::const_iterator it = polylines.begin(); it != polylines.end(); ++it) { + ExtrusionPath* path = this->clone(); + path->polyline = *it; + collection->entities.push_back(path); } +} void ExtrusionPath::polygons_covered_by_width(Polygons &out, const float scaled_epsilon) const { @@ -72,46 +78,52 @@ void ExtrusionPath::polygons_covered_by_spacing(Polygons &out, const float scale polygons_append(out, offset(this->polyline, 0.5f * double(flow.scaled_spacing()) + scaled_epsilon)); } -bool ExtrusionLoop::make_clockwise() +bool +ExtrusionLoop::make_clockwise() { bool was_ccw = this->polygon().is_counter_clockwise(); if (was_ccw) this->reverse(); return was_ccw; } -bool ExtrusionLoop::make_counter_clockwise() +bool +ExtrusionLoop::make_counter_clockwise() { bool was_cw = this->polygon().is_clockwise(); if (was_cw) this->reverse(); return was_cw; } -void ExtrusionLoop::reverse() +void +ExtrusionLoop::reverse() { - for (ExtrusionPath &path : this->paths) - path.reverse(); + for (ExtrusionPaths::iterator path = this->paths.begin(); path != this->paths.end(); ++path) + path->reverse(); std::reverse(this->paths.begin(), this->paths.end()); } -Polygon ExtrusionLoop::polygon() const +Polygon +ExtrusionLoop::polygon() const { Polygon polygon; - for (const ExtrusionPath &path : this->paths) { + for (ExtrusionPaths::const_iterator path = this->paths.begin(); path != this->paths.end(); ++path) { // for each polyline, append all points except the last one (because it coincides with the first one of the next polyline) - polygon.points.insert(polygon.points.end(), path.polyline.points.begin(), path.polyline.points.end()-1); + polygon.points.insert(polygon.points.end(), path->polyline.points.begin(), path->polyline.points.end()-1); } return polygon; } -double ExtrusionLoop::length() const +double +ExtrusionLoop::length() const { double len = 0; - for (const ExtrusionPath &path : this->paths) - len += path.polyline.length(); + for (ExtrusionPaths::const_iterator path = this->paths.begin(); path != this->paths.end(); ++path) + len += path->polyline.length(); return len; } -bool ExtrusionLoop::split_at_vertex(const Point &point) +bool +ExtrusionLoop::split_at_vertex(const Point &point) { for (ExtrusionPaths::iterator path = this->paths.begin(); path != this->paths.end(); ++path) { int idx = path->polyline.find_point(point); @@ -165,18 +177,18 @@ void ExtrusionLoop::split_at(const Point &point, bool prefer_non_overhang) Point p_non_overhang; size_t path_idx_non_overhang = 0; double min_non_overhang = std::numeric_limits::max(); - for (const ExtrusionPath &path : this->paths) { - Point p_tmp = point.projection_onto(path.polyline); + for (ExtrusionPaths::const_iterator path = this->paths.begin(); path != this->paths.end(); ++path) { + Point p_tmp = point.projection_onto(path->polyline); double dist = (p_tmp - point).cast().norm(); if (dist < min) { p = p_tmp; min = dist; - path_idx = &path - &this->paths.front(); + path_idx = path - this->paths.begin(); } - if (prefer_non_overhang && ! is_bridge(path.role()) && dist < min_non_overhang) { + if (prefer_non_overhang && ! is_bridge(path->role()) && dist < min_non_overhang) { p_non_overhang = p_tmp; min_non_overhang = dist; - path_idx_non_overhang = &path - &this->paths.front(); + path_idx_non_overhang = path - this->paths.begin(); } } if (prefer_non_overhang && min_non_overhang != std::numeric_limits::max()) { @@ -212,7 +224,8 @@ void ExtrusionLoop::split_at(const Point &point, bool prefer_non_overhang) this->split_at_vertex(p); } -void ExtrusionLoop::clip_end(double distance, ExtrusionPaths* paths) const +void +ExtrusionLoop::clip_end(double distance, ExtrusionPaths* paths) const { *paths = this->paths; @@ -229,14 +242,15 @@ void ExtrusionLoop::clip_end(double distance, ExtrusionPaths* paths) const } } -bool ExtrusionLoop::has_overhang_point(const Point &point) const +bool +ExtrusionLoop::has_overhang_point(const Point &point) const { - for (const ExtrusionPath &path : this->paths) { - int pos = path.polyline.find_point(point); + for (ExtrusionPaths::const_iterator path = this->paths.begin(); path != this->paths.end(); ++path) { + int pos = path->polyline.find_point(point); if (pos != -1) { // point belongs to this path // we consider it overhang only if it's not an endpoint - return (is_bridge(path.role()) && pos > 0 && pos != (int)(path.polyline.points.size())-1); + return (is_bridge(path->role()) && pos > 0 && pos != (int)(path->polyline.points.size())-1); } } return false; @@ -244,52 +258,29 @@ bool ExtrusionLoop::has_overhang_point(const Point &point) const void ExtrusionLoop::polygons_covered_by_width(Polygons &out, const float scaled_epsilon) const { - for (const ExtrusionPath &path : this->paths) - path.polygons_covered_by_width(out, scaled_epsilon); + for (ExtrusionPaths::const_iterator path = this->paths.begin(); path != this->paths.end(); ++path) + path->polygons_covered_by_width(out, scaled_epsilon); } void ExtrusionLoop::polygons_covered_by_spacing(Polygons &out, const float scaled_epsilon) const { - for (const ExtrusionPath &path : this->paths) - path.polygons_covered_by_spacing(out, scaled_epsilon); + for (ExtrusionPaths::const_iterator path = this->paths.begin(); path != this->paths.end(); ++path) + path->polygons_covered_by_spacing(out, scaled_epsilon); } -double ExtrusionLoop::min_mm3_per_mm() const +double +ExtrusionLoop::min_mm3_per_mm() const { double min_mm3_per_mm = std::numeric_limits::max(); - for (const ExtrusionPath &path : this->paths) - min_mm3_per_mm = std::min(min_mm3_per_mm, path.mm3_per_mm); + for (ExtrusionPaths::const_iterator path = this->paths.begin(); path != this->paths.end(); ++path) + min_mm3_per_mm = std::min(min_mm3_per_mm, path->mm3_per_mm); return min_mm3_per_mm; } - -std::string ExtrusionEntity::role_to_string(ExtrusionRole role) -{ - switch (role) { - case erNone : return L("None"); - case erPerimeter : return L("Perimeter"); - case erExternalPerimeter : return L("External perimeter"); - case erOverhangPerimeter : return L("Overhang perimeter"); - case erInternalInfill : return L("Internal infill"); - case erSolidInfill : return L("Solid infill"); - case erTopSolidInfill : return L("Top solid infill"); - case erBridgeInfill : return L("Bridge infill"); - case erGapFill : return L("Gap fill"); - case erSkirt : return L("Skirt"); - case erSupportMaterial : return L("Support material"); - case erSupportMaterialInterface : return L("Support material interface"); - case erWipeTower : return L("Wipe tower"); - case erCustom : return L("Custom"); - case erMixed : return L("Mixed"); - default : assert(false); - } - - return ""; -}void ExtrusionPrinter::use(const ExtrusionPath &path) { +void ExtrusionPrinter::use(const ExtrusionPath &path) { ss << "Path_" << path.polyline.size(); for (const Point &p : path.polyline.points) ss << "->" << (int)(100 * unscale_(p.x())) << ":" << (int)(100 * unscale_(p.y())); - } void ExtrusionPrinter::use(const ExtrusionPath3D &path3D) { ss << "Path3D_" << path3D.polyline.size(); diff --git a/src/libslic3r/ExtrusionEntity.hpp b/src/libslic3r/ExtrusionEntity.hpp index 1fc3c54d5a3..7ca93baa65a 100644 --- a/src/libslic3r/ExtrusionEntity.hpp +++ b/src/libslic3r/ExtrusionEntity.hpp @@ -11,7 +11,7 @@ class ExPolygonCollection; class ExtrusionEntityCollection; class Extruder; -// Each ExtrusionRole value identifies a distinct set of { extruder, speed } +/* Each ExtrusionRole value identifies a distinct set of { extruder, speed } */ enum ExtrusionRole { erNone, erPerimeter, @@ -29,20 +29,11 @@ enum ExtrusionRole { erCustom, // Extrusion role for a collection with multiple extrusion roles. erMixed, - erCount }; // perimeter / infill / support / skirt / gapfill / wipetower / custom / mixed // side / internal / top / bottom // bridge -// Special flags describing loop -enum ExtrusionLoopRole { - elrDefault, - elrContourInternalPerimeter, - elrSkirt, -}; - - inline bool is_perimeter(ExtrusionRole role) { return role == erPerimeter @@ -70,6 +61,13 @@ inline bool is_bridge(ExtrusionRole role) { || role == erOverhangPerimeter; } +/* Special flags describing loop */ +enum ExtrusionLoopRole { + elrDefault, + elrContourInternalPerimeter, + elrSkirt, +}; + class ExtrusionEntity; class ExtrusionPath; @@ -128,9 +126,7 @@ class ExtrusionEntity virtual bool is_loop() const { return false; } virtual bool can_reverse() const { return true; } virtual ExtrusionEntity* clone() const = 0; - // Create a new object, initialize it with this object using the move semantics. - virtual ExtrusionEntity* clone_move() = 0; - virtual ~ExtrusionEntity() {} + virtual ~ExtrusionEntity() {}; virtual void reverse() = 0; virtual Point first_point() const = 0; virtual Point last_point() const = 0; @@ -154,8 +150,6 @@ class ExtrusionEntity virtual double total_volume() const = 0; virtual void visit(ExtrusionVisitor &visitor) = 0; virtual void visit(ExtrusionVisitorConst &visitor) const = 0; - - static std::string role_to_string(ExtrusionRole role); }; typedef std::vector ExtrusionEntitiesPtr; @@ -168,29 +162,25 @@ class ExtrusionPath : public ExtrusionEntity double mm3_per_mm; // Width of the extrusion, used for visualization purposes. float width; - // Height of the extrusion, used for visualization purposes. + // Height of the extrusion, used for visualization purposed. float height; - // Feedrate of the extrusion, used for visualization purposes. + // Feedrate of the extrusion, used for visualization purposed. float feedrate; - // Id of the extruder, used for visualization purposes. + // Id of the extruder, used for visualization purposed. unsigned int extruder_id; - // Id of the color, used for visualization purposes in the color printing case. + // Id of the color, used for visualization purposed in the color printing case. unsigned int cp_color_id; - ExtrusionPath(ExtrusionRole role) : mm3_per_mm(-1), width(-1), height(-1), feedrate(0.0f), extruder_id(0), cp_color_id(0), m_role(role) {} - ExtrusionPath(ExtrusionRole role, double mm3_per_mm, float width, float height) : mm3_per_mm(mm3_per_mm), width(width), height(height), feedrate(0.0f), extruder_id(0), cp_color_id(0), m_role(role) {} + ExtrusionPath(ExtrusionRole role) : mm3_per_mm(-1), width(-1), height(-1), feedrate(0.0f), extruder_id(0), cp_color_id(0), m_role(role) {}; + ExtrusionPath(ExtrusionRole role, double mm3_per_mm, float width, float height) : mm3_per_mm(mm3_per_mm), width(width), height(height), feedrate(0.0f), extruder_id(0), cp_color_id(0), m_role(role) {}; ExtrusionPath(const ExtrusionPath &rhs) : polyline(rhs.polyline), mm3_per_mm(rhs.mm3_per_mm), width(rhs.width), height(rhs.height), feedrate(rhs.feedrate), extruder_id(rhs.extruder_id), cp_color_id(rhs.cp_color_id), m_role(rhs.m_role) {} - ExtrusionPath(const Polyline &polyline, const ExtrusionPath &rhs) : polyline(polyline), mm3_per_mm(rhs.mm3_per_mm), width(rhs.width), height(rhs.height), feedrate(rhs.feedrate), extruder_id(rhs.extruder_id), cp_color_id(rhs.cp_color_id), m_role(rhs.m_role) {} ExtrusionPath(ExtrusionPath &&rhs) : polyline(std::move(rhs.polyline)), mm3_per_mm(rhs.mm3_per_mm), width(rhs.width), height(rhs.height), feedrate(rhs.feedrate), extruder_id(rhs.extruder_id), cp_color_id(rhs.cp_color_id), m_role(rhs.m_role) {} - ExtrusionPath(Polyline &&polyline, const ExtrusionPath &rhs) : polyline(std::move(polyline)), mm3_per_mm(rhs.mm3_per_mm), width(rhs.width), height(rhs.height), feedrate(rhs.feedrate), extruder_id(rhs.extruder_id), cp_color_id(rhs.cp_color_id), m_role(rhs.m_role) {} // ExtrusionPath(ExtrusionRole role, const Flow &flow) : m_role(role), mm3_per_mm(flow.mm3_per_mm()), width(flow.width), height(flow.height), feedrate(0.0f), extruder_id(0) {}; - ExtrusionPath& operator=(const ExtrusionPath &rhs) { m_role = rhs.m_role; this->mm3_per_mm = rhs.mm3_per_mm; this->width = rhs.width; this->height = rhs.height; this->feedrate = rhs.feedrate; this->extruder_id = rhs.extruder_id; this->cp_color_id = rhs.cp_color_id; this->polyline = rhs.polyline; return *this; } - ExtrusionPath& operator=(ExtrusionPath &&rhs) { m_role = rhs.m_role; this->mm3_per_mm = rhs.mm3_per_mm; this->width = rhs.width; this->height = rhs.height; this->feedrate = rhs.feedrate; this->extruder_id = rhs.extruder_id; this->cp_color_id = rhs.cp_color_id; this->polyline = std::move(rhs.polyline); return *this; } + ExtrusionPath& operator=(const ExtrusionPath &rhs) { m_role = rhs.m_role; this->mm3_per_mm = rhs.mm3_per_mm; this->width = rhs.width; this->height = rhs.height; this->feedrate = rhs.feedrate, this->extruder_id = rhs.extruder_id, this->cp_color_id = rhs.cp_color_id, this->polyline = rhs.polyline; return *this; } + ExtrusionPath& operator=(ExtrusionPath &&rhs) { m_role = rhs.m_role; this->mm3_per_mm = rhs.mm3_per_mm; this->width = rhs.width; this->height = rhs.height; this->feedrate = rhs.feedrate, this->extruder_id = rhs.extruder_id, this->cp_color_id = rhs.cp_color_id, this->polyline = std::move(rhs.polyline); return *this; } virtual ExtrusionPath* clone() const override { return new ExtrusionPath(*this); } - // Create a new object, initialize it with this object using the move semantics. - virtual ExtrusionPath* clone_move() override { return new ExtrusionPath(std::move(*this)); } void reverse() override { this->polyline.reverse(); } Point first_point() const override { return this->polyline.points.front(); } Point last_point() const override { return this->polyline.points.back(); } @@ -215,10 +205,6 @@ class ExtrusionPath : public ExtrusionEntity // Increase the offset by scaled_epsilon to achieve an overlap, so a union will produce no gaps. // Useful to calculate area of an infill, which has been really filled in by a 100% rectilinear infill. void polygons_covered_by_spacing(Polygons &out, const float scaled_epsilon) const override; - virtual Polygons polygons_covered_by_width(const float scaled_epsilon = 0.f) const - { Polygons out; this->polygons_covered_by_width(out, scaled_epsilon); return out; } - virtual Polygons polygons_covered_by_spacing(const float scaled_epsilon = 0.f) const - { Polygons out; this->polygons_covered_by_spacing(out, scaled_epsilon); return out; } // Minimum volumetric velocity of this extrusion entity. Used by the constant nozzle pressure algorithm. double min_mm3_per_mm() const override { return this->mm3_per_mm; } Polyline as_polyline() const override { return this->polyline; } @@ -252,8 +238,7 @@ class ExtrusionPath3D : public ExtrusionPath { ExtrusionPath3D& operator=(ExtrusionPath3D &&rhs) { m_role = rhs.m_role; this->mm3_per_mm = rhs.mm3_per_mm; this->width = rhs.width; this->height = rhs.height; this->feedrate = rhs.feedrate, this->extruder_id = rhs.extruder_id, this->cp_color_id = rhs.cp_color_id, this->polyline = std::move(rhs.polyline); z_offsets = std::move(rhs.z_offsets); return *this; } - virtual ExtrusionPath3D* clone() const { return new ExtrusionPath3D(*this); } - virtual ExtrusionPath3D* clone_move() override { return new ExtrusionPath3D(std::move(*this)); } + ExtrusionPath3D* clone() const { return new ExtrusionPath3D(*this); } virtual void visit(ExtrusionVisitor &visitor) override { visitor.use(*this); }; virtual void visit(ExtrusionVisitorConst &visitor) const override { visitor.use(*this); }; @@ -359,7 +344,6 @@ class ExtrusionMultiPath : public ExtrusionMultiEntity { ExtrusionMultiPath(const ExtrusionPath &path) :ExtrusionMultiEntity(path) {} virtual ExtrusionMultiPath* clone() const override { return new ExtrusionMultiPath(*this); } - virtual ExtrusionMultiPath* clone_move() override { return new ExtrusionMultiPath(std::move(*this)); } virtual void visit(ExtrusionVisitor &visitor) override { visitor.use(*this); }; virtual void visit(ExtrusionVisitorConst &visitor) const override { visitor.use(*this); }; @@ -375,14 +359,13 @@ class ExtrusionMultiPath3D : public ExtrusionMultiEntity { ExtrusionMultiPath3D(const ExtrusionPath3D &path) :ExtrusionMultiEntity(path) {} virtual ExtrusionMultiPath3D* clone() const override { return new ExtrusionMultiPath3D(*this); } - virtual ExtrusionMultiPath3D* clone_move() override { return new ExtrusionMultiPath3D(std::move(*this)); } virtual void visit(ExtrusionVisitor &visitor) override { visitor.use(*this); }; virtual void visit(ExtrusionVisitorConst &visitor) const override { visitor.use(*this); }; virtual bool can_reverse() const override { return false; } virtual void reverse() override { - std::cout << "I SAID NO REVERSE!!!FFFS\n"; + std::cout << "I SAID NO REVERSE���FFFS\n"; } }; @@ -392,21 +375,19 @@ class ExtrusionLoop : public ExtrusionEntity public: ExtrusionPaths paths; - ExtrusionLoop(ExtrusionLoopRole role = elrDefault) : m_loop_role(role) {} - ExtrusionLoop(const ExtrusionPaths &paths, ExtrusionLoopRole role = elrDefault) : paths(paths), m_loop_role(role) {} - ExtrusionLoop(ExtrusionPaths &&paths, ExtrusionLoopRole role = elrDefault) : paths(std::move(paths)), m_loop_role(role) {} + ExtrusionLoop(ExtrusionLoopRole role = elrDefault) : m_loop_role(role) {}; + ExtrusionLoop(const ExtrusionPaths &paths, ExtrusionLoopRole role = elrDefault) : paths(paths), m_loop_role(role) {}; + ExtrusionLoop(ExtrusionPaths &&paths, ExtrusionLoopRole role = elrDefault) : paths(std::move(paths)), m_loop_role(role) {}; ExtrusionLoop(const ExtrusionPath &path, ExtrusionLoopRole role = elrDefault) : m_loop_role(role) - { this->paths.push_back(path); } + { this->paths.push_back(path); }; ExtrusionLoop(const ExtrusionPath &&path, ExtrusionLoopRole role = elrDefault) : m_loop_role(role) - { this->paths.emplace_back(std::move(path)); } - virtual bool is_loop() const override{ return true; } - virtual bool can_reverse() const override { return false; } - virtual ExtrusionEntity* clone() const override{ return new ExtrusionLoop (*this); } - // Create a new object, initialize it with this object using the move semantics. - ExtrusionEntity* clone_move() override { return new ExtrusionLoop(std::move(*this)); } + { this->paths.emplace_back(std::move(path)); }; + bool is_loop() const { return true; } + bool can_reverse() const { return false; } + ExtrusionLoop* clone() const { return new ExtrusionLoop (*this); } bool make_clockwise(); bool make_counter_clockwise(); - virtual void reverse() override; + void reverse(); Point first_point() const override { return this->paths.front().polyline.points.front(); } Point last_point() const override { assert(first_point() == this->paths.back().polyline.points.back()); return first_point(); } Polygon polygon() const; @@ -421,25 +402,23 @@ class ExtrusionLoop : public ExtrusionEntity ExtrusionLoopRole loop_role() const { return m_loop_role; } // Produce a list of 2D polygons covered by the extruded paths, offsetted by the extrusion width. // Increase the offset by scaled_epsilon to achieve an overlap, so a union will produce no gaps. - void polygons_covered_by_width(Polygons &out, const float scaled_epsilon) const override; + void polygons_covered_by_width(Polygons &out, const float scaled_epsilon) const; // Produce a list of 2D polygons covered by the extruded paths, offsetted by the extrusion spacing. // Increase the offset by scaled_epsilon to achieve an overlap, so a union will produce no gaps. // Useful to calculate area of an infill, which has been really filled in by a 100% rectilinear infill. - void polygons_covered_by_spacing(Polygons &out, const float scaled_epsilon) const override; + void polygons_covered_by_spacing(Polygons &out, const float scaled_epsilon) const; Polygons polygons_covered_by_width(const float scaled_epsilon = 0.f) const { Polygons out; this->polygons_covered_by_width(out, scaled_epsilon); return out; } Polygons polygons_covered_by_spacing(const float scaled_epsilon = 0.f) const { Polygons out; this->polygons_covered_by_spacing(out, scaled_epsilon); return out; } // Minimum volumetric velocity of this extrusion entity. Used by the constant nozzle pressure algorithm. - double min_mm3_per_mm() const override; - Polyline as_polyline() const override { return this->polygon().split_at_first_point(); } + double min_mm3_per_mm() const; + Polyline as_polyline() const { return this->polygon().split_at_first_point(); } void collect_polylines(Polylines &dst) const override { Polyline pl = this->as_polyline(); if (! pl.empty()) dst.emplace_back(std::move(pl)); } double total_volume() const override { double volume = 0.; for (const auto& path : paths) volume += path.total_volume(); return volume; } virtual void visit(ExtrusionVisitor &visitor) override { visitor.use(*this); }; virtual void visit(ExtrusionVisitorConst &visitor) const override { visitor.use(*this); }; - //static inline std::string role_to_string(ExtrusionLoopRole role); - private: ExtrusionLoopRole m_loop_role; }; diff --git a/src/libslic3r/ExtrusionEntityCollection.cpp b/src/libslic3r/ExtrusionEntityCollection.cpp index ac04825fc2a..fd1b8fad0a1 100644 --- a/src/libslic3r/ExtrusionEntityCollection.cpp +++ b/src/libslic3r/ExtrusionEntityCollection.cpp @@ -21,7 +21,8 @@ ExtrusionEntityCollection& ExtrusionEntityCollection::operator= (const Extrusion return *this; } -void ExtrusionEntityCollection::swap(ExtrusionEntityCollection &c) +void +ExtrusionEntityCollection::swap(ExtrusionEntityCollection &c) { std::swap(this->entities, c.entities); std::swap(this->orig_indices, c.orig_indices); @@ -38,14 +39,15 @@ void ExtrusionEntityCollection::clear() ExtrusionEntityCollection::operator ExtrusionPaths() const { ExtrusionPaths paths; - for (const ExtrusionEntity *ptr : this->entities) { - if (const ExtrusionPath *path = dynamic_cast(ptr)) + for (ExtrusionEntitiesPtr::const_iterator it = this->entities.begin(); it != this->entities.end(); ++it) { + if (const ExtrusionPath* path = dynamic_cast(*it)) paths.push_back(*path); } return paths; } -ExtrusionEntityCollection* ExtrusionEntityCollection::clone() const +ExtrusionEntityCollection* +ExtrusionEntityCollection::clone() const { ExtrusionEntityCollection* coll = new ExtrusionEntityCollection(*this); for (size_t i = 0; i < coll->entities.size(); ++i) @@ -53,38 +55,41 @@ ExtrusionEntityCollection* ExtrusionEntityCollection::clone() const return coll; } -void ExtrusionEntityCollection::reverse() +void +ExtrusionEntityCollection::reverse() { - for (ExtrusionEntity *ptr : this->entities) - { + for (ExtrusionEntitiesPtr::iterator it = this->entities.begin(); it != this->entities.end(); ++it) { // Don't reverse it if it's a loop, as it doesn't change anything in terms of elements ordering // and caller might rely on winding order - if (!ptr->can_reverse()) - ptr->reverse(); + if (!(*it)->can_reverse()) (*it)->reverse(); } std::reverse(this->entities.begin(), this->entities.end()); } -void ExtrusionEntityCollection::replace(size_t i, const ExtrusionEntity &entity) +void +ExtrusionEntityCollection::replace(size_t i, const ExtrusionEntity &entity) { delete this->entities[i]; this->entities[i] = entity.clone(); } -void ExtrusionEntityCollection::remove(size_t i) +void +ExtrusionEntityCollection::remove(size_t i) { delete this->entities[i]; this->entities.erase(this->entities.begin() + i); } -ExtrusionEntityCollection ExtrusionEntityCollection::chained_path(bool no_reverse, ExtrusionRole role) const +ExtrusionEntityCollection +ExtrusionEntityCollection::chained_path(bool no_reverse, ExtrusionRole role) const { ExtrusionEntityCollection coll; this->chained_path(&coll, no_reverse, role); return coll; } -void ExtrusionEntityCollection::chained_path(ExtrusionEntityCollection* retval, bool no_reverse, ExtrusionRole role, std::vector* orig_indices) const +void +ExtrusionEntityCollection::chained_path(ExtrusionEntityCollection* retval, bool no_reverse, ExtrusionRole role, std::vector* orig_indices) const { if (this->entities.empty()) return; this->chained_path_from(this->entities.front()->first_point(), retval, no_reverse, role, orig_indices); @@ -103,7 +108,6 @@ void ExtrusionEntityCollection::chained_path_from(Point start_near, ExtrusionEnt *retval = *this; return; } - retval->entities.reserve(this->entities.size()); retval->orig_indices.reserve(this->entities.size()); @@ -111,10 +115,10 @@ void ExtrusionEntityCollection::chained_path_from(Point start_near, ExtrusionEnt std::map indices_map; ExtrusionEntitiesPtr my_paths; - for (ExtrusionEntity * const &entity_src : this->entities) { + for (ExtrusionEntitiesPtr::const_iterator it = this->entities.begin(); it != this->entities.end(); ++it) { if (role != erMixed) { // The caller wants only paths with a specific extrusion role. - ExtrusionRole role2 = entity_src->role(); + ExtrusionRole role2 = (*it)->role(); if (role != role2) { // This extrusion entity does not match the role asked. assert(role2 != erMixed); @@ -122,19 +126,18 @@ void ExtrusionEntityCollection::chained_path_from(Point start_near, ExtrusionEnt } } - ExtrusionEntity *entity = entity_src->clone(); + ExtrusionEntity* entity = (*it)->clone(); my_paths.push_back(entity); - if (orig_indices != nullptr) - indices_map[entity] = &entity_src - &this->entities.front(); + if (orig_indices != NULL) indices_map[entity] = it - this->entities.begin(); } Points endpoints; - for (const ExtrusionEntity *entity : my_paths) { - endpoints.push_back(entity->first_point()); - if (no_reverse || !entity->can_reverse()) { - endpoints.push_back(entity->first_point()); + for (ExtrusionEntitiesPtr::iterator it = my_paths.begin(); it != my_paths.end(); ++it) { + endpoints.push_back((*it)->first_point()); + if (no_reverse || !(*it)->can_reverse()) { + endpoints.push_back((*it)->first_point()); } else { - endpoints.push_back(entity->last_point()); + endpoints.push_back((*it)->last_point()); } } @@ -144,11 +147,11 @@ void ExtrusionEntityCollection::chained_path_from(Point start_near, ExtrusionEnt int path_index = start_index/2; ExtrusionEntity* entity = my_paths.at(path_index); // never reverse loops, since it's pointless for chained path and callers might depend on orientation - if (start_index % 2 && !no_reverse && entity->can_reverse()) + if (start_index % 2 && !no_reverse && entity->can_reverse()) { entity->reverse(); + } retval->entities.push_back(my_paths.at(path_index)); - if (orig_indices != nullptr) - orig_indices->push_back(indices_map[entity]); + if (orig_indices != NULL) orig_indices->push_back(indices_map[entity]); my_paths.erase(my_paths.begin() + path_index); endpoints.erase(endpoints.begin() + 2*path_index, endpoints.begin() + 2*path_index + 2); start_near = retval->entities.back()->last_point(); @@ -157,18 +160,19 @@ void ExtrusionEntityCollection::chained_path_from(Point start_near, ExtrusionEnt void ExtrusionEntityCollection::polygons_covered_by_width(Polygons &out, const float scaled_epsilon) const { - for (const ExtrusionEntity *entity : this->entities) - entity->polygons_covered_by_width(out, scaled_epsilon); + for (ExtrusionEntitiesPtr::const_iterator it = this->entities.begin(); it != this->entities.end(); ++it) + (*it)->polygons_covered_by_width(out, scaled_epsilon); } void ExtrusionEntityCollection::polygons_covered_by_spacing(Polygons &out, const float scaled_epsilon) const { - for (const ExtrusionEntity *entity : this->entities) - entity->polygons_covered_by_spacing(out, scaled_epsilon); + for (ExtrusionEntitiesPtr::const_iterator it = this->entities.begin(); it != this->entities.end(); ++it) + (*it)->polygons_covered_by_spacing(out, scaled_epsilon); } -// Recursively count paths and loops contained in this collection. -size_t ExtrusionEntityCollection::items_count() const +/* Recursively count paths and loops contained in this collection */ +size_t +ExtrusionEntityCollection::items_count() const { return CountEntities().count(*this); } @@ -227,14 +231,12 @@ FlatenEntities::use(const ExtrusionEntityCollection &coll) { entity->visit(unsortable); } to_fill.append(std::move(unsortable.to_fill)); - } - else { + } else { for (const ExtrusionEntity* entity : coll.entities) { entity->visit(*this); } } } - ExtrusionEntityCollection&& FlatenEntities::flatten(const ExtrusionEntityCollection &to_flatten) && { use(to_flatten); @@ -246,8 +248,8 @@ double ExtrusionEntityCollection::min_mm3_per_mm() const { double min_mm3_per_mm = std::numeric_limits::max(); - for (const ExtrusionEntity *entity : this->entities) - min_mm3_per_mm = std::min(min_mm3_per_mm, entity->min_mm3_per_mm()); + for (ExtrusionEntitiesPtr::const_iterator it = this->entities.begin(); it != this->entities.end(); ++it) + min_mm3_per_mm = std::min(min_mm3_per_mm, (*it)->min_mm3_per_mm()); return min_mm3_per_mm; } diff --git a/src/libslic3r/ExtrusionEntityCollection.hpp b/src/libslic3r/ExtrusionEntityCollection.hpp index 895c05e3040..07407421dfb 100644 --- a/src/libslic3r/ExtrusionEntityCollection.hpp +++ b/src/libslic3r/ExtrusionEntityCollection.hpp @@ -9,10 +9,7 @@ namespace Slic3r { class ExtrusionEntityCollection : public ExtrusionEntity { public: - virtual ExtrusionEntityCollection* clone() const override; - // Create a new object, initialize it with this object using the move semantics. - virtual ExtrusionEntityCollection* clone_move() override { return new ExtrusionEntityCollection(std::move(*this)); } - + ExtrusionEntityCollection* clone() const; /// Owned ExtrusionEntities and descendent ExtrusionEntityCollections. /// Iterating over this needs to check each child to see if it, too is a collection. @@ -46,12 +43,11 @@ class ExtrusionEntityCollection : public ExtrusionEntity bool empty() const { return this->entities.empty(); }; void clear(); void swap (ExtrusionEntityCollection &c); - void append(const ExtrusionEntity &entity) { this->entities.emplace_back(entity.clone()); } - void append(ExtrusionEntity &&entity) { this->entities.emplace_back(entity.clone_move()); } + void append(const ExtrusionEntity &entity) { this->entities.push_back(entity.clone()); } void append(const ExtrusionEntitiesPtr &entities) { this->entities.reserve(this->entities.size() + entities.size()); - for (const ExtrusionEntity *ptr : entities) - this->entities.emplace_back(ptr->clone()); + for (ExtrusionEntitiesPtr::const_iterator ptr = entities.begin(); ptr != entities.end(); ++ptr) + this->entities.push_back((*ptr)->clone()); } void append(ExtrusionEntitiesPtr &&src) { if (entities.empty()) diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index 04d7420cbbb..4b41b850b1b 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -235,7 +235,7 @@ void make_fill(LayerRegion &layerm, ExtrusionEntityCollection &out) } // get filler object - std::unique_ptr f = std::unique_ptr(Fill::new_from_type(fill_pattern)); + std::unique_ptr f = std::unique_ptr(Fill::new_from_type(fill_pattern, &layerm.region()->config())); f->set_bounding_box(layerm.layer()->object()->bounding_box()); // calculate the actual flow we'll be using for this infill diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index be18ffe792d..192da7ff36f 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -18,7 +18,7 @@ namespace Slic3r { -Fill* Fill::new_from_type(const InfillPattern type) +Fill* Fill::new_from_type(const InfillPattern type, const PrintRegionConfig* config) { switch (type) { case ipConcentric: return new FillConcentric(); @@ -39,38 +39,20 @@ Fill* Fill::new_from_type(const InfillPattern type) case ipArchimedeanChords: return new FillArchimedeanChords(); case ipHilbertCurve: return new FillHilbertCurve(); case ipOctagramSpiral: return new FillOctagramSpiral(); - case ipSmooth: return new FillSmooth(); - case ipSmoothTriple: return new FillSmoothTriple(); - case ipSmoothHilbert: return new FillSmoothHilbert(); + case ipSmooth: return new FillSmooth(config); + case ipSmoothTriple: return new FillSmoothTriple(config); + case ipSmoothHilbert: return new FillSmoothHilbert(config); case ipRectiWithPerimeter: return new FillRectilinear2Peri(); case ipSawtooth: return new FillRectilinearSawtooth(); default: throw std::invalid_argument("unknown type"); } } -Fill* Fill::new_from_type(const std::string &type) +Fill* Fill::new_from_type(const std::string &type, const PrintRegionConfig* config) { const t_config_enum_values &enum_keys_map = ConfigOptionEnum::get_enum_values(); t_config_enum_values::const_iterator it = enum_keys_map.find(type); - return (it == enum_keys_map.end()) ? nullptr : new_from_type(InfillPattern(it->second)); -} - -// Force initialization of the Fill::use_bridge_flow() internal static map in a thread safe fashion even on compilers -// not supporting thread safe non-static data member initializers. -static bool use_bridge_flow_initializer = Fill::use_bridge_flow(ipGrid); - -bool Fill::use_bridge_flow(const InfillPattern type) -{ - static std::vector cached; - if (cached.empty()) { - cached.assign(size_t(ipCount), 0); - for (size_t i = 0; i < cached.size(); ++ i) { - auto *fill = Fill::new_from_type((InfillPattern)i); - cached[i] = fill->use_bridge_flow(); - delete fill; - } - } - return cached[type] != 0; + return (it == enum_keys_map.end()) ? nullptr : new_from_type(InfillPattern(it->second), config); } Polylines Fill::fill_surface(const Surface *surface, const FillParams ¶ms) diff --git a/src/libslic3r/Fill/FillBase.hpp b/src/libslic3r/Fill/FillBase.hpp index ff524c30d0e..32b49889945 100644 --- a/src/libslic3r/Fill/FillBase.hpp +++ b/src/libslic3r/Fill/FillBase.hpp @@ -88,9 +88,8 @@ class Fill public: virtual ~Fill() {} - static Fill* new_from_type(const InfillPattern type); - static Fill* new_from_type(const std::string &type); - static bool use_bridge_flow(const InfillPattern type); + static Fill* new_from_type(const InfillPattern type, const PrintRegionConfig* config); + static Fill* new_from_type(const std::string &type, const PrintRegionConfig* config); void set_bounding_box(const Slic3r::BoundingBox &bbox) { bounding_box = bbox; } diff --git a/src/libslic3r/Fill/FillSmooth.cpp b/src/libslic3r/Fill/FillSmooth.cpp index c93e0dffc35..7634a103564 100644 --- a/src/libslic3r/Fill/FillSmooth.cpp +++ b/src/libslic3r/Fill/FillSmooth.cpp @@ -47,7 +47,7 @@ namespace Slic3r { void FillSmooth::fillExPolygon(const int idx, ExtrusionEntityCollection &eec, const Surface &srf_to_fill, const FillParams ¶ms, const double volume){ - std::unique_ptr f2 = std::unique_ptr(Fill::new_from_type(fillPattern[idx])); + std::unique_ptr f2 = std::unique_ptr(Fill::new_from_type(fillPattern[idx], config)); f2->bounding_box = this->bounding_box; f2->spacing = this->spacing; f2->layer_id = this->layer_id; diff --git a/src/libslic3r/Fill/FillSmooth.hpp b/src/libslic3r/Fill/FillSmooth.hpp index af27bb89e47..f875942e34f 100644 --- a/src/libslic3r/Fill/FillSmooth.hpp +++ b/src/libslic3r/Fill/FillSmooth.hpp @@ -10,7 +10,10 @@ namespace Slic3r { class FillSmooth : public Fill { public: - FillSmooth() { + + FillSmooth(const PrintRegionConfig* config) + : config(config) + { nbPass = 2; anglePass[0] = 0; anglePass[1] = float(M_PI/2); @@ -21,15 +24,18 @@ class FillSmooth : public Fill rolePass[0] = erSolidInfill; rolePass[1] = erTopSolidInfill; rolePass[2] = erSolidInfill; - percentWidth[0] = 0.9; - percentWidth[1] = 2; + percentWidth[0] = 1.0; + percentWidth[1] = 1.0; percentWidth[2] = 1.0; - percentFlow[0] = 0.7; - percentFlow[1] = 0.3; + percentFlow[0] = 1.0; + percentFlow[1] = 1.0; percentFlow[2] = 0.0; double extrusionMult = 1.0; - percentFlow[0] *= extrusionMult; - percentFlow[1] *= extrusionMult; + if(config) + { + percentFlow[0] *= config->top_infill_flow_ratio; + percentFlow[1] *= config->ironing_flow_ratio; + } percentFlow[2] *= extrusionMult; has_overlap[0] = false; has_overlap[1] = true; @@ -41,6 +47,7 @@ class FillSmooth : public Fill virtual void fill_surface_extrusion(const Surface *surface, const FillParams ¶ms, ExtrusionEntitiesPtr &out) override; protected: + const PrintRegionConfig* config; int nbPass=2; double percentWidth[3]; double percentFlow[3]; @@ -48,6 +55,8 @@ class FillSmooth : public Fill bool has_overlap[3]; ExtrusionRole rolePass[3]; InfillPattern fillPattern[3]; + float top_infill_flow_ratio; + float ironing_flow_ratio; void performSingleFill(const int idx, ExtrusionEntityCollection &eecroot, const Surface &srf_source, const FillParams ¶ms, const double volume); @@ -59,7 +68,9 @@ class FillSmooth : public Fill class FillSmoothTriple : public FillSmooth { public: - FillSmoothTriple() { + FillSmoothTriple(const PrintRegionConfig* config) + : FillSmooth(config) + { nbPass = 1; //3 anglePass[0] = 0; anglePass[1] = float(M_PI / 2); @@ -92,7 +103,9 @@ class FillSmoothTriple : public FillSmooth class FillSmoothHilbert : public FillSmooth { public: - FillSmoothHilbert() { + FillSmoothHilbert(const PrintRegionConfig* config) + : FillSmooth(config) + { nbPass = 2; anglePass[0] = 0; anglePass[1] = float(M_PI / 4); diff --git a/src/libslic3r/Flow.cpp b/src/libslic3r/Flow.cpp index a2409c389b1..c45ee30c8e8 100644 --- a/src/libslic3r/Flow.cpp +++ b/src/libslic3r/Flow.cpp @@ -76,14 +76,10 @@ float Flow::spacing() const return this->width + BRIDGE_EXTRA_SPACING; // rectangle with semicircles at the ends float min_flow_spacing = this->width - this->height * (1. - 0.25 * PI); - float res = this->width - PERIMETER_LINE_OVERLAP_FACTOR * (this->width - min_flow_spacing); + return this->width - PERIMETER_LINE_OVERLAP_FACTOR * (this->width - min_flow_spacing); #else - float res = float(this->bridge ? (this->width + BRIDGE_EXTRA_SPACING) : (this->width - this->height * (1. - 0.25 * PI))); + return float(this->bridge ? (this->width + BRIDGE_EXTRA_SPACING) : (this->width - this->height * (1. - 0.25 * PI))); #endif -// assert(res > 0.f); - if (res <= 0.f) - throw std::runtime_error("Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"); - return res; } // This method returns the centerline spacing between an extrusion using this @@ -93,26 +89,20 @@ float Flow::spacing(const Flow &other) const { assert(this->height == other.height); assert(this->bridge == other.bridge); - float res = float(this->bridge ? + return float(this->bridge ? 0.5 * this->width + 0.5 * other.width + BRIDGE_EXTRA_SPACING : 0.5 * this->spacing() + 0.5 * other.spacing()); -// assert(res > 0.f); - if (res <= 0.f) - throw std::runtime_error("Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"); - return res; } // This method returns extrusion volume per head move unit. double Flow::mm3_per_mm() const { - float res = this->bridge ? + double res = this->bridge ? // Area of a circle with dmr of this->width. (this->width * this->width) * 0.25 * PI : // Rectangle with semicircles at the ends. ~ h (w - 0.215 h) this->height * (this->width - this->height * (1. - 0.25 * PI)); - //assert(res > 0.); - if (res <= 0.) - throw std::runtime_error("Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"); + assert(res > 0.); return res; } diff --git a/src/libslic3r/Flow.hpp b/src/libslic3r/Flow.hpp index 0d7eb22de16..12db0a2a9ec 100644 --- a/src/libslic3r/Flow.hpp +++ b/src/libslic3r/Flow.hpp @@ -56,8 +56,6 @@ class Flow // Enable some perimeter squish (see INSET_OVERLAP_TOLERANCE). // Here an overlap of 0.2x external perimeter spacing is allowed for by the elephant foot compensation. coord_t scaled_elephant_foot_spacing() const { return coord_t(0.5f * float(this->scaled_width() + 0.6f * this->scaled_spacing())); } - - bool operator==(const Flow &rhs) const { return this->width == rhs.width && this->height == rhs.height && this->nozzle_diameter == rhs.nozzle_diameter && this->bridge == rhs.bridge; } static Flow new_from_config_width(FlowRole role, const ConfigOptionFloatOrPercent &width, float nozzle_diameter, float height, float bridge_flow_ratio); // Create a flow from the spacing of extrusion lines. diff --git a/src/libslic3r/Format/3mf.cpp b/src/libslic3r/Format/3mf.cpp index 0f89e61930c..0cc0a9d5843 100644 --- a/src/libslic3r/Format/3mf.cpp +++ b/src/libslic3r/Format/3mf.cpp @@ -4,12 +4,9 @@ #include "../GCode.hpp" #include "../Geometry.hpp" -#include "../I18N.hpp" - #include "3mf.hpp" #include -#include #include #include @@ -74,7 +71,6 @@ const char* V2_ATTR = "v2"; const char* V3_ATTR = "v3"; const char* OBJECTID_ATTR = "objectid"; const char* TRANSFORM_ATTR = "transform"; -const char* PRINTABLE_ATTR = "printable"; const char* KEY_ATTR = "key"; const char* VALUE_ATTR = "value"; @@ -103,13 +99,6 @@ const char* INVALID_OBJECT_TYPES[] = "other" }; -class version_error : public std::runtime_error -{ -public: - version_error(const std::string& what_arg) : std::runtime_error(what_arg) {} - version_error(const char* what_arg) : std::runtime_error(what_arg) {} -}; - const char* get_attribute_value_charptr(const char** attributes, unsigned int attributes_size, const char* attribute_key) { if ((attributes == nullptr) || (attributes_size == 0) || (attributes_size % 2 != 0) || (attribute_key == nullptr)) @@ -142,12 +131,6 @@ int get_attribute_value_int(const char** attributes, unsigned int attributes_siz return (text != nullptr) ? ::atoi(text) : 0; } -bool get_attribute_value_bool(const char** attributes, unsigned int attributes_size, const char* attribute_key) -{ - const char* text = get_attribute_value_charptr(attributes, attributes_size, attribute_key); - return (text != nullptr) ? (bool)::atoi(text) : true; -} - Slic3r::Transform3d get_transform_from_string(const std::string& mat_str) { if (mat_str.empty()) @@ -212,11 +195,6 @@ bool is_valid_object_type(const std::string& type) namespace Slic3r { -//! macro used to mark string used at localization, -//! return same string -#define L(s) (s) -#define _(s) Slic3r::I18N::translate(s) - // Base class with error messages management class _3MF_Base { @@ -365,7 +343,6 @@ namespace Slic3r { // Version of the 3mf file unsigned int m_version; - bool m_check_version; XML_Parser m_xml_parser; Model* m_model; @@ -388,7 +365,7 @@ namespace Slic3r { _3MF_Importer(); ~_3MF_Importer(); - bool load_model_from_file(const std::string& filename, Model& model, DynamicPrintConfig& config, bool check_version); + bool load_model_from_file(const std::string& filename, Model& model, DynamicPrintConfig& config); private: void _destroy_xml_parser(); @@ -451,7 +428,7 @@ namespace Slic3r { bool _handle_start_metadata(const char** attributes, unsigned int num_attributes); bool _handle_end_metadata(); - bool _create_object_instance(int object_id, const Transform3d& transform, const bool printable, unsigned int recur_counter); + bool _create_object_instance(int object_id, const Transform3d& transform, unsigned int recur_counter); void _apply_transform(ModelInstance& instance, const Transform3d& transform); @@ -481,7 +458,6 @@ namespace Slic3r { _3MF_Importer::_3MF_Importer() : m_version(0) - , m_check_version(false) , m_xml_parser(nullptr) , m_model(nullptr) , m_unit_factor(1.0f) @@ -496,10 +472,9 @@ namespace Slic3r { _destroy_xml_parser(); } - bool _3MF_Importer::load_model_from_file(const std::string& filename, Model& model, DynamicPrintConfig& config, bool check_version) + bool _3MF_Importer::load_model_from_file(const std::string& filename, Model& model, DynamicPrintConfig& config) { m_version = 0; - m_check_version = check_version; m_model = &model; m_unit_factor = 1.0f; m_curr_object.reset(); @@ -561,21 +536,12 @@ namespace Slic3r { if (boost::algorithm::istarts_with(name, MODEL_FOLDER) && boost::algorithm::iends_with(name, MODEL_EXTENSION)) { - try + // valid model name -> extract model + if (!_extract_model_from_archive(archive, stat)) { - // valid model name -> extract model - if (!_extract_model_from_archive(archive, stat)) - { - close_zip_reader(&archive); - add_error("Archive does not contain a valid model"); - return false; - } - } - catch (const std::exception& e) - { - // ensure the zip archive is closed and rethrow the exception close_zip_reader(&archive); - throw std::runtime_error(e.what()); + add_error("Archive does not contain a valid model"); + return false; } } } @@ -713,46 +679,25 @@ namespace Slic3r { XML_SetElementHandler(m_xml_parser, _3MF_Importer::_handle_start_model_xml_element, _3MF_Importer::_handle_end_model_xml_element); XML_SetCharacterDataHandler(m_xml_parser, _3MF_Importer::_handle_model_xml_characters); - struct CallbackData - { - XML_Parser& parser; - const mz_zip_archive_file_stat& stat; - - CallbackData(XML_Parser& parser, const mz_zip_archive_file_stat& stat) : parser(parser), stat(stat) {} - }; - - CallbackData data(m_xml_parser, stat); - - mz_bool res = 0; - - try - { - res = mz_zip_reader_extract_file_to_callback(&archive, stat.m_filename, [](void* pOpaque, mz_uint64 file_ofs, const void* pBuf, size_t n)->size_t { - CallbackData* data = (CallbackData*)pOpaque; - if (!XML_Parse(data->parser, (const char*)pBuf, (int)n, (file_ofs + n == data->stat.m_uncomp_size) ? 1 : 0)) - { - char error_buf[1024]; - ::sprintf(error_buf, "Error (%s) while parsing '%s' at line %d", XML_ErrorString(XML_GetErrorCode(data->parser)), data->stat.m_filename, (int)XML_GetCurrentLineNumber(data->parser)); - throw std::runtime_error(error_buf); - } - - return n; - }, &data, 0); - } - catch (const version_error& e) + void* parser_buffer = XML_GetBuffer(m_xml_parser, (int)stat.m_uncomp_size); + if (parser_buffer == nullptr) { - // rethrow the exception - throw std::runtime_error(e.what()); + add_error("Unable to create buffer"); + return false; } - catch (std::exception& e) + + mz_bool res = mz_zip_reader_extract_file_to_mem(&archive, stat.m_filename, parser_buffer, (size_t)stat.m_uncomp_size, 0); + if (res == 0) { - add_error(e.what()); + add_error("Error while reading model data to buffer"); return false; } - if (res == 0) + if (!XML_ParseBuffer(m_xml_parser, (int)stat.m_uncomp_size, 1)) { - add_error("Error while extracting model data from zip archive"); + char error_buf[1024]; + ::sprintf(error_buf, "Error (%s) while parsing xml file at line %d", XML_ErrorString(XML_GetErrorCode(m_xml_parser)), (int)XML_GetCurrentLineNumber(m_xml_parser)); + add_error(error_buf); return false; } @@ -1422,9 +1367,8 @@ namespace Slic3r { int object_id = get_attribute_value_int(attributes, num_attributes, OBJECTID_ATTR); Transform3d transform = get_transform_from_string(get_attribute_value_string(attributes, num_attributes, TRANSFORM_ATTR)); - int printable = get_attribute_value_bool(attributes, num_attributes, PRINTABLE_ATTR); - return _create_object_instance(object_id, transform, printable, 1); + return _create_object_instance(object_id, transform, 1); } bool _3MF_Importer::_handle_end_item() @@ -1447,20 +1391,12 @@ namespace Slic3r { bool _3MF_Importer::_handle_end_metadata() { if (m_curr_metadata_name == SLIC3RPE_3MF_VERSION) - { m_version = (unsigned int)atoi(m_curr_characters.c_str()); - if (m_check_version && (m_version > VERSION_3MF)) - { - std::string msg = _(L("The selected 3mf file has been saved with a newer version of " + std::string(SLIC3R_APP_NAME) + " and is not compatible.")); - throw version_error(msg.c_str()); - } - } - return true; } - bool _3MF_Importer::_create_object_instance(int object_id, const Transform3d& transform, const bool printable, unsigned int recur_counter) + bool _3MF_Importer::_create_object_instance(int object_id, const Transform3d& transform, unsigned int recur_counter) { static const unsigned int MAX_RECURSIONS = 10; @@ -1496,7 +1432,6 @@ namespace Slic3r { add_error("Unable to add object instance"); return false; } - instance->printable = printable; m_instances.emplace_back(instance, transform); } @@ -1506,7 +1441,7 @@ namespace Slic3r { // recursively process nested components for (const Component& component : it->second) { - if (!_create_object_instance(component.object_id, transform * component.transform, printable, recur_counter + 1)) + if (!_create_object_instance(component.object_id, transform * component.transform, recur_counter + 1)) return false; } } @@ -1720,12 +1655,10 @@ namespace Slic3r { { unsigned int id; Transform3d transform; - bool printable; - BuildItem(unsigned int id, const Transform3d& transform, const bool printable) + BuildItem(unsigned int id, const Transform3d& transform) : id(id) , transform(transform) - , printable(printable) { } }; @@ -2018,7 +1951,7 @@ namespace Slic3r { Transform3d t = instance->get_matrix(); // instance_id is just a 1 indexed index in build_items. assert(instance_id == build_items.size() + 1); - build_items.emplace_back(instance_id, t, instance->printable); + build_items.emplace_back(instance_id, t); stream << " \n"; @@ -2126,7 +2059,7 @@ namespace Slic3r { stream << " "; } } - stream << "\" printable =\"" << item.printable << "\" />\n"; + stream << "\" />\n"; } stream << " \n"; @@ -2372,13 +2305,13 @@ namespace Slic3r { return true; } - bool load_3mf(const char* path, DynamicPrintConfig* config, Model* model, bool check_version) + bool load_3mf(const char* path, DynamicPrintConfig* config, Model* model) { if ((path == nullptr) || (config == nullptr) || (model == nullptr)) return false; _3MF_Importer importer; - bool res = importer.load_model_from_file(path, *model, *config, check_version); + bool res = importer.load_model_from_file(path, *model, *config); importer.log_errors(); return res; } diff --git a/src/libslic3r/Format/3mf.hpp b/src/libslic3r/Format/3mf.hpp index f387192ab5b..b5927651ecf 100644 --- a/src/libslic3r/Format/3mf.hpp +++ b/src/libslic3r/Format/3mf.hpp @@ -24,7 +24,7 @@ namespace Slic3r { class DynamicPrintConfig; // Load the content of a 3mf file into the given model and preset bundle. - extern bool load_3mf(const char* path, DynamicPrintConfig* config, Model* model, bool check_version); + extern bool load_3mf(const char* path, DynamicPrintConfig* config, Model* model); // Save the given model and the config data contained in the given Print into a 3mf file. // The model could be modified during the export process if meshes are not repaired or have no shared vertices diff --git a/src/libslic3r/Format/AMF.cpp b/src/libslic3r/Format/AMF.cpp index f07c92da477..f2ce363efd0 100644 --- a/src/libslic3r/Format/AMF.cpp +++ b/src/libslic3r/Format/AMF.cpp @@ -11,8 +11,6 @@ #include "../GCode.hpp" #include "../PrintConfig.hpp" #include "../Utils.hpp" -#include "../I18N.hpp" - #include "AMF.hpp" #include @@ -44,14 +42,9 @@ const char* SLIC3R_CONFIG_TYPE = "slic3rpe_config"; namespace Slic3r { -//! macro used to mark string used at localization, -//! return same string -#define L(s) (s) -#define _(s) Slic3r::I18N::translate(s) - struct AMFParserContext { - AMFParserContext(XML_Parser parser, DynamicPrintConfig* config, Model* model) : + AMFParserContext(XML_Parser parser, DynamicPrintConfig *config, Model *model) : m_version(0), m_parser(parser), m_model(*model), @@ -144,7 +137,6 @@ struct AMFParserContext NODE_TYPE_MIRRORX, // amf/constellation/instance/mirrorx NODE_TYPE_MIRRORY, // amf/constellation/instance/mirrory NODE_TYPE_MIRRORZ, // amf/constellation/instance/mirrorz - NODE_TYPE_PRINTABLE, // amf/constellation/instance/mirrorz NODE_TYPE_METADATA, // anywhere under amf/*/metadata }; @@ -153,8 +145,7 @@ struct AMFParserContext : deltax_set(false), deltay_set(false), deltaz_set(false) , rx_set(false), ry_set(false), rz_set(false) , scalex_set(false), scaley_set(false), scalez_set(false) - , mirrorx_set(false), mirrory_set(false), mirrorz_set(false) - , printable(true) {} + , mirrorx_set(false), mirrory_set(false), mirrorz_set(false) {} // Shift in the X axis. float deltax; bool deltax_set; @@ -187,8 +178,6 @@ struct AMFParserContext bool mirrory_set; float mirrorz; bool mirrorz_set; - // printable property - bool printable; bool anything_set() const { return deltax_set || deltay_set || deltaz_set || rx_set || ry_set || rz_set || @@ -332,8 +321,6 @@ void AMFParserContext::startElement(const char *name, const char **atts) node_type_new = NODE_TYPE_MIRRORY; else if (strcmp(name, "mirrorz") == 0) node_type_new = NODE_TYPE_MIRRORZ; - else if (strcmp(name, "printable") == 0) - node_type_new = NODE_TYPE_PRINTABLE; } else if (m_path[2] == NODE_TYPE_LAYER_CONFIG && strcmp(name, "range") == 0) { assert(m_object); @@ -410,8 +397,7 @@ void AMFParserContext::characters(const XML_Char *s, int len) m_path.back() == NODE_TYPE_SCALE || m_path.back() == NODE_TYPE_MIRRORX || m_path.back() == NODE_TYPE_MIRRORY || - m_path.back() == NODE_TYPE_MIRRORZ || - m_path.back() == NODE_TYPE_PRINTABLE) + m_path.back() == NODE_TYPE_MIRRORZ) m_value[0].append(s, len); break; case 6: @@ -521,11 +507,6 @@ void AMFParserContext::endElement(const char * /* name */) m_instance->mirrorz_set = true; m_value[0].clear(); break; - case NODE_TYPE_PRINTABLE: - assert(m_instance); - m_instance->printable = bool(atoi(m_value[0].c_str())); - m_value[0].clear(); - break; // Object vertices: case NODE_TYPE_VERTEX: @@ -704,7 +685,6 @@ void AMFParserContext::endDocument() mi->set_rotation(Vec3d(instance.rx_set ? (double)instance.rx : 0.0, instance.ry_set ? (double)instance.ry : 0.0, instance.rz_set ? (double)instance.rz : 0.0)); mi->set_scaling_factor(Vec3d(instance.scalex_set ? (double)instance.scalex : 1.0, instance.scaley_set ? (double)instance.scaley : 1.0, instance.scalez_set ? (double)instance.scalez : 1.0)); mi->set_mirror(Vec3d(instance.mirrorx_set ? (double)instance.mirrorx : 1.0, instance.mirrory_set ? (double)instance.mirrory : 1.0, instance.mirrorz_set ? (double)instance.mirrorz : 1.0)); - mi->printable = instance.printable; } } } @@ -762,7 +742,7 @@ bool load_amf_file(const char *path, DynamicPrintConfig *config, Model *model) return result; } -bool extract_model_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat, DynamicPrintConfig* config, Model* model, bool check_version) +bool extract_model_from_archive(mz_zip_archive& archive, const mz_zip_archive_file_stat& stat, DynamicPrintConfig* config, Model* model, unsigned int& version) { if (stat.m_uncomp_size == 0) { @@ -783,63 +763,44 @@ bool extract_model_from_archive(mz_zip_archive& archive, const mz_zip_archive_fi XML_SetElementHandler(parser, AMFParserContext::startElement, AMFParserContext::endElement); XML_SetCharacterDataHandler(parser, AMFParserContext::characters); - struct CallbackData + void* parser_buffer = XML_GetBuffer(parser, (int)stat.m_uncomp_size); + if (parser_buffer == nullptr) { - XML_Parser& parser; - const mz_zip_archive_file_stat& stat; - - CallbackData(XML_Parser& parser, const mz_zip_archive_file_stat& stat) : parser(parser), stat(stat) {} - }; - - CallbackData data(parser, stat); - - mz_bool res = 0; - - try - { - res = mz_zip_reader_extract_file_to_callback(&archive, stat.m_filename, [](void* pOpaque, mz_uint64 file_ofs, const void* pBuf, size_t n)->size_t { - CallbackData* data = (CallbackData*)pOpaque; - if (!XML_Parse(data->parser, (const char*)pBuf, (int)n, (file_ofs + n == data->stat.m_uncomp_size) ? 1 : 0)) - { - char error_buf[1024]; - ::sprintf(error_buf, "Error (%s) while parsing '%s' at line %d", XML_ErrorString(XML_GetErrorCode(data->parser)), data->stat.m_filename, (int)XML_GetCurrentLineNumber(data->parser)); - throw std::runtime_error(error_buf); - } - - return n; - }, &data, 0); + printf("Unable to create buffer\n"); + close_zip_reader(&archive); + return false; } - catch (std::exception& e) + + mz_bool res = mz_zip_reader_extract_file_to_mem(&archive, stat.m_filename, parser_buffer, (size_t)stat.m_uncomp_size, 0); + if (res == 0) { - printf("%s\n", e.what()); + printf("Error while reading model data to buffer\n"); close_zip_reader(&archive); return false; } - if (res == 0) + if (!XML_ParseBuffer(parser, (int)stat.m_uncomp_size, 1)) { - printf("Error while extracting model data from zip archive"); + printf("Error (%s) while parsing xml file at line %d\n", XML_ErrorString(XML_GetErrorCode(parser)), (int)XML_GetCurrentLineNumber(parser)); close_zip_reader(&archive); return false; } ctx.endDocument(); - if (check_version && (ctx.m_version > VERSION_AMF)) - { - std::string msg = _(L("The selected amf file has been saved with a newer version of " + std::string(SLIC3R_APP_NAME) + " and is not compatible.")); - throw std::runtime_error(msg.c_str()); - } + version = ctx.m_version; return true; } // Load an AMF archive into a provided model. -bool load_amf_archive(const char* path, DynamicPrintConfig* config, Model* model, bool check_version) +bool load_amf_archive(const char *path, DynamicPrintConfig *config, Model *model) { if ((path == nullptr) || (model == nullptr)) return false; + unsigned int version = 0; + mz_zip_archive archive; mz_zip_zero_struct(&archive); @@ -859,20 +820,11 @@ bool load_amf_archive(const char* path, DynamicPrintConfig* config, Model* model { if (boost::iends_with(stat.m_filename, ".amf")) { - try - { - if (!extract_model_from_archive(archive, stat, config, model, check_version)) - { - close_zip_reader(&archive); - printf("Archive does not contain a valid model"); - return false; - } - } - catch (const std::exception& e) + if (!extract_model_from_archive(archive, stat, config, model, version)) { - // ensure the zip archive is closed and rethrow the exception close_zip_reader(&archive); - throw std::runtime_error(e.what()); + printf("Archive does not contain a valid model"); + return false; } break; @@ -897,7 +849,7 @@ bool load_amf_archive(const char* path, DynamicPrintConfig* config, Model* model // Load an AMF file into a provided model. // If config is not a null pointer, updates it if the amf file/archive contains config data -bool load_amf(const char* path, DynamicPrintConfig* config, Model* model, bool check_version) +bool load_amf(const char *path, DynamicPrintConfig *config, Model *model) { if (boost::iends_with(path, ".amf.xml")) // backward compatibility with older slic3r output @@ -912,7 +864,7 @@ bool load_amf(const char* path, DynamicPrintConfig* config, Model* model, bool c file.read(const_cast(zip_mask.data()), 2); file.close(); - return (zip_mask == "PK") ? load_amf_archive(path, config, model, check_version) : load_amf_file(path, config, model); + return (zip_mask == "PK") ? load_amf_archive(path, config, model) : load_amf_file(path, config, model); } else return false; @@ -1084,7 +1036,6 @@ bool store_amf(std::string &path, Model *model, const DynamicPrintConfig *config " %lf\n" " %lf\n" " %lf\n" - " %d\n" " \n", object_id, instance->get_offset(X), @@ -1098,8 +1049,7 @@ bool store_amf(std::string &path, Model *model, const DynamicPrintConfig *config instance->get_scaling_factor(Z), instance->get_mirror(X), instance->get_mirror(Y), - instance->get_mirror(Z), - instance->printable); + instance->get_mirror(Z)); //FIXME missing instance->scaling_factor instances.append(buf); diff --git a/src/libslic3r/Format/AMF.hpp b/src/libslic3r/Format/AMF.hpp index c8b7a8df2e7..d7b08edeb49 100644 --- a/src/libslic3r/Format/AMF.hpp +++ b/src/libslic3r/Format/AMF.hpp @@ -7,7 +7,7 @@ class Model; class DynamicPrintConfig; // Load the content of an amf file into the given model and configuration. -extern bool load_amf(const char* path, DynamicPrintConfig* config, Model* model, bool check_version); +extern bool load_amf(const char *path, DynamicPrintConfig *config, Model *model); // Save the given model and the config data into an amf file. // The model could be modified during the export process if meshes are not repaired or have no shared vertices diff --git a/src/libslic3r/Format/objparser.cpp b/src/libslic3r/Format/objparser.cpp index c805667f81c..62bcd306ee1 100644 --- a/src/libslic3r/Format/objparser.cpp +++ b/src/libslic3r/Format/objparser.cpp @@ -159,12 +159,9 @@ static bool obj_parseline(const char *line, ObjData &data) line = endptr; EATWS(); } - // the following check is commented out because there may be obj files containing extra data, as those generated by Meshlab, - // see https://dev.prusa3d.com/browse/SPE-1019 for an example, - // and this would lead to a crash because no vertex would be stored -// if (*line != 0) -// return false; - data.coordinates.push_back((float)x); + if (*line != 0) + return false; + data.coordinates.push_back((float)x); data.coordinates.push_back((float)y); data.coordinates.push_back((float)z); data.coordinates.push_back((float)w); @@ -213,16 +210,16 @@ static bool obj_parseline(const char *line, ObjData &data) } } if (vertex.coordIdx < 0) - vertex.coordIdx += (int)data.coordinates.size() / 4; - else + vertex.coordIdx += data.coordinates.size() / 4; + else -- vertex.coordIdx; if (vertex.normalIdx < 0) - vertex.normalIdx += (int)data.normals.size() / 3; - else + vertex.normalIdx += data.normals.size() / 3; + else -- vertex.normalIdx; if (vertex.textureCoordIdx < 0) - vertex.textureCoordIdx += (int)data.textureCoordinates.size() / 3; - else + vertex.textureCoordIdx += data.textureCoordinates.size() / 3; + else -- vertex.textureCoordIdx; data.vertices.push_back(vertex); EATWS(); @@ -259,8 +256,8 @@ static bool obj_parseline(const char *line, ObjData &data) // printf("usemtl %s\r\n", line); EATWS(); ObjUseMtl usemtl; - usemtl.vertexIdxFirst = (int)data.vertices.size(); - usemtl.name = line; + usemtl.vertexIdxFirst = data.vertices.size(); + usemtl.name = line; data.usemtls.push_back(usemtl); break; } @@ -275,8 +272,8 @@ static bool obj_parseline(const char *line, ObjData &data) if (*line != 0) return false; ObjObject object; - object.vertexIdxFirst = (int)data.vertices.size(); - object.name = line; + object.vertexIdxFirst = data.vertices.size(); + object.name = line; data.objects.push_back(object); break; } @@ -285,8 +282,8 @@ static bool obj_parseline(const char *line, ObjData &data) // g [group name] // printf("group %s\r\n", line); ObjGroup group; - group.vertexIdxFirst = (int)data.vertices.size(); - group.name = line; + group.vertexIdxFirst = data.vertices.size(); + group.name = line; data.groups.push_back(group); break; } @@ -306,8 +303,8 @@ static bool obj_parseline(const char *line, ObjData &data) if (*line != 0) return false; ObjSmoothingGroup group; - group.vertexIdxFirst = (int)data.vertices.size(); - group.smoothingGroupID = g; + group.vertexIdxFirst = data.vertices.size(); + group.smoothingGroupID = g; data.smoothingGroups.push_back(group); break; } @@ -344,9 +341,8 @@ bool objparse(const char *path, ObjData &data) lenPrev = len - lastLine; memmove(buf, buf + lastLine, lenPrev); } - } - catch (std::bad_alloc&) { - printf("Out of memory\r\n"); + } catch (std::bad_alloc &ex) { + printf("Out of memory\r\n"); } ::fclose(pFile); diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index ca32015b150..ccd8bb27944 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1,5 +1,4 @@ #include "libslic3r.h" -#include "I18N.hpp" #include "GCode.hpp" #include "ExtrusionEntity.hpp" #include "EdgeGrid.hpp" @@ -24,8 +23,6 @@ #include "SVG.hpp" -#include - #include #if 0 @@ -39,11 +36,6 @@ namespace Slic3r { -//! macro used to mark string used at localization, -//! return same string -#define L(s) (s) -#define _(s) Slic3r::I18N::translate(s) - // Only add a newline in case the current G-code does not end with a newline. static inline void check_add_eol(std::string &gcode) { @@ -51,39 +43,6 @@ static inline void check_add_eol(std::string &gcode) gcode += '\n'; } - -// Return true if tch_prefix is found in custom_gcode -static bool custom_gcode_changes_tool(const std::string& custom_gcode, const std::string& tch_prefix, unsigned next_extruder) -{ - bool ok = false; - size_t from_pos = 0; - size_t pos = 0; - while ((pos = custom_gcode.find(tch_prefix, from_pos)) != std::string::npos) { - if (pos+1 == custom_gcode.size()) - break; - from_pos = pos+1; - // only whitespace is allowed before the command - while (--pos < custom_gcode.size() && custom_gcode[pos] != '\n') { - if (! std::isspace(custom_gcode[pos])) - goto NEXT; - } - { - // we should also check that the extruder changes to what was expected - std::istringstream ss(custom_gcode.substr(from_pos, std::string::npos)); - unsigned num = 0; - if (ss >> num) - ok = (num == next_extruder); - } -NEXT: ; - } - return ok; -} - -void AvoidCrossingPerimeters::init_external_mp(const Print &print) -{ - m_external_mp = Slic3r::make_unique(union_ex(this->collect_contours_all_layers(print.objects()))); -} - // Plan a travel move while minimizing the number of perimeter crossings. // point is in unscaled coordinates, in the coordinate system of the current active object // (set by gcodegen.set_origin()). @@ -100,72 +59,6 @@ Polyline AvoidCrossingPerimeters::travel_to(const GCode &gcodegen, const Point & return result; } -// Collect outer contours of all objects over all layers. -// Discard objects only containing thin walls (offset would fail on an empty polygon). -// Used by avoid crossing perimeters feature. -Polygons AvoidCrossingPerimeters::collect_contours_all_layers(const PrintObjectPtrs& objects) -{ - Polygons islands; - for (const PrintObject *object : objects) { - // Reducing all the object slices into the Z projection in a logarithimc fashion. - // First reduce to half the number of layers. - std::vector polygons_per_layer((object->layers().size() + 1) / 2); - tbb::parallel_for(tbb::blocked_range(0, object->layers().size() / 2), - [&object, &polygons_per_layer](const tbb::blocked_range &range) { - for (size_t i = range.begin(); i < range.end(); ++ i) { - const Layer* layer1 = object->layers()[i * 2]; - const Layer* layer2 = object->layers()[i * 2 + 1]; - Polygons polys; - polys.reserve(layer1->slices.expolygons.size() + layer2->slices.expolygons.size()); - for (const ExPolygon &expoly : layer1->slices.expolygons) - //FIXME no holes? - polys.emplace_back(expoly.contour); - for (const ExPolygon &expoly : layer2->slices.expolygons) - //FIXME no holes? - polys.emplace_back(expoly.contour); - polygons_per_layer[i] = union_(polys); - } - }); - if (object->layers().size() & 1) { - const Layer *layer = object->layers().back(); - Polygons polys; - polys.reserve(layer->slices.expolygons.size()); - for (const ExPolygon &expoly : layer->slices.expolygons) - //FIXME no holes? - polys.emplace_back(expoly.contour); - polygons_per_layer.back() = union_(polys); - } - // Now reduce down to a single layer. - size_t cnt = polygons_per_layer.size(); - while (cnt > 1) { - tbb::parallel_for(tbb::blocked_range(0, cnt / 2), - [&polygons_per_layer](const tbb::blocked_range &range) { - for (size_t i = range.begin(); i < range.end(); ++ i) { - Polygons polys; - polys.reserve(polygons_per_layer[i * 2].size() + polygons_per_layer[i * 2 + 1].size()); - polygons_append(polys, polygons_per_layer[i * 2]); - polygons_append(polys, polygons_per_layer[i * 2 + 1]); - polygons_per_layer[i * 2] = union_(polys); - } - }); - for (size_t i = 0; i < cnt / 2; ++ i) - polygons_per_layer[i] = std::move(polygons_per_layer[i * 2]); - if (cnt & 1) - polygons_per_layer[cnt / 2] = std::move(polygons_per_layer[cnt - 1]); - cnt = (cnt + 1) / 2; - } - // And collect copies of the objects. - for (const Point © : object->copies()) { - // All the layers were reduced to the 1st item of polygons_per_layer. - size_t i = islands.size(); - polygons_append(islands, polygons_per_layer.front()); - for (; i < islands.size(); ++ i) - islands[i].translate(copy); - } - } - return islands; -} - std::string OozePrevention::pre_toolchange(GCode &gcodegen) { std::string gcode; @@ -298,6 +191,9 @@ std::string WipeTowerIntegration::append_tcr(GCode &gcodegen, const WipeTower::T std::string tcr_rotated_gcode = post_process_wipe_tower_moves(tcr, wipe_tower_offset, wipe_tower_rotation); + // Disable linear advance for the wipe tower operations. + gcode += (gcodegen.config().gcode_flavor == gcfRepRap ? std::string("M572 D0 S0\n") : std::string("M900 K0\n")); + if (!tcr.priming) { // Move over the wipe tower. // Retract for a tool change, using the toolchange retract value and setting the priming extra length. @@ -342,8 +238,8 @@ std::string WipeTowerIntegration::append_tcr(GCode &gcodegen, const WipeTower::T std::string toolchange_command; if (tcr.priming || (new_extruder_id >= 0 && gcodegen.writer().need_toolchange(new_extruder_id))) toolchange_command = gcodegen.writer().toolchange(new_extruder_id); - if (! custom_gcode_changes_tool(toolchange_gcode_str, gcodegen.writer().toolchange_prefix(), new_extruder_id)) - toolchange_gcode_str += toolchange_command; + if (toolchange_gcode.empty()) + toolchange_gcode_str = toolchange_command; else { // We have informed the m_writer about the current extruder_id, we can ignore the generated G-code. } @@ -466,6 +362,7 @@ std::string WipeTowerIntegration::post_process_wipe_tower_moves(const WipeTower: std::string WipeTowerIntegration::prime(GCode &gcodegen) { + //assert(m_layer_idx == 0); std::string gcode; if (&m_priming != nullptr) { @@ -508,8 +405,7 @@ std::string WipeTowerIntegration::tool_change(GCode &gcodegen, int extruder_id, assert(m_layer_idx >= 0 && size_t(m_layer_idx) <= m_tool_changes.size()); if (! m_brim_done || gcodegen.writer().need_toolchange(extruder_id) || finish_layer) { if (m_layer_idx < (int)m_tool_changes.size()) { - if (! (size_t(m_tool_change_idx) < m_tool_changes[m_layer_idx].size())) - throw std::runtime_error("Wipe tower generation failed, possibly due to empty first layer."); + assert(size_t(m_tool_change_idx) < m_tool_changes[m_layer_idx].size()); gcode += append_tcr(gcodegen, m_tool_changes[m_layer_idx][m_tool_change_idx++], extruder_id); } m_brim_done = true; @@ -536,25 +432,9 @@ std::vector GCode::collect_layers_to_print(const PrintObjec std::vector layers_to_print; layers_to_print.reserve(object.layers().size() + object.support_layers().size()); - // Calculate a minimum support layer height as a minimum over all extruders, but not smaller than 10um. - // This is the same logic as in support generator. - //FIXME should we use the printing extruders instead? - double gap_over_supports = object.config().support_material_contact_distance_top; - // FIXME should we test object.config().support_material_synchronize_layers ? IN prusa code, the support layers are synchronized with object layers iff soluble supports. - //assert(gap_over_supports != 0. || object.config().support_material_synchronize_layers); - if (gap_over_supports != 0.) { - gap_over_supports = std::max(0., gap_over_supports); - // Not a soluble support, - double support_layer_height_min = 1000000.; - for (auto lh : object.print()->config().min_layer_height.values) - support_layer_height_min = std::min(support_layer_height_min, std::max(0.01, lh)); - gap_over_supports += support_layer_height_min; - } - // Pair the object layers with the support layers by z. size_t idx_object_layer = 0; size_t idx_support_layer = 0; - const LayerToPrint* last_extrusion_layer = nullptr; while (idx_object_layer < object.layers().size() || idx_support_layer < object.support_layers().size()) { LayerToPrint layer_to_print; layer_to_print.object_layer = (idx_object_layer < object.layers().size()) ? object.layers()[idx_object_layer ++] : nullptr; @@ -568,32 +448,7 @@ std::vector GCode::collect_layers_to_print(const PrintObjec -- idx_object_layer; } } - layers_to_print.emplace_back(layer_to_print); - - // In case there are extrusions on this layer, check there is a layer to lay it on. - if ((layer_to_print.object_layer && layer_to_print.object_layer->has_extrusions()) - // Allow empty support layers, as the support generator may produce no extrusions for non-empty support regions. - || (layer_to_print.support_layer /* && layer_to_print.support_layer->has_extrusions() */)) { - double support_contact_z = (last_extrusion_layer && last_extrusion_layer->support_layer) - ? gap_over_supports - : 0.; - double maximal_print_z = (last_extrusion_layer ? last_extrusion_layer->print_z() : 0.) - + layer_to_print.layer()->height - + support_contact_z; - // Negative support_contact_z is not taken into account, it can result in false positives in cases - // where previous layer has object extrusions too (https://github.com/prusa3d/PrusaSlicer/issues/2752) - - - if (layer_to_print.print_z() > maximal_print_z + 2. * EPSILON) - throw std::runtime_error(_(L("Empty layers detected, the output would not be printable.")) + "\n\n" + - _(L("Object name: ")) + object.model_object()->name + "\n" + _(L("Print z: ")) + - std::to_string(layers_to_print.back().print_z()) + "\n\n" + _(L("This is " - "usually caused by negligibly small extrusions or by a faulty model. Try to repair " - " the model or change its orientation on the bed."))); - // Remember last layer with extrusions. - last_extrusion_layer = &layers_to_print.back(); - } } return layers_to_print; @@ -705,30 +560,25 @@ void GCode::do_export(Print *print, const char *path, GCodePreviewData *preview_ throw std::runtime_error(msg); } - GCodeTimeEstimator::PostProcessData normal_data = m_normal_time_estimator.get_post_process_data(); - GCodeTimeEstimator::PostProcessData silent_data = m_silent_time_estimator.get_post_process_data(); - - bool remaining_times_enabled = print->config().remaining_times.value; - - BOOST_LOG_TRIVIAL(debug) << "Time estimator post processing" << log_memory_info(); - GCodeTimeEstimator::post_process(path_tmp, 60.0f, remaining_times_enabled ? &normal_data : nullptr, - (remaining_times_enabled && m_silent_time_estimator_enabled) ? &silent_data : nullptr); - - if (remaining_times_enabled) - { + if (print->config().remaining_times.value) { + BOOST_LOG_TRIVIAL(debug) << "Processing remaining times for normal mode"; + m_normal_time_estimator.post_process_remaining_times(path_tmp, 60.0f); m_normal_time_estimator.reset(); - if (m_silent_time_estimator_enabled) + if (m_silent_time_estimator_enabled) { + BOOST_LOG_TRIVIAL(debug) << "Processing remaining times for silent mode"; + m_silent_time_estimator.post_process_remaining_times(path_tmp, 60.0f); m_silent_time_estimator.reset(); + } } // starts analyzer calculations if (m_enable_analyzer) { - BOOST_LOG_TRIVIAL(debug) << "Preparing G-code preview data" << log_memory_info(); + BOOST_LOG_TRIVIAL(debug) << "Preparing G-code preview data"; m_analyzer.calc_gcode_preview_data(*preview_data, [print]() { print->throw_if_canceled(); }); m_analyzer.reset(); } - if (rename_file(path_tmp, path)) + if (rename_file(path_tmp, path) != 0) throw std::runtime_error( std::string("Failed to rename the output G-code file from ") + path_tmp + " to " + path + '\n' + "Is " + path_tmp + " locked?" + '\n'); @@ -822,11 +672,6 @@ void GCode::_do_export(Print &print, FILE *file) } m_analyzer.set_extruder_offsets(extruder_offsets); - // send extruders count to analyzer to allow it to detect invalid extruder idxs - const ConfigOptionStrings* extruders_opt = dynamic_cast(print.config().option("extruder_colour")); - const ConfigOptionStrings* filamemts_opt = dynamic_cast(print.config().option("filament_colour")); - m_analyzer.set_extruders_count(std::max((unsigned int)extruders_opt->values.size(), (unsigned int)filamemts_opt->values.size())); - // tell analyzer about the gcode flavor m_analyzer.set_gcode_flavor(print.config().gcode_flavor); @@ -903,7 +748,7 @@ void GCode::_do_export(Print &print, FILE *file) mm3_per_mm.erase(std::remove_if(mm3_per_mm.begin(), mm3_per_mm.end(), [](double v) { return v < 0.000001; }), mm3_per_mm.end()); if (! mm3_per_mm.empty()) { // In order to honor max_print_speed we need to find a target volumetric - // speed that we can use throughout the print. So we define this target + // speed that we can use throughout the print. So we define this target // volumetric speed as the volumetric speed produced by printing the // smallest cross-section at the maximum speed: any larger cross-section // will need slower feedrates. @@ -991,7 +836,7 @@ void GCode::_do_export(Print &print, FILE *file) _writeln(file, GCodeTimeEstimator::Silent_First_M73_Output_Placeholder_Tag); } - // Prepare the helper object for replacing placeholders in custom G-code and output filename. + // Prepare the helper object for replacing placeholders in custom G-code and output filename. m_placeholder_parser = print.placeholder_parser(); m_placeholder_parser.update_timestamp(); print.update_object_placeholders(m_placeholder_parser.config_writable(), ".gcode"); @@ -1086,9 +931,19 @@ void GCode::_do_export(Print &print, FILE *file) _write(file, this->preamble()); // Initialize a motion planner for object-to-object travel moves. - m_avoid_crossing_perimeters.reset(); if (print.config().avoid_crossing_perimeters.value) { - m_avoid_crossing_perimeters.init_external_mp(print); + // Collect outer contours of all objects over all layers. + // Discard objects only containing thin walls (offset would fail on an empty polygon). + Polygons islands; + for (const PrintObject *object : print.objects()) + for (const Layer *layer : object->layers()) + for (const ExPolygon &expoly : layer->slices.expolygons) + for (const Point © : object->copies()) { + islands.emplace_back(expoly.contour); + islands.back().translate(copy); + } + //FIXME Mege the islands in parallel. + m_avoid_crossing_perimeters.init_external_mp(union_ex(islands)); print.throw_if_canceled(); } @@ -1304,9 +1159,9 @@ void GCode::_do_export(Print &print, FILE *file) print.m_print_statistics.clear(); print.m_print_statistics.estimated_normal_print_time = m_normal_time_estimator.get_time_dhms(); print.m_print_statistics.estimated_silent_print_time = m_silent_time_estimator_enabled ? m_silent_time_estimator.get_time_dhms() : "N/A"; - print.m_print_statistics.estimated_normal_color_print_times = m_normal_time_estimator.get_color_times_dhms(true); + print.m_print_statistics.estimated_normal_color_print_times = m_normal_time_estimator.get_color_times_dhms(); if (m_silent_time_estimator_enabled) - print.m_print_statistics.estimated_silent_color_print_times = m_silent_time_estimator.get_color_times_dhms(true); + print.m_print_statistics.estimated_silent_color_print_times = m_silent_time_estimator.get_color_times_dhms(); std::vector extruders = m_writer.extruders(); if (! extruders.empty()) { @@ -1659,13 +1514,7 @@ void GCode::process_layer( // we should add or not colorprint_change in respect to nozzle_diameter count instead of really used extruders count if (colorprint_change && print./*extruders()*/config().nozzle_diameter.size()==1) - { - // add tag for analyzer - gcode += "; " + GCodeAnalyzer::Color_Change_Tag + "\n"; - // add tag for time estimator - gcode += "; " + GCodeTimeEstimator::Color_Change_Tag + "\n"; gcode += "M600\n"; - } // Extrude skirt at the print_z of the raft layers and normal object layers @@ -1812,9 +1661,13 @@ void GCode::process_layer( // This extrusion is part of certain Region, which tells us which extruder should be used for it: int correct_extruder_id = Print::get_extruder(*fill, region); + //FIXME what is this? + entity_type=="infills" ? + std::max(0, (is_solid_infill(fill->entities.front()->role()) ? region.config().solid_infill_extruder : region.config().infill_extruder) - 1) : + std::max(region.config().perimeter_extruder.value - 1, 0); // Let's recover vector of extruder overrides: - const ExtruderPerCopy* entity_overrides = const_cast(layer_tools).wiping_extrusions().get_extruder_overrides(fill, correct_extruder_id, layer_to_print.object()->copies().size()); + const ExtruderPerCopy* entity_overrides = const_cast(layer_tools).wiping_extrusions().get_extruder_overrides(fill, correct_extruder_id, (int)layer_to_print.object()->copies().size()); // Now we must add this extrusion into the by_extruder map, once for each extruder that will print it: for (unsigned int extruder : layer_tools.extruders) @@ -1894,13 +1747,12 @@ void GCode::process_layer( if (!m_brim_done) { this->set_origin(0., 0.); m_avoid_crossing_perimeters.use_external_mp = true; - for (const ExtrusionEntity *ee : print.brim().entities) { + for (const ExtrusionEntity *ee : print.brim().entities) gcode += this->extrude_entity(*ee, "brim", m_config.support_material_speed.value); - } - m_brim_done = true; m_avoid_crossing_perimeters.use_external_mp = false; // Allow a straight travel move to the first object point. m_avoid_crossing_perimeters.disable_once = true; + m_brim_done = true; } //extrude object-only skirt if (single_object_idx != size_t(-1) && !layers.front().object()->skirt().empty() @@ -2016,10 +1868,9 @@ void GCode::process_layer( _write(file, gcode); BOOST_LOG_TRIVIAL(trace) << "Exported layer " << layer.id() << " print_z " << print_z << ", time estimator memory: " << - format_memsize_MB(m_normal_time_estimator.memory_used() + (m_silent_time_estimator_enabled ? m_silent_time_estimator.memory_used() : 0)) << + format_memsize_MB(m_normal_time_estimator.memory_used() + m_silent_time_estimator_enabled ? m_silent_time_estimator.memory_used() : 0) << ", analyzer memory: " << - format_memsize_MB(m_analyzer.memory_used()) << - log_memory_info(); + format_memsize_MB(m_analyzer.memory_used()); } void GCode::apply_print_config(const PrintConfig &print_config) @@ -2097,6 +1948,38 @@ std::string GCode::change_layer(coordf_t print_z) return gcode; } +static inline const char* ExtrusionRole2String(const ExtrusionRole role) +{ + switch (role) { + case erNone: return "erNone"; + case erPerimeter: return "erPerimeter"; + case erExternalPerimeter: return "erExternalPerimeter"; + case erOverhangPerimeter: return "erOverhangPerimeter"; + case erInternalInfill: return "erInternalInfill"; + case erSolidInfill: return "erSolidInfill"; + case erTopSolidInfill: return "erTopSolidInfill"; + case erBridgeInfill: return "erBridgeInfill"; + case erGapFill: return "erGapFill"; + case erSkirt: return "erSkirt"; + case erSupportMaterial: return "erSupportMaterial"; + case erSupportMaterialInterface: return "erSupportMaterialInterface"; + case erWipeTower: return "erWipeTower"; + case erMixed: return "erMixed"; + + default: return "erInvalid"; + }; +} + +static inline const char* ExtrusionLoopRole2String(const ExtrusionLoopRole role) +{ + switch (role) { + case elrDefault: return "elrDefault"; + case elrContourInternalPerimeter: return "elrContourInternalPerimeter"; + case elrSkirt: return "elrSkirt"; + default: return "elrInvalid"; + } +}; + // Return a value in <0, 1> of a cubic B-spline kernel centered around zero. // The B-spline is re-scaled so it has value 1 at zero. static inline float bspline_kernel(float x) @@ -2511,8 +2394,8 @@ std::string GCode::extrude_loop(const ExtrusionLoop &original_loop, const std::s // extrude along the path std::string gcode; for (ExtrusionPaths::iterator path = paths.begin(); path != paths.end(); ++path) { -// description += ExtrusionLoop::role_to_string(loop.loop_role()); -// description += ExtrusionEntity::role_to_string(path->role); +// description += ExtrusionLoopRole2String(loop.loop_role()); +// description += ExtrusionRole2String(path->role); path->simplify(SCALED_RESOLUTION); gcode += this->_extrude(*path, description, speed); } @@ -2564,8 +2447,8 @@ std::string GCode::extrude_multi_path(const ExtrusionMultiPath &multipath, const // extrude along the path std::string gcode; for (ExtrusionPath path : multipath.paths) { -// description += ExtrusionLoop::role_to_string(loop.loop_role()); -// description += ExtrusionEntity::role_to_string(path->role); +// description += ExtrusionLoopRole2String(loop.loop_role()); +// description += ExtrusionRole2String(path->role); path.simplify(SCALED_RESOLUTION); gcode += this->_extrude(path, description, speed); } @@ -2906,7 +2789,7 @@ std::string GCode::_before_extrude(const ExtrusionPath &path, const std::string EXTRUDER_CONFIG(filament_max_volumetric_speed) / path.mm3_per_mm ); } - double F = speed * 60; // convert mm/sec to mm/min + double F = speed * 60; // convert mm/sec to mm/min // extrude arc or line if (m_enable_extrusion_role_markers) { @@ -2926,11 +2809,11 @@ std::string GCode::_before_extrude(const ExtrusionPath &path, const std::string // PrusaMultiMaterial::Writer may generate GCodeAnalyzer::Height_Tag and GCodeAnalyzer::Width_Tag lines without updating m_last_height and m_last_width // so, if the last role was erWipeTower we force export of GCodeAnalyzer::Height_Tag and GCodeAnalyzer::Width_Tag lines bool last_was_wipe_tower = (m_last_analyzer_extrusion_role == erWipeTower); - char buf[64]; if (path.role() != m_last_analyzer_extrusion_role) { m_last_analyzer_extrusion_role = path.role(); + char buf[32]; sprintf(buf, ";%s%d\n", GCodeAnalyzer::Extrusion_Role_Tag.c_str(), int(m_last_analyzer_extrusion_role)); gcode += buf; } @@ -2938,6 +2821,8 @@ std::string GCode::_before_extrude(const ExtrusionPath &path, const std::string if (last_was_wipe_tower || (m_last_mm3_per_mm != path.mm3_per_mm)) { m_last_mm3_per_mm = path.mm3_per_mm; + + char buf[32]; sprintf(buf, ";%s%f\n", GCodeAnalyzer::Mm3_Per_Mm_Tag.c_str(), m_last_mm3_per_mm); gcode += buf; } @@ -2945,6 +2830,8 @@ std::string GCode::_before_extrude(const ExtrusionPath &path, const std::string if (last_was_wipe_tower || (m_last_width != path.width)) { m_last_width = path.width; + + char buf[32]; sprintf(buf, ";%s%f\n", GCodeAnalyzer::Width_Tag.c_str(), m_last_width); gcode += buf; } @@ -2952,6 +2839,8 @@ std::string GCode::_before_extrude(const ExtrusionPath &path, const std::string if (last_was_wipe_tower || (m_last_height != path.height)) { m_last_height = path.height; + + char buf[32]; sprintf(buf, ";%s%f\n", GCodeAnalyzer::Height_Tag.c_str(), m_last_height); gcode += buf; } @@ -3138,7 +3027,6 @@ std::string GCode::set_extruder(unsigned int extruder_id, double print_z) gcode += m_ooze_prevention.pre_toolchange(*this); const std::string& toolchange_gcode = m_config.toolchange_gcode.value; - std::string toolchange_gcode_parsed; // Process the custom toolchange_gcode. If it is empty, insert just a Tn command. if (!toolchange_gcode.empty()) { @@ -3147,14 +3035,13 @@ std::string GCode::set_extruder(unsigned int extruder_id, double print_z) config.set_key_value("next_extruder", new ConfigOptionInt((int)extruder_id)); config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index)); config.set_key_value("layer_z", new ConfigOptionFloat(print_z)); - toolchange_gcode_parsed = placeholder_parser_process("toolchange_gcode", toolchange_gcode, extruder_id, &config); - gcode += toolchange_gcode_parsed; + gcode += placeholder_parser_process("toolchange_gcode", toolchange_gcode, extruder_id, &config); check_add_eol(gcode); } // We inform the writer about what is happening, but we may not use the resulting gcode. std::string toolchange_command = m_writer.toolchange(extruder_id); - if (! custom_gcode_changes_tool(toolchange_gcode_parsed, m_writer.toolchange_prefix(), extruder_id)) + if (toolchange_gcode.empty()) gcode += toolchange_command; else { // user provided his own toolchange gcode, no need to do anything @@ -3162,7 +3049,7 @@ std::string GCode::set_extruder(unsigned int extruder_id, double print_z) // Set the temperature if the wipe tower didn't (not needed for non-single extruder MM) if (m_config.single_extruder_multi_material && !m_config.wipe_tower) { - int temp = (m_layer_index <= 0 ? m_config.first_layer_temperature.get_at(extruder_id) : + int temp = (m_layer_index == 0 ? m_config.first_layer_temperature.get_at(extruder_id) : m_config.temperature.get_at(extruder_id)); gcode += m_writer.set_temperature(temp, false); @@ -3241,7 +3128,7 @@ const std::vector& GCode::ObjectByExtru // This function takes the eec and appends its entities to either perimeters or infills of this Region (depending on the first parameter) // It also saves pointer to ExtruderPerCopy struct (for each entity), that holds information about which extruders should be used for which copy. -void GCode::ObjectByExtruder::Island::Region::append(const std::string& type, const ExtrusionEntityCollection* eec, const ExtruderPerCopy* copies_extruder, size_t object_copies_num) +void GCode::ObjectByExtruder::Island::Region::append(const std::string& type, const ExtrusionEntityCollection* eec, const ExtruderPerCopy* copies_extruder, unsigned int object_copies_num) { // We are going to manipulate either perimeters or infills, exactly in the same way. Let's create pointers to the proper structure to not repeat ourselves: ExtrusionEntityCollection* perimeters_or_infills = &infills; diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 796056c898e..110280a26e2 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -45,17 +45,13 @@ class AvoidCrossingPerimeters { AvoidCrossingPerimeters() : use_external_mp(false), use_external_mp_once(false), disable_once(true) {} ~AvoidCrossingPerimeters() {} - void reset() { m_external_mp.reset(); m_layer_mp.reset(); } - void init_external_mp(const Print &print); + void init_external_mp(const ExPolygons &islands) { m_external_mp = Slic3r::make_unique(islands); } void init_layer_mp(const ExPolygons &islands) { m_layer_mp = Slic3r::make_unique(islands); } Polyline travel_to(const GCode &gcodegen, const Point &point); bool is_init() { return (use_external_mp || use_external_mp_once) ? m_external_mp.get() != nullptr : m_layer_mp.get() != nullptr; } private: - // For initializing the regions to avoid. - static Polygons collect_contours_all_layers(const PrintObjectPtrs& objects); - std::unique_ptr m_external_mp; std::unique_ptr m_layer_mp; }; @@ -260,7 +256,7 @@ class GCode : ExtrusionVisitorConst { std::vector perimeters_overrides; // Appends perimeter/infill entities and writes don't indices of those that are not to be extruder as part of perimeter/infill wiping - void append(const std::string& type, const ExtrusionEntityCollection* eec, const ExtruderPerCopy* copy_extruders, size_t object_copies_num); + void append(const std::string& type, const ExtrusionEntityCollection* eec, const ExtruderPerCopy* copy_extruders, unsigned int object_copies_num); }; std::vector by_region; // all extrusions for this island, grouped by regions diff --git a/src/libslic3r/GCode/Analyzer.cpp b/src/libslic3r/GCode/Analyzer.cpp index 6f11b8c36ae..57eee2e2131 100644 --- a/src/libslic3r/GCode/Analyzer.cpp +++ b/src/libslic3r/GCode/Analyzer.cpp @@ -7,8 +7,6 @@ #include "../Utils.hpp" #include "Print.hpp" -#include - #include "Analyzer.hpp" #include "PreviewData.hpp" @@ -27,7 +25,6 @@ const std::string GCodeAnalyzer::Extrusion_Role_Tag = "_ANALYZER_EXTR_ROLE:"; const std::string GCodeAnalyzer::Mm3_Per_Mm_Tag = "_ANALYZER_MM3_PER_MM:"; const std::string GCodeAnalyzer::Width_Tag = "_ANALYZER_WIDTH:"; const std::string GCodeAnalyzer::Height_Tag = "_ANALYZER_HEIGHT:"; -const std::string GCodeAnalyzer::Color_Change_Tag = "_ANALYZER_COLOR_CHANGE"; const double GCodeAnalyzer::Default_mm3_per_mm = 0.0; const float GCodeAnalyzer::Default_Width = 0.0f; @@ -109,11 +106,6 @@ void GCodeAnalyzer::set_extruder_offsets(const GCodeAnalyzer::ExtruderOffsetsMap m_extruder_offsets = extruder_offsets; } -void GCodeAnalyzer::set_extruders_count(unsigned int count) -{ - m_extruders_count = count; -} - void GCodeAnalyzer::set_gcode_flavor(const GCodeFlavor& flavor) { m_gcode_flavor = flavor; @@ -138,7 +130,6 @@ void GCodeAnalyzer::reset() m_moves_map.clear(); m_extruder_offsets.clear(); - m_extruders_count = 1; } const std::string& GCodeAnalyzer::process_gcode(const std::string& gcode) @@ -249,6 +240,11 @@ void GCodeAnalyzer::_process_gcode_line(GCodeReader&, const GCodeReader::GCodeLi { switch (::atoi(&cmd[1])) { + case 600: // Set color change + { + _processM600(line); + break; + } case 82: // Set extruder to absolute mode { _processM82(line); @@ -521,6 +517,12 @@ void GCodeAnalyzer::_reset_cached_position() } } +void GCodeAnalyzer::_processM600(const GCodeReader::GCodeLine& line) +{ + m_state.cur_cp_color_id++; + _set_cp_color_id(m_state.cur_cp_color_id); +} + void GCodeAnalyzer::_processT(const std::string& cmd) { if (cmd.length() > 1) @@ -528,13 +530,7 @@ void GCodeAnalyzer::_processT(const std::string& cmd) unsigned int id = (unsigned int)::strtol(cmd.substr(1).c_str(), nullptr, 10); if (_get_extruder_id() != id) { - if (id >= m_extruders_count) - { - if (m_extruders_count > 1) - BOOST_LOG_TRIVIAL(error) << "GCodeAnalyzer encountered an invalid toolchange, maybe from a custom gcode."; - } - else - _set_extruder_id(id); + _set_extruder_id(id); // stores tool change move _store_move(GCodeMove::Tool_change); @@ -583,14 +579,6 @@ bool GCodeAnalyzer::_process_tags(const GCodeReader::GCodeLine& line) return true; } - // color change tag - pos = comment.find(Color_Change_Tag); - if (pos != comment.npos) - { - _process_color_change_tag(); - return true; - } - return false; } @@ -620,12 +608,6 @@ void GCodeAnalyzer::_process_height_tag(const std::string& comment, size_t pos) _set_height((float)::strtod(comment.substr(pos + Height_Tag.length()).c_str(), nullptr)); } -void GCodeAnalyzer::_process_color_change_tag() -{ - m_state.cur_cp_color_id++; - _set_cp_color_id(m_state.cur_cp_color_id); -} - void GCodeAnalyzer::_set_units(GCodeAnalyzer::EUnits units) { m_state.units = units; @@ -963,12 +945,12 @@ void GCodeAnalyzer::_calc_gcode_preview_travel(GCodePreviewData& preview_data, s polyline = Polyline3(); // add both vertices of the move - polyline.append(Vec3crd((int)scale_(move.start_position.x()), (int)scale_(move.start_position.y()), (int)scale_(move.start_position.z()))); - polyline.append(Vec3crd((int)scale_(move.end_position.x()), (int)scale_(move.end_position.y()), (int)scale_(move.end_position.z()))); + polyline.append(Vec3crd(scale_(move.start_position.x()), scale_(move.start_position.y()), scale_(move.start_position.z()))); + polyline.append(Vec3crd(scale_(move.end_position.x()), scale_(move.end_position.y()), scale_(move.end_position.z()))); } else // append end vertex of the move to current polyline - polyline.append(Vec3crd((int)scale_(move.end_position.x()), (int)scale_(move.end_position.y()), (int)scale_(move.end_position.z()))); + polyline.append(Vec3crd(scale_(move.end_position.x()), scale_(move.end_position.y()), scale_(move.end_position.z()))); // update current values position = move.end_position; @@ -1012,7 +994,7 @@ void GCodeAnalyzer::_calc_gcode_preview_retractions(GCodePreviewData& preview_da cancel_callback(); // store position - Vec3crd position((int)scale_(move.start_position.x()), (int)scale_(move.start_position.y()), (int)scale_(move.start_position.z())); + Vec3crd position(scale_(move.start_position.x()), scale_(move.start_position.y()), scale_(move.start_position.z())); preview_data.retraction.positions.emplace_back(position, move.data.width, move.data.height); } @@ -1039,7 +1021,7 @@ void GCodeAnalyzer::_calc_gcode_preview_unretractions(GCodePreviewData& preview_ cancel_callback(); // store position - Vec3crd position((int)scale_(move.start_position.x()), (int)scale_(move.start_position.y()), (int)scale_(move.start_position.z())); + Vec3crd position(scale_(move.start_position.x()), scale_(move.start_position.y()), scale_(move.start_position.z())); preview_data.unretraction.positions.emplace_back(position, move.data.width, move.data.height); } diff --git a/src/libslic3r/GCode/Analyzer.hpp b/src/libslic3r/GCode/Analyzer.hpp index 61b783f3b90..3ec146c5bcd 100644 --- a/src/libslic3r/GCode/Analyzer.hpp +++ b/src/libslic3r/GCode/Analyzer.hpp @@ -20,7 +20,6 @@ class GCodeAnalyzer static const std::string Mm3_Per_Mm_Tag; static const std::string Width_Tag; static const std::string Height_Tag; - static const std::string Color_Change_Tag; static const double Default_mm3_per_mm; static const float Default_Width; @@ -109,7 +108,6 @@ class GCodeAnalyzer GCodeReader m_parser; TypeToMovesMap m_moves_map; ExtruderOffsetsMap m_extruder_offsets; - unsigned int m_extruders_count; GCodeFlavor m_gcode_flavor; // The output of process_layer() @@ -119,7 +117,6 @@ class GCodeAnalyzer GCodeAnalyzer(); void set_extruder_offsets(const ExtruderOffsetsMap& extruder_offsets); - void set_extruders_count(unsigned int count); void set_gcode_flavor(const GCodeFlavor& flavor); @@ -181,6 +178,9 @@ class GCodeAnalyzer // Repetier: Go to stored position void _processM402(const GCodeReader::GCodeLine& line); + // Set color change + void _processM600(const GCodeReader::GCodeLine& line); + // Processes T line (Select Tool) void _processT(const std::string& command); void _processT(const GCodeReader::GCodeLine& line); @@ -201,9 +201,6 @@ class GCodeAnalyzer // Processes height tag void _process_height_tag(const std::string& comment, size_t pos); - // Processes color change tag - void _process_color_change_tag(); - void _set_units(EUnits units); EUnits _get_units() const; diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index e85ba6d4157..ba05e0c00c7 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -2,7 +2,6 @@ #include "CoolingBuffer.hpp" #include #include -#include #include #include @@ -418,22 +417,13 @@ std::vector CoolingBuffer::parse_layer_gcode(const std:: line.type = CoolingLine::TYPE_EXTRUDE_END; active_speed_modifier = size_t(-1); } else if (boost::starts_with(sline, toolchange_prefix)) { + // Switch the tool. + line.type = CoolingLine::TYPE_SET_TOOL; unsigned int new_extruder = (unsigned int)atoi(sline.c_str() + toolchange_prefix.size()); - // Only change extruder in case the number is meaningful. User could provide an out-of-range index through custom gcodes - those shall be ignored. - if (new_extruder < map_extruder_to_per_extruder_adjustment.size()) { - if (new_extruder != current_extruder) { - // Switch the tool. - line.type = CoolingLine::TYPE_SET_TOOL; - current_extruder = new_extruder; - adjustment = &per_extruder_adjustments[map_extruder_to_per_extruder_adjustment[current_extruder]]; - } - } - else { - // Only log the error in case of MM printer. Single extruder printers likely ignore any T anyway. - if (map_extruder_to_per_extruder_adjustment.size() > 1) - BOOST_LOG_TRIVIAL(error) << "CoolingBuffer encountered an invalid toolchange, maybe from a custom gcode: " << sline; + if (new_extruder != current_extruder) { + current_extruder = new_extruder; + adjustment = &per_extruder_adjustments[map_extruder_to_per_extruder_adjustment[current_extruder]]; } - } else if (boost::starts_with(sline, ";_BRIDGE_FAN_START")) { line.type = CoolingLine::TYPE_BRIDGE_FAN_START; } else if (boost::starts_with(sline, ";_BRIDGE_FAN_END")) { diff --git a/src/libslic3r/GCode/PreviewData.cpp b/src/libslic3r/GCode/PreviewData.cpp index 3db8db6af89..40f08e6b6e5 100644 --- a/src/libslic3r/GCode/PreviewData.cpp +++ b/src/libslic3r/GCode/PreviewData.cpp @@ -13,6 +13,22 @@ namespace Slic3r { const GCodePreviewData::Color GCodePreviewData::Color::Dummy(0.0f, 0.0f, 0.0f, 0.0f); +GCodePreviewData::Color::Color() +{ + rgba[0] = 1.0f; + rgba[1] = 1.0f; + rgba[2] = 1.0f; + rgba[3] = 1.0f; +} + +GCodePreviewData::Color::Color(float r, float g, float b, float a) +{ + rgba[0] = r; + rgba[1] = g; + rgba[2] = b; + rgba[3] = a; +} + std::vector GCodePreviewData::Color::as_bytes() const { std::vector ret; @@ -121,7 +137,7 @@ GCodePreviewData::LegendItem::LegendItem(const std::string& text, const GCodePre { } -const GCodePreviewData::Color GCodePreviewData::Extrusion::Default_Extrusion_Role_Colors[erCount] = +const GCodePreviewData::Color GCodePreviewData::Extrusion::Default_Extrusion_Role_Colors[Num_Extrusion_Roles] = { Color(0.0f, 0.0f, 0.0f, 1.0f), // erNone Color(1.0f, 0.0f, 0.0f, 1.0f), // erPerimeter @@ -140,20 +156,44 @@ const GCodePreviewData::Color GCodePreviewData::Extrusion::Default_Extrusion_Rol Color(0.0f, 0.0f, 0.0f, 1.0f) // erMixed }; +// todo: merge with Slic3r::ExtrusionRole2String() from GCode.cpp +const std::string GCodePreviewData::Extrusion::Default_Extrusion_Role_Names[Num_Extrusion_Roles] +{ + L("None"), + L("Perimeter"), + L("External perimeter"), + L("Overhang perimeter"), + L("Internal infill"), + L("Solid infill"), + L("Top solid infill"), + L("Bridge infill"), + L("Gap fill"), + L("Skirt"), + L("Support material"), + L("Support material interface"), + L("Wipe tower"), + L("Custom"), + L("Mixed") +}; + const GCodePreviewData::Extrusion::EViewType GCodePreviewData::Extrusion::Default_View_Type = GCodePreviewData::Extrusion::FeatureType; void GCodePreviewData::Extrusion::set_default() { view_type = Default_View_Type; - ::memcpy((void*)role_colors, (const void*)Default_Extrusion_Role_Colors, erCount * sizeof(Color)); + ::memcpy((void*)role_colors, (const void*)Default_Extrusion_Role_Colors, Num_Extrusion_Roles * sizeof(Color)); - for (unsigned int i = 0; i < erCount; ++i) - role_names[i] = ExtrusionEntity::role_to_string(ExtrusionRole(i)); + for (unsigned int i = 0; i < Num_Extrusion_Roles; ++i) + { + role_names[i] = Default_Extrusion_Role_Names[i]; + } role_flags = 0; - for (unsigned int i = 0; i < erCount; ++i) + for (unsigned int i = 0; i < Num_Extrusion_Roles; ++i) + { role_flags |= 1 << i; + } } bool GCodePreviewData::Extrusion::is_role_flag_set(ExtrusionRole role) const @@ -294,7 +334,7 @@ GCodePreviewData::Color GCodePreviewData::get_volumetric_rate_color(float rate) void GCodePreviewData::set_extrusion_role_color(const std::string& role_name, float red, float green, float blue, float alpha) { - for (unsigned int i = 0; i < erCount; ++i) + for (unsigned int i = 0; i < Extrusion::Num_Extrusion_Roles; ++i) { if (role_name == extrusion.role_names[i]) { diff --git a/src/libslic3r/GCode/PreviewData.hpp b/src/libslic3r/GCode/PreviewData.hpp index 5362186fafa..d27f9e697f0 100644 --- a/src/libslic3r/GCode/PreviewData.hpp +++ b/src/libslic3r/GCode/PreviewData.hpp @@ -14,14 +14,14 @@ class GCodePreviewData { float rgba[4]; - Color(const float *argba) { memcpy(this->rgba, argba, sizeof(float) * 4); } - Color(float r = 1.f, float g = 1.f, float b = 1.f, float a = 1.f) { rgba[0] = r; rgba[1] = g; rgba[2] = b; rgba[3] = a; } + Color(); + Color(float r, float g, float b, float a); std::vector as_bytes() const; static const Color Dummy; }; - + // Color mapping from a range into a smooth rainbow of 10 colors. struct Range { @@ -81,8 +81,9 @@ class GCodePreviewData Num_View_Types }; - static const Color Default_Extrusion_Role_Colors[erCount]; - static const std::string Default_Extrusion_Role_Names[erCount]; + static const unsigned int Num_Extrusion_Roles = (unsigned int)erMixed + 1; + static const Color Default_Extrusion_Role_Colors[Num_Extrusion_Roles]; + static const std::string Default_Extrusion_Role_Names[Num_Extrusion_Roles]; static const EViewType Default_View_Type; struct Layer @@ -96,8 +97,8 @@ class GCodePreviewData typedef std::vector LayersList; EViewType view_type; - Color role_colors[erCount]; - std::string role_names[erCount]; + Color role_colors[Num_Extrusion_Roles]; + std::string role_names[Num_Extrusion_Roles]; LayersList layers; unsigned int role_flags; diff --git a/src/libslic3r/GCode/ToolOrdering.cpp b/src/libslic3r/GCode/ToolOrdering.cpp index 7b3e1d0373b..689dd266224 100644 --- a/src/libslic3r/GCode/ToolOrdering.cpp +++ b/src/libslic3r/GCode/ToolOrdering.cpp @@ -78,13 +78,8 @@ ToolOrdering::ToolOrdering(const Print &print, unsigned int first_extruder, bool zs.emplace_back(layer->print_z); for (auto layer : object->support_layers()) zs.emplace_back(layer->print_z); - - // Find first object layer that is not empty and save its print_z - for (const Layer* layer : object->layers()) - if (layer->has_extrusions()) { - object_bottom_z = layer->print_z - layer->height; - break; - } + if (! object->layers().empty()) + object_bottom_z = object->layers().front()->print_z - object->layers().front()->height; } this->initialize_layers(zs); } @@ -101,6 +96,23 @@ ToolOrdering::ToolOrdering(const Print &print, unsigned int first_extruder, bool this->collect_extruder_statistics(prime_multi_material); } + +LayerTools& ToolOrdering::tools_for_layer(coordf_t print_z) +{ + auto it_layer_tools = std::lower_bound(m_layer_tools.begin(), m_layer_tools.end(), LayerTools(print_z - EPSILON)); + assert(it_layer_tools != m_layer_tools.end()); + coordf_t dist_min = std::abs(it_layer_tools->print_z - print_z); + for (++ it_layer_tools; it_layer_tools != m_layer_tools.end(); ++it_layer_tools) { + coordf_t d = std::abs(it_layer_tools->print_z - print_z); + if (d >= dist_min) + break; + dist_min = d; + } + -- it_layer_tools; + assert(dist_min < EPSILON); + return *it_layer_tools; +} + void ToolOrdering::initialize_layers(std::vector &zs) { sort_remove_duplicates(zs); @@ -139,7 +151,7 @@ void ToolOrdering::collect_extruders(const PrintObject &object) LayerTools &layer_tools = this->tools_for_layer(layer->print_z); // What extruders are required to print this object layer? for (size_t region_id = 0; region_id < object.region_volumes.size(); ++ region_id) { - const LayerRegion *layerm = (region_id < layer->regions().size()) ? layer->regions()[region_id] : nullptr; + const LayerRegion *layerm = (region_id < layer->regions().size()) ? layer->regions()[region_id] : nullptr; if (layerm == nullptr) continue; const PrintRegion ®ion = *object.print()->regions()[region_id]; @@ -312,45 +324,22 @@ void ToolOrdering::fill_wipe_tower_partitions(const PrintConfig &config, coordf_ m_layer_tools[j].has_wipe_tower = true; } else { LayerTools <_extra = *m_layer_tools.insert(m_layer_tools.begin() + j, lt_new); - //LayerTools <_prev = m_layer_tools[j]; LayerTools <_next = m_layer_tools[j + 1]; assert(! m_layer_tools[j - 1].extruders.empty() && ! lt_next.extruders.empty()); // FIXME: Following assert tripped when running combine_infill.t. I decided to comment it out for now. // If it is a bug, it's likely not critical, because this code is unchanged for a long time. It might // still be worth looking into it more and decide if it is a bug or an obsolete assert. //assert(lt_prev.extruders.back() == lt_next.extruders.front()); - lt_extra.has_wipe_tower = true; + lt_extra.has_wipe_tower = true; lt_extra.extruders.push_back(lt_next.extruders.front()); - lt_extra.wipe_tower_partitions = lt_next.wipe_tower_partitions; - } + lt_extra.wipe_tower_partitions = lt_next.wipe_tower_partitions; + } } } break; } } - // If the model contains empty layers (such as https://github.com/prusa3d/Slic3r/issues/1266), there might be layers - // that were not marked as has_wipe_tower, even when they should have been. This produces a crash with soluble supports - // and maybe other problems. We will therefore go through layer_tools and detect and fix this. - // So, if there is a non-object layer starting with different extruder than the last one ended with (or containing more than one extruder), - // we'll mark it with has_wipe tower. - for (unsigned int i=0; i+1 1)) - lt_next.has_wipe_tower = true; - // We should also check that the next wipe tower layer is no further than max_layer_height: - unsigned int j = i+1; - double last_wipe_tower_print_z = lt_next.print_z; - while (++j < m_layer_tools.size()-1 && !m_layer_tools[j].has_wipe_tower) - if (m_layer_tools[j+1].print_z - last_wipe_tower_print_z > max_layer_height) { - m_layer_tools[j].has_wipe_tower = true; - last_wipe_tower_print_z = m_layer_tools[j].print_z; - } - } - // Calculate the wipe_tower_layer_height values. coordf_t wipe_tower_print_z_last = 0.; for (LayerTools < : m_layer_tools) @@ -386,7 +375,7 @@ void ToolOrdering::collect_extruder_statistics(bool prime_multi_material) // Reorder m_all_printing_extruders in the sequence they will be primed, the last one will be m_first_printing_extruder. // Then set m_first_printing_extruder to the 1st extruder primed. m_all_printing_extruders.erase( - std::remove_if(m_all_printing_extruders.begin(), m_all_printing_extruders.end(), + std::remove_if(m_all_printing_extruders.begin(), m_all_printing_extruders.end(), [ this ](const unsigned int eid) { return eid == m_first_printing_extruder; }), m_all_printing_extruders.end()); m_all_printing_extruders.emplace_back(m_first_printing_extruder); @@ -480,14 +469,14 @@ float WipingExtrusions::mark_wiping_extrusions(const Print& print, unsigned int continue; } - const PrintObject* object = object_list[i]; + const auto& object = object_list[i]; // Finds this layer: auto this_layer_it = std::find_if(object->layers().begin(), object->layers().end(), [<](const Layer* lay) { return std::abs(lt.print_z - lay->print_z)layers().end()) continue; const Layer* this_layer = *this_layer_it; - size_t num_of_copies = object->copies().size(); + unsigned int num_of_copies = object->copies().size(); for (unsigned int copy = 0; copy < num_of_copies; ++copy) { // iterate through copies first, so that we mark neighbouring infills to minimize travel moves @@ -516,7 +505,7 @@ float WipingExtrusions::mark_wiping_extrusions(const Print& print, unsigned int if ((!is_entity_overridden(fill, copy) && fill->total_volume() > min_infill_volume)) { // this infill will be used to wipe this extruder set_extruder_override(fill, copy, new_extruder, num_of_copies); - volume_to_wipe -= float(fill->total_volume()); + volume_to_wipe -= fill->total_volume(); } } } @@ -534,7 +523,7 @@ float WipingExtrusions::mark_wiping_extrusions(const Print& print, unsigned int if ((!is_entity_overridden(fill, copy) && fill->total_volume() > min_infill_volume)) { set_extruder_override(fill, copy, new_extruder, num_of_copies); - volume_to_wipe -= float(fill->total_volume()); + volume_to_wipe -= fill->total_volume(); } } } @@ -562,9 +551,9 @@ void WipingExtrusions::ensure_perimeters_infills_order(const Print& print) if (this_layer_it == object->layers().end()) continue; const Layer* this_layer = *this_layer_it; - size_t num_of_copies = object->copies().size(); + unsigned int num_of_copies = object->copies().size(); - for (size_t copy = 0; copy < num_of_copies; ++copy) { // iterate through copies first, so that we mark neighbouring infills to minimize travel moves + for (unsigned int copy = 0; copy < num_of_copies; ++copy) { // iterate through copies first, so that we mark neighbouring infills to minimize travel moves for (size_t region_id = 0; region_id < object->region_volumes.size(); ++ region_id) { const auto& region = *object->print()->regions()[region_id]; @@ -620,7 +609,7 @@ void WipingExtrusions::ensure_perimeters_infills_order(const Print& print) // so -1 was used as "print as usual". // The resulting vector has to keep track of which extrusions are the ones that were overridden and which were not. In the extruder is used as overridden, // its number is saved as it is (zero-based index). Usual extrusions are saved as -number-1 (unfortunately there is no negative zero). -const std::vector* WipingExtrusions::get_extruder_overrides(const ExtrusionEntity* entity, int correct_extruder_id, size_t num_of_copies) +const std::vector* WipingExtrusions::get_extruder_overrides(const ExtrusionEntity* entity, int correct_extruder_id, int num_of_copies) { auto entity_map_it = entity_map.find(entity); if (entity_map_it == entity_map.end()) @@ -634,6 +623,6 @@ const std::vector* WipingExtrusions::get_extruder_overrides(const Extrusion return &(entity_map_it->second); } - + } // namespace Slic3r diff --git a/src/libslic3r/GCode/ToolOrdering.hpp b/src/libslic3r/GCode/ToolOrdering.hpp index 0d4b83ecbc9..538127810df 100644 --- a/src/libslic3r/GCode/ToolOrdering.hpp +++ b/src/libslic3r/GCode/ToolOrdering.hpp @@ -24,7 +24,7 @@ class WipingExtrusions } // This is called from GCode::process_layer - see implementation for further comments: - const std::vector* get_extruder_overrides(const ExtrusionEntity* entity, int correct_extruder_id, size_t num_of_copies); + const std::vector* get_extruder_overrides(const ExtrusionEntity* entity, int correct_extruder_id, int num_of_copies); // This function goes through all infill entities, decides which ones will be used for wiping and // marks them by the extruder id. Returns volume that remains to be wiped on the wipe tower: @@ -44,7 +44,7 @@ class WipingExtrusions void set_extruder_override(const ExtrusionEntity* entity, unsigned int copy_id, int extruder, unsigned int num_of_copies); // Returns true in case that entity is not printed with its usual extruder for a given copy: - bool is_entity_overridden(const ExtrusionEntity* entity, size_t copy_id) const { + bool is_entity_overridden(const ExtrusionEntity* entity, int copy_id) const { return (entity_map.find(entity) == entity_map.end() ? false : entity_map.at(entity).at(copy_id) != -1); } @@ -102,60 +102,45 @@ class LayerTools class ToolOrdering { public: - ToolOrdering() {} - - // For the use case when each object is printed separately - // (print.config.complete_objects is true). - ToolOrdering(const PrintObject &object, unsigned int first_extruder = (unsigned int)-1, bool prime_multi_material = false); - - // For the use case when all objects are printed at once. - // (print.config.complete_objects is false). - ToolOrdering(const Print &print, unsigned int first_extruder = (unsigned int)-1, bool prime_multi_material = false); - - void clear() { m_layer_tools.clear(); } - - // Get the first extruder printing, including the extruder priming areas, returns -1 if there is no layer printed. - unsigned int first_extruder() const { return m_first_printing_extruder; } - - // Get the first extruder printing the layer_tools, returns -1 if there is no layer printed. - unsigned int last_extruder() const { return m_last_printing_extruder; } - - // For a multi-material print, the printing extruders are ordered in the order they shall be primed. - const std::vector& all_extruders() const { return m_all_printing_extruders; } - - template static auto tools_for_layer(Self& self, coordf_t print_z) -> decltype (*self.m_layer_tools.begin()) - { - auto it_layer_tools = std::lower_bound(self.m_layer_tools.begin(), self.m_layer_tools.end(), LayerTools(print_z - EPSILON)); - assert(it_layer_tools != self.m_layer_tools.end()); - coordf_t dist_min = std::abs(it_layer_tools->print_z - print_z); - for (++ it_layer_tools; it_layer_tools != self.m_layer_tools.end(); ++it_layer_tools) { - coordf_t d = std::abs(it_layer_tools->print_z - print_z); - if (d >= dist_min) - break; - dist_min = d; - } - -- it_layer_tools; - assert(dist_min < EPSILON); - return *it_layer_tools; - } + ToolOrdering() {} + + // For the use case when each object is printed separately + // (print.config.complete_objects is true). + ToolOrdering(const PrintObject &object, unsigned int first_extruder = (unsigned int)-1, bool prime_multi_material = false); + + // For the use case when all objects are printed at once. + // (print.config.complete_objects is false). + ToolOrdering(const Print &print, unsigned int first_extruder = (unsigned int)-1, bool prime_multi_material = false); + + void clear() { m_layer_tools.clear(); } + + // Get the first extruder printing, including the extruder priming areas, returns -1 if there is no layer printed. + unsigned int first_extruder() const { return m_first_printing_extruder; } + + // Get the first extruder printing the layer_tools, returns -1 if there is no layer printed. + unsigned int last_extruder() const { return m_last_printing_extruder; } + + // For a multi-material print, the printing extruders are ordered in the order they shall be primed. + const std::vector& all_extruders() const { return m_all_printing_extruders; } - // Find LayerTools with the closest print_z. - LayerTools& tools_for_layer(coordf_t print_z) { return tools_for_layer(*this, print_z); } - const LayerTools& tools_for_layer(coordf_t print_z) const { return tools_for_layer(*this, print_z); } + // Find LayerTools with the closest print_z. + LayerTools& tools_for_layer(coordf_t print_z); + const LayerTools& tools_for_layer(coordf_t print_z) const + { return *const_cast(&const_cast(this)->tools_for_layer(print_z)); } - const LayerTools& front() const { return m_layer_tools.front(); } - const LayerTools& back() const { return m_layer_tools.back(); } - std::vector::const_iterator begin() const { return m_layer_tools.begin(); } - std::vector::const_iterator end() const { return m_layer_tools.end(); } - bool empty() const { return m_layer_tools.empty(); } - std::vector& layer_tools() { return m_layer_tools; } - bool has_wipe_tower() const { return ! m_layer_tools.empty() && m_first_printing_extruder != (unsigned int)-1 && m_layer_tools.front().wipe_tower_partitions > 0; } + const LayerTools& front() const { return m_layer_tools.front(); } + const LayerTools& back() const { return m_layer_tools.back(); } + std::vector::const_iterator begin() const { return m_layer_tools.begin(); } + std::vector::const_iterator end() const { return m_layer_tools.end(); } + bool empty() const { return m_layer_tools.empty(); } + std::vector& layer_tools() { return m_layer_tools; } + bool has_wipe_tower() const { return ! m_layer_tools.empty() && m_first_printing_extruder != (unsigned int)-1 && m_layer_tools.front().wipe_tower_partitions > 0; } private: - void initialize_layers(std::vector &zs); - void collect_extruders(const PrintObject &object); - void reorder_extruders(unsigned int last_extruder_id); - void fill_wipe_tower_partitions(const PrintConfig &config, coordf_t object_bottom_z); + void initialize_layers(std::vector &zs); + void collect_extruders(const PrintObject &object); + void reorder_extruders(unsigned int last_extruder_id); + void fill_wipe_tower_partitions(const PrintConfig &config, coordf_t object_bottom_z); void collect_extruder_statistics(bool prime_multi_material); std::vector m_layer_tools; diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index 3ee5170a417..cd90eba0421 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -22,7 +22,6 @@ TODO LIST #include #include "Analyzer.hpp" -#include "BoundingBox.hpp" #if defined(__linux) || defined(__GNUC__ ) #include @@ -36,6 +35,19 @@ TODO LIST namespace Slic3r { +// Rotate the point around center of the wipe tower about given angle (in degrees) +static Vec2f rotate(const Vec2f& pt, float width, float depth, float angle) +{ + Vec2f out(0,0); + float temp_x = pt(0) - width / 2.f; + float temp_y = pt(1) - depth / 2.f; + angle *= float(M_PI/180.); + out.x() += temp_x * cos(angle) - temp_y * sin(angle) + width / 2.f; + out.y() += temp_x * sin(angle) + temp_y * cos(angle) + depth / 2.f; + return out; +} + + class WipeTowerWriter { public: @@ -69,7 +81,7 @@ class WipeTowerWriter } WipeTowerWriter& change_analyzer_mm3_per_mm(float len, float e) { - static const float area = float(M_PI) * 1.75f * 1.75f / 4.f; + static const float area = M_PI * 1.75f * 1.75f / 4.f; float mm3_per_mm = (len == 0.f ? 0.f : area * e / len); // adds tag for analyzer: char buf[64]; @@ -82,12 +94,12 @@ class WipeTowerWriter m_wipe_tower_width = width; m_wipe_tower_depth = depth; m_internal_angle = internal_angle; - m_start_pos = this->rotate(pos); + m_start_pos = rotate(pos + Vec2f(0.f,m_y_shift), m_wipe_tower_width, m_wipe_tower_depth, m_internal_angle); m_current_pos = pos; return *this; } - WipeTowerWriter& set_initial_tool(size_t tool) { m_current_tool = tool; return *this; } + WipeTowerWriter& set_initial_tool(const unsigned int tool) { m_current_tool = tool; return *this; } WipeTowerWriter& set_z(float z) { m_current_z = z; return *this; } @@ -101,11 +113,6 @@ class WipeTowerWriter return (*this); } - WipeTowerWriter& disable_linear_advance() { - m_gcode += (m_gcode_flavor == gcfRepRap ? std::string("M572 D0 S0\n") : std::string("M900 K0\n")); - return *this; - } - // Suppress / resume G-code preview in Slic3r. Slic3r will have difficulty to differentiate the various // filament loading and cooling moves from normal extrusion moves. Therefore the writer // is asked to suppres output of some lines, which look like extrusions. @@ -125,7 +132,7 @@ class WipeTowerWriter float y() const { return m_current_pos.y(); } const Vec2f& pos() const { return m_current_pos; } const Vec2f start_pos_rotated() const { return m_start_pos; } - const Vec2f pos_rotated() const { return this->rotate(m_current_pos); } + const Vec2f pos_rotated() const { return rotate(m_current_pos + Vec2f(0.f, m_y_shift), m_wipe_tower_width, m_wipe_tower_depth, m_internal_angle); } float elapsed_time() const { return m_elapsed_time; } float get_and_reset_used_filament_length() { float temp = m_used_filament_length; m_used_filament_length = 0.f; return temp; } @@ -138,19 +145,19 @@ class WipeTowerWriter float dx = x - m_current_pos.x(); float dy = y - m_current_pos.y(); - float len = std::sqrt(dx*dx+dy*dy); + double len = sqrt(dx*dx+dy*dy); if (record_length) m_used_filament_length += e; // Now do the "internal rotation" with respect to the wipe tower center - Vec2f rotated_current_pos(this->pos_rotated()); - Vec2f rot(this->rotate(Vec2f(x,y))); // this is where we want to go + Vec2f rotated_current_pos(rotate(m_current_pos + Vec2f(0.f,m_y_shift), m_wipe_tower_width, m_wipe_tower_depth, m_internal_angle)); // this is where we are + Vec2f rot(rotate(Vec2f(x,y+m_y_shift), m_wipe_tower_width, m_wipe_tower_depth, m_internal_angle)); // this is where we want to go - if (! m_preview_suppressed && e > 0.f && len > 0.f) { + if (! m_preview_suppressed && e > 0.f && len > 0.) { change_analyzer_mm3_per_mm(len, e); // Width of a squished extrusion, corrected for the roundings of the squished extrusions. // This is left zero if it is a travel move. - float width = e * m_filpar[0].filament_area / (len * m_layer_height); + float width = float(double(e) * m_filpar[0].filament_area / (len * m_layer_height)); // Correct for the roundings of a squished extrusion. width += m_layer_height * float(1. - M_PI / 4.); if (m_extrusions.empty() || m_extrusions.back().pos != rotated_current_pos) @@ -159,10 +166,10 @@ class WipeTowerWriter } m_gcode += "G1"; - if (std::abs(rot.x() - rotated_current_pos.x()) > (float)EPSILON) + if (std::abs(rot.x() - rotated_current_pos.x()) > EPSILON) m_gcode += set_format_X(rot.x()); - if (std::abs(rot.y() - rotated_current_pos.y()) > (float)EPSILON) + if (std::abs(rot.y() - rotated_current_pos.y()) > EPSILON) m_gcode += set_format_Y(rot.y()); @@ -171,7 +178,7 @@ class WipeTowerWriter if (f != 0.f && f != m_current_feedrate) { if (limit_volumetric_flow) { - float e_speed = e / (((len == 0.f) ? std::abs(e) : len) / f * 60.f); + float e_speed = e / (((len == 0) ? std::abs(e) : len) / f * 60.f); f /= std::max(1.f, e_speed / m_filpar[m_current_tool].max_e_speed); } m_gcode += set_format_F(f); @@ -181,7 +188,7 @@ class WipeTowerWriter m_current_pos.y() = y; // Update the elapsed time with a rough estimate. - m_elapsed_time += ((len == 0.f) ? std::abs(e) : len) / m_current_feedrate * 60.f; + m_elapsed_time += ((len == 0) ? std::abs(e) : len) / m_current_feedrate * 60.f; m_gcode += "\n"; return *this; } @@ -201,7 +208,7 @@ class WipeTowerWriter { float dx = x - m_current_pos.x(); float dy = y - m_current_pos.y(); - return extrude_explicit(x, y, std::sqrt(dx*dx+dy*dy) * m_extrusion_flow, f, true); + return extrude_explicit(x, y, sqrt(dx*dx+dy*dy) * m_extrusion_flow, f, true); } WipeTowerWriter& extrude(const Vec2f &dest, const float f = 0.f) @@ -298,7 +305,7 @@ class WipeTowerWriter return *this; } - WipeTowerWriter& set_tool(size_t tool) + WipeTowerWriter& set_tool(int tool) { m_current_tool = tool; return *this; @@ -307,52 +314,57 @@ class WipeTowerWriter // Set extruder temperature, don't wait by default. WipeTowerWriter& set_extruder_temp(int temperature, bool wait = false) { - m_gcode += "M" + std::to_string(wait ? 109 : 104) + " S" + std::to_string(temperature) + "\n"; + char buf[128]; + sprintf(buf, "M%d S%d\n", wait ? 109 : 104, temperature); + m_gcode += buf; return *this; - } + }; // Wait for a period of time (seconds). WipeTowerWriter& wait(float time) { - if (time==0.f) + if (time==0) return *this; char buf[128]; sprintf(buf, "G4 S%.3f\n", time); m_gcode += buf; return *this; - } + }; // Set speed factor override percentage. WipeTowerWriter& speed_override(int speed) { - m_gcode += "M220 S" + std::to_string(speed) + "\n"; + char buf[128]; + sprintf(buf, "M220 S%d\n", speed); + m_gcode += buf; return *this; - } + }; // Let the firmware back up the active speed override value. WipeTowerWriter& speed_override_backup() { m_gcode += "M220 B\n"; return *this; - } + }; // Let the firmware restore the active speed override value. WipeTowerWriter& speed_override_restore() { m_gcode += "M220 R\n"; return *this; - } + }; // Set digital trimpot motor WipeTowerWriter& set_extruder_trimpot(int current) { + char buf[128]; if (m_gcode_flavor == gcfRepRap) - m_gcode += "M906 E"; + sprintf(buf, "M906 E%d\n", current); else - m_gcode += "M907 E"; - m_gcode += std::to_string(current) + "\n"; + sprintf(buf, "M907 E%d\n", current); + m_gcode += buf; return *this; - } + }; WipeTowerWriter& flush_planner_queue() { @@ -369,19 +381,27 @@ class WipeTowerWriter WipeTowerWriter& comment_with_value(const char *comment, int value) { - m_gcode += std::string(";") + comment + std::to_string(value) + "\n"; + char strvalue[64]; + sprintf(strvalue, "%d", value); + m_gcode += std::string(";") + comment + strvalue + "\n"; return *this; - } + }; - WipeTowerWriter& set_fan(unsigned speed) + WipeTowerWriter& set_fan(unsigned int speed) { if (speed == m_last_fan_speed) return *this; + if (speed == 0) m_gcode += "M107\n"; else - m_gcode += "M106 S" + std::to_string(unsigned(255.0 * speed / 100.0)) + "\n"; + { + m_gcode += "M106 S"; + char buf[128]; + sprintf(buf,"%u\n",(unsigned int)(255.0 * speed / 100.0)); + m_gcode += buf; + } m_last_fan_speed = speed; return *this; } @@ -393,7 +413,7 @@ class WipeTowerWriter Vec2f m_current_pos; float m_current_z; float m_current_feedrate; - size_t m_current_tool; + unsigned int m_current_tool; float m_layer_height; float m_extrusion_flow; bool m_preview_suppressed; @@ -404,7 +424,7 @@ class WipeTowerWriter float m_y_shift = 0.f; float m_wipe_tower_width = 0.f; float m_wipe_tower_depth = 0.f; - unsigned m_last_fan_speed = 0; + float m_last_fan_speed = 0.f; int current_temp = -1; const float m_default_analyzer_line_width; float m_used_filament_length = 0.f; @@ -446,99 +466,10 @@ class WipeTowerWriter } WipeTowerWriter& operator=(const WipeTowerWriter &rhs); - - // Rotate the point around center of the wipe tower about given angle (in degrees) - Vec2f rotate(Vec2f pt) const - { - pt.x() -= m_wipe_tower_width / 2.f; - pt.y() += m_y_shift - m_wipe_tower_depth / 2.f; - double angle = m_internal_angle * float(M_PI/180.); - double c = cos(angle); - double s = sin(angle); - return Vec2f(float(pt.x() * c - pt.y() * s) + m_wipe_tower_width / 2.f, float(pt.x() * s + pt.y() * c) + m_wipe_tower_depth / 2.f); - } - }; // class WipeTowerWriter -WipeTower::WipeTower(const PrintConfig& config, const std::vector>& wiping_matrix, size_t initial_tool) : - m_semm(config.single_extruder_multi_material.value), - m_wipe_tower_pos(config.wipe_tower_x, config.wipe_tower_y), - m_wipe_tower_width(float(config.wipe_tower_width)), - m_wipe_tower_rotation_angle(float(config.wipe_tower_rotation_angle)), - m_y_shift(0.f), - m_z_pos(0.f), - m_is_first_layer(false), - m_bridging(float(config.wipe_tower_bridging)), - m_gcode_flavor(config.gcode_flavor), - m_current_tool(initial_tool), - wipe_volumes(wiping_matrix) -{ - // If this is a single extruder MM printer, we will use all the SE-specific config values. - // Otherwise, the defaults will be used to turn off the SE stuff. - if (m_semm) { - m_cooling_tube_retraction = float(config.cooling_tube_retraction); - m_cooling_tube_length = float(config.cooling_tube_length); - m_parking_pos_retraction = float(config.parking_pos_retraction); - m_extra_loading_move = float(config.extra_loading_move); - m_set_extruder_trimpot = config.high_current_on_filament_swap; - } - // Calculate where the priming lines should be - very naive test not detecting parallelograms or custom shapes - const std::vector& bed_points = config.bed_shape.values; - m_bed_shape = (bed_points.size() == 4 ? RectangularBed : CircularBed); - m_bed_width = float(BoundingBoxf(bed_points).size().x()); -} - - - -void WipeTower::set_extruder(size_t idx, const PrintConfig& config) -{ - //while (m_filpar.size() < idx+1) // makes sure the required element is in the vector - m_filpar.push_back(FilamentParameters()); - - m_filpar[idx].material = config.filament_type.get_at(idx); - m_filpar[idx].temperature = config.temperature.get_at(idx); - m_filpar[idx].first_layer_temperature = config.first_layer_temperature.get_at(idx); - - // If this is a single extruder MM printer, we will use all the SE-specific config values. - // Otherwise, the defaults will be used to turn off the SE stuff. - if (m_semm) { - m_filpar[idx].loading_speed = float(config.filament_loading_speed.get_at(idx)); - m_filpar[idx].loading_speed_start = float(config.filament_loading_speed_start.get_at(idx)); - m_filpar[idx].unloading_speed = float(config.filament_unloading_speed.get_at(idx)); - m_filpar[idx].unloading_speed_start = float(config.filament_unloading_speed_start.get_at(idx)); - m_filpar[idx].delay = float(config.filament_toolchange_delay.get_at(idx)); - m_filpar[idx].cooling_moves = config.filament_cooling_moves.get_at(idx); - m_filpar[idx].cooling_initial_speed = float(config.filament_cooling_initial_speed.get_at(idx)); - m_filpar[idx].cooling_final_speed = float(config.filament_cooling_final_speed.get_at(idx)); - } - - m_filpar[idx].filament_area = float((M_PI/4.f) * pow(config.filament_diameter.get_at(idx), 2)); // all extruders are assumed to have the same filament diameter at this point - float nozzle_diameter = float(config.nozzle_diameter.get_at(idx)); - m_filpar[idx].nozzle_diameter = nozzle_diameter; // to be used in future with (non-single) multiextruder MM - - float max_vol_speed = float(config.filament_max_volumetric_speed.get_at(idx)); - if (max_vol_speed!= 0.f) - m_filpar[idx].max_e_speed = (max_vol_speed / filament_area()); - - m_perimeter_width = nozzle_diameter * Width_To_Nozzle_Ratio; // all extruders are now assumed to have the same diameter - - if (m_semm) { - std::istringstream stream{config.filament_ramming_parameters.get_at(idx)}; - float speed = 0.f; - stream >> m_filpar[idx].ramming_line_width_multiplicator >> m_filpar[idx].ramming_step_multiplicator; - m_filpar[idx].ramming_line_width_multiplicator /= 100; - m_filpar[idx].ramming_step_multiplicator /= 100; - while (stream >> speed) - m_filpar[idx].ramming_speed.push_back(speed); - } - - m_used_filament_length.resize(std::max(m_used_filament_length.size(), idx + 1)); // makes sure that the vector is big enough so we don't have to check later -} - - - // Returns gcode to prime the nozzles at the front edge of the print bed. std::vector WipeTower::prime( // print_z of the first layer. @@ -547,7 +478,7 @@ std::vector WipeTower::prime( const std::vector &tools, // If true, the last priming are will be the same as the other priming areas, and the rest of the wipe will be performed inside the wipe tower. // If false, the last priming are will be large enough to wipe the last extruder sufficiently. - bool /*last_wipe_inside_wipe_tower*/) + bool last_wipe_inside_wipe_tower) { this->set_layer(first_layer_height, first_layer_height, tools.size(), true, false); this->m_current_tool = tools.front(); @@ -557,17 +488,15 @@ std::vector WipeTower::prime( // therefore the homing position is shifted inside the bed by 0.2 in the firmware to [0.2, -2.0]. // box_coordinates cleaning_box(xy(0.5f, - 1.5f), m_wipe_tower_width, wipe_area); - float prime_section_width = std::min(0.9f * m_bed_width / tools.size(), 60.f); - box_coordinates cleaning_box(Vec2f(0.02f * m_bed_width, 0.01f + m_perimeter_width/2.f), prime_section_width, 100.f); - // In case of a circular bed, place it so it goes across the diameter and hope it will fit - if (m_bed_shape == CircularBed) - cleaning_box.translate(-m_bed_width/2 + m_bed_width * 0.03f, -m_bed_width * 0.12f); + const float prime_section_width = std::min(240.f / tools.size(), 60.f); + box_coordinates cleaning_box(Vec2f(5.f, 0.01f + m_perimeter_width/2.f), prime_section_width, 100.f); + std::vector results; // Iterate over all priming toolchanges and push respective ToolChangeResults into results vector. for (size_t idx_tool = 0; idx_tool < tools.size(); ++ idx_tool) { - size_t old_tool = m_current_tool; + int old_tool = m_current_tool; WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); writer.set_extrusion_flow(m_extrusion_flow) @@ -616,8 +545,8 @@ std::vector WipeTower::prime( ToolChangeResult result; result.priming = true; - result.initial_tool = int(old_tool); - result.new_tool = int(m_current_tool); + result.initial_tool = old_tool; + result.new_tool = m_current_tool; result.print_z = this->m_z_pos; result.layer_height = this->m_layer_height; result.gcode = writer.gcode(); @@ -652,12 +581,12 @@ std::vector WipeTower::prime( return results; } -WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool last_in_layer) +WipeTower::ToolChangeResult WipeTower::tool_change(unsigned int tool, bool last_in_layer) { if ( m_print_brim ) return toolchange_Brim(); - size_t old_tool = m_current_tool; + int old_tool = m_current_tool; float wipe_area = 0.f; bool last_change_in_layer = false; @@ -682,7 +611,7 @@ WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool last_in_lay box_coordinates cleaning_box( Vec2f(m_perimeter_width / 2.f, m_perimeter_width / 2.f), m_wipe_tower_width - m_perimeter_width, - (tool != (unsigned int)(-1) ? /*m_layer_info->depth*/wipe_area+m_depth_traversed-0.5f*m_perimeter_width + (tool != (unsigned int)(-1) ? /*m_layer_info->depth*/wipe_area+m_depth_traversed-0.5*m_perimeter_width : m_wipe_tower_depth-m_perimeter_width)); WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); @@ -750,8 +679,8 @@ WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool last_in_lay ToolChangeResult result; result.priming = false; - result.initial_tool = int(old_tool); - result.new_tool = int(m_current_tool); + result.initial_tool = old_tool; + result.new_tool = m_current_tool; result.print_z = this->m_z_pos; result.layer_height = this->m_layer_height; result.gcode = writer.gcode(); @@ -764,7 +693,7 @@ WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool last_in_lay WipeTower::ToolChangeResult WipeTower::toolchange_Brim(bool sideOnly, float y_offset) { - size_t old_tool = m_current_tool; + int old_tool = m_current_tool; const box_coordinates wipeTower_box( Vec2f::Zero(), @@ -808,8 +737,8 @@ WipeTower::ToolChangeResult WipeTower::toolchange_Brim(bool sideOnly, float y_of ToolChangeResult result; result.priming = false; - result.initial_tool = int(old_tool); - result.new_tool = int(m_current_tool); + result.initial_tool = old_tool; + result.new_tool = m_current_tool; result.print_z = this->m_z_pos; result.layer_height = this->m_layer_height; result.gcode = writer.gcode(); @@ -889,16 +818,14 @@ void WipeTower::toolchange_Unload( } } - writer.disable_linear_advance(); - // now the ramming itself: while (i < m_filpar[m_current_tool].ramming_speed.size()) { const float x = volume_to_length(m_filpar[m_current_tool].ramming_speed[i] * 0.25f, line_width, m_layer_height); const float e = m_filpar[m_current_tool].ramming_speed[i] * 0.25f / filament_area(); // transform volume per sec to E move; const float dist = std::min(x - e_done, remaining); // distance to travel for either the next 0.25s, or to the next turnaround - const float actual_time = dist/x * 0.25f; - writer.ram(writer.x(), writer.x() + (m_left_to_right ? 1.f : -1.f) * dist, 0.f, 0.f, e * (dist / x), dist / (actual_time / 60.f)); + const float actual_time = dist/x * 0.25; + writer.ram(writer.x(), writer.x() + (m_left_to_right ? 1.f : -1.f) * dist, 0, 0, e * (dist / x), dist / (actual_time / 60.)); remaining -= dist; if (remaining < WT_EPSILON) { // we reached a turning point @@ -933,17 +860,12 @@ void WipeTower::toolchange_Unload( .travel(old_x, writer.y()) // in case previous move was shortened to limit feedrate*/ .resume_preview(); } - // Wipe tower should only change temperature with single extruder MM. Otherwise, all temperatures should - // be already set and there is no need to change anything. Also, the temperature could be changed - // for wrong extruder. - if (m_semm) { if (new_temperature != 0 && (new_temperature != m_old_temperature || m_is_first_layer) ) { // Set the extruder temperature, but don't wait. // If the required temperature is the same as last time, don't emit the M104 again (if user adjusted the value, it would be reset) // However, always change temperatures on the first layer (this is to avoid issues with priming lines turned off). writer.set_extruder_temp(new_temperature, false); m_old_temperature = new_temperature; } - } // Cooling: const int& number_of_moves = m_filpar[m_current_tool].cooling_moves; @@ -981,7 +903,7 @@ void WipeTower::toolchange_Unload( // Change the tool, set a speed override for soluble and flex materials. void WipeTower::toolchange_Change( WipeTowerWriter &writer, - const size_t new_tool, + const unsigned int new_tool, const std::string& new_material) { // Ask the writer about how much of the old filament we consumed: @@ -993,11 +915,6 @@ void WipeTower::toolchange_Change( writer.append("[end_filament_gcode]\n"); writer.append("[toolchange_gcode]\n"); - // Travel to where we assume we are. Custom toolchange or some special T code handling (parking extruder etc) - // gcode could have left the extruder somewhere, we cannot just start extruding. - Vec2f current_pos = writer.pos_rotated(); - writer.append(std::string("G1 X") + std::to_string(current_pos.x()) + " Y" + std::to_string(current_pos.y()) + "\n"); - // The toolchange Tn command will be inserted later, only in case that the user does // not provide a custom toolchange gcode. writer.set_tool(new_tool); // This outputs nothing, the writer just needs to know the tool has changed. @@ -1078,21 +995,21 @@ void WipeTower::toolchange_Wipe( float traversed_x = writer.x(); if (m_left_to_right) - writer.extrude(xr - (i % 4 == 0 ? 0 : 1.5f*m_perimeter_width), writer.y(), wipe_speed * wipe_coeff); + writer.extrude(xr - (i % 4 == 0 ? 0 : 1.5*m_perimeter_width), writer.y(), wipe_speed * wipe_coeff); else - writer.extrude(xl + (i % 4 == 1 ? 0 : 1.5f*m_perimeter_width), writer.y(), wipe_speed * wipe_coeff); + writer.extrude(xl + (i % 4 == 1 ? 0 : 1.5*m_perimeter_width), writer.y(), wipe_speed * wipe_coeff); - if (writer.y()+float(EPSILON) > cleaning_box.lu.y()-0.5f*m_perimeter_width) + if (writer.y()+EPSILON > cleaning_box.lu.y()-0.5f*m_perimeter_width) break; // in case next line would not fit traversed_x -= writer.x(); - x_to_wipe -= std::abs(traversed_x); + x_to_wipe -= fabs(traversed_x); if (x_to_wipe < WT_EPSILON) { - writer.travel(m_left_to_right ? xl + 1.5f*m_perimeter_width : xr - 1.5f*m_perimeter_width, writer.y(), 7200); + writer.travel(m_left_to_right ? xl + 1.5*m_perimeter_width : xr - 1.5*m_perimeter_width, writer.y(), 7200); break; } // stepping to the next line: - writer.extrude(writer.x() + (i % 4 == 0 ? -1.f : (i % 4 == 1 ? 1.f : 0.f)) * 1.5f*m_perimeter_width, writer.y() + dy); + writer.extrude(writer.x() + (i % 4 == 0 ? -1.f : (i % 4 == 1 ? 1.f : 0.f)) * 1.5*m_perimeter_width, writer.y() + dy); m_left_to_right = !m_left_to_right; } @@ -1115,7 +1032,7 @@ WipeTower::ToolChangeResult WipeTower::finish_layer() // Otherwise the caller would likely travel to the wipe tower in vain. assert(! this->layer_finished()); - size_t old_tool = m_current_tool; + int old_tool = m_current_tool; WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); writer.set_extrusion_flow(m_extrusion_flow) @@ -1175,7 +1092,7 @@ WipeTower::ToolChangeResult WipeTower::finish_layer() writer.travel(fill_box.ld + Vec2f(m_perimeter_width * 2, 0.f)) .extrude(fill_box.lu + Vec2f(m_perimeter_width * 2, 0.f), 2900 * speed_factor); - const int n = 1+int((right-left)/m_bridging); + const int n = 1+(right-left)/(m_bridging); const float dx = (right-left)/n; for (int i=1;i<=n;++i) { float x=left+dx*i; @@ -1198,8 +1115,8 @@ WipeTower::ToolChangeResult WipeTower::finish_layer() ToolChangeResult result; result.priming = false; - result.initial_tool = int(old_tool); - result.new_tool = int(m_current_tool); + result.initial_tool = old_tool; + result.new_tool = m_current_tool; result.print_z = this->m_z_pos; result.layer_height = this->m_layer_height; result.gcode = writer.gcode(); @@ -1254,7 +1171,7 @@ void WipeTower::plan_tower() for (auto& layer : m_plan) layer.depth = 0.f; - for (int layer_index = int(m_plan.size()) - 1; layer_index >= 0; --layer_index) + for (int layer_index = m_plan.size() - 1; layer_index >= 0; --layer_index) { float this_layer_depth = std::max(m_plan[layer_index].depth, m_plan[layer_index].toolchanges_depth()); m_plan[layer_index].depth = this_layer_depth; @@ -1325,8 +1242,6 @@ void WipeTower::generate(std::vector> & for (auto& used : m_used_filament_length) // reset used filament stats used = 0.f; - m_old_temperature = -1; // reset last temperature written in the gcode - std::vector layer_result; for (auto layer : m_plan) { diff --git a/src/libslic3r/GCode/WipeTower.hpp b/src/libslic3r/GCode/WipeTower.hpp index 9b5d4895381..0b77664c780 100644 --- a/src/libslic3r/GCode/WipeTower.hpp +++ b/src/libslic3r/GCode/WipeTower.hpp @@ -7,21 +7,21 @@ #include #include -#include "libslic3r/Point.hpp" +#include "libslic3r/PrintConfig.hpp" + namespace Slic3r { class WipeTowerWriter; -class PrintConfig; -enum GCodeFlavor : unsigned char; + class WipeTower { public: struct Extrusion - { + { Extrusion(const Vec2f &pos, float width, unsigned int tool) : pos(pos), width(width), tool(tool) {} // End position of this extrusion. Vec2f pos; @@ -78,10 +78,105 @@ class WipeTower // y -- y coordinates of wipe tower in mm ( left bottom corner ) // width -- width of wipe tower in mm ( default 60 mm - leave as it is ) // wipe_area -- space available for one toolchange in mm - WipeTower(const PrintConfig& config, const std::vector>& wiping_matrix, size_t initial_tool); + //WipeTower(bool semm, float x, float y, float width, float rotation_angle, float cooling_tube_retraction, + // float cooling_tube_length, float parking_pos_retraction, float extra_loading_move, + // float bridging, bool set_extruder_trimpot, GCodeFlavor flavor, + // const std::vector>& wiping_matrix, unsigned int initial_tool) : + // m_semm(semm), + // m_wipe_tower_pos(x, y), + // m_wipe_tower_width(width), + // m_wipe_tower_rotation_angle(rotation_angle), + // m_y_shift(0.f), + // m_z_pos(0.f), + // m_is_first_layer(false), + // m_gcode_flavor(flavor), + // m_bridging(bridging), + // m_current_tool(initial_tool), + // wipe_volumes(wiping_matrix) + // { + // // If this is a single extruder MM printer, we will use all the SE-specific config values. + // // Otherwise, the defaults will be used to turn off the SE stuff. + // if (m_semm) { + // m_cooling_tube_retraction = cooling_tube_retraction; + // m_cooling_tube_length = cooling_tube_length; + // m_parking_pos_retraction = parking_pos_retraction; + // m_extra_loading_move = extra_loading_move; + // m_set_extruder_trimpot = set_extruder_trimpot; + // } + // } + + WipeTower(PrintConfig &config, const std::vector>& wiping_matrix, unsigned int initial_tool, float first_layer_width) : + m_semm(config.single_extruder_multi_material.value), + m_wipe_tower_pos(float(config.wipe_tower_x.value), float(config.wipe_tower_y.value)), + m_wipe_tower_width(float(config.wipe_tower_width.value)), + m_wipe_tower_rotation_angle(float(config.wipe_tower_rotation_angle.value)), + m_y_shift(0.f), + m_z_pos(0.f), + m_is_first_layer(false), + m_bridging(float(config.wipe_tower_bridging)), + m_gcode_flavor(config.gcode_flavor), + m_current_tool(initial_tool), + wipe_volumes(wiping_matrix), + m_brim_width(first_layer_width), + m_config(&config) + { + // If this is a single extruder MM printer, we will use all the SE-specific config values. + // Otherwise, the defaults will be used to turn off the SE stuff. + if (config.single_extruder_multi_material.value) { + m_cooling_tube_retraction = (float(config.cooling_tube_retraction.value)); + m_cooling_tube_length = (float(config.cooling_tube_length.value)); + m_parking_pos_retraction = (float(config.parking_pos_retraction.value)); + m_extra_loading_move = (float(config.extra_loading_move.value)); + m_set_extruder_trimpot = (config.high_current_on_filament_swap.value); + } + } + + virtual ~WipeTower() {} // Set the extruder properties. - void set_extruder(size_t idx, const PrintConfig& config); + void set_extruder(size_t idx) + { + //while (m_filpar.size() < idx+1) // makes sure the required element is in the vector + m_filpar.push_back(FilamentParameters()); + + m_filpar[idx].material = m_config->filament_type.get_at(idx); + m_filpar[idx].temperature = (float)m_config->temperature.get_at(idx); + m_filpar[idx].first_layer_temperature = m_config->first_layer_temperature.get_at(idx); + + // If this is a single extruder MM printer, we will use all the SE-specific config values. + // Otherwise, the defaults will be used to turn off the SE stuff. + if (m_semm) { + m_filpar[idx].loading_speed = (float)m_config->filament_loading_speed.get_at(idx); + m_filpar[idx].loading_speed_start = (float)m_config->filament_loading_speed_start.get_at(idx); + m_filpar[idx].unloading_speed = (float)m_config->filament_unloading_speed.get_at(idx); + m_filpar[idx].unloading_speed_start = (float)m_config->filament_unloading_speed_start.get_at(idx); + m_filpar[idx].delay = (float)m_config->filament_toolchange_delay.get_at(idx); + m_filpar[idx].cooling_moves = (float)m_config->filament_cooling_moves.get_at(idx); + m_filpar[idx].cooling_initial_speed = (float)m_config->filament_cooling_initial_speed.get_at(idx); + m_filpar[idx].cooling_final_speed = (float)m_config->filament_cooling_final_speed.get_at(idx); + } + + m_filpar[idx].filament_area = (M_PI/4.f) * pow((float)m_config->filament_diameter.get_at(idx), 2); // all extruders are assumed to have the same filament diameter at this point + m_filpar[idx].nozzle_diameter = (float)m_config->nozzle_diameter.get_at(idx); // to be used in future with (non-single) multiextruder MM + + if ((float)m_config->filament_max_volumetric_speed.get_at(idx) != 0.f) + m_filpar[idx].max_e_speed = ((float)m_config->filament_max_volumetric_speed.get_at(idx) / filament_area()); + + m_perimeter_width = m_filpar[idx].nozzle_diameter * Width_To_Nozzle_Ratio; // all extruders are now assumed to have the same diameter + + if (m_semm) { + std::stringstream stream{ m_config->filament_ramming_parameters.get_at(idx) }; + float speed = 0.f; + stream >> m_filpar[idx].ramming_line_width_multiplicator >> m_filpar[idx].ramming_step_multiplicator; + m_filpar[idx].ramming_line_width_multiplicator /= 100; + m_filpar[idx].ramming_step_multiplicator /= 100; + while (stream >> speed) + m_filpar[idx].ramming_speed.push_back(speed); + } + + m_used_filament_length.resize(std::max(m_used_filament_length.size(), idx + 1)); // makes sure that the vector is big enough so we don't have to check later + } + // Appends into internal structure m_plan containing info about the future wipe tower // to be used before building begins. The entries must be added ordered in z. @@ -147,7 +242,7 @@ class WipeTower // Returns gcode for a toolchange and a final print head position. // On the first layer, extrude a brim around the future wipe tower first. - ToolChangeResult tool_change(size_t new_tool, bool last_in_layer); + ToolChangeResult tool_change(unsigned int new_tool, bool last_in_layer); // Fill the unfilled space with a sparse infill. // Call this method only if layer_finished() is false. @@ -190,13 +285,15 @@ class WipeTower SHAPE_REVERSED = -1 }; + const bool m_peters_wipe_tower = false; // sparse wipe tower inspired by Peter's post processor - not finished yet const float Width_To_Nozzle_Ratio = 1.25f; // desired line width (oval) in multiples of nozzle diameter - may not be actually neccessary to adjust const float WT_EPSILON = 1e-3f; - float filament_area() const { + const float filament_area() const { return m_filpar[0].filament_area; // all extruders are assumed to have the same filament diameter at this point } + PrintConfig *m_config = NULL; bool m_semm = true; // Are we using a single extruder multimaterial printer? Vec2f m_wipe_tower_pos; // Left front corner of the wipe tower in mm. @@ -221,12 +318,6 @@ class WipeTower bool m_adhesion = true; GCodeFlavor m_gcode_flavor; - // Bed properties - enum { - RectangularBed, - CircularBed - } m_bed_shape; - float m_bed_width; // width of the bed bounding box float m_perimeter_width = 0.4f * Width_To_Nozzle_Ratio; // Width of an extrusion line, also a perimeter spacing for 100% infill. float m_brim_width = 0.4 * Width_To_Nozzle_Ratio * Width_To_Nozzle_Ratio; // Width of an extrusion line, also a perimeter spacing for 100% infill. @@ -243,7 +334,7 @@ class WipeTower bool m_print_brim = true; // A fill-in direction (positive Y, negative Y) alternates with each layer. wipe_shape m_current_shape = SHAPE_NORMAL; - size_t m_current_tool = 0; + unsigned int m_current_tool = 0; const std::vector> wipe_volumes; float m_depth_traversed = 0.f; // Current y position at the wipe tower. @@ -308,13 +399,13 @@ class WipeTower // to store information about tool changes for a given layer struct WipeTowerInfo{ struct ToolChange { - size_t old_tool; - size_t new_tool; + unsigned int old_tool; + unsigned int new_tool; float required_depth; float ramming_depth; float first_wipe_line; float wipe_volume; - ToolChange(size_t old, size_t newtool, float depth=0.f, float ramming_depth=0.f, float fwl=0.f, float wv=0.f) + ToolChange(unsigned int old, unsigned int newtool, float depth=0.f, float ramming_depth=0.f, float fwl=0.f, float wv=0.f) : old_tool{old}, new_tool{newtool}, required_depth{depth}, ramming_depth{ramming_depth}, first_wipe_line{fwl}, wipe_volume{wv} {} }; float z; // z position of the layer @@ -349,7 +440,7 @@ class WipeTower void toolchange_Change( WipeTowerWriter &writer, - const size_t new_tool, + const unsigned int new_tool, const std::string& new_material); void toolchange_Load( diff --git a/src/libslic3r/GCodeTimeEstimator.cpp b/src/libslic3r/GCodeTimeEstimator.cpp index 4693ba9e627..33dc9f4b7d8 100644 --- a/src/libslic3r/GCodeTimeEstimator.cpp +++ b/src/libslic3r/GCodeTimeEstimator.cpp @@ -168,12 +168,10 @@ namespace Slic3r { } #endif // ENABLE_MOVE_STATS - const std::string GCodeTimeEstimator::Normal_First_M73_Output_Placeholder_Tag = "; _TE_NORMAL_FIRST_M73_OUTPUT_PLACEHOLDER"; - const std::string GCodeTimeEstimator::Silent_First_M73_Output_Placeholder_Tag = "; _TE_SILENT_FIRST_M73_OUTPUT_PLACEHOLDER"; - const std::string GCodeTimeEstimator::Normal_Last_M73_Output_Placeholder_Tag = "; _TE_NORMAL_LAST_M73_OUTPUT_PLACEHOLDER"; - const std::string GCodeTimeEstimator::Silent_Last_M73_Output_Placeholder_Tag = "; _TE_SILENT_LAST_M73_OUTPUT_PLACEHOLDER"; - - const std::string GCodeTimeEstimator::Color_Change_Tag = "PRINT_COLOR_CHANGE"; + const std::string GCodeTimeEstimator::Normal_First_M73_Output_Placeholder_Tag = "; NORMAL_FIRST_M73_OUTPUT_PLACEHOLDER"; + const std::string GCodeTimeEstimator::Silent_First_M73_Output_Placeholder_Tag = "; SILENT_FIRST_M73_OUTPUT_PLACEHOLDER"; + const std::string GCodeTimeEstimator::Normal_Last_M73_Output_Placeholder_Tag = "; NORMAL_LAST_M73_OUTPUT_PLACEHOLDER"; + const std::string GCodeTimeEstimator::Silent_Last_M73_Output_Placeholder_Tag = "; SILENT_LAST_M73_OUTPUT_PLACEHOLDER"; GCodeTimeEstimator::GCodeTimeEstimator(EMode mode) : m_mode(mode) @@ -271,138 +269,130 @@ namespace Slic3r { #endif // ENABLE_MOVE_STATS } - bool GCodeTimeEstimator::post_process(const std::string& filename, float interval_sec, const PostProcessData* const normal_mode, const PostProcessData* const silent_mode) + bool GCodeTimeEstimator::post_process_remaining_times(const std::string& filename, float interval) { boost::nowide::ifstream in(filename); if (!in.good()) - throw std::runtime_error(std::string("Time estimator post process export failed.\nCannot open file for reading.\n")); + throw std::runtime_error(std::string("Remaining times export failed.\nCannot open file for reading.\n")); - std::string path_tmp = filename + ".postprocess"; + std::string path_tmp = filename + ".times"; FILE* out = boost::nowide::fopen(path_tmp.c_str(), "wb"); if (out == nullptr) - throw std::runtime_error(std::string("Time estimator post process export failed.\nCannot open file for writing.\n")); + throw std::runtime_error(std::string("Remaining times export failed.\nCannot open file for writing.\n")); - std::string normal_time_mask = "M73 P%s R%s\n"; - std::string silent_time_mask = "M73 Q%s S%s\n"; - char line_M73[64]; + std::string time_mask; + switch (m_mode) + { + default: + case Normal: + { + time_mask = "M73 P%s R%s\n"; + break; + } + case Silent: + { + time_mask = "M73 Q%s S%s\n"; + break; + } + } + unsigned int g1_lines_count = 0; + float last_recorded_time = 0.0f; std::string gcode_line; // buffer line to export only when greater than 64K to reduce writing calls std::string export_line; - - // helper function to write to disk - auto write_string = [&](const std::string& str) { - fwrite((const void*)export_line.c_str(), 1, export_line.length(), out); - if (ferror(out)) - { - in.close(); - fclose(out); - boost::nowide::remove(path_tmp.c_str()); - throw std::runtime_error(std::string("Time estimator post process export failed.\nIs the disk full?\n")); - } - export_line.clear(); - }; - - GCodeReader parser; - unsigned int g1_lines_count = 0; - int normal_g1_line_id = 0; - float normal_last_recorded_time = 0.0f; - int silent_g1_line_id = 0; - float silent_last_recorded_time = 0.0f; - - // helper function to process g1 lines - auto process_g1_line = [&](const PostProcessData* const data, const GCodeReader::GCodeLine& line, int& g1_line_id, float& last_recorded_time, const std::string& time_mask) { - if (data == nullptr) - return; - - assert((g1_line_id >= (int)data->g1_line_ids.size()) || (data->g1_line_ids[g1_line_id].first >= g1_lines_count)); - const Block* block = nullptr; - const G1LineIdToBlockId& map_item = data->g1_line_ids[g1_line_id]; - if ((g1_line_id < (int)data->g1_line_ids.size()) && (map_item.first == g1_lines_count)) - { - if (line.has_e() && (map_item.second < (unsigned int)data->blocks.size())) - block = &data->blocks[map_item.second]; - ++g1_line_id; - } - - if ((block != nullptr) && (block->elapsed_time != -1.0f)) - { - float block_remaining_time = data->time - block->elapsed_time; - if (std::abs(last_recorded_time - block_remaining_time) > interval_sec) - { - sprintf(line_M73, time_mask.c_str(), std::to_string((int)(100.0f * block->elapsed_time / data->time)).c_str(), _get_time_minutes(block_remaining_time).c_str()); - gcode_line += line_M73; - - last_recorded_time = block_remaining_time; - } - } - }; - - while (std::getline(in, gcode_line)) + char time_line[64]; + G1LineIdToBlockIdMap::const_iterator it_line_id = m_g1_line_ids.begin(); + while (std::getline(in, gcode_line)) { if (!in.good()) { fclose(out); - throw std::runtime_error(std::string("Time estimator post process export failed.\nError while reading from file.\n")); + throw std::runtime_error(std::string("Remaining times export failed.\nError while reading from file.\n")); } - // check tags - // remove color change tag - if (gcode_line == "; " + Color_Change_Tag) - continue; - // replaces placeholders for initial line M73 with the real lines - if ((normal_mode != nullptr) && (gcode_line == Normal_First_M73_Output_Placeholder_Tag)) - { - sprintf(line_M73, normal_time_mask.c_str(), "0", _get_time_minutes(normal_mode->time).c_str()); - gcode_line = line_M73; - } - else if ((silent_mode != nullptr) && (gcode_line == Silent_First_M73_Output_Placeholder_Tag)) + if (((m_mode == Normal) && (gcode_line == Normal_First_M73_Output_Placeholder_Tag)) || + ((m_mode == Silent) && (gcode_line == Silent_First_M73_Output_Placeholder_Tag))) { - sprintf(line_M73, silent_time_mask.c_str(), "0", _get_time_minutes(silent_mode->time).c_str()); - gcode_line = line_M73; + sprintf(time_line, time_mask.c_str(), "0", _get_time_minutes(m_time).c_str()); + gcode_line = time_line; } // replaces placeholders for final line M73 with the real lines - else if ((normal_mode != nullptr) && (gcode_line == Normal_Last_M73_Output_Placeholder_Tag)) + else if (((m_mode == Normal) && (gcode_line == Normal_Last_M73_Output_Placeholder_Tag)) || + ((m_mode == Silent) && (gcode_line == Silent_Last_M73_Output_Placeholder_Tag))) { - sprintf(line_M73, normal_time_mask.c_str(), "100", "0"); - gcode_line = line_M73; - } - else if ((silent_mode != nullptr) && (gcode_line == Silent_Last_M73_Output_Placeholder_Tag)) - { - sprintf(line_M73, silent_time_mask.c_str(), "100", "0"); - gcode_line = line_M73; + sprintf(time_line, time_mask.c_str(), "100", "0"); + gcode_line = time_line; } else - gcode_line += "\n"; + gcode_line += "\n"; + // add remaining time lines where needed - parser.parse_line(gcode_line, - [&](GCodeReader& reader, const GCodeReader::GCodeLine& line) + m_parser.parse_line(gcode_line, + [this, &it_line_id, &g1_lines_count, &last_recorded_time, &time_line, &gcode_line, time_mask, interval](GCodeReader& reader, const GCodeReader::GCodeLine& line) + { + if (line.cmd_is("G1")) { - if (line.cmd_is("G1")) - { - ++g1_lines_count; - process_g1_line(silent_mode, line, silent_g1_line_id, silent_last_recorded_time, silent_time_mask); - process_g1_line(normal_mode, line, normal_g1_line_id, normal_last_recorded_time, normal_time_mask); + ++g1_lines_count; + + assert(it_line_id == m_g1_line_ids.end() || it_line_id->first >= g1_lines_count); + + const Block *block = nullptr; + if (it_line_id != m_g1_line_ids.end() && it_line_id->first == g1_lines_count) { + if (line.has_e() && it_line_id->second < (unsigned int)m_blocks.size()) + block = &m_blocks[it_line_id->second]; + ++it_line_id; + } + + if (block != nullptr && block->elapsed_time != -1.0f) { + float block_remaining_time = m_time - block->elapsed_time; + if (std::abs(last_recorded_time - block_remaining_time) > interval) + { + sprintf(time_line, time_mask.c_str(), std::to_string((int)(100.0f * block->elapsed_time / m_time)).c_str(), _get_time_minutes(block_remaining_time).c_str()); + gcode_line += time_line; + + last_recorded_time = block_remaining_time; + } } - }); + } + }); export_line += gcode_line; if (export_line.length() > 65535) - write_string(export_line); + { + fwrite((const void*)export_line.c_str(), 1, export_line.length(), out); + if (ferror(out)) + { + in.close(); + fclose(out); + boost::nowide::remove(path_tmp.c_str()); + throw std::runtime_error(std::string("Remaining times export failed.\nIs the disk full?\n")); + } + export_line.clear(); + } } - if (!export_line.empty()) - write_string(export_line); + if (export_line.length() > 0) + { + fwrite((const void*)export_line.c_str(), 1, export_line.length(), out); + if (ferror(out)) + { + in.close(); + fclose(out); + boost::nowide::remove(path_tmp.c_str()); + throw std::runtime_error(std::string("Remaining times export failed.\nIs the disk full?\n")); + } + } fclose(out); in.close(); - if (rename_file(path_tmp, filename)) + if (rename_file(path_tmp, filename) != 0) throw std::runtime_error(std::string("Failed to rename the output G-code file from ") + path_tmp + " to " + filename + '\n' + - "Is " + path_tmp + " locked?" + '\n'); + "Is " + path_tmp + " locked?" + '\n'); return true; } @@ -704,39 +694,22 @@ namespace Slic3r { return m_color_times; } - std::vector GCodeTimeEstimator::get_color_times_dhms(bool include_remaining) const + std::vector GCodeTimeEstimator::get_color_times_dhms() const { std::vector ret; - float total_time = 0.0f; for (float t : m_color_times) { - std::string time = _get_time_dhms(t); - if (include_remaining) - { - time += " ("; - time += _get_time_dhms(m_time - total_time); - time += ")"; - } - total_time += t; - ret.push_back(time); + ret.push_back(_get_time_dhms(t)); } return ret; } - std::vector GCodeTimeEstimator::get_color_times_minutes(bool include_remaining) const + std::vector GCodeTimeEstimator::get_color_times_minutes() const { std::vector ret; - float total_time = 0.0f; for (float t : m_color_times) { - std::string time = _get_time_minutes(t); - if (include_remaining) - { - time += " ("; - time += _get_time_minutes(m_time - total_time); - time += ")"; - } - total_time += t; + ret.push_back(_get_time_minutes(t)); } return ret; } @@ -824,11 +797,6 @@ namespace Slic3r { void GCodeTimeEstimator::_process_gcode_line(GCodeReader&, const GCodeReader::GCodeLine& line) { PROFILE_FUNC(); - - // processes 'special' comments contained in line - if (_process_tags(line)) - return; - std::string cmd = line.cmd(); if (cmd.length() > 1) { @@ -936,6 +904,11 @@ namespace Slic3r { _processM566(line); break; } + case 600: // Set color change + { + _processM600(line); + break; + } case 702: // MK3 MMU2: Process the final filament unload. { _processM702(line); @@ -1406,6 +1379,18 @@ namespace Slic3r { set_axis_max_jerk(E, line.e() * MMMIN_TO_MMSEC); } + void GCodeTimeEstimator::_processM600(const GCodeReader::GCodeLine& line) + { + PROFILE_FUNC(); + m_needs_color_times = true; + _calculate_time(); + if (m_color_time_cache != 0.0f) + { + m_color_times.push_back(m_color_time_cache); + m_color_time_cache = 0.0f; + } + } + void GCodeTimeEstimator::_processM702(const GCodeReader::GCodeLine& line) { PROFILE_FUNC(); @@ -1437,33 +1422,6 @@ namespace Slic3r { } } - bool GCodeTimeEstimator::_process_tags(const GCodeReader::GCodeLine& line) - { - std::string comment = line.comment(); - - // color change tag - size_t pos = comment.find(Color_Change_Tag); - if (pos != comment.npos) - { - _process_color_change_tag(); - return true; - } - - return false; - } - - void GCodeTimeEstimator::_process_color_change_tag() - { - PROFILE_FUNC(); - m_needs_color_times = true; - _calculate_time(); - if (m_color_time_cache != 0.0f) - { - m_color_times.push_back(m_color_time_cache); - m_color_time_cache = 0.0f; - } - } - void GCodeTimeEstimator::_simulate_st_synchronize() { PROFILE_FUNC(); diff --git a/src/libslic3r/GCodeTimeEstimator.hpp b/src/libslic3r/GCodeTimeEstimator.hpp index d9f3bc21133..840d587784a 100644 --- a/src/libslic3r/GCodeTimeEstimator.hpp +++ b/src/libslic3r/GCodeTimeEstimator.hpp @@ -22,8 +22,6 @@ namespace Slic3r { static const std::string Normal_Last_M73_Output_Placeholder_Tag; static const std::string Silent_Last_M73_Output_Placeholder_Tag; - static const std::string Color_Change_Tag; - enum EMode : unsigned char { Normal, @@ -213,19 +211,9 @@ namespace Slic3r { typedef std::map MovesStatsMap; #endif // ENABLE_MOVE_STATS - public: typedef std::pair G1LineIdToBlockId; typedef std::vector G1LineIdToBlockIdMap; - struct PostProcessData - { - const G1LineIdToBlockIdMap& g1_line_ids; - const BlocksList& blocks; - float time; - - PostProcessData(const G1LineIdToBlockIdMap& g1_line_ids, const BlocksList& blocks, float time) : g1_line_ids(g1_line_ids), blocks(blocks), time(time) {} - }; - private: EMode m_mode; GCodeReader m_parser; @@ -273,12 +261,11 @@ namespace Slic3r { void calculate_time_from_lines(const std::vector& gcode_lines); // Process the gcode contained in the file with the given filename, - // replacing placeholders with correspondent new lines M73 - // placing new lines M73 (containing the remaining time) where needed (in dependence of the given interval in seconds) - // and removing working tags (as those used for color changes) - // if normal_mode == nullptr no M73 line will be added for normal mode - // if silent_mode == nullptr no M73 line will be added for silent mode - static bool post_process(const std::string& filename, float interval_sec, const PostProcessData* const normal_mode, const PostProcessData* const silent_mode); + // placing in it new lines (M73) containing the remaining time, at the given interval in seconds + // and saving the result back in the same file + // This time estimator should have been already used to calculate the time estimate for the gcode + // contained in the given file before to call this method + bool post_process_remaining_times(const std::string& filename, float interval_sec); // Set current position on the given axis with the given value void set_axis_position(EAxis axis, float position); @@ -359,22 +346,18 @@ namespace Slic3r { // Returns the estimated time, in minutes (integer) std::string get_time_minutes() const; - // Returns the estimated time, in seconds, for each color + // Returns the estimated time, in seconds, for each color std::vector get_color_times() const; // Returns the estimated time, in format DDd HHh MMm SSs, for each color - // If include_remaining==true the strings will be formatted as: "time for color (remaining time at color start)" - std::vector get_color_times_dhms(bool include_remaining) const; + std::vector get_color_times_dhms() const; // Returns the estimated time, in minutes (integer), for each color - // If include_remaining==true the strings will be formatted as: "time for color (remaining time at color start)" - std::vector get_color_times_minutes(bool include_remaining) const; + std::vector get_color_times_minutes() const; // Return an estimate of the memory consumed by the time estimator. size_t memory_used() const; - PostProcessData get_post_process_data() const { return PostProcessData(m_g1_line_ids, m_blocks, m_time); } - private: void _reset(); void _reset_time(); @@ -440,19 +423,15 @@ namespace Slic3r { // Set allowable instantaneous speed change void _processM566(const GCodeReader::GCodeLine& line); + // Set color change + void _processM600(const GCodeReader::GCodeLine& line); + // Unload the current filament into the MK3 MMU2 unit at the end of print. void _processM702(const GCodeReader::GCodeLine& line); // Processes T line (Select Tool) void _processT(const GCodeReader::GCodeLine& line); - // Processes the tags - // Returns true if any tag has been processed - bool _process_tags(const GCodeReader::GCodeLine& line); - - // Processes color change tag - void _process_color_change_tag(); - // Simulates firmware st_synchronize() call void _simulate_st_synchronize(); diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index 63f5964ac4e..ac89fde29c6 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -298,11 +298,7 @@ std::string GCodeWriter::travel_to_xyz(const Vec3d &point, const std::string &co used for unlift. */ if (!this->will_move_z(point.z())) { double nominal_z = m_pos.z() - m_lifted; - m_lifted -= (point.z() - nominal_z); - // In case that retract_lift == layer_height we could end up with almost zero in_m_lifted - // and a retract could be skipped (https://github.com/prusa3d/PrusaSlicer/issues/2154 - if (std::abs(m_lifted) < EPSILON) - m_lifted = 0.; + m_lifted = m_lifted - (point.z() - nominal_z); return this->travel_to_xy(to_2d(point)); } @@ -328,9 +324,7 @@ std::string GCodeWriter::travel_to_z(double z, const std::string &comment) reducing the lift amount that will be used for unlift. */ if (!this->will_move_z(z)) { double nominal_z = m_pos.z() - m_lifted; - m_lifted -= (z - nominal_z); - if (std::abs(m_lifted) < EPSILON) - m_lifted = 0.; + m_lifted = m_lifted - (z - nominal_z); return ""; } diff --git a/src/libslic3r/Geometry.hpp b/src/libslic3r/Geometry.hpp index 277be5b3276..f50b17afea1 100644 --- a/src/libslic3r/Geometry.hpp +++ b/src/libslic3r/Geometry.hpp @@ -122,29 +122,6 @@ inline bool segment_segment_intersection(const Vec2d &p1, const Vec2d &v1, const return true; } - -inline int segments_could_intersect( - const Slic3r::Point &ip1, const Slic3r::Point &ip2, - const Slic3r::Point &jp1, const Slic3r::Point &jp2) -{ - Vec2i64 iv = (ip2 - ip1).cast(); - Vec2i64 vij1 = (jp1 - ip1).cast(); - Vec2i64 vij2 = (jp2 - ip1).cast(); - int64_t tij1 = cross2(iv, vij1); - int64_t tij2 = cross2(iv, vij2); - int sij1 = (tij1 > 0) ? 1 : ((tij1 < 0) ? -1 : 0); // signum - int sij2 = (tij2 > 0) ? 1 : ((tij2 < 0) ? -1 : 0); - return sij1 * sij2; -} - -inline bool segments_intersect( - const Slic3r::Point &ip1, const Slic3r::Point &ip2, - const Slic3r::Point &jp1, const Slic3r::Point &jp2) -{ - return segments_could_intersect(ip1, ip2, jp1, jp2) <= 0 && - segments_could_intersect(jp1, jp2, ip1, ip2) <= 0; -} - Pointf3s convex_hull(Pointf3s points); Polygon convex_hull(Points points); Polygon convex_hull(const Polygons &polygons); diff --git a/src/libslic3r/Layer.cpp b/src/libslic3r/Layer.cpp index 754ef315fee..a21926596e0 100644 --- a/src/libslic3r/Layer.cpp +++ b/src/libslic3r/Layer.cpp @@ -121,8 +121,9 @@ void Layer::make_perimeters() for (LayerRegionPtrs::const_iterator it = layerm + 1; it != m_regions.end(); ++it) { LayerRegion* other_layerm = *it; const PrintRegionConfig &other_config = other_layerm->region()->config(); - /// !!! add here the settings you want to be added in the per-object menu. - /// if you don't do that, objects will share the same region, and the same settings. + + /// !!! add here the settings you want to be added in the per-object menu. + /// if you don't do that, objects will share the same region, and the same settings. if (config.perimeter_extruder == other_config.perimeter_extruder && config.perimeters == other_config.perimeters && config.only_one_perimeter_top == other_config.only_one_perimeter_top @@ -136,7 +137,6 @@ void Layer::make_perimeters() && config.thin_walls_min_width == other_config.thin_walls_min_width && config.thin_walls_overlap == other_config.thin_walls_overlap && config.external_perimeters_first == other_config.external_perimeters_first - && config.infill_overlap == other_config.infill_overlap && config.perimeter_loop == other_config.perimeter_loop) { layerms.push_back(other_layerm); done[it - m_regions.begin()] = true; @@ -149,17 +149,12 @@ void Layer::make_perimeters() (*layerm)->fill_expolygons = to_expolygons((*layerm)->fill_surfaces.surfaces); } else { SurfaceCollection new_slices; - // Use the region with highest infill rate, as the make_perimeters() function below decides on the gap fill based on the infill existence. - LayerRegion *layerm_config = layerms.front(); { // group slices (surfaces) according to number of extra perimeters std::map slices; // extra_perimeters => [ surface, surface... ] - for (LayerRegion *layerm : layerms) { + for (LayerRegion *layerm : layerms) for (Surface &surface : layerm->slices.surfaces) slices[surface.extra_perimeters].emplace_back(surface); - if (layerm->region()->config().fill_density > layerm_config->region()->config().fill_density) - layerm_config = layerm; - } // merge the surfaces assigned to each group for (std::pair &surfaces_with_extra_perimeters : slices) new_slices.append(union_ex(surfaces_with_extra_perimeters.second, true), surfaces_with_extra_perimeters.second.front()); @@ -167,7 +162,7 @@ void Layer::make_perimeters() // make perimeters SurfaceCollection fill_surfaces; - layerm_config->make_perimeters(new_slices, &fill_surfaces); + (*layerm)->make_perimeters(new_slices, &fill_surfaces); // assign fill_surfaces to each layer if (!fill_surfaces.surfaces.empty()) { diff --git a/src/libslic3r/Layer.hpp b/src/libslic3r/Layer.hpp index d5ad1c4fac6..c7a48f8b5c8 100644 --- a/src/libslic3r/Layer.hpp +++ b/src/libslic3r/Layer.hpp @@ -64,7 +64,7 @@ class LayerRegion void slices_to_fill_surfaces_clipped(); void prepare_fill_surfaces(); void make_perimeters(SurfaceCollection &slices, SurfaceCollection* fill_surfaces); - void process_external_surfaces(const Layer *lower_layer, const Polygons *lower_layer_covered); + void process_external_surfaces(const Layer* lower_layer); double infill_area_threshold() const; // Trim surfaces by trimming polygons. Used by the elephant foot compensation at the 1st layer. void trim_surfaces(const Polygons &trimming_polygons); diff --git a/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp index f3f2328edfc..74a364657e5 100644 --- a/src/libslic3r/LayerRegion.cpp +++ b/src/libslic3r/LayerRegion.cpp @@ -93,7 +93,7 @@ void LayerRegion::make_perimeters(SurfaceCollection &slices, SurfaceCollection* //#define EXTERNAL_SURFACES_OFFSET_PARAMETERS ClipperLib::jtMiter, 1.5 #define EXTERNAL_SURFACES_OFFSET_PARAMETERS ClipperLib::jtSquare, 0. -void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Polygons *lower_layer_covered) +void LayerRegion::process_external_surfaces(const Layer* lower_layer) { coord_t max_margin = 0; @@ -124,28 +124,27 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly // Internal surfaces, not grown. Surfaces internal; // Areas, where an infill of various types (top, bottom, bottom bride, sparse, void) could be placed. - Polygons fill_boundaries = to_polygons(this->fill_expolygons); - Polygons lower_layer_covered_tmp; + //FIXME if non zero infill, then fill_boundaries could be cheaply initialized from layerm->fill_expolygons. + Polygons fill_boundaries; // Collect top surfaces and internal surfaces. // Collect fill_boundaries: If we're slicing with no infill, we can't extend external surfaces over non-existent infill. // This loop destroys the surfaces (aliasing this->fill_surfaces.surfaces) by moving into top/internal/fill_boundaries! - { - // Voids are sparse infills if infill rate is zero. - Polygons voids; + // bottom_polygons are used to trim inflated top surfaces. + fill_boundaries.reserve(number_polygons(surfaces)); bool has_infill = this->region()->config().fill_density.value > 0.; for (const Surface &surface : this->fill_surfaces.surfaces) { if (surface.has_pos_top()) { // Collect the top surfaces, inflate them and trim them by the bottom surfaces. // This gives the priority to bottom surfaces. surfaces_append(top, offset_ex(surface.expolygon, double(margin), EXTERNAL_SURFACES_OFFSET_PARAMETERS), surface); - } else if (surface.has_pos_bottom() && (!surface.has_mod_bridge() || lower_layer == nullptr)) { + } else if (surface.has_pos_bottom() && (!surface.has_mod_bridge() || lower_layer == NULL)) { // Grown by 3mm. surfaces_append(bottom, offset_ex(surface.expolygon, double(margin), EXTERNAL_SURFACES_OFFSET_PARAMETERS), surface); } else if (surface.has_pos_bottom() && surface.has_mod_bridge()) { if (! surface.empty()) - bridges.emplace_back(surface); + bridges.push_back(surface); } if (has_infill || !(surface.has_pos_internal() && surface.has_fill_sparse())) { if (!surface.has_pos_external()) @@ -153,11 +152,8 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly internal.push_back(surface); polygons_append(fill_boundaries, std::move(surface.expolygon)); } else{ - if (!surface.has_pos_external()){ - if (! has_infill && lower_layer != nullptr) - polygons_append(voids, surface.expolygon); + if (!surface.has_pos_external()) internal.push_back(std::move(surface)); - } //push surface as perimeter-only inside the fill_boundaries if (margin_bridged > 0) { ExPolygons peri_poly = diff_ex(ExPolygons() = { surface.expolygon }, offset_ex(surface.expolygon, -margin_bridged)); @@ -165,16 +161,6 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly } } } - if (! has_infill && lower_layer != nullptr && ! voids.empty()) { - // Remove voids from fill_boundaries, that are not supported by the layer below. - if (lower_layer_covered == nullptr) { - lower_layer_covered = &lower_layer_covered_tmp; - lower_layer_covered_tmp = to_polygons(lower_layer->slices.expolygons); - } - if (! lower_layer_covered->empty()) - voids = diff(voids, *lower_layer_covered); - fill_boundaries = diff(fill_boundaries, voids); - } } #if 0 @@ -228,7 +214,7 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly (this->flow(frInfill).scaled_width() / 2) + float(margin_bridged), EXTERNAL_SURFACES_OFFSET_PARAMETERS); if (idx_island == -1) { - BOOST_LOG_TRIVIAL(trace) << "Bridge did not fall into the source region!"; + printf("Bridge did not fall into the source region!\r\n"); } else { // Found an island, to which this bridge region belongs. Trim it, polys = intersection(polys, to_polygons(fill_boundaries_ex[idx_island])); @@ -266,7 +252,7 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly // 3) Merge the groups with the same group id, detect bridges. { - BOOST_LOG_TRIVIAL(trace) << "Processing external surface, detecting bridges. layer" << this->layer()->print_z << ", bridge groups: " << n_groups; + BOOST_LOG_TRIVIAL(trace) << "Processing external surface, detecting bridges. layer" << this->layer()->print_z << ", bridge groups: " << n_groups; for (size_t group_id = 0; group_id < n_groups; ++ group_id) { size_t n_bridges_merged = 0; size_t idx_last = (size_t)-1; @@ -300,25 +286,25 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly #ifdef SLIC3R_DEBUG printf("Processing bridge at layer " PRINTF_ZU ":\n", this->layer()->id()); #endif - double custom_angle = Geometry::deg2rad(this->region()->config().bridge_angle.value); - if (bd.detect_angle(custom_angle)) { + double custom_angle = Geometry::deg2rad(this->region()->config().bridge_angle.value); + if (bd.detect_angle(custom_angle)) { bridges[idx_last].bridge_angle = bd.angle; if (this->layer()->object()->config().support_material) { polygons_append(this->bridged, intersection(bd.coverage(), to_polygons(initial))); this->unsupported_bridge_edges.append(bd.unsupported_edges()); } - } else if (custom_angle > 0) { - // Bridge was not detected (likely it is only supported at one side). Still it is a surface filled in - // using a bridging flow, therefore it makes sense to respect the custom bridging direction. - bridges[idx_last].bridge_angle = custom_angle; - } + } else if (custom_angle > 0) { + // Bridge was not detected (likely it is only supported at one side). Still it is a surface filled in + // using a bridging flow, therefore it makes sense to respect the custom bridging direction. + bridges[idx_last].bridge_angle = custom_angle; + } // without safety offset, artifacts are generated (GH #2494) surfaces_append(bottom, union_ex(grown, true), bridges[idx_last]); } fill_boundaries = std::move(to_polygons(fill_boundaries_ex)); - BOOST_LOG_TRIVIAL(trace) << "Processing external surface, detecting bridges - done"; - } + BOOST_LOG_TRIVIAL(trace) << "Processing external surface, detecting bridges - done"; + } #if 0 { diff --git a/src/libslic3r/MedialAxis.cpp b/src/libslic3r/MedialAxis.cpp index a1ce7898e90..abaf59bdb04 100644 --- a/src/libslic3r/MedialAxis.cpp +++ b/src/libslic3r/MedialAxis.cpp @@ -375,9 +375,9 @@ add_point_same_percent(ThickPolyline* pattern, ThickPolyline* to_modify) } /// find the nearest angle in the contour (or 2 nearest if it's difficult to choose) -/// return 1 for an angle of 90° and 0 for an angle of 0° or 180° +/// return 1 for an angle of 90� and 0 for an angle of 0� or 180� /// find the nearest angle in the contour (or 2 nearest if it's difficult to choose) -/// return 1 for an angle of 90° and 0 for an angle of 0° or 180° +/// return 1 for an angle of 90� and 0 for an angle of 0� or 180� double get_coeff_from_angle_countour(Point &point, const ExPolygon &contour, coord_t min_dist_between_point) { double nearest_dist = point.distance_to(contour.contour.points.front()); @@ -428,7 +428,7 @@ get_coeff_from_angle_countour(Point &point, const ExPolygon &contour, coord_t mi //compute angle angle = point_nearest.ccw_angle(point_before, point_after); if (angle >= PI) angle = 2 * PI - angle; // smaller angle - //compute the diff from 90° + //compute the diff from 90� angle = abs(angle - PI / 2); if (point_near.coincides_with(point_nearest) && std::max(nearest_dist, near_dist) + SCALED_EPSILON < point_nearest.distance_to(point_near)) { //not only nearest @@ -485,11 +485,11 @@ MedialAxis::fusion_curve(ThickPolylines &pp) //compute angle double coeff_contour_angle = this->expolygon.contour.points[closest_point_idx].ccw_angle(this->expolygon.contour.points[prev_idx], this->expolygon.contour.points[next_idx]); if (coeff_contour_angle >= PI) coeff_contour_angle = 2 * PI - coeff_contour_angle; // smaller angle - //compute the diff from 90° + //compute the diff from 90� coeff_contour_angle = abs(coeff_contour_angle - PI / 2); - // look if other end is a cross point with almost 90° angle + // look if other end is a cross point with almost 90� angle double sum_dot = 0; double min_dot = 0; // look if other end is a cross point with multiple other branch @@ -522,7 +522,7 @@ MedialAxis::fusion_curve(ThickPolylines &pp) if (crosspoint.size() != 2) continue; if (sum_dot > 0.2) continue; if (min_dot > 0.5) continue; - //don't remove useful bits. TODO: use the mindot to know by how much to multiply (1 when 90°, 1.42 when 45+, 1 when 0°) + //don't remove useful bits. TODO: use the mindot to know by how much to multiply (1 when 90�, 1.42 when 45+, 1 when 0�) if (polyline.length() > polyline.width.front()*1.42) continue; //don't pull, it distords the line if there are too many points. @@ -872,10 +872,10 @@ MedialAxis::main_fusion(ThickPolylines& pp) // Get the branch/line in wich we may merge, if possible // with that, we can decide what is important, and how we can merge that. - // angle_poly - angle_candi =90° => one is useless + // angle_poly - angle_candi =90� => one is useless // both angle are equal => both are useful with same strength // ex: Y => | both are useful to crete a nice line - // ex2: TTTTT => ----- these 90° useless lines should be discarded + // ex2: TTTTT => ----- these 90� useless lines should be discarded find_main_branch = false; biggest_main_branch_id = 0; biggest_main_branch_length = 0; @@ -965,7 +965,7 @@ MedialAxis::main_fusion(ThickPolylines& pp) //get the angle of the nearest points of the contour to see : _| (good) \_ (average) __(bad) //sqrt because the result are nicer this way: don't over-penalize /_ angles - //TODO: try if we can achieve a better result if we use a different algo if the angle is <90° + //TODO: try if we can achieve a better result if we use a different algo if the angle is <90� const double coeff_angle_poly = (coeff_angle_cache.find(polyline.points.back()) != coeff_angle_cache.end()) ? coeff_angle_cache[polyline.points.back()] : (get_coeff_from_angle_countour(polyline.points.back(), this->expolygon, std::min(min_width, (coord_t)(polyline.length() / 2)))); diff --git a/src/libslic3r/MinAreaBoundingBox.cpp b/src/libslic3r/MinAreaBoundingBox.cpp index 15c04517d08..fafb54a5855 100644 --- a/src/libslic3r/MinAreaBoundingBox.cpp +++ b/src/libslic3r/MinAreaBoundingBox.cpp @@ -1,11 +1,6 @@ #include "MinAreaBoundingBox.hpp" #include - -#if defined(_MSC_VER) && defined(__clang__) -#define BOOST_NO_CXX17_HDR_STRING_VIEW -#endif - #include #include diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index f3050eeb501..3d663fde0c7 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -21,6 +21,8 @@ namespace Slic3r { +unsigned int Model::s_auto_extruder_id = 1; + Model& Model::assign_copy(const Model &rhs) { this->copy_id(rhs); @@ -84,7 +86,7 @@ void Model::update_links_bottom_up_recursive() } } -Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* config, bool add_default_instances, bool check_version) +Model Model::read_from_file(const std::string &input_file, DynamicPrintConfig *config, bool add_default_instances) { Model model; @@ -97,10 +99,11 @@ Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* c result = load_stl(input_file.c_str(), &model); else if (boost::algorithm::iends_with(input_file, ".obj")) result = load_obj(input_file.c_str(), &model); - else if (boost::algorithm::iends_with(input_file, ".amf") || boost::algorithm::iends_with(input_file, ".amf.xml")) - result = load_amf(input_file.c_str(), config, &model, check_version); + else if (!boost::algorithm::iends_with(input_file, ".zip.amf") && (boost::algorithm::iends_with(input_file, ".amf") || + boost::algorithm::iends_with(input_file, ".amf.xml"))) + result = load_amf(input_file.c_str(), config, &model); else if (boost::algorithm::iends_with(input_file, ".3mf")) - result = load_3mf(input_file.c_str(), config, &model, false); + result = load_3mf(input_file.c_str(), config, &model); else if (boost::algorithm::iends_with(input_file, ".prusa")) result = load_prus(input_file.c_str(), &model); else @@ -121,15 +124,15 @@ Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* c return model; } -Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig* config, bool add_default_instances, bool check_version) +Model Model::read_from_archive(const std::string &input_file, DynamicPrintConfig *config, bool add_default_instances) { Model model; bool result = false; if (boost::algorithm::iends_with(input_file, ".3mf")) - result = load_3mf(input_file.c_str(), config, &model, check_version); + result = load_3mf(input_file.c_str(), config, &model); else if (boost::algorithm::iends_with(input_file, ".zip.amf")) - result = load_amf(input_file.c_str(), config, &model, check_version); + result = load_amf(input_file.c_str(), config, &model); else throw std::runtime_error("Unknown file format. Input file must have .3mf or .zip.amf extension."); @@ -483,20 +486,9 @@ bool Model::looks_like_multipart_object() const return false; } -// Generate next extruder ID string, in the range of (1, max_extruders). -static inline std::string auto_extruder_id(unsigned int max_extruders, unsigned int &cntr) -{ - char str_extruder[64]; - sprintf(str_extruder, "%ud", cntr + 1); - if (++ cntr == max_extruders) - cntr = 0; - return str_extruder; -} - void Model::convert_multipart_object(unsigned int max_extruders) { - assert(this->objects.size() >= 2); - if (this->objects.size() < 2) + if (this->objects.empty()) return; ModelObject* object = new ModelObject(this); @@ -504,34 +496,60 @@ void Model::convert_multipart_object(unsigned int max_extruders) object->name = this->objects.front()->name; //FIXME copy the config etc? - unsigned int extruder_counter = 0; + reset_auto_extruder_id(); + + //supermerill: note: the new codepath indroduced in fab363493140a93c1786c7898424a73dd1ed2a2e + // doesn't work for my fork for a reason, deactivating it for now. + bool is_single_object = true; // (this->objects.size() == 1); + for (const ModelObject* o : this->objects) - for (const ModelVolume* v : o->volumes) { + { + for (const ModelVolume* v : o->volumes) + { + if (is_single_object) + { + // If there is only one object, just copy the volumes + ModelVolume* new_v = object->add_volume(*v); + if (new_v != nullptr) + { + new_v->name = o->name; + new_v->config.set_deserialize("extruder", get_auto_extruder_id_as_string(max_extruders)); + new_v->translate(-o->origin_translation); + } + } + else + { // If there are more than one object, put all volumes together // Each object may contain any number of volumes and instances // The volumes transformations are relative to the object containing them... - Geometry::Transformation trafo_volume = v->get_transformation(); - // Revert the centering operation. - trafo_volume.set_offset(trafo_volume.get_offset() - o->origin_translation); int counter = 1; - auto copy_volume = [o, max_extruders, &counter, &extruder_counter](ModelVolume *new_v) { - assert(new_v != nullptr); - new_v->name = o->name + "_" + std::to_string(counter++); - new_v->config.set_deserialize("extruder", auto_extruder_id(max_extruders, extruder_counter)); - return new_v; - }; - if (o->instances.empty()) { - copy_volume(object->add_volume(*v))->set_transformation(trafo_volume); - } else { for (const ModelInstance* i : o->instances) + { + ModelVolume* new_v = object->add_volume(*v); + if (new_v != nullptr) + { + new_v->name = o->name + "_" + std::to_string(counter++); + new_v->config.set_deserialize("extruder", get_auto_extruder_id_as_string(max_extruders)); + new_v->translate(-o->origin_translation); // ...so, transform everything to a common reference system (world) - copy_volume(object->add_volume(*v))->set_transformation(i->get_transformation() * trafo_volume); + new_v->set_transformation(i->get_transformation() * v->get_transformation()); } } + } + } + } - // commented-out to fix #2868 -// object->add_instance(); -// object->instances[0]->set_offset(object->raw_mesh_bounding_box().center()); + if (is_single_object) + { + // If there is only one object, keep its instances + for (const ModelInstance* i : this->objects.front()->instances) + { + object->add_instance(*i); + } + } + else + // If there are more than one object, create a single instance + object->add_instance(); this->clear_objects(); this->objects.push_back(object); @@ -556,6 +574,32 @@ void Model::adjust_min_z() } } +unsigned int Model::get_auto_extruder_id(unsigned int max_extruders) +{ + unsigned int id = s_auto_extruder_id; + if (id > max_extruders) { + // The current counter is invalid, likely due to switching the printer profiles + // to a profile with a lower number of extruders. + reset_auto_extruder_id(); + id = s_auto_extruder_id; + } else if (++ s_auto_extruder_id > max_extruders) { + reset_auto_extruder_id(); + } + return id; +} + +std::string Model::get_auto_extruder_id_as_string(unsigned int max_extruders) +{ + char str_extruder[64]; + sprintf(str_extruder, "%ud", get_auto_extruder_id(max_extruders)); + return str_extruder; +} + +void Model::reset_auto_extruder_id() +{ + s_auto_extruder_id = 1; +} + // Propose a filename including path derived from the ModelObject's input path. // If object's name is filled in, use the object name, otherwise use the input name. std::string Model::propose_export_file_name_and_path() const @@ -602,7 +646,6 @@ ModelObject& ModelObject::assign_copy(const ModelObject &rhs) this->sla_points_status = rhs.sla_points_status; this->layer_config_ranges = rhs.layer_config_ranges; // #ys_FIXME_experiment this->layer_height_profile = rhs.layer_height_profile; - this->printable = rhs.printable; this->origin_translation = rhs.origin_translation; m_bounding_box = rhs.m_bounding_box; m_bounding_box_valid = rhs.m_bounding_box_valid; @@ -712,7 +755,7 @@ ModelVolume* ModelObject::add_volume(const ModelVolume &other, TriangleMesh &&me { ModelVolume* v = new ModelVolume(this, other, std::move(mesh)); this->volumes.push_back(v); - if(centered) v->center_geometry_after_creation(); + if(centered) v->center_geometry_after_creation(); this->invalidate_bounding_box(); return v; } @@ -1621,7 +1664,7 @@ size_t ModelVolume::split(unsigned int max_extruders) size_t ivolume = std::find(this->object->volumes.begin(), this->object->volumes.end(), this) - this->object->volumes.begin(); std::string name = this->name; - unsigned int extruder_counter = 0; + Model::reset_auto_extruder_id(); Vec3d offset = this->get_offset(); for (TriangleMesh *mesh : meshptrs) { @@ -1640,7 +1683,7 @@ size_t ModelVolume::split(unsigned int max_extruders) this->object->volumes[ivolume]->center_geometry_after_creation(); this->object->volumes[ivolume]->translate(offset); this->object->volumes[ivolume]->name = name + "_" + std::to_string(idx + 1); - this->object->volumes[ivolume]->config.set_deserialize("extruder", auto_extruder_id(max_extruders, extruder_counter)); + this->object->volumes[ivolume]->config.set_deserialize("extruder", Model::get_auto_extruder_id_as_string(max_extruders)); delete mesh; ++ idx; } diff --git a/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index b3e0d31061c..e644689eff8 100644 --- a/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp @@ -192,8 +192,6 @@ class ModelObject final : public ObjectBase // Profile of increasing z to a layer height, to be linearly interpolated when calculating the layers. // The pairs of are packed into a 1D array. std::vector layer_height_profile; - // Whether or not this object is printable - bool printable; // This vector holds position of selected support points for SLA. The data are // saved in mesh coordinates to allow using them for several instances. @@ -306,11 +304,11 @@ class ModelObject final : public ObjectBase private: friend class Model; // This constructor assigns new ID to this ModelObject and its config. - explicit ModelObject(Model* model) : m_model(model), printable(true), origin_translation(Vec3d::Zero()), + explicit ModelObject(Model *model) : m_model(model), origin_translation(Vec3d::Zero()), m_bounding_box_valid(false), m_raw_bounding_box_valid(false), m_raw_mesh_bounding_box_valid(false) - { assert(this->id().valid()); } - explicit ModelObject(int) : ObjectBase(-1), config(-1), m_model(nullptr), printable(true), origin_translation(Vec3d::Zero()), m_bounding_box_valid(false), m_raw_bounding_box_valid(false), m_raw_mesh_bounding_box_valid(false) - { assert(this->id().invalid()); assert(this->config.id().invalid()); } + { assert(this->id().valid()); } + explicit ModelObject(int) : ObjectBase(-1), config(-1), m_model(nullptr), origin_translation(Vec3d::Zero()), m_bounding_box_valid(false), m_raw_bounding_box_valid(false), m_raw_mesh_bounding_box_valid(false) + { assert(this->id().invalid()); assert(this->config.id().invalid()); } ~ModelObject(); void assign_new_unique_ids_recursive() override; @@ -372,8 +370,8 @@ class ModelObject final : public ObjectBase template void serialize(Archive &ar) { ar(cereal::base_class(this)); Internal::StaticSerializationWrapper config_wrapper(config); - ar(name, input_file, instances, volumes, config_wrapper, layer_config_ranges, layer_height_profile, sla_support_points, sla_points_status, printable, origin_translation, - m_bounding_box, m_bounding_box_valid, m_raw_bounding_box, m_raw_bounding_box_valid, m_raw_mesh_bounding_box, m_raw_mesh_bounding_box_valid); + ar(name, input_file, instances, volumes, config_wrapper, layer_config_ranges, layer_height_profile, sla_support_points, sla_points_status, origin_translation, + m_bounding_box, m_bounding_box_valid, m_raw_bounding_box, m_raw_bounding_box_valid, m_raw_mesh_bounding_box, m_raw_mesh_bounding_box_valid); } }; @@ -597,8 +595,6 @@ class ModelInstance final : public ObjectBase public: // flag showing the position of this instance with respect to the print volume (set by Print::validate() using ModelObject::check_instances_print_volume_state()) EPrintVolumeState print_volume_state; - // Whether or not this instance is printable - bool printable; ModelObject* get_object() const { return this->object; } @@ -643,8 +639,8 @@ class ModelInstance final : public ObjectBase const Transform3d& get_matrix(bool dont_translate = false, bool dont_rotate = false, bool dont_scale = false, bool dont_mirror = false) const { return m_transformation.get_matrix(dont_translate, dont_rotate, dont_scale, dont_mirror); } - bool is_printable() const { return object->printable && printable && (print_volume_state == PVS_Inside); } - + bool is_printable() const { return print_volume_state == PVS_Inside; } + // Getting the input polygon for arrange arrangement::ArrangePolygon get_arrange_polygon() const; @@ -671,10 +667,10 @@ class ModelInstance final : public ObjectBase ModelObject* object; // Constructor, which assigns a new unique ID. - explicit ModelInstance(ModelObject* object) : print_volume_state(PVS_Inside), printable(true), object(object) { assert(this->id().valid()); } + explicit ModelInstance(ModelObject *object) : print_volume_state(PVS_Inside), object(object) { assert(this->id().valid()); } // Constructor, which assigns a new unique ID. explicit ModelInstance(ModelObject *object, const ModelInstance &other) : - m_transformation(other.m_transformation), print_volume_state(PVS_Inside), printable(other.printable), object(object) { assert(this->id().valid() && this->id() != other.id()); } + m_transformation(other.m_transformation), print_volume_state(PVS_Inside), object(object) { assert(this->id().valid() && this->id() != other.id()); } explicit ModelInstance(ModelInstance &&rhs) = delete; ModelInstance& operator=(const ModelInstance &rhs) = delete; @@ -685,8 +681,8 @@ class ModelInstance final : public ObjectBase // Used for deserialization, therefore no IDs are allocated. ModelInstance() : ObjectBase(-1), object(nullptr) { assert(this->id().invalid()); } template void serialize(Archive &ar) { - ar(m_transformation, print_volume_state, printable); - } + ar(m_transformation, print_volume_state); + } }; class ModelWipeTower final : public ObjectBase @@ -725,6 +721,8 @@ class ModelWipeTower final : public ObjectBase // all objects may share mutliple materials. class Model final : public ObjectBase { + static unsigned int s_auto_extruder_id; + public: // Materials are owned by a model and referenced by objects through t_model_material_id. // Single material may be shared by multiple models. @@ -747,8 +745,8 @@ class Model final : public ObjectBase OBJECTBASE_DERIVED_COPY_MOVE_CLONE(Model) - static Model read_from_file(const std::string& input_file, DynamicPrintConfig* config = nullptr, bool add_default_instances = true, bool check_version = false); - static Model read_from_archive(const std::string& input_file, DynamicPrintConfig* config, bool add_default_instances = true, bool check_version = false); + static Model read_from_file(const std::string &input_file, DynamicPrintConfig *config = nullptr, bool add_default_instances = true); + static Model read_from_archive(const std::string &input_file, DynamicPrintConfig *config, bool add_default_instances = true); // Add a new ModelObject to this Model, generate a new ID for this ModelObject. ModelObject* add_object(); @@ -793,10 +791,14 @@ class Model final : public ObjectBase void print_info() const { for (const ModelObject *o : this->objects) o->print_info(); } + static unsigned int get_auto_extruder_id(unsigned int max_extruders); + static std::string get_auto_extruder_id_as_string(unsigned int max_extruders); + static void reset_auto_extruder_id(); + // Propose an output file name & path based on the first printable object's name and source input file's path. - std::string propose_export_file_name_and_path() const; + std::string propose_export_file_name_and_path() const; // Propose an output path, replace extension. The new_extension shall contain the initial dot. - std::string propose_export_file_name_and_path(const std::string &new_extension) const; + std::string propose_export_file_name_and_path(const std::string &new_extension) const; private: explicit Model(int) : ObjectBase(-1) { assert(this->id().invalid()); }; diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 2cc69e66834..74a203a7fbe 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -612,7 +612,7 @@ void PerimeterGenerator::process() double min = 0.2 * perimeter_width * (1 - INSET_OVERLAP_TOLERANCE); //be sure we don't gapfill where the perimeters are already touching each other (negative spacing). min = std::max(min, double(Flow::new_from_spacing(EPSILON, nozzle_diameter, this->layer_height, false).scaled_width())); - double max = 2. * perimeter_spacing; + double max = 3. * perimeter_spacing; ExPolygons gaps_ex = diff_ex( offset2_ex(gaps, double(-min / 2), double(+min / 2)), offset2_ex(gaps, double(-max / 2), double(+max / 2)), @@ -621,8 +621,8 @@ void PerimeterGenerator::process() for (const ExPolygon &ex : gaps_ex) { //remove too small gaps that are too hard to fill. //ie one that are smaller than an extrusion with width of min and a length of max. - if (ex.area() > scale_(scale_(this->config->gap_fill_min_area.get_abs_value(unscaled(perimeter_width)*unscaled(perimeter_width))))) { - MedialAxis{ ex, coord_t(max*1.1), coord_t(min), coord_t(this->layer_height) }.build(polylines); + if (ex.area() > min*max) { + MedialAxis{ ex, coord_t(max), coord_t(min), coord_t(this->layer_height) }.build(polylines); } } if (!polylines.empty()) { diff --git a/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index 0cfd974152a..c3ac22e9681 100644 --- a/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp @@ -108,6 +108,7 @@ static inline bool opts_equal(const DynamicConfig &config_old, const DynamicConf std::vector PlaceholderParser::config_diff(const DynamicPrintConfig &rhs) { + const ConfigDef *def = rhs.def(); std::vector diff_keys; for (const t_config_option_key &opt_key : rhs.keys()) if (! opts_equal(m_config, rhs, opt_key)) @@ -123,6 +124,7 @@ std::vector PlaceholderParser::config_diff(const DynamicPrintConfig // a current extruder ID is used. bool PlaceholderParser::apply_config(const DynamicPrintConfig &rhs) { + const ConfigDef *def = rhs.def(); bool modified = false; for (const t_config_option_key &opt_key : rhs.keys()) { if (! opts_equal(m_config, rhs, opt_key)) { @@ -173,11 +175,6 @@ void PlaceholderParser::apply_env_variables() } namespace spirit = boost::spirit; -// Using an encoding, which accepts unsigned chars. -// Don't use boost::spirit::ascii, as it crashes internally due to indexing with negative char values for UTF8 characters into some 7bit character classification tables. -//namespace spirit_encoding = boost::spirit::ascii; -//FIXME iso8859_1 is just a workaround for the problem above. Replace it with UTF8 support! -namespace spirit_encoding = boost::spirit::iso8859_1; namespace qi = boost::spirit::qi; namespace px = boost::phoenix; @@ -934,7 +931,7 @@ namespace client /////////////////////////////////////////////////////////////////////////// // Inspired by the C grammar rules https://www.lysator.liu.se/c/ANSI-C-grammar-y.html template - struct macro_processor : qi::grammar, spirit_encoding::space_type> + struct macro_processor : qi::grammar, spirit::ascii::space_type> { macro_processor() : macro_processor::base_type(start) { @@ -947,12 +944,12 @@ namespace client qi::lexeme_type lexeme; qi::no_skip_type no_skip; qi::real_parser strict_double; - spirit_encoding::char_type char_; + spirit::ascii::char_type char_; utf8_char_skipper_parser utf8char; spirit::bool_type bool_; spirit::int_type int_; spirit::double_type double_; - spirit_encoding::string_type string; + spirit::ascii::string_type string; spirit::eoi_type eoi; spirit::repository::qi::iter_pos_type iter_pos; auto kw = spirit::repository::qi::distinct(qi::copy(alnum | '_')); @@ -1181,20 +1178,20 @@ namespace client } // Generic expression over expr. - typedef qi::rule(const MyContext*), spirit_encoding::space_type> RuleExpression; + typedef qi::rule(const MyContext*), spirit::ascii::space_type> RuleExpression; // The start of the grammar. - qi::rule, spirit_encoding::space_type> start; + qi::rule, spirit::ascii::space_type> start; // A free-form text. - qi::rule text; + qi::rule text; // A free-form text, possibly empty, possibly containing macro expansions. - qi::rule text_block; + qi::rule text_block; // Statements enclosed in curely braces {} - qi::rule macro; + qi::rule macro; // Legacy variable expansion of the original Slic3r, in the form of [scalar_variable] or [vector_variable_index]. - qi::rule legacy_variable_expansion; + qi::rule legacy_variable_expansion; // Parsed identifier name. - qi::rule(), spirit_encoding::space_type> identifier; + qi::rule(), spirit::ascii::space_type> identifier; // Ternary operator (?:) over logical_or_expression. RuleExpression conditional_expression; // Logical or over logical_and_expressions. @@ -1212,16 +1209,16 @@ namespace client // Number literals, functions, braced expressions, variable references, variable indexing references. RuleExpression unary_expression; // Rule to capture a regular expression enclosed in //. - qi::rule(), spirit_encoding::space_type> regular_expression; + qi::rule(), spirit::ascii::space_type> regular_expression; // Evaluate boolean expression into bool. - qi::rule bool_expr_eval; + qi::rule bool_expr_eval; // Reference of a scalar variable, or reference to a field of a vector variable. - qi::rule(const MyContext*), qi::locals, int>, spirit_encoding::space_type> scalar_variable_reference; + qi::rule(const MyContext*), qi::locals, int>, spirit::ascii::space_type> scalar_variable_reference; // Rule to translate an identifier to a ConfigOption, or to fail. - qi::rule(const MyContext*), spirit_encoding::space_type> variable_reference; + qi::rule(const MyContext*), spirit::ascii::space_type> variable_reference; - qi::rule, spirit_encoding::space_type> if_else_output; -// qi::rule, bool, std::string>, spirit_encoding::space_type> switch_output; + qi::rule, spirit::ascii::space_type> if_else_output; +// qi::rule, bool, std::string>, spirit::ascii::space_type> switch_output; qi::symbols keywords; }; @@ -1233,7 +1230,7 @@ static std::string process_macro(const std::string &templ, client::MyContext &co typedef client::macro_processor macro_processor; // Our whitespace skipper. - spirit_encoding::space_type space; + spirit::ascii::space_type space; // Our grammar, statically allocated inside the method, meaning it will be allocated the first time // PlaceholderParser::process() runs. //FIXME this kind of initialization is not thread safe! diff --git a/src/libslic3r/PolygonTrimmer.cpp b/src/libslic3r/PolygonTrimmer.cpp deleted file mode 100644 index 3e3c9b49821..00000000000 --- a/src/libslic3r/PolygonTrimmer.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "PolygonTrimmer.hpp" -#include "EdgeGrid.hpp" -#include "Geometry.hpp" - -namespace Slic3r { - -TrimmedLoop trim_loop(const Polygon &loop, const EdgeGrid::Grid &grid) -{ - assert(! loop.empty()); - assert(loop.size() >= 2); - - TrimmedLoop out; - - if (loop.size() >= 2) { - size_t cnt = loop.points.size(); - - struct Visitor { - Visitor(const EdgeGrid::Grid &grid, const Slic3r::Point *pt_prev, const Slic3r::Point *pt_this) : grid(grid), pt_prev(pt_prev), pt_this(pt_this) {} - - void operator()(coord_t iy, coord_t ix) { - // Called with a row and colum of the grid cell, which is intersected by a line. - auto cell_data_range = grid.cell_data_range(iy, ix); - for (auto it_contour_and_segment = cell_data_range.first; it_contour_and_segment != cell_data_range.second; ++ it_contour_and_segment) { - // End points of the line segment and their vector. - auto segment = grid.segment(*it_contour_and_segment); - if (Geometry::segments_intersect(segment.first, segment.second, *pt_prev, *pt_this)) { - // The two segments intersect. Add them to the output. - } - } - } - - const EdgeGrid::Grid &grid; - const Slic3r::Point *pt_this; - const Slic3r::Point *pt_prev; - } visitor(grid, &loop.points.back(), nullptr); - - for (const Point &pt_this : loop.points) { - visitor.pt_this = &pt_this; - grid.visit_cells_intersecting_line(*visitor.pt_prev, pt_this, visitor); - visitor.pt_prev = &pt_this; - } - } - - return out; -} - -std::vector trim_loops(const Polygons &loops, const EdgeGrid::Grid &grid) -{ - std::vector out; - out.reserve(loops.size()); - for (const Polygon &loop : loops) - out.emplace_back(trim_loop(loop, grid)); - return out; -} - -} diff --git a/src/libslic3r/PolygonTrimmer.hpp b/src/libslic3r/PolygonTrimmer.hpp deleted file mode 100644 index eddffbc7fa6..00000000000 --- a/src/libslic3r/PolygonTrimmer.hpp +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef slic3r_PolygonTrimmer_hpp_ -#define slic3r_PolygonTrimmer_hpp_ - -#include "libslic3r.h" -#include -#include -#include "Line.hpp" -#include "MultiPoint.hpp" -#include "Polyline.hpp" -#include "Polygon.hpp" - -namespace Slic3r { - -namespace EdgeGrid { - class Grid; -} - -struct TrimmedLoop -{ - std::vector points; - // Number of points per segment. Empty if the loop is - std::vector segments; - - bool is_trimmed() const { return ! segments.empty(); } -}; - -TrimmedLoop trim_loop(const Polygon &loop, const EdgeGrid::Grid &grid); -std::vector trim_loops(const Polygons &loops, const EdgeGrid::Grid &grid); - -} // namespace Slic3r - -#endif /* slic3r_PolygonTrimmer_hpp_ */ diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index b608d28840d..cb25e714d75 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1,5 +1,3 @@ -#include "clipper/clipper_z.hpp" - #include "Print.hpp" #include "BoundingBox.hpp" #include "ClipperUtils.hpp" @@ -21,7 +19,6 @@ #include #include #include -#include #include //! macro used to mark string used at localization, @@ -273,14 +270,8 @@ std::vector Print::object_extruders() const { std::vector extruders; extruders.reserve(m_regions.size() * 3); - std::vector region_used(m_regions.size(), false); - for (const PrintObject *object : m_objects) - for (const std::vector> &volumes_per_region : object->region_volumes) - if (! volumes_per_region.empty()) - region_used[&volumes_per_region - &object->region_volumes.front()] = true; - for (size_t idx_region = 0; idx_region < m_regions.size(); ++ idx_region) - if (region_used[idx_region]) - m_regions[idx_region]->collect_object_printing_extruders(extruders); + for (const PrintRegion *region : m_regions) + region->collect_object_printing_extruders(extruders); sort_remove_duplicates(extruders); return extruders; } @@ -290,26 +281,19 @@ std::vector Print::support_material_extruders() const { std::vector extruders; bool support_uses_current_extruder = false; - auto num_extruders = (unsigned int)m_config.nozzle_diameter.size(); for (PrintObject *object : m_objects) { if (object->has_support_material()) { - assert(object->config().support_material_extruder >= 0); if (object->config().support_material_extruder == 0) support_uses_current_extruder = true; - else { - unsigned int i = (unsigned int)object->config().support_material_extruder - 1; - extruders.emplace_back((i >= num_extruders) ? 0 : i); - } - assert(object->config().support_material_interface_extruder >= 0); + else + extruders.push_back(object->config().support_material_extruder - 1); if (object->config().support_material_interface_extruder == 0) support_uses_current_extruder = true; - else { - unsigned int i = (unsigned int)object->config().support_material_interface_extruder - 1; - extruders.emplace_back((i >= num_extruders) ? 0 : i); + else + extruders.push_back(object->config().support_material_interface_extruder - 1); } } - } if (support_uses_current_extruder) // Add all object extruders to the support extruders as it is not know which one will be used to print supports. @@ -601,8 +585,6 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_ // Apply variables to placeholder parser. The placeholder parser is used by G-code export, // which should be stopped if print_diff is not empty. - size_t num_extruders = m_config.nozzle_diameter.size(); - bool num_extruders_changed = false; if (! full_config_diff.empty() || ! placeholder_parser_overrides.empty()) { update_apply_status(this->invalidate_step(psGCodeExport)); m_placeholder_parser.apply_config(std::move(placeholder_parser_overrides)); @@ -618,10 +600,6 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_ // Handle changes to regions config defaults m_default_region_config.apply_only(new_full_config, region_diff, true); m_full_print_config = std::move(new_full_config); - if (num_extruders != m_config.nozzle_diameter.size()) { - num_extruders = m_config.nozzle_diameter.size(); - num_extruders_changed = true; - } } class LayerRanges @@ -798,6 +776,7 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_ print_object_status.emplace(PrintObjectStatus(print_object)); // 3) Synchronize ModelObjects & PrintObjects. + size_t num_extruders = m_config.nozzle_diameter.size(); for (size_t idx_model_object = 0; idx_model_object < model.objects.size(); ++ idx_model_object) { ModelObject &model_object = *m_model.objects[idx_model_object]; auto it_status = model_object_status.find(ModelObjectStatus(model_object.id())); @@ -844,7 +823,7 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_ bool object_config_changed = model_object.config != model_object_new.config; if (object_config_changed) static_cast(model_object.config) = static_cast(model_object_new.config); - if (! object_diff.empty() || object_config_changed || num_extruders_changed) { + if (! object_diff.empty() || object_config_changed) { PrintObjectConfig new_config = PrintObject::object_config_from_model_object(m_default_object_config, model_object, num_extruders); auto range = print_object_status.equal_range(PrintObjectStatus(model_object.id())); for (auto it = range.first; it != range.second; ++ it) { @@ -1173,41 +1152,32 @@ std::string Print::validate() const // #4043 if (total_copies_count > 1 && ! m_config.complete_objects.value) return L("The Spiral Vase option can only be used when printing a single object."); - assert(m_objects.size() == 1); - size_t num_regions = 0; - for (const std::vector> &volumes_per_region : m_objects.front()->region_volumes) - if (! volumes_per_region.empty()) - ++ num_regions; - if (num_regions > 1) + if (m_regions.size() > 1) return L("The Spiral Vase option can only be used when printing single material objects."); } if (this->has_wipe_tower() && ! m_objects.empty()) { - // Make sure all extruders use same diameter filament and have the same nozzle diameter - // EPSILON comparison is used for nozzles and 10 % tolerance is used for filaments - double first_nozzle_diam = m_config.nozzle_diameter.get_at(extruders().front()); - double first_filament_diam = m_config.filament_diameter.get_at(extruders().front()); + // make sure all extruders use same diameter filament and have the same nozzle diameter for (const auto& extruder_idx : extruders()) { - double nozzle_diam = m_config.nozzle_diameter.get_at(extruder_idx); - double filament_diam = m_config.filament_diameter.get_at(extruder_idx); - if (nozzle_diam - EPSILON > first_nozzle_diam || nozzle_diam + EPSILON < first_nozzle_diam - || std::abs((filament_diam-first_filament_diam)/first_filament_diam) > 0.1) - return L("The wipe tower is only supported if all extruders have the same nozzle diameter " - "and use filaments of the same diameter."); + if (m_config.nozzle_diameter.get_at(extruder_idx) != m_config.nozzle_diameter.get_at(extruders().front()) + || m_config.filament_diameter.get_at(extruder_idx) != m_config.filament_diameter.get_at(extruders().front())) + return L("The wipe tower is only supported if all extruders have the same nozzle diameter and use filaments of the same diameter."); } if (m_config.gcode_flavor != gcfRepRap && m_config.gcode_flavor != gcfRepetier && m_config.gcode_flavor != gcfMarlin) return L("The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter and Repetier G-code flavors."); if (! m_config.use_relative_e_distances) return L("The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)."); - if (m_config.ooze_prevention) - return L("Ooze prevention is currently not supported with the wipe tower enabled."); + for (size_t i=1; i 1) { bool has_custom_layering = false; std::vector> layer_height_profiles; for (const PrintObject *object : m_objects) { - has_custom_layering = ! object->model_object()->layer_config_ranges.empty() || ! object->model_object()->layer_height_profile.empty(); + has_custom_layering = ! object->model_object()->layer_config_ranges.empty() || ! object->model_object()->layer_height_profile.empty(); // #ys_FIXME_experiment if (has_custom_layering) { layer_height_profiles.assign(m_objects.size(), std::vector()); break; @@ -1241,42 +1211,26 @@ std::string Print::validate() const if (has_custom_layering) { const std::vector &layer_height_profile_tallest = layer_height_profiles[tallest_object_idx]; for (size_t idx_object = 0; idx_object < m_objects.size(); ++ idx_object) { - if (idx_object == tallest_object_idx) - continue; const std::vector &layer_height_profile = layer_height_profiles[idx_object]; - - // The comparison of the profiles is not just about element-wise equality, some layers may not be - // explicitely included. Always remember z and height of last reference layer that in the vector - // and compare to that. In case some layers are in the vectors multiple times, only the last entry is - // taken into account and compared. - size_t i = 0; // index into tested profile - size_t j = 0; // index into reference profile - coordf_t ref_z = -1.; - coordf_t next_ref_z = layer_height_profile_tallest[0]; - coordf_t ref_height = -1.; - while (i < layer_height_profile.size()) { - coordf_t this_z = layer_height_profile[i]; - // find the last entry with this z - while (i+2 < layer_height_profile.size() && layer_height_profile[i+2] == this_z) - i += 2; - - coordf_t this_height = layer_height_profile[i+1]; - if (ref_height < -1. || next_ref_z < this_z + EPSILON) { - ref_z = next_ref_z; - do { // one layer can be in the vector several times - ref_height = layer_height_profile_tallest[j+1]; - if (j+2 >= layer_height_profile_tallest.size()) - break; - j += 2; - next_ref_z = layer_height_profile_tallest[j]; - } while (ref_z == next_ref_z); + bool failed = false; + if (layer_height_profile_tallest.size() >= layer_height_profile.size()) { + size_t i = 0; + while (i < layer_height_profile.size() && i < layer_height_profile_tallest.size()) { + if (std::abs(layer_height_profile_tallest[i] - layer_height_profile[i])) { + failed = true; + break; } - if (std::abs(this_height - ref_height) > EPSILON) - return L("The Wipe tower is only supported if all objects have the same layer height profile"); - i += 2; + ++ i; + if (i == layer_height_profile.size() - 2) // this element contains this objects max z + if (layer_height_profile_tallest[i] > layer_height_profile[i]) // the difference does not matter in this case + ++ i; } - } + } else + failed = true; + if (failed) + return L("The Wipe tower is only supported if all objects have the same layer height profile"); } + } } } @@ -1304,20 +1258,6 @@ std::string Print::validate() const return L("One or more object were assigned an extruder that the printer does not have."); #endif - auto validate_extrusion_width = [min_nozzle_diameter, max_nozzle_diameter](const ConfigBase &config, const char *opt_key, double layer_height, std::string &err_msg) -> bool { - double extrusion_width_min = config.get_abs_value(opt_key, min_nozzle_diameter); - double extrusion_width_max = config.get_abs_value(opt_key, max_nozzle_diameter); - if (extrusion_width_min == 0) { - // Default "auto-generated" extrusion width is always valid. - } else if (extrusion_width_min <= layer_height) { - err_msg = (boost::format(L("%1%=%2% mm is too low to be printable at a layer height %3% mm")) % opt_key % extrusion_width_min % layer_height).str(); - return false; - } else if (extrusion_width_max >= max_nozzle_diameter * 3.) { - err_msg = (boost::format(L("Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm")) % opt_key % extrusion_width_max % max_nozzle_diameter).str(); - return false; - } - return true; - }; for (PrintObject *object : m_objects) { if (object->config().raft_layers > 0 || object->config().support_material.value) { if ((object->config().support_material_extruder == 0 || object->config().support_material_interface_extruder == 0) && max_nozzle_diameter - min_nozzle_diameter > EPSILON) { @@ -1361,20 +1301,8 @@ std::string Print::validate() const return L("First layer height can't be greater than nozzle diameter"); // validate layer_height - double layer_height = object->config().layer_height.value; - if (layer_height > min_nozzle_diameter) + if (object->config().layer_height.value > min_nozzle_diameter) return L("Layer height can't be greater than nozzle diameter"); - - // Validate extrusion widths. - std::string err_msg; - if (! validate_extrusion_width(object->config(), "extrusion_width", layer_height, err_msg)) - return err_msg; - if ((object->config().support_material || object->config().raft_layers > 0) && ! validate_extrusion_width(object->config(), "support_material_extrusion_width", layer_height, err_msg)) - return err_msg; - for (const char *opt_key : { "perimeter_extrusion_width", "external_perimeter_extrusion_width", "infill_extrusion_width", "solid_infill_extrusion_width", "top_infill_extrusion_width" }) - for (size_t i = 0; i < object->region_volumes.size(); ++ i) - if (! object->region_volumes[i].empty() && ! validate_extrusion_width(this->get_region(i)->config(), opt_key, layer_height, err_msg)) - return err_msg; } } @@ -1696,7 +1624,9 @@ void Print::_make_skirt(const PrintObjectPtrs &objects, ExtrusionEntityCollectio // Initial offset of the brim inner edge from the object (possible with a support & raft). // The skirt will touch the brim if the brim is extruded. - auto distance = float(scale_(m_config.skirt_distance.value) - spacing/2.); + Flow brim_flow = this->brim_flow(); + double actual_brim_width = brim_flow.spacing() * floor(m_config.brim_width.value / brim_flow.spacing()); + auto distance = float(scale_(std::max(m_config.skirt_distance.value, actual_brim_width) - spacing/2.)); // Draw outlines from outside to inside. // Loop while we have less skirts than required or any extruder hasn't reached the min length if any. std::vector extruded_length(extruders.size(), 0.); @@ -1779,134 +1709,12 @@ void Print::_make_brim(const PrintObjectPtrs &objects, ExtrusionEntityCollection } polygons_append(loops, offset(islands, -0.5f * double(flow.scaled_spacing()))); } + loops = union_pt_chained(loops, false); // The function above produces ordering well suited for concentric infill (from outside to inside). // For Brim, the ordering should be reversed (from inside to outside). std::reverse(loops.begin(), loops.end()); - - // If there is a possibility that brim intersects skirt, go through loops and split those extrusions - // The result is either the original Polygon or a list of Polylines - if (! m_skirt.empty() && m_config.skirt_distance.value < m_config.brim_width) - { - // Find the bounding polygons of the skirt - const Polygons skirt_inners = offset(dynamic_cast(m_skirt.entities.back())->polygon(), - -float(scale_(this->skirt_flow().spacing()))/2.f, - ClipperLib::jtRound, - float(scale_(0.1))); - const Polygons skirt_outers = offset(dynamic_cast(m_skirt.entities.front())->polygon(), - float(scale_(this->skirt_flow().spacing()))/2.f, - ClipperLib::jtRound, - float(scale_(0.1))); - - // First calculate the trimming region. - ClipperLib_Z::Paths trimming; - { - ClipperLib_Z::Paths input_subject; - ClipperLib_Z::Paths input_clip; - for (const Polygon &poly : skirt_outers) { - input_subject.emplace_back(); - ClipperLib_Z::Path &out = input_subject.back(); - out.reserve(poly.points.size()); - for (const Point &pt : poly.points) - out.emplace_back(pt.x(), pt.y(), 0); - } - for (const Polygon &poly : skirt_inners) { - input_clip.emplace_back(); - ClipperLib_Z::Path &out = input_clip.back(); - out.reserve(poly.points.size()); - for (const Point &pt : poly.points) - out.emplace_back(pt.x(), pt.y(), 0); - } - // init Clipper - ClipperLib_Z::Clipper clipper; - // add polygons - clipper.AddPaths(input_subject, ClipperLib_Z::ptSubject, true); - clipper.AddPaths(input_clip, ClipperLib_Z::ptClip, true); - // perform operation - clipper.Execute(ClipperLib_Z::ctDifference, trimming, ClipperLib_Z::pftEvenOdd, ClipperLib_Z::pftEvenOdd); - } - - // Second, trim the extrusion loops with the trimming regions. - ClipperLib_Z::Paths loops_trimmed; - { - // Produce a closed polyline (repeat the first point at the end). - ClipperLib_Z::Paths input_clip; - for (const Polygon &loop : loops) { - input_clip.emplace_back(); - ClipperLib_Z::Path& out = input_clip.back(); - out.reserve(loop.points.size()); - int64_t loop_idx = &loop - &loops.front(); - for (const Point& pt : loop.points) - // The Z coordinate carries index of the source loop. - out.emplace_back(pt.x(), pt.y(), loop_idx + 1); - out.emplace_back(out.front()); - } - // init Clipper - ClipperLib_Z::Clipper clipper; - clipper.ZFillFunction([](const ClipperLib_Z::IntPoint& e1bot, const ClipperLib_Z::IntPoint& e1top, const ClipperLib_Z::IntPoint& e2bot, const ClipperLib_Z::IntPoint& e2top, ClipperLib_Z::IntPoint& pt) { - // Assign a valid input loop identifier. Such an identifier is strictly positive, the next line is safe even in case one side of a segment - // hat the Z coordinate not set to the contour coordinate. - pt.Z = std::max(std::max(e1bot.Z, e1top.Z), std::max(e2bot.Z, e2top.Z)); - }); - // add polygons - clipper.AddPaths(input_clip, ClipperLib_Z::ptSubject, false); - clipper.AddPaths(trimming, ClipperLib_Z::ptClip, true); - // perform operation - ClipperLib_Z::PolyTree loops_trimmed_tree; - clipper.Execute(ClipperLib_Z::ctDifference, loops_trimmed_tree, ClipperLib_Z::pftEvenOdd, ClipperLib_Z::pftEvenOdd); - ClipperLib_Z::PolyTreeToPaths(loops_trimmed_tree, loops_trimmed); - } - - // Third, produce the extrusions, sorted by the source loop indices. - { - std::vector> loops_trimmed_order; - loops_trimmed_order.reserve(loops_trimmed.size()); - for (const ClipperLib_Z::Path &path : loops_trimmed) { - size_t input_idx = 0; - for (const ClipperLib_Z::IntPoint &pt : path) - if (pt.Z > 0) { - input_idx = (size_t)pt.Z; - break; - } - assert(input_idx != 0); - loops_trimmed_order.emplace_back(&path, input_idx); - } - std::stable_sort(loops_trimmed_order.begin(), loops_trimmed_order.end(), - [](const std::pair &l, const std::pair &r) { - return l.second < r.second; - }); - Vec3f last_pt(0.f, 0.f, 0.f); - - for (size_t i = 0; i < loops_trimmed_order.size();) { - // Find all pieces that the initial loop was split into. - size_t j = i + 1; - for (; j < loops_trimmed_order.size() && loops_trimmed_order[i].first == loops_trimmed_order[j].first; ++ j) ; - const ClipperLib_Z::Path &first_path = *loops_trimmed_order[i].first; - if (i + 1 == j && first_path.size() > 3 && first_path.front().X == first_path.back().X && first_path.front().Y == first_path.back().Y) { - auto *loop = new ExtrusionLoop(); - out.entities.emplace_back(loop); - loop->paths.emplace_back(erSkirt, float(flow.mm3_per_mm()), float(flow.width), float(this->skirt_first_layer_height())); - Points &points = loop->paths.front().polyline.points; - points.reserve(first_path.size()); - for (const ClipperLib_Z::IntPoint &pt : first_path) - points.emplace_back(coord_t(pt.X), coord_t(pt.Y)); - i = j; - } else { - //FIXME this is not optimal as the G-code generator will follow the sequence of paths verbatim without respect to minimum travel distance. - for (; i < j; ++ i) { - out.entities.emplace_back(new ExtrusionPath(erSkirt, float(flow.mm3_per_mm()), float(flow.width), float(this->skirt_first_layer_height()))); - const ClipperLib_Z::Path &path = *loops_trimmed_order[i].first; - Points &points = static_cast(out.entities.back())->polyline.points; - points.reserve(path.size()); - for (const ClipperLib_Z::IntPoint &pt : path) - points.emplace_back(coord_t(pt.X), coord_t(pt.Y)); - } - } - } - } - } else { - extrusion_entities_append_loops(out.entities, std::move(loops), erSkirt, float(flow.mm3_per_mm()), float(flow.width), float(this->skirt_first_layer_height())); -} + extrusion_entities_append_loops(out.entities, std::move(loops), erSkirt, float(flow.mm3_per_mm()), float(flow.width), float(this->skirt_first_layer_height())); } void Print::_make_brim_ears(const PrintObjectPtrs &objects, ExtrusionEntityCollection &out) { @@ -2104,7 +1912,7 @@ void Print::_make_wipe_tower() break; lt.has_support = true; // Insert the new support layer. - double height = lt.print_z - (i == 0 ? 0. : m_wipe_tower_data.tool_ordering.layer_tools()[i-1].print_z); + double height = lt.print_z - m_wipe_tower_data.tool_ordering.layer_tools()[i-1].print_z; //FIXME the support layer ID is set to -1, as Vojtech hopes it is not being used anyway. it_layer = m_objects.front()->insert_support_layer(it_layer, -1, height, lt.print_z, lt.print_z - 0.5 * height); ++ it_layer; @@ -2114,7 +1922,16 @@ void Print::_make_wipe_tower() this->throw_if_canceled(); // Initialize the wipe tower. - WipeTower wipe_tower(m_config, wipe_volumes, m_wipe_tower_data.tool_ordering.first_extruder()); + WipeTower wipe_tower(m_config + //m_config.single_extruder_multi_material.value, + //float(m_config.wipe_tower_x.value), float(m_config.wipe_tower_y.value), + //float(m_config.wipe_tower_width.value), + //float(m_config.wipe_tower_rotation_angle.value), float(m_config.cooling_tube_retraction.value), + //float(m_config.cooling_tube_length.value), float(m_config.parking_pos_retraction.value), + //float(m_config.extra_loading_move.value), float(m_config.wipe_tower_bridging), + //m_config.high_current_on_filament_swap.value + , wipe_volumes, + m_wipe_tower_data.tool_ordering.first_extruder(), this->brim_flow().width); //wipe_tower.set_retract(); @@ -2122,9 +1939,7 @@ void Print::_make_wipe_tower() // Set the extruder & material properties at the wipe tower object. for (size_t i = 0; i < number_of_extruders; ++i) - - wipe_tower.set_extruder(i, m_config); - + wipe_tower.set_extruder(i); m_wipe_tower_data.priming = Slic3r::make_unique>( wipe_tower.prime((float)this->skirt_first_layer_height(), m_wipe_tower_data.tool_ordering.all_extruders(), false)); diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index 5c6563c9293..d6879e6f54a 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -39,8 +39,6 @@ class PrintRegion public: const Print* print() const { return m_print; } const PrintRegionConfig& config() const { return m_config; } - // 1-based extruder identifier for this region and role. - unsigned int extruder(FlowRole role) const; Flow flow(FlowRole role, double layer_height, bool bridge, bool first_layer, double width, const PrintObject &object) const; // Average diameter of nozzles participating on extruding this region. coordf_t nozzle_dmr_avg(const PrintConfig &print_config) const; diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index a5d182ded82..03eb2d65040 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -12,7 +12,7 @@ namespace Slic3r { -//! macro used to mark string used at localization, +//! macro used to mark string used at localization, //! return same string #define L(s) (s) #define _(s) Slic3r::I18N::translate(s) @@ -27,7 +27,7 @@ static void assign_printer_technology_to_unknown(t_optiondef_map &options, Print PrintConfigDef::PrintConfigDef() { this->init_common_params(); - //assign params that are not already allocated to FFF+SLA (default from slic3rPE) + //assign params that are not already allocated to FFF+SLA (default from slic3rPE) assign_printer_technology_to_unknown(this->options, ptFFF | ptSLA); this->init_fff_params(); this->init_extruder_retract_keys(); @@ -52,7 +52,7 @@ void PrintConfigDef::init_common_params() def->label = L("Bed shape"); def->mode = comAdvanced; def->set_default_value(new ConfigOptionPoints{ Vec2d(0, 0), Vec2d(200, 0), Vec2d(200, 200), Vec2d(0, 200) }); - + def = this->add("bed_custom_texture", coString); def->label = L("Bed custom texture"); def->mode = comAdvanced; @@ -87,8 +87,8 @@ void PrintConfigDef::init_common_params() "The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low."); def->sidetext = L("mm"); def->min = 0; - def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(0.049)); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(0.049)); def = this->add("print_host", coString); def->label = L("Hostname, IP or URL"); @@ -103,7 +103,7 @@ void PrintConfigDef::init_common_params() "the API Key or the password required for authentication."); def->mode = comAdvanced; def->set_default_value(new ConfigOptionString("")); - + def = this->add("printhost_cafile", coString); def->label = L("HTTPS CA File"); def->tooltip = L("Custom CA certificate file can be specified for HTTPS OctoPrint connections, in crt/pem format. " @@ -216,7 +216,7 @@ void PrintConfigDef::init_fff_params() def->min = 0; def->max = 2; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloat(1)); + def->set_default_value(new ConfigOptionFloat(1)); def = this->add("over_bridge_flow_ratio", coFloat); def->label = L("Above the bridges"); @@ -229,6 +229,26 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(1)); + def = this->add("top_infill_flow_ratio", coFloat); + def->label = L("Top solid infill"); + def->full_label = L("Top solid infill flow ratio"); + def->category = L("Advanced"); + def->tooltip = L("Flow ratio for the top solid infill layer. You can decrease this to allow space for ironing flow if it is being used."); + def->min = 0; + def->max = 2; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(1)); + + def = this->add("ironing_flow_ratio", coFloat); + def->label = L("Ironing"); + def->full_label = L("Ironing flow ratio"); + def->category = L("Advanced"); + def->tooltip = L("Flow ratio for the ironing layer if enabled. Recommended value is zero, but you can increase this if you are experiencing gaps in your ironing layer."); + def->min = 0; + def->max = 1; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(0)); + def = this->add("bridge_speed", coFloat); def->label = L("Bridges"); def->full_label = L("Bridge speed"); @@ -484,7 +504,6 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Fill pattern for bottom infill. This only affects the bottom visible layer, and not its adjacent solid shells."); def->cli = "bottom-fill-pattern|external-fill-pattern=s"; def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); - def->enum_values.push_back("rectilinear"); def->enum_values.push_back("rectilineargapfill"); def->enum_values.push_back("concentric"); @@ -704,7 +723,7 @@ void PrintConfigDef::init_fff_params() "check filament diameter and your firmware E steps."); def->mode = comSimple; def->set_default_value(new ConfigOptionFloats { 1. }); - + def = this->add("extrusion_width", coFloatOrPercent); def->label = L("Default extrusion width"); def->category = L("Extrusion Width"); @@ -862,7 +881,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("This string is edited by RammingDialog and contains ramming specific parameters."); def->mode = comExpert; def->set_default_value(new ConfigOptionStrings { "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0|" - " 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" }); + " 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" }); def = this->add("filament_unload_time", coFloats); def->label = L("Filament unload time"); @@ -939,7 +958,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("money/kg"); def->min = 0; def->set_default_value(new ConfigOptionFloats { 0. }); - + def = this->add("filament_settings_id", coStrings); def->set_default_value(new ConfigOptionStrings { "" }); def->cli = ConfigOptionDef::nocli; @@ -1142,22 +1161,13 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionInts { 200 }); def = this->add("gap_fill", coBool); - def->label = L(""); - def->full_label = L("Enable Gap Fill"); + def->label = L("Gap fill"); def->category = L("Advanced"); def->tooltip = L("Enable gap fill algorithm. It will extrude small lines between perimeters " "when there is not enough space for another perimeter or an infill."); def->mode = comExpert; def->set_default_value(new ConfigOptionBool(true)); - def = this->add("gap_fill_min_area", coFloatOrPercent); - def->label = L("Min surface"); - def->full_label = ("Min gap-fill surface"); - def->tooltip = L("This setting represents the minimum mm² for a gapfill extrusion to be created.\nCan be a % of (perimeter width)²"); - def->min = 0; - def->mode = comExpert; - def->set_default_value(new ConfigOptionFloatOrPercent{ 100,true }); - def = this->add("gap_fill_speed", coFloat); def->label = L("Gap fill"); def->full_label = L("Gap fill speed"); @@ -1385,7 +1395,7 @@ void PrintConfigDef::init_fff_params() def->mode = comExpert; def->set_default_value(new ConfigOptionBool(false)); - def = this->add("silent_mode", coBool); + def = this->add("silent_mode", coBool); def->label = L("Supports stealth mode"); def->category = L("Firmware"); def->tooltip = L("The firmware supports stealth mode"); @@ -1401,79 +1411,79 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); - const int machine_limits_opt_width = 70; - { - struct AxisDefault { - std::string name; - std::vector max_feedrate; - std::vector max_acceleration; - std::vector max_jerk; - }; - std::vector axes { - // name, max_feedrate, max_acceleration, max_jerk - { "x", { 500., 200. }, { 9000., 1000. }, { 10. , 10. } }, - { "y", { 500., 200. }, { 9000., 1000. }, { 10. , 10. } }, - { "z", { 12., 12. }, { 500., 200. }, { 0.2, 0.4 } }, - { "e", { 120., 120. }, { 10000., 5000. }, { 2.5, 2.5 } } - }; - for (const AxisDefault &axis : axes) { - std::string axis_upper = boost::to_upper_copy(axis.name); - // Add the machine feedrate limits for XYZE axes. (M203) - def = this->add("machine_max_feedrate_" + axis.name, coFloats); - def->full_label = (boost::format("Maximum feedrate %1%") % axis_upper).str(); - (void)L("Maximum feedrate X"); - (void)L("Maximum feedrate Y"); - (void)L("Maximum feedrate Z"); - (void)L("Maximum feedrate E"); - def->category = L("Machine limits"); - def->tooltip = (boost::format("Maximum feedrate of the %1% axis") % axis_upper).str(); - (void)L("Maximum feedrate of the X axis"); - (void)L("Maximum feedrate of the Y axis"); - (void)L("Maximum feedrate of the Z axis"); - (void)L("Maximum feedrate of the E axis"); - def->sidetext = L("mm/s"); - def->min = 0; - def->width = machine_limits_opt_width; + const int machine_limits_opt_width = 70; + { + struct AxisDefault { + std::string name; + std::vector max_feedrate; + std::vector max_acceleration; + std::vector max_jerk; + }; + std::vector axes { + // name, max_feedrate, max_acceleration, max_jerk + { "x", { 500., 200. }, { 9000., 1000. }, { 10. , 10. } }, + { "y", { 500., 200. }, { 9000., 1000. }, { 10. , 10. } }, + { "z", { 12., 12. }, { 500., 200. }, { 0.2, 0.4 } }, + { "e", { 120., 120. }, { 10000., 5000. }, { 2.5, 2.5 } } + }; + for (const AxisDefault &axis : axes) { + std::string axis_upper = boost::to_upper_copy(axis.name); + // Add the machine feedrate limits for XYZE axes. (M203) + def = this->add("machine_max_feedrate_" + axis.name, coFloats); + def->full_label = (boost::format("Maximum feedrate %1%") % axis_upper).str(); + (void)L("Maximum feedrate X"); + (void)L("Maximum feedrate Y"); + (void)L("Maximum feedrate Z"); + (void)L("Maximum feedrate E"); + def->category = L("Machine limits"); + def->tooltip = (boost::format("Maximum feedrate of the %1% axis") % axis_upper).str(); + (void)L("Maximum feedrate of the X axis"); + (void)L("Maximum feedrate of the Y axis"); + (void)L("Maximum feedrate of the Z axis"); + (void)L("Maximum feedrate of the E axis"); + def->sidetext = L("mm/s"); + def->min = 0; + def->width = machine_limits_opt_width; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloats(axis.max_feedrate)); - // Add the machine acceleration limits for XYZE axes (M201) - def = this->add("machine_max_acceleration_" + axis.name, coFloats); - def->full_label = (boost::format("Maximum acceleration %1%") % axis_upper).str(); - (void)L("Maximum acceleration X"); - (void)L("Maximum acceleration Y"); - (void)L("Maximum acceleration Z"); - (void)L("Maximum acceleration E"); - def->category = L("Machine limits"); - def->tooltip = (boost::format("Maximum acceleration of the %1% axis") % axis_upper).str(); - (void)L("Maximum acceleration of the X axis"); - (void)L("Maximum acceleration of the Y axis"); - (void)L("Maximum acceleration of the Z axis"); - (void)L("Maximum acceleration of the E axis"); - def->sidetext = L("mm/s²"); - def->min = 0; - def->width = machine_limits_opt_width; + def->set_default_value(new ConfigOptionFloats(axis.max_feedrate)); + // Add the machine acceleration limits for XYZE axes (M201) + def = this->add("machine_max_acceleration_" + axis.name, coFloats); + def->full_label = (boost::format("Maximum acceleration %1%") % axis_upper).str(); + (void)L("Maximum acceleration X"); + (void)L("Maximum acceleration Y"); + (void)L("Maximum acceleration Z"); + (void)L("Maximum acceleration E"); + def->category = L("Machine limits"); + def->tooltip = (boost::format("Maximum acceleration of the %1% axis") % axis_upper).str(); + (void)L("Maximum acceleration of the X axis"); + (void)L("Maximum acceleration of the Y axis"); + (void)L("Maximum acceleration of the Z axis"); + (void)L("Maximum acceleration of the E axis"); + def->sidetext = L("mm/s²"); + def->min = 0; + def->width = machine_limits_opt_width; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloats(axis.max_acceleration)); - // Add the machine jerk limits for XYZE axes (M205) - def = this->add("machine_max_jerk_" + axis.name, coFloats); - def->full_label = (boost::format("Maximum jerk %1%") % axis_upper).str(); - (void)L("Maximum jerk X"); - (void)L("Maximum jerk Y"); - (void)L("Maximum jerk Z"); - (void)L("Maximum jerk E"); - def->category = L("Machine limits"); - def->tooltip = (boost::format("Maximum jerk of the %1% axis") % axis_upper).str(); - (void)L("Maximum jerk of the X axis"); - (void)L("Maximum jerk of the Y axis"); - (void)L("Maximum jerk of the Z axis"); - (void)L("Maximum jerk of the E axis"); - def->sidetext = L("mm/s"); - def->min = 0; - def->width = machine_limits_opt_width; + def->set_default_value(new ConfigOptionFloats(axis.max_acceleration)); + // Add the machine jerk limits for XYZE axes (M205) + def = this->add("machine_max_jerk_" + axis.name, coFloats); + def->full_label = (boost::format("Maximum jerk %1%") % axis_upper).str(); + (void)L("Maximum jerk X"); + (void)L("Maximum jerk Y"); + (void)L("Maximum jerk Z"); + (void)L("Maximum jerk E"); + def->category = L("Machine limits"); + def->tooltip = (boost::format("Maximum jerk of the %1% axis") % axis_upper).str(); + (void)L("Maximum jerk of the X axis"); + (void)L("Maximum jerk of the Y axis"); + (void)L("Maximum jerk of the Z axis"); + (void)L("Maximum jerk of the E axis"); + def->sidetext = L("mm/s"); + def->min = 0; + def->width = machine_limits_opt_width; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloats(axis.max_jerk)); - } - } + def->set_default_value(new ConfigOptionFloats(axis.max_jerk)); + } + } // M205 S... [mm/sec] def = this->add("machine_min_extruding_rate", coFloats); @@ -1484,7 +1494,7 @@ void PrintConfigDef::init_fff_params() def->min = 0; def->width = machine_limits_opt_width; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloats{ 0., 0. }); + def->set_default_value(new ConfigOptionFloats{ 0., 0. }); // M205 T... [mm/sec] def = this->add("machine_min_travel_rate", coFloats); @@ -1495,7 +1505,7 @@ void PrintConfigDef::init_fff_params() def->min = 0; def->width = machine_limits_opt_width; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloats{ 0., 0. }); + def->set_default_value(new ConfigOptionFloats{ 0., 0. }); // M204 S... [mm/sec^2] def = this->add("machine_max_acceleration_extruding", coFloats); @@ -1594,7 +1604,7 @@ void PrintConfigDef::init_fff_params() def->min = 0; def->max = 100; def->mode = comSimple; - def->set_default_value(new ConfigOptionInts{ 35 }); + def->set_default_value(new ConfigOptionInts { 35 }); def = this->add("min_layer_height", coFloats); def->label = L("Min"); @@ -1714,7 +1724,7 @@ void PrintConfigDef::init_fff_params() "\n * Keep only bridges: remove the unsupported perimeter, kep only bridges that end in solid area." "\n * Keep bridges and overhangs: remove the unsupported perimeter, keep only bridges that end in solid area, fill the rest with overhang perimeters+bridges." "\n * Fill the voids with bridges: remove the unsupported perimeter, draw bridges over the whole hole. !! can lead to problems with overhangs shape like /\\, consider carefully before using this option!" - "\n!!Computationally intensive!!. "); + "\n!!Computationally intensive!!. "); def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); def->enum_values.push_back("none"); def->enum_values.push_back("noperi"); @@ -1813,9 +1823,9 @@ void PrintConfigDef::init_fff_params() def->gui_flags = "serialized"; def->multiline = true; def->full_width = true; - def->height = 6; + def->height = 6; def->mode = comExpert; - def->set_default_value(new ConfigOptionStrings()); + def->set_default_value(new ConfigOptionStrings()); def = this->add("printer_model", coString); def->label = L("Printer type"); @@ -1847,7 +1857,7 @@ void PrintConfigDef::init_fff_params() def = this->add("print_settings_id", coString); def->set_default_value(new ConfigOptionString("")); def->cli = ConfigOptionDef::nocli; - + def = this->add("printer_settings_id", coString); def->set_default_value(new ConfigOptionString("")); def->cli = ConfigOptionDef::nocli; @@ -1895,7 +1905,7 @@ void PrintConfigDef::init_fff_params() def->sidetext = L("%"); def->mode = comAdvanced; def->set_default_value(new ConfigOptionPercents { 0. }); - + def = this->add("retract_layer_change", coBools); def->label = L("Retract on layer change"); def->tooltip = L("This flag enforces a retraction whenever a Z move is done."); @@ -1957,7 +1967,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Support material"); def->tooltip = L("Select this option to not use the z-lift on a top surface."); def->mode = comAdvanced; - def->set_default_value(new ConfigOptionBools { false }); + def->set_default_value(new ConfigOptionBools { false }); def = this->add("retract_restart_extra", coFloats); def->label = L("Extra length on restart"); @@ -2089,7 +2099,7 @@ void PrintConfigDef::init_fff_params() def->min = 0; def->mode = comSimple; def->set_default_value(new ConfigOptionInt(1)); - + def = this->add("slowdown_below_layer_time", coInts); def->label = L("Slow down if layer print time is below"); def->tooltip = L("If layer print time is estimated below this number of seconds, print moves " @@ -2299,7 +2309,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Single Extruder Multi Material"); def->tooltip = L("The printer multiplexes filaments into a single hot end."); def->mode = comAdvanced; - def->set_default_value(new ConfigOptionBool(false)); + def->set_default_value(new ConfigOptionBool(false)); def = this->add("single_extruder_multi_material_priming", coBool); def->label = L("Prime all printing extruders"); @@ -2382,8 +2392,8 @@ void PrintConfigDef::init_fff_params() // def->min = 0; def->enum_values.push_back("0"); def->enum_values.push_back("0.2"); - def->enum_labels.push_back(L("0 (soluble)")); - def->enum_labels.push_back(L("0.2 (detachable)")); + def->enum_labels.push_back(L("0 (soluble)")); + def->enum_labels.push_back(L("0.2 (detachable)")); def->mode = comAdvanced; def->aliases = { "support_material_contact_distance" }; def->set_default_value(new ConfigOptionFloatOrPercent(0.2, false)); @@ -2572,7 +2582,7 @@ void PrintConfigDef::init_fff_params() def->min = 0; def->max = max_temp; def->set_default_value(new ConfigOptionInts { 200 }); - + def = this->add("thin_walls", coBool); def->label = L(""); def->full_label = L("Thin walls"); @@ -2612,13 +2622,13 @@ void PrintConfigDef::init_fff_params() { int threads = (unsigned int)boost::thread::hardware_concurrency(); def->set_default_value(new ConfigOptionInt(threads > 0 ? threads : 2)); - def->cli = ConfigOptionDef::nocli; + def->cli == ConfigOptionDef::nocli; } - + def = this->add("toolchange_gcode", coString); def->label = L("Tool change G-code"); def->tooltip = L("This custom code is inserted at every extruder change. If you don't leave this empty, you are " - "expected to take care of the toolchange yourself - slic3r will not output any other G-code to " + "expected to take care of the toolchange yourself - PrusaSlicer will not output any other G-code to " "change the filament. You can use placeholder variables for all Slic3r settings as well as [previous_extruder] " "and [next_extruder], so e.g. the standard toolchange command can be scripted as T[next_extruder]."); def->multiline = true; @@ -2873,45 +2883,45 @@ void PrintConfigDef::init_fff_params() // Declare retract values for filament profile, overriding the printer's extruder profile. for (const char *opt_key : { - // floats - "retract_length", "retract_lift", "retract_lift_above", "retract_lift_below", "retract_speed", "deretract_speed", "retract_restart_extra", "retract_before_travel", - // bools - "retract_layer_change", "wipe", - // percents - "retract_before_wipe"}) { - auto it_opt = options.find(opt_key); - assert(it_opt != options.end()); - def = this->add_nullable(std::string("filament_") + opt_key, it_opt->second.type); - def->label = it_opt->second.label; - def->full_label = it_opt->second.full_label; - def->tooltip = it_opt->second.tooltip; - def->sidetext = it_opt->second.sidetext; - def->mode = it_opt->second.mode; - switch (def->type) { - case coFloats : def->set_default_value(new ConfigOptionFloatsNullable (static_cast(it_opt->second.default_value.get())->values)); break; - case coPercents : def->set_default_value(new ConfigOptionPercentsNullable(static_cast(it_opt->second.default_value.get())->values)); break; - case coBools : def->set_default_value(new ConfigOptionBoolsNullable (static_cast(it_opt->second.default_value.get())->values)); break; - default: assert(false); - } + // floats + "retract_length", "retract_lift", "retract_lift_above", "retract_lift_below", "retract_speed", "deretract_speed", "retract_restart_extra", "retract_before_travel", + // bools + "retract_layer_change", "wipe", + // percents + "retract_before_wipe"}) { + auto it_opt = options.find(opt_key); + assert(it_opt != options.end()); + def = this->add_nullable(std::string("filament_") + opt_key, it_opt->second.type); + def->label = it_opt->second.label; + def->full_label = it_opt->second.full_label; + def->tooltip = it_opt->second.tooltip; + def->sidetext = it_opt->second.sidetext; + def->mode = it_opt->second.mode; + switch (def->type) { + case coFloats : def->set_default_value(new ConfigOptionFloatsNullable (static_cast(it_opt->second.default_value.get())->values)); break; + case coPercents : def->set_default_value(new ConfigOptionPercentsNullable(static_cast(it_opt->second.default_value.get())->values)); break; + case coBools : def->set_default_value(new ConfigOptionBoolsNullable (static_cast(it_opt->second.default_value.get())->values)); break; + default: assert(false); + } } } void PrintConfigDef::init_extruder_retract_keys() { - m_extruder_retract_keys = { - "deretract_speed", - "retract_before_travel", - "retract_before_wipe", - "retract_layer_change", - "retract_length", - "retract_lift", - "retract_lift_above", - "retract_lift_below", - "retract_restart_extra", - "retract_speed", - "wipe" - }; - assert(std::is_sorted(m_extruder_retract_keys.begin(), m_extruder_retract_keys.end())); + m_extruder_retract_keys = { + "deretract_speed", + "retract_before_travel", + "retract_before_wipe", + "retract_layer_change", + "retract_length", + "retract_lift", + "retract_lift_above", + "retract_lift_below", + "retract_restart_extra", + "retract_speed", + "wipe" + }; + assert(std::is_sorted(m_extruder_retract_keys.begin(), m_extruder_retract_keys.end())); } void PrintConfigDef::init_sla_params() @@ -3013,7 +3023,7 @@ void PrintConfigDef::init_sla_params() "to the sign of the correction."); def->mode = comExpert; def->set_default_value(new ConfigOptionFloat(0.0)); - + def = this->add("gamma_correction", coFloat); def->label = L("Printer gamma correction"); def->full_label = L("Printer gamma correction"); @@ -3024,7 +3034,7 @@ void PrintConfigDef::init_sla_params() def->min = 0; def->mode = comExpert; def->set_default_value(new ConfigOptionFloat(1.0)); - + // SLA Material settings. def = this->add("initial_layer_height", coFloat); @@ -3042,22 +3052,6 @@ void PrintConfigDef::init_sla_params() def->mode = comExpert; def->set_default_value(new ConfigOptionInt(10)); - def = this->add("min_exposure_time", coFloat); - def->label = L("Minimum exposure time"); - def->tooltip = L("Minimum exposure time"); - def->sidetext = L("s"); - def->min = 0; - def->mode = comExpert; - def->set_default_value(new ConfigOptionFloat(0)); - - def = this->add("max_exposure_time", coFloat); - def->label = L("Maximum exposure time"); - def->tooltip = L("Maximum exposure time"); - def->sidetext = L("s"); - def->min = 0; - def->mode = comExpert; - def->set_default_value(new ConfigOptionFloat(100)); - def = this->add("exposure_time", coFloat); def->label = L("Exposure time"); def->tooltip = L("Exposure time"); @@ -3065,22 +3059,6 @@ void PrintConfigDef::init_sla_params() def->min = 0; def->set_default_value(new ConfigOptionFloat(10)); - def = this->add("min_initial_exposure_time", coFloat); - def->label = L("Minimum initial exposure time"); - def->tooltip = L("Minimum initial exposure time"); - def->sidetext = L("s"); - def->min = 0; - def->mode = comExpert; - def->set_default_value(new ConfigOptionFloat(0)); - - def = this->add("max_initial_exposure_time", coFloat); - def->label = L("Maximum initial exposure time"); - def->tooltip = L("Maximum initial exposure time"); - def->sidetext = L("s"); - def->min = 0; - def->mode = comExpert; - def->set_default_value(new ConfigOptionFloat(150)); - def = this->add("initial_exposure_time", coFloat); def->label = L("Initial exposure time"); def->tooltip = L("Initial exposure time"); @@ -3223,7 +3201,7 @@ void PrintConfigDef::init_sla_params() def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(1.0)); - + def = this->add("support_base_safety_distance", coFloat); def->label = L("Support base safety distance"); def->category = L("Supports"); @@ -3271,8 +3249,7 @@ void PrintConfigDef::init_sla_params() def->category = L("Supports"); def->tooltip = L("How much the supports should lift up the supported object. " "If this value is zero, the bottom of the model geometry " - "will be considered as part of the pad." - "If \"Pad around object\" is enabled, this value is ignored."); + "will be considered as part of the pad."); def->sidetext = L("mm"); def->min = 0; def->max = 150; // This is the max height of print on SL1 @@ -3339,14 +3316,14 @@ void PrintConfigDef::init_sla_params() def->set_default_value(new ConfigOptionFloat(50.0)); // This is disabled on the UI. I hope it will never be enabled. -// def = this->add("pad_edge_radius", coFloat); -// def->label = L("Pad edge radius"); -// def->category = L("Pad"); -//// def->tooltip = L(""); -// def->sidetext = L("mm"); -// def->min = 0; -// def->mode = comAdvanced; -// def->set_default_value(new ConfigOptionFloat(1.0)); + def = this->add("pad_edge_radius", coFloat); + def->label = L("Pad edge radius"); + def->category = L("Pad"); +// def->tooltip = L(""); + def->sidetext = L("mm"); + def->min = 0; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(1.0)); def = this->add("pad_wall_slope", coFloat); def->label = L("Pad wall slope"); @@ -3358,14 +3335,7 @@ void PrintConfigDef::init_sla_params() def->max = 90; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(45.0)); - - def = this->add("pad_around_object", coBool); - def->label = L("Pad around object"); - def->category = L("Pad"); - def->tooltip = L("Create pad around object and ignore the support elevation"); - def->mode = comSimple; - def->set_default_value(new ConfigOptionBool(false)); - + def = this->add("pad_object_gap", coFloat); def->label = L("Pad object gap"); def->category = L("Pad"); @@ -3376,25 +3346,27 @@ void PrintConfigDef::init_sla_params() def->max = 10; def->mode = comExpert; def->set_default_value(new ConfigOptionFloat(1)); - + def = this->add("pad_object_connector_stride", coFloat); def->label = L("Pad object connector stride"); def->category = L("Pad"); - def->tooltip = L("Distance between two connector sticks which connect the object and the generated pad."); + def->tooltip = L("Distance between two connector sticks between " + "the object pad and the generated pad."); def->sidetext = L("mm"); def->min = 0; def->mode = comExpert; def->set_default_value(new ConfigOptionFloat(10)); - + def = this->add("pad_object_connector_width", coFloat); def->label = L("Pad object connector width"); def->category = L("Pad"); - def->tooltip = L("Width of the connector sticks which connect the object and the generated pad."); + def->tooltip = L("The width of the connectors sticks which connect the " + "object pad and the generated pad."); def->sidetext = L("mm"); def->min = 0; def->mode = comExpert; def->set_default_value(new ConfigOptionFloat(0.5)); - + def = this->add("pad_object_connector_penetration", coFloat); def->label = L("Pad object connector penetration"); def->category = L("Pad"); @@ -3415,7 +3387,7 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va if (opt_key == "bottom_layer_speed") opt_key = "first_layer_speed"; try { float v = boost::lexical_cast(value); - if (v != 0) + if (v != 0) value = boost::lexical_cast(v*100) + "%"; } catch (boost::bad_lexical_cast &) { value = "0"; @@ -3455,14 +3427,14 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va } else if (opt_key == "octoprint_apikey") { opt_key = "printhost_apikey"; } - + // Ignore the following obsolete configuration keys: static std::set ignore = { "duplicate_x", "duplicate_y", "gcode_arcs", "multiply_x", "multiply_y", - "support_material_tool", "acceleration", "adjust_overhang_flow", + "support_material_tool", "acceleration", "adjust_overhang_flow", "standby_temperature", "scale", "rotate", "duplicate", "duplicate_grid", - "start_perimeters_at_concave_points", "start_perimeters_at_non_overhang", "randomize_start", - "seal_position", "vibration_limit", "bed_size", + "start_perimeters_at_concave_points", "start_perimeters_at_non_overhang", "randomize_start", + "seal_position", "vibration_limit", "bed_size", "print_center", "g0", "threads", "pressure_advance", "wipe_tower_per_color_wipe" #ifndef HAS_PRESSURE_EQUALIZER , "max_volumetric_extrusion_rate_slope_positive", "max_volumetric_extrusion_rate_slope_negative" @@ -3473,7 +3445,7 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va opt_key = ""; return; } - + if (! print_config_def.has(opt_key)) { opt_key = ""; return; @@ -3513,10 +3485,10 @@ void DynamicPrintConfig::normalize() // this->option("support_material_interface_extruder", true)->setInt(extruder); } } - + if (!this->has("solid_infill_extruder") && this->has("infill_extruder")) this->option("solid_infill_extruder", true)->setInt(this->option("infill_extruder")->getInt()); - + if (this->has("spiral_vase") && this->opt("spiral_vase", true)->value) { { // this should be actually done only on the spiral layers instead of all @@ -3563,24 +3535,23 @@ double PrintConfig::min_object_distance() const double PrintConfig::min_object_distance(const ConfigBase *config) { - double duplicate_distance = config->option("duplicate_distance")->getFloat(); - double base_dist = duplicate_distance; - if (config->option("complete_objects")->getBool()) { + double base_dist = 0; + if (config->option("complete_objects")->getBool()){ std::vector vals = dynamic_cast(config->option("nozzle_diameter"))->values; double max_nozzle_diam = 0; for (double val : vals) max_nozzle_diam = std::fmax(max_nozzle_diam, val); // min object distance is max(duplicate_distance, clearance_radius) double extruder_clearance_radius = config->option("extruder_clearance_radius")->getFloat(); - if (extruder_clearance_radius > base_dist) { + if (extruder_clearance_radius > base_dist){ base_dist = extruder_clearance_radius; } //add brim width - if (config->option("brim_width")->getFloat() > 0) { + if (config->option("brim_width")->getFloat() > 0){ base_dist += config->option("brim_width")->getFloat() * 2; } //add the skirt - if (config->option("skirts")->getInt() > 0) { + if (config->option("skirts")->getInt() > 0){ //add skirt dist double dist_skirt = config->option("skirt_distance")->getFloat(); if (dist_skirt > config->option("brim_width")->getFloat()) @@ -3614,7 +3585,7 @@ std::string FullPrintConfig::validate() for (double nd : this->nozzle_diameter.values) if (nd < 0.005) return "Invalid value for --nozzle-diameter"; - + // --perimeters if (this->perimeters.value < 0) return "Invalid value for --perimeters"; @@ -3624,8 +3595,8 @@ std::string FullPrintConfig::validate() return "Invalid value for --top-solid-layers"; if (this->bottom_solid_layers < 0) return "Invalid value for --bottom-solid-layers"; - - if (this->use_firmware_retraction.value && + + if (this->use_firmware_retraction.value && this->gcode_flavor.value != gcfSmoothie && this->gcode_flavor.value != gcfRepRap && this->gcode_flavor.value != gcfMarlin && @@ -3637,11 +3608,11 @@ std::string FullPrintConfig::validate() for (unsigned char wipe : this->wipe.values) if (wipe) return "--use-firmware-retraction is not compatible with --wipe"; - + // --gcode-flavor if (! print_config_def.get("gcode_flavor")->has_enum_value(this->gcode_flavor.serialize())) return "Invalid value for --gcode-flavor"; - + // --fill-pattern if (! print_config_def.get("fill_pattern")->has_enum_value(this->fill_pattern.serialize())) return "Invalid value for --fill-pattern"; @@ -3664,7 +3635,7 @@ std::string FullPrintConfig::validate() || ! print_config_def.get("bottom_fill_pattern")->has_enum_value(this->fill_pattern.serialize()) )) return "The selected fill pattern is not supposed to work at 100% density"; - + // --infill-every-layers if (this->infill_every_layers < 1) return "Invalid value for --infill-every-layers"; @@ -3672,7 +3643,7 @@ std::string FullPrintConfig::validate() // --skirt-height if (this->skirt_height < -1) // -1 means as tall as the object return "Invalid value for --skirt-height"; - + // --bridge-flow-ratio if (this->bridge_flow_ratio <= 0) return "Invalid value for --bridge-flow-ratio"; @@ -3680,6 +3651,14 @@ std::string FullPrintConfig::validate() // --over-bridge-flow-ratio if (this->over_bridge_flow_ratio <= 0) return "Invalid value for --over-bridge-flow-ratio"; + + // --over-bridge-flow-ratio + if (this->top_infill_flow_ratio <= 0) + return "Invalid value for --top-infill-flow-ratio"; + + // --over-bridge-flow-ratio + if (this->ironing_flow_ratio <= 0) + return "Invalid value for --ironing-flow-ratio"; // extruder clearance if (this->extruder_clearance_radius <= 0) @@ -3716,7 +3695,7 @@ std::string FullPrintConfig::validate() if (this->extra_perimeters) return "Can't make more than one perimeter when spiral vase mode is enabled"; } - + // extrusion widths { double max_nozzle_diameter = 0.; @@ -3773,7 +3752,7 @@ std::string FullPrintConfig::validate() if (out_of_range) return std::string("Value out of range: " + opt_key); } - + // The configuration is valid. return ""; } @@ -3796,13 +3775,13 @@ StaticPrintConfig::StaticCache SLAFullPrint CLIActionsConfigDef::CLIActionsConfigDef() { ConfigOptionDef* def; - + // Actions: def = this->add("export_obj", coBool); def->label = L("Export OBJ"); def->tooltip = L("Export the model(s) as OBJ."); def->set_default_value(new ConfigOptionBool(false)); - + /* def = this->add("export_svg", coBool); def->label = L("Export SVG"); @@ -3810,7 +3789,7 @@ CLIActionsConfigDef::CLIActionsConfigDef() def->set_default_value(new ConfigOptionBool(false); def->set_default_value(new ConfigOptionBool(false)); */ - + def = this->add("export_sla", coBool); def->label = L("Export SLA"); def->tooltip = L("Slice the model and export SLA printing layers as PNG."); @@ -3859,12 +3838,12 @@ CLIActionsConfigDef::CLIActionsConfigDef() def->label = L("Help (SLA options)"); def->tooltip = L("Show the full list of SLA print configuration options."); def->set_default_value(new ConfigOptionBool(false)); - + def = this->add("info", coBool); def->label = L("Output Model Info"); def->tooltip = L("Write information about the model to the console."); def->set_default_value(new ConfigOptionBool(false)); - + def = this->add("save", coString); def->label = L("Save config file"); def->tooltip = L("Save configuration to the specified file."); @@ -3874,38 +3853,38 @@ CLIActionsConfigDef::CLIActionsConfigDef() CLITransformConfigDef::CLITransformConfigDef() { ConfigOptionDef* def; - + // Transform options: def = this->add("align_xy", coPoint); def->label = L("Align XY"); def->tooltip = L("Align the model to the given point."); def->set_default_value(new ConfigOptionPoint(Vec2d(100,100))); - + def = this->add("cut", coFloat); def->label = L("Cut"); def->tooltip = L("Cut model at the given Z."); def->set_default_value(new ConfigOptionFloat(0)); - + /* def = this->add("cut_grid", coFloat); def->label = L("Cut"); def->tooltip = L("Cut model in the XY plane into tiles of the specified max size."); def->set_default_value(new ConfigOptionPoint(); def->set_default_value(new ConfigOptionPoint()); - + def = this->add("cut_x", coFloat); def->label = L("Cut"); def->tooltip = L("Cut model at the given X."); def->set_default_value(new ConfigOptionFloat(0); def->set_default_value(new ConfigOptionFloat(0)); - + def = this->add("cut_y", coFloat); def->label = L("Cut"); def->tooltip = L("Cut model at the given Y."); def->set_default_value(new ConfigOptionFloat(0); def->set_default_value(new ConfigOptionFloat(0)); */ - + def = this->add("center", coPoint); def->label = L("Center"); def->tooltip = L("Center the print around the given center."); @@ -3914,12 +3893,12 @@ CLITransformConfigDef::CLITransformConfigDef() def = this->add("dont_arrange", coBool); def->label = L("Don't arrange"); def->tooltip = L("Do not rearrange the given models before merging and keep their original XY coordinates."); - + def = this->add("duplicate", coInt); def->label = L("Duplicate"); def->tooltip =L("Multiply copies by this factor."); def->min = 1; - + def = this->add("duplicate_grid", coPoint); def->label = L("Duplicate by grid"); def->tooltip = L("Multiply copies by creating a grid."); @@ -3932,22 +3911,22 @@ CLITransformConfigDef::CLITransformConfigDef() def = this->add("repair", coBool); def->label = L("Repair"); def->tooltip = L("Try to repair any non-manifold meshes (this option is implicitly added whenever we need to slice the model to perform the requested action)."); - + def = this->add("rotate", coFloat); def->label = L("Rotate"); def->tooltip = L("Rotation angle around the Z axis in degrees."); def->set_default_value(new ConfigOptionFloat(0)); - + def = this->add("rotate_x", coFloat); def->label = L("Rotate around X"); def->tooltip = L("Rotation angle around the X axis in degrees."); def->set_default_value(new ConfigOptionFloat(0)); - + def = this->add("rotate_y", coFloat); def->label = L("Rotate around Y"); def->tooltip = L("Rotation angle around the Y axis in degrees."); def->set_default_value(new ConfigOptionFloat(0)); - + def = this->add("scale", coFloatOrPercent); def->label = L("Scale"); def->tooltip = L("Scaling factor or percentage."); @@ -3956,7 +3935,7 @@ CLITransformConfigDef::CLITransformConfigDef() def = this->add("split", coBool); def->label = L("Split"); def->tooltip = L("Detect unconnected parts in the given model(s) and split them into separate objects."); - + def = this->add("scale_to_fit", coPoint3); def->label = L("Scale to Fit"); def->tooltip = L("Scale to fit the given volume."); @@ -3966,26 +3945,26 @@ CLITransformConfigDef::CLITransformConfigDef() CLIMiscConfigDef::CLIMiscConfigDef() { ConfigOptionDef* def; - + def = this->add("ignore_nonexistent_config", coBool); def->label = L("Ignore non-existent config files"); def->tooltip = L("Do not fail if a file supplied to --load does not exist."); - + def = this->add("load", coStrings); def->label = L("Load config file"); def->tooltip = L("Load configuration from the specified file. It can be used more than once to load options from multiple files."); - + def = this->add("output", coString); def->label = L("Output File"); def->tooltip = L("The file where the output will be written (if not specified, it will be based on the input file)."); def->cli = "output|o"; -/* +/* def = this->add("autosave", coString); def->label = L("Autosave"); def->tooltip = L("Automatically export current configuration to the specified file."); */ - + def = this->add("datadir", coString); def->label = L("Data directory"); def->tooltip = L("Load and store settings at the given directory. This is useful for maintaining different profiles or including configurations from a network storage."); @@ -3995,7 +3974,7 @@ CLIMiscConfigDef::CLIMiscConfigDef() def->tooltip = L("Messages with severity lower or eqal to the loglevel will be printed out. 0:trace, 1:debug, 2:info, 3:warning, 4:error, 5:fatal"); def->min = 0; -#if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(SLIC3R_GUI) +#if defined(_MSC_VER) && defined(SLIC3R_GUI) def = this->add("sw_renderer", coBool); def->label = L("Render with a software renderer"); def->tooltip = L("Render with a software renderer. The bundled MESA software renderer is loaded instead of the default OpenGL driver."); @@ -4011,15 +3990,15 @@ DynamicPrintAndCLIConfig::PrintAndCLIConfigDef DynamicPrintAndCLIConfig::s_def; void DynamicPrintAndCLIConfig::handle_legacy(t_config_option_key &opt_key, std::string &value) const { - if (cli_actions_config_def .options.find(opt_key) == cli_actions_config_def .options.end() && - cli_transform_config_def.options.find(opt_key) == cli_transform_config_def.options.end() && - cli_misc_config_def .options.find(opt_key) == cli_misc_config_def .options.end()) { - PrintConfigDef::handle_legacy(opt_key, value); - } + if (cli_actions_config_def .options.find(opt_key) == cli_actions_config_def .options.end() && + cli_transform_config_def.options.find(opt_key) == cli_transform_config_def.options.end() && + cli_misc_config_def .options.find(opt_key) == cli_misc_config_def .options.end()) { + PrintConfigDef::handle_legacy(opt_key, value); + } } } #include CEREAL_REGISTER_TYPE(Slic3r::DynamicPrintConfig) -CEREAL_REGISTER_POLYMORPHIC_RELATION(Slic3r::DynamicConfig, Slic3r::DynamicPrintConfig) +CEREAL_REGISTER_POLYMORPHIC_RELATION(Slic3r::DynamicConfig, Slic3r::DynamicPrintConfig) diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 77cc9bb3872..8a625271059 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -6,23 +6,12 @@ // // The classes derived from StaticPrintConfig form a following hierarchy. // -// class ConfigBase -// class StaticConfig : public virtual ConfigBase -// class StaticPrintConfig : public StaticConfig -// class PrintObjectConfig : public StaticPrintConfig -// class PrintRegionConfig : public StaticPrintConfig -// class HostConfig : public StaticPrintConfig -// class MachineEnvelopeConfig : public StaticPrintConfig -// class GCodeConfig : public StaticPrintConfig -// class PrintConfig : public MachineEnvelopeConfig, public GCodeConfig -// class FullPrintConfig : PrintObjectConfig,PrintRegionConfig,PrintConfig,HostConfig -// class SLAPrintObjectConfig : public StaticPrintConfig -// class SLAMaterialConfig : public StaticPrintConfig -// class SLAPrinterConfig : public StaticPrintConfig -// class DynamicConfig : public virtual ConfigBase -// class DynamicPrintConfig : public DynamicConfig -// class DynamicPrintAndCLIConfig : public DynamicPrintConfig -// +// FullPrintConfig +// PrintObjectConfig +// PrintRegionConfig +// PrintConfig +// GCodeConfig +// HostConfig // #ifndef slic3r_PrintConfig_hpp_ @@ -41,7 +30,7 @@ enum WipeAlgo { waHyper, }; -enum GCodeFlavor : unsigned char { +enum GCodeFlavor { gcfRepRap, gcfRepetier, gcfTeacup, gcfMakerWare, gcfMarlin, gcfSailfish, gcfMach3, gcfMachinekit, gcfSmoothie, gcfNoExtrusion, }; @@ -53,7 +42,7 @@ enum PrintHostType { enum InfillPattern { ipRectilinear, ipGrid, ipTriangles, ipStars, ipCubic, ipLine, ipConcentric, ipHoneycomb, ip3DHoneycomb, ipGyroid, ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral, ipSmooth, ipSmoothHilbert, ipSmoothTriple, - ipRectiWithPerimeter, ipConcentricGapFill, ipScatteredRectilinear, ipSawtooth, ipRectilinearWGapFill, ipCount + ipRectiWithPerimeter, ipConcentricGapFill, ipScatteredRectilinear, ipSawtooth, ipRectilinearWGapFill }; enum SupportMaterialPattern { @@ -573,6 +562,8 @@ class PrintRegionConfig : public StaticPrintConfig ConfigOptionInt bottom_solid_layers; ConfigOptionFloat bridge_flow_ratio; ConfigOptionFloat over_bridge_flow_ratio; + ConfigOptionFloat top_infill_flow_ratio; + ConfigOptionFloat ironing_flow_ratio; ConfigOptionEnum bottom_fill_pattern; ConfigOptionFloatOrPercent bridged_infill_margin; ConfigOptionFloat bridge_speed; @@ -586,13 +577,14 @@ class PrintRegionConfig : public StaticPrintConfig ConfigOptionFloatOrPercent external_perimeter_extrusion_width; ConfigOptionFloatOrPercent external_perimeter_speed; ConfigOptionBool external_perimeters_first; + ConfigOptionBool perimeter_loop; + ConfigOptionEnum perimeter_loop_seam; ConfigOptionBool extra_perimeters; ConfigOptionBool only_one_perimeter_top; ConfigOptionFloat fill_angle; ConfigOptionPercent fill_density; ConfigOptionEnum fill_pattern; ConfigOptionBool gap_fill; - ConfigOptionFloatOrPercent gap_fill_min_area; ConfigOptionFloat gap_fill_speed; ConfigOptionInt infill_extruder; ConfigOptionFloatOrPercent infill_extrusion_width; @@ -608,8 +600,6 @@ class PrintRegionConfig : public StaticPrintConfig ConfigOptionEnum no_perimeter_unsupported_algo; ConfigOptionInt perimeter_extruder; ConfigOptionFloatOrPercent perimeter_extrusion_width; - ConfigOptionBool perimeter_loop; - ConfigOptionEnum perimeter_loop_seam; ConfigOptionFloat perimeter_speed; // Total number of perimeters. ConfigOptionInt perimeters; @@ -637,6 +627,8 @@ class PrintRegionConfig : public StaticPrintConfig OPT_PTR(bottom_solid_layers); OPT_PTR(bridge_flow_ratio); OPT_PTR(over_bridge_flow_ratio); + OPT_PTR(top_infill_flow_ratio); + OPT_PTR(ironing_flow_ratio); OPT_PTR(bottom_fill_pattern); OPT_PTR(bridged_infill_margin); OPT_PTR(bridge_speed); @@ -650,13 +642,14 @@ class PrintRegionConfig : public StaticPrintConfig OPT_PTR(external_perimeter_extrusion_width); OPT_PTR(external_perimeter_speed); OPT_PTR(external_perimeters_first); + OPT_PTR(perimeter_loop); + OPT_PTR(perimeter_loop_seam); OPT_PTR(extra_perimeters); OPT_PTR(only_one_perimeter_top); OPT_PTR(fill_angle); OPT_PTR(fill_density); OPT_PTR(fill_pattern); OPT_PTR(gap_fill); - OPT_PTR(gap_fill_min_area); OPT_PTR(gap_fill_speed); OPT_PTR(infill_extruder); OPT_PTR(infill_extrusion_width); @@ -671,8 +664,6 @@ class PrintRegionConfig : public StaticPrintConfig OPT_PTR(no_perimeter_unsupported_algo); OPT_PTR(perimeter_extruder); OPT_PTR(perimeter_extrusion_width); - OPT_PTR(perimeter_loop); - OPT_PTR(perimeter_loop_seam); OPT_PTR(perimeter_speed); OPT_PTR(perimeters); OPT_PTR(small_perimeter_speed); @@ -904,7 +895,7 @@ class GCodeConfig : public StaticPrintConfig class PrintConfig : public MachineEnvelopeConfig, public GCodeConfig { STATIC_PRINT_CONFIG_CACHE_DERIVED(PrintConfig) - PrintConfig() : MachineEnvelopeConfig(0), GCodeConfig(0) { initialize_cache(); *this = s_cache_PrintConfig.defaults(); } + PrintConfig() : MachineEnvelopeConfig(0), GCodeConfig(0) { initialize_cache(); *this = s_cache_PrintConfig.defaults(); } public: double min_object_distance() const; static double min_object_distance(const ConfigBase *config); @@ -980,7 +971,7 @@ class PrintConfig : public MachineEnvelopeConfig, public GCodeConfig ConfigOptionFloat z_offset; protected: - PrintConfig(int) : MachineEnvelopeConfig(1), GCodeConfig(1) {} + PrintConfig(int) : MachineEnvelopeConfig(1), GCodeConfig(1) {} void initialize(StaticCacheBase &cache, const char *base_ptr) { this->MachineEnvelopeConfig::initialize(cache, base_ptr); @@ -1163,7 +1154,7 @@ class SLAPrintObjectConfig : public StaticPrintConfig // The height of the pillar base cone in mm. ConfigOptionFloat support_base_height /*= 1.0*/; - + // The minimum distance of the pillar base from the model in mm. ConfigOptionFloat support_base_safety_distance; /*= 1.0*/; @@ -1179,7 +1170,7 @@ class SLAPrintObjectConfig : public StaticPrintConfig // The elevation in Z direction upwards. This is the space between the pad // and the model object's bounding box bottom. Units in mm. ConfigOptionFloat support_object_elevation /*= 5.0*/; - + /////// Following options influence automatic support points placement: ConfigOptionInt support_points_density_relative; ConfigOptionFloat support_points_minimal_distance; @@ -1200,11 +1191,11 @@ class SLAPrintObjectConfig : public StaticPrintConfig ConfigOptionFloat pad_max_merge_distance /*= 50*/; // The smoothing radius of the pad edges - // ConfigOptionFloat pad_edge_radius /*= 1*/; + ConfigOptionFloat pad_edge_radius /*= 1*/; // The slope of the pad wall... ConfigOptionFloat pad_wall_slope; - + // ///////////////////////////////////////////////////////////////////////// // Zero elevation mode parameters: // - The object pad will be derived from the the model geometry. @@ -1212,19 +1203,16 @@ class SLAPrintObjectConfig : public StaticPrintConfig // according to the support_base_safety_distance parameter. // - The two pads will be connected with tiny connector sticks // ///////////////////////////////////////////////////////////////////////// - - // Disable the elevation (ignore its value) and use the zero elevation mode - ConfigOptionBool pad_around_object; - + // This is the gap between the object bottom and the generated pad ConfigOptionFloat pad_object_gap; - + // How far to place the connector sticks on the object pad perimeter ConfigOptionFloat pad_object_connector_stride; - + // The width of the connectors sticks ConfigOptionFloat pad_object_connector_width; - + // How much should the tiny connectors penetrate into the model body ConfigOptionFloat pad_object_connector_penetration; @@ -1255,9 +1243,8 @@ class SLAPrintObjectConfig : public StaticPrintConfig OPT_PTR(pad_wall_thickness); OPT_PTR(pad_wall_height); OPT_PTR(pad_max_merge_distance); - // OPT_PTR(pad_edge_radius); + OPT_PTR(pad_edge_radius); OPT_PTR(pad_wall_slope); - OPT_PTR(pad_around_object); OPT_PTR(pad_object_gap); OPT_PTR(pad_object_connector_stride); OPT_PTR(pad_object_connector_width); @@ -1303,10 +1290,6 @@ class SLAPrinterConfig : public StaticPrintConfig ConfigOptionFloat fast_tilt_time; ConfigOptionFloat slow_tilt_time; ConfigOptionFloat area_fill; - ConfigOptionFloat min_exposure_time; - ConfigOptionFloat max_exposure_time; - ConfigOptionFloat min_initial_exposure_time; - ConfigOptionFloat max_initial_exposure_time; protected: void initialize(StaticCacheBase &cache, const char *base_ptr) { @@ -1326,10 +1309,6 @@ class SLAPrinterConfig : public StaticPrintConfig OPT_PTR(fast_tilt_time); OPT_PTR(slow_tilt_time); OPT_PTR(area_fill); - OPT_PTR(min_exposure_time); - OPT_PTR(max_exposure_time); - OPT_PTR(min_initial_exposure_time); - OPT_PTR(max_initial_exposure_time); } }; @@ -1389,8 +1368,8 @@ extern const CLIMiscConfigDef cli_misc_config_def; class DynamicPrintAndCLIConfig : public DynamicPrintConfig { public: - DynamicPrintAndCLIConfig() {} - DynamicPrintAndCLIConfig(const DynamicPrintAndCLIConfig &other) : DynamicPrintConfig(other) {} + DynamicPrintAndCLIConfig() {} + DynamicPrintAndCLIConfig(const DynamicPrintAndCLIConfig &other) : DynamicPrintConfig(other) {} // Overrides ConfigBase::def(). Static configuration definition. Any value stored into this ConfigBase shall have its definition here. const ConfigDef* def() const override { return &s_def; } @@ -1411,7 +1390,7 @@ class DynamicPrintAndCLIConfig : public DynamicPrintConfig this->options.insert(cli_transform_config_def.options.begin(), cli_transform_config_def.options.end()); this->options.insert(cli_misc_config_def.options.begin(), cli_misc_config_def.options.end()); for (const auto &kvp : this->options) - this->by_serialization_key_ordinal[kvp.second.serialization_key_ordinal] = &kvp.second; + this->by_serialization_key_ordinal[kvp.second.serialization_key_ordinal] = &kvp.second; } // Do not release the default values, they are handled by print_config_def & cli_actions_config_def / cli_transform_config_def / cli_misc_config_def. ~PrintAndCLIConfigDef() { this->options.clear(); } @@ -1423,36 +1402,36 @@ class DynamicPrintAndCLIConfig : public DynamicPrintConfig // Serialization through the Cereal library namespace cereal { - // Let cereal know that there are load / save non-member functions declared for DynamicPrintConfig, ignore serialize / load / save from parent class DynamicConfig. - template struct specialize {}; - - template void load(Archive& archive, Slic3r::DynamicPrintConfig &config) - { - size_t cnt; - archive(cnt); - config.clear(); - for (size_t i = 0; i < cnt; ++ i) { - size_t serialization_key_ordinal; - archive(serialization_key_ordinal); - assert(serialization_key_ordinal > 0); - auto it = Slic3r::print_config_def.by_serialization_key_ordinal.find(serialization_key_ordinal); - assert(it != Slic3r::print_config_def.by_serialization_key_ordinal.end()); - config.set_key_value(it->second->opt_key, it->second->load_option_from_archive(archive)); - } - } - - template void save(Archive& archive, const Slic3r::DynamicPrintConfig &config) - { - size_t cnt = config.size(); - archive(cnt); - for (auto it = config.cbegin(); it != config.cend(); ++it) { - const Slic3r::ConfigOptionDef* optdef = Slic3r::print_config_def.get(it->first); - assert(optdef != nullptr); - assert(optdef->serialization_key_ordinal > 0); - archive(optdef->serialization_key_ordinal); - optdef->save_option_to_archive(archive, it->second.get()); - } - } + // Let cereal know that there are load / save non-member functions declared for DynamicPrintConfig, ignore serialize / load / save from parent class DynamicConfig. + template struct specialize {}; + + template void load(Archive& archive, Slic3r::DynamicPrintConfig &config) + { + size_t cnt; + archive(cnt); + config.clear(); + for (size_t i = 0; i < cnt; ++ i) { + size_t serialization_key_ordinal; + archive(serialization_key_ordinal); + assert(serialization_key_ordinal > 0); + auto it = Slic3r::print_config_def.by_serialization_key_ordinal.find(serialization_key_ordinal); + assert(it != Slic3r::print_config_def.by_serialization_key_ordinal.end()); + config.set_key_value(it->second->opt_key, it->second->load_option_from_archive(archive)); + } + } + + template void save(Archive& archive, const Slic3r::DynamicPrintConfig &config) + { + size_t cnt = config.size(); + archive(cnt); + for (auto it = config.cbegin(); it != config.cend(); ++it) { + const Slic3r::ConfigOptionDef* optdef = Slic3r::print_config_def.get(it->first); + assert(optdef != nullptr); + assert(optdef->serialization_key_ordinal > 0); + archive(optdef->serialization_key_ordinal); + optdef->save_option_to_archive(archive, it->second.get()); + } + } } #endif diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 4aa23561b0f..725ee5025a2 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -105,6 +105,7 @@ PrintBase::ApplyStatus PrintObject::set_copies(const Points &points) // this should be idempotent void PrintObject::slice() { + if (! this->set_started(posSlice)) return; m_print->set_status(10, L("Processing triangulated mesh")); @@ -161,7 +162,7 @@ void PrintObject::make_perimeters() const PrintRegion ®ion = *m_print->regions()[region_id]; if (! region.config().extra_perimeters || region.config().perimeters == 0 || region.config().fill_density == 0 || this->layer_count() < 2) continue; - + BOOST_LOG_TRIVIAL(debug) << "Generating extra perimeters for region " << region_id << " in parallel - start"; tbb::parallel_for( tbb::blocked_range(0, m_layers.size() - 1), @@ -258,8 +259,8 @@ void PrintObject::prepare_infill() m_print->throw_if_canceled(); // Decide what surfaces are to be filled. - // Here the stTop / stBottomBridge / stBottom infill is turned to just stInternal if zero top / bottom infill layers are configured. - // Also tiny stInternal surfaces are turned to stInternalSolid. + // Here the S_TYPE_TOP / S_TYPE_BOTTOMBRIDGE / S_TYPE_BOTTOM infill is turned to just S_TYPE_INTERNAL if zero top / bottom infill layers are configured. + // Also tiny S_TYPE_INTERNAL surfaces are turned to S_TYPE_INTERNAL_SOLID. BOOST_LOG_TRIVIAL(info) << "Preparing fill surfaces..." << log_memory_info(); for (auto *layer : m_layers) for (auto *region : layer->m_regions) { @@ -271,8 +272,8 @@ void PrintObject::prepare_infill() // and rearrange top/bottom/internal surfaces // It produces enlarged overlapping bridging areas. // - // 1) stBottomBridge / stBottom infill is grown by 3mm and clipped by the total infill area. Bridges are detected. The areas may overlap. - // 2) stTop is grown by 3mm and clipped by the grown bottom areas. The areas may overlap. + // 1) S_TYPE_BOTTOMBRIDGE / S_TYPE_BOTTOM infill is grown by 3mm and clipped by the total infill area. Bridges are detected. The areas may overlap. + // 2) S_TYPE_TOP is grown by 3mm and clipped by the grown bottom areas. The areas may overlap. // 3) Clip the internal surfaces by the grown top/bottom surfaces. // 4) Merge surfaces with the same style. This will mostly get rid of the overlaps. //FIXME This does not likely merge surfaces, which are supported by a material with different colors, but same properties. @@ -334,6 +335,7 @@ void PrintObject::prepare_infill() // the following step needs to be done before combination because it may need // to remove only half of the combined infill + //if (this->) this->bridge_over_infill(); m_print->throw_if_canceled(); this->replaceSurfaceType(stPosInternal | stDensSolid, @@ -386,19 +388,15 @@ void PrintObject::infill() if (this->set_started(posInfill)) { BOOST_LOG_TRIVIAL(debug) << "Filling layers in parallel - start"; - tbb::parallel_for( - tbb::blocked_range(0, m_layers.size()), - [this](const tbb::blocked_range& range) { - for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++ layer_idx) { - m_print->throw_if_canceled(); - m_layers[layer_idx]->make_fills(); - } - } - ); - //for (size_t layer_idx = 0; layer_idx < m_layers.size(); ++ layer_idx) { - // m_print->throw_if_canceled(); - // m_layers[layer_idx]->make_fills(); - //} + tbb::parallel_for( + tbb::blocked_range(0, m_layers.size()), + [this](const tbb::blocked_range& range) { + for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++ layer_idx) { + m_print->throw_if_canceled(); + m_layers[layer_idx]->make_fills(); + } + } + ); m_print->throw_if_canceled(); BOOST_LOG_TRIVIAL(debug) << "Filling layers in parallel - end"; /* we could free memory now, but this would make this step not idempotent @@ -501,17 +499,9 @@ bool PrintObject::invalidate_state_by_config_options(const std::vector 0.) { - // Only invalidate due to bridging if bridging is enabled. - // If later "support_material_contact_distance" is modified, the complete PrintObject is invalidated anyway. - steps.emplace_back(posPerimeters); - steps.emplace_back(posInfill); - steps.emplace_back(posSupportMaterial); - //} + steps.emplace_back(posPerimeters); + steps.emplace_back(posInfill); } else if ( opt_key == "seam_position" || opt_key == "seam_travel" @@ -644,12 +629,12 @@ bool PrintObject::invalidate_step(PrintObjectStep step) bool PrintObject::invalidate_all_steps() { - // First call the "invalidate" functions, which may cancel background processing. + // First call the "invalidate" functions, which may cancel background processing. bool result = Inherited::invalidate_all_steps() | m_print->invalidate_all_steps(); - // Then reset some of the depending values. - this->m_slicing_params.valid = false; - this->region_volumes.clear(); - return result; + // Then reset some of the depending values. + this->m_slicing_params.valid = false; + this->region_volumes.clear(); + return result; } bool PrintObject::has_support_material() const @@ -1082,73 +1067,15 @@ void PrintObject::process_external_surfaces() { BOOST_LOG_TRIVIAL(info) << "Processing external surfaces..." << log_memory_info(); - // Cached surfaces covered by some extrusion, defining regions, over which the from the surfaces one layer higher are allowed to expand. - std::vector surfaces_covered; - // Is there any printing region, that has zero infill? If so, then we don't want the expansion to be performed over the complete voids, but only - // over voids, which are supported by the layer below. - bool has_voids = false; - for (size_t region_id = 0; region_id < this->region_volumes.size(); ++ region_id) - if (! this->region_volumes.empty() && this->print()->regions()[region_id]->config().fill_density == 0) { - has_voids = true; - break; - } - if (has_voids && m_layers.size() > 1) { - // All but stInternal-sparse fill surfaces will get expanded and possibly trimmed. - std::vector layer_expansions_and_voids(m_layers.size(), false); - for (size_t layer_idx = 0; layer_idx < m_layers.size(); ++ layer_idx) { - const Layer *layer = m_layers[layer_idx]; - bool expansions = false; - bool voids = false; - for (const LayerRegion *layerm : layer->regions()) { - for (const Surface &surface : layerm->fill_surfaces.surfaces) { - if (surface.surface_type == (stPosInternal | stDensSparse)) - voids = true; - else - expansions = true; - if (voids && expansions) { - layer_expansions_and_voids[layer_idx] = true; - goto end; - } - } - } - end:; - } - BOOST_LOG_TRIVIAL(debug) << "Collecting surfaces covered with extrusions in parallel - start"; - surfaces_covered.resize(m_layers.size() - 1, Polygons()); - tbb::parallel_for( - tbb::blocked_range(0, m_layers.size() - 1), - [this, &surfaces_covered, &layer_expansions_and_voids](const tbb::blocked_range& range) { - for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++ layer_idx) - if (layer_expansions_and_voids[layer_idx + 1]) { - m_print->throw_if_canceled(); - Polygons voids; - for (const LayerRegion *layerm : m_layers[layer_idx]->regions()) { - /// supermerill: why *0.3 ??? - float unsupported_width = -float(scale_(0.3 * layerm->region()->config().external_infill_margin)); - if (layerm->region()->config().fill_density.value == 0.) - for (const Surface &surface : layerm->fill_surfaces.surfaces) - // Shrink the holes, let the layer above expand slightly inside the unsupported areas. - polygons_append(voids, offset(surface.expolygon, unsupported_width)); - } - surfaces_covered[layer_idx] = diff(to_polygons(this->m_layers[layer_idx]->slices.expolygons), voids); - } - } - ); - m_print->throw_if_canceled(); - BOOST_LOG_TRIVIAL(debug) << "Collecting surfaces covered with extrusions in parallel - end"; - } - for (size_t region_id = 0; region_id < this->region_volumes.size(); ++region_id) { BOOST_LOG_TRIVIAL(debug) << "Processing external surfaces for region " << region_id << " in parallel - start"; tbb::parallel_for( tbb::blocked_range(0, m_layers.size()), - [this, &surfaces_covered, region_id](const tbb::blocked_range& range) { + [this, region_id](const tbb::blocked_range& range) { for (size_t layer_idx = range.begin(); layer_idx < range.end(); ++ layer_idx) { m_print->throw_if_canceled(); // BOOST_LOG_TRIVIAL(trace) << "Processing external surface, layer" << m_layers[layer_idx]->print_z; - m_layers[layer_idx]->get_region((int)region_id)->process_external_surfaces( - (layer_idx == 0) ? nullptr : m_layers[layer_idx - 1], - (layer_idx == 0 || surfaces_covered.empty() || surfaces_covered[layer_idx - 1].empty()) ? nullptr : &surfaces_covered[layer_idx - 1]); + m_layers[layer_idx]->get_region((int)region_id)->process_external_surfaces((layer_idx == 0) ? NULL : m_layers[layer_idx - 1]); } } ); @@ -1646,7 +1573,7 @@ void PrintObject::bridge_over_infill() )}; push @new_surfaces, map Slic3r::Surface->new( expolygon => $_, - surface_type => stInternalVoid, + surface_type => S_TYPE_INTERNALVOID, ), @{intersection_ex( [ map $_->p, @$group ], [ map @$_, @$to_bridge ], @@ -1758,7 +1685,7 @@ PrintRegionConfig PrintObject::region_config_from_model_volume(const PrintRegion PrintRegionConfig config = default_region_config; normalize_and_apply_config(config, volume.get_object()->config); if (layer_range_config != nullptr) - normalize_and_apply_config(config, *layer_range_config); + normalize_and_apply_config(config, *layer_range_config); normalize_and_apply_config(config, volume.config); if (! volume.material_id().empty()) normalize_and_apply_config(config, volume.material()->config); @@ -1778,36 +1705,36 @@ void PrintObject::update_slicing_parameters() SlicingParameters PrintObject::slicing_parameters(const DynamicPrintConfig& full_config, const ModelObject& model_object, float object_max_z) { - PrintConfig print_config; - PrintObjectConfig object_config; - PrintRegionConfig default_region_config; - print_config.apply(full_config, true); - object_config.apply(full_config, true); - default_region_config.apply(full_config, true); - size_t num_extruders = print_config.nozzle_diameter.size(); - object_config = object_config_from_model_object(object_config, model_object, num_extruders); - - std::vector object_extruders; - for (const ModelVolume* model_volume : model_object.volumes) - if (model_volume->is_model_part()) { - PrintRegion::collect_object_printing_extruders( - print_config, - region_config_from_model_volume(default_region_config, nullptr, *model_volume, num_extruders), - object_extruders); - for (const std::pair &range_and_config : model_object.layer_config_ranges) - if (range_and_config.second.has("perimeter_extruder") || - range_and_config.second.has("infill_extruder") || - range_and_config.second.has("solid_infill_extruder")) - PrintRegion::collect_object_printing_extruders( - print_config, - region_config_from_model_volume(default_region_config, &range_and_config.second, *model_volume, num_extruders), - object_extruders); - } + PrintConfig print_config; + PrintObjectConfig object_config; + PrintRegionConfig default_region_config; + print_config.apply(full_config, true); + object_config.apply(full_config, true); + default_region_config.apply(full_config, true); + size_t num_extruders = print_config.nozzle_diameter.size(); + object_config = object_config_from_model_object(object_config, model_object, num_extruders); + + std::vector object_extruders; + for (const ModelVolume* model_volume : model_object.volumes) + if (model_volume->is_model_part()) { + PrintRegion::collect_object_printing_extruders( + print_config, + region_config_from_model_volume(default_region_config, nullptr, *model_volume, num_extruders), + object_extruders); + for (const std::pair &range_and_config : model_object.layer_config_ranges) + if (range_and_config.second.has("perimeter_extruder") || + range_and_config.second.has("infill_extruder") || + range_and_config.second.has("solid_infill_extruder")) + PrintRegion::collect_object_printing_extruders( + print_config, + region_config_from_model_volume(default_region_config, &range_and_config.second, *model_volume, num_extruders), + object_extruders); + } sort_remove_duplicates(object_extruders); if (object_max_z <= 0.f) object_max_z = (float)model_object.raw_bounding_box().size().z(); - return SlicingParameters::create_from_config(print_config, object_config, object_max_z, object_extruders); + return SlicingParameters::create_from_config(print_config, object_config, object_max_z, object_extruders); } // returns 0-based indices of extruders used to print the object (without brim, support and other helper extrusions) @@ -1840,9 +1767,12 @@ bool PrintObject::update_layer_height_profile(const ModelObject &model_object, c layer_height_profile.clear(); if (layer_height_profile.empty()) { - //layer_height_profile = layer_height_profile_adaptive(slicing_parameters, model_object.layer_config_ranges, model_object.volumes); - layer_height_profile = layer_height_profile_from_ranges(slicing_parameters, model_object.layer_config_ranges); - updated = true; + if (0) +// if (this->layer_height_profile.empty()) + layer_height_profile = layer_height_profile_adaptive(slicing_parameters, model_object.layer_config_ranges, model_object.volumes); + else + layer_height_profile = layer_height_profile_from_ranges(slicing_parameters, model_object.layer_config_ranges); // #ys_FIXME_experiment + updated = true; } return updated; } @@ -1897,27 +1827,27 @@ void PrintObject::_slice(const std::vector &layer_height_profile) // Count model parts and modifier meshes, check whether the model parts are of the same region. int all_volumes_single_region = -2; // not set yet - bool has_z_ranges = false; - size_t num_volumes = 0; + bool has_z_ranges = false; + size_t num_volumes = 0; size_t num_modifiers = 0; for (int region_id = 0; region_id < (int)this->region_volumes.size(); ++ region_id) { - int last_volume_id = -1; + int last_volume_id = -1; for (const std::pair &volume_and_range : this->region_volumes[region_id]) { - const int volume_id = volume_and_range.second; - const ModelVolume *model_volume = this->model_object()->volumes[volume_id]; + const int volume_id = volume_and_range.second; + const ModelVolume *model_volume = this->model_object()->volumes[volume_id]; if (model_volume->is_model_part()) { - if (last_volume_id == volume_id) { - has_z_ranges = true; - } else { - last_volume_id = volume_id; - if (all_volumes_single_region == -2) - // first model volume met - all_volumes_single_region = region_id; - else if (all_volumes_single_region != region_id) - // multiple volumes met and they are not equal - all_volumes_single_region = -1; - ++ num_volumes; - } + if (last_volume_id == volume_id) { + has_z_ranges = true; + } else { + last_volume_id = volume_id; + if (all_volumes_single_region == -2) + // first model volume met + all_volumes_single_region = region_id; + else if (all_volumes_single_region != region_id) + // multiple volumes met and they are not equal + all_volumes_single_region = -1; + ++ num_volumes; + } } else if (model_volume->is_modifier()) ++ num_modifiers; } @@ -2423,13 +2353,12 @@ std::vector PrintObject::slice_modifiers(size_t region_id, const std merge.assign(out.size(), false); } else { for (size_t i = 0; i < out.size(); ++ i) - if (! this_slices[i].empty()) { + if (! this_slices[i].empty()) if (! out[i].empty()) { append(out[i], this_slices[i]); merge[i] = true; } else out[i] = std::move(this_slices[i]); - } } i = j; } else @@ -2792,7 +2721,8 @@ void PrintObject::clip_fill_surfaces() // Detect things that we need to support. // Cummulative slices. Polygons slices; - polygons_append(slices, layer->slices.expolygons); + for (const ExPolygon &expoly : layer->slices.expolygons) + polygons_append(slices, to_polygons(expoly)); // Cummulative fill surfaces. Polygons fill_surfaces; // Solid surfaces to be supported. @@ -2902,7 +2832,7 @@ void PrintObject::discover_horizontal_shells() polygons_append(solid, to_polygons(surface.expolygon)); if (solid.empty()) continue; -// Slic3r::debugf "Layer %d has %s surfaces\n", $i, (($type & stTop) != 0) ? 'top' : 'bottom'; +// Slic3r::debugf "Layer %d has %s surfaces\n", $i, ($type == S_TYPE_TOP) ? 'top' : 'bottom'; size_t solid_layers = ((type & stPosTop) == stPosTop) ? region_config.top_solid_layers.value : region_config.bottom_solid_layers.value; for (int n = ((type & stPosTop) == stPosTop) ? (i - 1) : (i + 1); std::abs(n - (int)i) < solid_layers; ((type & stPosTop) == stPosTop) ? (--n) : (++n)) { @@ -2921,7 +2851,7 @@ void PrintObject::discover_horizontal_shells() // shells to be generated in the base but not in the walls (where there are many // narrow bottom surfaces): reassigning $solid will consider the 'shadow' of the // upper perimeter as an obstacle and shell will not be propagated to more upper layers - //FIXME How does it work for stInternalBRIDGE? This is set for sparse infill. Likely this does not work. + //FIXME How does it work for S_TYPE_INTERNALBRIDGE? This is set for sparse infill. Likely this does not work. Polygons new_internal_solid; { Polygons internal; @@ -2933,7 +2863,7 @@ void PrintObject::discover_horizontal_shells() if (new_internal_solid.empty()) { // No internal solid needed on this layer. In order to decide whether to continue // searching on the next neighbor (thus enforcing the configured number of solid - // layers, use different strategies according to configured infill density: + // layers, use different strategies according to configured infill density: if (region_config.fill_density.value == 0) { // If user expects the object to be void (for example a hollow sloping vase), // don't continue the search. In this case, we only generate the external solid @@ -3115,7 +3045,7 @@ void PrintObject::combine_infill() continue; // Slic3r::debugf " combining %d %s regions from layers %d-%d\n", // scalar(@$intersection), -// ($type == stInternal ? 'internal' : 'internal-solid'), +// ($type == S_TYPE_INTERNAL ? 'internal' : 'internal-solid'), // $layer_idx-($every-1), $layer_idx; // intersection now contains the regions that can be combined across the full amount of layers, // so let's remove those areas from all layers. diff --git a/src/libslic3r/PrintRegion.cpp b/src/libslic3r/PrintRegion.cpp index b3ac6a4a5b9..73b40487bcf 100644 --- a/src/libslic3r/PrintRegion.cpp +++ b/src/libslic3r/PrintRegion.cpp @@ -2,21 +2,6 @@ namespace Slic3r { -// 1-based extruder identifier for this region and role. -unsigned int PrintRegion::extruder(FlowRole role) const -{ - size_t extruder = 0; - if (role == frPerimeter || role == frExternalPerimeter) - extruder = m_config.perimeter_extruder; - else if (role == frInfill) - extruder = m_config.infill_extruder; - else if (role == frSolidInfill || role == frTopSolidInfill) - extruder = m_config.solid_infill_extruder; - else - throw std::invalid_argument("Unknown role"); - return extruder; -} - Flow PrintRegion::flow(FlowRole role, double layer_height, bool bridge, bool first_layer, double width, const PrintObject &object) const { ConfigOptionFloatOrPercent config_width; @@ -43,14 +28,25 @@ Flow PrintRegion::flow(FlowRole role, double layer_height, bool bridge, bool fir throw std::invalid_argument("Unknown role"); } } - - if (config_width.value == 0) + if (config_width.value == 0) { config_width = object.config().extrusion_width; + } + + // get the configured nozzle_diameter for the extruder associated + // to the flow role requested + size_t extruder = 0; // 1-based + if (role == frPerimeter || role == frExternalPerimeter) { + extruder = m_config.perimeter_extruder; + } else if (role == frInfill) { + extruder = m_config.infill_extruder; + } else if (role == frSolidInfill || role == frTopSolidInfill) { + extruder = m_config.solid_infill_extruder; + } else { + throw std::invalid_argument("Unknown role"); + } + double nozzle_diameter = m_print->config().nozzle_diameter.get_at(extruder-1); - // Get the configured nozzle_diameter for the extruder associated to the flow role requested. - // Here this->extruder(role) - 1 may underflow to MAX_INT, but then the get_at() will follback to zero'th element, so everything is all right. - double nozzle_diameter = m_print->config().nozzle_diameter.get_at(this->extruder(role) - 1); - return Flow::new_from_config_width(role, config_width, (float)nozzle_diameter, (float)layer_height, bridge ? (float)m_config.bridge_flow_ratio : 0.0f); + return Flow::new_from_config_width(role, config_width, nozzle_diameter, layer_height, bridge ? (float)m_config.bridge_flow_ratio : 0.0); } coordf_t PrintRegion::nozzle_dmr_avg(const PrintConfig &print_config) const @@ -68,29 +64,16 @@ coordf_t PrintRegion::bridging_height_avg(const PrintConfig &print_config) const void PrintRegion::collect_object_printing_extruders(const PrintConfig &print_config, const PrintRegionConfig ®ion_config, std::vector &object_extruders) { // These checks reflect the same logic used in the GUI for enabling/disabling extruder selection fields. - auto num_extruders = (int)print_config.nozzle_diameter.size(); - auto emplace_extruder = [num_extruders, &object_extruders](int extruder_id) { - int i = std::max(0, extruder_id - 1); - object_extruders.emplace_back((i >= num_extruders) ? 0 : i); - }; if (region_config.perimeters.value > 0 || print_config.brim_width.value > 0) - emplace_extruder(region_config.perimeter_extruder); + object_extruders.emplace_back(region_config.perimeter_extruder - 1); if (region_config.fill_density.value > 0) - emplace_extruder(region_config.infill_extruder); + object_extruders.emplace_back(region_config.infill_extruder - 1); if (region_config.top_solid_layers.value > 0 || region_config.bottom_solid_layers.value > 0) - emplace_extruder(region_config.solid_infill_extruder); + object_extruders.emplace_back(region_config.solid_infill_extruder - 1); } void PrintRegion::collect_object_printing_extruders(std::vector &object_extruders) const { - // PrintRegion, if used by some PrintObject, shall have all the extruders set to an existing printer extruder. - // If not, then there must be something wrong with the Print::apply() function. -#ifndef NDEBUG - auto num_extruders = (int)print()->config().nozzle_diameter.size(); - assert(this->config().perimeter_extruder <= num_extruders); - assert(this->config().infill_extruder <= num_extruders); - assert(this->config().solid_infill_extruder <= num_extruders); -#endif collect_object_printing_extruders(print()->config(), this->config(), object_extruders); } diff --git a/src/libslic3r/SLA/SLAAutoSupports.cpp b/src/libslic3r/SLA/SLAAutoSupports.cpp index 5451c7612aa..cbd48796d5b 100644 --- a/src/libslic3r/SLA/SLAAutoSupports.cpp +++ b/src/libslic3r/SLA/SLAAutoSupports.cpp @@ -1,5 +1,5 @@ -//#include "igl/random_points_on_mesh.h" -//#include "igl/AABB.h" +#include "igl/random_points_on_mesh.h" +#include "igl/AABB.h" #include diff --git a/src/libslic3r/SLA/SLAAutoSupports.hpp b/src/libslic3r/SLA/SLAAutoSupports.hpp index a2ac5f80472..171cf854a85 100644 --- a/src/libslic3r/SLA/SLAAutoSupports.hpp +++ b/src/libslic3r/SLA/SLAAutoSupports.hpp @@ -185,6 +185,8 @@ class SLAAutoSupports { SLAAutoSupports::Config m_config; + float m_supports_force_total = 0.f; + void process(const std::vector& slices, const std::vector& heights); void uniformly_cover(const ExPolygons& islands, Structure& structure, PointGrid3D &grid3d, bool is_new_island = false, bool just_one = false); void project_onto_mesh(std::vector& points) const; diff --git a/src/libslic3r/SLA/SLARaster.hpp b/src/libslic3r/SLA/SLARaster.hpp index 8b27fd1533d..d3bd52d92c1 100644 --- a/src/libslic3r/SLA/SLARaster.hpp +++ b/src/libslic3r/SLA/SLARaster.hpp @@ -68,14 +68,15 @@ class Raster { /// Type that represents a resolution in pixels. struct Resolution { - size_t width_px; - size_t height_px; + unsigned width_px; + unsigned height_px; - inline Resolution(size_t w = 0, size_t h = 0) - : width_px(w), height_px(h) - {} + inline Resolution(unsigned w = 0, unsigned h = 0): + width_px(w), height_px(h) {} - inline size_t pixels() const { return width_px * height_px; } + inline unsigned pixels() const /*noexcept*/ { + return width_px * height_px; + } }; /// Types that represents the dimension of a pixel in millimeters. diff --git a/src/libslic3r/SLA/SLARasterWriter.cpp b/src/libslic3r/SLA/SLARasterWriter.cpp index 3e6f015d4f9..f7c3925ac78 100644 --- a/src/libslic3r/SLA/SLARasterWriter.cpp +++ b/src/libslic3r/SLA/SLARasterWriter.cpp @@ -1,7 +1,5 @@ #include "SLARasterWriter.hpp" #include "libslic3r/Zipper.hpp" -#include "libslic3r/Time.hpp" - #include "ExPolygon.hpp" #include @@ -12,13 +10,25 @@ namespace Slic3r { namespace sla { std::string SLARasterWriter::createIniContent(const std::string& projectname) const { - std::string out("action = print\njobDir = "); - out += projectname + "\n"; - - for (auto ¶m : m_config) - out += param.first + " = " + param.second + "\n"; - - return out; + auto expt_str = std::to_string(m_exp_time_s); + auto expt_first_str = std::to_string(m_exp_time_first_s); + auto layerh_str = std::to_string(m_layer_height); + + const std::string cnt_fade_layers = std::to_string(m_cnt_fade_layers); + const std::string cnt_slow_layers = std::to_string(m_cnt_slow_layers); + const std::string cnt_fast_layers = std::to_string(m_cnt_fast_layers); + const std::string used_material = std::to_string(m_used_material); + + return std::string( + "action = print\n" + "jobDir = ") + projectname + "\n" + + "expTime = " + expt_str + "\n" + "expTimeFirst = " + expt_first_str + "\n" + "numFade = " + cnt_fade_layers + "\n" + "layerHeight = " + layerh_str + "\n" + "usedMaterial = " + used_material + "\n" + "numSlow = " + cnt_slow_layers + "\n" + "numFast = " + cnt_fast_layers + "\n"; } void SLARasterWriter::flpXY(ClipperLib::Polygon &poly) @@ -43,14 +53,38 @@ void SLARasterWriter::flpXY(ExPolygon &poly) } } -SLARasterWriter::SLARasterWriter(const Raster::Resolution &res, - const Raster::PixelDim &pixdim, - const std::array &mirror, - double gamma) - : m_res(res), m_pxdim(pixdim), m_mirror(mirror), m_gamma(gamma) +SLARasterWriter::SLARasterWriter(const SLAPrinterConfig &cfg, + const SLAMaterialConfig &mcfg, + double layer_height) { + double w = cfg.display_width.getFloat(); + double h = cfg.display_height.getFloat(); + auto pw = unsigned(cfg.display_pixels_x.getInt()); + auto ph = unsigned(cfg.display_pixels_y.getInt()); + + m_mirror[X] = cfg.display_mirror_x.getBool(); + // PNG raster will implicitly do an Y mirror - m_mirror[1] = !m_mirror[1]; + m_mirror[Y] = ! cfg.display_mirror_y.getBool(); + + auto ro = cfg.display_orientation.getInt(); + + if(ro == roPortrait) { + std::swap(w, h); + std::swap(pw, ph); + m_o = roPortrait; + + // XY flipping implicitly does an X mirror + m_mirror[X] = ! m_mirror[X]; + } else m_o = roLandscape; + + m_res = Raster::Resolution(pw, ph); + m_pxdim = Raster::PixelDim(w/pw, h/ph); + m_exp_time_s = mcfg.exposure_time.getFloat(); + m_exp_time_first_s = mcfg.initial_exposure_time.getFloat(); + m_layer_height = layer_height; + + m_gamma = cfg.gamma_correction.getFloat(); } void SLARasterWriter::save(const std::string &fpath, const std::string &prjname) @@ -87,44 +121,15 @@ void SLARasterWriter::save(const std::string &fpath, const std::string &prjname) } } -namespace { - -std::string get_cfg_value(const DynamicPrintConfig &cfg, const std::string &key) +void SLARasterWriter::set_statistics(const std::vector statistics) { - std::string ret; - - if (cfg.has(key)) { - auto opt = cfg.option(key); - if (opt) ret = opt->serialize(); - } + if (statistics.size() != psCnt) + return; - return ret; -} - -} // namespace - -void SLARasterWriter::set_config(const DynamicPrintConfig &cfg) -{ - m_config["layerHeight"] = get_cfg_value(cfg, "layer_height"); - m_config["expTime"] = get_cfg_value(cfg, "exposure_time"); - m_config["expTimeFirst"] = get_cfg_value(cfg, "initial_exposure_time"); - m_config["materialName"] = get_cfg_value(cfg, "sla_material_settings_id"); - m_config["printerModel"] = get_cfg_value(cfg, "printer_model"); - m_config["printerVariant"] = get_cfg_value(cfg, "printer_variant"); - m_config["printerProfile"] = get_cfg_value(cfg, "printer_settings_id"); - m_config["printProfile"] = get_cfg_value(cfg, "sla_print_settings_id"); - - m_config["fileCreationTimestamp"] = Utils::current_utc_time2str(); - m_config["prusaSlicerVersion"] = SLIC3R_BUILD_ID; -} - -void SLARasterWriter::set_statistics(const PrintStatistics &stats) -{ - m_config["usedMaterial"] = std::to_string(stats.used_material); - m_config["numFade"] = std::to_string(stats.num_fade); - m_config["numSlow"] = std::to_string(stats.num_slow); - m_config["numFast"] = std::to_string(stats.num_fast); - m_config["printTime"] = std::to_string(stats.estimated_print_time_s); + m_used_material = statistics[psUsedMaterial]; + m_cnt_fade_layers = int(statistics[psNumFade]); + m_cnt_slow_layers = int(statistics[psNumSlow]); + m_cnt_fast_layers = int(statistics[psNumFast]); } } // namespace sla diff --git a/src/libslic3r/SLA/SLARasterWriter.hpp b/src/libslic3r/SLA/SLARasterWriter.hpp index b9202c464fc..7133d2ddec7 100644 --- a/src/libslic3r/SLA/SLARasterWriter.hpp +++ b/src/libslic3r/SLA/SLARasterWriter.hpp @@ -3,10 +3,8 @@ // For png export of the sliced model #include -#include #include #include -#include #include #include "libslic3r/PrintConfig.hpp" @@ -25,19 +23,20 @@ namespace Slic3r { namespace sla { class SLARasterWriter { public: - enum Orientation { + enum RasterOrientation { roLandscape, roPortrait }; // Used for addressing parameters of set_statistics() - struct PrintStatistics - { - double used_material = 0.; - double estimated_print_time_s = 0.; - size_t num_fade = 0; - size_t num_slow = 0; - size_t num_fast = 0; + enum ePrintStatistics + { + psUsedMaterial = 0, + psNumFade, + psNumSlow, + psNumFast, + + psCnt }; private: @@ -48,13 +47,21 @@ class SLARasterWriter RawBytes rawbytes; Layer() = default; - - // The image is big, do not copy by accident - Layer(const Layer&) = delete; + Layer(const Layer&) = delete; // The image is big, do not copy by accident Layer& operator=(const Layer&) = delete; - - Layer(Layer &&m) = default; - Layer &operator=(Layer &&) = default; + + // ///////////////////////////////////////////////////////////////////// + // FIXME: the following is needed for MSVC2013 compatibility + // ///////////////////////////////////////////////////////////////////// + + // Layer(Layer&& m) = default; + // Layer& operator=(Layer&&) = default; + Layer(Layer &&m): + raster(std::move(m.raster)), rawbytes(std::move(m.rawbytes)) {} + Layer& operator=(Layer &&m) { + raster = std::move(m.raster); rawbytes = std::move(m.rawbytes); + return *this; + } }; // We will save the compressed PNG data into RawBytes type buffers in @@ -62,46 +69,66 @@ class SLARasterWriter std::vector m_layers_rst; Raster::Resolution m_res; Raster::PixelDim m_pxdim; + double m_exp_time_s = .0, m_exp_time_first_s = .0; + double m_layer_height = .0; + RasterOrientation m_o = roPortrait; std::array m_mirror; - double m_gamma; - - std::map m_config; + double m_gamma; + + double m_used_material = 0.0; + int m_cnt_fade_layers = 0; + int m_cnt_slow_layers = 0; + int m_cnt_fast_layers = 0; + std::string createIniContent(const std::string& projectname) const; static void flpXY(ClipperLib::Polygon& poly); static void flpXY(ExPolygon& poly); public: - SLARasterWriter(const Raster::Resolution &res, - const Raster::PixelDim &pixdim, - const std::array &mirror, - double gamma = 1.); + + SLARasterWriter(const SLAPrinterConfig& cfg, + const SLAMaterialConfig& mcfg, + double layer_height); SLARasterWriter(const SLARasterWriter& ) = delete; SLARasterWriter& operator=(const SLARasterWriter&) = delete; - SLARasterWriter(SLARasterWriter&& m) = default; - SLARasterWriter& operator=(SLARasterWriter&&) = default; + + // ///////////////////////////////////////////////////////////////////////// + // FIXME: the following is needed for MSVC2013 compatibility + // ///////////////////////////////////////////////////////////////////////// + + // SLARasterWriter(SLARasterWriter&& m) = default; + // SLARasterWriter& operator=(SLARasterWriter&&) = default; + SLARasterWriter(SLARasterWriter&& m): + m_layers_rst(std::move(m.m_layers_rst)), + m_res(m.m_res), + m_pxdim(m.m_pxdim), + m_exp_time_s(m.m_exp_time_s), + m_exp_time_first_s(m.m_exp_time_first_s), + m_layer_height(m.m_layer_height), + m_o(m.m_o), + m_mirror(std::move(m.m_mirror)), + m_gamma(m.m_gamma), + m_used_material(m.m_used_material), + m_cnt_fade_layers(m.m_cnt_fade_layers), + m_cnt_slow_layers(m.m_cnt_slow_layers), + m_cnt_fast_layers(m.m_cnt_fast_layers) + {} + + // ///////////////////////////////////////////////////////////////////////// inline void layers(unsigned cnt) { if(cnt > 0) m_layers_rst.resize(cnt); } inline unsigned layers() const { return unsigned(m_layers_rst.size()); } - template void draw_polygon(const Poly& p, unsigned lyr, - Orientation o = roPortrait) - { + template void draw_polygon(const Poly& p, unsigned lyr) { assert(lyr < m_layers_rst.size()); - - switch (o) { - case roPortrait: { - Poly poly(p); - flpXY(poly); + if(m_o == roPortrait) { + Poly poly(p); flpXY(poly); m_layers_rst[lyr].raster.draw(poly); - break; - } - case roLandscape: - m_layers_rst[lyr].raster.draw(p); - break; } + else m_layers_rst[lyr].raster.draw(p); } inline void begin_layer(unsigned lyr) { @@ -129,11 +156,9 @@ class SLARasterWriter } } - void save(const std::string &fpath, const std::string &prjname = ""); + void save(const std::string& fpath, const std::string& prjname = ""); - void set_statistics(const PrintStatistics &statistics); - - void set_config(const DynamicPrintConfig &cfg); + void set_statistics(const std::vector statistics); }; } // namespace sla diff --git a/src/libslic3r/SLA/SLASupportTree.cpp b/src/libslic3r/SLA/SLASupportTree.cpp index a3e88243fa6..48b78fcceee 100644 --- a/src/libslic3r/SLA/SLASupportTree.cpp +++ b/src/libslic3r/SLA/SLASupportTree.cpp @@ -713,7 +713,7 @@ struct Pad { } tmesh.translate(0, 0, float(zlevel)); - if (!tmesh.empty()) tmesh.require_shared_vertices(); + tmesh.require_shared_vertices(); } bool empty() const { return tmesh.facets_count() == 0; } @@ -2588,7 +2588,7 @@ SLASupportTree::SLASupportTree(double gnd_lvl): m_impl(new Impl()) { const TriangleMesh &SLASupportTree::merged_mesh() const { - return m_impl->merged_mesh(); + return get().merged_mesh(); } void SLASupportTree::merged_mesh_with_pad(TriangleMesh &outmesh) const { @@ -2597,53 +2597,41 @@ void SLASupportTree::merged_mesh_with_pad(TriangleMesh &outmesh) const { } std::vector SLASupportTree::slice( - const std::vector &grid, float cr) const + const std::vector &heights, float cr) const { const TriangleMesh &sup_mesh = m_impl->merged_mesh(); const TriangleMesh &pad_mesh = get_pad(); - using Slices = std::vector; - auto slices = reserve_vector(2); - + std::vector sup_slices; if (!sup_mesh.empty()) { - slices.emplace_back(); - TriangleMeshSlicer sup_slicer(&sup_mesh); sup_slicer.closing_radius = cr; - sup_slicer.slice(grid, &slices.back(), m_impl->ctl().cancelfn); + sup_slicer.slice(heights, &sup_slices, m_impl->ctl().cancelfn); } - if (!pad_mesh.empty()) { - slices.emplace_back(); - auto bb = pad_mesh.bounding_box(); - auto maxzit = std::upper_bound(grid.begin(), grid.end(), bb.max.z()); + auto maxzit = std::upper_bound(heights.begin(), heights.end(), bb.max.z()); - auto padgrid = reserve_vector(grid.end() - maxzit); - std::copy(grid.begin(), maxzit, std::back_inserter(padgrid)); + auto padgrid = reserve_vector(heights.end() - maxzit); + std::copy(heights.begin(), maxzit, std::back_inserter(padgrid)); + std::vector pad_slices; + if (!pad_mesh.empty()) { TriangleMeshSlicer pad_slicer(&pad_mesh); pad_slicer.closing_radius = cr; - pad_slicer.slice(padgrid, &slices.back(), m_impl->ctl().cancelfn); + pad_slicer.slice(padgrid, &pad_slices, m_impl->ctl().cancelfn); } - size_t len = grid.size(); - for (const Slices &slv : slices) { len = std::min(len, slv.size()); } + size_t len = std::min(heights.size(), pad_slices.size()); + len = std::min(len, sup_slices.size()); - // Either the support or the pad or both has to be non empty - if (slices.empty()) return {}; - - Slices &mrg = slices.front(); - - for (auto it = std::next(slices.begin()); it != slices.end(); ++it) { for (size_t i = 0; i < len; ++i) { - Slices &slv = *it; - std::copy(slv[i].begin(), slv[i].end(), std::back_inserter(mrg[i])); - slv[i] = {}; // clear and delete - } + std::copy(pad_slices[i].begin(), pad_slices[i].end(), + std::back_inserter(sup_slices[i])); + pad_slices[i] = {}; } - return mrg; + return sup_slices; } const TriangleMesh &SLASupportTree::add_pad(const ExPolygons& modelbase, diff --git a/src/libslic3r/SLA/SLASupportTreeIGL.cpp b/src/libslic3r/SLA/SLASupportTreeIGL.cpp index a5aede21010..4016b31f8f4 100644 --- a/src/libslic3r/SLA/SLASupportTreeIGL.cpp +++ b/src/libslic3r/SLA/SLASupportTreeIGL.cpp @@ -148,9 +148,9 @@ std::vector BoxIndex::query(const BoundingBox &qrbb, BoxIndex::QueryType qt) { namespace bgi = boost::geometry::index; - + std::vector ret; ret.reserve(m_impl->m_store.size()); - + switch (qt) { case qtIntersects: m_impl->m_store.query(bgi::intersects(qrbb), std::back_inserter(ret)); @@ -158,7 +158,7 @@ std::vector BoxIndex::query(const BoundingBox &qrbb, case qtWithin: m_impl->m_store.query(bgi::within(qrbb), std::back_inserter(ret)); } - + return ret; } @@ -198,9 +198,9 @@ EigenMesh3D::EigenMesh3D(const TriangleMesh& tmesh): m_aabb(new AABBImpl()) { F.resize(stl.stats.number_of_facets, 3); for (unsigned int i = 0; i < stl.stats.number_of_facets; ++i) { const stl_facet &facet = stl.facet_start[i]; - V.block<1, 3>(3 * i + 0, 0) = facet.vertex[0].cast(); - V.block<1, 3>(3 * i + 1, 0) = facet.vertex[1].cast(); - V.block<1, 3>(3 * i + 2, 0) = facet.vertex[2].cast(); + V.block<1, 3>(3 * i + 0, 0) = facet.vertex[0].cast(); + V.block<1, 3>(3 * i + 1, 0) = facet.vertex[1].cast(); + V.block<1, 3>(3 * i + 2, 0) = facet.vertex[2].cast(); F(i, 0) = int(3*i+0); F(i, 1) = int(3*i+1); F(i, 2) = int(3*i+2); @@ -306,7 +306,6 @@ PointSet normals(const PointSet& points, PointSet ret(range.size(), 3); -// for (size_t ridx = 0; ridx < range.size(); ++ridx) tbb::parallel_for(size_t(0), range.size(), [&ret, &range, &mesh, &points, thr, eps](size_t ridx) { diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp index e67cbb4a8b7..bc21d5111d3 100644 --- a/src/libslic3r/SLAPrint.cpp +++ b/src/libslic3r/SLAPrint.cpp @@ -16,12 +16,6 @@ // For geometry algorithms with native Clipper types (no copies and conversions) #include -// #define SLAPRINT_DO_BENCHMARK - -#ifdef SLAPRINT_DO_BENCHMARK -#include -#endif - //#include //#include "tbb/mutex.h" #include "I18N.hpp" @@ -454,9 +448,9 @@ SLAPrint::ApplyStatus SLAPrint::apply(const Model &model, DynamicPrintConfig con } if(m_objects.empty()) { - m_printer.reset(); - m_printer_input = {}; - m_print_statistics = {}; + m_printer.release(); + m_printer_input.clear(); + m_print_statistics.clear(); } #ifdef _DEBUG @@ -575,11 +569,6 @@ std::string SLAPrint::output_filename(const std::string &filename_base) const } namespace { - -bool is_zero_elevation(const SLAPrintObjectConfig &c) { - return c.pad_enable.getBool() && c.pad_around_object.getBool(); -} - // Compile the argument for support creation from the static print config. sla::SupportConfig make_support_cfg(const SLAPrintObjectConfig& c) { sla::SupportConfig scfg; @@ -588,8 +577,7 @@ sla::SupportConfig make_support_cfg(const SLAPrintObjectConfig& c) { scfg.head_back_radius_mm = 0.5*c.support_pillar_diameter.getFloat(); scfg.head_penetration_mm = c.support_head_penetration.getFloat(); scfg.head_width_mm = c.support_head_width.getFloat(); - scfg.object_elevation_mm = is_zero_elevation(c) ? - 0. : c.support_object_elevation.getFloat(); + scfg.object_elevation_mm = c.support_object_elevation.getFloat(); scfg.bridge_slope = c.support_critical_angle.getFloat() * PI / 180.0 ; scfg.max_bridge_length_mm = c.support_max_bridge_length.getFloat(); scfg.max_pillar_link_distance_mm = c.support_max_pillar_link_distance.getFloat(); @@ -615,7 +603,8 @@ sla::SupportConfig make_support_cfg(const SLAPrintObjectConfig& c) { sla::PoolConfig::EmbedObject builtin_pad_cfg(const SLAPrintObjectConfig& c) { sla::PoolConfig::EmbedObject ret; - ret.enabled = is_zero_elevation(c); + ret.enabled = c.support_object_elevation.getFloat() <= EPSILON && + c.pad_enable.getBool() && c.supports_enable.getBool(); if(ret.enabled) { ret.object_gap_mm = c.pad_object_gap.getFloat(); @@ -671,13 +660,10 @@ std::string SLAPrint::validate() const double elv = cfg.object_elevation_mm; - sla::PoolConfig::EmbedObject builtinpad = builtin_pad_cfg(po->config()); - - if(supports_en && !builtinpad.enabled && elv < pinhead_width ) - return L( - "Elevation is too low for object. Use the \"Pad around " - "object\" feature to print the object without elevation."); + if(supports_en && elv > EPSILON && elv < pinhead_width ) + return L("Elevation is too low for object."); + sla::PoolConfig::EmbedObject builtinpad = builtin_pad_cfg(po->config()); if(supports_en && builtinpad.enabled && cfg.pillar_base_safety_distance_mm < builtinpad.object_gap_mm) { return L( @@ -688,20 +674,6 @@ std::string SLAPrint::validate() const } } - double expt_max = m_printer_config.max_exposure_time.getFloat(); - double expt_min = m_printer_config.min_exposure_time.getFloat(); - double expt_cur = m_material_config.exposure_time.getFloat(); - - if (expt_cur < expt_min || expt_cur > expt_max) - return L("Exposition time is out of printer profile bounds."); - - double iexpt_max = m_printer_config.max_initial_exposure_time.getFloat(); - double iexpt_min = m_printer_config.min_initial_exposure_time.getFloat(); - double iexpt_cur = m_material_config.initial_exposure_time.getFloat(); - - if (iexpt_cur < iexpt_min || iexpt_cur > iexpt_max) - return L("Initial exposition time is out of printer profile bounds."); - return ""; } @@ -777,7 +749,7 @@ void SLAPrint::process() for(coord_t h = minZs + ilhs + lhs; h <= maxZs; h += lhs) po.m_slice_index.emplace_back(h, unscale(h) - lh / 2.f, lh); - // Just get the first record that is from the model: + // Just get the first record that is form the model: auto slindex_it = po.closest_slice_record(po.m_slice_index, float(bb3d.min(Z))); @@ -907,7 +879,7 @@ void SLAPrint::process() // If the zero elevation mode is engaged, we have to filter out all the // points that are on the bottom of the object - if (is_zero_elevation(po.config())) { + if (po.config().support_object_elevation.getFloat() <= EPSILON) { double gnd = po.m_supportdata->emesh.ground_level(); auto & pts = po.m_supportdata->support_points; double tolerance = po.config().pad_enable.getBool() @@ -1381,9 +1353,9 @@ void SLAPrint::process() // Estimated printing time // A layers count o the highest object if (m_printer_input.size() == 0) - m_print_statistics.estimated_print_time = std::nan(""); + m_print_statistics.estimated_print_time = "N/A"; else - m_print_statistics.estimated_print_time = estim_time; + m_print_statistics.estimated_print_time = get_time_dhms(float(estim_time)); m_print_statistics.fast_layers_count = fast_layers; m_print_statistics.slow_layers_count = slow_layers; @@ -1395,9 +1367,15 @@ void SLAPrint::process() auto rasterize = [this]() { if(canceled()) return; - // Set up the printer, allocate space for all the layers - sla::SLARasterWriter &printer = init_printer(); + { // create a raster printer for the current print parameters + double layerh = m_default_object_config.layer_height.getFloat(); + m_printer.reset(new SLAPrinter(m_printer_config, + m_material_config, + layerh)); + } + // Allocate space for all the layers + SLAPrinter& printer = *m_printer; auto lvlcnt = unsigned(m_printer_input.size()); printer.layers(lvlcnt); @@ -1416,11 +1394,9 @@ void SLAPrint::process() SpinMutex slck; - auto orientation = get_printer_orientation(); - // procedure to process one height level. This will run in parallel auto lvlfn = - [this, &slck, &printer, increment, &dstatus, &pst, orientation] + [this, &slck, &printer, increment, &dstatus, &pst] (unsigned level_id) { if(canceled()) return; @@ -1431,7 +1407,7 @@ void SLAPrint::process() printer.begin_layer(level_id); for(const ClipperLib::Polygon& poly : printlayer.transformed_slices()) - printer.draw_polygon(poly, level_id, orientation); + printer.draw_polygon(poly, level_id); // Finish the layer for later saving it. printer.finish_layer(level_id); @@ -1453,68 +1429,61 @@ void SLAPrint::process() if(canceled()) return; // Sequential version (for testing) - // for(unsigned l = 0; l < lvlcnt; ++l) lvlfn(l); + // for(unsigned l = 0; l < lvlcnt; ++l) process_level(l); // Print all the layers in parallel tbb::parallel_for(0, lvlcnt, lvlfn); // Set statistics values to the printer - sla::SLARasterWriter::PrintStatistics stats; - stats.used_material = (m_print_statistics.objects_used_material + - m_print_statistics.support_used_material) / - 1000; - - int num_fade = m_default_object_config.faded_layers.getInt(); - stats.num_fade = num_fade >= 0 ? size_t(num_fade) : size_t(0); - stats.num_fast = m_print_statistics.fast_layers_count; - stats.num_slow = m_print_statistics.slow_layers_count; - stats.estimated_print_time_s = m_print_statistics.estimated_print_time; - - m_printer->set_statistics(stats); + m_printer->set_statistics( + {(m_print_statistics.objects_used_material + + m_print_statistics.support_used_material) / 1000, + double(m_default_object_config.faded_layers.getInt()), + double(m_print_statistics.slow_layers_count), + double(m_print_statistics.fast_layers_count)}); }; using slaposFn = std::function; using slapsFn = std::function; - slaposFn pobj_program[] = + std::array pobj_program = { - slice_model, support_points, support_tree, base_pool, slice_supports + slice_model, + support_points, + support_tree, + base_pool, + slice_supports }; - // We want to first process all objects... - std::vector level1_obj_steps = { - slaposObjectSlice, slaposSupportPoints, slaposSupportTree, slaposBasePool - }; - - // and then slice all supports to allow preview to be displayed ASAP - std::vector level2_obj_steps = { - slaposSliceSupports + std::array print_program = + { + merge_slices_and_eval_stats, + rasterize }; - slapsFn print_program[] = { merge_slices_and_eval_stats, rasterize }; - SLAPrintStep print_steps[] = { slapsMergeSlicesAndEval, slapsRasterize }; - double st = min_objstatus; + unsigned incr = 0; BOOST_LOG_TRIVIAL(info) << "Start slicing process."; -#ifdef SLAPRINT_DO_BENCHMARK - Benchmark bench; -#else - struct { - void start() {} void stop() {} double getElapsedSec() { return .0; } - } bench; -#endif + // TODO: this loop could run in parallel but should not exhaust all the CPU + // power available + // Calculate the support structures first before slicing the supports, + // so that the preview will get displayed ASAP for all objects. + std::vector step_ranges = {slaposObjectSlice, + slaposSliceSupports, + slaposCount}; - std::array step_times {}; - - auto apply_steps_on_objects = - [this, &st, ostepd, &pobj_program, &step_times, &bench] - (const std::vector &steps) - { - unsigned incr = 0; + for (size_t idx_range = 0; idx_range + 1 < step_ranges.size(); ++idx_range) { for (SLAPrintObject *po : m_objects) { - for (SLAPrintObjectStep step : steps) { + + BOOST_LOG_TRIVIAL(info) + << "Slicing object " << po->model_object()->name; + + for (int s = int(step_ranges[idx_range]); + s < int(step_ranges[idx_range + 1]); + ++s) { + auto currentstep = static_cast(s); // Cancellation checking. Each step will check for // cancellation on its own and return earlier gracefully. @@ -1524,38 +1493,39 @@ void SLAPrint::process() st += incr * ostepd; - if (po->m_stepmask[step] && po->set_started(step)) { - m_report_status(*this, st, OBJ_STEP_LABELS(step)); - bench.start(); - pobj_program[step](*po); - bench.stop(); - step_times[step] += bench.getElapsedSec(); + if (po->m_stepmask[currentstep] + && po->set_started(currentstep)) { + m_report_status(*this, + st, + OBJ_STEP_LABELS(currentstep)); + pobj_program[currentstep](*po); throw_if_canceled(); - po->set_done(step); + po->set_done(currentstep); } - incr = OBJ_STEP_LEVELS[step]; + incr = OBJ_STEP_LEVELS[currentstep]; } } - }; + } - apply_steps_on_objects(level1_obj_steps); - apply_steps_on_objects(level2_obj_steps); + std::array printsteps = { + slapsMergeSlicesAndEval, slapsRasterize + }; // this would disable the rasterization step - // std::fill(m_stepmask.begin(), m_stepmask.end(), false); + // m_stepmask[slapsRasterize] = false; double pstd = (100 - max_objstatus) / 100.0; st = max_objstatus; - for(SLAPrintStep currentstep : print_steps) { + for(size_t s = 0; s < print_program.size(); ++s) { + auto currentstep = printsteps[s]; + throw_if_canceled(); - if (m_stepmask[currentstep] && set_started(currentstep)) { + if(m_stepmask[currentstep] && set_started(currentstep)) + { m_report_status(*this, st, PRINT_STEP_LABELS(currentstep)); - bench.start(); print_program[currentstep](); - bench.stop(); - step_times[slaposCount + currentstep] += bench.getElapsedSec(); throw_if_canceled(); set_done(currentstep); } @@ -1565,21 +1535,6 @@ void SLAPrint::process() // If everything vent well m_report_status(*this, 100, L("Slicing done")); - -#ifdef SLAPRINT_DO_BENCHMARK - std::string csvbenchstr; - for (size_t i = 0; i < size_t(slaposCount); ++i) - csvbenchstr += OBJ_STEP_LABELS(i) + ";"; - - for (size_t i = 0; i < size_t(slapsCount); ++i) - csvbenchstr += PRINT_STEP_LABELS(i) + ";"; - - csvbenchstr += "\n"; - for (double t : step_times) csvbenchstr += std::to_string(t) + ";"; - - std::cout << "Performance stats: \n" << csvbenchstr << std::endl; -#endif - } bool SLAPrint::invalidate_state_by_config_options(const std::vector &opt_keys, bool &invalidate_all_model_objects) @@ -1598,11 +1553,7 @@ bool SLAPrint::invalidate_state_by_config_options(const std::vector steps_rasterize = { - "min_exposure_time", - "max_exposure_time", "exposure_time", - "min_initial_exposure_time", - "max_initial_exposure_time", "initial_exposure_time", "display_width", "display_height", @@ -1654,39 +1605,6 @@ bool SLAPrint::invalidate_state_by_config_options(const std::vector mirror; - double gamma; - - double w = m_printer_config.display_width.getFloat(); - double h = m_printer_config.display_height.getFloat(); - auto pw = size_t(m_printer_config.display_pixels_x.getInt()); - auto ph = size_t(m_printer_config.display_pixels_y.getInt()); - - mirror[X] = m_printer_config.display_mirror_x.getBool(); - mirror[Y] = m_printer_config.display_mirror_y.getBool(); - - if (get_printer_orientation() == sla::SLARasterWriter::roPortrait) { - std::swap(w, h); - std::swap(pw, ph); - - // XY flipping implicitly does an X mirror - mirror[X] = !mirror[X]; - } - - res = sla::Raster::Resolution{pw, ph}; - pxdim = sla::Raster::PixelDim{w / pw, h / ph}; - - gamma = m_printer_config.gamma_correction.getFloat(); - - m_printer.reset(new sla::SLARasterWriter(res, pxdim, mirror, gamma)); - m_printer->set_config(m_full_print_config); - return *m_printer; -} - // Returns true if an object step is done on all objects and there's at least one object. bool SLAPrint::is_step_done(SLAPrintObjectStep step) const { @@ -1729,7 +1647,6 @@ bool SLAPrintObject::invalidate_state_by_config_options(const std::vector SLAPrintObject::transformed_support_points() cons DynamicConfig SLAPrintStatistics::config() const { DynamicConfig config; - const std::string print_time = Slic3r::short_time(get_time_dhms(float(this->estimated_print_time))); + const std::string print_time = Slic3r::short_time(this->estimated_print_time); config.set_key_value("print_time", new ConfigOptionString(print_time)); config.set_key_value("objects_used_material", new ConfigOptionFloat(this->objects_used_material)); config.set_key_value("support_used_material", new ConfigOptionFloat(this->support_used_material)); diff --git a/src/libslic3r/SLAPrint.hpp b/src/libslic3r/SLAPrint.hpp index a2bc1325a66..e8cdac1b865 100644 --- a/src/libslic3r/SLAPrint.hpp +++ b/src/libslic3r/SLAPrint.hpp @@ -300,7 +300,7 @@ class TriangleMesh; struct SLAPrintStatistics { SLAPrintStatistics() { clear(); } - double estimated_print_time; + std::string estimated_print_time; double objects_used_material; double support_used_material; size_t slow_layers_count; @@ -316,7 +316,7 @@ struct SLAPrintStatistics std::string finalize_output_path(const std::string &path_in) const; void clear() { - estimated_print_time = 0.; + estimated_print_time.clear(); objects_used_material = 0.; support_used_material = 0.; slow_layers_count = 0; @@ -422,6 +422,9 @@ class SLAPrint : public PrintBaseWithState const std::vector& print_layers() const { return m_printer_input; } private: + using SLAPrinter = sla::SLARasterWriter; + using SLAPrinterPtr = std::unique_ptr; + // Implement same logic as in SLAPrintObject bool invalidate_step(SLAPrintStep st); @@ -440,7 +443,7 @@ class SLAPrint : public PrintBaseWithState std::vector m_printer_input; // The printer itself - std::unique_ptr m_printer; + SLAPrinterPtr m_printer; // Estimated print time, material consumed. SLAPrintStatistics m_print_statistics; @@ -458,16 +461,6 @@ class SLAPrint : public PrintBaseWithState double status() const { return m_st; } } m_report_status; - - sla::SLARasterWriter &init_printer(); - - inline sla::SLARasterWriter::Orientation get_printer_orientation() const - { - auto ro = m_printer_config.display_orientation.getInt(); - return ro == sla::SLARasterWriter::roPortrait ? - sla::SLARasterWriter::roPortrait : - sla::SLARasterWriter::roLandscape; - } friend SLAPrintObject; }; diff --git a/src/libslic3r/Semver.cpp b/src/libslic3r/Semver.cpp deleted file mode 100644 index 5d36b39f72e..00000000000 --- a/src/libslic3r/Semver.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "libslic3r.h" - -namespace Slic3r { - -Semver SEMVER { SLIC3R_VERSION }; - -} diff --git a/src/libslic3r/SupportMaterial.cpp b/src/libslic3r/SupportMaterial.cpp index 386a0a3b008..6a77c93916c 100644 --- a/src/libslic3r/SupportMaterial.cpp +++ b/src/libslic3r/SupportMaterial.cpp @@ -3031,9 +3031,9 @@ void PrintObjectSupportMaterial::generate_toolpaths( assert(support_layer.support_fills.entities.empty()); MyLayer &raft_layer = *raft_layers[support_layer_id]; - std::unique_ptr filler_interface = std::unique_ptr(Fill::new_from_type(interface_pattern)); - std::unique_ptr filler_support = std::unique_ptr(Fill::new_from_type(infill_pattern)); - std::unique_ptr filler_dense = std::unique_ptr(Fill::new_from_type(ipRectiWithPerimeter)); + std::unique_ptr filler_interface = std::unique_ptr(Fill::new_from_type(interface_pattern, NULL)); + std::unique_ptr filler_support = std::unique_ptr(Fill::new_from_type(infill_pattern, NULL)); + std::unique_ptr filler_dense = std::unique_ptr(Fill::new_from_type(ipRectiWithPerimeter, NULL)); filler_interface->set_bounding_box(bbox_object); filler_support->set_bounding_box(bbox_object); @@ -3141,10 +3141,10 @@ void PrintObjectSupportMaterial::generate_toolpaths( size_t idx_layer_top_contact = size_t(-1); size_t idx_layer_intermediate = size_t(-1); size_t idx_layer_inteface = size_t(-1); - std::unique_ptr filler_interface = std::unique_ptr(Fill::new_from_type(interface_pattern)); - std::unique_ptr filler_intermediate_interface = std::unique_ptr(Fill::new_from_type(ipRectilinear)); - std::unique_ptr filler_support = std::unique_ptr(Fill::new_from_type(infill_pattern)); - std::unique_ptr filler_solid = std::unique_ptr(Fill::new_from_type(ipRectiWithPerimeter)); + std::unique_ptr filler_interface = std::unique_ptr(Fill::new_from_type(interface_pattern, NULL)); + std::unique_ptr filler_intermediate_interface = std::unique_ptr(Fill::new_from_type(ipRectilinear, NULL)); + std::unique_ptr filler_support = std::unique_ptr(Fill::new_from_type(infill_pattern, NULL)); + std::unique_ptr filler_solid = std::unique_ptr(Fill::new_from_type(ipRectiWithPerimeter, NULL)); filler_interface->set_bounding_box(bbox_object); filler_support->set_bounding_box(bbox_object); for (size_t support_layer_id = range.begin(); support_layer_id < range.end(); ++ support_layer_id) diff --git a/src/libslic3r/Surface.cpp b/src/libslic3r/Surface.cpp index e36d340c2ec..0f95163da9f 100644 --- a/src/libslic3r/Surface.cpp +++ b/src/libslic3r/Surface.cpp @@ -4,6 +4,17 @@ namespace Slic3r { +Surface::operator Polygons() const +{ + return this->expolygon; +} + +double +Surface::area() const +{ + return this->expolygon.area(); +} + bool Surface::has_fill_void() const { return (this->surface_type & stDensVoid) != 0; diff --git a/src/libslic3r/Surface.hpp b/src/libslic3r/Surface.hpp index 79eba28ad34..5f67ca4402d 100644 --- a/src/libslic3r/Surface.hpp +++ b/src/libslic3r/Surface.hpp @@ -123,8 +123,8 @@ class Surface return *this; } - operator Polygons() const { return this->expolygon; } - double area() const { return this->expolygon.area(); } + operator Polygons() const; + double area() const; bool empty() const { return expolygon.empty(); } void clear() { expolygon.clear(); } bool has_fill_solid() const; diff --git a/src/libslic3r/SurfaceCollection.hpp b/src/libslic3r/SurfaceCollection.hpp index 9998e4b9ccc..6fb68cc23e2 100644 --- a/src/libslic3r/SurfaceCollection.hpp +++ b/src/libslic3r/SurfaceCollection.hpp @@ -41,7 +41,6 @@ class SurfaceCollection void clear() { surfaces.clear(); } bool empty() const { return surfaces.empty(); } - size_t size() const { return surfaces.size(); } bool has(SurfaceType type) const { for (const Surface &surface : this->surfaces) if (surface.surface_type == type) return true; diff --git a/src/libslic3r/Time.cpp b/src/libslic3r/Time.cpp deleted file mode 100644 index 1f65189b8f5..00000000000 --- a/src/libslic3r/Time.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#include "Time.hpp" - -#include -#include -#include - -//#include -//#include - - -#ifdef WIN32 - #define WIN32_LEAN_AND_MEAN - #include - #undef WIN32_LEAN_AND_MEAN -#endif /* WIN32 */ - -namespace Slic3r { -namespace Utils { - -namespace { - -// FIXME: after we switch to gcc > 4.9 on the build server, please remove me -#if defined(__GNUC__) && __GNUC__ <= 4 -std::string put_time(const std::tm *tm, const char *fmt) -{ - static const constexpr int MAX_CHARS = 200; - char out[MAX_CHARS]; - std::strftime(out, MAX_CHARS, fmt, tm); - return out; -} -#else -auto put_time(const std::tm *tm, const char *fmt) -> decltype (std::put_time(tm, fmt)) -{ - return std::put_time(tm, fmt); -} -#endif - -} - -time_t parse_time_ISO8601Z(const std::string &sdate) -{ - int y, M, d, h, m, s; - if (sscanf(sdate.c_str(), "%04d%02d%02dT%02d%02d%02dZ", &y, &M, &d, &h, &m, &s) != 6) - return time_t(-1); - struct tm tms; - tms.tm_year = y - 1900; // Year since 1900 - tms.tm_mon = M - 1; // 0-11 - tms.tm_mday = d; // 1-31 - tms.tm_hour = h; // 0-23 - tms.tm_min = m; // 0-59 - tms.tm_sec = s; // 0-61 (0-60 in C++11) -#ifdef WIN32 - return _mkgmtime(&tms); -#else /* WIN32 */ - return timegm(&tms); -#endif /* WIN32 */ -} - -std::string format_time_ISO8601Z(time_t time) -{ - struct tm tms; -#ifdef WIN32 - gmtime_s(&tms, &time); -#else - gmtime_r(&time, &tms); -#endif - char buf[128]; - sprintf(buf, "%04d%02d%02dT%02d%02d%02dZ", - tms.tm_year + 1900, - tms.tm_mon + 1, - tms.tm_mday, - tms.tm_hour, - tms.tm_min, - tms.tm_sec); - return buf; -} - -std::string format_local_date_time(time_t time) -{ - struct tm tms; -#ifdef WIN32 - // Converts a time_t time value to a tm structure, and corrects for the local time zone. - localtime_s(&tms, &time); -#else - localtime_r(&time, &tms); -#endif - char buf[80]; - strftime(buf, 80, "%x %X", &tms); - return buf; -} - -time_t get_current_time_utc() -{ - using clk = std::chrono::system_clock; - return clk::to_time_t(clk::now()); -} - -static std::string tm2str(const std::tm *tm, const char *fmt) -{ - std::stringstream ss; - ss << put_time(tm, fmt); - return ss.str(); -} - -std::string time2str(const time_t &t, TimeZone zone, const char *fmt) -{ - std::string ret; - - switch (zone) { - case TimeZone::local: ret = tm2str(std::localtime(&t), fmt); break; - case TimeZone::utc: ret = tm2str(std::gmtime(&t), fmt) + " UTC"; break; - } - - return ret; -} - -}; // namespace Utils -}; // namespace Slic3r diff --git a/src/libslic3r/Time.hpp b/src/libslic3r/Time.hpp deleted file mode 100644 index b314e47f728..00000000000 --- a/src/libslic3r/Time.hpp +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef slic3r_Utils_Time_hpp_ -#define slic3r_Utils_Time_hpp_ - -#include -#include - -namespace Slic3r { -namespace Utils { - -// Utilities to convert an UTC time_t to/from an ISO8601 time format, -// useful for putting timestamps into file and directory names. -// Returns (time_t)-1 on error. -time_t parse_time_ISO8601Z(const std::string &s); -std::string format_time_ISO8601Z(time_t time); - -// Format the date and time from an UTC time according to the active locales and a local time zone. -// TODO: make sure time2str is a suitable replacement -std::string format_local_date_time(time_t time); - -// There is no gmtime() on windows. -time_t get_current_time_utc(); - -const constexpr char *const SLIC3R_TIME_FMT = "%Y-%m-%d at %T"; - -enum class TimeZone { local, utc }; - -std::string time2str(const time_t &t, TimeZone zone, const char *fmt = SLIC3R_TIME_FMT); - -inline std::string current_time2str(TimeZone zone, const char *fmt = SLIC3R_TIME_FMT) -{ - return time2str(get_current_time_utc(), zone, fmt); -} - -inline std::string current_local_time2str(const char * fmt = SLIC3R_TIME_FMT) -{ - return current_time2str(TimeZone::local, fmt); -} - -inline std::string current_utc_time2str(const char * fmt = SLIC3R_TIME_FMT) -{ - return current_time2str(TimeZone::utc, fmt); -} - -}; // namespace Utils -}; // namespace Slic3r - -#endif /* slic3r_Utils_Time_hpp_ */ diff --git a/src/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp index 5d847573dbc..8a4f1424b27 100644 --- a/src/libslic3r/Utils.hpp +++ b/src/libslic3r/Utils.hpp @@ -18,9 +18,8 @@ extern void trace(unsigned int level, const char *message); // Format memory allocated, separate thousands by comma. extern std::string format_memsize_MB(size_t n); // Return string to be added to the boost::log output to inform about the current process memory allocation. -// The string is non-empty if the loglevel >= info (3) or ignore_loglevel==true. -// Latter is used to get the memory info from SysInfoDialog. -extern std::string log_memory_info(bool ignore_loglevel = false); +// The string is non-empty only if the loglevel >= info (3). +extern std::string log_memory_info(); extern void disable_multi_threading(); // Returns the size of physical memory (RAM) in bytes. extern size_t total_physical_memory(); @@ -61,7 +60,7 @@ extern std::string normalize_utf8_nfc(const char *src); // Safely rename a file even if the target exists. // On Windows, the file explorer (or anti-virus or whatever else) often locks the file // for a short while, so the file may not be movable. Retry while we see recoverable errors. -extern std::error_code rename_file(const std::string &from, const std::string &to); +extern int rename_file(const std::string &from, const std::string &to); // Copy a file, adjust the access attributes, so that the target is writable. extern int copy_file(const std::string &from, const std::string &to); @@ -87,9 +86,11 @@ namespace PerlUtils { std::string string_printf(const char *format, ...); +// Timestamp formatted for header_slic3r_generated(). +extern std::string timestamp_str(); // Standard "generated by Slic3r version xxx timestamp xxx" header string, // to be placed at the top of Slic3r generated files. -std::string header_slic3r_generated(); +inline std::string header_slic3r_generated() { return std::string("generated by " SLIC3R_APP_NAME " " SLIC3R_VERSION " " ) + timestamp_str(); } // getpid platform wrapper extern unsigned get_current_pid(); diff --git a/src/libslic3r/libslic3r.h b/src/libslic3r/libslic3r.h index 5117f4bbc62..056212dea2b 100644 --- a/src/libslic3r/libslic3r.h +++ b/src/libslic3r/libslic3r.h @@ -19,7 +19,6 @@ #include #include "Technologies.hpp" -#include "Semver.hpp" typedef int64_t coord_t; typedef double coordf_t; @@ -92,8 +91,6 @@ inline std::string debug_out_path(const char *name, ...) namespace Slic3r { -extern Semver SEMVER; - template inline T unscale(Q v) { return T(v) * T(SCALING_FACTOR); } diff --git a/src/libslic3r/pchheader.hpp b/src/libslic3r/pchheader.hpp index 67b3d3a2145..c0ffe210834 100644 --- a/src/libslic3r/pchheader.hpp +++ b/src/libslic3r/pchheader.hpp @@ -105,8 +105,6 @@ #include #include -#include -#include #include "BoundingBox.hpp" #include "ClipperUtils.hpp" #include "Config.hpp" diff --git a/src/libslic3r/utils.cpp b/src/libslic3r/utils.cpp index 895efdb4d46..f9a04433805 100644 --- a/src/libslic3r/utils.cpp +++ b/src/libslic3r/utils.cpp @@ -6,8 +6,6 @@ #include #include -#include "Time.hpp" - #ifdef WIN32 #include #include @@ -15,13 +13,9 @@ #include #include #include - #include #ifdef BSD #include #endif - #ifdef __APPLE__ - #include - #endif #endif #include @@ -31,9 +25,11 @@ #include #include +#include #include #include #include +#include #include #include @@ -93,10 +89,10 @@ unsigned get_logging_level() } // Force set_logging_level(<=error) after loading of the DLL. -// This is currently only needed if libslic3r is loaded as a shared library into Perl interpreter -// to perform unit and integration tests. +// Switch boost::filesystem to utf8. static struct RunOnInit { RunOnInit() { + boost::nowide::nowide_filesystem(); set_logging_level(1); } } g_RunOnInit; @@ -174,247 +170,67 @@ const std::string& data_dir() return g_data_dir; } -#ifdef _WIN32 -// The following helpers are borrowed from the LLVM project https://github.com/llvm -namespace WindowsSupport -{ - template - class ScopedHandle { - typedef typename HandleTraits::handle_type handle_type; - handle_type Handle; - ScopedHandle(const ScopedHandle &other) = delete; - void operator=(const ScopedHandle &other) = delete; - public: - ScopedHandle() : Handle(HandleTraits::GetInvalid()) {} - explicit ScopedHandle(handle_type h) : Handle(h) {} - ~ScopedHandle() { if (HandleTraits::IsValid(Handle)) HandleTraits::Close(Handle); } - handle_type take() { - handle_type t = Handle; - Handle = HandleTraits::GetInvalid(); - return t; - } - ScopedHandle &operator=(handle_type h) { - if (HandleTraits::IsValid(Handle)) - HandleTraits::Close(Handle); - Handle = h; - return *this; - } - // True if Handle is valid. - explicit operator bool() const { return HandleTraits::IsValid(Handle) ? true : false; } - operator handle_type() const { return Handle; } - }; - - struct CommonHandleTraits { - typedef HANDLE handle_type; - static handle_type GetInvalid() { return INVALID_HANDLE_VALUE; } - static void Close(handle_type h) { ::CloseHandle(h); } - static bool IsValid(handle_type h) { return h != GetInvalid(); } - }; - - typedef ScopedHandle ScopedFileHandle; - - std::error_code map_windows_error(unsigned windows_error_code) - { - #define MAP_ERR_TO_COND(x, y) case x: return std::make_error_code(std::errc::y) - switch (windows_error_code) { - MAP_ERR_TO_COND(ERROR_ACCESS_DENIED, permission_denied); - MAP_ERR_TO_COND(ERROR_ALREADY_EXISTS, file_exists); - MAP_ERR_TO_COND(ERROR_BAD_UNIT, no_such_device); - MAP_ERR_TO_COND(ERROR_BUFFER_OVERFLOW, filename_too_long); - MAP_ERR_TO_COND(ERROR_BUSY, device_or_resource_busy); - MAP_ERR_TO_COND(ERROR_BUSY_DRIVE, device_or_resource_busy); - MAP_ERR_TO_COND(ERROR_CANNOT_MAKE, permission_denied); - MAP_ERR_TO_COND(ERROR_CANTOPEN, io_error); - MAP_ERR_TO_COND(ERROR_CANTREAD, io_error); - MAP_ERR_TO_COND(ERROR_CANTWRITE, io_error); - MAP_ERR_TO_COND(ERROR_CURRENT_DIRECTORY, permission_denied); - MAP_ERR_TO_COND(ERROR_DEV_NOT_EXIST, no_such_device); - MAP_ERR_TO_COND(ERROR_DEVICE_IN_USE, device_or_resource_busy); - MAP_ERR_TO_COND(ERROR_DIR_NOT_EMPTY, directory_not_empty); - MAP_ERR_TO_COND(ERROR_DIRECTORY, invalid_argument); - MAP_ERR_TO_COND(ERROR_DISK_FULL, no_space_on_device); - MAP_ERR_TO_COND(ERROR_FILE_EXISTS, file_exists); - MAP_ERR_TO_COND(ERROR_FILE_NOT_FOUND, no_such_file_or_directory); - MAP_ERR_TO_COND(ERROR_HANDLE_DISK_FULL, no_space_on_device); - MAP_ERR_TO_COND(ERROR_INVALID_ACCESS, permission_denied); - MAP_ERR_TO_COND(ERROR_INVALID_DRIVE, no_such_device); - MAP_ERR_TO_COND(ERROR_INVALID_FUNCTION, function_not_supported); - MAP_ERR_TO_COND(ERROR_INVALID_HANDLE, invalid_argument); - MAP_ERR_TO_COND(ERROR_INVALID_NAME, invalid_argument); - MAP_ERR_TO_COND(ERROR_LOCK_VIOLATION, no_lock_available); - MAP_ERR_TO_COND(ERROR_LOCKED, no_lock_available); - MAP_ERR_TO_COND(ERROR_NEGATIVE_SEEK, invalid_argument); - MAP_ERR_TO_COND(ERROR_NOACCESS, permission_denied); - MAP_ERR_TO_COND(ERROR_NOT_ENOUGH_MEMORY, not_enough_memory); - MAP_ERR_TO_COND(ERROR_NOT_READY, resource_unavailable_try_again); - MAP_ERR_TO_COND(ERROR_OPEN_FAILED, io_error); - MAP_ERR_TO_COND(ERROR_OPEN_FILES, device_or_resource_busy); - MAP_ERR_TO_COND(ERROR_OUTOFMEMORY, not_enough_memory); - MAP_ERR_TO_COND(ERROR_PATH_NOT_FOUND, no_such_file_or_directory); - MAP_ERR_TO_COND(ERROR_BAD_NETPATH, no_such_file_or_directory); - MAP_ERR_TO_COND(ERROR_READ_FAULT, io_error); - MAP_ERR_TO_COND(ERROR_RETRY, resource_unavailable_try_again); - MAP_ERR_TO_COND(ERROR_SEEK, io_error); - MAP_ERR_TO_COND(ERROR_SHARING_VIOLATION, permission_denied); - MAP_ERR_TO_COND(ERROR_TOO_MANY_OPEN_FILES, too_many_files_open); - MAP_ERR_TO_COND(ERROR_WRITE_FAULT, io_error); - MAP_ERR_TO_COND(ERROR_WRITE_PROTECT, permission_denied); - MAP_ERR_TO_COND(WSAEACCES, permission_denied); - MAP_ERR_TO_COND(WSAEBADF, bad_file_descriptor); - MAP_ERR_TO_COND(WSAEFAULT, bad_address); - MAP_ERR_TO_COND(WSAEINTR, interrupted); - MAP_ERR_TO_COND(WSAEINVAL, invalid_argument); - MAP_ERR_TO_COND(WSAEMFILE, too_many_files_open); - MAP_ERR_TO_COND(WSAENAMETOOLONG, filename_too_long); - default: - return std::error_code(windows_error_code, std::system_category()); - } - #undef MAP_ERR_TO_COND - } - - static std::error_code rename_internal(HANDLE from_handle, const std::wstring &wide_to, bool replace_if_exists) - { - std::vector rename_info_buf(sizeof(FILE_RENAME_INFO) - sizeof(wchar_t) + (wide_to.size() * sizeof(wchar_t))); - FILE_RENAME_INFO &rename_info = *reinterpret_cast(rename_info_buf.data()); - rename_info.ReplaceIfExists = replace_if_exists; - rename_info.RootDirectory = 0; - rename_info.FileNameLength = DWORD(wide_to.size() * sizeof(wchar_t)); - std::copy(wide_to.begin(), wide_to.end(), &rename_info.FileName[0]); - - ::SetLastError(ERROR_SUCCESS); - if (! ::SetFileInformationByHandle(from_handle, FileRenameInfo, &rename_info, (DWORD)rename_info_buf.size())) { - unsigned Error = GetLastError(); - if (Error == ERROR_SUCCESS) - Error = ERROR_CALL_NOT_IMPLEMENTED; // Wine doesn't always set error code. - return map_windows_error(Error); - } - - return std::error_code(); - } - - static std::error_code real_path_from_handle(HANDLE H, std::wstring &buffer) - { - buffer.resize(MAX_PATH + 1); - DWORD CountChars = ::GetFinalPathNameByHandleW(H, (LPWSTR)buffer.data(), (DWORD)buffer.size() - 1, FILE_NAME_NORMALIZED); - if (CountChars > buffer.size()) { - // The buffer wasn't big enough, try again. In this case the return value *does* indicate the size of the null terminator. - buffer.resize((size_t)CountChars); - CountChars = ::GetFinalPathNameByHandleW(H, (LPWSTR)buffer.data(), (DWORD)buffer.size() - 1, FILE_NAME_NORMALIZED); - } - if (CountChars == 0) - return map_windows_error(GetLastError()); - buffer.resize(CountChars); - return std::error_code(); - } - - std::error_code rename(const std::string &from, const std::string &to) - { - // Convert to utf-16. - std::wstring wide_from = boost::nowide::widen(from); - std::wstring wide_to = boost::nowide::widen(to); - - ScopedFileHandle from_handle; - // Retry this a few times to defeat badly behaved file system scanners. - for (unsigned retry = 0; retry != 200; ++ retry) { - if (retry != 0) - ::Sleep(10); - from_handle = ::CreateFileW((LPWSTR)wide_from.data(), GENERIC_READ | DELETE, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (from_handle) - break; - } - if (! from_handle) - return map_windows_error(GetLastError()); - - // We normally expect this loop to succeed after a few iterations. If it - // requires more than 200 tries, it's more likely that the failures are due to - // a true error, so stop trying. - for (unsigned retry = 0; retry != 200; ++ retry) { - auto errcode = rename_internal(from_handle, wide_to, true); - - if (errcode == std::error_code(ERROR_CALL_NOT_IMPLEMENTED, std::system_category())) { - // Wine doesn't support SetFileInformationByHandle in rename_internal. - // Fall back to MoveFileEx. - if (std::error_code errcode2 = real_path_from_handle(from_handle, wide_from)) - return errcode2; - if (::MoveFileExW((LPCWSTR)wide_from.data(), (LPCWSTR)wide_to.data(), MOVEFILE_REPLACE_EXISTING)) - return std::error_code(); - return map_windows_error(GetLastError()); - } - - if (! errcode || errcode != std::errc::permission_denied) - return errcode; - - // The destination file probably exists and is currently open in another - // process, either because the file was opened without FILE_SHARE_DELETE or - // it is mapped into memory (e.g. using MemoryBuffer). Rename it in order to - // move it out of the way of the source file. Use FILE_FLAG_DELETE_ON_CLOSE - // to arrange for the destination file to be deleted when the other process - // closes it. - ScopedFileHandle to_handle(::CreateFileW((LPCWSTR)wide_to.data(), GENERIC_READ | DELETE, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_DELETE_ON_CLOSE, NULL)); - if (! to_handle) { - auto errcode = map_windows_error(GetLastError()); - // Another process might have raced with us and moved the existing file - // out of the way before we had a chance to open it. If that happens, try - // to rename the source file again. - if (errcode == std::errc::no_such_file_or_directory) - continue; - return errcode; - } - - BY_HANDLE_FILE_INFORMATION FI; - if (! ::GetFileInformationByHandle(to_handle, &FI)) - return map_windows_error(GetLastError()); - - // Try to find a unique new name for the destination file. - for (unsigned unique_id = 0; unique_id != 200; ++ unique_id) { - std::wstring tmp_filename = wide_to + L".tmp" + std::to_wstring(unique_id); - std::error_code errcode = rename_internal(to_handle, tmp_filename, false); - if (errcode) { - if (errcode == std::make_error_code(std::errc::file_exists) || errcode == std::make_error_code(std::errc::permission_denied)) { - // Again, another process might have raced with us and moved the file - // before we could move it. Check whether this is the case, as it - // might have caused the permission denied error. If that was the - // case, we don't need to move it ourselves. - ScopedFileHandle to_handle2(::CreateFileW((LPCWSTR)wide_to.data(), 0, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)); - if (! to_handle2) { - auto errcode = map_windows_error(GetLastError()); - if (errcode == std::errc::no_such_file_or_directory) - break; - return errcode; - } - BY_HANDLE_FILE_INFORMATION FI2; - if (! ::GetFileInformationByHandle(to_handle2, &FI2)) - return map_windows_error(GetLastError()); - if (FI.nFileIndexHigh != FI2.nFileIndexHigh || FI.nFileIndexLow != FI2.nFileIndexLow || FI.dwVolumeSerialNumber != FI2.dwVolumeSerialNumber) - break; - continue; - } - return errcode; - } - break; - } - - // Okay, the old destination file has probably been moved out of the way at - // this point, so try to rename the source file again. Still, another - // process might have raced with us to create and open the destination - // file, so we need to keep doing this until we succeed. - } - - // The most likely root cause. - return std::make_error_code(std::errc::permission_denied); - } -} // namespace WindowsSupport -#endif /* _WIN32 */ // borrowed from LVVM lib/Support/Windows/Path.inc -std::error_code rename_file(const std::string &from, const std::string &to) +int rename_file(const std::string &from, const std::string &to) { + int ec = 0; + #ifdef _WIN32 - return WindowsSupport::rename(from, to); + + // Convert to utf-16. + std::wstring wide_from = boost::nowide::widen(from); + std::wstring wide_to = boost::nowide::widen(to); + + // Retry while we see recoverable errors. + // System scanners (eg. indexer) might open the source file when it is written + // and closed. + bool TryReplace = true; + + // This loop may take more than 2000 x 1ms to finish. + for (int i = 0; i < 2000; ++ i) { + if (i > 0) + // Sleep 1ms + ::Sleep(1); + if (TryReplace) { + // Try ReplaceFile first, as it is able to associate a new data stream + // with the destination even if the destination file is currently open. + if (::ReplaceFileW(wide_to.data(), wide_from.data(), NULL, 0, NULL, NULL)) + return 0; + DWORD ReplaceError = ::GetLastError(); + ec = -1; // ReplaceError + // If ReplaceFileW returned ERROR_UNABLE_TO_MOVE_REPLACEMENT or + // ERROR_UNABLE_TO_MOVE_REPLACEMENT_2, retry but only use MoveFileExW(). + if (ReplaceError == ERROR_UNABLE_TO_MOVE_REPLACEMENT || + ReplaceError == ERROR_UNABLE_TO_MOVE_REPLACEMENT_2) { + TryReplace = false; + continue; + } + // If ReplaceFileW returned ERROR_UNABLE_TO_REMOVE_REPLACED, retry + // using ReplaceFileW(). + if (ReplaceError == ERROR_UNABLE_TO_REMOVE_REPLACED) + continue; + // We get ERROR_FILE_NOT_FOUND if the destination file is missing. + // MoveFileEx can handle this case. + if (ReplaceError != ERROR_ACCESS_DENIED && ReplaceError != ERROR_FILE_NOT_FOUND && ReplaceError != ERROR_SHARING_VIOLATION) + break; + } + if (::MoveFileExW(wide_from.c_str(), wide_to.c_str(), MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING)) + return 0; + DWORD MoveError = ::GetLastError(); + ec = -1; // MoveError + if (MoveError != ERROR_ACCESS_DENIED && MoveError != ERROR_SHARING_VIOLATION) + break; + } + #else + boost::nowide::remove(to.c_str()); - return std::make_error_code(static_cast(boost::nowide::rename(from.c_str(), to.c_str()))); + ec = boost::nowide::rename(from.c_str(), to.c_str()); + #endif + + return ec; } int copy_file(const std::string &from, const std::string &to) @@ -541,9 +357,16 @@ std::string string_printf(const char *format, ...) return res; } -std::string header_slic3r_generated() + +std::string timestamp_str() { - return std::string("generated by " SLIC3R_APP_NAME " " SLIC3R_VERSION " on " ) + Utils::current_utc_time2str(); + const auto now = boost::posix_time::second_clock::local_time(); + char buf[2048]; + sprintf(buf, "on %04d-%02d-%02d at %02d:%02d:%02d", + // Local date in an ANSII format. + int(now.date().year()), int(now.date().month()), int(now.date().day()), + int(now.time_of_day().hours()), int(now.time_of_day().minutes()), int(now.time_of_day().seconds())); + return buf; } unsigned get_current_pid() @@ -608,82 +431,47 @@ std::string format_memsize_MB(size_t n) return out + "MB"; } -// Returns platform-specific string to be used as log output or parsed in SysInfoDialog. -// The latter parses the string with (semi)colons as separators, it should look about as -// "desc1: value1; desc2: value2" or similar (spaces should not matter). -std::string log_memory_info(bool ignore_loglevel) -{ - std::string out; - if (ignore_loglevel || logSeverity <= boost::log::trivial::info) { #ifdef WIN32 - #ifndef PROCESS_MEMORY_COUNTERS_EX - // MingW32 doesn't have this struct in psapi.h - typedef struct _PROCESS_MEMORY_COUNTERS_EX { - DWORD cb; - DWORD PageFaultCount; - SIZE_T PeakWorkingSetSize; - SIZE_T WorkingSetSize; - SIZE_T QuotaPeakPagedPoolUsage; - SIZE_T QuotaPagedPoolUsage; - SIZE_T QuotaPeakNonPagedPoolUsage; - SIZE_T QuotaNonPagedPoolUsage; - SIZE_T PagefileUsage; - SIZE_T PeakPagefileUsage; - SIZE_T PrivateUsage; - } PROCESS_MEMORY_COUNTERS_EX, *PPROCESS_MEMORY_COUNTERS_EX; - #endif /* PROCESS_MEMORY_COUNTERS_EX */ - +#ifndef PROCESS_MEMORY_COUNTERS_EX + // MingW32 doesn't have this struct in psapi.h + typedef struct _PROCESS_MEMORY_COUNTERS_EX { + DWORD cb; + DWORD PageFaultCount; + SIZE_T PeakWorkingSetSize; + SIZE_T WorkingSetSize; + SIZE_T QuotaPeakPagedPoolUsage; + SIZE_T QuotaPagedPoolUsage; + SIZE_T QuotaPeakNonPagedPoolUsage; + SIZE_T QuotaNonPagedPoolUsage; + SIZE_T PagefileUsage; + SIZE_T PeakPagefileUsage; + SIZE_T PrivateUsage; + } PROCESS_MEMORY_COUNTERS_EX, *PPROCESS_MEMORY_COUNTERS_EX; +#endif /* PROCESS_MEMORY_COUNTERS_EX */ + +std::string log_memory_info() +{ + std::string out; + if (logSeverity <= boost::log::trivial::info) { HANDLE hProcess = ::OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, ::GetCurrentProcessId()); if (hProcess != nullptr) { PROCESS_MEMORY_COUNTERS_EX pmc; if (GetProcessMemoryInfo(hProcess, (PROCESS_MEMORY_COUNTERS*)&pmc, sizeof(pmc))) - out = " WorkingSet: " + format_memsize_MB(pmc.WorkingSetSize) + "; PrivateBytes: " + format_memsize_MB(pmc.PrivateUsage) + "; Pagefile(peak): " + format_memsize_MB(pmc.PagefileUsage) + "(" + format_memsize_MB(pmc.PeakPagefileUsage) + ")"; - else - out += " Used memory: N/A"; + out = " WorkingSet: " + format_memsize_MB(pmc.WorkingSetSize) + " PrivateBytes: " + format_memsize_MB(pmc.PrivateUsage) + " Pagefile(peak): " + format_memsize_MB(pmc.PagefileUsage) + "(" + format_memsize_MB(pmc.PeakPagefileUsage) + ")"; CloseHandle(hProcess); } -#elif defined(__linux__) or defined(__APPLE__) - // Get current memory usage. - #ifdef __APPLE__ - struct mach_task_basic_info info; - mach_msg_type_number_t infoCount = MACH_TASK_BASIC_INFO_COUNT; - out += " Resident memory: "; - if ( task_info( mach_task_self( ), MACH_TASK_BASIC_INFO, (task_info_t)&info, &infoCount ) == KERN_SUCCESS ) - out += format_memsize_MB((size_t)info.resident_size); - else - out += "N/A"; - #else // i.e. __linux__ - size_t tSize = 0, resident = 0, share = 0; - std::ifstream buffer("/proc/self/statm"); - if (buffer && (buffer >> tSize >> resident >> share)) { - size_t page_size = (size_t)sysconf(_SC_PAGE_SIZE); // in case x86-64 is configured to use 2MB pages - size_t rss = resident * page_size; - out += " Resident memory: " + format_memsize_MB(rss); - out += "; Shared memory: " + format_memsize_MB(share * page_size); - out += "; Private memory: " + format_memsize_MB(rss - share * page_size); - } - else - out += " Used memory: N/A"; - #endif - // Now get peak memory usage. - out += "; Peak memory usage: "; - rusage memory_info; - if (getrusage(RUSAGE_SELF, &memory_info) == 0) - { - size_t peak_mem_usage = (size_t)memory_info.ru_maxrss; - #ifdef __linux__ - peak_mem_usage *= 1024;// getrusage returns the value in kB on linux - #endif - out += format_memsize_MB(peak_mem_usage); - } - else - out += "N/A"; -#endif } return out; } +#else +std::string log_memory_info() +{ + return std::string(); +} +#endif + // Returns the size of physical memory (RAM) in bytes. // http://nadeausoftware.com/articles/2012/09/c_c_tip_how_get_physical_memory_size_system size_t total_physical_memory() diff --git a/src/semver/CMakeLists.txt b/src/semver/CMakeLists.txt index c273121d49a..e3457bf2910 100644 --- a/src/semver/CMakeLists.txt +++ b/src/semver/CMakeLists.txt @@ -5,5 +5,3 @@ add_library(semver STATIC semver.c semver.h ) - -encoding_check(semver) diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 17b76e62962..e3a910d6d28 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -85,12 +85,8 @@ set(SLIC3R_GUI_SOURCES GUI/GUI_ObjectLayers.hpp GUI/LambdaObjectDialog.cpp GUI/LambdaObjectDialog.hpp - GUI/MeshUtils.cpp - GUI/MeshUtils.hpp GUI/Tab.cpp GUI/Tab.hpp - GUI/ConfigManipulation.cpp - GUI/ConfigManipulation.hpp GUI/Field.cpp GUI/Field.hpp GUI/OptionsGroup.cpp @@ -150,6 +146,8 @@ set(SLIC3R_GUI_SOURCES Utils/Bonjour.hpp Utils/PresetUpdater.cpp Utils/PresetUpdater.hpp + Utils/Time.cpp + Utils/Time.hpp Utils/UndoRedo.cpp Utils/UndoRedo.hpp Utils/HexFile.cpp @@ -165,8 +163,6 @@ endif () add_library(libslic3r_gui STATIC ${SLIC3R_GUI_SOURCES}) -encoding_check(libslic3r_gui) - target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui ${GLEW_LIBRARIES}) if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY) add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE) diff --git a/src/slic3r/Config/Snapshot.cpp b/src/slic3r/Config/Snapshot.cpp index 622b31a178d..b208554b50b 100644 --- a/src/slic3r/Config/Snapshot.cpp +++ b/src/slic3r/Config/Snapshot.cpp @@ -1,6 +1,7 @@ #include "Snapshot.hpp" #include "../GUI/AppConfig.hpp" #include "../GUI/PresetBundle.hpp" +#include "../Utils/Time.hpp" #include @@ -12,7 +13,6 @@ #include #include "libslic3r/libslic3r.h" -#include "libslic3r/Time.hpp" #include "libslic3r/Config.hpp" #include "libslic3r/FileParserError.hpp" #include "libslic3r/Utils.hpp" @@ -202,9 +202,9 @@ void Snapshot::export_selections(AppConfig &config) const config.clear_section("presets"); config.set("presets", "print", print); config.set("presets", "filament", filaments.front()); - for (unsigned i = 1; i < filaments.size(); ++i) { + for (int i = 1; i < filaments.size(); ++i) { char name[64]; - sprintf(name, "filament_%u", i); + sprintf(name, "filament_%d", i); config.set("presets", name, filaments[i]); } config.set("presets", "printer", printer); @@ -366,16 +366,16 @@ const Snapshot& SnapshotDB::take_snapshot(const AppConfig &app_config, Snapshot: // Snapshot header. snapshot.time_captured = Slic3r::Utils::get_current_time_utc(); snapshot.id = Slic3r::Utils::format_time_ISO8601Z(snapshot.time_captured); - snapshot.slic3r_version_captured = Slic3r::SEMVER; + snapshot.slic3r_version_captured = *Semver::parse(SLIC3R_VERSION); // XXX: have Semver Slic3r version snapshot.comment = comment; snapshot.reason = reason; // Active presets at the time of the snapshot. snapshot.print = app_config.get("presets", "print"); snapshot.filaments.emplace_back(app_config.get("presets", "filament")); snapshot.printer = app_config.get("presets", "printer"); - for (unsigned i = 1; i < 1000; ++ i) { + for (unsigned int i = 1; i < 1000; ++ i) { char name[64]; - sprintf(name, "filament_%u", i); + sprintf(name, "filament_%d", i); if (! app_config.has("presets", name)) break; snapshot.filaments.emplace_back(app_config.get("presets", name)); diff --git a/src/slic3r/Config/Snapshot.hpp b/src/slic3r/Config/Snapshot.hpp index 9a73916916a..a916dfe92a2 100644 --- a/src/slic3r/Config/Snapshot.hpp +++ b/src/slic3r/Config/Snapshot.hpp @@ -8,8 +8,8 @@ #include -#include "libslic3r/Semver.hpp" #include "Version.hpp" +#include "../Utils/Semver.hpp" namespace Slic3r { diff --git a/src/slic3r/Config/Version.cpp b/src/slic3r/Config/Version.cpp index 175abff69aa..865884c6fee 100644 --- a/src/slic3r/Config/Version.cpp +++ b/src/slic3r/Config/Version.cpp @@ -15,6 +15,7 @@ namespace Slic3r { namespace GUI { namespace Config { +static const Semver s_current_slic3r_semver(SLIC3R_VERSION); // Optimized lexicographic compare of two pre-release versions, ignoring the numeric suffix. static int compare_prerelease(const char *p1, const char *p2) @@ -63,7 +64,7 @@ bool Version::is_slic3r_supported(const Semver &slic3r_version) const bool Version::is_current_slic3r_supported() const { - return this->is_slic3r_supported(Slic3r::SEMVER); + return this->is_slic3r_supported(s_current_slic3r_semver); } #if 0 diff --git a/src/slic3r/Config/Version.hpp b/src/slic3r/Config/Version.hpp index 19c565ffb42..560bc29c217 100644 --- a/src/slic3r/Config/Version.hpp +++ b/src/slic3r/Config/Version.hpp @@ -7,7 +7,7 @@ #include #include "libslic3r/FileParserError.hpp" -#include "libslic3r/Semver.hpp" +#include "../Utils/Semver.hpp" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 4185b666461..97e200b38ea 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -474,10 +474,10 @@ void Bed3D::render_texture(const std::string& filename, bool bottom, GLCanvas3D& m_requires_canvas_update = true; } else if (m_requires_canvas_update && m_texture.all_compressed_data_sent_to_gpu()) - m_requires_canvas_update = false; - - if (m_texture.all_compressed_data_sent_to_gpu() && canvas.is_keeping_dirty()) + { canvas.stop_keeping_dirty(); + m_requires_canvas_update = false; + } if (m_triangles.get_vertices_count() > 0) { @@ -609,12 +609,10 @@ void Bed3D::render_default(bool bottom) const if (!has_model && !bottom) { // draw background - glsafe(::glDepthMask(GL_FALSE)); glsafe(::glColor4f(0.35f, 0.35f, 0.35f, 0.4f)); glsafe(::glNormal3d(0.0f, 0.0f, 1.0f)); glsafe(::glVertexPointer(3, GL_FLOAT, m_triangles.get_vertex_data_size(), (GLvoid*)m_triangles.get_vertices_data())); glsafe(::glDrawArrays(GL_TRIANGLES, 0, (GLsizei)triangles_vcount)); - glsafe(::glDepthMask(GL_TRUE)); } // draw grid diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index 5fd85df7543..3c51ca52745 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -12,7 +12,6 @@ #include "libslic3r/GCode/Analyzer.hpp" #include "slic3r/GUI/PresetBundle.hpp" #include "libslic3r/Format/STL.hpp" -#include "libslic3r/Utils.hpp" #include #include @@ -25,8 +24,6 @@ #include #include -#include - #include #include @@ -77,19 +74,15 @@ void GLIndexedVertexArray::load_mesh_full_shading(const TriangleMesh &mesh) } } -void GLIndexedVertexArray::finalize_geometry(bool opengl_initialized) +void GLIndexedVertexArray::finalize_geometry() const { assert(this->vertices_and_normals_interleaved_VBO_id == 0); assert(this->triangle_indices_VBO_id == 0); assert(this->quad_indices_VBO_id == 0); - if (! opengl_initialized) { - // Shrink the data vectors to conserve memory in case the data cannot be transfered to the OpenGL driver yet. - this->shrink_to_fit(); - return; - } + this->shrink_to_fit(); - if (! this->vertices_and_normals_interleaved.empty()) { + if (! empty()) { glsafe(::glGenBuffers(1, &this->vertices_and_normals_interleaved_VBO_id)); glsafe(::glBindBuffer(GL_ARRAY_BUFFER, this->vertices_and_normals_interleaved_VBO_id)); glsafe(::glBufferData(GL_ARRAY_BUFFER, this->vertices_and_normals_interleaved.size() * 4, this->vertices_and_normals_interleaved.data(), GL_STATIC_DRAW)); @@ -131,8 +124,13 @@ void GLIndexedVertexArray::release_geometry() void GLIndexedVertexArray::render() const { - assert(this->vertices_and_normals_interleaved_VBO_id != 0); - assert(this->triangle_indices_VBO_id != 0 || this->quad_indices_VBO_id != 0); + if (this->vertices_and_normals_interleaved_VBO_id == 0) + { + // sends data to gpu, if not done yet + finalize_geometry(); + if (this->vertices_and_normals_interleaved_VBO_id == 0) + return; + } glsafe(::glBindBuffer(GL_ARRAY_BUFFER, this->vertices_and_normals_interleaved_VBO_id)); glsafe(::glVertexPointer(3, GL_FLOAT, 6 * sizeof(float), (const void*)(3 * sizeof(float)))); @@ -163,8 +161,13 @@ void GLIndexedVertexArray::render( const std::pair& tverts_range, const std::pair& qverts_range) const { - assert(this->vertices_and_normals_interleaved_VBO_id != 0); - assert(this->triangle_indices_VBO_id != 0 || this->quad_indices_VBO_id != 0); + if (this->vertices_and_normals_interleaved_VBO_id == 0) + { + // sends data to gpu, if not done yet + finalize_geometry(); + if (this->vertices_and_normals_interleaved_VBO_id == 0) + return; + } // Render using the Vertex Buffer Objects. glsafe(::glBindBuffer(GL_ARRAY_BUFFER, this->vertices_and_normals_interleaved_VBO_id)); @@ -215,7 +218,6 @@ GLVolume::GLVolume(float r, float g, float b, float a) , extruder_id(0) , selected(false) , disabled(false) - , printable(true) , is_active(true) , zoom_to_volumes(true) , shader_outside_printer_detection_enabled(false) @@ -273,13 +275,6 @@ void GLVolume::set_render_color() set_render_color(color, 4); } - if (!printable) - { - render_color[0] /= 4; - render_color[1] /= 4; - render_color[2] /= 4; - } - if (force_transparent) render_color[3] = color[3]; } @@ -420,32 +415,30 @@ bool GLVolume::is_sla_support() const { return this->composite_id.volume_id == - bool GLVolume::is_sla_pad() const { return this->composite_id.volume_id == -int(slaposBasePool); } std::vector GLVolumeCollection::load_object( - const ModelObject *model_object, + const ModelObject* model_object, int obj_idx, - const std::vector &instance_idxs, - const std::string &color_by, - bool opengl_initialized) + const std::vector& instance_idxs, + const std::string& color_by) { std::vector volumes_idx; for (int volume_idx = 0; volume_idx < int(model_object->volumes.size()); ++volume_idx) for (int instance_idx : instance_idxs) - volumes_idx.emplace_back(this->GLVolumeCollection::load_object_volume(model_object, obj_idx, volume_idx, instance_idx, color_by, opengl_initialized)); + volumes_idx.emplace_back(this->GLVolumeCollection::load_object_volume(model_object, obj_idx, volume_idx, instance_idx, color_by)); return volumes_idx; } int GLVolumeCollection::load_object_volume( - const ModelObject *model_object, - int obj_idx, - int volume_idx, - int instance_idx, - const std::string &color_by, - bool opengl_initialized) -{ - const ModelVolume *model_volume = model_object->volumes[volume_idx]; - const int extruder_id = model_volume->extruder_id(); - const ModelInstance *instance = model_object->instances[instance_idx]; - const TriangleMesh &mesh = model_volume->mesh(); - float color[4]; + const ModelObject* model_object, + int obj_idx, + int volume_idx, + int instance_idx, + const std::string& color_by) +{ + const ModelVolume* model_volume = model_object->volumes[volume_idx]; + const int extruder_id = model_volume->extruder_id(); + const ModelInstance* instance = model_object->instances[instance_idx]; + const TriangleMesh& mesh = model_volume->mesh(); + float color[4]; memcpy(color, GLVolume::MODEL_COLOR[((color_by == "volume") ? volume_idx : obj_idx) % 4], sizeof(float) * 3); /* if (model_volume->is_support_blocker()) { color[0] = 1.0f; @@ -462,7 +455,6 @@ int GLVolumeCollection::load_object_volume( GLVolume& v = *this->volumes.back(); v.set_color_from_model_volume(model_volume); v.indexed_vertex_array.load_mesh(mesh); - v.indexed_vertex_array.finalize_geometry(opengl_initialized); v.composite_id = GLVolume::CompositeID(obj_idx, volume_idx, instance_idx); if (model_volume->is_model_part()) { @@ -483,14 +475,13 @@ int GLVolumeCollection::load_object_volume( // This function produces volumes for multiple instances in a single shot, // as some object specific mesh conversions may be expensive. void GLVolumeCollection::load_object_auxiliary( - const SLAPrintObject *print_object, + const SLAPrintObject* print_object, int obj_idx, // pairs of const std::vector>& instances, SLAPrintObjectStep milestone, // Timestamp of the last change of the milestone - size_t timestamp, - bool opengl_initialized) + size_t timestamp) { assert(print_object->is_step_done(milestone)); Transform3d mesh_trafo_inv = print_object->trafo().inverse(); @@ -504,7 +495,6 @@ void GLVolumeCollection::load_object_auxiliary( this->volumes.emplace_back(new GLVolume((milestone == slaposBasePool) ? GLVolume::SLA_PAD_COLOR : GLVolume::SLA_SUPPORT_COLOR)); GLVolume& v = *this->volumes.back(); v.indexed_vertex_array.load_mesh(mesh); - v.indexed_vertex_array.finalize_geometry(opengl_initialized); v.composite_id = GLVolume::CompositeID(obj_idx, -int(milestone), (int)instance_idx.first); v.geometry_id = std::pair(timestamp, model_instance.id().id); // Create a copy of the convex hull mesh for each instance. Use a move operator on the last instance. @@ -521,7 +511,7 @@ void GLVolumeCollection::load_object_auxiliary( } int GLVolumeCollection::load_wipe_tower_preview( - int obj_idx, float pos_x, float pos_y, float width, float depth, float height, float rotation_angle, bool size_unknown, float brim_width, bool opengl_initialized) + int obj_idx, float pos_x, float pos_y, float width, float depth, float height, float rotation_angle, bool size_unknown, float brim_width) { if (depth < 0.01f) return int(this->volumes.size() - 1); @@ -574,7 +564,6 @@ int GLVolumeCollection::load_wipe_tower_preview( this->volumes.emplace_back(new GLVolume(color)); GLVolume& v = *this->volumes.back(); v.indexed_vertex_array.load_mesh(mesh); - v.indexed_vertex_array.finalize_geometry(opengl_initialized); v.set_volume_offset(Vec3d(pos_x, pos_y, 0.0)); v.set_volume_rotation(Vec3d(0., 0., (M_PI / 180.) * rotation_angle)); v.composite_id = GLVolume::CompositeID(obj_idx, 0, 0); @@ -585,23 +574,6 @@ int GLVolumeCollection::load_wipe_tower_preview( return int(this->volumes.size() - 1); } -GLVolume* GLVolumeCollection::new_toolpath_volume(const float *rgba, size_t reserve_vbo_floats) -{ - GLVolume *out = new_nontoolpath_volume(rgba, reserve_vbo_floats); - out->is_extrusion_path = true; - return out; -} - -GLVolume* GLVolumeCollection::new_nontoolpath_volume(const float *rgba, size_t reserve_vbo_floats) -{ - GLVolume *out = new GLVolume(rgba); - out->is_extrusion_path = false; - // Reserving number of vertices (3x position + 3x color) - out->indexed_vertex_array.reserve(reserve_vbo_floats / 6); - this->volumes.emplace_back(out); - return out; -} - GLVolumeWithIdAndZList volumes_to_render(const GLVolumePtrs& volumes, GLVolumeCollection::ERenderType type, const Transform3d& view_matrix, std::function filter_func) { GLVolumeWithIdAndZList list; @@ -713,7 +685,7 @@ bool GLVolumeCollection::check_outside_state(const DynamicPrintConfig* config, M for (GLVolume* volume : this->volumes) { - if ((volume == nullptr) || !volume->printable || volume->is_modifier || (volume->is_wipe_tower && !volume->shader_outside_printer_detection_enabled) || ((volume->composite_id.volume_id < 0) && !volume->shader_outside_printer_detection_enabled)) + if ((volume == nullptr) || volume->is_modifier || (volume->is_wipe_tower && !volume->shader_outside_printer_detection_enabled) || ((volume->composite_id.volume_id < 0) && !volume->shader_outside_printer_detection_enabled)) continue; const BoundingBoxf3& bb = volume->transformed_convex_hull_bounding_box(); @@ -851,334 +823,6 @@ std::vector GLVolumeCollection::get_current_print_zs(bool active_only) c return print_zs; } -size_t GLVolumeCollection::cpu_memory_used() const -{ - size_t memsize = sizeof(*this) + this->volumes.capacity() * sizeof(GLVolume); - for (const GLVolume *volume : this->volumes) - memsize += volume->cpu_memory_used(); - return memsize; -} - -size_t GLVolumeCollection::gpu_memory_used() const -{ - size_t memsize = 0; - for (const GLVolume *volume : this->volumes) - memsize += volume->gpu_memory_used(); - return memsize; -} - -std::string GLVolumeCollection::log_memory_info() const -{ - return " (GLVolumeCollection RAM: " + format_memsize_MB(this->cpu_memory_used()) + " GPU: " + format_memsize_MB(this->gpu_memory_used()) + " Both: " + format_memsize_MB(this->gpu_memory_used()) + ")"; -} - -bool can_export_to_obj(const GLVolume& volume) -{ - if (!volume.is_active || !volume.is_extrusion_path) - return false; - - if (volume.indexed_vertex_array.triangle_indices.empty() && (std::min(volume.indexed_vertex_array.triangle_indices_size, volume.tverts_range.second - volume.tverts_range.first) == 0)) - return false; - - if (volume.indexed_vertex_array.quad_indices.empty() && (std::min(volume.indexed_vertex_array.quad_indices_size, volume.qverts_range.second - volume.qverts_range.first) == 0)) - return false; - - return true; -} - -bool GLVolumeCollection::has_toolpaths_to_export() const -{ - for (const GLVolume* volume : this->volumes) - { - if (can_export_to_obj(*volume)) - return true; - } - - return false; -} - -void GLVolumeCollection::export_toolpaths_to_obj(const char* filename) const -{ - if (filename == nullptr) - return; - - if (!has_toolpaths_to_export()) - return; - - // collect color information to generate materials - typedef std::array Color; - std::set colors; - for (const GLVolume* volume : this->volumes) - { - if (!can_export_to_obj(*volume)) - continue; - - Color color; - ::memcpy((void*)color.data(), (const void*)volume->color, 4 * sizeof(float)); - colors.insert(color); - } - - // save materials file - boost::filesystem::path mat_filename(filename); - mat_filename.replace_extension("mtl"); - FILE* fp = boost::nowide::fopen(mat_filename.string().c_str(), "w"); - if (fp == nullptr) { - BOOST_LOG_TRIVIAL(error) << "GLVolumeCollection::export_toolpaths_to_obj: Couldn't open " << mat_filename.string().c_str() << " for writing"; - return; - } - - fprintf(fp, "# G-Code Toolpaths Materials\n"); - fprintf(fp, "# Generated by %s based on Slic3r\n", SLIC3R_BUILD_ID); - - unsigned int colors_count = 1; - for (const Color& color : colors) - { - fprintf(fp, "\nnewmtl material_%d\n", colors_count++); - fprintf(fp, "Ka 1 1 1\n"); - fprintf(fp, "Kd %f %f %f\n", color[0], color[1], color[2]); - fprintf(fp, "Ks 0 0 0\n"); - } - - fclose(fp); - - // save geometry file - fp = boost::nowide::fopen(filename, "w"); - if (fp == nullptr) { - BOOST_LOG_TRIVIAL(error) << "GLVolumeCollection::export_toolpaths_to_obj: Couldn't open " << filename << " for writing"; - return; - } - - fprintf(fp, "# G-Code Toolpaths\n"); - fprintf(fp, "# Generated by %s based on Slic3r\n", SLIC3R_BUILD_ID); - fprintf(fp, "\nmtllib ./%s\n", mat_filename.filename().string().c_str()); - - unsigned int vertices_count = 0; - unsigned int normals_count = 0; - unsigned int volumes_count = 0; - - for (const GLVolume* volume : this->volumes) - { - if (!can_export_to_obj(*volume)) - continue; - - std::vector src_vertices_and_normals_interleaved; - std::vector src_triangle_indices; - std::vector src_quad_indices; - - if (!volume->indexed_vertex_array.vertices_and_normals_interleaved.empty()) - // data are in CPU memory - src_vertices_and_normals_interleaved = volume->indexed_vertex_array.vertices_and_normals_interleaved; - else if ((volume->indexed_vertex_array.vertices_and_normals_interleaved_VBO_id != 0) && (volume->indexed_vertex_array.vertices_and_normals_interleaved_size != 0)) - { - // data are in GPU memory - src_vertices_and_normals_interleaved = std::vector(volume->indexed_vertex_array.vertices_and_normals_interleaved_size, 0.0f); - - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, volume->indexed_vertex_array.vertices_and_normals_interleaved_VBO_id)); - glsafe(::glGetBufferSubData(GL_ARRAY_BUFFER, 0, src_vertices_and_normals_interleaved.size() * sizeof(float), src_vertices_and_normals_interleaved.data())); - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, 0)); - } - else - continue; - - if (!volume->indexed_vertex_array.triangle_indices.empty()) - { - // data are in CPU memory - size_t size = std::min(volume->indexed_vertex_array.triangle_indices.size(), volume->tverts_range.second - volume->tverts_range.first); - if (size != 0) - { - std::vector::const_iterator it_begin = volume->indexed_vertex_array.triangle_indices.begin() + volume->tverts_range.first; - std::vector::const_iterator it_end = volume->indexed_vertex_array.triangle_indices.begin() + volume->tverts_range.first + size; - std::copy(it_begin, it_end, std::back_inserter(src_triangle_indices)); - } - } - else if ((volume->indexed_vertex_array.triangle_indices_VBO_id != 0) && (volume->indexed_vertex_array.triangle_indices_size != 0)) - { - // data are in GPU memory - size_t size = std::min(volume->indexed_vertex_array.triangle_indices_size, volume->tverts_range.second - volume->tverts_range.first); - if (size != 0) - { - src_triangle_indices = std::vector(size, 0); - - glsafe(::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, volume->indexed_vertex_array.triangle_indices_VBO_id)); - glsafe(::glGetBufferSubData(GL_ELEMENT_ARRAY_BUFFER, volume->tverts_range.first * sizeof(int), size * sizeof(int), src_triangle_indices.data())); - glsafe(::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0)); - } - } - - if (!volume->indexed_vertex_array.quad_indices.empty()) - { - // data are in CPU memory - size_t size = std::min(volume->indexed_vertex_array.quad_indices.size(), volume->qverts_range.second - volume->qverts_range.first); - if (size != 0) - { - std::vector::const_iterator it_begin = volume->indexed_vertex_array.quad_indices.begin() + volume->qverts_range.first; - std::vector::const_iterator it_end = volume->indexed_vertex_array.quad_indices.begin() + volume->qverts_range.first + size; - std::copy(it_begin, it_end, std::back_inserter(src_quad_indices)); - } - } - else if ((volume->indexed_vertex_array.quad_indices_VBO_id != 0) && (volume->indexed_vertex_array.quad_indices_size != 0)) - { - // data are in GPU memory - size_t size = std::min(volume->indexed_vertex_array.quad_indices_size, volume->qverts_range.second - volume->qverts_range.first); - if (size != 0) - { - src_quad_indices = std::vector(size, 0); - - glsafe(::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, volume->indexed_vertex_array.quad_indices_VBO_id)); - glsafe(::glGetBufferSubData(GL_ELEMENT_ARRAY_BUFFER, volume->qverts_range.first * sizeof(int), size * sizeof(int), src_quad_indices.data())); - glsafe(::glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0)); - } - } - - if (src_triangle_indices.empty() && src_quad_indices.empty()) - continue; - - ++volumes_count; - - // reduce output size by keeping only used vertices and normals - - struct Vector - { - std::array vector; - - explicit Vector(float* ptr) - { - vector[0] = scale_(*(ptr + 0)); - vector[1] = scale_(*(ptr + 1)); - vector[2] = scale_(*(ptr + 2)); - } - }; - typedef std::vector Vectors; - - auto vector_less = [](const Vector& v1, const Vector& v2)->bool { - return v1.vector < v2.vector; - }; - - auto vector_equal = [](const Vector& v1, const Vector& v2)->bool { - return (v1.vector[0] == v2.vector[0]) && (v1.vector[1] == v2.vector[1]) && (v1.vector[2] == v2.vector[2]); - }; - - // copy used vertices and normals data - Vectors dst_normals; - Vectors dst_vertices; - - unsigned int src_triangle_indices_size = (unsigned int)src_triangle_indices.size(); - for (unsigned int i = 0; i < src_triangle_indices_size; ++i) - { - float* src_ptr = src_vertices_and_normals_interleaved.data() + src_triangle_indices[i] * 6; - dst_normals.emplace_back(src_ptr + 0); - dst_vertices.emplace_back(src_ptr + 3); - } - - unsigned int src_quad_indices_size = (unsigned int)src_quad_indices.size(); - for (unsigned int i = 0; i < src_quad_indices_size; ++i) - { - float* src_ptr = src_vertices_and_normals_interleaved.data() + src_quad_indices[i] * 6; - dst_normals.emplace_back(src_ptr + 0); - dst_vertices.emplace_back(src_ptr + 3); - } - - // sort vertices and normals - std::sort(dst_normals.begin(), dst_normals.end(), vector_less); - std::sort(dst_vertices.begin(), dst_vertices.end(), vector_less); - - // remove duplicated vertices and normals - dst_normals.erase(std::unique(dst_normals.begin(), dst_normals.end(), vector_equal), dst_normals.end()); - dst_vertices.erase(std::unique(dst_vertices.begin(), dst_vertices.end(), vector_equal), dst_vertices.end()); - - // reindex triangles and quads - struct IndicesPair - { - int vertex; - int normal; - IndicesPair(int vertex, int normal) : vertex(vertex), normal(normal) {} - }; - typedef std::vector Indices; - - unsigned int src_vertices_count = (unsigned int)src_vertices_and_normals_interleaved.size() / 6; - std::vector src_dst_vertex_indices_map(src_vertices_count, -1); - std::vector src_dst_normal_indices_map(src_vertices_count, -1); - - for (unsigned int i = 0; i < src_vertices_count; ++i) - { - float* src_ptr = src_vertices_and_normals_interleaved.data() + i * 6; - src_dst_normal_indices_map[i] = std::distance(dst_normals.begin(), std::lower_bound(dst_normals.begin(), dst_normals.end(), Vector(src_ptr + 0), vector_less)); - src_dst_vertex_indices_map[i] = std::distance(dst_vertices.begin(), std::lower_bound(dst_vertices.begin(), dst_vertices.end(), Vector(src_ptr + 3), vector_less)); - } - - Indices dst_triangle_indices; - if (src_triangle_indices_size > 0) - dst_triangle_indices.reserve(src_triangle_indices_size); - - for (unsigned int i = 0; i < src_triangle_indices_size; ++i) - { - int id = src_triangle_indices[i]; - dst_triangle_indices.emplace_back(src_dst_vertex_indices_map[id], src_dst_normal_indices_map[id]); - } - - Indices dst_quad_indices; - if (src_quad_indices_size > 0) - dst_quad_indices.reserve(src_quad_indices_size); - - for (unsigned int i = 0; i < src_quad_indices_size; ++i) - { - int id = src_quad_indices[i]; - dst_quad_indices.emplace_back(src_dst_vertex_indices_map[id], src_dst_normal_indices_map[id]); - } - - // save to file - fprintf(fp, "\n# vertices volume %d\n", volumes_count); - for (const Vector& v : dst_vertices) - { - fprintf(fp, "v %g %g %g\n", unscale(v.vector[0]), unscale(v.vector[1]), unscale(v.vector[2])); - } - - fprintf(fp, "\n# normals volume %d\n", volumes_count); - for (const Vector& n : dst_normals) - { - fprintf(fp, "vn %g %g %g\n", unscale(n.vector[0]), unscale(n.vector[1]), unscale(n.vector[2])); - } - - Color color; - ::memcpy((void*)color.data(), (const void*)volume->color, 4 * sizeof(float)); - fprintf(fp, "\n# material volume %d\n", volumes_count); - fprintf(fp, "usemtl material_%lld\n", (long long)(1 + std::distance(colors.begin(), colors.find(color)))); - - int base_vertex_id = vertices_count + 1; - int base_normal_id = normals_count + 1; - - if (!dst_triangle_indices.empty()) - { - fprintf(fp, "\n# triangular facets volume %d\n", volumes_count); - for (unsigned int i = 0; i < (unsigned int)dst_triangle_indices.size(); i += 3) - { - fprintf(fp, "f %d//%d %d//%d %d//%d\n", - base_vertex_id + dst_triangle_indices[i + 0].vertex, base_normal_id + dst_triangle_indices[i + 0].normal, - base_vertex_id + dst_triangle_indices[i + 1].vertex, base_normal_id + dst_triangle_indices[i + 1].normal, - base_vertex_id + dst_triangle_indices[i + 2].vertex, base_normal_id + dst_triangle_indices[i + 2].normal); - } - } - - if (!dst_quad_indices.empty()) - { - fprintf(fp, "\n# quadrangular facets volume %d\n", volumes_count); - for (unsigned int i = 0; i < (unsigned int)src_quad_indices.size(); i += 4) - { - fprintf(fp, "f %d//%d %d//%d %d//%d %d//%d\n", - base_vertex_id + dst_quad_indices[i + 0].vertex, base_normal_id + dst_quad_indices[i + 0].normal, - base_vertex_id + dst_quad_indices[i + 1].vertex, base_normal_id + dst_quad_indices[i + 1].normal, - base_vertex_id + dst_quad_indices[i + 2].vertex, base_normal_id + dst_quad_indices[i + 2].normal, - base_vertex_id + dst_quad_indices[i + 3].vertex, base_normal_id + dst_quad_indices[i + 3].normal); - } - } - - vertices_count += (unsigned int)dst_vertices.size(); - normals_count += (unsigned int)dst_normals.size(); - } - - fclose(fp); -} - // caller is responsible for supplying NO lines with zero length static void thick_lines_to_indexed_vertex_array( const Lines &lines, @@ -1242,8 +886,8 @@ static void thick_lines_to_indexed_vertex_array( // calculate new XY normals Vec2d xy_right_normal = unscale(line.normal()).normalized(); - int idx_a[4] = { 0, 0, 0, 0 }; // initialized to avoid warnings - int idx_b[4] = { 0, 0, 0, 0 }; // initialized to avoid warnings + int idx_a[4]; + int idx_b[4]; int idx_last = int(volume.vertices_and_normals_interleaved.size() / 6); bool bottom_z_different = bottom_z_prev != bottom_z; @@ -1950,7 +1594,6 @@ bool GLArrow::on_init() triangles.emplace_back(7, 13, 6); m_volume.indexed_vertex_array.load_mesh(TriangleMesh(vertices, triangles)); - m_volume.indexed_vertex_array.finalize_geometry(true); return true; } @@ -2064,7 +1707,6 @@ bool GLCurvedArrow::on_init() triangles.emplace_back(vertices_per_level, 2 * vertices_per_level + 1, vertices_per_level + 1); m_volume.indexed_vertex_array.load_mesh(TriangleMesh(vertices, triangles)); - m_volume.indexed_vertex_array.finalize_geometry(true); return true; } @@ -2091,7 +1733,6 @@ bool GLBed::on_init_from_file(const std::string& filename) m_filename = filename; m_volume.indexed_vertex_array.load_mesh(model.mesh()); - m_volume.indexed_vertex_array.finalize_geometry(true); float color[4] = { 0.235f, 0.235f, 0.235f, 1.0f }; set_color(color, 4); @@ -2124,11 +1765,6 @@ bool _3DScene::init(wxGLCanvas* canvas) return s_canvas_mgr.init(canvas); } -void _3DScene::destroy() -{ - s_canvas_mgr.destroy(); -} - GUI::GLCanvas3D* _3DScene::get_canvas(wxGLCanvas* canvas) { return s_canvas_mgr.get_canvas(canvas); diff --git a/src/slic3r/GUI/3DScene.hpp b/src/slic3r/GUI/3DScene.hpp index 50232116324..bd818cf352e 100644 --- a/src/slic3r/GUI/3DScene.hpp +++ b/src/slic3r/GUI/3DScene.hpp @@ -65,7 +65,7 @@ class GLIndexedVertexArray { vertices_and_normals_interleaved_VBO_id(0), triangle_indices_VBO_id(0), quad_indices_VBO_id(0) - { assert(! rhs.has_VBOs()); } + {} GLIndexedVertexArray(GLIndexedVertexArray &&rhs) : vertices_and_normals_interleaved(std::move(rhs.vertices_and_normals_interleaved)), triangle_indices(std::move(rhs.triangle_indices)), @@ -73,7 +73,7 @@ class GLIndexedVertexArray { vertices_and_normals_interleaved_VBO_id(0), triangle_indices_VBO_id(0), quad_indices_VBO_id(0) - { assert(! rhs.has_VBOs()); } + {} ~GLIndexedVertexArray() { release_geometry(); } @@ -81,17 +81,14 @@ class GLIndexedVertexArray { { assert(vertices_and_normals_interleaved_VBO_id == 0); assert(triangle_indices_VBO_id == 0); - assert(quad_indices_VBO_id == 0); - assert(rhs.vertices_and_normals_interleaved_VBO_id == 0); - assert(rhs.triangle_indices_VBO_id == 0); - assert(rhs.quad_indices_VBO_id == 0); - this->vertices_and_normals_interleaved = rhs.vertices_and_normals_interleaved; - this->triangle_indices = rhs.triangle_indices; - this->quad_indices = rhs.quad_indices; - this->m_bounding_box = rhs.m_bounding_box; - this->vertices_and_normals_interleaved_size = rhs.vertices_and_normals_interleaved_size; - this->triangle_indices_size = rhs.triangle_indices_size; - this->quad_indices_size = rhs.quad_indices_size; + assert(triangle_indices_VBO_id == 0); + this->vertices_and_normals_interleaved = rhs.vertices_and_normals_interleaved; + this->triangle_indices = rhs.triangle_indices; + this->quad_indices = rhs.quad_indices; + this->m_bounding_box = rhs.m_bounding_box; + vertices_and_normals_interleaved_size = rhs.vertices_and_normals_interleaved_size; + triangle_indices_size = rhs.triangle_indices_size; + quad_indices_size = rhs.quad_indices_size; return *this; } @@ -99,24 +96,21 @@ class GLIndexedVertexArray { { assert(vertices_and_normals_interleaved_VBO_id == 0); assert(triangle_indices_VBO_id == 0); - assert(quad_indices_VBO_id == 0); - assert(rhs.vertices_and_normals_interleaved_VBO_id == 0); - assert(rhs.triangle_indices_VBO_id == 0); - assert(rhs.quad_indices_VBO_id == 0); - this->vertices_and_normals_interleaved = std::move(rhs.vertices_and_normals_interleaved); - this->triangle_indices = std::move(rhs.triangle_indices); - this->quad_indices = std::move(rhs.quad_indices); - this->m_bounding_box = std::move(rhs.m_bounding_box); - this->vertices_and_normals_interleaved_size = rhs.vertices_and_normals_interleaved_size; - this->triangle_indices_size = rhs.triangle_indices_size; - this->quad_indices_size = rhs.quad_indices_size; + assert(triangle_indices_VBO_id == 0); + this->vertices_and_normals_interleaved = std::move(rhs.vertices_and_normals_interleaved); + this->triangle_indices = std::move(rhs.triangle_indices); + this->quad_indices = std::move(rhs.quad_indices); + this->m_bounding_box = std::move(rhs.m_bounding_box); + vertices_and_normals_interleaved_size = rhs.vertices_and_normals_interleaved_size; + triangle_indices_size = rhs.triangle_indices_size; + quad_indices_size = rhs.quad_indices_size; return *this; } // Vertices and their normals, interleaved to be used by void glInterleavedArrays(GL_N3F_V3F, 0, x) - std::vector vertices_and_normals_interleaved; - std::vector triangle_indices; - std::vector quad_indices; + mutable std::vector vertices_and_normals_interleaved; + mutable std::vector triangle_indices; + mutable std::vector quad_indices; // When the geometry data is loaded into the graphics card as Vertex Buffer Objects, // the above mentioned std::vectors are cleared and the following variables keep their original length. @@ -126,9 +120,9 @@ class GLIndexedVertexArray { // IDs of the Vertex Array Objects, into which the geometry has been loaded. // Zero if the VBOs are not sent to GPU yet. - unsigned int vertices_and_normals_interleaved_VBO_id{ 0 }; - unsigned int triangle_indices_VBO_id{ 0 }; - unsigned int quad_indices_VBO_id{ 0 }; + mutable unsigned int vertices_and_normals_interleaved_VBO_id{ 0 }; + mutable unsigned int triangle_indices_VBO_id{ 0 }; + mutable unsigned int quad_indices_VBO_id{ 0 }; void load_mesh_full_shading(const TriangleMesh &mesh); void load_mesh(const TriangleMesh& mesh) { this->load_mesh_full_shading(mesh); } @@ -148,12 +142,12 @@ class GLIndexedVertexArray { if (this->vertices_and_normals_interleaved.size() + 6 > this->vertices_and_normals_interleaved.capacity()) this->vertices_and_normals_interleaved.reserve(next_highest_power_of_2(this->vertices_and_normals_interleaved.size() + 6)); - this->vertices_and_normals_interleaved.emplace_back(nx); - this->vertices_and_normals_interleaved.emplace_back(ny); - this->vertices_and_normals_interleaved.emplace_back(nz); - this->vertices_and_normals_interleaved.emplace_back(x); - this->vertices_and_normals_interleaved.emplace_back(y); - this->vertices_and_normals_interleaved.emplace_back(z); + this->vertices_and_normals_interleaved.push_back(nx); + this->vertices_and_normals_interleaved.push_back(ny); + this->vertices_and_normals_interleaved.push_back(nz); + this->vertices_and_normals_interleaved.push_back(x); + this->vertices_and_normals_interleaved.push_back(y); + this->vertices_and_normals_interleaved.push_back(z); this->vertices_and_normals_interleaved_size = this->vertices_and_normals_interleaved.size(); m_bounding_box.merge(Vec3f(x, y, z).cast()); @@ -174,9 +168,9 @@ class GLIndexedVertexArray { if (this->triangle_indices.size() + 3 > this->vertices_and_normals_interleaved.capacity()) this->triangle_indices.reserve(next_highest_power_of_2(this->triangle_indices.size() + 3)); - this->triangle_indices.emplace_back(idx1); - this->triangle_indices.emplace_back(idx2); - this->triangle_indices.emplace_back(idx3); + this->triangle_indices.push_back(idx1); + this->triangle_indices.push_back(idx2); + this->triangle_indices.push_back(idx3); this->triangle_indices_size = this->triangle_indices.size(); }; @@ -187,17 +181,17 @@ class GLIndexedVertexArray { if (this->quad_indices.size() + 4 > this->vertices_and_normals_interleaved.capacity()) this->quad_indices.reserve(next_highest_power_of_2(this->quad_indices.size() + 4)); - this->quad_indices.emplace_back(idx1); - this->quad_indices.emplace_back(idx2); - this->quad_indices.emplace_back(idx3); - this->quad_indices.emplace_back(idx4); + this->quad_indices.push_back(idx1); + this->quad_indices.push_back(idx2); + this->quad_indices.push_back(idx3); + this->quad_indices.push_back(idx4); this->quad_indices_size = this->quad_indices.size(); }; // Finalize the initialization of the geometry & indices, // upload the geometry and indices to OpenGL VBO objects // and shrink the allocated data, possibly relasing it if it has been loaded into the VBOs. - void finalize_geometry(bool opengl_initialized); + void finalize_geometry() const; // Release the geometry data, release OpenGL VBOs. void release_geometry(); @@ -218,7 +212,7 @@ class GLIndexedVertexArray { } // Shrink the internal storage to tighly fit the data stored. - void shrink_to_fit() { + void shrink_to_fit() const { this->vertices_and_normals_interleaved.shrink_to_fit(); this->triangle_indices.shrink_to_fit(); this->quad_indices.shrink_to_fit(); @@ -226,22 +220,6 @@ class GLIndexedVertexArray { const BoundingBoxf3& bounding_box() const { return m_bounding_box; } - // Return an estimate of the memory consumed by this class. - size_t cpu_memory_used() const { return sizeof(*this) + vertices_and_normals_interleaved.capacity() * sizeof(float) + triangle_indices.capacity() * sizeof(int) + quad_indices.capacity() * sizeof(int); } - // Return an estimate of the memory held by GPU vertex buffers. - size_t gpu_memory_used() const - { - size_t memsize = 0; - if (this->vertices_and_normals_interleaved_VBO_id != 0) - memsize += this->vertices_and_normals_interleaved_size * 4; - if (this->triangle_indices_VBO_id != 0) - memsize += this->triangle_indices_size * 4; - if (this->quad_indices_VBO_id != 0) - memsize += this->quad_indices_size * 4; - return memsize; - } - size_t total_memory_used() const { return this->cpu_memory_used() + this->gpu_memory_used(); } - private: BoundingBoxf3 m_bounding_box; }; @@ -273,7 +251,7 @@ class GLVolume { Geometry::Transformation m_volume_transformation; // Shift in z required by sla supports+pad - double m_sla_shift_z; + double m_sla_shift_z; // Bounding box of this volume, in unscaled coordinates. mutable BoundingBoxf3 m_transformed_bounding_box; // Whether or not is needed to recalculate the transformed bounding box. @@ -317,8 +295,6 @@ class GLVolume { bool selected; // Is this object disabled from selection? bool disabled; - // Is this object printable? - bool printable; // Whether or not this volume is active for rendering bool is_active; // Whether or not to use this volume when applying zoom_to_volumes() @@ -440,27 +416,18 @@ class GLVolume { bool empty() const { return this->indexed_vertex_array.empty(); } - void set_range(double low, double high); + void set_range(coordf_t low, coordf_t high); void render() const; void render(int color_id, int detection_id, int worldmatrix_id) const; - void finalize_geometry(bool opengl_initialized) { this->indexed_vertex_array.finalize_geometry(opengl_initialized); } + void finalize_geometry() { this->indexed_vertex_array.finalize_geometry(); } void release_geometry() { this->indexed_vertex_array.release_geometry(); } void set_bounding_boxes_as_dirty() { m_transformed_bounding_box_dirty = true; m_transformed_convex_hull_bounding_box_dirty = true; } bool is_sla_support() const; bool is_sla_pad() const; - - // Return an estimate of the memory consumed by this class. - size_t cpu_memory_used() const { - //FIXME what to do wih m_convex_hull? - return sizeof(*this) - sizeof(this->indexed_vertex_array) + this->indexed_vertex_array.cpu_memory_used() + this->print_zs.capacity() * sizeof(coordf_t) + this->offsets.capacity() * sizeof(size_t); - } - // Return an estimate of the memory held by GPU vertex buffers. - size_t gpu_memory_used() const { return this->indexed_vertex_array.gpu_memory_used(); } - size_t total_memory_used() const { return this->cpu_memory_used() + this->gpu_memory_used(); } }; typedef std::vector GLVolumePtrs; @@ -495,36 +462,30 @@ class GLVolumeCollection ~GLVolumeCollection() { clear(); }; std::vector load_object( - const ModelObject *model_object, + const ModelObject* model_object, int obj_idx, - const std::vector &instance_idxs, - const std::string &color_by, - bool opengl_initialized); + const std::vector& instance_idxs, + const std::string& color_by); int load_object_volume( - const ModelObject *model_object, - int obj_idx, - int volume_idx, - int instance_idx, - const std::string &color_by, - bool opengl_initialized); + const ModelObject* model_object, + int obj_idx, + int volume_idx, + int instance_idx, + const std::string& color_by); // Load SLA auxiliary GLVolumes (for support trees or pad). void load_object_auxiliary( - const SLAPrintObject *print_object, + const SLAPrintObject* print_object, int obj_idx, // pairs of const std::vector>& instances, SLAPrintObjectStep milestone, // Timestamp of the last change of the milestone - size_t timestamp, - bool opengl_initialized); + size_t timestamp); int load_wipe_tower_preview( - int obj_idx, float pos_x, float pos_y, float width, float depth, float height, float rotation_angle, bool size_unknown, float brim_width, bool opengl_initialized); - - GLVolume* new_toolpath_volume(const float *rgba, size_t reserve_vbo_floats = 0); - GLVolume* new_nontoolpath_volume(const float *rgba, size_t reserve_vbo_floats = 0); + int obj_idx, float pos_x, float pos_y, float width, float depth, float height, float rotation_angle, bool size_unknown, float brim_width); // Render the volumes by OpenGL. void render(ERenderType type, bool disable_cullface, const Transform3d& view_matrix, std::function filter_func = std::function()) const; @@ -532,7 +493,7 @@ class GLVolumeCollection // Finalize the initialization of the geometry & indices, // upload the geometry and indices to OpenGL VBO objects // and shrink the allocated data, possibly relasing it if it has been loaded into the VBOs. - void finalize_geometry(bool opengl_initialized) { for (auto* v : volumes) v->finalize_geometry(opengl_initialized); } + void finalize_geometry() { for (auto* v : volumes) v->finalize_geometry(); } // Release the geometry data assigned to the volumes. // If OpenGL VBOs were allocated, an OpenGL context has to be active to release them. void release_geometry() { for (auto *v : volumes) v->release_geometry(); } @@ -560,18 +521,6 @@ class GLVolumeCollection // Returns a vector containing the sorted list of all the print_zs of the volumes contained in this collection std::vector get_current_print_zs(bool active_only) const; - // Return an estimate of the memory consumed by this class. - size_t cpu_memory_used() const; - // Return an estimate of the memory held by GPU vertex buffers. - size_t gpu_memory_used() const; - size_t total_memory_used() const { return this->cpu_memory_used() + this->gpu_memory_used(); } - // Return CPU, GPU and total memory log line. - std::string log_memory_info() const; - - bool has_toolpaths_to_export() const; - // Export the geometry of the GLVolumes toolpaths of this collection into the file with the given path, in obj format - void export_toolpaths_to_obj(const char* filename) const; - private: GLVolumeCollection(const GLVolumeCollection &other); GLVolumeCollection& operator=(const GLVolumeCollection &); @@ -589,7 +538,6 @@ class GLModel GLModel(); virtual ~GLModel(); - // init() / init_from_file() shall be called with the OpenGL context active! bool init() { return on_init(); } bool init_from_file(const std::string& filename) { return on_init_from_file(filename); } @@ -619,7 +567,7 @@ class GLModel class GLArrow : public GLModel { protected: - bool on_init() override; + virtual bool on_init(); }; class GLCurvedArrow : public GLModel @@ -630,13 +578,13 @@ class GLCurvedArrow : public GLModel explicit GLCurvedArrow(unsigned int resolution); protected: - bool on_init() override; + virtual bool on_init(); }; class GLBed : public GLModel { protected: - bool on_init_from_file(const std::string& filename) override; + virtual bool on_init_from_file(const std::string& filename); }; class _3DScene @@ -651,7 +599,6 @@ class _3DScene static void remove_all_canvases(); static bool init(wxGLCanvas* canvas); - static void destroy(); static GUI::GLCanvas3D* get_canvas(wxGLCanvas* canvas); diff --git a/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index c996cd811e3..83ee28168b6 100644 --- a/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp @@ -76,9 +76,9 @@ void CopyrightsDialog::fill_entries() { m_entries = { { "wxWidgets" , "2019 wxWidgets" , "https://www.wxwidgets.org/" }, - { "OpenGL" , "1997-2019 The Khronos Group Inc" , "https://www.opengl.org/" }, + { "OpenGL" , "1997-2019 The Khronos� Group Inc" , "https://www.opengl.org/" }, { "GNU gettext" , "1998, 2019 Free Software Foundation, Inc." , "https://www.gnu.org/software/gettext/" }, - { "PoEdit" , "2019 Vaclav Slava­k" , "https://poedit.net/" }, + { "PoEdit" , "2019 V�clav Slav�k" , "https://poedit.net/" }, { "ImGUI" , "2014-2019 Omar Cornut" , "https://github.com/ocornut/imgui" }, { "Eigen" , "" , "http://eigen.tuxfamily.org" }, { "ADMesh" , "1995, 1996 Anthony D. Martin; " @@ -106,13 +106,8 @@ void CopyrightsDialog::fill_entries() "2001-2016 Expat maintainers" , "http://www.libexpat.org/" }, { "AVRDUDE" , "2018 Free Software Foundation, Inc." , "http://savannah.nongnu.org/projects/avrdude" }, { "Shinyprofiler" , "2007-2010 Aidin Abedi" , "http://code.google.com/p/shinyprofiler/" }, - { "Real-Time DXT1/DXT5 C compression library" - , "Based on original by fabian \"ryg\" giesen v1.04. " - "Custom version, modified by Yann Collet" , "https://github.com/Cyan4973/RygsDXTc" }, { "Icons for STL and GCODE files." - , "Akira Yasuda" , "http://3dp0.com/icons-for-stl-and-gcode/" }, - { "AppImage packaging for Linux using AppImageKit" - , "2004-2019 Simon Peter and contributors" , "https://appimage.org/" } + , "Akira Yasuda" , "http://3dp0.com/icons-for-stl-and-gcode/" } }; } @@ -258,18 +253,18 @@ AboutDialog::AboutDialog() const wxString is_lecensed_str = _(L("is licensed under the")); const wxString license_str = _(L("GNU Affero General Public License, version 3")); const wxString based_on_str = _(L("Slic3r++ is based on PrusaSlicer which is based on Slic3r by Alessandro Ranellucci and the RepRap community.")); - const wxString contributors_str = _(L("Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik, Durand Rémi and numerous others.")); + const wxString contributors_str = _(L("Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik, Durand R�mi and numerous others.")); const auto text = wxString::Format( "" "" "" - "Copyright © 2018-2019 Durand Rémi.
" + "Copyright © 2018-2019 Durand R�mi.
" "Copyright © 2016-2019 Prusa Research.
" "Copyright © 2011-2017 Alessandro Ranellucci.
" "Slic3r is licensed under the " "GNU Affero General Public License, version 3." "

" - "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik, Durand Rémi and numerous others. " + "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik, Durand R�mi and numerous others. " "Manual by Gary Hodgson. Inspired by the RepRap community.
" "Slic3r logo designed by Corey Daniels, Silk Icon Set designed by Mark James. " "
" diff --git a/src/slic3r/GUI/AppConfig.cpp b/src/slic3r/GUI/AppConfig.cpp index 5a165e8aed5..dfdc79677dd 100644 --- a/src/slic3r/GUI/AppConfig.cpp +++ b/src/slic3r/GUI/AppConfig.cpp @@ -15,18 +15,14 @@ #include #include #include -#include #include #include -#include -#include "I18N.hpp" - namespace Slic3r { static const std::string VENDOR_PREFIX = "vendor:"; static const std::string MODEL_PREFIX = "model:"; -static const std::string VERSION_CHECK_URL = "https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaSlicer.version"; +static const std::string VERSION_CHECK_URL = "http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaSlicer.version"; void AppConfig::reset() { @@ -62,7 +58,7 @@ void AppConfig::set_defaults() if (!get("use_legacy_opengl").empty()) erase("", "use_legacy_opengl"); -#ifdef __APPLE__ +#if __APPLE__ if (get("use_retina_opengl").empty()) set("use_retina_opengl", "1"); #endif @@ -94,15 +90,7 @@ void AppConfig::load() namespace pt = boost::property_tree; pt::ptree tree; boost::nowide::ifstream ifs(AppConfig::config_path()); - try { - pt::read_ini(ifs, tree); - } catch (pt::ptree_error& ex) { - // Error while parsing config file. We'll customize the error message and rethrow to be displayed. - throw std::runtime_error( - _utf8(L("Error parsing PrusaSlicer config file, it is probably corrupted. " - "Try to manualy delete the file to recover from the error. Your user profiles will not be affected.")) + - "\n\n" + AppConfig::config_path() + "\n\n" + ex.what()); - } + pt::read_ini(ifs, tree); // 2) Parse the property_tree, extract the sections and key / value pairs. for (const auto §ion : tree) { diff --git a/src/slic3r/GUI/AppConfig.hpp b/src/slic3r/GUI/AppConfig.hpp index 8ad17b9db8e..230a922940f 100644 --- a/src/slic3r/GUI/AppConfig.hpp +++ b/src/slic3r/GUI/AppConfig.hpp @@ -6,7 +6,7 @@ #include #include "libslic3r/Config.hpp" -#include "libslic3r/Semver.hpp" +#include "slic3r/Utils/Semver.hpp" namespace Slic3r { diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.cpp b/src/slic3r/GUI/BackgroundSlicingProcess.cpp index 607fa27bf44..d5b14d59c14 100644 --- a/src/slic3r/GUI/BackgroundSlicingProcess.cpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.cpp @@ -153,12 +153,7 @@ void BackgroundSlicingProcess::thread_proc() } catch (CanceledException & /* ex */) { // Canceled, this is all right. assert(m_print->canceled()); - } catch (const std::bad_alloc& ex) { - wxString errmsg = wxString::Format(_(L("%s has encountered an error. It was likely caused by running out of memory. " - "If you are sure you have enough RAM on your system, this may also be a bug and we would " - "be glad if you reported it.")), SLIC3R_APP_NAME); - error = errmsg.ToStdString() + "\n\n" + std::string(ex.what()); - } catch (std::exception &ex) { + } catch (std::exception &ex) { error = ex.what(); } catch (...) { error = "Unknown C++ exception."; @@ -222,11 +217,7 @@ bool BackgroundSlicingProcess::start() if (m_state == STATE_INITIAL) { // The worker thread is not running yet. Start it. assert(! m_thread.joinable()); - boost::thread::attributes attrs; - // Duplicating the stack allocation size of Thread Building Block worker threads of the thread pool: - // allocate 4MB on a 64bit system, allocate 2MB on a 32bit system by default. - attrs.set_stack_size((sizeof(void*) == 4) ? (2048 * 1024) : (4096 * 1024)); - m_thread = boost::thread(attrs, [this]{this->thread_proc_safe();}); + m_thread = std::thread([this]{this->thread_proc_safe();}); // Wait until the worker thread is ready to execute the background processing task. m_condition.wait(lck, [this](){ return m_state == STATE_IDLE; }); } diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.hpp b/src/slic3r/GUI/BackgroundSlicingProcess.hpp index cf5edd55f9f..e0a1960dac8 100644 --- a/src/slic3r/GUI/BackgroundSlicingProcess.hpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.hpp @@ -4,9 +4,9 @@ #include #include #include +#include #include -#include #include @@ -161,7 +161,7 @@ class BackgroundSlicingProcess PrintHostJob m_upload_job; // Thread, on which the background processing is executed. The thread will always be present // and ready to execute the slicing process. - boost::thread m_thread; + std::thread m_thread; // Mutex and condition variable to synchronize m_thread with the UI thread. std::mutex m_mutex; std::condition_variable m_condition; diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index 90fc0ff80bc..1177c918041 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -212,7 +212,7 @@ wxPanel* BedShapePanel::init_texture_panel() wxStaticText* lbl = dynamic_cast(e.GetEventObject()); if (lbl != nullptr) { - wxString tooltip_text = (m_custom_texture == NONE) ? "" : _(m_custom_texture); + wxString tooltip_text = (m_custom_texture == NONE) ? _(L("")) : _(m_custom_texture); wxToolTip* tooltip = lbl->GetToolTip(); if ((tooltip == nullptr) || (tooltip->GetTip() != tooltip_text)) lbl->SetToolTip(tooltip_text); @@ -280,7 +280,7 @@ wxPanel* BedShapePanel::init_model_panel() wxStaticText* lbl = dynamic_cast(e.GetEventObject()); if (lbl != nullptr) { - wxString tooltip_text = (m_custom_model == NONE) ? "" : _(m_custom_model); + wxString tooltip_text = (m_custom_model == NONE) ? _(L("")) : _(m_custom_model); wxToolTip* tooltip = lbl->GetToolTip(); if ((tooltip == nullptr) || (tooltip->GetTip() != tooltip_text)) lbl->SetToolTip(tooltip_text); @@ -446,7 +446,7 @@ void BedShapePanel::update_shape() auto twopi = 2 * PI; auto edges = 72; std::vector points; - for (int i = 1; i <= edges; ++i) { + for (size_t i = 1; i <= edges; ++i) { auto angle = i * twopi / edges; points.push_back(Vec2d(r*cos(angle), r*sin(angle))); } diff --git a/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index f7cefe72b28..3e892414305 100644 --- a/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp @@ -57,7 +57,7 @@ wxBitmap* BitmapCache::insert(const std::string &bitmap_key, size_t width, size_ m_map[bitmap_key] = bitmap; } else { bitmap = it->second; - if (size_t(bitmap->GetWidth()) != width || size_t(bitmap->GetHeight()) != height) + if (bitmap->GetWidth() != width || bitmap->GetHeight() != height) bitmap->Create(width, height); } #ifndef BROKEN_ALPHA @@ -194,7 +194,7 @@ wxBitmap* BitmapCache::insert_raw_rgba(const std::string &bitmap_key, unsigned w return this->insert(bitmap_key, wxImage_to_wxBitmap_with_alpha(std::move(image), scale)); } -wxBitmap* BitmapCache::load_png(const std::string &bitmap_name, unsigned width, unsigned height, +wxBitmap* BitmapCache::load_png(const std::string &bitmap_name, unsigned int width, unsigned int height, const bool grayscale/* = false*/) { std::string bitmap_key = bitmap_name + ( height !=0 ? @@ -211,10 +211,10 @@ wxBitmap* BitmapCache::load_png(const std::string &bitmap_name, unsigned width, image.GetWidth() == 0 || image.GetHeight() == 0) return nullptr; - if (height != 0 && unsigned(image.GetHeight()) != height) - width = unsigned(0.5f + float(image.GetWidth()) * height / image.GetHeight()); - else if (width != 0 && unsigned(image.GetWidth()) != width) - height = unsigned(0.5f + float(image.GetHeight()) * width / image.GetWidth()); + if (height != 0 && image.GetHeight() != height) + width = int(0.5f + float(image.GetWidth()) * height / image.GetHeight()); + else if (width != 0 && image.GetWidth() != width) + height = int(0.5f + float(image.GetHeight()) * width / image.GetWidth()); if (height != 0 && width != 0) image.Rescale(width, height, wxIMAGE_QUALITY_BILINEAR); diff --git a/src/slic3r/GUI/BitmapCache.hpp b/src/slic3r/GUI/BitmapCache.hpp index ce77057c82d..10ce3299ef0 100644 --- a/src/slic3r/GUI/BitmapCache.hpp +++ b/src/slic3r/GUI/BitmapCache.hpp @@ -32,9 +32,9 @@ class BitmapCache wxBitmap* insert_raw_rgba(const std::string &bitmap_key, unsigned width, unsigned height, const unsigned char *raw_data, float scale = 1.0f, const bool grayscale = false); // Load png from resources/icons. bitmap_key is given without the .png suffix. Bitmap will be rescaled to provided height/width if nonzero. - wxBitmap* load_png(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, const bool grayscale = false); + wxBitmap* load_png(const std::string &bitmap_key, unsigned int width = 0, unsigned int height = 0, const bool grayscale = false); // Load svg from resources/icons. bitmap_key is given without the .svg suffix. SVG will be rasterized to provided height/width. - wxBitmap* load_svg(const std::string &bitmap_key, unsigned width = 0, unsigned height = 0, float scale = 1.0f, const bool grayscale = false); + wxBitmap* load_svg(const std::string &bitmap_key, unsigned int width = 0, unsigned int height = 0, float scale = 1.0f, const bool grayscale = false); static wxBitmap mksolid(size_t width, size_t height, unsigned char r, unsigned char g, unsigned char b, unsigned char transparency); static wxBitmap mksolid(size_t width, size_t height, const unsigned char rgb[3]) { return mksolid(width, height, rgb[0], rgb[1], rgb[2], wxALPHA_OPAQUE); } diff --git a/src/slic3r/GUI/Camera.cpp b/src/slic3r/GUI/Camera.cpp index 8e3a6d1f125..242d00a071c 100644 --- a/src/slic3r/GUI/Camera.cpp +++ b/src/slic3r/GUI/Camera.cpp @@ -22,10 +22,10 @@ namespace Slic3r { namespace GUI { const double Camera::DefaultDistance = 1000.0; -double Camera::FrustrumMinZRange = 50.0; -double Camera::FrustrumMinNearZ = 100.0; +double Camera::FrustrumMinZSize = 50.0; double Camera::FrustrumZMargin = 10.0; -double Camera::MaxFovDeg = 60.0; +double Camera::FovMinDeg = 0.5; +double Camera::FovMaxDeg = 75.0; Camera::Camera() : phi(45.0f) @@ -186,8 +186,7 @@ void Camera::apply_view_matrix() const void Camera::apply_projection(const BoundingBoxf3& box) const { - set_distance(DefaultDistance); - + m_distance = DefaultDistance; double w = 0.0; double h = 0.0; @@ -195,14 +194,15 @@ void Camera::apply_projection(const BoundingBoxf3& box) const { m_frustrum_zs = calc_tight_frustrum_zs_around(box); - w = 0.5 * (double)m_viewport[2]; - h = 0.5 * (double)m_viewport[3]; + w = (double)m_viewport[2]; + h = (double)m_viewport[3]; - if (m_zoom != 0.0) + double two_zoom = 2.0 * m_zoom; + if (two_zoom != 0.0) { - double inv_zoom = 1.0 / m_zoom; - w *= inv_zoom; - h *= inv_zoom; + double inv_two_zoom = 1.0 / two_zoom; + w *= inv_two_zoom; + h *= inv_two_zoom; } switch (m_type) @@ -226,16 +226,21 @@ void Camera::apply_projection(const BoundingBoxf3& box) const if (m_type == Perspective) { - double fov_deg = Geometry::rad2deg(2.0 * std::atan(h / m_frustrum_zs.first)); + double fov_rad = 2.0 * std::atan(h / m_frustrum_zs.first); + double fov_deg = Geometry::rad2deg(fov_rad); // adjust camera distance to keep fov in a limited range - if (fov_deg > MaxFovDeg) + if (fov_deg > FovMaxDeg + 0.001) + { + double new_near_z = h / ::tan(0.5 * Geometry::deg2rad(FovMaxDeg)); + m_distance += (new_near_z - m_frustrum_zs.first); + apply_view_matrix(); + } + else if (fov_deg < FovMinDeg - 0.001) { - double delta_z = h / ::tan(0.5 * Geometry::deg2rad(MaxFovDeg)) - m_frustrum_zs.first; - if (delta_z > 0.001) - set_distance(m_distance + delta_z); - else - break; + double new_near_z = h / ::tan(0.5 * Geometry::deg2rad(FovMinDeg)); + m_distance += (new_near_z - m_frustrum_zs.first); + apply_view_matrix(); } else break; @@ -323,50 +328,42 @@ void Camera::debug_render() const std::pair Camera::calc_tight_frustrum_zs_around(const BoundingBoxf3& box) const { - std::pair ret; + std::pair ret = std::make_pair(DBL_MAX, -DBL_MAX); - while (true) - { - ret = std::make_pair(DBL_MAX, -DBL_MAX); - - // box vertices in world space - std::vector vertices; - vertices.reserve(8); - vertices.push_back(box.min); - vertices.emplace_back(box.max(0), box.min(1), box.min(2)); - vertices.emplace_back(box.max(0), box.max(1), box.min(2)); - vertices.emplace_back(box.min(0), box.max(1), box.min(2)); - vertices.emplace_back(box.min(0), box.min(1), box.max(2)); - vertices.emplace_back(box.max(0), box.min(1), box.max(2)); - vertices.push_back(box.max); - vertices.emplace_back(box.min(0), box.max(1), box.max(2)); - - // set the Z range in eye coordinates (negative Zs are in front of the camera) - for (const Vec3d& v : vertices) - { - double z = -(m_view_matrix * v)(2); - ret.first = std::min(ret.first, z); - ret.second = std::max(ret.second, z); - } - - // apply margin - ret.first -= FrustrumZMargin; - ret.second += FrustrumZMargin; + Vec3d bb_min = box.min; + Vec3d bb_max = box.max; - // ensure min size - if (ret.second - ret.first < FrustrumMinZRange) - { - double mid_z = 0.5 * (ret.first + ret.second); - double half_size = 0.5 * FrustrumMinZRange; - ret.first = mid_z - half_size; - ret.second = mid_z + half_size; - } + // box vertices in world space + std::vector vertices; + vertices.reserve(8); + vertices.push_back(bb_min); + vertices.emplace_back(bb_max(0), bb_min(1), bb_min(2)); + vertices.emplace_back(bb_max(0), bb_max(1), bb_min(2)); + vertices.emplace_back(bb_min(0), bb_max(1), bb_min(2)); + vertices.emplace_back(bb_min(0), bb_min(1), bb_max(2)); + vertices.emplace_back(bb_max(0), bb_min(1), bb_max(2)); + vertices.push_back(bb_max); + vertices.emplace_back(bb_min(0), bb_max(1), bb_max(2)); + + // set the Z range in eye coordinates (negative Zs are in front of the camera) + for (const Vec3d& v : vertices) + { + double z = -(m_view_matrix * v)(2); + ret.first = std::min(ret.first, z); + ret.second = std::max(ret.second, z); + } - if (ret.first >= FrustrumMinNearZ) - break; + // apply margin + ret.first -= FrustrumZMargin; + ret.second += FrustrumZMargin; - // ensure min Near Z - set_distance(m_distance + FrustrumMinNearZ - ret.first); + // ensure min size + if (ret.second - ret.first < FrustrumMinZSize) + { + double mid_z = 0.5 * (ret.first + ret.second); + double half_size = 0.5 * FrustrumMinZSize; + ret.first = mid_z - half_size; + ret.second = mid_z + half_size; } return ret; @@ -388,19 +385,21 @@ double Camera::calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int ca Vec3d up = get_dir_up(); Vec3d forward = get_dir_forward(); + Vec3d bb_min = box.min; + Vec3d bb_max = box.max; Vec3d bb_center = box.center(); // box vertices in world space std::vector vertices; vertices.reserve(8); - vertices.push_back(box.min); - vertices.emplace_back(box.max(0), box.min(1), box.min(2)); - vertices.emplace_back(box.max(0), box.max(1), box.min(2)); - vertices.emplace_back(box.min(0), box.max(1), box.min(2)); - vertices.emplace_back(box.min(0), box.min(1), box.max(2)); - vertices.emplace_back(box.max(0), box.min(1), box.max(2)); - vertices.push_back(box.max); - vertices.emplace_back(box.min(0), box.max(1), box.max(2)); + vertices.push_back(bb_min); + vertices.emplace_back(bb_max(0), bb_min(1), bb_min(2)); + vertices.emplace_back(bb_max(0), bb_max(1), bb_min(2)); + vertices.emplace_back(bb_min(0), bb_max(1), bb_min(2)); + vertices.emplace_back(bb_min(0), bb_min(1), bb_max(2)); + vertices.emplace_back(bb_max(0), bb_min(1), bb_max(2)); + vertices.push_back(bb_max); + vertices.emplace_back(bb_min(0), bb_max(1), bb_max(2)); double max_x = 0.0; double max_y = 0.0; @@ -431,12 +430,6 @@ double Camera::calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int ca return std::min((double)canvas_w / (2.0 * max_x), (double)canvas_h / (2.0 * max_y)); } -void Camera::set_distance(double distance) const -{ - m_distance = distance; - apply_view_matrix(); -} - } // GUI } // Slic3r diff --git a/src/slic3r/GUI/Camera.hpp b/src/slic3r/GUI/Camera.hpp index 839d0d6cf1d..79e87c72642 100644 --- a/src/slic3r/GUI/Camera.hpp +++ b/src/slic3r/GUI/Camera.hpp @@ -10,10 +10,10 @@ namespace GUI { struct Camera { static const double DefaultDistance; - static double FrustrumMinZRange; - static double FrustrumMinNearZ; + static double FrustrumMinZSize; static double FrustrumZMargin; - static double MaxFovDeg; + static double FovMinDeg; + static double FovMaxDeg; enum EType : unsigned char { @@ -101,7 +101,6 @@ struct Camera // the camera MUST be outside of the bounding box in eye coordinate of the given box std::pair calc_tight_frustrum_zs_around(const BoundingBoxf3& box) const; double calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, int canvas_w, int canvas_h) const; - void set_distance(double distance) const; }; } // GUI diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp deleted file mode 100644 index 48335fcb269..00000000000 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ /dev/null @@ -1,410 +0,0 @@ -// #include "libslic3r/GCodeSender.hpp" -#include "ConfigManipulation.hpp" -#include "I18N.hpp" -#include "GUI_App.hpp" -#include "PresetBundle.hpp" - -#include - -namespace Slic3r { -namespace GUI { - -void ConfigManipulation::apply(DynamicPrintConfig* config, DynamicPrintConfig* new_config) -{ - bool modified = false; - for (auto opt_key : config->diff(*new_config)) { - config->set_key_value(opt_key, new_config->option(opt_key)->clone()); - modified = true; - } - - if (modified && load_config != nullptr) - load_config(); -} - -void ConfigManipulation::toggle_field(const std::string& opt_key, const bool toggle, int opt_index/* = -1*/) -{ - if (local_config) { - if (local_config->option(opt_key) == nullptr) - return; - } - Field* field = get_field(opt_key, opt_index); - if (field==nullptr) return; - field->toggle(toggle); -} - -void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config) -{ - // #ys_FIXME_to_delete - //! Temporary workaround for the correct updates of the TextCtrl (like "layer_height"): - // KillFocus() for the wxSpinCtrl use CallAfter function. So, - // to except the duplicate call of the update() after dialog->ShowModal(), - // let check if this process is already started. - if (is_msg_dlg_already_exist) - return; - - // layer_height shouldn't be equal to zero - if (config->opt_float("layer_height") < EPSILON) - { - const wxString msg_text = _(L("Zero layer height is not valid.\n\nThe layer height will be reset to 0.01.")); - wxMessageDialog dialog(nullptr, msg_text, _(L("Layer height")), wxICON_WARNING | wxOK); - DynamicPrintConfig new_conf = *config; - is_msg_dlg_already_exist = true; - dialog.ShowModal(); - new_conf.set_key_value("layer_height", new ConfigOptionFloat(0.01)); - apply(config, &new_conf); - is_msg_dlg_already_exist = false; - } - - if (fabs(config->option("first_layer_height")->value - 0) < EPSILON) - { - const wxString msg_text = _(L("Zero first layer height is not valid.\n\nThe first layer height will be reset to 0.01.")); - wxMessageDialog dialog(nullptr, msg_text, _(L("First layer height")), wxICON_WARNING | wxOK); - DynamicPrintConfig new_conf = *config; - is_msg_dlg_already_exist = true; - dialog.ShowModal(); - new_conf.set_key_value("first_layer_height", new ConfigOptionFloatOrPercent(0.01, false)); - apply(config, &new_conf); - is_msg_dlg_already_exist = false; - } - - double fill_density = config->option("fill_density")->value; - - if (config->opt_bool("spiral_vase") && !( - config->opt_int("perimeters") == 1 - && config->opt_int("top_solid_layers") == 0 - && fill_density == 0 - && config->opt_bool("support_material") == false - && config->opt_int("support_material_enforce_layers") == 0 - && config->opt_bool("exact_last_layer_height") == false - && config->opt_bool("ensure_vertical_shell_thickness") == false - && config->opt_bool("infill_dense") == false - && config->opt_bool("extra_perimeters") == false - )) { - wxString msg_text = _(L("The Spiral Vase mode requires:\n" - "- one perimeter\n" - "- no top solid layers\n" - "- 0% fill density\n" - "- no support material\n" - "- no ensure_vertical_shell_thickness\n" - "- unchecked 'exact last layer height'\n" - "- unchecked 'dense infill'\n" - "- unchecked 'extra perimeters'\n")); - if (is_global_config) - msg_text += "\n\n" + _(L("Shall I adjust those settings in order to enable Spiral Vase?")); - wxMessageDialog dialog(nullptr, msg_text, _(L("Spiral Vase")), - wxICON_WARNING | (is_global_config ? wxYES | wxNO : wxOK)); - DynamicPrintConfig new_conf = *config; - auto answer = dialog.ShowModal(); - if (!is_global_config || answer == wxID_YES) { - new_conf.set_key_value("perimeters", new ConfigOptionInt(1)); - new_conf.set_key_value("top_solid_layers", new ConfigOptionInt(0)); - new_conf.set_key_value("fill_density", new ConfigOptionPercent(0)); - new_conf.set_key_value("support_material", new ConfigOptionBool(false)); - new_conf.set_key_value("support_material_enforce_layers", new ConfigOptionInt(0)); - new_conf.set_key_value("exact_last_layer_height", new ConfigOptionBool(false)); - new_conf.set_key_value("ensure_vertical_shell_thickness", new ConfigOptionBool(false)); - new_conf.set_key_value("infill_dense", new ConfigOptionBool(false)); - new_conf.set_key_value("extra_perimeters", new ConfigOptionBool(false)); - fill_density = 0; - } - else { - new_conf.set_key_value("spiral_vase", new ConfigOptionBool(false)); - } - apply(config, &new_conf); - if (cb_value_change) - cb_value_change("fill_density", fill_density); - } - - if (config->opt_bool("wipe_tower") && config->opt_bool("support_material") && - ((ConfigOptionEnumGeneric*)config->option("support_material_contact_distance_type"))->value != zdNone && - (config->opt_int("support_material_extruder") != 0 || config->opt_int("support_material_interface_extruder") != 0)) { - wxString msg_text = _(L("The Wipe Tower currently supports the non-soluble supports only\n" - "if they are printed with the current extruder without triggering a tool change.\n" - "(both support_material_extruder and support_material_interface_extruder need to be set to 0).")); - if (is_global_config) - msg_text += "\n\n" + _(L("Shall I adjust those settings in order to enable the Wipe Tower?")); - wxMessageDialog dialog (nullptr, msg_text, _(L("Wipe Tower")), - wxICON_WARNING | (is_global_config ? wxYES | wxNO : wxOK)); - DynamicPrintConfig new_conf = *config; - auto answer = dialog.ShowModal(); - if (!is_global_config || answer == wxID_YES) { - new_conf.set_key_value("support_material_extruder", new ConfigOptionInt(0)); - new_conf.set_key_value("support_material_interface_extruder", new ConfigOptionInt(0)); - } - else - new_conf.set_key_value("wipe_tower", new ConfigOptionBool(false)); - apply(config, &new_conf); - } - - if (config->opt_bool("wipe_tower") && config->opt_bool("support_material") && - ((ConfigOptionEnumGeneric*)config->option("support_material_contact_distance_type"))->value != zdNone && - !config->opt_bool("support_material_synchronize_layers")) { - wxString msg_text = _(L("For the Wipe Tower to work with the soluble supports, the support layers\n" - "need to be synchronized with the object layers.")); - if (is_global_config) - msg_text += "\n\n" + _(L("Shall I synchronize support layers in order to enable the Wipe Tower?")); - wxMessageDialog dialog(nullptr, msg_text, _(L("Wipe Tower")), - wxICON_WARNING | (is_global_config ? wxYES | wxNO : wxOK)); - DynamicPrintConfig new_conf = *config; - auto answer = dialog.ShowModal(); - if (!is_global_config || answer == wxID_YES) { - new_conf.set_key_value("support_material_synchronize_layers", new ConfigOptionBool(true)); - } - else - new_conf.set_key_value("wipe_tower", new ConfigOptionBool(false)); - apply(config, &new_conf); - } - - static bool support_material_overhangs_queried = false; - - if (config->opt_bool("support_material")) { - // Ask only once. - if (!support_material_overhangs_queried) { - support_material_overhangs_queried = true; - if (!config->opt_bool("overhangs")/* != 1*/) { - wxString msg_text = _(L("Supports work better, if the following feature is enabled:\n" - "- Detect bridging perimeters")); - if (is_global_config) - msg_text += "\n\n" + _(L("Shall I adjust those settings for supports?")); - wxMessageDialog dialog(nullptr, msg_text, _(L("Support Generator")), - wxICON_WARNING | (is_global_config ? wxYES | wxNO | wxCANCEL : wxOK)); - DynamicPrintConfig new_conf = *config; - auto answer = dialog.ShowModal(); - if (!is_global_config || answer == wxID_YES) { - // Enable "detect bridging perimeters". - new_conf.set_key_value("overhangs", new ConfigOptionBool(true)); - } - else if (answer == wxID_NO) { - // Do nothing, leave supports on and "detect bridging perimeters" off. - } - else if (answer == wxID_CANCEL) { - // Disable supports. - new_conf.set_key_value("support_material", new ConfigOptionBool(false)); - support_material_overhangs_queried = false; - } - apply(config, &new_conf); - } - } - } - else { - support_material_overhangs_queried = false; - } - - if (config->option("fill_density")->value == 100) { - auto fill_pattern = config->option>("fill_pattern")->value; - std::string str_fill_pattern = ""; - t_config_enum_values map_names = config->option>("fill_pattern")->get_enum_values(); - for (auto it : map_names) { - if (fill_pattern == it.second) { - str_fill_pattern = it.first; - break; - } - } - if (!str_fill_pattern.empty()) { - const std::vector& top_fill_pattern = config->def()->get("top_fill_pattern")->enum_values; - bool correct_100p_fill = false; - for (const std::string& fill : top_fill_pattern) - { - if (str_fill_pattern == fill) - correct_100p_fill = true; - } - const std::vector bottom_fill_pattern = config->def()->get("bottom_fill_pattern")->enum_values; - for (const std::string &fill : bottom_fill_pattern) { - if (str_fill_pattern.compare(fill) == 0) - correct_100p_fill = true; - } - // get fill_pattern name from enum_labels for using this one at dialog_msg - str_fill_pattern = _utf8(config->def()->get("fill_pattern")->enum_labels[fill_pattern]); - if (!correct_100p_fill) { - wxString msg_text = GUI::from_u8((boost::format(_utf8(L("The %1% infill pattern is not supposed to work at 100%% density."))) % str_fill_pattern).str()); - if (is_global_config) - msg_text += "\n\n" + _(L("Shall I switch to "+ str_fill_pattern +" fill pattern?")); - wxMessageDialog dialog(nullptr, msg_text, _(L("Infill")), - wxICON_WARNING | (is_global_config ? wxYES | wxNO : wxOK) ); - DynamicPrintConfig new_conf = *config; - auto answer = dialog.ShowModal(); - if (!is_global_config || answer == wxID_YES) { - new_conf.set_key_value("fill_pattern", new ConfigOptionEnum(ipRectilinear)); - fill_density = 100; - } - else - fill_density = wxGetApp().preset_bundle->prints.get_selected_preset().config.option("fill_density")->value; - new_conf.set_key_value("fill_density", new ConfigOptionPercent(fill_density)); - apply(config, &new_conf); - if (cb_value_change) - cb_value_change("fill_density", fill_density); - } - } - } -} - -void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig* config) -{ - bool have_perimeters = config->opt_int("perimeters") > 0; - for (auto el : { "extra_perimeters", "only_one_perimeter_top", "ensure_vertical_shell_thickness", "thin_walls", "overhangs", - "seam_position", "external_perimeters_first", "external_perimeter_extrusion_width", - "perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "perimeter_loop", "perimeter_loop_seam" }) - toggle_field(el, have_perimeters); - - for (auto el : { "thin_walls_min_width", "thin_walls_overlap" }) - toggle_field(el, config->opt_bool("thin_walls")); - - toggle_field("perimeter_loop_seam", config->opt_bool("perimeter_loop")); - - - bool have_infill = config->option("fill_density")->value > 0; - // infill_extruder uses the same logic as in Print::extruders() - for (auto el : { "fill_pattern", "infill_every_layers", "infill_only_where_needed", - "solid_infill_every_layers", "solid_infill_below_area", "infill_extruder" }) - toggle_field(el, have_infill); - - bool can_have_infill_dense = config->option("fill_density")->value < 50; - for (auto el : { "infill_dense" }) - toggle_field(el, can_have_infill_dense); - - bool have_infill_dense = config->opt_bool("infill_dense") && can_have_infill_dense; - for (auto el : { "infill_dense_algo" }) - toggle_field(el, have_infill_dense); - - bool have_solid_infill = config->opt_int("top_solid_layers") > 0 || config->opt_int("bottom_solid_layers") > 0; - // solid_infill_extruder uses the same logic as in Print::extruders() - for (auto el : { "top_fill_pattern", "bottom_fill_pattern", "solid_fill_pattern", "enforce_full_fill_volume", "external_infill_margin", - "infill_first", "solid_infill_extruder", "solid_infill_extrusion_width", "solid_infill_speed" }) - toggle_field(el, have_solid_infill); - - for (auto el : { "fill_angle", "bridge_angle", "infill_extrusion_width", - "infill_speed", "bridge_speed" }) - toggle_field(el, have_infill || have_solid_infill); - - // gap fill can appear in infill - //toggle_field("gap_fill_speed", have_perimeters && config->opt_bool("gap_fill")); - - bool have_top_solid_infill = config->opt_int("top_solid_layers") > 0; - for (auto el : { "top_infill_extrusion_width", "top_solid_infill_speed" }) - toggle_field(el, have_top_solid_infill); - - bool have_default_acceleration = config->opt_float("default_acceleration") > 0; - for (auto el : { "perimeter_acceleration", "infill_acceleration", - "bridge_acceleration", "first_layer_acceleration" }) - toggle_field(el, have_default_acceleration); - - bool have_skirt = config->opt_int("skirts") > 0 || config->opt_float("min_skirt_length") > 0; - for (auto el : { "skirt_distance", "skirt_height" }) - toggle_field(el, have_skirt); - - bool have_brim = config->opt_float("brim_width") > 0; - // perimeter_extruder uses the same logic as in Print::extruders() - toggle_field("perimeter_extruder", have_perimeters || have_brim); - - toggle_field("brim_ears", have_brim); - toggle_field("brim_ears_max_angle", have_brim && config->opt_bool("brim_ears")); - - bool have_raft = config->opt_int("raft_layers") > 0; - bool have_support_material = config->opt_bool("support_material") || have_raft; - bool have_support_material_auto = have_support_material && config->opt_bool("support_material_auto"); - bool have_support_interface = config->opt_int("support_material_interface_layers") > 0; - bool have_support_soluble = have_support_material && ((ConfigOptionEnumGeneric*)config->option("support_material_contact_distance_type"))->value == zdNone; - for (auto el : { "support_material_pattern", "support_material_with_sheath", - "support_material_spacing", "support_material_angle", "support_material_interface_layers", - "dont_support_bridges", "support_material_extrusion_width", - "support_material_contact_distance_type", - "support_material_xy_spacing", "support_material_interface_pattern" }) - toggle_field(el, have_support_material); - toggle_field("support_material_threshold", have_support_material_auto); - - for (auto el : { "support_material_contact_distance_top", - "support_material_contact_distance_bottom" }) - toggle_field(el, have_support_material && !have_support_soluble); - - for (auto el : { "support_material_interface_spacing", "support_material_interface_extruder", - "support_material_interface_speed", "support_material_interface_contact_loops" }) - toggle_field(el, have_support_material && have_support_interface); - toggle_field("support_material_synchronize_layers", have_support_soluble); - - toggle_field("perimeter_extrusion_width", have_perimeters || have_skirt || have_brim); - toggle_field("support_material_extruder", have_support_material || have_skirt); - toggle_field("support_material_speed", have_support_material || have_brim || have_skirt); - - bool have_sequential_printing = config->opt_bool("complete_objects"); - for (auto el : { "extruder_clearance_radius", "extruder_clearance_height" }) - toggle_field(el, have_sequential_printing); - - bool have_ooze_prevention = config->opt_bool("ooze_prevention"); - toggle_field("standby_temperature_delta", have_ooze_prevention); - - bool have_wipe_tower = config->opt_bool("wipe_tower"); - for (auto el : { "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_bridging" }) - toggle_field(el, have_wipe_tower); -} - -void ConfigManipulation::update_print_sla_config(DynamicPrintConfig* config, const bool is_global_config/* = false*/) -{ - double head_penetration = config->opt_float("support_head_penetration"); - double head_width = config->opt_float("support_head_width"); - if (head_penetration > head_width) { - wxString msg_text = _(L("Head penetration should not be greater than the head width.")); - - wxMessageDialog dialog(nullptr, msg_text, _(L("Invalid Head penetration")), wxICON_WARNING | wxOK); - DynamicPrintConfig new_conf = *config; - if (dialog.ShowModal() == wxID_OK) { - new_conf.set_key_value("support_head_penetration", new ConfigOptionFloat(head_width)); - apply(config, &new_conf); - } - } - - double pinhead_d = config->opt_float("support_head_front_diameter"); - double pillar_d = config->opt_float("support_pillar_diameter"); - if (pinhead_d > pillar_d) { - wxString msg_text = _(L("Pinhead diameter should be smaller than the pillar diameter.")); - - wxMessageDialog dialog(nullptr, msg_text, _(L("Invalid pinhead diameter")), wxICON_WARNING | wxOK); - - DynamicPrintConfig new_conf = *config; - if (dialog.ShowModal() == wxID_OK) { - new_conf.set_key_value("support_head_front_diameter", new ConfigOptionFloat(pillar_d / 2.0)); - apply(config, &new_conf); - } - } -} - -void ConfigManipulation::toggle_print_sla_options(DynamicPrintConfig* config) -{ - bool supports_en = config->opt_bool("supports_enable"); - - toggle_field("support_head_front_diameter", supports_en); - toggle_field("support_head_penetration", supports_en); - toggle_field("support_head_width", supports_en); - toggle_field("support_pillar_diameter", supports_en); - toggle_field("support_pillar_connection_mode", supports_en); - toggle_field("support_buildplate_only", supports_en); - toggle_field("support_base_diameter", supports_en); - toggle_field("support_base_height", supports_en); - toggle_field("support_base_safety_distance", supports_en); - toggle_field("support_critical_angle", supports_en); - toggle_field("support_max_bridge_length", supports_en); - toggle_field("support_max_pillar_link_distance", supports_en); - toggle_field("support_points_density_relative", supports_en); - toggle_field("support_points_minimal_distance", supports_en); - - bool pad_en = config->opt_bool("pad_enable"); - - toggle_field("pad_wall_thickness", pad_en); - toggle_field("pad_wall_height", pad_en); - toggle_field("pad_max_merge_distance", pad_en); - // toggle_field("pad_edge_radius", supports_en); - toggle_field("pad_wall_slope", pad_en); - toggle_field("pad_around_object", pad_en); - - bool has_suppad = pad_en && supports_en; - bool zero_elev = config->opt_bool("pad_around_object") && has_suppad; - - toggle_field("support_object_elevation", supports_en && !zero_elev); - toggle_field("pad_object_gap", zero_elev); - toggle_field("pad_object_connector_stride", zero_elev); - toggle_field("pad_object_connector_width", zero_elev); - toggle_field("pad_object_connector_penetration", zero_elev); -} - - -} // GUI -} // Slic3r diff --git a/src/slic3r/GUI/ConfigManipulation.hpp b/src/slic3r/GUI/ConfigManipulation.hpp deleted file mode 100644 index 7344f758bea..00000000000 --- a/src/slic3r/GUI/ConfigManipulation.hpp +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef slic3r_ConfigManipulation_hpp_ -#define slic3r_ConfigManipulation_hpp_ - -/* Class for validation config options - * and update (enable/disable) IU components - * - * Used for config validation for global config (Print Settings Tab) - * and local config (overrides options on sidebar) - * */ - -#include "libslic3r/PrintConfig.hpp" -#include "Field.hpp" -//#include - -namespace Slic3r { -namespace GUI { - -class ConfigManipulation -{ - bool is_msg_dlg_already_exist{ false }; - - // function to loading of changed configuration - std::function load_config = nullptr; - std::function get_field = nullptr; - // callback to propagation of changed value, if needed - std::function cb_value_change = nullptr; - DynamicPrintConfig* local_config = nullptr; - -public: - ConfigManipulation(std::function load_config, - std::function get_field, - std::function cb_value_change, - DynamicPrintConfig* local_config = nullptr) : - load_config(load_config), - get_field(get_field), - cb_value_change(cb_value_change), - local_config(local_config) {} - ConfigManipulation() {} - - ~ConfigManipulation() { - load_config = nullptr; - get_field = nullptr; - cb_value_change = nullptr; - } - - void apply(DynamicPrintConfig* config, DynamicPrintConfig* new_config); - void toggle_field(const std::string& field_key, const bool toggle, int opt_index = -1); - - // FFF print - void update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config = false); - void toggle_print_fff_options(DynamicPrintConfig* config); - - // SLA print - void update_print_sla_config(DynamicPrintConfig* config, const bool is_global_config = false); - void toggle_print_sla_options(DynamicPrintConfig* config); -}; - -} // GUI -} // Slic3r - -#endif /* slic3r_ConfigManipulation_hpp_ */ diff --git a/src/slic3r/GUI/ConfigSnapshotDialog.cpp b/src/slic3r/GUI/ConfigSnapshotDialog.cpp index c89e4895e0c..59ed38412d5 100644 --- a/src/slic3r/GUI/ConfigSnapshotDialog.cpp +++ b/src/slic3r/GUI/ConfigSnapshotDialog.cpp @@ -2,9 +2,9 @@ #include "I18N.hpp" #include "../Config/Snapshot.hpp" +#include "../Utils/Time.hpp" #include "libslic3r/Utils.hpp" -#include "libslic3r/Time.hpp" #include "GUI_App.hpp" #include "wxExtensions.hpp" @@ -42,7 +42,7 @@ static wxString generate_html_row(const Config::Snapshot &snapshot, bool row_eve text += " (" + wxString::FromUTF8(snapshot.comment.data()) + ")"; text += "
"; // End of row header. - text += _(L("PrusaSlicer version")) + ": " + snapshot.slic3r_version_captured.to_string() + "
"; + text += _(L("slic3r version")) + ": " + snapshot.slic3r_version_captured.to_string() + "
"; text += _(L("print")) + ": " + snapshot.print + "
"; text += _(L("filaments")) + ": " + snapshot.filaments.front() + "
"; text += _(L("printer")) + ": " + snapshot.printer + "
"; @@ -50,9 +50,9 @@ static wxString generate_html_row(const Config::Snapshot &snapshot, bool row_eve bool compatible = true; for (const Config::Snapshot::VendorConfig &vc : snapshot.vendor_configs) { text += _(L("vendor")) + ": " + vc.name +", " + _(L("version")) + ": " + vc.version.config_version.to_string() + - ", " + _(L("min PrusaSlicer version")) + ": " + vc.version.min_slic3r_version.to_string(); + ", " + _(L("min slic3r version")) + ": " + vc.version.min_slic3r_version.to_string(); if (vc.version.max_slic3r_version != Semver::inf()) - text += ", " + _(L("max PrusaSlicer version")) + ": " + vc.version.max_slic3r_version.to_string(); + text += ", " + _(L("max slic3r version")) + ": " + vc.version.max_slic3r_version.to_string(); text += "
"; for (const std::pair> &model : vc.models_variants_installed) { text += _(L("model")) + ": " + model.first + ", " + _(L("variants")) + ": "; diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index eca95b5be17..fcf15d3c7af 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -25,7 +25,6 @@ #include "PresetBundle.hpp" #include "GUI.hpp" #include "GUI_Utils.hpp" -#include "slic3r/Config/Snapshot.hpp" #include "slic3r/Utils/PresetUpdater.hpp" @@ -34,10 +33,6 @@ namespace GUI { #define MAIN_VENDOR "None" -using Config::Snapshot; -using Config::SnapshotDB; - - // Printer model picker GUI control struct PrinterPickerEvent : public wxEvent @@ -1006,33 +1001,15 @@ void ConfigWizard::priv::apply_config(AppConfig *app_config, PresetBundle *prese // Decide whether to create snapshot based on run_reason and the reset profile checkbox bool snapshot = true; - Snapshot::Reason snapshot_reason = Snapshot::SNAPSHOT_UPGRADE; switch (run_reason) { - case ConfigWizard::RR_DATA_EMPTY: - snapshot = false; - break; - case ConfigWizard::RR_DATA_LEGACY: - snapshot = true; - break; - case ConfigWizard::RR_DATA_INCOMPAT: - // In this case snapshot has already been taken by - // PresetUpdater with the appropriate reason - snapshot = false; - break; - case ConfigWizard::RR_USER: - snapshot = page_welcome->reset_user_profile(); - snapshot_reason = Snapshot::SNAPSHOT_USER; - break; + case ConfigWizard::RR_DATA_EMPTY: snapshot = false; break; + case ConfigWizard::RR_DATA_LEGACY: snapshot = true; break; + case ConfigWizard::RR_DATA_INCOMPAT: snapshot = false; break; // In this case snapshot is done by PresetUpdater with the appropriate reason + case ConfigWizard::RR_USER: snapshot = page_welcome->reset_user_profile(); break; } - - if (snapshot) { - SnapshotDB::singleton().take_snapshot(*app_config, snapshot_reason); - } - if (install_bundles.size() > 0) { // Install bundles from resources. - // Don't create snapshot - we've already done that above if applicable. - updater->install_bundles_rsrc(std::move(install_bundles), false); + updater->install_bundles_rsrc(std::move(install_bundles), snapshot); } else { BOOST_LOG_TRIVIAL(info) << "No bundles need to be installed from resources"; } diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index 3b815506a4e..19f0edcbea3 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -138,7 +138,7 @@ bool Field::is_matched(const std::string& string, const std::string& pattern) static wxString na_value() { return _(L("N/A")); } -void Field::get_value_by_opt_type(wxString& str, const bool check_value/* = true*/) +void Field::get_value_by_opt_type(wxString& str) { switch (m_opt.type) { case coInt: @@ -150,7 +150,7 @@ void Field::get_value_by_opt_type(wxString& str, const bool check_value/* = true case coFloat:{ if (m_opt.type == coPercent && !str.IsEmpty() && str.Last() == '%') str.RemoveLast(); - else if (check_value && !str.IsEmpty() && str.Last() == '%') { + else if (!str.IsEmpty() && str.Last() == '%') { wxString label = m_Label->GetLabel(); if (label.Last() == '\n') label.RemoveLast(); while (label.Last() == ' ') label.RemoveLast(); @@ -169,12 +169,12 @@ void Field::get_value_by_opt_type(wxString& str, const bool check_value/* = true { if (m_opt.nullable && str == na_value()) val = ConfigOptionFloatsNullable::nil_value(); - else if (check_value && !str.ToCDouble(&val)) + else if (!str.ToCDouble(&val)) { show_error(m_parent, _(L("Invalid numeric input."))); set_value(double_to_string(val), true); } - if (check_value && (m_opt.min > val || val > m_opt.max)) + if (m_opt.min > val || val > m_opt.max) { show_error(m_parent, _(L("Input value is out of range"))); if (m_opt.min > val) val = m_opt.min; @@ -189,16 +189,16 @@ void Field::get_value_by_opt_type(wxString& str, const bool check_value/* = true case coFloatOrPercent: { if (m_opt.type == coFloatOrPercent && !str.IsEmpty() && str.Last() != '%') { - double val = 0.; + double val; // Replace the first occurence of comma in decimal number. str.Replace(",", ".", false); - if (check_value && !str.ToCDouble(&val)) + if (!str.ToCDouble(&val)) { show_error(m_parent, _(L("Invalid numeric input."))); set_value(double_to_string(val), true); } - else if (check_value && ((m_opt.sidetext.rfind("mm/s") != std::string::npos && val > m_opt.max) || - (m_opt.sidetext.rfind("mm ") != std::string::npos && val > 1)) && + else if ((m_opt.sidetext.rfind("mm/s") != std::string::npos && val > m_opt.max || + m_opt.sidetext.rfind("mm ") != std::string::npos && val > 1) && (m_value.empty() || std::string(str.ToUTF8().data()) != boost::any_cast(m_value))) { const std::string sidetext = m_opt.sidetext.rfind("mm/s") != std::string::npos ? "mm/s" : "mm"; @@ -206,8 +206,8 @@ void Field::get_value_by_opt_type(wxString& str, const bool check_value/* = true const wxString msg_text = wxString::Format(_(L("Do you mean %s%% instead of %s %s?\n" "Select YES if you want to change this value to %s%%, \n" "or NO if you are sure that %s %s is a correct value.")), stVal, stVal, sidetext, stVal, stVal, sidetext); - wxMessageDialog dialog(m_parent, msg_text, _(L("Parameter validation")) + ": " + m_opt_id , wxICON_WARNING | wxYES | wxNO); - if (dialog.ShowModal() == wxID_YES) { + auto dialog = new wxMessageDialog(m_parent, msg_text, _(L("Parameter validation")), wxICON_WARNING | wxYES | wxNO); + if (dialog->ShowModal() == wxID_YES) { set_value(wxString::Format("%s%%", stVal), false/*true*/); str += "%%"; } @@ -393,13 +393,6 @@ void TextCtrl::set_value(const boost::any& value, bool change_event/* = false*/) else dynamic_cast(window)->SetValue(boost::any_cast(value)); m_disable_change_event = false; - - if (!change_event) { - wxString ret_str = static_cast(window)->GetValue(); - // update m_value to correct work of next value_was_changed(), - // but don't check/change inputed value and don't show a warning message - get_value_by_opt_type(ret_str, false); - } } void TextCtrl::set_last_meaningful_value() @@ -417,7 +410,7 @@ void TextCtrl::set_na_value() boost::any& TextCtrl::get_value() { wxString ret_str = static_cast(window)->GetValue(); - // update m_value + // modifies ret_string! get_value_by_opt_type(ret_str); return m_value; @@ -444,7 +437,7 @@ void TextCtrl::disable() { dynamic_cast(window)->Disable(); dynamic #ifdef __WXGTK__ void TextCtrl::change_field_value(wxEvent& event) { - if (bChangedValueEvent = (event.GetEventType()==wxEVT_KEY_UP)) + if (bChangedValueEvent = event.GetEventType()==wxEVT_KEY_UP) on_change_field(); event.Skip(); }; @@ -560,16 +553,7 @@ void SpinCtrl::BUILD() { break; } - const int min_val = m_opt.min == INT_MIN -#ifdef __WXOSX__ - // We will forcibly set the input value for SpinControl, since the value - // inserted from the keyboard is not updated under OSX. - // So, we can't set min control value bigger then 0. - // Otherwise, it couldn't be possible to input from keyboard value - // less then min_val. - || m_opt.min > 0 -#endif - ? 0 : m_opt.min; + const int min_val = m_opt.min == INT_MIN ? 0: m_opt.min; const int max_val = m_opt.max < 2147483647 ? m_opt.max : 2147483647; auto temp = new wxSpinCtrl(m_parent, wxID_ANY, text_value, wxDefaultPosition, size, @@ -638,24 +622,11 @@ void SpinCtrl::BUILD() { void SpinCtrl::propagate_value() { - if (suppress_propagation) - return; - - suppress_propagation = true; if (tmp_value == UNDEF_VALUE) { on_kill_focus(); } else { -#ifdef __WXOSX__ - // check input value for minimum - if (m_opt.min > 0 && tmp_value < m_opt.min) { - wxSpinCtrl* spin = static_cast(window); - spin->SetValue(m_opt.min); - spin->GetText()->SetInsertionPointEnd(); - } -#endif on_change_field(); } - suppress_propagation = false; } void SpinCtrl::msw_rescale() @@ -768,7 +739,7 @@ void Choice::set_selection() size_t idx = 0; for (auto el : m_opt.enum_values) { - if (el == text_value) + if (el.compare(text_value) == 0) break; ++idx; } @@ -789,7 +760,7 @@ void Choice::set_selection() size_t idx = 0; for (auto el : m_opt.enum_values) { - if (el == text_value) + if (el.compare(text_value) == 0) break; ++idx; } @@ -804,7 +775,7 @@ void Choice::set_selection() size_t idx = 0; for (auto el : m_opt.enum_values) { - if (el == text_value) + if (el.compare(text_value) == 0) break; ++idx; } @@ -813,7 +784,6 @@ void Choice::set_selection() field->SetSelection(idx); break; } - default: break; } } @@ -824,7 +794,7 @@ void Choice::set_value(const std::string& value, bool change_event) //! Redunda size_t idx=0; for (auto el : m_opt.enum_values) { - if (el == value) + if (el.compare(value) == 0) break; ++idx; } @@ -880,10 +850,10 @@ void Choice::set_value(const boost::any& value, bool change_event) text_value = wxString::Format(_T("%i"), int(boost::any_cast(value))); else text_value = boost::any_cast(value); - size_t idx = 0; + auto idx = 0; for (auto el : m_opt.enum_values) { - if (el == text_value) + if (el.compare(text_value) == 0) break; ++idx; } @@ -976,7 +946,7 @@ boost::any& Choice::get_value() wxString ret_str = field->GetValue(); // options from right panel - std::vector right_panel_options{ "support", "pad", "scale_unit" }; + std::vector right_panel_options{ "support", "scale_unit" }; for (auto rp_option: right_panel_options) if (m_opt_id == rp_option) return m_value = boost::any(ret_str); @@ -1080,12 +1050,11 @@ void ColourPicker::BUILD() // Validate the color wxString clr_str(m_opt.get_default_value()->get_at(m_opt_idx)); wxColour clr(clr_str); - if (clr_str.IsEmpty() || !clr.IsOk()) { + if (! clr.IsOk()) { clr = wxTransparentColour; } auto temp = new wxColourPickerCtrl(m_parent, wxID_ANY, clr, wxDefaultPosition, size); - temp->SetFont(Slic3r::GUI::wxGetApp().normal_font()); temp->SetBackgroundStyle(wxBG_STYLE_PAINT); // // recast as a wxWindow to fit the calling convention @@ -1096,58 +1065,15 @@ void ColourPicker::BUILD() temp->SetToolTip(get_tooltip_text(clr_str)); } -void ColourPicker::set_undef_value(wxColourPickerCtrl* field) -{ - field->SetColour(wxTransparentColour); - - wxButton* btn = dynamic_cast(field->GetPickerCtrl()); - wxBitmap bmp = btn->GetBitmap(); - wxMemoryDC dc(bmp); - if (!dc.IsOk()) return; - dc.SetTextForeground(*wxWHITE); - dc.SetFont(wxGetApp().normal_font()); - - const wxRect rect = wxRect(0, 0, bmp.GetWidth(), bmp.GetHeight()); - dc.DrawLabel("undef", rect, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL); - - dc.SelectObject(wxNullBitmap); - btn->SetBitmapLabel(bmp); -} - -void ColourPicker::set_value(const boost::any& value, bool change_event) -{ - m_disable_change_event = !change_event; - const wxString clr_str(boost::any_cast(value)); - auto field = dynamic_cast(window); - - wxColour clr(clr_str); - if (clr_str.IsEmpty() || !clr.IsOk()) - set_undef_value(field); - else - field->SetColour(clr); - - m_disable_change_event = false; -} - boost::any& ColourPicker::get_value() { - auto colour = static_cast(window)->GetColour(); - if (colour == wxTransparentColour) - m_value = std::string(""); - else { - auto clr_str = wxString::Format(wxT("#%02X%02X%02X"), colour.Red(), colour.Green(), colour.Blue()); - m_value = clr_str.ToStdString(); - } - return m_value; -} +// boost::any m_value; -void ColourPicker::msw_rescale() -{ - Field::msw_rescale(); + auto colour = static_cast(window)->GetColour(); + auto clr_str = wxString::Format(wxT("#%02X%02X%02X"), colour.Red(), colour.Green(), colour.Blue()); + m_value = clr_str.ToStdString(); - wxColourPickerCtrl* field = dynamic_cast(window); - if (field->GetColour() == wxTransparentColour) - set_undef_value(field); + return m_value; } void PointCtrl::BUILD() diff --git a/src/slic3r/GUI/Field.hpp b/src/slic3r/GUI/Field.hpp index 674e5e7a985..8e8ad3795ec 100644 --- a/src/slic3r/GUI/Field.hpp +++ b/src/slic3r/GUI/Field.hpp @@ -152,7 +152,7 @@ class Field { virtual wxWindow* getWindow() { return nullptr; } bool is_matched(const std::string& string, const std::string& pattern); - void get_value_by_opt_type(wxString& str, const bool check_value = true); + void get_value_by_opt_type(wxString& str); /// Factory method for generating new derived classes. template @@ -336,8 +336,6 @@ class SpinCtrl : public Field { using Field::Field; private: static const int UNDEF_VALUE = INT_MIN; - - bool suppress_propagation {false}; public: SpinCtrl(const ConfigOptionDef& opt, const t_config_option_key& id) : Field(opt, id), tmp_value(UNDEF_VALUE) {} SpinCtrl(wxWindow* parent, const ConfigOptionDef& opt, const t_config_option_key& id) : Field(parent, opt, id), tmp_value(UNDEF_VALUE) {} @@ -411,8 +409,6 @@ class Choice : public Field { class ColourPicker : public Field { using Field::Field; - - void set_undef_value(wxColourPickerCtrl* field); public: ColourPicker(const ConfigOptionDef& opt, const t_config_option_key& id) : Field(opt, id) {} ColourPicker(wxWindow* parent, const ConfigOptionDef& opt, const t_config_option_key& id) : Field(parent, opt, id) {} @@ -426,9 +422,13 @@ class ColourPicker : public Field { dynamic_cast(window)->SetColour(value); m_disable_change_event = false; } - void set_value(const boost::any& value, bool change_event = false) override; + void set_value(const boost::any& value, bool change_event = false) { + m_disable_change_event = !change_event; + dynamic_cast(window)->SetColour(boost::any_cast(value)); + m_disable_change_event = false; + } + boost::any& get_value() override; - void msw_rescale() override; void enable() override { dynamic_cast(window)->Enable(); }; void disable() override{ dynamic_cast(window)->Disable(); }; diff --git a/src/slic3r/GUI/FirmwareDialog.cpp b/src/slic3r/GUI/FirmwareDialog.cpp index fe7ff4e5de3..7865aecf2ec 100644 --- a/src/slic3r/GUI/FirmwareDialog.cpp +++ b/src/slic3r/GUI/FirmwareDialog.cpp @@ -354,7 +354,7 @@ bool FirmwareDialog::priv::check_model_id() // Therefore, regretably, so far the check cannot be used and we just return true here. // TODO: Rewrite Serial using more platform-native code. return true; - + // if (hex_file.model_id.empty()) { // // No data to check against, assume it's ok // return true; @@ -866,7 +866,7 @@ FirmwareDialog::FirmwareDialog(wxWindow *parent) : SetSize(std::max(size.GetWidth(), static_cast(p->min_width)), std::max(size.GetHeight(), static_cast(p->min_height))); Layout(); - SetEscapeId(wxID_CLOSE); // To close the dialog using "Esc" button + SetEscapeId(wxID_CLOSE); // To close the dialog using "Esc" button // Bind events @@ -893,6 +893,7 @@ FirmwareDialog::FirmwareDialog(wxWindow *parent) : this->p->fit_no_shrink(); }); + p->btn_close->Bind(wxEVT_BUTTON, [this](wxCommandEvent &) { this->Close(); }); p->btn_rescan->Bind(wxEVT_BUTTON, [this](wxCommandEvent &) { this->p->find_serial_ports(); }); p->btn_flash->Bind(wxEVT_BUTTON, [this](wxCommandEvent &) { diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index eb1ddfd8b8a..fbb33fa16e9 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -8,7 +8,6 @@ #include "libslic3r/PrintConfig.hpp" #include "libslic3r/GCode/PreviewData.hpp" #include "libslic3r/Geometry.hpp" -#include "libslic3r/ExtrusionEntity.hpp" #include "libslic3r/Utils.hpp" #include "libslic3r/Technologies.hpp" #include "libslic3r/Tesselate.hpp" @@ -60,6 +59,10 @@ #endif // ENABLE_RENDER_STATISTICS static const float TRACKBALLSIZE = 0.8f; +static const float GROUND_Z = -0.02f; + +static const float GIZMO_RESET_BUTTON_HEIGHT = 22.0f; +static const float GIZMO_RESET_BUTTON_WIDTH = 70.f; static const float DEFAULT_BG_DARK_COLOR[3] = { 0.478f, 0.478f, 0.478f }; static const float DEFAULT_BG_LIGHT_COLOR[3] = { 0.753f, 0.753f, 0.753f }; @@ -67,13 +70,6 @@ static const float ERROR_BG_DARK_COLOR[3] = { 0.478f, 0.192f, 0.039f }; static const float ERROR_BG_LIGHT_COLOR[3] = { 0.753f, 0.192f, 0.039f }; //static const float AXES_COLOR[3][3] = { { 1.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 1.0f } }; -// Number of floats -static const size_t MAX_VERTEX_BUFFER_SIZE = 131072 * 6; // 3.15MB -// Reserve size in number of floats. -static const size_t VERTEX_BUFFER_RESERVE_SIZE = 131072 * 2; // 1.05MB -// Reserve size in number of floats, maximum sum of all preallocated buffers. -static const size_t VERTEX_BUFFER_RESERVE_SIZE_SUM_MAX = 1024 * 1024 * 128 / 4; // 128MB - namespace Slic3r { namespace GUI { @@ -841,23 +837,22 @@ void GLCanvas3D::LegendTexture::fill_color_print_legend_values(const GCodePrevie { auto& config = wxGetApp().preset_bundle->project_config; const std::vector& color_print_values = config.option("colorprint_heights")->values; - - if (!color_print_values.empty()) { - std::vector print_zs = canvas.get_current_print_zs(true); - for (auto cp_value : color_print_values) + const int values_cnt = color_print_values.size(); + if (values_cnt > 0) { + auto print_zs = canvas.get_current_print_zs(true); + auto z = 0; + for (auto i = 0; i < values_cnt; ++i) { - auto lower_b = std::lower_bound(print_zs.begin(), print_zs.end(), cp_value - DoubleSlider::epsilon()); - - if (lower_b == print_zs.end()) + double prev_z = -1.0; + for (z; z < print_zs.size(); ++z) + if (fabs(color_print_values[i] - print_zs[z]) < EPSILON) { + prev_z = print_zs[z - 1]; + break; + } + if (prev_z < 0) continue; - double current_z = *lower_b; - double previous_z = lower_b == print_zs.begin() ? 0.0 : *(--lower_b); - - // to avoid duplicate values, check adding values - if (cp_legend_values.empty() || - !(cp_legend_values.back().first == previous_z && cp_legend_values.back().second == current_z) ) - cp_legend_values.push_back(std::pair(previous_z, current_z)); + cp_legend_values.push_back(std::pair(prev_z, color_print_values[i])); } } } @@ -898,11 +893,11 @@ bool GLCanvas3D::LegendTexture::generate(const GCodePreviewData& preview_data, c // Disabling ClearType works, but the font returned is very different (much thicker) from the default. // msw_disable_cleartype(font); -// bool cleartype = is_font_cleartype(font); + bool cleartype = is_font_cleartype(font); #else // select default font wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).Scale(scale_gl); -// bool cleartype = false; + bool cleartype = false; #endif /* __WXMSW__ */ memDC.SetFont(font); @@ -1094,7 +1089,7 @@ void GLCanvas3D::LegendTexture::render(const GLCanvas3D& canvas) const wxDEFINE_EVENT(EVT_GLCANVAS_INIT, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, SimpleEvent); -wxDEFINE_EVENT(EVT_GLCANVAS_RIGHT_CLICK, RBtnEvent); +wxDEFINE_EVENT(EVT_GLCANVAS_RIGHT_CLICK, Vec2dEvent); wxDEFINE_EVENT(EVT_GLCANVAS_REMOVE_OBJECT, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_ARRANGE, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_SELECT_ALL, SimpleEvent); @@ -1123,7 +1118,6 @@ GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas, Bed3D& bed, Camera& camera, GLToolbar , m_retina_helper(nullptr) #endif , m_in_render(false) - , m_render_enabled(true) , m_bed(bed) , m_camera(camera) , m_view_toolbar(view_toolbar) @@ -1240,9 +1234,10 @@ bool GLCanvas3D::init() return false; } - // on linux the gl context is not valid until the canvas is not shown on screen - // we defer the geometry finalization of volumes until the first call to render() - m_volumes.finalize_geometry(true); +// // on linux the gl context is not valid until the canvas is not shown on screen +// // we defer the geometry finalization of volumes until the first call to render() +// if (!m_volumes.empty()) +// m_volumes.finalize_geometry(); if (m_gizmos.is_enabled() && !m_gizmos.init()) std::cout << "Unable to initialize gizmos: please, check that all the required textures are available" << std::endl; @@ -1325,26 +1320,6 @@ void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject _set_warning_texture(WarningTexture::SomethingNotShown, false); } -void GLCanvas3D::update_instance_printable_state_for_object(const size_t obj_idx) -{ - ModelObject* model_object = m_model->objects[obj_idx]; - for (int inst_idx = 0; inst_idx < (int)model_object->instances.size(); ++inst_idx) - { - ModelInstance* instance = model_object->instances[inst_idx]; - - for (GLVolume* volume : m_volumes.volumes) - { - if ((volume->object_idx() == (int)obj_idx) && (volume->instance_idx() == inst_idx)) - volume->printable = instance->printable; - } - } -} - -void GLCanvas3D::update_instance_printable_state_for_objects(std::vector& object_idxs) -{ - for (size_t obj_idx : object_idxs) - update_instance_printable_state_for_object(obj_idx); -} void GLCanvas3D::set_config(const DynamicPrintConfig* config) { @@ -1510,7 +1485,7 @@ void GLCanvas3D::update_volumes_colors_by_extruder() void GLCanvas3D::render() { - if (!m_render_enabled || m_in_render) + if (m_in_render) { // if called recursively, return m_dirty = true; @@ -1524,8 +1499,14 @@ void GLCanvas3D::render() if (m_canvas == nullptr) return; +#ifndef __WXMAC__ + // on Mac this check causes flickering when changing view + if (!_is_shown_on_screen()) + return; +#endif // __WXMAC__ + // ensures this canvas is current and initialized - if (! _is_shown_on_screen() || !_set_current() || !_3DScene::init(m_canvas)) + if (!_set_current() || !_3DScene::init(m_canvas)) return; #if ENABLE_RENDER_STATISTICS @@ -1548,7 +1529,7 @@ void GLCanvas3D::render() } m_camera.apply_view_matrix(); - m_camera.apply_projection(_max_bounding_box(true, true)); + m_camera.apply_projection(_max_bounding_box(true)); GLfloat position_cam[4] = { 1.0f, 0.0f, 1.0f, 0.0f }; glsafe(::glLightfv(GL_LIGHT1, GL_POSITION, position_cam)); @@ -1670,7 +1651,7 @@ void GLCanvas3D::ensure_on_bed(unsigned int object_idx) for (GLVolume* volume : m_volumes.volumes) { - if ((volume->object_idx() == (int)object_idx) && !volume->is_modifier) + if ((volume->object_idx() == object_idx) && !volume->is_modifier) { double min_z = volume->transformed_convex_hull_bounding_box().min(2); std::pair instance = std::make_pair(volume->object_idx(), volume->instance_idx()); @@ -1710,7 +1691,7 @@ std::vector GLCanvas3D::load_object(const ModelObject& model_object, int ob instance_idxs.push_back(i); } } - return m_volumes.load_object(&model_object, obj_idx, instance_idxs, m_color_by, m_initialized); + return m_volumes.load_object(&model_object, obj_idx, instance_idxs, m_color_by); } std::vector GLCanvas3D::load_object(const Model& model, int obj_idx) @@ -1898,7 +1879,7 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re assert(it != model_volume_state.end() && it->geometry_id == key.geometry_id); if (it->new_geometry()) { // New volume. - m_volumes.load_object_volume(&model_object, obj_idx, volume_idx, instance_idx, m_color_by, m_initialized); + m_volumes.load_object_volume(&model_object, obj_idx, volume_idx, instance_idx, m_color_by); m_volumes.volumes.back()->geometry_id = key.geometry_id; update_object_list = true; } else { @@ -1966,17 +1947,17 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re } } -// // stores the current volumes count -// size_t volumes_count = m_volumes.volumes.size(); + // stores the current volumes count + size_t volumes_count = m_volumes.volumes.size(); for (size_t istep = 0; istep < sla_steps.size(); ++istep) if (!instances[istep].empty()) - m_volumes.load_object_auxiliary(print_object, object_idx, instances[istep], sla_steps[istep], state.step[istep].timestamp, m_initialized); + m_volumes.load_object_auxiliary(print_object, object_idx, instances[istep], sla_steps[istep], state.step[istep].timestamp); } // Shift-up all volumes of the object so that it has the right elevation with respect to the print bed for (GLVolume* volume : m_volumes.volumes) - if (volume->object_idx() < (int)m_model->objects.size() && m_model->objects[volume->object_idx()]->instances[volume->instance_idx()]->is_printable()) + if (volume->object_idx() < m_model->objects.size() && m_model->objects[volume->object_idx()]->instances[volume->instance_idx()]->is_printable()) volume->set_sla_shift_z(shift_zs[volume->object_idx()]); } @@ -2011,7 +1992,7 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re depth = (900.f/w) * (float)(extruders_count - 1); int volume_idx_wipe_tower_new = m_volumes.load_wipe_tower_preview( 1000, x, y, w, depth, (float)height, a, !print->is_step_done(psWipeTower), - brim_spacing * 4.5f, m_initialized); + brim_spacing * 4.5f); if (volume_idx_wipe_tower_old != -1) map_glvolume_old_to_new[volume_idx_wipe_tower_old] = volume_idx_wipe_tower_new; } @@ -2084,52 +2065,6 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re m_dirty = true; } -static void reserve_new_volume_finalize_old_volume(GLVolume& vol_new, GLVolume& vol_old, bool gl_initialized, size_t prealloc_size = VERTEX_BUFFER_RESERVE_SIZE) -{ - // Assign the large pre-allocated buffers to the new GLVolume. - vol_new.indexed_vertex_array = std::move(vol_old.indexed_vertex_array); - // Copy the content back to the old GLVolume. - vol_old.indexed_vertex_array = vol_new.indexed_vertex_array; - // Clear the buffers, but keep them pre-allocated. - vol_new.indexed_vertex_array.clear(); - // Just make sure that clear did not clear the reserved memory. - // Reserving number of vertices (3x position + 3x color) - vol_new.indexed_vertex_array.reserve(prealloc_size / 6); - // Finalize the old geometry, possibly move data to the graphics card. - vol_old.finalize_geometry(gl_initialized); -} - -static void load_gcode_retractions(const GCodePreviewData::Retraction& retractions, GLCanvas3D::GCodePreviewVolumeIndex::EType extrusion_type, GLVolumeCollection &volumes, GLCanvas3D::GCodePreviewVolumeIndex &volume_index, bool gl_initialized) -{ - volume_index.first_volumes.emplace_back(extrusion_type, 0, (unsigned int)volumes.volumes.size()); - - // nothing to render, return - if (retractions.positions.empty()) - return; - - GLVolume *volume = volumes.new_nontoolpath_volume(retractions.color.rgba, VERTEX_BUFFER_RESERVE_SIZE); - - GCodePreviewData::Retraction::PositionsList copy(retractions.positions); - std::sort(copy.begin(), copy.end(), [](const GCodePreviewData::Retraction::Position& p1, const GCodePreviewData::Retraction::Position& p2) { return p1.position(2) < p2.position(2); }); - - for (const GCodePreviewData::Retraction::Position& position : copy) - { - volume->print_zs.push_back(unscale(position.position(2))); - volume->offsets.push_back(volume->indexed_vertex_array.quad_indices.size()); - volume->offsets.push_back(volume->indexed_vertex_array.triangle_indices.size()); - - _3DScene::point3_to_verts(position.position, position.width, position.height, *volume); - - // Ensure that no volume grows over the limits. If the volume is too large, allocate a new one. - if (volume->indexed_vertex_array.vertices_and_normals_interleaved.size() > MAX_VERTEX_BUFFER_SIZE) { - GLVolume &vol = *volume; - volume = volumes.new_nontoolpath_volume(vol.color); - reserve_new_volume_finalize_old_volume(*volume, vol, gl_initialized); - } - } - volume->indexed_vertex_array.finalize_geometry(gl_initialized); -} - void GLCanvas3D::load_gcode_preview(const GCodePreviewData& preview_data, const std::vector& str_tool_colors) { const Print *print = this->fff_print(); @@ -2145,41 +2080,14 @@ void GLCanvas3D::load_gcode_preview(const GCodePreviewData& preview_data, const _load_gcode_extrusion_paths(preview_data, tool_colors); _load_gcode_travel_paths(preview_data, tool_colors); - load_gcode_retractions(preview_data.retraction, GCodePreviewVolumeIndex::Retraction, m_volumes, m_gcode_preview_volume_index, m_initialized); - load_gcode_retractions(preview_data.unretraction, GCodePreviewVolumeIndex::Unretraction, m_volumes, m_gcode_preview_volume_index, m_initialized); + _load_gcode_retractions(preview_data); + _load_gcode_unretractions(preview_data); if (!m_volumes.empty()) { - // Remove empty volumes from both m_volumes, update m_gcode_preview_volume_index. - { - size_t idx_volume_src = 0; - size_t idx_volume_dst = 0; - size_t idx_volume_index_src = 0; - size_t idx_volume_index_dst = 0; - size_t idx_volume_of_this_type_last = (idx_volume_index_src + 1 == m_gcode_preview_volume_index.first_volumes.size()) ? m_volumes.volumes.size() : m_gcode_preview_volume_index.first_volumes[idx_volume_index_src + 1].id; - size_t idx_volume_of_this_type_first_new = 0; - for (;;) { - if (idx_volume_src == idx_volume_of_this_type_last) { - if (idx_volume_of_this_type_first_new < idx_volume_dst) { - // There are some volumes of this type left, therefore their entry in the index has to be maintained. - if (idx_volume_index_dst < idx_volume_index_src) - m_gcode_preview_volume_index.first_volumes[idx_volume_index_dst] = m_gcode_preview_volume_index.first_volumes[idx_volume_index_src]; - m_gcode_preview_volume_index.first_volumes[idx_volume_index_dst].id = idx_volume_of_this_type_first_new; - ++ idx_volume_index_dst; - } - if (idx_volume_of_this_type_last == m_volumes.volumes.size()) - break; - ++ idx_volume_index_src; - idx_volume_of_this_type_last = (idx_volume_index_src + 1 == m_gcode_preview_volume_index.first_volumes.size()) ? m_volumes.volumes.size() : m_gcode_preview_volume_index.first_volumes[idx_volume_index_src + 1].id; - idx_volume_of_this_type_first_new = idx_volume_dst; - } - if (! m_volumes.volumes[idx_volume_src]->print_zs.empty()) - m_volumes.volumes[idx_volume_dst ++] = m_volumes.volumes[idx_volume_src]; - ++ idx_volume_src; - } - m_volumes.volumes.erase(m_volumes.volumes.begin() + idx_volume_dst, m_volumes.volumes.end()); - m_gcode_preview_volume_index.first_volumes.erase(m_gcode_preview_volume_index.first_volumes.begin() + idx_volume_index_dst, m_gcode_preview_volume_index.first_volumes.end()); - } + // removes empty volumes + m_volumes.volumes.erase(std::remove_if(m_volumes.volumes.begin(), m_volumes.volumes.end(), + [](const GLVolume* volume) { return volume->print_zs.empty(); }), m_volumes.volumes.end()); _load_fff_shells(); } @@ -2202,9 +2110,8 @@ void GLCanvas3D::load_sla_preview() if ((m_canvas != nullptr) && (print != nullptr)) { _set_current(); - // Release OpenGL data before generating new data. - this->reset_volumes(); - _load_sla_shells(); + // Reload the SLA support structures into GLVolumes. + this->reload_scene(true, true); _update_sla_shells_outside_state(); _show_warning_texture_if_needed(WarningTexture::SlaSupportsOutside); } @@ -2218,13 +2125,18 @@ void GLCanvas3D::load_preview(const std::vector& str_tool_colors, c _set_current(); - // Release OpenGL data before generating new data. - this->reset_volumes(); - _load_print_toolpaths(); _load_wipe_tower_toolpaths(str_tool_colors); for (const PrintObject* object : print->objects()) + { + if (object != nullptr) _load_print_object_toolpaths(*object, str_tool_colors, color_print_values); + } + + for (GLVolume* volume : m_volumes.volumes) + { + volume->is_extrusion_path = true; + } _update_toolpath_volumes_outside_state(); _show_warning_texture_if_needed(WarningTexture::ToolpathOutside); @@ -2544,13 +2456,6 @@ void GLCanvas3D::on_mouse_wheel(wxMouseEvent& evt) evt.SetY(evt.GetY() * scale); #endif -#ifdef __WXMSW__ - // For some reason the Idle event is not being generated after the mouse scroll event in case of scrolling with the two fingers on the touch pad, - // if the event is not allowed to be passed further. - // https://github.com/prusa3d/PrusaSlicer/issues/2750 - evt.Skip(); -#endif /* __WXMSW__ */ - // Performs layers editing updates, if enabled if (is_layers_editing_enabled()) { @@ -3001,35 +2906,30 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) && m_gizmos.get_current_type() != GLGizmosManager::SlaSupports) // disable context menu when the gizmo is open { // forces the selection of the volume - /* m_selection.add(volume_idx); // #et_FIXME_if_needed - * To avoid extra "Add-Selection" snapshots, - * call add() with check_for_already_contained=true - * */ - m_selection.add(volume_idx, true, true); + m_selection.add(volume_idx); m_gizmos.refresh_on_off_state(); post_event(SimpleEvent(EVT_GLCANVAS_OBJECT_SELECT)); m_gizmos.update_data(); wxGetApp().obj_manipul()->set_dirty(); // forces a frame render to update the view before the context menu is shown render(); - } - } + Vec2d logical_pos = pos.cast(); #if ENABLE_RETINA_GL const float factor = m_retina_helper->get_scale_factor(); logical_pos = logical_pos.cwiseQuotient(Vec2d(factor, factor)); #endif // ENABLE_RETINA_GL - if (!m_mouse.dragging) - // do not post the event if the user is panning the scene - post_event(RBtnEvent(EVT_GLCANVAS_RIGHT_CLICK, { logical_pos, m_hover_volume_idxs.empty() })); + post_event(Vec2dEvent(EVT_GLCANVAS_RIGHT_CLICK, logical_pos)); } + } + } mouse_up_cleanup(); } else if (evt.Moving()) { m_mouse.position = pos.cast(); - std::string tooltip = ""; + std::string tooltip = L(""); if (tooltip.empty()) tooltip = m_gizmos.get_tooltip(); @@ -3317,7 +3217,7 @@ void GLCanvas3D::do_flatten(const Vec3d& normal, const std::string& snapshot_typ wxGetApp().plater()->take_snapshot(_(snapshot_type)); m_selection.flattening_rotate(normal); - do_rotate(""); // avoid taking another snapshot + do_rotate(L("")); // avoid taking another snapshot } void GLCanvas3D::do_mirror(const std::string& snapshot_type) @@ -3373,7 +3273,7 @@ void GLCanvas3D::do_mirror(const std::string& snapshot_type) void GLCanvas3D::set_camera_zoom(double zoom) { const Size& cnv_size = get_canvas_size(); - m_camera.set_zoom(zoom, _max_bounding_box(false, true), cnv_size.get_width(), cnv_size.get_height()); + m_camera.set_zoom(zoom, _max_bounding_box(false), cnv_size.get_width(), cnv_size.get_height()); m_dirty = true; } @@ -3474,16 +3374,6 @@ void GLCanvas3D::msw_rescale() m_warning_texture.msw_rescale(*this); } -bool GLCanvas3D::has_toolpaths_to_export() const -{ - return m_volumes.has_toolpaths_to_export(); -} - -void GLCanvas3D::export_toolpaths_to_obj(const char* filename) const -{ - m_volumes.export_toolpaths_to_obj(filename); -} - bool GLCanvas3D::_is_shown_on_screen() const { return (m_canvas != nullptr) ? m_canvas->IsShownOnScreen() : false; @@ -3497,13 +3387,14 @@ static bool string_getter(const bool is_undo, int idx, const char** out_text) void GLCanvas3D::_render_undo_redo_stack(const bool is_undo, float pos_x) { + const wxString& stack_name = _(is_undo ? L("Undo") : L("Redo")); ImGuiWrapper* imgui = wxGetApp().imgui(); const float x = pos_x * (float)get_camera().get_zoom() + 0.5f * (float)get_canvas_size().get_width(); imgui->set_next_window_pos(x, m_undoredo_toolbar.get_height(), ImGuiCond_Always, 0.5f, 0.0f); imgui->set_next_window_bg_alpha(0.5f); - std::string title = is_undo ? L("Undo History") : L("Redo History"); - imgui->begin(_(title), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse); + imgui->begin(wxString::Format(_(L("%s Stack")), stack_name), + ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse); int hovered = m_imgui_undo_redo_hovered_pos; int selected = -1; @@ -3520,7 +3411,7 @@ void GLCanvas3D::_render_undo_redo_stack(const bool is_undo, float pos_x) if (selected >= 0) is_undo ? wxGetApp().plater()->undo_to(selected) : wxGetApp().plater()->redo_to(selected); - imgui->text(wxString::Format(is_undo ? _L_PLURAL("Undo %1$d Action", "Undo %1$d Actions", hovered + 1) : _L_PLURAL("Redo %1$d Action", "Redo %1$d Actions", hovered + 1), hovered + 1)); + imgui->text(wxString::Format(_(L("%s %d Action")), stack_name, hovered + 1)); imgui->end(); } @@ -3673,19 +3564,11 @@ bool GLCanvas3D::_init_main_toolbar() item.name = "layersediting"; item.icon_filename = "layers_white.svg"; - item.tooltip = _utf8(L("Height ranges")); + item.tooltip = _utf8(L("Layers editing")); item.sprite_id = 10; item.left.toggable = true; item.left.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_LAYERSEDITING)); }; - item.visibility_callback = [this]()->bool - { - bool res = m_process->current_printer_technology() == ptFFF; - // turns off if changing printer technology - if (!res && m_main_toolbar.is_item_visible("layersediting") && m_main_toolbar.is_item_pressed("layersediting")) - force_main_toolbar_left_action(get_main_toolbar_item_id("layersediting")); - - return res; - }; + item.visibility_callback = [this]()->bool { return m_process->current_printer_technology() == ptFFF; }; item.enabling_callback = []()->bool { return wxGetApp().plater()->can_layers_editing(); }; if (!m_main_toolbar.add_item(item)) return false; @@ -3724,7 +3607,7 @@ bool GLCanvas3D::_init_undoredo_toolbar() item.name = "undo"; item.icon_filename = "undo_toolbar.svg"; - item.tooltip = _utf8(L("Undo")) + " [" + GUI::shortkey_ctrl_prefix() + "Z]\n" + _utf8(L("Click right mouse button to open History")); + item.tooltip = _utf8(L("Undo")) + " [" + GUI::shortkey_ctrl_prefix() + "Z]"; item.sprite_id = 0; item.left.action_callback = [this]() { post_event(SimpleEvent(EVT_GLCANVAS_UNDO)); }; item.right.toggable = true; @@ -3732,22 +3615,19 @@ bool GLCanvas3D::_init_undoredo_toolbar() item.right.render_callback = [this](float left, float right, float, float) { if (m_canvas != nullptr) _render_undo_redo_stack(true, 0.5f * (left + right)); }; item.enabling_callback = [this]()->bool { bool can_undo = wxGetApp().plater()->can_undo(); - int id = m_undoredo_toolbar.get_item_id("undo"); + unsigned int id = m_undoredo_toolbar.get_item_id("undo"); std::string curr_additional_tooltip; m_undoredo_toolbar.get_additional_tooltip(id, curr_additional_tooltip); - std::string new_additional_tooltip = ""; - if (can_undo) { - std::string action; - wxGetApp().plater()->undo_redo_topmost_string_getter(true, action); - new_additional_tooltip = (boost::format(_utf8(L("Next Undo action: %1%"))) % action).str(); - } + std::string new_additional_tooltip = L(""); + if (can_undo) + wxGetApp().plater()->undo_redo_topmost_string_getter(true, new_additional_tooltip); if (new_additional_tooltip != curr_additional_tooltip) { m_undoredo_toolbar.set_additional_tooltip(id, new_additional_tooltip); - set_tooltip(""); + set_tooltip(L("")); } return can_undo; }; @@ -3757,29 +3637,26 @@ bool GLCanvas3D::_init_undoredo_toolbar() item.name = "redo"; item.icon_filename = "redo_toolbar.svg"; - item.tooltip = _utf8(L("Redo")) + " [" + GUI::shortkey_ctrl_prefix() + "Y]\n" + _utf8(L("Click right mouse button to open History")); + item.tooltip = _utf8(L("Redo")) + " [" + GUI::shortkey_ctrl_prefix() + "Y]"; item.sprite_id = 1; item.left.action_callback = [this]() { post_event(SimpleEvent(EVT_GLCANVAS_REDO)); }; item.right.action_callback = [this]() { m_imgui_undo_redo_hovered_pos = -1; }; item.right.render_callback = [this](float left, float right, float, float) { if (m_canvas != nullptr) _render_undo_redo_stack(false, 0.5f * (left + right)); }; item.enabling_callback = [this]()->bool { bool can_redo = wxGetApp().plater()->can_redo(); - int id = m_undoredo_toolbar.get_item_id("redo"); + unsigned int id = m_undoredo_toolbar.get_item_id("redo"); std::string curr_additional_tooltip; m_undoredo_toolbar.get_additional_tooltip(id, curr_additional_tooltip); - std::string new_additional_tooltip = ""; - if (can_redo) { - std::string action; - wxGetApp().plater()->undo_redo_topmost_string_getter(false, action); - new_additional_tooltip = (boost::format(_utf8(L("Next Redo action: %1%"))) % action).str(); - } + std::string new_additional_tooltip = L(""); + if (can_redo) + wxGetApp().plater()->undo_redo_topmost_string_getter(false, new_additional_tooltip); if (new_additional_tooltip != curr_additional_tooltip) { m_undoredo_toolbar.set_additional_tooltip(id, new_additional_tooltip); - set_tooltip(""); + set_tooltip(L("")); } return can_redo; }; @@ -3792,9 +3669,13 @@ bool GLCanvas3D::_init_undoredo_toolbar() bool GLCanvas3D::_set_current() { - return m_context != nullptr && m_canvas->SetCurrent(*m_context); + if (_is_shown_on_screen() && (m_context != nullptr)) { + return m_canvas->SetCurrent(*m_context); } + return false; +} + void GLCanvas3D::_resize(unsigned int w, unsigned int h) { if ((m_canvas == nullptr) && (m_context == nullptr)) @@ -3818,20 +3699,9 @@ void GLCanvas3D::_resize(unsigned int w, unsigned int h) m_dirty = false; } -BoundingBoxf3 GLCanvas3D::_max_bounding_box(bool include_gizmos, bool include_bed_model) const +BoundingBoxf3 GLCanvas3D::_max_bounding_box(bool include_bed_model) const { BoundingBoxf3 bb = volumes_bounding_box(); - - // The following is a workaround for gizmos not being taken in account when calculating the tight camera frustrum - // A better solution would ask the gizmo manager for the bounding box of the current active gizmo, if any - if (include_gizmos && m_gizmos.is_running()) - { - BoundingBoxf3 sel_bb = m_selection.get_bounding_box(); - Vec3d sel_bb_center = sel_bb.center(); - Vec3d extend_by = sel_bb.max_size() * Vec3d::Ones(); - bb.merge(BoundingBoxf3(sel_bb_center - extend_by, sel_bb_center + extend_by)); - } - bb.merge(m_bed.get_bounding_box(include_bed_model)); return bb; } @@ -3867,7 +3737,6 @@ void GLCanvas3D::_picking_pass() const // Better to use software ray - casting on a bounding - box hierarchy. if (m_multisample_allowed) - // This flag is often ignored by NVIDIA drivers if rendering into a screen buffer. glsafe(::glDisable(GL_MULTISAMPLE)); glsafe(::glDisable(GL_BLEND)); @@ -3897,8 +3766,6 @@ void GLCanvas3D::_picking_pass() const if (inside) { glsafe(::glReadPixels(m_mouse.position(0), cnv_size.get_height() - m_mouse.position(1) - 1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, (void*)color)); - if (picking_checksum_alpha_channel(color[0], color[1], color[2]) == color[3]) - // Only non-interpolated colors are valid, those have their lowest three bits zeroed. volume_id = color[0] + (color[1] << 8) + (color[2] << 16); } if ((0 <= volume_id) && (volume_id < (int)m_volumes.volumes.size())) @@ -3907,7 +3774,7 @@ void GLCanvas3D::_picking_pass() const m_gizmos.set_hover_id(-1); } else - m_gizmos.set_hover_id(inside && (unsigned int)volume_id <= GLGizmoBase::BASE_ID ? ((int)GLGizmoBase::BASE_ID - volume_id) : -1); + m_gizmos.set_hover_id(inside && volume_id <= GLGizmoBase::BASE_ID ? (GLGizmoBase::BASE_ID - volume_id) : -1); _update_volumes_hover_state(); } @@ -3922,7 +3789,6 @@ void GLCanvas3D::_rectangular_selection_picking_pass() const if (m_picking_enabled) { if (m_multisample_allowed) - // This flag is often ignored by NVIDIA drivers if rendering into a screen buffer. glsafe(::glDisable(GL_MULTISAMPLE)); glsafe(::glDisable(GL_BLEND)); @@ -3948,8 +3814,6 @@ void GLCanvas3D::_rectangular_selection_picking_pass() const struct Pixel { std::array data; - // Only non-interpolated colors are valid, those have their lowest three bits zeroed. - bool valid() const { return picking_checksum_alpha_channel(data[0], data[1], data[2]) == data[3]; } int id() const { return data[0] + (data[1] << 8) + (data[2] << 16); } }; @@ -3960,15 +3824,17 @@ void GLCanvas3D::_rectangular_selection_picking_pass() const tbb::parallel_for(tbb::blocked_range(0, frame.size(), (size_t)width), [this, &frame, &idxs, &mutex](const tbb::blocked_range& range) { for (size_t i = range.begin(); i < range.end(); ++i) - if (frame[i].valid()) { + { int volume_id = frame[i].id(); - if ((0 <= volume_id) && (volume_id < (int)m_volumes.volumes.size())) { + if ((0 <= volume_id) && (volume_id < (int)m_volumes.volumes.size())) + { mutex.lock(); idxs.insert(volume_id); mutex.unlock(); } } - }); + } + ); #else std::vector frame(4 * px_count); glsafe(::glReadPixels(left, top, width, height, GL_RGBA, GL_UNSIGNED_BYTE, (void*)frame.data())); @@ -4147,27 +4013,42 @@ void GLCanvas3D::_render_volumes_for_picking() const // do not cull backfaces to show broken geometry, if any glsafe(::glDisable(GL_CULL_FACE)); + glsafe(::glEnable(GL_BLEND)); + glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); + glsafe(::glEnableClientState(GL_VERTEX_ARRAY)); glsafe(::glEnableClientState(GL_NORMAL_ARRAY)); const Transform3d& view_matrix = m_camera.get_view_matrix(); - for (size_t type = 0; type < 2; ++ type) { - GLVolumeWithIdAndZList to_render = volumes_to_render(m_volumes.volumes, (type == 0) ? GLVolumeCollection::Opaque : GLVolumeCollection::Transparent, view_matrix); + GLVolumeWithIdAndZList to_render = volumes_to_render(m_volumes.volumes, GLVolumeCollection::Opaque, view_matrix); for (const GLVolumeWithIdAndZ& volume : to_render) - if (!volume.first->disabled && ((volume.first->composite_id.volume_id >= 0) || m_render_sla_auxiliaries)) { + { // Object picking mode. Render the object with a color encoding the object index. - unsigned int id = volume.second.first; - unsigned int r = (id & (0x000000FF << 0)) << 0; - unsigned int g = (id & (0x000000FF << 8)) >> 8; - unsigned int b = (id & (0x000000FF << 16)) >> 16; - unsigned int a = picking_checksum_alpha_channel(r, g, b); - glsafe(::glColor4f((GLfloat)r * INV_255, (GLfloat)g * INV_255, (GLfloat)b * INV_255, (GLfloat)a * INV_255)); + unsigned int r = (volume.second.first & 0x000000FF) >> 0; + unsigned int g = (volume.second.first & 0x0000FF00) >> 8; + unsigned int b = (volume.second.first & 0x00FF0000) >> 16; + glsafe(::glColor3f((GLfloat)r * INV_255, (GLfloat)g * INV_255, (GLfloat)b * INV_255)); + + if (!volume.first->disabled && ((volume.first->composite_id.volume_id >= 0) || m_render_sla_auxiliaries)) volume.first->render(); } + + to_render = volumes_to_render(m_volumes.volumes, GLVolumeCollection::Transparent, view_matrix); + for (const GLVolumeWithIdAndZ& volume : to_render) + { + // Object picking mode. Render the object with a color encoding the object index. + unsigned int r = (volume.second.first & 0x000000FF) >> 0; + unsigned int g = (volume.second.first & 0x0000FF00) >> 8; + unsigned int b = (volume.second.first & 0x00FF0000) >> 16; + glsafe(::glColor3f((GLfloat)r * INV_255, (GLfloat)g * INV_255, (GLfloat)b * INV_255)); + + if (!volume.first->disabled && ((volume.first->composite_id.volume_id >= 0) || m_render_sla_auxiliaries)) + volume.first->render(); } glsafe(::glDisableClientState(GL_NORMAL_ARRAY)); glsafe(::glDisableClientState(GL_VERTEX_ARRAY)); + glsafe(::glDisable(GL_BLEND)); glsafe(::glEnable(GL_CULL_FACE)); } @@ -4619,24 +4500,18 @@ void GLCanvas3D::_load_print_toolpaths() if (print_zs.size() > skirt_height) print_zs.erase(print_zs.begin() + skirt_height, print_zs.end()); - - GLVolume *volume = m_volumes.new_toolpath_volume(color, VERTEX_BUFFER_RESERVE_SIZE); + m_volumes.volumes.emplace_back(new GLVolume(color)); + GLVolume& volume = *m_volumes.volumes.back(); for (size_t i = 0; i < skirt_height; ++i) { - volume->print_zs.push_back(print_zs[i]); - volume->offsets.push_back(volume->indexed_vertex_array.quad_indices.size()); - volume->offsets.push_back(volume->indexed_vertex_array.triangle_indices.size()); + volume.print_zs.push_back(print_zs[i]); + volume.offsets.push_back(volume.indexed_vertex_array.quad_indices.size()); + volume.offsets.push_back(volume.indexed_vertex_array.triangle_indices.size()); if (i == 0) - _3DScene::extrusionentity_to_verts(print->brim(), print_zs[i], Point(0, 0), *volume); - _3DScene::extrusionentity_to_verts(print->skirt(), print_zs[i], Point(0, 0), *volume); - // Ensure that no volume grows over the limits. If the volume is too large, allocate a new one. - if (volume->indexed_vertex_array.vertices_and_normals_interleaved.size() > MAX_VERTEX_BUFFER_SIZE) { - GLVolume &vol = *volume; - volume = m_volumes.new_toolpath_volume(vol.color); - reserve_new_volume_finalize_old_volume(*volume, vol, m_initialized); + _3DScene::extrusionentity_to_verts(print->brim(), print_zs[i], Point(0, 0), volume); + + _3DScene::extrusionentity_to_verts(print->skirt(), print_zs[i], Point(0, 0), volume); } } - volume->indexed_vertex_array.finalize_geometry(m_initialized); -} void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, const std::vector& str_tool_colors, const std::vector& color_print_values) { @@ -4652,6 +4527,12 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c const std::vector* tool_colors; const std::vector* color_print_values; + // Number of vertices (each vertex is 6x4=24 bytes long) + static const size_t alloc_size_max() { return 131072; } // 3.15MB + // static const size_t alloc_size_max () { return 65536; } // 1.57MB + // static const size_t alloc_size_max () { return 32768; } // 786kB + static const size_t alloc_size_reserve() { return alloc_size_max() * 2; } + static const float* color_perimeters() { static float color[4] = { 1.0f, 1.0f, 0.0f, 1.f }; return color; } // yellow static const float* color_infill() { static float color[4] = { 1.0f, 0.5f, 0.5f, 1.f }; return color; } // redish static const float* color_support() { static float color[4] = { 0.5f, 1.0f, 0.5f, 1.f }; return color; } // greenish @@ -4695,20 +4576,16 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c std::sort(ctxt.layers.begin(), ctxt.layers.end(), [](const Layer *l1, const Layer *l2) { return l1->print_z < l2->print_z; }); // Maximum size of an allocation block: 32MB / sizeof(float) - BOOST_LOG_TRIVIAL(debug) << "Loading print object toolpaths in parallel - start" << m_volumes.log_memory_info() << log_memory_info(); + BOOST_LOG_TRIVIAL(debug) << "Loading print object toolpaths in parallel - start"; //FIXME Improve the heuristics for a grain size. size_t grain_size = std::max(ctxt.layers.size() / 16, size_t(1)); tbb::spin_mutex new_volume_mutex; auto new_volume = [this, &new_volume_mutex](const float *color) -> GLVolume* { - // Allocate the volume before locking. - GLVolume *volume = new GLVolume(color); - volume->is_extrusion_path = true; - tbb::spin_mutex::scoped_lock lock; - // Lock by ROII, so if the emplace_back() fails, the lock will be released. - lock.acquire(new_volume_mutex); + auto *volume = new GLVolume(color); + new_volume_mutex.lock(); m_volumes.volumes.emplace_back(volume); - lock.release(); + new_volume_mutex.unlock(); return volume; }; const size_t volumes_cnt_initial = m_volumes.volumes.size(); @@ -4746,8 +4623,7 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c else vols = { new_volume(ctxt.color_perimeters()), new_volume(ctxt.color_infill()), new_volume(ctxt.color_support()) }; for (GLVolume *vol : vols) - // Reserving number of vertices (3x position + 3x color) - vol->indexed_vertex_array.reserve(VERTEX_BUFFER_RESERVE_SIZE / 6); + vol->indexed_vertex_array.reserve(ctxt.alloc_size_reserve()); for (size_t idx_layer = range.begin(); idx_layer < range.end(); ++idx_layer) { const Layer *layer = ctxt.layers[idx_layer]; for (GLVolume *vol : vols) @@ -4794,28 +4670,31 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c // Ensure that no volume grows over the limits. If the volume is too large, allocate a new one. for (size_t i = 0; i < vols.size(); ++i) { GLVolume &vol = *vols[i]; - if (vol.indexed_vertex_array.vertices_and_normals_interleaved.size() > MAX_VERTEX_BUFFER_SIZE) { + if (vol.indexed_vertex_array.vertices_and_normals_interleaved.size() / 6 > ctxt.alloc_size_max()) { + // Store the vertex arrays and restart their containers, vols[i] = new_volume(vol.color); - reserve_new_volume_finalize_old_volume(*vols[i], vol, false); + GLVolume &vol_new = *vols[i]; + // Assign the large pre-allocated buffers to the new GLVolume. + vol_new.indexed_vertex_array = std::move(vol.indexed_vertex_array); + // Copy the content back to the old GLVolume. + vol.indexed_vertex_array = vol_new.indexed_vertex_array; + // Clear the buffers, but keep them pre-allocated. + vol_new.indexed_vertex_array.clear(); + // Just make sure that clear did not clear the reserved memory. + vol_new.indexed_vertex_array.reserve(ctxt.alloc_size_reserve()); } } } - for (GLVolume *vol : vols) - // Ideally one would call vol->indexed_vertex_array.finalize() here to move the buffers to the OpenGL driver, - // but this code runs in parallel and the OpenGL driver is not thread safe. - vol->indexed_vertex_array.shrink_to_fit(); }); - BOOST_LOG_TRIVIAL(debug) << "Loading print object toolpaths in parallel - finalizing results" << m_volumes.log_memory_info() << log_memory_info(); + BOOST_LOG_TRIVIAL(debug) << "Loading print object toolpaths in parallel - finalizing results"; // Remove empty volumes from the newly added volumes. m_volumes.volumes.erase( std::remove_if(m_volumes.volumes.begin() + volumes_cnt_initial, m_volumes.volumes.end(), [](const GLVolume *volume) { return volume->empty(); }), m_volumes.volumes.end()); - for (size_t i = volumes_cnt_initial; i < m_volumes.volumes.size(); ++i) - m_volumes.volumes[i]->indexed_vertex_array.finalize_geometry(m_initialized); - BOOST_LOG_TRIVIAL(debug) << "Loading print object toolpaths in parallel - end" << m_volumes.log_memory_info() << log_memory_info(); + BOOST_LOG_TRIVIAL(debug) << "Loading print object toolpaths in parallel - end"; } void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_tool_colors) @@ -4836,6 +4715,10 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_ Vec2f wipe_tower_pos; float wipe_tower_angle; + // Number of vertices (each vertex is 6x4=24 bytes long) + static const size_t alloc_size_max() { return 131072; } // 3.15MB + static const size_t alloc_size_reserve() { return alloc_size_max() * 2; } + static const float* color_support() { static float color[4] = { 0.5f, 1.0f, 0.5f, 1.f }; return color; } // greenish // For cloring by a tool, return a parsed color. @@ -4860,7 +4743,7 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_ ctxt.print = print; ctxt.tool_colors = tool_colors.empty() ? nullptr : &tool_colors; if (print->wipe_tower_data().priming && print->config().single_extruder_multi_material_priming) - for (int i=0; i<(int)print->wipe_tower_data().priming.get()->size(); ++i) + for (int i=0; iwipe_tower_data().priming.get()->size(); ++i) ctxt.priming.emplace_back(print->wipe_tower_data().priming.get()->at(i)); if (print->wipe_tower_data().final_purge) ctxt.final.emplace_back(*print->wipe_tower_data().final_purge.get()); @@ -4868,7 +4751,7 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_ ctxt.wipe_tower_angle = ctxt.print->config().wipe_tower_rotation_angle.value/180.f * PI; ctxt.wipe_tower_pos = Vec2f(ctxt.print->config().wipe_tower_x.value, ctxt.print->config().wipe_tower_y.value); - BOOST_LOG_TRIVIAL(debug) << "Loading wipe tower toolpaths in parallel - start" << m_volumes.log_memory_info() << log_memory_info(); + BOOST_LOG_TRIVIAL(debug) << "Loading wipe tower toolpaths in parallel - start"; //FIXME Improve the heuristics for a grain size. size_t n_items = print->wipe_tower_data().tool_changes.size() + (ctxt.priming.empty() ? 0 : 1); @@ -4876,11 +4759,9 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_ tbb::spin_mutex new_volume_mutex; auto new_volume = [this, &new_volume_mutex](const float *color) -> GLVolume* { auto *volume = new GLVolume(color); - volume->is_extrusion_path = true; - tbb::spin_mutex::scoped_lock lock; - lock.acquire(new_volume_mutex); + new_volume_mutex.lock(); m_volumes.volumes.emplace_back(volume); - lock.release(); + new_volume_mutex.unlock(); return volume; }; const size_t volumes_cnt_initial = m_volumes.volumes.size(); @@ -4897,8 +4778,7 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_ else vols = { new_volume(ctxt.color_support()) }; for (GLVolume *volume : vols) - // Reserving number of vertices (3x position + 3x color) - volume->indexed_vertex_array.reserve(VERTEX_BUFFER_RESERVE_SIZE / 6); + volume->indexed_vertex_array.reserve(ctxt.alloc_size_reserve()); for (size_t idx_layer = range.begin(); idx_layer < range.end(); ++idx_layer) { const std::vector &layer = ctxt.tool_change(idx_layer); for (size_t i = 0; i < vols.size(); ++i) { @@ -4955,25 +4835,30 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector& str_ } for (size_t i = 0; i < vols.size(); ++i) { GLVolume &vol = *vols[i]; - if (vol.indexed_vertex_array.vertices_and_normals_interleaved.size() > MAX_VERTEX_BUFFER_SIZE) { + if (vol.indexed_vertex_array.vertices_and_normals_interleaved.size() / 6 > ctxt.alloc_size_max()) { + // Store the vertex arrays and restart their containers, vols[i] = new_volume(vol.color); - reserve_new_volume_finalize_old_volume(*vols[i], vol, false); + GLVolume &vol_new = *vols[i]; + // Assign the large pre-allocated buffers to the new GLVolume. + vol_new.indexed_vertex_array = std::move(vol.indexed_vertex_array); + // Copy the content back to the old GLVolume. + vol.indexed_vertex_array = vol_new.indexed_vertex_array; + // Clear the buffers, but keep them pre-allocated. + vol_new.indexed_vertex_array.clear(); + // Just make sure that clear did not clear the reserved memory. + vol_new.indexed_vertex_array.reserve(ctxt.alloc_size_reserve()); } } - for (GLVolume *vol : vols) - vol->indexed_vertex_array.shrink_to_fit(); }); - BOOST_LOG_TRIVIAL(debug) << "Loading wipe tower toolpaths in parallel - finalizing results" << m_volumes.log_memory_info() << log_memory_info(); + BOOST_LOG_TRIVIAL(debug) << "Loading wipe tower toolpaths in parallel - finalizing results"; // Remove empty volumes from the newly added volumes. m_volumes.volumes.erase( std::remove_if(m_volumes.volumes.begin() + volumes_cnt_initial, m_volumes.volumes.end(), [](const GLVolume *volume) { return volume->empty(); }), m_volumes.volumes.end()); - for (size_t i = volumes_cnt_initial; i < m_volumes.volumes.size(); ++i) - m_volumes.volumes[i]->indexed_vertex_array.finalize_geometry(m_initialized); - BOOST_LOG_TRIVIAL(debug) << "Loading wipe tower toolpaths in parallel - end" << m_volumes.log_memory_info() << log_memory_info(); + BOOST_LOG_TRIVIAL(debug) << "Loading wipe tower toolpaths in parallel - end"; } static inline int hex_digit_to_int(const char c) @@ -4986,8 +4871,6 @@ static inline int hex_digit_to_int(const char c) void GLCanvas3D::_load_gcode_extrusion_paths(const GCodePreviewData& preview_data, const std::vector& tool_colors) { - BOOST_LOG_TRIVIAL(debug) << "Loading G-code extrusion paths - start" << m_volumes.log_memory_info() << log_memory_info(); - // helper functions to select data in dependence of the extrusion view type struct Helper { @@ -4996,7 +4879,6 @@ void GLCanvas3D::_load_gcode_extrusion_paths(const GCodePreviewData& preview_dat switch (type) { case GCodePreviewData::Extrusion::FeatureType: - // The role here is used for coloring. return (float)path.role(); case GCodePreviewData::Extrusion::Height: return path.height; @@ -5041,7 +4923,7 @@ void GLCanvas3D::_load_gcode_extrusion_paths(const GCodePreviewData& preview_dat } case GCodePreviewData::Extrusion::ColorPrint: { - int color_cnt = (int)tool_colors.size() / 4; + const size_t color_cnt = tool_colors.size() / 4; int val = int(value); while (val >= color_cnt) @@ -5060,200 +4942,401 @@ void GLCanvas3D::_load_gcode_extrusion_paths(const GCodePreviewData& preview_dat } }; - size_t initial_volumes_count = m_volumes.volumes.size(); - size_t initial_volume_index_count = m_gcode_preview_volume_index.first_volumes.size(); - - try + // Helper structure for filters + struct Filter + { + float value; + ExtrusionRole role; + GLVolume* volume; + + Filter(float value, ExtrusionRole role) + : value(value) + , role(role) + , volume(nullptr) { - BOOST_LOG_TRIVIAL(debug) << "Loading G-code extrusion paths - create volumes" << m_volumes.log_memory_info() << log_memory_info(); + } - // detects filters - size_t vertex_buffer_prealloc_size = 0; - std::vector>> roles_filters; + bool operator == (const Filter& other) const { - std::vector num_paths_per_role(size_t(erCount), 0); + if (value != other.value) + return false; + + if (role != other.role) + return false; + + return true; + } + }; + + typedef std::vector FiltersList; + size_t initial_volumes_count = m_volumes.volumes.size(); + + // detects filters + FiltersList filters; for (const GCodePreviewData::Extrusion::Layer& layer : preview_data.extrusion.layers) + { for (const ExtrusionPath& path : layer.paths) - ++ num_paths_per_role[size_t(path.role())]; - std::vector> roles_values; - roles_values.assign(size_t(erCount), std::vector()); - for (size_t i = 0; i < roles_values.size(); ++ i) - roles_values[i].reserve(num_paths_per_role[i]); - for (const GCodePreviewData::Extrusion::Layer& layer : preview_data.extrusion.layers) - for (const ExtrusionPath& path : layer.paths) - roles_values[size_t(path.role())].emplace_back(Helper::path_filter(preview_data.extrusion.view_type, path)); - roles_filters.reserve(size_t(erCount)); - size_t num_buffers = 0; - for (std::vector &values : roles_values) { - sort_remove_duplicates(values); - num_buffers += values.size(); + { + ExtrusionRole role = path.role(); + float path_filter = Helper::path_filter(preview_data.extrusion.view_type, path); + if (std::find(filters.begin(), filters.end(), Filter(path_filter, role)) == filters.end()) + filters.emplace_back(path_filter, role); } - if (num_buffers == 0) + } + // nothing to render, return + if (filters.empty()) return; - vertex_buffer_prealloc_size = (uint64_t(num_buffers) * uint64_t(VERTEX_BUFFER_RESERVE_SIZE) < VERTEX_BUFFER_RESERVE_SIZE_SUM_MAX) ? - VERTEX_BUFFER_RESERVE_SIZE : next_highest_power_of_2(VERTEX_BUFFER_RESERVE_SIZE_SUM_MAX / num_buffers) / 2; - for (std::vector &values : roles_values) { - size_t role = &values - &roles_values.front(); - roles_filters.emplace_back(); - if (! values.empty()) { - m_gcode_preview_volume_index.first_volumes.emplace_back(GCodePreviewVolumeIndex::Extrusion, role, (unsigned int)m_volumes.volumes.size()); - for (const float value : values) - roles_filters.back().emplace_back(value, m_volumes.new_toolpath_volume(Helper::path_color(preview_data, tool_colors, value).rgba, vertex_buffer_prealloc_size)); + + // creates a new volume for each filter + for (Filter& filter : filters) + { + m_gcode_preview_volume_index.first_volumes.emplace_back(GCodePreviewVolumeIndex::Extrusion, (unsigned int)filter.role, (unsigned int)m_volumes.volumes.size()); + GLVolume* volume = new GLVolume(Helper::path_color(preview_data, tool_colors, filter.value).rgba); + if (volume != nullptr) + { + filter.volume = volume; + volume->is_extrusion_path = true; + m_volumes.volumes.emplace_back(volume); + } + else + { + // an error occourred - restore to previous state and return + m_gcode_preview_volume_index.first_volumes.pop_back(); + if (initial_volumes_count != m_volumes.volumes.size()) + { + GLVolumePtrs::iterator begin = m_volumes.volumes.begin() + initial_volumes_count; + GLVolumePtrs::iterator end = m_volumes.volumes.end(); + for (GLVolumePtrs::iterator it = begin; it < end; ++it) + { + GLVolume* volume = *it; + delete volume; + } + m_volumes.volumes.erase(begin, end); + return; } } } - BOOST_LOG_TRIVIAL(debug) << "Loading G-code extrusion paths - populate volumes" << m_volumes.log_memory_info() << log_memory_info(); - // populates volumes for (const GCodePreviewData::Extrusion::Layer& layer : preview_data.extrusion.layers) { for (const ExtrusionPath& path : layer.paths) { - std::vector> &filters = roles_filters[size_t(path.role())]; - auto key = std::make_pair(Helper::path_filter(preview_data.extrusion.view_type, path), nullptr); - auto it_filter = std::lower_bound(filters.begin(), filters.end(), key); - assert(it_filter != filters.end() && key.first == it_filter->first); + float path_filter = Helper::path_filter(preview_data.extrusion.view_type, path); + FiltersList::iterator filter = std::find(filters.begin(), filters.end(), Filter(path_filter, path.role())); + if (filter != filters.end()) + { + filter->volume->print_zs.push_back(layer.z); + filter->volume->offsets.push_back(filter->volume->indexed_vertex_array.quad_indices.size()); + filter->volume->offsets.push_back(filter->volume->indexed_vertex_array.triangle_indices.size()); - GLVolume& vol = *it_filter->second; - vol.print_zs.push_back(layer.z); - vol.offsets.push_back(vol.indexed_vertex_array.quad_indices.size()); - vol.offsets.push_back(vol.indexed_vertex_array.triangle_indices.size()); + _3DScene::extrusionentity_to_verts(path, layer.z, *filter->volume); + } + } + } +} - _3DScene::extrusionentity_to_verts(path, layer.z, vol); - } - // Ensure that no volume grows over the limits. If the volume is too large, allocate a new one. - for (std::vector> &filters : roles_filters) { - unsigned int role = (unsigned int)(&filters - &roles_filters.front()); - for (std::pair &filter : filters) - if (filter.second->indexed_vertex_array.vertices_and_normals_interleaved.size() > MAX_VERTEX_BUFFER_SIZE) { - if (m_gcode_preview_volume_index.first_volumes.back().type != GCodePreviewVolumeIndex::Extrusion || m_gcode_preview_volume_index.first_volumes.back().flag != role) - m_gcode_preview_volume_index.first_volumes.emplace_back(GCodePreviewVolumeIndex::Extrusion, role, (unsigned int)m_volumes.volumes.size()); - GLVolume& vol = *filter.second; - filter.second = m_volumes.new_toolpath_volume(vol.color); - reserve_new_volume_finalize_old_volume(*filter.second, vol, m_initialized, vertex_buffer_prealloc_size); - } - } - } +void GLCanvas3D::_load_gcode_travel_paths(const GCodePreviewData& preview_data, const std::vector& tool_colors) +{ + size_t initial_volumes_count = m_volumes.volumes.size(); + m_gcode_preview_volume_index.first_volumes.emplace_back(GCodePreviewVolumeIndex::Travel, 0, (unsigned int)initial_volumes_count); - // Finalize volumes and sends geometry to gpu - for (std::vector> &filters : roles_filters) - for (std::pair &filter : filters) - filter.second->indexed_vertex_array.finalize_geometry(m_initialized); + bool res = true; + switch (preview_data.extrusion.view_type) + { + case GCodePreviewData::Extrusion::Feedrate: + { + res = _travel_paths_by_feedrate(preview_data); + break; + } + case GCodePreviewData::Extrusion::Tool: + case GCodePreviewData::Extrusion::Filament: + { + res = _travel_paths_by_tool(preview_data, tool_colors); + break; + } + default: + { + res = _travel_paths_by_type(preview_data); + break; + } + } - BOOST_LOG_TRIVIAL(debug) << "Loading G-code extrusion paths - end" << m_volumes.log_memory_info() << log_memory_info(); -} - catch (const std::bad_alloc & /* err */) -{ + if (!res) + { // an error occourred - restore to previous state and return + if (initial_volumes_count != m_volumes.volumes.size()) + { GLVolumePtrs::iterator begin = m_volumes.volumes.begin() + initial_volumes_count; GLVolumePtrs::iterator end = m_volumes.volumes.end(); for (GLVolumePtrs::iterator it = begin; it < end; ++it) - delete *it; + { + GLVolume* volume = *it; + delete volume; + } m_volumes.volumes.erase(begin, end); - m_gcode_preview_volume_index.first_volumes.erase(m_gcode_preview_volume_index.first_volumes.begin() + initial_volume_index_count, m_gcode_preview_volume_index.first_volumes.end()); - BOOST_LOG_TRIVIAL(debug) << "Loading G-code extrusion paths - failed on low memory" << m_volumes.log_memory_info() << log_memory_info(); - //FIXME rethrow bad_alloc? } + + return; } +} -template -inline void travel_paths_internal( - // input - const GCodePreviewData &preview_data, - // accessors - FUNC_VALUE func_value, FUNC_COLOR func_color, - // output - GLVolumeCollection &volumes, bool gl_initialized) +bool GLCanvas3D::_travel_paths_by_type(const GCodePreviewData& preview_data) +{ + // Helper structure for types + struct Type + { + GCodePreviewData::Travel::EType value; + GLVolume* volume; + explicit Type(GCodePreviewData::Travel::EType value) + : value(value) + , volume(nullptr) { - // colors travels by type - std::vector> by_type; + } + + bool operator == (const Type& other) const { - std::vector values; - values.reserve(preview_data.travel.polylines.size()); + return value == other.value; + } + }; + + typedef std::vector TypesList; + + // colors travels by travel type + + // detects types + TypesList types; for (const GCodePreviewData::Travel::Polyline& polyline : preview_data.travel.polylines) - values.emplace_back(func_value(polyline)); - sort_remove_duplicates(values); - by_type.reserve(values.size()); - // creates a new volume for each feedrate - for (TYPE type : values) - by_type.emplace_back(type, volumes.new_nontoolpath_volume(func_color(type).rgba, VERTEX_BUFFER_RESERVE_SIZE)); + { + if (std::find(types.begin(), types.end(), Type(polyline.type)) == types.end()) + types.emplace_back(polyline.type); + } + + // nothing to render, return + if (types.empty()) + return true; + + // creates a new volume for each type + for (Type& type : types) + { + GLVolume* volume = new GLVolume(preview_data.travel.type_colors[type.value].rgba); + if (volume == nullptr) + return false; + else + { + type.volume = volume; + m_volumes.volumes.emplace_back(volume); + } } // populates volumes - std::pair key(0.f, nullptr); for (const GCodePreviewData::Travel::Polyline& polyline : preview_data.travel.polylines) { - key.first = func_value(polyline); - auto it = std::lower_bound(by_type.begin(), by_type.end(), key, [](const std::pair& l, const std::pair& r) { return l.first < r.first; }); - assert(it != by_type.end() && it->first == func_value(polyline)); + TypesList::iterator type = std::find(types.begin(), types.end(), Type(polyline.type)); + if (type != types.end()) + { + type->volume->print_zs.push_back(unscale(polyline.polyline.bounding_box().min(2))); + type->volume->offsets.push_back(type->volume->indexed_vertex_array.quad_indices.size()); + type->volume->offsets.push_back(type->volume->indexed_vertex_array.triangle_indices.size()); + + _3DScene::polyline3_to_verts(polyline.polyline, preview_data.travel.width, preview_data.travel.height, *type->volume); + } + } - GLVolume& vol = *it->second; - vol.print_zs.push_back(unscale(polyline.polyline.bounding_box().min(2))); - vol.offsets.push_back(vol.indexed_vertex_array.quad_indices.size()); - vol.offsets.push_back(vol.indexed_vertex_array.triangle_indices.size()); + return true; +} - _3DScene::polyline3_to_verts(polyline.polyline, preview_data.travel.width, preview_data.travel.height, vol); +bool GLCanvas3D::_travel_paths_by_feedrate(const GCodePreviewData& preview_data) +{ + // Helper structure for feedrate + struct Feedrate + { + float value; + GLVolume* volume; - // Ensure that no volume grows over the limits. If the volume is too large, allocate a new one. - if (vol.indexed_vertex_array.vertices_and_normals_interleaved.size() > MAX_VERTEX_BUFFER_SIZE) { - it->second = volumes.new_nontoolpath_volume(vol.color); - reserve_new_volume_finalize_old_volume(*it->second, vol, gl_initialized); - } - } + explicit Feedrate(float value) + : value(value) + , volume(nullptr) + { + } - for (auto &feedrate : by_type) - feedrate.second->finalize_geometry(gl_initialized); + bool operator == (const Feedrate& other) const + { + return value == other.value; + } + }; + + typedef std::vector FeedratesList; + + // colors travels by feedrate + + // detects feedrates + FeedratesList feedrates; + for (const GCodePreviewData::Travel::Polyline& polyline : preview_data.travel.polylines) + { + if (std::find(feedrates.begin(), feedrates.end(), Feedrate(polyline.feedrate)) == feedrates.end()) + feedrates.emplace_back(polyline.feedrate); + } + + // nothing to render, return + if (feedrates.empty()) + return true; + + // creates a new volume for each feedrate + for (Feedrate& feedrate : feedrates) + { + GLVolume* volume = new GLVolume(preview_data.get_feedrate_color(feedrate.value).rgba); + if (volume == nullptr) + return false; + else + { + feedrate.volume = volume; + m_volumes.volumes.emplace_back(volume); + } + } + + // populates volumes + for (const GCodePreviewData::Travel::Polyline& polyline : preview_data.travel.polylines) + { + FeedratesList::iterator feedrate = std::find(feedrates.begin(), feedrates.end(), Feedrate(polyline.feedrate)); + if (feedrate != feedrates.end()) + { + feedrate->volume->print_zs.push_back(unscale(polyline.polyline.bounding_box().min(2))); + feedrate->volume->offsets.push_back(feedrate->volume->indexed_vertex_array.quad_indices.size()); + feedrate->volume->offsets.push_back(feedrate->volume->indexed_vertex_array.triangle_indices.size()); + + _3DScene::polyline3_to_verts(polyline.polyline, preview_data.travel.width, preview_data.travel.height, *feedrate->volume); + } + } + + return true; } -void GLCanvas3D::_load_gcode_travel_paths(const GCodePreviewData& preview_data, const std::vector& tool_colors) +bool GLCanvas3D::_travel_paths_by_tool(const GCodePreviewData& preview_data, const std::vector& tool_colors) +{ + // Helper structure for tool + struct Tool + { + unsigned int value; + GLVolume* volume; + + explicit Tool(unsigned int value) + : value(value) + , volume(nullptr) + { + } + + bool operator == (const Tool& other) const + { + return value == other.value; + } + }; + + typedef std::vector ToolsList; + + // colors travels by tool + + // detects tools + ToolsList tools; + for (const GCodePreviewData::Travel::Polyline& polyline : preview_data.travel.polylines) + { + if (std::find(tools.begin(), tools.end(), Tool(polyline.extruder_id)) == tools.end()) + tools.emplace_back(polyline.extruder_id); + } + + // nothing to render, return + if (tools.empty()) + return true; + + // creates a new volume for each tool + for (Tool& tool : tools) + { + // tool.value could be invalid (as it was with https://github.com/prusa3d/PrusaSlicer/issues/2179), we better check + if (tool.value >= tool_colors.size()) + continue; + + GLVolume* volume = new GLVolume(tool_colors.data() + tool.value * 4); + if (volume == nullptr) + return false; + else + { + tool.volume = volume; + m_volumes.volumes.emplace_back(volume); + } + } + + // populates volumes + for (const GCodePreviewData::Travel::Polyline& polyline : preview_data.travel.polylines) + { + ToolsList::iterator tool = std::find(tools.begin(), tools.end(), Tool(polyline.extruder_id)); + if (tool != tools.end() && tool->volume != nullptr) + { + tool->volume->print_zs.push_back(unscale(polyline.polyline.bounding_box().min(2))); + tool->volume->offsets.push_back(tool->volume->indexed_vertex_array.quad_indices.size()); + tool->volume->offsets.push_back(tool->volume->indexed_vertex_array.triangle_indices.size()); + + _3DScene::polyline3_to_verts(polyline.polyline, preview_data.travel.width, preview_data.travel.height, *tool->volume); + } + } + + return true; +} + +void GLCanvas3D::_load_gcode_retractions(const GCodePreviewData& preview_data) { + m_gcode_preview_volume_index.first_volumes.emplace_back(GCodePreviewVolumeIndex::Retraction, 0, (unsigned int)m_volumes.volumes.size()); + // nothing to render, return - if (preview_data.travel.polylines.empty()) - return; + if (preview_data.retraction.positions.empty()) + return; - size_t initial_volumes_count = m_volumes.volumes.size(); - size_t volume_index_allocated = false; - - try { - m_gcode_preview_volume_index.first_volumes.emplace_back(GCodePreviewVolumeIndex::Travel, 0, (unsigned int)initial_volumes_count); - volume_index_allocated = true; - - switch (preview_data.extrusion.view_type) -{ - case GCodePreviewData::Extrusion::Feedrate: - travel_paths_internal(preview_data, - [](const GCodePreviewData::Travel::Polyline &polyline) { return polyline.feedrate; }, - [&preview_data](const float feedrate) -> const GCodePreviewData::Color { return preview_data.get_feedrate_color(feedrate); }, - m_volumes, m_initialized); - break; - case GCodePreviewData::Extrusion::Tool: - travel_paths_internal(preview_data, - [](const GCodePreviewData::Travel::Polyline &polyline) { return polyline.extruder_id; }, - [&tool_colors](const unsigned int extruder_id) -> const GCodePreviewData::Color { assert((extruder_id + 1) * 4 <= tool_colors.size()); return GCodePreviewData::Color(tool_colors.data() + extruder_id * 4); }, - m_volumes, m_initialized); - break; - default: - travel_paths_internal(preview_data, - [](const GCodePreviewData::Travel::Polyline &polyline) { return polyline.type; }, - [&preview_data](const unsigned int type) -> const GCodePreviewData::Color& { return preview_data.travel.type_colors[type]; }, - m_volumes, m_initialized); - break; + GLVolume* volume = new GLVolume(preview_data.retraction.color.rgba); + if (volume != nullptr) + { + m_volumes.volumes.emplace_back(volume); + + GCodePreviewData::Retraction::PositionsList copy(preview_data.retraction.positions); + std::sort(copy.begin(), copy.end(), [](const GCodePreviewData::Retraction::Position& p1, const GCodePreviewData::Retraction::Position& p2){ return p1.position(2) < p2.position(2); }); + + for (const GCodePreviewData::Retraction::Position& position : copy) + { + volume->print_zs.push_back(unscale(position.position(2))); + volume->offsets.push_back(volume->indexed_vertex_array.quad_indices.size()); + volume->offsets.push_back(volume->indexed_vertex_array.triangle_indices.size()); + + _3DScene::point3_to_verts(position.position, position.width, position.height, *volume); } - } catch (const std::bad_alloc & /* ex */) { - // an error occourred - restore to previous state and return - GLVolumePtrs::iterator begin = m_volumes.volumes.begin() + initial_volumes_count; - GLVolumePtrs::iterator end = m_volumes.volumes.end(); - for (GLVolumePtrs::iterator it = begin; it < end; ++it) - delete *it; - m_volumes.volumes.erase(begin, end); - if (volume_index_allocated) - m_gcode_preview_volume_index.first_volumes.pop_back(); - //FIXME report the memory issue? + } +} + +void GLCanvas3D::_load_gcode_unretractions(const GCodePreviewData& preview_data) +{ + m_gcode_preview_volume_index.first_volumes.emplace_back(GCodePreviewVolumeIndex::Unretraction, 0, (unsigned int)m_volumes.volumes.size()); + + // nothing to render, return + if (preview_data.unretraction.positions.empty()) + return; + + GLVolume* volume = new GLVolume(preview_data.unretraction.color.rgba); + if (volume != nullptr) + { + m_volumes.volumes.emplace_back(volume); + + GCodePreviewData::Retraction::PositionsList copy(preview_data.unretraction.positions); + std::sort(copy.begin(), copy.end(), [](const GCodePreviewData::Retraction::Position& p1, const GCodePreviewData::Retraction::Position& p2){ return p1.position(2) < p2.position(2); }); + + for (const GCodePreviewData::Retraction::Position& position : copy) + { + volume->print_zs.push_back(unscale(position.position(2))); + volume->offsets.push_back(volume->indexed_vertex_array.quad_indices.size()); + volume->offsets.push_back(volume->indexed_vertex_array.triangle_indices.size()); + + _3DScene::point3_to_verts(position.position, position.width, position.height, *volume); } } +} void GLCanvas3D::_load_fff_shells() { @@ -5277,7 +5360,7 @@ void GLCanvas3D::_load_fff_shells() instance_ids[i] = i; } - m_volumes.load_object(model_obj, object_id, instance_ids, "object", m_initialized); + m_volumes.load_object(model_obj, object_id, instance_ids, "object"); ++object_id; } @@ -5299,63 +5382,11 @@ void GLCanvas3D::_load_fff_shells() if (!print->is_step_done(psWipeTower)) depth = (900.f/config.wipe_tower_width) * (float)(extruders_count - 1); m_volumes.load_wipe_tower_preview(1000, config.wipe_tower_x, config.wipe_tower_y, config.wipe_tower_width, depth, max_z, config.wipe_tower_rotation_angle, - !print->is_step_done(psWipeTower), brim_spacing * 4.5f, m_initialized); + !print->is_step_done(psWipeTower), brim_spacing * 4.5f); } } } -// While it looks like we can call -// this->reload_scene(true, true) -// the two functions are quite different: -// 1) This function only loads objects, for which the step slaposSliceSupports already finished. Therefore objects outside of the print bed never load. -// 2) This function loads object mesh with the relative scaling correction (the "relative_correction" parameter) was applied, -// therefore the mesh may be slightly larger or smaller than the mesh shown in the 3D scene. -void GLCanvas3D::_load_sla_shells() -{ - const SLAPrint* print = this->sla_print(); - if (print->objects().empty()) - // nothing to render, return - return; - - auto add_volume = [this](const SLAPrintObject &object, int volume_id, const SLAPrintObject::Instance& instance, - const TriangleMesh &mesh, const float color[4], bool outside_printer_detection_enabled) { - m_volumes.volumes.emplace_back(new GLVolume(color)); - GLVolume& v = *m_volumes.volumes.back(); - v.indexed_vertex_array.load_mesh(mesh); - v.indexed_vertex_array.finalize_geometry(this->m_initialized); - v.shader_outside_printer_detection_enabled = outside_printer_detection_enabled; - v.composite_id.volume_id = volume_id; - v.set_instance_offset(unscale(instance.shift(0), instance.shift(1), 0)); - v.set_instance_rotation(Vec3d(0.0, 0.0, (double)instance.rotation)); - v.set_instance_mirror(X, object.is_left_handed() ? -1. : 1.); - v.set_convex_hull(mesh.convex_hull_3d()); - }; - - // adds objects' volumes - for (const SLAPrintObject* obj : print->objects()) - if (obj->is_step_done(slaposSliceSupports)) { - unsigned int initial_volumes_count = (unsigned int)m_volumes.volumes.size(); - for (const SLAPrintObject::Instance& instance : obj->instances()) { - add_volume(*obj, 0, instance, obj->transformed_mesh(), GLVolume::MODEL_COLOR[0], true); - // Set the extruder_id and volume_id to achieve the same color as in the 3D scene when - // through the update_volumes_colors_by_extruder() call. - m_volumes.volumes.back()->extruder_id = obj->model_object()->volumes.front()->extruder_id(); - if (obj->is_step_done(slaposSupportTree) && obj->has_mesh(slaposSupportTree)) - add_volume(*obj, -int(slaposSupportTree), instance, obj->support_mesh(), GLVolume::SLA_SUPPORT_COLOR, true); - if (obj->is_step_done(slaposBasePool) && obj->has_mesh(slaposBasePool)) - add_volume(*obj, -int(slaposBasePool), instance, obj->pad_mesh(), GLVolume::SLA_PAD_COLOR, false); - } - double shift_z = obj->get_current_elevation(); - for (unsigned int i = initial_volumes_count; i < m_volumes.volumes.size(); ++ i) { - GLVolume& v = *m_volumes.volumes[i]; - // apply shift z - v.set_sla_shift_z(shift_z); - } - } - - update_volumes_colors_by_extruder(); -} - void GLCanvas3D::_update_gcode_volumes_visibility(const GCodePreviewData& preview_data) { unsigned int size = (unsigned int)m_gcode_preview_volume_index.first_volumes.size(); diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index fb767360c3e..c9803f9db80 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -12,7 +12,6 @@ #include "Selection.hpp" #include "Gizmos/GLGizmosManager.hpp" #include "GUI_ObjectLayers.hpp" -#include "MeshUtils.hpp" #include @@ -68,11 +67,39 @@ class Size }; +class ClippingPlane +{ + double m_data[4]; + +public: + ClippingPlane() + { + m_data[0] = 0.0; + m_data[1] = 0.0; + m_data[2] = 1.0; + m_data[3] = 0.0; + } + + ClippingPlane(const Vec3d& direction, double offset) + { + Vec3d norm_dir = direction.normalized(); + m_data[0] = norm_dir(0); + m_data[1] = norm_dir(1); + m_data[2] = norm_dir(2); + m_data[3] = offset; + } + + bool is_active() const { return m_data[3] != DBL_MAX; } + + static ClippingPlane ClipsNothing() { return ClippingPlane(Vec3d(0., 0., 1.), DBL_MAX); } + + const double* get_data() const { return m_data; } +}; + + wxDECLARE_EVENT(EVT_GLCANVAS_OBJECT_SELECT, SimpleEvent); using Vec2dEvent = Event; -// _bool_ value is used as a indicator of selection in the 3DScene -using RBtnEvent = Event>; template using Vec2dsEvent = ArrayEvent; using Vec3dEvent = Event; @@ -80,7 +107,7 @@ template using Vec3dsEvent = ArrayEvent; wxDECLARE_EVENT(EVT_GLCANVAS_INIT, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_SCHEDULE_BACKGROUND_PROCESS, SimpleEvent); -wxDECLARE_EVENT(EVT_GLCANVAS_RIGHT_CLICK, RBtnEvent); +wxDECLARE_EVENT(EVT_GLCANVAS_RIGHT_CLICK, Vec2dEvent); wxDECLARE_EVENT(EVT_GLCANVAS_REMOVE_OBJECT, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_ARRANGE, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_SELECT_ALL, SimpleEvent); @@ -104,7 +131,6 @@ wxDECLARE_EVENT(EVT_GLCANVAS_REDO, SimpleEvent); class GLCanvas3D { -public: struct GCodePreviewVolumeIndex { enum EType @@ -132,7 +158,6 @@ class GLCanvas3D void reset() { first_volumes.clear(); } }; -private: class LayersEditing { public: @@ -376,7 +401,6 @@ class GLCanvas3D std::unique_ptr m_retina_helper; #endif bool m_in_render; - bool m_render_enabled; LegendTexture m_legend_texture; WarningTexture m_warning_texture; wxTimer m_timer; @@ -407,6 +431,7 @@ class GLCanvas3D bool m_initialized; bool m_apply_zoom_to_volumes_filter; mutable std::vector m_hover_volume_idxs; + bool m_warning_texture_enabled; bool m_legend_texture_enabled; bool m_picking_enabled; bool m_moving_enabled; @@ -457,8 +482,6 @@ class GLCanvas3D void toggle_sla_auxiliaries_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1); void toggle_model_objects_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1); - void update_instance_printable_state_for_object(size_t obj_idx); - void update_instance_printable_state_for_objects(std::vector& object_idxs); void set_config(const DynamicPrintConfig* config); void set_process(BackgroundSlicingProcess* process); @@ -506,9 +529,6 @@ class GLCanvas3D void enable_dynamic_background(bool enable); void allow_multisample(bool allow); - void enable_render(bool enable) { m_render_enabled = enable; } - bool is_render_enabled() const { return m_render_enabled; } - void zoom_to_bed(); void zoom_to_volumes(); void zoom_to_selection(); @@ -613,16 +633,14 @@ class GLCanvas3D void set_cursor(ECursorType type); void msw_rescale(); - bool is_keeping_dirty() const { return m_keep_dirty; } void start_keeping_dirty() { m_keep_dirty = true; } void stop_keeping_dirty() { m_keep_dirty = false; } - int get_main_toolbar_item_id(const std::string& name) const { return m_main_toolbar.get_item_id(name); } - void force_main_toolbar_left_action(int item_id) { m_main_toolbar.force_left_action(item_id, *this); } - void force_main_toolbar_right_action(int item_id) { m_main_toolbar.force_right_action(item_id, *this); } - - bool has_toolpaths_to_export() const; - void export_toolpaths_to_obj(const char* filename) const; + unsigned int get_main_toolbar_item_id(const std::string& name) const { return m_main_toolbar.get_item_id(name); } + void force_main_toolbar_left_action(unsigned int item_id) { m_main_toolbar.force_left_action(item_id, *this); } + void force_main_toolbar_right_action(unsigned int item_id) { m_main_toolbar.force_right_action(item_id, *this); } + void get_undoredo_toolbar_additional_tooltip(unsigned int item_id, std::string& text) { return m_undoredo_toolbar.get_additional_tooltip(item_id, text); } + void set_undoredo_toolbar_additional_tooltip(unsigned int item_id, const std::string& text) { m_undoredo_toolbar.set_additional_tooltip(item_id, text); } private: bool _is_shown_on_screen() const; @@ -634,7 +652,7 @@ class GLCanvas3D bool _set_current(); void _resize(unsigned int w, unsigned int h); - BoundingBoxf3 _max_bounding_box(bool include_gizmos, bool include_bed_model) const; + BoundingBoxf3 _max_bounding_box(bool include_bed_model) const; void _zoom_to_box(const BoundingBoxf3& box); @@ -694,10 +712,15 @@ class GLCanvas3D void _load_gcode_extrusion_paths(const GCodePreviewData& preview_data, const std::vector& tool_colors); // generates gcode travel paths geometry void _load_gcode_travel_paths(const GCodePreviewData& preview_data, const std::vector& tool_colors); + bool _travel_paths_by_type(const GCodePreviewData& preview_data); + bool _travel_paths_by_feedrate(const GCodePreviewData& preview_data); + bool _travel_paths_by_tool(const GCodePreviewData& preview_data, const std::vector& tool_colors); + // generates gcode retractions geometry + void _load_gcode_retractions(const GCodePreviewData& preview_data); + // generates gcode unretractions geometry + void _load_gcode_unretractions(const GCodePreviewData& preview_data); // generates objects and wipe tower geometry void _load_fff_shells(); - // Load SLA objects and support structures for objects, for which the slaposSliceSupports step has been finished. - void _load_sla_shells(); // sets gcode geometry visibility according to user selection void _update_gcode_volumes_visibility(const GCodePreviewData& preview_data); void _update_toolpath_volumes_outside_state(); diff --git a/src/slic3r/GUI/GLCanvas3DManager.cpp b/src/slic3r/GUI/GLCanvas3DManager.cpp index 5fbefcc6e66..b2a3161e89c 100644 --- a/src/slic3r/GUI/GLCanvas3DManager.cpp +++ b/src/slic3r/GUI/GLCanvas3DManager.cpp @@ -197,7 +197,11 @@ GLCanvas3DManager::GLCanvas3DManager() GLCanvas3DManager::~GLCanvas3DManager() { - this->destroy(); + if (m_context != nullptr) + { + delete m_context; + m_context = nullptr; + } } bool GLCanvas3DManager::add(wxGLCanvas* canvas, Bed3D& bed, Camera& camera, GLToolbar& view_toolbar) @@ -266,20 +270,6 @@ void GLCanvas3DManager::init_gl() s_compressed_textures_supported = true; else s_compressed_textures_supported = false; - - if (! s_gl_info.is_version_greater_or_equal_to(2, 0)) { - // Complain about the OpenGL version. - wxString message = wxString::Format( - _(L("PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \n" - "while OpenGL version %s, render %s, vendor %s was detected.")), wxString(s_gl_info.get_version()), wxString(s_gl_info.get_renderer()), wxString(s_gl_info.get_vendor())); - message += "\n"; - message += _(L("You may need to update your graphics card driver.")); -#ifdef _WIN32 - message += "\n"; - message += _(L("As a workaround, you may run PrusaSlicer with a software rendered 3D graphics by running prusa-slicer.exe with the --sw_renderer parameter.")); -#endif - wxMessageBox(message, wxString("PrusaSlicer - ") + _(L("Unsupported OpenGL version")), wxOK | wxICON_ERROR); - } } } @@ -292,15 +282,6 @@ bool GLCanvas3DManager::init(wxGLCanvas* canvas) return false; } -void GLCanvas3DManager::destroy() -{ - if (m_context != nullptr) - { - delete m_context; - m_context = nullptr; - } -} - GLCanvas3D* GLCanvas3DManager::get_canvas(wxGLCanvas* canvas) { CanvasesMap::const_iterator it = do_get_canvas(canvas); @@ -309,21 +290,7 @@ GLCanvas3D* GLCanvas3DManager::get_canvas(wxGLCanvas* canvas) wxGLCanvas* GLCanvas3DManager::create_wxglcanvas(wxWindow *parent) { - int attribList[] = { - WX_GL_RGBA, - WX_GL_DOUBLEBUFFER, - // RGB channels each should be allocated with 8 bit depth. One should almost certainly get these bit depths by default. - WX_GL_MIN_RED, 8, - WX_GL_MIN_GREEN, 8, - WX_GL_MIN_BLUE, 8, - // Requesting an 8 bit alpha channel. Interestingly, the NVIDIA drivers would most likely work with some alpha plane, but glReadPixels would not return - // the alpha channel on NVIDIA if not requested when the GL context is created. - WX_GL_MIN_ALPHA, 8, - WX_GL_DEPTH_SIZE, 24, - WX_GL_SAMPLE_BUFFERS, GL_TRUE, - WX_GL_SAMPLES, 4, - 0 - }; + int attribList[] = { WX_GL_RGBA, WX_GL_DOUBLEBUFFER, WX_GL_DEPTH_SIZE, 24, WX_GL_SAMPLE_BUFFERS, GL_TRUE, WX_GL_SAMPLES, 4, 0 }; if (s_multisample == MS_Unknown) { @@ -333,7 +300,7 @@ wxGLCanvas* GLCanvas3DManager::create_wxglcanvas(wxWindow *parent) } if (! can_multisample()) - attribList[12] = 0; + attribList[4] = 0; return new wxGLCanvas(parent, wxID_ANY, attribList, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS); } @@ -359,7 +326,9 @@ bool GLCanvas3DManager::init(GLCanvas3D& canvas) void GLCanvas3DManager::detect_multisample(int* attribList) { int wxVersion = wxMAJOR_VERSION * 10000 + wxMINOR_VERSION * 100 + wxRELEASE_NUMBER; + const AppConfig* app_config = GUI::get_app_config(); bool enable_multisample = wxVersion >= 30003; + s_multisample = (enable_multisample && wxGLCanvas::IsDisplaySupported(attribList)) ? MS_Enabled : MS_Disabled; // Alternative method: it was working on previous version of wxWidgets but not with the latest, at least on Windows // s_multisample = enable_multisample && wxGLCanvas::IsExtensionSupported("WGL_ARB_multisample"); diff --git a/src/slic3r/GUI/GLCanvas3DManager.hpp b/src/slic3r/GUI/GLCanvas3DManager.hpp index 760266a2743..c0e0df62241 100644 --- a/src/slic3r/GUI/GLCanvas3DManager.hpp +++ b/src/slic3r/GUI/GLCanvas3DManager.hpp @@ -91,7 +91,6 @@ class GLCanvas3DManager void init_gl(); bool init(wxGLCanvas* canvas); - void destroy(); GLCanvas3D* get_canvas(wxGLCanvas* canvas); diff --git a/src/slic3r/GUI/GLTexture.cpp b/src/slic3r/GUI/GLTexture.cpp index 55ca5f72382..f3421f15080 100644 --- a/src/slic3r/GUI/GLTexture.cpp +++ b/src/slic3r/GUI/GLTexture.cpp @@ -27,57 +27,48 @@ namespace GUI { void GLTexture::Compressor::reset() { - if (m_thread.joinable()) { - m_abort_compressing = true; - m_thread.join(); - m_levels.clear(); - m_num_levels_compressed = 0; - m_abort_compressing = false; - } - assert(m_levels.empty()); - assert(m_abort_compressing == false); - assert(m_num_levels_compressed == 0); + // force compression completion, if any + m_abort_compressing = true; + // wait for compression completion, if any + while (m_is_compressing) {} + + m_levels.clear(); +} + +void GLTexture::Compressor::add_level(unsigned int w, unsigned int h, const std::vector& data) +{ + m_levels.emplace_back(w, h, data); } void GLTexture::Compressor::start_compressing() { - // The worker thread should be stopped already. - assert(! m_thread.joinable()); - assert(! m_levels.empty()); - assert(m_abort_compressing == false); - assert(m_num_levels_compressed == 0); - if (! m_levels.empty()) { - std::thread thrd(&GLTexture::Compressor::compress, this); - m_thread = std::move(thrd); - } + m_is_compressing = true; + m_abort_compressing = false; + std::thread t(&GLTexture::Compressor::compress, this); + t.detach(); } bool GLTexture::Compressor::unsent_compressed_data_available() const { - if (m_levels.empty()) - return false; - // Querying the atomic m_num_levels_compressed value synchronizes processor caches, so that the data of m_levels modified by the worker thread are accessible to the calling thread. - unsigned int num_compressed = m_num_levels_compressed; - for (unsigned int i = 0; i < num_compressed; ++ i) - if (! m_levels[i].sent_to_gpu && ! m_levels[i].compressed_data.empty()) + for (const Level& level : m_levels) + { + if (!level.sent_to_gpu && level.compressed) return true; + } + return false; } void GLTexture::Compressor::send_compressed_data_to_gpu() { // this method should be called inside the main thread of Slicer or a new OpenGL context (sharing resources) would be needed - if (m_levels.empty()) - return; glsafe(::glPixelStorei(GL_UNPACK_ALIGNMENT, 1)); glsafe(::glBindTexture(GL_TEXTURE_2D, m_texture.m_id)); - // Querying the atomic m_num_levels_compressed value synchronizes processor caches, so that the dat of m_levels modified by the worker thread are accessible to the calling thread. - int num_compressed = (int)m_num_levels_compressed; - for (int i = 0; i < num_compressed; ++ i) + for (int i = 0; i < (int)m_levels.size(); ++i) { Level& level = m_levels[i]; - if (! level.sent_to_gpu && ! level.compressed_data.empty()) + if (!level.sent_to_gpu && level.compressed) { glsafe(::glCompressedTexSubImage2D(GL_TEXTURE_2D, (GLint)i, 0, 0, (GLsizei)level.w, (GLsizei)level.h, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)level.compressed_data.size(), (const GLvoid*)level.compressed_data.data())); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, i)); @@ -85,22 +76,27 @@ void GLTexture::Compressor::send_compressed_data_to_gpu() level.sent_to_gpu = true; // we are done with the compressed data, we can discard it level.compressed_data.clear(); + level.compressed = false; } } glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); +} + +bool GLTexture::Compressor::all_compressed_data_sent_to_gpu() const +{ + for (const Level& level : m_levels) + { + if (!level.sent_to_gpu) + return false; + } - if (num_compressed == (int)m_levels.size()) - // Finalize the worker thread, close it. - this->reset(); + return true; } void GLTexture::Compressor::compress() { // reference: https://github.com/Cyan4973/RygsDXTc - assert(m_num_levels_compressed == 0); - assert(m_abort_compressing == false); - for (Level& level : m_levels) { if (m_abort_compressing) @@ -115,8 +111,11 @@ void GLTexture::Compressor::compress() // we are done with the source data, we can discard it level.src_data.clear(); - ++ m_num_levels_compressed; + level.compressed = true; } + + m_is_compressing = false; + m_abort_compressing = false; } GLTexture::Quad_UVs GLTexture::FullTextureUVs = { { 0.0f, 1.0f }, { 1.0f, 1.0f }, { 1.0f, 0.0f }, { 0.0f, 0.0f } }; diff --git a/src/slic3r/GUI/GLTexture.hpp b/src/slic3r/GUI/GLTexture.hpp index c4063b93d42..7fc5b8fcf64 100644 --- a/src/slic3r/GUI/GLTexture.hpp +++ b/src/slic3r/GUI/GLTexture.hpp @@ -1,10 +1,8 @@ #ifndef slic3r_GLTexture_hpp_ #define slic3r_GLTexture_hpp_ -#include #include #include -#include class wxImage; @@ -21,34 +19,29 @@ namespace GUI { unsigned int h; std::vector src_data; std::vector compressed_data; + bool compressed; bool sent_to_gpu; - Level(unsigned int w, unsigned int h, const std::vector& data) : w(w), h(h), src_data(data), sent_to_gpu(false) {} + Level(unsigned int w, unsigned int h, const std::vector& data) : w(w), h(h), src_data(data), compressed(false), sent_to_gpu(false) {} }; GLTexture& m_texture; std::vector m_levels; - std::thread m_thread; - // Does the caller want the background thread to stop? - // This atomic also works as a memory barrier for synchronizing the cancel event with the worker thread. - std::atomic m_abort_compressing; - // How many levels were compressed since the start of the background processing thread? - // This atomic also works as a memory barrier for synchronizing results of the worker thread with the calling thread. - std::atomic m_num_levels_compressed; + bool m_is_compressing; + bool m_abort_compressing; public: - explicit Compressor(GLTexture& texture) : m_texture(texture), m_abort_compressing(false), m_num_levels_compressed(0) {} - ~Compressor() { reset(); } + explicit Compressor(GLTexture& texture) : m_texture(texture), m_is_compressing(false), m_abort_compressing(false) {} void reset(); - void add_level(unsigned int w, unsigned int h, const std::vector& data) { m_levels.emplace_back(w, h, data); } + void add_level(unsigned int w, unsigned int h, const std::vector& data); void start_compressing(); bool unsent_compressed_data_available() const; void send_compressed_data_to_gpu(); - bool all_compressed_data_sent_to_gpu() const { return m_levels.empty(); } + bool all_compressed_data_sent_to_gpu() const; private: void compress(); diff --git a/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp index 51d787d9d3f..63387bf2db3 100644 --- a/src/slic3r/GUI/GLToolbar.cpp +++ b/src/slic3r/GUI/GLToolbar.cpp @@ -345,9 +345,9 @@ bool GLToolbar::is_any_item_pressed() const return false; } -int GLToolbar::get_item_id(const std::string& name) const +unsigned int GLToolbar::get_item_id(const std::string& name) const { - for (int i = 0; i < (int)m_items.size(); ++i) + for (unsigned int i = 0; i < (unsigned int)m_items.size(); ++i) { if (m_items[i]->get_name() == name) return i; @@ -356,9 +356,19 @@ int GLToolbar::get_item_id(const std::string& name) const return -1; } -void GLToolbar::get_additional_tooltip(int item_id, std::string& text) +void GLToolbar::force_left_action(unsigned int item_id, GLCanvas3D& parent) +{ + do_action(GLToolbarItem::Left, item_id, parent, false); +} + +void GLToolbar::force_right_action(unsigned int item_id, GLCanvas3D& parent) +{ + do_action(GLToolbarItem::Right, item_id, parent, false); +} + +void GLToolbar::get_additional_tooltip(unsigned int item_id, std::string& text) { - if ((0 <= item_id) && (item_id < (int)m_items.size())) + if (item_id < (unsigned int)m_items.size()) { GLToolbarItem* item = m_items[item_id]; if (item != nullptr) @@ -371,9 +381,9 @@ void GLToolbar::get_additional_tooltip(int item_id, std::string& text) text = L(""); } -void GLToolbar::set_additional_tooltip(int item_id, const std::string& text) +void GLToolbar::set_additional_tooltip(unsigned int item_id, const std::string& text) { - if ((0 <= item_id) && (item_id < (int)m_items.size())) + if (item_id < (unsigned int)m_items.size()) { GLToolbarItem* item = m_items[item_id]; if (item != nullptr) @@ -456,7 +466,7 @@ bool GLToolbar::on_mouse(wxMouseEvent& evt, GLCanvas3D& parent) if ((item_id != -2) && !m_items[item_id]->is_separator() && ((m_pressed_toggable_id == -1) || (m_items[item_id]->get_last_action_type() == GLToolbarItem::Left))) { // mouse is inside an icon - do_action(GLToolbarItem::Left, item_id, parent, true); + do_action(GLToolbarItem::Left, (unsigned int)item_id, parent, true); parent.set_as_dirty(); } } @@ -473,7 +483,7 @@ bool GLToolbar::on_mouse(wxMouseEvent& evt, GLCanvas3D& parent) if ((item_id != -2) && !m_items[item_id]->is_separator() && ((m_pressed_toggable_id == -1) || (m_items[item_id]->get_last_action_type() == GLToolbarItem::Right))) { // mouse is inside an icon - do_action(GLToolbarItem::Right, item_id, parent, true); + do_action(GLToolbarItem::Right, (unsigned int)item_id, parent, true); parent.set_as_dirty(); } } @@ -546,11 +556,11 @@ float GLToolbar::get_main_size() const return size * m_layout.scale; } -void GLToolbar::do_action(GLToolbarItem::EActionType type, int item_id, GLCanvas3D& parent, bool check_hover) +void GLToolbar::do_action(GLToolbarItem::EActionType type, unsigned int item_id, GLCanvas3D& parent, bool check_hover) { if ((m_pressed_toggable_id == -1) || (m_pressed_toggable_id == item_id)) { - if ((0 <= item_id) && (item_id < (int)m_items.size())) + if (item_id < (unsigned int)m_items.size()) { GLToolbarItem* item = m_items[item_id]; if ((item != nullptr) && !item->is_separator() && (!check_hover || item->is_hovered())) @@ -861,10 +871,11 @@ int GLToolbar::contains_mouse_horizontal(const Vec2d& mouse_pos, const GLCanvas3 float left = m_layout.left + scaled_border; float top = m_layout.top - scaled_border; - - for (size_t id=0; idis_visible()) continue; @@ -935,9 +946,11 @@ int GLToolbar::contains_mouse_vertical(const Vec2d& mouse_pos, const GLCanvas3D& float left = m_layout.left + scaled_border; float top = m_layout.top - scaled_border; - for (size_t id=0; idis_visible()) continue; @@ -1233,7 +1246,7 @@ bool GLToolbar::update_items_enabled_state() { bool ret = false; - for (int i = 0; i < (int)m_items.size(); ++i) + for (unsigned int i = 0; i < (unsigned int)m_items.size(); ++i) { GLToolbarItem* item = m_items[i]; ret |= item->update_enabled_state(); diff --git a/src/slic3r/GUI/GLToolbar.hpp b/src/slic3r/GUI/GLToolbar.hpp index 07da836fce1..527317e589a 100644 --- a/src/slic3r/GUI/GLToolbar.hpp +++ b/src/slic3r/GUI/GLToolbar.hpp @@ -254,7 +254,7 @@ class GLToolbar MouseCapture m_mouse_capture; std::string m_tooltip; - int m_pressed_toggable_id; + unsigned int m_pressed_toggable_id; public: GLToolbar(EType type, const std::string& name); @@ -293,15 +293,15 @@ class GLToolbar bool is_any_item_pressed() const; - int get_item_id(const std::string& name) const; + unsigned int get_item_id(const std::string& name) const; - void force_left_action(int item_id, GLCanvas3D& parent) { do_action(GLToolbarItem::Left, item_id, parent, false); } - void force_right_action(int item_id, GLCanvas3D& parent) { do_action(GLToolbarItem::Right, item_id, parent, false); } + void force_left_action(unsigned int item_id, GLCanvas3D& parent); + void force_right_action(unsigned int item_id, GLCanvas3D& parent); const std::string& get_tooltip() const { return m_tooltip; } - void get_additional_tooltip(int item_id, std::string& text); - void set_additional_tooltip(int item_id, const std::string& text); + void get_additional_tooltip(unsigned int item_id, std::string& text); + void set_additional_tooltip(unsigned int item_id, const std::string& text); // returns true if any item changed its state bool update_items_state(); @@ -317,7 +317,7 @@ class GLToolbar float get_height_horizontal() const; float get_height_vertical() const; float get_main_size() const; - void do_action(GLToolbarItem::EActionType type, int item_id, GLCanvas3D& parent, bool check_hover); + void do_action(GLToolbarItem::EActionType type, unsigned int item_id, GLCanvas3D& parent, bool check_hover); std::string update_hover_state(const Vec2d& mouse_pos, GLCanvas3D& parent); std::string update_hover_state_horizontal(const Vec2d& mouse_pos, GLCanvas3D& parent); std::string update_hover_state_vertical(const Vec2d& mouse_pos, GLCanvas3D& parent); diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp index cddd943fee6..98883006385 100644 --- a/src/slic3r/GUI/GUI.cpp +++ b/src/slic3r/GUI/GUI.cpp @@ -273,7 +273,7 @@ void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt } catch (const std::exception & /* e */) { - // int i = 0;//no reason, just experiment + int i = 0;//no reason, just experiment } } diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 7db01062aba..df116d9e647 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include #include #include @@ -34,6 +33,7 @@ #include "GUI_Utils.hpp" #include "AppConfig.hpp" #include "PresetBundle.hpp" +#include "3DScene.hpp" #include "../Utils/PresetUpdater.hpp" #include "../Utils/PrintHost.hpp" @@ -126,19 +126,13 @@ static void generic_exception_handle() try { throw; - } catch (const std::bad_alloc& ex) { - // bad_alloc in main thread is most likely fatal. Report immediately to the user (wxLogError would be delayed) - // and terminate the app so it is at least certain to happen now. - wxString errmsg = wxString::Format(_(L("%s has encountered an error. It was likely caused by running out of memory. " - "If you are sure you have enough RAM on your system, this may also be a bug and we would " - "be glad if you reported it.\n\nThe application will now terminate.")), SLIC3R_APP_NAME); - wxMessageBox(errmsg + "\n\n" + wxString(ex.what()), _(L("Fatal error")), wxOK | wxICON_ERROR); - BOOST_LOG_TRIVIAL(error) << boost::format("std::bad_alloc exception: %1%") % ex.what(); - std::terminate(); - } catch (const std::exception& ex) { + } catch (const std::exception &ex) { wxLogError("Internal error: %s", ex.what()); BOOST_LOG_TRIVIAL(error) << boost::format("Uncaught exception: %1%") % ex.what(); throw; + } catch (...) { + wxLogError("Unknown internal error"); + BOOST_LOG_TRIVIAL(error) << "Uncaught exception: Unknown error"; } } @@ -166,7 +160,7 @@ bool GUI_App::OnInit() { try { return on_init_inner(); - } catch (const std::exception&) { + } catch (...) { generic_exception_handle(); return false; } @@ -228,8 +222,7 @@ bool GUI_App::on_init_inner() init_label_colours(); init_fonts(); - // If load_language() fails, the application closes. - load_language(wxString(), true); + load_language(); // Suppress the '- default -' presets. preset_bundle->set_default_suppressed(app_config->get("no_defaults") == "1"); @@ -302,9 +295,8 @@ bool GUI_App::on_init_inner() * change min hight of object list to the normal min value (15 * wxGetApp().em_unit()) * after first whole Mainframe updating/layouting */ - const int list_min_height = 15 * em_unit(); - if (obj_list()->GetMinSize().GetY() > list_min_height) - obj_list()->SetMinSize(wxSize(-1, list_min_height)); + if (obj_list()->GetMinSize().GetY() > 15 * em_unit()) + obj_list()->SetMinSize(wxSize(-1, 15 * em_unit())); update_mode(); // update view mode after fix of the object_list size @@ -475,9 +467,8 @@ void GUI_App::recreate_GUI() * change min hight of object list to the normal min value (15 * wxGetApp().em_unit()) * after first whole Mainframe updating/layouting */ - const int list_min_height = 15 * em_unit(); - if (obj_list()->GetMinSize().GetY() > list_min_height) - obj_list()->SetMinSize(wxSize(-1, list_min_height)); + if (obj_list()->GetMinSize().GetY() > 15 * em_unit()) + obj_list()->SetMinSize(wxSize(-1, 15 * em_unit())); update_mode(); @@ -573,6 +564,7 @@ void GUI_App::import_model(wxWindow *parent, wxArrayString& input_files) const bool GUI_App::switch_language() { if (select_language()) { + save_language(); _3DScene::remove_all_canvases(); recreate_GUI(); return true; @@ -584,168 +576,128 @@ bool GUI_App::switch_language() // select language from the list of installed languages bool GUI_App::select_language() { - wxArrayString translations = wxTranslations::Get()->GetAvailableTranslations(SLIC3R_APP_KEY); - std::vector language_infos; - language_infos.emplace_back(wxLocale::GetLanguageInfo(wxLANGUAGE_ENGLISH)); - for (size_t i = 0; i < translations.GetCount(); ++ i) { - const wxLanguageInfo *langinfo = wxLocale::FindLanguageInfo(translations[i]); - if (langinfo != nullptr) - language_infos.emplace_back(langinfo); - } - sort_remove_duplicates(language_infos); - std::sort(language_infos.begin(), language_infos.end(), [](const wxLanguageInfo* l, const wxLanguageInfo* r) { return l->Description < r->Description; }); - + const auto langs = get_installed_languages(); wxArrayString names; - names.Alloc(language_infos.size()); + names.Alloc(langs.size()); - // Some valid language should be selected since the application start up. - const wxLanguage current_language = wxLanguage(m_wxLocale->GetLanguage()); int init_selection = -1; - int init_selection_alt = -1; - int init_selection_default = -1; - for (size_t i = 0; i < language_infos.size(); ++ i) { - if (wxLanguage(language_infos[i]->Language) == current_language) - // The dictionary matches the active language and country. + const auto current_language = m_wxLocale ? m_wxLocale->GetLanguage() : wxLocale::GetSystemLanguage(); + + for (size_t i = 0; i < langs.size(); i++) { + const auto lang = langs[i]->Language; + const bool is_english = lang >= wxLANGUAGE_ENGLISH && lang <= wxLANGUAGE_ENGLISH_ZIMBABWE; + + if (lang == current_language || (current_language == wxLANGUAGE_UNKNOWN && is_english)) { init_selection = i; - else if ((language_infos[i]->CanonicalName.BeforeFirst('_') == m_wxLocale->GetCanonicalName().BeforeFirst('_')) || - // if the active language is Slovak, mark the Czech language as active. - (language_infos[i]->CanonicalName.BeforeFirst('_') == "cs" && m_wxLocale->GetCanonicalName().BeforeFirst('_') == "sk")) - // The dictionary matches the active language, it does not necessarily match the country. - init_selection_alt = i; - if (language_infos[i]->CanonicalName.BeforeFirst('_') == "en") - // This will be the default selection if the active language does not match any dictionary. - init_selection_default = i; - names.Add(language_infos[i]->Description); } - if (init_selection == -1) - // This is the dictionary matching the active language. - init_selection = init_selection_alt; - if (init_selection != -1) - // This is the language to highlight in the choice dialog initially. - init_selection_default = init_selection; - - const long index = wxGetSingleChoiceIndex(_(L("Select the language")), _(L("Language")), names, init_selection_default); - // Try to load a new language. - if (index != -1 && (init_selection == -1 || init_selection != index)) { - const wxLanguageInfo *new_language_info = language_infos[index]; - if (new_language_info == m_language_info_best || new_language_info == m_language_info_system) { - // The newly selected profile matches user's default profile exactly. That's great. - } else if (m_language_info_best != nullptr && new_language_info->CanonicalName.BeforeFirst('_') == m_language_info_best->CanonicalName.BeforeFirst('_')) - new_language_info = m_language_info_best; - else if (m_language_info_system != nullptr && new_language_info->CanonicalName.BeforeFirst('_') == m_language_info_system->CanonicalName.BeforeFirst('_')) - new_language_info = m_language_info_system; - if (this->load_language(new_language_info->CanonicalName, false)) { - // Save language at application config. - app_config->set("translation_language", m_wxLocale->GetCanonicalName().ToUTF8().data()); - app_config->save(); - return true; + + names.Add(langs[i]->Description); } + + const long index = wxGetSingleChoiceIndex( + _(L("Select the language")), + _(L("Language")), names, init_selection >= 0 ? init_selection : 0); + + if (index != -1) { + const wxLanguageInfo *lang = langs[index]; + if (lang->Language == current_language) { + // There was no change + return false; } + m_wxLocale = new wxLocale; // FIXME: leak? + m_wxLocale->Init(lang->Language); + m_wxLocale->AddCatalogLookupPathPrefix(from_u8(localization_dir())); + m_wxLocale->AddCatalog(SLIC3R_APP_KEY); + //FIXME This is a temporary workaround, the correct solution is to switch to "C" locale during file import / export only. + wxSetlocale(LC_NUMERIC, "C"); + Preset::update_suffix_modified(); + m_imgui->set_language(into_u8(lang->CanonicalName)); + return true; + } + return false; } // Load gettext translation files and activate them at the start of the application, // based on the "translation_language" key stored in the application config. -bool GUI_App::load_language(wxString language, bool initial) +bool GUI_App::load_language() { - if (initial) { - // There is a static list of lookup path prefixes in wxWidgets. Add ours. - wxFileTranslationsLoader::AddCatalogLookupPathPrefix(from_u8(localization_dir())); - // Get the active language from PrusaSlicer.ini, or empty string if the key does not exist. + wxString language = wxEmptyString; + if (app_config->has("translation_language")) language = app_config->get("translation_language"); - if (! language.empty()) - BOOST_LOG_TRIVIAL(trace) << boost::format("translation_language provided by PrusaSlicer.ini: %1%") % language; - // Get the system language. - { - const wxLanguage lang_system = wxLanguage(wxLocale::GetSystemLanguage()); - if (lang_system != wxLANGUAGE_UNKNOWN) { - m_language_info_system = wxLocale::GetLanguageInfo(lang_system); - BOOST_LOG_TRIVIAL(trace) << boost::format("System language detected (user locales and such): %1%") % m_language_info_system->CanonicalName.ToUTF8().data(); + if (language.IsEmpty()) { + int lang = wxLocale::GetSystemLanguage(); + if (lang != wxLANGUAGE_UNKNOWN) { + const wxLanguageInfo *info = wxLocale::GetLanguageInfo(lang); + if (info != nullptr) + language = info->CanonicalName; } } -#if defined(__WXMSW__) || defined(__WXOSX__) - { - // Allocating a temporary locale will switch the default wxTranslations to its internal wxTranslations instance. - wxLocale temp_locale; - // Set the current translation's language to default, otherwise GetBestTranslation() may not work (see the wxWidgets source code). - wxTranslations::Get()->SetLanguage(wxLANGUAGE_DEFAULT); - // Let the wxFileTranslationsLoader enumerate all translation dictionaries for PrusaSlicer - // and try to match them with the system specific "preferred languages". - // There seems to be a support for that on Windows and OSX, while on Linuxes the code just returns wxLocale::GetSystemLanguage(). - // The last parameter gets added to the list of detected dictionaries. This is a workaround - // for not having the English dictionary. Let's hope wxWidgets of various versions process this call the same way. - wxString best_language = wxTranslations::Get()->GetBestTranslation(SLIC3R_APP_KEY, wxLANGUAGE_ENGLISH); - if (! best_language.IsEmpty()) { - m_language_info_best = wxLocale::FindLanguageInfo(best_language); - BOOST_LOG_TRIVIAL(trace) << boost::format("Best translation language detected (may be different from user locales): %1%") % m_language_info_best->CanonicalName.ToUTF8().data(); + + const wxLanguageInfo *info = nullptr; + if (! language.IsEmpty()) { + const auto langs = get_installed_languages(); + for (const wxLanguageInfo *this_info : langs) + if (this_info->CanonicalName == language) { + info = this_info; + break; } } -#endif - } - const wxLanguageInfo *language_info = language.empty() ? nullptr : wxLocale::FindLanguageInfo(language); - if (! language.empty() && (language_info == nullptr || language_info->CanonicalName.empty())) { - // Fix for wxWidgets issue, where the FindLanguageInfo() returns locales with undefined ANSII code (wxLANGUAGE_KONKANI or wxLANGUAGE_MANIPURI). - language_info = nullptr; - BOOST_LOG_TRIVIAL(error) << boost::format("Language code \"%1%\" is not supported") % language.ToUTF8().data(); + m_wxLocale = new wxLocale; + if (info == nullptr) { + m_wxLocale->Init(wxLANGUAGE_DEFAULT); + m_imgui->set_language("en"); + } else { + m_wxLocale->Init(info->Language); + m_wxLocale->AddCatalogLookupPathPrefix(from_u8(localization_dir())); + m_wxLocale->AddCatalog(SLIC3R_APP_KEY); + m_imgui->set_language(into_u8(info->CanonicalName)); } - - if (language_info != nullptr && language_info->LayoutDirection == wxLayout_RightToLeft) { - BOOST_LOG_TRIVIAL(trace) << boost::format("The following language code requires right to left layout, which is not supported by PrusaSlicer: %1%") % language_info->CanonicalName.ToUTF8().data(); - language_info = nullptr; + //FIXME This is a temporary workaround, the correct solution is to switch to "C" locale during file import / export only. + wxSetlocale(LC_NUMERIC, "C"); + Preset::update_suffix_modified(); + return true; } - if (language_info == nullptr) { - if (m_language_info_system != nullptr && m_language_info_system->LayoutDirection != wxLayout_RightToLeft) - language_info = m_language_info_system; - if (m_language_info_best != nullptr && m_language_info_best->LayoutDirection != wxLayout_RightToLeft) - language_info = m_language_info_best; - if (language_info == nullptr) - language_info = wxLocale::GetLanguageInfo(wxLANGUAGE_ENGLISH_US); -} +// save language at application config +void GUI_App::save_language() +{ + wxString language = wxEmptyString; + if (m_wxLocale) + language = m_wxLocale->GetCanonicalName(); - BOOST_LOG_TRIVIAL(trace) << boost::format("Switching wxLocales to %1%") % language_info->CanonicalName.ToUTF8().data(); + app_config->set("translation_language", language.ToUTF8().data()); + app_config->save(); +} - // Alternate language code. - wxLanguage language_dict = wxLanguage(language_info->Language); - if (language_info->CanonicalName.BeforeFirst('_') == "sk") { - // Slovaks understand Czech well. Give them the Czech translation. - language_dict = wxLANGUAGE_CZECH; - BOOST_LOG_TRIVIAL(trace) << "Using Czech dictionaries for Slovak language"; +// Get a list of installed languages +std::vector GUI_App::get_installed_languages() +{ + std::vector res; + + wxDir dir(from_u8(localization_dir())); + wxString filename; + const wxLanguageInfo * langinfo; + wxString name = wxLocale::GetLanguageName(wxLANGUAGE_DEFAULT); + if (!name.IsEmpty()) { + res.push_back(wxLocale::GetLanguageInfo(wxLANGUAGE_DEFAULT)); } - if (! wxLocale::IsAvailable(language_info->Language)) { - // Loading the language dictionary failed. - wxString message = "Switching PrusaSlicer to language " + language_info->CanonicalName + " failed."; -#if !defined(_WIN32) && !defined(__APPLE__) - // likely some linux system - message += "\nYou may need to reconfigure the missing locales, likely by running the \"locale-gen\" and \"dpkg-reconfigure locales\" commands.\n"; -#endif - if (initial) - message + "\n\nApplication will close."; - wxMessageBox(message, "PrusaSlicer - Switching language failed", wxOK | wxICON_ERROR); - if (initial) - std::exit(EXIT_FAILURE); - else - return false; + for (bool cont = dir.GetFirst(&filename, wxEmptyString, wxDIR_DIRS); cont; cont = dir.GetNext(&filename)) { + langinfo = wxLocale::FindLanguageInfo(filename); + if (langinfo != NULL) { + auto full_file_name = dir.GetName() + wxFileName::GetPathSeparator() + + filename + wxFileName::GetPathSeparator() + SLIC3R_APP_KEY + wxT(".mo"); + if (wxFileExists(full_file_name)) { + res.push_back(langinfo); } + } + } - // Release the old locales, create new locales. - //FIXME wxWidgets cause havoc if the current locale is deleted. We just forget it causing memory leaks for now. - m_wxLocale.release(); - m_wxLocale = Slic3r::make_unique(); - m_wxLocale->Init(language_info->Language); - // Override language at the active wxTranslations class (which is stored in the active m_wxLocale) - // to load possibly different dictionary, for example, load Czech dictionary for Slovak language. - wxTranslations::Get()->SetLanguage(language_dict); - m_wxLocale->AddCatalog(SLIC3R_APP_KEY); - m_imgui->set_language(into_u8(language_info->CanonicalName)); - //FIXME This is a temporary workaround, the correct solution is to switch to "C" locale during file import / export only. - wxSetlocale(LC_NUMERIC, "C"); - Preset::update_suffix_modified(); - return true; + return res; } Tab* GUI_App::get_tab(Preset::Type type) @@ -910,13 +862,11 @@ bool GUI_App::check_unsaved_changes(const wxString &header) wxString dirty; PrinterTechnology printer_technology = preset_bundle->printers.get_edited_preset().printer_technology(); for (Tab *tab : tabs_list) - if (tab->supports_printer_technology(printer_technology) && tab->current_preset_is_dirty()) { + if (tab->supports_printer_technology(printer_technology) && tab->current_preset_is_dirty()) if (dirty.empty()) dirty = tab->title(); else dirty += wxString(", ") + tab->title(); - } - if (dirty.empty()) // No changes, the application may close or reload presets. return true; @@ -1030,9 +980,12 @@ int GUI_App::extruders_edited_cnt() const wxString GUI_App::current_language_code_safe() const { // Translate the language code to a code, for which Prusa Research maintains translations. + wxString language_code = this->current_language_code(); + size_t idx_underscore = language_code.find(language_code); + if (idx_underscore != wxString::npos) + language_code = language_code.substr(0, idx_underscore); const std::map mapping { { "cs", "cs_CZ", }, - { "sk", "cs_CZ", }, { "de", "de_DE", }, { "es", "es_ES", }, { "fr", "fr_FR", }, @@ -1043,7 +996,6 @@ wxString GUI_App::current_language_code_safe() const { "uk", "uk_UA", }, { "zh", "zh_CN", }, }; - wxString language_code = this->current_language_code().BeforeFirst('_'); auto it = mapping.find(language_code); if (it != mapping.end()) language_code = it->second; @@ -1089,7 +1041,7 @@ void GUI_App::window_pos_restore(wxTopLevelWindow* window, const std::string &na void GUI_App::window_pos_sanitize(wxTopLevelWindow* window) { - /*unsigned*/int display_idx = wxDisplay::GetFromWindow(window); + unsigned display_idx = wxDisplay::GetFromWindow(window); wxRect display; if (display_idx == wxNOT_FOUND) { display = wxDisplay(0u).GetClientArea(); diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index a8043e99158..b74762586ba 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -88,11 +88,7 @@ class GUI_App : public wxApp size_t m_em_unit; // width of a "m"-symbol in pixels for current system font // Note: for 100% Scale m_em_unit = 10 -> it's a good enough coefficient for a size setting of controls - std::unique_ptr m_wxLocale; - // System language, from locales, owned by wxWidgets. - const wxLanguageInfo *m_language_info_system = nullptr; - // Best translation language, provided by Windows or OSX, owned by wxWidgets. - const wxLanguageInfo *m_language_info_best = nullptr; + wxLocale* m_wxLocale{ nullptr }; std::unique_ptr m_imgui; std::unique_ptr m_printhost_job_queue; @@ -136,7 +132,9 @@ class GUI_App : public wxApp void update_ui_from_settings(); bool switch_language(); - bool load_language(wxString language, bool initial); + // Load gettext translation files and activate them at the start of the application, + // based on the "translation_language" key stored in the application config. + bool load_language(); Tab* get_tab(Preset::Type type); ConfigOptionMode get_mode(); @@ -148,9 +146,9 @@ class GUI_App : public wxApp bool checked_tab(Tab* tab); void load_current_presets(); - wxString current_language_code() const { return m_wxLocale->GetCanonicalName(); } + wxString current_language_code() const { return m_wxLocale != nullptr ? m_wxLocale->GetCanonicalName() : wxString("en_US"); } // Translate the language code to a code, for which Prusa Research maintains translations. Defaults to "en_US". - wxString current_language_code_safe() const; + wxString current_language_code_safe() const; virtual bool OnExceptionInMainLoop(); @@ -191,6 +189,8 @@ class GUI_App : public wxApp void window_pos_restore(wxTopLevelWindow* window, const std::string &name, bool default_maximized = false); void window_pos_sanitize(wxTopLevelWindow* window); bool select_language(); + void save_language(); + std::vector get_installed_languages(); #ifdef __WXMSW__ void associate_3mf_files(); #endif // __WXMSW__ diff --git a/src/slic3r/GUI/GUI_ObjectLayers.cpp b/src/slic3r/GUI/GUI_ObjectLayers.cpp index d209214ae66..b30d3ecd314 100644 --- a/src/slic3r/GUI/GUI_ObjectLayers.cpp +++ b/src/slic3r/GUI/GUI_ObjectLayers.cpp @@ -20,12 +20,13 @@ namespace GUI ObjectLayers::ObjectLayers(wxWindow* parent) : OG_Settings(parent, true) { - m_grid_sizer = new wxFlexGridSizer(3, 5, wxGetApp().em_unit()); // "Min Z", "Max Z", "Layer height" & buttons sizer + m_grid_sizer = new wxFlexGridSizer(3, 5, 5); // "Min Z", "Max Z", "Layer height" & buttons sizer m_grid_sizer->SetFlexibleDirection(wxHORIZONTAL); // Legend for object layers - for (const std::string col : { L("Start at height"), L("Stop at height"), L("Layer height") }) { - auto temp = new wxStaticText(m_parent, wxID_ANY, _(col), wxDefaultPosition, /*size*/wxDefaultSize, wxST_ELLIPSIZE_MIDDLE); + for (const std::string col : { "Min Z", "Max Z", "Layer height" }) { + auto temp = new wxStaticText(m_parent, wxID_ANY, _(L(col)), wxDefaultPosition, /*size*/wxDefaultSize, wxST_ELLIPSIZE_MIDDLE); + temp->SetFont(Slic3r::GUI::wxGetApp().normal_font()); temp->SetBackgroundStyle(wxBG_STYLE_PAINT); temp->SetFont(wxGetApp().bold_font()); @@ -131,12 +132,6 @@ wxSizer* ObjectLayers::create_layer(const t_layer_height_range& range) auto sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(editor); - - auto temp = new wxStaticText(m_parent, wxID_ANY, _(L("mm"))); - temp->SetBackgroundStyle(wxBG_STYLE_PAINT); - temp->SetFont(wxGetApp().normal_font()); - sizer->Add(temp, 0, wxLEFT, wxGetApp().em_unit()); - m_grid_sizer->Add(sizer); return sizer; @@ -150,20 +145,20 @@ void ObjectLayers::create_layers_list() auto sizer = create_layer(range); auto del_btn = new ScalableButton(m_parent, wxID_ANY, m_bmp_delete); - del_btn->SetToolTip(_(L("Remove layer range"))); + del_btn->SetToolTip(_(L("Remove layer"))); sizer->Add(del_btn, 0, wxRIGHT | wxLEFT, em_unit(m_parent)); - del_btn->Bind(wxEVT_BUTTON, [range](wxEvent &) { + del_btn->Bind(wxEVT_BUTTON, [this, range](wxEvent &event) { wxGetApp().obj_list()->del_layer_range(range); }); auto add_btn = new ScalableButton(m_parent, wxID_ANY, m_bmp_add); - add_btn->SetToolTip(_(L("Add layer range"))); + add_btn->SetToolTip(_(L("Add layer"))); - sizer->Add(add_btn); + sizer->Add(add_btn, 0, wxRIGHT, em_unit(m_parent)); - add_btn->Bind(wxEVT_BUTTON, [range](wxEvent &) { + add_btn->Bind(wxEVT_BUTTON, [this, range](wxEvent &event) { wxGetApp().obj_list()->add_layer_range_after_current(range); }); } @@ -227,42 +222,6 @@ void ObjectLayers::msw_rescale() { m_bmp_delete.msw_rescale(); m_bmp_add.msw_rescale(); - - m_grid_sizer->SetHGap(wxGetApp().em_unit()); - - // rescale edit-boxes - const int cells_cnt = m_grid_sizer->GetCols() * m_grid_sizer->GetEffectiveRowsCount(); - for (int i = 0; i < cells_cnt; i++) - { - const wxSizerItem* item = m_grid_sizer->GetItem(i); - if (item->IsWindow()) - { - LayerRangeEditor* editor = dynamic_cast(item->GetWindow()); - if (editor != nullptr) - editor->msw_rescale(); - } - else if (item->IsSizer()) // case when we have editor with buttons - { - wxSizerItem* e_item = item->GetSizer()->GetItem(size_t(0)); // editor - if (e_item->IsWindow()) { - LayerRangeEditor* editor = dynamic_cast(e_item->GetWindow()); - if (editor != nullptr) - editor->msw_rescale(); - } - - const std::vector btns = {2, 3}; // del_btn, add_btn - for (auto btn : btns) - { - wxSizerItem* b_item = item->GetSizer()->GetItem(btn); - if (b_item->IsWindow()) { - ScalableButton* button = dynamic_cast(b_item->GetWindow()); - if (button != nullptr) - button->msw_rescale(); - } - } - } - } - m_grid_sizer->Layout(); } void ObjectLayers::reset_selection() @@ -284,9 +243,6 @@ LayerRangeEditor::LayerRangeEditor( ObjectLayers* parent, wxSize(8 * em_unit(parent->m_parent), wxDefaultCoord), wxTE_PROCESS_ENTER) { this->SetFont(wxGetApp().normal_font()); - - // Reset m_enter_pressed flag to _false_, when value is editing - this->Bind(wxEVT_TEXT, [this](wxEvent&) { m_enter_pressed = false; }, this->GetId()); this->Bind(wxEVT_TEXT_ENTER, [this, edit_fn](wxEvent&) { @@ -310,7 +266,7 @@ LayerRangeEditor::LayerRangeEditor( ObjectLayers* parent, if (!m_enter_pressed) { #ifndef __WXGTK__ /* Update data for next editor selection. - * But under GTK it looks like there is no information about selected control at e.GetWindow(), + * But under GTK it lucks like there is no information about selected control at e.GetWindow(), * so we'll take it from wxEVT_LEFT_DOWN event * */ LayerRangeEditor* new_editor = dynamic_cast(e.GetWindow()); @@ -381,10 +337,5 @@ coordf_t LayerRangeEditor::get_value() return layer_height; } -void LayerRangeEditor::msw_rescale() -{ - SetMinSize(wxSize(8 * wxGetApp().em_unit(), wxDefaultCoord)); -} - } //namespace GUI } //namespace Slic3r \ No newline at end of file diff --git a/src/slic3r/GUI/GUI_ObjectLayers.hpp b/src/slic3r/GUI/GUI_ObjectLayers.hpp index c0de3be4cef..f274183e2b0 100644 --- a/src/slic3r/GUI/GUI_ObjectLayers.hpp +++ b/src/slic3r/GUI/GUI_ObjectLayers.hpp @@ -49,7 +49,6 @@ class LayerRangeEditor : public wxTextCtrl EditorType type() const {return m_type;} void set_focus_data() const { m_set_focus_data(m_type);} - void msw_rescale(); private: coordf_t get_value(); diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index f9f04ba43c8..77051a9574f 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -17,10 +17,6 @@ #include #include "slic3r/Utils/FixModelByWin10.hpp" -#ifdef __WXMSW__ -#include "wx/uiaction.h" -#endif /* __WXMSW__ */ - namespace Slic3r { namespace GUI @@ -29,7 +25,7 @@ namespace GUI wxDEFINE_EVENT(EVT_OBJ_LIST_OBJECT_SELECT, SimpleEvent); // pt_FFF -static SettingsBundle FREQ_SETTINGS_BUNDLE_FFF = +SettingsBundle FREQ_SETTINGS_BUNDLE_FFF = { { L("Layers and Perimeters"), { "layer_height" , "perimeters", "top_solid_layers", "bottom_solid_layers" } }, { L("Infill") , { "fill_density", "fill_pattern" } }, @@ -40,13 +36,13 @@ static SettingsBundle FREQ_SETTINGS_BUNDLE_FFF = }; // pt_SLA -static SettingsBundle FREQ_SETTINGS_BUNDLE_SLA = +SettingsBundle FREQ_SETTINGS_BUNDLE_SLA = { { L("Pad and Support") , { "supports_enable", "pad_enable" } } }; // Note: id accords to type of the sub-object (adding volume), so sequence of the menu items is important -static std::vector> ADD_VOLUME_MENU_ITEMS = { +std::vector> ADD_VOLUME_MENU_ITEMS = { // menu_item Name menu_item bitmap name {L("Add part"), "add_part" }, // ~ModelVolumeType::MODEL_PART {L("Add modifier"), "add_modifier"}, // ~ModelVolumeType::PARAMETER_MODIFIER @@ -123,10 +119,6 @@ ObjectList::ObjectList(wxWindow* parent) : * instead of real last clicked item. * So, let check last selected item in such strange way */ -#ifdef __WXMSW__ - // Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected. - int new_selected_column = -1; -#endif //__WXMSW__ if (wxGetKeyState(WXK_SHIFT)) { wxDataViewItemArray sels; @@ -136,34 +128,13 @@ ObjectList::ObjectList(wxWindow* parent) : else m_last_selected_item = event.GetItem(); } - else { - wxDataViewItem new_selected_item = event.GetItem(); -#ifdef __WXMSW__ - // Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected. - wxDataViewItem item; - wxDataViewColumn *col; - this->HitTest(get_mouse_position_in_control(), item, col); - new_selected_column = (col == nullptr) ? -1 : (int)col->GetModelColumn(); - if (new_selected_item == m_last_selected_item && m_last_selected_column != -1 && m_last_selected_column != new_selected_column) { - // Mouse clicked on another column of the active row. Simulate keyboard enter to enter the editing mode of the current column. - wxUIActionSimulator sim; - sim.Char(WXK_RETURN); - } -#endif //__WXMSW__ - m_last_selected_item = new_selected_item; - } -#ifdef __WXMSW__ - m_last_selected_column = new_selected_column; -#endif //__WXMSW__ + else + m_last_selected_item = event.GetItem(); selection_changed(); #ifndef __WXMSW__ set_tooltip_for_item(get_mouse_position_in_control()); -#endif //__WXMSW__ - -#ifndef __WXOSX__ - list_manipulation(); -#endif //__WXOSX__ +#endif //__WXMSW__ }); #ifdef __WXOSX__ @@ -192,13 +163,13 @@ ObjectList::ObjectList(wxWindow* parent) : this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->undo(); }, wxID_UNDO); this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->redo(); }, wxID_REDO); } -#else //__WXOSX__ +#else __WXOSX__ Bind(wxEVT_CHAR, [this](wxKeyEvent& event) { key_event(event); }); // doesn't work on OSX #endif #ifdef __WXMSW__ GetMainWindow()->Bind(wxEVT_MOTION, [this](wxMouseEvent& event) { - set_tooltip_for_item(get_mouse_position_in_control()); + set_tooltip_for_item(/*event.GetPosition()*/get_mouse_position_in_control()); event.Skip(); }); #endif //__WXMSW__ @@ -209,27 +180,13 @@ ObjectList::ObjectList(wxWindow* parent) : Bind(wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE, &ObjectList::OnDropPossible, this); Bind(wxEVT_DATAVIEW_ITEM_DROP, &ObjectList::OnDrop, this); -#ifdef __WXMSW__ - Bind(wxEVT_DATAVIEW_ITEM_EDITING_STARTED, &ObjectList::OnEditingStarted, this); -#endif /* __WXMSW__ */ - Bind(wxEVT_DATAVIEW_ITEM_EDITING_DONE, &ObjectList::OnEditingDone, this); + Bind(wxEVT_DATAVIEW_ITEM_EDITING_DONE, &ObjectList::OnEditingDone, this); Bind(wxEVT_DATAVIEW_ITEM_VALUE_CHANGED, &ObjectList::ItemValueChanged, this); Bind(wxCUSTOMEVT_LAST_VOLUME_IS_DELETED, [this](wxCommandEvent& e) { last_volume_is_deleted(e.GetInt()); }); - Bind(wxEVT_SIZE, ([this](wxSizeEvent &e) { -#ifdef __WXGTK__ - // On GTK, the EnsureVisible call is postponed to Idle processing (see wxDataViewCtrl::m_ensureVisibleDefered). - // So the postponed EnsureVisible() call is planned for an item, which may not exist at the Idle processing time, if this wxEVT_SIZE - // event is succeeded by a delete of the currently active item. We are trying our luck by postponing the wxEVT_SIZE triggered EnsureVisible(), - // which seems to be working as of now. - this->CallAfter([this](){ this->EnsureVisible(this->GetCurrentItem()); }); -#else - this->EnsureVisible(this->GetCurrentItem()); -#endif - e.Skip(); - })); + Bind(wxEVT_SIZE, ([this](wxSizeEvent &e) { this->EnsureVisible(this->GetCurrentItem()); e.Skip(); })); } ObjectList::~ObjectList() @@ -255,30 +212,17 @@ void ObjectList::create_objects_ctrl() EnableDropTarget(wxDF_UNICODETEXT); #endif // wxUSE_DRAG_AND_DROP && wxUSE_UNICODE - const int em = wxGetApp().em_unit(); - - // column ItemName(Icon+Text) of the view control: + // column 0(Icon+Text) of the view control: // And Icon can be consisting of several bitmaps AppendColumn(new wxDataViewColumn(_(L("Name")), new BitmapTextRenderer(), - colName, 20*em, wxALIGN_LEFT, wxDATAVIEW_COL_RESIZABLE)); + 0, 20*wxGetApp().em_unit()/*200*/, wxALIGN_LEFT, wxDATAVIEW_COL_RESIZABLE)); - // column PrintableProperty (Icon) of the view control: - AppendBitmapColumn(" ", colPrint, wxDATAVIEW_CELL_INERT, 3*em, - wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE); - - // column Extruder of the view control: + // column 1 of the view control: AppendColumn(create_objects_list_extruder_column(4)); - // column ItemEditing of the view control: - AppendBitmapColumn(_(L("Editing")), colEditing, wxDATAVIEW_CELL_INERT, 3*em, + // column 2 of the view control: + AppendBitmapColumn(" ", 2, wxDATAVIEW_CELL_INERT, int(2.5 * wxGetApp().em_unit())/*25*/, wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE); - - if (wxOSX) - { - GetColumn(colName)->SetWidth(20*em); - GetColumn(colPrint)->SetWidth(3*em); - GetColumn(colExtruder)->SetWidth(8*em); - } } void ObjectList::create_popup_menus() @@ -288,12 +232,11 @@ void ObjectList::create_popup_menus() create_part_popupmenu(&m_menu_part); create_sla_object_popupmenu(&m_menu_sla_object); create_instance_popupmenu(&m_menu_instance); - create_default_popupmenu(&m_menu_default); } -void ObjectList::get_selected_item_indexes(int& obj_idx, int& vol_idx, const wxDataViewItem& input_item/* = wxDataViewItem(nullptr)*/) +void ObjectList::get_selected_item_indexes(int& obj_idx, int& vol_idx, const wxDataViewItem& input_item/* = wxDataViewItem(0)*/) { - const wxDataViewItem item = input_item == wxDataViewItem(nullptr) ? GetSelection() : input_item; + const wxDataViewItem item = input_item == wxDataViewItem(0) ? GetSelection() : input_item; if (!item) { @@ -372,34 +315,28 @@ void ObjectList::set_tooltip_for_item(const wxPoint& pt) * Just this->SetToolTip(tooltip) => has no effect. */ - if (!item || GetSelectedItemsCount() > 1) + if (!item) { GetMainWindow()->SetToolTip(""); // hide tooltip return; } - wxString tooltip = ""; - - if (col->GetTitle() == _(L("Editing"))) -#ifdef __WXOSX__ - tooltip = _(L("Right button click the icon to change the object settings")); -#else - tooltip = _(L("Click the icon to change the object settings")); -#endif //__WXMSW__ - else if (col->GetTitle() == " ") -#ifdef __WXOSX__ - tooltip = _(L("Right button click the icon to change the object printable property")); -#else - tooltip = _(L("Click the icon to change the object printable property")); -#endif //__WXMSW__ - else if (col->GetTitle() == _("Name") && (pt.x >= 2 * wxGetApp().em_unit() && pt.x <= 4 * wxGetApp().em_unit())) + if (col->GetTitle() == " " && GetSelectedItemsCount()<2) + GetMainWindow()->SetToolTip(_(L("Right button click the icon to change the object settings"))); + else if (col->GetTitle() == _("Name")) { +#ifdef __WXMSW__ + if (pt.x < 2 * wxGetApp().em_unit() || pt.x > 4 * wxGetApp().em_unit()) { + GetMainWindow()->SetToolTip(""); // hide tooltip + return; + } +#endif //__WXMSW__ int obj_idx, vol_idx; get_selected_item_indexes(obj_idx, vol_idx, item); - tooltip = get_mesh_errors_list(obj_idx, vol_idx); + GetMainWindow()->SetToolTip(get_mesh_errors_list(obj_idx, vol_idx)); } - - GetMainWindow()->SetToolTip(tooltip); + else + GetMainWindow()->SetToolTip(""); // hide tooltip } wxPoint ObjectList::get_mouse_position_in_control() @@ -432,7 +369,7 @@ DynamicPrintConfig& ObjectList::get_item_config(const wxDataViewItem& item) cons (*m_objects)[obj_idx]->config; } -wxDataViewColumn* ObjectList::create_objects_list_extruder_column(size_t extruders_count) +wxDataViewColumn* ObjectList::create_objects_list_extruder_column(int extruders_count) { wxArrayString choices; choices.Add(_(L("default"))); @@ -440,14 +377,14 @@ wxDataViewColumn* ObjectList::create_objects_list_extruder_column(size_t extrude choices.Add(wxString::Format("%d", i)); wxDataViewChoiceRenderer *c = new wxDataViewChoiceRenderer(choices, wxDATAVIEW_CELL_EDITABLE, wxALIGN_CENTER_HORIZONTAL); - wxDataViewColumn* column = new wxDataViewColumn(_(L("Extruder")), c, colExtruder, + wxDataViewColumn* column = new wxDataViewColumn(_(L("Extruder")), c, 1, 8*wxGetApp().em_unit()/*80*/, wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE); return column; } -void ObjectList::update_extruder_values_for_items(const size_t max_extruder) +void ObjectList::update_extruder_values_for_items(const int max_extruder) { - for (size_t i = 0; i < m_objects->size(); ++i) + for (int i = 0; i < m_objects->size(); ++i) { wxDataViewItem item = m_objects_model->GetItemById(i); if (!item) continue; @@ -460,10 +397,10 @@ void ObjectList::update_extruder_values_for_items(const size_t max_extruder) else extruder = wxString::Format("%d", object->config.option("extruder")->value); - m_objects_model->SetValue(extruder, item, colExtruder); + m_objects_model->SetValue(extruder, item, 1); if (object->volumes.size() > 1) { - for (size_t id = 0; id < object->volumes.size(); id++) { + for (auto id = 0; id < object->volumes.size(); id++) { item = m_objects_model->GetItemByVolumeId(i, id); if (!item) continue; if (!object->volumes[id]->config.has("extruder") || @@ -472,19 +409,19 @@ void ObjectList::update_extruder_values_for_items(const size_t max_extruder) else extruder = wxString::Format("%d", object->volumes[id]->config.option("extruder")->value); - m_objects_model->SetValue(extruder, item, colExtruder); + m_objects_model->SetValue(extruder, item, 1); } } } } -void ObjectList::update_objects_list_extruder_column(size_t extruders_count) +void ObjectList::update_objects_list_extruder_column(int extruders_count) { if (!this) return; // #ys_FIXME if (printer_technology() == ptSLA) extruders_count = 1; - wxDataViewChoiceRenderer* ch_render = dynamic_cast(GetColumn(colExtruder)->GetRenderer()); + wxDataViewChoiceRenderer* ch_render = dynamic_cast(GetColumn(1)->GetRenderer()); if (ch_render->GetChoices().GetCount() - 1 == extruders_count) return; @@ -493,21 +430,21 @@ void ObjectList::update_objects_list_extruder_column(size_t extruders_count) if (m_objects && extruders_count > 1) update_extruder_values_for_items(extruders_count); - // delete old extruder column - DeleteColumn(GetColumn(colExtruder)); - // insert new created extruder column - InsertColumn(colExtruder, create_objects_list_extruder_column(extruders_count)); + // delete old 2nd column + DeleteColumn(GetColumn(1)); + // insert new created 3rd column + InsertColumn(1, create_objects_list_extruder_column(extruders_count)); // set show/hide for this column set_extruder_column_hidden(extruders_count <= 1); //a workaround for a wrong last column width updating under OSX - GetColumn(colEditing)->SetWidth(25); + GetColumn(2)->SetWidth(25); m_prevent_update_extruder_in_config = false; } void ObjectList::set_extruder_column_hidden(const bool hide) const { - GetColumn(colExtruder)->SetHidden(hide); + GetColumn(1)->SetHidden(hide); } void ObjectList::update_extruder_in_config(const wxDataViewItem& item) @@ -534,7 +471,7 @@ void ObjectList::update_extruder_in_config(const wxDataViewItem& item) } wxVariant variant; - m_objects_model->GetValue(variant, item, colExtruder); + m_objects_model->GetValue(variant, item, 1); const wxString selection = variant.GetString(); if (!m_config || selection.empty()) @@ -553,7 +490,7 @@ void ObjectList::update_name_in_model(const wxDataViewItem& item) const if (obj_idx < 0) return; const int volume_id = m_objects_model->GetVolumeIdByItem(item); - take_snapshot(volume_id < 0 ? _(L("Rename Object")) : _(L("Rename Sub-object"))); + take_snapshot(wxString::Format(_(L("Rename %s")), volume_id < 0 ? _(L("Object")) : _(L("Sub-object")))); if (m_objects_model->GetItemType(item) & itObject) { (*m_objects)[obj_idx]->name = m_objects_model->GetName(item).ToUTF8().data(); @@ -747,7 +684,7 @@ void ObjectList::paste_volumes_into_list(int obj_idx, const ModelVolumePtrs& vol if (items.size() > 1) { m_selection_mode = smVolume; - m_last_selected_item = wxDataViewItem(nullptr); + m_last_selected_item = wxDataViewItem(0); } select_items(items); @@ -792,62 +729,35 @@ void ObjectList::OnChar(wxKeyEvent& event) #endif /* __WXOSX__ */ void ObjectList::OnContextMenu(wxDataViewEvent&) -{ - list_manipulation(true); -} - -void ObjectList::list_manipulation(bool evt_context_menu/* = false*/) { wxDataViewItem item; - wxDataViewColumn* col = nullptr; + wxDataViewColumn* col; const wxPoint pt = get_mouse_position_in_control(); HitTest(pt, item, col); - - /* Note: Under OSX right click doesn't send "selection changed" event. - * It means that Selection() will be return still previously selected item. - * Thus under OSX we should force UnselectAll(), when item and col are nullptr, - * and select new item otherwise. - */ - - if (!item) { - if (col == nullptr) { - if (wxOSX) - UnselectAll(); - else - return; - } - - if (evt_context_menu) { - show_context_menu(evt_context_menu); - return; - } - } - - if (wxOSX && item && col) { - UnselectAll(); - Select(item); - } - + if (!item) +#ifdef __WXOSX__ // temporary workaround for OSX + // after Yosemite OS X version, HitTest return undefined item + item = GetSelection(); + if (item) + show_context_menu(); + else + printf("undefined item\n"); + return; +#else + return; +#endif // __WXOSX__ const wxString title = col->GetTitle(); if (title == " ") - toggle_printable_state(item); - else if (title == _("Editing")) - show_context_menu(evt_context_menu); + show_context_menu(); else if (title == _("Name")) { - if (wxOSX) - show_context_menu(evt_context_menu); // return context menu under OSX (related to #2909) - - if (is_windows10()) - { - int obj_idx, vol_idx; - get_selected_item_indexes(obj_idx, vol_idx, item); + int obj_idx, vol_idx; + get_selected_item_indexes(obj_idx, vol_idx, item); - if (get_mesh_errors_count(obj_idx, vol_idx) > 0 && - pt.x > 2*wxGetApp().em_unit() && pt.x < 4*wxGetApp().em_unit() ) - fix_through_netfabb(); - } + if (is_windows10() && get_mesh_errors_count(obj_idx, vol_idx) > 0 && + pt.x > 2*wxGetApp().em_unit() && pt.x < 4*wxGetApp().em_unit() ) + fix_through_netfabb(); } #ifndef __WXMSW__ @@ -855,7 +765,7 @@ void ObjectList::list_manipulation(bool evt_context_menu/* = false*/) #endif //__WXMSW__ } -void ObjectList::show_context_menu(const bool evt_context_menu) +void ObjectList::show_context_menu() { if (multiple_selection()) { @@ -868,26 +778,22 @@ void ObjectList::show_context_menu(const bool evt_context_menu) } const auto item = GetSelection(); - wxMenu* menu {nullptr}; if (item) { const ItemType type = m_objects_model->GetItemType(item); if (!(type & (itObject | itVolume | itLayer | itInstance))) return; - menu = type & itInstance ? &m_menu_instance : + wxMenu* menu = type & itInstance ? &m_menu_instance : type & itLayer ? &m_menu_layer : - m_objects_model->GetParent(item) != wxDataViewItem(nullptr) ? &m_menu_part : + m_objects_model->GetParent(item) != wxDataViewItem(0) ? &m_menu_part : printer_technology() == ptFFF ? &m_menu_object : &m_menu_sla_object; if (!(type & itInstance)) append_menu_item_settings(menu); - } - else if (evt_context_menu) - menu = &m_menu_default; - if (menu) wxGetApp().plater()->PopupMenu(menu); + } } void ObjectList::copy() @@ -951,9 +857,9 @@ void ObjectList::OnBeginDrag(wxDataViewEvent &event) const bool mult_sel = multiple_selection(); - if ((mult_sel && !selected_instances_of_same_object()) || - (!mult_sel && (GetSelection() != item)) || - m_objects_model->GetParent(item) == wxDataViewItem(nullptr) ) { + if (mult_sel && !selected_instances_of_same_object() || + !mult_sel && (GetSelection() != item || + m_objects_model->GetParent(item) == wxDataViewItem(0) ) ) { event.Veto(); return; } @@ -998,10 +904,10 @@ void ObjectList::OnBeginDrag(wxDataViewEvent &event) bool ObjectList::can_drop(const wxDataViewItem& item) const { - return (m_dragged_data.type() == itInstance && !item.IsOk()) || - (m_dragged_data.type() == itVolume && item.IsOk() && + return m_dragged_data.type() == itInstance && !item.IsOk() || + m_dragged_data.type() == itVolume && item.IsOk() && m_objects_model->GetItemType(item) == itVolume && - m_dragged_data.obj_idx() == m_objects_model->GetObjectIdByItem(item)); + m_dragged_data.obj_idx() == m_objects_model->GetObjectIdByItem(item); } void ObjectList::OnDropPossible(wxDataViewEvent &event) @@ -1043,7 +949,7 @@ void ObjectList::OnDrop(wxDataViewEvent &event) // if (to_volume_id > from_volume_id) to_volume_id--; // #endif // __WXGTK__ - take_snapshot(_((m_dragged_data.type() == itVolume) ? L("Volumes in Object reordered") : L("Object reordered"))); + take_snapshot(_(L("Remove Volume(s)"))); auto& volumes = (*m_objects)[m_dragged_data.obj_idx()]->volumes; auto delta = to_volume_id < from_volume_id ? -1 : 1; @@ -1107,13 +1013,6 @@ const std::vector& ObjectList::get_options_for_bundle(const wxStrin return empty; } -static bool improper_category(const std::string& category, const int extruders_cnt, const bool is_object_settings = true) -{ - return category.empty() || - (extruders_cnt == 1 && (category == "Extruders" || category == "Wipe options" )) || - (!is_object_settings && category == "Support material"); -} - void ObjectList::get_options_menu(settings_menu_hierarchy& settings_menu, const bool is_part) { auto options = get_options(is_part); @@ -1125,8 +1024,8 @@ void ObjectList::get_options_menu(settings_menu_hierarchy& settings_menu, const { auto const opt = config.def()->get(option); auto category = opt->category; - if (improper_category(category, extruders_cnt, !is_part)) - continue; + if (category.empty() || + (category == "Extruders" && extruders_cnt == 1)) continue; const std::string& label = !opt->full_label.empty() ? opt->full_label : opt->label; std::pair option_label(option, label); @@ -1144,10 +1043,8 @@ void ObjectList::get_settings_choice(const wxString& category_name) wxArrayInt selections; wxDataViewItem item = GetSelection(); - const ItemType item_type = m_objects_model->GetItemType(item); - settings_menu_hierarchy settings_menu; - const bool is_part = item_type & (itVolume | itLayer); + const bool is_part = m_objects_model->GetItemType(item) & (itVolume | itLayer); get_options_menu(settings_menu, is_part); std::vector< std::pair > *settings_list = nullptr; @@ -1224,10 +1121,7 @@ void ObjectList::get_settings_choice(const wxString& category_name) } #endif - const wxString snapshot_text = item_type & itLayer ? _(L("Add Settings for Layers")) : - item_type & itVolume ? _(L("Add Settings for Sub-object")) : - _(L("Add Settings for Object")); - take_snapshot(snapshot_text); + take_snapshot(wxString::Format(_(L("Add Settings for %s")), is_part ? _(L("Sub-object")) : _(L("Object")))); std::vector selected_options; selected_options.reserve(selection_cnt); @@ -1259,7 +1153,7 @@ void ObjectList::get_settings_choice(const wxString& category_name) // Add settings item for object/sub-object and show them - if (!(item_type & (itObject | itVolume | itLayer))) + if (!(m_objects_model->GetItemType(item) & (itObject | itVolume | itLayer))) item = m_objects_model->GetTopParent(item); show_settings(add_settings_item(item, m_config)); } @@ -1269,13 +1163,11 @@ void ObjectList::get_freq_settings_choice(const wxString& bundle_name) std::vector options = get_options_for_bundle(bundle_name); wxDataViewItem item = GetSelection(); - ItemType item_type = m_objects_model->GetItemType(item); - /* Because of we couldn't edited layer_height for ItVolume from settings list, * correct options according to the selected item type : * remove "layer_height" option */ - if ((item_type & itVolume) && bundle_name == _("Layers and Perimeters")) { + if ((m_objects_model->GetItemType(item) & itVolume) && bundle_name == _("Layers and Perimeters")) { const auto layer_height_it = std::find(options.begin(), options.end(), "layer_height"); if (layer_height_it != options.end()) options.erase(layer_height_it); @@ -1287,10 +1179,7 @@ void ObjectList::get_freq_settings_choice(const wxString& bundle_name) assert(m_config); auto opt_keys = m_config->keys(); - const wxString snapshot_text = item_type & itLayer ? _(L("Add Settings Bundle for Height range")) : - item_type & itVolume ? _(L("Add Settings Bundle for Sub-object")) : - _(L("Add Settings Bundle for Object")); - take_snapshot(snapshot_text); + take_snapshot(wxString::Format(_(L("Add Settings Bundle for %s")), m_objects_model->GetItemType(item) & (itVolume|itLayer) ? _(L("Sub-object")) : _(L("Object")))); const DynamicPrintConfig& from_config = wxGetApp().preset_bundle->prints.get_edited_preset().config; for (auto& opt_key : options) @@ -1307,7 +1196,7 @@ void ObjectList::get_freq_settings_choice(const wxString& bundle_name) } // Add settings item for object/sub-object and show them - if (!(item_type & (itObject | itVolume | itLayer))) + if (!(m_objects_model->GetItemType(item) & (itObject | itVolume | itLayer))) item = m_objects_model->GetTopParent(item); show_settings(add_settings_item(item, m_config)); } @@ -1322,21 +1211,38 @@ void ObjectList::show_settings(const wxDataViewItem settings_item) // update object selection on Plater if (!m_prevent_canvas_selection_update) update_selections_on_canvas(); +/* auto item = GetSelection(); + if (item) { + if (m_objects_model->GetItemType(item) == itInstance) + item = m_objects_model->GetTopParent(item); + const auto settings_item = m_objects_model->IsSettingsItem(item) ? item : m_objects_model->GetSettingsItem(item); + select_item(settings_item ? settings_item : + m_objects_model->AddSettingsChild(item)); + + // update object selection on Plater + if (!m_prevent_canvas_selection_update) + update_selections_on_canvas(); + } + else { + //# ys_FIXME ??? use case ??? + auto panel = wxGetApp().sidebar().scrolled_panel(); + panel->Freeze(); + wxGetApp().obj_settings()->UpdateAndShow(true); + panel->Thaw(); + } + */ } wxMenu* ObjectList::append_submenu_add_generic(wxMenu* menu, const ModelVolumeType type) { auto sub_menu = new wxMenu; - if (wxGetApp().get_mode() == comExpert && type != ModelVolumeType::INVALID) { + if (wxGetApp().get_mode() == comExpert) { append_menu_item(sub_menu, wxID_ANY, _(L("Load")) + " " + dots, "", [this, type](wxCommandEvent&) { load_subobject(type); }, "", menu); sub_menu->AppendSeparator(); } - for (auto& item : { L("Box"), L("Cylinder"), L("Sphere"), L("Slab") }) - { - if (type == ModelVolumeType::INVALID && strncmp(item, "Slab", 4) == 0) - continue; + for (auto& item : { L("Box"), L("Cylinder"), L("Sphere"), L("Slab") }) { append_menu_item(sub_menu, wxID_ANY, _(item), "", [this, type, item](wxCommandEvent&) { load_generic_subobject(item, type); }, "", menu); } @@ -1370,7 +1276,7 @@ void ObjectList::append_menu_items_add_volume(wxMenu* menu) return; } - for (size_t type = (mode == comExpert ? 0 : 1) ; type < ADD_VOLUME_MENU_ITEMS.size(); type++) + for (int type = mode == comExpert ? 0 : 1 ; type < ADD_VOLUME_MENU_ITEMS.size(); type++) { auto& item = ADD_VOLUME_MENU_ITEMS[type]; @@ -1388,7 +1294,7 @@ wxMenuItem* ObjectList::append_menu_item_split(wxMenu* menu) wxMenuItem* ObjectList::append_menu_item_layers_editing(wxMenu* menu) { - return append_menu_item(menu, wxID_ANY, _(L("Height range Modifier")), "", + return append_menu_item(menu, wxID_ANY, _(L("Edit Layers")), "", [this](wxCommandEvent&) { layers_editing(); }, "edit_layers_all", menu); } @@ -1441,12 +1347,11 @@ wxMenuItem* ObjectList::append_menu_item_settings(wxMenu* menu_) // Create new items for settings popupmenu if (printer_technology() == ptFFF || - (menu->GetMenuItems().size() > 0 && !menu->GetMenuItems().back()->IsSeparator())) + menu->GetMenuItems().size() > 0 && !menu->GetMenuItems().back()->IsSeparator()) menu->SetFirstSeparator(); // Add frequently settings - const bool is_object_settings = m_objects_model->GetItemType(GetSelection()) == itObject; - create_freq_settings_popupmenu(menu, is_object_settings); + create_freq_settings_popupmenu(menu); if (mode == comAdvanced) return nullptr; @@ -1475,13 +1380,6 @@ wxMenuItem* ObjectList::append_menu_item_instance_to_object(wxMenu* menu, wxWind [this](wxCommandEvent&) { split_instances(); }, "", menu, [](){return wxGetApp().plater()->can_set_instance_to_object(); }, parent); } -wxMenuItem* ObjectList::append_menu_item_printable(wxMenu* menu, wxWindow* /*parent*/) -{ - return append_menu_check_item(menu, wxID_ANY, _(L("Printable")), "", [](wxCommandEvent&) { - wxGetApp().plater()->canvas3D()->get_selection().toggle_instance_printable_state(); - }, menu); -} - void ObjectList::append_menu_items_osx(wxMenu* menu) { append_menu_item(menu, wxID_ANY, _(L("Rename")), "", @@ -1550,7 +1448,7 @@ void ObjectList::append_menu_item_delete(wxMenu* menu) void ObjectList::append_menu_item_scale_selection_to_fit_print_volume(wxMenu* menu) { append_menu_item(menu, wxID_ANY, _(L("Scale to print volume")), _(L("Scale the selected object to fit the print volume")), - [](wxCommandEvent&) { wxGetApp().plater()->scale_selection_to_fit_print_volume(); }, "", menu); + [this](wxCommandEvent&) { wxGetApp().plater()->scale_selection_to_fit_print_volume(); }, "", menu); } void ObjectList::create_object_popupmenu(wxMenu *menu) @@ -1616,25 +1514,19 @@ void ObjectList::create_instance_popupmenu(wxMenu*menu) * 2. Separate selected instances from the initial object to the separated object, * if some (not all) instances are selected */ - wxGetApp().plater()->Bind(wxEVT_UPDATE_UI, [](wxUpdateUIEvent& evt) { + wxGetApp().plater()->Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { // evt.Enable(can_split_instances()); }, m_menu_item_split_instances->GetId()); evt.SetText(wxGetApp().plater()->canvas3D()->get_selection().is_single_full_object() ? _(L("Set as a Separated Objects")) : _(L("Set as a Separated Object"))); }, m_menu_item_split_instances->GetId()); } -void ObjectList::create_default_popupmenu(wxMenu*menu) -{ - wxMenu* sub_menu = append_submenu_add_generic(menu, ModelVolumeType::INVALID); - append_submenu(menu, sub_menu, wxID_ANY, _(L("Add Shape")), "", "add_part"); -} - wxMenu* ObjectList::create_settings_popupmenu(wxMenu *parent_menu) { wxMenu *menu = new wxMenu; settings_menu_hierarchy settings_menu; - const bool is_part = m_objects_model->GetParent(GetSelection()) != wxDataViewItem(nullptr); + const bool is_part = m_objects_model->GetParent(GetSelection()) != wxDataViewItem(0); get_options_menu(settings_menu, is_part); for (auto cat : settings_menu) { @@ -1646,7 +1538,7 @@ wxMenu* ObjectList::create_settings_popupmenu(wxMenu *parent_menu) return menu; } -void ObjectList::create_freq_settings_popupmenu(wxMenu *menu, const bool is_object_settings/* = true*/) +void ObjectList::create_freq_settings_popupmenu(wxMenu *menu) { // Add default settings bundles const SettingsBundle& bundle = printer_technology() == ptFFF ? @@ -1655,7 +1547,7 @@ void ObjectList::create_freq_settings_popupmenu(wxMenu *menu, const bool is_obje const int extruders_cnt = extruders_count(); for (auto& it : bundle) { - if (improper_category(it.first, extruders_cnt, is_object_settings)) + if (it.first.empty() || it.first == "Extruders" && extruders_cnt == 1) continue; append_menu_item(menu, wxID_ANY, _(it.first), "", @@ -1668,7 +1560,7 @@ void ObjectList::create_freq_settings_popupmenu(wxMenu *menu, const bool is_obje m_freq_settings_fff : m_freq_settings_sla; for (auto& it : bundle_quick) { - if (improper_category(it.first, extruders_cnt)) + if (it.first.empty() || it.first == "Extruders" && extruders_cnt == 1) continue; append_menu_item(menu, wxID_ANY, wxString::Format(_(L("Quick Add Settings (%s)")), _(it.first)), "", @@ -1707,9 +1599,6 @@ void ObjectList::load_subobject(ModelVolumeType type) changed_object(obj_idx); - if (type == ModelVolumeType::MODEL_PART) - // update printable state on canvas - wxGetApp().plater()->canvas3D()->update_instance_printable_state_for_object((size_t)obj_idx); wxDataViewItem sel_item; for (const auto& volume : volumes_info ) @@ -1717,10 +1606,6 @@ void ObjectList::load_subobject(ModelVolumeType type) if (sel_item) select_item(sel_item); - -#ifndef __WXOSX__ //#ifdef __WXMSW__ // #ys_FIXME - selection_changed(); -#endif //no __WXOSX__ //__WXMSW__ } void ObjectList::load_part( ModelObject* model_object, @@ -1731,7 +1616,7 @@ void ObjectList::load_part( ModelObject* model_object, wxArrayString input_files; wxGetApp().import_model(parent, input_files); - for (size_t i = 0; i < input_files.size(); ++i) { + for (int i = 0; i < input_files.size(); ++i) { std::string input_file = input_files.Item(i).ToUTF8().data(); Model model; @@ -1767,39 +1652,9 @@ void ObjectList::load_part( ModelObject* model_object, } -static TriangleMesh create_mesh(const std::string& type_name, const BoundingBoxf3& bb) -{ - TriangleMesh mesh; - - const double side = wxGetApp().plater()->canvas3D()->get_size_proportional_to_max_bed_size(0.1); - - if (type_name == "Box") - // Sitting on the print bed, left front front corner at (0, 0). - mesh = make_cube(side, side, side); - else if (type_name == "Cylinder") - // Centered around 0, sitting on the print bed. - // The cylinder has the same volume as the box above. - mesh = make_cylinder(0.564 * side, side); - else if (type_name == "Sphere") - // Centered around 0, half the sphere below the print bed, half above. - // The sphere has the same volume as the box above. - mesh = make_sphere(0.62 * side, PI / 18); - else if (type_name == "Slab") - // Sitting on the print bed, left front front corner at (0, 0). - mesh = make_cube(bb.size().x() * 1.5, bb.size().y() * 1.5, bb.size().z() * 0.5); - mesh.repair(); - - return mesh; -} - void ObjectList::load_generic_subobject(const std::string& type_name, const ModelVolumeType type) { - if (type == ModelVolumeType::INVALID) { - load_shape_object(type_name); - return; - } - - const int obj_idx = get_selected_obj_idx(); + const auto obj_idx = get_selected_obj_idx(); if (obj_idx < 0) return; @@ -1821,7 +1676,26 @@ void ObjectList::load_generic_subobject(const std::string& type_name, const Mode // Bounding box of the selected instance in world coordinate system including the translation, without modifiers. BoundingBoxf3 instance_bb = model_object.instance_bounding_box(instance_idx); - TriangleMesh mesh = create_mesh(type_name, instance_bb); + const wxString name = _(L("Generic")) + "-" + _(type_name); + TriangleMesh mesh; + + double side = wxGetApp().plater()->canvas3D()->get_size_proportional_to_max_bed_size(0.1); + + if (type_name == "Box") + // Sitting on the print bed, left front front corner at (0, 0). + mesh = make_cube(side, side, side); + else if (type_name == "Cylinder") + // Centered around 0, sitting on the print bed. + // The cylinder has the same volume as the box above. + mesh = make_cylinder(0.564 * side, side); + else if (type_name == "Sphere") + // Centered around 0, half the sphere below the print bed, half above. + // The sphere has the same volume as the box above. + mesh = make_sphere(0.62 * side, PI / 18); + else if (type_name == "Slab") + // Sitting on the print bed, left front front corner at (0, 0). + mesh = make_cube(instance_bb.size().x()*1.5, instance_bb.size().y()*1.5, instance_bb.size().z()*0.5); + mesh.repair(); // Mesh will be centered when loading. ModelVolume *new_volume = model_object.add_volume(std::move(mesh)); @@ -1843,15 +1717,11 @@ void ObjectList::load_generic_subobject(const std::string& type_name, const Mode new_volume->set_offset(v->get_instance_transformation().get_matrix(true).inverse() * offset); } - const wxString name = _(L("Generic")) + "-" + _(type_name); new_volume->name = into_u8(name); // set a default extruder value, since user can't add it manually new_volume->config.set_key_value("extruder", new ConfigOptionInt(0)); changed_object(obj_idx); - if (type == ModelVolumeType::MODEL_PART) - // update printable state on canvas - wxGetApp().plater()->canvas3D()->update_instance_printable_state_for_object((size_t)obj_idx); const auto object_item = m_objects_model->GetTopParent(GetSelection()); select_item(m_objects_model->AddVolumeChild(object_item, name, type, @@ -1861,57 +1731,6 @@ void ObjectList::load_generic_subobject(const std::string& type_name, const Mode #endif //no __WXOSX__ //__WXMSW__ } -void ObjectList::load_shape_object(const std::string& type_name) -{ - const Selection& selection = wxGetApp().plater()->canvas3D()->get_selection(); - assert(selection.get_object_idx() == -1); // Add nothing is something is selected on 3DScene - if (selection.get_object_idx() != -1) - return; - - const int obj_idx = m_objects->size(); - if (obj_idx < 0) - return; - - take_snapshot(_(L("Add Shape"))); - - // Create mesh - BoundingBoxf3 bb; - TriangleMesh mesh = create_mesh(type_name, bb); - - // Add mesh to model as a new object - Model& model = wxGetApp().plater()->model(); - const wxString name = _(L("Shape")) + "-" + _(type_name); - -#ifdef _DEBUG - check_model_ids_validity(model); -#endif /* _DEBUG */ - - std::vector object_idxs; - ModelObject* new_object = model.add_object(); - new_object->name = into_u8(name); - new_object->add_instance(); // each object should have at list one instance - - ModelVolume* new_volume = new_object->add_volume(mesh); - new_volume->name = into_u8(name); - // set a default extruder value, since user can't add it manually - new_volume->config.set_key_value("extruder", new ConfigOptionInt(0)); - new_object->invalidate_bounding_box(); - - const BoundingBoxf bed_shape = wxGetApp().plater()->bed_shape_bb(); - new_object->instances[0]->set_offset(Slic3r::to_3d(bed_shape.center().cast(), -new_object->origin_translation(2))); - - object_idxs.push_back(model.objects.size() - 1); -#ifdef _DEBUG - check_model_ids_validity(model); -#endif /* _DEBUG */ - - paste_objects_into_list(object_idxs); - -#ifdef _DEBUG - check_model_ids_validity(model); -#endif /* _DEBUG */ -} - void ObjectList::del_object(const int obj_idx) { wxGetApp().plater()->delete_object_from_model(obj_idx); @@ -1946,28 +1765,16 @@ void ObjectList::del_subobject_item(wxDataViewItem& item) if (type & itVolume && (*m_objects)[obj_idx]->get_mesh_errors_count() == 0) m_objects_model->DeleteWarningIcon(m_objects_model->GetParent(item)); - // If last two Instances of object is selected, show the message about impossible action - bool show_msg = false; - if (type & itInstance) { - wxDataViewItemArray instances; - m_objects_model->GetChildren(m_objects_model->GetParent(item), instances); - if (instances.Count() == 2 && IsSelected(instances[0]) && IsSelected(instances[1])) - show_msg = true; - } - m_objects_model->Delete(item); - - if (show_msg) - Slic3r::GUI::show_error(nullptr, _(L("Last instance of an object cannot be deleted."))); } void ObjectList::del_settings_from_config(const wxDataViewItem& parent_item) { const bool is_layer_settings = m_objects_model->GetItemType(parent_item) == itLayer; - const size_t opt_cnt = m_config->keys().size(); - if ((opt_cnt == 1 && m_config->has("extruder")) || - (is_layer_settings && opt_cnt == 2 && m_config->has("extruder") && m_config->has("layer_height"))) + const int opt_cnt = m_config->keys().size(); + if (opt_cnt == 1 && m_config->has("extruder") || + is_layer_settings && opt_cnt == 2 && m_config->has("extruder") && m_config->has("layer_height")) return; take_snapshot(_(L("Delete Settings"))); @@ -2010,7 +1817,7 @@ void ObjectList::del_layer_from_object(const int obj_idx, const t_layer_height_r if (del_range == object(obj_idx)->layer_config_ranges.end()) return; - take_snapshot(_(L("Delete Height Range"))); + take_snapshot(_(L("Delete Layers Range"))); object(obj_idx)->layer_config_ranges.erase(del_range); @@ -2041,7 +1848,7 @@ bool ObjectList::del_subobject_from_object(const int obj_idx, const int idx, con if (vol->is_model_part()) ++solid_cnt; if (volume->is_model_part() && solid_cnt == 1) { - Slic3r::GUI::show_error(nullptr, _(L("From Object List You can't delete the last solid part from object."))); + Slic3r::GUI::show_error(nullptr, _(L("You can't delete the last solid part from object."))); return false; } @@ -2060,7 +1867,7 @@ bool ObjectList::del_subobject_from_object(const int obj_idx, const int idx, con } else if (type == itInstance) { if (object->instances.size() == 1) { - Slic3r::GUI::show_error(nullptr, _(L("Last instance of an object cannot be deleted."))); + Slic3r::GUI::show_error(nullptr, _(L("You can't delete the last intance from object."))); return false; } @@ -2087,15 +1894,13 @@ void ObjectList::split() DynamicPrintConfig& config = printer_config(); const ConfigOption *nozzle_dmtrs_opt = config.option("nozzle_diameter", false); const auto nozzle_dmrs_cnt = (nozzle_dmtrs_opt == nullptr) ? size_t(1) : dynamic_cast(nozzle_dmtrs_opt)->values.size(); - if (!volume->is_splittable()) { + if (volume->split(nozzle_dmrs_cnt) == 1) { wxMessageBox(_(L("The selected object couldn't be split because it contains only one part."))); return; } take_snapshot(_(L("Split to Parts"))); - volume->split(nozzle_dmrs_cnt); - wxBusyCursor wait; auto model_object = (*m_objects)[obj_idx]; @@ -2165,13 +1970,13 @@ wxDataViewItem ObjectList::add_layer_root_item(const wxDataViewItem obj_item) if (obj_idx < 0 || object(obj_idx)->layer_config_ranges.empty() || printer_technology() == ptSLA) - return wxDataViewItem(nullptr); + return wxDataViewItem(0); // create LayerRoot item wxDataViewItem layers_item = m_objects_model->AddLayersRoot(obj_item); // and create Layer item(s) according to the layer_config_ranges - for (const auto& range : object(obj_idx)->layer_config_ranges) + for (const auto range : object(obj_idx)->layer_config_ranges) add_layer_item(range.first, layers_item); Expand(layers_item); @@ -2263,7 +2068,7 @@ void ObjectList::part_selection_changed() const auto item = GetSelection(); - if ( multiple_selection() || (item && m_objects_model->GetItemType(item) == itInstanceRoot )) + if ( multiple_selection() || item && m_objects_model->GetItemType(item) == itInstanceRoot ) { og_name = _(L("Group manipulation")); @@ -2275,7 +2080,7 @@ void ObjectList::part_selection_changed() { if (item) { - if (m_objects_model->GetParent(item) == wxDataViewItem(nullptr)) { + if (m_objects_model->GetParent(item) == wxDataViewItem(0)) { obj_idx = m_objects_model->GetIdByItem(item); og_name = _(L("Object manipulation")); m_config = &(*m_objects)[obj_idx]->config; @@ -2318,7 +2123,7 @@ void ObjectList::part_selection_changed() m_config = &(*m_objects)[obj_idx]->config; } else if (type & (itLayerRoot|itLayer)) { - og_name = type & itLayerRoot ? _(L("Height ranges")) : _(L("Settings for height range")); + og_name = type & itLayerRoot ? _(L("Layers Editing")) : _(L("Layer Editing")); update_and_show_layers = true; if (type & itLayer) @@ -2377,7 +2182,7 @@ SettingsBundle ObjectList::get_item_settings_bundle(const DynamicPrintConfig* co for (auto& opt_key : opt_keys) { auto category = config->def()->get(opt_key)->category; - if (improper_category(category, extruders_cnt, is_object_settings)) + if (category.empty() || (category == "Extruders" && extruders_cnt == 1)) continue; std::vector< std::string > new_category; @@ -2394,7 +2199,7 @@ SettingsBundle ObjectList::get_item_settings_bundle(const DynamicPrintConfig* co // Add new SettingsItem for parent_item if it doesn't exist, or just update a digest according to new config wxDataViewItem ObjectList::add_settings_item(wxDataViewItem parent_item, const DynamicPrintConfig* config) { - wxDataViewItem ret = wxDataViewItem(nullptr); + wxDataViewItem ret = wxDataViewItem(0); if (!parent_item) return ret; @@ -2448,17 +2253,7 @@ void ObjectList::add_object_to_list(size_t obj_idx, bool call_selection_changed) // add instances to the object, if it has those if (model_object->instances.size()>1) - { - std::vector print_idicator(model_object->instances.size()); - for (size_t i = 0; i < model_object->instances.size(); ++i) - print_idicator[i] = model_object->instances[i]->printable; - - const wxDataViewItem object_item = m_objects_model->GetItemById(obj_idx); - m_objects_model->AddInstanceChild(object_item, print_idicator); - Expand(m_objects_model->GetInstanceRootItem(object_item)); - } - else - m_objects_model->SetPrintableState(model_object->instances[0]->printable ? piPrintable : piUnprintable, obj_idx); + increase_object_instances(obj_idx, model_object->instances.size()); // add settings to the object, if it has those add_settings_item(item, &model_object->config); @@ -2477,7 +2272,7 @@ void ObjectList::delete_object_from_list() auto item = GetSelection(); if (!item) return; - if (m_objects_model->GetParent(item) == wxDataViewItem(nullptr)) + if (m_objects_model->GetParent(item) == wxDataViewItem(0)) select_item(m_objects_model->Delete(item)); else select_item(m_objects_model->Delete(m_objects_model->GetParent(item))); @@ -2540,7 +2335,7 @@ void ObjectList::delete_from_model_and_list(const std::vector& it (*m_objects)[item->obj_idx]->config.has("extruder")) { const wxString extruder = wxString::Format("%d", (*m_objects)[item->obj_idx]->config.option("extruder")->value); - m_objects_model->SetValue(extruder, m_objects_model->GetItemById(item->obj_idx), colExtruder); + m_objects_model->SetValue(extruder, m_objects_model->GetItemById(item->obj_idx), 1); } wxGetApp().plater()->canvas3D()->ensure_on_bed(item->obj_idx); } @@ -2610,50 +2405,33 @@ void ObjectList::remove() if (GetSelectedItemsCount() == 0) return; - auto delete_item = [this](wxDataViewItem item) + wxDataViewItemArray sels; + GetSelections(sels); + + wxDataViewItem parent = wxDataViewItem(0); + + Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Delete Selected"))); + + for (auto& item : sels) { - wxDataViewItem parent = m_objects_model->GetParent(item); - ItemType type = m_objects_model->GetItemType(item); - if (type & itObject) + if (m_objects_model->GetParent(item) == wxDataViewItem(0)) delete_from_model_and_list(itObject, m_objects_model->GetIdByItem(item), -1); else { - if (type & (itLayer | itInstance)) { - // In case there is just one layer or two instances and we delete it, del_subobject_item will - // also remove the parent item. Selection should therefore pass to the top parent (object). + if (m_objects_model->GetItemType(item) & itLayer) { + parent = m_objects_model->GetParent(item); wxDataViewItemArray children; - if (m_objects_model->GetChildren(parent, children) == (type & itLayer ? 1 : 2)) + if (m_objects_model->GetChildren(parent, children) == 1) parent = m_objects_model->GetTopParent(item); } - + else if (sels.size() == 1) + select_item(m_objects_model->GetParent(item)); + del_subobject_item(item); } - - return parent; - }; - - wxDataViewItemArray sels; - GetSelections(sels); - - wxDataViewItem parent = wxDataViewItem(nullptr); - - if (sels.Count() == 1) - parent = delete_item(GetSelection()); - else - { - Plater::TakeSnapshot snapshot = Plater::TakeSnapshot(wxGetApp().plater(), _(L("Delete Selected"))); - - for (auto& item : sels) - { - if (m_objects_model->InvalidItem(item)) // item can be deleted for this moment (like last 2 Instances or Volumes) - continue; - parent = delete_item(item); - } } - if (parent && !m_objects_model->InvalidItem(parent)) { + if (parent) select_item(parent); - update_selections_on_canvas(); - } } void ObjectList::del_layer_range(const t_layer_height_range& range) @@ -2674,23 +2452,16 @@ void ObjectList::del_layer_range(const t_layer_height_range& range) select_item(selectable_item); } -static double get_min_layer_height(const int extruder_idx) +double get_min_layer_height(const int extruder_idx) { const DynamicPrintConfig& config = wxGetApp().preset_bundle->printers.get_edited_preset().config; return config.opt_float("min_layer_height", extruder_idx <= 0 ? 0 : extruder_idx-1); } -static double get_max_layer_height(const int extruder_idx) +double get_max_layer_height(const int extruder_idx) { const DynamicPrintConfig& config = wxGetApp().preset_bundle->printers.get_edited_preset().config; - int extruder_idx_zero_based = extruder_idx <= 0 ? 0 : extruder_idx-1; - double max_layer_height = config.opt_float("max_layer_height", extruder_idx_zero_based); - - // In case max_layer_height is set to zero, it should default to 75 % of nozzle diameter: - if (max_layer_height < EPSILON) - max_layer_height = 0.75 * config.opt_float("nozzle_diameter", extruder_idx_zero_based); - - return max_layer_height; + return config.opt_float("max_layer_height", extruder_idx <= 0 ? 0 : extruder_idx-1); } void ObjectList::add_layer_range_after_current(const t_layer_height_range& current_range) @@ -2706,9 +2477,9 @@ void ObjectList::add_layer_range_after_current(const t_layer_height_range& curre if (current_range == last_range) { - take_snapshot(_(L("Add Height Range"))); + take_snapshot(_(L("Add New Layers Range"))); - const t_layer_height_range& new_range = { last_range.second, last_range.second + 2. }; + const t_layer_height_range& new_range = { last_range.second, last_range.second + 2.0f }; ranges[new_range] = get_default_layer_config(obj_idx); add_layer_item(new_range, layers_item); } @@ -2731,11 +2502,11 @@ void ObjectList::add_layer_range_after_current(const t_layer_height_range& curre if (delta < get_min_layer_height(old_config.opt_int("extruder"))/*0.05f*/) // next range division has no sense return; - const coordf_t midl_layer = next_range.first + 0.5 * delta; + const coordf_t midl_layer = next_range.first + 0.5f * delta; t_layer_height_range new_range = { midl_layer, next_range.second }; - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Add Height Range"))); + Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Add New Layers Range"))); // create new 2 layers instead of deleted one @@ -2753,7 +2524,7 @@ void ObjectList::add_layer_range_after_current(const t_layer_height_range& curre } else { - take_snapshot(_(L("Add Height Range"))); + take_snapshot(_(L("Add New Layers Range"))); const t_layer_height_range new_range = { current_range.second, next_range.first }; ranges[new_range] = get_default_layer_config(obj_idx); @@ -2812,7 +2583,7 @@ bool ObjectList::edit_layer_range(const t_layer_height_range& range, const t_lay const int obj_idx = get_selected_obj_idx(); if (obj_idx < 0) return false; - take_snapshot(_(L("Edit Height Range"))); + take_snapshot(_(L("Edit Layers Range"))); const ItemType sel_type = m_objects_model->GetItemType(GetSelection()); @@ -2824,14 +2595,11 @@ bool ObjectList::edit_layer_range(const t_layer_height_range& range, const t_lay ranges[new_range] = config; wxDataViewItem root_item = m_objects_model->GetLayerRootItem(m_objects_model->GetItemById(obj_idx)); - // To avoid update selection after deleting of a selected item (under GTK) - // set m_prevent_list_events to true - m_prevent_list_events = true; m_objects_model->DeleteChildren(root_item); if (root_item.IsOk()) // create Layer item(s) according to the layer_config_ranges - for (const auto& r : ranges) + for (const auto r : ranges) add_layer_item(r.first, root_item); select_item(sel_type&itLayer ? m_objects_model->GetItemByLayerRange(obj_idx, new_range) : root_item); @@ -2917,12 +2685,8 @@ void ObjectList::update_selections() } else if (m_selection_mode & smLayerRoot) sels.Add(m_objects_model->GetLayerRootItem(obj_item)); - else if (m_selection_mode & smLayer) { - if (m_selected_layers_range_idx >= 0) - sels.Add(m_objects_model->GetItemByLayerId(obj_idx, m_selected_layers_range_idx)); - else - sels.Add(obj_item); - } + else if (m_selection_mode & smLayer) + sels.Add(m_objects_model->GetItemByLayerId(obj_idx, m_selected_layers_range_idx)); } else { for (const auto& object : objects_content) { @@ -3060,7 +2824,7 @@ void ObjectList::update_selections_on_canvas() else { mode = Selection::Instance; - single_selection &= (obj_idx != selection.get_object_idx()); + single_selection = false; std::vector idxs = selection.get_volume_idxs_from_object(obj_idx); volume_idxs.insert(volume_idxs.end(), idxs.begin(), idxs.end()); } @@ -3081,9 +2845,6 @@ void ObjectList::update_selections_on_canvas() wxDataViewItemArray sels; GetSelections(sels); - // clear selection before adding new elements - selection.clear(); //OR remove_all()? - for (auto item : sels) { add_to_selection(item, selection, instance_idx, mode); @@ -3148,7 +2909,7 @@ void ObjectList::select_item_all_children() // There is no selection before OR some object is selected => select all objects if (!GetSelection() || m_objects_model->GetItemType(GetSelection()) == itObject) { - for (size_t i = 0; i < m_objects->size(); i++) + for (int i = 0; i < m_objects->size(); i++) sels.Add(m_objects_model->GetItemById(i)); m_selection_mode = smInstance; } @@ -3174,7 +2935,7 @@ void ObjectList::update_selection_mode() // All items are unselected if (!GetSelection()) { - m_last_selected_item = wxDataViewItem(nullptr); + m_last_selected_item = wxDataViewItem(0); m_selection_mode = smUndef; return; } @@ -3216,9 +2977,9 @@ bool ObjectList::check_last_selection(wxString& msg_str) if (impossible_multi_selection(itVolume, smVolume) || impossible_multi_selection(itLayer, smLayer ) || type & itSettings || - (type & itVolume && !(m_selection_mode & smVolume )) || - (type & itLayer && !(m_selection_mode & smLayer )) || - (type & itInstance && !(m_selection_mode & smInstance)) + type & itVolume && !(m_selection_mode & smVolume ) || + type & itLayer && !(m_selection_mode & smLayer ) || + type & itInstance && !(m_selection_mode & smInstance) ) { // Inform user why selection isn't complited @@ -3271,7 +3032,7 @@ void ObjectList::fix_multiselection_conflicts() const ItemType item_type = m_selection_mode & smVolume ? itVolume : itLayer; - for (const auto& child : children) + for (const auto child : children) if (IsSelected(child) && m_objects_model->GetItemType(child) & item_type) sels.Add(child); @@ -3281,7 +3042,7 @@ void ObjectList::fix_multiselection_conflicts() } else { - for (const auto& item : sels) + for (const auto item : sels) { if (!IsSelected(item)) // if this item is unselected now (from previous actions) continue; @@ -3292,13 +3053,13 @@ void ObjectList::fix_multiselection_conflicts() } const wxDataViewItem& parent = m_objects_model->GetParent(item); - if (parent != wxDataViewItem(nullptr) && IsSelected(parent)) + if (parent != wxDataViewItem(0) && IsSelected(parent)) Unselect(parent); else { wxDataViewItemArray unsels; m_objects_model->GetAllChildren(item, unsels); - for (const auto& unsel_item : unsels) + for (const auto unsel_item : unsels) Unselect(unsel_item); } @@ -3313,7 +3074,7 @@ void ObjectList::fix_multiselection_conflicts() show_info(this, msg_string, _(L("Info"))); if (!IsSelected(m_last_selected_item)) - m_last_selected_item = wxDataViewItem(nullptr); + m_last_selected_item = wxDataViewItem(0); m_prevent_list_events = false; } @@ -3387,7 +3148,7 @@ void ObjectList::change_part_type() void ObjectList::last_volume_is_deleted(const int obj_idx) { - if (obj_idx < 0 || size_t(obj_idx) >= m_objects->size() || (*m_objects)[obj_idx]->volumes.size() != 1) + if (obj_idx < 0 || obj_idx >= m_objects->size() || (*m_objects)[obj_idx]->volumes.size() != 1) return; auto volume = (*m_objects)[obj_idx]->volumes.front(); @@ -3399,6 +3160,33 @@ void ObjectList::last_volume_is_deleted(const int obj_idx) volume->config.set_key_value("extruder", new ConfigOptionInt(0)); } +/* #lm_FIXME_delete_after_testing +void ObjectList::update_settings_items() +{ + m_prevent_canvas_selection_update = true; + wxDataViewItemArray sel; + GetSelections(sel); // stash selection + + wxDataViewItemArray items; + m_objects_model->GetChildren(wxDataViewItem(0), items); + + for (auto& item : items) { + const wxDataViewItem& settings_item = m_objects_model->GetSettingsItem(item); + select_item(settings_item ? settings_item : m_objects_model->AddSettingsChild(item)); + + // If settings item was deleted from the list, + // it's need to be deleted from selection array, if it was there + if (settings_item != m_objects_model->GetSettingsItem(item) && + sel.Index(settings_item) != wxNOT_FOUND) { + sel.Remove(settings_item); + } + } + + // restore selection: + SetSelections(sel); + m_prevent_canvas_selection_update = false; +} +*/ void ObjectList::update_and_show_object_settings_item() { const wxDataViewItem item = GetSelection(); @@ -3454,7 +3242,7 @@ void ObjectList::update_object_list_by_printer_technology() GetSelections(sel); // stash selection wxDataViewItemArray object_items; - m_objects_model->GetChildren(wxDataViewItem(nullptr), object_items); + m_objects_model->GetChildren(wxDataViewItem(0), object_items); for (auto& object_item : object_items) { // Update Settings Item for object @@ -3525,7 +3313,7 @@ void ObjectList::instances_to_separated_object(const int obj_idx, const std::set // create new object from selected instance ModelObject* model_object = (*m_objects)[obj_idx]->get_model()->add_object(*(*m_objects)[obj_idx]); - for (int inst_idx = int(model_object->instances.size()) - 1; inst_idx >= 0; inst_idx--) + for (int inst_idx = model_object->instances.size() - 1; inst_idx >= 0; inst_idx--) { if (find(inst_idxs.begin(), inst_idxs.end(), inst_idx) != inst_idxs.end()) continue; @@ -3533,8 +3321,7 @@ void ObjectList::instances_to_separated_object(const int obj_idx, const std::set } // Add new object to the object_list - const size_t new_obj_indx = static_cast(m_objects->size() - 1); - add_object_to_list(new_obj_indx); + add_object_to_list(m_objects->size() - 1); for (std::set::const_reverse_iterator it = inst_idxs.rbegin(); it != inst_idxs.rend(); ++it) { @@ -3542,17 +3329,12 @@ void ObjectList::instances_to_separated_object(const int obj_idx, const std::set del_subobject_from_object(obj_idx, *it, itInstance); delete_instance_from_list(obj_idx, *it); } - - // update printable state for new volumes on canvas3D - wxGetApp().plater()->canvas3D()->update_instance_printable_state_for_object(new_obj_indx); } void ObjectList::instances_to_separated_objects(const int obj_idx) { const int inst_cnt = (*m_objects)[obj_idx]->instances.size(); - std::vector object_idxs; - for (int i = inst_cnt-1; i > 0 ; i--) { // create new object from initial @@ -3566,17 +3348,12 @@ void ObjectList::instances_to_separated_objects(const int obj_idx) } // Add new object to the object_list - const size_t new_obj_indx = static_cast(m_objects->size() - 1); - add_object_to_list(new_obj_indx); - object_idxs.push_back(new_obj_indx); + add_object_to_list(m_objects->size() - 1); // delete current instance from the initial object del_subobject_from_object(obj_idx, i, itInstance); delete_instance_from_list(obj_idx, i); } - - // update printable state for new volumes on canvas3D - wxGetApp().plater()->canvas3D()->update_instance_printable_state_for_objects(object_idxs); } void ObjectList::split_instances() @@ -3631,7 +3408,7 @@ void ObjectList::rename_item() // The icon can't be edited so get its old value and reuse it. wxVariant valueOld; - m_objects_model->GetValue(valueOld, item, colName); + m_objects_model->GetValue(valueOld, item, 0); DataViewBitmapText bmpText; bmpText << valueOld; @@ -3641,7 +3418,7 @@ void ObjectList::rename_item() wxVariant value; value << bmpText; - m_objects_model->SetValue(value, item, colName); + m_objects_model->SetValue(value, item, 0); m_objects_model->ItemChanged(item); update_name_in_model(item); @@ -3682,10 +3459,9 @@ void ObjectList::msw_rescale() // update min size !!! A width of control shouldn't be a wxDefaultCoord SetMinSize(wxSize(1, 15 * em)); - GetColumn(colName)->SetWidth(19 * em); - GetColumn(colPrint)->SetWidth( 2 * em); - GetColumn(colExtruder)->SetWidth( 8 * em); - GetColumn(colEditing)->SetWidth( 2 * em); + GetColumn(0)->SetWidth(19 * em); + GetColumn(1)->SetWidth( 8 * em); + GetColumn(2)->SetWidth( 2 * em); // rescale all icons, used by ObjectList msw_rescale_icons(); @@ -3698,8 +3474,7 @@ void ObjectList::msw_rescale() &m_menu_part, &m_menu_sla_object, &m_menu_instance, - &m_menu_layer, - &m_menu_default}) + &m_menu_layer }) msw_rescale_menu(menu); Layout(); @@ -3707,39 +3482,24 @@ void ObjectList::msw_rescale() void ObjectList::ItemValueChanged(wxDataViewEvent &event) { - if (event.GetColumn() == colName) + if (event.GetColumn() == 0) update_name_in_model(event.GetItem()); - else if (event.GetColumn() == colExtruder) + else if (event.GetColumn() == 1) update_extruder_in_config(event.GetItem()); } -#ifdef __WXMSW__ -// Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected. -// Here the last active column is forgotten, so when leaving the editing mode, the next mouse click will not enter the editing mode of the newly selected column. -void ObjectList::OnEditingStarted(wxDataViewEvent &event) -{ - m_last_selected_column = -1; -} -#endif //__WXMSW__ - void ObjectList::OnEditingDone(wxDataViewEvent &event) { - if (event.GetColumn() != colName) + if (event.GetColumn() != 0) return; - const auto renderer = dynamic_cast(GetColumn(colName)->GetRenderer()); + const auto renderer = dynamic_cast(GetColumn(0)->GetRenderer()); if (renderer->WasCanceled()) wxTheApp->CallAfter([this]{ show_error(this, _(L("The supplied name is not valid;")) + "\n" + _(L("the following characters are not allowed:")) + " <>:/\\|?*\""); }); - -#ifdef __WXMSW__ - // Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected. - // Here the last active column is forgotten, so when leaving the editing mode, the next mouse click will not enter the editing mode of the newly selected column. - m_last_selected_column = -1; -#endif //__WXMSW__ } void ObjectList::show_multi_selection_menu() @@ -3815,7 +3575,7 @@ void ObjectList::set_extruder_for_selected_items(const int extruder) const /* We can change extruder for Object/Volume only. * So, if Instance is selected, get its Object item and change it */ - m_objects_model->SetValue(extruder_str, type & itInstance ? m_objects_model->GetTopParent(item) : item, colExtruder); + m_objects_model->SetValue(extruder_str, type & itInstance ? m_objects_model->GetTopParent(item) : item, 1); const int obj_idx = type & itObject ? m_objects_model->GetIdByItem(item) : m_objects_model->GetIdByItem(m_objects_model->GetTopParent(item)); @@ -3838,69 +3598,18 @@ void ObjectList::update_after_undo_redo() m_objects_model->DeleteAll(); size_t obj_idx = 0; - std::vector obj_idxs; - obj_idxs.reserve(m_objects->size()); while (obj_idx < m_objects->size()) { add_object_to_list(obj_idx, false); - obj_idxs.push_back(obj_idx); ++obj_idx; } +#ifndef __WXOSX__ +// selection_changed(); +#endif /* __WXOSX__ */ + update_selections(); m_prevent_canvas_selection_update = false; - - // update printable states on canvas - wxGetApp().plater()->canvas3D()->update_instance_printable_state_for_objects(obj_idxs); - // update scene - wxGetApp().plater()->update(); -} - -void ObjectList::update_printable_state(int obj_idx, int instance_idx) -{ - ModelObject* object = (*m_objects)[obj_idx]; - - const PrintIndicator printable = object->instances[instance_idx]->printable ? piPrintable : piUnprintable; - if (object->instances.size() == 1) - instance_idx = -1; - - m_objects_model->SetPrintableState(printable, obj_idx, instance_idx); -} - -void ObjectList::toggle_printable_state(wxDataViewItem item) -{ - const ItemType type = m_objects_model->GetItemType(item); - if (!(type&(itObject|itInstance/*|itVolume*/))) - return; - - if (type & itObject) - { - const int obj_idx = m_objects_model->GetObjectIdByItem(item); - ModelObject* object = (*m_objects)[obj_idx]; - - // get object's printable and change it - const bool printable = !m_objects_model->IsPrintable(item); - - const wxString snapshot_text = wxString::Format("%s %s", - printable ? _(L("Set Printable")) : _(L("Set Unprintable")), - object->name); - take_snapshot(snapshot_text); - - // set printable value for all instances in object - for (auto inst : object->instances) - inst->printable = printable; - - // update printable state on canvas - wxGetApp().plater()->canvas3D()->update_instance_printable_state_for_object((size_t)obj_idx); - - // update printable state in ObjectList - m_objects_model->SetObjectPrintableState(printable ? piPrintable : piUnprintable , item); - } - else - wxGetApp().plater()->canvas3D()->get_selection().toggle_instance_printable_state(); - - // update scene - wxGetApp().plater()->update(); } ModelObject* ObjectList::object(const int obj_idx) const @@ -3912,4 +3621,4 @@ ModelObject* ObjectList::object(const int obj_idx) const } } //namespace GUI -} //namespace Slic3r +} //namespace Slic3r \ No newline at end of file diff --git a/src/slic3r/GUI/GUI_ObjectList.hpp b/src/slic3r/GUI/GUI_ObjectList.hpp index 4dd618a90b2..39558d1c546 100644 --- a/src/slic3r/GUI/GUI_ObjectList.hpp +++ b/src/slic3r/GUI/GUI_ObjectList.hpp @@ -132,7 +132,6 @@ class ObjectList : public wxDataViewCtrl MenuWithSeparators m_menu_sla_object; MenuWithSeparators m_menu_instance; MenuWithSeparators m_menu_layer; - MenuWithSeparators m_menu_default; wxMenuItem* m_menu_item_settings { nullptr }; wxMenuItem* m_menu_item_split_instances { nullptr }; @@ -158,10 +157,6 @@ class ObjectList : public wxDataViewCtrl int m_selected_row = 0; wxDataViewItem m_last_selected_item {nullptr}; -#ifdef __WXMSW__ - // Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected. - int m_last_selected_column = -1; -#endif /* __MSW__ */ #if 0 SettingsBundle m_freq_settings_fff; @@ -183,15 +178,15 @@ class ObjectList : public wxDataViewCtrl void create_objects_ctrl(); void create_popup_menus(); - wxDataViewColumn* create_objects_list_extruder_column(size_t extruders_count); - void update_objects_list_extruder_column(size_t extruders_count); + wxDataViewColumn* create_objects_list_extruder_column(int extruders_count); + void update_objects_list_extruder_column(int extruders_count); // show/hide "Extruder" column for Objects List void set_extruder_column_hidden(const bool hide) const; // update extruder in current config void update_extruder_in_config(const wxDataViewItem& item); // update changed name in the object model void update_name_in_model(const wxDataViewItem& item) const; - void update_extruder_values_for_items(const size_t max_extruder); + void update_extruder_values_for_items(const int max_extruder); void init_icons(); void msw_rescale_icons(); @@ -209,7 +204,7 @@ class ObjectList : public wxDataViewCtrl void set_tooltip_for_item(const wxPoint& pt); void selection_changed(); - void show_context_menu(const bool evt_context_menu); + void show_context_menu(); #ifndef __WXOSX__ void key_event(wxKeyEvent& event); #endif /* __WXOSX__ */ @@ -230,7 +225,6 @@ class ObjectList : public wxDataViewCtrl wxMenuItem* append_menu_item_settings(wxMenu* menu); wxMenuItem* append_menu_item_change_type(wxMenu* menu); wxMenuItem* append_menu_item_instance_to_object(wxMenu* menu, wxWindow* parent); - wxMenuItem* append_menu_item_printable(wxMenu* menu, wxWindow* parent); void append_menu_items_osx(wxMenu* menu); wxMenuItem* append_menu_item_fix_through_netfabb(wxMenu* menu); void append_menu_item_export_stl(wxMenu* menu) const ; @@ -241,16 +235,14 @@ class ObjectList : public wxDataViewCtrl void create_sla_object_popupmenu(wxMenu*menu); void create_part_popupmenu(wxMenu*menu); void create_instance_popupmenu(wxMenu*menu); - void create_default_popupmenu(wxMenu *menu); wxMenu* create_settings_popupmenu(wxMenu *parent_menu); - void create_freq_settings_popupmenu(wxMenu *parent_menu, const bool is_object_settings = true); + void create_freq_settings_popupmenu(wxMenu *parent_menu); void update_opt_keys(t_config_option_keys& t_optopt_keys, const bool is_object); void load_subobject(ModelVolumeType type); void load_part(ModelObject* model_object, std::vector> &volumes_info, ModelVolumeType type); void load_generic_subobject(const std::string& type_name, const ModelVolumeType type); - void load_shape_object(const std::string &type_name); void del_object(const int obj_idx); void del_subobject_item(wxDataViewItem& item); void del_settings_from_config(const wxDataViewItem& parent_item); @@ -356,16 +348,12 @@ class ObjectList : public wxDataViewCtrl void msw_rescale(); void update_after_undo_redo(); - //update printable state for item from objects model - void update_printable_state(int obj_idx, int instance_idx); - void toggle_printable_state(wxDataViewItem item); private: #ifdef __WXOSX__ // void OnChar(wxKeyEvent& event); #endif /* __WXOSX__ */ void OnContextMenu(wxDataViewEvent &event); - void list_manipulation(bool evt_context_menu = false); void OnBeginDrag(wxDataViewEvent &event); void OnDropPossible(wxDataViewEvent &event); @@ -373,10 +361,6 @@ class ObjectList : public wxDataViewCtrl bool can_drop(const wxDataViewItem& item) const ; void ItemValueChanged(wxDataViewEvent &event); -#ifdef __WXMSW__ - // Workaround for entering the column editing mode on Windows. Simulate keyboard enter when another column of the active line is selected. - void OnEditingStarted(wxDataViewEvent &event); -#endif /* __WXMSW__ */ void OnEditingDone(wxDataViewEvent &event); void show_multi_selection_menu(); diff --git a/src/slic3r/GUI/GUI_ObjectManipulation.cpp b/src/slic3r/GUI/GUI_ObjectManipulation.cpp index 2295ac0b6ea..a4aa3c6d85c 100644 --- a/src/slic3r/GUI/GUI_ObjectManipulation.cpp +++ b/src/slic3r/GUI/GUI_ObjectManipulation.cpp @@ -104,6 +104,8 @@ void msw_rescale_word_local_combo(wxBitmapComboBox* combo) combo->Append(_(L("World coordinates"))); combo->Append(_(L("Local coordinates"))); +// combo->SetSelection(0); +// combo->SetValue(combo->GetString(0)); wxBitmap empty_bmp(1, combo->GetFont().GetPixelSize().y + 2); empty_bmp.SetWidth(0); @@ -139,10 +141,20 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) : ConfigOptionDef def; + // Objects(sub-objects) name +// def.label = L("Name"); +// def.gui_type = "legend"; +// def.tooltip = L("Object name"); +// def.width = 21 * wxGetApp().em_unit(); +// def.default_value = new ConfigOptionString{ " " }; +// m_og->append_single_option_line(Option(def, "object_name")); + Line line = Line{ "Name", "Object name" }; auto manifold_warning_icon = [this](wxWindow* parent) { m_fix_throught_netfab_bitmap = new wxStaticBitmap(parent, wxID_ANY, wxNullBitmap); + auto sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(m_fix_throught_netfab_bitmap); if (is_windows10()) m_fix_throught_netfab_bitmap->Bind(wxEVT_CONTEXT_MENU, [this](wxCommandEvent &e) @@ -155,17 +167,17 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) : update_warning_icon_state(wxGetApp().obj_list()->get_mesh_errors_list()); }); - return m_fix_throught_netfab_bitmap; + return sizer; }; - line.near_label_widget = manifold_warning_icon; + line.append_widget(manifold_warning_icon); def.label = ""; def.gui_type = "legend"; def.tooltip = L("Object name"); #ifdef __APPLE__ - def.width = 20; + def.width = 19; #else - def.width = 22; + def.width = 21; #endif def.set_default_value(new ConfigOptionString{ " " }); line.append_option(Option(def, "object_name")); @@ -198,7 +210,6 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) : wxSize btn_size(em_unit(parent) * mirror_btn_width, em_unit(parent) * mirror_btn_width); auto btn = new ScalableButton(parent, wxID_ANY, "mirroring_off", wxEmptyString, btn_size, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER | wxTRANSPARENT_WINDOW); btn->SetToolTip(wxString::Format(_(L("Toggle %c axis mirroring")), (int)label)); - btn->SetBitmapDisabled_(m_mirror_bitmap_hidden); m_mirror_buttons[axis_idx].first = btn; m_mirror_buttons[axis_idx].second = mbShown; @@ -275,7 +286,6 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) : auto sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(btn, wxBU_EXACTFIT); btn->Bind(wxEVT_BUTTON, [this](wxCommandEvent &e) { - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Reset scale"))); change_scale_value(0, 100.); change_scale_value(1, 100.); change_scale_value(2, 100.); @@ -313,7 +323,7 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) : selection.synchronize_unselected_instances(Selection::SYNC_ROTATION_GENERAL); selection.synchronize_unselected_volumes(); // Copy rotation values from GLVolumes into Model (ModelInstance / ModelVolume), trigger background processing. - canvas->do_rotate(L("Reset Rotation")); + canvas->do_rotate(L("Set Rotation")); UpdateAndShow(true); }); @@ -340,7 +350,6 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) : const Geometry::Transformation& instance_trafo = volume->get_instance_transformation(); Vec3d diff = m_cache.position - instance_trafo.get_matrix(true).inverse() * Vec3d(0., 0., get_volume_min_z(volume)); - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Drop to bed"))); change_position_value(0, diff.x()); change_position_value(1, diff.y()); change_position_value(2, diff.z()); @@ -380,19 +389,10 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) : // call back for a rescale of button "Set uniform scale" m_og->rescale_near_label_widget = [this](wxWindow* win) { - // rescale lock icon auto *ctrl = dynamic_cast(win); - if (ctrl != nullptr) { - ctrl->msw_rescale(); + if (ctrl == nullptr) return; - } - - if (win == m_fix_throught_netfab_bitmap) - return; - - // rescale "place" of the empty icon (to correct layout of the "Size" and "Scale") - if (dynamic_cast(win) != nullptr) - win->SetMinSize(create_scaled_bitmap(m_parent, "one_layer_lock_on.png").GetSize()); + ctrl->msw_rescale(); }; } @@ -548,7 +548,7 @@ void ObjectManipulation::update_if_dirty() if (selection.requires_uniform_scale()) { m_lock_bnt->SetLock(true); - m_lock_bnt->SetToolTip(_(L("You cannot use non-uniform scaling mode for multiple objects/parts selection"))); + m_lock_bnt->SetToolTip(_(L("You cann't use non-uniform scaling mode for multiple objects/parts selection"))); m_lock_bnt->disable(); } else { @@ -611,14 +611,6 @@ void ObjectManipulation::update_reset_buttons_visibility() m_reset_rotation_button->Show(show_rotation); m_reset_scale_button->Show(show_scale); m_drop_to_bed_button->Show(show_drop_to_bed); - - // Because of CallAfter we need to layout sidebar after Show/hide of reset buttons one more time - Sidebar& panel = wxGetApp().sidebar(); - if (!panel.IsFrozen()) { - panel.Freeze(); - panel.Layout(); - panel.Thaw(); - } }); } @@ -654,13 +646,13 @@ void ObjectManipulation::update_mirror_buttons_visibility() wxGetApp().CallAfter([this, new_states]{ for (int i=0; i<3; ++i) { if (new_states[i] != m_mirror_buttons[i].second) { - const ScalableBitmap* bmp = nullptr; + const wxBitmap* bmp; switch (new_states[i]) { - case mbHidden : bmp = &m_mirror_bitmap_hidden; m_mirror_buttons[i].first->Enable(false); break; - case mbShown : bmp = &m_mirror_bitmap_off; m_mirror_buttons[i].first->Enable(true); break; - case mbActive : bmp = &m_mirror_bitmap_on; m_mirror_buttons[i].first->Enable(true); break; + case mbHidden : bmp = &m_mirror_bitmap_hidden.bmp(); m_mirror_buttons[i].first->Enable(false); break; + case mbShown : bmp = &m_mirror_bitmap_off.bmp(); m_mirror_buttons[i].first->Enable(true); break; + case mbActive : bmp = &m_mirror_bitmap_on.bmp(); m_mirror_buttons[i].first->Enable(true); break; } - m_mirror_buttons[i].first->SetBitmap_(*bmp); + m_mirror_buttons[i].first->SetBitmap(*bmp); m_mirror_buttons[i].second = new_states[i]; } } @@ -690,7 +682,6 @@ void ObjectManipulation::emulate_kill_focus() void ObjectManipulation::update_warning_icon_state(const wxString& tooltip) { m_fix_throught_netfab_bitmap->SetBitmap(tooltip.IsEmpty() ? wxNullBitmap : m_manifold_warning_bmp.bmp()); - m_fix_throught_netfab_bitmap->SetMinSize(tooltip.IsEmpty() ? wxSize(0,0) : m_manifold_warning_bmp.bmp().GetSize()); m_fix_throught_netfab_bitmap->SetToolTip(tooltip); } @@ -925,10 +916,7 @@ void ObjectManipulation::msw_rescale() { msw_rescale_word_local_combo(m_word_local_combo); m_manifold_warning_bmp.msw_rescale(); - - const wxString& tooltip = m_fix_throught_netfab_bitmap->GetToolTipText(); - m_fix_throught_netfab_bitmap->SetBitmap(tooltip.IsEmpty() ? wxNullBitmap : m_manifold_warning_bmp.bmp()); - m_fix_throught_netfab_bitmap->SetMinSize(tooltip.IsEmpty() ? wxSize(0, 0) : m_manifold_warning_bmp.bmp().GetSize()); + m_fix_throught_netfab_bitmap->SetBitmap(m_manifold_warning_bmp.bmp()); m_mirror_bitmap_on.msw_rescale(); m_mirror_bitmap_off.msw_rescale(); @@ -937,9 +925,6 @@ void ObjectManipulation::msw_rescale() m_reset_rotation_button->msw_rescale(); m_drop_to_bed_button->msw_rescale(); - for (int id = 0; id < 3; ++id) - m_mirror_buttons[id].first->msw_rescale(); - get_og()->msw_rescale(); } diff --git a/src/slic3r/GUI/GUI_ObjectSettings.cpp b/src/slic3r/GUI/GUI_ObjectSettings.cpp index 58daec8b7aa..19a0e785ce3 100644 --- a/src/slic3r/GUI/GUI_ObjectSettings.cpp +++ b/src/slic3r/GUI/GUI_ObjectSettings.cpp @@ -9,7 +9,6 @@ #include #include "I18N.hpp" -#include "ConfigManipulation.hpp" #include @@ -106,12 +105,6 @@ bool ObjectSettings::update_settings_list() update_settings_list(); m_parent->Layout(); }); - - /* Check overriden options list after deleting. - * Some options couldn't be deleted because of another one. - * Like, we couldn't delete fill pattern, if fill density is set to 100% - */ - update_config_values(config); }); return btn; }; @@ -122,10 +115,9 @@ bool ObjectSettings::update_settings_list() auto optgroup = std::make_shared(m_og->ctrl_parent(), _(cat.first), config, false, extra_column); optgroup->label_width = 15; - optgroup->sidetext_width = 5; + optgroup->sidetext_width = 5.5; - optgroup->m_on_change = [this, config](const t_config_option_key& opt_id, const boost::any& value) { - this->update_config_values(config); + optgroup->m_on_change = [](const t_config_option_key& opt_id, const boost::any& value) { wxGetApp().obj_list()->changed_object(); }; // call back for rescaling of the extracolumn control @@ -160,10 +152,8 @@ bool ObjectSettings::update_settings_list() m_og_settings.push_back(optgroup); } - if (!categories.empty()) { + if (!categories.empty()) objects_model->UpdateSettingsDigest(item, categories); - update_config_values(config); - } } else { @@ -174,95 +164,6 @@ bool ObjectSettings::update_settings_list() return true; } -bool ObjectSettings::add_missed_options(DynamicPrintConfig* config_to, const DynamicPrintConfig& config_from) -{ - bool is_added = false; - if (wxGetApp().plater()->printer_technology() == ptFFF) - { - if (config_to->has("fill_density") && !config_to->has("fill_pattern")) - { - if (config_from.option("fill_density")->value == 100) { - config_to->set_key_value("fill_pattern", config_from.option("fill_pattern")->clone()); - is_added = true; - } - } - } - - return is_added; -} - -void ObjectSettings::update_config_values(DynamicPrintConfig* config) -{ - const auto objects_model = wxGetApp().obj_list()->GetModel(); - const auto item = wxGetApp().obj_list()->GetSelection(); - const auto printer_technology = wxGetApp().plater()->printer_technology(); - const bool is_object_settings = objects_model->GetItemType(objects_model->GetParent(item)) == itObject; - - if (!item || !objects_model->IsSettingsItem(item) || !config) - return; - - // update config values according to configuration hierarchy - DynamicPrintConfig main_config = printer_technology == ptFFF ? - wxGetApp().preset_bundle->prints.get_edited_preset().config : - wxGetApp().preset_bundle->sla_prints.get_edited_preset().config; - - auto load_config = [this, config, &main_config]() - { - /* Additional check for overrided options. - * There is a case, when some options should to be added, - * to avoid check loop in the next configuration update - */ - bool is_added = add_missed_options(config, main_config); - - // load checked values from main_config to config - config->apply_only(main_config, config->keys(), true); - // Initialize UI components with the config values. - for (auto og : m_og_settings) - og->reload_config(); - // next config check - update_config_values(config); - - if (is_added) { - wxTheApp->CallAfter([this]() { - wxWindowUpdateLocker noUpdates(m_parent); - update_settings_list(); - m_parent->Layout(); - }); - } - }; - - auto get_field = [this](const t_config_option_key & opt_key, int opt_index) - { - Field* field = nullptr; - for (auto og : m_og_settings) { - field = og->get_fieldc(opt_key, opt_index); - if (field != nullptr) - return field; - } - return field; - }; - - ConfigManipulation config_manipulation(load_config, get_field, nullptr, config); - - if (!is_object_settings) - { - const int obj_idx = objects_model->GetObjectIdByItem(item); - assert(obj_idx >= 0); - DynamicPrintConfig* obj_config = &wxGetApp().model().objects[obj_idx]->config; - - main_config.apply(*obj_config, true); - printer_technology == ptFFF ? config_manipulation.update_print_fff_config(&main_config) : - config_manipulation.update_print_sla_config(&main_config) ; - } - - main_config.apply(*config, true); - printer_technology == ptFFF ? config_manipulation.update_print_fff_config(&main_config) : - config_manipulation.update_print_sla_config(&main_config) ; - - printer_technology == ptFFF ? config_manipulation.toggle_print_fff_options(&main_config) : - config_manipulation.toggle_print_sla_options(&main_config) ; -} - void ObjectSettings::UpdateAndShow(const bool show) { OG_Settings::UpdateAndShow(show ? update_settings_list() : false); @@ -278,4 +179,4 @@ void ObjectSettings::msw_rescale() } } //namespace GUI -} //namespace Slic3r +} //namespace Slic3r \ No newline at end of file diff --git a/src/slic3r/GUI/GUI_ObjectSettings.hpp b/src/slic3r/GUI/GUI_ObjectSettings.hpp index ff187eddcf8..2a0c19c5c30 100644 --- a/src/slic3r/GUI/GUI_ObjectSettings.hpp +++ b/src/slic3r/GUI/GUI_ObjectSettings.hpp @@ -9,7 +9,6 @@ class wxBoxSizer; namespace Slic3r { -class DynamicPrintConfig; namespace GUI { class ConfigOptionsGroup; @@ -29,7 +28,6 @@ class OG_Settings virtual wxSizer* get_sizer(); ConfigOptionsGroup* get_og() { return m_og.get(); } - wxWindow* parent() const {return m_parent; } }; @@ -48,12 +46,6 @@ class ObjectSettings : public OG_Settings ~ObjectSettings() {} bool update_settings_list(); - /* Additional check for override options: Add options, if its needed. - * Example: if Infill is set to 100%, and Fill Pattern is missed in config_to, - * we should add fill_pattern to avoid endless loop in update - */ - bool add_missed_options(DynamicPrintConfig *config_to, const DynamicPrintConfig &config_from); - void update_config_values(DynamicPrintConfig*config); void UpdateAndShow(const bool show) override; void msw_rescale(); }; diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp index 7c761ed5fe9..36354ab240c 100644 --- a/src/slic3r/GUI/GUI_Preview.cpp +++ b/src/slic3r/GUI/GUI_Preview.cpp @@ -176,7 +176,6 @@ Preview::Preview( , m_checkbox_retractions(nullptr) , m_checkbox_unretractions(nullptr) , m_checkbox_shells(nullptr) - , m_checkbox_legend(nullptr) , m_config(config) , m_process(process) , m_gcode_preview_data(gcode_preview_data) @@ -252,8 +251,6 @@ bool Preview::init(wxWindow* parent, Bed3D& bed, Camera& camera, GLToolbar& view m_checkbox_retractions = new wxCheckBox(this, wxID_ANY, _(L("Retractions"))); m_checkbox_unretractions = new wxCheckBox(this, wxID_ANY, _(L("Unretractions"))); m_checkbox_shells = new wxCheckBox(this, wxID_ANY, _(L("Shells"))); - m_checkbox_legend = new wxCheckBox(this, wxID_ANY, _(L("Legend"))); - m_checkbox_legend->SetValue(true); wxBoxSizer* top_sizer = new wxBoxSizer(wxHORIZONTAL); top_sizer->Add(m_canvas_widget, 1, wxALL | wxEXPAND, 0); @@ -273,8 +270,6 @@ bool Preview::init(wxWindow* parent, Bed3D& bed, Camera& camera, GLToolbar& view bottom_sizer->Add(m_checkbox_unretractions, 0, wxEXPAND | wxALL, 5); bottom_sizer->AddSpacer(10); bottom_sizer->Add(m_checkbox_shells, 0, wxEXPAND | wxALL, 5); - bottom_sizer->AddSpacer(20); - bottom_sizer->Add(m_checkbox_legend, 0, wxEXPAND | wxALL, 5); wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL); main_sizer->Add(top_sizer, 1, wxALL | wxEXPAND, 0); @@ -447,7 +442,6 @@ void Preview::bind_event_handlers() m_checkbox_retractions->Bind(wxEVT_CHECKBOX, &Preview::on_checkbox_retractions, this); m_checkbox_unretractions->Bind(wxEVT_CHECKBOX, &Preview::on_checkbox_unretractions, this); m_checkbox_shells->Bind(wxEVT_CHECKBOX, &Preview::on_checkbox_shells, this); - m_checkbox_legend->Bind(wxEVT_CHECKBOX, &Preview::on_checkbox_legend, this); } void Preview::unbind_event_handlers() @@ -459,7 +453,6 @@ void Preview::unbind_event_handlers() m_checkbox_retractions->Unbind(wxEVT_CHECKBOX, &Preview::on_checkbox_retractions, this); m_checkbox_unretractions->Unbind(wxEVT_CHECKBOX, &Preview::on_checkbox_unretractions, this); m_checkbox_shells->Unbind(wxEVT_CHECKBOX, &Preview::on_checkbox_shells, this); - m_checkbox_legend->Unbind(wxEVT_CHECKBOX, &Preview::on_checkbox_legend, this); } void Preview::show_hide_ui_elements(const std::string& what) @@ -471,7 +464,6 @@ void Preview::show_hide_ui_elements(const std::string& what) m_checkbox_retractions->Enable(enable); m_checkbox_unretractions->Enable(enable); m_checkbox_shells->Enable(enable); - m_checkbox_legend->Enable(enable); enable = (what != "none"); m_label_view_type->Enable(enable); @@ -484,7 +476,6 @@ void Preview::show_hide_ui_elements(const std::string& what) m_checkbox_retractions->Show(visible); m_checkbox_unretractions->Show(visible); m_checkbox_shells->Show(visible); - m_checkbox_legend->Show(visible); m_label_view_type->Show(visible); m_choice_view_type->Show(visible); } @@ -551,12 +542,6 @@ void Preview::on_checkbox_shells(wxCommandEvent& evt) refresh_print(); } -void Preview::on_checkbox_legend(wxCommandEvent& evt) -{ - m_canvas->enable_legend_texture(m_checkbox_legend->IsChecked()); - m_canvas_widget->Refresh(); -} - void Preview::update_view_type() { const DynamicPrintConfig& config = wxGetApp().preset_bundle->project_config; @@ -634,16 +619,15 @@ void Preview::update_double_slider(const std::vector& layers_z, bool kee bool force_sliders_full_range = was_empty; if (!keep_z_range) { - bool span_changed = layers_z.empty() || std::abs(layers_z.back() - m_slider->GetMaxValueD()) > DoubleSlider::epsilon()/*1e-6*/; + bool span_changed = layers_z.empty() || std::abs(layers_z.back() - m_slider->GetMaxValueD()) > 1e-6; force_sliders_full_range |= span_changed; } bool snap_to_min = force_sliders_full_range || m_slider->is_lower_at_min(); bool snap_to_max = force_sliders_full_range || m_slider->is_higher_at_max(); - std::vector &ticks_from_config = (wxGetApp().preset_bundle->project_config.option("colorprint_heights"))->values; - check_slider_values(ticks_from_config, layers_z); - - m_slider->SetSliderValues(layers_z); + std::vector> values; + fill_slider_values(values, layers_z); + m_slider->SetSliderValues(values); assert(m_slider->GetMinValue() == 0); m_slider->SetMaxValue(layers_z.empty() ? 0 : layers_z.size() - 1); @@ -651,18 +635,21 @@ void Preview::update_double_slider(const std::vector& layers_z, bool kee int idx_high = m_slider->GetMaxValue(); if (! layers_z.empty()) { if (! snap_to_min) { - int idx_new = find_close_layer_idx(layers_z, z_low, DoubleSlider::epsilon()/*1e-6*/); + int idx_new = find_close_layer_idx(layers_z, z_low, 1e-6); if (idx_new != -1) idx_low = idx_new; } if (! snap_to_max) { - int idx_new = find_close_layer_idx(layers_z, z_high, DoubleSlider::epsilon()/*1e-6*/); + int idx_new = find_close_layer_idx(layers_z, z_high, 1e-6); if (idx_new != -1) idx_high = idx_new; } } m_slider->SetSelectionSpan(idx_low, idx_high); + const auto& config = wxGetApp().preset_bundle->project_config; + const std::vector &ticks_from_config = (config.option("colorprint_heights"))->values; + m_slider->SetTicksValues(ticks_from_config); bool color_print_enable = (wxGetApp().plater()->printer_technology() == ptFFF); @@ -674,19 +661,22 @@ void Preview::update_double_slider(const std::vector& layers_z, bool kee m_slider->EnableTickManipulation(color_print_enable); } -void Preview::check_slider_values(std::vector& ticks_from_config, +void Preview::fill_slider_values(std::vector> &values, const std::vector &layers_z) { + values.clear(); + for (int i = 0; i < layers_z.size(); ++i) + { + values.push_back(std::pair(i + 1, layers_z[i])); + } + // All ticks that would end up outside the slider range should be erased. // TODO: this should be placed into more appropriate part of code, // this function is e.g. not called when the last object is deleted + std::vector &ticks_from_config = (wxGetApp().preset_bundle->project_config.option("colorprint_heights"))->values; unsigned int old_size = ticks_from_config.size(); ticks_from_config.erase(std::remove_if(ticks_from_config.begin(), ticks_from_config.end(), - [layers_z](double val) - { - auto it = std::lower_bound(layers_z.begin(), layers_z.end(), val - DoubleSlider::epsilon()); - return it == layers_z.end(); - }), + [values](double val) { return values.back().second < val; }), ticks_from_config.end()); if (ticks_from_config.size() != old_size) m_schedule_background_process(); @@ -712,11 +702,6 @@ void Preview::update_double_slider_from_canvas(wxKeyEvent& event) m_slider->SetHigherValue(new_pos); if (event.ShiftDown() || m_slider->is_one_layer()) m_slider->SetLowerValue(m_slider->GetHigherValue()); } - else if (key == 'L') { - m_checkbox_legend->SetValue(!m_checkbox_legend->GetValue()); - auto evt = wxCommandEvent(); - on_checkbox_legend(evt); - } else if (key == 'S') m_slider->ChangeOneLayerLock(); else diff --git a/src/slic3r/GUI/GUI_Preview.hpp b/src/slic3r/GUI/GUI_Preview.hpp index 08d5991b4e3..e86d0e4306c 100644 --- a/src/slic3r/GUI/GUI_Preview.hpp +++ b/src/slic3r/GUI/GUI_Preview.hpp @@ -80,7 +80,6 @@ class Preview : public wxPanel wxCheckBox* m_checkbox_retractions; wxCheckBox* m_checkbox_unretractions; wxCheckBox* m_checkbox_shells; - wxCheckBox* m_checkbox_legend; DynamicPrintConfig* m_config; BackgroundSlicingProcess* m_process; @@ -130,8 +129,6 @@ class Preview : public wxPanel void update_view_type(); - bool is_loaded() const { return m_loaded; } - private: bool init(wxWindow* parent, Bed3D& bed, Camera& camera, GLToolbar& view_toolbar, Model* model); @@ -150,12 +147,11 @@ class Preview : public wxPanel void on_checkbox_retractions(wxCommandEvent& evt); void on_checkbox_unretractions(wxCommandEvent& evt); void on_checkbox_shells(wxCommandEvent& evt); - void on_checkbox_legend(wxCommandEvent& evt); // Create/Update/Reset double slider on 3dPreview void create_double_slider(); void update_double_slider(const std::vector& layers_z, bool keep_z_range = false); - void check_slider_values(std::vector &ticks_from_config, + void fill_slider_values(std::vector> &values, const std::vector &layers_z); void reset_double_slider(); // update DoubleSlider after keyDown in canvas diff --git a/src/slic3r/GUI/GUI_Utils.cpp b/src/slic3r/GUI/GUI_Utils.cpp index d5753f2ccf5..74e70c5546b 100644 --- a/src/slic3r/GUI/GUI_Utils.cpp +++ b/src/slic3r/GUI/GUI_Utils.cpp @@ -62,7 +62,7 @@ template typename F::FN winapi_get_function(const wchar_t *dll, const c static HINSTANCE dll_handle = LoadLibraryExW(dll, nullptr, 0); if (dll_handle == nullptr) { return nullptr; } - return (typename F::FN)GetProcAddress(dll_handle, fn_name); + return (F::FN)GetProcAddress(dll_handle, fn_name); } #endif diff --git a/src/slic3r/GUI/GUI_Utils.hpp b/src/slic3r/GUI/GUI_Utils.hpp index c47714e464e..a17bbf6d336 100644 --- a/src/slic3r/GUI/GUI_Utils.hpp +++ b/src/slic3r/GUI/GUI_Utils.hpp @@ -64,12 +64,6 @@ template class DPIAware : public P m_prev_scale_factor = m_scale_factor; m_normal_font = get_default_font_for_dpi(dpi); - /* Because of default window font is a primary display font, - * We should set correct font for window before getting em_unit value. - */ -#ifndef __WXOSX__ // Don't call SetFont under OSX to avoid name cutting in ObjectList - this->SetFont(m_normal_font); -#endif // initialize default width_unit according to the width of the one symbol ("m") of the currently active font of this window. m_em_unit = std::max(10, this->GetTextExtent("m").x - 1); @@ -78,8 +72,6 @@ template class DPIAware : public P this->Bind(EVT_DPI_CHANGED, [this](const DpiChangedEvent &evt) { m_scale_factor = (float)evt.dpi / (float)DPI_DEFAULT; - m_new_font_point_size = get_default_font_for_dpi(evt.dpi).GetPointSize(); - if (!m_can_rescale) return; @@ -132,8 +124,6 @@ template class DPIAware : public P float m_prev_scale_factor; bool m_can_rescale{ true }; - int m_new_font_point_size; - // void recalc_font() // { // wxClientDC dc(this); @@ -145,22 +135,14 @@ template class DPIAware : public P // check if new scale is differ from previous bool is_new_scale_factor() const { return fabs(m_scale_factor - m_prev_scale_factor) > 0.001; } - // function for a font scaling of the window - void scale_win_font(wxWindow *window, const int font_point_size) - { - wxFont new_font(window->GetFont()); - new_font.SetPointSize(font_point_size); - window->SetFont(new_font); - } - // recursive function for scaling fonts for all controls in Window - void scale_controls_fonts(wxWindow *window, const int font_point_size) + void scale_controls_fonts(wxWindow *window, const float scale_f) { auto children = window->GetChildren(); for (auto child : children) { - scale_controls_fonts(child, font_point_size); - scale_win_font(child, font_point_size); + scale_controls_fonts(child, scale_f); + child->SetFont(child->GetFont().Scaled(scale_f)); } window->Layout(); @@ -169,18 +151,18 @@ template class DPIAware : public P void rescale(const wxRect &suggested_rect) { this->Freeze(); + const float relative_scale_factor = m_scale_factor / m_prev_scale_factor; // rescale fonts of all controls - scale_controls_fonts(this, m_new_font_point_size); - // rescale current window font - scale_win_font(this, m_new_font_point_size); + scale_controls_fonts(this, relative_scale_factor); + this->SetFont(this->GetFont().Scaled(relative_scale_factor)); - // set normal application font as a current window font - m_normal_font = this->GetFont(); + // rescale normal_font value + m_normal_font = m_normal_font.Scaled(relative_scale_factor); - // update em_unit value for new window font - m_em_unit = std::max(10, this->GetTextExtent("m").x - 1); + // An analog of em_unit value from GUI_App. + m_em_unit = std::max(10, 10 * m_scale_factor); // rescale missed controls sizes and images on_dpi_changed(suggested_rect); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp index cb18bdb1660..a650746468e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp @@ -29,21 +29,19 @@ GLGizmoBase::Grabber::Grabber() color[0] = 1.0f; color[1] = 1.0f; color[2] = 1.0f; - color[3] = 1.0f; } void GLGizmoBase::Grabber::render(bool hover, float size) const { - float render_color[4]; + float render_color[3]; if (hover) { render_color[0] = 1.0f - color[0]; render_color[1] = 1.0f - color[1]; render_color[2] = 1.0f - color[2]; - render_color[3] = color[3]; } else - ::memcpy((void*)render_color, (const void*)color, 4 * sizeof(float)); + ::memcpy((void*)render_color, (const void*)color, 3 * sizeof(float)); render(size, render_color, true); } @@ -65,7 +63,7 @@ void GLGizmoBase::Grabber::render(float size, const float* render_color, bool us if (use_lighting) glsafe(::glEnable(GL_LIGHTING)); - glsafe(::glColor4fv(render_color)); + glsafe(::glColor3fv(render_color)); glsafe(::glPushMatrix()); glsafe(::glTranslated(center(0), center(1), center(2))); @@ -145,11 +143,10 @@ GLGizmoBase::GLGizmoBase(GLCanvas3D& parent, const std::string& icon_filename, u , m_hover_id(-1) , m_dragging(false) , m_imgui(wxGetApp().imgui()) - , m_first_input_window_render(true) { - ::memcpy((void*)m_base_color, (const void*)DEFAULT_BASE_COLOR, 4 * sizeof(float)); - ::memcpy((void*)m_drag_color, (const void*)DEFAULT_DRAG_COLOR, 4 * sizeof(float)); - ::memcpy((void*)m_highlight_color, (const void*)DEFAULT_HIGHLIGHT_COLOR, 4 * sizeof(float)); + ::memcpy((void*)m_base_color, (const void*)DEFAULT_BASE_COLOR, 3 * sizeof(float)); + ::memcpy((void*)m_drag_color, (const void*)DEFAULT_DRAG_COLOR, 3 * sizeof(float)); + ::memcpy((void*)m_highlight_color, (const void*)DEFAULT_HIGHLIGHT_COLOR, 3 * sizeof(float)); } void GLGizmoBase::set_hover_id(int id) @@ -164,7 +161,7 @@ void GLGizmoBase::set_hover_id(int id) void GLGizmoBase::set_highlight_color(const float* color) { if (color != nullptr) - ::memcpy((void*)m_highlight_color, (const void*)color, 4 * sizeof(float)); + ::memcpy((void*)m_highlight_color, (const void*)color, 3 * sizeof(float)); } void GLGizmoBase::enable_grabber(unsigned int id) @@ -213,7 +210,7 @@ void GLGizmoBase::update(const UpdateData& data) on_update(data); } -std::array GLGizmoBase::picking_color_component(unsigned int id) const +std::array GLGizmoBase::picking_color_component(unsigned int id) const { static const float INV_255 = 1.0f / 255.0f; @@ -223,12 +220,9 @@ std::array GLGizmoBase::picking_color_component(unsigned int id) const id -= m_group_id; // color components are encoded to match the calculation of volume_id made into GLCanvas3D::_picking_pass() - return std::array { - float((id >> 0) & 0xff) * INV_255, // red - float((id >> 8) & 0xff) * INV_255, // green - float((id >> 16) & 0xff) * INV_255, // blue - float(picking_checksum_alpha_channel(id & 0xff, (id >> 8) & 0xff, (id >> 16) & 0xff))* INV_255 // checksum for validating against unwanted alpha blending and multi sampling - }; + return std::array { (float)((id >> 0) & 0xff) * INV_255, // red + (float)((id >> 8) & 0xff) * INV_255, // green + (float)((id >> 16) & 0xff) * INV_255 }; // blue } void GLGizmoBase::render_grabbers(const BoundingBoxf3& box) const @@ -253,11 +247,10 @@ void GLGizmoBase::render_grabbers_for_picking(const BoundingBoxf3& box) const { if (m_grabbers[i].enabled) { - std::array color = picking_color_component(i); + std::array color = picking_color_component(i); m_grabbers[i].color[0] = color[0]; m_grabbers[i].color[1] = color[1]; m_grabbers[i].color[2] = color[2]; - m_grabbers[i].color[3] = color[3]; m_grabbers[i].render_for_picking(mean_size); } } @@ -274,32 +267,5 @@ std::string GLGizmoBase::format(float value, unsigned int decimals) const return Slic3r::string_printf("%.*f", decimals, value); } -void GLGizmoBase::render_input_window(float x, float y, float bottom_limit) -{ - on_render_input_window(x, y, bottom_limit); - if (m_first_input_window_render) - { - // for some reason, the imgui dialogs are not shown on screen in the 1st frame where they are rendered, but show up only with the 2nd rendered frame - // so, we forces another frame rendering the first time the imgui window is shown - m_parent.set_as_dirty(); - m_first_input_window_render = false; - } -} - -// Produce an alpha channel checksum for the red green blue components. The alpha channel may then be used to verify, whether the rgb components -// were not interpolated by alpha blending or multi sampling. -unsigned char picking_checksum_alpha_channel(unsigned char red, unsigned char green, unsigned char blue) -{ - // 8 bit hash for the color - unsigned char b = ((((37 * red) + green) & 0x0ff) * 37 + blue) & 0x0ff; - // Increase enthropy by a bit reversal - b = (b & 0xF0) >> 4 | (b & 0x0F) << 4; - b = (b & 0xCC) >> 2 | (b & 0x33) << 2; - b = (b & 0xAA) >> 1 | (b & 0x55) << 1; - // Flip every second bit to increase the enthropy even more. - b ^= 0x55; - return b; -} - } // namespace GUI } // namespace Slic3r diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp index da30427793e..b84442b94da 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp @@ -21,11 +21,11 @@ class ModelObject; namespace GUI { -static const float DEFAULT_BASE_COLOR[4] = { 0.625f, 0.625f, 0.625f, 1.0f }; -static const float DEFAULT_DRAG_COLOR[4] = { 1.0f, 1.0f, 1.0f, 1.0f }; -static const float DEFAULT_HIGHLIGHT_COLOR[4] = { 1.0f, 0.38f, 0.0f, 1.0f }; -static const float AXES_COLOR[][4] = { { 0.75f, 0.0f, 0.0f, 1.0f }, { 0.0f, 0.75f, 0.0f, 1.0f }, { 0.0f, 0.0f, 0.75f, 1.0f } }; -static const float CONSTRAINED_COLOR[4] = { 0.5f, 0.5f, 0.5f, 1.0f }; +static const float DEFAULT_BASE_COLOR[3] = { 0.625f, 0.625f, 0.625f }; +static const float DEFAULT_DRAG_COLOR[3] = { 1.0f, 1.0f, 1.0f }; +static const float DEFAULT_HIGHLIGHT_COLOR[3] = { 1.0f, 0.38f, 0.0f }; +static const float AXES_COLOR[3][3] = { { 0.75f, 0.0f, 0.0f }, { 0.0f, 0.75f, 0.0f }, { 0.0f, 0.0f, 0.75f } }; +static const float CONSTRAINED_COLOR[3] = { 0.5f, 0.5f, 0.5f }; @@ -48,7 +48,7 @@ class GLGizmoBase Vec3d center; Vec3d angles; - float color[4]; + float color[3]; bool enabled; bool dragging; @@ -69,6 +69,7 @@ class GLGizmoBase enum EState { Off, + Hover, On, Num_States }; @@ -93,12 +94,11 @@ class GLGizmoBase unsigned int m_sprite_id; int m_hover_id; bool m_dragging; - float m_base_color[4]; - float m_drag_color[4]; - float m_highlight_color[4]; + float m_base_color[3]; + float m_drag_color[3]; + float m_highlight_color[3]; mutable std::vector m_grabbers; ImGuiWrapper* m_imgui; - bool m_first_input_window_render; public: GLGizmoBase(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id); @@ -144,7 +144,7 @@ class GLGizmoBase void render() const { on_render(); } void render_for_picking() const { on_render_for_picking(); } - void render_input_window(float x, float y, float bottom_limit); + void render_input_window(float x, float y, float bottom_limit) { on_render_input_window(x, y, bottom_limit); } protected: virtual bool on_init() = 0; @@ -166,7 +166,7 @@ class GLGizmoBase // Returns the picking color for the given id, based on the BASE_ID constant // No check is made for clashing with other picking color (i.e. GLVolumes) - std::array picking_color_component(unsigned int id) const; + std::array picking_color_component(unsigned int id) const; void render_grabbers(const BoundingBoxf3& box) const; void render_grabbers(float size) const; void render_grabbers_for_picking(const BoundingBoxf3& box) const; @@ -175,10 +175,6 @@ class GLGizmoBase std::string format(float value, unsigned int decimals) const; }; -// Produce an alpha channel checksum for the red green blue components. The alpha channel may then be used to verify, whether the rgb components -// were not interpolated by alpha blending or multi sampling. -extern unsigned char picking_checksum_alpha_channel(unsigned char red, unsigned char green, unsigned char blue); - } // namespace GUI } // namespace Slic3r diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp index 76a9ed6032d..39399fc0d38 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp @@ -17,7 +17,7 @@ namespace GUI { const double GLGizmoCut::Offset = 10.0; const double GLGizmoCut::Margin = 20.0; -const std::array GLGizmoCut::GrabberColor = { 1.0, 0.5, 0.0, 1.0 }; +const std::array GLGizmoCut::GrabberColor = { 1.0, 0.5, 0.0 }; GLGizmoCut::GLGizmoCut(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id) : GLGizmoBase(parent, icon_filename, sprite_id) @@ -141,7 +141,6 @@ void GLGizmoCut::on_render_input_window(float x, float y, float bottom_limit) m_imgui->set_next_window_pos(x, y, ImGuiCond_Always); m_imgui->set_next_window_bg_alpha(0.5f); - m_imgui->begin(_(L("Cut")), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse); ImGui::PushItemWidth(m_imgui->scaled(5.0f)); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp index 6e5738a422d..5bfeda526ad 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp @@ -11,7 +11,7 @@ class GLGizmoCut : public GLGizmoBase { static const double Offset; static const double Margin; - static const std::array GrabberColor; + static const std::array GrabberColor; mutable double m_cut_z; double m_start_z; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp index 9fae8893acd..5a42cbd31fd 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp @@ -115,7 +115,7 @@ void GLGizmoFlatten::on_render_for_picking() const const_cast(this)->update_planes(); for (int i = 0; i < (int)m_planes.size(); ++i) { - glsafe(::glColor4fv(picking_color_component(i).data())); + glsafe(::glColor3fv(picking_color_component(i).data())); ::glBegin(GL_POLYGON); for (const Vec3d& vertex : m_planes[i].vertices) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.hpp b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.hpp index 9cd2ab6bb1e..c69d6413437 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.hpp @@ -44,12 +44,12 @@ class GLGizmoFlatten : public GLGizmoBase Vec3d get_flattening_normal() const; protected: - virtual bool on_init() override; - virtual std::string on_get_name() const override; - virtual bool on_is_activable() const override; - virtual void on_start_dragging() override; - virtual void on_render() const override; - virtual void on_render_for_picking() const override; + virtual bool on_init(); + virtual std::string on_get_name() const; + virtual bool on_is_activable() const; + virtual void on_start_dragging(); + virtual void on_render() const; + virtual void on_render_for_picking() const; virtual void on_set_state() override; }; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp index 862ffe41af0..11bdcd4f83b 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp @@ -104,15 +104,15 @@ void GLGizmoMove3D::on_render() const // x axis m_grabbers[0].center = Vec3d(box.max(0) + Offset, center(1), center(2)); - ::memcpy((void*)m_grabbers[0].color, (const void*)&AXES_COLOR[0], 4 * sizeof(float)); + ::memcpy((void*)m_grabbers[0].color, (const void*)&AXES_COLOR[0], 3 * sizeof(float)); // y axis m_grabbers[1].center = Vec3d(center(0), box.max(1) + Offset, center(2)); - ::memcpy((void*)m_grabbers[1].color, (const void*)&AXES_COLOR[1], 4 * sizeof(float)); + ::memcpy((void*)m_grabbers[1].color, (const void*)&AXES_COLOR[1], 3 * sizeof(float)); // z axis m_grabbers[2].center = Vec3d(center(0), center(1), box.max(2) + Offset); - ::memcpy((void*)m_grabbers[2].color, (const void*)&AXES_COLOR[2], 4 * sizeof(float)); + ::memcpy((void*)m_grabbers[2].color, (const void*)&AXES_COLOR[2], 3 * sizeof(float)); glsafe(::glLineWidth((m_hover_id != -1) ? 2.0f : 1.5f)); @@ -123,7 +123,7 @@ void GLGizmoMove3D::on_render() const { if (m_grabbers[i].enabled) { - glsafe(::glColor4fv(AXES_COLOR[i])); + glsafe(::glColor3fv(AXES_COLOR[i])); ::glBegin(GL_LINES); ::glVertex3dv(center.data()); ::glVertex3dv(m_grabbers[i].center.data()); @@ -142,7 +142,7 @@ void GLGizmoMove3D::on_render() const else { // draw axis - glsafe(::glColor4fv(AXES_COLOR[m_hover_id])); + glsafe(::glColor3fv(AXES_COLOR[m_hover_id])); ::glBegin(GL_LINES); ::glVertex3dv(center.data()); ::glVertex3dv(m_grabbers[m_hover_id].center.data()); @@ -220,20 +220,19 @@ void GLGizmoMove3D::render_grabber_extension(Axis axis, const BoundingBoxf3& box float mean_size = (float)((box.size()(0) + box.size()(1) + box.size()(2)) / 3.0); double size = m_dragging ? (double)m_grabbers[axis].get_dragging_half_size(mean_size) : (double)m_grabbers[axis].get_half_size(mean_size); - float color[4]; - ::memcpy((void*)color, (const void*)m_grabbers[axis].color, 4 * sizeof(float)); + float color[3]; + ::memcpy((void*)color, (const void*)m_grabbers[axis].color, 3 * sizeof(float)); if (!picking && (m_hover_id != -1)) { color[0] = 1.0f - color[0]; color[1] = 1.0f - color[1]; color[2] = 1.0f - color[2]; - color[3] = color[3]; } if (!picking) glsafe(::glEnable(GL_LIGHTING)); - glsafe(::glColor4fv(color)); + glsafe(::glColor3fv(color)); glsafe(::glPushMatrix()); glsafe(::glTranslated(m_grabbers[axis].center(0), m_grabbers[axis].center(1), m_grabbers[axis].center(2))); if (axis == X) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp index 9a2c72633e5..f481bb5d74e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp @@ -155,7 +155,7 @@ void GLGizmoRotate::on_render() const transform_to_local(selection); glsafe(::glLineWidth((m_hover_id != -1) ? 2.0f : 1.5f)); - glsafe(::glColor4fv((m_hover_id != -1) ? m_drag_color : m_highlight_color)); + glsafe(::glColor3fv((m_hover_id != -1) ? m_drag_color : m_highlight_color)); render_circle(); @@ -166,7 +166,7 @@ void GLGizmoRotate::on_render() const render_reference_radius(); } - glsafe(::glColor4fv(m_highlight_color)); + glsafe(::glColor3fv(m_highlight_color)); if (m_hover_id != -1) render_angle(); @@ -287,14 +287,14 @@ void GLGizmoRotate::render_grabber(const BoundingBoxf3& box) const m_grabbers[0].center = Vec3d(::cos(m_angle) * grabber_radius, ::sin(m_angle) * grabber_radius, 0.0); m_grabbers[0].angles(2) = m_angle; - glsafe(::glColor4fv((m_hover_id != -1) ? m_drag_color : m_highlight_color)); + glsafe(::glColor3fv((m_hover_id != -1) ? m_drag_color : m_highlight_color)); ::glBegin(GL_LINES); ::glVertex3f(0.0f, 0.0f, 0.0f); ::glVertex3dv(m_grabbers[0].center.data()); glsafe(::glEnd()); - ::memcpy((void*)m_grabbers[0].color, (const void*)m_highlight_color, 4 * sizeof(float)); + ::memcpy((void*)m_grabbers[0].color, (const void*)m_highlight_color, 3 * sizeof(float)); render_grabbers(box); } @@ -306,8 +306,8 @@ void GLGizmoRotate::render_grabber_extension(const BoundingBoxf3& box, bool pick float mean_size = (float)((box.size()(0) + box.size()(1) + box.size()(2)) / 3.0); double size = m_dragging ? (double)m_grabbers[0].get_dragging_half_size(mean_size) : (double)m_grabbers[0].get_half_size(mean_size); - float color[4]; - ::memcpy((void*)color, (const void*)m_grabbers[0].color, 4 * sizeof(float)); + float color[3]; + ::memcpy((void*)color, (const void*)m_grabbers[0].color, 3 * sizeof(float)); if (!picking && (m_hover_id != -1)) { color[0] = 1.0f - color[0]; @@ -318,7 +318,7 @@ void GLGizmoRotate::render_grabber_extension(const BoundingBoxf3& box, bool pick if (!picking) glsafe(::glEnable(GL_LIGHTING)); - glsafe(::glColor4fv(color)); + glsafe(::glColor3fv(color)); glsafe(::glPushMatrix()); glsafe(::glTranslated(m_grabbers[0].center(0), m_grabbers[0].center(1), m_grabbers[0].center(2))); glsafe(::glRotated(Geometry::rad2deg(m_angle), 0.0, 0.0, 1.0)); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoRotate.hpp b/src/slic3r/GUI/Gizmos/GLGizmoRotate.hpp index c856e5465c6..8733c9a1188 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoRotate.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoRotate.hpp @@ -87,12 +87,16 @@ class GLGizmoRotate3D : public GLGizmoBase virtual void on_set_state() { for (GLGizmoRotate& g : m_gizmos) + { g.set_state(m_state); + } } virtual void on_set_hover_id() { for (int i = 0; i < 3; ++i) + { m_gizmos[i].set_hover_id((m_hover_id == i) ? 0 : -1); + } } virtual void on_enable_grabber(unsigned int id) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp index a685fb77421..7dc38b8011d 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp @@ -172,20 +172,20 @@ void GLGizmoScale3D::on_render() const // x axis m_grabbers[0].center = m_transform * Vec3d(m_box.min(0), center(1), center(2)) - offset_x; m_grabbers[1].center = m_transform * Vec3d(m_box.max(0), center(1), center(2)) + offset_x; - ::memcpy((void*)m_grabbers[0].color, (ctrl_down && (m_hover_id == 1)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[0], 4 * sizeof(float)); - ::memcpy((void*)m_grabbers[1].color, (ctrl_down && (m_hover_id == 0)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[0], 4 * sizeof(float)); + ::memcpy((void*)m_grabbers[0].color, (ctrl_down && (m_hover_id == 1)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[0], 3 * sizeof(float)); + ::memcpy((void*)m_grabbers[1].color, (ctrl_down && (m_hover_id == 0)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[0], 3 * sizeof(float)); // y axis m_grabbers[2].center = m_transform * Vec3d(center(0), m_box.min(1), center(2)) - offset_y; m_grabbers[3].center = m_transform * Vec3d(center(0), m_box.max(1), center(2)) + offset_y; - ::memcpy((void*)m_grabbers[2].color, (ctrl_down && (m_hover_id == 3)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[1], 4 * sizeof(float)); - ::memcpy((void*)m_grabbers[3].color, (ctrl_down && (m_hover_id == 2)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[1], 4 * sizeof(float)); + ::memcpy((void*)m_grabbers[2].color, (ctrl_down && (m_hover_id == 3)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[1], 3 * sizeof(float)); + ::memcpy((void*)m_grabbers[3].color, (ctrl_down && (m_hover_id == 2)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[1], 3 * sizeof(float)); // z axis m_grabbers[4].center = m_transform * Vec3d(center(0), center(1), m_box.min(2)) - offset_z; m_grabbers[5].center = m_transform * Vec3d(center(0), center(1), m_box.max(2)) + offset_z; - ::memcpy((void*)m_grabbers[4].color, (ctrl_down && (m_hover_id == 5)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[2], 4 * sizeof(float)); - ::memcpy((void*)m_grabbers[5].color, (ctrl_down && (m_hover_id == 4)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[2], 4 * sizeof(float)); + ::memcpy((void*)m_grabbers[4].color, (ctrl_down && (m_hover_id == 5)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[2], 3 * sizeof(float)); + ::memcpy((void*)m_grabbers[5].color, (ctrl_down && (m_hover_id == 4)) ? (const void*)CONSTRAINED_COLOR : (const void*)&AXES_COLOR[2], 3 * sizeof(float)); // uniform m_grabbers[6].center = m_transform * Vec3d(m_box.min(0), m_box.min(1), center(2)) - offset_x - offset_y; @@ -194,7 +194,7 @@ void GLGizmoScale3D::on_render() const m_grabbers[9].center = m_transform * Vec3d(m_box.min(0), m_box.max(1), center(2)) - offset_x + offset_y; for (int i = 6; i < 10; ++i) { - ::memcpy((void*)m_grabbers[i].color, (const void*)m_highlight_color, 4 * sizeof(float)); + ::memcpy((void*)m_grabbers[i].color, (const void*)m_highlight_color, 3 * sizeof(float)); } // sets grabbers orientation @@ -214,20 +214,20 @@ void GLGizmoScale3D::on_render() const // draw connections if (m_grabbers[0].enabled && m_grabbers[1].enabled) { - glsafe(::glColor4fv(m_grabbers[0].color)); + glsafe(::glColor3fv(m_grabbers[0].color)); render_grabbers_connection(0, 1); } if (m_grabbers[2].enabled && m_grabbers[3].enabled) { - glsafe(::glColor4fv(m_grabbers[2].color)); + glsafe(::glColor3fv(m_grabbers[2].color)); render_grabbers_connection(2, 3); } if (m_grabbers[4].enabled && m_grabbers[5].enabled) { - glsafe(::glColor4fv(m_grabbers[4].color)); + glsafe(::glColor3fv(m_grabbers[4].color)); render_grabbers_connection(4, 5); } - glsafe(::glColor4fv(m_base_color)); + glsafe(::glColor3fv(m_base_color)); render_grabbers_connection(6, 7); render_grabbers_connection(7, 8); render_grabbers_connection(8, 9); @@ -238,7 +238,7 @@ void GLGizmoScale3D::on_render() const else if ((m_hover_id == 0) || (m_hover_id == 1)) { // draw connection - glsafe(::glColor4fv(m_grabbers[0].color)); + glsafe(::glColor3fv(m_grabbers[0].color)); render_grabbers_connection(0, 1); // draw grabbers m_grabbers[0].render(true, grabber_mean_size); @@ -247,7 +247,7 @@ void GLGizmoScale3D::on_render() const else if ((m_hover_id == 2) || (m_hover_id == 3)) { // draw connection - glsafe(::glColor4fv(m_grabbers[2].color)); + glsafe(::glColor3fv(m_grabbers[2].color)); render_grabbers_connection(2, 3); // draw grabbers m_grabbers[2].render(true, grabber_mean_size); @@ -256,7 +256,7 @@ void GLGizmoScale3D::on_render() const else if ((m_hover_id == 4) || (m_hover_id == 5)) { // draw connection - glsafe(::glColor4fv(m_grabbers[4].color)); + glsafe(::glColor3fv(m_grabbers[4].color)); render_grabbers_connection(4, 5); // draw grabbers m_grabbers[4].render(true, grabber_mean_size); @@ -265,7 +265,7 @@ void GLGizmoScale3D::on_render() const else if (m_hover_id >= 6) { // draw connection - glsafe(::glColor4fv(m_drag_color)); + glsafe(::glColor3fv(m_drag_color)); render_grabbers_connection(6, 7); render_grabbers_connection(7, 8); render_grabbers_connection(8, 9); @@ -329,7 +329,6 @@ void GLGizmoScale3D::do_scale_along_axis(Axis axis, const UpdateData& data) case X: { local_offset_vec = local_offset * Vec3d::UnitX(); break; } case Y: { local_offset_vec = local_offset * Vec3d::UnitY(); break; } case Z: { local_offset_vec = local_offset * Vec3d::UnitZ(); break; } - default: break; } m_offset = m_offsets_transform * local_offset_vec; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp index 4356f6c36d1..e73baaed71b 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp @@ -1,7 +1,6 @@ // Include GLGizmoBase.hpp before I18N.hpp as it includes some libigl code, which overrides our localization "L" macro. #include "GLGizmoSlaSupports.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" -#include "slic3r/GUI/Gizmos/GLGizmos.hpp" #include @@ -13,10 +12,8 @@ #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/GUI_ObjectSettings.hpp" #include "slic3r/GUI/GUI_ObjectList.hpp" -#include "slic3r/GUI/MeshUtils.hpp" -#include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/PresetBundle.hpp" -#include "libslic3r/SLAPrint.hpp" +#include "libslic3r/Tesselate.hpp" namespace Slic3r { @@ -27,7 +24,6 @@ GLGizmoSlaSupports::GLGizmoSlaSupports(GLCanvas3D& parent, const std::string& ic , m_quadric(nullptr) , m_its(nullptr) { - m_clipping_plane.reset(new ClippingPlane(Vec3d::Zero(), 0.)); m_quadric = ::gluNewQuadric(); if (m_quadric != nullptr) // using GLU_FILL does not work when the instance's transformation @@ -139,27 +135,48 @@ void GLGizmoSlaSupports::render_clipping_plane(const Selection& selection) const if (m_clipping_plane_distance == 0.f) return; - // Get transformation of the instance + if (m_clipping_plane_normal == Vec3d::Zero()) + reset_clipping_plane_normal(); + + const Vec3d& direction_to_camera = m_clipping_plane_normal; + + // First cache instance transformation to be used later. const GLVolume* vol = selection.get_volume(*selection.get_volume_idxs().begin()); - Geometry::Transformation trafo = vol->get_instance_transformation(); - trafo.set_offset(trafo.get_offset() + Vec3d(0., 0., m_z_shift)); - - // Get transformation of supports - Geometry::Transformation supports_trafo; - supports_trafo.set_offset(Vec3d(trafo.get_offset()(0), trafo.get_offset()(1), vol->get_sla_shift_z())); - supports_trafo.set_rotation(Vec3d(0., 0., trafo.get_rotation()(2))); - // I don't know why, but following seems to be correct. - supports_trafo.set_mirror(Vec3d(trafo.get_mirror()(0) * trafo.get_mirror()(1) * trafo.get_mirror()(2), - 1, - 1.)); + Transform3f instance_matrix = vol->get_instance_transformation().get_matrix().cast(); + Transform3f instance_matrix_no_translation_no_scaling = vol->get_instance_transformation().get_matrix(true,false,true).cast(); + Vec3f scaling = vol->get_instance_scaling_factor().cast(); + Vec3d instance_offset = vol->get_instance_offset(); + + // Calculate distance from mesh origin to the clipping plane (in mesh coordinates). + Vec3f up_noscale = instance_matrix_no_translation_no_scaling.inverse() * direction_to_camera.cast(); + Vec3f up = Vec3f(up_noscale(0)*scaling(0), up_noscale(1)*scaling(1), up_noscale(2)*scaling(2)); + float height_mesh = (m_active_instance_bb_radius - m_clipping_plane_distance * 2*m_active_instance_bb_radius) * (up_noscale.norm()/up.norm()); + + // Get transformation of the supports and calculate how far from its origin the clipping plane is. + Transform3d supports_trafo = Transform3d::Identity(); + supports_trafo = supports_trafo.rotate(Eigen::AngleAxisd(vol->get_instance_rotation()(2), Vec3d::UnitZ())); + Vec3f up_supports = (supports_trafo.inverse() * direction_to_camera).cast(); + supports_trafo = supports_trafo.pretranslate(Vec3d(instance_offset(0), instance_offset(1), vol->get_sla_shift_z())); + // Instance and supports origin do not coincide, so the following is quite messy: + float height_supports = height_mesh * (up.norm() / up_supports.norm()) + instance_offset(2) * (direction_to_camera(2) / direction_to_camera.norm()); + + // In case either of these was recently changed, the cached triangulated ExPolygons are invalid now. + // We are gonna recalculate them both for the object and for the support structures. + if (m_clipping_plane_distance != m_old_clipping_plane_distance + || m_old_clipping_plane_normal != direction_to_camera) { + + m_old_clipping_plane_normal = direction_to_camera; + m_old_clipping_plane_distance = m_clipping_plane_distance; // Now initialize the TMS for the object, perform the cut and save the result. - if (! m_object_clipper) { - m_object_clipper.reset(new MeshClipper); - m_object_clipper->set_mesh(*m_mesh); + if (! m_tms) { + m_tms.reset(new TriangleMeshSlicer(m_mesh)); } - m_object_clipper->set_plane(*m_clipping_plane); - m_object_clipper->set_transformation(trafo); + std::vector list_of_expolys; + m_tms->set_up_direction(up); + m_tms->slice(std::vector{height_mesh}, &list_of_expolys, [](){}); + m_triangles = triangulate_expolygons_2f(list_of_expolys[0]); + // Next, ask the backend if supports are already calculated. If so, we are gonna cut them too. @@ -182,39 +199,61 @@ void GLGizmoSlaSupports::render_clipping_plane(const Selection& selection) const // so we can later tell they were recalculated. size_t timestamp = print_object->step_state_with_timestamp(slaposSupportTree).timestamp; - if (! m_supports_clipper || (int)timestamp != m_old_timestamp) { - // The timestamp has changed. - m_supports_clipper.reset(new MeshClipper); + if (!m_supports_tms || (int)timestamp != m_old_timestamp) { + // The timestamp has changed - stash the mesh and initialize the TMS. + m_supports_mesh = &print_object->support_mesh(); // The mesh should already have the shared vertices calculated. - m_supports_clipper->set_mesh(print_object->support_mesh()); + m_supports_tms.reset(new TriangleMeshSlicer(m_supports_mesh)); m_old_timestamp = timestamp; } - m_supports_clipper->set_plane(*m_clipping_plane); - m_supports_clipper->set_transformation(supports_trafo); + + // The TMS is initialized - let's do the cutting: + list_of_expolys.clear(); + m_supports_tms->set_up_direction(up_supports); + m_supports_tms->slice(std::vector{height_supports}, &list_of_expolys, [](){}); + m_supports_triangles = triangulate_expolygons_2f(list_of_expolys[0]); } - else + else { // The supports are not valid. We better dump the cached data. - m_supports_clipper.reset(); + m_supports_tms.reset(); + m_supports_triangles.clear(); } + } + } // At this point we have the triangulated cuts for both the object and supports - let's render. - if (! m_object_clipper->get_triangles().empty()) { + if (! m_triangles.empty()) { ::glPushMatrix(); + ::glTranslated(0.0, 0.0, m_z_shift); + ::glMultMatrixf(instance_matrix.data()); + Eigen::Quaternionf q; + q.setFromTwoVectors(Vec3f::UnitZ(), up); + Eigen::AngleAxisf aa(q); + ::glRotatef(aa.angle() * (180./M_PI), aa.axis()(0), aa.axis()(1), aa.axis()(2)); + ::glTranslatef(0.f, 0.f, 0.01f); // to make sure the cut does not intersect the structure itself ::glColor3f(1.0f, 0.37f, 0.0f); ::glBegin(GL_TRIANGLES); - for (const Vec3f& point : m_object_clipper->get_triangles()) - ::glVertex3f(point(0), point(1), point(2)); + for (const Vec2f& point : m_triangles) + ::glVertex3f(point(0), point(1), height_mesh); + ::glEnd(); ::glPopMatrix(); } - if (m_supports_clipper && ! m_supports_clipper->get_triangles().empty() && !m_editing_mode) { + if (! m_supports_triangles.empty() && !m_editing_mode) { // The supports are hidden in the editing mode, so it makes no sense to render the cuts. ::glPushMatrix(); + ::glMultMatrixd(supports_trafo.data()); + Eigen::Quaternionf q; + q.setFromTwoVectors(Vec3f::UnitZ(), up_supports); + Eigen::AngleAxisf aa(q); + ::glRotatef(aa.angle() * (180./M_PI), aa.axis()(0), aa.axis()(1), aa.axis()(2)); + ::glTranslatef(0.f, 0.f, 0.01f); ::glColor3f(1.0f, 0.f, 0.37f); ::glBegin(GL_TRIANGLES); - for (const Vec3f& point : m_supports_clipper->get_triangles()) - ::glVertex3f(point(0), point(1), point(2)); + for (const Vec2f& point : m_supports_triangles) + ::glVertex3f(point(0), point(1), height_supports); + ::glEnd(); ::glPopMatrix(); } @@ -245,7 +284,7 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking) glsafe(::glTranslated(0.0, 0.0, m_z_shift)); glsafe(::glMultMatrixd(instance_matrix.data())); - float render_color[4]; + float render_color[3]; size_t cache_size = m_editing_mode ? m_editing_cache.size() : m_normal_cache.size(); for (size_t i = 0; i < cache_size; ++i) { @@ -257,15 +296,13 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking) // First decide about the color of the point. if (picking) { - std::array color = picking_color_component(i); + std::array color = picking_color_component(i); render_color[0] = color[0]; render_color[1] = color[1]; render_color[2] = color[2]; - render_color[3] = color[3]; } else { - render_color[3] = 1.f; - if ((size_t(m_hover_id) == i && m_editing_mode)) { // ignore hover state unless editing mode is active + if ((m_hover_id == i && m_editing_mode)) { // ignore hover state unless editing mode is active render_color[0] = 0.f; render_color[1] = 1.0f; render_color[2] = 1.0f; @@ -281,13 +318,13 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking) for (unsigned char i=0; i<3; ++i) render_color[i] = 0.5f; } } - glsafe(::glColor4fv(render_color)); + glsafe(::glColor3fv(render_color)); float render_color_emissive[4] = { 0.5f * render_color[0], 0.5f * render_color[1], 0.5f * render_color[2], 1.f}; glsafe(::glMaterialfv(GL_FRONT, GL_EMISSION, render_color_emissive)); // Inverse matrix of the instance scaling is applied so that the mark does not scale with the object. glsafe(::glPushMatrix()); - glsafe(::glTranslatef(support_point.pos(0), support_point.pos(1), support_point.pos(2))); + glsafe(::glTranslated(support_point.pos(0), support_point.pos(1), support_point.pos(2))); glsafe(::glMultMatrixd(instance_scaling_matrix_inverse.data())); if (vol->is_left_handed()) @@ -296,25 +333,24 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking) // Matrices set, we can render the point mark now. // If in editing mode, we'll also render a cone pointing to the sphere. if (m_editing_mode) { - // in case the normal is not yet cached, find and cache it if (m_editing_cache[i].normal == Vec3f::Zero()) - m_mesh_raycaster->get_closest_point(m_editing_cache[i].support_point.pos, &m_editing_cache[i].normal); + update_cache_entry_normal(i); // in case the normal is not yet cached, find and cache it Eigen::Quaterniond q; q.setFromTwoVectors(Vec3d{0., 0., 1.}, instance_scaling_matrix_inverse * m_editing_cache[i].normal.cast()); Eigen::AngleAxisd aa(q); glsafe(::glRotated(aa.angle() * (180. / M_PI), aa.axis()(0), aa.axis()(1), aa.axis()(2))); - const double cone_radius = 0.25; // mm - const double cone_height = 0.75; + const float cone_radius = 0.25f; // mm + const float cone_height = 0.75f; glsafe(::glPushMatrix()); glsafe(::glTranslatef(0.f, 0.f, support_point.head_front_radius * RenderPointScale)); - ::gluCylinder(m_quadric, 0., cone_radius, cone_height, 24, 1); + ::gluCylinder(m_quadric, 0.f, cone_radius, cone_height, 24, 1); glsafe(::glTranslatef(0.f, 0.f, cone_height)); ::gluDisk(m_quadric, 0.0, cone_radius, 24, 1); glsafe(::glPopMatrix()); } - ::gluSphere(m_quadric, (double)support_point.head_front_radius * RenderPointScale, 24, 12); + ::gluSphere(m_quadric, support_point.head_front_radius * RenderPointScale, 24, 12); if (vol->is_left_handed()) glFrontFace(GL_CCW); @@ -337,12 +373,15 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking) bool GLGizmoSlaSupports::is_point_clipped(const Vec3d& point) const { + const Vec3d& direction_to_camera = m_clipping_plane_normal; + if (m_clipping_plane_distance == 0.f) return false; Vec3d transformed_point = m_model_object->instances.front()->get_transformation().get_matrix() * point; transformed_point(2) += m_z_shift; - return m_clipping_plane->distance(transformed_point) < 0.; + return direction_to_camera.dot(m_model_object->instances[m_active_instance]->get_offset() + Vec3d(0., 0., m_z_shift)) + m_active_instance_bb_radius + - m_clipping_plane_distance * 2*m_active_instance_bb_radius < direction_to_camera.dot(transformed_point); } @@ -367,8 +406,13 @@ void GLGizmoSlaSupports::update_mesh() m_its = &m_mesh->its; // If this is different mesh than last time or if the AABB tree is uninitialized, recalculate it. - if (m_model_object_id != m_model_object->id() || ! m_mesh_raycaster) - m_mesh_raycaster.reset(new MeshRaycaster(*m_mesh)); + if (m_model_object_id != m_model_object->id() || (m_AABB.m_left == NULL && m_AABB.m_right == NULL)) + { + m_AABB.deinit(); + m_AABB.init( + MapMatrixXfUnaligned(m_its->vertices.front().data(), m_its->vertices.size(), 3), + MapMatrixXiUnaligned(m_its->indices.front().data(), m_its->indices.size(), 3)); + } m_model_object_id = m_model_object->id(); disable_editing_mode(); @@ -376,42 +420,73 @@ void GLGizmoSlaSupports::update_mesh() -// Unprojects the mouse position on the mesh and saves hit point and normal of the facet into pos_and_normal -// Return false if no intersection was found, true otherwise. -bool GLGizmoSlaSupports::unproject_on_mesh(const Vec2d& mouse_pos, std::pair& pos_and_normal) +// Unprojects the mouse position on the mesh and return the hit point and normal of the facet. +// The function throws if no intersection if found. +std::pair GLGizmoSlaSupports::unproject_on_mesh(const Vec2d& mouse_pos) { // if the gizmo doesn't have the V, F structures for igl, calculate them first: - if (! m_mesh_raycaster) + if (m_its == nullptr) update_mesh(); const Camera& camera = m_parent.get_camera(); + const std::array& viewport = camera.get_viewport(); + const Transform3d& modelview_matrix = camera.get_view_matrix(); + const Transform3d& projection_matrix = camera.get_projection_matrix(); + + Vec3d point1; + Vec3d point2; + ::gluUnProject(mouse_pos(0), viewport[3] - mouse_pos(1), 0.f, modelview_matrix.data(), projection_matrix.data(), viewport.data(), &point1(0), &point1(1), &point1(2)); + ::gluUnProject(mouse_pos(0), viewport[3] - mouse_pos(1), 1.f, modelview_matrix.data(), projection_matrix.data(), viewport.data(), &point2(0), &point2(1), &point2(2)); + + std::vector hits; + const Selection& selection = m_parent.get_selection(); const GLVolume* volume = selection.get_volume(*selection.get_volume_idxs().begin()); - Geometry::Transformation trafo = volume->get_instance_transformation(); - trafo.set_offset(trafo.get_offset() + Vec3d(0., 0., m_z_shift)); - - // The raycaster query - std::vector hits; - std::vector normals; - m_mesh_raycaster->unproject_on_mesh(mouse_pos, trafo.get_matrix(), camera, &hits, &normals); - - // We must also take care of the clipping plane (if active) - unsigned i = 0; - if (m_clipping_plane_distance != 0.f) { - for (i=0; i())) + + point1(2) -= m_z_shift; + point2(2) -= m_z_shift; + + Transform3d inv = volume->get_instance_transformation().get_matrix().inverse(); + + point1 = inv * point1; + point2 = inv * point2; + + if (!m_AABB.intersect_ray( + MapMatrixXfUnaligned(m_its->vertices.front().data(), m_its->vertices.size(), 3), + MapMatrixXiUnaligned(m_its->indices.front().data(), m_its->indices.size(), 3), + point1.cast(), (point2-point1).cast(), hits)) + throw std::invalid_argument("unproject_on_mesh(): No intersection found."); + + std::sort(hits.begin(), hits.end(), [](const igl::Hit& a, const igl::Hit& b) { return a.t < b.t; }); + + // Now let's iterate through the points and find the first that is not clipped: + unsigned int i=0; + Vec3f bc; + Vec3f a; + Vec3f b; + Vec3f result; + for (i=0; ivertices[m_its->indices[fid](1)] - m_its->vertices[m_its->indices[fid](0)]); + b = (m_its->vertices[m_its->indices[fid](2)] - m_its->vertices[m_its->indices[fid](0)]); + result = bc(0) * m_its->vertices[m_its->indices[fid](0)] + bc(1) * m_its->vertices[m_its->indices[fid](1)] + bc(2)*m_its->vertices[m_its->indices[fid](2)]; + if (m_clipping_plane_distance == 0.f || !is_point_clipped(result.cast())) break; } if (i==hits.size() || (hits.size()-i) % 2 != 0) { // All hits are either clipped, or there is an odd number of unclipped // hits - meaning the nearest must be from inside the mesh. - return false; + throw std::invalid_argument("unproject_on_mesh(): No intersection found."); } // Calculate and return both the point and the facet normal. - pos_and_normal = std::make_pair(hits[i], normals[i]); - return true; + return std::make_pair( + result, + a.cross(b) + ); } // Following function is called from GLCanvas3D to inform the gizmo about a mouse/keyboard event. @@ -449,15 +524,16 @@ bool GLGizmoSlaSupports::gizmo_event(SLAGizmoEventType action, const Vec2d& mous // If there is some selection, don't add new point and deselect everything instead. if (m_selection_empty) { - std::pair pos_and_normal; - if (unproject_on_mesh(mouse_position, pos_and_normal)) { // we got an intersection - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Add support point"))); + try { + std::pair pos_and_normal = unproject_on_mesh(mouse_position); // don't create anything if this throws + wxGetApp().plater()->take_snapshot(_(L("Add support point"))); m_editing_cache.emplace_back(sla::SupportPoint(pos_and_normal.first, m_new_point_head_diameter/2.f, false), false, pos_and_normal.second); m_parent.set_as_dirty(); m_wait_for_up_event = true; } - else + catch (...) { // not clicked on object return false; + } } else select_point(NoPoints); @@ -471,30 +547,78 @@ bool GLGizmoSlaSupports::gizmo_event(SLAGizmoEventType action, const Vec2d& mous GLSelectionRectangle::EState rectangle_status = m_selection_rectangle.get_state(); // First collect positions of all the points in world coordinates. - Geometry::Transformation trafo = m_model_object->instances[m_active_instance]->get_transformation(); - trafo.set_offset(trafo.get_offset() + Vec3d(0., 0., m_z_shift)); + const Transform3d& instance_matrix = m_model_object->instances[m_active_instance]->get_transformation().get_matrix(); std::vector points; - for (unsigned int i=0; i()); - + for (unsigned int i=0; i()); + points.back()(2) += m_z_shift; + } // Now ask the rectangle which of the points are inside. - std::vector points_inside; - std::vector points_idxs = m_selection_rectangle.stop_dragging(m_parent, points); - for (size_t idx : points_idxs) - points_inside.push_back((trafo.get_matrix() * points[idx]).cast()); - - // Only select/deselect points that are actually visible - for (size_t idx : m_mesh_raycaster->get_unobscured_idxs(trafo, m_parent.get_camera(), points_inside, - [this](const Vec3f& pt) { return is_point_clipped(pt.cast()); })) - { - const sla::SupportPoint &support_point = m_editing_cache[points_idxs[idx]].support_point; + const Camera& camera = m_parent.get_camera(); + std::vector selected_idxs = m_selection_rectangle.stop_dragging(m_parent, points); + + // we'll recover current look direction (in world coords) and transform it to model coords. + const Selection& selection = m_parent.get_selection(); + const GLVolume* volume = selection.get_volume(*selection.get_volume_idxs().begin()); + const Transform3d& instance_matrix_no_translation_no_scaling = volume->get_instance_transformation().get_matrix(true,false,true); + Vec3f direction_to_camera = -camera.get_dir_forward().cast(); + Vec3f direction_to_camera_mesh = (instance_matrix_no_translation_no_scaling.inverse().cast() * direction_to_camera).normalized().eval(); + Vec3f scaling = volume->get_instance_scaling_factor().cast(); + direction_to_camera_mesh = Vec3f(direction_to_camera_mesh(0)*scaling(0), direction_to_camera_mesh(1)*scaling(1), direction_to_camera_mesh(2)*scaling(2)); + + // Iterate over all points in the rectangle and check that they are neither clipped by the + // clipping plane nor obscured by the mesh. + for (const unsigned int i : selected_idxs) { + const sla::SupportPoint &support_point = m_editing_cache[i].support_point; if (!is_point_clipped(support_point.pos.cast())) { + bool is_obscured = false; + // Cast a ray in the direction of the camera and look for intersection with the mesh: + std::vector hits; + // Offset the start of the ray to the front of the ball + EPSILON to account for numerical inaccuracies. + if (m_AABB.intersect_ray( + MapMatrixXfUnaligned(m_its->vertices.front().data(), m_its->vertices.size(), 3), + MapMatrixXiUnaligned(m_its->indices.front().data(), m_its->indices.size(), 3), + support_point.pos + direction_to_camera_mesh * (support_point.head_front_radius + EPSILON), direction_to_camera_mesh, hits)) { + std::sort(hits.begin(), hits.end(), [](const igl::Hit& h1, const igl::Hit& h2) { return h1.t < h2.t; }); + + if (m_clipping_plane_distance != 0.f) { + // If the closest hit facet normal points in the same direction as the ray, + // we are looking through the mesh and should therefore discard the point: + int fid = hits.front().id; // facet id + Vec3f a = (m_its->vertices[m_its->indices[fid](1)] - m_its->vertices[m_its->indices[fid](0)]); + Vec3f b = (m_its->vertices[m_its->indices[fid](2)] - m_its->vertices[m_its->indices[fid](0)]); + if ((a.cross(b)).dot(direction_to_camera_mesh) > 0.f) + is_obscured = true; + + // Eradicate all hits that are on clipped surfaces: + for (unsigned int j=0; jvertices[m_its->indices[fid](0)] + bc(1) * m_its->vertices[m_its->indices[fid](1)] + bc(2)*m_its->vertices[m_its->indices[fid](2)]; + if (is_point_clipped(hit_pos.cast())) { + hits.erase(hits.begin()+j); + --j; + } + } + } + + // FIXME: the intersection could in theory be behind the camera, but as of now we only have camera direction. + // Also, the threshold is in mesh coordinates, not in actual dimensions. + if (!hits.empty()) + is_obscured = true; + } + + if (!is_obscured) { if (rectangle_status == GLSelectionRectangle::Deselect) - unselect_point(points_idxs[idx]); + unselect_point(i); else - select_point(points_idxs[idx]); + select_point(i); } } + } return true; } @@ -566,18 +690,18 @@ bool GLGizmoSlaSupports::gizmo_event(SLAGizmoEventType action, const Vec2d& mous if (action == SLAGizmoEventType::MouseWheelUp && control_down) { m_clipping_plane_distance = std::min(1.f, m_clipping_plane_distance + 0.01f); - update_clipping_plane(true); + m_parent.set_as_dirty(); return true; } if (action == SLAGizmoEventType::MouseWheelDown && control_down) { m_clipping_plane_distance = std::max(0.f, m_clipping_plane_distance - 0.01f); - update_clipping_plane(true); + m_parent.set_as_dirty(); return true; } if (action == SLAGizmoEventType::ResetClippingPlane) { - update_clipping_plane(); + reset_clipping_plane_normal(); return true; } @@ -591,12 +715,14 @@ void GLGizmoSlaSupports::delete_selected_points(bool force) std::abort(); } - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Delete support point"))); + wxGetApp().plater()->take_snapshot(_(L("Delete support point"))); for (unsigned int idx=0; idxreslice_SLA_supports(*m_model_object); } select_point(NoPoints); @@ -611,8 +737,10 @@ void GLGizmoSlaSupports::on_update(const UpdateData& data) else { if (m_hover_id != -1 && (! m_editing_cache[m_hover_id].support_point.is_new_island || !m_lock_unique_islands)) { std::pair pos_and_normal; - if (! unproject_on_mesh(data.mouse_pos.cast(), pos_and_normal)) - return; + try { + pos_and_normal = unproject_on_mesh(data.mouse_pos.cast()); + } + catch (...) { return; } m_editing_cache[m_hover_id].support_point.pos = pos_and_normal.first; m_editing_cache[m_hover_id].support_point.is_new_island = false; m_editing_cache[m_hover_id].normal = pos_and_normal.second; @@ -650,12 +778,37 @@ std::vector GLGizmoSlaSupports::get_config_options(const st } +void GLGizmoSlaSupports::update_cache_entry_normal(unsigned int i) const +{ + int idx = 0; + Eigen::Matrix pp = m_editing_cache[i].support_point.pos; + Eigen::Matrix cc; + m_AABB.squared_distance( + MapMatrixXfUnaligned(m_its->vertices.front().data(), m_its->vertices.size(), 3), + MapMatrixXiUnaligned(m_its->indices.front().data(), m_its->indices.size(), 3), + pp, idx, cc); + Vec3f a = (m_its->vertices[m_its->indices[idx](1)] - m_its->vertices[m_its->indices[idx](0)]); + Vec3f b = (m_its->vertices[m_its->indices[idx](2)] - m_its->vertices[m_its->indices[idx](0)]); + m_editing_cache[i].normal = a.cross(b); +} + + + + ClippingPlane GLGizmoSlaSupports::get_sla_clipping_plane() const { - if (!m_model_object || m_state == Off || m_clipping_plane_distance == 0.f) + if (!m_model_object || m_state == Off) return ClippingPlane::ClipsNothing(); - else - return ClippingPlane(-m_clipping_plane->get_normal(), m_clipping_plane->get_data()[3]); + + //Eigen::Matrix modelview_matrix; + //::glGetDoublev(GL_MODELVIEW_MATRIX, modelview_matrix.data()); + // we'll recover current look direction from the modelview matrix (in world coords): + //Vec3d direction_to_camera(modelview_matrix.data()[2], modelview_matrix.data()[6], modelview_matrix.data()[10]); + + const Vec3d& direction_to_camera = m_clipping_plane_normal; + float dist = direction_to_camera.dot(m_model_object->instances[m_active_instance]->get_offset() + Vec3d(0., 0., m_z_shift)); + + return ClippingPlane(-direction_to_camera.normalized(),(dist - (-m_active_instance_bb_radius) - m_clipping_plane_distance * 2*m_active_instance_bb_radius)); } @@ -767,7 +920,7 @@ void GLGizmoSlaSupports::on_render_input_window(float x, float y, float bottom_l cache_entry.support_point.head_front_radius = m_old_point_head_diameter / 2.f; float backup = m_new_point_head_diameter; m_new_point_head_diameter = m_old_point_head_diameter; - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Change point head diameter"))); + wxGetApp().plater()->take_snapshot(_(L("Change point head diameter"))); m_new_point_head_diameter = backup; for (auto& cache_entry : m_editing_cache) if (cache_entry.selected) @@ -833,7 +986,7 @@ void GLGizmoSlaSupports::on_render_input_window(float x, float y, float bottom_l if (slider_released) { m_model_object->config.opt("support_points_minimal_distance", true)->value = m_minimal_point_distance_stash; m_model_object->config.opt("support_points_density_relative", true)->value = (int)m_density_stash; - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Support parameter change"))); + wxGetApp().plater()->take_snapshot(_(L("Support parameter change"))); m_model_object->config.opt("support_points_minimal_distance", true)->value = minimal_point_distance; m_model_object->config.opt("support_points_density_relative", true)->value = (int)density; wxGetApp().obj_list()->update_and_show_object_settings_item(); @@ -867,15 +1020,14 @@ void GLGizmoSlaSupports::on_render_input_window(float x, float y, float bottom_l else { if (m_imgui->button(m_desc.at("reset_direction"))) { wxGetApp().CallAfter([this](){ - update_clipping_plane(); + reset_clipping_plane_normal(); }); } } ImGui::SameLine(clipping_slider_left); ImGui::PushItemWidth(window_width - clipping_slider_left); - if (ImGui::SliderFloat(" ", &m_clipping_plane_distance, 0.f, 1.f, "%.2f")) - update_clipping_plane(true); + ImGui::SliderFloat(" ", &m_clipping_plane_distance, 0.f, 1.f, "%.2f"); if (m_imgui->button("?")) { @@ -959,11 +1111,7 @@ void GLGizmoSlaSupports::on_set_state() } } - if (m_state == m_old_state) - return; - if (m_state == On && m_old_state != On) { // the gizmo was just turned on - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("SLA gizmo turned on"))); if (is_mesh_update_necessary()) update_mesh(); @@ -980,34 +1128,29 @@ void GLGizmoSlaSupports::on_set_state() m_new_point_head_diameter = static_cast(cfg.option("support_head_front_diameter"))->value; } if (m_state == Off && m_old_state != Off) { // the gizmo was just turned Off - bool will_ask = m_model_object && m_editing_mode && unsaved_changes(); - if (will_ask) { - wxGetApp().CallAfter([this]() { - // Following is called through CallAfter, because otherwise there was a problem - // on OSX with the wxMessageDialog being shown several times when clicked into. - wxMessageDialog dlg(GUI::wxGetApp().mainframe, _(L("Do you want to save your manually " - "edited support points?")) + "\n",_(L("Save changes?")), wxICON_QUESTION | wxYES | wxNO); + wxGetApp().CallAfter([this]() { + // Following is called through CallAfter, because otherwise there was a problem + // on OSX with the wxMessageDialog being shown several times when clicked into. + if (m_model_object) { + if (m_editing_mode && unsaved_changes()) { + wxMessageDialog dlg(GUI::wxGetApp().mainframe, _(L("Do you want to save your manually edited support points?")) + "\n", + _(L("Save changes?")), wxICON_QUESTION | wxYES | wxNO); if (dlg.ShowModal() == wxID_YES) editing_mode_apply_changes(); else editing_mode_discard_changes(); - }); - // refuse to be turned off so the gizmo is active when the CallAfter is executed - m_state = m_old_state; - } - else { - // we are actually shutting down - disable_editing_mode(); // so it is not active next time the gizmo opens - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("SLA gizmo turned off"))); + } + } m_parent.toggle_model_objects_visibility(true); + disable_editing_mode(); // so it is not active next time the gizmo opens m_normal_cache.clear(); m_clipping_plane_distance = 0.f; - // Release clippers and the AABB raycaster. + // Release triangle mesh slicer and the AABB spatial search structure. + m_AABB.deinit(); m_its = nullptr; - m_object_clipper.reset(); - m_supports_clipper.reset(); - m_mesh_raycaster.reset(); - } + m_tms.reset(); + m_supports_tms.reset(); + }); } m_old_state = m_state; } @@ -1035,7 +1178,7 @@ void GLGizmoSlaSupports::on_stop_dragging() && backup.support_point.pos != m_point_before_drag.support_point.pos) // and it was moved, not just selected { m_editing_cache[m_hover_id] = m_point_before_drag; - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Move support point"))); + wxGetApp().plater()->take_snapshot(_(L("Move support point"))); m_editing_cache[m_hover_id] = backup; } } @@ -1047,7 +1190,7 @@ void GLGizmoSlaSupports::on_stop_dragging() void GLGizmoSlaSupports::on_load(cereal::BinaryInputArchive& ar) { ar(m_clipping_plane_distance, - *m_clipping_plane, + m_clipping_plane_normal, m_model_object_id, m_new_point_head_diameter, m_normal_cache, @@ -1061,7 +1204,7 @@ void GLGizmoSlaSupports::on_load(cereal::BinaryInputArchive& ar) void GLGizmoSlaSupports::on_save(cereal::BinaryOutputArchive& ar) const { ar(m_clipping_plane_distance, - *m_clipping_plane, + m_clipping_plane_normal, m_model_object_id, m_new_point_head_diameter, m_normal_cache, @@ -1134,7 +1277,7 @@ void GLGizmoSlaSupports::editing_mode_apply_changes() disable_editing_mode(); // this leaves the editing mode undo/redo stack and must be done before the snapshot is taken if (unsaved_changes()) { - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Support points edit"))); + wxGetApp().plater()->take_snapshot(_(L("Support points edit"))); m_normal_cache.clear(); for (const CacheEntry& ce : m_editing_cache) @@ -1144,7 +1287,7 @@ void GLGizmoSlaSupports::editing_mode_apply_changes() m_model_object->sla_support_points.clear(); m_model_object->sla_support_points = m_normal_cache; - reslice_SLA_supports(); + wxGetApp().CallAfter([this]() { wxGetApp().plater()->reslice_SLA_supports(*m_model_object); }); } } @@ -1161,29 +1304,11 @@ void GLGizmoSlaSupports::reload_cache() } -bool GLGizmoSlaSupports::has_backend_supports() const -{ - // find SlaPrintObject with this ID - for (const SLAPrintObject* po : m_parent.sla_print()->objects()) { - if (po->model_object()->id() == m_model_object->id()) - return po->is_step_done(slaposSupportPoints); - } - return false; -} - -void GLGizmoSlaSupports::reslice_SLA_supports(bool postpone_error_messages) const -{ - wxGetApp().CallAfter([this, postpone_error_messages]() { wxGetApp().plater()->reslice_SLA_supports(*m_model_object, postpone_error_messages); }); -} void GLGizmoSlaSupports::get_data_from_backend() { - if (! has_backend_supports()) - return; - - // find the respective SLAPrintObject, we need a pointer to it for (const SLAPrintObject* po : m_parent.sla_print()->objects()) { - if (po->model_object()->id() == m_model_object->id()) { + if (po->model_object()->id() == m_model_object->id() && po->is_step_done(slaposSupportPoints)) { m_normal_cache.clear(); const std::vector& points = po->get_support_points(); auto mat = po->trafo().inverse().cast(); @@ -1208,8 +1333,8 @@ void GLGizmoSlaSupports::auto_generate() )), _(L("Warning")), wxICON_WARNING | wxYES | wxNO); if (m_model_object->sla_points_status != sla::PointsStatus::UserModified || m_normal_cache.empty() || dlg.ShowModal() == wxID_YES) { - Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Autogenerate support points"))); - wxGetApp().CallAfter([this]() { reslice_SLA_supports(); }); + wxGetApp().plater()->take_snapshot(_(L("Autogenerate support points"))); + wxGetApp().CallAfter([this]() { wxGetApp().plater()->reslice_SLA_supports(*m_model_object); }); m_model_object->sla_points_status = sla::PointsStatus::Generating; } } @@ -1250,19 +1375,17 @@ bool GLGizmoSlaSupports::unsaved_changes() const } -void GLGizmoSlaSupports::update_clipping_plane(bool keep_normal) const +void GLGizmoSlaSupports::reset_clipping_plane_normal() const { - Vec3d normal = (keep_normal && m_clipping_plane->get_normal() != Vec3d::Zero() ? - m_clipping_plane->get_normal() : -m_parent.get_camera().get_dir_forward()); - - const Vec3d& center = m_model_object->instances[m_active_instance]->get_offset() + Vec3d(0., 0., m_z_shift); - float dist = normal.dot(center); - *m_clipping_plane = ClippingPlane(normal, (dist - (-m_active_instance_bb_radius) - m_clipping_plane_distance * 2*m_active_instance_bb_radius)); + Eigen::Matrix modelview_matrix; + ::glGetDoublev(GL_MODELVIEW_MATRIX, modelview_matrix.data()); + m_clipping_plane_normal = Vec3d(modelview_matrix.data()[2], modelview_matrix.data()[6], modelview_matrix.data()[10]); m_parent.set_as_dirty(); } + SlaGizmoHelpDialog::SlaGizmoHelpDialog() -: wxDialog(nullptr, wxID_ANY, _(L("SLA gizmo keyboard shortcuts")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) +: wxDialog(NULL, wxID_ANY, _(L("SLA gizmo keyboard shortcuts")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) { SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); const wxString ctrl = GUI::shortkey_ctrl_prefix(); @@ -1323,4 +1446,4 @@ SlaGizmoHelpDialog::SlaGizmoHelpDialog() } // namespace GUI -} // namespace Slic3r +} // namespace Slic3r \ No newline at end of file diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.hpp index cf5245f1944..fb312e6644f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.hpp @@ -2,9 +2,16 @@ #define slic3r_GLGizmoSlaSupports_hpp_ #include "GLGizmoBase.hpp" +#include "GLGizmos.hpp" #include "slic3r/GUI/GLSelectionRectangle.hpp" +// There is an L function in igl that would be overridden by our localization macro - let's undefine it... +#undef L +#include +#include "slic3r/GUI/I18N.hpp" // ...and redefine again when we are done with the igl code + #include "libslic3r/SLA/SLACommon.hpp" +#include "libslic3r/SLAPrint.hpp" #include #include @@ -13,10 +20,9 @@ namespace Slic3r { namespace GUI { + class ClippingPlane; -class MeshClipper; -class MeshRaycaster; -enum class SLAGizmoEventType : unsigned char; + class GLGizmoSlaSupports : public GLGizmoBase { @@ -25,16 +31,15 @@ class GLGizmoSlaSupports : public GLGizmoBase ObjectID m_model_object_id = 0; int m_active_instance = -1; float m_active_instance_bb_radius; // to cache the bb - mutable double m_z_shift = 0.f; - bool unproject_on_mesh(const Vec2d& mouse_pos, std::pair& pos_and_normal); + mutable float m_z_shift = 0.f; + std::pair unproject_on_mesh(const Vec2d& mouse_pos); const float RenderPointScale = 1.f; GLUquadricObj* m_quadric; typedef Eigen::Map> MapMatrixXfUnaligned; typedef Eigen::Map> MapMatrixXiUnaligned; - - std::unique_ptr m_mesh_raycaster; + igl::AABB m_AABB; const TriangleMesh* m_mesh; const indexed_triangle_set* m_its; mutable const TriangleMesh* m_supports_mesh; @@ -73,7 +78,7 @@ class GLGizmoSlaSupports : public GLGizmoBase public: GLGizmoSlaSupports(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id); - ~GLGizmoSlaSupports() override; + virtual ~GLGizmoSlaSupports(); void set_sla_support_data(ModelObject* model_object, const Selection& selection); bool gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_position, bool shift_down, bool alt_down, bool control_down); void delete_selected_points(bool force = false); @@ -81,20 +86,19 @@ class GLGizmoSlaSupports : public GLGizmoBase bool is_in_editing_mode() const { return m_editing_mode; } bool is_selection_rectangle_dragging() const { return m_selection_rectangle.is_dragging(); } - bool has_backend_supports() const; - void reslice_SLA_supports(bool postpone_error_messages = false) const; private: - bool on_init() override; - void on_update(const UpdateData& data) override; - void on_render() const override; - void on_render_for_picking() const override; + bool on_init(); + void on_update(const UpdateData& data); + virtual void on_render() const; + virtual void on_render_for_picking() const; //void render_selection_rectangle() const; void render_points(const Selection& selection, bool picking = false) const; void render_clipping_plane(const Selection& selection) const; bool is_mesh_update_necessary() const; void update_mesh(); + void update_cache_entry_normal(unsigned int i) const; bool unsaved_changes() const; bool m_lock_unique_islands = false; @@ -109,7 +113,9 @@ class GLGizmoSlaSupports : public GLGizmoBase std::vector m_normal_cache; // to restore after discarding changes or undo/redo float m_clipping_plane_distance = 0.f; - std::unique_ptr m_clipping_plane; + mutable float m_old_clipping_plane_distance = 0.f; + mutable Vec3d m_old_clipping_plane_normal; + mutable Vec3d m_clipping_plane_normal = Vec3d::Zero(); // This map holds all translated description texts, so they can be easily referenced during layout calculations // etc. When language changes, GUI is recreated and this class constructed again, so the change takes effect. @@ -121,8 +127,8 @@ class GLGizmoSlaSupports : public GLGizmoBase bool m_selection_empty = true; EState m_old_state = Off; // to be able to see that the gizmo has just been closed (see on_set_state) - mutable std::unique_ptr m_object_clipper; - mutable std::unique_ptr m_supports_clipper; + mutable std::unique_ptr m_tms; + mutable std::unique_ptr m_supports_tms; std::vector get_config_options(const std::vector& keys) const; bool is_point_clipped(const Vec3d& point) const; @@ -144,25 +150,23 @@ class GLGizmoSlaSupports : public GLGizmoBase void switch_to_editing_mode(); void disable_editing_mode(); void reset_clipping_plane_normal() const; - void update_clipping_plane(bool keep_normal = false) const; protected: void on_set_state() override; - void on_set_hover_id() override - + virtual void on_set_hover_id() { if (! m_editing_mode || (int)m_editing_cache.size() <= m_hover_id) m_hover_id = -1; } void on_start_dragging() override; void on_stop_dragging() override; - void on_render_input_window(float x, float y, float bottom_limit) override; + virtual void on_render_input_window(float x, float y, float bottom_limit) override; - std::string on_get_name() const override; - bool on_is_activable() const override; - bool on_is_selectable() const override; - void on_load(cereal::BinaryInputArchive& ar) override; - void on_save(cereal::BinaryOutputArchive& ar) const override; + virtual std::string on_get_name() const; + virtual bool on_is_activable() const; + virtual bool on_is_selectable() const; + virtual void on_load(cereal::BinaryInputArchive& ar) override; + virtual void on_save(cereal::BinaryOutputArchive& ar) const override; }; diff --git a/src/slic3r/GUI/Gizmos/GLGizmos.hpp b/src/slic3r/GUI/Gizmos/GLGizmos.hpp index 272fa098a37..2e98899be7d 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmos.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmos.hpp @@ -2,10 +2,7 @@ #define slic3r_GLGizmos_hpp_ // this describes events being passed from GLCanvas3D to SlaSupport gizmo -namespace Slic3r { -namespace GUI { - -enum class SLAGizmoEventType : unsigned char { +enum class SLAGizmoEventType { LeftDown = 1, LeftUp, RightDown, @@ -23,9 +20,6 @@ enum class SLAGizmoEventType : unsigned char { ResetClippingPlane }; -} // namespace GUI -} // namespace Slic3r - #include "slic3r/GUI/Gizmos/GLGizmoMove.hpp" #include "slic3r/GUI/Gizmos/GLGizmoScale.hpp" #include "slic3r/GUI/Gizmos/GLGizmoRotate.hpp" diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 16fa30fa787..38af634646e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -5,7 +5,6 @@ #include "slic3r/GUI/GUI_App.hpp" #include "slic3r/GUI/GUI_ObjectManipulation.hpp" #include "slic3r/GUI/PresetBundle.hpp" -#include "slic3r/Utils/UndoRedo.hpp" #include #include @@ -29,49 +28,9 @@ GLGizmosManager::GLGizmosManager(GLCanvas3D& parent) { } -std::vector GLGizmosManager::get_selectable_idxs() const +GLGizmosManager::~GLGizmosManager() { - std::vector out; - for (size_t i=0; iis_selectable()) - out.push_back(i); - return out; -} - -std::vector GLGizmosManager::get_activable_idxs() const -{ - std::vector out; - for (size_t i=0; iis_activable()) - out.push_back(i); - return out; -} - -size_t GLGizmosManager::get_gizmo_idx_from_mouse(const Vec2d& mouse_pos) const -{ - if (! m_enabled) - return Undefined; - - float cnv_h = (float)m_parent.get_canvas_size().get_height(); - float height = get_total_overlay_height(); - float scaled_icons_size = m_overlay_icons_size * m_overlay_scale; - float scaled_border = m_overlay_border * m_overlay_scale; - float scaled_gap_y = m_overlay_gap_y * m_overlay_scale; - float scaled_stride_y = scaled_icons_size + scaled_gap_y; - float top_y = 0.5f * (cnv_h - height) + scaled_border; - - // is mouse horizontally in the area? - if ((scaled_border <= (float)mouse_pos(0) && ((float)mouse_pos(0) <= scaled_border + scaled_icons_size))) { - // which icon is it on? - size_t from_top = (size_t)((float)mouse_pos(1) - top_y)/scaled_stride_y; - // is it really on the icon or already past the border? - if ((float)mouse_pos(1) <= top_y + from_top*scaled_stride_y + scaled_icons_size) { - std::vector selectable = get_selectable_idxs(); - if (from_top < selectable.size()) - return selectable[from_top]; - } - } - return Undefined; + reset(); } bool GLGizmosManager::init() @@ -85,25 +44,77 @@ bool GLGizmosManager::init() if (!m_background_texture.metadata.filename.empty()) { if (!m_background_texture.texture.load_from_file(resources_dir() + "/icons/" + m_background_texture.metadata.filename, false, GLTexture::SingleThreaded, false)) + { + reset(); return false; + } } - m_gizmos.emplace_back(new GLGizmoMove3D(m_parent, "move.svg", 0)); - m_gizmos.emplace_back(new GLGizmoScale3D(m_parent, "scale.svg", 1)); - m_gizmos.emplace_back(new GLGizmoRotate3D(m_parent, "rotate.svg", 2)); - m_gizmos.emplace_back(new GLGizmoFlatten(m_parent, "place.svg", 3)); - m_gizmos.emplace_back(new GLGizmoCut(m_parent, "cut.svg", 4)); - m_gizmos.emplace_back(new GLGizmoSlaSupports(m_parent, "sla_supports.svg", 5)); + GLGizmoBase* gizmo = new GLGizmoMove3D(m_parent, "move.svg", 0); + if (gizmo == nullptr) + return false; - for (auto& gizmo : m_gizmos) { - if (! gizmo->init()) { - m_gizmos.clear(); - return false; - } + if (!gizmo->init()) + return false; + + m_gizmos.insert(GizmosMap::value_type(Move, gizmo)); + + gizmo = new GLGizmoScale3D(m_parent, "scale.svg", 1); + if (gizmo == nullptr) + return false; + + if (!gizmo->init()) + return false; + + m_gizmos.insert(GizmosMap::value_type(Scale, gizmo)); + + gizmo = new GLGizmoRotate3D(m_parent, "rotate.svg", 2); + if (gizmo == nullptr) + { + reset(); + return false; } - m_current = Undefined; - m_hover = Undefined; + if (!gizmo->init()) + { + reset(); + return false; + } + + m_gizmos.insert(GizmosMap::value_type(Rotate, gizmo)); + + gizmo = new GLGizmoFlatten(m_parent, "place.svg", 3); + if (gizmo == nullptr) + return false; + + if (!gizmo->init()) { + reset(); + return false; + } + + m_gizmos.insert(GizmosMap::value_type(Flatten, gizmo)); + + gizmo = new GLGizmoCut(m_parent, "cut.svg", 4); + if (gizmo == nullptr) + return false; + + if (!gizmo->init()) { + reset(); + return false; + } + + m_gizmos.insert(GizmosMap::value_type(Cut, gizmo)); + + gizmo = new GLGizmoSlaSupports(m_parent, "sla_supports.svg", 5); + if (gizmo == nullptr) + return false; + + if (!gizmo->init()) { + reset(); + return false; + } + + m_gizmos.insert(GizmosMap::value_type(SlaSupports, gizmo)); return true; } @@ -128,39 +139,65 @@ void GLGizmosManager::set_overlay_scale(float scale) void GLGizmosManager::refresh_on_off_state() { - if (m_serializing || m_current == Undefined || m_gizmos.empty()) + if (m_serializing) return; - if (m_current != Undefined && ! m_gizmos[m_current]->is_activable()) - activate_gizmo(Undefined); + GizmosMap::iterator it = m_gizmos.find(m_current); + if ((it != m_gizmos.end()) && (it->second != nullptr)) + { + if (!it->second->is_activable()) + { + it->second->set_state(GLGizmoBase::Off); + m_current = Undefined; + } + } } void GLGizmosManager::reset_all_states() { - if (! m_enabled || m_serializing) + if (!m_enabled) return; - activate_gizmo(Undefined); - m_hover = Undefined; + if (m_serializing) + return; + + for (GizmosMap::const_iterator it = m_gizmos.begin(); it != m_gizmos.end(); ++it) + { + if (it->second != nullptr) + { + it->second->set_state(GLGizmoBase::Off); + it->second->set_hover_id(-1); + } + } + + m_current = Undefined; } void GLGizmosManager::set_hover_id(int id) { - if (!m_enabled || m_current == Undefined) + if (!m_enabled) return; - m_gizmos[m_current]->set_hover_id(id); + for (GizmosMap::const_iterator it = m_gizmos.begin(); it != m_gizmos.end(); ++it) + { + if ((it->second != nullptr) && (it->second->get_state() == GLGizmoBase::On)) + it->second->set_hover_id(id); + } } void GLGizmosManager::enable_grabber(EType type, unsigned int id, bool enable) { - if (!m_enabled || type == Undefined || m_gizmos.empty()) + if (!m_enabled) return; - if (enable) - m_gizmos[type]->enable_grabber(id); - else - m_gizmos[type]->disable_grabber(id); + GizmosMap::const_iterator it = m_gizmos.find(type); + if (it != m_gizmos.end()) + { + if (enable) + it->second->enable_grabber(id); + else + it->second->disable_grabber(id); + } } void GLGizmosManager::update(const Linef3& mouse_ray, const Point& mouse_pos) @@ -231,9 +268,8 @@ bool GLGizmosManager::is_running() const if (!m_enabled) return false; - //GLGizmoBase* curr = get_current(); - //return (curr != nullptr) ? (curr->get_state() == GLGizmoBase::On) : false; - return m_current != Undefined; + GLGizmoBase* curr = get_current(); + return (curr != nullptr) ? (curr->get_state() == GLGizmoBase::On) : false; } bool GLGizmosManager::handle_shortcut(int key) @@ -244,41 +280,69 @@ bool GLGizmosManager::handle_shortcut(int key) if (m_parent.get_selection().is_empty()) return false; + EType old_current = m_current; bool handled = false; + for (GizmosMap::iterator it = m_gizmos.begin(); it != m_gizmos.end(); ++it) + { + if ((it->second == nullptr) || !it->second->is_selectable()) + continue; - for (size_t idx : get_selectable_idxs()) { - int it_key = m_gizmos[idx]->get_shortcut_key(); + int it_key = it->second->get_shortcut_key(); - if (m_gizmos[idx]->is_activable() && ((it_key == key - 64) || (it_key == key - 96))) { - activate_gizmo(m_current == idx ? Undefined : (EType)idx); + if (it->second->is_activable() && ((it_key == key - 64) || (it_key == key - 96))) + { + if ((it->second->get_state() == GLGizmoBase::On)) + { + it->second->set_state(GLGizmoBase::Off); + m_current = Undefined; + handled = true; + } + else if ((it->second->get_state() == GLGizmoBase::Off)) + { + it->second->set_state(GLGizmoBase::On); + m_current = it->first; handled = true; + } } } + if (handled && (old_current != Undefined) && (old_current != m_current)) + { + GizmosMap::const_iterator it = m_gizmos.find(old_current); + if (it != m_gizmos.end()) + it->second->set_state(GLGizmoBase::Off); + } + return handled; } bool GLGizmosManager::is_dragging() const { - if (! m_enabled || m_current == Undefined) + if (!m_enabled) return false; - return m_gizmos[m_current]->is_dragging(); + GLGizmoBase* curr = get_current(); + return (curr != nullptr) ? curr->is_dragging() : false; } void GLGizmosManager::start_dragging() { - if (! m_enabled || m_current == Undefined) + if (!m_enabled) return; - m_gizmos[m_current]->start_dragging(); + + GLGizmoBase* curr = get_current(); + if (curr != nullptr) + curr->start_dragging(); } void GLGizmosManager::stop_dragging() { - if (! m_enabled || m_current == Undefined) + if (!m_enabled) return; - m_gizmos[m_current]->stop_dragging(); + GLGizmoBase* curr = get_current(); + if (curr != nullptr) + curr->stop_dragging(); } Vec3d GLGizmosManager::get_displacement() const @@ -286,7 +350,8 @@ Vec3d GLGizmosManager::get_displacement() const if (!m_enabled) return Vec3d::Zero(); - return dynamic_cast(m_gizmos[Move].get())->get_displacement(); + GizmosMap::const_iterator it = m_gizmos.find(Move); + return (it != m_gizmos.end()) ? reinterpret_cast(it->second)->get_displacement() : Vec3d::Zero(); } Vec3d GLGizmosManager::get_scale() const @@ -294,101 +359,121 @@ Vec3d GLGizmosManager::get_scale() const if (!m_enabled) return Vec3d::Ones(); - return dynamic_cast(m_gizmos[Scale].get())->get_scale(); + GizmosMap::const_iterator it = m_gizmos.find(Scale); + return (it != m_gizmos.end()) ? reinterpret_cast(it->second)->get_scale() : Vec3d::Ones(); } void GLGizmosManager::set_scale(const Vec3d& scale) { - if (!m_enabled || m_gizmos.empty()) + if (!m_enabled) return; - dynamic_cast(m_gizmos[Scale].get())->set_scale(scale); + GizmosMap::const_iterator it = m_gizmos.find(Scale); + if (it != m_gizmos.end()) + reinterpret_cast(it->second)->set_scale(scale); } Vec3d GLGizmosManager::get_scale_offset() const { - if (!m_enabled || m_gizmos.empty()) + if (!m_enabled) return Vec3d::Zero(); - return dynamic_cast(m_gizmos[Scale].get())->get_offset(); + GizmosMap::const_iterator it = m_gizmos.find(Scale); + return (it != m_gizmos.end()) ? reinterpret_cast(it->second)->get_offset() : Vec3d::Zero(); } Vec3d GLGizmosManager::get_rotation() const { - if (!m_enabled || m_gizmos.empty()) + if (!m_enabled) return Vec3d::Zero(); - return dynamic_cast(m_gizmos[Rotate].get())->get_rotation(); + GizmosMap::const_iterator it = m_gizmos.find(Rotate); + return (it != m_gizmos.end()) ? reinterpret_cast(it->second)->get_rotation() : Vec3d::Zero(); } void GLGizmosManager::set_rotation(const Vec3d& rotation) { - if (!m_enabled || m_gizmos.empty()) + if (!m_enabled) return; - dynamic_cast(m_gizmos[Rotate].get())->set_rotation(rotation); + + GizmosMap::const_iterator it = m_gizmos.find(Rotate); + if (it != m_gizmos.end()) + reinterpret_cast(it->second)->set_rotation(rotation); } Vec3d GLGizmosManager::get_flattening_normal() const { - if (!m_enabled || m_gizmos.empty()) + if (!m_enabled) return Vec3d::Zero(); - return dynamic_cast(m_gizmos[Flatten].get())->get_flattening_normal(); + GizmosMap::const_iterator it = m_gizmos.find(Flatten); + return (it != m_gizmos.end()) ? reinterpret_cast(it->second)->get_flattening_normal() : Vec3d::Zero(); } void GLGizmosManager::set_flattening_data(const ModelObject* model_object) { - if (!m_enabled || m_gizmos.empty()) + if (!m_enabled) return; - dynamic_cast(m_gizmos[Flatten].get())->set_flattening_data(model_object); + GizmosMap::const_iterator it = m_gizmos.find(Flatten); + if (it != m_gizmos.end()) + reinterpret_cast(it->second)->set_flattening_data(model_object); } void GLGizmosManager::set_sla_support_data(ModelObject* model_object) { - if (!m_enabled || m_gizmos.empty()) + if (!m_enabled) return; - dynamic_cast(m_gizmos[SlaSupports].get())->set_sla_support_data(model_object, m_parent.get_selection()); + GizmosMap::const_iterator it = m_gizmos.find(SlaSupports); + if (it != m_gizmos.end()) + reinterpret_cast(it->second)->set_sla_support_data(model_object, m_parent.get_selection()); } // Returns true if the gizmo used the event to do something, false otherwise. bool GLGizmosManager::gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_position, bool shift_down, bool alt_down, bool control_down) { - if (!m_enabled || m_gizmos.empty()) + if (!m_enabled) return false; - return dynamic_cast(m_gizmos[SlaSupports].get())->gizmo_event(action, mouse_position, shift_down, alt_down, control_down); + GizmosMap::const_iterator it = m_gizmos.find(SlaSupports); + if (it != m_gizmos.end()) + return reinterpret_cast(it->second)->gizmo_event(action, mouse_position, shift_down, alt_down, control_down); + + return false; } ClippingPlane GLGizmosManager::get_sla_clipping_plane() const { - if (!m_enabled || m_current != SlaSupports || m_gizmos.empty()) + if (!m_enabled || m_current != SlaSupports) return ClippingPlane::ClipsNothing(); - return dynamic_cast(m_gizmos[SlaSupports].get())->get_sla_clipping_plane(); -} + GizmosMap::const_iterator it = m_gizmos.find(SlaSupports); + if (it != m_gizmos.end()) + return reinterpret_cast(it->second)->get_sla_clipping_plane(); -bool GLGizmosManager::wants_reslice_supports_on_undo() const -{ - return (m_current == SlaSupports - && dynamic_cast(m_gizmos.at(SlaSupports).get())->has_backend_supports()); + return ClippingPlane::ClipsNothing(); } + void GLGizmosManager::render_current_gizmo() const { - if (!m_enabled || m_current == Undefined) + if (!m_enabled) return; - m_gizmos[m_current]->render(); + GLGizmoBase* curr = get_current(); + if (curr != nullptr) + curr->render(); } void GLGizmosManager::render_current_gizmo_for_picking_pass() const { - if (! m_enabled || m_current == Undefined) + if (!m_enabled) return; - m_gizmos[m_current]->render_for_picking(); + GLGizmoBase* curr = get_current(); + if (curr != nullptr) + curr->render_for_picking(); } void GLGizmosManager::render_overlay() const @@ -447,7 +532,7 @@ bool GLGizmosManager::on_mouse(wxMouseEvent& evt) // if the button down was done on this toolbar, prevent from dragging into the scene processed = true; - if (get_gizmo_idx_from_mouse(mouse_pos) == Undefined) + if (!overlay_contains_mouse(mouse_pos)) { // mouse is outside the toolbar m_tooltip = ""; @@ -457,12 +542,14 @@ bool GLGizmosManager::on_mouse(wxMouseEvent& evt) if ((m_current == SlaSupports) && gizmo_event(SLAGizmoEventType::LeftDown, mouse_pos, evt.ShiftDown(), evt.AltDown(), evt.ControlDown())) // the gizmo got the event and took some action, there is no need to do anything more processed = true; - else if (!selection.is_empty() && grabber_contains_mouse()) { + else if (!selection.is_empty() && grabber_contains_mouse()) + { update_data(); selection.start_dragging(); start_dragging(); - if (m_current == Flatten) { + if (m_current == Flatten) + { // Rotate the object so the normal points downward: m_parent.do_flatten(get_flattening_normal(), L("Gizmo-Place on Face")); wxGetApp().obj_manipul()->set_dirty(); @@ -532,14 +619,25 @@ bool GLGizmosManager::on_mouse(wxMouseEvent& evt) } else if (evt.LeftUp() && is_dragging()) { - switch (m_current) { - case Move : m_parent.do_move(L("Gizmo-Move")); - break; - case Scale : m_parent.do_scale(L("Gizmo-Scale")); - break; - case Rotate : m_parent.do_rotate(L("Gizmo-Rotate")); - break; - default : break; + switch (m_current) + { + case Move: + { + m_parent.do_move(L("Gizmo-Move")); + break; + } + case Scale: + { + m_parent.do_scale(L("Gizmo-Scale")); + break; + } + case Rotate: + { + m_parent.do_rotate(L("Gizmo-Rotate")); + break; + } + default: + break; } stop_dragging(); @@ -561,9 +659,9 @@ bool GLGizmosManager::on_mouse(wxMouseEvent& evt) gizmo_event(SLAGizmoEventType::LeftUp, mouse_pos, evt.ShiftDown(), evt.AltDown(), evt.ControlDown()); processed = true; } - else if (evt.LeftUp() && (m_current == Flatten) && (m_gizmos[m_current]->get_hover_id() != -1)) + else if (evt.LeftUp() && (m_current == Flatten) && ((m_parent.get_first_hover_volume_idx() != -1) || grabber_contains_mouse())) { - // to avoid to loose the selection when user clicks an the white faces of a different object while the Flatten gizmo is active + // to avoid to loose the selection when user clicks an object while the Flatten gizmo is active processed = true; } } @@ -729,7 +827,7 @@ bool GLGizmosManager::on_key(wxKeyEvent& evt) { if (m_current == SlaSupports) { - GLGizmoSlaSupports* gizmo = dynamic_cast(get_current()); + GLGizmoSlaSupports* gizmo = reinterpret_cast(get_current()); if (keyCode == WXK_SHIFT) { @@ -750,8 +848,7 @@ bool GLGizmosManager::on_key(wxKeyEvent& evt) } else if (evt.GetEventType() == wxEVT_KEY_DOWN) { - if ((m_current == SlaSupports) && ((keyCode == WXK_SHIFT) || (keyCode == WXK_ALT)) - && dynamic_cast(get_current())->is_in_editing_mode()) + if ((m_current == SlaSupports) && ((keyCode == WXK_SHIFT) || (keyCode == WXK_ALT)) && reinterpret_cast(get_current())->is_in_editing_mode()) { // m_parent.set_cursor(GLCanvas3D::Cross); processed = true; @@ -764,13 +861,21 @@ bool GLGizmosManager::on_key(wxKeyEvent& evt) return processed; } -void GLGizmosManager::update_after_undo_redo(const UndoRedo::Snapshot& snapshot) +void GLGizmosManager::update_after_undo_redo() { update_data(); m_serializing = false; - if (m_current == SlaSupports - && snapshot.snapshot_data.flags & UndoRedo::SnapshotData::RECALCULATE_SLA_SUPPORTS) - dynamic_cast(m_gizmos[SlaSupports].get())->reslice_SLA_supports(true); +} + +void GLGizmosManager::reset() +{ + for (GizmosMap::value_type& gizmo : m_gizmos) + { + delete gizmo.second; + gizmo.second = nullptr; + } + + m_gizmos.clear(); } void GLGizmosManager::render_background(float left, float top, float right, float bottom, float border) const @@ -788,7 +893,7 @@ void GLGizmosManager::render_background(float left, float top, float right, floa float internal_top = top - border; float internal_bottom = bottom + border; - // float left_uv = 0.0f; + float left_uv = 0.0f; float right_uv = 1.0f; float top_uv = 1.0f; float bottom_uv = 0.0f; @@ -858,32 +963,33 @@ void GLGizmosManager::do_render_overlay() const float scaled_icons_size = m_overlay_icons_size * m_overlay_scale * inv_zoom; float scaled_stride_y = scaled_icons_size + scaled_gap_y; unsigned int icons_texture_id = m_icons_texture.get_id(); - int tex_width = m_icons_texture.get_width(); - int tex_height = m_icons_texture.get_height(); - float inv_tex_width = (tex_width != 0) ? 1.0f / tex_width : 0.0f; - float inv_tex_height = (tex_height != 0) ? 1.0f / tex_height : 0.0f; + unsigned int tex_width = m_icons_texture.get_width(); + unsigned int tex_height = m_icons_texture.get_height(); + float inv_tex_width = (tex_width != 0) ? 1.0f / (float)tex_width : 0.0f; + float inv_tex_height = (tex_height != 0) ? 1.0f / (float)tex_height : 0.0f; if ((icons_texture_id == 0) || (tex_width <= 0) || (tex_height <= 0)) return; - for (size_t idx : get_selectable_idxs()) + for (GizmosMap::const_iterator it = m_gizmos.begin(); it != m_gizmos.end(); ++it) { - GLGizmoBase* gizmo = m_gizmos[idx].get(); + if ((it->second == nullptr) || !it->second->is_selectable()) + continue; - unsigned int sprite_id = gizmo->get_sprite_id(); - int icon_idx = m_current == idx ? 2 : (m_hover == idx ? 1 : 0); + unsigned int sprite_id = it->second->get_sprite_id(); + GLGizmoBase::EState state = it->second->get_state(); float u_icon_size = m_overlay_icons_size * m_overlay_scale * inv_tex_width; float v_icon_size = m_overlay_icons_size * m_overlay_scale * inv_tex_height; float v_top = sprite_id * v_icon_size; - float u_left = icon_idx * u_icon_size; + float u_left = state * u_icon_size; float v_bottom = v_top + v_icon_size; float u_right = u_left + u_icon_size; GLTexture::render_sub_texture(icons_texture_id, top_x, top_x + scaled_icons_size, top_y - scaled_icons_size, top_y, { { u_left, v_bottom }, { u_right, v_bottom }, { u_right, v_top }, { u_left, v_top } }); - if (idx == m_current) { - float toolbar_top = cnv_h - m_parent.get_view_toolbar_height(); - gizmo->render_input_window(width, 0.5f * cnv_h - top_y * zoom, toolbar_top); + if (it->second->get_state() == GLGizmoBase::On) { + float toolbar_top = (float)cnv_h - m_parent.get_view_toolbar_height(); + it->second->render_input_window(width, 0.5f * cnv_h - top_y * zoom, toolbar_top); } top_y -= scaled_stride_y; } @@ -897,14 +1003,13 @@ float GLGizmosManager::get_total_overlay_height() const float scaled_stride_y = scaled_icons_size + scaled_gap_y; float height = 2.0f * scaled_border; - /*for (size_t idx=0; idxis_selectable()) + if ((it->second == nullptr) || !it->second->is_selectable()) continue; height += scaled_stride_y; - }*/ - height += get_selectable_idxs().size() * scaled_stride_y; + } return height - scaled_gap_y; } @@ -916,21 +1021,19 @@ float GLGizmosManager::get_total_overlay_width() const GLGizmoBase* GLGizmosManager::get_current() const { - if (m_current==Undefined || m_gizmos.empty()) - return nullptr; - else - return m_gizmos[m_current].get(); + GizmosMap::const_iterator it = m_gizmos.find(m_current); + return (it != m_gizmos.end()) ? it->second : nullptr; } bool GLGizmosManager::generate_icons_texture() const { std::string path = resources_dir() + "/icons/"; std::vector filenames; - for (size_t idx=0; idxsecond != nullptr) { - const std::string& icon_filename = m_gizmos[idx]->get_icon_filename(); + const std::string& icon_filename = it->second->get_icon_filename(); if (!icon_filename.empty()) filenames.push_back(path + icon_filename); } @@ -953,9 +1056,43 @@ void GLGizmosManager::update_on_off_state(const Vec2d& mouse_pos) if (!m_enabled) return; - size_t idx = get_gizmo_idx_from_mouse(mouse_pos); - if (idx != Undefined && m_gizmos[idx]->is_activable() && m_hover == idx) - activate_gizmo(m_current == idx ? Undefined : (EType)idx); + float cnv_h = (float)m_parent.get_canvas_size().get_height(); + float height = get_total_overlay_height(); + + float scaled_icons_size = m_overlay_icons_size * m_overlay_scale; + float scaled_border = m_overlay_border * m_overlay_scale; + float scaled_gap_y = m_overlay_gap_y * m_overlay_scale; + float scaled_stride_y = scaled_icons_size + scaled_gap_y; + float top_y = 0.5f * (cnv_h - height) + scaled_border; + + for (GizmosMap::iterator it = m_gizmos.begin(); it != m_gizmos.end(); ++it) + { + if ((it->second == nullptr) || !it->second->is_selectable()) + continue; + + bool inside = (scaled_border <= (float)mouse_pos(0)) && ((float)mouse_pos(0) <= scaled_border + scaled_icons_size) && (top_y <= (float)mouse_pos(1)) && ((float)mouse_pos(1) <= top_y + scaled_icons_size); + if (it->second->is_activable() && inside) + { + if ((it->second->get_state() == GLGizmoBase::On)) + { + it->second->set_state(GLGizmoBase::Hover); + m_current = Undefined; + } + else if ((it->second->get_state() == GLGizmoBase::Hover)) + { + it->second->set_state(GLGizmoBase::On); + m_current = it->first; + } + } + else + it->second->set_state(GLGizmoBase::Off); + + top_y += scaled_stride_y; + } + + GizmosMap::iterator it = m_gizmos.find(m_current); + if ((it != m_gizmos.end()) && (it->second != nullptr) && (it->second->get_state() != GLGizmoBase::On)) + it->second->set_state(GLGizmoBase::On); } std::string GLGizmosManager::update_hover_state(const Vec2d& mouse_pos) @@ -965,36 +1102,59 @@ std::string GLGizmosManager::update_hover_state(const Vec2d& mouse_pos) if (!m_enabled) return name; - m_hover = Undefined; + float cnv_h = (float)m_parent.get_canvas_size().get_height(); + float height = get_total_overlay_height(); + float scaled_icons_size = m_overlay_icons_size * m_overlay_scale; + float scaled_border = m_overlay_border * m_overlay_scale; + float scaled_gap_y = m_overlay_gap_y * m_overlay_scale; + float scaled_stride_y = scaled_icons_size + scaled_gap_y; + float top_y = 0.5f * (cnv_h - height) + scaled_border; + + for (GizmosMap::iterator it = m_gizmos.begin(); it != m_gizmos.end(); ++it) + { + if ((it->second == nullptr) || !it->second->is_selectable()) + continue; + + bool inside = (scaled_border <= (float)mouse_pos(0)) && ((float)mouse_pos(0) <= scaled_border + scaled_icons_size) && (top_y <= (float)mouse_pos(1)) && ((float)mouse_pos(1) <= top_y + scaled_icons_size); + if (inside) + name = it->second->get_name(); - size_t idx = get_gizmo_idx_from_mouse(mouse_pos); - if (idx != Undefined) { - name = m_gizmos[idx]->get_name(); + if (it->second->is_activable() && (it->second->get_state() != GLGizmoBase::On)) + it->second->set_state(inside ? GLGizmoBase::Hover : GLGizmoBase::Off); - if (m_gizmos[idx]->is_activable()) - m_hover = (EType)idx; + top_y += scaled_stride_y; } return name; } -void GLGizmosManager::activate_gizmo(EType type) +bool GLGizmosManager::overlay_contains_mouse(const Vec2d& mouse_pos) const { - if (m_gizmos.empty() || m_current == type) - return; + if (!m_enabled) + return false; - if (m_current != Undefined) { - m_gizmos[m_current]->set_state(GLGizmoBase::Off); - if (m_gizmos[m_current]->get_state() != GLGizmoBase::Off) - return; // gizmo refused to be turned off, do nothing. - } + float cnv_h = (float)m_parent.get_canvas_size().get_height(); + float height = get_total_overlay_height(); - if (type != Undefined) - m_gizmos[type]->set_state(GLGizmoBase::On); + float scaled_icons_size = m_overlay_icons_size * m_overlay_scale; + float scaled_border = m_overlay_border * m_overlay_scale; + float scaled_gap_y = m_overlay_gap_y * m_overlay_scale; + float scaled_stride_y = scaled_icons_size + scaled_gap_y; + float top_y = 0.5f * (cnv_h - height) + scaled_border; - m_current = type; -} + for (GizmosMap::const_iterator it = m_gizmos.begin(); it != m_gizmos.end(); ++it) + { + if ((it->second == nullptr) || !it->second->is_selectable()) + continue; + + if ((scaled_border <= (float)mouse_pos(0)) && ((float)mouse_pos(0) <= scaled_border + scaled_icons_size) && (top_y <= (float)mouse_pos(1)) && ((float)mouse_pos(1) <= top_y + scaled_icons_size)) + return true; + top_y += scaled_stride_y; + } + + return false; +} bool GLGizmosManager::grabber_contains_mouse() const { diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp index f649c98b254..b1c000ceb76 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp @@ -9,11 +9,6 @@ #include namespace Slic3r { - -namespace UndoRedo { -struct Snapshot; -} - namespace GUI { class GLCanvas3D; @@ -54,30 +49,25 @@ class GLGizmosManager : public Slic3r::ObjectBase enum EType : unsigned char { + Undefined, Move, Scale, Rotate, Flatten, Cut, SlaSupports, - Undefined + Num_Types }; private: GLCanvas3D& m_parent; bool m_enabled; - std::vector> m_gizmos; + typedef std::map GizmosMap; + GizmosMap m_gizmos; mutable GLTexture m_icons_texture; mutable bool m_icons_texture_dirty; BackgroundTexture m_background_texture; EType m_current; - EType m_hover; - - std::vector get_selectable_idxs() const; - std::vector get_activable_idxs() const; - size_t get_gizmo_idx_from_mouse(const Vec2d& mouse_pos) const; - - void activate_gizmo(EType type); float m_overlay_icons_size; float m_overlay_scale; @@ -103,6 +93,7 @@ class GLGizmosManager : public Slic3r::ObjectBase public: explicit GLGizmosManager(GLCanvas3D& parent); + ~GLGizmosManager(); bool init(); @@ -116,8 +107,16 @@ class GLGizmosManager : public Slic3r::ObjectBase ar(m_current); - if (m_current != Undefined) - m_gizmos[m_current]->load(ar); + GLGizmoBase* curr = get_current(); + for (GizmosMap::const_iterator it = m_gizmos.begin(); it != m_gizmos.end(); ++it) { + GLGizmoBase* gizmo = it->second; + if (gizmo != nullptr) { + gizmo->set_hover_id(-1); + gizmo->set_state((it->second == curr) ? GLGizmoBase::On : GLGizmoBase::Off); + if (gizmo == curr) + gizmo->load(ar); + } + } } template @@ -128,8 +127,9 @@ class GLGizmosManager : public Slic3r::ObjectBase ar(m_current); - if (m_current != Undefined && !m_gizmos.empty()) - m_gizmos[m_current]->save(ar); + GLGizmoBase* curr = get_current(); + if (curr != nullptr) + curr->save(ar); } bool is_enabled() const { return m_enabled; } @@ -173,7 +173,6 @@ class GLGizmosManager : public Slic3r::ObjectBase void set_sla_support_data(ModelObject* model_object); bool gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_position = Vec2d::Zero(), bool shift_down = false, bool alt_down = false, bool control_down = false); ClippingPlane get_sla_clipping_plane() const; - bool wants_reslice_supports_on_undo() const; void render_current_gizmo() const; void render_current_gizmo_for_picking_pass() const; @@ -187,9 +186,11 @@ class GLGizmosManager : public Slic3r::ObjectBase bool on_char(wxKeyEvent& evt); bool on_key(wxKeyEvent& evt); - void update_after_undo_redo(const UndoRedo::Snapshot& snapshot); + void update_after_undo_redo(); private: + void reset(); + void render_background(float left, float top, float right, float bottom, float border) const; void do_render_overlay() const; @@ -202,6 +203,7 @@ class GLGizmosManager : public Slic3r::ObjectBase void update_on_off_state(const Vec2d& mouse_pos); std::string update_hover_state(const Vec2d& mouse_pos); + bool overlay_contains_mouse(const Vec2d& mouse_pos) const; bool grabber_contains_mouse() const; }; diff --git a/src/slic3r/GUI/I18N.hpp b/src/slic3r/GUI/I18N.hpp index bf3103f7717..cf85f7410c5 100644 --- a/src/slic3r/GUI/I18N.hpp +++ b/src/slic3r/GUI/I18N.hpp @@ -17,10 +17,6 @@ #define L(s) s #endif /* L */ -#ifndef L_CONTEXT -#define L_CONTEXT(s, context) s -#endif /* L */ - #ifndef _CHB //! macro used to localization, return wxScopedCharBuffer //! With wxConvUTF8 explicitly specify that the source string is already in UTF-8 encoding @@ -36,26 +32,16 @@ namespace Slic3r { namespace GUI { namespace I18N { - inline wxString translate(const char *s) { return wxGetTranslation(wxString(s, wxConvUTF8)); } - inline wxString translate(const wchar_t *s) { return wxGetTranslation(s); } - inline wxString translate(const std::string &s) { return wxGetTranslation(wxString(s.c_str(), wxConvUTF8)); } + inline wxString translate(const char *s) { return wxGetTranslation(wxString(s, wxConvUTF8)); } + inline wxString translate(const wchar_t *s) { return wxGetTranslation(s); } + inline wxString translate(const std::string &s) { return wxGetTranslation(wxString(s.c_str(), wxConvUTF8)); } inline wxString translate(const std::wstring &s) { return wxGetTranslation(s.c_str()); } - inline wxString translate(const char *s, const char *plural, unsigned int n) { return wxGetTranslation(wxString(s, wxConvUTF8), wxString(plural, wxConvUTF8), n); } - inline wxString translate(const wchar_t *s, const wchar_t *plural, unsigned int n) { return wxGetTranslation(s, plural, n); } - inline wxString translate(const std::string &s, const std::string &plural, unsigned int n) { return wxGetTranslation(wxString(s.c_str(), wxConvUTF8), wxString(plural.c_str(), wxConvUTF8), n); } - inline wxString translate(const std::wstring &s, const std::wstring &plural, unsigned int n) { return wxGetTranslation(s.c_str(), plural.c_str(), n); } - - inline std::string translate_utf8(const char *s) { return wxGetTranslation(wxString(s, wxConvUTF8)).ToUTF8().data(); } - inline std::string translate_utf8(const wchar_t *s) { return wxGetTranslation(s).ToUTF8().data(); } - inline std::string translate_utf8(const std::string &s) { return wxGetTranslation(wxString(s.c_str(), wxConvUTF8)).ToUTF8().data(); } + inline std::string translate_utf8(const char *s) { return wxGetTranslation(wxString(s, wxConvUTF8)).ToUTF8().data(); } + inline std::string translate_utf8(const wchar_t *s) { return wxGetTranslation(s).ToUTF8().data(); } + inline std::string translate_utf8(const std::string &s) { return wxGetTranslation(wxString(s.c_str(), wxConvUTF8)).ToUTF8().data(); } inline std::string translate_utf8(const std::wstring &s) { return wxGetTranslation(s.c_str()).ToUTF8().data(); } - inline std::string translate_utf8(const char *s, const char *plural, unsigned int n) { return translate(s, plural, n).ToUTF8().data(); } - inline std::string translate_utf8(const wchar_t *s, const wchar_t *plural, unsigned int n) { return translate(s, plural, n).ToUTF8().data(); } - inline std::string translate_utf8(const std::string &s, const std::string &plural, unsigned int n) { return translate(s, plural, n).ToUTF8().data(); } - inline std::string translate_utf8(const std::wstring &s, const std::wstring &plural, unsigned int n) { return translate(s, plural, n).ToUTF8().data(); } - #if wxCHECK_VERSION(3, 1, 1) #define _wxGetTranslation_ctx(S, CTX) wxGetTranslation((S), wxEmptyString, (CTX)) #else @@ -73,17 +59,11 @@ namespace I18N { inline wxString translate_utf8(const std::wstring &s, const char* ctx) { return _wxGetTranslation_ctx(s.c_str(), ctx).ToUTF8().data(); } #undef _wxGetTranslation_ctx -} // namespace I18N +} // Return translated std::string as a wxString wxString L_str(const std::string &str); -} // namespace GUI -} // namespace Slic3r - -// Macro to function both as a marker for xgettext and to actually perform the translation. -#ifndef _L_PLURAL -#define _L_PLURAL(s, plural, n) Slic3r::GUI::I18N::translate(s, plural, n) -#endif /* L */ +} } #endif /* slic3r_GUI_I18N_hpp_ */ diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 8e4d9eebfa8..f58266a5df9 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -354,7 +354,7 @@ bool ImGuiWrapper::undo_redo_list(const ImVec2& size, const bool is_undo, bool ( ImGui::Selectable(item_text, i < hovered); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("%s", item_text); + ImGui::SetTooltip(item_text); hovered = i; is_hovered = true; } diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index 59415f46c2b..89a9d3a61b1 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -3,27 +3,26 @@ #include "libslic3r/Utils.hpp" #include "GUI.hpp" #include -#include #include "GUI_App.hpp" #include "wxExtensions.hpp" -namespace Slic3r { +namespace Slic3r { namespace GUI { KBShortcutsDialog::KBShortcutsDialog() - : DPIDialog(NULL, wxID_ANY, wxString(SLIC3R_APP_NAME) + " - " + _(L("Keyboard Shortcuts")), + : DPIDialog(NULL, wxID_ANY, wxString(SLIC3R_APP_NAME) + " - " + _(L("Keyboard Shortcuts")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) { - SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); + SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); - auto main_sizer = new wxBoxSizer(wxVERTICAL); + auto main_sizer = new wxBoxSizer(wxVERTICAL); // logo m_logo_bmp = ScalableBitmap(this, "Slic3r_32px.png", 32); // fonts const wxFont& font = wxGetApp().normal_font(); - const wxFont& bold_font = wxGetApp().bold_font(); + const wxFont& bold_font = wxGetApp().bold_font(); SetFont(font); wxFont head_font = bold_font; @@ -35,9 +34,7 @@ KBShortcutsDialog::KBShortcutsDialog() fill_shortcuts(); - panel = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, get_size()); - panel->SetScrollbars(1, 20, 1, 2); - + auto panel = new wxPanel(this); auto main_grid_sizer = new wxFlexGridSizer(2, 10, 10); panel->SetSizer(main_grid_sizer); main_sizer->Add(panel, 1, wxEXPAND | wxALL, 0); @@ -81,17 +78,17 @@ KBShortcutsDialog::KBShortcutsDialog() grid_sizer->Add(description, -1, wxALIGN_CENTRE_VERTICAL); } } - + wxStdDialogButtonSizer* buttons = this->CreateStdDialogButtonSizer(wxOK); this->SetEscapeId(wxID_OK); this->Bind(wxEVT_BUTTON, &KBShortcutsDialog::onCloseDialog, this, wxID_OK); main_sizer->Add(buttons, 0, wxEXPAND | wxRIGHT | wxBOTTOM, 15); - + this->Bind(wxEVT_LEFT_DOWN, &KBShortcutsDialog::onCloseDialog, this); - SetSizer(main_sizer); - main_sizer->SetSizeHints(this); + SetSizer(main_sizer); + main_sizer->SetSizeHints(this); } void KBShortcutsDialog::fill_shortcuts() @@ -135,7 +132,6 @@ void KBShortcutsDialog::fill_shortcuts() plater_shortcuts.reserve(20); plater_shortcuts.push_back(Shortcut("A", L("Arrange"))); - plater_shortcuts.push_back(Shortcut("Shift+A", L("Arrange selection"))); plater_shortcuts.push_back(Shortcut(ctrl+"A", L("Select All objects"))); plater_shortcuts.push_back(Shortcut("Del", L("Delete selected"))); plater_shortcuts.push_back(Shortcut(ctrl+"Del", L("Delete All"))); @@ -151,7 +147,7 @@ void KBShortcutsDialog::fill_shortcuts() plater_shortcuts.push_back(Shortcut("F", L("Press to scale selection to fit print volume\nin Gizmo scale"))); plater_shortcuts.push_back(Shortcut(alt, L("Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center"))); plater_shortcuts.push_back(Shortcut(ctrl, L("Press to activate one direction scaling in Gizmo scale"))); - plater_shortcuts.push_back(Shortcut("K", L("Change camera type (perspective, orthographic)"))); + plater_shortcuts.push_back(Shortcut("K", L("Change camera type"))); plater_shortcuts.push_back(Shortcut("B", L("Zoom to Bed"))); plater_shortcuts.push_back(Shortcut("Z", L("Zoom to all objects in scene, if none selected"))); plater_shortcuts.push_back(Shortcut("Z", L("Zoom to selected object"))); @@ -159,8 +155,7 @@ void KBShortcutsDialog::fill_shortcuts() plater_shortcuts.push_back(Shortcut("O", L("Zoom out"))); plater_shortcuts.push_back(Shortcut("ESC", L("Unselect gizmo / Clear selection"))); #if ENABLE_RENDER_PICKING_PASS - // Don't localize debugging texts. - plater_shortcuts.push_back(Shortcut("T", "Toggle picking pass texture rendering on/off")); + plater_shortcuts.push_back(Shortcut("T", L("Toggle picking pass texture rendering on/off"))); #endif // ENABLE_RENDER_PICKING_PASS m_full_shortcuts.push_back(std::make_pair(_(L("Plater Shortcuts")), std::make_pair(plater_shortcuts, szRight))); @@ -168,10 +163,10 @@ void KBShortcutsDialog::fill_shortcuts() // Shortcuts gizmo_shortcuts; // gizmo_shortcuts.reserve(2); -// +// // gizmo_shortcuts.push_back(Shortcut("Shift+", L("Press to snap by 5% in Gizmo Scale\n or by 1mm in Gizmo Move"))); // gizmo_shortcuts.push_back(Shortcut(alt, L("Press to scale or rotate selected objects around their own center"))); -// +// // m_full_shortcuts.push_back(std::make_pair(_(L("Gizmo Shortcuts")), std::make_pair(gizmo_shortcuts, 1))); @@ -182,7 +177,6 @@ void KBShortcutsDialog::fill_shortcuts() preview_shortcuts.push_back(Shortcut(L("Arrow Down"), L("Lower Layer"))); preview_shortcuts.push_back(Shortcut("U", L("Upper Layer"))); preview_shortcuts.push_back(Shortcut("D", L("Lower Layer"))); - preview_shortcuts.push_back(Shortcut("L", L("Show/Hide (L)egend"))); m_full_shortcuts.push_back(std::make_pair(_(L("Preview Shortcuts")), std::make_pair(preview_shortcuts, szLeft))); @@ -211,9 +205,7 @@ void KBShortcutsDialog::on_dpi_changed(const wxRect &suggested_rect) msw_buttons_rescale(this, em, { wxID_OK }); - wxSize size = get_size(); - - panel->SetMinSize(size); + const wxSize& size = wxSize(85 * em, 75 * em); SetMinSize(size); Fit(); @@ -226,30 +218,5 @@ void KBShortcutsDialog::onCloseDialog(wxEvent &) this->EndModal(wxID_CLOSE); } -wxSize KBShortcutsDialog::get_size() -{ - wxTopLevelWindow* window = Slic3r::GUI::find_toplevel_parent(this); - const int display_idx = wxDisplay::GetFromWindow(window); - wxRect display; - if (display_idx == wxNOT_FOUND) { - display = wxDisplay(0u).GetClientArea(); - window->Move(display.GetTopLeft()); - } - else { - display = wxDisplay(display_idx).GetClientArea(); - } - - const int em = em_unit(); - wxSize dialog_size = wxSize(90 * em, 85 * em); - - const int margin = 10 * em; - if (dialog_size.x > display.GetWidth()) - dialog_size.x = display.GetWidth() - margin; - if (dialog_size.y > display.GetHeight()) - dialog_size.y = display.GetHeight() - margin; - - return dialog_size; -} - } // namespace GUI } // namespace Slic3r diff --git a/src/slic3r/GUI/KBShortcutsDialog.hpp b/src/slic3r/GUI/KBShortcutsDialog.hpp index 7ac28778b55..66fe7c399b9 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.hpp +++ b/src/slic3r/GUI/KBShortcutsDialog.hpp @@ -23,10 +23,10 @@ class KBShortcutsDialog : public DPIDialog typedef std::vector< Shortcut > Shortcuts; typedef std::vector< std::pair> > ShortcutsVec; - wxScrolledWindow* panel; + wxString text_info {wxEmptyString}; - ShortcutsVec m_full_shortcuts; - ScalableBitmap m_logo_bmp; + ShortcutsVec m_full_shortcuts; + ScalableBitmap m_logo_bmp; std::vector m_head_bitmaps; public: @@ -39,7 +39,6 @@ class KBShortcutsDialog : public DPIDialog private: void onCloseDialog(wxEvent &); - wxSize get_size(); }; } // namespace GUI diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index aa7b3993b31..2d5c93878ec 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -39,12 +39,10 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_S { // Fonts were created by the DPIFrame constructor for the monitor, on which the window opened. wxGetApp().update_fonts(this); -/* #ifndef __WXOSX__ // Don't call SetFont under OSX to avoid name cutting in ObjectList this->SetFont(this->normal_font()); #endif - // Font is already set in DPIFrame constructor -*/ + // Load the icon either from the exe, or from the ico file. #if _WIN32 { @@ -247,11 +245,6 @@ bool MainFrame::can_export_model() const return (m_plater != nullptr) && !m_plater->model().objects.empty(); } -bool MainFrame::can_export_toolpaths() const -{ - return (m_plater != nullptr) && (m_plater->printer_technology() == ptFFF) && m_plater->is_preview_shown() && m_plater->is_preview_loaded() && m_plater->has_toolpaths_to_export(); -} - bool MainFrame::can_export_supports() const { if ((m_plater == nullptr) || (m_plater->printer_technology() != ptSLA) || m_plater->model().objects.empty()) @@ -286,18 +279,6 @@ bool MainFrame::can_export_gcode() const return true; } -bool MainFrame::can_send_gcode() const -{ - if (m_plater == nullptr) - return false; - - if (m_plater->model().objects.empty()) - return false; - - const auto print_host_opt = wxGetApp().preset_bundle->printers.get_edited_preset().config.option("print_host"); - return print_host_opt != nullptr && !print_host_opt->value.empty(); -} - bool MainFrame::can_slice() const { bool bg_proc = wxGetApp().app_config->get("background_processing") == "1"; @@ -430,7 +411,6 @@ void MainFrame::init_menubar() }, wxID_FILE1, wxID_FILE9); std::vector recent_projects = wxGetApp().app_config->get_recent_projects(); - std::reverse(recent_projects.begin(), recent_projects.end()); for (const std::string& project : recent_projects) { m_recent_projects.AddFileToHistory(from_u8(project)); @@ -470,25 +450,17 @@ void MainFrame::init_menubar() [this](wxCommandEvent&) { if (m_plater) m_plater->export_gcode(); }, menu_icon("export_gcode"), nullptr, [this](){return can_export_gcode(); }, this); m_changeable_menu_items.push_back(item_export_gcode); - wxMenuItem* item_send_gcode = append_menu_item(export_menu, wxID_ANY, _(L("S&end G-code")) + dots +"\tCtrl+Shift+G", _(L("Send to print current plate as G-code")), - [this](wxCommandEvent&) { if (m_plater) m_plater->send_gcode(); }, menu_icon("export_gcode"), nullptr, - [this](){return can_send_gcode(); }, this); - m_changeable_menu_items.push_back(item_send_gcode); export_menu->AppendSeparator(); append_menu_item(export_menu, wxID_ANY, _(L("Export plate as &STL")) + dots, _(L("Export current plate as STL")), [this](wxCommandEvent&) { if (m_plater) m_plater->export_stl(); }, menu_icon("export_plater"), nullptr, [this](){return can_export_model(); }, this); - append_menu_item(export_menu, wxID_ANY, _(L("Export plate as STL &including supports")) + dots, _(L("Export current plate as STL including supports")), + append_menu_item(export_menu, wxID_ANY, _(L("Export plate as STL including supports")) + dots, _(L("Export current plate as STL including supports")), [this](wxCommandEvent&) { if (m_plater) m_plater->export_stl(true); }, menu_icon("export_plater"), nullptr, [this](){return can_export_supports(); }, this); append_menu_item(export_menu, wxID_ANY, _(L("Export plate as &AMF")) + dots, _(L("Export current plate as AMF")), [this](wxCommandEvent&) { if (m_plater) m_plater->export_amf(); }, menu_icon("export_plater"), nullptr, [this](){return can_export_model(); }, this); export_menu->AppendSeparator(); - append_menu_item(export_menu, wxID_ANY, _(L("Export &toolpaths as OBJ")) + dots, _(L("Export toolpaths as OBJ")), - [this](wxCommandEvent&) { if (m_plater) m_plater->export_toolpaths_to_obj(); }, menu_icon("export_plater"), nullptr, - [this]() {return can_export_toolpaths(); }, this); - export_menu->AppendSeparator(); append_menu_item(export_menu, wxID_ANY, _(L("Export &Config")) +dots +"\tCtrl+E", _(L("Export current configuration to file")), [this](wxCommandEvent&) { export_config(); }, menu_icon("export_config")); append_menu_item(export_menu, wxID_ANY, _(L("Export Config &Bundle")) + dots, _(L("Export all presets to file")), @@ -568,10 +540,10 @@ void MainFrame::init_menubar() editMenu->AppendSeparator(); append_menu_item(editMenu, wxID_ANY, _(L("&Undo")) + sep + GUI::shortkey_ctrl_prefix() + sep_space + "Z", _(L("Undo")), [this](wxCommandEvent&) { m_plater->undo(); }, - "undo_menu", nullptr, [this](){return m_plater->can_undo(); }, this); + "undo", nullptr, [this](){return m_plater->can_undo(); }, this); append_menu_item(editMenu, wxID_ANY, _(L("&Redo")) + sep + GUI::shortkey_ctrl_prefix() + sep_space + "Y", _(L("Redo")), [this](wxCommandEvent&) { m_plater->redo(); }, - "redo_menu", nullptr, [this](){return m_plater->can_redo(); }, this); + "redo", nullptr, [this](){return m_plater->can_redo(); }, this); editMenu->AppendSeparator(); append_menu_item(editMenu, wxID_ANY, _(L("&Copy")) + sep + GUI::shortkey_ctrl_prefix() + sep_space + "C", @@ -668,12 +640,12 @@ void MainFrame::init_menubar() //# wxTheApp->check_version(1); //# }); //# $versioncheck->Enable(wxTheApp->have_version_check); - append_menu_item(helpMenu, wxID_ANY, wxString::Format(_(L("Slic3r Website"))), - wxString::Format(_(L("Open the Slic3r website in your browser"))), -// [this](wxCommandEvent&) { wxGetApp().open_web_page_localized("https://www.prusa3d.com/slicerweb"); }); + append_menu_item(helpMenu, wxID_ANY, wxString::Format(_(L("%s &Website")), SLIC3R_APP_NAME), + wxString::Format(_(L("Open the %s website in your browser")), SLIC3R_APP_NAME), + [this](wxCommandEvent&) { wxGetApp().open_web_page_localized("https://www.prusa3d.com/slicerweb"); }); // append_menu_item(helpMenu, wxID_ANY, wxString::Format(_(L("%s &Manual")), SLIC3R_APP_NAME), // wxString::Format(_(L("Open the %s manual in your browser")), SLIC3R_APP_NAME), - [this](wxCommandEvent&) { wxLaunchDefaultBrowser("http://manual.slic3r.org/"); }); +// [this](wxCommandEvent&) { wxLaunchDefaultBrowser("http://manual.slic3r.org/"); }); helpMenu->AppendSeparator(); append_menu_item(helpMenu, wxID_ANY, _(L("System &Info")), _(L("Show system information")), [this](wxCommandEvent&) { wxGetApp().system_info(); }); @@ -720,8 +692,7 @@ void MainFrame::update_menubar() { const bool is_fff = plater()->printer_technology() == ptFFF; - m_changeable_menu_items[miExport] ->SetItemLabel((is_fff ? _(L("Export &G-code")) : _(L("E&xport")) ) + dots + "\tCtrl+G"); - m_changeable_menu_items[miSend] ->SetItemLabel((is_fff ? _(L("S&end G-code")) : _(L("S&end to print"))) + dots + "\tCtrl+Shift+G"); + m_changeable_menu_items[miExport] ->SetItemLabel((is_fff ? _(L("Export &G-code")) : _(L("Export")) ) + dots + "\tCtrl+G"); m_changeable_menu_items[miMaterialTab] ->SetItemLabel((is_fff ? _(L("&Filament Settings Tab")) : _(L("Mate&rial Settings Tab"))) + "\tCtrl+3"); m_changeable_menu_items[miMaterialTab] ->SetBitmap(create_scaled_bitmap(this, menu_icon(is_fff ? "spool": "resin"))); @@ -744,26 +715,29 @@ void MainFrame::quick_slice(const int qs) // select input file if (!(qs & qsReslice)) { - wxFileDialog dlg(this, _(L("Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):")), + auto dlg = new wxFileDialog(this, _(L("Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):")), wxGetApp().app_config->get_last_dir(), "", file_wildcards(FT_MODEL), wxFD_OPEN | wxFD_FILE_MUST_EXIST); - if (dlg.ShowModal() != wxID_OK) + if (dlg->ShowModal() != wxID_OK) { + dlg->Destroy(); return; - input_file = dlg.GetPath(); + } + input_file = dlg->GetPath(); + dlg->Destroy(); if (!(qs & qsExportSVG)) m_qs_last_input_file = input_file; } else { if (m_qs_last_input_file.IsEmpty()) { - wxMessageDialog dlg(this, _(L("No previously sliced file.")), + auto dlg = new wxMessageDialog(this, _(L("No previously sliced file.")), _(L("Error")), wxICON_ERROR | wxOK); - dlg.ShowModal(); + dlg->ShowModal(); return; } if (std::ifstream(m_qs_last_input_file.ToUTF8().data())) { - wxMessageDialog dlg(this, _(L("Previously sliced file ("))+m_qs_last_input_file+_(L(") not found.")), + auto dlg = new wxMessageDialog(this, _(L("Previously sliced file ("))+m_qs_last_input_file+_(L(") not found.")), _(L("File Not Found")), wxICON_ERROR | wxOK); - dlg.ShowModal(); + dlg->ShowModal(); return; } input_file = m_qs_last_input_file; @@ -797,25 +771,31 @@ void MainFrame::quick_slice(const int qs) } else if (qs & qsSaveAs) { // The following line may die if the output_filename_format template substitution fails. - wxFileDialog dlg(this, wxString::Format(_(L("Save %s file as:")) , qs & qsExportSVG ? _(L("SVG")) : _(L("G-code")) ), + auto dlg = new wxFileDialog(this, wxString::Format(_(L("Save %s file as:")) , qs & qsExportSVG ? _(L("SVG")) : _(L("G-code")) ), wxGetApp().app_config->get_last_output_dir(get_dir_name(output_file)), get_base_name(input_file), qs & qsExportSVG ? file_wildcards(FT_SVG) : file_wildcards(FT_GCODE), wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - if (dlg.ShowModal() != wxID_OK) + if (dlg->ShowModal() != wxID_OK) { + dlg->Destroy(); return; - output_file = dlg.GetPath(); + } + output_file = dlg->GetPath(); + dlg->Destroy(); if (!(qs & qsExportSVG)) m_qs_last_output_file = output_file; wxGetApp().app_config->update_last_output_dir(get_dir_name(output_file)); } else if (qs & qsExportPNG) { - wxFileDialog dlg(this, _(L("Save zip file as:")), + auto dlg = new wxFileDialog(this, _(L("Save zip file as:")), wxGetApp().app_config->get_last_output_dir(get_dir_name(output_file)), get_base_name(output_file), "*.sl1", wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - if (dlg.ShowModal() != wxID_OK) + if (dlg->ShowModal() != wxID_OK) { + dlg->Destroy(); return; - output_file = dlg.GetPath(); } + output_file = dlg->GetPath(); + dlg->Destroy(); + } // show processbar dialog m_progress_dialog = new wxProgressDialog(_(L("Slicing")) + dots, @@ -860,23 +840,29 @@ void MainFrame::repair_stl() { wxString input_file; { - wxFileDialog dlg(this, _(L("Select the STL file to repair:")), + auto dlg = new wxFileDialog(this, _(L("Select the STL file to repair:")), wxGetApp().app_config->get_last_dir(), "", file_wildcards(FT_STL), wxFD_OPEN | wxFD_FILE_MUST_EXIST); - if (dlg.ShowModal() != wxID_OK) + if (dlg->ShowModal() != wxID_OK) { + dlg->Destroy(); return; - input_file = dlg.GetPath(); } + input_file = dlg->GetPath(); + dlg->Destroy(); + } wxString output_file = input_file; { - wxFileDialog dlg( this, L("Save OBJ file (less prone to coordinate errors than STL) as:"), + auto dlg = new wxFileDialog( this, L("Save OBJ file (less prone to coordinate errors than STL) as:"), get_dir_name(output_file), get_base_name(output_file, ".obj"), file_wildcards(FT_OBJ), wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - if (dlg.ShowModal() != wxID_OK) + if (dlg->ShowModal() != wxID_OK) { + dlg->Destroy(); return; - output_file = dlg.GetPath(); } + output_file = dlg->GetPath(); + dlg->Destroy(); + } auto tmesh = new Slic3r::TriangleMesh(); tmesh->ReadSTLFile(input_file.ToUTF8().data()); @@ -896,13 +882,14 @@ void MainFrame::export_config() return; } // Ask user for the file name for the config file. - wxFileDialog dlg(this, _(L("Save configuration as:")), + auto dlg = new wxFileDialog(this, _(L("Save configuration as:")), !m_last_config.IsEmpty() ? get_dir_name(m_last_config) : wxGetApp().app_config->get_last_dir(), !m_last_config.IsEmpty() ? get_base_name(m_last_config) : "config.ini", file_wildcards(FT_INI), wxFD_SAVE | wxFD_OVERWRITE_PROMPT); wxString file; - if (dlg.ShowModal() == wxID_OK) - file = dlg.GetPath(); + if (dlg->ShowModal() == wxID_OK) + file = dlg->GetPath(); + dlg->Destroy(); if (!file.IsEmpty()) { wxGetApp().app_config->update_config_dir(get_dir_name(file)); m_last_config = file; @@ -915,12 +902,13 @@ void MainFrame::load_config_file() { if (!wxGetApp().check_unsaved_changes()) return; - wxFileDialog dlg(this, _(L("Select configuration to load:")), + auto dlg = new wxFileDialog(this, _(L("Select configuration to load:")), !m_last_config.IsEmpty() ? get_dir_name(m_last_config) : wxGetApp().app_config->get_last_dir(), "config.ini", "INI files (*.ini, *.gcode)|*.ini;*.INI;*.gcode;*.g", wxFD_OPEN | wxFD_FILE_MUST_EXIST); wxString file; - if (dlg.ShowModal() == wxID_OK) - file = dlg.GetPath(); + if (dlg->ShowModal() == wxID_OK) + file = dlg->GetPath(); + dlg->Destroy(); if (! file.IsEmpty() && this->load_config_file(file.ToUTF8().data())) { wxGetApp().app_config->update_config_dir(get_dir_name(file)); m_last_config = file; @@ -951,13 +939,14 @@ void MainFrame::export_configbundle() return; } // Ask user for a file name. - wxFileDialog dlg(this, _(L("Save presets bundle as:")), + auto dlg = new wxFileDialog(this, _(L("Save presets bundle as:")), !m_last_config.IsEmpty() ? get_dir_name(m_last_config) : wxGetApp().app_config->get_last_dir(), SLIC3R_APP_KEY "_config_bundle.ini", file_wildcards(FT_INI), wxFD_SAVE | wxFD_OVERWRITE_PROMPT); wxString file; - if (dlg.ShowModal() == wxID_OK) - file = dlg.GetPath(); + if (dlg->ShowModal() == wxID_OK) + file = dlg->GetPath(); + dlg->Destroy(); if (!file.IsEmpty()) { // Export the config bundle. wxGetApp().app_config->update_config_dir(get_dir_name(file)); @@ -977,13 +966,16 @@ void MainFrame::load_configbundle(wxString file/* = wxEmptyString, const bool re if (!wxGetApp().check_unsaved_changes()) return; if (file.IsEmpty()) { - wxFileDialog dlg(this, _(L("Select configuration to load:")), + auto dlg = new wxFileDialog(this, _(L("Select configuration to load:")), !m_last_config.IsEmpty() ? get_dir_name(m_last_config) : wxGetApp().app_config->get_last_dir(), "config.ini", file_wildcards(FT_INI), wxFD_OPEN | wxFD_FILE_MUST_EXIST); - if (dlg.ShowModal() != wxID_OK) + if (dlg->ShowModal() != wxID_OK) { + dlg->Destroy(); return; - file = dlg.GetPath(); } + file = dlg->GetPath(); + dlg->Destroy(); + } wxGetApp().app_config->update_config_dir(get_dir_name(file)); diff --git a/src/slic3r/GUI/MainFrame.hpp b/src/slic3r/GUI/MainFrame.hpp index 28bd0242b5c..a41f33824d8 100644 --- a/src/slic3r/GUI/MainFrame.hpp +++ b/src/slic3r/GUI/MainFrame.hpp @@ -1,4 +1,4 @@ -#ifndef slic3r_MainFrame_hpp_ +#ifndef slic3r_MainFrame_hpp_ #define slic3r_MainFrame_hpp_ #include "libslic3r/PrintConfig.hpp" @@ -50,9 +50,8 @@ class MainFrame : public DPIFrame wxString m_qs_last_input_file = wxEmptyString; wxString m_qs_last_output_file = wxEmptyString; wxString m_last_config = wxEmptyString; -#if 0 - wxMenuItem* m_menu_item_repeat { nullptr }; // doesn't used now -#endif + + wxMenuItem* m_menu_item_repeat { nullptr }; wxMenuItem* m_menu_item_reslice_now { nullptr }; PrintHostQueueDialog *m_printhost_queue_dlg; @@ -66,10 +65,8 @@ class MainFrame : public DPIFrame bool can_start_new_project() const; bool can_save() const; bool can_export_model() const; - bool can_export_toolpaths() const; bool can_export_supports() const; bool can_export_gcode() const; - bool can_send_gcode() const; bool can_slice() const; bool can_change_view() const; bool can_select() const; @@ -82,7 +79,6 @@ class MainFrame : public DPIFrame enum MenuItems { // FFF SLA miExport = 0, // Export G-code Export - miSend, // Send G-code Send to print miMaterialTab, // Filament Settings Material Settings }; diff --git a/src/slic3r/GUI/MeshUtils.cpp b/src/slic3r/GUI/MeshUtils.cpp deleted file mode 100644 index 449ab3a727b..00000000000 --- a/src/slic3r/GUI/MeshUtils.cpp +++ /dev/null @@ -1,265 +0,0 @@ -#include "MeshUtils.hpp" - -#include "libslic3r/Tesselate.hpp" -#include "libslic3r/TriangleMesh.hpp" - -#include "slic3r/GUI/Camera.hpp" - -// There is an L function in igl that would be overridden by our localization macro. -#undef L -#include - -#include - - -namespace Slic3r { -namespace GUI { - -void MeshClipper::set_plane(const ClippingPlane& plane) -{ - if (m_plane != plane) { - m_plane = plane; - m_triangles_valid = false; - } -} - - - -void MeshClipper::set_mesh(const TriangleMesh& mesh) -{ - if (m_mesh != &mesh) { - m_mesh = &mesh; - m_triangles_valid = false; - m_triangles2d.resize(0); - m_triangles3d.resize(0); - m_tms.reset(nullptr); - } -} - - - -void MeshClipper::set_transformation(const Geometry::Transformation& trafo) -{ - if (! m_trafo.get_matrix().isApprox(trafo.get_matrix())) { - m_trafo = trafo; - m_triangles_valid = false; - m_triangles2d.resize(0); - m_triangles3d.resize(0); - } -} - - - -const std::vector& MeshClipper::get_triangles() -{ - if (! m_triangles_valid) - recalculate_triangles(); - - return m_triangles3d; -} - - - -void MeshClipper::recalculate_triangles() -{ - if (! m_tms) { - m_tms.reset(new TriangleMeshSlicer(m_mesh)); - } - - const Transform3f& instance_matrix_no_translation_no_scaling = m_trafo.get_matrix(true,false,true).cast(); - const Vec3f& scaling = m_trafo.get_scaling_factor().cast(); - // Calculate clipping plane normal in mesh coordinates. - Vec3f up_noscale = instance_matrix_no_translation_no_scaling.inverse() * m_plane.get_normal().cast(); - Vec3f up (up_noscale(0)*scaling(0), up_noscale(1)*scaling(1), up_noscale(2)*scaling(2)); - // Calculate distance from mesh origin to the clipping plane (in mesh coordinates). - float height_mesh = m_plane.distance(m_trafo.get_offset()) * (up_noscale.norm()/up.norm()); - - // Now do the cutting - std::vector list_of_expolys; - m_tms->set_up_direction(up); - m_tms->slice(std::vector{height_mesh}, &list_of_expolys, [](){}); - m_triangles2d = triangulate_expolygons_2f(list_of_expolys[0], m_trafo.get_matrix().matrix().determinant() < 0.); - - // Rotate the cut into world coords: - Eigen::Quaternionf q; - q.setFromTwoVectors(Vec3f::UnitZ(), up); - Transform3f tr = Transform3f::Identity(); - tr.rotate(q); - tr = m_trafo.get_matrix().cast() * tr; - - m_triangles3d.clear(); - m_triangles3d.reserve(m_triangles2d.size()); - for (const Vec2f& pt : m_triangles2d) { - m_triangles3d.push_back(Vec3f(pt(0), pt(1), height_mesh+0.001f)); - m_triangles3d.back() = tr * m_triangles3d.back(); - } - - m_triangles_valid = true; -} - - -class MeshRaycaster::AABBWrapper { -public: - AABBWrapper(const TriangleMesh* mesh); - ~AABBWrapper() { m_AABB.deinit(); } - - typedef Eigen::Map> MapMatrixXfUnaligned; - typedef Eigen::Map> MapMatrixXiUnaligned; - igl::AABB m_AABB; - - Vec3f get_hit_pos(const igl::Hit& hit) const; - Vec3f get_hit_normal(const igl::Hit& hit) const; - -private: - const TriangleMesh* m_mesh; -}; - -MeshRaycaster::AABBWrapper::AABBWrapper(const TriangleMesh* mesh) - : m_mesh(mesh) -{ - m_AABB.init( - MapMatrixXfUnaligned(m_mesh->its.vertices.front().data(), m_mesh->its.vertices.size(), 3), - MapMatrixXiUnaligned(m_mesh->its.indices.front().data(), m_mesh->its.indices.size(), 3)); -} - - -MeshRaycaster::MeshRaycaster(const TriangleMesh& mesh) - : m_AABB_wrapper(new AABBWrapper(&mesh)), m_mesh(&mesh) -{ -} - -MeshRaycaster::~MeshRaycaster() -{ - delete m_AABB_wrapper; -} - -Vec3f MeshRaycaster::AABBWrapper::get_hit_pos(const igl::Hit& hit) const -{ - const stl_triangle_vertex_indices& indices = m_mesh->its.indices[hit.id]; - return Vec3f((1-hit.u-hit.v) * m_mesh->its.vertices[indices(0)] - + hit.u * m_mesh->its.vertices[indices(1)] - + hit.v * m_mesh->its.vertices[indices(2)]); -} - - -Vec3f MeshRaycaster::AABBWrapper::get_hit_normal(const igl::Hit& hit) const -{ - const stl_triangle_vertex_indices& indices = m_mesh->its.indices[hit.id]; - Vec3f a(m_mesh->its.vertices[indices(1)] - m_mesh->its.vertices[indices(0)]); - Vec3f b(m_mesh->its.vertices[indices(2)] - m_mesh->its.vertices[indices(0)]); - return Vec3f(a.cross(b)); -} - - -bool MeshRaycaster::unproject_on_mesh(const Vec2d& mouse_pos, const Transform3d& trafo, - const Camera& camera, std::vector* positions, std::vector* normals) const -{ - const std::array& viewport = camera.get_viewport(); - const Transform3d& model_mat = camera.get_view_matrix(); - const Transform3d& proj_mat = camera.get_projection_matrix(); - - Vec3d pt1; - Vec3d pt2; - ::gluUnProject(mouse_pos(0), viewport[3] - mouse_pos(1), 0., model_mat.data(), proj_mat.data(), viewport.data(), &pt1(0), &pt1(1), &pt1(2)); - ::gluUnProject(mouse_pos(0), viewport[3] - mouse_pos(1), 1., model_mat.data(), proj_mat.data(), viewport.data(), &pt2(0), &pt2(1), &pt2(2)); - - std::vector hits; - - Transform3d inv = trafo.inverse(); - - pt1 = inv * pt1; - pt2 = inv * pt2; - - if (! m_AABB_wrapper->m_AABB.intersect_ray( - AABBWrapper::MapMatrixXfUnaligned(m_mesh->its.vertices.front().data(), m_mesh->its.vertices.size(), 3), - AABBWrapper::MapMatrixXiUnaligned(m_mesh->its.indices.front().data(), m_mesh->its.indices.size(), 3), - pt1.cast(), (pt2-pt1).cast(), hits)) - return false; // no intersection found - - std::sort(hits.begin(), hits.end(), [](const igl::Hit& a, const igl::Hit& b) { return a.t < b.t; }); - - // Now stuff the points in the provided vector and calculate normals if asked about them: - if (positions != nullptr) { - positions->clear(); - if (normals != nullptr) - normals->clear(); - for (const igl::Hit& hit : hits) { - positions->push_back(m_AABB_wrapper->get_hit_pos(hit)); - - if (normals != nullptr) - normals->push_back(m_AABB_wrapper->get_hit_normal(hit)); - } - } - - return true; -} - - -std::vector MeshRaycaster::get_unobscured_idxs(const Geometry::Transformation& trafo, const Camera& camera, const std::vector& points, - std::function fn_ignore_hit) const -{ - std::vector out; - - const Transform3d& instance_matrix_no_translation_no_scaling = trafo.get_matrix(true,false,true); - Vec3f direction_to_camera = -camera.get_dir_forward().cast(); - Vec3f direction_to_camera_mesh = (instance_matrix_no_translation_no_scaling.inverse().cast() * direction_to_camera).normalized().eval(); - Vec3f scaling = trafo.get_scaling_factor().cast(); - direction_to_camera_mesh = Vec3f(direction_to_camera_mesh(0)*scaling(0), direction_to_camera_mesh(1)*scaling(1), direction_to_camera_mesh(2)*scaling(2)); - - for (size_t i=0; i hits; - // Offset the start of the ray to the front of the ball + EPSILON to account for numerical inaccuracies. - if (m_AABB_wrapper->m_AABB.intersect_ray( - AABBWrapper::MapMatrixXfUnaligned(m_mesh->its.vertices.front().data(), m_mesh->its.vertices.size(), 3), - AABBWrapper::MapMatrixXiUnaligned(m_mesh->its.indices.front().data(), m_mesh->its.indices.size(), 3), - pt + direction_to_camera_mesh * EPSILON, direction_to_camera_mesh, hits)) { - - std::sort(hits.begin(), hits.end(), [](const igl::Hit& h1, const igl::Hit& h2) { return h1.t < h2.t; }); - // If the closest hit facet normal points in the same direction as the ray, - // we are looking through the mesh and should therefore discard the point: - if (m_AABB_wrapper->get_hit_normal(hits.front()).dot(direction_to_camera_mesh) > 0.f) - is_obscured = true; - - // Eradicate all hits that the caller wants to ignore - for (unsigned j=0; jget_hit_pos(hit))) { - hits.erase(hits.begin()+j); - --j; - } - } - // FIXME: the intersection could in theory be behind the camera, but as of now we only have camera direction. - // Also, the threshold is in mesh coordinates, not in actual dimensions. - if (! hits.empty()) - is_obscured = true; - } - if (! is_obscured) - out.push_back(i); - } - return out; -} - - -Vec3f MeshRaycaster::get_closest_point(const Vec3f& point, Vec3f* normal) const -{ - int idx = 0; - Eigen::Matrix closest_point; - m_AABB_wrapper->m_AABB.squared_distance( - AABBWrapper::MapMatrixXfUnaligned(m_mesh->its.vertices.front().data(), m_mesh->its.vertices.size(), 3), - AABBWrapper::MapMatrixXiUnaligned(m_mesh->its.indices.front().data(), m_mesh->its.indices.size(), 3), - point, idx, closest_point); - if (normal) { - igl::Hit imag_hit; - imag_hit.id = idx; - *normal = m_AABB_wrapper->get_hit_normal(imag_hit); - } - return closest_point; -} - - - -} // namespace GUI -} // namespace Slic3r diff --git a/src/slic3r/GUI/MeshUtils.hpp b/src/slic3r/GUI/MeshUtils.hpp deleted file mode 100644 index a2be2677bd1..00000000000 --- a/src/slic3r/GUI/MeshUtils.hpp +++ /dev/null @@ -1,120 +0,0 @@ -#ifndef slic3r_MeshUtils_hpp_ -#define slic3r_MeshUtils_hpp_ - -#include "libslic3r/Point.hpp" -#include "libslic3r/Geometry.hpp" - - -#include - -namespace Slic3r { - -class TriangleMesh; -class TriangleMeshSlicer; - -namespace GUI { - -struct Camera; - - - -class ClippingPlane -{ - double m_data[4]; - -public: - ClippingPlane() - { - m_data[0] = 0.0; - m_data[1] = 0.0; - m_data[2] = 1.0; - m_data[3] = 0.0; - } - - ClippingPlane(const Vec3d& direction, double offset) - { - Vec3d norm_dir = direction.normalized(); - m_data[0] = norm_dir(0); - m_data[1] = norm_dir(1); - m_data[2] = norm_dir(2); - m_data[3] = offset; - } - - bool operator==(const ClippingPlane& cp) const { - return m_data[0]==cp.m_data[0] && m_data[1]==cp.m_data[1] && m_data[2]==cp.m_data[2] && m_data[3]==cp.m_data[3]; - } - bool operator!=(const ClippingPlane& cp) const { return ! (*this==cp); } - - double distance(const Vec3d& pt) const { - assert(is_approx(get_normal().norm(), 1.)); - return (-get_normal().dot(pt) + m_data[3]); - } - - void set_normal(const Vec3d& normal) { for (size_t i=0; i<3; ++i) m_data[i] = normal(i); } - void set_offset(double offset) { m_data[3] = offset; } - Vec3d get_normal() const { return Vec3d(m_data[0], m_data[1], m_data[2]); } - bool is_active() const { return m_data[3] != DBL_MAX; } - static ClippingPlane ClipsNothing() { return ClippingPlane(Vec3d(0., 0., 1.), DBL_MAX); } - const double* get_data() const { return m_data; } - - // Serialization through cereal library - template - void serialize( Archive & ar ) - { - ar( m_data[0], m_data[1], m_data[2], m_data[3] ); - } -}; - - - -class MeshClipper { -public: - void set_plane(const ClippingPlane& plane); - void set_mesh(const TriangleMesh& mesh); - void set_transformation(const Geometry::Transformation& trafo); - - const std::vector& get_triangles(); - -private: - void recalculate_triangles(); - - Geometry::Transformation m_trafo; - const TriangleMesh* m_mesh = nullptr; - ClippingPlane m_plane; - std::vector m_triangles2d; - std::vector m_triangles3d; - bool m_triangles_valid = false; - std::unique_ptr m_tms; -}; - - - - -class MeshRaycaster { -public: - MeshRaycaster(const TriangleMesh& mesh); - ~MeshRaycaster(); - void set_transformation(const Geometry::Transformation& trafo); - void set_camera(const Camera& camera); - - bool unproject_on_mesh(const Vec2d& mouse_pos, const Transform3d& trafo, const Camera& camera, - std::vector* positions = nullptr, std::vector* normals = nullptr) const; - - std::vector get_unobscured_idxs(const Geometry::Transformation& trafo, const Camera& camera, - const std::vector& points, std::function fn_ignore_hit) const; - - Vec3f get_closest_point(const Vec3f& point, Vec3f* normal = nullptr) const; - -private: - // PIMPL wrapper around igl::AABB so I don't have to include the header-only IGL here - class AABBWrapper; - AABBWrapper* m_AABB_wrapper; - const TriangleMesh* m_mesh = nullptr; -}; - - -} // namespace GUI -} // namespace Slic3r - - -#endif // slic3r_MeshUtils_hpp_ diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index 5a492984959..ad4bbcc9713 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -8,6 +8,8 @@ #include #include +#include "slic3r/Utils/Semver.hpp" + class wxBoxSizer; class wxCheckBox; class wxStaticBitmap; diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index 1041a71b107..43586d821cf 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -1,4 +1,4 @@ -#include "OptionsGroup.hpp" +#include "OptionsGroup.hpp" #include "ConfigExceptions.hpp" #include @@ -246,7 +246,7 @@ void OptionsGroup::append_line(const Line& line, wxStaticText** full_Label/* = n // add label if any if (option.label != "") { //! To correct translation by context have to use wxGETTEXT_IN_CONTEXT macro from wxWidget 3.1.1 - wxString str_label = (option.label == L_CONTEXT("Top", "Layers") || option.label == L_CONTEXT("Bottom", "Layers")) ? + wxString str_label = (option.label == "Top" || option.label == "Bottom") ? _CTX(option.label, "Layers") : _(option.label); label = new wxStaticText(this->ctrl_parent(), wxID_ANY, str_label + ":", wxDefaultPosition, wxDefaultSize); @@ -457,9 +457,8 @@ void ConfigOptionsGroup::Show(const bool show) bool ConfigOptionsGroup::update_visibility(ConfigOptionMode mode) { if (m_options_mode.empty()) return true; - int opt_mode_size = m_options_mode.size(); - if (m_grid_sizer->GetEffectiveRowsCount() != opt_mode_size && - opt_mode_size == 1) + if (m_grid_sizer->GetEffectiveRowsCount() != m_options_mode.size() && + m_options_mode.size() == 1) return m_options_mode[0] <= mode; Show(true); @@ -477,7 +476,7 @@ bool ConfigOptionsGroup::update_visibility(ConfigOptionMode mode) { coef+= cols; } - if (hidden_row_cnt == opt_mode_size) { + if (hidden_row_cnt == m_options_mode.size()) { sizer->ShowItems(false); return false; } @@ -590,11 +589,13 @@ boost::any ConfigOptionsGroup::get_config_value(const DynamicPrintConfig& config switch (opt->type) { case coFloatOrPercent:{ const auto &value = *config.option(opt_key); - - text_value = double_to_string(value.value); if (value.percent) + { + text_value = wxString::Format(_T("%i"), int(value.value)); text_value += "%"; - + } + else + text_value = double_to_string(value.value); ret = text_value; break; } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 94383624a3e..dbce7c049bf 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -290,17 +290,17 @@ wxBitmapComboBox(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(15 * auto colors = static_cast(cfg->option("extruder_colour")->clone()); wxColour clr(colors->values[extruder_idx]); if (!clr.IsOk()) - clr = wxColour(0,0,0); // Don't set alfa to transparence + clr = wxTransparentColour; auto data = new wxColourData(); data->SetChooseFull(1); data->SetColour(clr); - wxColourDialog dialog(this, data); - dialog.CenterOnParent(); - if (dialog.ShowModal() == wxID_OK) + auto dialog = new wxColourDialog(this, data); + dialog->CenterOnParent(); + if (dialog->ShowModal() == wxID_OK) { - colors->values[extruder_idx] = dialog.GetColourData().GetColour().GetAsString(wxC2S_HTML_SYNTAX); + colors->values[extruder_idx] = dialog->GetColourData().GetColour().GetAsString(wxC2S_HTML_SYNTAX); DynamicPrintConfig cfg_new = *cfg; cfg_new.set_key_value("extruder_colour", colors); @@ -309,6 +309,7 @@ wxBitmapComboBox(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(15 * wxGetApp().preset_bundle->update_platter_filament_ui(extruder_idx, this); wxGetApp().plater()->on_config_change(cfg_new); } + dialog->Destroy(); }); } @@ -510,31 +511,24 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent) : option.opt.sidetext = ""; line.append_option(option); - auto wiping_dialog_btn = [this](wxWindow* parent) { + auto wiping_dialog_btn = [config, this](wxWindow* parent) { m_wiping_dialog_button = new wxButton(parent, wxID_ANY, _(L("Purging volumes")) + dots, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); m_wiping_dialog_button->SetFont(wxGetApp().normal_font()); auto sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(m_wiping_dialog_button, 0, wxALIGN_CENTER_VERTICAL); m_wiping_dialog_button->Bind(wxEVT_BUTTON, ([parent](wxCommandEvent& e) { - auto &project_config = wxGetApp().preset_bundle->project_config; - const std::vector &init_matrix = (project_config.option("wiping_volumes_matrix"))->values; - const std::vector &init_extruders = (project_config.option("wiping_volumes_extruders"))->values; + auto &config = wxGetApp().preset_bundle->project_config; + const std::vector &init_matrix = (config.option("wiping_volumes_matrix"))->values; + const std::vector &init_extruders = (config.option("wiping_volumes_extruders"))->values; - const DynamicPrintConfig* config = &wxGetApp().preset_bundle->printers.get_edited_preset().config; - std::vector extruder_colours = (config->option("extruder_colour"))->values; - const std::vector& filament_colours = (wxGetApp().plater()->get_plater_config()->option("filament_colour"))->values; - for (size_t i=0; i(init_matrix), cast(init_extruders), extruder_colours); + WipingDialog dlg(parent, cast(init_matrix), cast(init_extruders)); if (dlg.ShowModal() == wxID_OK) { std::vector matrix = dlg.get_matrix(); std::vector extruders = dlg.get_extruders(); - (project_config.option("wiping_volumes_matrix"))->values = std::vector(matrix.begin(), matrix.end()); - (project_config.option("wiping_volumes_extruders"))->values = std::vector(extruders.begin(), extruders.end()); + (config.option("wiping_volumes_matrix"))->values = std::vector(matrix.begin(), matrix.end()); + (config.option("wiping_volumes_extruders"))->values = std::vector(extruders.begin(), extruders.end()); wxPostEvent(parent, SimpleEvent(EVT_SCHEDULE_BACKGROUND_PROCESS, parent)); } })); @@ -562,21 +556,14 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent) : Tab* tab = wxGetApp().get_tab(Preset::TYPE_SLA_PRINT); if (!tab) return; - DynamicPrintConfig new_conf = *config_sla; - if (opt_key == "pad") { - const wxString& selection = boost::any_cast(value); - - const bool pad_enable = selection == _("None") ? false : true; - new_conf.set_key_value("pad_enable", new ConfigOptionBool(pad_enable)); - - if (selection == _("Below object")) - new_conf.set_key_value("pad_around_object", new ConfigOptionBool(false)); - else if (selection == _("Around object")) - new_conf.set_key_value("pad_around_object", new ConfigOptionBool(true)); + if (opt_key == "pad_enable") { + tab->set_value(opt_key, value); + tab->update(); } else { assert(opt_key == "support"); + DynamicPrintConfig new_conf = *config_sla; const wxString& selection = boost::any_cast(value); const bool supports_enable = selection == _("None") ? false : true; @@ -586,9 +573,10 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent) : new_conf.set_key_value("support_buildplate_only", new ConfigOptionBool(false)); else if (selection == _("Support on build plate only")) new_conf.set_key_value("support_buildplate_only", new ConfigOptionBool(true)); - } tab->load_config(new_conf); + } + tab->update_dirty(); }; @@ -606,19 +594,9 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent) : line = Line{ "", "" }; - ConfigOptionDef pad_def; - pad_def.label = L("Pad"); - pad_def.type = coStrings; - pad_def.gui_type = "select_open"; - pad_def.tooltip = L("Select what kind of pad do you need"); - pad_def.enum_labels.push_back(L("None")); - pad_def.enum_labels.push_back(L("Below object")); - pad_def.enum_labels.push_back(L("Around object")); - pad_def.set_default_value(new ConfigOptionStrings{ "Below object" }); - option = Option(pad_def, "pad"); - option.opt.full_width = true; + option = m_og_sla->get_option("pad_enable"); + option.opt.sidetext = " "; line.append_option(option); - line.append_widget(empty_widget); m_og_sla->append_line(line); @@ -731,8 +709,8 @@ void Sidebar::priv::show_preset_comboboxes() Sidebar::Sidebar(Plater *parent) : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(40 * wxGetApp().em_unit(), -1)), p(new priv(parent)) { - p->scrolled = new wxScrolledWindow(this); - p->scrolled->SetScrollbars(0, 100, 1, 2); + p->scrolled = new wxScrolledWindow(this, wxID_ANY/*, wxDefaultPosition, wxSize(40 * wxGetApp().em_unit(), -1)*/); + p->scrolled->SetScrollbars(0, 20, 1, 2); // Sizer in the scrolled area @@ -888,7 +866,7 @@ void Sidebar::init_filament_combo(PresetComboBox **combo, const int extr_idx) { sizer_filaments->Add(combo_and_btn_sizer, 1, wxEXPAND | wxBOTTOM, 1); } -void Sidebar::remove_unused_filament_combos(const size_t current_extruder_count) +void Sidebar::remove_unused_filament_combos(const int current_extruder_count) { if (current_extruder_count >= p->combos_filament.size()) return; @@ -931,9 +909,9 @@ void Sidebar::update_presets(Preset::Type preset_type) switch (preset_type) { case Preset::TYPE_FILAMENT: { - const size_t extruder_cnt = print_tech != ptFFF ? 1 : + const int extruder_cnt = print_tech != ptFFF ? 1 : dynamic_cast(preset_bundle.printers.get_edited_preset().config.option("nozzle_diameter"))->values.size(); - const size_t filament_cnt = p->combos_filament.size() > extruder_cnt ? extruder_cnt : p->combos_filament.size(); + const int filament_cnt = p->combos_filament.size() > extruder_cnt ? extruder_cnt : p->combos_filament.size(); if (filament_cnt == 1) { // Single filament printer, synchronize the filament presets. @@ -1056,7 +1034,7 @@ wxButton* Sidebar::get_wiping_dialog_button() return p->frequently_changed_parameters->get_wiping_dialog_button(); } -void Sidebar::update_objects_list_extruder_column(size_t extruders_count) +void Sidebar::update_objects_list_extruder_column(int extruders_count) { p->object_list->update_objects_list_extruder_column(extruders_count); } @@ -1080,6 +1058,8 @@ void Sidebar::show_info_sizer() return; } + const ModelInstance* model_instance = !model_object->instances.empty() ? model_object->instances.front() : nullptr; + auto size = model_object->bounding_box().size(); p->object_info->info_size->SetLabel(wxString::Format("%.2f x %.2f x %.2f",size(0), size(1), size(2))); p->object_info->info_materials->SetLabel(wxString::Format("%d", static_cast(model_object->materials_count()))); @@ -1140,8 +1120,7 @@ void Sidebar::show_sliced_info_sizer(const bool show) p->sliced_info->SetTextAndShow(siMateril_unit, info_text, new_label); p->sliced_info->SetTextAndShow(siCost, "N/A"/*wxString::Format("%.2f", ps.total_cost)*/); - wxString t_est = std::isnan(ps.estimated_print_time) ? "N/A" : get_time_dhms(float(ps.estimated_print_time)); - p->sliced_info->SetTextAndShow(siEstimatedTime, t_est, _(L("Estimated printing time")) + " :"); + p->sliced_info->SetTextAndShow(siEstimatedTime, ps.estimated_print_time, _(L("Estimated printing time")) + " :"); // Hide non-SLA sliced info parameters p->sliced_info->SetTextAndShow(siFilament_m, "N/A"); @@ -1190,17 +1169,17 @@ void Sidebar::show_sliced_info_sizer(const bool show) info_text += wxString::Format("\n%s", ps.estimated_normal_print_time); for (int i = (int)ps.estimated_normal_color_print_times.size() - 1; i >= 0; --i) { - new_label += wxString::Format("\n - %s%d", _(L("Color")) + " ", i + 1); + new_label += wxString::Format("\n - %s%d", _(L("Color ")), i + 1); info_text += wxString::Format("\n%s", ps.estimated_normal_color_print_times[i]); } } if (ps.estimated_silent_print_time != "N/A") { new_label += wxString::Format("\n - %s", _(L("stealth mode"))); info_text += wxString::Format("\n%s", ps.estimated_silent_print_time); - for (int i = (int)ps.estimated_silent_color_print_times.size() - 1; i >= 0; --i) + for (int i = (int)ps.estimated_normal_color_print_times.size() - 1; i >= 0; --i) { - new_label += wxString::Format("\n - %s%d", _(L("Color")) + " ", i + 1); - info_text += wxString::Format("\n%s", ps.estimated_silent_color_print_times[i]); + new_label += wxString::Format("\n - %s%d", _(L("Color ")), i + 1); + info_text += wxString::Format("\n%s", ps.estimated_normal_color_print_times[i]); } } p->sliced_info->SetTextAndShow(siEstimatedTime, info_text, new_label); @@ -1307,12 +1286,11 @@ bool PlaterDropTarget::OnDropFiles(wxCoord x, wxCoord y, const wxArrayString &fi // FIXME: when drag and drop is done on a .3mf or a .amf file we should clear the plater for consistence with the open project command // (the following call to plater->load_files() will load the config data, if present) - std::vector res = plater->load_files(paths); + plater->load_files(paths); // because right now the plater is not cleared, we set the project file (from the latest imported .3mf or .amf file) // only if not set yet - // if res is empty no data has been loaded - if (!res.empty() && plater->get_project_filename().empty()) + if (plater->get_project_filename().empty()) { for (std::vector::const_reverse_iterator it = paths.rbegin(); it != paths.rend(); ++it) { @@ -1341,8 +1319,6 @@ struct Plater::priv MenuWithSeparators part_menu; // SLA-Object popup menu MenuWithSeparators sla_object_menu; - // Default popup menu (when nothing is selected on 3DScene) - MenuWithSeparators default_menu; // Removed/Prepended Items according to the view mode std::vector items_increase; @@ -1467,7 +1443,7 @@ struct Plater::priv // Do a full refresh of scene tree, including regenerating // all the GLVolumes. FIXME The update function shall just // reload the modified matrices. - if (!was_canceled()) plater().update((unsigned int)UpdateParams::FORCE_FULL_SCREEN_REFRESH); + if (!was_canceled()) plater().update(true); } public: @@ -1686,7 +1662,7 @@ struct Plater::priv // Apply the arrange result to all selected objects for (ArrangePolygon &ap : m_selected) ap.apply(); - plater().update(); + plater().update(false /*dont force_full_scene_refresh*/); } }; @@ -1769,20 +1745,10 @@ struct Plater::priv priv(Plater *q, MainFrame *main_frame); ~priv(); - enum class UpdateParams { - FORCE_FULL_SCREEN_REFRESH = 1, - FORCE_BACKGROUND_PROCESSING_UPDATE = 2, - POSTPONE_VALIDATION_ERROR_MESSAGE = 4, - }; - void update(unsigned int flags = 0); + void update(bool force_full_scene_refresh = false, bool force_background_processing_update = false); void select_view(const std::string& direction); void select_view_3D(const std::string& name); void select_next_view_3D(); - - bool is_preview_shown() const { return current_panel == preview; } - bool is_preview_loaded() const { return preview->is_loaded(); } - bool is_view3D_shown() const { return current_panel == view3D; } - void reset_all_gizmos(); void update_ui_from_settings(); ProgressStatusBar* statusbar(); @@ -1852,18 +1818,11 @@ struct Plater::priv UPDATE_BACKGROUND_PROCESS_FORCE_EXPORT = 16, }; // returns bit mask of UpdateBackgroundProcessReturnState - unsigned int update_background_process(bool force_validation = false, bool postpone_error_messages = false); + unsigned int update_background_process(bool force_validation = false); // Restart background processing thread based on a bitmask of UpdateBackgroundProcessReturnState. bool restart_background_process(unsigned int state); // returns bit mask of UpdateBackgroundProcessReturnState unsigned int update_restart_background_process(bool force_scene_update, bool force_preview_update); - void show_delayed_error_message() { - if (!this->delayed_error_message.empty()) { - std::string msg = std::move(this->delayed_error_message); - this->delayed_error_message.clear(); - GUI::show_error(this->q, msg); - } - } void export_gcode(fs::path output_path, PrintHostJob upload_job); void reload_from_disk(); void fix_through_netfabb(const int obj_idx, const int vol_idx = -1); @@ -1882,7 +1841,7 @@ struct Plater::priv void on_action_layersediting(SimpleEvent&); void on_object_select(SimpleEvent&); - void on_right_click(RBtnEvent&); + void on_right_click(Vec2dEvent&); void on_wipetower_moved(Vec3dEvent&); void on_wipetower_rotated(Vec3dEvent&); void on_update_geometry(Vec3dsEvent<2>&); @@ -1930,7 +1889,7 @@ struct Plater::priv void update_fff_scene(); void update_sla_scene(); void undo_redo_to(std::vector::const_iterator it_snapshot); - void update_after_undo_redo(const UndoRedo::Snapshot& snapshot, bool temp_snapshot_was_taken = false); + void update_after_undo_redo(bool temp_snapshot_was_taken = false); // path to project file stored with no extension wxString m_project_filename; @@ -1944,7 +1903,6 @@ struct Plater::priv * */ std::string m_last_fff_printer_profile_name; std::string m_last_sla_printer_profile_name; - bool m_update_objects_list_on_loading{ true }; }; const std::regex Plater::priv::pattern_bundle(".*[.](amf|amf[.]xml|zip[.]amf|3mf|prusa)", std::regex::icase); @@ -2105,7 +2063,7 @@ Plater::priv::~priv() delete config; } -void Plater::priv::update(unsigned int flags) +void Plater::priv::update(bool force_full_scene_refresh, bool force_background_processing_update) { // the following line, when enabled, causes flickering on NVIDIA graphics cards // wxWindowUpdateLocker freeze_guard(q); @@ -2118,11 +2076,11 @@ void Plater::priv::update(unsigned int flags) } unsigned int update_status = 0; - if (this->printer_technology == ptSLA || (flags & (unsigned int)UpdateParams::FORCE_BACKGROUND_PROCESSING_UPDATE)) + if (this->printer_technology == ptSLA || force_background_processing_update) // Update the SLAPrint from the current Model, so that the reload_scene() // pulls the correct data. - update_status = this->update_background_process(false, flags & (unsigned int)UpdateParams::POSTPONE_VALIDATION_ERROR_MESSAGE); - this->view3D->reload_scene(false, flags & (unsigned int)UpdateParams::FORCE_FULL_SCREEN_REFRESH); + update_status = this->update_background_process(false); + this->view3D->reload_scene(false, force_full_scene_refresh); this->preview->reload_print(); if (this->printer_technology == ptSLA) this->restart_background_process(update_status); @@ -2238,7 +2196,7 @@ std::vector Plater::priv::load_files(const std::vector& input_ DynamicPrintConfig config; { DynamicPrintConfig config_loaded; - model = Slic3r::Model::read_from_archive(path.string(), &config_loaded, false, load_config); + model = Slic3r::Model::read_from_archive(path.string(), &config_loaded, false); if (load_config && !config_loaded.empty()) { // Based on the printer technology field found in the loaded config, select the base for the config, PrinterTechnology printer_technology = Preset::printer_technology(config_loaded); @@ -2251,7 +2209,7 @@ std::vector Plater::priv::load_files(const std::vector& input_ if (object->volumes.size() > 1) { Slic3r::GUI::show_info(nullptr, - _(L("You can't load SLA project if there is at least one multi-part object on the bed")) + "\n\n" + + _(L("You can't to load SLA project if there is at least one multi-part object on the bed")) + "\n\n" + _(L("Please check your object list before preset changing.")), _(L("Attention!"))); return obj_idxs; @@ -2278,7 +2236,7 @@ std::vector Plater::priv::load_files(const std::vector& input_ } } else { - model = Slic3r::Model::read_from_file(path.string(), nullptr, false, load_config); + model = Slic3r::Model::read_from_file(path.string(), nullptr, false); for (auto obj : model.objects) if (obj->name.empty()) obj->name = fs::path(obj->input_file).filename().string(); @@ -2294,20 +2252,20 @@ std::vector Plater::priv::load_files(const std::vector& input_ if (! is_project_file) { if (model.looks_like_multipart_object()) { - wxMessageDialog msg_dlg(q, _(L( + wxMessageDialog dlg(q, _(L( "This file contains several objects positioned at multiple heights. " "Instead of considering them as multiple objects, should I consider\n" "this file as a single object having multiple parts?\n" )), _(L("Multi-part object detected")), wxICON_WARNING | wxYES | wxNO); - if (msg_dlg.ShowModal() == wxID_YES) { + if (dlg.ShowModal() == wxID_YES) { model.convert_multipart_object(nozzle_dmrs->values.size()); } } } else if ((wxGetApp().get_mode() == comSimple) && (type_3mf || type_any_amf) && model_has_advanced_features(model)) { - wxMessageDialog msg_dlg(q, _(L("This file cannot be loaded in a simple mode. Do you want to switch to an advanced mode?\n")), + wxMessageDialog dlg(q, _(L("This file cannot be loaded in a simple mode. Do you want to switch to an advanced mode?\n")), _(L("Detected advanced data")), wxICON_WARNING | wxYES | wxNO); - if (msg_dlg.ShowModal() == wxID_YES) + if (dlg.ShowModal() == wxID_YES) { Slic3r::GUI::wxGetApp().save_mode(comAdvanced); view3D->set_as_dirty(); @@ -2317,7 +2275,6 @@ std::vector Plater::priv::load_files(const std::vector& input_ } for (ModelObject* model_object : model.objects) { - if (!type_3mf && !type_zip_amf) model_object->center_around_origin(false); model_object->ensure_on_bed(); } @@ -2346,13 +2303,13 @@ std::vector Plater::priv::load_files(const std::vector& input_ } } - if (new_model != nullptr && new_model->objects.size() > 1) { - wxMessageDialog msg_dlg(q, _(L( + if (new_model != nullptr) { + wxMessageDialog dlg(q, _(L( "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?\n" )), _(L("Multi-part object detected")), wxICON_WARNING | wxYES | wxNO); - if (msg_dlg.ShowModal() == wxID_YES) { + if (dlg.ShowModal() == wxID_YES) { new_model->convert_multipart_object(nozzle_dmrs->values.size()); } @@ -2370,19 +2327,12 @@ std::vector Plater::priv::load_files(const std::vector& input_ // automatic selection of added objects if (!obj_idxs.empty() && (view3D != nullptr)) { - // update printable state for new volumes on canvas3D - wxGetApp().plater()->canvas3D()->update_instance_printable_state_for_objects(obj_idxs); - Selection& selection = view3D->get_canvas3d()->get_selection(); selection.clear(); for (size_t idx : obj_idxs) { selection.add_object((unsigned int)idx, false); } - - if (view3D->get_canvas3d()->get_gizmos_manager().is_running()) - // this is required because the selected object changed and the flatten on face an sla support gizmos need to be updated accordingly - view3D->get_canvas3d()->update_gizmos_on_off_state(); } return obj_idxs; @@ -2470,12 +2420,9 @@ std::vector Plater::priv::load_model_objects(const ModelObjectPtrs &mode _(L("Object too large?"))); } - if (m_update_objects_list_on_loading) - { for (const size_t idx : obj_idxs) { wxGetApp().obj_list()->add_object_to_list(idx); } - } update(); object_list_changed(); @@ -2493,7 +2440,6 @@ wxString Plater::priv::get_export_file(GUI::FileType file_type) case FT_AMF: case FT_3MF: case FT_GCODE: - case FT_OBJ: wildcard = file_wildcards(file_type); break; default: @@ -2521,10 +2467,6 @@ wxString Plater::priv::get_export_file(GUI::FileType file_type) if (output_file.empty()) // Find the file name of the first printable object. output_file = this->model.propose_export_file_name_and_path(); - - if (output_file.empty() && !model.objects.empty()) - // Find the file name of the first object. - output_file = this->model.objects[0]->get_export_filename(); } wxString dlg_title; @@ -2548,23 +2490,18 @@ wxString Plater::priv::get_export_file(GUI::FileType file_type) dlg_title = _(L("Save file as:")); break; } - case FT_OBJ: - { - output_file.replace_extension("obj"); - dlg_title = _(L("Export OBJ file:")); - break; - } default: break; } - wxFileDialog dlg(q, dlg_title, + wxFileDialog* dlg = new wxFileDialog(q, dlg_title, from_path(output_file.parent_path()), from_path(output_file.filename()), wildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - if (dlg.ShowModal() != wxID_OK) + if (dlg->ShowModal() != wxID_OK) { return wxEmptyString; + } - wxString out_path = dlg.GetPath(); + wxString out_path = dlg->GetPath(); fs::path path(into_path(out_path)); wxGetApp().app_config->update_last_output_dir(path.parent_path().string()); @@ -2691,6 +2628,7 @@ void Plater::priv::reset() void Plater::priv::mirror(Axis axis) { + this->take_snapshot(_(L("Mirror"))); view3D->mirror_selection(axis); } @@ -2906,7 +2844,7 @@ void Plater::priv::update_print_volume_state() // Update background processing thread from the current config and Model. // Returns a bitmask of UpdateBackgroundProcessReturnState. -unsigned int Plater::priv::update_background_process(bool force_validation, bool postpone_error_messages) +unsigned int Plater::priv::update_background_process(bool force_validation) { // bitmap of enum UpdateBackgroundProcessReturnState unsigned int return_state = 0; @@ -2916,6 +2854,8 @@ unsigned int Plater::priv::update_background_process(bool force_validation, bool this->background_process_timer.Stop(); // Update the "out of print bed" state of ModelInstances. this->update_print_volume_state(); + // The delayed error message is no more valid. + this->delayed_error_message.clear(); // Apply new config to the possibly running background task. bool was_running = this->background_process.running(); Print::ApplyStatus invalidated = this->background_process.apply(this->q->model(), wxGetApp().preset_bundle->full_config()); @@ -2941,8 +2881,6 @@ unsigned int Plater::priv::update_background_process(bool force_validation, bool } if ((invalidated != Print::APPLY_STATUS_UNCHANGED || force_validation) && ! this->background_process.empty()) { - // The delayed error message is no more valid. - this->delayed_error_message.clear(); // The state of the Print changed, and it is non-zero. Let's validate it and give the user feedback on errors. std::string err = this->background_process.validate(); if (err.empty()) { @@ -2955,7 +2893,7 @@ unsigned int Plater::priv::update_background_process(bool force_validation, bool while (p->GetParent()) p = p->GetParent(); auto *top_level_wnd = dynamic_cast(p); - if (! postpone_error_messages && top_level_wnd && top_level_wnd->IsActive()) { + if (top_level_wnd && top_level_wnd->IsActive()) { // The error returned from the Print needs to be translated into the local language. GUI::show_error(this->q, _(err)); } else { @@ -2964,9 +2902,6 @@ unsigned int Plater::priv::update_background_process(bool force_validation, bool } return_state |= UPDATE_BACKGROUND_PROCESS_INVALID; } - } else if (! this->delayed_error_message.empty()) { - // Reusing the old state. - return_state |= UPDATE_BACKGROUND_PROCESS_INVALID; } if (invalidated != Print::APPLY_STATUS_UNCHANGED && was_running && ! this->background_process.running() && @@ -3101,86 +3036,33 @@ void Plater::priv::reload_from_disk() { Plater::TakeSnapshot snapshot(q, _(L("Reload from Disk"))); - auto& selection = get_selection(); + const auto &selection = get_selection(); const auto obj_orig_idx = selection.get_object_idx(); if (selection.is_wipe_tower() || obj_orig_idx == -1) { return; } - int instance_idx = selection.get_instance_idx(); auto *object_orig = model.objects[obj_orig_idx]; std::vector input_paths(1, object_orig->input_file); - // disable render to avoid to show intermediate states - view3D->get_canvas3d()->enable_render(false); - - // disable update of objects list while loading to avoid to show intermediate states - m_update_objects_list_on_loading = false; - const auto new_idxs = load_files(input_paths, true, false); - if (new_idxs.empty()) - { - // error while loading - view3D->get_canvas3d()->enable_render(true); - return; - } - for (const auto idx : new_idxs) - { + for (const auto idx : new_idxs) { ModelObject *object = model.objects[idx]; - object->config.apply(object_orig->config); object->clear_instances(); - for (const ModelInstance *instance : object_orig->instances) - { + for (const ModelInstance *instance : object_orig->instances) { object->add_instance(*instance); } - for (const ModelVolume* v : object_orig->volumes) - { - if (v->is_modifier()) - object->add_volume(*v); - } - - Vec3d offset = object_orig->origin_translation - object->origin_translation; - - if (object->volumes.size() == object_orig->volumes.size()) - { - for (size_t i = 0; i < object->volumes.size(); i++) - { + if (object->volumes.size() == object_orig->volumes.size()) { + for (size_t i = 0; i < object->volumes.size(); i++) { object->volumes[i]->config.apply(object_orig->volumes[i]->config); - object->volumes[i]->translate(offset); } } // XXX: Restore more: layer_height_ranges, layer_height_profile (?) } - // re-enable update of objects list - m_update_objects_list_on_loading = true; - - // puts the new objects into the list - for (const auto idx : new_idxs) - { - wxGetApp().obj_list()->add_object_to_list(idx); - } - remove(obj_orig_idx); - - // new GLVolumes have been created at this point, so update their printable state - for (size_t i = 0; i < model.objects.size(); ++i) - { - view3D->get_canvas3d()->update_instance_printable_state_for_object(i); -} - - // re-enable render - view3D->get_canvas3d()->enable_render(true); - - // the previous call to remove() clears the selection - // select newly added objects - selection.clear(); - for (const auto idx : new_idxs) - { - selection.add_instance((unsigned int)idx - 1, instance_idx, false); - } } void Plater::priv::fix_through_netfabb(const int obj_idx, const int vol_idx/* = -1*/) @@ -3255,12 +3137,7 @@ void Plater::priv::set_current_panel(wxPanel* panel) } else if (current_panel == preview) { - // see: Plater::priv::object_list_changed() - // FIXME: it may be better to have a single function making this check and let it be called wherever needed - bool export_in_progress = this->background_process.is_export_scheduled(); - bool model_fits = view3D->check_volumes_outside_state() != ModelInstance::PVS_Partly_Outside; - if (!model.objects.empty() && !export_in_progress && model_fits) - this->q->reslice(); + this->q->reslice(); // keeps current gcode preview, if any preview->reload_print(true); preview->set_canvas_as_dirty(); @@ -3335,7 +3212,6 @@ void Plater::priv::on_slicing_update(SlicingStatusEvent &evt) else this->update_sla_scene(); break; - default: break; } } else if (evt.status.flags & PrintBase::SlicingStatus::RELOAD_SLA_PREVIEW) { // Update the SLA preview. Only called if not RELOAD_SLA_SUPPORT_POINTS, as the block above will refresh the preview anyways. @@ -3355,7 +3231,6 @@ void Plater::priv::on_slicing_completed(wxCommandEvent &) else this->update_sla_scene(); break; - default: break; } } @@ -3402,7 +3277,6 @@ void Plater::priv::on_process_completed(wxCommandEvent &evt) else this->update_sla_scene(); break; - default: break; } if (canceled) { @@ -3449,21 +3323,13 @@ void Plater::priv::on_object_select(SimpleEvent& evt) selection_changed(); } -void Plater::priv::on_right_click(RBtnEvent& evt) +void Plater::priv::on_right_click(Vec2dEvent& evt) { int obj_idx = get_selected_object_idx(); - - wxMenu* menu = nullptr; - if (obj_idx == -1) - menu = &default_menu; - else - { - // If in 3DScene is(are) selected volume(s), but right button was clicked on empty space - if (evt.data.second) return; - menu = printer_technology == ptSLA ? &sla_object_menu : + wxMenu* menu = printer_technology == ptSLA ? &sla_object_menu : get_selection().is_single_full_instance() ? // show "Object menu" for each FullInstance instead of FullObject &object_menu : &part_menu; @@ -3479,7 +3345,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt) */ const MenuIdentifier id = printer_technology == ptSLA ? miObjectSLA : miObjectFFF; if (wxGetApp().get_mode() == comSimple) { - if (menu->FindItem(_(L("Add instance"))) != wxNOT_FOUND) + if (menu->FindItem(_(L("Increase copies"))) != wxNOT_FOUND) { /* Detach an items from the menu, but don't delete them * so that they can be added back later @@ -3491,7 +3357,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt) } } else { - if (menu->FindItem(_(L("Add instance"))) == wxNOT_FOUND) + if (menu->FindItem(_(L("Increase copies"))) == wxNOT_FOUND) { // Prepend items to the menu, if those aren't not there menu->Prepend(items_set_number_of_copies[id]); @@ -3500,15 +3366,14 @@ void Plater::priv::on_right_click(RBtnEvent& evt) } } } - } - if (q != nullptr && menu) { + if (q != nullptr) { #ifdef __linux__ // For some reason on Linux the menu isn't displayed if position is specified // (even though the position is sane). q->PopupMenu(menu); #else - q->PopupMenu(menu, (int)evt.data.first.x(), (int)evt.data.first.y()); + q->PopupMenu(menu, (int)evt.data.x(), (int)evt.data.y()); #endif } } @@ -3560,14 +3425,12 @@ bool Plater::priv::init_object_menu() init_common_menu(&part_menu, true); complit_init_part_menu(); - sidebar->obj_list()->create_default_popupmenu(&default_menu); - return true; } void Plater::priv::msw_rescale_object_menu() { - for (MenuWithSeparators* menu : { &object_menu, &sla_object_menu, &part_menu, &default_menu }) + for (MenuWithSeparators* menu : { &object_menu, &sla_object_menu, &part_menu }) msw_rescale_menu(dynamic_cast(menu)); } @@ -3608,11 +3471,11 @@ bool Plater::priv::init_common_menu(wxMenu* menu, const bool is_part/* = false*/ sidebar->obj_list()->append_menu_item_export_stl(menu); } else { - wxMenuItem* item_increase = append_menu_item(menu, wxID_ANY, _(L("Add instance")) + "\t+", _(L("Add one more instance of the selected object")), + wxMenuItem* item_increase = append_menu_item(menu, wxID_ANY, _(L("Increase copies")) + "\t+", _(L("Place one more copy of the selected object")), [this](wxCommandEvent&) { q->increase_instances(); }, "add_copies", nullptr, [this]() { return can_increase_instances(); }, q); - wxMenuItem* item_decrease = append_menu_item(menu, wxID_ANY, _(L("Remove instance")) + "\t-", _(L("Remove one instance of the selected object")), + wxMenuItem* item_decrease = append_menu_item(menu, wxID_ANY, _(L("Decrease copies")) + "\t-", _(L("Remove one copy of the selected object")), [this](wxCommandEvent&) { q->decrease_instances(); }, "remove_copies", nullptr, [this]() { return can_decrease_instances(); }, q); - wxMenuItem* item_set_number_of_copies = append_menu_item(menu, wxID_ANY, _(L("Set number of instances")) + dots, _(L("Change the number of instances of the selected object")), + wxMenuItem* item_set_number_of_copies = append_menu_item(menu, wxID_ANY, _(L("Set number of copies")) + dots, _(L("Change the number of copies of the selected object")), [this](wxCommandEvent&) { q->set_number_of_copies(); }, "number_of_copies", nullptr, [this]() { return can_increase_instances(); }, q); @@ -3628,9 +3491,6 @@ bool Plater::priv::init_common_menu(wxMenu* menu, const bool is_part/* = false*/ sidebar->obj_list()->append_menu_item_instance_to_object(menu, q); menu->AppendSeparator(); - wxMenuItem* menu_item_printable = sidebar->obj_list()->append_menu_item_printable(menu, q); - menu->AppendSeparator(); - append_menu_item(menu, wxID_ANY, _(L("Reload from Disk")), _(L("Reload the selected file from Disk")), [this](wxCommandEvent&) { reload_from_disk(); }); @@ -3638,17 +3498,6 @@ bool Plater::priv::init_common_menu(wxMenu* menu, const bool is_part/* = false*/ [this](wxCommandEvent&) { q->export_stl(false, true); }); menu->AppendSeparator(); - - q->Bind(wxEVT_UPDATE_UI, [this](wxUpdateUIEvent& evt) { - const Selection& selection = get_selection(); - int instance_idx = selection.get_instance_idx(); - evt.Enable(instance_idx != -1); - if (instance_idx != -1) - { - evt.Check(model.objects[selection.get_object_idx()]->instances[instance_idx]->printable); - view3D->set_as_dirty(); - } - }, menu_item_printable->GetId()); } sidebar->obj_list()->append_menu_item_fix_through_netfabb(menu); @@ -3933,12 +3782,6 @@ void Plater::priv::take_snapshot(const std::string& snapshot_name) } else if (this->sidebar->obj_list()->is_selected(itLayerRoot)) snapshot_data.flags |= UndoRedo::SnapshotData::SELECTED_LAYERROOT_ON_SIDEBAR; - - // If SLA gizmo is active, ask it if it wants to trigger support generation - // on loading this snapshot. - if (view3D->get_canvas3d()->get_gizmos_manager().wants_reslice_supports_on_undo()) - snapshot_data.flags |= UndoRedo::SnapshotData::RECALCULATE_SLA_SUPPORTS; - //FIXME updating the Wipe tower config values at the ModelWipeTower from the Print config. // This is a workaround until we refactor the Wipe Tower position / orientation to live solely inside the Model, not in the Print config. if (this->printer_technology == ptFFF) { @@ -3979,9 +3822,6 @@ void Plater::priv::undo_redo_to(size_t time_to_load) void Plater::priv::undo_redo_to(std::vector::const_iterator it_snapshot) { - // Make sure that no updating function calls take_snapshot until we are done. - SuppressSnapshots snapshot_supressor(q); - bool temp_snapshot_was_taken = this->undo_redo_stack().temp_snapshot_active(); PrinterTechnology new_printer_technology = it_snapshot->snapshot_data.printer_technology; bool printer_technology_changed = this->printer_technology != new_printer_technology; @@ -4024,14 +3864,9 @@ void Plater::priv::undo_redo_to(std::vector::const_iterator bool new_selected_layer_on_sidebar = (new_flags & UndoRedo::SnapshotData::SELECTED_LAYER_ON_SIDEBAR) != 0; bool new_selected_layerroot_on_sidebar = (new_flags & UndoRedo::SnapshotData::SELECTED_LAYERROOT_ON_SIDEBAR) != 0; - if (this->view3D->get_canvas3d()->get_gizmos_manager().wants_reslice_supports_on_undo()) - top_snapshot_data.flags |= UndoRedo::SnapshotData::RECALCULATE_SLA_SUPPORTS; - // Disable layer editing before the Undo / Redo jump. if (!new_variable_layer_editing_active && view3D->is_layers_editing_enabled()) view3D->get_canvas3d()->force_main_toolbar_left_action(view3D->get_canvas3d()->get_main_toolbar_item_id("layersediting")); - // Make a copy of the snapshot, undo/redo could invalidate the iterator - const UndoRedo::Snapshot snapshot_copy = *it_snapshot; // Do the jump in time. if (it_snapshot->timestamp < this->undo_redo_stack().active_snapshot_time() ? this->undo_redo_stack().undo(model, this->view3D->get_canvas3d()->get_selection(), this->view3D->get_canvas3d()->get_gizmos_manager(), top_snapshot_data, it_snapshot->timestamp) : @@ -4041,9 +3876,6 @@ void Plater::priv::undo_redo_to(std::vector::const_iterator AppConfig *app_config = wxGetApp().app_config; app_config->set("presets", "printer", (new_printer_technology == ptFFF) ? m_last_fff_printer_profile_name : m_last_sla_printer_profile_name); wxGetApp().preset_bundle->load_presets(*app_config); - // load_current_presets() calls Tab::load_current_preset() -> TabPrint::update() -> Object_list::update_and_show_object_settings_item(), - // but the Object list still keeps pointer to the old Model. Avoid a crash by removing selection first. - this->sidebar->obj_list()->unselect_objects(); // Load the currently selected preset into the GUI, update the preset selection box. // This also switches the printer technology based on the printer technology of the active printer profile. wxGetApp().load_current_presets(); @@ -4072,18 +3904,18 @@ void Plater::priv::undo_redo_to(std::vector::const_iterator if (new_selected_settings_on_sidebar || new_selected_layer_on_sidebar) this->sidebar->obj_list()->set_selected_layers_range_idx(layer_range_idx); - this->update_after_undo_redo(snapshot_copy, temp_snapshot_was_taken); + this->update_after_undo_redo(temp_snapshot_was_taken); // Enable layer editing after the Undo / Redo jump. if (! view3D->is_layers_editing_enabled() && this->layers_height_allowed() && new_variable_layer_editing_active) view3D->get_canvas3d()->force_main_toolbar_left_action(view3D->get_canvas3d()->get_main_toolbar_item_id("layersediting")); } } -void Plater::priv::update_after_undo_redo(const UndoRedo::Snapshot& snapshot, bool /* temp_snapshot_was_taken */) +void Plater::priv::update_after_undo_redo(bool /* temp_snapshot_was_taken */) { this->view3D->get_canvas3d()->get_selection().clear(); // Update volumes from the deserializd model, always stop / update the background processing (for both the SLA and FFF technologies). - this->update((unsigned int)UpdateParams::FORCE_BACKGROUND_PROCESSING_UPDATE | (unsigned int)UpdateParams::POSTPONE_VALIDATION_ERROR_MESSAGE); + this->update(false, true); // Release old snapshots if the memory allocated is excessive. This may remove the top most snapshot if jumping to the very first snapshot. //if (temp_snapshot_was_taken) // Release the old snapshots always, as it may have happened, that some of the triangle meshes got deserialized from the snapshot, while some @@ -4091,7 +3923,7 @@ void Plater::priv::update_after_undo_redo(const UndoRedo::Snapshot& snapshot, bo this->undo_redo_stack().release_least_recently_used(); //YS_FIXME update obj_list from the deserialized model (maybe store ObjectIDs into the tree?) (no selections at this point of time) this->view3D->get_canvas3d()->get_selection().set_deserialized(GUI::Selection::EMode(this->undo_redo_stack().selection_deserialized().mode), this->undo_redo_stack().selection_deserialized().volumes_and_instances); - this->view3D->get_canvas3d()->get_gizmos_manager().update_after_undo_redo(snapshot); + this->view3D->get_canvas3d()->get_gizmos_manager().update_after_undo_redo(); wxGetApp().obj_list()->update_after_undo_redo(); @@ -4102,11 +3934,6 @@ void Plater::priv::update_after_undo_redo(const UndoRedo::Snapshot& snapshot, bo view3D->set_as_dirty(); } - // this->update() above was called with POSTPONE_VALIDATION_ERROR_MESSAGE, so that if an error message was generated when updating the back end, it would not open immediately, - // but it would be saved to be show later. Let's do it now. We do not want to display the message box earlier, because on Windows & OSX the message box takes over the message - // queue pump, which in turn executes the rendering function before a full update after the Undo / Redo jump. - this->show_delayed_error_message(); - //FIXME what about the state of the manipulators? //FIXME what about the focus? Cursor in the side panel? @@ -4166,15 +3993,11 @@ void Plater::load_project(const wxString& filename) Plater::TakeSnapshot snapshot(this, _(L("Load Project")) + ": " + wxString::FromUTF8(into_path(filename).stem().string().c_str())); p->reset(); + p->set_project_filename(filename); std::vector input_paths; input_paths.push_back(into_path(filename)); - - std::vector res = load_files(input_paths); - - // if res is empty no data has been loaded - if (!res.empty()) - p->set_project_filename(filename); + load_files(input_paths); } void Plater::add_model() @@ -4221,16 +4044,16 @@ void Plater::extract_config_from_project() load_files(input_paths, false, true); } -std::vector Plater::load_files(const std::vector& input_files, bool load_model, bool load_config) { return p->load_files(input_files, load_model, load_config); } +void Plater::load_files(const std::vector& input_files, bool load_model, bool load_config) { p->load_files(input_files, load_model, load_config); } // To be called when providing a list of files to the GUI slic3r on command line. -std::vector Plater::load_files(const std::vector& input_files, bool load_model, bool load_config) +void Plater::load_files(const std::vector& input_files, bool load_model, bool load_config) { std::vector paths; paths.reserve(input_files.size()); for (const std::string &path : input_files) paths.emplace_back(path); - return p->load_files(paths, load_model, load_config); + p->load_files(paths, load_model, load_config); } void Plater::update() { p->update(); } @@ -4243,10 +4066,6 @@ void Plater::select_view(const std::string& direction) { p->select_view(directio void Plater::select_view_3D(const std::string& name) { p->select_view_3D(name); } -bool Plater::is_preview_shown() const { return p->is_preview_shown(); } -bool Plater::is_preview_loaded() const { return p->is_preview_loaded(); } -bool Plater::is_view3D_shown() const { return p->is_view3D_shown(); } - void Plater::select_all() { p->select_all(); } void Plater::deselect_all() { p->deselect_all(); } @@ -4337,14 +4156,14 @@ void Plater::set_number_of_copies(/*size_t num*/) ModelObject* model_object = p->model.objects[obj_idx]; - const int num = wxGetNumberFromUser( " ", _("Enter the number of copies:"), + const auto num = wxGetNumberFromUser( " ", _("Enter the number of copies:"), _("Copies of the selected object"), model_object->instances.size(), 0, 1000, this ); if (num < 0) return; Plater::TakeSnapshot snapshot(this, wxString::Format(_(L("Set numbers of copies to %d")), num)); - int diff = num - (int)model_object->instances.size(); + int diff = (int)num - (int)model_object->instances.size(); if (diff > 0) increase_instances(diff); else if (diff < 0) @@ -4570,24 +4389,6 @@ void Plater::export_3mf(const boost::filesystem::path& output_path) } } -bool Plater::has_toolpaths_to_export() const -{ - return p->preview->get_canvas3d()->has_toolpaths_to_export(); -} - -void Plater::export_toolpaths_to_obj() const -{ - if ((printer_technology() != ptFFF) || !is_preview_loaded()) - return; - - wxString path = p->get_export_file(FT_OBJ); - if (path.empty()) - return; - - wxBusyCursor wait; - p->preview->get_canvas3d()->export_toolpaths_to_obj(into_u8(path).c_str()); -} - void Plater::reslice() { // Stop arrange and (or) optimize rotation tasks. @@ -4629,11 +4430,11 @@ void Plater::reslice() p->preview->update_view_type(); } -void Plater::reslice_SLA_supports(const ModelObject &object, bool postpone_error_messages) +void Plater::reslice_SLA_supports(const ModelObject &object) { //FIXME Don't reslice if export of G-code or sending to OctoPrint is running. // bitmask of UpdateBackgroundProcessReturnState - unsigned int state = this->p->update_background_process(true, postpone_error_messages); + unsigned int state = this->p->update_background_process(true); if (state & priv::UPDATE_BACKGROUND_PROCESS_REFRESH_SCENE) this->p->view3D->reload_scene(false); @@ -4736,10 +4537,10 @@ void Plater::undo_redo_topmost_string_getter(const bool is_undo, std::string& ou return; } - out_text = ""; + out_text = L(""); } -void Plater::on_extruders_change(size_t num_extruders) +void Plater::on_extruders_change(int num_extruders) { auto& choices = sidebar().combos_filament(); @@ -4748,7 +4549,7 @@ void Plater::on_extruders_change(size_t num_extruders) wxWindowUpdateLocker noUpdates_scrolled_panel(&sidebar()/*.scrolled_panel()*/); - size_t i = choices.size(); + int i = choices.size(); while ( i < num_extruders ) { PresetComboBox* choice/*{ nullptr }*/; @@ -4772,30 +4573,6 @@ void Plater::on_config_change(const DynamicPrintConfig &config) bool update_scheduled = false; bool bed_shape_changed = false; for (auto opt_key : p->config->diff(config)) { - if (opt_key == "filament_colour") - { - update_scheduled = true; // update should be scheduled (for update 3DScene) #2738 - - /* There is a case, when we use filament_color instead of extruder_color (when extruder_color == ""). - * Thus plater config option "filament_colour" should be filled with filament_presets values. - * Otherwise, on 3dScene will be used last edited filament color for all volumes with extruder_color == "". - */ - const std::vector filament_presets = wxGetApp().preset_bundle->filament_presets; - if (filament_presets.size() > 1 && - p->config->option(opt_key)->values.size() != config.option(opt_key)->values.size()) - { - const PresetCollection& filaments = wxGetApp().preset_bundle->filaments; - std::vector filament_colors; - filament_colors.reserve(filament_presets.size()); - - for (const std::string& filament_preset : filament_presets) - filament_colors.push_back(filaments.find_preset(filament_preset, true)->config.opt_string("filament_colour", (unsigned)0)); - - p->config->option(opt_key)->values = filament_colors; - continue; - } - } - p->config->set_key_value(opt_key, config.option(opt_key)->clone()); if (opt_key == "printer_technology") this->set_printer_technology(config.opt_enum(opt_key)); @@ -4857,12 +4634,11 @@ void Plater::on_activate() this->p->preview->get_wxglcanvas()->SetFocus(); #endif - this->p->show_delayed_error_message(); + if (! this->p->delayed_error_message.empty()) { + std::string msg = std::move(this->p->delayed_error_message); + this->p->delayed_error_message.clear(); + GUI::show_error(this, msg); } - -const DynamicPrintConfig* Plater::get_plater_config() const -{ - return p->config; } wxString Plater::get_project_filename(const wxString& extension) const @@ -4895,11 +4671,6 @@ GLCanvas3D* Plater::canvas3D() return p->view3D->get_canvas3d(); } -BoundingBoxf Plater::bed_shape_bb() const -{ - return p->bed_shape_bb(); -} - PrinterTechnology Plater::printer_technology() const { return p->printer_technology; @@ -4945,7 +4716,7 @@ void Plater::changed_objects(const std::vector& object_idxs) if (object_idxs.empty()) return; - for (size_t obj_idx : object_idxs) + for (int obj_idx : object_idxs) { if (obj_idx < p->model.objects.size()) // recenter and re - align to Z = 0 diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 26dcb5ac32b..d7f7f37911e 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -89,7 +89,7 @@ class Sidebar : public wxPanel ~Sidebar(); void init_filament_combo(PresetComboBox **combo, const int extr_idx); - void remove_unused_filament_combos(const size_t current_extruder_count); + void remove_unused_filament_combos(const int current_extruder_count); void update_all_preset_comboboxes(); void update_presets(Slic3r::Preset::Type preset_type); void update_mode_sizer() const; @@ -105,7 +105,7 @@ class Sidebar : public wxPanel ConfigOptionsGroup* og_freq_chng_params(const bool is_fff); wxButton* get_wiping_dialog_button(); - void update_objects_list_extruder_column(size_t extruders_count); + void update_objects_list_extruder_column(int extruders_count); void show_info_sizer(); void show_sliced_info_sizer(const bool show); void enable_buttons(bool enable); @@ -147,19 +147,15 @@ class Plater: public wxPanel void add_model(); void extract_config_from_project(); - std::vector load_files(const std::vector& input_files, bool load_model = true, bool load_config = true); + void load_files(const std::vector& input_files, bool load_model = true, bool load_config = true); // To be called when providing a list of files to the GUI slic3r on command line. - std::vector load_files(const std::vector& input_files, bool load_model = true, bool load_config = true); + void load_files(const std::vector& input_files, bool load_model = true, bool load_config = true); void update(); void stop_jobs(); void select_view(const std::string& direction); void select_view_3D(const std::string& name); - bool is_preview_shown() const; - bool is_preview_loaded() const; - bool is_view3D_shown() const; - // Called after the Preferences dialog is closed and the program settings are saved. // Update the UI based on the current preferences. void update_ui_from_settings(); @@ -183,10 +179,8 @@ class Plater: public wxPanel void export_stl(bool extended = false, bool selection_only = false); void export_amf(); void export_3mf(const boost::filesystem::path& output_path = boost::filesystem::path()); - bool has_toolpaths_to_export() const; - void export_toolpaths_to_obj() const; void reslice(); - void reslice_SLA_supports(const ModelObject &object, bool postpone_error_messages = false); + void reslice_SLA_supports(const ModelObject &object); void changed_object(int obj_idx); void changed_objects(const std::vector& object_idxs); void schedule_background_process(bool schedule = true); @@ -209,11 +203,10 @@ class Plater: public wxPanel void enter_gizmos_stack(); void leave_gizmos_stack(); - void on_extruders_change(size_t extruders_count); + void on_extruders_change(int extruders_count); void on_config_change(const DynamicPrintConfig &config); // On activating the parent window. void on_activate(); - const DynamicPrintConfig* get_plater_config() const; void update_object_menu(); @@ -225,7 +218,6 @@ class Plater: public wxPanel int get_selected_object_idx(); bool is_single_full_object_selection() const; GLCanvas3D* canvas3D(); - BoundingBoxf bed_shape_bb() const; PrinterTechnology printer_technology() const; void set_printer_technology(PrinterTechnology printer_technology); diff --git a/src/slic3r/GUI/Preset.cpp b/src/slic3r/GUI/Preset.cpp index 301e5626bcc..41938279daa 100644 --- a/src/slic3r/GUI/Preset.cpp +++ b/src/slic3r/GUI/Preset.cpp @@ -393,11 +393,7 @@ const std::vector& Preset::print_options() #endif /* HAS_PRESSURE_EQUALIZER */ "perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "infill_speed", "solid_infill_speed", "top_solid_infill_speed", "support_material_speed", "support_material_xy_spacing", "support_material_interface_speed", - "bridge_speed", - "gap_fill", - "gap_fill_min_area", - "gap_fill_speed", - "travel_speed", "first_layer_speed", "perimeter_acceleration", "infill_acceleration", + "bridge_speed", "gap_fill", "gap_fill_speed", "travel_speed", "first_layer_speed", "perimeter_acceleration", "infill_acceleration", "bridge_acceleration", "first_layer_acceleration", "default_acceleration", "skirts", "skirt_distance", "skirt_height", "min_skirt_length", "brim_width", "brim_ears", "brim_ears_max_angle", "support_material", "support_material_auto", "support_material_threshold", "support_material_enforce_layers", @@ -415,7 +411,7 @@ const std::vector& Preset::print_options() "perimeter_extrusion_width", "external_perimeter_extrusion_width", "infill_extrusion_width", "solid_infill_extrusion_width", "top_infill_extrusion_width", "support_material_extrusion_width", "infill_overlap", "bridge_flow_ratio", "clip_multipart_objects", - "over_bridge_flow_ratio", "clip_multipart_objects", "enforce_full_fill_volume", "external_infill_margin", "bridged_infill_margin", + "over_bridge_flow_ratio", "top_infill_flow_ratio", "ironing_flow_ratio", "clip_multipart_objects", "enforce_full_fill_volume", "external_infill_margin", "bridged_infill_margin", "elefant_foot_compensation", "xy_size_compensation", "hole_size_compensation", "threads", "resolution", "wipe_tower", "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_bridging", "single_extruder_multi_material_priming", "compatible_printers", "compatible_printers_condition", "inherits", @@ -454,7 +450,7 @@ const std::vector& Preset::filament_options() , "fan_below_layer_time", "slowdown_below_layer_time", "min_print_speed", "start_filament_gcode", "end_filament_gcode", // Retract overrides - "filament_retract_length", "filament_retract_lift", "filament_retract_lift_above", "filament_retract_lift_below", "filament_retract_speed", "filament_deretract_speed", "filament_retract_restart_extra", "filament_retract_before_travel", + "filament_retract_length", "filament_retract_lift", "filament_retract_lift_above", "filament_retract_lift_below", "filament_retract_speed", "filament_deretract_speed", "filament_retract_restart_extra", "filament_retract_before_travel", "filament_retract_layer_change", "filament_wipe", "filament_retract_before_wipe", // Profile compatibility "compatible_prints", "compatible_prints_condition", "compatible_printers", "compatible_printers_condition", "inherits" @@ -540,10 +536,9 @@ const std::vector& Preset::sla_print_options() "pad_wall_thickness", "pad_wall_height", "pad_max_merge_distance", - // "pad_edge_radius", + "pad_edge_radius", "pad_wall_slope", "pad_object_gap", - "pad_around_object", "pad_object_connector_stride", "pad_object_connector_width", "pad_object_connector_penetration", @@ -563,8 +558,7 @@ const std::vector& Preset::sla_material_options() if (s_opts.empty()) { s_opts = { "initial_layer_height", - "exposure_time", - "initial_exposure_time", + "exposure_time", "initial_exposure_time", "material_correction", "material_notes", "default_sla_material_profile", @@ -590,8 +584,6 @@ const std::vector& Preset::sla_printer_options() "relative_correction", "absolute_correction", "gamma_correction", - "min_exposure_time", "max_exposure_time", - "min_initial_exposure_time", "max_initial_exposure_time", "print_host", "printhost_apikey", "printhost_cafile", "printer_notes", "inherits" diff --git a/src/slic3r/GUI/Preset.hpp b/src/slic3r/GUI/Preset.hpp index ebd707c3b2d..b61bf100c15 100644 --- a/src/slic3r/GUI/Preset.hpp +++ b/src/slic3r/GUI/Preset.hpp @@ -8,7 +8,7 @@ #include "libslic3r/libslic3r.h" #include "libslic3r/PrintConfig.hpp" -#include "libslic3r/Semver.hpp" +#include "slic3r/Utils/Semver.hpp" class wxBitmap; class wxBitmapComboBox; diff --git a/src/slic3r/GUI/PresetBundle.cpp b/src/slic3r/GUI/PresetBundle.cpp index 49ea42162d1..93ffdb73d86 100644 --- a/src/slic3r/GUI/PresetBundle.cpp +++ b/src/slic3r/GUI/PresetBundle.cpp @@ -366,7 +366,7 @@ void PresetBundle::load_selections(const AppConfig &config, const std::string &p this->filament_presets = { filaments.get_selected_preset_name() }; for (unsigned int i = 1; i < 1000; ++ i) { char name[64]; - sprintf(name, "filament_%u", i); + sprintf(name, "filament_%d", i); if (! config.has("presets", name)) break; this->filament_presets.emplace_back(remove_ini_suffix(config.get("presets", name))); @@ -388,12 +388,11 @@ void PresetBundle::export_selections(AppConfig &config) config.clear_section("presets"); config.set("presets", "print", prints.get_selected_preset_name()); config.set("presets", "filament", filament_presets.front()); - for (unsigned i = 1; i < filament_presets.size(); ++i) { + for (int i = 1; i < filament_presets.size(); ++i) { char name[64]; - sprintf(name, "filament_%u", i); + sprintf(name, "filament_%d", i); config.set("presets", name, filament_presets[i]); } - config.set("presets", "sla_print", sla_prints.get_selected_preset_name()); config.set("presets", "sla_material", sla_materials.get_selected_preset_name()); config.set("presets", "printer", printers.get_selected_preset_name()); @@ -446,7 +445,6 @@ DynamicPrintConfig PresetBundle::full_config() const DynamicPrintConfig PresetBundle::full_config_secure() const { DynamicPrintConfig config = this->full_config(); - config.erase("print_host"); config.erase("printhost_apikey"); config.erase("printhost_cafile"); return config; @@ -698,7 +696,6 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool config.option("default_sla_print_profile", true); config.option("default_sla_material_profile", true); break; - default: break; } // 1) Create a name from the file name. @@ -766,11 +763,8 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool } } // Load the configs into this->filaments and make them active. - this->filament_presets = std::vector(configs.size()); - // To avoid incorrect selection of the first filament preset (means a value of Preset->m_idx_selected) - // in a case when next added preset take a place of previosly selected preset, - // we should add presets from last to first - for (int i = (int)configs.size()-1; i >= 0; i--) { + this->filament_presets.clear(); + for (size_t i = 0; i < configs.size(); ++ i) { DynamicPrintConfig &cfg = configs[i]; // Split the "compatible_printers_condition" and "inherits" from the cummulative vectors to separate filament presets. cfg.opt_string("compatible_printers_condition", true) = compatible_printers_condition_values[i + 1]; @@ -780,7 +774,7 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool Preset *loaded = nullptr; if (is_external) loaded = &this->filaments.load_external_preset(name_or_path, name, - (i < int(old_filament_profile_names->values.size())) ? old_filament_profile_names->values[i] : "", + (i < old_filament_profile_names->values.size()) ? old_filament_profile_names->values[i] : "", std::move(cfg), i == 0); else { // Used by the config wizard when creating a custom setup. @@ -795,7 +789,7 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool new_name, std::move(cfg), i == 0); loaded->save(); } - this->filament_presets[i] = loaded->name; + this->filament_presets.emplace_back(loaded->name); } } // 4) Load the project config values (the per extruder wipe matrix etc). @@ -807,7 +801,6 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool load_preset(this->sla_materials, 1, "sla_material_settings_id"); load_preset(this->printers, 2, "printer_settings_id"); break; - default: break; } this->update_compatible(false); @@ -1263,7 +1256,7 @@ void PresetBundle::update_multi_material_filament_presets() // Now verify if wiping_volumes_matrix has proper size (it is used to deduce number of extruders in wipe tower generator): std::vector old_matrix = this->project_config.option("wiping_volumes_matrix")->values; - size_t old_number_of_extruders = size_t(sqrt(old_matrix.size())+EPSILON); + size_t old_number_of_extruders = int(sqrt(old_matrix.size())+EPSILON); if (num_extruders != old_number_of_extruders) { // First verify if purging volumes presets for each extruder matches number of extruders std::vector& extruders = this->project_config.option("wiping_volumes_extruders")->values; @@ -1352,7 +1345,6 @@ void PresetBundle::update_compatible(bool select_other_if_incompatible) [&prefered_sla_material_profile](const std::string& profile_name){ return profile_name == prefered_sla_material_profile; }); break; } - default: break; } } @@ -1492,19 +1484,11 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::Pr * and scale them in respect to em_unit value */ const float scale_f = ui->em_unit() * 0.1f; - - // To avoid the errors of number rounding for different combination of monitor configuration, - // let use scaled 8px, as a smallest icon unit - const int icon_unit = 8 * scale_f + 0.5f; - const int normal_icon_width = 2 * icon_unit; //16 * scale_f + 0.5f; - const int thin_icon_width = icon_unit; //8 * scale_f + 0.5f; - const int wide_icon_width = 3 * icon_unit; //24 * scale_f + 0.5f; - + const int icon_height = 16 * scale_f + 0.5f; + const int normal_icon_width = 16 * scale_f + 0.5f; const int space_icon_width = 2 * scale_f + 0.5f; - - // To avoid asserts, each added bitmap to wxBitmapCombobox should be the same size, so - // set a bitmap height to m_bitmapLock->GetHeight() - const int icon_height = m_bitmapLock->GetHeight();//2 * icon_unit; //16 * scale_f + 0.5f; + const int wide_icon_width = 24 * scale_f + 0.5f; + const int thin_icon_width = 8 * scale_f + 0.5f; for (int i = this->filaments().front().is_visible ? 0 : 1; i < int(this->filaments().size()); ++i) { const Preset &preset = this->filaments.preset(i); @@ -1539,9 +1523,7 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::Pr } // Paint a lock at the system presets. bmps.emplace_back(m_bitmapCache->mkclear(space_icon_width, icon_height)); - // To avoid asserts, each added bitmap to wxBitmapCombobox should be the same size, so - // for nonsystem presets set a width of empty bitmap to m_bitmapLock->GetWidth() - bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmapLock : m_bitmapCache->mkclear(m_bitmapLock->GetWidth(), icon_height)); + bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmapLock : m_bitmapCache->mkclear(normal_icon_width, icon_height)); // (preset.is_dirty ? *m_bitmapLockOpen : *m_bitmapLock) : m_bitmapCache->mkclear(16, 16)); bitmap = m_bitmapCache->insert(bitmap_key, bmps); } diff --git a/src/slic3r/GUI/PresetHints.cpp b/src/slic3r/GUI/PresetHints.cpp index 5d99467d8e4..4f8cfe10b45 100644 --- a/src/slic3r/GUI/PresetHints.cpp +++ b/src/slic3r/GUI/PresetHints.cpp @@ -90,7 +90,7 @@ std::string PresetHints::maximum_volumetric_flow_description(const PresetBundle double over_bridge_flow_ratio = print_config.opt_float("over_bridge_flow_ratio"); double perimeter_speed = print_config.opt_float("perimeter_speed"); double external_perimeter_speed = print_config.get_abs_value("external_perimeter_speed", perimeter_speed); - // double gap_fill_speed = print_config.opt_float("gap_fill_speed"); + double gap_fill_speed = print_config.opt_float("gap_fill_speed"); double infill_speed = print_config.opt_float("infill_speed"); double small_perimeter_speed = print_config.get_abs_value("small_perimeter_speed", perimeter_speed); double solid_infill_speed = print_config.get_abs_value("solid_infill_speed", infill_speed); @@ -125,7 +125,7 @@ std::string PresetHints::maximum_volumetric_flow_description(const PresetBundle // Current filament values double filament_diameter = filament_config.opt_float("filament_diameter", 0); double filament_crossection = M_PI * 0.25 * filament_diameter * filament_diameter; - // double extrusion_multiplier = filament_config.opt_float("extrusion_multiplier", 0); + double extrusion_multiplier = filament_config.opt_float("extrusion_multiplier", 0); // The following value will be annotated by this hint, so it does not take part in the calculation. // double filament_max_volumetric_speed = filament_config.opt_float("filament_max_volumetric_speed", 0); diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index d083895379c..09bd6568281 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -250,7 +250,7 @@ void PrintHostQueueDialog::on_list_select() void PrintHostQueueDialog::on_progress(Event &evt) { - wxCHECK_RET(evt.job_id < (size_t)job_list->GetItemCount(), "Out of bounds access to job list"); + wxCHECK_RET(evt.job_id < job_list->GetItemCount(), "Out of bounds access to job list"); if (evt.progress < 100) { set_state(evt.job_id, ST_PROGRESS); @@ -265,7 +265,7 @@ void PrintHostQueueDialog::on_progress(Event &evt) void PrintHostQueueDialog::on_error(Event &evt) { - wxCHECK_RET(evt.job_id < (size_t)job_list->GetItemCount(), "Out of bounds access to job list"); + wxCHECK_RET(evt.job_id < job_list->GetItemCount(), "Out of bounds access to job list"); set_state(evt.job_id, ST_ERROR); @@ -280,7 +280,7 @@ void PrintHostQueueDialog::on_error(Event &evt) void PrintHostQueueDialog::on_cancel(Event &evt) { - wxCHECK_RET(evt.job_id < (size_t)job_list->GetItemCount(), "Out of bounds access to job list"); + wxCHECK_RET(evt.job_id < job_list->GetItemCount(), "Out of bounds access to job list"); set_state(evt.job_id, ST_CANCELLED); job_list->SetValue(wxVariant(0), evt.job_id, COL_PROGRESS); diff --git a/src/slic3r/GUI/PrintHostDialogs.hpp b/src/slic3r/GUI/PrintHostDialogs.hpp index e5f96f2b62e..427c4f6bff6 100644 --- a/src/slic3r/GUI/PrintHostDialogs.hpp +++ b/src/slic3r/GUI/PrintHostDialogs.hpp @@ -37,6 +37,7 @@ class PrintHostSendDialog : public GUI::MsgDialog private: wxTextCtrl *txt_filename; wxCheckBox *box_print; + bool can_start_print; }; diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index 40fbbbac631..211863627ff 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -100,7 +100,6 @@ void Selection::set_volumes(GLVolumePtrs* volumes) update_valid(); } -// Init shall be called from the OpenGL render function, so that the OpenGL context is initialized! bool Selection::init() { if (!m_arrow.init()) @@ -290,6 +289,8 @@ void Selection::add_volume(unsigned int object_idx, unsigned int volume_idx, int (as_single_selection && matches(volume_idxs))) return; + wxGetApp().plater()->take_snapshot(_(L("Selection-Add Volume"))); + // resets the current list if needed if (as_single_selection) clear(); @@ -307,10 +308,12 @@ void Selection::remove_volume(unsigned int object_idx, unsigned int volume_idx) if (!m_valid) return; + wxGetApp().plater()->take_snapshot(_(L("Selection-Remove Volume"))); + for (unsigned int i = 0; i < (unsigned int)m_volumes->size(); ++i) { GLVolume* v = (*m_volumes)[i]; - if ((v->object_idx() == (int)object_idx) && (v->volume_idx() == (int)volume_idx)) + if ((v->object_idx() == object_idx) && (v->volume_idx() == volume_idx)) do_remove_volume(i); } @@ -327,6 +330,8 @@ void Selection::add_volumes(EMode mode, const std::vector& volume_ (as_single_selection && matches(volume_idxs))) return; + wxGetApp().plater()->take_snapshot(_(L("Selection-Add Volumes"))); + // resets the current list if needed if (as_single_selection) clear(); @@ -347,6 +352,8 @@ void Selection::remove_volumes(EMode mode, const std::vector& volu if (!m_valid) return; + wxGetApp().plater()->take_snapshot(_(L("Selection-Remove Volumes"))); + m_mode = mode; for (unsigned int i : volume_idxs) { @@ -395,10 +402,8 @@ void Selection::remove_all() if (is_empty()) return; - -// Not taking the snapshot with non-empty Redo stack will likely be more confusing than losing the Redo stack. -// Let's wait for user feedback. -// if (!wxGetApp().plater()->can_redo()) + + if (!wxGetApp().plater()->can_redo()) wxGetApp().plater()->take_snapshot(_(L("Selection-Remove All"))); m_mode = Instance; @@ -946,12 +951,12 @@ void Selection::scale_to_fit_print_volume(const DynamicPrintConfig& config) // apply scale start_dragging(); scale(s * Vec3d::Ones(), type); - wxGetApp().plater()->canvas3D()->do_scale(""); // avoid storing another snapshot + wxGetApp().plater()->canvas3D()->do_scale(L("")); // avoid storing another snapshot // center selection on print bed start_dragging(); translate(print_volume.center() - get_bounding_box().center()); - wxGetApp().plater()->canvas3D()->do_move(""); // avoid storing another snapshot + wxGetApp().plater()->canvas3D()->do_move(L("")); // avoid storing another snapshot wxGetApp().obj_manipul()->set_dirty(); } @@ -992,7 +997,7 @@ void Selection::translate(unsigned int object_idx, const Vec3d& displacement) for (unsigned int i : m_list) { GLVolume* v = (*m_volumes)[i]; - if (v->object_idx() == (int)object_idx) + if (v->object_idx() == object_idx) v->set_instance_offset(v->get_instance_offset() + displacement); } @@ -1037,7 +1042,7 @@ void Selection::translate(unsigned int object_idx, unsigned int instance_idx, co for (unsigned int i : m_list) { GLVolume* v = (*m_volumes)[i]; - if ((v->object_idx() == (int)object_idx) && (v->instance_idx() == (int)instance_idx)) + if ((v->object_idx() == object_idx) && (v->instance_idx() == instance_idx)) v->set_instance_offset(v->get_instance_offset() + displacement); } @@ -1063,7 +1068,7 @@ void Selection::translate(unsigned int object_idx, unsigned int instance_idx, co continue; GLVolume* v = (*m_volumes)[j]; - if ((v->object_idx() != object_idx) || (v->instance_idx() != (int)instance_idx)) + if ((v->object_idx() != object_idx) || (v->instance_idx() != instance_idx)) continue; v->set_instance_offset(v->get_instance_offset() + displacement); @@ -1154,7 +1159,7 @@ void Selection::erase() for (const ItemForDelete& i : items_set) { if (i.type == ItemType::itVolume) { const int vol_in_obj_cnt = volumes_in_obj.find(i.obj_idx) == volumes_in_obj.end() ? 0 : volumes_in_obj.at(i.obj_idx); - if (vol_in_obj_cnt == (int)m_model->objects[i.obj_idx]->volumes.size()) { + if (vol_in_obj_cnt == m_model->objects[i.obj_idx]->volumes.size()) { if (i.sub_obj_idx == vol_in_obj_cnt - 1) items.emplace_back(ItemType::itObject, i.obj_idx, 0); continue; @@ -1389,7 +1394,7 @@ std::vector Selection::get_volume_idxs_from_object(unsigned int ob for (unsigned int i = 0; i < (unsigned int)m_volumes->size(); ++i) { - if ((*m_volumes)[i]->object_idx() == (int)object_idx) + if ((*m_volumes)[i]->object_idx() == object_idx) idxs.push_back(i); } @@ -1403,7 +1408,7 @@ std::vector Selection::get_volume_idxs_from_instance(unsigned int for (unsigned int i = 0; i < (unsigned int)m_volumes->size(); ++i) { const GLVolume* v = (*m_volumes)[i]; - if ((v->object_idx() == (int)object_idx) && (v->instance_idx() == (int)instance_idx)) + if ((v->object_idx() == object_idx) && (v->instance_idx() == instance_idx)) idxs.push_back(i); } @@ -1417,9 +1422,9 @@ std::vector Selection::get_volume_idxs_from_volume(unsigned int ob for (unsigned int i = 0; i < (unsigned int)m_volumes->size(); ++i) { const GLVolume* v = (*m_volumes)[i]; - if ((v->object_idx() == (int)object_idx) && (v->volume_idx() == (int)volume_idx)) + if ((v->object_idx() == object_idx) && (v->volume_idx() == volume_idx)) { - if (((int)instance_idx != -1) && (v->instance_idx() == (int)instance_idx)) + if ((instance_idx != -1) && (v->instance_idx() == instance_idx)) idxs.push_back(i); } } @@ -1454,40 +1459,6 @@ std::vector Selection::get_unselected_volume_idxs_from(const std:: return idxs; } -void Selection::toggle_instance_printable_state() -{ - int instance_idx = get_instance_idx(); - if (instance_idx == -1) - return; - - int obj_idx = get_object_idx(); - if ((0 <= obj_idx) && (obj_idx < (int)m_model->objects.size())) - { - ModelObject* model_object = m_model->objects[obj_idx]; - if ((0 <= instance_idx) && (instance_idx < (int)model_object->instances.size())) - { - ModelInstance* instance = model_object->instances[instance_idx]; - const bool printable = !instance->printable; - - wxString snapshot_text = model_object->instances.size() == 1 ? wxString::Format("%s %s", - printable ? _(L("Set Printable")) : _(L("Set Unprintable")), model_object->name) : - printable ? _(L("Set Printable Instance")) : _(L("Set Unprintable Instance")); - wxGetApp().plater()->take_snapshot(snapshot_text); - - instance->printable = printable; - - for (GLVolume* volume : *m_volumes) - { - if ((volume->object_idx() == obj_idx) && (volume->instance_idx() == instance_idx)) - volume->printable = instance->printable; - } - - wxGetApp().obj_list()->update_printable_state(obj_idx, instance_idx); - wxGetApp().plater()->update(); - } - } -} - void Selection::update_valid() { m_valid = (m_volumes != nullptr) && (m_model != nullptr); @@ -1607,7 +1578,7 @@ void Selection::update_type() } else { - unsigned int sels_cntr = 0; + int sels_cntr = 0; for (ObjectIdxsToInstanceIdxsMap::iterator it = m_cache.content.begin(); it != m_cache.content.end(); ++it) { const ModelObject* model_object = m_model->objects[it->first]; @@ -1759,7 +1730,7 @@ void Selection::do_remove_instance(unsigned int object_idx, unsigned int instanc for (unsigned int i = 0; i < (unsigned int)m_volumes->size(); ++i) { GLVolume* v = (*m_volumes)[i]; - if ((v->object_idx() == (int)object_idx) && (v->instance_idx() == (int)instance_idx)) + if ((v->object_idx() == object_idx) && (v->instance_idx() == instance_idx)) do_remove_volume(i); } } @@ -1769,7 +1740,7 @@ void Selection::do_remove_object(unsigned int object_idx) for (unsigned int i = 0; i < (unsigned int)m_volumes->size(); ++i) { GLVolume* v = (*m_volumes)[i]; - if (v->object_idx() == (int)object_idx) + if (v->object_idx() == object_idx) do_remove_volume(i); } } @@ -1836,6 +1807,7 @@ void Selection::render_synchronized_volumes() const { const GLVolume* volume = (*m_volumes)[i]; int object_idx = volume->object_idx(); + int instance_idx = volume->instance_idx(); int volume_idx = volume->volume_idx(); for (unsigned int j = 0; j < (unsigned int)m_volumes->size(); ++j) { diff --git a/src/slic3r/GUI/Selection.hpp b/src/slic3r/GUI/Selection.hpp index c27b4cc29d1..0f71cefc449 100644 --- a/src/slic3r/GUI/Selection.hpp +++ b/src/slic3r/GUI/Selection.hpp @@ -336,8 +336,6 @@ class Selection // returns the list of idxs of the volumes contained in the given list but not in the selection std::vector get_unselected_volume_idxs_from(const std::vector& volume_idxs) const; - void toggle_instance_printable_state(); - private: void update_valid(); void update_type(); diff --git a/src/slic3r/GUI/SysInfoDialog.cpp b/src/slic3r/GUI/SysInfoDialog.cpp index 8190edb8b61..76fb56b7c96 100644 --- a/src/slic3r/GUI/SysInfoDialog.cpp +++ b/src/slic3r/GUI/SysInfoDialog.cpp @@ -58,19 +58,21 @@ std::string get_mem_info(bool format_as_html) std::string b_end = format_as_html ? "" : ""; std::string line_end = format_as_html ? "
" : "\n"; - std::string mem_info_str = log_memory_info(true); - std::istringstream mem_info(mem_info_str); - std::string value; - while (std::getline(mem_info, value, ':')) { - out << b_start << (value+": ") << b_end; - std::getline(mem_info, value, ';'); - out << value << line_end; - } - const Slic3r::UndoRedo::Stack &stack = wxGetApp().plater()->undo_redo_stack_main(); - out << b_start << "RAM size reserved for the Undo / Redo stack: " << b_end << Slic3r::format_memsize_MB(stack.get_memory_limit()) << line_end; - out << b_start << "RAM size occupied by the Undo / Redo stack: " << b_end << Slic3r::format_memsize_MB(stack.memsize()) << line_end << line_end; + out << b_start << "RAM size reserved for the Undo / Redo stack [MB]: " << b_end << Slic3r::format_memsize_MB(stack.get_memory_limit()) << line_end; + out << b_start << "RAM size occupied by the Undo / Redo stack [MB]: " << b_end << Slic3r::format_memsize_MB(stack.memsize()) << line_end << line_end; +#ifdef _WIN32 + HANDLE hProcess = ::OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, ::GetCurrentProcessId()); + if (hProcess != nullptr) { + PROCESS_MEMORY_COUNTERS_EX pmc; + if (GetProcessMemoryInfo(hProcess, (PROCESS_MEMORY_COUNTERS*)&pmc, sizeof(pmc))) + out << b_start << "WorkingSet [MB]: " << b_end << format_memsize_MB(pmc.WorkingSetSize) << line_end + << b_start << "PrivateBytes [MB]: " << b_end << format_memsize_MB(pmc.PrivateUsage) << line_end + << b_start << "Pagefile(peak) [MB]: " << b_end << format_memsize_MB(pmc.PagefileUsage) << "(" << format_memsize_MB(pmc.PeakPagefileUsage) << ")" << line_end; + CloseHandle(hProcess); + } +#endif return out.str(); } diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 3b8c0b3c735..a82e716e4b6 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -62,8 +62,6 @@ Tab::Tab(wxNotebook* parent, const wxString& title, Preset::Type type) : m_em_unit = wxGetApp().em_unit(); - m_config_manipulation = get_config_manipulation(); - Bind(wxEVT_SIZE, ([this](wxSizeEvent &evt) { for (auto page : m_pages) if (! page.get()->IsShown()) @@ -161,8 +159,8 @@ void Tab::create_preset_tab() m_undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent) { on_roll_back_value(true); })); m_question_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent) { - ButtonsDescription dlg(this, m_icon_descriptions); - if (dlg.ShowModal() == wxID_OK) { + auto dlg = new ButtonsDescription(this, m_icon_descriptions); + if (dlg->ShowModal() == wxID_OK) { // Colors for ui "decoration" for (Tab *tab : wxGetApp().tabs_list) { tab->m_sys_label_clr = wxGetApp().get_label_clr_sys(); @@ -232,7 +230,7 @@ void Tab::create_preset_tab() //! select_preset(m_presets_choice->GetStringSelection().ToUTF8().data()); //! we doing next: int selected_item = m_presets_choice->GetSelection(); - if (m_selected_preset_item == size_t(selected_item) && !m_presets->current_is_dirty()) + if (m_selected_preset_item == selected_item && !m_presets->current_is_dirty()) return; if (selected_item >= 0) { std::string selected_string = m_presets_choice->GetString(selected_item).ToUTF8().data(); @@ -375,8 +373,6 @@ void Tab::update_labels_colour() // Thaw(); auto cur_item = m_treectrl->GetFirstVisibleItem(); - if (!cur_item || !m_treectrl->IsVisible(cur_item)) - return; while (cur_item) { auto title = m_treectrl->GetItemText(cur_item); for (auto page : m_pages) @@ -472,7 +468,7 @@ void Tab::update_changed_ui() wxTheApp->CallAfter([this]() { if (parent()) //To avoid a crash, parent should be exist for a moment of a tree updating - update_changed_tree_ui(); + update_changed_tree_ui(); }); } @@ -489,7 +485,7 @@ template void add_correct_opts_to_options_list(const std::string &opt_key, std::map& map, Tab *tab, const int& value) { T *opt_cur = static_cast(tab->m_config->option(opt_key)); - for (size_t i = 0; i < opt_cur->values.size(); i++) + for (int i = 0; i < opt_cur->values.size(); i++) map.emplace(opt_key + "#" + std::to_string(i), value); } @@ -545,11 +541,10 @@ void TabSLAMaterial::init_options_list() void Tab::get_sys_and_mod_flags(const std::string& opt_key, bool& sys_page, bool& modified_page) { auto opt = m_options_list.find(opt_key); - if (opt == m_options_list.end()) - return; - + if (opt != m_options_list.end()){ if (sys_page) sys_page = (opt->second & osSystemValue) != 0; modified_page |= (opt->second & osInitValue) == 0; + } } void Tab::update_changed_tree_ui() @@ -736,8 +731,6 @@ void Tab::update_mode() m_mode_sizer->SetMode(m_mode); update_visibility(); - - update_changed_tree_ui(); } void Tab::update_visibility() @@ -750,6 +743,8 @@ void Tab::update_visibility() Layout(); Thaw(); + + update_changed_tree_ui(); } void Tab::msw_rescale() @@ -841,11 +836,6 @@ static wxString support_combo_value_for_config(const DynamicPrintConfig &config, _("Everywhere")); } -static wxString pad_combo_value_for_config(const DynamicPrintConfig &config) -{ - return config.opt_bool("pad_enable") ? (config.opt_bool("pad_around_object") ? _("Around object") : _("Below object")) : _("None"); -} - void Tab::on_value_change(const std::string& opt_key, const boost::any& value) { if (wxGetApp().plater() == nullptr) { @@ -860,21 +850,11 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) og_freq_chng_params->set_value(opt_key, val); } - if (opt_key == "pad_around_object") { - for (PageShp &pg : m_pages) { - Field * fld = pg->get_field(opt_key); - if (fld) fld->set_value(value, false); - } - } - if (is_fff ? (opt_key == "support_material" || opt_key == "support_material_auto" || opt_key == "support_material_buildplate_only") : (opt_key == "supports_enable" || opt_key == "support_buildplate_only")) og_freq_chng_params->set_value("support", support_combo_value_for_config(*m_config, is_fff)); - if (! is_fff && (opt_key == "pad_enable" || opt_key == "pad_around_object")) - og_freq_chng_params->set_value("pad", pad_combo_value_for_config(*m_config)); - if (opt_key == "brim_width") { bool val = m_config->opt_float("brim_width") > 0.0 ? true : false; @@ -995,7 +975,6 @@ void Tab::update_preset_description_line() description_line += "\n\n\t" + _(L("default SLA print profile")) + ": \n\t\t" + default_sla_print_profile; break; } - default: break; } } } @@ -1010,8 +989,6 @@ void Tab::update_frequently_changed_parameters() if (!og_freq_chng_params) return; og_freq_chng_params->set_value("support", support_combo_value_for_config(*m_config, is_fff)); - if (! is_fff) - og_freq_chng_params->set_value("pad", pad_combo_value_for_config(*m_config)); const std::string updated_value_key = is_fff ? "fill_density" : "pad_enable"; @@ -1064,10 +1041,7 @@ void TabPrint::build() optgroup->append_single_option_line("no_perimeter_unsupported_algo"); optgroup = page->new_optgroup(_(L("Advanced"))); - line = { _(L("Gap Fill")), "" }; - line.append_option(optgroup->get_option("gap_fill")); - line.append_option(optgroup->get_option("gap_fill_min_area")); - optgroup->append_line(line); + optgroup->append_single_option_line("gap_fill"); line = { _(L("Seam")), "" }; line.append_option(optgroup->get_option("seam_position")); line.append_option(optgroup->get_option("seam_travel")); @@ -1247,6 +1221,8 @@ void TabPrint::build() line = { _(L("Flow ratio")), "" }; line.append_option(optgroup->get_option("bridge_flow_ratio")); line.append_option(optgroup->get_option("over_bridge_flow_ratio")); + line.append_option(optgroup->get_option("top_infill_flow_ratio")); + line.append_option(optgroup->get_option("ironing_flow_ratio")); optgroup->append_line(line); page = add_options_page(_(L("Multiple extruders")), "funnel"); @@ -1287,7 +1263,7 @@ void TabPrint::build() line.append_option(option); optgroup->append_line(line); - optgroup = page->new_optgroup(_(L("Output file"))); + optgroup = page->new_optgroup(_(L("Output file"))); optgroup->append_single_option_line("gcode_comments"); optgroup->append_single_option_line("gcode_label_objects"); option = optgroup->get_option("output_filename_format"); @@ -1338,9 +1314,281 @@ void TabPrint::update() if (m_preset_bundle->printers.get_selected_preset().printer_technology() == ptSLA) return; // ys_FIXME + // #ys_FIXME_to_delete + //! Temporary workaround for the correct updates of the TextCtrl (like "layer_height"): + // KillFocus() for the wxSpinCtrl use CallAfter function. So, + // to except the duplicate call of the update() after dialog->ShowModal(), + // let check if this process is already started. + if (is_msg_dlg_already_exist) + return; + m_update_cnt++; +// Freeze(); - m_config_manipulation.update_print_fff_config(m_config, true); + // layer_height shouldn't be equal to zero + if (m_config->opt_float("layer_height") < EPSILON) + { + const wxString msg_text = _(L("Zero layer height is not valid.\n\nThe layer height will be reset to 0.01.")); + auto dialog = new wxMessageDialog(parent(), msg_text, _(L("Layer height")), wxICON_WARNING | wxOK); + DynamicPrintConfig new_conf = *m_config; + is_msg_dlg_already_exist = true; + dialog->ShowModal(); + new_conf.set_key_value("layer_height", new ConfigOptionFloat(0.01)); + load_config(new_conf); + is_msg_dlg_already_exist = false; + } + + if (fabs(m_config->option("first_layer_height")->value - 0) < EPSILON) + { + const wxString msg_text = _(L("Zero first layer height is not valid.\n\nThe first layer height will be reset to 0.01.")); + auto dialog = new wxMessageDialog(parent(), msg_text, _(L("First layer height")), wxICON_WARNING | wxOK); + DynamicPrintConfig new_conf = *m_config; + is_msg_dlg_already_exist = true; + dialog->ShowModal(); + new_conf.set_key_value("first_layer_height", new ConfigOptionFloatOrPercent(0.01, false)); + load_config(new_conf); + is_msg_dlg_already_exist = false; + } + + double fill_density = m_config->option("fill_density")->value; + + if (m_config->opt_bool("spiral_vase") && !( + m_config->opt_int("perimeters") == 1 + && m_config->opt_int("top_solid_layers") == 0 + && fill_density == 0 + && m_config->opt_bool("support_material") == false + && m_config->opt_int("support_material_enforce_layers") == 0 + && m_config->opt_bool("exact_last_layer_height") == false + && m_config->opt_bool("ensure_vertical_shell_thickness") == false + && m_config->opt_bool("infill_dense") == false + && m_config->opt_bool("extra_perimeters") == false + )) { + wxString msg_text = _(L("The Spiral Vase mode requires:\n" + "- one perimeter\n" + "- no top solid layers\n" + "- 0% fill density\n" + "- no support material\n" + "- no ensure_vertical_shell_thickness\n" + "- unchecked 'exact last layer height'\n" + "- unchecked 'dense infill'\n" + "- unchecked 'extra perimeters'\n" + "\nShall I adjust those settings in order to enable Spiral Vase?")); + auto dialog = new wxMessageDialog(parent(), msg_text, _(L("Spiral Vase")), wxICON_WARNING | wxYES | wxNO); + DynamicPrintConfig new_conf = *m_config; + if (dialog->ShowModal() == wxID_YES) { + new_conf.set_key_value("perimeters", new ConfigOptionInt(1)); + new_conf.set_key_value("top_solid_layers", new ConfigOptionInt(0)); + new_conf.set_key_value("fill_density", new ConfigOptionPercent(0)); + new_conf.set_key_value("support_material", new ConfigOptionBool(false)); + new_conf.set_key_value("support_material_enforce_layers", new ConfigOptionInt(0)); + new_conf.set_key_value("exact_last_layer_height", new ConfigOptionBool(false)); + new_conf.set_key_value("ensure_vertical_shell_thickness", new ConfigOptionBool(false)); + new_conf.set_key_value("infill_dense", new ConfigOptionBool(false)); + new_conf.set_key_value("extra_perimeters", new ConfigOptionBool(false)); + fill_density = 0; + } + else { + new_conf.set_key_value("spiral_vase", new ConfigOptionBool(false)); + } + load_config(new_conf); + on_value_change("fill_density", fill_density); + } + + if (m_config->opt_bool("wipe_tower") && m_config->opt_bool("support_material") && + ((ConfigOptionEnumGeneric*)m_config->option("support_material_contact_distance_type"))->value != zdNone && + (m_config->opt_int("support_material_extruder") != 0 || m_config->opt_int("support_material_interface_extruder") != 0)) { + wxString msg_text = _(L("The Wipe Tower currently supports the non-soluble supports only\n" + "if they are printed with the current extruder without triggering a tool change.\n" + "(both support_material_extruder and support_material_interface_extruder need to be set to 0).\n" + "\nShall I adjust those settings in order to enable the Wipe Tower?")); + auto dialog = new wxMessageDialog(parent(), msg_text, _(L("Wipe Tower")), wxICON_WARNING | wxYES | wxNO); + DynamicPrintConfig new_conf = *m_config; + if (dialog->ShowModal() == wxID_YES) { + new_conf.set_key_value("support_material_extruder", new ConfigOptionInt(0)); + new_conf.set_key_value("support_material_interface_extruder", new ConfigOptionInt(0)); + } + else + new_conf.set_key_value("wipe_tower", new ConfigOptionBool(false)); + load_config(new_conf); + } + + if (m_config->opt_bool("wipe_tower") && m_config->opt_bool("support_material") && + ((ConfigOptionEnumGeneric*)m_config->option("support_material_contact_distance_type"))->value == zdNone && + !m_config->opt_bool("support_material_synchronize_layers")) { + wxString msg_text = _(L("For the Wipe Tower to work with the soluble supports, the support layers\n" + "need to be synchronized with the object layers.\n" + "\nShall I synchronize support layers in order to enable the Wipe Tower?")); + auto dialog = new wxMessageDialog(parent(), msg_text, _(L("Wipe Tower")), wxICON_WARNING | wxYES | wxNO); + DynamicPrintConfig new_conf = *m_config; + if (dialog->ShowModal() == wxID_YES) { + new_conf.set_key_value("support_material_synchronize_layers", new ConfigOptionBool(true)); + } + else + new_conf.set_key_value("wipe_tower", new ConfigOptionBool(false)); + load_config(new_conf); + } + + if (m_config->opt_bool("support_material")) { + // Ask only once. + if (!m_support_material_overhangs_queried) { + m_support_material_overhangs_queried = true; + if (!m_config->opt_bool("overhangs")/* != 1*/) { + wxString msg_text = _(L("Supports work better, if the following feature is enabled:\n" + "- Detect bridging perimeters\n" + "\nShall I adjust those settings for supports?")); + auto dialog = new wxMessageDialog(parent(), msg_text, _(L("Support Generator")), wxICON_WARNING | wxYES | wxNO | wxCANCEL); + DynamicPrintConfig new_conf = *m_config; + auto answer = dialog->ShowModal(); + if (answer == wxID_YES) { + // Enable "detect bridging perimeters". + new_conf.set_key_value("overhangs", new ConfigOptionBool(true)); + } else if (answer == wxID_NO) { + // Do nothing, leave supports on and "detect bridging perimeters" off. + } else if (answer == wxID_CANCEL) { + // Disable supports. + new_conf.set_key_value("support_material", new ConfigOptionBool(false)); + m_support_material_overhangs_queried = false; + } + load_config(new_conf); + } + } + } + else { + m_support_material_overhangs_queried = false; + } + + if (m_config->option("fill_density")->value == 100) { + auto fill_pattern = m_config->option>("fill_pattern")->value; + std::string str_fill_pattern = ""; + t_config_enum_values map_names = m_config->option>("fill_pattern")->get_enum_values(); + for (auto it : map_names) { + if (fill_pattern == it.second) { + str_fill_pattern = it.first; + break; + } + } + if (!str_fill_pattern.empty()) { + bool correct_100p_fill = false; + const std::vector top_fill_pattern = m_config->def()->get("top_fill_pattern")->enum_values; + for (const std::string &fill : top_fill_pattern) + { + if (str_fill_pattern == fill) + correct_100p_fill = true; + } + const std::vector bottom_fill_pattern = m_config->def()->get("bottom_fill_pattern")->enum_values; + for (const std::string &fill : bottom_fill_pattern) { + if (str_fill_pattern.compare(fill) == 0) + correct_100p_fill = true; + } + // get fill_pattern name from enum_labels for using this one at dialog_msg + str_fill_pattern = _utf8(m_config->def()->get("fill_pattern")->enum_labels[fill_pattern]); + if (!correct_100p_fill) { + wxString msg_text = GUI::from_u8((boost::format(_utf8(L("The %1% infill pattern is not supposed to work at 100%% density.\n\n" + "Shall I switch to rectilinear fill pattern?"))) % str_fill_pattern).str()); + auto dialog = new wxMessageDialog(parent(), msg_text, _(L("Infill")), wxICON_WARNING | wxYES | wxNO); + DynamicPrintConfig new_conf = *m_config; + if (dialog->ShowModal() == wxID_YES) { + new_conf.set_key_value("fill_pattern", new ConfigOptionEnum(ipRectilinear)); + fill_density = 100; + } + else + fill_density = m_presets->get_selected_preset().config.option("fill_density")->value; + new_conf.set_key_value("fill_density", new ConfigOptionPercent(fill_density)); + load_config(new_conf); + on_value_change("fill_density", fill_density); + } + } + } + + bool have_perimeters = m_config->opt_int("perimeters") > 0; + for (auto el : { "extra_perimeters", "only_one_perimeter_top", "ensure_vertical_shell_thickness", "thin_walls", "overhangs", + "seam_position", "external_perimeters_first", "external_perimeter_extrusion_width", + "perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "perimeter_loop", "perimeter_loop_seam" }) + get_field(el)->toggle(have_perimeters); + + for (auto el : { "thin_walls_min_width", "thin_walls_overlap" }) get_field(el)->toggle(m_config->opt_bool("thin_walls")); + get_field("perimeter_loop_seam")->toggle(m_config->opt_bool("perimeter_loop")); + + bool have_infill = m_config->option("fill_density")->value > 0; + // infill_extruder uses the same logic as in Print::extruders() + for (auto el : {"fill_pattern", "infill_every_layers", "infill_only_where_needed", + "solid_infill_every_layers", "solid_infill_below_area", "infill_extruder" }) + get_field(el)->toggle(have_infill); + + bool can_have_infill_dense = m_config->option("fill_density")->value < 50; + for (auto el : { "infill_dense" }) + get_field(el)->toggle(can_have_infill_dense); + bool have_infill_dense = m_config->opt_bool("infill_dense") && can_have_infill_dense; + for (auto el : { "infill_dense_algo" }) + get_field(el)->toggle(have_infill_dense); + + bool have_solid_infill = m_config->opt_int("top_solid_layers") > 0 || m_config->opt_int("bottom_solid_layers") > 0; + // solid_infill_extruder uses the same logic as in Print::extruders() + for (auto el : { "top_fill_pattern", "bottom_fill_pattern", "solid_fill_pattern", "enforce_full_fill_volume", "external_infill_margin", + "infill_first", "solid_infill_extruder", "solid_infill_extrusion_width", "solid_infill_speed" }) + get_field(el)->toggle(have_solid_infill); + + for (auto el : {"fill_angle", "bridge_angle", "infill_extrusion_width", + "infill_speed", "bridge_speed" }) + get_field(el)->toggle(have_infill || have_solid_infill); + + get_field("gap_fill_speed")->toggle(have_perimeters && m_config->opt_bool("gap_fill")); + + bool have_top_solid_infill = m_config->opt_int("top_solid_layers") > 0; + for (auto el : { "top_infill_extrusion_width", "top_solid_infill_speed" }) + get_field(el)->toggle(have_top_solid_infill); + + bool have_default_acceleration = m_config->opt_float("default_acceleration") > 0; + for (auto el : {"perimeter_acceleration", "infill_acceleration", + "bridge_acceleration", "first_layer_acceleration" }) + get_field(el)->toggle(have_default_acceleration); + + bool have_skirt = m_config->opt_int("skirts") > 0 || m_config->opt_float("min_skirt_length") > 0; + for (auto el : { "skirt_distance", "skirt_height" }) + get_field(el)->toggle(have_skirt); + + bool have_brim = m_config->opt_float("brim_width") > 0; + // perimeter_extruder uses the same logic as in Print::extruders() + get_field("perimeter_extruder")->toggle(have_perimeters || have_brim); + + get_field("brim_ears")->toggle(have_brim); + get_field("brim_ears_max_angle")->toggle(have_brim && m_config->opt_bool("brim_ears")); + + bool have_raft = m_config->opt_int("raft_layers") > 0; + bool have_support_material = m_config->opt_bool("support_material") || have_raft; + bool have_support_material_auto = have_support_material && m_config->opt_bool("support_material_auto"); + bool have_support_interface = m_config->opt_int("support_material_interface_layers") > 0; + bool have_support_soluble = have_support_material && ((ConfigOptionEnumGeneric*)m_config->option("support_material_contact_distance_type"))->value == zdNone; + for (auto el : {"support_material_pattern", "support_material_with_sheath", + "support_material_spacing", "support_material_angle", "support_material_interface_layers", + "dont_support_bridges", "support_material_extrusion_width", + "support_material_contact_distance_type", + "support_material_xy_spacing", "support_material_interface_pattern" }) + get_field(el)->toggle(have_support_material); + get_field("support_material_threshold")->toggle(have_support_material_auto); + for (auto el : { "support_material_contact_distance_top", + "support_material_contact_distance_bottom"}) + get_field(el)->toggle(have_support_material && !have_support_soluble); + + for (auto el : {"support_material_interface_spacing", "support_material_interface_extruder", + "support_material_interface_speed", "support_material_interface_contact_loops" }) + get_field(el)->toggle(have_support_material && have_support_interface); + get_field("support_material_synchronize_layers")->toggle(have_support_soluble); + + get_field("perimeter_extrusion_width")->toggle(have_perimeters || have_skirt || have_brim); + get_field("support_material_extruder")->toggle(have_support_material || have_skirt); + get_field("support_material_speed")->toggle(have_support_material || have_brim || have_skirt); + + bool have_sequential_printing = m_config->opt_bool("complete_objects"); + for (auto el : { "extruder_clearance_radius", "extruder_clearance_height" }) + get_field(el)->toggle(have_sequential_printing); + + bool have_ooze_prevention = m_config->opt_bool("ooze_prevention"); + get_field("standby_temperature_delta")->toggle(have_ooze_prevention); + + bool have_wipe_tower = m_config->opt_bool("wipe_tower"); + for (auto el : { "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_bridging"}) + get_field(el)->toggle(have_wipe_tower); m_recommended_thin_wall_thickness_description_line->SetText( from_u8(PresetHints::recommended_thin_wall_thickness(*m_preset_bundle))); @@ -1349,14 +1597,9 @@ void TabPrint::update() // Thaw(); m_update_cnt--; - if (m_update_cnt==0) { - m_config_manipulation.toggle_print_fff_options(m_config); - - wxGetApp().obj_list()->update_and_show_object_settings_item(); - + if (m_update_cnt==0) wxGetApp().mainframe->on_config_changed(m_config); } -} void TabPrint::OnActivate() { @@ -1477,7 +1720,7 @@ void TabFilament::build() optgroup->append_single_option_line("filament_density"); optgroup->append_single_option_line("filament_cost"); - optgroup = page->new_optgroup(_(L("Temperature")) + wxString(" °C", wxConvUTF8)); + optgroup = page->new_optgroup(_(L("Temperature ")) + wxString("°C", wxConvUTF8)); Line line = { _(L("Extruder")), "" }; line.append_option(optgroup->get_option("first_layer_temperature")); line.append_option(optgroup->get_option("temperature")); @@ -1631,17 +1874,6 @@ void TabFilament::reload_config() Tab::reload_config(); } -void TabFilament::update_volumetric_flow_preset_hints() -{ - wxString text; - try { - text = from_u8(PresetHints::maximum_volumetric_flow_description(*m_preset_bundle)); - } catch (std::exception &ex) { - text = _(L("Volumetric flow hints not available")) + "\n\n" + from_u8(ex.what()); - } - m_volumetric_speed_description_line->SetText(text); -} - void TabFilament::update() { if (m_preset_bundle->printers.get_selected_preset().printer_technology() == ptSLA) @@ -1651,7 +1883,8 @@ void TabFilament::update() wxString text = from_u8(PresetHints::cooling_description(m_presets->get_edited_preset())); m_cooling_description_line->SetText(text); - this->update_volumetric_flow_preset_hints(); + text = from_u8(PresetHints::maximum_volumetric_flow_description(*m_preset_bundle)); + m_volumetric_speed_description_line->SetText(text); Layout(); bool cooling = m_config->opt_bool("cooling", 0); @@ -1673,7 +1906,7 @@ void TabFilament::update() void TabFilament::OnActivate() { - this->update_volumetric_flow_preset_hints(); + m_volumetric_speed_description_line->SetText(from_u8(PresetHints::maximum_volumetric_flow_description(*m_preset_bundle))); Tab::OnActivate(); } @@ -1886,7 +2119,7 @@ void TabPrinter::build_fff() optgroup->append_single_option_line("single_extruder_multi_material"); optgroup->m_on_change = [this, optgroup](t_config_option_key opt_key, boost::any value) { - size_t extruders_count = boost::any_cast(optgroup->get_value("extruders_count")); + size_t extruders_count = boost::any_cast(optgroup->get_value("extruders_count")); wxTheApp->CallAfter([this, opt_key, value, extruders_count]() { if (opt_key == "extruders_count" || opt_key == "single_extruder_multi_material") { extruders_count_changed(extruders_count); @@ -1906,19 +2139,16 @@ void TabPrinter::build_fff() const wxString msg_text = _(L("Single Extruder Multi Material is selected, \n" "and all extruders must have the same diameter.\n" "Do you want to change the diameter for all extruders to first extruder nozzle diameter value?")); - wxMessageDialog dialog(parent(), msg_text, _(L("Nozzle diameter")), wxICON_WARNING | wxYES_NO); + auto dialog = new wxMessageDialog(parent(), msg_text, _(L("Nozzle diameter")), wxICON_WARNING | wxYES_NO); + if (dialog->ShowModal() == wxID_YES) { DynamicPrintConfig new_conf = *m_config; - if (dialog.ShowModal() == wxID_YES) { for (size_t i = 1; i < nozzle_diameters.size(); i++) nozzle_diameters[i] = frst_diam; new_conf.set_key_value("nozzle_diameter", new ConfigOptionFloats(nozzle_diameters)); - } - else - new_conf.set_key_value("single_extruder_multi_material", new ConfigOptionBool(false)); - load_config(new_conf); + } break; } } @@ -2152,12 +2382,6 @@ void TabPrinter::build_sla() optgroup->append_single_option_line("absolute_correction"); optgroup->append_single_option_line("gamma_correction"); - optgroup = page->new_optgroup(_(L("Exposure"))); - optgroup->append_single_option_line("min_exposure_time"); - optgroup->append_single_option_line("max_exposure_time"); - optgroup->append_single_option_line("min_initial_exposure_time"); - optgroup->append_single_option_line("max_initial_exposure_time"); - optgroup = page->new_optgroup(_(L("Print Host upload"))); build_printhost(optgroup.get()); @@ -2191,9 +2415,9 @@ void TabPrinter::extruders_count_changed(size_t extruders_count) { bool is_count_changed = false; if (m_extruders_count != extruders_count) { - m_extruders_count = extruders_count; - m_preset_bundle->printers.get_edited_preset().set_num_extruders(extruders_count); - m_preset_bundle->update_multi_material_filament_presets(); + m_extruders_count = extruders_count; + m_preset_bundle->printers.get_edited_preset().set_num_extruders(extruders_count); + m_preset_bundle->update_multi_material_filament_presets(); is_count_changed = true; } else if (m_extruders_count == 1 && @@ -2307,7 +2531,7 @@ void TabPrinter::build_unregular_pages() // Add/delete Kinematics page according to is_marlin_flavor size_t existed_page = 0; - for (size_t i = n_before_extruders; i < m_pages.size(); ++i) // first make sure it's not there already + for (int i = n_before_extruders; i < m_pages.size(); ++i) // first make sure it's not there already if (m_pages[i]->title().find(_(L("Machine limits"))) != std::string::npos) { if (!is_marlin_flavor || m_rebuild_kinematics_page) m_pages.erase(m_pages.begin() + i); @@ -2332,7 +2556,7 @@ void TabPrinter::build_unregular_pages() (m_has_single_extruder_MM_page && m_extruders_count == 1)) { // if we have a single extruder MM setup, add a page with configuration options: - for (size_t i = 0; i < m_pages.size(); ++i) // first make sure it's not there already + for (int i = 0; i < m_pages.size(); ++i) // first make sure it's not there already if (m_pages[i]->title().find(_(L("Single extruder MM setup"))) != std::string::npos) { m_pages.erase(m_pages.begin() + i); break; @@ -2378,12 +2602,11 @@ void TabPrinter::build_unregular_pages() // if value was changed if (fabs(nozzle_diameters[extruder_idx == 0 ? 1 : 0] - new_nd) > EPSILON) { - const wxString msg_text = _(L("This is a single extruder multimaterial printer, diameters of all extruders " - "will be set to the new value. Do you want to proceed?")); - wxMessageDialog dialog(parent(), msg_text, _(L("Nozzle diameter")), wxICON_WARNING | wxYES_NO); + const wxString msg_text = _(L("Do you want to change the diameter for all extruders?")); + auto dialog = new wxMessageDialog(parent(), msg_text, _(L("Nozzle diameter")), wxICON_WARNING | wxYES_NO); DynamicPrintConfig new_conf = *m_config; - if (dialog.ShowModal() == wxID_YES) { + if (dialog->ShowModal() == wxID_YES) { for (size_t i = 0; i < nozzle_diameters.size(); i++) { if (i==extruder_idx) continue; @@ -2432,33 +2655,7 @@ void TabPrinter::build_unregular_pages() optgroup->append_single_option_line("retract_restart_extra_toolchange", extruder_idx); optgroup = page->new_optgroup(_(L("Preview"))); - - auto reset_to_filament_color = [this, extruder_idx](wxWindow* parent) { - add_scaled_button(parent, &m_reset_to_filament_color, "undo", - _(L("Reset to Filament Color")), wxBU_LEFT | wxBU_EXACTFIT); - ScalableButton* btn = m_reset_to_filament_color; - btn->SetFont(Slic3r::GUI::wxGetApp().normal_font()); - auto sizer = new wxBoxSizer(wxHORIZONTAL); - sizer->Add(btn); - - btn->Bind(wxEVT_BUTTON, [this, extruder_idx](wxCommandEvent& e) - { - std::vector colors = static_cast(m_config->option("extruder_colour"))->values; - colors[extruder_idx] = ""; - - DynamicPrintConfig new_conf = *m_config; - new_conf.set_key_value("extruder_colour", new ConfigOptionStrings(colors)); - load_config(new_conf); - - update_dirty(); - update(); - }); - - return sizer; - }; - line = optgroup->create_single_option_line("extruder_colour", extruder_idx); - line.append_widget(reset_to_filament_color); - optgroup->append_line(line); + optgroup->append_single_option_line("extruder_colour", extruder_idx); #ifdef __WXMSW__ layout_page(page); @@ -2484,8 +2681,8 @@ void TabPrinter::on_preset_loaded() { // update the extruders count field auto *nozzle_diameter = dynamic_cast(m_config->option("nozzle_diameter")); - size_t extruders_count = nozzle_diameter->values.size(); - set_value("extruders_count", int(extruders_count)); + int extruders_count = nozzle_diameter->values.size(); + set_value("extruders_count", extruders_count); // update the GUI field according to the number of nozzle diameters supplied extruders_count_changed(extruders_count); } @@ -2615,15 +2812,15 @@ void TabPrinter::update_fff() get_field("retract_before_wipe", i)->toggle(wipe); if (use_firmware_retraction && wipe) { - wxMessageDialog dialog(parent(), + auto dialog = new wxMessageDialog(parent(), _(L("The Wipe option is not available when using the Firmware Retraction mode.\n" "\nShall I disable it in order to enable Firmware Retraction?")), _(L("Firmware Retraction")), wxICON_WARNING | wxYES | wxNO); DynamicPrintConfig new_conf = *m_config; - if (dialog.ShowModal() == wxID_YES) { + if (dialog->ShowModal() == wxID_YES) { auto wipe = static_cast(m_config->option("wipe")->clone()); - for (size_t w = 0; w < wipe->values.size(); w++) + for (int w = 0; w < wipe->values.size(); w++) wipe->values[w] = false; new_conf.set_key_value("wipe", wipe); } @@ -2977,10 +3174,10 @@ bool Tab::may_discard_current_dirty_preset(PresetCollection* presets /*= nullptr message += wxString("\n") + tab + from_u8(new_printer_name) + "\n\n"; message += _(L("and it has the following unsaved changes:")); } - wxMessageDialog confirm(parent(), + auto confirm = new wxMessageDialog(parent(), message + "\n" + changes + "\n\n" + _(L("Discard changes and continue anyway?")), _(L("Unsaved Changes")), wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION); - return confirm.ShowModal() == wxID_YES; + return confirm->ShowModal() == wxID_YES; } // If we are switching from the FFF-preset to the SLA, we should to control the printed objects if they have a part(s). @@ -3087,11 +3284,11 @@ void Tab::save_preset(std::string name /*= ""*/) values.push_back(preset.name); } - SavePresetWindow dlg(parent()); - dlg.build(title(), default_name, values); - if (dlg.ShowModal() != wxID_OK) + auto dlg = new SavePresetWindow(parent()); + dlg->build(title(), default_name, values); + if (dlg->ShowModal() != wxID_OK) return; - name = dlg.get_name(); + name = dlg->get_name(); if (name == "") { show_error(this, _(L("The supplied name is empty. It can't be saved."))); return; @@ -3600,9 +3797,6 @@ void TabSLAPrint::build() optgroup->append_single_option_line("support_base_diameter"); optgroup->append_single_option_line("support_base_height"); optgroup->append_single_option_line("support_base_safety_distance"); - - // Mirrored parameter from Pad page for toggling elevation on the same page - optgroup->append_single_option_line("pad_around_object"); optgroup->append_single_option_line("support_object_elevation"); optgroup = page->new_optgroup(_(L("Connection of the support sticks and junctions"))); @@ -3624,7 +3818,6 @@ void TabSLAPrint::build() // optgroup->append_single_option_line("pad_edge_radius"); optgroup->append_single_option_line("pad_wall_slope"); - optgroup->append_single_option_line("pad_around_object"); optgroup->append_single_option_line("pad_object_gap"); optgroup->append_single_option_line("pad_object_connector_stride"); optgroup->append_single_option_line("pad_object_connector_width"); @@ -3674,39 +3867,58 @@ void TabSLAPrint::update() m_update_cnt++; - m_config_manipulation.update_print_sla_config(m_config, true); - m_update_cnt--; - - if (m_update_cnt == 0) { - m_config_manipulation.toggle_print_sla_options(m_config); - - wxGetApp().obj_list()->update_and_show_object_settings_item(); + double head_penetration = m_config->opt_float("support_head_penetration"); + double head_width = m_config->opt_float("support_head_width"); + if (head_penetration > head_width) { + wxString msg_text = _( + L("Head penetration should not be greater than the head width.")); + + auto dialog = new wxMessageDialog(parent(), + msg_text, + _(L("Invalid Head penetration")), + wxICON_WARNING | wxOK); + + DynamicPrintConfig new_conf = *m_config; + if (dialog->ShowModal() == wxID_OK) { + new_conf.set_key_value("support_head_penetration", + new ConfigOptionFloat(head_width)); + } - wxGetApp().mainframe->on_config_changed(m_config); -} -} + load_config(new_conf); + } -ConfigManipulation Tab::get_config_manipulation() -{ - auto load_config = [this]() - { - update_dirty(); - // Initialize UI components with the config values. - reload_config(); - update(); - }; + double pinhead_d = m_config->opt_float("support_head_front_diameter"); + double pillar_d = m_config->opt_float("support_pillar_diameter"); + if (pinhead_d > pillar_d) { + wxString msg_text = _(L( + "Pinhead diameter should be smaller than the pillar diameter.")); + + auto dialog = new wxMessageDialog(parent(), + msg_text, + _(L("Invalid pinhead diameter")), + wxICON_WARNING | wxOK); + + DynamicPrintConfig new_conf = *m_config; + if (dialog->ShowModal() == wxID_OK) { + new_conf.set_key_value("support_head_front_diameter", + new ConfigOptionFloat(pillar_d / 2.0)); + } - auto get_field_ = [this](const t_config_option_key& opt_key, int opt_index) { - return get_field(opt_key, opt_index); - }; + load_config(new_conf); + } + + // if(m_config->opt_float("support_object_elevation") < EPSILON && + // m_config->opt_bool("pad_enable")) { + // // TODO: disable editding of: + // // pad_object_connector_stride + // // pad_object_connector_width + // // pad_object_connector_penetration + // } - auto cb_value_change = [this](const std::string& opt_key, const boost::any& value) { - return on_value_change(opt_key, value); - }; + m_update_cnt--; - return ConfigManipulation(load_config, get_field_, cb_value_change); + if (m_update_cnt == 0) wxGetApp().mainframe->on_config_changed(m_config); } - } // GUI } // Slic3r diff --git a/src/slic3r/GUI/Tab.hpp b/src/slic3r/GUI/Tab.hpp index ee69376523f..6ff76f5c4a4 100644 --- a/src/slic3r/GUI/Tab.hpp +++ b/src/slic3r/GUI/Tab.hpp @@ -32,7 +32,6 @@ #include "ButtonsDescription.hpp" #include "Event.hpp" #include "wxExtensions.hpp" -#include "ConfigManipulation.hpp" namespace Slic3r { namespace GUI { @@ -219,7 +218,7 @@ class Tab: public wxPanel int m_em_unit; // To avoid actions with no-completed Tab bool m_complited { false }; - ConfigOptionMode m_mode = comExpert; // to correct first Tab update_visibility() set mode to Expert + ConfigOptionMode m_mode = comSimple; public: PresetBundle* m_preset_bundle; @@ -314,13 +313,11 @@ class Tab: public wxPanel void update_frequently_changed_parameters(); void fill_icon_descriptions(); void set_tooltips_text(); - - ConfigManipulation m_config_manipulation; - ConfigManipulation get_config_manipulation(); }; class TabPrint : public Tab { + bool is_msg_dlg_already_exist {false}; public: TabPrint(wxNotebook* parent) : // Tab(parent, _(L("Print Settings")), L("print")) {} @@ -343,7 +340,6 @@ class TabFilament : public Tab void add_filament_overrides_page(); void update_filament_overrides_page(); - void update_volumetric_flow_preset_hints(); std::map m_overrides_options; public: @@ -374,7 +370,6 @@ class TabPrinter : public Tab wxButton* m_serial_test_btn = nullptr; ScalableButton* m_print_host_test_btn = nullptr; ScalableButton* m_printhost_browse_btn = nullptr; - ScalableButton* m_reset_to_filament_color = nullptr; size_t m_extruders_count; size_t m_extruders_count_old = 0; diff --git a/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index db33226b130..eecbcae1910 100644 --- a/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp @@ -34,8 +34,10 @@ static const std::string CONFIG_UPDATE_WIKI_URL("https://github.com/prusa3d/Prus // MsgUpdateSlic3r -MsgUpdateSlic3r::MsgUpdateSlic3r(const Semver &ver_current, const Semver &ver_online) - : MsgDialog(nullptr, _(L("Update available")), wxString::Format(_(L("New version of %s is available")), SLIC3R_APP_NAME)) +MsgUpdateSlic3r::MsgUpdateSlic3r(const Semver &ver_current, const Semver &ver_online) : + MsgDialog(nullptr, _(L("Update available")), wxString::Format(_(L("New version of %s is available")), SLIC3R_APP_NAME)), + ver_current(ver_current), + ver_online(ver_online) { const bool dev_version = ver_online.prerelease() != nullptr; @@ -111,9 +113,7 @@ MsgUpdateConfig::MsgUpdateConfig(const std::vector &updates) : if (! update.comment.empty()) { flex->Add(new wxStaticText(this, wxID_ANY, _(L("Comment:"))), 0, wxALIGN_RIGHT); - auto *update_comment = new wxStaticText(this, wxID_ANY, from_u8(update.comment)); - update_comment->Wrap(CONTENT_WIDTH * wxGetApp().em_unit()); - flex->Add(update_comment); + flex->Add(new wxStaticText(this, wxID_ANY, from_u8(update.comment))); } versions->Add(flex); diff --git a/src/slic3r/GUI/UpdateDialogs.hpp b/src/slic3r/GUI/UpdateDialogs.hpp index a916e0145ee..2a580e25134 100644 --- a/src/slic3r/GUI/UpdateDialogs.hpp +++ b/src/slic3r/GUI/UpdateDialogs.hpp @@ -5,7 +5,7 @@ #include #include -#include "libslic3r/Semver.hpp" +#include "slic3r/Utils/Semver.hpp" #include "MsgDialog.hpp" class wxBoxSizer; @@ -31,6 +31,8 @@ class MsgUpdateSlic3r : public MsgDialog bool disable_version_check() const; private: + const Semver &ver_current; + const Semver &ver_online; wxCheckBox *cbox; }; diff --git a/src/slic3r/GUI/WipeTowerDialog.cpp b/src/slic3r/GUI/WipeTowerDialog.cpp index 460683f7729..894b1ee62da 100644 --- a/src/slic3r/GUI/WipeTowerDialog.cpp +++ b/src/slic3r/GUI/WipeTowerDialog.cpp @@ -1,7 +1,6 @@ #include #include #include "WipeTowerDialog.hpp" -#include "PresetBundle.hpp" #include "GUI.hpp" #include "I18N.hpp" #include "GUI_App.hpp" @@ -138,11 +137,11 @@ std::string RammingPanel::get_parameters() // Parent dialog for purging volume adjustments - it fathers WipingPanel widget (that contains all controls) and a button to toggle simple/advanced mode: -WipingDialog::WipingDialog(wxWindow* parent, const std::vector& matrix, const std::vector& extruders, const std::vector& extruder_colours) +WipingDialog::WipingDialog(wxWindow* parent,const std::vector& matrix, const std::vector& extruders) : wxDialog(parent, wxID_ANY, _(L("Wipe tower - Purging volume adjustment")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE/* | wxRESIZE_BORDER*/) { auto widget_button = new wxButton(this,wxID_ANY,"-",wxPoint(0,0),wxDefaultSize); - m_panel_wiping = new WipingPanel(this,matrix,extruders, extruder_colours, widget_button); + m_panel_wiping = new WipingPanel(this,matrix,extruders, widget_button); auto main_sizer = new wxBoxSizer(wxVERTICAL); @@ -181,7 +180,7 @@ void WipingPanel::format_sizer(wxSizer* sizer, wxPanel* page, wxGridSizer* grid_ } // This panel contains all control widgets for both simple and advanced mode (these reside in separate sizers) -WipingPanel::WipingPanel(wxWindow* parent, const std::vector& matrix, const std::vector& extruders, const std::vector& extruder_colours, wxButton* widget_button) +WipingPanel::WipingPanel(wxWindow* parent, const std::vector& matrix, const std::vector& extruders, wxButton* widget_button) : wxPanel(parent,wxID_ANY, wxDefaultPosition, wxDefaultSize/*,wxBORDER_RAISED*/) { m_widget_button = widget_button; // pointer to the button in parent dialog @@ -189,12 +188,6 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector& matrix, con m_number_of_extruders = (int)(sqrt(matrix.size())+0.001); - for (const std::string& color : extruder_colours) { - unsigned char rgb[3]; - Slic3r::PresetBundle::parse_color(color, rgb); - m_colours.push_back(wxColor(rgb[0], rgb[1], rgb[2])); - } - // Create two switched panels with their own sizers m_sizer_simple = new wxBoxSizer(wxVERTICAL); m_sizer_advanced = new wxBoxSizer(wxVERTICAL); @@ -218,36 +211,14 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector& matrix, con edit_boxes[i][j]->SetValue(wxString("") << int(matrix[m_number_of_extruders*j + i])); } } - - const int clr_icon_side = edit_boxes.front().front()->GetSize().y; - const auto icon_size = wxSize(clr_icon_side, clr_icon_side); - m_gridsizer_advanced->Add(new wxStaticText(m_page_advanced, wxID_ANY, wxString(""))); + for (unsigned int i = 0; i < m_number_of_extruders; ++i) + m_gridsizer_advanced->Add(new wxStaticText(m_page_advanced, wxID_ANY, wxString("") << i + 1), 0, wxALIGN_CENTER | wxALIGN_CENTER_VERTICAL); for (unsigned int i = 0; i < m_number_of_extruders; ++i) { - auto hsizer = new wxBoxSizer(wxHORIZONTAL); - hsizer->AddSpacer(20); - hsizer->Add(new wxStaticText(m_page_advanced, wxID_ANY, wxString("") << i + 1), 0, wxALIGN_CENTER); - wxWindow* w = new wxWindow(m_page_advanced, wxID_ANY, wxDefaultPosition, icon_size, wxBORDER_SIMPLE); - w->SetCanFocus(false); - w->SetBackgroundColour(m_colours[i]); - hsizer->AddStretchSpacer(); - hsizer->Add(w); - m_gridsizer_advanced->Add(hsizer, 1, wxEXPAND); - } - for (unsigned int i = 0; i < m_number_of_extruders; ++i) { - auto hsizer = new wxBoxSizer(wxHORIZONTAL); - wxWindow* w = new wxWindow(m_page_advanced, wxID_ANY, wxDefaultPosition, icon_size, wxBORDER_SIMPLE); - w->SetCanFocus(false); - w->SetBackgroundColour(m_colours[i]); - hsizer->AddSpacer(20); - hsizer->Add(new wxStaticText(m_page_advanced, wxID_ANY, wxString("") << i + 1), 0, wxALIGN_CENTER | wxALIGN_CENTER_VERTICAL); - hsizer->AddStretchSpacer(); - hsizer->Add(w); - m_gridsizer_advanced->Add(hsizer, 1, wxEXPAND); - - for (unsigned int j = 0; j < m_number_of_extruders; ++j) - m_gridsizer_advanced->Add(edit_boxes[j][i], 0); - } + m_gridsizer_advanced->Add(new wxStaticText(m_page_advanced, wxID_ANY, wxString("") << i + 1), 0, wxALIGN_CENTER | wxALIGN_CENTER_VERTICAL); + for (unsigned int j = 0; j < m_number_of_extruders; ++j) + m_gridsizer_advanced->Add(edit_boxes[j][i], 0); + } // collect and format sizer format_sizer(m_sizer_advanced, m_page_advanced, m_gridsizer_advanced, @@ -266,16 +237,7 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector& matrix, con for (unsigned int i=0;iSetCanFocus(false); - w->SetBackgroundColour(m_colours[i]); - hsizer->Add(w, wxALIGN_CENTER_VERTICAL); - hsizer->AddSpacer(10); - hsizer->Add(new wxStaticText(m_page_simple, wxID_ANY, wxString(_(L("Tool #"))) << i + 1 << ": "), 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL); - - gridsizer_simple->Add(hsizer, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL); + gridsizer_simple->Add(new wxStaticText(m_page_simple, wxID_ANY, wxString(_(L("Tool #"))) << i + 1 << ": "), 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL); gridsizer_simple->Add(m_old.back(),0); gridsizer_simple->Add(m_new.back(),0); } diff --git a/src/slic3r/GUI/WipeTowerDialog.hpp b/src/slic3r/GUI/WipeTowerDialog.hpp index 84b9921dec8..d858062da8a 100644 --- a/src/slic3r/GUI/WipeTowerDialog.hpp +++ b/src/slic3r/GUI/WipeTowerDialog.hpp @@ -46,7 +46,7 @@ class RammingDialog : public wxDialog { class WipingPanel : public wxPanel { public: - WipingPanel(wxWindow* parent, const std::vector& matrix, const std::vector& extruders, const std::vector& extruder_colours, wxButton* widget_button); + WipingPanel(wxWindow* parent, const std::vector& matrix, const std::vector& extruders, wxButton* widget_button); std::vector read_matrix_values(); std::vector read_extruders_values(); void toggle_advanced(bool user_action = false); @@ -59,7 +59,6 @@ class WipingPanel : public wxPanel { std::vector m_old; std::vector m_new; std::vector> edit_boxes; - std::vector m_colours; unsigned int m_number_of_extruders = 0; bool m_advanced = false; wxPanel* m_page_simple = nullptr; @@ -77,7 +76,7 @@ class WipingPanel : public wxPanel { class WipingDialog : public wxDialog { public: - WipingDialog(wxWindow* parent, const std::vector& matrix, const std::vector& extruders, const std::vector& extruder_colours); + WipingDialog(wxWindow* parent,const std::vector& matrix, const std::vector& extruders); std::vector get_matrix() const { return m_output_matrix; } std::vector get_extruders() const { return m_output_extruders; } diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index bf5500cf459..9f36eceb934 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -157,24 +157,6 @@ wxMenuItem* append_menu_radio_item(wxMenu* menu, int id, const wxString& string, return item; } -wxMenuItem* append_menu_check_item(wxMenu* menu, int id, const wxString& string, const wxString& description, - std::function cb, wxEvtHandler* event_handler) -{ - if (id == wxID_ANY) - id = wxNewId(); - - wxMenuItem* item = menu->AppendCheckItem(id, string, description); - -#ifdef __WXMSW__ - if (event_handler != nullptr && event_handler != menu) - event_handler->Bind(wxEVT_MENU, cb, id); - else -#endif // __WXMSW__ - menu->Bind(wxEVT_MENU, cb, id); - - return item; -} - const unsigned int wxCheckListBoxComboPopup::DefaultWidth = 200; const unsigned int wxCheckListBoxComboPopup::DefaultHeight = 200; const unsigned int wxCheckListBoxComboPopup::DefaultItemHeight = 18; @@ -450,19 +432,6 @@ wxBitmap create_scaled_bitmap(wxWindow *win, const std::string& bmp_name_in, // ObjectDataViewModelNode // ---------------------------------------------------------------------------- -void ObjectDataViewModelNode::init_container() -{ -#ifdef __WXGTK__ - // it's necessary on GTK because of control have to know if this item will be container - // in another case you couldn't to add subitem for this item - // it will be produce "segmentation fault" - m_container = true; -#endif //__WXGTK__ -} - -#define LAYER_ROOT_ICON "edit_layers_all" -#define LAYER_ICON "edit_layers_some" - ObjectDataViewModelNode::ObjectDataViewModelNode(ObjectDataViewModelNode* parent, const ItemType type) : m_parent(parent), m_type(type), @@ -481,12 +450,17 @@ ObjectDataViewModelNode::ObjectDataViewModelNode(ObjectDataViewModelNode* parent } else if (type == itLayerRoot) { - m_bmp = create_scaled_bitmap(nullptr, LAYER_ROOT_ICON); // FIXME: pass window ptr + m_bmp = create_scaled_bitmap(nullptr, "edit_layers_all"); // FIXME: pass window ptr m_name = _(L("Layers")); } +#ifdef __WXGTK__ + // it's necessary on GTK because of control have to know if this item will be container + // in another case you couldn't to add subitem for this item + // it will be produce "segmentation fault" if (type & (itInstanceRoot | itLayerRoot)) - init_container(); + m_container = true; +#endif //__WXGTK__ } ObjectDataViewModelNode::ObjectDataViewModelNode(ObjectDataViewModelNode* parent, @@ -510,20 +484,17 @@ ObjectDataViewModelNode::ObjectDataViewModelNode(ObjectDataViewModelNode* parent } const std::string label_range = (boost::format(" %.2f-%.2f ") % layer_range.first % layer_range.second).str(); m_name = _(L("Range")) + label_range + "(" + _(L("mm")) + ")"; - m_bmp = create_scaled_bitmap(nullptr, LAYER_ICON); // FIXME: pass window ptr + m_bmp = create_scaled_bitmap(nullptr, "edit_layers_some"); // FIXME: pass window ptr - set_action_icon(); - init_container(); -} +#ifdef __WXGTK__ + // it's necessary on GTK because of control have to know if this item will be container + // in another case you couldn't to add subitem for this item + // it will be produce "segmentation fault" + m_container = true; +#endif //__WXGTK__ -#ifndef NDEBUG -bool ObjectDataViewModelNode::valid() -{ - // Verify that the object was not deleted yet. - assert(m_idx >= -1); - return m_idx >= -1; + set_action_icon(); } -#endif /* NDEBUG */ void ObjectDataViewModelNode::set_action_icon() { @@ -532,13 +503,6 @@ void ObjectDataViewModelNode::set_action_icon() m_action_icon = create_scaled_bitmap(nullptr, m_action_icon_name); // FIXME: pass window ptr } -void ObjectDataViewModelNode::set_printable_icon(PrintIndicator printable) -{ - m_printable = printable; - m_printable_icon = m_printable == piUndef ? m_empty_bmp : - create_scaled_bitmap(nullptr, m_printable == piPrintable ? "eye_open.png" : "eye_closed.png"); -} - Slic3r::GUI::BitmapCache *m_bitmap_cache = nullptr; void ObjectDataViewModelNode::update_settings_digest_bitmaps() { @@ -584,9 +548,6 @@ void ObjectDataViewModelNode::msw_rescale() if (!m_action_icon_name.empty()) m_action_icon = create_scaled_bitmap(nullptr, m_action_icon_name); - if (m_printable != piUndef) - m_printable_icon = create_scaled_bitmap(nullptr, m_printable == piPrintable ? "eye_open.png" : "eye_closed.png"); - if (!m_opt_categories.empty()) update_settings_digest_bitmaps(); } @@ -595,20 +556,17 @@ bool ObjectDataViewModelNode::SetValue(const wxVariant& variant, unsigned col) { switch (col) { - case colPrint: - m_printable_icon << variant; - return true; - case colName: { + case 0: { DataViewBitmapText data; data << variant; m_bmp = data.GetBitmap(); m_name = data.GetText(); return true; } - case colExtruder: { + case 1: { const wxString & val = variant.GetString(); m_extruder = val == "0" ? _(L("default")) : val; return true; } - case colEditing: + case 2: m_action_icon << variant; return true; default: @@ -758,7 +716,7 @@ static bool append_root_node(ObjectDataViewModelNode *parent_node, if (inst_root_id < 0) { if ((root_type&itInstanceRoot) || - ( (root_type&itLayerRoot) && get_root_idx(parent_node, itInstanceRoot)<0) ) + (root_type&itLayerRoot) && get_root_idx(parent_node, itInstanceRoot)<0) parent_node->Append(*root_node); else if (root_type&itLayerRoot) parent_node->Insert(*root_node, static_cast(get_root_idx(parent_node, itInstanceRoot))); @@ -768,56 +726,26 @@ static bool append_root_node(ObjectDataViewModelNode *parent_node, return false; } -wxDataViewItem ObjectDataViewModel::AddRoot(const wxDataViewItem &parent_item, ItemType root_type) +wxDataViewItem ObjectDataViewModel::AddInstanceChild(const wxDataViewItem &parent_item, size_t num) { ObjectDataViewModelNode *parent_node = (ObjectDataViewModelNode*)parent_item.GetID(); if (!parent_node) return wxDataViewItem(0); // get InstanceRoot node - ObjectDataViewModelNode *root_node { nullptr }; - const bool appended = append_root_node(parent_node, &root_node, root_type); - if (!root_node) return wxDataViewItem(0); + ObjectDataViewModelNode *inst_root_node { nullptr }; - const wxDataViewItem root_item((void*)root_node); + const bool appended = append_root_node(parent_node, &inst_root_node, itInstanceRoot); + const wxDataViewItem inst_root_item((void*)inst_root_node); + if (!inst_root_node) return wxDataViewItem(0); if (appended) - ItemAdded(parent_item, root_item);// notify control - return root_item; -} - -wxDataViewItem ObjectDataViewModel::AddInstanceRoot(const wxDataViewItem &parent_item) -{ - return AddRoot(parent_item, itInstanceRoot); -} - -wxDataViewItem ObjectDataViewModel::AddInstanceChild(const wxDataViewItem &parent_item, size_t num) -{ - std::vector print_indicator(num, true); - - // if InstanceRoot item isn't created for this moment - if (!GetInstanceRootItem(parent_item).IsOk()) - // use object's printable state to first instance - print_indicator[0] = IsPrintable(parent_item); - - return wxDataViewItem((void*)AddInstanceChild(parent_item, print_indicator)); -} - -wxDataViewItem ObjectDataViewModel::AddInstanceChild(const wxDataViewItem& parent_item, - const std::vector& print_indicator) -{ - const wxDataViewItem inst_root_item = AddInstanceRoot(parent_item); - if (!inst_root_item) return wxDataViewItem(0); - - ObjectDataViewModelNode* inst_root_node = (ObjectDataViewModelNode*)inst_root_item.GetID(); + ItemAdded(parent_item, inst_root_item);// notify control // Add instance nodes ObjectDataViewModelNode *instance_node = nullptr; size_t counter = 0; - while (counter < print_indicator.size()) { + while (counter < num) { instance_node = new ObjectDataViewModelNode(inst_root_node, itInstance); - - instance_node->set_printable_icon(print_indicator[counter] ? piPrintable : piUnprintable); - inst_root_node->Append(instance_node); // notify control const wxDataViewItem instance_item((void*)instance_node); @@ -825,67 +753,25 @@ wxDataViewItem ObjectDataViewModel::AddInstanceChild(const wxDataViewItem& paren ++counter; } - // update object_node printable property - UpdateObjectPrintable(parent_item); - return wxDataViewItem((void*)instance_node); } -void ObjectDataViewModel::UpdateObjectPrintable(wxDataViewItem parent_item) -{ - const wxDataViewItem inst_root_item = GetInstanceRootItem(parent_item); - if (!inst_root_item) - return; - - ObjectDataViewModelNode* inst_root_node = (ObjectDataViewModelNode*)inst_root_item.GetID(); - - const size_t child_cnt = inst_root_node->GetChildren().Count(); - PrintIndicator obj_pi = piUnprintable; - for (size_t i=0; i < child_cnt; i++) - if (inst_root_node->GetNthChild(i)->IsPrintable() & piPrintable) { - obj_pi = piPrintable; - break; - } - // and set printable state for object_node to piUndef - ObjectDataViewModelNode* obj_node = (ObjectDataViewModelNode*)parent_item.GetID(); - obj_node->set_printable_icon(obj_pi); - ItemChanged(parent_item); -} - -// update printable property for all instances from object -void ObjectDataViewModel::UpdateInstancesPrintable(wxDataViewItem parent_item) +wxDataViewItem ObjectDataViewModel::AddLayersRoot(const wxDataViewItem &parent_item) { - const wxDataViewItem inst_root_item = GetInstanceRootItem(parent_item); - if (!inst_root_item) - return; - - ObjectDataViewModelNode* obj_node = (ObjectDataViewModelNode*)parent_item.GetID(); - const PrintIndicator obj_pi = obj_node->IsPrintable(); - - ObjectDataViewModelNode* inst_root_node = (ObjectDataViewModelNode*)inst_root_item.GetID(); - const size_t child_cnt = inst_root_node->GetChildren().Count(); + ObjectDataViewModelNode *parent_node = (ObjectDataViewModelNode*)parent_item.GetID(); + if (!parent_node) return wxDataViewItem(0); - for (size_t i=0; i < child_cnt; i++) - { - ObjectDataViewModelNode* inst_node = inst_root_node->GetNthChild(i); - // and set printable state for object_node to piUndef - inst_node->set_printable_icon(obj_pi); - ItemChanged(wxDataViewItem((void*)inst_node)); - } -} + // get LayerRoot node + ObjectDataViewModelNode *layer_root_node{ nullptr }; + const bool appended = append_root_node(parent_node, &layer_root_node, itLayerRoot); + if (!layer_root_node) return wxDataViewItem(0); -bool ObjectDataViewModel::IsPrintable(const wxDataViewItem& item) const -{ - ObjectDataViewModelNode* node = (ObjectDataViewModelNode*)item.GetID(); - if (!node) - return false; + const wxDataViewItem layer_root_item((void*)layer_root_node); - return node->IsPrintable() == piPrintable; -} + if (appended) + ItemAdded(parent_item, layer_root_item);// notify control -wxDataViewItem ObjectDataViewModel::AddLayersRoot(const wxDataViewItem &parent_item) -{ - return AddRoot(parent_item, itLayerRoot); + return layer_root_item; } wxDataViewItem ObjectDataViewModel::AddLayersChild(const wxDataViewItem &parent_item, @@ -946,7 +832,7 @@ wxDataViewItem ObjectDataViewModel::Delete(const wxDataViewItem &item) // node can be deleted by the Delete, let's check its type while we safely can bool is_instance_root = (node->m_type & itInstanceRoot); - for (int i = int(node->GetChildCount() - 1); i >= (is_instance_root ? 1 : 0); i--) + for (int i = node->GetChildCount() - 1; i >= (is_instance_root ? 1 : 0); i--) Delete(wxDataViewItem(node->GetNthChild(i))); return parent; @@ -983,13 +869,11 @@ wxDataViewItem ObjectDataViewModel::Delete(const wxDataViewItem &item) ItemDeleted(parent, item); ObjectDataViewModelNode *last_instance_node = node_parent->GetNthChild(0); - PrintIndicator last_instance_printable = last_instance_node->IsPrintable(); node_parent->GetChildren().Remove(last_instance_node); delete last_instance_node; ItemDeleted(parent, wxDataViewItem(last_instance_node)); ObjectDataViewModelNode *obj_node = node_parent->GetParent(); - obj_node->set_printable_icon(last_instance_printable); obj_node->GetChildren().Remove(node_parent); delete node_parent; ret_item = wxDataViewItem(obj_node); @@ -1002,9 +886,6 @@ wxDataViewItem ObjectDataViewModel::Delete(const wxDataViewItem &item) return ret_item; } - if (node->m_type & itInstance) - UpdateObjectPrintable(wxDataViewItem(node_parent->GetParent())); - // if there was last layer item, delete this one and layers root item if (node_parent->GetChildCount() == 0 && node_parent->m_type == itLayerRoot) { @@ -1026,7 +907,7 @@ wxDataViewItem ObjectDataViewModel::Delete(const wxDataViewItem &item) { int vol_cnt = 0; int vol_idx = 0; - for (size_t i = 0; i < node_parent->GetChildCount(); ++i) { + for (int i = 0; i < node_parent->GetChildCount(); ++i) { if (node_parent->GetNthChild(i)->GetType() == itVolume) { vol_idx = i; vol_cnt++; @@ -1065,7 +946,7 @@ wxDataViewItem ObjectDataViewModel::Delete(const wxDataViewItem &item) else { auto it = find(m_objects.begin(), m_objects.end(), node); - size_t id = it - m_objects.begin(); + auto id = it - m_objects.begin(); if (it != m_objects.end()) { // Delete all sub-items @@ -1114,12 +995,9 @@ wxDataViewItem ObjectDataViewModel::DeleteLastInstance(const wxDataViewItem &par const int inst_cnt = inst_root_node->GetChildCount(); const bool delete_inst_root_item = inst_cnt - num < 2 ? true : false; - PrintIndicator last_inst_printable = piUndef; - int stop = delete_inst_root_item ? 0 : inst_cnt - num; for (int i = inst_cnt - 1; i >= stop;--i) { ObjectDataViewModelNode *last_instance_node = inst_root_node->GetNthChild(i); - if (i==0) last_inst_printable = last_instance_node->IsPrintable(); inst_root_node->GetChildren().Remove(last_instance_node); delete last_instance_node; ItemDeleted(inst_root_item, wxDataViewItem(last_instance_node)); @@ -1128,18 +1006,13 @@ wxDataViewItem ObjectDataViewModel::DeleteLastInstance(const wxDataViewItem &par if (delete_inst_root_item) { ret_item = parent_item; parent_node->GetChildren().Remove(inst_root_node); - parent_node->set_printable_icon(last_inst_printable); ItemDeleted(parent_item, inst_root_item); - ItemChanged(parent_item); #ifndef __WXGTK__ if (parent_node->GetChildCount() == 0) parent_node->m_container = false; #endif //__WXGTK__ } - // update object_node printable property - UpdateObjectPrintable(parent_item); - return ret_item; } @@ -1236,7 +1109,7 @@ void ObjectDataViewModel::DeleteSettings(const wxDataViewItem& parent) wxDataViewItem ObjectDataViewModel::GetItemById(int obj_idx) { - if (size_t(obj_idx) >= m_objects.size()) + if (obj_idx >= m_objects.size()) { printf("Error! Out of objects range.\n"); return wxDataViewItem(0); @@ -1247,7 +1120,7 @@ wxDataViewItem ObjectDataViewModel::GetItemById(int obj_idx) wxDataViewItem ObjectDataViewModel::GetItemByVolumeId(int obj_idx, int volume_idx) { - if (size_t(obj_idx) >= m_objects.size()) { + if (obj_idx >= m_objects.size() || obj_idx < 0) { printf("Error! Out of objects range.\n"); return wxDataViewItem(0); } @@ -1271,7 +1144,7 @@ wxDataViewItem ObjectDataViewModel::GetItemByVolumeId(int obj_idx, int volume_id wxDataViewItem ObjectDataViewModel::GetItemById(const int obj_idx, const int sub_obj_idx, const ItemType parent_type) { - if (size_t(obj_idx) >= m_objects.size()) { + if (obj_idx >= m_objects.size() || obj_idx < 0) { printf("Error! Out of objects range.\n"); return wxDataViewItem(0); } @@ -1300,7 +1173,7 @@ wxDataViewItem ObjectDataViewModel::GetItemByLayerId(int obj_idx, int layer_idx) wxDataViewItem ObjectDataViewModel::GetItemByLayerRange(const int obj_idx, const t_layer_height_range& layer_range) { - if (size_t(obj_idx) >= m_objects.size()) { + if (obj_idx >= m_objects.size() || obj_idx < 0) { printf("Error! Out of objects range.\n"); return wxDataViewItem(0); } @@ -1385,12 +1258,7 @@ void ObjectDataViewModel::GetItemInfo(const wxDataViewItem& item, ItemType& type type = itUndef; ObjectDataViewModelNode *node = (ObjectDataViewModelNode*)item.GetID(); - if (!node || - node->GetIdx() <-1 || - ( node->GetIdx() == -1 && - !(node->GetType() & (itObject | itSettings | itInstanceRoot | itLayerRoot/* | itLayer*/)) - ) - ) + if (!node || node->GetIdx() <-1 || node->GetIdx() == -1 && !(node->GetType() & (itObject | itSettings | itInstanceRoot | itLayerRoot/* | itLayer*/))) return; idx = node->GetIdx(); @@ -1417,13 +1285,13 @@ int ObjectDataViewModel::GetRowByItem(const wxDataViewItem& item) const int row_num = 0; - for (size_t i = 0; i < m_objects.size(); i++) + for (int i = 0; i < m_objects.size(); i++) { row_num++; if (item == wxDataViewItem(m_objects[i])) return row_num; - for (size_t j = 0; j < m_objects[i]->GetChildCount(); j++) + for (int j = 0; j < m_objects[i]->GetChildCount(); j++) { row_num++; ObjectDataViewModelNode* cur_node = m_objects[i]->GetNthChild(j); @@ -1435,7 +1303,7 @@ int ObjectDataViewModel::GetRowByItem(const wxDataViewItem& item) const if (cur_node->m_type == itInstanceRoot) { row_num++; - for (size_t t = 0; t < cur_node->GetChildCount(); t++) + for (int t = 0; t < cur_node->GetChildCount(); t++) { row_num++; if (item == wxDataViewItem(cur_node->GetNthChild(t))) @@ -1448,18 +1316,6 @@ int ObjectDataViewModel::GetRowByItem(const wxDataViewItem& item) const return -1; } -bool ObjectDataViewModel::InvalidItem(const wxDataViewItem& item) -{ - if (!item) - return true; - - ObjectDataViewModelNode* node = (ObjectDataViewModelNode*)item.GetID(); - if (!node || node->invalid()) - return true; - - return false; -} - wxString ObjectDataViewModel::GetName(const wxDataViewItem &item) const { ObjectDataViewModelNode *node = (ObjectDataViewModelNode*)item.GetID(); @@ -1482,16 +1338,13 @@ void ObjectDataViewModel::GetValue(wxVariant &variant, const wxDataViewItem &ite ObjectDataViewModelNode *node = (ObjectDataViewModelNode*)item.GetID(); switch (col) { - case colPrint: - variant << node->m_printable_icon; - break; - case colName: + case 0: variant << DataViewBitmapText(node->m_name, node->m_bmp); break; - case colExtruder: + case 1: variant = node->m_extruder; break; - case colEditing: + case 2: variant << node->m_action_icon; break; default: @@ -1509,7 +1362,7 @@ bool ObjectDataViewModel::SetValue(const wxVariant &variant, const wxDataViewIte bool ObjectDataViewModel::SetValue(const wxVariant &variant, const int item_idx, unsigned int col) { - if (size_t(item_idx) >= m_objects.size()) + if (item_idx < 0 || item_idx >= m_objects.size()) return false; return m_objects[item_idx]->SetValue(variant, col); @@ -1554,7 +1407,7 @@ bool ObjectDataViewModel::IsEnabled(const wxDataViewItem &item, unsigned int col ObjectDataViewModelNode *node = (ObjectDataViewModelNode*)item.GetID(); // disable extruder selection for the non "itObject|itVolume" item - return !(col == colExtruder && node->m_extruder.IsEmpty()); + return !(col == 1 && node->m_extruder.IsEmpty()); } wxDataViewItem ObjectDataViewModel::GetParent(const wxDataViewItem &item) const @@ -1564,7 +1417,6 @@ wxDataViewItem ObjectDataViewModel::GetParent(const wxDataViewItem &item) const return wxDataViewItem(0); ObjectDataViewModelNode *node = (ObjectDataViewModelNode*)item.GetID(); - assert(node != nullptr && node->valid()); // objects nodes has no parent too if (node->m_type == itObject) @@ -1668,7 +1520,7 @@ wxDataViewItem ObjectDataViewModel::GetItemByType(const wxDataViewItem &parent_i if (node->GetChildCount() == 0) return wxDataViewItem(0); - for (size_t i = 0; i < node->GetChildCount(); i++) { + for (int i = 0; i < node->GetChildCount(); i++) { if (node->GetNthChild(i)->m_type == type) return wxDataViewItem((void*)node->GetNthChild(i)); } @@ -1719,46 +1571,6 @@ void ObjectDataViewModel::SetVolumeType(const wxDataViewItem &item, const Slic3r ItemChanged(item); } -wxDataViewItem ObjectDataViewModel::SetPrintableState( - PrintIndicator printable, - int obj_idx, - int subobj_idx /* = -1*/, - ItemType subobj_type/* = itInstance*/) -{ - wxDataViewItem item = wxDataViewItem(0); - if (subobj_idx < 0) - item = GetItemById(obj_idx); - else - item = subobj_type&itInstance ? GetItemByInstanceId(obj_idx, subobj_idx) : - GetItemByVolumeId(obj_idx, subobj_idx); - - ObjectDataViewModelNode* node = (ObjectDataViewModelNode*)item.GetID(); - if (!node) - return wxDataViewItem(0); - node->set_printable_icon(printable); - ItemChanged(item); - - if (subobj_idx >= 0) - UpdateObjectPrintable(GetItemById(obj_idx)); - - return item; -} - -wxDataViewItem ObjectDataViewModel::SetObjectPrintableState( - PrintIndicator printable, - wxDataViewItem obj_item) -{ - ObjectDataViewModelNode* node = (ObjectDataViewModelNode*)obj_item.GetID(); - if (!node) - return wxDataViewItem(0); - node->set_printable_icon(printable); - ItemChanged(obj_item); - - UpdateInstancesPrintable(obj_item); - - return obj_item; -} - void ObjectDataViewModel::Rescale() { wxDataViewItemArray all_items; @@ -1772,22 +1584,11 @@ void ObjectDataViewModel::Rescale() ObjectDataViewModelNode *node = (ObjectDataViewModelNode*)item.GetID(); node->msw_rescale(); - switch (node->m_type) - { - case itObject: - if (node->m_bmp.IsOk()) node->m_bmp = *m_warning_bmp; - break; - case itVolume: + if (node->m_type & itVolume) node->m_bmp = GetVolumeIcon(node->m_volume_type, node->m_bmp.GetWidth() != node->m_bmp.GetHeight()); - break; - case itLayerRoot: - node->m_bmp = create_scaled_bitmap(nullptr, LAYER_ROOT_ICON); // FIXME: pass window ptr - break; - case itLayer: - node->m_bmp = create_scaled_bitmap(nullptr, LAYER_ICON); // FIXME: pass window ptr - break; - default: break; - } + + if (node->m_type & itObject && node->m_bmp.IsOk()) + node->m_bmp = *m_warning_bmp; ItemChanged(item); } @@ -1954,7 +1755,7 @@ bool BitmapTextRenderer::GetValueFromEditorCtrl(wxWindow* ctrl, wxVariant& value // The icon can't be edited so get its old value and reuse it. wxVariant valueOld; - GetView()->GetModel()->GetValue(valueOld, m_item, colName); + GetView()->GetModel()->GetValue(valueOld, m_item, 0); DataViewBitmapText bmpText; bmpText << valueOld; @@ -2162,7 +1963,7 @@ void DoubleSlider::draw_scroll_line(wxDC& dc, const int lower_pos, const int hig wxCoord segm_end_x = is_horizontal() ? higher_pos : width*0.5 - 1; wxCoord segm_end_y = is_horizontal() ? height*0.5 - 1 : higher_pos-1; - for (size_t id = 0; id < m_line_pens.size(); id++) + for (int id = 0; id < m_line_pens.size(); id++) { dc.SetPen(*m_line_pens[id]); dc.DrawLine(line_beg_x, line_beg_y, line_end_x, line_end_y); @@ -2209,21 +2010,20 @@ double DoubleSlider::get_double_value(const SelectedSlider& selection) return 0.0; if (m_values.size() <= m_higher_value) { correct_higher_value(); - return m_values.back(); + return m_values.back().second; } - return m_values[selection == ssLower ? m_lower_value : m_higher_value]; + return m_values[selection == ssLower ? m_lower_value : m_higher_value].second; } std::vector DoubleSlider::GetTicksValues() const { std::vector values; - const int val_size = m_values.size(); if (!m_values.empty()) - for (int tick : m_ticks) { - if (tick > val_size) + for (auto tick : m_ticks) { + if (tick > m_values.size()) break; - values.push_back(m_values[tick]); + values.push_back(m_values[tick].second); } return values; @@ -2237,13 +2037,13 @@ void DoubleSlider::SetTicksValues(const std::vector& heights) const bool was_empty = m_ticks.empty(); m_ticks.clear(); + unsigned int i = 0; for (auto h : heights) { - auto it = std::lower_bound(m_values.begin(), m_values.end(), h - epsilon()); - - if (it == m_values.end()) - continue; - - m_ticks.insert(it-m_values.begin()); + while (i < m_values.size() && m_values[i].second - 1e-6 < h) + ++i; + if (i == m_values.size()) + return; + m_ticks.insert(i-1); } if (!was_empty && m_ticks.empty()) @@ -2316,10 +2116,6 @@ void DoubleSlider::draw_action_icon(wxDC& dc, const wxPoint pt_beg, const wxPoin { const int tick = m_selection == ssLower ? m_lower_value : m_higher_value; - // suppress add tick on first layer - if (tick == 0) - return; - wxBitmap* icon = m_is_action_icon_focesed ? &m_bmp_add_tick_off.bmp() : &m_bmp_add_tick_on.bmp(); if (m_ticks.find(tick) != m_ticks.end()) icon = m_is_action_icon_focesed ? &m_bmp_del_tick_off.bmp() : &m_bmp_del_tick_on.bmp(); @@ -2363,14 +2159,13 @@ wxString DoubleSlider::get_label(const SelectedSlider& selection) const const wxString str = m_values.empty() ? wxNumberFormatter::ToString(m_label_koef*value, 2, wxNumberFormatter::Style_None) : - wxNumberFormatter::ToString(m_values[value], 2, wxNumberFormatter::Style_None); - return wxString::Format("%s\n(%d)", str, m_values.empty() ? value : value+1); + wxNumberFormatter::ToString(m_values[value].second, 2, wxNumberFormatter::Style_None); + return wxString::Format("%s\n(%d)", str, m_values.empty() ? value : m_values[value].first); } void DoubleSlider::draw_thumb_text(wxDC& dc, const wxPoint& pos, const SelectedSlider& selection) const { - if ( selection == ssUndef || - ((m_is_one_layer || m_higher_value==m_lower_value) && selection != m_selection) ) + if ((m_is_one_layer || m_higher_value==m_lower_value) && selection != m_selection || !selection) return; wxCoord text_width, text_height; const wxString label = get_label(selection); @@ -2511,7 +2306,7 @@ void DoubleSlider::draw_colored_band(wxDC& dc) dc.SetBrush(clr); dc.DrawRectangle(main_band); - size_t i = 1; + int i = 1; for (auto tick : m_ticks) { if (i == colors_cnt) @@ -2702,7 +2497,7 @@ void DoubleSlider::correct_lower_value() else if (m_lower_value > m_max_value) m_lower_value = m_max_value; - if ((m_lower_value >= m_higher_value && m_lower_value <= m_max_value) || m_is_one_layer) + if (m_lower_value >= m_higher_value && m_lower_value <= m_max_value || m_is_one_layer) m_higher_value = m_lower_value; } @@ -2713,7 +2508,7 @@ void DoubleSlider::correct_higher_value() else if (m_higher_value < m_min_value) m_higher_value = m_min_value; - if ((m_higher_value <= m_lower_value && m_higher_value >= m_min_value) || m_is_one_layer) + if (m_higher_value <= m_lower_value && m_higher_value >= m_min_value || m_is_one_layer) m_lower_value = m_higher_value; } @@ -2948,20 +2743,21 @@ LockButton::LockButton( wxWindow *parent, const wxSize& size /*= wxDefaultSize*/): wxButton(parent, id, wxEmptyString, pos, size, wxBU_EXACTFIT | wxNO_BORDER) { - m_bmp_lock_closed = ScalableBitmap(this, "lock_closed"); - m_bmp_lock_closed_f = ScalableBitmap(this, "lock_closed_f"); - m_bmp_lock_open = ScalableBitmap(this, "lock_open"); - m_bmp_lock_open_f = ScalableBitmap(this, "lock_open_f"); + m_bmp_lock_on = ScalableBitmap(this, "one_layer_lock_on.png"); + m_bmp_lock_off = ScalableBitmap(this, "one_layer_lock_off.png"); + m_bmp_unlock_on = ScalableBitmap(this, "one_layer_unlock_on.png"); + m_bmp_unlock_off = ScalableBitmap(this, "one_layer_unlock_off.png"); #ifdef __WXMSW__ SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); #endif // __WXMSW__ - SetBitmap(m_bmp_lock_open.bmp()); - SetBitmapDisabled(m_bmp_lock_open.bmp()); - SetBitmapHover(m_bmp_lock_closed_f.bmp()); + SetBitmap(m_bmp_unlock_on.bmp()); + SetBitmapDisabled(m_bmp_lock_on.bmp()); //button events - Bind(wxEVT_BUTTON, &LockButton::OnButton, this); + Bind(wxEVT_BUTTON, &LockButton::OnButton, this); + Bind(wxEVT_ENTER_WINDOW, &LockButton::OnEnterBtn, this); + Bind(wxEVT_LEAVE_WINDOW, &LockButton::OnLeaveBtn, this); } void LockButton::OnButton(wxCommandEvent& event) @@ -2970,7 +2766,7 @@ void LockButton::OnButton(wxCommandEvent& event) return; m_is_pushed = !m_is_pushed; - update_button_bitmaps(); + enter_button(true); event.Skip(); } @@ -2978,21 +2774,23 @@ void LockButton::OnButton(wxCommandEvent& event) void LockButton::SetLock(bool lock) { m_is_pushed = lock; - update_button_bitmaps(); + enter_button(true); } void LockButton::msw_rescale() { - m_bmp_lock_closed.msw_rescale(); - m_bmp_lock_closed_f.msw_rescale(); - m_bmp_lock_open.msw_rescale(); - m_bmp_lock_open_f.msw_rescale(); + m_bmp_lock_on .msw_rescale(); + m_bmp_lock_off .msw_rescale(); + m_bmp_unlock_on .msw_rescale(); + m_bmp_unlock_off.msw_rescale(); } -void LockButton::update_button_bitmaps() +void LockButton::enter_button(const bool enter) { - SetBitmap(m_is_pushed ? m_bmp_lock_closed.bmp() : m_bmp_lock_open.bmp()); - SetBitmapHover(m_is_pushed ? m_bmp_lock_closed_f.bmp() : m_bmp_lock_open_f.bmp()); + const wxBitmap& icon = m_is_pushed ? + enter ? m_bmp_lock_off.bmp() : m_bmp_lock_on.bmp() : + enter ? m_bmp_unlock_off.bmp() : m_bmp_unlock_on.bmp(); + SetBitmap(icon); Refresh(); Update(); @@ -3161,13 +2959,6 @@ ScalableButton::ScalableButton( wxWindow * parent, #endif // __WXMSW__ SetBitmap(create_scaled_bitmap(parent, icon_name)); - - if (size != wxDefaultSize) - { - const int em = em_unit(parent); - m_width = size.x/em; - m_height= size.y/em; - } } @@ -3194,24 +2985,11 @@ void ScalableButton::SetBitmap_(const ScalableBitmap& bmp) m_current_icon_name = bmp.name(); } -void ScalableButton::SetBitmapDisabled_(const ScalableBitmap& bmp) -{ - SetBitmapDisabled(bmp.bmp()); - m_disabled_icon_name = bmp.name(); -} - void ScalableButton::msw_rescale() { - SetBitmap(create_scaled_bitmap(m_parent, m_current_icon_name)); - if (!m_disabled_icon_name.empty()) - SetBitmapDisabled(create_scaled_bitmap(m_parent, m_disabled_icon_name)); + const wxBitmap bmp = create_scaled_bitmap(m_parent, m_current_icon_name); - if (m_width > 0 || m_height>0) - { - const int em = em_unit(m_parent); - wxSize size(m_width * em, m_height * em); - SetMinSize(size); - } + SetBitmap(bmp); } diff --git a/src/slic3r/GUI/wxExtensions.hpp b/src/slic3r/GUI/wxExtensions.hpp index 54d1bf7cbf7..d7d5fcac214 100644 --- a/src/slic3r/GUI/wxExtensions.hpp +++ b/src/slic3r/GUI/wxExtensions.hpp @@ -11,14 +11,13 @@ #include #include #include -#include #include #include #include namespace Slic3r { - enum class ModelVolumeType : int; + enum class ModelVolumeType : int; }; typedef double coordf_t; @@ -37,14 +36,11 @@ wxMenuItem* append_menu_item(wxMenu* menu, int id, const wxString& string, const std::function cb, const std::string& icon = "", wxEvtHandler* event_handler = nullptr, std::function const cb_condition = []() { return true; }, wxWindow* parent = nullptr); -wxMenuItem* append_submenu(wxMenu* menu, wxMenu* sub_menu, int id, const wxString& string, const wxString& description, +wxMenuItem* append_submenu(wxMenu* menu, wxMenu* sub_menu, int id, const wxString& string, const wxString& description, const std::string& icon = "", std::function const cb_condition = []() { return true; }, wxWindow* parent = nullptr); -wxMenuItem* append_menu_radio_item(wxMenu* menu, int id, const wxString& string, const wxString& description, - std::function cb, wxEvtHandler* event_handler); - -wxMenuItem* append_menu_check_item(wxMenu* menu, int id, const wxString& string, const wxString& description, +wxMenuItem* append_menu_radio_item(wxMenu* menu, int id, const wxString& string, const wxString& description, std::function cb, wxEvtHandler* event_handler); class wxDialog; @@ -52,7 +48,7 @@ void edit_tooltip(wxString& tooltip); void msw_buttons_rescale(wxDialog* dlg, const int em_unit, const std::vector& btn_ids); int em_unit(wxWindow* win); -wxBitmap create_scaled_bitmap(wxWindow *win, const std::string& bmp_name, +wxBitmap create_scaled_bitmap(wxWindow *win, const std::string& bmp_name, const int px_cnt = 16, const bool is_horizontal = false, const bool grayscale = false); class wxCheckListBoxComboPopup : public wxCheckListBox, public wxComboPopup @@ -96,23 +92,23 @@ class wxCheckListBoxComboPopup : public wxCheckListBox, public wxComboPopup class wxDataViewTreeCtrlComboPopup: public wxDataViewTreeCtrl, public wxComboPopup { - static const unsigned int DefaultWidth; - static const unsigned int DefaultHeight; - static const unsigned int DefaultItemHeight; + static const unsigned int DefaultWidth; + static const unsigned int DefaultHeight; + static const unsigned int DefaultItemHeight; - wxString m_text; - int m_cnt_open_items{0}; + wxString m_text; + int m_cnt_open_items{0}; public: - virtual bool Create(wxWindow* parent); - virtual wxWindow* GetControl() { return this; } - virtual void SetStringValue(const wxString& value) { m_text = value; } - virtual wxString GetStringValue() const { return m_text; } + virtual bool Create(wxWindow* parent); + virtual wxWindow* GetControl() { return this; } + virtual void SetStringValue(const wxString& value) { m_text = value; } + virtual wxString GetStringValue() const { return m_text; } // virtual wxSize GetAdjustedSize(int minWidth, int prefHeight, int maxHeight); - virtual void OnKeyEvent(wxKeyEvent& evt); - void OnDataViewTreeCtrlSelection(wxCommandEvent& evt); - void SetItemsCnt(int cnt) { m_cnt_open_items = cnt; } + virtual void OnKeyEvent(wxKeyEvent& evt); + void OnDataViewTreeCtrlSelection(wxCommandEvent& evt); + void SetItemsCnt(int cnt) { m_cnt_open_items = cnt; } }; @@ -125,7 +121,7 @@ class DataViewBitmapText : public wxObject public: DataViewBitmapText( const wxString &text = wxEmptyString, const wxBitmap& bmp = wxNullBitmap) : - m_text(text), + m_text(text), m_bmp(bmp) { } @@ -162,7 +158,7 @@ DECLARE_VARIANT_OBJECT(DataViewBitmapText) // ---------------------------------------------------------------------------- -// ObjectDataViewModelNode: a node inside ObjectDataViewModel +// ObjectDataViewModelNode: a node inside PrusaObjectDataViewModel // ---------------------------------------------------------------------------- enum ItemType { @@ -176,28 +172,13 @@ enum ItemType { itLayer = 64, }; -enum ColumnNumber -{ - colName = 0, // item name - colPrint , // printable property - colExtruder , // extruder selection - colEditing , // item editing -}; - -enum PrintIndicator -{ - piUndef = 0, // no print indicator - piPrintable , // printable - piUnprintable , // unprintable -}; - class ObjectDataViewModelNode; WX_DEFINE_ARRAY_PTR(ObjectDataViewModelNode*, MyObjectTreeModelNodePtrArray); class ObjectDataViewModelNode { - ObjectDataViewModelNode* m_parent; - MyObjectTreeModelNodePtrArray m_children; + ObjectDataViewModelNode* m_parent; + MyObjectTreeModelNodePtrArray m_children; wxBitmap m_empty_bmp; size_t m_volumes_cnt = 0; std::vector< std::string > m_opt_categories; @@ -210,166 +191,161 @@ class ObjectDataViewModelNode bool m_container = false; wxString m_extruder = "default"; wxBitmap m_action_icon; - PrintIndicator m_printable {piUndef}; - wxBitmap m_printable_icon; std::string m_action_icon_name = ""; Slic3r::ModelVolumeType m_volume_type; public: - ObjectDataViewModelNode(const wxString &name, + ObjectDataViewModelNode(const wxString &name, const wxString& extruder): m_parent(NULL), m_name(name), m_type(itObject), m_extruder(extruder) { +#ifdef __WXGTK__ + // it's necessary on GTK because of control have to know if this item will be container + // in another case you couldn't to add subitem for this item + // it will be produce "segmentation fault" + m_container = true; +#endif //__WXGTK__ + set_action_icon(); - init_container(); } - ObjectDataViewModelNode(ObjectDataViewModelNode* parent, - const wxString& sub_obj_name, - const wxBitmap& bmp, - const wxString& extruder, + ObjectDataViewModelNode(ObjectDataViewModelNode* parent, + const wxString& sub_obj_name, + const wxBitmap& bmp, + const wxString& extruder, const int idx = -1 ) : m_parent (parent), - m_name (sub_obj_name), - m_type (itVolume), + m_name (sub_obj_name), + m_type (itVolume), m_idx (idx), m_extruder (extruder) { - m_bmp = bmp; + m_bmp = bmp; +#ifdef __WXGTK__ + // it's necessary on GTK because of control have to know if this item will be container + // in another case you couldn't to add subitem for this item + // it will be produce "segmentation fault" + m_container = true; +#endif //__WXGTK__ + set_action_icon(); - init_container(); } - ObjectDataViewModelNode(ObjectDataViewModelNode* parent, - const t_layer_height_range& layer_range, + ObjectDataViewModelNode(ObjectDataViewModelNode* parent, + const t_layer_height_range& layer_range, const int idx = -1, const wxString& extruder = wxEmptyString ); ObjectDataViewModelNode(ObjectDataViewModelNode* parent, const ItemType type); - ~ObjectDataViewModelNode() - { - // free all our children nodes - size_t count = m_children.GetCount(); - for (size_t i = 0; i < count; i++) - { - ObjectDataViewModelNode *child = m_children[i]; - delete child; - } -#ifndef NDEBUG - // Indicate that the object was deleted. - m_idx = -2; -#endif /* NDEBUG */ - } + ~ObjectDataViewModelNode() + { + // free all our children nodes + size_t count = m_children.GetCount(); + for (size_t i = 0; i < count; i++) + { + ObjectDataViewModelNode *child = m_children[i]; + delete child; + } + } - void init_container(); bool IsContainer() const { return m_container; } - ObjectDataViewModelNode* GetParent() - { - assert(m_parent == nullptr || m_parent->valid()); - return m_parent; - } - MyObjectTreeModelNodePtrArray& GetChildren() - { - return m_children; - } - ObjectDataViewModelNode* GetNthChild(unsigned int n) - { - return m_children.Item(n); - } - void Insert(ObjectDataViewModelNode* child, unsigned int n) - { - if (!m_container) - m_container = true; - m_children.Insert(child, n); - } - void Append(ObjectDataViewModelNode* child) - { - if (!m_container) - m_container = true; - m_children.Add(child); - } - void RemoveAllChildren() - { - if (GetChildCount() == 0) - return; - for (int id = int(GetChildCount()) - 1; id >= 0; --id) - { - if (m_children.Item(id)->GetChildCount() > 0) - m_children[id]->RemoveAllChildren(); - auto node = m_children[id]; - m_children.RemoveAt(id); - delete node; - } - } + ObjectDataViewModelNode* GetParent() + { + return m_parent; + } + MyObjectTreeModelNodePtrArray& GetChildren() + { + return m_children; + } + ObjectDataViewModelNode* GetNthChild(unsigned int n) + { + return m_children.Item(n); + } + void Insert(ObjectDataViewModelNode* child, unsigned int n) + { + if (!m_container) + m_container = true; + m_children.Insert(child, n); + } + void Append(ObjectDataViewModelNode* child) + { + if (!m_container) + m_container = true; + m_children.Add(child); + } + void RemoveAllChildren() + { + if (GetChildCount() == 0) + return; + for (int id = int(GetChildCount()) - 1; id >= 0; --id) + { + if (m_children.Item(id)->GetChildCount() > 0) + m_children[id]->RemoveAllChildren(); + auto node = m_children[id]; + m_children.RemoveAt(id); + delete node; + } + } - size_t GetChildCount() const - { - return m_children.GetCount(); - } + size_t GetChildCount() const + { + return m_children.GetCount(); + } - bool SetValue(const wxVariant &variant, unsigned int col); + bool SetValue(const wxVariant &variant, unsigned int col); - void SetBitmap(const wxBitmap &icon) { m_bmp = icon; } + void SetBitmap(const wxBitmap &icon) { m_bmp = icon; } const wxBitmap& GetBitmap() const { return m_bmp; } const wxString& GetName() const { return m_name; } ItemType GetType() const { return m_type; } void SetIdx(const int& idx); int GetIdx() const { return m_idx; } t_layer_height_range GetLayerRange() const { return m_layer_range; } - PrintIndicator IsPrintable() const { return m_printable; } - // use this function only for childrens - void AssignAllVal(ObjectDataViewModelNode& from_node) - { - // ! Don't overwrite other values because of equality of this values for all children -- - m_name = from_node.m_name; + // use this function only for childrens + void AssignAllVal(ObjectDataViewModelNode& from_node) + { + // ! Don't overwrite other values because of equality of this values for all children -- + m_name = from_node.m_name; m_bmp = from_node.m_bmp; m_idx = from_node.m_idx; m_extruder = from_node.m_extruder; m_type = from_node.m_type; - } + } - bool SwapChildrens(int frst_id, int scnd_id) { - if (GetChildCount() < 2 || - frst_id < 0 || (size_t)frst_id >= GetChildCount() || - scnd_id < 0 || (size_t)scnd_id >= GetChildCount()) - return false; + bool SwapChildrens(int frst_id, int scnd_id) { + if (GetChildCount() < 2 || + frst_id < 0 || (size_t)frst_id >= GetChildCount() || + scnd_id < 0 || (size_t)scnd_id >= GetChildCount()) + return false; - ObjectDataViewModelNode new_scnd = *GetNthChild(frst_id); - ObjectDataViewModelNode new_frst = *GetNthChild(scnd_id); + ObjectDataViewModelNode new_scnd = *GetNthChild(frst_id); + ObjectDataViewModelNode new_frst = *GetNthChild(scnd_id); new_scnd.m_idx = m_children.Item(scnd_id)->m_idx; new_frst.m_idx = m_children.Item(frst_id)->m_idx; - m_children.Item(frst_id)->AssignAllVal(new_frst); - m_children.Item(scnd_id)->AssignAllVal(new_scnd); - return true; - } + m_children.Item(frst_id)->AssignAllVal(new_frst); + m_children.Item(scnd_id)->AssignAllVal(new_scnd); + return true; + } - // Set action icons for node + // Set action icons for node void set_action_icon(); - // Set printable icon for node - void set_printable_icon(PrintIndicator printable); void update_settings_digest_bitmaps(); - bool update_settings_digest(const std::vector& categories); + bool update_settings_digest(const std::vector& categories); int volume_type() const { return int(m_volume_type); } void msw_rescale(); - -#ifndef NDEBUG - bool valid(); -#endif /* NDEBUG */ - bool invalid() const { return m_idx < -1; } - private: friend class ObjectDataViewModel; }; @@ -383,17 +359,17 @@ wxDECLARE_EVENT(wxCUSTOMEVT_LAST_VOLUME_IS_DELETED, wxCommandEvent); class ObjectDataViewModel :public wxDataViewModel { - std::vector m_objects; + std::vector m_objects; std::vector m_volume_bmps; - wxBitmap* m_warning_bmp { nullptr }; + wxBitmap* m_warning_bmp; - wxDataViewCtrl* m_ctrl { nullptr }; + wxDataViewCtrl* m_ctrl{ nullptr }; public: ObjectDataViewModel(); ~ObjectDataViewModel(); - wxDataViewItem Add( const wxString &name, + wxDataViewItem Add( const wxString &name, const int extruder, const bool has_errors = false); wxDataViewItem AddVolumeChild( const wxDataViewItem &parent_item, @@ -404,26 +380,25 @@ class ObjectDataViewModel :public wxDataViewModel const bool create_frst_child = true); wxDataViewItem AddSettingsChild(const wxDataViewItem &parent_item); wxDataViewItem AddInstanceChild(const wxDataViewItem &parent_item, size_t num); - wxDataViewItem AddInstanceChild(const wxDataViewItem &parent_item, const std::vector& print_indicator); wxDataViewItem AddLayersRoot(const wxDataViewItem &parent_item); - wxDataViewItem AddLayersChild( const wxDataViewItem &parent_item, + wxDataViewItem AddLayersChild( const wxDataViewItem &parent_item, const t_layer_height_range& layer_range, - const int extruder = 0, + const int extruder = 0, const int index = -1); - wxDataViewItem Delete(const wxDataViewItem &item); - wxDataViewItem DeleteLastInstance(const wxDataViewItem &parent_item, size_t num); - void DeleteAll(); + wxDataViewItem Delete(const wxDataViewItem &item); + wxDataViewItem DeleteLastInstance(const wxDataViewItem &parent_item, size_t num); + void DeleteAll(); void DeleteChildren(wxDataViewItem& parent); void DeleteVolumeChildren(wxDataViewItem& parent); void DeleteSettings(const wxDataViewItem& parent); - wxDataViewItem GetItemById(int obj_idx); + wxDataViewItem GetItemById(int obj_idx); wxDataViewItem GetItemById(const int obj_idx, const int sub_obj_idx, const ItemType parent_type); - wxDataViewItem GetItemByVolumeId(int obj_idx, int volume_idx); - wxDataViewItem GetItemByInstanceId(int obj_idx, int inst_idx); + wxDataViewItem GetItemByVolumeId(int obj_idx, int volume_idx); + wxDataViewItem GetItemByInstanceId(int obj_idx, int inst_idx); wxDataViewItem GetItemByLayerId(int obj_idx, int layer_idx); wxDataViewItem GetItemByLayerRange(const int obj_idx, const t_layer_height_range& layer_range); int GetItemIdByLayerRange(const int obj_idx, const t_layer_height_range& layer_range); - int GetIdByItem(const wxDataViewItem& item) const; + int GetIdByItem(const wxDataViewItem& item) const; int GetIdByItemAndType(const wxDataViewItem& item, const ItemType type) const; int GetObjectIdByItem(const wxDataViewItem& item) const; int GetVolumeIdByItem(const wxDataViewItem& item) const; @@ -432,81 +407,68 @@ class ObjectDataViewModel :public wxDataViewModel void GetItemInfo(const wxDataViewItem& item, ItemType& type, int& obj_idx, int& idx); int GetRowByItem(const wxDataViewItem& item) const; bool IsEmpty() { return m_objects.empty(); } - bool InvalidItem(const wxDataViewItem& item); - // helper method for wxLog + // helper method for wxLog - wxString GetName(const wxDataViewItem &item) const; + wxString GetName(const wxDataViewItem &item) const; wxBitmap& GetBitmap(const wxDataViewItem &item) const; - // helper methods to change the model + // helper methods to change the model - virtual unsigned int GetColumnCount() const override { return 3;} - virtual wxString GetColumnType(unsigned int col) const override{ return wxT("string"); } + virtual unsigned int GetColumnCount() const override { return 3;} + virtual wxString GetColumnType(unsigned int col) const override{ return wxT("string"); } - virtual void GetValue( wxVariant &variant, - const wxDataViewItem &item, + virtual void GetValue( wxVariant &variant, + const wxDataViewItem &item, unsigned int col) const override; - virtual bool SetValue( const wxVariant &variant, - const wxDataViewItem &item, + virtual bool SetValue( const wxVariant &variant, + const wxDataViewItem &item, unsigned int col) override; - bool SetValue( const wxVariant &variant, - const int item_idx, + bool SetValue( const wxVariant &variant, + const int item_idx, unsigned int col); - // For parent move child from cur_volume_id place to new_volume_id + // For parent move child from cur_volume_id place to new_volume_id // Remaining items will moved up/down accordingly - wxDataViewItem ReorganizeChildren( const int cur_volume_id, + wxDataViewItem ReorganizeChildren( const int cur_volume_id, const int new_volume_id, const wxDataViewItem &parent); - virtual bool IsEnabled(const wxDataViewItem &item, unsigned int col) const override; + virtual bool IsEnabled(const wxDataViewItem &item, unsigned int col) const override; - virtual wxDataViewItem GetParent(const wxDataViewItem &item) const override; + virtual wxDataViewItem GetParent(const wxDataViewItem &item) const override; // get object item wxDataViewItem GetTopParent(const wxDataViewItem &item) const; - virtual bool IsContainer(const wxDataViewItem &item) const override; - virtual unsigned int GetChildren(const wxDataViewItem &parent, - wxDataViewItemArray &array) const override; + virtual bool IsContainer(const wxDataViewItem &item) const override; + virtual unsigned int GetChildren(const wxDataViewItem &parent, + wxDataViewItemArray &array) const override; void GetAllChildren(const wxDataViewItem &parent,wxDataViewItemArray &array) const; - // Is the container just a header or an item with all columns - // In our case it is an item with all columns - virtual bool HasContainerColumns(const wxDataViewItem& WXUNUSED(item)) const override { return true; } + // Is the container just a header or an item with all columns + // In our case it is an item with all columns + virtual bool HasContainerColumns(const wxDataViewItem& WXUNUSED(item)) const override { return true; } ItemType GetItemType(const wxDataViewItem &item) const ; - wxDataViewItem GetItemByType( const wxDataViewItem &parent_item, + wxDataViewItem GetItemByType( const wxDataViewItem &parent_item, ItemType type) const; wxDataViewItem GetSettingsItem(const wxDataViewItem &item) const; wxDataViewItem GetInstanceRootItem(const wxDataViewItem &item) const; wxDataViewItem GetLayerRootItem(const wxDataViewItem &item) const; bool IsSettingsItem(const wxDataViewItem &item) const; - void UpdateSettingsDigest( const wxDataViewItem &item, + void UpdateSettingsDigest( const wxDataViewItem &item, const std::vector& categories); - bool IsPrintable(const wxDataViewItem &item) const; - void UpdateObjectPrintable(wxDataViewItem parent_item); - void UpdateInstancesPrintable(wxDataViewItem parent_item); - void SetVolumeBitmaps(const std::vector& volume_bmps) { m_volume_bmps = volume_bmps; } void SetWarningBitmap(wxBitmap* bitmap) { m_warning_bmp = bitmap; } void SetVolumeType(const wxDataViewItem &item, const Slic3r::ModelVolumeType type); - wxDataViewItem SetPrintableState( PrintIndicator printable, int obj_idx, - int subobj_idx = -1, - ItemType subobj_type = itInstance); - wxDataViewItem SetObjectPrintableState(PrintIndicator printable, wxDataViewItem obj_item); void SetAssociatedControl(wxDataViewCtrl* ctrl) { m_ctrl = ctrl; } // Rescale bitmaps for existing Items void Rescale(); - wxBitmap GetVolumeIcon(const Slic3r::ModelVolumeType vol_type, + wxBitmap GetVolumeIcon(const Slic3r::ModelVolumeType vol_type, const bool is_marked = false); void DeleteWarningIcon(const wxDataViewItem& item, const bool unmark_object = false); t_layer_height_range GetLayerRangeByItem(const wxDataViewItem& item) const; - -private: - wxDataViewItem AddRoot(const wxDataViewItem& parent_item, const ItemType root_type); - wxDataViewItem AddInstanceRoot(const wxDataViewItem& parent_item); }; // ---------------------------------------------------------------------------- @@ -548,12 +510,12 @@ class BitmapTextRenderer : public wxDataViewCustomRenderer return false; #else return true; -#endif +#endif } - wxWindow* CreateEditorCtrl(wxWindow* parent, - wxRect labelRect, + wxWindow* CreateEditorCtrl(wxWindow* parent, + wxRect labelRect, const wxVariant& value) override; - bool GetValueFromEditorCtrl( wxWindow* ctrl, + bool GetValueFromEditorCtrl( wxWindow* ctrl, wxVariant& value) override; bool WasCanceled() const { return m_was_unusable_symbol; } @@ -570,88 +532,88 @@ class BitmapTextRenderer : public wxDataViewCustomRenderer class MyCustomRenderer : public wxDataViewCustomRenderer { public: - // This renderer can be either activatable or editable, for demonstration - // purposes. In real programs, you should select whether the user should be - // able to activate or edit the cell and it doesn't make sense to switch - // between the two -- but this is just an example, so it doesn't stop us. - explicit MyCustomRenderer(wxDataViewCellMode mode) - : wxDataViewCustomRenderer("string", mode, wxALIGN_CENTER) - { } - - virtual bool Render(wxRect rect, wxDC *dc, int state) override/*wxOVERRIDE*/ - { - dc->SetBrush(*wxLIGHT_GREY_BRUSH); - dc->SetPen(*wxTRANSPARENT_PEN); - - rect.Deflate(2); - dc->DrawRoundedRectangle(rect, 5); - - RenderText(m_value, - 0, // no offset - wxRect(dc->GetTextExtent(m_value)).CentreIn(rect), - dc, - state); - return true; - } + // This renderer can be either activatable or editable, for demonstration + // purposes. In real programs, you should select whether the user should be + // able to activate or edit the cell and it doesn't make sense to switch + // between the two -- but this is just an example, so it doesn't stop us. + explicit MyCustomRenderer(wxDataViewCellMode mode) + : wxDataViewCustomRenderer("string", mode, wxALIGN_CENTER) + { } + + virtual bool Render(wxRect rect, wxDC *dc, int state) override/*wxOVERRIDE*/ + { + dc->SetBrush(*wxLIGHT_GREY_BRUSH); + dc->SetPen(*wxTRANSPARENT_PEN); + + rect.Deflate(2); + dc->DrawRoundedRectangle(rect, 5); + + RenderText(m_value, + 0, // no offset + wxRect(dc->GetTextExtent(m_value)).CentreIn(rect), + dc, + state); + return true; + } - virtual bool ActivateCell(const wxRect& WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), - const wxDataViewItem &WXUNUSED(item), - unsigned int WXUNUSED(col), - const wxMouseEvent *mouseEvent) override/*wxOVERRIDE*/ - { - wxString position; - if (mouseEvent) - position = wxString::Format("via mouse at %d, %d", mouseEvent->m_x, mouseEvent->m_y); - else - position = "from keyboard"; + virtual bool ActivateCell(const wxRect& WXUNUSED(cell), + wxDataViewModel *WXUNUSED(model), + const wxDataViewItem &WXUNUSED(item), + unsigned int WXUNUSED(col), + const wxMouseEvent *mouseEvent) override/*wxOVERRIDE*/ + { + wxString position; + if (mouseEvent) + position = wxString::Format("via mouse at %d, %d", mouseEvent->m_x, mouseEvent->m_y); + else + position = "from keyboard"; // wxLogMessage("MyCustomRenderer ActivateCell() %s", position); - return false; - } + return false; + } - virtual wxSize GetSize() const override/*wxOVERRIDE*/ - { - return wxSize(60, 20); - } + virtual wxSize GetSize() const override/*wxOVERRIDE*/ + { + return wxSize(60, 20); + } - virtual bool SetValue(const wxVariant &value) override/*wxOVERRIDE*/ - { - m_value = value.GetString(); - return true; - } + virtual bool SetValue(const wxVariant &value) override/*wxOVERRIDE*/ + { + m_value = value.GetString(); + return true; + } - virtual bool GetValue(wxVariant &WXUNUSED(value)) const override/*wxOVERRIDE*/{ return true; } + virtual bool GetValue(wxVariant &WXUNUSED(value)) const override/*wxOVERRIDE*/{ return true; } - virtual bool HasEditorCtrl() const override/*wxOVERRIDE*/{ return true; } + virtual bool HasEditorCtrl() const override/*wxOVERRIDE*/{ return true; } - virtual wxWindow* - CreateEditorCtrl(wxWindow* parent, - wxRect labelRect, - const wxVariant& value) override/*wxOVERRIDE*/ - { - wxTextCtrl* text = new wxTextCtrl(parent, wxID_ANY, value, - labelRect.GetPosition(), - labelRect.GetSize(), - wxTE_PROCESS_ENTER); - text->SetInsertionPointEnd(); + virtual wxWindow* + CreateEditorCtrl(wxWindow* parent, + wxRect labelRect, + const wxVariant& value) override/*wxOVERRIDE*/ + { + wxTextCtrl* text = new wxTextCtrl(parent, wxID_ANY, value, + labelRect.GetPosition(), + labelRect.GetSize(), + wxTE_PROCESS_ENTER); + text->SetInsertionPointEnd(); - return text; - } + return text; + } - virtual bool - GetValueFromEditorCtrl(wxWindow* ctrl, wxVariant& value) override/*wxOVERRIDE*/ - { - wxTextCtrl* text = wxDynamicCast(ctrl, wxTextCtrl); - if (!text) - return false; + virtual bool + GetValueFromEditorCtrl(wxWindow* ctrl, wxVariant& value) override/*wxOVERRIDE*/ + { + wxTextCtrl* text = wxDynamicCast(ctrl, wxTextCtrl); + if (!text) + return false; - value = text->GetValue(); + value = text->GetValue(); - return true; - } + return true; + } private: - wxString m_value; + wxString m_value; }; @@ -663,7 +625,7 @@ class ScalableBitmap { public: ScalableBitmap() {}; - ScalableBitmap( wxWindow *parent, + ScalableBitmap( wxWindow *parent, const std::string& icon_name = "", const int px_cnt = 16, const bool is_horizontal = false); @@ -709,9 +671,9 @@ class DoubleSlider : public wxControl DoubleSlider( wxWindow *parent, wxWindowID id, - int lowerValue, - int higherValue, - int minValue, + int lowerValue, + int higherValue, + int minValue, int maxValue, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, @@ -720,17 +682,12 @@ class DoubleSlider : public wxControl const wxString& name = wxEmptyString); ~DoubleSlider() {} - /* For exporting GCode in GCodeWriter is used XYZF_NUM(val) = PRECISION(val, 3) for XYZ values. - * So, let use same value as a permissible error for layer height. - */ - static double epsilon() { return 0.0011;} - void msw_rescale(); int GetMinValue() const { return m_min_value; } int GetMaxValue() const { return m_max_value; } - double GetMinValueD() { return m_values.empty() ? 0. : m_values[m_min_value]; } - double GetMaxValueD() { return m_values.empty() ? 0. : m_values[m_max_value]; } + double GetMinValueD() { return m_values.empty() ? 0. : m_values[m_min_value].second; } + double GetMaxValueD() { return m_values.empty() ? 0. : m_values[m_max_value].second; } int GetLowerValue() const { return m_lower_value; } int GetHigherValue() const { return m_higher_value; } int GetActiveValue() const; @@ -746,7 +703,7 @@ class DoubleSlider : public wxControl void SetKoefForLabels(const double koef) { m_label_koef = koef; } - void SetSliderValues(const std::vector& values) { + void SetSliderValues(const std::vector>& values) { m_values = values; } void ChangeOneLayerLock(); @@ -759,8 +716,8 @@ class DoubleSlider : public wxControl EnableTickManipulation(false); } - bool is_horizontal() const { return m_style == wxSL_HORIZONTAL; } - bool is_one_layer() const { return m_is_one_layer; } + bool is_horizontal() const { return m_style == wxSL_HORIZONTAL; } + bool is_one_layer() const { return m_is_one_layer; } bool is_lower_at_min() const { return m_lower_value == m_min_value; } bool is_higher_at_max() const { return m_higher_value == m_max_value; } bool is_full_span() const { return this->is_lower_at_min() && this->is_higher_at_max(); } @@ -779,7 +736,7 @@ class DoubleSlider : public wxControl void OnRightUp(wxMouseEvent& event); protected: - + void render(); void draw_focus_rect(); void draw_action_icon(wxDC& dc, const wxPoint pt_beg, const wxPoint pt_end); @@ -867,7 +824,7 @@ class DoubleSlider : public wxControl std::vector m_line_pens; std::vector m_segm_pens; std::set m_ticks; - std::vector m_values; + std::vector> m_values; }; @@ -886,6 +843,8 @@ class LockButton : public wxButton ~LockButton() {} void OnButton(wxCommandEvent& event); + void OnEnterBtn(wxMouseEvent& event) { enter_button(true); event.Skip(); } + void OnLeaveBtn(wxMouseEvent& event) { enter_button(false); event.Skip(); } bool IsLocked() const { return m_is_pushed; } void SetLock(bool lock); @@ -897,16 +856,16 @@ class LockButton : public wxButton void msw_rescale(); protected: - void update_button_bitmaps(); + void enter_button(const bool enter); private: bool m_is_pushed = false; bool m_disabled = false; - ScalableBitmap m_bmp_lock_closed; - ScalableBitmap m_bmp_lock_closed_f; - ScalableBitmap m_bmp_lock_open; - ScalableBitmap m_bmp_lock_open_f; + ScalableBitmap m_bmp_lock_on; + ScalableBitmap m_bmp_lock_off; + ScalableBitmap m_bmp_unlock_on; + ScalableBitmap m_bmp_unlock_off; }; @@ -937,16 +896,12 @@ class ScalableButton : public wxButton ~ScalableButton() {} void SetBitmap_(const ScalableBitmap& bmp); - void SetBitmapDisabled_(const ScalableBitmap &bmp); void msw_rescale(); private: wxWindow* m_parent; std::string m_current_icon_name = ""; - std::string m_disabled_icon_name = ""; - int m_width {-1}; // should be multiplied to em_unit - int m_height{-1}; // should be multiplied to em_unit }; diff --git a/src/slic3r/Utils/FixModelByWin10.cpp b/src/slic3r/Utils/FixModelByWin10.cpp index d955d6a7e42..710f19090b3 100644 --- a/src/slic3r/Utils/FixModelByWin10.cpp +++ b/src/slic3r/Utils/FixModelByWin10.cpp @@ -377,7 +377,7 @@ void fix_model_by_win10_sdk_gui(ModelObject &model_object, int volume_idx) // PresetBundle bundle; on_progress(L("Loading repaired model"), 80); DynamicPrintConfig config; - bool loaded = Slic3r::load_3mf(path_dst.string().c_str(), &config, &model, false); + bool loaded = Slic3r::load_3mf(path_dst.string().c_str(), &config, &model); boost::filesystem::remove(path_dst); if (! loaded) throw std::runtime_error(L("Import of the repaired 3mf file failed")); diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp index 69301547c38..79c4ecfa912 100644 --- a/src/slic3r/Utils/Http.cpp +++ b/src/slic3r/Utils/Http.cpp @@ -5,7 +5,6 @@ #include #include #include -#include #include #include @@ -166,7 +165,7 @@ size_t Http::priv::form_file_read_cb(char *buffer, size_t size, size_t nitems, v try { stream->read(buffer, size * nitems); - } catch (const std::exception &) { + } catch (...) { return CURL_READFUNC_ABORT; } diff --git a/src/slic3r/Utils/OctoPrint.cpp b/src/slic3r/Utils/OctoPrint.cpp index 09ca02071a1..cafa69c5546 100644 --- a/src/slic3r/Utils/OctoPrint.cpp +++ b/src/slic3r/Utils/OctoPrint.cpp @@ -2,7 +2,6 @@ #include #include -#include #include #include #include @@ -70,7 +69,7 @@ bool OctoPrint::test(wxString &msg) const msg = wxString::Format(_(L("Mismatched type of print host: %s")), text ? *text : "OctoPrint"); } } - catch (const std::exception &) { + catch (...) { res = false; msg = "Could not parse server response"; } diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 5723afca2fd..bc600fcad9c 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -35,10 +35,6 @@ using Slic3r::GUI::Config::Snapshot; using Slic3r::GUI::Config::SnapshotDB; - -// FIXME: Incompat bundle resolution doesn't deal with inherited user presets - - namespace Slic3r { @@ -105,17 +101,6 @@ struct Incompat , vendor(std::move(vendor)) {} - void remove() { - // Remove the bundle file - fs::remove(bundle); - - // Look for an installed index and remove it too if any - const fs::path installed_idx = bundle.replace_extension("idx"); - if (fs::exists(installed_idx)) { - fs::remove(installed_idx); - } - } - friend std::ostream& operator<<(std::ostream& os , const Incompat &self) { os << "Incompat(" << self.bundle.string() << ')'; return os; @@ -128,12 +113,25 @@ struct Updates std::vector updates; }; +static Semver get_slic3r_version() +{ + auto res = Semver::parse(SLIC3R_VERSION); + + if (! res) { + const char *error = "Could not parse Slic3r version string: " SLIC3R_VERSION; + BOOST_LOG_TRIVIAL(error) << error; + throw std::runtime_error(error); + } + + return *res; +} wxDEFINE_EVENT(EVT_SLIC3R_VERSION_ONLINE, wxCommandEvent); struct PresetUpdater::priv { + const Semver ver_slic3r; std::vector index_db; bool enabled_version_check; @@ -161,7 +159,8 @@ struct PresetUpdater::priv }; PresetUpdater::priv::priv() - : cache_path(fs::path(Slic3r::data_dir()) / "cache") + : ver_slic3r(get_slic3r_version()) + , cache_path(fs::path(Slic3r::data_dir()) / "cache") , rsrc_path(fs::path(resources_dir()) / "profiles") , vendor_path(fs::path(Slic3r::data_dir()) / "vendor") , cancel(false) @@ -245,16 +244,6 @@ void PresetUpdater::priv::sync_version() const }) .on_complete([&](std::string body, unsigned /* http_status */) { boost::trim(body); - const auto nl_pos = body.find_first_of("\n\r"); - if (nl_pos != std::string::npos) { - body.resize(nl_pos); - } - - if (! Semver::parse(body)) { - BOOST_LOG_TRIVIAL(warning) << boost::format("Received invalid contents from `%1%`: Not a correct semver: `%2%`") % SLIC3R_APP_NAME % body; - return; - } - BOOST_LOG_TRIVIAL(info) << boost::format("Got %1% online version: `%2%`. Sending to GUI thread...") % SLIC3R_APP_NAME % body; wxCommandEvent* evt = new wxCommandEvent(EVT_SLIC3R_VERSION_ONLINE); @@ -394,6 +383,25 @@ Updates PresetUpdater::priv::get_config_updates() const continue; } + // Load 'installed' idx, if any. + // 'Installed' indices are kept alongside the bundle in the `vendor` subdir + // for bookkeeping to remember a cancelled update and not offer it again. + if (fs::exists(bundle_path_idx)) { + Index existing_idx; + try { + existing_idx.load(bundle_path_idx); + + const auto existing_recommended = existing_idx.recommended(); + if (existing_recommended != existing_idx.end() && recommended->config_version == existing_recommended->config_version) { + // The user has already seen (and presumably rejected) this update + BOOST_LOG_TRIVIAL(info) << boost::format("Downloaded index for `%1%` is the same as installed one, not offering an update.") % idx.vendor(); + continue; + } + } catch (const std::exception & /* err */) { + BOOST_LOG_TRIVIAL(error) << boost::format("Could nto load installed index %1%") % bundle_path_idx; + } + } + const auto ver_current = idx.find(vp.config_version); const bool ver_current_found = ver_current != idx.end(); @@ -416,25 +424,6 @@ Updates PresetUpdater::priv::get_config_updates() const } else if (recommended->config_version > vp.config_version) { // Config bundle update situation - // Load 'installed' idx, if any. - // 'Installed' indices are kept alongside the bundle in the `vendor` subdir - // for bookkeeping to remember a cancelled update and not offer it again. - if (fs::exists(bundle_path_idx)) { - Index existing_idx; - try { - existing_idx.load(bundle_path_idx); - - const auto existing_recommended = existing_idx.recommended(); - if (existing_recommended != existing_idx.end() && recommended->config_version == existing_recommended->config_version) { - // The user has already seen (and presumably rejected) this update - BOOST_LOG_TRIVIAL(info) << boost::format("Downloaded index for `%1%` is the same as installed one, not offering an update.") % idx.vendor(); - continue; - } - } catch (const std::exception &err) { - BOOST_LOG_TRIVIAL(error) << boost::format("Could not load installed index at `%1%`: %2%") % bundle_path_idx % err.what(); - } - } - // Check if the update is already present in a snapshot const auto recommended_snap = SnapshotDB::singleton().snapshot_with_vendor_preset(vp.name, recommended->config_version); if (recommended_snap != SnapshotDB::singleton().end()) { @@ -496,11 +485,12 @@ void PresetUpdater::priv::perform_updates(Updates &&updates, bool snapshot) cons BOOST_LOG_TRIVIAL(info) << boost::format("Deleting %1% incompatible bundles") % updates.incompats.size(); - for (auto &incompat : updates.incompats) { + for (const auto &incompat : updates.incompats) { BOOST_LOG_TRIVIAL(info) << '\t' << incompat; - incompat.remove(); + fs::remove(incompat.bundle); } - } else if (updates.updates.size() > 0) { + } + else if (updates.updates.size() > 0) { if (snapshot) { BOOST_LOG_TRIVIAL(info) << "Taking a snapshot..."; SnapshotDB::singleton().take_snapshot(*GUI::wxGetApp().app_config, Snapshot::SNAPSHOT_UPGRADE); @@ -594,8 +584,8 @@ void PresetUpdater::slic3r_update_notify() if (ver_online) { // Only display the notification if the version available online is newer AND if we haven't seen it before - if (*ver_online > Slic3r::SEMVER && (! ver_online_seen || *ver_online_seen < *ver_online)) { - GUI::MsgUpdateSlic3r notification(Slic3r::SEMVER, *ver_online); + if (*ver_online > p->ver_slic3r && (! ver_online_seen || *ver_online_seen < *ver_online)) { + GUI::MsgUpdateSlic3r notification(p->ver_slic3r, *ver_online); notification.ShowModal(); if (notification.disable_version_check()) { app_config->set("version_check", "0"); @@ -638,17 +628,11 @@ PresetUpdater::UpdateResult PresetUpdater::config_update() const const auto res = dlg.ShowModal(); if (res == wxID_REPLACE) { BOOST_LOG_TRIVIAL(info) << "User wants to re-configure..."; - - // This effectively removes the incompatible bundles: - // (snapshot is taken beforehand) p->perform_updates(std::move(updates)); - GUI::ConfigWizard wizard(nullptr, GUI::ConfigWizard::RR_DATA_INCOMPAT); - if (! wizard.run(GUI::wxGetApp().preset_bundle, this)) { return R_INCOMPAT_EXIT; } - GUI::wxGetApp().load_current_presets(); return R_INCOMPAT_CONFIGURED; } else { diff --git a/src/slic3r/Utils/PrintHost.cpp b/src/slic3r/Utils/PrintHost.cpp index ab52b234434..e9e39e69577 100644 --- a/src/slic3r/Utils/PrintHost.cpp +++ b/src/slic3r/Utils/PrintHost.cpp @@ -170,6 +170,8 @@ void PrintHostJobQueue::priv::bg_thread_main() } } catch (const std::exception &e) { emit_error(e.what()); + } catch (...) { + emit_error("Unknown exception"); } // Cleanup leftover files, if any diff --git a/src/libslic3r/Semver.hpp b/src/slic3r/Utils/Semver.hpp similarity index 100% rename from src/libslic3r/Semver.hpp rename to src/slic3r/Utils/Semver.hpp diff --git a/src/slic3r/Utils/Serial.cpp b/src/slic3r/Utils/Serial.cpp index 737e76c0b57..cd2a01cbfdc 100644 --- a/src/slic3r/Utils/Serial.cpp +++ b/src/slic3r/Utils/Serial.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include #include @@ -72,10 +71,13 @@ void parse_hardware_id(const std::string &hardware_id, SerialPortInfo &spi) std::regex pattern("USB\\\\.*VID_([[:xdigit:]]+)&PID_([[:xdigit:]]+).*"); std::smatch matches; if (std::regex_match(hardware_id, matches, pattern)) { - vid = std::stoul(matches[1].str(), 0, 16); - pid = std::stoul(matches[2].str(), 0, 16); - spi.id_vendor = vid; - spi.id_product = pid; + try { + vid = std::stoul(matches[1].str(), 0, 16); + pid = std::stoul(matches[2].str(), 0, 16); + spi.id_vendor = vid; + spi.id_product = pid; + } + catch (...) {} } } #endif @@ -98,7 +100,7 @@ optional sysfs_tty_prop_hex(const std::string &tty_dev, const std if (!prop) { return boost::none; } try { return std::stoul(*prop, 0, 16); } - catch (const std::exception&) { return boost::none; } + catch (...) { return boost::none; } } #endif @@ -351,8 +353,6 @@ void Serial::set_baud_rate(unsigned baud_rate) } } - -/* void Serial::set_DTR(bool on) { auto handle = native_handle(); @@ -495,7 +495,6 @@ std::string Serial::printer_format_line(const std::string &line, unsigned line_n return (boost::format("N%1% %2%*%3%\n") % line_num_str % line % checksum).str(); } -*/ } // namespace Utils diff --git a/src/slic3r/Utils/Serial.hpp b/src/slic3r/Utils/Serial.hpp index 8bad75b3155..67d64b4ec12 100644 --- a/src/slic3r/Utils/Serial.hpp +++ b/src/slic3r/Utils/Serial.hpp @@ -46,17 +46,6 @@ class Serial : public boost::asio::serial_port ~Serial(); void set_baud_rate(unsigned baud_rate); - - // The Serial implementation is currently in disarray and therefore commented out. - // The boost implementation seems to have several problems, such as lack of support - // for custom baud rates, few weird implementation bugs and a history of API breakages. - // It's questionable whether it solves more problems than causes. Probably not. - // TODO: Custom implementation not based on asio. - // - // As of now, this class is only kept for the purpose of rebooting AVR109, - // see FirmwareDialog::priv::avr109_reboot() - -/* void set_DTR(bool on); // Resets the line number both internally as well as with the firmware using M110 @@ -79,7 +68,7 @@ class Serial : public boost::asio::serial_port // Same as above, but with internally-managed line number size_t printer_write_line(const std::string &line); - + // Toggles DTR to reset the printer void printer_reset(); @@ -87,7 +76,6 @@ class Serial : public boost::asio::serial_port static std::string printer_format_line(const std::string &line, unsigned line_num); private: unsigned m_line_num = 0; -*/ }; diff --git a/src/slic3r/Utils/Time.cpp b/src/slic3r/Utils/Time.cpp new file mode 100644 index 00000000000..f38c4b40740 --- /dev/null +++ b/src/slic3r/Utils/Time.cpp @@ -0,0 +1,80 @@ +#include "Time.hpp" + +#ifdef WIN32 + #define WIN32_LEAN_AND_MEAN + #include + #undef WIN32_LEAN_AND_MEAN +#endif /* WIN32 */ + +namespace Slic3r { +namespace Utils { + +time_t parse_time_ISO8601Z(const std::string &sdate) +{ + int y, M, d, h, m, s; + if (sscanf(sdate.c_str(), "%04d%02d%02dT%02d%02d%02dZ", &y, &M, &d, &h, &m, &s) != 6) + return (time_t)-1; + struct tm tms; + tms.tm_year = y - 1900; // Year since 1900 + tms.tm_mon = M - 1; // 0-11 + tms.tm_mday = d; // 1-31 + tms.tm_hour = h; // 0-23 + tms.tm_min = m; // 0-59 + tms.tm_sec = s; // 0-61 (0-60 in C++11) + return mktime(&tms); +} + +std::string format_time_ISO8601Z(time_t time) +{ + struct tm tms; +#ifdef WIN32 + gmtime_s(&tms, &time); +#else + gmtime_r(&time, &tms); +#endif + char buf[128]; + sprintf(buf, "%04d%02d%02dT%02d%02d%02dZ", + tms.tm_year + 1900, + tms.tm_mon + 1, + tms.tm_mday, + tms.tm_hour, + tms.tm_min, + tms.tm_sec); + return buf; +} + +std::string format_local_date_time(time_t time) +{ + struct tm tms; +#ifdef WIN32 + localtime_s(&tms, &time); +#else + localtime_r(&time, &tms); +#endif + char buf[80]; + strftime(buf, 80, "%x %X", &tms); + return buf; +} + +time_t get_current_time_utc() +{ +#ifdef WIN32 + SYSTEMTIME st; + ::GetSystemTime(&st); + std::tm tm; + tm.tm_sec = st.wSecond; + tm.tm_min = st.wMinute; + tm.tm_hour = st.wHour; + tm.tm_mday = st.wDay; + tm.tm_mon = st.wMonth - 1; + tm.tm_year = st.wYear - 1900; + tm.tm_isdst = -1; + return mktime(&tm); +#else + const time_t current_local = time(nullptr); + return mktime(gmtime(¤t_local)); +#endif +} + +}; // namespace Utils +}; // namespace Slic3r diff --git a/src/slic3r/Utils/Time.hpp b/src/slic3r/Utils/Time.hpp new file mode 100644 index 00000000000..7b670bd3ee5 --- /dev/null +++ b/src/slic3r/Utils/Time.hpp @@ -0,0 +1,25 @@ +#ifndef slic3r_Utils_Time_hpp_ +#define slic3r_Utils_Time_hpp_ + +#include +#include + +namespace Slic3r { +namespace Utils { + +// Utilities to convert an UTC time_t to/from an ISO8601 time format, +// useful for putting timestamps into file and directory names. +// Returns (time_t)-1 on error. +extern time_t parse_time_ISO8601Z(const std::string &s); +extern std::string format_time_ISO8601Z(time_t time); + +// Format the date and time from an UTC time according to the active locales and a local time zone. +extern std::string format_local_date_time(time_t time); + +// There is no gmtime() on windows. +extern time_t get_current_time_utc(); + +}; // namespace Utils +}; // namespace Slic3r + +#endif /* slic3r_Utils_Time_hpp_ */ diff --git a/src/slic3r/Utils/UndoRedo.cpp b/src/slic3r/Utils/UndoRedo.cpp index 9c8d7a8c68d..b3b2628e29f 100644 --- a/src/slic3r/Utils/UndoRedo.cpp +++ b/src/slic3r/Utils/UndoRedo.cpp @@ -363,14 +363,12 @@ struct MutableHistoryInterval MutableHistoryInterval& operator=(const MutableHistoryInterval &rhs); }; -#ifdef SLIC3R_UNDOREDO_DEBUG static inline std::string ptr_to_string(const void* ptr) { char buf[64]; sprintf(buf, "%p", ptr); return buf; } -#endif // Smaller objects (Model, ModelObject, ModelInstance, ModelVolume, DynamicPrintConfig) // are mutable and there is not tracking of the changes, therefore a snapshot needs to be diff --git a/src/slic3r/Utils/UndoRedo.hpp b/src/slic3r/Utils/UndoRedo.hpp index 2901eacebf5..558449003e8 100644 --- a/src/slic3r/Utils/UndoRedo.hpp +++ b/src/slic3r/Utils/UndoRedo.hpp @@ -45,7 +45,6 @@ struct SnapshotData SELECTED_SETTINGS_ON_SIDEBAR = 2, SELECTED_LAYERROOT_ON_SIDEBAR = 4, SELECTED_LAYER_ON_SIDEBAR = 8, - RECALCULATE_SLA_SUPPORTS = 16 }; }; diff --git a/version.inc b/version.inc index befdca3b42e..bbbb0e650fc 100644 --- a/version.inc +++ b/version.inc @@ -3,7 +3,7 @@ set(SLIC3R_APP_NAME "Slic3r++") set(SLIC3R_APP_KEY "Slic3r++") -set(SLIC3R_VERSION "1.44.0") +set(SLIC3R_VERSION "2.0.0-1") set(SLIC3R_BUILD_ID "slic3r++_${SLIC3R_VERSION}+UNKNOWN") -set(SLIC3R_RC_VERSION "1,44,0,0") -set(SLIC3R_RC_VERSION_DOTS "1.44.0.0") +set(SLIC3R_RC_VERSION "2,0,0,0") +set(SLIC3R_RC_VERSION_DOTS "2.0.0.0") diff --git a/xs/t/03_point.t b/xs/t/03_point.t index c950998fbbe..cb71f68f5ff 100644 --- a/xs/t/03_point.t +++ b/xs/t/03_point.t @@ -44,7 +44,7 @@ ok !$point->coincides_with($point2), 'coincides_with'; { my $line = Slic3r::Line->new([50,50], [125,-25]); - cmp_ok(abs(Slic3r::Point->new(100,0)->distance_to_line($line)), '<=', 4e-15, 'distance_to_line()'); + is +Slic3r::Point->new(100,0)->distance_to_line($line), 0, 'distance_to_line()'; } { diff --git a/xs/xsp/ExtrusionEntityCollection.xsp b/xs/xsp/ExtrusionEntityCollection.xsp index 1f16ae3d4b2..731232358ea 100644 --- a/xs/xsp/ExtrusionEntityCollection.xsp +++ b/xs/xsp/ExtrusionEntityCollection.xsp @@ -9,7 +9,7 @@ %name{_new} ExtrusionEntityCollection(); ~ExtrusionEntityCollection(); Clone clone() - %code{% RETVAL = (ExtrusionEntityCollection*)THIS->clone(); %}; + %code{% RETVAL = THIS->clone(); %}; void reverse(); void clear(); ExtrusionEntityCollection* chained_path(bool no_reverse, ExtrusionRole role = erMixed) @@ -31,11 +31,13 @@ ExtrusionEntityCollection* flatten() %code{% RETVAL = new ExtrusionEntityCollection(); - *RETVAL = THIS->flatten(); + THIS->flatten(RETVAL); %}; double min_mm3_per_mm(); bool empty() %code{% RETVAL = THIS->entities.empty(); %}; + std::vector orig_indices() + %code{% RETVAL = THIS->orig_indices; %}; Polygons polygons_covered_by_width(); Polygons polygons_covered_by_spacing(); %{ diff --git a/xs/xsp/Filler.xsp b/xs/xsp/Filler.xsp index 34a6d33bee2..5f04e73480b 100644 --- a/xs/xsp/Filler.xsp +++ b/xs/xsp/Filler.xsp @@ -65,6 +65,13 @@ new_from_type(CLASS, type) OUTPUT: RETVAL +void +make_fill(CLASS, layer_region, out_append) + char* CLASS; + LayerRegion* layer_region; + ExtrusionEntityCollection* out_append; + CODE: + make_fill(*layer_region, *out_append); %} };