diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3a10a4de1..ac9be9fa1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -397,6 +397,7 @@ endif ()
find_package(PNG REQUIRED)
+set(OpenGL_GL_PREFERENCE "LEGACY")
find_package(OpenGL REQUIRED)
# Find glew or use bundled version
@@ -513,9 +514,13 @@ endif()
if (WIN32)
install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/resources")
elseif (SLIC3R_FHS)
+ # CMAKE_INSTALL_FULL_DATAROOTDIR: read-only architecture-independent data root (share)
set(SLIC3R_FHS_RESOURCES "${CMAKE_INSTALL_FULL_DATAROOTDIR}/SuperSlicer")
install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${SLIC3R_FHS_RESOURCES}")
+ install(FILES src/platform/unix/SuperSlicer.desktop DESTINATION ${SLIC3R_FHS_RESOURCES}/applications)
else ()
+ install(FILES src/platform/unix/SuperSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications)
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/deps/PNG/PNG.cmake b/deps/PNG/PNG.cmake
index 01bd98499..3e55991fb 100644
--- a/deps/PNG/PNG.cmake
+++ b/deps/PNG/PNG.cmake
@@ -1,3 +1,4 @@
+
prusaslicer_add_cmake_project(PNG
GIT_REPOSITORY https://github.com/glennrp/libpng.git
GIT_TAG v1.6.35
@@ -5,6 +6,7 @@ prusaslicer_add_cmake_project(PNG
CMAKE_ARGS
-DPNG_SHARED=OFF
-DPNG_STATIC=ON
+ -DPNG_PREFIX=prusaslicer_
-DPNG_TESTS=OFF
)
diff --git a/resources/icons/PrusaSlicer-gcodeviewer.ico b/resources/icons/PrusaSlicer-gcodeviewer.ico
index 2c9272369..955b8c6dc 100644
Binary files a/resources/icons/PrusaSlicer-gcodeviewer.ico and b/resources/icons/PrusaSlicer-gcodeviewer.ico differ
diff --git a/resources/icons/PrusaSlicer-gcodeviewer_128px.png b/resources/icons/PrusaSlicer-gcodeviewer_128px.png
index d8e3e438b..f75bcfe58 100644
Binary files a/resources/icons/PrusaSlicer-gcodeviewer_128px.png and b/resources/icons/PrusaSlicer-gcodeviewer_128px.png differ
diff --git a/resources/icons/PrusaSlicer-gcodeviewer_192px.png b/resources/icons/PrusaSlicer-gcodeviewer_192px.png
index 0e0243012..7f4e9d617 100644
Binary files a/resources/icons/PrusaSlicer-gcodeviewer_192px.png and b/resources/icons/PrusaSlicer-gcodeviewer_192px.png differ
diff --git a/resources/icons/PrusaSlicer-gcodeviewer_32px.png b/resources/icons/PrusaSlicer-gcodeviewer_32px.png
new file mode 100644
index 000000000..0f7e49d87
Binary files /dev/null and b/resources/icons/PrusaSlicer-gcodeviewer_32px.png differ
diff --git a/resources/icons/white/exit.svg b/resources/icons/white/exit.svg
new file mode 100644
index 000000000..e5aebcfc2
--- /dev/null
+++ b/resources/icons/white/exit.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/resources/icons/white/switch_presets.svg b/resources/icons/white/switch_presets.svg
new file mode 100644
index 000000000..efcc3670c
--- /dev/null
+++ b/resources/icons/white/switch_presets.svg
@@ -0,0 +1,52 @@
+
+
+
diff --git a/resources/localization/PrusaSlicer.pot b/resources/localization/PrusaSlicer.pot
index aef39c253..a111c8fa0 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: 2020-04-16 11:29+0200\n"
+"POT-Creation-Date: 2020-10-19 13:45+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,109 +18,55 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: src/slic3r/GUI/AboutDialog.cpp:42 src/slic3r/GUI/AboutDialog.cpp:295
+#: src/slic3r/GUI/AboutDialog.cpp:43 src/slic3r/GUI/AboutDialog.cpp:48
+#: src/slic3r/GUI/AboutDialog.cpp:317
msgid "Portions copyright"
msgstr ""
-#: src/slic3r/GUI/AboutDialog.cpp:130 src/slic3r/GUI/AboutDialog.cpp:259
+#: src/slic3r/GUI/AboutDialog.cpp:139 src/slic3r/GUI/AboutDialog.cpp:281
msgid "Copyright"
msgstr ""
#. TRN "Slic3r _is licensed under the_ License"
-#: src/slic3r/GUI/AboutDialog.cpp:132
+#: src/slic3r/GUI/AboutDialog.cpp:141
msgid ""
"License agreements of all following programs (libraries) are part of "
"application license agreement"
msgstr ""
-#: src/slic3r/GUI/AboutDialog.cpp:202
+#: src/slic3r/GUI/AboutDialog.cpp:212 src/slic3r/GUI/AboutDialog.cpp:215
#, possible-c-format
msgid "About %s"
msgstr ""
-#: src/slic3r/GUI/AboutDialog.cpp:234 src/slic3r/GUI/MainFrame.cpp:70
+#: src/slic3r/GUI/AboutDialog.cpp:256 src/slic3r/GUI/GUI_App.cpp:239
+#: src/slic3r/GUI/MainFrame.cpp:164
msgid "Version"
msgstr ""
#. TRN "Slic3r _is licensed under the_ License"
-#: src/slic3r/GUI/AboutDialog.cpp:261
+#: src/slic3r/GUI/AboutDialog.cpp:283 src/slic3r/GUI/GUI_App.cpp:244
msgid "is licensed under the"
msgstr ""
-#: src/slic3r/GUI/AboutDialog.cpp:262
+#: src/slic3r/GUI/AboutDialog.cpp:284 src/slic3r/GUI/GUI_App.cpp:244
msgid "GNU Affero General Public License, version 3"
msgstr ""
-#: src/slic3r/GUI/AboutDialog.cpp:263
+#: src/slic3r/GUI/AboutDialog.cpp:285
msgid ""
"PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap "
"community."
msgstr ""
-#: src/slic3r/GUI/AboutDialog.cpp:264
+#: src/slic3r/GUI/AboutDialog.cpp:286
msgid ""
"Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, "
"Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and "
"numerous others."
msgstr ""
-#: src/slic3r/GUI/AppConfig.cpp:110
-msgid ""
-"Error parsing PrusaSlicer config file, it is probably corrupted. Try to "
-"manually delete the file to recover from the error. Your user profiles will "
-"not be affected."
-msgstr ""
-
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:101
-msgid ""
-"Copying of the temporary G-code to the output G-code failed. Maybe the SD "
-"card is write locked?"
-msgstr ""
-
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:104
-msgid ""
-"Copying of the temporary G-code to the output G-code failed. There might be "
-"problem with target device, please try exporting again or using different "
-"device. The corrupted output G-code is at %1%.tmp."
-msgstr ""
-
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:107
-msgid ""
-"Renaming of the G-code after copying to the selected destination folder has "
-"failed. Current path is %1%.tmp. Please try exporting again."
-msgstr ""
-
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:110
-msgid ""
-"Copying of the temporary G-code has finished but the original code at %1% "
-"couldn't be opened during copy check. The output G-code is at %2%.tmp."
-msgstr ""
-
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:113
-msgid ""
-"Copying of the temporary G-code has finished but the exported code couldn't "
-"be opened during copy check. The output G-code is at %1%.tmp."
-msgstr ""
-
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:120
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:468
-msgid "Running post-processing scripts"
-msgstr ""
-
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:122
-msgid "G-code file exported to %1%"
-msgstr ""
-
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:126
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:172
-msgid "Slicing complete"
-msgstr ""
-
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:168
-msgid "Masked SLA file exported to %1%"
-msgstr ""
-
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:210
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:62
#, possible-c-format
msgid ""
"%s has encountered an error. It was likely caused by running out of memory. "
@@ -128,161 +74,219 @@ msgid ""
"and we would be glad if you reported it."
msgstr ""
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:470
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:144
+msgid ""
+"Copying of the temporary G-code to the output G-code failed. Maybe the SD "
+"card is write locked?"
+msgstr ""
+
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:147
+msgid ""
+"Copying of the temporary G-code to the output G-code failed. There might be "
+"problem with target device, please try exporting again or using different "
+"device. The corrupted output G-code is at %1%.tmp."
+msgstr ""
+
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:150
+msgid ""
+"Renaming of the G-code after copying to the selected destination folder has "
+"failed. Current path is %1%.tmp. Please try exporting again."
+msgstr ""
+
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:153
+msgid ""
+"Copying of the temporary G-code has finished but the original code at %1% "
+"couldn't be opened during copy check. The output G-code is at %2%.tmp."
+msgstr ""
+
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:156
+msgid ""
+"Copying of the temporary G-code has finished but the exported code couldn't "
+"be opened during copy check. The output G-code is at %1%.tmp."
+msgstr ""
+
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:163
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:520
+msgid "Running post-processing scripts"
+msgstr ""
+
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:165
+msgid "G-code file exported to %1%"
+msgstr ""
+
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:170
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:219
+msgid "Slicing complete"
+msgstr ""
+
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:214
+msgid "Masked SLA file exported to %1%"
+msgstr ""
+
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:522
msgid "Copying of the temporary G-code to the output G-code failed"
msgstr ""
-#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:493
+#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:545
msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:66 src/slic3r/GUI/GUI_ObjectList.cpp:2073
-msgid "Shape"
-msgstr ""
-
-#: src/slic3r/GUI/BedShapeDialog.cpp:73
-msgid "Rectangular"
-msgstr ""
-
-#: src/slic3r/GUI/BedShapeDialog.cpp:79
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:232 src/slic3r/GUI/Plater.cpp:162
-#: src/slic3r/GUI/Tab.cpp:2319
+#: src/slic3r/GUI/BedShapeDialog.cpp:93
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:240 src/slic3r/GUI/Plater.cpp:166
+#: src/slic3r/GUI/Tab.cpp:2493
msgid "Size"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:80
-msgid "Size in X and Y of the rectangular plate."
-msgstr ""
-
-#: src/slic3r/GUI/BedShapeDialog.cpp:88
+#: src/slic3r/GUI/BedShapeDialog.cpp:94
msgid "Origin"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:89
+#: src/slic3r/GUI/BedShapeDialog.cpp:95 src/libslic3r/PrintConfig.cpp:745
+msgid "Diameter"
+msgstr ""
+
+#: src/slic3r/GUI/BedShapeDialog.cpp:110
+msgid "Size in X and Y of the rectangular plate."
+msgstr ""
+
+#: src/slic3r/GUI/BedShapeDialog.cpp:121
msgid ""
"Distance of the 0,0 G-code coordinate from the front left corner of the "
"rectangle."
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:93
-msgid "Circular"
-msgstr ""
-
-#: src/slic3r/GUI/BedShapeDialog.cpp:96 src/slic3r/GUI/ConfigWizard.cpp:233
-#: src/slic3r/GUI/ConfigWizard.cpp:985 src/slic3r/GUI/ConfigWizard.cpp:999
+#: src/slic3r/GUI/BedShapeDialog.cpp:129 src/slic3r/GUI/ConfigWizard.cpp:236
+#: src/slic3r/GUI/ConfigWizard.cpp:1336 src/slic3r/GUI/ConfigWizard.cpp:1350
#: src/slic3r/GUI/ExtruderSequenceDialog.cpp:87
-#: src/slic3r/GUI/GUI_ObjectLayers.cpp:142
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:333
+#: src/slic3r/GUI/GCodeViewer.cpp:2183 src/slic3r/GUI/GCodeViewer.cpp:2189
+#: src/slic3r/GUI/GCodeViewer.cpp:2197 src/slic3r/GUI/GUI_ObjectLayers.cpp:145
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:341
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:418
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:486
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:487
#: src/slic3r/GUI/ObjectDataViewModel.cpp:96
#: src/slic3r/GUI/WipeTowerDialog.cpp:85 src/libslic3r/PrintConfig.cpp:75
-#: src/libslic3r/PrintConfig.cpp:82 src/libslic3r/PrintConfig.cpp:91
-#: src/libslic3r/PrintConfig.cpp:122 src/libslic3r/PrintConfig.cpp:188
-#: src/libslic3r/PrintConfig.cpp:246 src/libslic3r/PrintConfig.cpp:321
-#: src/libslic3r/PrintConfig.cpp:329 src/libslic3r/PrintConfig.cpp:379
-#: src/libslic3r/PrintConfig.cpp:505 src/libslic3r/PrintConfig.cpp:516
-#: src/libslic3r/PrintConfig.cpp:534 src/libslic3r/PrintConfig.cpp:712
-#: src/libslic3r/PrintConfig.cpp:1231 src/libslic3r/PrintConfig.cpp:1292
-#: src/libslic3r/PrintConfig.cpp:1310 src/libslic3r/PrintConfig.cpp:1328
-#: src/libslic3r/PrintConfig.cpp:1384 src/libslic3r/PrintConfig.cpp:1394
-#: src/libslic3r/PrintConfig.cpp:1516 src/libslic3r/PrintConfig.cpp:1524
-#: src/libslic3r/PrintConfig.cpp:1565 src/libslic3r/PrintConfig.cpp:1573
-#: src/libslic3r/PrintConfig.cpp:1583 src/libslic3r/PrintConfig.cpp:1591
-#: src/libslic3r/PrintConfig.cpp:1599 src/libslic3r/PrintConfig.cpp:1682
-#: src/libslic3r/PrintConfig.cpp:1921 src/libslic3r/PrintConfig.cpp:1992
-#: src/libslic3r/PrintConfig.cpp:2026 src/libslic3r/PrintConfig.cpp:2154
-#: src/libslic3r/PrintConfig.cpp:2233 src/libslic3r/PrintConfig.cpp:2240
-#: src/libslic3r/PrintConfig.cpp:2247 src/libslic3r/PrintConfig.cpp:2277
-#: src/libslic3r/PrintConfig.cpp:2287 src/libslic3r/PrintConfig.cpp:2297
-#: src/libslic3r/PrintConfig.cpp:2457 src/libslic3r/PrintConfig.cpp:2491
-#: src/libslic3r/PrintConfig.cpp:2630 src/libslic3r/PrintConfig.cpp:2639
-#: src/libslic3r/PrintConfig.cpp:2648 src/libslic3r/PrintConfig.cpp:2658
-#: src/libslic3r/PrintConfig.cpp:2712 src/libslic3r/PrintConfig.cpp:2722
-#: src/libslic3r/PrintConfig.cpp:2734 src/libslic3r/PrintConfig.cpp:2754
-#: src/libslic3r/PrintConfig.cpp:2764 src/libslic3r/PrintConfig.cpp:2774
-#: src/libslic3r/PrintConfig.cpp:2792 src/libslic3r/PrintConfig.cpp:2807
-#: src/libslic3r/PrintConfig.cpp:2821 src/libslic3r/PrintConfig.cpp:2832
-#: src/libslic3r/PrintConfig.cpp:2845 src/libslic3r/PrintConfig.cpp:2890
-#: src/libslic3r/PrintConfig.cpp:2900 src/libslic3r/PrintConfig.cpp:2909
-#: src/libslic3r/PrintConfig.cpp:2919 src/libslic3r/PrintConfig.cpp:2935
-#: src/libslic3r/PrintConfig.cpp:2959
+#: src/libslic3r/PrintConfig.cpp:82 src/libslic3r/PrintConfig.cpp:93
+#: src/libslic3r/PrintConfig.cpp:124 src/libslic3r/PrintConfig.cpp:222
+#: src/libslic3r/PrintConfig.cpp:280 src/libslic3r/PrintConfig.cpp:355
+#: src/libslic3r/PrintConfig.cpp:363 src/libslic3r/PrintConfig.cpp:413
+#: src/libslic3r/PrintConfig.cpp:541 src/libslic3r/PrintConfig.cpp:552
+#: src/libslic3r/PrintConfig.cpp:570 src/libslic3r/PrintConfig.cpp:748
+#: src/libslic3r/PrintConfig.cpp:1158 src/libslic3r/PrintConfig.cpp:1339
+#: src/libslic3r/PrintConfig.cpp:1400 src/libslic3r/PrintConfig.cpp:1418
+#: src/libslic3r/PrintConfig.cpp:1436 src/libslic3r/PrintConfig.cpp:1492
+#: src/libslic3r/PrintConfig.cpp:1502 src/libslic3r/PrintConfig.cpp:1624
+#: src/libslic3r/PrintConfig.cpp:1632 src/libslic3r/PrintConfig.cpp:1673
+#: src/libslic3r/PrintConfig.cpp:1681 src/libslic3r/PrintConfig.cpp:1691
+#: src/libslic3r/PrintConfig.cpp:1699 src/libslic3r/PrintConfig.cpp:1707
+#: src/libslic3r/PrintConfig.cpp:1790 src/libslic3r/PrintConfig.cpp:2056
+#: src/libslic3r/PrintConfig.cpp:2127 src/libslic3r/PrintConfig.cpp:2161
+#: src/libslic3r/PrintConfig.cpp:2290 src/libslic3r/PrintConfig.cpp:2369
+#: src/libslic3r/PrintConfig.cpp:2376 src/libslic3r/PrintConfig.cpp:2383
+#: src/libslic3r/PrintConfig.cpp:2413 src/libslic3r/PrintConfig.cpp:2423
+#: src/libslic3r/PrintConfig.cpp:2433 src/libslic3r/PrintConfig.cpp:2593
+#: src/libslic3r/PrintConfig.cpp:2627 src/libslic3r/PrintConfig.cpp:2766
+#: src/libslic3r/PrintConfig.cpp:2775 src/libslic3r/PrintConfig.cpp:2784
+#: src/libslic3r/PrintConfig.cpp:2794 src/libslic3r/PrintConfig.cpp:2859
+#: src/libslic3r/PrintConfig.cpp:2869 src/libslic3r/PrintConfig.cpp:2881
+#: src/libslic3r/PrintConfig.cpp:2901 src/libslic3r/PrintConfig.cpp:2911
+#: src/libslic3r/PrintConfig.cpp:2921 src/libslic3r/PrintConfig.cpp:2939
+#: src/libslic3r/PrintConfig.cpp:2954 src/libslic3r/PrintConfig.cpp:2968
+#: src/libslic3r/PrintConfig.cpp:2979 src/libslic3r/PrintConfig.cpp:2992
+#: src/libslic3r/PrintConfig.cpp:3037 src/libslic3r/PrintConfig.cpp:3047
+#: src/libslic3r/PrintConfig.cpp:3056 src/libslic3r/PrintConfig.cpp:3066
+#: src/libslic3r/PrintConfig.cpp:3082 src/libslic3r/PrintConfig.cpp:3106
msgid "mm"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:97 src/libslic3r/PrintConfig.cpp:709
-msgid "Diameter"
-msgstr ""
-
-#: src/slic3r/GUI/BedShapeDialog.cpp:98
+#: src/slic3r/GUI/BedShapeDialog.cpp:131
msgid ""
"Diameter of the print bed. It is assumed that origin (0,0) is located in the "
"center."
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:102 src/slic3r/GUI/GUI_Preview.cpp:308
-#: src/libslic3r/ExtrusionEntity.cpp:322
+#: src/slic3r/GUI/BedShapeDialog.cpp:141
+msgid "Rectangular"
+msgstr ""
+
+#: src/slic3r/GUI/BedShapeDialog.cpp:142
+msgid "Circular"
+msgstr ""
+
+#: src/slic3r/GUI/BedShapeDialog.cpp:143 src/slic3r/GUI/GUI_Preview.cpp:314
+#: src/libslic3r/ExtrusionEntity.cpp:327 src/libslic3r/ExtrusionEntity.cpp:362
msgid "Custom"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:106
+#: src/slic3r/GUI/BedShapeDialog.cpp:145
+msgid "Invalid"
+msgstr ""
+
+#: src/slic3r/GUI/BedShapeDialog.cpp:156 src/slic3r/GUI/BedShapeDialog.cpp:222
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2215
+msgid "Shape"
+msgstr ""
+
+#: src/slic3r/GUI/BedShapeDialog.cpp:243
msgid "Load shape from STL..."
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:159
+#: src/slic3r/GUI/BedShapeDialog.cpp:292 src/slic3r/GUI/MainFrame.cpp:1969
msgid "Settings"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:176
+#: src/slic3r/GUI/BedShapeDialog.cpp:315
msgid "Texture"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:186 src/slic3r/GUI/BedShapeDialog.cpp:265
+#: src/slic3r/GUI/BedShapeDialog.cpp:325 src/slic3r/GUI/BedShapeDialog.cpp:405
msgid "Load..."
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:194 src/slic3r/GUI/BedShapeDialog.cpp:273
-#: src/slic3r/GUI/Tab.cpp:3155
+#: src/slic3r/GUI/BedShapeDialog.cpp:333 src/slic3r/GUI/BedShapeDialog.cpp:413
+#: src/slic3r/GUI/Tab.cpp:3423
msgid "Remove"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:227 src/slic3r/GUI/BedShapeDialog.cpp:306
+#: src/slic3r/GUI/BedShapeDialog.cpp:366 src/slic3r/GUI/BedShapeDialog.cpp:446
msgid "Not found:"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:255
+#: src/slic3r/GUI/BedShapeDialog.cpp:395
msgid "Model"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:491
+#: src/slic3r/GUI/BedShapeDialog.cpp:563
msgid "Choose an STL file to import bed shape from:"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:498 src/slic3r/GUI/BedShapeDialog.cpp:547
-#: src/slic3r/GUI/BedShapeDialog.cpp:570
+#: src/slic3r/GUI/BedShapeDialog.cpp:570 src/slic3r/GUI/BedShapeDialog.cpp:619
+#: src/slic3r/GUI/BedShapeDialog.cpp:642
msgid "Invalid file format."
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:509
+#: src/slic3r/GUI/BedShapeDialog.cpp:581
msgid "Error! Invalid model"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:517
+#: src/slic3r/GUI/BedShapeDialog.cpp:589
msgid "The selected file contains no geometry."
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:521
+#: src/slic3r/GUI/BedShapeDialog.cpp:593
msgid ""
"The selected file contains several disjoint areas. This is not supported."
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:536
+#: src/slic3r/GUI/BedShapeDialog.cpp:608
msgid "Choose a file to import bed texture from (PNG/SVG):"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.cpp:559
+#: src/slic3r/GUI/BedShapeDialog.cpp:631
msgid "Choose an STL file to import bed model from:"
msgstr ""
-#: src/slic3r/GUI/BedShapeDialog.hpp:59 src/slic3r/GUI/ConfigWizard.cpp:944
+#: src/slic3r/GUI/BedShapeDialog.hpp:98 src/slic3r/GUI/ConfigWizard.cpp:1295
msgid "Bed Shape"
msgstr ""
@@ -328,31 +332,31 @@ msgid ""
"preset"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:48
+#: src/slic3r/GUI/ConfigManipulation.cpp:47
msgid ""
"Zero layer height is not valid.\n"
"\n"
"The layer height will be reset to 0.01."
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:49
-#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27 src/slic3r/GUI/Tab.cpp:1116
+#: src/slic3r/GUI/ConfigManipulation.cpp:48
+#: src/slic3r/GUI/GUI_ObjectLayers.cpp:29 src/slic3r/GUI/Tab.cpp:1371
#: src/libslic3r/PrintConfig.cpp:71
msgid "Layer height"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:60
+#: src/slic3r/GUI/ConfigManipulation.cpp:59
msgid ""
"Zero first layer height is not valid.\n"
"\n"
"The first layer height will be reset to 0.01."
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:61 src/libslic3r/PrintConfig.cpp:889
+#: src/slic3r/GUI/ConfigManipulation.cpp:60 src/libslic3r/PrintConfig.cpp:931
msgid "First layer height"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:81
+#: src/slic3r/GUI/ConfigManipulation.cpp:80
#, possible-c-format
msgid ""
"The Spiral Vase mode requires:\n"
@@ -364,15 +368,15 @@ msgid ""
"- Detect thin walls disabled"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:89
+#: src/slic3r/GUI/ConfigManipulation.cpp:88
msgid "Shall I adjust those settings in order to enable Spiral Vase?"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:90
+#: src/slic3r/GUI/ConfigManipulation.cpp:89
msgid "Spiral Vase"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:115
+#: src/slic3r/GUI/ConfigManipulation.cpp:114
msgid ""
"The Wipe Tower currently supports the non-soluble supports only\n"
"if they are printed with the current extruder without triggering a tool "
@@ -381,74 +385,74 @@ msgid ""
"to be set to 0)."
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:119
+#: src/slic3r/GUI/ConfigManipulation.cpp:118
msgid "Shall I adjust those settings in order to enable the Wipe Tower?"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:120
-#: src/slic3r/GUI/ConfigManipulation.cpp:140
+#: src/slic3r/GUI/ConfigManipulation.cpp:119
+#: src/slic3r/GUI/ConfigManipulation.cpp:139
msgid "Wipe Tower"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:136
+#: src/slic3r/GUI/ConfigManipulation.cpp:135
msgid ""
"For the Wipe Tower to work with the soluble supports, the support layers\n"
"need to be synchronized with the object layers."
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:139
+#: src/slic3r/GUI/ConfigManipulation.cpp:138
msgid "Shall I synchronize support layers in order to enable the Wipe Tower?"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:159
+#: src/slic3r/GUI/ConfigManipulation.cpp:158
msgid ""
"Supports work better, if the following feature is enabled:\n"
"- Detect bridging perimeters"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:162
+#: src/slic3r/GUI/ConfigManipulation.cpp:161
msgid "Shall I adjust those settings for supports?"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:163
+#: src/slic3r/GUI/ConfigManipulation.cpp:162
msgid "Support Generator"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:208
+#: src/slic3r/GUI/ConfigManipulation.cpp:207
msgid "The %1% infill pattern is not supposed to work at 100%% density."
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:210
+#: src/slic3r/GUI/ConfigManipulation.cpp:209
msgid "Shall I switch to rectilinear fill pattern?"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:211
-#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:96
-#: src/slic3r/GUI/GUI_ObjectList.cpp:618 src/slic3r/GUI/Plater.cpp:534
-#: src/slic3r/GUI/Tab.cpp:1158 src/slic3r/GUI/Tab.cpp:1159
-#: src/libslic3r/PrintConfig.cpp:203 src/libslic3r/PrintConfig.cpp:416
-#: src/libslic3r/PrintConfig.cpp:436 src/libslic3r/PrintConfig.cpp:776
-#: src/libslic3r/PrintConfig.cpp:790 src/libslic3r/PrintConfig.cpp:827
-#: src/libslic3r/PrintConfig.cpp:981 src/libslic3r/PrintConfig.cpp:991
-#: src/libslic3r/PrintConfig.cpp:1009 src/libslic3r/PrintConfig.cpp:1028
-#: src/libslic3r/PrintConfig.cpp:1047 src/libslic3r/PrintConfig.cpp:1735
-#: src/libslic3r/PrintConfig.cpp:1752
+#: src/slic3r/GUI/ConfigManipulation.cpp:210
+#: src/slic3r/GUI/GUI_ObjectList.cpp:35 src/slic3r/GUI/GUI_ObjectList.cpp:93
+#: src/slic3r/GUI/GUI_ObjectList.cpp:652 src/slic3r/GUI/Plater.cpp:393
+#: src/slic3r/GUI/Tab.cpp:1413 src/slic3r/GUI/Tab.cpp:1414
+#: src/libslic3r/PrintConfig.cpp:237 src/libslic3r/PrintConfig.cpp:450
+#: src/libslic3r/PrintConfig.cpp:472 src/libslic3r/PrintConfig.cpp:812
+#: src/libslic3r/PrintConfig.cpp:826 src/libslic3r/PrintConfig.cpp:863
+#: src/libslic3r/PrintConfig.cpp:1025 src/libslic3r/PrintConfig.cpp:1035
+#: src/libslic3r/PrintConfig.cpp:1053 src/libslic3r/PrintConfig.cpp:1072
+#: src/libslic3r/PrintConfig.cpp:1091 src/libslic3r/PrintConfig.cpp:1843
+#: src/libslic3r/PrintConfig.cpp:1860
msgid "Infill"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:318
+#: src/slic3r/GUI/ConfigManipulation.cpp:322
msgid "Head penetration should not be greater than the head width."
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:320
+#: src/slic3r/GUI/ConfigManipulation.cpp:324
msgid "Invalid Head penetration"
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:331
+#: src/slic3r/GUI/ConfigManipulation.cpp:335
msgid "Pinhead diameter should be smaller than the pillar diameter."
msgstr ""
-#: src/slic3r/GUI/ConfigManipulation.cpp:333
+#: src/slic3r/GUI/ConfigManipulation.cpp:337
msgid "Invalid pinhead diameter"
msgstr ""
@@ -464,11 +468,12 @@ msgstr ""
msgid "Before roll back"
msgstr ""
-#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:24
+#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:24 src/libslic3r/PrintConfig.cpp:132
msgid "User"
msgstr ""
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:27
+#: src/slic3r/GUI/GUI_Preview.cpp:299 src/libslic3r/ExtrusionEntity.cpp:310
msgid "Unknown"
msgstr ""
@@ -480,7 +485,7 @@ msgstr ""
msgid "PrusaSlicer version"
msgstr ""
-#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:51 src/slic3r/GUI/Preset.cpp:1563
+#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:51 src/libslic3r/Preset.cpp:1300
msgid "print"
msgstr ""
@@ -488,11 +493,11 @@ msgstr ""
msgid "filaments"
msgstr ""
-#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:53 src/slic3r/GUI/Preset.cpp:1567
+#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:53 src/libslic3r/Preset.cpp:1304
msgid "printer"
msgstr ""
-#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:57 src/slic3r/GUI/Tab.cpp:1034
+#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:57 src/slic3r/GUI/Tab.cpp:1289
msgid "vendor"
msgstr ""
@@ -529,104 +534,125 @@ msgstr ""
msgid "Configuration Snapshots"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:233
+#: src/slic3r/GUI/ConfigWizard.cpp:236
msgid "nozzle"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:237
+#: src/slic3r/GUI/ConfigWizard.cpp:240
msgid "Alternate nozzles:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:304
+#: src/slic3r/GUI/ConfigWizard.cpp:307
msgid "All standard"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:304
+#: src/slic3r/GUI/ConfigWizard.cpp:307
msgid "Standard"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:305 src/slic3r/GUI/ConfigWizard.cpp:588
-#: src/slic3r/GUI/Tab.cpp:3214
+#: src/slic3r/GUI/ConfigWizard.cpp:308 src/slic3r/GUI/ConfigWizard.cpp:598
+#: src/slic3r/GUI/Tab.cpp:3507 src/slic3r/GUI/UnsavedChangesDialog.cpp:921
msgid "All"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:306 src/slic3r/GUI/ConfigWizard.cpp:589
-#: src/slic3r/GUI/Plater.cpp:506 src/slic3r/GUI/Plater.cpp:646
-#: src/libslic3r/ExtrusionEntity.cpp:309
+#: src/slic3r/GUI/ConfigWizard.cpp:309 src/slic3r/GUI/ConfigWizard.cpp:599
+#: src/slic3r/GUI/Plater.cpp:365 src/slic3r/GUI/Plater.cpp:505
+#: src/libslic3r/ExtrusionEntity.cpp:312
msgid "None"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:442
+#: src/slic3r/GUI/ConfigWizard.cpp:445
#, possible-c-format
msgid "Welcome to the %s Configuration Assistant"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:444
+#: src/slic3r/GUI/ConfigWizard.cpp:447
#, possible-c-format
msgid "Welcome to the %s Configuration Wizard"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:446
+#: src/slic3r/GUI/ConfigWizard.cpp:449
msgid "Welcome"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:448
+#: src/slic3r/GUI/ConfigWizard.cpp:451
#, 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:453
+#: src/slic3r/GUI/ConfigWizard.cpp:456
msgid "Remove user profiles (a snapshot will be taken beforehand)"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:496
+#: src/slic3r/GUI/ConfigWizard.cpp:499
#, possible-c-format
msgid "%s Family"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:580
+#: src/slic3r/GUI/ConfigWizard.cpp:587
+msgid "Printer:"
+msgstr ""
+
+#: src/slic3r/GUI/ConfigWizard.cpp:589
msgid "Vendor:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:581
+#: src/slic3r/GUI/ConfigWizard.cpp:590
msgid "Profile:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:618 src/slic3r/GUI/ConfigWizard.cpp:646
+#: src/slic3r/GUI/ConfigWizard.cpp:662 src/slic3r/GUI/ConfigWizard.cpp:812
+#: src/slic3r/GUI/ConfigWizard.cpp:873 src/slic3r/GUI/ConfigWizard.cpp:1007
msgid "(All)"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:747
+#: src/slic3r/GUI/ConfigWizard.cpp:691
+msgid ""
+"Filaments marked with * are not compatible with some installed "
+"printers."
+msgstr ""
+
+#: src/slic3r/GUI/ConfigWizard.cpp:694
+msgid "All installed printers are compatible with the selected filament."
+msgstr ""
+
+#: src/slic3r/GUI/ConfigWizard.cpp:714
+msgid ""
+"Only the following installed printers are compatible with the selected "
+"filament:"
+msgstr ""
+
+#: src/slic3r/GUI/ConfigWizard.cpp:1091
msgid "Custom Printer Setup"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:747
+#: src/slic3r/GUI/ConfigWizard.cpp:1091
msgid "Custom Printer"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:749
+#: src/slic3r/GUI/ConfigWizard.cpp:1093
msgid "Define a custom printer profile"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:751
+#: src/slic3r/GUI/ConfigWizard.cpp:1095
msgid "Custom profile name:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:776
+#: src/slic3r/GUI/ConfigWizard.cpp:1120
msgid "Automatic updates"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:776
+#: src/slic3r/GUI/ConfigWizard.cpp:1120
msgid "Updates"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:784 src/slic3r/GUI/Preferences.cpp:64
+#: src/slic3r/GUI/ConfigWizard.cpp:1128 src/slic3r/GUI/Preferences.cpp:81
msgid "Check for application updates"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:788
+#: src/slic3r/GUI/ConfigWizard.cpp:1132
#, possible-c-format
msgid ""
"If enabled, %s checks for new application versions online. When a new "
@@ -635,11 +661,11 @@ msgid ""
"notification mechanisms, no automatic installation is done."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:794 src/slic3r/GUI/Preferences.cpp:80
+#: src/slic3r/GUI/ConfigWizard.cpp:1138 src/slic3r/GUI/Preferences.cpp:97
msgid "Update built-in Presets automatically"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:798
+#: src/slic3r/GUI/ConfigWizard.cpp:1142
#, possible-c-format
msgid ""
"If enabled, %s downloads updates of built-in system presets in the "
@@ -648,30 +674,30 @@ msgid ""
"startup."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:801
+#: src/slic3r/GUI/ConfigWizard.cpp:1145
msgid ""
"Updates are never applied without user's consent and never overwrite user's "
"customized settings."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:806
+#: src/slic3r/GUI/ConfigWizard.cpp:1150
msgid ""
"Additionally a backup snapshot of the whole configuration is created before "
"an update is applied."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:813 src/slic3r/GUI/GUI_ObjectList.cpp:1678
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4040 src/slic3r/GUI/Plater.cpp:3225
-#: src/slic3r/GUI/Plater.cpp:3938 src/slic3r/GUI/Plater.cpp:3967
+#: src/slic3r/GUI/ConfigWizard.cpp:1157 src/slic3r/GUI/GUI_ObjectList.cpp:1793
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4439 src/slic3r/GUI/Plater.cpp:3028
+#: src/slic3r/GUI/Plater.cpp:3852 src/slic3r/GUI/Plater.cpp:3881
msgid "Reload from disk"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:816
+#: src/slic3r/GUI/ConfigWizard.cpp:1160
msgid ""
"Export full pathnames of models and parts sources into 3mf and amf files"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:820
+#: src/slic3r/GUI/ConfigWizard.cpp:1164
msgid ""
"If enabled, allows the Reload from disk command to automatically find and "
"load the files when invoked.\n"
@@ -679,11 +705,11 @@ msgid ""
"using an open file dialog."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:828
+#: src/slic3r/GUI/ConfigWizard.cpp:1172
msgid "View mode"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:830
+#: src/slic3r/GUI/ConfigWizard.cpp:1174
msgid ""
"PrusaSlicer's user interfaces comes in three variants:\n"
"Simple, Advanced, and Expert.\n"
@@ -692,272 +718,285 @@ msgid ""
"fine-tuning, they are suitable for advanced and expert users, respectively."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:835
+#: src/slic3r/GUI/ConfigWizard.cpp:1179
msgid "Simple mode"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:836
+#: src/slic3r/GUI/ConfigWizard.cpp:1180
msgid "Advanced mode"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:837
+#: src/slic3r/GUI/ConfigWizard.cpp:1181
msgid "Expert mode"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:871
+#: src/slic3r/GUI/ConfigWizard.cpp:1187
+msgid "The size of the object can be specified in inches"
+msgstr ""
+
+#: src/slic3r/GUI/ConfigWizard.cpp:1188
+msgid "Use inches"
+msgstr ""
+
+#: src/slic3r/GUI/ConfigWizard.cpp:1222
msgid "Other Vendors"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:875
+#: src/slic3r/GUI/ConfigWizard.cpp:1226
#, possible-c-format
msgid "Pick another vendor supported by %s"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:906
+#: src/slic3r/GUI/ConfigWizard.cpp:1257
msgid "Firmware Type"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:906 src/slic3r/GUI/Tab.cpp:1980
+#: src/slic3r/GUI/ConfigWizard.cpp:1257 src/slic3r/GUI/Tab.cpp:2132
msgid "Firmware"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:910
+#: src/slic3r/GUI/ConfigWizard.cpp:1261
msgid "Choose the type of firmware used by your printer."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:944
+#: src/slic3r/GUI/ConfigWizard.cpp:1295
msgid "Bed Shape and Size"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:947
+#: src/slic3r/GUI/ConfigWizard.cpp:1298
msgid "Set the shape of your printer's bed."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:967
+#: src/slic3r/GUI/ConfigWizard.cpp:1318
msgid "Filament and Nozzle Diameters"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:967
+#: src/slic3r/GUI/ConfigWizard.cpp:1318
msgid "Print Diameters"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:981
+#: src/slic3r/GUI/ConfigWizard.cpp:1332
msgid "Enter the diameter of your printer's hot end nozzle."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:984
+#: src/slic3r/GUI/ConfigWizard.cpp:1335
msgid "Nozzle Diameter:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:994
+#: src/slic3r/GUI/ConfigWizard.cpp:1345
msgid "Enter the diameter of your filament."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:995
+#: src/slic3r/GUI/ConfigWizard.cpp:1346
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:998
+#: src/slic3r/GUI/ConfigWizard.cpp:1349
msgid "Filament Diameter:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1032
+#: src/slic3r/GUI/ConfigWizard.cpp:1383
msgid "Extruder and Bed Temperatures"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1032
+#: src/slic3r/GUI/ConfigWizard.cpp:1383
msgid "Temperatures"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1048
+#: src/slic3r/GUI/ConfigWizard.cpp:1399
msgid "Enter the temperature needed for extruding your filament."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1049
+#: src/slic3r/GUI/ConfigWizard.cpp:1400
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:1052
+#: src/slic3r/GUI/ConfigWizard.cpp:1403
msgid "Extrusion Temperature:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1053 src/slic3r/GUI/ConfigWizard.cpp:1067
+#: src/slic3r/GUI/ConfigWizard.cpp:1404 src/slic3r/GUI/ConfigWizard.cpp:1418
+#: src/libslic3r/PrintConfig.cpp:180 src/libslic3r/PrintConfig.cpp:912
+#: src/libslic3r/PrintConfig.cpp:956 src/libslic3r/PrintConfig.cpp:2209
msgid "°C"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1062
+#: src/slic3r/GUI/ConfigWizard.cpp:1413
msgid ""
"Enter the bed temperature needed for getting your filament to stick to your "
"heated bed."
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1063
+#: src/slic3r/GUI/ConfigWizard.cpp:1414
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:1066
+#: src/slic3r/GUI/ConfigWizard.cpp:1417
msgid "Bed Temperature:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1515 src/slic3r/GUI/ConfigWizard.cpp:2097
+#: src/slic3r/GUI/ConfigWizard.cpp:1872 src/slic3r/GUI/ConfigWizard.cpp:2524
msgid "Filaments"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1515 src/slic3r/GUI/ConfigWizard.cpp:2099
+#: src/slic3r/GUI/ConfigWizard.cpp:1872 src/slic3r/GUI/ConfigWizard.cpp:2526
msgid "SLA Materials"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1569
+#: src/slic3r/GUI/ConfigWizard.cpp:1926
msgid "FFF Technology Printers"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1574
+#: src/slic3r/GUI/ConfigWizard.cpp:1931
msgid "SLA Technology Printers"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1810 src/slic3r/GUI/DoubleSlider.cpp:1907
-#: src/slic3r/GUI/DoubleSlider.cpp:1928 src/slic3r/GUI/GUI.cpp:246
+#: src/slic3r/GUI/ConfigWizard.cpp:2237 src/slic3r/GUI/DoubleSlider.cpp:2124
+#: src/slic3r/GUI/DoubleSlider.cpp:2144 src/slic3r/GUI/GUI.cpp:244
msgid "Notice"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1830
+#: src/slic3r/GUI/ConfigWizard.cpp:2257
msgid "The following FFF printer models have no filament selected:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1834
+#: src/slic3r/GUI/ConfigWizard.cpp:2261
msgid "Do you want to select default filaments for these FFF printer models?"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1848
+#: src/slic3r/GUI/ConfigWizard.cpp:2275
msgid "The following SLA printer models have no materials selected:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:1852
+#: src/slic3r/GUI/ConfigWizard.cpp:2279
msgid "Do you want to select default SLA materials for these printer models?"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2060
+#: src/slic3r/GUI/ConfigWizard.cpp:2487
msgid "Select all standard printers"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2063
+#: src/slic3r/GUI/ConfigWizard.cpp:2490
msgid "< &Back"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2064
+#: src/slic3r/GUI/ConfigWizard.cpp:2491
msgid "&Next >"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2065
+#: src/slic3r/GUI/ConfigWizard.cpp:2492
msgid "&Finish"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2066 src/slic3r/GUI/FirmwareDialog.cpp:151
+#: src/slic3r/GUI/ConfigWizard.cpp:2493 src/slic3r/GUI/FirmwareDialog.cpp:151
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:245
#: src/slic3r/GUI/ProgressStatusBar.cpp:26
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:644
msgid "Cancel"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2079
+#: src/slic3r/GUI/ConfigWizard.cpp:2506
msgid "Prusa FFF Technology Printers"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2082
+#: src/slic3r/GUI/ConfigWizard.cpp:2509
msgid "Prusa MSLA Technology Printers"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2097
+#: src/slic3r/GUI/ConfigWizard.cpp:2524
msgid "Filament Profiles Selection"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2097 src/slic3r/GUI/GUI_ObjectList.cpp:3637
+#: src/slic3r/GUI/ConfigWizard.cpp:2524 src/slic3r/GUI/ConfigWizard.cpp:2526
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4016
msgid "Type:"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2099
+#: src/slic3r/GUI/ConfigWizard.cpp:2526
msgid "SLA Material Profiles Selection"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2099
-msgid "Layer height:"
-msgstr ""
-
-#: src/slic3r/GUI/ConfigWizard.cpp:2196
+#: src/slic3r/GUI/ConfigWizard.cpp:2624
msgid "Configuration Assistant"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2197
+#: src/slic3r/GUI/ConfigWizard.cpp:2625
msgid "Configuration &Assistant"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2199
+#: src/slic3r/GUI/ConfigWizard.cpp:2627
msgid "Configuration Wizard"
msgstr ""
-#: src/slic3r/GUI/ConfigWizard.cpp:2200
+#: src/slic3r/GUI/ConfigWizard.cpp:2628
msgid "Configuration &Wizard"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:81
+#: src/slic3r/GUI/DoubleSlider.cpp:110
msgid "Place bearings in slots and resume printing"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:952
+#: src/slic3r/GUI/DoubleSlider.cpp:1064
msgid "One layer mode"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:954
+#: src/slic3r/GUI/DoubleSlider.cpp:1066
msgid "Discard all custom changes"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:957
+#: src/slic3r/GUI/DoubleSlider.cpp:1071 src/slic3r/GUI/DoubleSlider.cpp:1852
+msgid "Jump to move"
+msgstr ""
+
+#: src/slic3r/GUI/DoubleSlider.cpp:1075
#, possible-c-format
msgid "Jump to height %s or Set extruder sequence for the entire print"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:959 src/slic3r/GUI/DoubleSlider.cpp:1531
-#: src/slic3r/GUI/DoubleSlider.cpp:1653
+#: src/slic3r/GUI/DoubleSlider.cpp:1077 src/slic3r/GUI/DoubleSlider.cpp:1721
+#: src/slic3r/GUI/DoubleSlider.cpp:1852 src/slic3r/GUI/DoubleSlider.cpp:1856
msgid "Jump to height"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:962
+#: src/slic3r/GUI/DoubleSlider.cpp:1083
msgid "Edit current color - Right click the colored slider segment"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:972
+#: src/slic3r/GUI/DoubleSlider.cpp:1093
msgid "Print mode"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:986
+#: src/slic3r/GUI/DoubleSlider.cpp:1107
msgid "Add extruder change - Left click"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:988
+#: src/slic3r/GUI/DoubleSlider.cpp:1109
msgid ""
"Add color change - Left click for predefined color or Shift + Left click for "
"custom color selection"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:990
+#: src/slic3r/GUI/DoubleSlider.cpp:1111
msgid "Add color change - Left click"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:991
+#: src/slic3r/GUI/DoubleSlider.cpp:1112
msgid "or press \"+\" key"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:993
+#: src/slic3r/GUI/DoubleSlider.cpp:1114
msgid "Add another code - Ctrl + Left click"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:994
+#: src/slic3r/GUI/DoubleSlider.cpp:1115
msgid "Add another code - Right click"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1000
+#: src/slic3r/GUI/DoubleSlider.cpp:1121
msgid ""
"The sequential print is on.\n"
"It's impossible to apply any custom G-code for objects printing "
@@ -965,203 +1004,227 @@ msgid ""
"This code won't be processed during G-code generation."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1009
+#: src/slic3r/GUI/DoubleSlider.cpp:1130
msgid "Color change (\"%1%\")"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1010
+#: src/slic3r/GUI/DoubleSlider.cpp:1131
msgid "Color change (\"%1%\") for Extruder %2%"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1012
+#: src/slic3r/GUI/DoubleSlider.cpp:1133
msgid "Pause print (\"%1%\")"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1014
+#: src/slic3r/GUI/DoubleSlider.cpp:1135
+msgid "Custom template (\"%1%\")"
+msgstr ""
+
+#: src/slic3r/GUI/DoubleSlider.cpp:1137
msgid "Extruder (tool) is changed to Extruder \"%1%\""
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1021
+#: src/slic3r/GUI/DoubleSlider.cpp:1144
msgid "Note"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1023
+#: src/slic3r/GUI/DoubleSlider.cpp:1146
msgid ""
"G-code associated to this tick mark is in a conflict with print mode.\n"
"Editing it will cause changes of Slider data."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1026
+#: src/slic3r/GUI/DoubleSlider.cpp:1149
msgid ""
"There is a color change for extruder that won't be used till the end of "
"print job.\n"
"This code won't be processed during G-code generation."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1029
+#: src/slic3r/GUI/DoubleSlider.cpp:1152
msgid ""
"There is an extruder change set to the same extruder.\n"
"This code won't be processed during G-code generation."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1032
+#: src/slic3r/GUI/DoubleSlider.cpp:1155
msgid ""
"There is a color change for extruder that has not been used before.\n"
"Check your settings to avoid redundant color changes."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1037
+#: src/slic3r/GUI/DoubleSlider.cpp:1160
msgid "Delete tick mark - Left click or press \"-\" key"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1039
+#: src/slic3r/GUI/DoubleSlider.cpp:1162
msgid "Edit tick mark - Ctrl + Left click"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1040
+#: src/slic3r/GUI/DoubleSlider.cpp:1163
msgid "Edit tick mark - Right click"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1136 src/slic3r/GUI/DoubleSlider.cpp:1172
-#: src/slic3r/GUI/GLCanvas3D.cpp:996 src/slic3r/GUI/GUI_ObjectList.cpp:1718
-#: src/slic3r/GUI/Tab.cpp:2315 src/libslic3r/GCode/PreviewData.cpp:446
+#: src/slic3r/GUI/DoubleSlider.cpp:1263 src/slic3r/GUI/DoubleSlider.cpp:1297
+#: src/slic3r/GUI/GLCanvas3D.cpp:983 src/slic3r/GUI/GUI_ObjectList.cpp:1832
+#: src/slic3r/GUI/Tab.cpp:2489 src/libslic3r/GCode/PreviewData.cpp:450
#, possible-c-format
msgid "Extruder %d"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1137 src/slic3r/GUI/GUI_ObjectList.cpp:1719
+#: src/slic3r/GUI/DoubleSlider.cpp:1264 src/slic3r/GUI/GUI_ObjectList.cpp:1833
msgid "active"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1146
+#: src/slic3r/GUI/DoubleSlider.cpp:1273
msgid "Switch code to Change extruder"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1146 src/slic3r/GUI/GUI_ObjectList.cpp:1685
+#: src/slic3r/GUI/DoubleSlider.cpp:1273 src/slic3r/GUI/GUI_ObjectList.cpp:1800
msgid "Change extruder"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1147
+#: src/slic3r/GUI/DoubleSlider.cpp:1274
msgid "Change extruder (N/A)"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1149
+#: src/slic3r/GUI/DoubleSlider.cpp:1276
msgid "Use another extruder"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1173
+#: src/slic3r/GUI/DoubleSlider.cpp:1298
msgid "used"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1181
+#: src/slic3r/GUI/DoubleSlider.cpp:1306
msgid "Switch code to Color change (%1%) for:"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1182
+#: src/slic3r/GUI/DoubleSlider.cpp:1307
msgid "Add color change (%1%) for:"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1479
+#: src/slic3r/GUI/DoubleSlider.cpp:1665
msgid "Add color change"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1489
+#: src/slic3r/GUI/DoubleSlider.cpp:1675
msgid "Add pause print"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1492
+#: src/slic3r/GUI/DoubleSlider.cpp:1679
+msgid "Add custom template"
+msgstr ""
+
+#: src/slic3r/GUI/DoubleSlider.cpp:1682
msgid "Add custom G-code"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1510
+#: src/slic3r/GUI/DoubleSlider.cpp:1700
msgid "Edit color"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1511
+#: src/slic3r/GUI/DoubleSlider.cpp:1701
msgid "Edit pause print message"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1512
+#: src/slic3r/GUI/DoubleSlider.cpp:1702
msgid "Edit custom G-code"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1518
+#: src/slic3r/GUI/DoubleSlider.cpp:1708
msgid "Delete color change"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1519
+#: src/slic3r/GUI/DoubleSlider.cpp:1709
msgid "Delete tool change"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1520
+#: src/slic3r/GUI/DoubleSlider.cpp:1710
msgid "Delete pause print"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1521
+#: src/slic3r/GUI/DoubleSlider.cpp:1711
msgid "Delete custom G-code"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1534
+#: src/slic3r/GUI/DoubleSlider.cpp:1728
msgid "Set extruder sequence for the entire print"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1620
+#: src/slic3r/GUI/DoubleSlider.cpp:1814
msgid "Enter custom G-code used on current layer"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1621
+#: src/slic3r/GUI/DoubleSlider.cpp:1815
msgid "Custom G-code on current layer (%1% mm)."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1636
+#: src/slic3r/GUI/DoubleSlider.cpp:1830
msgid "Enter short message shown on Printer display when a print is paused"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1637
+#: src/slic3r/GUI/DoubleSlider.cpp:1831
msgid "Message for pause print on current layer (%1% mm)."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1652
+#: src/slic3r/GUI/DoubleSlider.cpp:1851
+msgid "Enter the move you want to jump to"
+msgstr ""
+
+#: src/slic3r/GUI/DoubleSlider.cpp:1851 src/slic3r/GUI/DoubleSlider.cpp:1855
msgid "Enter the height you want to jump to"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1901
+#: src/slic3r/GUI/DoubleSlider.cpp:2118
msgid "The last color change data was saved for a single extruder printing."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1902 src/slic3r/GUI/DoubleSlider.cpp:1918
+#: src/slic3r/GUI/DoubleSlider.cpp:2119 src/slic3r/GUI/DoubleSlider.cpp:2134
msgid "The last color change data was saved for a multi extruder printing."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1904
+#: src/slic3r/GUI/DoubleSlider.cpp:2121
msgid "Your current changes will delete all saved color changes."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1905 src/slic3r/GUI/DoubleSlider.cpp:1926
+#: src/slic3r/GUI/DoubleSlider.cpp:2122 src/slic3r/GUI/DoubleSlider.cpp:2142
msgid "Are you sure you want to continue?"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1919
+#: src/slic3r/GUI/DoubleSlider.cpp:2135
msgid ""
"Select YES if you want to delete all saved tool changes, \n"
"NO if you want all tool changes switch to color changes, \n"
"or CANCEL to leave it unchanged."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1922
+#: src/slic3r/GUI/DoubleSlider.cpp:2138
msgid "Do you want to delete all saved tool changes?"
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1924
+#: src/slic3r/GUI/DoubleSlider.cpp:2140
msgid ""
"The last color change data was saved for a multi extruder printing with tool "
"changes for whole print."
msgstr ""
-#: src/slic3r/GUI/DoubleSlider.cpp:1925
+#: src/slic3r/GUI/DoubleSlider.cpp:2141
msgid "Your current changes will delete all saved extruder (tool) changes."
msgstr ""
+#: src/slic3r/GUI/ExtraRenderers.cpp:297 src/slic3r/GUI/GUI_ObjectList.cpp:496
+#: src/slic3r/GUI/GUI_ObjectList.cpp:508 src/slic3r/GUI/GUI_ObjectList.cpp:1015
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4454
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4464
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4499
+#: src/slic3r/GUI/ObjectDataViewModel.cpp:202
+#: src/slic3r/GUI/ObjectDataViewModel.cpp:259
+#: src/slic3r/GUI/ObjectDataViewModel.cpp:284
+#: src/slic3r/GUI/ObjectDataViewModel.cpp:492
+msgid "default"
+msgstr ""
+
#: src/slic3r/GUI/ExtruderSequenceDialog.cpp:23
msgid "Set extruder sequence"
msgstr ""
@@ -1171,10 +1234,10 @@ msgid "Set extruder change for every"
msgstr ""
#: src/slic3r/GUI/ExtruderSequenceDialog.cpp:52
-#: src/libslic3r/PrintConfig.cpp:362 src/libslic3r/PrintConfig.cpp:994
-#: src/libslic3r/PrintConfig.cpp:1505 src/libslic3r/PrintConfig.cpp:1690
-#: src/libslic3r/PrintConfig.cpp:1757 src/libslic3r/PrintConfig.cpp:1937
-#: src/libslic3r/PrintConfig.cpp:1983
+#: src/libslic3r/PrintConfig.cpp:396 src/libslic3r/PrintConfig.cpp:1038
+#: src/libslic3r/PrintConfig.cpp:1613 src/libslic3r/PrintConfig.cpp:1798
+#: src/libslic3r/PrintConfig.cpp:1865 src/libslic3r/PrintConfig.cpp:2072
+#: src/libslic3r/PrintConfig.cpp:2118
msgid "layers"
msgstr ""
@@ -1190,33 +1253,34 @@ msgstr ""
msgid "Add extruder to sequence"
msgstr ""
-#: src/slic3r/GUI/Field.cpp:136
+#: src/slic3r/GUI/Field.cpp:184
msgid "default value"
msgstr ""
-#: src/slic3r/GUI/Field.cpp:139
+#: src/slic3r/GUI/Field.cpp:187
msgid "parameter name"
msgstr ""
-#: src/slic3r/GUI/Field.cpp:150 src/slic3r/GUI/OptionsGroup.cpp:598
+#: src/slic3r/GUI/Field.cpp:198 src/slic3r/GUI/OptionsGroup.cpp:715
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:874
msgid "N/A"
msgstr ""
-#: src/slic3r/GUI/Field.cpp:175
+#: src/slic3r/GUI/Field.cpp:223
#, possible-c-format
msgid "%s doesn't support percentage"
msgstr ""
-#: src/slic3r/GUI/Field.cpp:195 src/slic3r/GUI/Field.cpp:226
-#: src/slic3r/GUI/Field.cpp:1298 src/slic3r/GUI/GUI_ObjectLayers.cpp:383
+#: src/slic3r/GUI/Field.cpp:243 src/slic3r/GUI/Field.cpp:274
+#: src/slic3r/GUI/Field.cpp:1358 src/slic3r/GUI/GUI_ObjectLayers.cpp:413
msgid "Invalid numeric input."
msgstr ""
-#: src/slic3r/GUI/Field.cpp:204 src/slic3r/GUI/Field.cpp:1310
+#: src/slic3r/GUI/Field.cpp:252 src/slic3r/GUI/Field.cpp:1370
msgid "Input value is out of range"
msgstr ""
-#: src/slic3r/GUI/Field.cpp:240
+#: src/slic3r/GUI/Field.cpp:288
#, possible-c-format
msgid ""
"Do you mean %s%% instead of %s %s?\n"
@@ -1224,7 +1288,7 @@ msgid ""
"or NO if you are sure that %s %s is a correct value."
msgstr ""
-#: src/slic3r/GUI/Field.cpp:243
+#: src/slic3r/GUI/Field.cpp:291
msgid "Parameter validation"
msgstr ""
@@ -1300,8 +1364,9 @@ msgstr ""
msgid "Firmware image:"
msgstr ""
-#: src/slic3r/GUI/FirmwareDialog.cpp:805 src/slic3r/GUI/Tab.cpp:1716
-#: src/slic3r/GUI/Tab.cpp:1778
+#: src/slic3r/GUI/FirmwareDialog.cpp:805
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:271
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:327
msgid "Browse"
msgstr ""
@@ -1334,8 +1399,8 @@ msgid "Advanced: Output log"
msgstr ""
#: src/slic3r/GUI/FirmwareDialog.cpp:852
-#: src/slic3r/GUI/Mouse3DController.cpp:371
-#: src/slic3r/GUI/PrintHostDialogs.cpp:161
+#: src/slic3r/GUI/Mouse3DController.cpp:353
+#: src/slic3r/GUI/PrintHostDialogs.cpp:159
msgid "Close"
msgstr ""
@@ -1353,405 +1418,715 @@ msgstr ""
msgid "Cancelling..."
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:238 src/slic3r/GUI/GLCanvas3D.cpp:4962
+#: src/slic3r/GUI/GCodeViewer.cpp:223
+msgid "Tool position"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:933
+msgid "Generating toolpaths"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:1318
+msgid "Generating vertex buffer"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:1392
+msgid "Generating index buffers"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2071
+msgid "Click to hide"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2071
+msgid "Click to show"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2183
+msgid "up to"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2189
+msgid "above"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2197
+msgid "from"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2197
+msgid "to"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2225 src/slic3r/GUI/GCodeViewer.cpp:2233
+#: src/slic3r/GUI/GUI_Preview.cpp:275 src/slic3r/GUI/GUI_Preview.cpp:787
+#: src/libslic3r/GCode/PreviewData.cpp:350
+msgid "Feature type"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2225 src/slic3r/GUI/GCodeViewer.cpp:2233
+#: src/slic3r/GUI/RammingChart.cpp:76
+msgid "Time"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2233
+msgid "Percentage"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2236 src/libslic3r/GCode/PreviewData.cpp:352
+msgid "Height (mm)"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2237 src/libslic3r/GCode/PreviewData.cpp:354
+msgid "Width (mm)"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2238 src/libslic3r/GCode/PreviewData.cpp:356
+msgid "Speed (mm/s)"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2239 src/libslic3r/GCode/PreviewData.cpp:358
+msgid "Fan Speed (%)"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2240 src/libslic3r/GCode/PreviewData.cpp:360
+msgid "Volumetric flow rate (mm³/s)"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2241 src/slic3r/GUI/GUI_Preview.cpp:281
+#: src/slic3r/GUI/GUI_Preview.cpp:453 src/slic3r/GUI/GUI_Preview.cpp:693
+#: src/slic3r/GUI/GUI_Preview.cpp:786 src/slic3r/GUI/GUI_Preview.cpp:1270
+#: src/libslic3r/GCode/PreviewData.cpp:362
+msgid "Tool"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2242 src/slic3r/GUI/GUI_Preview.cpp:282
+#: src/slic3r/GUI/GUI_Preview.cpp:784 src/libslic3r/GCode/PreviewData.cpp:364
+msgid "Color Print"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2277 src/slic3r/GUI/GCodeViewer.cpp:2313
+#: src/slic3r/GUI/GCodeViewer.cpp:2318 src/slic3r/GUI/GUI_ObjectList.cpp:296
+#: src/slic3r/GUI/Tab.cpp:1780 src/slic3r/GUI/wxExtensions.cpp:515
+#: src/libslic3r/PrintConfig.cpp:523
+msgid "Extruder"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2289
+msgid "Default color"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2313
+msgid "default color"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2410 src/slic3r/GUI/GCodeViewer.cpp:2438
+msgid "Color change"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2436 src/slic3r/GUI/GCodeViewer.cpp:2451
+msgid "Print"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2437 src/slic3r/GUI/GCodeViewer.cpp:2460
+#: src/slic3r/GUI/Plater.cpp:1199
+msgid "Pause"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2442 src/slic3r/GUI/GCodeViewer.cpp:2445
+msgid "Event"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2442 src/slic3r/GUI/GCodeViewer.cpp:2445
+msgid "Remaining time"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2445
+msgid "Duration"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2489 src/slic3r/GUI/GUI_Preview.cpp:335
+#: src/slic3r/GUI/GUI_Preview.cpp:1471 src/libslic3r/PrintConfig.cpp:2295
+msgid "Travel"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2492
+msgid "Movement"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2493
+msgid "Extrusion"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2494 src/slic3r/GUI/Tab.cpp:1670
+#: src/slic3r/GUI/Tab.cpp:2539
+msgid "Retraction"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2525 src/slic3r/GUI/GUI_Preview.cpp:320
+#: src/slic3r/GUI/GUI_Preview.cpp:333
+msgid "Options"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2528 src/slic3r/GUI/GUI_Preview.cpp:336
+#: src/slic3r/GUI/GUI_Preview.cpp:1472
+msgid "Retractions"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2529 src/slic3r/GUI/GUI_Preview.cpp:337
+#: src/slic3r/GUI/GUI_Preview.cpp:1473
+msgid "Deretractions"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2530 src/slic3r/GUI/GUI_Preview.cpp:1474
+msgid "Tool changes"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2531 src/slic3r/GUI/GUI_Preview.cpp:1475
+msgid "Color changes"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2532 src/slic3r/GUI/GUI_Preview.cpp:1476
+msgid "Pause prints"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2533 src/slic3r/GUI/GUI_Preview.cpp:1477
+msgid "Custom GCodes"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2552 src/slic3r/GUI/GCodeViewer.cpp:2557
+#: src/slic3r/GUI/Plater.cpp:246 src/slic3r/GUI/Plater.cpp:1125
+#: src/slic3r/GUI/Plater.cpp:1175 src/slic3r/GUI/Plater.cpp:1196
+msgid "Estimated printing time"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2552
+msgid "Normal mode"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2557
+msgid "Stealth mode"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2586
+msgid "Show stealth mode"
+msgstr ""
+
+#: src/slic3r/GUI/GCodeViewer.cpp:2591
+msgid "Show normal mode"
+msgstr ""
+
+#: src/slic3r/GUI/GLCanvas3D.cpp:231 src/slic3r/GUI/GLCanvas3D.cpp:4978
msgid "Variable layer height"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:241
+#: src/slic3r/GUI/GLCanvas3D.cpp:233
msgid "Left mouse button:"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:244
+#: src/slic3r/GUI/GLCanvas3D.cpp:235
msgid "Add detail"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:247
+#: src/slic3r/GUI/GLCanvas3D.cpp:237
msgid "Right mouse button:"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:250
+#: src/slic3r/GUI/GLCanvas3D.cpp:239
msgid "Remove detail"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:253
+#: src/slic3r/GUI/GLCanvas3D.cpp:241
msgid "Shift + Left mouse button:"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:256
+#: src/slic3r/GUI/GLCanvas3D.cpp:243
msgid "Reset to base"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:259
+#: src/slic3r/GUI/GLCanvas3D.cpp:245
msgid "Shift + Right mouse button:"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:262
+#: src/slic3r/GUI/GLCanvas3D.cpp:247
msgid "Smoothing"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:265
+#: src/slic3r/GUI/GLCanvas3D.cpp:249
msgid "Mouse wheel:"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:268
+#: src/slic3r/GUI/GLCanvas3D.cpp:251
msgid "Increase/decrease edit area"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:271
+#: src/slic3r/GUI/GLCanvas3D.cpp:254
msgid "Adaptive"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:277
+#: src/slic3r/GUI/GLCanvas3D.cpp:260
msgid "Quality / Speed"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:281
+#: src/slic3r/GUI/GLCanvas3D.cpp:263
msgid "Higher print quality versus higher print speed."
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:292
+#: src/slic3r/GUI/GLCanvas3D.cpp:274
msgid "Smooth"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:298 src/libslic3r/PrintConfig.cpp:511
+#: src/slic3r/GUI/GLCanvas3D.cpp:280 src/libslic3r/PrintConfig.cpp:547
msgid "Radius"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:308
+#: src/slic3r/GUI/GLCanvas3D.cpp:290
msgid "Keep min"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:317
+#: src/slic3r/GUI/GLCanvas3D.cpp:299
msgid "Reset"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:607
+#: src/slic3r/GUI/GLCanvas3D.cpp:565
msgid "Variable layer height - Manual edit"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:693
-msgid "An object outside the print area was detected"
+#: src/slic3r/GUI/GLCanvas3D.cpp:633
+msgid "An object outside the print area was detected."
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:694
-msgid "A toolpath outside the print area was detected"
+#: src/slic3r/GUI/GLCanvas3D.cpp:634
+msgid "A toolpath outside the print area was detected."
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:695
-msgid "SLA supports outside the print area were detected"
+#: src/slic3r/GUI/GLCanvas3D.cpp:635
+msgid "SLA supports outside the print area were detected."
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:696
-msgid "Some objects are not visible"
+#: src/slic3r/GUI/GLCanvas3D.cpp:636
+msgid "Some objects are not visible."
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:698
+#: src/slic3r/GUI/GLCanvas3D.cpp:638
msgid ""
-"An object outside the print area was detected\n"
-"Resolve the current problem to continue slicing"
+"An object outside the print area was detected.\n"
+"Resolve the current problem to continue slicing."
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:923 src/slic3r/GUI/GLCanvas3D.cpp:952
+#: src/slic3r/GUI/GLCanvas3D.cpp:910 src/slic3r/GUI/GLCanvas3D.cpp:939
msgid "Default print color"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:953 src/slic3r/GUI/GLCanvas3D.cpp:962
-#: src/slic3r/GUI/GLCanvas3D.cpp:1001
+#: src/slic3r/GUI/GLCanvas3D.cpp:940 src/slic3r/GUI/GLCanvas3D.cpp:949
+#: src/slic3r/GUI/GLCanvas3D.cpp:988
msgid "Pause print or custom G-code"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:974
+#: src/slic3r/GUI/GLCanvas3D.cpp:961
#, possible-c-format
msgid "up to %.2f mm"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:978
+#: src/slic3r/GUI/GLCanvas3D.cpp:965
#, possible-c-format
msgid "above %.2f mm"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:982
+#: src/slic3r/GUI/GLCanvas3D.cpp:969
#, possible-c-format
msgid "%.2f - %.2f mm"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:1014
+#: src/slic3r/GUI/GLCanvas3D.cpp:1001
#, possible-c-format
msgid "Color change for Extruder %d at %.2f mm"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:1332
+#: src/slic3r/GUI/GLCanvas3D.cpp:1312
msgid "Seq."
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:1439
+#: src/slic3r/GUI/GLCanvas3D.cpp:1418
msgid "canvas_tooltip"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:1466
-msgid "Slope visualization"
-msgstr ""
-
-#: src/slic3r/GUI/GLCanvas3D.cpp:1468
-msgid "Facets' normal angle range (degrees)"
-msgstr ""
-
-#: src/slic3r/GUI/GLCanvas3D.cpp:1495 src/slic3r/GUI/GUI_ObjectList.cpp:1718
-#: src/libslic3r/PrintConfig.cpp:335
-msgid "Default"
-msgstr ""
-
-#: src/slic3r/GUI/GLCanvas3D.cpp:1880
+#: src/slic3r/GUI/GLCanvas3D.cpp:1778
msgid "Variable layer height - Reset"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:1888
+#: src/slic3r/GUI/GLCanvas3D.cpp:1786
msgid "Variable layer height - Adaptive"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:1896
+#: src/slic3r/GUI/GLCanvas3D.cpp:1794
msgid "Variable layer height - Smooth all"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:2332
+#: src/slic3r/GUI/GLCanvas3D.cpp:2226
msgid "Mirror Object"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:3224
-#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:519
-#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:746
+#: src/slic3r/GUI/GLCanvas3D.cpp:3165
+#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:520
msgid "Gizmo-Move"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:3308
-#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:521
-#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:748
+#: src/slic3r/GUI/GLCanvas3D.cpp:3249
+#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:522
msgid "Gizmo-Rotate"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:3880
+#: src/slic3r/GUI/GLCanvas3D.cpp:3810
msgid "Move Object"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4425
+#: src/slic3r/GUI/GLCanvas3D.cpp:4302 src/slic3r/GUI/GLCanvas3D.cpp:4939
+msgid "Switch to Settings"
+msgstr ""
+
+#: src/slic3r/GUI/GLCanvas3D.cpp:4303 src/slic3r/GUI/GLCanvas3D.cpp:4939
+msgid "Print Settings Tab"
+msgstr ""
+
+#: src/slic3r/GUI/GLCanvas3D.cpp:4304 src/slic3r/GUI/GLCanvas3D.cpp:4940
+msgid "Filament Settings Tab"
+msgstr ""
+
+#: src/slic3r/GUI/GLCanvas3D.cpp:4304 src/slic3r/GUI/GLCanvas3D.cpp:4940
+msgid "Material Settings Tab"
+msgstr ""
+
+#: src/slic3r/GUI/GLCanvas3D.cpp:4305 src/slic3r/GUI/GLCanvas3D.cpp:4941
+msgid "Printer Settings Tab"
+msgstr ""
+
+#: src/slic3r/GUI/GLCanvas3D.cpp:4361
msgid "Undo History"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4425
+#: src/slic3r/GUI/GLCanvas3D.cpp:4361
msgid "Redo History"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4446
+#: src/slic3r/GUI/GLCanvas3D.cpp:4382
#, possible-c-format
msgid "Undo %1$d Action"
msgid_plural "Undo %1$d Actions"
msgstr[0] ""
msgstr[1] ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4446
+#: src/slic3r/GUI/GLCanvas3D.cpp:4382
#, possible-c-format
msgid "Redo %1$d Action"
msgid_plural "Redo %1$d Actions"
msgstr[0] ""
msgstr[1] ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4856
+#: src/slic3r/GUI/GLCanvas3D.cpp:4402 src/slic3r/GUI/GLCanvas3D.cpp:4957
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:130 src/slic3r/GUI/Search.cpp:426
+msgid "Search"
+msgstr ""
+
+#: src/slic3r/GUI/GLCanvas3D.cpp:4416 src/slic3r/GUI/GLCanvas3D.cpp:4424
+#: src/slic3r/GUI/Search.cpp:433
+msgid "Type here to search"
+msgstr ""
+
+#: src/slic3r/GUI/GLCanvas3D.cpp:4833
msgid "Add..."
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4864 src/slic3r/GUI/GUI_ObjectList.cpp:1732
-#: src/slic3r/GUI/Plater.cpp:3935 src/slic3r/GUI/Plater.cpp:3957
-#: src/slic3r/GUI/Tab.cpp:3155
+#: src/slic3r/GUI/GLCanvas3D.cpp:4841 src/slic3r/GUI/GUI_ObjectList.cpp:1846
+#: src/slic3r/GUI/Plater.cpp:3849 src/slic3r/GUI/Plater.cpp:3871
+#: src/slic3r/GUI/Tab.cpp:3423
msgid "Delete"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4873 src/slic3r/GUI/KBShortcutsDialog.cpp:131
-#: src/slic3r/GUI/Plater.cpp:4705
+#: src/slic3r/GUI/GLCanvas3D.cpp:4850 src/slic3r/GUI/KBShortcutsDialog.cpp:124
+#: src/slic3r/GUI/Plater.cpp:4774
msgid "Delete all"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4882 src/slic3r/GUI/KBShortcutsDialog.cpp:160
-#: src/slic3r/GUI/Plater.cpp:2815
+#: src/slic3r/GUI/GLCanvas3D.cpp:4859 src/slic3r/GUI/KBShortcutsDialog.cpp:151
+#: src/slic3r/GUI/Plater.cpp:1549
msgid "Arrange"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4882 src/slic3r/GUI/KBShortcutsDialog.cpp:161
+#: src/slic3r/GUI/GLCanvas3D.cpp:4859 src/slic3r/GUI/KBShortcutsDialog.cpp:152
msgid "Arrange selection"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4894
+#: src/slic3r/GUI/GLCanvas3D.cpp:4871
msgid "Copy"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4903
+#: src/slic3r/GUI/GLCanvas3D.cpp:4880
msgid "Paste"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4915 src/slic3r/GUI/Plater.cpp:3794
-#: src/slic3r/GUI/Plater.cpp:3806 src/slic3r/GUI/Plater.cpp:3944
+#: src/slic3r/GUI/GLCanvas3D.cpp:4892 src/slic3r/GUI/Plater.cpp:3708
+#: src/slic3r/GUI/Plater.cpp:3720 src/slic3r/GUI/Plater.cpp:3858
msgid "Add instance"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4926 src/slic3r/GUI/Plater.cpp:3946
+#: src/slic3r/GUI/GLCanvas3D.cpp:4903 src/slic3r/GUI/Plater.cpp:3860
msgid "Remove instance"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4939
+#: src/slic3r/GUI/GLCanvas3D.cpp:4916
msgid "Split to objects"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:4949 src/slic3r/GUI/GUI_ObjectList.cpp:1501
+#: src/slic3r/GUI/GLCanvas3D.cpp:4926 src/slic3r/GUI/GUI_ObjectList.cpp:1618
msgid "Split to parts"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:5013 src/slic3r/GUI/KBShortcutsDialog.cpp:132
-#: src/slic3r/GUI/MainFrame.cpp:717
+#: src/slic3r/GUI/GLCanvas3D.cpp:5028 src/slic3r/GUI/KBShortcutsDialog.cpp:125
+#: src/slic3r/GUI/MainFrame.cpp:1187
msgid "Undo"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:5013 src/slic3r/GUI/GLCanvas3D.cpp:5052
+#: src/slic3r/GUI/GLCanvas3D.cpp:5028 src/slic3r/GUI/GLCanvas3D.cpp:5067
msgid "Click right mouse button to open/close History"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:5036
+#: src/slic3r/GUI/GLCanvas3D.cpp:5051
msgid "Next Undo action: %1%"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:5052 src/slic3r/GUI/KBShortcutsDialog.cpp:133
-#: src/slic3r/GUI/MainFrame.cpp:720
+#: src/slic3r/GUI/GLCanvas3D.cpp:5067 src/slic3r/GUI/KBShortcutsDialog.cpp:126
+#: src/slic3r/GUI/MainFrame.cpp:1190
msgid "Redo"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:5074
+#: src/slic3r/GUI/GLCanvas3D.cpp:5089
msgid "Next Redo action: %1%"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:7064
+#: src/slic3r/GUI/GLCanvas3D.cpp:7193
msgid "Selection-Add from rectangle"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3D.cpp:7083
+#: src/slic3r/GUI/GLCanvas3D.cpp:7212
msgid "Selection-Remove from rectangle"
msgstr ""
-#: src/slic3r/GUI/GLCanvas3DManager.cpp:365
-#, 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:368
-msgid "You may need to update your graphics card driver."
-msgstr ""
-
-#: src/slic3r/GUI/GLCanvas3DManager.cpp:371
-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 ""
-
-#: src/slic3r/GUI/GLCanvas3DManager.cpp:373
-msgid "Unsupported OpenGL version"
-msgstr ""
-
-#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:47
-#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:145 src/libslic3r/PrintConfig.cpp:3424
+#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:48
+#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:146 src/libslic3r/PrintConfig.cpp:3601
msgid "Cut"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:169
+#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:170
msgid "Keep upper part"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:170
+#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:171
msgid "Keep lower part"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:171
+#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:172
msgid "Rotate lower part upwards"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:176
+#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:177
msgid "Perform cut"
msgstr ""
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:33
+msgid "FDM Support Editing"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:42
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:49
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:25
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:57
+msgid "Clipping of view"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:43
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:50
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:26
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:58
+msgid "Reset direction"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:44
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:27
+msgid "Cursor size"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:45
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:28
+msgid "Cursor type"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:46
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:29
+msgid "Left mouse button"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:47
+msgid "Enforce supports"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:48
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:31
+msgid "Right mouse button"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:49
+#: src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:373
+msgid "Block supports"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:50
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:33
+msgid "Shift + Left mouse button"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:51
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:34
+#: src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:368
+#: src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:378
+msgid "Remove selection"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:52
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:35
+msgid "Remove all selection"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:53
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:36
+msgid "Circle"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:54
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:37
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1563
+msgid "Sphere"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:136
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:118
+msgid "Reset selection"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:160
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:141
+msgid "Alt + Mouse wheel"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:178
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:159
+msgid "Paints all facets inside, regardless of their orientation."
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:192
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:173
+msgid "Ignores facets facing away from the camera."
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:225
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:203
+msgid "Ctrl + Mouse wheel"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:233
+msgid "Autoset custom supports"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:235
+msgid "Threshold:"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:235
+msgid "deg"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:239
+msgid "Enforce"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:242
+msgid "Block"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:292
+msgid "Block supports by angle"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:293
+msgid "Add supports by angle"
+msgstr ""
+
#: src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp:41
msgid "Place on face"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:38
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:40
msgid "Hollow this object"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:39
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:41
msgid "Preview hollowed and drilled model"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:40
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:42
msgid "Offset"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:41
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:43
msgid "Quality"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:42
-#: src/libslic3r/PrintConfig.cpp:2951
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:44
+#: src/libslic3r/PrintConfig.cpp:3098
msgid "Closing distance"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:43
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:45
msgid "Hole diameter"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:44
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:46
msgid "Hole depth"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:45
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:47
msgid "Remove selected holes"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:46
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:48
msgid "Remove all holes"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:47
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:56
-msgid "Clipping of view"
-msgstr ""
-
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:48
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:57
-msgid "Reset direction"
-msgstr ""
-
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:49
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:51
msgid "Show supports"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:307
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:308
msgid "Add drainage hole"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:428
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:424
msgid "Delete drainage hole"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:628
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:624
msgid "Hollowing parameter change"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:699
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:693
msgid "Change drainage hole diameter"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:791
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:785
msgid "Hollow and drill"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:846
+#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:835
msgid "Move drainage hole"
msgstr ""
@@ -1759,211 +2134,284 @@ msgstr ""
msgid "Move"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:449
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:480
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:499
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:517
-#: src/libslic3r/PrintConfig.cpp:3473
+#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:210
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:224
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:506
+#: src/slic3r/GUI/Mouse3DController.cpp:288
+#: src/slic3r/GUI/Mouse3DController.cpp:309
+msgid "Rotation"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:220 src/slic3r/GUI/Plater.cpp:3961
+msgid "Optimize orientation"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:221
+#: src/libslic3r/PrintConfig.cpp:3089
+msgid "Accuracy"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:233
+msgid "Least supports"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:234
+msgid "Suface quality"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:513
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:527
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:546
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:562
+#: src/libslic3r/PrintConfig.cpp:3650
msgid "Rotate"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:79
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:230
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:500
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:518
-#: src/libslic3r/PrintConfig.cpp:3488
+#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:78
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:238
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:547
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:563
+#: src/libslic3r/PrintConfig.cpp:3665
msgid "Scale"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:46
-msgid "Head diameter"
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:30
+#: src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:381
+msgid "Enforce seam"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:32
+#: src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:383
+msgid "Block seam"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:46
+msgid "Seam Editing"
msgstr ""
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:47
-msgid "Lock supports under new islands"
+msgid "Head diameter"
msgstr ""
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:48
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1216
-msgid "Remove selected points"
+msgid "Lock supports under new islands"
msgstr ""
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:49
-msgid "Remove all points"
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1218
+msgid "Remove selected points"
msgstr ""
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:50
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219
-msgid "Apply changes"
+msgid "Remove all points"
msgstr ""
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:51
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1220
-msgid "Discard changes"
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1221
+msgid "Apply changes"
msgstr ""
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:52
-msgid "Minimal points distance"
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1222
+msgid "Discard changes"
msgstr ""
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:53
-#: src/libslic3r/PrintConfig.cpp:2781
-msgid "Support points density"
+msgid "Minimal points distance"
msgstr ""
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:54
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1222
-msgid "Auto-generate points"
+#: src/libslic3r/PrintConfig.cpp:2928
+msgid "Support points density"
msgstr ""
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:55
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1224
+msgid "Auto-generate points"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:56
msgid "Manual editing"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:373
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:374
msgid "Add support point"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:513
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:514
msgid "Delete support point"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:693
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:694
msgid "Change point head diameter"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:761
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:762
msgid "Support parameter change"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:868
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:869
msgid "SLA Support Points"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:893
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:897
msgid "SLA gizmo turned on"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:909
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:911
msgid "Do you want to save your manually edited support points?"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:910
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:912
msgid "Save changes?"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:922
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:924
msgid "SLA gizmo turned off"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:953
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:955
msgid "Move support point"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1046
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1048
msgid "Support points edit"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1125
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1127
msgid "Autogeneration will erase all manually edited points."
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1126
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1128
msgid "Are you sure you want to do it?"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1127 src/slic3r/GUI/GUI.cpp:258
-#: src/slic3r/GUI/Tab.cpp:3085 src/slic3r/GUI/WipeTowerDialog.cpp:45
-#: src/slic3r/GUI/WipeTowerDialog.cpp:366
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1129 src/slic3r/GUI/GUI.cpp:256
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:478
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:502
+#: src/slic3r/GUI/WipeTowerDialog.cpp:45 src/slic3r/GUI/WipeTowerDialog.cpp:366
msgid "Warning"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1132
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1134
msgid "Autogenerate support points"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1179
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1181
msgid "SLA gizmo keyboard shortcuts"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1190
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1192
msgid "Note: some shortcuts work in (non)editing mode only."
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1208
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1211
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1212
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1210
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1213
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1214
msgid "Left click"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1208
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1210
msgid "Add point"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1209
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1211
msgid "Right click"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1209
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1211
msgid "Remove point"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1210
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1213
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1214
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1212
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1215
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1216
msgid "Drag"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1210
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1212
msgid "Move point"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1211
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1213
msgid "Add point to selection"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1212
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1214
msgid "Remove point from selection"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1213
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1215
msgid "Select by rectangle"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1214
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1216
msgid "Deselect by rectangle"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1215
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1217
msgid "Select all points"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1217
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219
msgid "Mouse wheel"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1217
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219
msgid "Move clipping plane"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1218
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1220
msgid "Reset clipping plane"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1221
+#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1223
msgid "Switch to editing mode"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:520
-#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:747
+#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:521
msgid "Gizmo-Scale"
msgstr ""
-#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:662
+#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:639
msgid "Gizmo-Place on Face"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:234
+#: src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:39
+msgid "Supports gizmo turned on"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:40
+msgid "Seam gizmo turned on"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:47
+msgid "Seam gizmo turned off"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:48
+msgid "Supports gizmo turned off"
+msgstr ""
+
+#: src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp:371
+msgid "Add supports"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:243
+msgid "is based on Slic3r by Alessandro Ranellucci and the RepRap community."
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:245
+msgid ""
+"Contributions by Vojtech Bubnik, Enrico Turri, Oleksandra Iushchenko, Tamas "
+"Meszaros, Lukas Matena, Vojtech Kral, David Kocik and numerous others."
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:246
+msgid "Artwork model by Nora Al-Badri and Jan Nikolai Nelles"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:528
#, possible-c-format
msgid ""
"%s has encountered an error. It was likely caused by running out of memory. "
@@ -1973,228 +2421,284 @@ msgid ""
"The application will now terminate."
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:237
+#: src/slic3r/GUI/GUI_App.cpp:531
msgid "Fatal error"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:554
-msgid "Changing of an application language"
+#: src/slic3r/GUI/GUI_App.cpp:655 src/slic3r/GUI/GUI_App.cpp:670
+msgid ""
+"Error parsing PrusaSlicer config file, it is probably corrupted. Try to "
+"manually delete the file to recover from the error. Your user profiles will "
+"not be affected."
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:557 src/slic3r/GUI/GUI_App.cpp:565
+#: src/slic3r/GUI/GUI_App.cpp:661
+msgid ""
+"Error parsing PrusaGCodeViewer config file, it is probably corrupted. Try to "
+"manually delete the file to recover from the error."
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:718
+#, possible-c-format
+msgid ""
+"%s\n"
+"Do you want to continue?"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:720 src/slic3r/GUI/UnsavedChangesDialog.cpp:653
+msgid "Remember my choice"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:759
+msgid "Loading configuration..."
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:825
+msgid "Creating settings tabs..."
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:1078
+msgid ""
+"You have the following presets with saved options for \"Print Host upload\""
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:1082
+msgid ""
+"But from this version of PrusaSlicer we don't show/use this information in "
+"Printer Settings.\n"
+"Now, this information will be exposed in physical printers settings."
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:1084
+msgid ""
+"By default new Printer devices will be named as \"Printer N\" during its "
+"creation.\n"
+"Note: This name can be changed later from the physical printers settings"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:1087 src/slic3r/GUI/Tab.cpp:3435
+msgid "Information"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:1102 src/slic3r/GUI/GUI_App.cpp:1115
msgid "Recreating"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:570
+#: src/slic3r/GUI/GUI_App.cpp:1120
msgid "Loading of current presets"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:575
+#: src/slic3r/GUI/GUI_App.cpp:1125
msgid "Loading of a mode view"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:654
+#: src/slic3r/GUI/GUI_App.cpp:1208
msgid "Choose one file (3MF/AMF):"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:672
+#: src/slic3r/GUI/GUI_App.cpp:1220
msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:733
+#: src/slic3r/GUI/GUI_App.cpp:1233
+msgid "Choose one file (GCODE/.GCO/.G/.ngc/NGC):"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:1245
+msgid "Changing of an application language"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:1295
msgid "Select the language"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:733
+#: src/slic3r/GUI/GUI_App.cpp:1295
msgid "Language"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:911
+#: src/slic3r/GUI/GUI_App.cpp:1425
+msgid "modified"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:1474
#, possible-c-format
msgid "Run %s"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:914
+#: src/slic3r/GUI/GUI_App.cpp:1480
msgid "&Configuration Snapshots"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:914
+#: src/slic3r/GUI/GUI_App.cpp:1480
msgid "Inspect / activate configuration snapshots"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:915
+#: src/slic3r/GUI/GUI_App.cpp:1481
msgid "Take Configuration &Snapshot"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:915
+#: src/slic3r/GUI/GUI_App.cpp:1481
msgid "Capture a configuration snapshot"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:916
+#: src/slic3r/GUI/GUI_App.cpp:1482
msgid "Check for updates"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:916
+#: src/slic3r/GUI/GUI_App.cpp:1482
msgid "Check for configuration updates"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:918
+#: src/slic3r/GUI/GUI_App.cpp:1487
msgid "&Preferences"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:924
+#: src/slic3r/GUI/GUI_App.cpp:1493
msgid "Application preferences"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:927 src/slic3r/GUI/wxExtensions.cpp:756
+#: src/slic3r/GUI/GUI_App.cpp:1504 src/slic3r/GUI/wxExtensions.cpp:673
msgid "Simple"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:927
+#: src/slic3r/GUI/GUI_App.cpp:1504
msgid "Simple View Mode"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:929 src/slic3r/GUI/wxExtensions.cpp:758
+#: src/slic3r/GUI/GUI_App.cpp:1506 src/slic3r/GUI/wxExtensions.cpp:675
msgctxt "Mode"
msgid "Advanced"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:929
+#: src/slic3r/GUI/GUI_App.cpp:1506
msgid "Advanced View Mode"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:930 src/slic3r/GUI/wxExtensions.cpp:759
+#: src/slic3r/GUI/GUI_App.cpp:1507 src/slic3r/GUI/wxExtensions.cpp:676
msgid "Expert"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:930
+#: src/slic3r/GUI/GUI_App.cpp:1507
msgid "Expert View Mode"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:935
+#: src/slic3r/GUI/GUI_App.cpp:1512
msgid "Mode"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:935
+#: src/slic3r/GUI/GUI_App.cpp:1512
#, possible-c-format
msgid "%s View Mode"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:937
+#: src/slic3r/GUI/GUI_App.cpp:1517
msgid "&Language"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:939
+#: src/slic3r/GUI/GUI_App.cpp:1522
msgid "Flash printer &firmware"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:939
+#: src/slic3r/GUI/GUI_App.cpp:1522
msgid "Upload a firmware image into an Arduino based printer"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:954
+#: src/slic3r/GUI/GUI_App.cpp:1540
msgid "Taking configuration snapshot"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:954
+#: src/slic3r/GUI/GUI_App.cpp:1540
msgid "Snapshot name"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:1001
+#: src/slic3r/GUI/GUI_App.cpp:1605 src/slic3r/GUI/GUI_App.cpp:1614
+msgid "Language selection"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_App.cpp:1608
msgid ""
"Switching the language will trigger application restart.\n"
"You will lose content of the plater."
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:1003
+#: src/slic3r/GUI/GUI_App.cpp:1610
msgid "Do you want to proceed?"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:1004
-msgid "Language selection"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_App.cpp:1028
+#: src/slic3r/GUI/GUI_App.cpp:1645
msgid "&Configuration"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:1052
-msgid "The presets on the following tabs were modified"
+#: src/slic3r/GUI/GUI_App.cpp:1676
+msgid "The preset(s) modifications are successfully saved"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:1052 src/slic3r/GUI/Tab.cpp:2945
-msgid "Discard changes and continue anyway?"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_App.cpp:1055
-msgid "Unsaved Presets"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_App.cpp:1204 src/slic3r/GUI/Tab.cpp:2957
+#: src/slic3r/GUI/GUI_App.cpp:1876 src/slic3r/GUI/Tab.cpp:3187
msgid "It's impossible to print multi-part object(s) with SLA technology."
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:1205
+#: src/slic3r/GUI/GUI_App.cpp:1877
msgid "Please check and fix your object list."
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:1206 src/slic3r/GUI/Plater.cpp:2377
-#: src/slic3r/GUI/Tab.cpp:2959
+#: src/slic3r/GUI/GUI_App.cpp:1878 src/slic3r/GUI/Jobs/SLAImportJob.cpp:210
+#: src/slic3r/GUI/Plater.cpp:2256 src/slic3r/GUI/Tab.cpp:3189
msgid "Attention!"
msgstr ""
-#: src/slic3r/GUI/GUI_App.cpp:1223
+#: src/slic3r/GUI/GUI_App.cpp:1895
msgid "Select a gcode file:"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27
+#: src/slic3r/GUI/GUI_ObjectLayers.cpp:29
msgid "Start at height"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27
+#: src/slic3r/GUI/GUI_ObjectLayers.cpp:29
msgid "Stop at height"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectLayers.cpp:158
+#: src/slic3r/GUI/GUI_ObjectLayers.cpp:161
msgid "Remove layer range"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectLayers.cpp:162
+#: src/slic3r/GUI/GUI_ObjectLayers.cpp:165
msgid "Add layer range"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:34 src/slic3r/GUI/GUI_ObjectList.cpp:95
-#: src/slic3r/GUI/GUI_ObjectList.cpp:617 src/libslic3r/PrintConfig.cpp:72
-#: src/libslic3r/PrintConfig.cpp:175 src/libslic3r/PrintConfig.cpp:184
-#: src/libslic3r/PrintConfig.cpp:408 src/libslic3r/PrintConfig.cpp:470
-#: src/libslic3r/PrintConfig.cpp:478 src/libslic3r/PrintConfig.cpp:890
-#: src/libslic3r/PrintConfig.cpp:1075 src/libslic3r/PrintConfig.cpp:1374
-#: src/libslic3r/PrintConfig.cpp:1441 src/libslic3r/PrintConfig.cpp:1622
-#: src/libslic3r/PrintConfig.cpp:2081 src/libslic3r/PrintConfig.cpp:2140
-#: src/libslic3r/PrintConfig.cpp:2149
+#: src/slic3r/GUI/GUI_ObjectList.cpp:34 src/slic3r/GUI/GUI_ObjectList.cpp:92
+#: src/slic3r/GUI/GUI_ObjectList.cpp:651 src/libslic3r/PrintConfig.cpp:72
+#: src/libslic3r/PrintConfig.cpp:209 src/libslic3r/PrintConfig.cpp:218
+#: src/libslic3r/PrintConfig.cpp:442 src/libslic3r/PrintConfig.cpp:506
+#: src/libslic3r/PrintConfig.cpp:514 src/libslic3r/PrintConfig.cpp:932
+#: src/libslic3r/PrintConfig.cpp:1119 src/libslic3r/PrintConfig.cpp:1482
+#: src/libslic3r/PrintConfig.cpp:1549 src/libslic3r/PrintConfig.cpp:1730
+#: src/libslic3r/PrintConfig.cpp:2217 src/libslic3r/PrintConfig.cpp:2276
+#: src/libslic3r/PrintConfig.cpp:2285
msgid "Layers and Perimeters"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:36 src/slic3r/GUI/GUI_ObjectList.cpp:97
-#: src/slic3r/GUI/GUI_ObjectList.cpp:619 src/slic3r/GUI/GUI_Preview.cpp:305
-#: src/slic3r/GUI/Tab.cpp:1188 src/slic3r/GUI/Tab.cpp:1189
-#: src/libslic3r/ExtrusionEntity.cpp:319 src/libslic3r/PrintConfig.cpp:370
-#: src/libslic3r/PrintConfig.cpp:1502 src/libslic3r/PrintConfig.cpp:1873
-#: src/libslic3r/PrintConfig.cpp:1879 src/libslic3r/PrintConfig.cpp:1887
-#: src/libslic3r/PrintConfig.cpp:1899 src/libslic3r/PrintConfig.cpp:1909
-#: src/libslic3r/PrintConfig.cpp:1917 src/libslic3r/PrintConfig.cpp:1932
-#: src/libslic3r/PrintConfig.cpp:1953 src/libslic3r/PrintConfig.cpp:1965
-#: src/libslic3r/PrintConfig.cpp:1981 src/libslic3r/PrintConfig.cpp:1990
-#: src/libslic3r/PrintConfig.cpp:1999 src/libslic3r/PrintConfig.cpp:2010
-#: src/libslic3r/PrintConfig.cpp:2024 src/libslic3r/PrintConfig.cpp:2032
-#: src/libslic3r/PrintConfig.cpp:2033 src/libslic3r/PrintConfig.cpp:2042
-#: src/libslic3r/PrintConfig.cpp:2050 src/libslic3r/PrintConfig.cpp:2064
+#: src/slic3r/GUI/GUI_ObjectList.cpp:36 src/slic3r/GUI/GUI_ObjectList.cpp:95
+#: src/slic3r/GUI/GUI_ObjectList.cpp:654 src/slic3r/GUI/GUI_Preview.cpp:311
+#: src/slic3r/GUI/Tab.cpp:1449 src/slic3r/GUI/Tab.cpp:1450
+#: src/libslic3r/ExtrusionEntity.cpp:324 src/libslic3r/ExtrusionEntity.cpp:356
+#: src/libslic3r/PrintConfig.cpp:404 src/libslic3r/PrintConfig.cpp:1610
+#: src/libslic3r/PrintConfig.cpp:2008 src/libslic3r/PrintConfig.cpp:2014
+#: src/libslic3r/PrintConfig.cpp:2022 src/libslic3r/PrintConfig.cpp:2034
+#: src/libslic3r/PrintConfig.cpp:2044 src/libslic3r/PrintConfig.cpp:2052
+#: src/libslic3r/PrintConfig.cpp:2067 src/libslic3r/PrintConfig.cpp:2088
+#: src/libslic3r/PrintConfig.cpp:2100 src/libslic3r/PrintConfig.cpp:2116
+#: src/libslic3r/PrintConfig.cpp:2125 src/libslic3r/PrintConfig.cpp:2134
+#: src/libslic3r/PrintConfig.cpp:2145 src/libslic3r/PrintConfig.cpp:2159
+#: src/libslic3r/PrintConfig.cpp:2167 src/libslic3r/PrintConfig.cpp:2168
+#: src/libslic3r/PrintConfig.cpp:2177 src/libslic3r/PrintConfig.cpp:2185
+#: src/libslic3r/PrintConfig.cpp:2199
msgid "Support material"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:39 src/slic3r/GUI/GUI_ObjectList.cpp:101
-#: src/slic3r/GUI/GUI_ObjectList.cpp:623 src/libslic3r/PrintConfig.cpp:2259
-#: src/libslic3r/PrintConfig.cpp:2267
+#: src/slic3r/GUI/GUI_ObjectList.cpp:39 src/slic3r/GUI/GUI_ObjectList.cpp:99
+#: src/slic3r/GUI/GUI_ObjectList.cpp:658 src/libslic3r/PrintConfig.cpp:2395
+#: src/libslic3r/PrintConfig.cpp:2403
msgid "Wipe options"
msgstr ""
@@ -2218,411 +2722,432 @@ msgstr ""
msgid "Add support blocker"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:98 src/slic3r/GUI/GUI_ObjectList.cpp:620
-#: src/slic3r/GUI/GUI_Preview.cpp:283 src/slic3r/GUI/Tab.cpp:1213
-#: src/libslic3r/PrintConfig.cpp:235 src/libslic3r/PrintConfig.cpp:458
-#: src/libslic3r/PrintConfig.cpp:919 src/libslic3r/PrintConfig.cpp:1048
-#: src/libslic3r/PrintConfig.cpp:1431 src/libslic3r/PrintConfig.cpp:1668
-#: src/libslic3r/PrintConfig.cpp:1723 src/libslic3r/PrintConfig.cpp:1775
-#: src/libslic3r/PrintConfig.cpp:2125
+#: src/slic3r/GUI/GUI_ObjectList.cpp:94 src/slic3r/GUI/GUI_ObjectList.cpp:653
+#: src/slic3r/GUI/GUI_Preview.cpp:307 src/slic3r/GUI/Tab.cpp:1420
+#: src/libslic3r/ExtrusionEntity.cpp:320 src/libslic3r/ExtrusionEntity.cpp:348
+#: src/libslic3r/PrintConfig.cpp:1126 src/libslic3r/PrintConfig.cpp:1132
+#: src/libslic3r/PrintConfig.cpp:1146 src/libslic3r/PrintConfig.cpp:1156
+msgid "Ironing"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_ObjectList.cpp:96 src/slic3r/GUI/GUI_ObjectList.cpp:655
+#: src/slic3r/GUI/GUI_Preview.cpp:278 src/slic3r/GUI/Tab.cpp:1474
+#: src/libslic3r/PrintConfig.cpp:269 src/libslic3r/PrintConfig.cpp:494
+#: src/libslic3r/PrintConfig.cpp:963 src/libslic3r/PrintConfig.cpp:1092
+#: src/libslic3r/PrintConfig.cpp:1165 src/libslic3r/PrintConfig.cpp:1539
+#: src/libslic3r/PrintConfig.cpp:1776 src/libslic3r/PrintConfig.cpp:1831
+#: src/libslic3r/PrintConfig.cpp:1883 src/libslic3r/PrintConfig.cpp:2261
msgid "Speed"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:99 src/slic3r/GUI/GUI_ObjectList.cpp:621
-#: src/slic3r/GUI/Tab.cpp:1248 src/slic3r/GUI/Tab.cpp:1871
-#: src/libslic3r/PrintConfig.cpp:488 src/libslic3r/PrintConfig.cpp:1002
-#: src/libslic3r/PrintConfig.cpp:1409 src/libslic3r/PrintConfig.cpp:1744
-#: src/libslic3r/PrintConfig.cpp:1945 src/libslic3r/PrintConfig.cpp:1972
+#: src/slic3r/GUI/GUI_ObjectList.cpp:97 src/slic3r/GUI/GUI_ObjectList.cpp:656
+#: src/slic3r/GUI/Tab.cpp:1510 src/slic3r/GUI/Tab.cpp:2072
+#: src/libslic3r/PrintConfig.cpp:524 src/libslic3r/PrintConfig.cpp:1046
+#: src/libslic3r/PrintConfig.cpp:1517 src/libslic3r/PrintConfig.cpp:1852
+#: src/libslic3r/PrintConfig.cpp:2080 src/libslic3r/PrintConfig.cpp:2107
msgid "Extruders"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:100 src/slic3r/GUI/GUI_ObjectList.cpp:622
-#: src/libslic3r/PrintConfig.cpp:447 src/libslic3r/PrintConfig.cpp:555
-#: src/libslic3r/PrintConfig.cpp:877 src/libslic3r/PrintConfig.cpp:1010
-#: src/libslic3r/PrintConfig.cpp:1418 src/libslic3r/PrintConfig.cpp:1764
-#: src/libslic3r/PrintConfig.cpp:1954 src/libslic3r/PrintConfig.cpp:2113
+#: src/slic3r/GUI/GUI_ObjectList.cpp:98 src/slic3r/GUI/GUI_ObjectList.cpp:657
+#: src/libslic3r/PrintConfig.cpp:483 src/libslic3r/PrintConfig.cpp:591
+#: src/libslic3r/PrintConfig.cpp:919 src/libslic3r/PrintConfig.cpp:1054
+#: src/libslic3r/PrintConfig.cpp:1526 src/libslic3r/PrintConfig.cpp:1872
+#: src/libslic3r/PrintConfig.cpp:2089 src/libslic3r/PrintConfig.cpp:2249
msgid "Extrusion Width"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:104 src/slic3r/GUI/GUI_ObjectList.cpp:626
-#: src/slic3r/GUI/Tab.cpp:1154 src/slic3r/GUI/Tab.cpp:1169
-#: src/slic3r/GUI/Tab.cpp:1269 src/slic3r/GUI/Tab.cpp:1272
-#: src/slic3r/GUI/Tab.cpp:1536 src/slic3r/GUI/Tab.cpp:2000
-#: src/slic3r/GUI/Tab.cpp:3730 src/libslic3r/PrintConfig.cpp:88
-#: src/libslic3r/PrintConfig.cpp:119 src/libslic3r/PrintConfig.cpp:223
-#: src/libslic3r/PrintConfig.cpp:1037 src/libslic3r/PrintConfig.cpp:2283
-#: src/libslic3r/PrintConfig.cpp:2455
+#: src/slic3r/GUI/GUI_ObjectList.cpp:102 src/slic3r/GUI/GUI_ObjectList.cpp:661
+#: src/slic3r/GUI/Tab.cpp:1409 src/slic3r/GUI/Tab.cpp:1430
+#: src/slic3r/GUI/Tab.cpp:1531 src/slic3r/GUI/Tab.cpp:1534
+#: src/slic3r/GUI/Tab.cpp:1816 src/slic3r/GUI/Tab.cpp:2152
+#: src/slic3r/GUI/Tab.cpp:4080 src/libslic3r/PrintConfig.cpp:90
+#: src/libslic3r/PrintConfig.cpp:121 src/libslic3r/PrintConfig.cpp:257
+#: src/libslic3r/PrintConfig.cpp:1081 src/libslic3r/PrintConfig.cpp:2419
+#: src/libslic3r/PrintConfig.cpp:2591
msgid "Advanced"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:106 src/slic3r/GUI/GUI_ObjectList.cpp:628
-#: src/slic3r/GUI/Plater.cpp:502 src/slic3r/GUI/Tab.cpp:3671
-#: src/slic3r/GUI/Tab.cpp:3672 src/libslic3r/PrintConfig.cpp:2621
-#: src/libslic3r/PrintConfig.cpp:2628 src/libslic3r/PrintConfig.cpp:2637
-#: src/libslic3r/PrintConfig.cpp:2646 src/libslic3r/PrintConfig.cpp:2656
-#: src/libslic3r/PrintConfig.cpp:2692 src/libslic3r/PrintConfig.cpp:2699
-#: src/libslic3r/PrintConfig.cpp:2710 src/libslic3r/PrintConfig.cpp:2720
-#: src/libslic3r/PrintConfig.cpp:2729 src/libslic3r/PrintConfig.cpp:2742
-#: src/libslic3r/PrintConfig.cpp:2752 src/libslic3r/PrintConfig.cpp:2761
-#: src/libslic3r/PrintConfig.cpp:2771 src/libslic3r/PrintConfig.cpp:2782
-#: src/libslic3r/PrintConfig.cpp:2790
+#: src/slic3r/GUI/GUI_ObjectList.cpp:104 src/slic3r/GUI/GUI_ObjectList.cpp:663
+#: src/slic3r/GUI/Plater.cpp:361 src/slic3r/GUI/Tab.cpp:4014
+#: src/slic3r/GUI/Tab.cpp:4015 src/libslic3r/PrintConfig.cpp:2757
+#: src/libslic3r/PrintConfig.cpp:2764 src/libslic3r/PrintConfig.cpp:2773
+#: src/libslic3r/PrintConfig.cpp:2782 src/libslic3r/PrintConfig.cpp:2792
+#: src/libslic3r/PrintConfig.cpp:2802 src/libslic3r/PrintConfig.cpp:2839
+#: src/libslic3r/PrintConfig.cpp:2846 src/libslic3r/PrintConfig.cpp:2857
+#: src/libslic3r/PrintConfig.cpp:2867 src/libslic3r/PrintConfig.cpp:2876
+#: src/libslic3r/PrintConfig.cpp:2889 src/libslic3r/PrintConfig.cpp:2899
+#: src/libslic3r/PrintConfig.cpp:2908 src/libslic3r/PrintConfig.cpp:2918
+#: src/libslic3r/PrintConfig.cpp:2929 src/libslic3r/PrintConfig.cpp:2937
msgid "Supports"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:107 src/slic3r/GUI/GUI_ObjectList.cpp:629
-#: src/slic3r/GUI/Plater.cpp:642 src/slic3r/GUI/Tab.cpp:3705
-#: src/slic3r/GUI/Tab.cpp:3706 src/libslic3r/PrintConfig.cpp:2798
-#: src/libslic3r/PrintConfig.cpp:2805 src/libslic3r/PrintConfig.cpp:2819
-#: src/libslic3r/PrintConfig.cpp:2830 src/libslic3r/PrintConfig.cpp:2840
-#: src/libslic3r/PrintConfig.cpp:2862 src/libslic3r/PrintConfig.cpp:2873
-#: src/libslic3r/PrintConfig.cpp:2880 src/libslic3r/PrintConfig.cpp:2887
-#: src/libslic3r/PrintConfig.cpp:2898 src/libslic3r/PrintConfig.cpp:2907
-#: src/libslic3r/PrintConfig.cpp:2916
+#: src/slic3r/GUI/GUI_ObjectList.cpp:105 src/slic3r/GUI/GUI_ObjectList.cpp:664
+#: src/slic3r/GUI/Plater.cpp:501 src/slic3r/GUI/Tab.cpp:4055
+#: src/slic3r/GUI/Tab.cpp:4056 src/slic3r/GUI/Tab.cpp:4127
+#: src/libslic3r/PrintConfig.cpp:2945 src/libslic3r/PrintConfig.cpp:2952
+#: src/libslic3r/PrintConfig.cpp:2966 src/libslic3r/PrintConfig.cpp:2977
+#: src/libslic3r/PrintConfig.cpp:2987 src/libslic3r/PrintConfig.cpp:3009
+#: src/libslic3r/PrintConfig.cpp:3020 src/libslic3r/PrintConfig.cpp:3027
+#: src/libslic3r/PrintConfig.cpp:3034 src/libslic3r/PrintConfig.cpp:3045
+#: src/libslic3r/PrintConfig.cpp:3054 src/libslic3r/PrintConfig.cpp:3063
msgid "Pad"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:108 src/slic3r/GUI/Tab.cpp:3723
-#: src/slic3r/GUI/Tab.cpp:3724 src/libslic3r/SLA/Hollowing.cpp:46
-#: src/libslic3r/SLA/Hollowing.cpp:58 src/libslic3r/SLA/Hollowing.cpp:67
-#: src/libslic3r/SLA/Hollowing.cpp:76 src/libslic3r/PrintConfig.cpp:2926
-#: src/libslic3r/PrintConfig.cpp:2933 src/libslic3r/PrintConfig.cpp:2943
-#: src/libslic3r/PrintConfig.cpp:2952
+#: src/slic3r/GUI/GUI_ObjectList.cpp:106 src/slic3r/GUI/Tab.cpp:4073
+#: src/slic3r/GUI/Tab.cpp:4074 src/libslic3r/SLA/Hollowing.cpp:45
+#: src/libslic3r/SLA/Hollowing.cpp:57 src/libslic3r/SLA/Hollowing.cpp:66
+#: src/libslic3r/SLA/Hollowing.cpp:75 src/libslic3r/PrintConfig.cpp:3073
+#: src/libslic3r/PrintConfig.cpp:3080 src/libslic3r/PrintConfig.cpp:3090
+#: src/libslic3r/PrintConfig.cpp:3099
msgid "Hollowing"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:282
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:153
+#: src/slic3r/GUI/GUI_ObjectList.cpp:284
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:161
msgid "Name"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:290 src/slic3r/GUI/Tab.cpp:1500
-#: src/slic3r/GUI/wxExtensions.cpp:598 src/libslic3r/PrintConfig.cpp:487
-msgid "Extruder"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_ObjectList.cpp:294 src/slic3r/GUI/GUI_ObjectList.cpp:407
+#: src/slic3r/GUI/GUI_ObjectList.cpp:300 src/slic3r/GUI/GUI_ObjectList.cpp:441
msgid "Editing"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:352
+#: src/slic3r/GUI/GUI_ObjectList.cpp:386
#, possible-c-format
msgid "Auto-repaired (%d errors):"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:359
+#: src/slic3r/GUI/GUI_ObjectList.cpp:393
msgid "degenerate facets"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:360
+#: src/slic3r/GUI/GUI_ObjectList.cpp:394
msgid "edges fixed"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:361
+#: src/slic3r/GUI/GUI_ObjectList.cpp:395
msgid "facets removed"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:362
+#: src/slic3r/GUI/GUI_ObjectList.cpp:396
msgid "facets added"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:363
+#: src/slic3r/GUI/GUI_ObjectList.cpp:397
msgid "facets reversed"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:364
+#: src/slic3r/GUI/GUI_ObjectList.cpp:398
msgid "backwards edges"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:372
+#: src/slic3r/GUI/GUI_ObjectList.cpp:406
msgid "Right button click the icon to fix STL through Netfabb"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:409
+#: src/slic3r/GUI/GUI_ObjectList.cpp:443
msgid "Right button click the icon to change the object settings"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:411
+#: src/slic3r/GUI/GUI_ObjectList.cpp:445
msgid "Click the icon to change the object settings"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:415
+#: src/slic3r/GUI/GUI_ObjectList.cpp:449
msgid "Right button click the icon to change the object printable property"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:417
+#: src/slic3r/GUI/GUI_ObjectList.cpp:451
msgid "Click the icon to change the object printable property"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:462 src/slic3r/GUI/GUI_ObjectList.cpp:474
-#: src/slic3r/GUI/GUI_ObjectList.cpp:931 src/slic3r/GUI/GUI_ObjectList.cpp:4051
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4061
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4096
-#: src/slic3r/GUI/ObjectDataViewModel.cpp:202
-#: src/slic3r/GUI/ObjectDataViewModel.cpp:259
-#: src/slic3r/GUI/ObjectDataViewModel.cpp:284
-#: src/slic3r/GUI/ObjectDataViewModel.cpp:492
-#: src/slic3r/GUI/ObjectDataViewModel.cpp:1755
-msgid "default"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_ObjectList.cpp:540
+#: src/slic3r/GUI/GUI_ObjectList.cpp:574
msgid "Change Extruder"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:555
+#: src/slic3r/GUI/GUI_ObjectList.cpp:589
msgid "Rename Object"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:555
+#: src/slic3r/GUI/GUI_ObjectList.cpp:589
msgid "Rename Sub-object"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1105
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3865
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1215
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4244
msgid "Instances to Separated Objects"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1120
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1230
msgid "Volumes in Object reordered"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1120
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1230
msgid "Object reordered"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1196
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1544
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1550
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1863
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1306
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1661
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1667
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2008
#, possible-c-format
msgid "Quick Add Settings (%s)"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1279
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1396
msgid "Select showing settings"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1328
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1445
msgid "Add Settings for Layers"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1329
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1446
msgid "Add Settings for Sub-object"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1330
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1447
msgid "Add Settings for Object"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1400
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1517
msgid "Add Settings Bundle for Height range"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1401
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1518
msgid "Add Settings Bundle for Sub-object"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1402
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1519
msgid "Add Settings Bundle for Object"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1441
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1558
msgid "Load"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1446
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1478
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1482
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1563
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1595
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1599
msgid "Box"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1446
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1563
msgid "Cylinder"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1446
-msgid "Sphere"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1446
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1563
msgid "Slab"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1514
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1631
msgid "Height range Modifier"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1523
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1640
msgid "Add settings"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1603
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1718
msgid "Change type"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1613
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1625
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1728
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1740
msgid "Set as a Separated Object"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1625
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1740
msgid "Set as a Separated Objects"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1635
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1750
msgid "Printable"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1650
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1765
msgid "Rename"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1661
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1776
msgid "Fix through the Netfabb"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1671 src/slic3r/GUI/Plater.cpp:3970
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1786 src/slic3r/GUI/Plater.cpp:3884
msgid "Export as STL"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1678
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4040 src/slic3r/GUI/Plater.cpp:3938
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1793
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4439 src/slic3r/GUI/Plater.cpp:3852
msgid "Reload the selected volumes from disk"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1685
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1800
msgid "Set extruder for selected items"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1738
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1832 src/libslic3r/PrintConfig.cpp:369
+msgid "Default"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1852
msgid "Scale to print volume"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1738
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1852
msgid "Scale the selected object to fit the print volume"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1807
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2065
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1858 src/slic3r/GUI/Plater.cpp:4886
+msgid "Convert from imperial units"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1861 src/slic3r/GUI/Plater.cpp:4886
+msgid "Revert conversion from imperial units"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1868
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1876
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2569 src/libslic3r/PrintConfig.cpp:3641
+msgid "Merge"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1868
+msgid "Merge objects to the one multipart object"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1876
+msgid "Merge objects to the one single object"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_ObjectList.cpp:1953
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2210
msgid "Add Shape"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1893
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2038
msgid "Load Part"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:1932
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2077
msgid "Error!"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2007
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2152
msgid "Add Generic Subobject"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2036
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2181
msgid "Generic"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2154
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2256
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2307
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2408
msgid "Last instance of an object cannot be deleted."
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2166
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2319
msgid "Delete Settings"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2190
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2341
msgid "Delete All Instances from Object"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2206
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2357
msgid "Delete Height Range"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2237
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2389
msgid "From Object List You can't delete the last solid part from object."
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2241
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2393
msgid "Delete Subobject"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2260
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2412
msgid "Delete Instance"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2284 src/slic3r/GUI/Plater.cpp:2978
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2436 src/slic3r/GUI/Plater.cpp:2771
msgid ""
"The selected object couldn't be split because it contains only one part."
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2288
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2440
msgid "Split to Parts"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2342
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2576
+msgid "Merged"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2660
+msgid "Merge all parts to the one single object"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2692
msgid "Add Layers"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2468
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2846
msgid "Group manipulation"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2480
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2858
msgid "Object manipulation"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2493
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2871
msgid "Object Settings to modify"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2497
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2875
msgid "Part Settings to modify"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2502
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2880
msgid "Layer range Settings to modify"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2508
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2886
msgid "Part manipulation"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2514
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2892
msgid "Instance manipulation"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2521
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2899
msgid "Height ranges"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2521
+#: src/slic3r/GUI/GUI_ObjectList.cpp:2899
msgid "Settings for height range"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2707
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3083
msgid "Delete Selected Item"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2844
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3221
msgid "Delete Selected"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2920
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2948
-#: src/slic3r/GUI/GUI_ObjectList.cpp:2968
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3297
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3325
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3345
msgid "Add Height Range"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3014
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3391
msgid ""
"Cannot insert a new layer range after the current layer range.\n"
"The next layer range is too thin to be split to two\n"
"without violating the minimum layer height."
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3018
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3395
msgid ""
"Cannot insert a new layer range between the current and the next layer "
"range.\n"
@@ -2630,206 +3155,208 @@ msgid ""
"is thinner than the minimum layer height allowed."
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3023
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3400
msgid ""
"Cannot insert a new layer range after the current layer range.\n"
"Current layer range overlaps with the next layer range."
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3082
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3459
msgid "Edit Height Range"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3375
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3754
msgid "Selection-Remove from list"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3383
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3762
msgid "Selection-Add from list"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3501
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3880
msgid "Object or Instance"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3502
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3635
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3881
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4014
msgid "Part"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3502
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3881
msgid "Layer"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3504
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3883
msgid "Unsupported selection"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3505
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3884
#, possible-c-format
msgid "You started your selection with %s Item."
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3506
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3885
#, possible-c-format
msgid "In this mode you can select only other %s Items%s"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3509
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3888
msgid "of a current Object"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3514
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3589 src/slic3r/GUI/Plater.cpp:143
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3893
+#: src/slic3r/GUI/GUI_ObjectList.cpp:3968 src/slic3r/GUI/Plater.cpp:147
msgid "Info"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3630
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4009
msgid "You can't change a type of the last solid part of the object."
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3635
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4014
msgid "Modifier"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3635
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4014
msgid "Support Enforcer"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3635
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4014
msgid "Support Blocker"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3637
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4016
msgid "Select type of part"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3642
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4021
msgid "Change Part Type"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3887
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4266
msgid "Enter new name"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3887
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4266
msgid "Renaming"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3903
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4010 src/slic3r/GUI/Tab.cpp:3529
-#: src/slic3r/GUI/Tab.cpp:3533
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4282
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4409
+#: src/slic3r/GUI/SavePresetDialog.cpp:116
+#: src/slic3r/GUI/SavePresetDialog.cpp:124
msgid "The supplied name is not valid;"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:3904
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4011 src/slic3r/GUI/Tab.cpp:3530
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4283
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4410
+#: src/slic3r/GUI/SavePresetDialog.cpp:117
msgid "the following characters are not allowed:"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4055
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4458
msgid "Select extruder number:"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4056
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4459
msgid "This extruder will be set for selected items"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4081
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4484
msgid "Change Extruders"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4178 src/slic3r/GUI/Selection.cpp:1481
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4581 src/slic3r/GUI/Selection.cpp:1513
msgid "Set Printable"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectList.cpp:4178 src/slic3r/GUI/Selection.cpp:1481
+#: src/slic3r/GUI/GUI_ObjectList.cpp:4581 src/slic3r/GUI/Selection.cpp:1513
msgid "Set Unprintable"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:62
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:105
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:68
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:111
msgid "World coordinates"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:63
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:106
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:69
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:112
msgid "Local coordinates"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:82
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:88
msgid "Select coordinate space, in which the transformation will be performed."
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:155 src/libslic3r/GCode.cpp:638
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:163 src/libslic3r/GCode.cpp:623
msgid "Object name"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:215
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:457
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:223
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:505
msgid "Position"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:216
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:458
-#: src/slic3r/GUI/Mouse3DController.cpp:295
-#: src/slic3r/GUI/Mouse3DController.cpp:318
-msgid "Rotation"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:263
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:271
#, possible-c-format
msgid "Toggle %c axis mirroring"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:297
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:305
msgid "Set Mirror"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:337
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:349
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:341
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:418
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:486
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:487
+msgid "in"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:345
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:357
msgid "Drop to bed"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:363
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:372
msgid "Reset rotation"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:385
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:394
msgid "Reset Rotation"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:397
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:399
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:407
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:409
msgid "Reset scale"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:459
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:507
msgid "Scale factors"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:516
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:561
msgid "Translate"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:578
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:625
msgid ""
"You cannot use non-uniform scaling mode for multiple objects/parts selection"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:750
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:797
msgid "Set Position"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:781
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:828
msgid "Set Orientation"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:846
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:893
msgid "Set Scale"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:925
msgid ""
"The currently manipulated object is tilted (rotation angles are not "
"multiples of 90°).\n"
@@ -2838,1122 +3365,1312 @@ msgid ""
"once the rotation is embedded into the object coordinates."
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:878
+#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:928
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:62
msgid "Additional Settings"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectSettings.cpp:95
+#: src/slic3r/GUI/GUI_ObjectSettings.cpp:98
msgid "Remove parameter"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectSettings.cpp:101
+#: src/slic3r/GUI/GUI_ObjectSettings.cpp:104
#, possible-c-format
msgid "Delete Option %s"
msgstr ""
-#: src/slic3r/GUI/GUI_ObjectSettings.cpp:152
+#: src/slic3r/GUI/GUI_ObjectSettings.cpp:157
#, possible-c-format
msgid "Change Option %s"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:277
+#: src/slic3r/GUI/GUI_Preview.cpp:265 src/slic3r/GUI/GUI_Preview.cpp:271
msgid "View"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:280 src/slic3r/GUI/GUI_Preview.cpp:641
-#: src/libslic3r/GCode/PreviewData.cpp:346
-msgid "Feature type"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_Preview.cpp:281 src/libslic3r/PrintConfig.cpp:500
+#: src/slic3r/GUI/GUI_Preview.cpp:276 src/libslic3r/PrintConfig.cpp:536
msgid "Height"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:282 src/libslic3r/PrintConfig.cpp:2245
+#: src/slic3r/GUI/GUI_Preview.cpp:277 src/libslic3r/PrintConfig.cpp:2381
msgid "Width"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:284 src/slic3r/GUI/Tab.cpp:1523
+#: src/slic3r/GUI/GUI_Preview.cpp:279 src/slic3r/GUI/Tab.cpp:1803
msgid "Fan speed"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:285
+#: src/slic3r/GUI/GUI_Preview.cpp:280
msgid "Volumetric flow rate"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:286 src/slic3r/GUI/GUI_Preview.cpp:401
-#: src/slic3r/GUI/GUI_Preview.cpp:585 src/slic3r/GUI/GUI_Preview.cpp:640
-#: src/slic3r/GUI/GUI_Preview.cpp:901 src/libslic3r/GCode/PreviewData.cpp:358
-msgid "Tool"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_Preview.cpp:287 src/slic3r/GUI/GUI_Preview.cpp:638
-#: src/libslic3r/GCode/PreviewData.cpp:360
-msgid "Color Print"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_Preview.cpp:290
+#: src/slic3r/GUI/GUI_Preview.cpp:286 src/slic3r/GUI/GUI_Preview.cpp:288
msgid "Show"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:293 src/slic3r/GUI/GUI_Preview.cpp:294
+#: src/slic3r/GUI/GUI_Preview.cpp:293 src/slic3r/GUI/GUI_Preview.cpp:295
+#: src/slic3r/GUI/GUI_Preview.cpp:316
msgid "Feature types"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:296 src/libslic3r/ExtrusionEntity.cpp:310
+#: src/slic3r/GUI/GUI_Preview.cpp:301 src/libslic3r/ExtrusionEntity.cpp:314
+#: src/libslic3r/ExtrusionEntity.cpp:336
msgid "Perimeter"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:297 src/libslic3r/ExtrusionEntity.cpp:311
+#: src/slic3r/GUI/GUI_Preview.cpp:302 src/libslic3r/ExtrusionEntity.cpp:315
+#: src/libslic3r/ExtrusionEntity.cpp:338
msgid "External perimeter"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:298 src/libslic3r/ExtrusionEntity.cpp:312
+#: src/slic3r/GUI/GUI_Preview.cpp:303 src/libslic3r/ExtrusionEntity.cpp:316
+#: src/libslic3r/ExtrusionEntity.cpp:340
msgid "Overhang perimeter"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:299 src/libslic3r/ExtrusionEntity.cpp:313
+#: src/slic3r/GUI/GUI_Preview.cpp:304 src/libslic3r/ExtrusionEntity.cpp:317
+#: src/libslic3r/ExtrusionEntity.cpp:342
msgid "Internal infill"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:300 src/libslic3r/ExtrusionEntity.cpp:314
-#: src/libslic3r/PrintConfig.cpp:1763 src/libslic3r/PrintConfig.cpp:1774
+#: src/slic3r/GUI/GUI_Preview.cpp:305 src/libslic3r/ExtrusionEntity.cpp:318
+#: src/libslic3r/ExtrusionEntity.cpp:344 src/libslic3r/PrintConfig.cpp:1871
+#: src/libslic3r/PrintConfig.cpp:1882
msgid "Solid infill"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:301 src/libslic3r/ExtrusionEntity.cpp:315
-#: src/libslic3r/PrintConfig.cpp:2112 src/libslic3r/PrintConfig.cpp:2124
+#: src/slic3r/GUI/GUI_Preview.cpp:306 src/libslic3r/ExtrusionEntity.cpp:319
+#: src/libslic3r/ExtrusionEntity.cpp:346 src/libslic3r/PrintConfig.cpp:2248
+#: src/libslic3r/PrintConfig.cpp:2260
msgid "Top solid infill"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:302 src/libslic3r/ExtrusionEntity.cpp:316
+#: src/slic3r/GUI/GUI_Preview.cpp:308 src/libslic3r/ExtrusionEntity.cpp:321
+#: src/libslic3r/ExtrusionEntity.cpp:350
msgid "Bridge infill"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:303 src/libslic3r/ExtrusionEntity.cpp:317
-#: src/libslic3r/PrintConfig.cpp:918
+#: src/slic3r/GUI/GUI_Preview.cpp:309 src/libslic3r/ExtrusionEntity.cpp:322
+#: src/libslic3r/ExtrusionEntity.cpp:352 src/libslic3r/PrintConfig.cpp:962
msgid "Gap fill"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:304 src/slic3r/GUI/Tab.cpp:1178
-#: src/libslic3r/ExtrusionEntity.cpp:318
+#: src/slic3r/GUI/GUI_Preview.cpp:310 src/slic3r/GUI/Tab.cpp:1439
+#: src/libslic3r/ExtrusionEntity.cpp:323 src/libslic3r/ExtrusionEntity.cpp:354
msgid "Skirt"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:306 src/libslic3r/ExtrusionEntity.cpp:320
-#: src/libslic3r/PrintConfig.cpp:1998
+#: src/slic3r/GUI/GUI_Preview.cpp:312 src/libslic3r/ExtrusionEntity.cpp:325
+#: src/libslic3r/ExtrusionEntity.cpp:358 src/libslic3r/PrintConfig.cpp:2133
msgid "Support material interface"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:307 src/slic3r/GUI/Tab.cpp:1259
-#: src/libslic3r/ExtrusionEntity.cpp:321
+#: src/slic3r/GUI/GUI_Preview.cpp:313 src/slic3r/GUI/Tab.cpp:1521
+#: src/libslic3r/ExtrusionEntity.cpp:326 src/libslic3r/ExtrusionEntity.cpp:360
msgid "Wipe tower"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:312 src/libslic3r/PrintConfig.cpp:2159
-msgid "Travel"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_Preview.cpp:313
-msgid "Retractions"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_Preview.cpp:314
-msgid "Unretractions"
-msgstr ""
-
-#: src/slic3r/GUI/GUI_Preview.cpp:315
+#: src/slic3r/GUI/GUI_Preview.cpp:338 src/slic3r/GUI/GUI_Preview.cpp:1478
msgid "Shells"
msgstr ""
-#: src/slic3r/GUI/GUI_Preview.cpp:316
+#: src/slic3r/GUI/GUI_Preview.cpp:339
msgid "Legend"
msgstr ""
-#: src/slic3r/GUI/Job.hpp:123
+#: src/slic3r/GUI/GUI_Preview.cpp:1479
+msgid "Tool marker"
+msgstr ""
+
+#: src/slic3r/GUI/GUI_Preview.cpp:1480
+msgid "Legend/Estimated printing time"
+msgstr ""
+
+#: src/slic3r/GUI/ImGuiWrapper.cpp:800 src/slic3r/GUI/Search.cpp:464
+msgid "Use for search"
+msgstr ""
+
+#: src/slic3r/GUI/ImGuiWrapper.cpp:801 src/slic3r/GUI/Search.cpp:458
+msgid "Category"
+msgstr ""
+
+#: src/slic3r/GUI/ImGuiWrapper.cpp:803 src/slic3r/GUI/Search.cpp:460
+msgid "Search in English"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/ArrangeJob.cpp:149
+msgid "Arranging"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/ArrangeJob.cpp:176
+msgid "Could not arrange model objects! Some geometries may be invalid."
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/ArrangeJob.cpp:182
+msgid "Arranging canceled."
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/ArrangeJob.cpp:183
+msgid "Arranging done."
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/Job.cpp:74
msgid "ERROR: not enough resources to execute a new job."
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:41 src/slic3r/GUI/MainFrame.cpp:855
+#: src/slic3r/GUI/Jobs/RotoptimizeJob.cpp:41
+msgid "Searching for optimal orientation"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/RotoptimizeJob.cpp:73
+msgid "Orientation search canceled."
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/RotoptimizeJob.cpp:74
+msgid "Orientation found."
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:35
+msgid "Choose SLA archive:"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:39
+msgid "Import file: "
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:46
+msgid "Import model and profile"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:47
+msgid "Import profile only"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:48
+msgid "Import model only"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:56
+msgid "Quality: "
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:59
+msgid "Accurate"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:60
+msgid "Balanced"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:61
+msgid "Quick"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:135
+msgid "Importing SLA archive"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:159
+msgid "Importing canceled."
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:160
+msgid "Importing done."
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:208 src/slic3r/GUI/Plater.cpp:2254
+msgid "You cannot load SLA project with a multi-part object on the bed"
+msgstr ""
+
+#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:209 src/slic3r/GUI/Plater.cpp:2255
+#: src/slic3r/GUI/Tab.cpp:3188
+msgid "Please check your object list before preset changing."
+msgstr ""
+
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:37
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:39 src/slic3r/GUI/MainFrame.cpp:941
+#: src/slic3r/GUI/MainFrame.cpp:1332
msgid "Keyboard Shortcuts"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:112
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:105
msgid "New project, clear plater"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:113
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:106
msgid "Open project STL/OBJ/AMF/3MF with config, clear plater"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:114
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:107
msgid "Save project (3mf)"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:115
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:108
msgid "Save project as (3mf)"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:116
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:109
msgid "(Re)slice"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:118
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:111
msgid "Import STL/OBJ/AMF/3MF without config, keep plater"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:119
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:112
msgid "Import Config from ini/amf/3mf/gcode"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:120
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:113
msgid "Load Config from ini/amf/3mf/gcode and merge"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 src/slic3r/GUI/Plater.cpp:898
-#: src/slic3r/GUI/Plater.cpp:5531 src/libslic3r/PrintConfig.cpp:3375
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:115 src/slic3r/GUI/Plater.cpp:766
+#: src/slic3r/GUI/Plater.cpp:5706 src/libslic3r/PrintConfig.cpp:3546
msgid "Export G-code"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 src/slic3r/GUI/Plater.cpp:5532
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:116 src/slic3r/GUI/Plater.cpp:5707
msgid "Send G-code"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:124
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:117
msgid "Export config"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:125 src/slic3r/GUI/Plater.cpp:887
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:118 src/slic3r/GUI/Plater.cpp:755
msgid "Export to SD card / Flash drive"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:126
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:119
msgid "Eject SD card / Flash drive"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:128
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:121
msgid "Select all objects"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:129
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:122
msgid "Deselect all"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:130
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:123
msgid "Delete selected"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:134
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:127
msgid "Copy to clipboard"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:135
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:128
msgid "Paste from clipboard"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:136
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:129
msgid "Reload plater from disk"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:138
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:132
msgid "Select Plater Tab"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:139
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:133
msgid "Select Print Settings Tab"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:140
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:134
msgid "Select Filament Settings Tab"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:141
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:135
msgid "Select Printer Settings Tab"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:142
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:136
msgid "Switch to 3D"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:143
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:137
msgid "Switch to Preview"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:144
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:138
#: src/slic3r/GUI/PrintHostDialogs.cpp:136
msgid "Print host upload queue"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:146
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:140
msgid "Camera view"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:147
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:141
msgid "Show/Hide object/instance labels"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:149
-msgid "Turn On/Off facets' slope rendering"
-msgstr ""
-
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:152 src/slic3r/GUI/Preferences.cpp:10
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 src/slic3r/GUI/Preferences.cpp:12
msgid "Preferences"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:154
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:145
msgid "Show keyboard shortcuts list"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:157
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:148
msgid "Commands"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:162
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:153
msgid "Add Instance of the selected object"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:154
msgid "Remove Instance of the selected object"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:164
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:155
msgid ""
"Press to select multiple objects\n"
"or move multiple objects with mouse"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:165
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:156
msgid "Press to activate selection rectangle"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:166
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:157
msgid "Press to activate deselection rectangle"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:167
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:209
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:219
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:158
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:205
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:215
msgid "Arrow Up"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:167
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:158
msgid "Move selection 10 mm in positive Y direction"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:168
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:210
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:220
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:159
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:206
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:216
msgid "Arrow Down"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:168
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:159
msgid "Move selection 10 mm in negative Y direction"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:169
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:221
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:160
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:217
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:229
msgid "Arrow Left"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:169
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:160
msgid "Move selection 10 mm in negative X direction"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:170
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:222
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:161
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:218
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:230
msgid "Arrow Right"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:170
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:161
msgid "Move selection 10 mm in positive X direction"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:171
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:172
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:162
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
msgid "Any arrow"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:171
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:162
msgid "Movement step set to 1 mm"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:172
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
msgid "Movement in camera space"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:173
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:164
msgid "Page Up"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:173
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:164
msgid "Rotate selection 45 degrees CCW"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:174
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:165
msgid "Page Down"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:174
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:165
msgid "Rotate selection 45 degrees CW"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:175
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:166
msgid "Gizmo move"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:176
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:167
msgid "Gizmo scale"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:177
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:168
msgid "Gizmo rotate"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:178
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:169
msgid "Gizmo cut"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:179
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:170
msgid "Gizmo Place face on bed"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:180
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:171
msgid "Gizmo SLA hollow"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:181
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:172
msgid "Gizmo SLA support points"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:182
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:173
msgid "Unselect gizmo or clear selection"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:183
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:174
msgid "Change camera type (perspective, orthographic)"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:184
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:175
msgid "Zoom to Bed"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:185
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:176
msgid ""
"Zoom to selected object\n"
"or all objects in scene, if none selected"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:186
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:177
msgid "Zoom in"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:187
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:178
msgid "Zoom out"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:189
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:179
+msgid "Switch between Editor/Preview"
+msgstr ""
+
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:180
+msgid "Collapse/Expand the sidebar"
+msgstr ""
+
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:182
msgid "Show/Hide 3Dconnexion devices settings dialog"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:197 src/slic3r/GUI/MainFrame.cpp:311
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:190 src/slic3r/GUI/MainFrame.cpp:340
+#: src/slic3r/GUI/MainFrame.cpp:352
msgid "Plater"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:200
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:193
#, possible-c-format
msgid ""
"Press to snap by 5% in Gizmo scale\n"
"or to snap by 1mm in Gizmo move"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:201
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:194
msgid ""
"Scale selection to fit print volume\n"
"in Gizmo scale"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:202
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:195
msgid "Press to activate one direction scaling in Gizmo scale"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:203
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:196
msgid ""
"Press to scale (in Gizmo scale) or rotate (in Gizmo rotate)\n"
"selected objects around their own center"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:206
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:199
msgid "Gizmos"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:209
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:211
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:205
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:207
msgid "Upper Layer"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:210
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:212
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:206
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:208
msgid "Lower Layer"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:213
-msgid "Show/Hide Legend"
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:209
+msgid "Show/Hide Legend/Estimated printing time"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:216 src/slic3r/GUI/Plater.cpp:4129
-#: src/slic3r/GUI/Tab.cpp:2385
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:212 src/slic3r/GUI/Plater.cpp:4052
+#: src/slic3r/GUI/Tab.cpp:2559
msgid "Preview"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:219
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:215
msgid "Move current slider thumb Up"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:220
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:216
msgid "Move current slider thumb Down"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:221
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:217
msgid "Set upper thumb to current slider thumb"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:222
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:218
msgid "Set lower thumb to current slider thumb"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:223
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:219
msgid "Add color change marker for current layer"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:224
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:220
msgid "Delete color change marker for current layer"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:227
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:221
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:222
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:231
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:232
+msgid ""
+"Press to speed up 5 times while moving thumb\n"
+"with arrow keys or mouse wheel"
+msgstr ""
+
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:225
msgid "Layers Slider"
msgstr ""
-#: src/slic3r/GUI/KBShortcutsDialog.cpp:250
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:229
+msgid "Move current slider thumb Left"
+msgstr ""
+
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:230
+msgid "Move current slider thumb Right"
+msgstr ""
+
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:235
+msgid "Sequential Slider"
+msgstr ""
+
+#: src/slic3r/GUI/KBShortcutsDialog.cpp:259
msgid "Keyboard shortcuts"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:72
+#: src/slic3r/GUI/MainFrame.cpp:63 src/slic3r/GUI/MainFrame.cpp:1262
+msgid "Open new instance"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:63 src/slic3r/GUI/MainFrame.cpp:77
+#: src/slic3r/GUI/MainFrame.cpp:1262
+msgid "Open a new PrusaSlicer instance"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:66 src/slic3r/GUI/MainFrame.cpp:79
+msgid "G-code preview"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:66 src/slic3r/GUI/MainFrame.cpp:1141
+msgid "Open G-code viewer"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:77 src/slic3r/GUI/MainFrame.cpp:1398
+msgid "Open PrusaSlicer"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:79
+msgid "Open new G-code viewer"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:166
msgid ""
-" - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/"
+" - Remember to check for updates at https://github.com/prusa3d/PrusaSlicer/"
"releases"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:281
+#: src/slic3r/GUI/MainFrame.cpp:535 src/slic3r/GUI/MainFrame.cpp:537
msgid "based on Slic3r"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:533
-msgid "&New Project"
+#: src/slic3r/GUI/MainFrame.cpp:909 src/slic3r/GUI/MainFrame.cpp:1308
+msgid "Prusa 3D &Drivers"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:533
-msgid "Start a new project"
+#: src/slic3r/GUI/MainFrame.cpp:909 src/slic3r/GUI/MainFrame.cpp:1308
+msgid "Open the Prusa3D drivers download page in your browser"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:536
-msgid "&Open Project"
+#: src/slic3r/GUI/MainFrame.cpp:911 src/slic3r/GUI/MainFrame.cpp:1310
+msgid "Software &Releases"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:536
-msgid "Open a project file"
+#: src/slic3r/GUI/MainFrame.cpp:911 src/slic3r/GUI/MainFrame.cpp:1310
+msgid "Open the software releases page in your browser"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:541
-msgid "Recent projects"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:550
-msgid ""
-"The selected project is no longer available.\n"
-"Do you want to remove it from the recent projects list?"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:550 src/slic3r/GUI/MainFrame.cpp:932
-#: src/slic3r/GUI/PrintHostDialogs.cpp:231
-msgid "Error"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:575
-msgid "&Save Project"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:575
-msgid "Save current project file"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:579 src/slic3r/GUI/MainFrame.cpp:581
-msgid "Save Project &as"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:579 src/slic3r/GUI/MainFrame.cpp:581
-msgid "Save current project file as"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:589
-msgid "Import STL/OBJ/AM&F/3MF"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:589
-msgid "Load a model"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:593
-msgid "Import &Config"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:593
-msgid "Load exported configuration file"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:596
-msgid "Import Config from &project"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:596
-msgid "Load configuration from project file"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:600
-msgid "Import Config &Bundle"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:600
-msgid "Load presets from a bundle"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:603
-msgid "&Import"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:606 src/slic3r/GUI/MainFrame.cpp:896
-msgid "Export &G-code"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:606
-msgid "Export current plate as G-code"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:610 src/slic3r/GUI/MainFrame.cpp:897
-msgid "S&end G-code"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:610
-msgid "Send to print current plate as G-code"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:614
-msgid "Export G-code to SD card / Flash drive"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:614
-msgid "Export current plate as G-code to SD card / Flash drive"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:618
-msgid "Export plate as &STL"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:618
-msgid "Export current plate as STL"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:621
-msgid "Export plate as STL &including supports"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:621
-msgid "Export current plate as STL including supports"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:624
-msgid "Export plate as &AMF"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:624
-msgid "Export current plate as AMF"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:628
-msgid "Export &toolpaths as OBJ"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:628
-msgid "Export toolpaths as OBJ"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:632
-msgid "Export &Config"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:632
-msgid "Export current configuration to file"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:635
-msgid "Export Config &Bundle"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:635
-msgid "Export all presets to file"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:638
-msgid "&Export"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:640
-msgid "Ejec&t SD card / Flash drive"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:640
-msgid "Eject SD card / Flash drive after the G-code was exported to it."
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:648
-msgid "Quick Slice"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:648
-msgid "Slice a file into a G-code"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:654
-msgid "Quick Slice and Save As"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:654
-msgid "Slice a file into a G-code, save as"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:660
-msgid "Repeat Last Quick Slice"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:660
-msgid "Repeat last quick slice"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:668
-msgid "(Re)Slice No&w"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:668
-msgid "Start new slicing process"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:672
-msgid "&Repair STL file"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:672
-msgid "Automatically repair an STL file"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:676
-msgid "&Quit"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:676
+#: src/slic3r/GUI/MainFrame.cpp:917 src/slic3r/GUI/MainFrame.cpp:1316
#, possible-c-format
-msgid "Quit %s"
+msgid "%s &Website"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:701
-msgid "&Select all"
+#: src/slic3r/GUI/MainFrame.cpp:918 src/slic3r/GUI/MainFrame.cpp:1317
+#, possible-c-format
+msgid "Open the %s website in your browser"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:702
-msgid "Selects all objects"
+#: src/slic3r/GUI/MainFrame.cpp:924 src/slic3r/GUI/MainFrame.cpp:1323
+msgid "System &Info"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:704
-msgid "D&eselect all"
+#: src/slic3r/GUI/MainFrame.cpp:924 src/slic3r/GUI/MainFrame.cpp:1323
+msgid "Show system information"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:705
-msgid "Deselects all objects"
+#: src/slic3r/GUI/MainFrame.cpp:926 src/slic3r/GUI/MainFrame.cpp:1325
+msgid "Show &Configuration Folder"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:708
-msgid "&Delete selected"
+#: src/slic3r/GUI/MainFrame.cpp:926 src/slic3r/GUI/MainFrame.cpp:1325
+msgid "Show user configuration folder (datadir)"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:709
-msgid "Deletes the current selection"
+#: src/slic3r/GUI/MainFrame.cpp:928 src/slic3r/GUI/MainFrame.cpp:1327
+msgid "Report an I&ssue"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:711
-msgid "Delete &all"
+#: src/slic3r/GUI/MainFrame.cpp:928 src/slic3r/GUI/MainFrame.cpp:1327
+#, possible-c-format
+msgid "Report an issue on %s"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:712
-msgid "Deletes all objects"
+#: src/slic3r/GUI/MainFrame.cpp:933 src/slic3r/GUI/MainFrame.cpp:937
+#: src/slic3r/GUI/MainFrame.cpp:1329
+#, possible-c-format
+msgid "&About %s"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:716
-msgid "&Undo"
+#: src/slic3r/GUI/MainFrame.cpp:933 src/slic3r/GUI/MainFrame.cpp:937
+#: src/slic3r/GUI/MainFrame.cpp:1329
+msgid "Show about dialog"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:719
-msgid "&Redo"
+#: src/slic3r/GUI/MainFrame.cpp:941 src/slic3r/GUI/MainFrame.cpp:1332
+msgid "Show the list of the keyboard shortcuts"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:724
-msgid "&Copy"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:725
-msgid "Copy selection to clipboard"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:727
-msgid "&Paste"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:728
-msgid "Paste clipboard"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:732
-msgid "Re&load from disk"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:733
-msgid "Reload the plater from disk"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:742
-msgid "&Plater Tab"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:742
-msgid "Show the plater"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:750
-msgid "P&rint Settings Tab"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:750
-msgid "Show the print settings"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:753 src/slic3r/GUI/MainFrame.cpp:899
-msgid "&Filament Settings Tab"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:753
-msgid "Show the filament settings"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:757
-msgid "Print&er Settings Tab"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:757
-msgid "Show the printer settings"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:762
-msgid "3&D"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:762
-msgid "Show the 3D editing view"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:765
-msgid "Pre&view"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:765
-msgid "Show the 3D slices preview"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:784
-msgid "Print &Host Upload Queue"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:784
-msgid "Display the Print Host Upload Queue window"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:794
+#: src/slic3r/GUI/MainFrame.cpp:955 src/slic3r/GUI/MainFrame.cpp:1275
msgid "Iso"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:794
+#: src/slic3r/GUI/MainFrame.cpp:955 src/slic3r/GUI/MainFrame.cpp:1275
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:798 src/libslic3r/PrintConfig.cpp:2139
-#: src/libslic3r/PrintConfig.cpp:2148
+#: src/slic3r/GUI/MainFrame.cpp:959 src/slic3r/GUI/MainFrame.cpp:1279
+#: src/libslic3r/PrintConfig.cpp:2275 src/libslic3r/PrintConfig.cpp:2284
msgid "Top"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:798
+#: src/slic3r/GUI/MainFrame.cpp:959 src/slic3r/GUI/MainFrame.cpp:1279
msgid "Top View"
msgstr ""
#. TRN To be shown in the main menu View->Bottom
#. TRN To be shown in Print Settings "Bottom solid layers"
#. TRN To be shown in Print Settings "Top solid layers"
-#: src/slic3r/GUI/MainFrame.cpp:801 src/libslic3r/PrintConfig.cpp:174
-#: src/libslic3r/PrintConfig.cpp:183
+#: src/slic3r/GUI/MainFrame.cpp:962 src/slic3r/GUI/MainFrame.cpp:1282
+#: src/libslic3r/PrintConfig.cpp:208 src/libslic3r/PrintConfig.cpp:217
msgid "Bottom"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:801
+#: src/slic3r/GUI/MainFrame.cpp:962 src/slic3r/GUI/MainFrame.cpp:1282
msgid "Bottom View"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:803
+#: src/slic3r/GUI/MainFrame.cpp:964 src/slic3r/GUI/MainFrame.cpp:1284
msgid "Front"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:803
+#: src/slic3r/GUI/MainFrame.cpp:964 src/slic3r/GUI/MainFrame.cpp:1284
msgid "Front View"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:805 src/libslic3r/PrintConfig.cpp:1632
+#: src/slic3r/GUI/MainFrame.cpp:966 src/slic3r/GUI/MainFrame.cpp:1286
+#: src/libslic3r/PrintConfig.cpp:1740
msgid "Rear"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:805
+#: src/slic3r/GUI/MainFrame.cpp:966 src/slic3r/GUI/MainFrame.cpp:1286
msgid "Rear View"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:807
+#: src/slic3r/GUI/MainFrame.cpp:968 src/slic3r/GUI/MainFrame.cpp:1288
msgid "Left"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:807
+#: src/slic3r/GUI/MainFrame.cpp:968 src/slic3r/GUI/MainFrame.cpp:1288
msgid "Left View"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:809
+#: src/slic3r/GUI/MainFrame.cpp:970 src/slic3r/GUI/MainFrame.cpp:1290
msgid "Right"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:809
+#: src/slic3r/GUI/MainFrame.cpp:970 src/slic3r/GUI/MainFrame.cpp:1290
msgid "Right View"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:814 src/slic3r/GUI/MainFrame.cpp:822
+#: src/slic3r/GUI/MainFrame.cpp:986
+msgid "&New Project"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:986
+msgid "Start a new project"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:989
+msgid "&Open Project"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:989
+msgid "Open a project file"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:994
+msgid "Recent projects"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1003
+msgid ""
+"The selected project is no longer available.\n"
+"Do you want to remove it from the recent projects list?"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1003 src/slic3r/GUI/MainFrame.cpp:1486
+#: src/slic3r/GUI/PrintHostDialogs.cpp:231
+msgid "Error"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1028
+msgid "&Save Project"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1028
+msgid "Save current project file"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1032 src/slic3r/GUI/MainFrame.cpp:1034
+msgid "Save Project &as"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1032 src/slic3r/GUI/MainFrame.cpp:1034
+msgid "Save current project file as"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1042
+msgid "Import STL/OBJ/AM&F/3MF"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1042
+msgid "Load a model"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1046
+msgid "Import STL (imperial units)"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1046
+msgid "Load an model saved with imperial units"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1050
+msgid "Import SL1 archive"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1050
+msgid "Load an SL1 output archive"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1055
+msgid "Import &Config"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1055
+msgid "Load exported configuration file"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1058
+msgid "Import Config from &project"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1058
+msgid "Load configuration from project file"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1062
+msgid "Import Config &Bundle"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1062
+msgid "Load presets from a bundle"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1065
+msgid "&Import"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1068 src/slic3r/GUI/MainFrame.cpp:1448
+msgid "Export &G-code"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1068
+msgid "Export current plate as G-code"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1072 src/slic3r/GUI/MainFrame.cpp:1449
+msgid "S&end G-code"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1072
+msgid "Send to print current plate as G-code"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1076
+msgid "Export G-code to SD card / Flash drive"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1076
+msgid "Export current plate as G-code to SD card / Flash drive"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1080
+msgid "Export plate as &STL"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1080
+msgid "Export current plate as STL"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1083
+msgid "Export plate as STL &including supports"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1083
+msgid "Export current plate as STL including supports"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1086
+msgid "Export plate as &AMF"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1086
+msgid "Export current plate as AMF"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1090 src/slic3r/GUI/MainFrame.cpp:1395
+msgid "Export &toolpaths as OBJ"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1090 src/slic3r/GUI/MainFrame.cpp:1395
+msgid "Export toolpaths as OBJ"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1094
+msgid "Export &Config"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1094
+msgid "Export current configuration to file"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1097
+msgid "Export Config &Bundle"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1097
+msgid "Export all presets to file"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1100
+msgid "Export Config Bundle With Physical Printers"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1100
+msgid "Export all presets including physical printers to file"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1103
+msgid "&Export"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1105
+msgid "Ejec&t SD card / Flash drive"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1105
+msgid "Eject SD card / Flash drive after the G-code was exported to it."
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1113
+msgid "Quick Slice"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1113
+msgid "Slice a file into a G-code"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1119
+msgid "Quick Slice and Save As"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1119
+msgid "Slice a file into a G-code, save as"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1125
+msgid "Repeat Last Quick Slice"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1125
+msgid "Repeat last quick slice"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1133
+msgid "(Re)Slice No&w"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1133
+msgid "Start new slicing process"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1137
+msgid "&Repair STL file"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1137
+msgid "Automatically repair an STL file"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1141
+msgid "&G-code preview"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1144 src/slic3r/GUI/MainFrame.cpp:1402
+msgid "&Quit"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1144 src/slic3r/GUI/MainFrame.cpp:1402
+#, possible-c-format
+msgid "Quit %s"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1171
+msgid "&Select all"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1172
+msgid "Selects all objects"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1174
+msgid "D&eselect all"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1175
+msgid "Deselects all objects"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1178
+msgid "&Delete selected"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1179
+msgid "Deletes the current selection"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1181
+msgid "Delete &all"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1182
+msgid "Deletes all objects"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1186
+msgid "&Undo"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1189
+msgid "&Redo"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1194
+msgid "&Copy"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1195
+msgid "Copy selection to clipboard"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1197
+msgid "&Paste"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1198
+msgid "Paste clipboard"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1202
+msgid "Re&load from disk"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1203
+msgid "Reload the plater from disk"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1207
+msgid "Searc&h"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1208
+msgid "Find option"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1216
+msgid "&Plater Tab"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1216
+msgid "Show the plater"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1221
+msgid "P&rint Settings Tab"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1221
+msgid "Show the print settings"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1224 src/slic3r/GUI/MainFrame.cpp:1451
+msgid "&Filament Settings Tab"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1224
+msgid "Show the filament settings"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1228
+msgid "Print&er Settings Tab"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1228
+msgid "Show the printer settings"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1234
+msgid "3&D"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1234
+msgid "Show the 3D editing view"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1237
+msgid "Pre&view"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1237
+msgid "Show the 3D slices preview"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1258
+msgid "Print &Host Upload Queue"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1258
+msgid "Display the Print Host Upload Queue window"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1294
msgid "Show &labels"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:814 src/slic3r/GUI/MainFrame.cpp:822
+#: src/slic3r/GUI/MainFrame.cpp:1294
msgid "Show object/instance labels in 3D scene"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:817
-msgid "Show &slope"
+#: src/slic3r/GUI/MainFrame.cpp:1297
+msgid "&Collapse sidebar"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:817
-msgid "Objects coloring using faces' slope"
+#: src/slic3r/GUI/MainFrame.cpp:1297 src/slic3r/GUI/Plater.cpp:2144
+msgid "Collapse sidebar"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:820
-msgid "&Options"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:831
-msgid "Prusa 3D &Drivers"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:831
-msgid "Open the Prusa3D drivers download page in your browser"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:833
-msgid "Software &Releases"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:833
-msgid "Open the software releases page in your browser"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:839
-#, possible-c-format
-msgid "%s &Website"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:840
-#, possible-c-format
-msgid "Open the %s website in your browser"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:846
-msgid "System &Info"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:846
-msgid "Show system information"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:848
-msgid "Show &Configuration Folder"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:848
-msgid "Show user configuration folder (datadir)"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:850
-msgid "Report an I&ssue"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:850
-#, possible-c-format
-msgid "Report an issue on %s"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:852
-#, possible-c-format
-msgid "&About %s"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:852
-msgid "Show about dialog"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:855
-msgid "Show the list of the keyboard shortcuts"
-msgstr ""
-
-#: src/slic3r/GUI/MainFrame.cpp:868
+#: src/slic3r/GUI/MainFrame.cpp:1347 src/slic3r/GUI/MainFrame.cpp:1357
+#: src/slic3r/GUI/MainFrame.cpp:1417
msgid "&File"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:869
+#: src/slic3r/GUI/MainFrame.cpp:1348 src/slic3r/GUI/MainFrame.cpp:1358
msgid "&Edit"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:870
+#: src/slic3r/GUI/MainFrame.cpp:1349 src/slic3r/GUI/MainFrame.cpp:1359
msgid "&Window"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:871
+#: src/slic3r/GUI/MainFrame.cpp:1350 src/slic3r/GUI/MainFrame.cpp:1360
+#: src/slic3r/GUI/MainFrame.cpp:1418
msgid "&View"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:874
+#: src/slic3r/GUI/MainFrame.cpp:1353 src/slic3r/GUI/MainFrame.cpp:1363
+#: src/slic3r/GUI/MainFrame.cpp:1423
msgid "&Help"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:896
+#: src/slic3r/GUI/MainFrame.cpp:1391
+msgid "&Open G-code"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1391
+msgid "Open a G-code file"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1398
+msgid "Open &PrusaSlicer"
+msgstr ""
+
+#: src/slic3r/GUI/MainFrame.cpp:1448
msgid "E&xport"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:897
+#: src/slic3r/GUI/MainFrame.cpp:1449
msgid "S&end to print"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:899
+#: src/slic3r/GUI/MainFrame.cpp:1451
msgid "Mate&rial Settings Tab"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:920
+#: src/slic3r/GUI/MainFrame.cpp:1474
msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:931
+#: src/slic3r/GUI/MainFrame.cpp:1485
msgid "No previously sliced file."
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:937
+#: src/slic3r/GUI/MainFrame.cpp:1491
msgid "Previously sliced file ("
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:937
+#: src/slic3r/GUI/MainFrame.cpp:1491
msgid ") not found."
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:938
+#: src/slic3r/GUI/MainFrame.cpp:1492
msgid "File Not Found"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:973
+#: src/slic3r/GUI/MainFrame.cpp:1527
#, possible-c-format
msgid "Save %s file as:"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:973
+#: src/slic3r/GUI/MainFrame.cpp:1527
msgid "SVG"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:973
+#: src/slic3r/GUI/MainFrame.cpp:1527
msgid "G-code"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:985
+#: src/slic3r/GUI/MainFrame.cpp:1539
msgid "Save zip file as:"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:994 src/slic3r/GUI/Plater.cpp:3121
-#: src/slic3r/GUI/Plater.cpp:5122 src/slic3r/GUI/Tab.cpp:1289
-#: src/slic3r/GUI/Tab.cpp:3731
+#: src/slic3r/GUI/MainFrame.cpp:1548 src/slic3r/GUI/Plater.cpp:2921
+#: src/slic3r/GUI/Plater.cpp:5234 src/slic3r/GUI/Tab.cpp:1551
+#: src/slic3r/GUI/Tab.cpp:4081
msgid "Slicing"
msgstr ""
#. TRN "Processing input_file_basename"
-#: src/slic3r/GUI/MainFrame.cpp:996
+#: src/slic3r/GUI/MainFrame.cpp:1550
#, possible-c-format
msgid "Processing %s"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:1019
+#: src/slic3r/GUI/MainFrame.cpp:1573
msgid " was successfully sliced."
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:1021
+#: src/slic3r/GUI/MainFrame.cpp:1575
msgid "Slicing Done!"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:1036
+#: src/slic3r/GUI/MainFrame.cpp:1590
msgid "Select the STL file to repair:"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:1046
+#: src/slic3r/GUI/MainFrame.cpp:1600
msgid "Save OBJ file (less prone to coordinate errors than STL) as:"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:1058
+#: src/slic3r/GUI/MainFrame.cpp:1612
msgid "Your file was repaired."
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:1058 src/libslic3r/PrintConfig.cpp:3469
+#: src/slic3r/GUI/MainFrame.cpp:1612 src/libslic3r/PrintConfig.cpp:3646
msgid "Repair"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:1072
+#: src/slic3r/GUI/MainFrame.cpp:1626
msgid "Save configuration as:"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:1091 src/slic3r/GUI/MainFrame.cpp:1153
+#: src/slic3r/GUI/MainFrame.cpp:1645 src/slic3r/GUI/MainFrame.cpp:1707
msgid "Select configuration to load:"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:1127
+#: src/slic3r/GUI/MainFrame.cpp:1681
msgid "Save presets bundle as:"
msgstr ""
-#: src/slic3r/GUI/MainFrame.cpp:1174
+#: src/slic3r/GUI/MainFrame.cpp:1728
#, possible-c-format
msgid "%d presets successfully imported."
msgstr ""
@@ -3962,32 +4679,36 @@ msgstr ""
msgid "3Dconnexion settings"
msgstr ""
-#: src/slic3r/GUI/Mouse3DController.cpp:278
+#: src/slic3r/GUI/Mouse3DController.cpp:274
msgid "Device:"
msgstr ""
-#: src/slic3r/GUI/Mouse3DController.cpp:285
+#: src/slic3r/GUI/Mouse3DController.cpp:279
msgid "Speed:"
msgstr ""
-#: src/slic3r/GUI/Mouse3DController.cpp:289
-#: src/slic3r/GUI/Mouse3DController.cpp:312
+#: src/slic3r/GUI/Mouse3DController.cpp:282
+#: src/slic3r/GUI/Mouse3DController.cpp:303
msgid "Translation"
msgstr ""
-#: src/slic3r/GUI/Mouse3DController.cpp:301
-#: src/slic3r/GUI/Mouse3DController.cpp:312
+#: src/slic3r/GUI/Mouse3DController.cpp:294
+#: src/slic3r/GUI/Mouse3DController.cpp:303
msgid "Zoom"
msgstr ""
-#: src/slic3r/GUI/Mouse3DController.cpp:308
+#: src/slic3r/GUI/Mouse3DController.cpp:300
msgid "Deadzone:"
msgstr ""
-#: src/slic3r/GUI/Mouse3DController.cpp:325
+#: src/slic3r/GUI/Mouse3DController.cpp:315
msgid "Options:"
msgstr ""
+#: src/slic3r/GUI/Mouse3DController.cpp:318
+msgid "Swap Y/Z axes"
+msgstr ""
+
#: src/slic3r/GUI/MsgDialog.cpp:73
#, possible-c-format
msgid "%s error"
@@ -3998,6 +4719,60 @@ msgstr ""
msgid "%s has encountered an error"
msgstr ""
+#: src/slic3r/GUI/NotificationManager.hpp:317
+msgid "Exporting finished."
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.hpp:317
+msgid "Eject drive."
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.hpp:318
+msgid "3D Mouse disconnected."
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.hpp:321
+msgid "Configuration update is available."
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.hpp:321
+msgid "See more."
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.hpp:322
+msgid "New version is available."
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.hpp:322
+msgid "See Releases page."
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.cpp:305
+#: src/slic3r/GUI/NotificationManager.cpp:315
+msgid "More"
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.cpp:631
+#: src/slic3r/GUI/NotificationManager.cpp:748
+msgid "Export G-Code."
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.cpp:667
+#: src/slic3r/GUI/NotificationManager.cpp:683
+#: src/slic3r/GUI/NotificationManager.cpp:694
+msgid "ERROR:"
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.cpp:672
+#: src/slic3r/GUI/NotificationManager.cpp:687
+#: src/slic3r/GUI/NotificationManager.cpp:702
+msgid "WARNING:"
+msgstr ""
+
+#: src/slic3r/GUI/NotificationManager.cpp:751
+msgid "Slicing finished."
+msgstr ""
+
#: src/slic3r/GUI/ObjectDataViewModel.cpp:58
msgid "Instances"
msgstr ""
@@ -4008,8 +4783,8 @@ msgstr ""
msgid "Instance %d"
msgstr ""
-#: src/slic3r/GUI/ObjectDataViewModel.cpp:69 src/slic3r/GUI/Tab.cpp:3585
-#: src/slic3r/GUI/Tab.cpp:3667
+#: src/slic3r/GUI/ObjectDataViewModel.cpp:69 src/slic3r/GUI/Tab.cpp:3928
+#: src/slic3r/GUI/Tab.cpp:4010
msgid "Layers"
msgstr ""
@@ -4017,649 +4792,769 @@ msgstr ""
msgid "Range"
msgstr ""
-#: src/slic3r/GUI/OptionsGroup.cpp:274
+#: src/slic3r/GUI/OpenGLManager.cpp:259
+#, 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/OpenGLManager.cpp:262
+msgid "You may need to update your graphics card driver."
+msgstr ""
+
+#: src/slic3r/GUI/OpenGLManager.cpp:265
+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 ""
+
+#: src/slic3r/GUI/OpenGLManager.cpp:267
+msgid "Unsupported OpenGL version"
+msgstr ""
+
+#: src/slic3r/GUI/OpenGLManager.cpp:275
+#, possible-c-format
+msgid ""
+"Unable to load the following shaders:\n"
+"%s"
+msgstr ""
+
+#: src/slic3r/GUI/OpenGLManager.cpp:276
+msgid "Error loading shaders"
+msgstr ""
+
+#: src/slic3r/GUI/OptionsGroup.cpp:293
msgctxt "Layers"
msgid "Top"
msgstr ""
-#: src/slic3r/GUI/OptionsGroup.cpp:274
+#: src/slic3r/GUI/OptionsGroup.cpp:293
msgctxt "Layers"
msgid "Bottom"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:163
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:55
+msgid "Delete this preset from this printer device"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:85
+msgid "This printer will be shown in the presets list as"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:159
+msgid "Physical Printer"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:165
+msgid "Type here the name of your printer device"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:176
+msgid "Descriptive name for the printer device"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:180
+msgid "Add preset for this printer device"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:209 src/slic3r/GUI/Tab.cpp:2024
+msgid "Print Host upload"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:284
+msgid "Test"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:289
+msgid "Could not get a valid Printer Host reference"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:295
+msgid "Success!"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:319
+msgid ""
+"HTTPS CA file is optional. It is only needed if you use HTTPS with a self-"
+"signed certificate."
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:329
+msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:330
+msgid "Open CA certificate file"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:358
+#: src/libslic3r/PrintConfig.cpp:113
+msgid "HTTPS CA File"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:359
+#, possible-c-format
+msgid ""
+"On this system, %s uses HTTPS certificates from the system Certificate Store "
+"or Keychain."
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:360
+msgid ""
+"To use a custom CA file, please import your CA file into Certificate Store / "
+"Keychain."
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:464
+msgid "The supplied name is empty. It can't be saved."
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:468
+msgid "You should to change a name of your printer device. It can't be saved."
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:476
+msgid "Printer with name \"%1%\" already exists."
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:477
+msgid "Replace?"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:500
+msgid ""
+"Next printer preset(s) is(are) duplicated:%1%Should I add it(they) just once "
+"for the printer \"%2%\" and close the Editing Dialog?"
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:546
+msgid "It's not possible to delete last related preset for the printer."
+msgstr ""
+
+#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:547
+msgid "Infornation"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:167
msgid "Volume"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:164
+#: src/slic3r/GUI/Plater.cpp:168
msgid "Facets"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:165
+#: src/slic3r/GUI/Plater.cpp:169
msgid "Materials"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:168
+#: src/slic3r/GUI/Plater.cpp:172
msgid "Manifold"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:218
+#: src/slic3r/GUI/Plater.cpp:222
msgid "Sliced Info"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:237 src/slic3r/GUI/Plater.cpp:1236
+#: src/slic3r/GUI/Plater.cpp:241 src/slic3r/GUI/Plater.cpp:1141
msgid "Used Filament (m)"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:238
+#: src/slic3r/GUI/Plater.cpp:242 src/slic3r/GUI/Plater.cpp:1153
msgid "Used Filament (mm³)"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:239
+#: src/slic3r/GUI/Plater.cpp:243
msgid "Used Filament (g)"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:240
+#: src/slic3r/GUI/Plater.cpp:244
msgid "Used Material (unit)"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:241
+#: src/slic3r/GUI/Plater.cpp:245
msgid "Cost (money)"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:242 src/slic3r/GUI/Plater.cpp:1223
-#: src/slic3r/GUI/Plater.cpp:1265
-msgid "Estimated printing time"
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:243
+#: src/slic3r/GUI/Plater.cpp:247
msgid "Number of tool changes"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:350
-msgid "Click to edit preset"
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:505
+#: src/slic3r/GUI/Plater.cpp:364
msgid "Select what kind of support do you need"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:507 src/libslic3r/PrintConfig.cpp:1908
-#: src/libslic3r/PrintConfig.cpp:2691
+#: src/slic3r/GUI/Plater.cpp:366 src/libslic3r/PrintConfig.cpp:2043
+#: src/libslic3r/PrintConfig.cpp:2838
msgid "Support on build plate only"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:508 src/slic3r/GUI/Plater.cpp:631
+#: src/slic3r/GUI/Plater.cpp:367 src/slic3r/GUI/Plater.cpp:490
msgid "For support enforcers only"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:509
+#: src/slic3r/GUI/Plater.cpp:368
msgid "Everywhere"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:541 src/slic3r/GUI/Tab.cpp:1185
+#: src/slic3r/GUI/Plater.cpp:400 src/slic3r/GUI/Tab.cpp:1446
msgid "Brim"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:543
+#: src/slic3r/GUI/Plater.cpp:402
msgid ""
"This flag enables the brim that will be printed around each object on the "
"first layer."
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:551
+#: src/slic3r/GUI/Plater.cpp:410
msgid "Purging volumes"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:645
+#: src/slic3r/GUI/Plater.cpp:504
msgid "Select what kind of pad do you need"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:647
+#: src/slic3r/GUI/Plater.cpp:506
msgid "Below object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:648
+#: src/slic3r/GUI/Plater.cpp:507
msgid "Around object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:822
+#: src/slic3r/GUI/Plater.cpp:690
msgid "Print settings"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:823 src/slic3r/GUI/Tab.cpp:1491
-#: src/slic3r/GUI/Tab.cpp:1492
+#: src/slic3r/GUI/Plater.cpp:691 src/slic3r/GUI/Tab.cpp:1770
+#: src/slic3r/GUI/Tab.cpp:1771
msgid "Filament"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:824
+#: src/slic3r/GUI/Plater.cpp:692
msgid "SLA print settings"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:825 src/slic3r/GUI/Preset.cpp:1566
+#: src/slic3r/GUI/Plater.cpp:693 src/libslic3r/Preset.cpp:1303
msgid "SLA material"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:826
+#: src/slic3r/GUI/Plater.cpp:694
msgid "Printer"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:885 src/slic3r/GUI/Plater.cpp:5532
+#: src/slic3r/GUI/Plater.cpp:753 src/slic3r/GUI/Plater.cpp:5707
msgid "Send to printer"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:886
+#: src/slic3r/GUI/Plater.cpp:754
msgid "Remove device"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:899 src/slic3r/GUI/Plater.cpp:3121
-#: src/slic3r/GUI/Plater.cpp:5125
+#: src/slic3r/GUI/Plater.cpp:767 src/slic3r/GUI/Plater.cpp:2921
+#: src/slic3r/GUI/Plater.cpp:5237
msgid "Slice now"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1049
+#: src/slic3r/GUI/Plater.cpp:916
msgid "Hold Shift to Slice & Export G-code"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1159
+#: src/slic3r/GUI/Plater.cpp:1061
#, possible-c-format
msgid "%d (%d shells)"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1164
+#: src/slic3r/GUI/Plater.cpp:1066
#, possible-c-format
msgid "Auto-repaired (%d errors)"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1167
+#: src/slic3r/GUI/Plater.cpp:1069
#, 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:1177
+#: src/slic3r/GUI/Plater.cpp:1079
msgid "Yes"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1198
+#: src/slic3r/GUI/Plater.cpp:1100
msgid "Used Material (ml)"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1201
+#: src/slic3r/GUI/Plater.cpp:1103
msgid "object(s)"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1201
+#: src/slic3r/GUI/Plater.cpp:1103
msgid "supports and pad"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1238 src/slic3r/GUI/Plater.cpp:1252
+#: src/slic3r/GUI/Plater.cpp:1141
+msgid "Used Filament (in)"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:1143 src/slic3r/GUI/Plater.cpp:1160
msgid "objects"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1238 src/slic3r/GUI/Plater.cpp:1252
+#: src/slic3r/GUI/Plater.cpp:1143 src/slic3r/GUI/Plater.cpp:1160
msgid "wipe tower"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1250 src/libslic3r/PrintConfig.cpp:760
-#: src/libslic3r/PrintConfig.cpp:2517 src/libslic3r/PrintConfig.cpp:2518
+#: src/slic3r/GUI/Plater.cpp:1153
+msgid "Used Filament (in³)"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:1158 src/libslic3r/PrintConfig.cpp:796
+#: src/libslic3r/PrintConfig.cpp:2653 src/libslic3r/PrintConfig.cpp:2654
msgid "Cost"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1267 src/libslic3r/PrintConfig.cpp:582
-msgid "Color"
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:1268
-msgid "Pause"
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:1293
+#: src/slic3r/GUI/Plater.cpp:1177 src/slic3r/GUI/Plater.cpp:1224
msgid "normal mode"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1298
+#: src/slic3r/GUI/Plater.cpp:1187 src/slic3r/GUI/Plater.cpp:1235
msgid "stealth mode"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:1402
-msgid "Load File"
+#: src/slic3r/GUI/Plater.cpp:1198 src/libslic3r/PrintConfig.cpp:618
+msgid "Color"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:1405
+msgid "You can open only one .gcode file at a time."
msgstr ""
#: src/slic3r/GUI/Plater.cpp:1406
+msgid "Drag and drop G-code file"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:1436
+msgid "Load File"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:1440
msgid "Load Files"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2207
+#: src/slic3r/GUI/Plater.cpp:1555
+msgid "Optimize Rotation"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:1561
+msgid "Import SLA archive"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:2031
#, possible-c-format
msgid ""
"Unmounting successful. The device %s(%s) can now be safely removed from the "
"computer."
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2210
+#: src/slic3r/GUI/Plater.cpp:2034
#, possible-c-format
msgid "Ejecting of device %s(%s) has failed."
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2223
+#: src/slic3r/GUI/Plater.cpp:2056
msgid "New Project"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2337
+#: src/slic3r/GUI/Plater.cpp:2143
+msgid "Expand sidebar"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:2216
msgid "Loading"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2347
+#: src/slic3r/GUI/Plater.cpp:2226
+msgid "Loading file"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:2309
#, possible-c-format
-msgid "Processing input file %s"
+msgid ""
+"Some object(s) in file %s looks like saved in inches.\n"
+"Should I consider them as a saved in inches and convert them?"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2375
-msgid "You cannot load SLA project with a multi-part object on the bed"
+#: src/slic3r/GUI/Plater.cpp:2311
+msgid "Saved in inches object detected"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2376 src/slic3r/GUI/Tab.cpp:2958
-msgid "Please check your object list before preset changing."
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:2421
+#: src/slic3r/GUI/Plater.cpp:2319
msgid ""
"This file contains several objects positioned at multiple heights.\n"
"Instead of considering them as multiple objects, should I consider\n"
"this file as a single object having multiple parts?"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2424 src/slic3r/GUI/Plater.cpp:2477
+#: src/slic3r/GUI/Plater.cpp:2322 src/slic3r/GUI/Plater.cpp:2375
msgid "Multi-part object detected"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2431
+#: src/slic3r/GUI/Plater.cpp:2329
msgid ""
"This file cannot be loaded in a simple mode. Do you want to switch to an "
"advanced mode?"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2432
+#: src/slic3r/GUI/Plater.cpp:2330
msgid "Detected advanced data"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2454
+#: src/slic3r/GUI/Plater.cpp:2352
#, 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:2474
+#: src/slic3r/GUI/Plater.cpp:2372
msgid ""
"Multiple objects were loaded for a multi-material printer.\n"
"Instead of considering them as multiple objects, should I consider\n"
"these files to represent a single object having multiple parts?"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2490
+#: src/slic3r/GUI/Plater.cpp:2388
msgid "Loaded"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2592
+#: src/slic3r/GUI/Plater.cpp:2490
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:2593
+#: src/slic3r/GUI/Plater.cpp:2491
msgid "Object too large?"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2655
+#: src/slic3r/GUI/Plater.cpp:2553
msgid "Export STL file:"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2662
+#: src/slic3r/GUI/Plater.cpp:2560
msgid "Export AMF file:"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2668
+#: src/slic3r/GUI/Plater.cpp:2566
msgid "Save file as:"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2674
+#: src/slic3r/GUI/Plater.cpp:2572
msgid "Export OBJ file:"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2773
+#: src/slic3r/GUI/Plater.cpp:2673
msgid "Delete Object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2784
+#: src/slic3r/GUI/Plater.cpp:2684
msgid "Reset Project"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2823
-msgid "Optimize Rotation"
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:2869
-msgid "Arranging"
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:2896
-msgid "Could not arrange model objects! Some geometries may be invalid."
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:2902
-msgid "Arranging canceled."
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:2903
-msgid "Arranging done."
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:2919
-msgid "Searching for optimal orientation"
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:2952
-msgid "Orientation search canceled."
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:2953
-msgid "Orientation found."
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:2970
+#: src/slic3r/GUI/Plater.cpp:2763
msgid ""
"The selected object can't be split because it contains more than one volume/"
"material."
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:2981
+#: src/slic3r/GUI/Plater.cpp:2774
msgid "Split to Objects"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3106
+#: src/slic3r/GUI/Plater.cpp:2906 src/slic3r/GUI/Plater.cpp:3583
msgid "Invalid data"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3115
+#: src/slic3r/GUI/Plater.cpp:2915
msgid "Ready to slice"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3153 src/slic3r/GUI/PrintHostDialogs.cpp:232
+#: src/slic3r/GUI/Plater.cpp:2953 src/slic3r/GUI/PrintHostDialogs.cpp:232
msgid "Cancelling"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3170
+#: src/slic3r/GUI/Plater.cpp:2972
msgid "Another export job is currently running."
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3286
+#: src/slic3r/GUI/Plater.cpp:3089
msgid "Please select the file to reload"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3321
+#: src/slic3r/GUI/Plater.cpp:3124
msgid "It is not allowed to change the file to reload"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3321
+#: src/slic3r/GUI/Plater.cpp:3124
msgid "Do you want to retry"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3339
+#: src/slic3r/GUI/Plater.cpp:3142
msgid "Reload from:"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3428
+#: src/slic3r/GUI/Plater.cpp:3233
msgid "Unable to reload:"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3433
+#: src/slic3r/GUI/Plater.cpp:3238
msgid "Error during reload"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3452
+#: src/slic3r/GUI/Plater.cpp:3257
msgid "Reload all from disk"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3473
+#: src/slic3r/GUI/Plater.cpp:3278
msgid "Fix Throught NetFabb"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3672
-msgid "Export failed"
+#: src/slic3r/GUI/Plater.cpp:3543
+msgid "There are active warnings concerning sliced models:\n"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3682 src/slic3r/GUI/PrintHostDialogs.cpp:233
+#: src/slic3r/GUI/Plater.cpp:3554
+msgid "generated warnings"
+msgstr ""
+
+#: src/slic3r/GUI/Plater.cpp:3589 src/slic3r/GUI/PrintHostDialogs.cpp:233
msgid "Cancelled"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3935 src/slic3r/GUI/Plater.cpp:3957
+#: src/slic3r/GUI/Plater.cpp:3849 src/slic3r/GUI/Plater.cpp:3871
msgid "Remove the selected object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3944
+#: src/slic3r/GUI/Plater.cpp:3858
msgid "Add one more instance of the selected object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3946
+#: src/slic3r/GUI/Plater.cpp:3860
msgid "Remove one instance of the selected object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3948
+#: src/slic3r/GUI/Plater.cpp:3862
msgid "Set number of instances"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3948
+#: src/slic3r/GUI/Plater.cpp:3862
msgid "Change the number of instances of the selected object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3967
+#: src/slic3r/GUI/Plater.cpp:3881
msgid "Reload the selected object from disk"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3970
+#: src/slic3r/GUI/Plater.cpp:3884
msgid "Export the selected object as STL file"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3999
+#: src/slic3r/GUI/Plater.cpp:3915
msgid "Along X axis"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:3999
+#: src/slic3r/GUI/Plater.cpp:3915
msgid "Mirror the selected object along the X axis"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4001
+#: src/slic3r/GUI/Plater.cpp:3917
msgid "Along Y axis"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4001
+#: src/slic3r/GUI/Plater.cpp:3917
msgid "Mirror the selected object along the Y axis"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4003
+#: src/slic3r/GUI/Plater.cpp:3919
msgid "Along Z axis"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4003
+#: src/slic3r/GUI/Plater.cpp:3919
msgid "Mirror the selected object along the Z axis"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4006
+#: src/slic3r/GUI/Plater.cpp:3922
msgid "Mirror"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4006
+#: src/slic3r/GUI/Plater.cpp:3922
msgid "Mirror the selected object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4018
+#: src/slic3r/GUI/Plater.cpp:3934
msgid "To objects"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4018 src/slic3r/GUI/Plater.cpp:4038
+#: src/slic3r/GUI/Plater.cpp:3934 src/slic3r/GUI/Plater.cpp:3954
msgid "Split the selected object into individual objects"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4020
+#: src/slic3r/GUI/Plater.cpp:3936
msgid "To parts"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4020 src/slic3r/GUI/Plater.cpp:4052
+#: src/slic3r/GUI/Plater.cpp:3936 src/slic3r/GUI/Plater.cpp:3972
msgid "Split the selected object into individual sub-parts"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4023 src/slic3r/GUI/Plater.cpp:4038
-#: src/slic3r/GUI/Plater.cpp:4052 src/libslic3r/PrintConfig.cpp:3493
+#: src/slic3r/GUI/Plater.cpp:3939 src/slic3r/GUI/Plater.cpp:3954
+#: src/slic3r/GUI/Plater.cpp:3972 src/libslic3r/PrintConfig.cpp:3670
msgid "Split"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4023
+#: src/slic3r/GUI/Plater.cpp:3939
msgid "Split the selected object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4044
-msgid "Optimize orientation"
-msgstr ""
-
-#: src/slic3r/GUI/Plater.cpp:4044
+#: src/slic3r/GUI/Plater.cpp:3962
msgid "Optimize the rotation of the object for better print results."
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4121
+#: src/slic3r/GUI/Plater.cpp:4044
msgid "3D editor view"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4428
+#: src/slic3r/GUI/Plater.cpp:4423
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:4604
+#: src/slic3r/GUI/Plater.cpp:4627
msgid "Load Project"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4632
+#: src/slic3r/GUI/Plater.cpp:4655
msgid "Import Object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4636
+#: src/slic3r/GUI/Plater.cpp:4659
msgid "Import Objects"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4705
+#: src/slic3r/GUI/Plater.cpp:4774
msgid "All objects will be removed, continue?"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4713
+#: src/slic3r/GUI/Plater.cpp:4782
msgid "Delete Selected Objects"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4721
+#: src/slic3r/GUI/Plater.cpp:4790
msgid "Increase Instances"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4756
+#: src/slic3r/GUI/Plater.cpp:4824
msgid "Decrease Instances"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4787
+#: src/slic3r/GUI/Plater.cpp:4855
msgid "Enter the number of copies:"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4788
+#: src/slic3r/GUI/Plater.cpp:4856
msgid "Copies of the selected object"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4792
+#: src/slic3r/GUI/Plater.cpp:4860
#, possible-c-format
msgid "Set numbers of copies to %d"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4822
+#: src/slic3r/GUI/Plater.cpp:4921
msgid "Cut by Plane"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4873
+#: src/slic3r/GUI/Plater.cpp:4975
msgid "Save G-code file as:"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:4873
+#: src/slic3r/GUI/Plater.cpp:4975
msgid "Save SL1 file as:"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:5008
+#: src/slic3r/GUI/Plater.cpp:5118
#, possible-c-format
msgid "STL file exported to %s"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:5025
+#: src/slic3r/GUI/Plater.cpp:5135
#, possible-c-format
msgid "AMF file exported to %s"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:5028
+#: src/slic3r/GUI/Plater.cpp:5138
#, possible-c-format
msgid "Error exporting AMF file %s"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:5057
+#: src/slic3r/GUI/Plater.cpp:5167
#, possible-c-format
msgid "3MF file exported to %s"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:5062
+#: src/slic3r/GUI/Plater.cpp:5172
#, possible-c-format
msgid "Error exporting 3MF file %s"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:5531
+#: src/slic3r/GUI/Plater.cpp:5706
msgid "Export"
msgstr ""
-#: src/slic3r/GUI/Plater.cpp:5617
+#: src/slic3r/GUI/Plater.cpp:5803
msgid "Paste From Clipboard"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:22 src/slic3r/GUI/Tab.cpp:1857
-#: src/slic3r/GUI/Tab.cpp:2069
+#: src/slic3r/GUI/Preferences.cpp:24 src/slic3r/GUI/Tab.cpp:2058
+#: src/slic3r/GUI/Tab.cpp:2240 src/slic3r/GUI/Tab.cpp:2348
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1066
msgid "General"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:39
+#: src/slic3r/GUI/Preferences.cpp:52
msgid "Remember output directory"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:41
+#: src/slic3r/GUI/Preferences.cpp:54
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:47
+#: src/slic3r/GUI/Preferences.cpp:64
msgid "Auto-center parts"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:49
+#: src/slic3r/GUI/Preferences.cpp:66
msgid ""
"If this is enabled, Slic3r will auto-center objects around the print bed "
"center."
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:55
+#: src/slic3r/GUI/Preferences.cpp:72
msgid "Background processing"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:57
+#: src/slic3r/GUI/Preferences.cpp:74
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:66
+#: src/slic3r/GUI/Preferences.cpp:83
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 "
@@ -4667,17 +5562,17 @@ msgid ""
"notification mechanisms, no automatic installation is done."
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:72
+#: src/slic3r/GUI/Preferences.cpp:89
msgid "Export sources full pathnames to 3mf and amf"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:74
+#: src/slic3r/GUI/Preferences.cpp:91
msgid ""
"If enabled, allows the Reload from disk command to automatically find and "
"load the files when invoked."
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:82
+#: src/slic3r/GUI/Preferences.cpp:99
msgid ""
"If enabled, Slic3r downloads updates of built-in system presets in the "
"background. These updates are downloaded into a separate temporary location. "
@@ -4685,263 +5580,383 @@ msgid ""
"startup."
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:87
+#: src/slic3r/GUI/Preferences.cpp:104
msgid "Suppress \" - default - \" presets"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:89
+#: src/slic3r/GUI/Preferences.cpp:106
msgid ""
"Suppress \" - default - \" presets in the Print / Filament / Printer "
"selections once there are any other valid presets available."
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:95
+#: src/slic3r/GUI/Preferences.cpp:112
msgid "Show incompatible print and filament presets"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:97
+#: src/slic3r/GUI/Preferences.cpp:114
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:104
+#: src/slic3r/GUI/Preferences.cpp:120 src/libslic3r/PrintConfig.cpp:3697
+msgid "Single Instance"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:123
+msgid ""
+"On OSX there is always only one instance of app running by default. However "
+"it is allowed to run multiple instances of same app from the command line. "
+"In such case this settings will allow only one instance."
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:125
+msgid ""
+"If this is enabled, when staring PrusaSlicer and another instance of same "
+"PrusaSlicer is running, that instance will be reactivated instead."
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:135
msgid "Use Retina resolution for the 3D scene"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:106
+#: src/slic3r/GUI/Preferences.cpp:137
msgid ""
"If enabled, the 3D scene will be rendered in Retina resolution. If you are "
"experiencing 3D performance problems, disabling this option may help."
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:113
+#: src/slic3r/GUI/Preferences.cpp:154
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:659
+msgid "Ask for unsaved changes when closing application"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:156
+msgid "Always ask for unsaved changes when closing application"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:161
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:660
+msgid "Ask for unsaved changes when selecting new preset"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:163
+msgid "Always ask for unsaved changes when selecting new preset"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:169 src/slic3r/GUI/Preferences.cpp:171
+msgid "Show splash screen"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:178
msgid "Camera"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:119
+#: src/slic3r/GUI/Preferences.cpp:184
msgid "Use perspective camera"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:121
+#: src/slic3r/GUI/Preferences.cpp:186
msgid ""
"If enabled, use perspective camera. If not enabled, use orthographic camera."
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:126
+#: src/slic3r/GUI/Preferences.cpp:191
msgid "Use free camera"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:128
+#: src/slic3r/GUI/Preferences.cpp:193
msgid "If enabled, use free camera. If not enabled, use constrained camera."
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:133
+#: src/slic3r/GUI/Preferences.cpp:200
msgid "GUI"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:143
+#: src/slic3r/GUI/Preferences.cpp:213
+msgid "Show sidebar collapse/expand button"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:215
+msgid ""
+"If enabled, the button for the collapse sidebar will be appeared in top "
+"right corner of the 3D Scene"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:220
msgid "Use custom size for toolbar icons"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:145
+#: src/slic3r/GUI/Preferences.cpp:222
msgid "If enabled, you can change size of toolbar icons manually."
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:172
+#: src/slic3r/GUI/Preferences.cpp:230
+msgid "Sequential slider applied only to top layer"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:232
+msgid ""
+"If enabled, changes made using the sequential slider, in preview, apply only "
+"to gcode top layer, if disabled, changes made using the sequential slider, "
+"in preview, apply to the whole gcode."
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:255
+msgid "Render"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:261
+msgid "Use environment map"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:263
+msgid "If enabled, renders object using the environment map."
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:299
#, possible-c-format
msgid "You need to restart %s to make the changes effective."
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:222
+#: src/slic3r/GUI/Preferences.cpp:376
msgid "Icon size in a respect to the default size"
msgstr ""
-#: src/slic3r/GUI/Preferences.cpp:237
+#: src/slic3r/GUI/Preferences.cpp:391
msgid "Select toolbar icon size in respect to the default one."
msgstr ""
-#: src/slic3r/GUI/Preset.cpp:250
-msgid "modified"
+#: src/slic3r/GUI/Preferences.cpp:422
+msgid "Old regular layout with the tab bar"
msgstr ""
-#: src/slic3r/GUI/Preset.cpp:1151 src/slic3r/GUI/Preset.cpp:1206
-#: src/slic3r/GUI/Preset.cpp:1284 src/slic3r/GUI/Preset.cpp:1326
-#: src/slic3r/GUI/PresetBundle.cpp:1599 src/slic3r/GUI/PresetBundle.cpp:1697
+#: src/slic3r/GUI/Preferences.cpp:423
+msgid "New layout without the tab bar on the plater"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:424
+msgid "Settings will be shown in the non-modal dialog"
+msgstr ""
+
+#: src/slic3r/GUI/Preferences.cpp:433
+msgid "Settings layout mode"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:188
+#: src/slic3r/GUI/PresetComboBoxes.cpp:226
+#: src/slic3r/GUI/PresetComboBoxes.cpp:724
+#: src/slic3r/GUI/PresetComboBoxes.cpp:774
+#: src/slic3r/GUI/PresetComboBoxes.cpp:886
+#: src/slic3r/GUI/PresetComboBoxes.cpp:930
msgid "System presets"
msgstr ""
-#: src/slic3r/GUI/Preset.cpp:1210 src/slic3r/GUI/Preset.cpp:1330
-#: src/slic3r/GUI/PresetBundle.cpp:1702
+#: src/slic3r/GUI/PresetComboBoxes.cpp:230
+#: src/slic3r/GUI/PresetComboBoxes.cpp:778
+#: src/slic3r/GUI/PresetComboBoxes.cpp:934
msgid "User presets"
msgstr ""
-#: src/slic3r/GUI/Preset.cpp:1243
+#: src/slic3r/GUI/PresetComboBoxes.cpp:241
+msgid "Incompatible presets"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:566
+msgid "Click to edit preset"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:622
+#: src/slic3r/GUI/PresetComboBoxes.cpp:669
+msgid "Add/Remove presets"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:627
+#: src/slic3r/GUI/PresetComboBoxes.cpp:674
+msgid "Add physical printer"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:641
+msgid "Edit preset"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:645
+msgid "Edit physical printer"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:652
+msgid "Delete physical printer"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:658
+msgid "Are you sure you want to delete \"%1%\" printer?"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:659
+msgid "Delete Physical Printer"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:789
+#: src/slic3r/GUI/PresetComboBoxes.cpp:948
+msgid "Physical printers"
+msgstr ""
+
+#: src/slic3r/GUI/PresetComboBoxes.cpp:813
msgid "Add/Remove materials"
msgstr ""
-#: src/slic3r/GUI/Preset.cpp:1245
+#: src/slic3r/GUI/PresetComboBoxes.cpp:815
+#: src/slic3r/GUI/PresetComboBoxes.cpp:972
msgid "Add/Remove printers"
msgstr ""
-#: src/slic3r/GUI/Preset.cpp:1564
-msgid "filament"
-msgstr ""
-
-#: src/slic3r/GUI/Preset.cpp:1565
-msgid "SLA print"
-msgstr ""
-
-#: src/slic3r/GUI/PresetBundle.cpp:1729
-msgid "Add/Remove filaments"
-msgstr ""
-
-#: src/slic3r/GUI/PresetHints.cpp:29
+#: 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 ""
-#: src/slic3r/GUI/PresetHints.cpp:36
+#: src/slic3r/GUI/PresetHints.cpp:35
msgid ""
"If estimated layer time is greater, but still below ~%1%s, fan will run at a "
"proportionally decreasing speed between %2%%% and %3%%%."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:40
+#: src/slic3r/GUI/PresetHints.cpp:39
msgid "During the other layers, fan"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:42
+#: src/slic3r/GUI/PresetHints.cpp:41
msgid "Fan"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:48
+#: src/slic3r/GUI/PresetHints.cpp:47
msgid "will always run at %1%%%"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:51
+#: src/slic3r/GUI/PresetHints.cpp:50
msgid "except for the first %1% layers."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:53
+#: src/slic3r/GUI/PresetHints.cpp:52
msgid "except for the first layer."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:55
+#: src/slic3r/GUI/PresetHints.cpp:54
msgid "will be turned off."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:156
+#: src/slic3r/GUI/PresetHints.cpp:155
msgid "external perimeters"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:165
+#: src/slic3r/GUI/PresetHints.cpp:164
msgid "perimeters"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:174
+#: src/slic3r/GUI/PresetHints.cpp:173
msgid "infill"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:184
+#: src/slic3r/GUI/PresetHints.cpp:183
msgid "solid infill"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:192
+#: src/slic3r/GUI/PresetHints.cpp:191
msgid "top solid infill"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:203
+#: src/slic3r/GUI/PresetHints.cpp:202
msgid "support"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:213
+#: src/slic3r/GUI/PresetHints.cpp:212
msgid "support interface"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:219
+#: src/slic3r/GUI/PresetHints.cpp:218
msgid "First layer volumetric"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:219
+#: src/slic3r/GUI/PresetHints.cpp:218
msgid "Bridging volumetric"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:219
+#: src/slic3r/GUI/PresetHints.cpp:218
msgid "Volumetric"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:220
+#: src/slic3r/GUI/PresetHints.cpp:219
msgid "flow rate is maximized"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:223
+#: src/slic3r/GUI/PresetHints.cpp:222
msgid "by the print profile maximum"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:224
+#: src/slic3r/GUI/PresetHints.cpp:223
msgid "when printing"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:225
+#: src/slic3r/GUI/PresetHints.cpp:224
msgid "with a volumetric rate"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:229
+#: src/slic3r/GUI/PresetHints.cpp:228
#, possible-c-format
msgid "%3.2f mm³/s at filament speed %3.2f mm/s."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:247
+#: 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:263
+#: src/slic3r/GUI/PresetHints.cpp:262
#, possible-c-format
msgid "Recommended object thin wall thickness for layer height %.2f and"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:270
+#: src/slic3r/GUI/PresetHints.cpp:269
#, possible-c-format
msgid "%d lines: %.2f mm"
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:274
+#: src/slic3r/GUI/PresetHints.cpp:273
msgid ""
"Recommended object thin wall thickness: Not available due to excessively "
"small extrusion width."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:304
+#: src/slic3r/GUI/PresetHints.cpp:302
msgid ""
"Top / bottom shell thickness hint: Not available due to invalid layer height."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:317
+#: src/slic3r/GUI/PresetHints.cpp:315
msgid "Top shell is %1% mm thick for layer height %2% mm."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:320
+#: src/slic3r/GUI/PresetHints.cpp:318
msgid "Minimum top shell thickness is %1% mm."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:323
+#: src/slic3r/GUI/PresetHints.cpp:321
msgid "Top is open."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:336
+#: src/slic3r/GUI/PresetHints.cpp:334
msgid "Bottom shell is %1% mm thick for layer height %2% mm."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:339
+#: src/slic3r/GUI/PresetHints.cpp:337
msgid "Minimum bottom shell thickness is %1% mm."
msgstr ""
-#: src/slic3r/GUI/PresetHints.cpp:342
+#: src/slic3r/GUI/PresetHints.cpp:340
msgid "Bottom is open."
msgstr ""
@@ -4961,35 +5976,35 @@ msgstr ""
msgid "Use forward slashes ( / ) as a directory separator if needed."
msgstr ""
-#: src/slic3r/GUI/PrintHostDialogs.cpp:149
+#: src/slic3r/GUI/PrintHostDialogs.cpp:147
msgid "ID"
msgstr ""
-#: src/slic3r/GUI/PrintHostDialogs.cpp:150
+#: src/slic3r/GUI/PrintHostDialogs.cpp:148
msgid "Progress"
msgstr ""
-#: src/slic3r/GUI/PrintHostDialogs.cpp:151
+#: src/slic3r/GUI/PrintHostDialogs.cpp:149
msgid "Status"
msgstr ""
-#: src/slic3r/GUI/PrintHostDialogs.cpp:152
+#: src/slic3r/GUI/PrintHostDialogs.cpp:150
msgid "Host"
msgstr ""
-#: src/slic3r/GUI/PrintHostDialogs.cpp:153
+#: src/slic3r/GUI/PrintHostDialogs.cpp:151
msgid "Filename"
msgstr ""
-#: src/slic3r/GUI/PrintHostDialogs.cpp:154
+#: src/slic3r/GUI/PrintHostDialogs.cpp:152
msgid "Error Message"
msgstr ""
-#: src/slic3r/GUI/PrintHostDialogs.cpp:157
+#: src/slic3r/GUI/PrintHostDialogs.cpp:155
msgid "Cancel selected"
msgstr ""
-#: src/slic3r/GUI/PrintHostDialogs.cpp:159
+#: src/slic3r/GUI/PrintHostDialogs.cpp:157
msgid "Show error message"
msgstr ""
@@ -5014,17 +6029,13 @@ msgstr ""
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:83
-#: src/libslic3r/PrintConfig.cpp:644 src/libslic3r/PrintConfig.cpp:688
-#: src/libslic3r/PrintConfig.cpp:703 src/libslic3r/PrintConfig.cpp:2415
-#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2534
-#: src/libslic3r/PrintConfig.cpp:2542 src/libslic3r/PrintConfig.cpp:2550
-#: src/libslic3r/PrintConfig.cpp:2557 src/libslic3r/PrintConfig.cpp:2565
-#: src/libslic3r/PrintConfig.cpp:2573
+#: src/libslic3r/PrintConfig.cpp:680 src/libslic3r/PrintConfig.cpp:724
+#: src/libslic3r/PrintConfig.cpp:739 src/libslic3r/PrintConfig.cpp:2551
+#: src/libslic3r/PrintConfig.cpp:2560 src/libslic3r/PrintConfig.cpp:2670
+#: src/libslic3r/PrintConfig.cpp:2678 src/libslic3r/PrintConfig.cpp:2686
+#: src/libslic3r/PrintConfig.cpp:2693 src/libslic3r/PrintConfig.cpp:2701
+#: src/libslic3r/PrintConfig.cpp:2709
msgid "s"
msgstr ""
@@ -5032,441 +6043,484 @@ msgstr ""
msgid "Volumetric speed"
msgstr ""
-#: src/slic3r/GUI/RammingChart.cpp:81 src/libslic3r/PrintConfig.cpp:601
-#: src/libslic3r/PrintConfig.cpp:1250
+#: src/slic3r/GUI/RammingChart.cpp:81 src/libslic3r/PrintConfig.cpp:637
+#: src/libslic3r/PrintConfig.cpp:1358
msgid "mm³/s"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:147
+#: src/slic3r/GUI/SavePresetDialog.cpp:72
+#, possible-c-format
+msgid "Save %s as:"
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:125
+msgid "the following suffix is not allowed:"
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:131
+msgid "The supplied name is not available."
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:137
+msgid "Cannot overwrite a system profile."
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:142
+msgid "Cannot overwrite an external profile."
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:148
+msgid "Preset with name \"%1%\" already exists."
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:150
+msgid "And selected preset is imcopatible with selected printer."
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:151
+msgid "Note: This preset will be replaced after saving"
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:156
+msgid "The empty name is not available."
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:190
+#: src/slic3r/GUI/SavePresetDialog.cpp:196
+msgid "Save preset"
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:219
+msgctxt "PresetName"
+msgid "Copy"
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:277
+msgid ""
+"You have selected physical printer \"%1%\" \n"
+"with related printer preset \"%2%\""
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:310
+msgid "What would you like to do with \"%1%\" preset after saving?"
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:313
+msgid "Change \"%1%\" to \"%2%\" for this physical printer \"%3%\""
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:314
+msgid "Add \"%1%\" as a next preset for the the physical printer \"%2%\""
+msgstr ""
+
+#: src/slic3r/GUI/SavePresetDialog.cpp:315
+msgid "Just switch to \"%1%\" preset"
+msgstr ""
+
+#: src/slic3r/GUI/Search.cpp:77 src/slic3r/GUI/Tab.cpp:2378
+msgid "Stealth"
+msgstr ""
+
+#: src/slic3r/GUI/Search.cpp:77 src/slic3r/GUI/Tab.cpp:2372
+msgid "Normal"
+msgstr ""
+
+#: src/slic3r/GUI/Selection.cpp:191
msgid "Selection-Add"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:188
+#: src/slic3r/GUI/Selection.cpp:232
msgid "Selection-Remove"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:220
+#: src/slic3r/GUI/Selection.cpp:264
msgid "Selection-Add Object"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:239
+#: src/slic3r/GUI/Selection.cpp:283
msgid "Selection-Remove Object"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:257
+#: src/slic3r/GUI/Selection.cpp:301
msgid "Selection-Add Instance"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:276
+#: src/slic3r/GUI/Selection.cpp:320
msgid "Selection-Remove Instance"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:377
+#: src/slic3r/GUI/Selection.cpp:421
msgid "Selection-Add All"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:403
+#: src/slic3r/GUI/Selection.cpp:447
msgid "Selection-Remove All"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:946
+#: src/slic3r/GUI/Selection.cpp:988
msgid "Scale To Fit"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:1483
+#: src/slic3r/GUI/Selection.cpp:1515
msgid "Set Printable Instance"
msgstr ""
-#: src/slic3r/GUI/Selection.cpp:1483
+#: src/slic3r/GUI/Selection.cpp:1515
msgid "Set Unprintable Instance"
msgstr ""
-#: src/slic3r/GUI/SysInfoDialog.cpp:78
+#: src/slic3r/GUI/SysInfoDialog.cpp:90 src/slic3r/GUI/SysInfoDialog.cpp:92
msgid "System Information"
msgstr ""
-#: src/slic3r/GUI/SysInfoDialog.cpp:158
+#: src/slic3r/GUI/SysInfoDialog.cpp:177
msgid "Copy to Clipboard"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:51 src/libslic3r/PrintConfig.cpp:265
+#: src/slic3r/GUI/Tab.cpp:101 src/libslic3r/PrintConfig.cpp:299
msgid "Compatible printers"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:52
+#: src/slic3r/GUI/Tab.cpp:102
msgid "Select the printers this profile is compatible with."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:57 src/libslic3r/PrintConfig.cpp:280
+#: src/slic3r/GUI/Tab.cpp:107 src/libslic3r/PrintConfig.cpp:314
msgid "Compatible print profiles"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:58
+#: src/slic3r/GUI/Tab.cpp:108
msgid "Select the print profiles this profile is compatible with."
msgstr ""
#. TRN "Save current Settings"
-#: src/slic3r/GUI/Tab.cpp:134
+#: src/slic3r/GUI/Tab.cpp:203
#, possible-c-format
msgid "Save current %s"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:135
+#: src/slic3r/GUI/Tab.cpp:204
msgid "Delete this preset"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:140
+#: src/slic3r/GUI/Tab.cpp:210
msgid ""
"Hover the cursor over buttons to find more information \n"
"or click this button."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:248
-msgid "Add a new printer"
+#: src/slic3r/GUI/Tab.cpp:214
+msgid "Click to start a search or use %1% shortcut"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:970
+#: src/slic3r/GUI/Tab.cpp:1224
msgid "Detach from system preset"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:982
+#: src/slic3r/GUI/Tab.cpp:1237
msgid ""
"A copy of the current system preset will be created, which will be detached "
"from the system preset."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:983
+#: src/slic3r/GUI/Tab.cpp:1238
msgid ""
"The current custom preset will be detached from the parent system preset."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:986
+#: src/slic3r/GUI/Tab.cpp:1241
msgid "Modifications to the current profile will be saved."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:989
+#: src/slic3r/GUI/Tab.cpp:1244
msgid ""
"This action is not revertable.\n"
"Do you want to proceed?"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:991
+#: src/slic3r/GUI/Tab.cpp:1246
msgid "Detach preset"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1017
+#: src/slic3r/GUI/Tab.cpp:1272
msgid "This is a default preset."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1019
+#: src/slic3r/GUI/Tab.cpp:1274
msgid "This is a system preset."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1021
+#: src/slic3r/GUI/Tab.cpp:1276
msgid "Current preset is inherited from the default preset."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1023
+#: src/slic3r/GUI/Tab.cpp:1278
msgid "Current preset is inherited from"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1027
+#: src/slic3r/GUI/Tab.cpp:1282
msgid "It can't be deleted or modified."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1028
+#: src/slic3r/GUI/Tab.cpp:1283
msgid ""
"Any modifications should be saved as a new preset inherited from this one."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1029
+#: src/slic3r/GUI/Tab.cpp:1284
msgid "To do that please specify a new name for the preset."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1033
+#: src/slic3r/GUI/Tab.cpp:1288
msgid "Additional information:"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1039
+#: src/slic3r/GUI/Tab.cpp:1294
msgid "printer model"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1047
+#: src/slic3r/GUI/Tab.cpp:1302
msgid "default print profile"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1050
+#: src/slic3r/GUI/Tab.cpp:1305
msgid "default filament profile"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1064
+#: src/slic3r/GUI/Tab.cpp:1319
msgid "default SLA material profile"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1068
+#: src/slic3r/GUI/Tab.cpp:1323
msgid "default SLA print profile"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1076
+#: src/slic3r/GUI/Tab.cpp:1331
msgid "full profile name"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1077
+#: src/slic3r/GUI/Tab.cpp:1332
msgid "symbolic profile name"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1115 src/slic3r/GUI/Tab.cpp:3665
+#: src/slic3r/GUI/Tab.cpp:1370 src/slic3r/GUI/Tab.cpp:4008
msgid "Layers and perimeters"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1120
+#: src/slic3r/GUI/Tab.cpp:1375
msgid "Vertical shells"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1131
+#: src/slic3r/GUI/Tab.cpp:1386
msgid "Horizontal shells"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1132 src/libslic3r/PrintConfig.cpp:1787
+#: src/slic3r/GUI/Tab.cpp:1387 src/libslic3r/PrintConfig.cpp:1895
msgid "Solid layers"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1136
+#: src/slic3r/GUI/Tab.cpp:1391
msgid "Minimum shell thickness"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1147
+#: src/slic3r/GUI/Tab.cpp:1402
msgid "Quality (slower slicing)"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1165
+#: src/slic3r/GUI/Tab.cpp:1426
msgid "Reducing printing time"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1177
+#: src/slic3r/GUI/Tab.cpp:1438
msgid "Skirt and brim"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1195
+#: src/slic3r/GUI/Tab.cpp:1456
msgid "Raft"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1199
+#: src/slic3r/GUI/Tab.cpp:1460
msgid "Options for support material and raft"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1214
+#: src/slic3r/GUI/Tab.cpp:1475
msgid "Speed for print moves"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1226
+#: src/slic3r/GUI/Tab.cpp:1488
msgid "Speed for non-print moves"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1229
+#: src/slic3r/GUI/Tab.cpp:1491
msgid "Modifiers"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1232
+#: src/slic3r/GUI/Tab.cpp:1494
msgid "Acceleration control (advanced)"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1239
+#: src/slic3r/GUI/Tab.cpp:1501
msgid "Autospeed (advanced)"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1247
+#: src/slic3r/GUI/Tab.cpp:1509
msgid "Multiple Extruders"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1255
+#: src/slic3r/GUI/Tab.cpp:1517
msgid "Ooze prevention"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1273
+#: src/slic3r/GUI/Tab.cpp:1535
msgid "Extrusion width"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1283
+#: src/slic3r/GUI/Tab.cpp:1545
msgid "Overlap"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1286
+#: src/slic3r/GUI/Tab.cpp:1548
msgid "Flow"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1295
+#: src/slic3r/GUI/Tab.cpp:1557
msgid "Other"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1298 src/slic3r/GUI/Tab.cpp:3734
+#: src/slic3r/GUI/Tab.cpp:1560 src/slic3r/GUI/Tab.cpp:4084
msgid "Output options"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1299
+#: src/slic3r/GUI/Tab.cpp:1561
msgid "Sequential printing"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1301
+#: src/slic3r/GUI/Tab.cpp:1563
msgid "Extruder clearance (mm)"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1306 src/slic3r/GUI/Tab.cpp:3735
+#: src/slic3r/GUI/Tab.cpp:1568 src/slic3r/GUI/Tab.cpp:4085
msgid "Output file"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1313 src/libslic3r/PrintConfig.cpp:1453
+#: src/slic3r/GUI/Tab.cpp:1575 src/libslic3r/PrintConfig.cpp:1561
msgid "Post-processing scripts"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1319 src/slic3r/GUI/Tab.cpp:1320
-#: src/slic3r/GUI/Tab.cpp:1606 src/slic3r/GUI/Tab.cpp:1607
-#: src/slic3r/GUI/Tab.cpp:2045 src/slic3r/GUI/Tab.cpp:2046
-#: src/slic3r/GUI/Tab.cpp:2127 src/slic3r/GUI/Tab.cpp:2128
-#: src/slic3r/GUI/Tab.cpp:3608 src/slic3r/GUI/Tab.cpp:3609
+#: src/slic3r/GUI/Tab.cpp:1581 src/slic3r/GUI/Tab.cpp:1582
+#: src/slic3r/GUI/Tab.cpp:1887 src/slic3r/GUI/Tab.cpp:1888
+#: src/slic3r/GUI/Tab.cpp:2221 src/slic3r/GUI/Tab.cpp:2222
+#: src/slic3r/GUI/Tab.cpp:2297 src/slic3r/GUI/Tab.cpp:2298
+#: src/slic3r/GUI/Tab.cpp:3951 src/slic3r/GUI/Tab.cpp:3952
msgid "Notes"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1326 src/slic3r/GUI/Tab.cpp:1614
-#: src/slic3r/GUI/Tab.cpp:2052 src/slic3r/GUI/Tab.cpp:2134
-#: src/slic3r/GUI/Tab.cpp:3616 src/slic3r/GUI/Tab.cpp:3740
+#: src/slic3r/GUI/Tab.cpp:1588 src/slic3r/GUI/Tab.cpp:1895
+#: src/slic3r/GUI/Tab.cpp:2228 src/slic3r/GUI/Tab.cpp:2304
+#: src/slic3r/GUI/Tab.cpp:3959 src/slic3r/GUI/Tab.cpp:4090
msgid "Dependencies"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1327 src/slic3r/GUI/Tab.cpp:1615
-#: src/slic3r/GUI/Tab.cpp:2053 src/slic3r/GUI/Tab.cpp:2135
-#: src/slic3r/GUI/Tab.cpp:3617 src/slic3r/GUI/Tab.cpp:3741
+#: src/slic3r/GUI/Tab.cpp:1589 src/slic3r/GUI/Tab.cpp:1896
+#: src/slic3r/GUI/Tab.cpp:2229 src/slic3r/GUI/Tab.cpp:2305
+#: src/slic3r/GUI/Tab.cpp:3960 src/slic3r/GUI/Tab.cpp:4091
msgid "Profile dependencies"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1389 src/slic3r/GUI/Tab.cpp:1444
+#: src/slic3r/GUI/Tab.cpp:1669
msgid "Filament Overrides"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1390 src/slic3r/GUI/Tab.cpp:1449
-#: src/slic3r/GUI/Tab.cpp:2365
-msgid "Retraction"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1499 src/libslic3r/PrintConfig.cpp:2074
+#: src/slic3r/GUI/Tab.cpp:1779
msgid "Temperature"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1505
+#: src/slic3r/GUI/Tab.cpp:1785
msgid "Bed"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1510
+#: src/slic3r/GUI/Tab.cpp:1790
msgid "Cooling"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1511 src/libslic3r/PrintConfig.cpp:1355
-#: src/libslic3r/PrintConfig.cpp:2207
+#: src/slic3r/GUI/Tab.cpp:1791 src/libslic3r/PrintConfig.cpp:1463
+#: src/libslic3r/PrintConfig.cpp:2343
msgid "Enable"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1522
+#: src/slic3r/GUI/Tab.cpp:1802
msgid "Fan settings"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1531
+#: src/slic3r/GUI/Tab.cpp:1811
msgid "Cooling thresholds"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1537
+#: src/slic3r/GUI/Tab.cpp:1817
msgid "Filament properties"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1544
+#: src/slic3r/GUI/Tab.cpp:1824
msgid "Print speed override"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1554
+#: src/slic3r/GUI/Tab.cpp:1834
msgid "Wipe tower parameters"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1557
+#: src/slic3r/GUI/Tab.cpp:1837
msgid "Toolchange parameters with single extruder MM printers"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1571
+#: src/slic3r/GUI/Tab.cpp:1850
msgid "Ramming settings"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1593 src/slic3r/GUI/Tab.cpp:2008
+#: src/slic3r/GUI/Tab.cpp:1872 src/slic3r/GUI/Tab.cpp:2160
+#: src/libslic3r/PrintConfig.cpp:1978
msgid "Custom G-code"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1594 src/slic3r/GUI/Tab.cpp:2009
-#: src/libslic3r/PrintConfig.cpp:1820 src/libslic3r/PrintConfig.cpp:1835
+#: src/slic3r/GUI/Tab.cpp:1873 src/slic3r/GUI/Tab.cpp:2161
+#: src/libslic3r/PrintConfig.cpp:1928 src/libslic3r/PrintConfig.cpp:1943
msgid "Start G-code"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1600 src/slic3r/GUI/Tab.cpp:2015
-#: src/libslic3r/PrintConfig.cpp:385 src/libslic3r/PrintConfig.cpp:395
+#: src/slic3r/GUI/Tab.cpp:1880 src/slic3r/GUI/Tab.cpp:2168
+#: src/libslic3r/PrintConfig.cpp:419 src/libslic3r/PrintConfig.cpp:429
msgid "End G-code"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1649
+#: src/slic3r/GUI/Tab.cpp:1930
msgid "Volumetric flow hints not available"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1735 src/slic3r/GUI/Tab.cpp:1948
-msgid "Test"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1744
-msgid "Could not get a valid Printer Host reference"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1750 src/slic3r/GUI/Tab.cpp:1961
-msgid "Success!"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1770
+#: src/slic3r/GUI/Tab.cpp:2026
msgid ""
-"HTTPS CA file is optional. It is only needed if you use HTTPS with a self-"
-"signed certificate."
+"Note: All parameters from this group are moved to the Physical Printer "
+"settings (see changelog).\n"
+"\n"
+"A new Physical Printer profile is created by clicking on the \"cog\" icon "
+"right of the Printer profiles combo box, by selecting the \"add or remove "
+"printers\" item in the Printer combo box. The Physical Printer profile "
+"editor opens also when clicking on the \"cog\" icon in the Printer settings "
+"tab. The Physical Printer profiles are being stored into PrusaSlicer/"
+"physical_printer directory."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1785
-msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1786
-msgid "Open CA certificate file"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1813 src/libslic3r/PrintConfig.cpp:111
-msgid "HTTPS CA File"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1814
-#, possible-c-format
-msgid ""
-"On this system, %s uses HTTPS certificates from the system Certificate Store "
-"or Keychain."
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1815
-msgid ""
-"To use a custom CA file, please import your CA file into Certificate Store / "
-"Keychain."
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1858 src/slic3r/GUI/Tab.cpp:2070
+#: src/slic3r/GUI/Tab.cpp:2059 src/slic3r/GUI/Tab.cpp:2241
msgid "Size and coordinates"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1867
+#: src/slic3r/GUI/Tab.cpp:2068 src/slic3r/GUI/UnsavedChangesDialog.cpp:1066
msgid "Capabilities"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1872
+#: src/slic3r/GUI/Tab.cpp:2073
msgid "Number of extruders of the printer."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1900
+#: src/slic3r/GUI/Tab.cpp:2101
msgid ""
"Single Extruder Multi Material is selected, \n"
"and all extruders must have the same diameter.\n"
@@ -5474,256 +6528,227 @@ msgid ""
"nozzle diameter value?"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1903 src/slic3r/GUI/Tab.cpp:2335
-#: src/libslic3r/PrintConfig.cpp:1326
+#: src/slic3r/GUI/Tab.cpp:2104 src/slic3r/GUI/Tab.cpp:2509
+#: src/libslic3r/PrintConfig.cpp:1434
msgid "Nozzle diameter"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:1933
-msgid "USB/Serial connection"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1934 src/libslic3r/PrintConfig.cpp:1661
-msgid "Serial port"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1939
-msgid "Rescan serial ports"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1961
-msgid "Connection to printer works correctly."
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1964
-msgid "Connection failed."
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:1977 src/slic3r/GUI/Tab.cpp:2122
-msgid "Print Host upload"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:2021 src/libslic3r/PrintConfig.cpp:153
+#: src/slic3r/GUI/Tab.cpp:2175 src/libslic3r/PrintConfig.cpp:187
msgid "Before layer change G-code"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2027 src/libslic3r/PrintConfig.cpp:1080
+#: src/slic3r/GUI/Tab.cpp:2182 src/libslic3r/PrintConfig.cpp:1173
msgid "After layer change G-code"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2033 src/libslic3r/PrintConfig.cpp:2100
+#: src/slic3r/GUI/Tab.cpp:2189 src/libslic3r/PrintConfig.cpp:2236
msgid "Tool change G-code"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2039
+#: src/slic3r/GUI/Tab.cpp:2196
msgid "Between objects G-code (for sequential printing)"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2077
+#: src/slic3r/GUI/Tab.cpp:2203
+msgid "Color Change G-code"
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:2209 src/libslic3r/PrintConfig.cpp:1969
+msgid "Pause Print G-code"
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:2215
+msgid "Template Custom G-code"
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:2248
msgid "Display"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2092
+#: src/slic3r/GUI/Tab.cpp:2263
msgid "Tilt"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2093
+#: src/slic3r/GUI/Tab.cpp:2264
msgid "Tilt time"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2099 src/slic3r/GUI/Tab.cpp:3592
+#: src/slic3r/GUI/Tab.cpp:2270 src/slic3r/GUI/Tab.cpp:3935
msgid "Corrections"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2116 src/slic3r/GUI/Tab.cpp:3588
+#: src/slic3r/GUI/Tab.cpp:2287 src/slic3r/GUI/Tab.cpp:3931
msgid "Exposure"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2183 src/slic3r/GUI/Tab.cpp:2268
-#: src/libslic3r/PrintConfig.cpp:1129 src/libslic3r/PrintConfig.cpp:1146
-#: src/libslic3r/PrintConfig.cpp:1163 src/libslic3r/PrintConfig.cpp:1179
-#: src/libslic3r/PrintConfig.cpp:1189 src/libslic3r/PrintConfig.cpp:1199
-#: src/libslic3r/PrintConfig.cpp:1209
+#: src/slic3r/GUI/Tab.cpp:2346 src/slic3r/GUI/Tab.cpp:2442
+#: src/libslic3r/PrintConfig.cpp:1202 src/libslic3r/PrintConfig.cpp:1237
+#: src/libslic3r/PrintConfig.cpp:1254 src/libslic3r/PrintConfig.cpp:1271
+#: src/libslic3r/PrintConfig.cpp:1287 src/libslic3r/PrintConfig.cpp:1297
+#: src/libslic3r/PrintConfig.cpp:1307 src/libslic3r/PrintConfig.cpp:1317
msgid "Machine limits"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2197
+#: src/slic3r/GUI/Tab.cpp:2371
msgid "Values in this column are for Normal mode"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2198
-msgid "Normal"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:2203
+#: src/slic3r/GUI/Tab.cpp:2377
msgid "Values in this column are for Stealth mode"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2204
-msgid "Stealth"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:2212
+#: src/slic3r/GUI/Tab.cpp:2386
msgid "Maximum feedrates"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2217
+#: src/slic3r/GUI/Tab.cpp:2391
msgid "Maximum accelerations"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2224
+#: src/slic3r/GUI/Tab.cpp:2398
msgid "Jerk limits"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2229
+#: src/slic3r/GUI/Tab.cpp:2403
msgid "Minimum feedrates"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2293 src/slic3r/GUI/Tab.cpp:2301
+#: src/slic3r/GUI/Tab.cpp:2467 src/slic3r/GUI/Tab.cpp:2475
msgid "Single extruder MM setup"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2302
+#: src/slic3r/GUI/Tab.cpp:2476
msgid "Single extruder multimaterial parameters"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2333
+#: src/slic3r/GUI/Tab.cpp:2507
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:2357
+#: src/slic3r/GUI/Tab.cpp:2531
msgid "Layer height limits"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2362
+#: src/slic3r/GUI/Tab.cpp:2536
msgid "Position (for multi-extruder printers)"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2368
+#: src/slic3r/GUI/Tab.cpp:2542
msgid "Only lift Z"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2381
+#: src/slic3r/GUI/Tab.cpp:2555
msgid ""
"Retraction when tool is disabled (advanced settings for multi-extruder "
"setups)"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2389
+#: src/slic3r/GUI/Tab.cpp:2564
msgid "Reset to Filament Color"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2570
+#: src/slic3r/GUI/Tab.cpp:2731
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:2572
+#: src/slic3r/GUI/Tab.cpp:2733
msgid "Firmware Retraction"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:2918
-#, possible-c-format
-msgid "Default preset (%s)"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:2919
-#, possible-c-format
-msgid "Preset (%s)"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:2936
-msgid "has the following unsaved changes:"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:2939
-msgid "is not compatible with printer"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:2940
-msgid "is not compatible with print profile"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:2942
-msgid "and it has the following unsaved changes:"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:2946
-msgid "Unsaved Changes"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:3040
+#: src/slic3r/GUI/Tab.cpp:3323
msgid "Detached"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3040
-msgctxt "PresetName"
-msgid "Copy"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:3069
-msgid "The supplied name is empty. It can't be saved."
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:3074
-msgid "Cannot overwrite a system profile."
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:3078
-msgid "Cannot overwrite an external profile."
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:3083
-msgid "Preset with name \"%1%\" already exists."
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:3084
-msgid "Replace?"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:3152
+#: src/slic3r/GUI/Tab.cpp:3386
msgid "remove"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3152
+#: src/slic3r/GUI/Tab.cpp:3386
msgid "delete"
msgstr ""
-#. TRN remove/delete
-#: src/slic3r/GUI/Tab.cpp:3154
+#: src/slic3r/GUI/Tab.cpp:3392
+msgid ""
+"Are you sure you want to delete \"%1%\" preset from the physical printer "
+"\"%2%\"?"
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:3404
+msgid "Next physical printer(s) has/have selected preset"
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:3408
+msgid ""
+"Note, that selected preset will be deleted from this/those printer(s) too."
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:3412
+msgid "Next physical printer(s) has/have one and only selected preset"
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:3416
+msgid ""
+"Note, that this/those printer(s) will be deleted after deleting of the "
+"selected preset."
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:3420
msgid "Are you sure you want to %1% the selected preset?"
msgstr ""
#. TRN Remove/Delete
-#: src/slic3r/GUI/Tab.cpp:3157
+#: src/slic3r/GUI/Tab.cpp:3425
msgid "%1% Preset"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3216 src/slic3r/GUI/Tab.cpp:3286
+#: src/slic3r/GUI/Tab.cpp:3435
+msgid "It's a last for this physical printer. We can't delete it"
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:3509 src/slic3r/GUI/Tab.cpp:3588
msgid "Set"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3325
+#: src/slic3r/GUI/Tab.cpp:3660
+msgid ""
+"Machine limits will be emitted to G-code and used to estimate print time."
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:3663
+msgid ""
+"Machine limits will NOT be emitted to G-code, however they will be used to "
+"estimate print time, which may therefore not be accurate as the printer may "
+"apply a different set of machine limits."
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:3667
+msgid ""
+"Machine limits are not set, therefore the print time estimate may not be "
+"accurate."
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:3689
msgid "LOCKED LOCK"
msgstr ""
#. TRN Description for "LOCKED LOCK"
-#: src/slic3r/GUI/Tab.cpp:3327
+#: src/slic3r/GUI/Tab.cpp:3691
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:3329
+#: src/slic3r/GUI/Tab.cpp:3693
msgid "UNLOCKED LOCK"
msgstr ""
#. TRN Description for "UNLOCKED LOCK"
-#: src/slic3r/GUI/Tab.cpp:3331
+#: src/slic3r/GUI/Tab.cpp:3695
msgid ""
"indicates that some settings were changed and are not equal to the system "
"(or default) values for the current option group.\n"
@@ -5731,23 +6756,23 @@ msgid ""
"to the system (or default) values."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3336
+#: src/slic3r/GUI/Tab.cpp:3700
msgid "WHITE BULLET"
msgstr ""
#. TRN Description for "WHITE BULLET"
-#: src/slic3r/GUI/Tab.cpp:3338
+#: src/slic3r/GUI/Tab.cpp:3702
msgid ""
"for the left button: indicates a non-system (or non-default) preset,\n"
"for the right button: indicates that the settings hasn't been modified."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3341
+#: src/slic3r/GUI/Tab.cpp:3705
msgid "BACK ARROW"
msgstr ""
#. TRN Description for "BACK ARROW"
-#: src/slic3r/GUI/Tab.cpp:3343
+#: src/slic3r/GUI/Tab.cpp:3707
msgid ""
"indicates that the settings were changed and are not equal to the last saved "
"preset for the current option group.\n"
@@ -5755,13 +6780,13 @@ msgid ""
"to the last saved preset."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3353
+#: src/slic3r/GUI/Tab.cpp:3717
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:3355
+#: src/slic3r/GUI/Tab.cpp:3719
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"
@@ -5769,17 +6794,17 @@ msgid ""
"default) values."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3358
+#: src/slic3r/GUI/Tab.cpp:3722
msgid "WHITE BULLET icon indicates a non system (or non default) preset."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3361
+#: src/slic3r/GUI/Tab.cpp:3725
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:3363
+#: src/slic3r/GUI/Tab.cpp:3727
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"
@@ -5787,84 +6812,197 @@ msgid ""
"preset."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3369
+#: src/slic3r/GUI/Tab.cpp:3733
msgid ""
"LOCKED LOCK icon indicates that the value is the same as the system (or "
"default) value."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3370
+#: src/slic3r/GUI/Tab.cpp:3734
msgid ""
"UNLOCKED LOCK icon indicates that the value was changed and is not equal to "
"the system (or default) value.\n"
"Click to reset current value to the system (or default) value."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3376
+#: src/slic3r/GUI/Tab.cpp:3740
msgid ""
"WHITE BULLET icon indicates that the value is the same as in the last saved "
"preset."
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3377
+#: src/slic3r/GUI/Tab.cpp:3741
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 ""
-#. TRN Preset
-#: src/slic3r/GUI/Tab.cpp:3490
-#, possible-c-format
-msgid "Save %s as:"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:3534
-msgid "the following suffix is not allowed:"
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:3538
-msgid "The supplied name is not available."
-msgstr ""
-
-#: src/slic3r/GUI/Tab.cpp:3551 src/slic3r/GUI/Tab.cpp:3553
+#: src/slic3r/GUI/Tab.cpp:3894 src/slic3r/GUI/Tab.cpp:3896
msgid "Material"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3675
+#: src/slic3r/GUI/Tab.cpp:4018
msgid "Support head"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3680
+#: src/slic3r/GUI/Tab.cpp:4023
msgid "Support pillar"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3696
+#: src/slic3r/GUI/Tab.cpp:4046
msgid "Connection of the support sticks and junctions"
msgstr ""
-#: src/slic3r/GUI/Tab.cpp:3701
+#: src/slic3r/GUI/Tab.cpp:4051
msgid "Automatic generation"
msgstr ""
-#: src/slic3r/GUI/Tab.hpp:336 src/slic3r/GUI/Tab.hpp:441
+#: src/slic3r/GUI/Tab.cpp:4125
+msgid ""
+"\"%1%\" is disabled because \"%2%\" is on in \"%3%\" category.\n"
+"To enable \"%1%\", please switch off \"%2%\""
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:4127 src/libslic3r/PrintConfig.cpp:2917
+msgid "Object elevation"
+msgstr ""
+
+#: src/slic3r/GUI/Tab.cpp:4127 src/libslic3r/PrintConfig.cpp:3019
+msgid "Pad around object"
+msgstr ""
+
+#: src/slic3r/GUI/Tab.hpp:378 src/slic3r/GUI/Tab.hpp:502
msgid "Print Settings"
msgstr ""
-#: src/slic3r/GUI/Tab.hpp:363
+#: src/slic3r/GUI/Tab.hpp:409
msgid "Filament Settings"
msgstr ""
-#: src/slic3r/GUI/Tab.hpp:399
+#: src/slic3r/GUI/Tab.hpp:453
msgid "Printer Settings"
msgstr ""
-#: src/slic3r/GUI/Tab.hpp:426
+#: src/slic3r/GUI/Tab.hpp:486
msgid "Material Settings"
msgstr ""
-#: src/slic3r/GUI/Tab.hpp:453
-msgid "Save preset"
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:137
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:146
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:845
+msgid "Undef"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:525
+msgid "Closing PrusaSlicer: Unsaved Changes"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:542
+msgid "Switching Presets: Unsaved Changes"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:608
+msgid "Old Value"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:609
+msgid "New Value"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:640
+msgid "Transfer"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:641
+msgid "Discard"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:642
+msgid "Save"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:662
+msgid "PrusaSlicer will remember your action."
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:664
+msgid ""
+"You will not be asked about the unsaved changes the next time you close "
+"PrusaSlicer."
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:665
+msgid ""
+"You will not be asked about the unsaved changes the next time you switch a "
+"preset."
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:666
+msgid ""
+"Visit \"Preferences\" and check \"%1%\"\n"
+"to be asked about unsaved changes again."
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:668
+msgid "PrusaSlicer: Don't ask me again"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:735
+msgid ""
+"Some fields are too long to fit. Right mouse click reveals the full text."
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:737
+msgid "All modified options will be reverted."
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:740
+msgid "Save the selected options."
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:740
+msgid "Transfer the selected options to the newly selected presets."
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:744
+msgid "Save the selected options to preset \"%1%\"."
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:745
+msgid "Transfer the selected options to the newly selected preset \"%1%\"."
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1004
+msgid "The following presets were modified:"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1009
+msgid "Preset \"%1%\" has the following unsaved changes:"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1013
+msgid ""
+"Preset \"%1%\" is not compatible with the new printer profile and it has the "
+"following unsaved changes:"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1014
+msgid ""
+"Preset \"%1%\" is not compatible with the new print profile and it has the "
+"following unsaved changes:"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1061
+msgid "Extruders count"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1177
+msgid "Old value"
+msgstr ""
+
+#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1178
+msgid "New value"
msgstr ""
#: src/slic3r/GUI/UpdateDialogs.cpp:38
@@ -6101,17 +7239,17 @@ msgstr ""
msgid "Show advanced settings"
msgstr ""
-#: src/slic3r/GUI/wxExtensions.cpp:706
+#: src/slic3r/GUI/wxExtensions.cpp:623
#, possible-c-format
msgid "Switch to the %s mode"
msgstr ""
-#: src/slic3r/GUI/wxExtensions.cpp:707
+#: src/slic3r/GUI/wxExtensions.cpp:624
#, possible-c-format
msgid "Current mode is %s"
msgstr ""
-#: src/slic3r/Utils/AstroBox.cpp:69 src/slic3r/Utils/OctoPrint.cpp:69
+#: src/slic3r/Utils/AstroBox.cpp:69 src/slic3r/Utils/OctoPrint.cpp:68
#, possible-c-format
msgid "Mismatched type of print host: %s"
msgstr ""
@@ -6183,7 +7321,7 @@ msgid "Model fixing"
msgstr ""
#: src/slic3r/Utils/FixModelByWin10.cpp:341
-msgid "Exporting model..."
+msgid "Exporting model"
msgstr ""
#: src/slic3r/Utils/FixModelByWin10.cpp:368
@@ -6249,188 +7387,86 @@ msgid ""
"is required."
msgstr ""
-#: src/slic3r/Utils/OctoPrint.cpp:84
+#: src/slic3r/Utils/OctoPrint.cpp:83
msgid "Connection to OctoPrint works correctly."
msgstr ""
-#: src/slic3r/Utils/OctoPrint.cpp:90
+#: src/slic3r/Utils/OctoPrint.cpp:89
msgid "Could not connect to OctoPrint"
msgstr ""
-#: src/slic3r/Utils/OctoPrint.cpp:92
+#: src/slic3r/Utils/OctoPrint.cpp:91
msgid "Note: OctoPrint version at least 1.1.0 is required."
msgstr ""
-#: src/slic3r/Utils/OctoPrint.cpp:179
+#: src/slic3r/Utils/OctoPrint.cpp:185
msgid "Connection to Prusa SL1 works correctly."
msgstr ""
-#: src/slic3r/Utils/OctoPrint.cpp:185
+#: src/slic3r/Utils/OctoPrint.cpp:191
msgid "Could not connect to Prusa SLA"
msgstr ""
-#: src/slic3r/Utils/PresetUpdater.cpp:706
+#: src/slic3r/Utils/PresetUpdater.cpp:726
#, possible-c-format
msgid "requires min. %s and max. %s"
msgstr ""
-#: src/slic3r/Utils/PresetUpdater.cpp:710
+#: src/slic3r/Utils/PresetUpdater.cpp:730
#, possible-c-format
msgid "requires min. %s"
msgstr ""
-#: src/slic3r/Utils/PresetUpdater.cpp:713
+#: src/slic3r/Utils/PresetUpdater.cpp:733
#, possible-c-format
msgid "requires max. %s"
msgstr ""
-#: src/libslic3r/SLA/Pad.cpp:691
-msgid "Pad brim size is too small for the current configuration."
+#: src/slic3r/Utils/Http.cpp:73
+msgid ""
+"Could not detect system SSL certificate store. PrusaSlicer will be unable to "
+"establish secure network connections."
msgstr ""
-#: src/libslic3r/Zipper.cpp:32
-msgid "undefined error"
+#: src/slic3r/Utils/Http.cpp:78
+msgid "PrusaSlicer detected system SSL certificate store in: %1%"
msgstr ""
-#: src/libslic3r/Zipper.cpp:34
-msgid "too many files"
+#: src/slic3r/Utils/Http.cpp:82
+msgid ""
+"To specify the system certificate store manually, please set the %1% "
+"environment variable to the correct CA bundle and restart the application."
msgstr ""
-#: src/libslic3r/Zipper.cpp:36
-msgid "file too large"
+#: src/slic3r/Utils/Http.cpp:91
+msgid ""
+"CURL init has failed. PrusaSlicer will be unable to establish network "
+"connections. See logs for additional details."
msgstr ""
-#: src/libslic3r/Zipper.cpp:38
-msgid "unsupported method"
+#: src/slic3r/Utils/Process.cpp:151
+msgid "Open G-code file:"
msgstr ""
-#: src/libslic3r/Zipper.cpp:40
-msgid "unsupported encryption"
+#: src/libslic3r/GCode.cpp:604
+msgid "There is an object with no extrusions on the first layer."
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 ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: src/libslic3r/GCode.cpp:637
+#: src/libslic3r/GCode.cpp:622
msgid "Empty layers detected, the output would not be printable."
msgstr ""
-#: src/libslic3r/GCode.cpp:638
+#: src/libslic3r/GCode.cpp:623
msgid "Print z"
msgstr ""
-#: src/libslic3r/GCode.cpp:639
+#: src/libslic3r/GCode.cpp:624
msgid ""
"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."
msgstr ""
-#: src/libslic3r/ExtrusionEntity.cpp:323
+#: src/libslic3r/ExtrusionEntity.cpp:328 src/libslic3r/ExtrusionEntity.cpp:364
msgid "Mixed"
msgstr ""
@@ -6439,122 +7475,254 @@ msgid ""
"Cannot calculate extrusion width for %1%: Variable \"%2%\" not accessible."
msgstr ""
-#: src/libslic3r/Format/3mf.cpp:1626
+#: src/libslic3r/Format/3mf.cpp:1667
msgid ""
"The selected 3mf file has been saved with a newer version of %1% and is not "
"compatible."
msgstr ""
-#: src/libslic3r/Format/AMF.cpp:934
+#: src/libslic3r/Format/AMF.cpp:955
msgid ""
"The selected amf file has been saved with a newer version of %1% and is not "
"compatible."
msgstr ""
-#: src/libslic3r/Print.cpp:1218
+#: src/libslic3r/miniz_extension.cpp:91
+msgid "undefined error"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:93
+msgid "too many files"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:95
+msgid "file too large"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:97
+msgid "unsupported method"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:99
+msgid "unsupported encryption"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:101
+msgid "unsupported feature"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:103
+msgid "failed finding central directory"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:105
+msgid "not a ZIP archive"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:107
+msgid "invalid header or archive is corrupted"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:109
+msgid "unsupported multidisk archive"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:111
+msgid "decompression failed or archive is corrupted"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:113
+msgid "compression failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:115
+msgid "unexpected decompressed size"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:117
+msgid "CRC-32 check failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:119
+msgid "unsupported central directory size"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:121
+msgid "allocation failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:123
+msgid "file open failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:125
+msgid "file create failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:127
+msgid "file write failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:129
+msgid "file read failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:131
+msgid "file close failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:133
+msgid "file seek failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:135
+msgid "file stat failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:137
+msgid "invalid parameter"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:139
+msgid "invalid filename"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:141
+msgid "buffer too small"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:143
+msgid "internal error"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:145
+msgid "file not found"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:147
+msgid "archive is too large"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:149
+msgid "validation failed"
+msgstr ""
+
+#: src/libslic3r/miniz_extension.cpp:151
+msgid "write calledback failed"
+msgstr ""
+
+#: src/libslic3r/Preset.cpp:1301
+msgid "filament"
+msgstr ""
+
+#: src/libslic3r/Preset.cpp:1302
+msgid "SLA print"
+msgstr ""
+
+#: src/libslic3r/Print.cpp:1245
msgid "All objects are outside of the print volume."
msgstr ""
-#: src/libslic3r/Print.cpp:1221
+#: src/libslic3r/Print.cpp:1248
msgid "The supplied settings will cause an empty print."
msgstr ""
-#: src/libslic3r/Print.cpp:1225
+#: src/libslic3r/Print.cpp:1252
msgid "Some objects are too close; your extruder will collide with them."
msgstr ""
-#: src/libslic3r/Print.cpp:1227
+#: src/libslic3r/Print.cpp:1254
msgid ""
"Some objects are too tall and cannot be printed without extruder collisions."
msgstr ""
-#: src/libslic3r/Print.cpp:1236
+#: src/libslic3r/Print.cpp:1263
msgid "The Spiral Vase option can only be used when printing a single object."
msgstr ""
-#: src/libslic3r/Print.cpp:1243
+#: src/libslic3r/Print.cpp:1270
msgid ""
"The Spiral Vase option can only be used when printing single material "
"objects."
msgstr ""
-#: src/libslic3r/Print.cpp:1256
+#: src/libslic3r/Print.cpp:1283
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:1261
+#: src/libslic3r/Print.cpp:1288
msgid ""
"The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter "
"and Repetier G-code flavors."
msgstr ""
-#: src/libslic3r/Print.cpp:1263
+#: src/libslic3r/Print.cpp:1290
msgid ""
"The Wipe Tower is currently only supported with the relative extruder "
"addressing (use_relative_e_distances=1)."
msgstr ""
-#: src/libslic3r/Print.cpp:1265
+#: src/libslic3r/Print.cpp:1292
msgid "Ooze prevention is currently not supported with the wipe tower enabled."
msgstr ""
-#: src/libslic3r/Print.cpp:1267
+#: src/libslic3r/Print.cpp:1294
msgid ""
"The Wipe Tower currently does not support volumetric E (use_volumetric_e=0)."
msgstr ""
-#: src/libslic3r/Print.cpp:1269
+#: src/libslic3r/Print.cpp:1296
msgid ""
"The Wipe Tower is currently not supported for multimaterial sequential "
"prints."
msgstr ""
-#: src/libslic3r/Print.cpp:1290
+#: src/libslic3r/Print.cpp:1317
msgid ""
"The Wipe Tower is only supported for multiple objects if they have equal "
"layer heights"
msgstr ""
-#: src/libslic3r/Print.cpp:1292
+#: src/libslic3r/Print.cpp:1319
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:1294
+#: src/libslic3r/Print.cpp:1321
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:1296
+#: src/libslic3r/Print.cpp:1323
msgid ""
"The Wipe Tower is only supported for multiple objects if they are sliced "
"equally."
msgstr ""
-#: src/libslic3r/Print.cpp:1338
+#: src/libslic3r/Print.cpp:1365
msgid ""
"The Wipe tower is only supported if all objects have the same variable layer "
"height"
msgstr ""
-#: src/libslic3r/Print.cpp:1364
+#: src/libslic3r/Print.cpp:1391
msgid ""
"One or more object were assigned an extruder that the printer does not have."
msgstr ""
-#: src/libslic3r/Print.cpp:1373
+#: src/libslic3r/Print.cpp:1400
msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm"
msgstr ""
-#: src/libslic3r/Print.cpp:1376
+#: src/libslic3r/Print.cpp:1403
msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm"
msgstr ""
-#: src/libslic3r/Print.cpp:1387
+#: src/libslic3r/Print.cpp:1414
msgid ""
"Printing with multiple extruders of differing nozzle diameters. If support "
"is to be printed with the current extruder (support_material_extruder == 0 "
@@ -6562,13 +7730,13 @@ msgid ""
"same diameter."
msgstr ""
-#: src/libslic3r/Print.cpp:1395
+#: src/libslic3r/Print.cpp:1422
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:1399
+#: src/libslic3r/Print.cpp:1426
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 "
@@ -6576,132 +7744,136 @@ msgid ""
"set to 0)."
msgstr ""
-#: src/libslic3r/Print.cpp:1421
+#: src/libslic3r/Print.cpp:1448
msgid "First layer height can't be greater than nozzle diameter"
msgstr ""
-#: src/libslic3r/Print.cpp:1426
+#: src/libslic3r/Print.cpp:1453
msgid "Layer height can't be greater than nozzle diameter"
msgstr ""
-#: src/libslic3r/Print.cpp:1583
+#: src/libslic3r/Print.cpp:1610
msgid "Infilling layers"
msgstr ""
-#: src/libslic3r/Print.cpp:1605
+#: src/libslic3r/Print.cpp:1636
msgid "Generating skirt"
msgstr ""
-#: src/libslic3r/Print.cpp:1613
+#: src/libslic3r/Print.cpp:1645
msgid "Generating brim"
msgstr ""
-#: src/libslic3r/Print.cpp:1633
+#: src/libslic3r/Print.cpp:1676
msgid "Exporting G-code"
msgstr ""
-#: src/libslic3r/Print.cpp:1637
+#: src/libslic3r/Print.cpp:1680
msgid "Generating G-code"
msgstr ""
-#: src/libslic3r/SLAPrint.cpp:615
+#: src/libslic3r/SLA/Pad.cpp:532
+msgid "Pad brim size is too small for the current configuration."
+msgstr ""
+
+#: src/libslic3r/SLAPrint.cpp:627
msgid ""
"Cannot proceed without support points! Add support points or disable support "
"generation."
msgstr ""
-#: src/libslic3r/SLAPrint.cpp:627
+#: src/libslic3r/SLAPrint.cpp:639
msgid ""
"Elevation is too low for object. Use the \"Pad around object\" feature to "
"print the object without elevation."
msgstr ""
-#: src/libslic3r/SLAPrint.cpp:633
+#: src/libslic3r/SLAPrint.cpp:645
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:648
+#: src/libslic3r/SLAPrint.cpp:660
msgid "Exposition time is out of printer profile bounds."
msgstr ""
-#: src/libslic3r/SLAPrint.cpp:655
+#: src/libslic3r/SLAPrint.cpp:667
msgid "Initial exposition time is out of printer profile bounds."
msgstr ""
-#: src/libslic3r/SLAPrint.cpp:762
+#: src/libslic3r/SLAPrint.cpp:780
msgid "Slicing done"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:43
+#: src/libslic3r/SLAPrintSteps.cpp:44
msgid "Hollowing model"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:44
+#: src/libslic3r/SLAPrintSteps.cpp:45
msgid "Drilling holes into model."
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:45
+#: src/libslic3r/SLAPrintSteps.cpp:46
msgid "Slicing model"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:46 src/libslic3r/SLAPrintSteps.cpp:356
+#: src/libslic3r/SLAPrintSteps.cpp:47 src/libslic3r/SLAPrintSteps.cpp:359
msgid "Generating support points"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:47
+#: src/libslic3r/SLAPrintSteps.cpp:48
msgid "Generating support tree"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:48
+#: src/libslic3r/SLAPrintSteps.cpp:49
msgid "Generating pad"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:49
+#: src/libslic3r/SLAPrintSteps.cpp:50
msgid "Slicing supports"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:64
+#: src/libslic3r/SLAPrintSteps.cpp:65
msgid "Merging slices and calculating statistics"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:65
+#: src/libslic3r/SLAPrintSteps.cpp:66
msgid "Rasterizing layers"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:190
-msgid "Too much overlapping holes."
+#: src/libslic3r/SLAPrintSteps.cpp:192
+msgid "Too many overlapping holes."
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:199
+#: src/libslic3r/SLAPrintSteps.cpp:201
msgid ""
"Drilling holes into the mesh failed. This is usually caused by broken model. "
"Try to fix it first."
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:245
+#: src/libslic3r/SLAPrintSteps.cpp:247
msgid ""
"Slicing had to be stopped due to an internal error: Inconsistent slice index."
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:413 src/libslic3r/SLAPrintSteps.cpp:422
-#: src/libslic3r/SLAPrintSteps.cpp:461
+#: src/libslic3r/SLAPrintSteps.cpp:411 src/libslic3r/SLAPrintSteps.cpp:420
+#: src/libslic3r/SLAPrintSteps.cpp:459
msgid "Visualizing supports"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:453
+#: src/libslic3r/SLAPrintSteps.cpp:451
msgid "No pad can be generated for this model with the current configuration"
msgstr ""
-#: src/libslic3r/SLAPrintSteps.cpp:621
+#: src/libslic3r/SLAPrintSteps.cpp:619
msgid ""
"There are unprintable objects. Try to adjust support settings to make the "
"objects printable."
msgstr ""
-#: src/libslic3r/PrintBase.cpp:71
+#: src/libslic3r/PrintBase.cpp:72
msgid "Failed processing of the output_filename_format template."
msgstr ""
@@ -6741,91 +7913,107 @@ msgid ""
"printing."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:87
+#: src/libslic3r/PrintConfig.cpp:89
msgid "Slice gap closing radius"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:89
+#: src/libslic3r/PrintConfig.cpp:91
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:97
+#: src/libslic3r/PrintConfig.cpp:99
msgid "Hostname, IP or URL"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:98
+#: src/libslic3r/PrintConfig.cpp:100
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:104
+#: src/libslic3r/PrintConfig.cpp:106
msgid "API Key / Password"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:105
+#: src/libslic3r/PrintConfig.cpp:107
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:112
+#: src/libslic3r/PrintConfig.cpp:114
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:118
+#: src/libslic3r/PrintConfig.cpp:120
msgid "Elephant foot compensation"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:120
+#: src/libslic3r/PrintConfig.cpp:122
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:136
+#: src/libslic3r/PrintConfig.cpp:138
+msgid "Password"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:144
+msgid "Printer preset name"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:145
+msgid "Related printer preset name"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:150
+msgid "Authorization Type"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:169
msgid "Avoid crossing perimeters"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:137
+#: src/libslic3r/PrintConfig.cpp:170
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:144 src/libslic3r/PrintConfig.cpp:2071
+#: src/libslic3r/PrintConfig.cpp:177 src/libslic3r/PrintConfig.cpp:2206
msgid "Other layers"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:145
+#: src/libslic3r/PrintConfig.cpp:178
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:147
+#: src/libslic3r/PrintConfig.cpp:181
msgid "Bed temperature"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:154
+#: src/libslic3r/PrintConfig.cpp:188
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:164
+#: src/libslic3r/PrintConfig.cpp:198
msgid "Between objects G-code"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:165
+#: src/libslic3r/PrintConfig.cpp:199
msgid ""
"This code is inserted between objects when using sequential printing. By "
"default extruder and bed temperature are reset using non-wait command; "
@@ -6835,80 +8023,81 @@ msgid ""
"S[first_layer_temperature]\" command wherever you want."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:176
+#: src/libslic3r/PrintConfig.cpp:210
msgid "Number of solid layers to generate on bottom surfaces."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:177
+#: src/libslic3r/PrintConfig.cpp:211
msgid "Bottom solid layers"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:185
+#: src/libslic3r/PrintConfig.cpp:219
msgid ""
"The number of bottom solid layers is increased above bottom_solid_layers if "
"necessary to satisfy minimum thickness of bottom shell."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:187
+#: src/libslic3r/PrintConfig.cpp:221
msgid "Minimum bottom shell thickness"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:193
+#: src/libslic3r/PrintConfig.cpp:227
msgid "Bridge"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:194
+#: src/libslic3r/PrintConfig.cpp:228
msgid ""
"This is the acceleration your printer will use for bridges. Set zero to "
"disable acceleration control for bridges."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:196 src/libslic3r/PrintConfig.cpp:339
-#: src/libslic3r/PrintConfig.cpp:862 src/libslic3r/PrintConfig.cpp:984
-#: src/libslic3r/PrintConfig.cpp:1152 src/libslic3r/PrintConfig.cpp:1201
-#: src/libslic3r/PrintConfig.cpp:1211 src/libslic3r/PrintConfig.cpp:1403
+#: src/libslic3r/PrintConfig.cpp:230 src/libslic3r/PrintConfig.cpp:373
+#: src/libslic3r/PrintConfig.cpp:902 src/libslic3r/PrintConfig.cpp:1028
+#: src/libslic3r/PrintConfig.cpp:1260 src/libslic3r/PrintConfig.cpp:1309
+#: src/libslic3r/PrintConfig.cpp:1319 src/libslic3r/PrintConfig.cpp:1511
msgid "mm/s²"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:202
+#: src/libslic3r/PrintConfig.cpp:236
msgid "Bridging angle"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:204
+#: src/libslic3r/PrintConfig.cpp:238
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:207 src/libslic3r/PrintConfig.cpp:780
-#: src/libslic3r/PrintConfig.cpp:1640 src/libslic3r/PrintConfig.cpp:1650
-#: src/libslic3r/PrintConfig.cpp:1901 src/libslic3r/PrintConfig.cpp:2056
-#: src/libslic3r/PrintConfig.cpp:2254 src/libslic3r/PrintConfig.cpp:2744
-#: src/libslic3r/PrintConfig.cpp:2865
+#: src/libslic3r/PrintConfig.cpp:241 src/libslic3r/PrintConfig.cpp:816
+#: src/libslic3r/PrintConfig.cpp:1748 src/libslic3r/PrintConfig.cpp:1758
+#: src/libslic3r/PrintConfig.cpp:2036 src/libslic3r/PrintConfig.cpp:2191
+#: src/libslic3r/PrintConfig.cpp:2390 src/libslic3r/PrintConfig.cpp:2891
+#: src/libslic3r/PrintConfig.cpp:3012
msgid "°"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:213
+#: src/libslic3r/PrintConfig.cpp:247
msgid "Bridges fan speed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:214
+#: src/libslic3r/PrintConfig.cpp:248
msgid "This fan speed is enforced during all bridges and overhangs."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:215 src/libslic3r/PrintConfig.cpp:792
-#: src/libslic3r/PrintConfig.cpp:1219 src/libslic3r/PrintConfig.cpp:1282
-#: src/libslic3r/PrintConfig.cpp:1532 src/libslic3r/PrintConfig.cpp:2432
-#: src/libslic3r/PrintConfig.cpp:2784
+#: src/libslic3r/PrintConfig.cpp:249 src/libslic3r/PrintConfig.cpp:828
+#: src/libslic3r/PrintConfig.cpp:1148 src/libslic3r/PrintConfig.cpp:1327
+#: src/libslic3r/PrintConfig.cpp:1390 src/libslic3r/PrintConfig.cpp:1640
+#: src/libslic3r/PrintConfig.cpp:2568 src/libslic3r/PrintConfig.cpp:2805
+#: src/libslic3r/PrintConfig.cpp:2931
msgid "%"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:222
+#: src/libslic3r/PrintConfig.cpp:256
msgid "Bridge flow ratio"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:224
+#: src/libslic3r/PrintConfig.cpp:258
msgid ""
"This factor affects the amount of plastic for bridging. You can decrease it "
"slightly to pull the extrudates and prevent sagging, although default "
@@ -6916,83 +8105,84 @@ msgid ""
"before tweaking this."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:234
+#: src/libslic3r/PrintConfig.cpp:268
msgid "Bridges"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:236
+#: src/libslic3r/PrintConfig.cpp:270
msgid "Speed for printing bridges."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:237 src/libslic3r/PrintConfig.cpp:609
-#: src/libslic3r/PrintConfig.cpp:617 src/libslic3r/PrintConfig.cpp:626
-#: src/libslic3r/PrintConfig.cpp:634 src/libslic3r/PrintConfig.cpp:661
-#: src/libslic3r/PrintConfig.cpp:680 src/libslic3r/PrintConfig.cpp:922
-#: src/libslic3r/PrintConfig.cpp:1050 src/libslic3r/PrintConfig.cpp:1135
-#: src/libslic3r/PrintConfig.cpp:1169 src/libslic3r/PrintConfig.cpp:1181
-#: src/libslic3r/PrintConfig.cpp:1191 src/libslic3r/PrintConfig.cpp:1241
-#: src/libslic3r/PrintConfig.cpp:1300 src/libslic3r/PrintConfig.cpp:1433
-#: src/libslic3r/PrintConfig.cpp:1607 src/libslic3r/PrintConfig.cpp:1616
-#: src/libslic3r/PrintConfig.cpp:2035 src/libslic3r/PrintConfig.cpp:2161
+#: src/libslic3r/PrintConfig.cpp:271 src/libslic3r/PrintConfig.cpp:645
+#: src/libslic3r/PrintConfig.cpp:653 src/libslic3r/PrintConfig.cpp:662
+#: src/libslic3r/PrintConfig.cpp:670 src/libslic3r/PrintConfig.cpp:697
+#: src/libslic3r/PrintConfig.cpp:716 src/libslic3r/PrintConfig.cpp:966
+#: src/libslic3r/PrintConfig.cpp:1094 src/libslic3r/PrintConfig.cpp:1167
+#: src/libslic3r/PrintConfig.cpp:1243 src/libslic3r/PrintConfig.cpp:1277
+#: src/libslic3r/PrintConfig.cpp:1289 src/libslic3r/PrintConfig.cpp:1299
+#: src/libslic3r/PrintConfig.cpp:1349 src/libslic3r/PrintConfig.cpp:1408
+#: src/libslic3r/PrintConfig.cpp:1541 src/libslic3r/PrintConfig.cpp:1715
+#: src/libslic3r/PrintConfig.cpp:1724 src/libslic3r/PrintConfig.cpp:2170
+#: src/libslic3r/PrintConfig.cpp:2297
msgid "mm/s"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:244
+#: src/libslic3r/PrintConfig.cpp:278
msgid "Brim width"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:245
+#: src/libslic3r/PrintConfig.cpp:279
msgid ""
"Horizontal width of the brim that will be printed around each object on the "
"first layer."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:252
+#: src/libslic3r/PrintConfig.cpp:286
msgid "Clip multi-part objects"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:253
+#: src/libslic3r/PrintConfig.cpp:287
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:260
+#: src/libslic3r/PrintConfig.cpp:294
msgid "Colorprint height"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:261
+#: src/libslic3r/PrintConfig.cpp:295
msgid "Heights at which a filament change is to occur."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:271
+#: src/libslic3r/PrintConfig.cpp:305
msgid "Compatible printers condition"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:272
+#: src/libslic3r/PrintConfig.cpp:306
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:286
+#: src/libslic3r/PrintConfig.cpp:320
msgid "Compatible print profiles condition"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:287
+#: src/libslic3r/PrintConfig.cpp:321
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:304
+#: src/libslic3r/PrintConfig.cpp:338
msgid "Complete individual objects"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:305
+#: src/libslic3r/PrintConfig.cpp:339
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). "
@@ -7000,97 +8190,97 @@ msgid ""
"warn and prevent you from extruder collisions, but beware."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:313
+#: src/libslic3r/PrintConfig.cpp:347
msgid "Enable auto cooling"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:314
+#: src/libslic3r/PrintConfig.cpp:348
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:319
+#: src/libslic3r/PrintConfig.cpp:353
msgid "Cooling tube position"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:320
+#: src/libslic3r/PrintConfig.cpp:354
msgid "Distance of the center-point of the cooling tube from the extruder tip."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:327
+#: src/libslic3r/PrintConfig.cpp:361
msgid "Cooling tube length"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:328
+#: src/libslic3r/PrintConfig.cpp:362
msgid "Length of the cooling tube to limit space for cooling moves inside it."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:336
+#: src/libslic3r/PrintConfig.cpp:370
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:345
+#: src/libslic3r/PrintConfig.cpp:379
msgid "Default filament profile"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:346
+#: src/libslic3r/PrintConfig.cpp:380
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:352
+#: src/libslic3r/PrintConfig.cpp:386
msgid "Default print profile"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:353 src/libslic3r/PrintConfig.cpp:2599
-#: src/libslic3r/PrintConfig.cpp:2610
+#: src/libslic3r/PrintConfig.cpp:387 src/libslic3r/PrintConfig.cpp:2735
+#: src/libslic3r/PrintConfig.cpp:2746
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:359
+#: src/libslic3r/PrintConfig.cpp:393
msgid "Disable fan for the first"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:360
+#: src/libslic3r/PrintConfig.cpp:394
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:369
+#: src/libslic3r/PrintConfig.cpp:403
msgid "Don't support bridges"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:371
+#: src/libslic3r/PrintConfig.cpp:405
msgid ""
"Experimental option for preventing support material from being generated "
"under bridged areas."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:377
+#: src/libslic3r/PrintConfig.cpp:411
msgid "Distance between copies"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:378
+#: src/libslic3r/PrintConfig.cpp:412
msgid "Distance used for the auto-arrange feature of the plater."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:386
+#: src/libslic3r/PrintConfig.cpp:420
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 ""
-#: src/libslic3r/PrintConfig.cpp:396
+#: src/libslic3r/PrintConfig.cpp:430
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 "
@@ -7099,62 +8289,66 @@ msgid ""
"in extruder order."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:407
+#: src/libslic3r/PrintConfig.cpp:441
msgid "Ensure vertical shell thickness"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:409
+#: src/libslic3r/PrintConfig.cpp:443
msgid ""
"Add solid infill near sloping surfaces to guarantee the vertical shell "
"thickness (top+bottom solid layers)."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:415
+#: src/libslic3r/PrintConfig.cpp:449
msgid "Top fill pattern"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:417
+#: src/libslic3r/PrintConfig.cpp:451
msgid ""
"Fill pattern for top infill. This only affects the top visible layer, and "
"not its adjacent solid shells."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:425 src/libslic3r/PrintConfig.cpp:843
-#: src/libslic3r/PrintConfig.cpp:2016
+#: src/libslic3r/PrintConfig.cpp:460 src/libslic3r/PrintConfig.cpp:881
+#: src/libslic3r/PrintConfig.cpp:2151
msgid "Rectilinear"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:426 src/libslic3r/PrintConfig.cpp:849
+#: src/libslic3r/PrintConfig.cpp:461
+msgid "Monotonic"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:462 src/libslic3r/PrintConfig.cpp:887
msgid "Concentric"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:427 src/libslic3r/PrintConfig.cpp:853
+#: src/libslic3r/PrintConfig.cpp:463 src/libslic3r/PrintConfig.cpp:891
msgid "Hilbert Curve"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:428 src/libslic3r/PrintConfig.cpp:854
+#: src/libslic3r/PrintConfig.cpp:464 src/libslic3r/PrintConfig.cpp:892
msgid "Archimedean Chords"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:429 src/libslic3r/PrintConfig.cpp:855
+#: src/libslic3r/PrintConfig.cpp:465 src/libslic3r/PrintConfig.cpp:893
msgid "Octagram Spiral"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:435
+#: src/libslic3r/PrintConfig.cpp:471
msgid "Bottom fill pattern"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:437
+#: src/libslic3r/PrintConfig.cpp:473
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:446 src/libslic3r/PrintConfig.cpp:457
+#: src/libslic3r/PrintConfig.cpp:482 src/libslic3r/PrintConfig.cpp:493
msgid "External perimeters"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:448
+#: src/libslic3r/PrintConfig.cpp:484
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, "
@@ -7162,43 +8356,43 @@ msgid ""
"(for example 200%), it will be computed over layer height."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:451 src/libslic3r/PrintConfig.cpp:560
-#: src/libslic3r/PrintConfig.cpp:882 src/libslic3r/PrintConfig.cpp:895
-#: src/libslic3r/PrintConfig.cpp:1015 src/libslic3r/PrintConfig.cpp:1041
-#: src/libslic3r/PrintConfig.cpp:1423 src/libslic3r/PrintConfig.cpp:1768
-#: src/libslic3r/PrintConfig.cpp:1890 src/libslic3r/PrintConfig.cpp:1958
-#: src/libslic3r/PrintConfig.cpp:2118
+#: src/libslic3r/PrintConfig.cpp:487 src/libslic3r/PrintConfig.cpp:596
+#: src/libslic3r/PrintConfig.cpp:924 src/libslic3r/PrintConfig.cpp:937
+#: src/libslic3r/PrintConfig.cpp:1059 src/libslic3r/PrintConfig.cpp:1085
+#: src/libslic3r/PrintConfig.cpp:1531 src/libslic3r/PrintConfig.cpp:1876
+#: src/libslic3r/PrintConfig.cpp:2025 src/libslic3r/PrintConfig.cpp:2093
+#: src/libslic3r/PrintConfig.cpp:2254
msgid "mm or %"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:459
+#: src/libslic3r/PrintConfig.cpp:495
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:462 src/libslic3r/PrintConfig.cpp:904
-#: src/libslic3r/PrintConfig.cpp:1727 src/libslic3r/PrintConfig.cpp:1779
-#: src/libslic3r/PrintConfig.cpp:2002 src/libslic3r/PrintConfig.cpp:2131
+#: src/libslic3r/PrintConfig.cpp:498 src/libslic3r/PrintConfig.cpp:946
+#: src/libslic3r/PrintConfig.cpp:1835 src/libslic3r/PrintConfig.cpp:1887
+#: src/libslic3r/PrintConfig.cpp:2137 src/libslic3r/PrintConfig.cpp:2267
msgid "mm/s or %"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:469
+#: src/libslic3r/PrintConfig.cpp:505
msgid "External perimeters first"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:471
+#: src/libslic3r/PrintConfig.cpp:507
msgid ""
"Print contour perimeters from the outermost one to the innermost one instead "
"of the default inverse order."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:477
+#: src/libslic3r/PrintConfig.cpp:513
msgid "Extra perimeters if needed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:479
+#: src/libslic3r/PrintConfig.cpp:515
#, possible-c-format
msgid ""
"Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r "
@@ -7206,14 +8400,14 @@ msgid ""
"is supported."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:489
+#: src/libslic3r/PrintConfig.cpp:525
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:501
+#: src/libslic3r/PrintConfig.cpp:537
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 "
@@ -7221,26 +8415,26 @@ msgid ""
"extruder can peek before colliding with other printed objects."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:512
+#: src/libslic3r/PrintConfig.cpp:548
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:522
+#: src/libslic3r/PrintConfig.cpp:558
msgid "Extruder Color"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:523 src/libslic3r/PrintConfig.cpp:583
+#: src/libslic3r/PrintConfig.cpp:559 src/libslic3r/PrintConfig.cpp:619
msgid "This is only used in the Slic3r interface as a visual help."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:529
+#: src/libslic3r/PrintConfig.cpp:565
msgid "Extruder offset"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:530
+#: src/libslic3r/PrintConfig.cpp:566
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 "
@@ -7248,21 +8442,21 @@ msgid ""
"coordinates (they will be subtracted from the XY coordinate)."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:539
+#: src/libslic3r/PrintConfig.cpp:575
msgid "Extrusion axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:540
+#: src/libslic3r/PrintConfig.cpp:576
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:545
+#: src/libslic3r/PrintConfig.cpp:581
msgid "Extrusion multiplier"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:546
+#: src/libslic3r/PrintConfig.cpp:582
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. "
@@ -7270,11 +8464,11 @@ msgid ""
"more, check filament diameter and your firmware E steps."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:554
+#: src/libslic3r/PrintConfig.cpp:590
msgid "Default extrusion width"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:556
+#: src/libslic3r/PrintConfig.cpp:592
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 "
@@ -7283,119 +8477,119 @@ msgid ""
"height."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:566
+#: src/libslic3r/PrintConfig.cpp:602
msgid "Keep fan always on"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:567
+#: src/libslic3r/PrintConfig.cpp:603
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:572
+#: src/libslic3r/PrintConfig.cpp:608
msgid "Enable fan if layer print time is below"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:573
+#: src/libslic3r/PrintConfig.cpp:609
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:575 src/libslic3r/PrintConfig.cpp:1715
+#: src/libslic3r/PrintConfig.cpp:611 src/libslic3r/PrintConfig.cpp:1823
msgid "approximate seconds"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:588
+#: src/libslic3r/PrintConfig.cpp:624
msgid "Filament notes"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:589
+#: src/libslic3r/PrintConfig.cpp:625
msgid "You can put your notes regarding the filament here."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:597 src/libslic3r/PrintConfig.cpp:1247
+#: src/libslic3r/PrintConfig.cpp:633 src/libslic3r/PrintConfig.cpp:1355
msgid "Max volumetric speed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:598
+#: src/libslic3r/PrintConfig.cpp:634
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:607
+#: src/libslic3r/PrintConfig.cpp:643
msgid "Loading speed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:608
+#: src/libslic3r/PrintConfig.cpp:644
msgid "Speed used for loading the filament on the wipe tower."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:615
+#: src/libslic3r/PrintConfig.cpp:651
msgid "Loading speed at the start"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:616
+#: src/libslic3r/PrintConfig.cpp:652
msgid "Speed used at the very beginning of loading phase."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:623
+#: src/libslic3r/PrintConfig.cpp:659
msgid "Unloading speed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:624
+#: src/libslic3r/PrintConfig.cpp:660
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:632
+#: src/libslic3r/PrintConfig.cpp:668
msgid "Unloading speed at the start"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:633
+#: src/libslic3r/PrintConfig.cpp:669
msgid ""
"Speed used for unloading the tip of the filament immediately after ramming."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:640
+#: src/libslic3r/PrintConfig.cpp:676
msgid "Delay after unloading"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:641
+#: src/libslic3r/PrintConfig.cpp:677
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:650
+#: src/libslic3r/PrintConfig.cpp:686
msgid "Number of cooling moves"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:651
+#: src/libslic3r/PrintConfig.cpp:687
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:659
+#: src/libslic3r/PrintConfig.cpp:695
msgid "Speed of the first cooling move"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:660
+#: src/libslic3r/PrintConfig.cpp:696
msgid "Cooling moves are gradually accelerating beginning at this speed."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:667
+#: src/libslic3r/PrintConfig.cpp:703
msgid "Minimal purge on wipe tower"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:668
+#: src/libslic3r/PrintConfig.cpp:704
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 "
@@ -7404,63 +8598,63 @@ msgid ""
"to produce successive infill or sacrificial object extrusions reliably."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:672
+#: src/libslic3r/PrintConfig.cpp:708
msgid "mm³"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:678
+#: src/libslic3r/PrintConfig.cpp:714
msgid "Speed of the last cooling move"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:679
+#: src/libslic3r/PrintConfig.cpp:715
msgid "Cooling moves are gradually accelerating towards this speed."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:686
+#: src/libslic3r/PrintConfig.cpp:722
msgid "Filament load time"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:687
+#: src/libslic3r/PrintConfig.cpp:723
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:694
+#: src/libslic3r/PrintConfig.cpp:730
msgid "Ramming parameters"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:695
+#: src/libslic3r/PrintConfig.cpp:731
msgid ""
"This string is edited by RammingDialog and contains ramming specific "
"parameters."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:701
+#: src/libslic3r/PrintConfig.cpp:737
msgid "Filament unload time"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:702
+#: src/libslic3r/PrintConfig.cpp:738
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:710
+#: src/libslic3r/PrintConfig.cpp:746
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:717 src/libslic3r/PrintConfig.cpp:2510
-#: src/libslic3r/PrintConfig.cpp:2511
+#: src/libslic3r/PrintConfig.cpp:753 src/libslic3r/PrintConfig.cpp:2646
+#: src/libslic3r/PrintConfig.cpp:2647
msgid "Density"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:718
+#: src/libslic3r/PrintConfig.cpp:754
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 "
@@ -7468,117 +8662,129 @@ msgid ""
"displacement."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:721
+#: src/libslic3r/PrintConfig.cpp:757
msgid "g/cm³"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:726
+#: src/libslic3r/PrintConfig.cpp:762
msgid "Filament type"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:727
+#: src/libslic3r/PrintConfig.cpp:763
msgid "The filament material type for use in custom G-codes."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:754
+#: src/libslic3r/PrintConfig.cpp:790
msgid "Soluble material"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:755
+#: src/libslic3r/PrintConfig.cpp:791
msgid "Soluble material is most likely used for a soluble support."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:761
+#: src/libslic3r/PrintConfig.cpp:797
msgid ""
"Enter your filament cost per kg here. This is only for statistical "
"information."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:762
+#: src/libslic3r/PrintConfig.cpp:798
msgid "money/kg"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:771 src/libslic3r/PrintConfig.cpp:2594
+#: src/libslic3r/PrintConfig.cpp:807 src/libslic3r/PrintConfig.cpp:2730
msgid "(Unknown)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:775
+#: src/libslic3r/PrintConfig.cpp:811
msgid "Fill angle"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:777
+#: src/libslic3r/PrintConfig.cpp:813
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:789
+#: src/libslic3r/PrintConfig.cpp:825
msgid "Fill density"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:791
+#: src/libslic3r/PrintConfig.cpp:827
msgid "Density of internal infill, expressed in the range 0% - 100%."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:826
+#: src/libslic3r/PrintConfig.cpp:862
msgid "Fill pattern"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:828
+#: src/libslic3r/PrintConfig.cpp:864
msgid "Fill pattern for general low-density infill."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:844
+#: src/libslic3r/PrintConfig.cpp:882
msgid "Grid"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:845
+#: src/libslic3r/PrintConfig.cpp:883
msgid "Triangles"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:846
+#: src/libslic3r/PrintConfig.cpp:884
msgid "Stars"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:847
+#: src/libslic3r/PrintConfig.cpp:885
msgid "Cubic"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:848
+#: src/libslic3r/PrintConfig.cpp:886
msgid "Line"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:850 src/libslic3r/PrintConfig.cpp:2018
+#: src/libslic3r/PrintConfig.cpp:888 src/libslic3r/PrintConfig.cpp:2153
msgid "Honeycomb"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:851
+#: src/libslic3r/PrintConfig.cpp:889
msgid "3D Honeycomb"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:852
+#: src/libslic3r/PrintConfig.cpp:890
msgid "Gyroid"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:859 src/libslic3r/PrintConfig.cpp:868
-#: src/libslic3r/PrintConfig.cpp:876 src/libslic3r/PrintConfig.cpp:910
+#: src/libslic3r/PrintConfig.cpp:894
+msgid "Adaptive Cubic"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:895
+msgid "Support Cubic"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:899 src/libslic3r/PrintConfig.cpp:908
+#: src/libslic3r/PrintConfig.cpp:918 src/libslic3r/PrintConfig.cpp:952
msgid "First layer"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:860
+#: src/libslic3r/PrintConfig.cpp:900
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:869
+#: src/libslic3r/PrintConfig.cpp:909
+msgid "First layer bed temperature"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:910
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:878
+#: src/libslic3r/PrintConfig.cpp:920
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 "
@@ -7586,7 +8792,7 @@ msgid ""
"layer height. If set to zero, it will use the default extrusion width."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:891
+#: src/libslic3r/PrintConfig.cpp:933
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 "
@@ -7594,47 +8800,51 @@ msgid ""
"example: 150%) over the default layer height."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:900
+#: src/libslic3r/PrintConfig.cpp:942
msgid "First layer speed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:901
+#: src/libslic3r/PrintConfig.cpp:943
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:911
+#: src/libslic3r/PrintConfig.cpp:953
+msgid "First layer extruder temperature"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:954
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:920
+#: src/libslic3r/PrintConfig.cpp:964
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:928
+#: src/libslic3r/PrintConfig.cpp:972
msgid "Verbose G-code"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:929
+#: src/libslic3r/PrintConfig.cpp:973
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:936
+#: src/libslic3r/PrintConfig.cpp:980
msgid "G-code flavor"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:937
+#: src/libslic3r/PrintConfig.cpp:981
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 "
@@ -7642,15 +8852,15 @@ msgid ""
"extrusion value at all."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:960
+#: src/libslic3r/PrintConfig.cpp:1004
msgid "No extrusion"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:965
+#: src/libslic3r/PrintConfig.cpp:1009
msgid "Label objects"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:966
+#: src/libslic3r/PrintConfig.cpp:1010
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 "
@@ -7658,46 +8868,46 @@ msgid ""
"setup and Wipe into Object / Wipe into Infill."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:973
+#: src/libslic3r/PrintConfig.cpp:1017
msgid "High extruder current on filament swap"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:974
+#: src/libslic3r/PrintConfig.cpp:1018
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:982
+#: src/libslic3r/PrintConfig.cpp:1026
msgid ""
"This is the acceleration your printer will use for infill. Set zero to "
"disable acceleration control for infill."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:990
+#: src/libslic3r/PrintConfig.cpp:1034
msgid "Combine infill every"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:992
+#: src/libslic3r/PrintConfig.cpp:1036
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:995
+#: src/libslic3r/PrintConfig.cpp:1039
msgid "Combine infill every n layers"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1001
+#: src/libslic3r/PrintConfig.cpp:1045
msgid "Infill extruder"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1003
+#: src/libslic3r/PrintConfig.cpp:1047
msgid "The extruder to use when printing infill."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1011
+#: src/libslic3r/PrintConfig.cpp:1055
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 "
@@ -7706,32 +8916,32 @@ msgid ""
"example 90%) it will be computed over layer height."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1021
+#: src/libslic3r/PrintConfig.cpp:1065
msgid "Infill before perimeters"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1022
+#: src/libslic3r/PrintConfig.cpp:1066
msgid ""
"This option will switch the print order of perimeters and infill, making the "
"latter first."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1027
+#: src/libslic3r/PrintConfig.cpp:1071
msgid "Only infill where needed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1029
+#: src/libslic3r/PrintConfig.cpp:1073
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:1036
+#: src/libslic3r/PrintConfig.cpp:1080
msgid "Infill/perimeters overlap"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1038
+#: src/libslic3r/PrintConfig.cpp:1082
msgid ""
"This setting applies an additional overlap between infill and perimeters for "
"better bonding. Theoretically this shouldn't be needed, but backlash might "
@@ -7739,30 +8949,63 @@ msgid ""
"perimeter extrusion width."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1049
+#: src/libslic3r/PrintConfig.cpp:1093
msgid "Speed for printing the internal fill. Set to zero for auto."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1057
+#: src/libslic3r/PrintConfig.cpp:1101
msgid "Inherits profile"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1058
+#: src/libslic3r/PrintConfig.cpp:1102
msgid "Name of the profile, from which this profile inherits."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1071
+#: src/libslic3r/PrintConfig.cpp:1115
msgid "Interface shells"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1072
+#: src/libslic3r/PrintConfig.cpp:1116
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:1081
+#: src/libslic3r/PrintConfig.cpp:1124
+msgid "Enable ironing"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1125
+msgid ""
+"Enable ironing of the top layers with the hot print head for smooth surface"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1131 src/libslic3r/PrintConfig.cpp:1133
+msgid "Ironing Type"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1145
+msgid "Flow rate"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1147
+msgid "Percent of a flow rate relative to object's normal layer height."
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1155
+msgid "Spacing between ironing passes"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1157
+msgid "Distance between ironing lines"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1164 src/libslic3r/PrintConfig.cpp:1166
+msgid "Ironing speed"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1174
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 "
@@ -7770,11 +9013,11 @@ msgid ""
"[layer_z]."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1092
+#: src/libslic3r/PrintConfig.cpp:1185
msgid "Supports remaining times"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1093
+#: src/libslic3r/PrintConfig.cpp:1186
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. "
@@ -7782,151 +9025,163 @@ msgid ""
"firmware supports M73 Qxx Sxx for the silent mode."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1101
+#: src/libslic3r/PrintConfig.cpp:1194
msgid "Supports stealth mode"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1102
+#: src/libslic3r/PrintConfig.cpp:1195
msgid "The firmware supports stealth mode"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1125
+#: src/libslic3r/PrintConfig.cpp:1200
+msgid "How to apply"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1201
+msgid "Purpose of Machine Limits"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1203
+msgid "How to apply the Machine Limits"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1233
msgid "Maximum feedrate X"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1126
+#: src/libslic3r/PrintConfig.cpp:1234
msgid "Maximum feedrate Y"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1127
+#: src/libslic3r/PrintConfig.cpp:1235
msgid "Maximum feedrate Z"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1128
+#: src/libslic3r/PrintConfig.cpp:1236
msgid "Maximum feedrate E"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1131
+#: src/libslic3r/PrintConfig.cpp:1239
msgid "Maximum feedrate of the X axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1132
+#: src/libslic3r/PrintConfig.cpp:1240
msgid "Maximum feedrate of the Y axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1133
+#: src/libslic3r/PrintConfig.cpp:1241
msgid "Maximum feedrate of the Z axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1134
+#: src/libslic3r/PrintConfig.cpp:1242
msgid "Maximum feedrate of the E axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1142
+#: src/libslic3r/PrintConfig.cpp:1250
msgid "Maximum acceleration X"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1143
+#: src/libslic3r/PrintConfig.cpp:1251
msgid "Maximum acceleration Y"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1144
+#: src/libslic3r/PrintConfig.cpp:1252
msgid "Maximum acceleration Z"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1145
+#: src/libslic3r/PrintConfig.cpp:1253
msgid "Maximum acceleration E"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1148
+#: src/libslic3r/PrintConfig.cpp:1256
msgid "Maximum acceleration of the X axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1149
+#: src/libslic3r/PrintConfig.cpp:1257
msgid "Maximum acceleration of the Y axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1150
+#: src/libslic3r/PrintConfig.cpp:1258
msgid "Maximum acceleration of the Z axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1151
+#: src/libslic3r/PrintConfig.cpp:1259
msgid "Maximum acceleration of the E axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1159
+#: src/libslic3r/PrintConfig.cpp:1267
msgid "Maximum jerk X"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1160
+#: src/libslic3r/PrintConfig.cpp:1268
msgid "Maximum jerk Y"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1161
+#: src/libslic3r/PrintConfig.cpp:1269
msgid "Maximum jerk Z"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1162
+#: src/libslic3r/PrintConfig.cpp:1270
msgid "Maximum jerk E"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1165
+#: src/libslic3r/PrintConfig.cpp:1273
msgid "Maximum jerk of the X axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1166
+#: src/libslic3r/PrintConfig.cpp:1274
msgid "Maximum jerk of the Y axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1167
+#: src/libslic3r/PrintConfig.cpp:1275
msgid "Maximum jerk of the Z axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1168
+#: src/libslic3r/PrintConfig.cpp:1276
msgid "Maximum jerk of the E axis"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1178
+#: src/libslic3r/PrintConfig.cpp:1286
msgid "Minimum feedrate when extruding"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1180
+#: src/libslic3r/PrintConfig.cpp:1288
msgid "Minimum feedrate when extruding (M205 S)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1188
+#: src/libslic3r/PrintConfig.cpp:1296
msgid "Minimum travel feedrate"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1190
+#: src/libslic3r/PrintConfig.cpp:1298
msgid "Minimum travel feedrate (M205 T)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1198
+#: src/libslic3r/PrintConfig.cpp:1306
msgid "Maximum acceleration when extruding"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1200
+#: src/libslic3r/PrintConfig.cpp:1308
msgid "Maximum acceleration when extruding (M204 S)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1208
+#: src/libslic3r/PrintConfig.cpp:1316
msgid "Maximum acceleration when retracting"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1210
+#: src/libslic3r/PrintConfig.cpp:1318
msgid "Maximum acceleration when retracting (M204 T)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1217 src/libslic3r/PrintConfig.cpp:1226
+#: src/libslic3r/PrintConfig.cpp:1325 src/libslic3r/PrintConfig.cpp:1334
msgid "Max"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1218
+#: src/libslic3r/PrintConfig.cpp:1326
msgid "This setting represents the maximum speed of your fan."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1227
+#: src/libslic3r/PrintConfig.cpp:1335
#, possible-c-format
msgid ""
"This is the highest printable layer height for this extruder, used to cap "
@@ -7935,28 +9190,28 @@ msgid ""
"adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1237
+#: src/libslic3r/PrintConfig.cpp:1345
msgid "Max print speed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1238
+#: src/libslic3r/PrintConfig.cpp:1346
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:1248
+#: src/libslic3r/PrintConfig.cpp:1356
msgid ""
"This experimental setting is used to set the maximum volumetric speed your "
"extruder supports."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1257
+#: src/libslic3r/PrintConfig.cpp:1365
msgid "Max volumetric slope positive"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1258 src/libslic3r/PrintConfig.cpp:1269
+#: src/libslic3r/PrintConfig.cpp:1366 src/libslic3r/PrintConfig.cpp:1377
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 "
@@ -7964,95 +9219,95 @@ msgid ""
"s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1262 src/libslic3r/PrintConfig.cpp:1273
+#: src/libslic3r/PrintConfig.cpp:1370 src/libslic3r/PrintConfig.cpp:1381
msgid "mm³/s²"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1268
+#: src/libslic3r/PrintConfig.cpp:1376
msgid "Max volumetric slope negative"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1280 src/libslic3r/PrintConfig.cpp:1289
+#: src/libslic3r/PrintConfig.cpp:1388 src/libslic3r/PrintConfig.cpp:1397
msgid "Min"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1281
+#: src/libslic3r/PrintConfig.cpp:1389
msgid "This setting represents the minimum PWM your fan needs to work."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1290
+#: src/libslic3r/PrintConfig.cpp:1398
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:1298
+#: src/libslic3r/PrintConfig.cpp:1406
msgid "Min print speed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1299
+#: src/libslic3r/PrintConfig.cpp:1407
msgid "Slic3r will not scale speed down below this speed."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1306
+#: src/libslic3r/PrintConfig.cpp:1414
msgid "Minimal filament extrusion length"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1307
+#: src/libslic3r/PrintConfig.cpp:1415
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:1316
+#: src/libslic3r/PrintConfig.cpp:1424
msgid "Configuration notes"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1317
+#: src/libslic3r/PrintConfig.cpp:1425
msgid ""
"You can put here your personal notes. This text will be added to the G-code "
"header comments."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1327
+#: src/libslic3r/PrintConfig.cpp:1435
msgid ""
"This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1332
+#: src/libslic3r/PrintConfig.cpp:1440
msgid "Host Type"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1333
+#: src/libslic3r/PrintConfig.cpp:1441
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:1348
+#: src/libslic3r/PrintConfig.cpp:1456
msgid "Only retract when crossing perimeters"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1349
+#: src/libslic3r/PrintConfig.cpp:1457
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:1356
+#: src/libslic3r/PrintConfig.cpp:1464
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:1363
+#: src/libslic3r/PrintConfig.cpp:1471
msgid "Output filename format"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1364
+#: src/libslic3r/PrintConfig.cpp:1472
msgid ""
"You can use all configuration options as variables inside this template. For "
"example: [layer_height], [fill_density] etc. You can also use [timestamp], "
@@ -8060,31 +9315,31 @@ msgid ""
"[input_filename], [input_filename_base]."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1373
+#: src/libslic3r/PrintConfig.cpp:1481
msgid "Detect bridging perimeters"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1375
+#: src/libslic3r/PrintConfig.cpp:1483
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:1381
+#: src/libslic3r/PrintConfig.cpp:1489
msgid "Filament parking position"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1382
+#: src/libslic3r/PrintConfig.cpp:1490
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:1390
+#: src/libslic3r/PrintConfig.cpp:1498
msgid "Extra loading distance"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1391
+#: src/libslic3r/PrintConfig.cpp:1499
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 "
@@ -8092,28 +9347,28 @@ msgid ""
"than unloading."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1399 src/libslic3r/PrintConfig.cpp:1417
-#: src/libslic3r/PrintConfig.cpp:1430 src/libslic3r/PrintConfig.cpp:1440
+#: src/libslic3r/PrintConfig.cpp:1507 src/libslic3r/PrintConfig.cpp:1525
+#: src/libslic3r/PrintConfig.cpp:1538 src/libslic3r/PrintConfig.cpp:1548
msgid "Perimeters"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1400
+#: src/libslic3r/PrintConfig.cpp:1508
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:1408
+#: src/libslic3r/PrintConfig.cpp:1516
msgid "Perimeter extruder"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1410
+#: src/libslic3r/PrintConfig.cpp:1518
msgid ""
"The extruder to use when printing perimeters and brim. First extruder is 1."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1419
+#: src/libslic3r/PrintConfig.cpp:1527
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 "
@@ -8122,12 +9377,12 @@ msgid ""
"it will be computed over layer height."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1432
+#: src/libslic3r/PrintConfig.cpp:1540
msgid ""
"Speed for perimeters (contours, aka vertical shells). Set to zero for auto."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1442
+#: src/libslic3r/PrintConfig.cpp:1550
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 "
@@ -8135,11 +9390,11 @@ msgid ""
"Perimeters option is enabled."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1446
+#: src/libslic3r/PrintConfig.cpp:1554
msgid "(minimum)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1454
+#: src/libslic3r/PrintConfig.cpp:1562
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. "
@@ -8148,55 +9403,55 @@ msgid ""
"environment variables."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1466
+#: src/libslic3r/PrintConfig.cpp:1574
msgid "Printer type"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1467
+#: src/libslic3r/PrintConfig.cpp:1575
msgid "Type of the printer."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1472
+#: src/libslic3r/PrintConfig.cpp:1580
msgid "Printer notes"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1473
+#: src/libslic3r/PrintConfig.cpp:1581
msgid "You can put your notes regarding the printer here."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1481
+#: src/libslic3r/PrintConfig.cpp:1589
msgid "Printer vendor"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1482
+#: src/libslic3r/PrintConfig.cpp:1590
msgid "Name of the printer vendor."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1487
+#: src/libslic3r/PrintConfig.cpp:1595
msgid "Printer variant"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1488
+#: src/libslic3r/PrintConfig.cpp:1596
msgid ""
"Name of the printer variant. For example, the printer variants may be "
"differentiated by a nozzle diameter."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1501
+#: src/libslic3r/PrintConfig.cpp:1609
msgid "Raft layers"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1503
+#: src/libslic3r/PrintConfig.cpp:1611
msgid ""
"The object will be raised by this number of layers, and support material "
"will be generated under it."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1511
+#: src/libslic3r/PrintConfig.cpp:1619
msgid "Resolution"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1512
+#: src/libslic3r/PrintConfig.cpp:1620
msgid ""
"Minimum detail resolution, used to simplify the input file for speeding up "
"the slicing job and reducing memory usage. High-resolution models often "
@@ -8204,289 +9459,293 @@ msgid ""
"simplification and use full resolution from input."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1522
+#: src/libslic3r/PrintConfig.cpp:1630
msgid "Minimum travel after retraction"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1523
+#: src/libslic3r/PrintConfig.cpp:1631
msgid ""
"Retraction is not triggered when travel moves are shorter than this length."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1529
+#: src/libslic3r/PrintConfig.cpp:1637
msgid "Retract amount before wipe"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1530
+#: src/libslic3r/PrintConfig.cpp:1638
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:1537
+#: src/libslic3r/PrintConfig.cpp:1645
msgid "Retract on layer change"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1538
+#: src/libslic3r/PrintConfig.cpp:1646
msgid "This flag enforces a retraction whenever a Z move is done."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1543 src/libslic3r/PrintConfig.cpp:1551
+#: src/libslic3r/PrintConfig.cpp:1651 src/libslic3r/PrintConfig.cpp:1659
msgid "Length"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1544
+#: src/libslic3r/PrintConfig.cpp:1652
msgid "Retraction Length"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1545
+#: src/libslic3r/PrintConfig.cpp:1653
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:1547 src/libslic3r/PrintConfig.cpp:1556
+#: src/libslic3r/PrintConfig.cpp:1655 src/libslic3r/PrintConfig.cpp:1664
msgid "mm (zero to disable)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1552
+#: src/libslic3r/PrintConfig.cpp:1660
msgid "Retraction Length (Toolchange)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1553
+#: src/libslic3r/PrintConfig.cpp:1661
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:1561
+#: src/libslic3r/PrintConfig.cpp:1669
msgid "Lift Z"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1562
+#: src/libslic3r/PrintConfig.cpp:1670
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:1569
+#: src/libslic3r/PrintConfig.cpp:1677
msgid "Above Z"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1570
+#: src/libslic3r/PrintConfig.cpp:1678
msgid "Only lift Z above"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1571
+#: src/libslic3r/PrintConfig.cpp:1679
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:1578
+#: src/libslic3r/PrintConfig.cpp:1686
msgid "Below Z"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1579
+#: src/libslic3r/PrintConfig.cpp:1687
msgid "Only lift Z below"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1580
+#: src/libslic3r/PrintConfig.cpp:1688
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:1588 src/libslic3r/PrintConfig.cpp:1596
+#: src/libslic3r/PrintConfig.cpp:1696 src/libslic3r/PrintConfig.cpp:1704
msgid "Extra length on restart"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1589
+#: src/libslic3r/PrintConfig.cpp:1697
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:1597
+#: src/libslic3r/PrintConfig.cpp:1705
msgid ""
"When the retraction is compensated after changing tool, the extruder will "
"push this additional amount of filament."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1604 src/libslic3r/PrintConfig.cpp:1605
+#: src/libslic3r/PrintConfig.cpp:1712 src/libslic3r/PrintConfig.cpp:1713
msgid "Retraction Speed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1606
+#: src/libslic3r/PrintConfig.cpp:1714
msgid "The speed for retractions (it only applies to the extruder motor)."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1612 src/libslic3r/PrintConfig.cpp:1613
+#: src/libslic3r/PrintConfig.cpp:1720 src/libslic3r/PrintConfig.cpp:1721
msgid "Deretraction Speed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1614
+#: src/libslic3r/PrintConfig.cpp:1722
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:1621
+#: src/libslic3r/PrintConfig.cpp:1729
msgid "Seam position"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1623
+#: src/libslic3r/PrintConfig.cpp:1731
msgid "Position of perimeters starting points."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1629
+#: src/libslic3r/PrintConfig.cpp:1737
msgid "Random"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1630
+#: src/libslic3r/PrintConfig.cpp:1738
msgid "Nearest"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1631
+#: src/libslic3r/PrintConfig.cpp:1739
msgid "Aligned"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1639
+#: src/libslic3r/PrintConfig.cpp:1747
msgid "Direction"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1641
+#: src/libslic3r/PrintConfig.cpp:1749
msgid "Preferred direction of the seam"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1642
+#: src/libslic3r/PrintConfig.cpp:1750
msgid "Seam preferred direction"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1649
+#: src/libslic3r/PrintConfig.cpp:1757
msgid "Jitter"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1651
+#: src/libslic3r/PrintConfig.cpp:1759
msgid "Seam preferred direction jitter"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1652
+#: src/libslic3r/PrintConfig.cpp:1760
msgid "Preferred direction of the seam - jitter"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1662
+#: src/libslic3r/PrintConfig.cpp:1769
+msgid "Serial port"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1770
msgid "USB/serial port for printer connection."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1669
+#: src/libslic3r/PrintConfig.cpp:1777
msgid "Serial port speed"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1670
+#: src/libslic3r/PrintConfig.cpp:1778
msgid "Speed (baud) of USB/serial port for printer connection."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1679
+#: src/libslic3r/PrintConfig.cpp:1787
msgid "Distance from object"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1680
+#: src/libslic3r/PrintConfig.cpp:1788
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:1687
+#: src/libslic3r/PrintConfig.cpp:1795
msgid "Skirt height"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1688
+#: src/libslic3r/PrintConfig.cpp:1796
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:1695
+#: src/libslic3r/PrintConfig.cpp:1803
msgid "Draft shield"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1696
+#: src/libslic3r/PrintConfig.cpp:1804
msgid ""
"If enabled, the skirt will be as tall as a highest printed object. This is "
"useful to protect an ABS or ASA print from warping and detaching from print "
"bed due to wind draft."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1702
+#: src/libslic3r/PrintConfig.cpp:1810
msgid "Loops (minimum)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1703
+#: src/libslic3r/PrintConfig.cpp:1811
msgid "Skirt Loops"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1704
+#: src/libslic3r/PrintConfig.cpp:1812
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:1712
+#: src/libslic3r/PrintConfig.cpp:1820
msgid "Slow down if layer print time is below"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1713
+#: src/libslic3r/PrintConfig.cpp:1821
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:1722
+#: src/libslic3r/PrintConfig.cpp:1830
msgid "Small perimeters"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1724
+#: src/libslic3r/PrintConfig.cpp:1832
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:1734
+#: src/libslic3r/PrintConfig.cpp:1842
msgid "Solid infill threshold area"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1736
+#: src/libslic3r/PrintConfig.cpp:1844
msgid ""
"Force solid infill for regions having a smaller area than the specified "
"threshold."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1737
+#: src/libslic3r/PrintConfig.cpp:1845
msgid "mm²"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1743
+#: src/libslic3r/PrintConfig.cpp:1851
msgid "Solid infill extruder"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1745
+#: src/libslic3r/PrintConfig.cpp:1853
msgid "The extruder to use when printing solid infill."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1751
+#: src/libslic3r/PrintConfig.cpp:1859
msgid "Solid infill every"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1753
+#: src/libslic3r/PrintConfig.cpp:1861
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 "
@@ -8494,7 +9753,7 @@ msgid ""
"according to nozzle diameter and layer height."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1765
+#: src/libslic3r/PrintConfig.cpp:1873
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, "
@@ -8502,26 +9761,26 @@ msgid ""
"(for example 90%) it will be computed over layer height."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1776
+#: src/libslic3r/PrintConfig.cpp:1884
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:1788
+#: src/libslic3r/PrintConfig.cpp:1896
msgid "Number of solid layers to generate on top and bottom surfaces."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1794 src/libslic3r/PrintConfig.cpp:1795
+#: src/libslic3r/PrintConfig.cpp:1902 src/libslic3r/PrintConfig.cpp:1903
msgid "Minimum thickness of a top / bottom shell"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1801
+#: src/libslic3r/PrintConfig.cpp:1909
msgid "Spiral vase"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1802
+#: src/libslic3r/PrintConfig.cpp:1910
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, "
@@ -8530,18 +9789,18 @@ msgid ""
"when printing more than an object."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1810
+#: src/libslic3r/PrintConfig.cpp:1918
msgid "Temperature variation"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1811
+#: src/libslic3r/PrintConfig.cpp:1919
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:1821
+#: src/libslic3r/PrintConfig.cpp:1929
msgid ""
"This start procedure is inserted at the beginning, after bed has reached the "
"target temperature and extruder just started heating, and before extruder "
@@ -8552,7 +9811,7 @@ msgid ""
"put a \"M109 S[first_layer_temperature]\" command wherever you want."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1836
+#: src/libslic3r/PrintConfig.cpp:1944
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 "
@@ -8565,29 +9824,45 @@ msgid ""
"extruders, the gcode is processed in extruder order."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1852
+#: src/libslic3r/PrintConfig.cpp:1960
+msgid "Color change G-code"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1961
+msgid "This G-code will be used as a code for the color change"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1970
+msgid "This G-code will be used as a code for the pause print"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1979
+msgid "This G-code will be used as a custom code"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:1987
msgid "Single Extruder Multi Material"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1853
+#: src/libslic3r/PrintConfig.cpp:1988
msgid "The printer multiplexes filaments into a single hot end."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1858
+#: src/libslic3r/PrintConfig.cpp:1993
msgid "Prime all printing extruders"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1859
+#: src/libslic3r/PrintConfig.cpp:1994
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:1864
+#: src/libslic3r/PrintConfig.cpp:1999
msgid "No sparse layers (EXPERIMENTAL)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1865
+#: src/libslic3r/PrintConfig.cpp:2000
msgid ""
"If enabled, the wipe tower will not be printed on layers with no "
"toolchanges. On layers with a toolchange, extruder will travel downward to "
@@ -8595,75 +9870,75 @@ msgid ""
"with the print."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1872
+#: src/libslic3r/PrintConfig.cpp:2007
msgid "Generate support material"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1874
+#: src/libslic3r/PrintConfig.cpp:2009
msgid "Enable support material generation."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1878
+#: src/libslic3r/PrintConfig.cpp:2013
msgid "Auto generated supports"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1880
+#: src/libslic3r/PrintConfig.cpp:2015
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:1886
+#: src/libslic3r/PrintConfig.cpp:2021
msgid "XY separation between an object and its support"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1888
+#: src/libslic3r/PrintConfig.cpp:2023
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:1898
+#: src/libslic3r/PrintConfig.cpp:2033
msgid "Pattern angle"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1900
+#: src/libslic3r/PrintConfig.cpp:2035
msgid ""
"Use this setting to rotate the support material pattern on the horizontal "
"plane."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1910 src/libslic3r/PrintConfig.cpp:2693
+#: src/libslic3r/PrintConfig.cpp:2045 src/libslic3r/PrintConfig.cpp:2840
msgid ""
"Only create support if it lies on a build plate. Don't create support on a "
"print."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1916
+#: src/libslic3r/PrintConfig.cpp:2051
msgid "Contact Z distance"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1918
+#: src/libslic3r/PrintConfig.cpp:2053
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:1925
+#: src/libslic3r/PrintConfig.cpp:2060
msgid "0 (soluble)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1926
+#: src/libslic3r/PrintConfig.cpp:2061
msgid "0.2 (detachable)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1931
+#: src/libslic3r/PrintConfig.cpp:2066
msgid "Enforce support for the first"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1933
+#: src/libslic3r/PrintConfig.cpp:2068
msgid ""
"Generate support material for the specified number of layers counting from "
"bottom, regardless of whether normal support material is enabled or not and "
@@ -8671,21 +9946,21 @@ msgid ""
"of objects having a very thin or poor footprint on the build plate."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1938
+#: src/libslic3r/PrintConfig.cpp:2073
msgid "Enforce support for the first n layers"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1944
+#: src/libslic3r/PrintConfig.cpp:2079
msgid "Support material/raft/skirt extruder"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1946
+#: src/libslic3r/PrintConfig.cpp:2081
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:1955
+#: src/libslic3r/PrintConfig.cpp:2090
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, "
@@ -8693,89 +9968,89 @@ msgid ""
"example 90%) it will be computed over layer height."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1964
+#: src/libslic3r/PrintConfig.cpp:2099
msgid "Interface loops"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1966
+#: src/libslic3r/PrintConfig.cpp:2101
msgid ""
"Cover the top contact layer of the supports with loops. Disabled by default."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1971
+#: src/libslic3r/PrintConfig.cpp:2106
msgid "Support material/raft interface extruder"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1973
+#: src/libslic3r/PrintConfig.cpp:2108
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:1980
+#: src/libslic3r/PrintConfig.cpp:2115
msgid "Interface layers"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1982
+#: src/libslic3r/PrintConfig.cpp:2117
msgid ""
"Number of interface layers to insert between the object(s) and support "
"material."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1989
+#: src/libslic3r/PrintConfig.cpp:2124
msgid "Interface pattern spacing"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:1991
+#: src/libslic3r/PrintConfig.cpp:2126
msgid "Spacing between interface lines. Set zero to get a solid interface."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2000
+#: src/libslic3r/PrintConfig.cpp:2135
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:2009
+#: src/libslic3r/PrintConfig.cpp:2144
msgid "Pattern"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2011
+#: src/libslic3r/PrintConfig.cpp:2146
msgid "Pattern used to generate support material."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2017
+#: src/libslic3r/PrintConfig.cpp:2152
msgid "Rectilinear grid"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2023
+#: src/libslic3r/PrintConfig.cpp:2158
msgid "Pattern spacing"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2025
+#: src/libslic3r/PrintConfig.cpp:2160
msgid "Spacing between support material lines."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2034
+#: src/libslic3r/PrintConfig.cpp:2169
msgid "Speed for printing support material."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2041
+#: src/libslic3r/PrintConfig.cpp:2176
msgid "Synchronize with object layers"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2043
+#: src/libslic3r/PrintConfig.cpp:2178
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:2049
+#: src/libslic3r/PrintConfig.cpp:2184
msgid "Overhang threshold"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2051
+#: src/libslic3r/PrintConfig.cpp:2186
msgid ""
"Support material will not be generated for overhangs whose slope angle (90° "
"= vertical) is above the given threshold. In other words, this value "
@@ -8784,43 +10059,47 @@ msgid ""
"detection (recommended)."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2063
+#: src/libslic3r/PrintConfig.cpp:2198
msgid "With sheath around the support"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2065
+#: src/libslic3r/PrintConfig.cpp:2200
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:2072
+#: src/libslic3r/PrintConfig.cpp:2207
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:2080
+#: src/libslic3r/PrintConfig.cpp:2210
+msgid "Extruder temperature"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:2216
msgid "Detect thin walls"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2082
+#: src/libslic3r/PrintConfig.cpp:2218
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:2088
+#: src/libslic3r/PrintConfig.cpp:2224
msgid "Threads"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2089
+#: src/libslic3r/PrintConfig.cpp:2225
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:2101
+#: src/libslic3r/PrintConfig.cpp:2237
msgid ""
"This custom code is inserted before every toolchange. Placeholder variables "
"for all PrusaSlicer settings as well as {previous_extruder} and "
@@ -8830,7 +10109,7 @@ msgid ""
"behaviour both before and after the toolchange."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2114
+#: src/libslic3r/PrintConfig.cpp:2250
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 "
@@ -8839,7 +10118,7 @@ msgid ""
"percentage (for example 90%) it will be computed over layer height."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2126
+#: src/libslic3r/PrintConfig.cpp:2262
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 "
@@ -8848,54 +10127,54 @@ msgid ""
"for auto."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2141
+#: src/libslic3r/PrintConfig.cpp:2277
msgid "Number of solid layers to generate on top surfaces."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2142
+#: src/libslic3r/PrintConfig.cpp:2278
msgid "Top solid layers"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2150
+#: src/libslic3r/PrintConfig.cpp:2286
msgid ""
"The number of top solid layers is increased above top_solid_layers if "
"necessary to satisfy minimum thickness of top shell. This is useful to "
"prevent pillowing effect when printing with variable layer height."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2153
+#: src/libslic3r/PrintConfig.cpp:2289
msgid "Minimum top shell thickness"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2160
+#: src/libslic3r/PrintConfig.cpp:2296
msgid "Speed for travel moves (jumps between distant extrusion points)."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2168
+#: src/libslic3r/PrintConfig.cpp:2304
msgid "Use firmware retraction"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2169
+#: src/libslic3r/PrintConfig.cpp:2305
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:2175
+#: src/libslic3r/PrintConfig.cpp:2311
msgid "Use relative E distances"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2176
+#: src/libslic3r/PrintConfig.cpp:2312
msgid ""
"If your firmware requires relative E values, check this, otherwise leave it "
"unchecked. Most firmwares use absolute values."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2182
+#: src/libslic3r/PrintConfig.cpp:2318
msgid "Use volumetric E"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2183
+#: src/libslic3r/PrintConfig.cpp:2319
msgid ""
"This experimental setting uses outputs the E values in cubic millimeters "
"instead of linear millimeters. If your firmware doesn't already know "
@@ -8905,127 +10184,127 @@ msgid ""
"only supported in recent Marlin."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2193
+#: src/libslic3r/PrintConfig.cpp:2329
msgid "Enable variable layer height feature"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2194
+#: src/libslic3r/PrintConfig.cpp:2330
msgid ""
"Some printers or printer setups may have difficulties printing with a "
"variable layer height. Enabled by default."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2200
+#: src/libslic3r/PrintConfig.cpp:2336
msgid "Wipe while retracting"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2201
+#: src/libslic3r/PrintConfig.cpp:2337
msgid ""
"This flag will move the nozzle while retracting to minimize the possible "
"blob on leaky extruders."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2208
+#: src/libslic3r/PrintConfig.cpp:2344
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:2214
+#: src/libslic3r/PrintConfig.cpp:2350
msgid "Purging volumes - load/unload volumes"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2215
+#: src/libslic3r/PrintConfig.cpp:2351
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:2221
+#: src/libslic3r/PrintConfig.cpp:2357
msgid "Purging volumes - matrix"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2222
+#: src/libslic3r/PrintConfig.cpp:2358
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:2231
+#: src/libslic3r/PrintConfig.cpp:2367
msgid "Position X"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2232
+#: src/libslic3r/PrintConfig.cpp:2368
msgid "X coordinate of the left front corner of a wipe tower"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2238
+#: src/libslic3r/PrintConfig.cpp:2374
msgid "Position Y"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2239
+#: src/libslic3r/PrintConfig.cpp:2375
msgid "Y coordinate of the left front corner of a wipe tower"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2246
+#: src/libslic3r/PrintConfig.cpp:2382
msgid "Width of a wipe tower"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2252
+#: src/libslic3r/PrintConfig.cpp:2388
msgid "Wipe tower rotation angle"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2253
+#: src/libslic3r/PrintConfig.cpp:2389
msgid "Wipe tower rotation angle with respect to x-axis."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2260
+#: src/libslic3r/PrintConfig.cpp:2396
msgid "Wipe into this object's infill"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2261
+#: src/libslic3r/PrintConfig.cpp:2397
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:2268
+#: src/libslic3r/PrintConfig.cpp:2404
msgid "Wipe into this object"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2269
+#: src/libslic3r/PrintConfig.cpp:2405
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:2275
+#: src/libslic3r/PrintConfig.cpp:2411
msgid "Maximal bridging distance"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2276
+#: src/libslic3r/PrintConfig.cpp:2412
msgid "Maximal distance between supports on sparse infill sections."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2282
+#: src/libslic3r/PrintConfig.cpp:2418
msgid "XY Size Compensation"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2284
+#: src/libslic3r/PrintConfig.cpp:2420
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:2292
+#: src/libslic3r/PrintConfig.cpp:2428
msgid "Z offset"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2293
+#: src/libslic3r/PrintConfig.cpp:2429
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 "
@@ -9033,408 +10312,414 @@ msgid ""
"print bed, set this to -0.3 (or fix your endstop)."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2360
+#: src/libslic3r/PrintConfig.cpp:2496
msgid "Display width"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2361
+#: src/libslic3r/PrintConfig.cpp:2497
msgid "Width of the display"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2366
+#: src/libslic3r/PrintConfig.cpp:2502
msgid "Display height"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2367
+#: src/libslic3r/PrintConfig.cpp:2503
msgid "Height of the display"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2372
+#: src/libslic3r/PrintConfig.cpp:2508
msgid "Number of pixels in"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2374
+#: src/libslic3r/PrintConfig.cpp:2510
msgid "Number of pixels in X"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2380
+#: src/libslic3r/PrintConfig.cpp:2516
msgid "Number of pixels in Y"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2385
+#: src/libslic3r/PrintConfig.cpp:2521
msgid "Display horizontal mirroring"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2386
+#: src/libslic3r/PrintConfig.cpp:2522
msgid "Mirror horizontally"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2387
+#: src/libslic3r/PrintConfig.cpp:2523
msgid "Enable horizontal mirroring of output images"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2392
+#: src/libslic3r/PrintConfig.cpp:2528
msgid "Display vertical mirroring"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2393
+#: src/libslic3r/PrintConfig.cpp:2529
msgid "Mirror vertically"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2394
+#: src/libslic3r/PrintConfig.cpp:2530
msgid "Enable vertical mirroring of output images"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2399
+#: src/libslic3r/PrintConfig.cpp:2535
msgid "Display orientation"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2400
+#: src/libslic3r/PrintConfig.cpp:2536
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:2406
+#: src/libslic3r/PrintConfig.cpp:2542
msgid "Landscape"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2407
+#: src/libslic3r/PrintConfig.cpp:2543
msgid "Portrait"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2412
+#: src/libslic3r/PrintConfig.cpp:2548
msgid "Fast"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2413
+#: src/libslic3r/PrintConfig.cpp:2549
msgid "Fast tilt"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2414
+#: src/libslic3r/PrintConfig.cpp:2550
msgid "Time of the fast tilt"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2421
+#: src/libslic3r/PrintConfig.cpp:2557
msgid "Slow"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2422
+#: src/libslic3r/PrintConfig.cpp:2558
msgid "Slow tilt"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2423
+#: src/libslic3r/PrintConfig.cpp:2559
msgid "Time of the slow tilt"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2430
+#: src/libslic3r/PrintConfig.cpp:2566
msgid "Area fill"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2431
+#: src/libslic3r/PrintConfig.cpp:2567
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:2438 src/libslic3r/PrintConfig.cpp:2439
-#: src/libslic3r/PrintConfig.cpp:2440
+#: src/libslic3r/PrintConfig.cpp:2574 src/libslic3r/PrintConfig.cpp:2575
+#: src/libslic3r/PrintConfig.cpp:2576
msgid "Printer scaling correction"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2446 src/libslic3r/PrintConfig.cpp:2447
+#: src/libslic3r/PrintConfig.cpp:2582 src/libslic3r/PrintConfig.cpp:2583
msgid "Printer absolute correction"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2448
+#: src/libslic3r/PrintConfig.cpp:2584
msgid ""
"Will inflate or deflate the sliced 2D polygons according to the sign of the "
"correction."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2454
+#: src/libslic3r/PrintConfig.cpp:2590
msgid "Elephant foot minimum width"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2456
+#: src/libslic3r/PrintConfig.cpp:2592
msgid ""
"Minimum width of features to maintain when doing elephant foot compensation."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2463 src/libslic3r/PrintConfig.cpp:2464
+#: src/libslic3r/PrintConfig.cpp:2599 src/libslic3r/PrintConfig.cpp:2600
msgid "Printer gamma correction"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2465
+#: src/libslic3r/PrintConfig.cpp:2601
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:2477 src/libslic3r/PrintConfig.cpp:2478
+#: src/libslic3r/PrintConfig.cpp:2613 src/libslic3r/PrintConfig.cpp:2614
msgid "SLA material type"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2489 src/libslic3r/PrintConfig.cpp:2490
+#: src/libslic3r/PrintConfig.cpp:2625 src/libslic3r/PrintConfig.cpp:2626
msgid "Initial layer height"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2496 src/libslic3r/PrintConfig.cpp:2497
+#: src/libslic3r/PrintConfig.cpp:2632 src/libslic3r/PrintConfig.cpp:2633
msgid "Bottle volume"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2498
+#: src/libslic3r/PrintConfig.cpp:2634
msgid "ml"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2503 src/libslic3r/PrintConfig.cpp:2504
+#: src/libslic3r/PrintConfig.cpp:2639 src/libslic3r/PrintConfig.cpp:2640
msgid "Bottle weight"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2505
+#: src/libslic3r/PrintConfig.cpp:2641
msgid "kg"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2512
+#: src/libslic3r/PrintConfig.cpp:2648
msgid "g/ml"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2519
+#: src/libslic3r/PrintConfig.cpp:2655
msgid "money/bottle"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2524
+#: src/libslic3r/PrintConfig.cpp:2660
msgid "Faded layers"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2525
+#: src/libslic3r/PrintConfig.cpp:2661
msgid ""
"Number of the layers needed for the exposure time fade from initial exposure "
"time to the exposure time"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2532 src/libslic3r/PrintConfig.cpp:2533
+#: src/libslic3r/PrintConfig.cpp:2668 src/libslic3r/PrintConfig.cpp:2669
msgid "Minimum exposure time"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2540 src/libslic3r/PrintConfig.cpp:2541
+#: src/libslic3r/PrintConfig.cpp:2676 src/libslic3r/PrintConfig.cpp:2677
msgid "Maximum exposure time"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2548 src/libslic3r/PrintConfig.cpp:2549
+#: src/libslic3r/PrintConfig.cpp:2684 src/libslic3r/PrintConfig.cpp:2685
msgid "Exposure time"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2555 src/libslic3r/PrintConfig.cpp:2556
+#: src/libslic3r/PrintConfig.cpp:2691 src/libslic3r/PrintConfig.cpp:2692
msgid "Minimum initial exposure time"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2563 src/libslic3r/PrintConfig.cpp:2564
+#: src/libslic3r/PrintConfig.cpp:2699 src/libslic3r/PrintConfig.cpp:2700
msgid "Maximum initial exposure time"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2571 src/libslic3r/PrintConfig.cpp:2572
+#: src/libslic3r/PrintConfig.cpp:2707 src/libslic3r/PrintConfig.cpp:2708
msgid "Initial exposure time"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2578 src/libslic3r/PrintConfig.cpp:2579
+#: src/libslic3r/PrintConfig.cpp:2714 src/libslic3r/PrintConfig.cpp:2715
msgid "Correction for expansion"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2585
+#: src/libslic3r/PrintConfig.cpp:2721
msgid "SLA print material notes"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2586
+#: src/libslic3r/PrintConfig.cpp:2722
msgid "You can put your notes regarding the SLA print material here."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2598 src/libslic3r/PrintConfig.cpp:2609
+#: src/libslic3r/PrintConfig.cpp:2734 src/libslic3r/PrintConfig.cpp:2745
msgid "Default SLA material profile"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2620
+#: src/libslic3r/PrintConfig.cpp:2756
msgid "Generate supports"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2622
+#: src/libslic3r/PrintConfig.cpp:2758
msgid "Generate supports for the models"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2627
-msgid "Support head front diameter"
+#: src/libslic3r/PrintConfig.cpp:2763
+msgid "Pinhead front diameter"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2629
+#: src/libslic3r/PrintConfig.cpp:2765
msgid "Diameter of the pointing side of the head"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2636
-msgid "Support head penetration"
+#: src/libslic3r/PrintConfig.cpp:2772
+msgid "Head penetration"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2638
+#: src/libslic3r/PrintConfig.cpp:2774
msgid "How much the pinhead has to penetrate the model surface"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2645
-msgid "Support head width"
+#: src/libslic3r/PrintConfig.cpp:2781
+msgid "Pinhead width"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2647
+#: src/libslic3r/PrintConfig.cpp:2783
msgid "Width from the back sphere center to the front sphere center"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2655
-msgid "Support pillar diameter"
+#: src/libslic3r/PrintConfig.cpp:2791
+msgid "Pillar diameter"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2657
+#: src/libslic3r/PrintConfig.cpp:2793
msgid "Diameter in mm of the support pillars"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2665
+#: src/libslic3r/PrintConfig.cpp:2801
+msgid "Small pillar diameter percent"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:2803
+msgid ""
+"The percentage of smaller pillars compared to the normal pillar diameter "
+"which are used in problematic areas where a normal pilla cannot fit."
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:2812
msgid "Max bridges on a pillar"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2667
+#: src/libslic3r/PrintConfig.cpp:2814
msgid ""
"Maximum number of bridges that can be placed on a pillar. Bridges hold "
"support point pinheads and connect to pillars as small branches."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2675
-msgid "Support pillar connection mode"
+#: src/libslic3r/PrintConfig.cpp:2822
+msgid "Pillar connection mode"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2676
+#: src/libslic3r/PrintConfig.cpp:2823
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:2684
+#: src/libslic3r/PrintConfig.cpp:2831
msgid "Zig-Zag"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2685
+#: src/libslic3r/PrintConfig.cpp:2832
msgid "Cross"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2686
+#: src/libslic3r/PrintConfig.cpp:2833
msgid "Dynamic"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2698
+#: src/libslic3r/PrintConfig.cpp:2845
msgid "Pillar widening factor"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2700
+#: src/libslic3r/PrintConfig.cpp:2847
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:2709
+#: src/libslic3r/PrintConfig.cpp:2856
msgid "Support base diameter"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2711
+#: src/libslic3r/PrintConfig.cpp:2858
msgid "Diameter in mm of the pillar base"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2719
+#: src/libslic3r/PrintConfig.cpp:2866
msgid "Support base height"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2721
+#: src/libslic3r/PrintConfig.cpp:2868
msgid "The height of the pillar base cone"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2728
+#: src/libslic3r/PrintConfig.cpp:2875
msgid "Support base safety distance"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2731
+#: src/libslic3r/PrintConfig.cpp:2878
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:2741
+#: src/libslic3r/PrintConfig.cpp:2888
msgid "Critical angle"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2743
+#: src/libslic3r/PrintConfig.cpp:2890
msgid "The default angle for connecting support sticks and junctions."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2751
+#: src/libslic3r/PrintConfig.cpp:2898
msgid "Max bridge length"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2753
+#: src/libslic3r/PrintConfig.cpp:2900
msgid "The max length of a bridge"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2760
+#: src/libslic3r/PrintConfig.cpp:2907
msgid "Max pillar linking distance"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2762
+#: src/libslic3r/PrintConfig.cpp:2909
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:2770
-msgid "Object elevation"
-msgstr ""
-
-#: src/libslic3r/PrintConfig.cpp:2772
+#: src/libslic3r/PrintConfig.cpp:2919
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:2783
+#: src/libslic3r/PrintConfig.cpp:2930
msgid "This is a relative measure of support points density."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2789
+#: src/libslic3r/PrintConfig.cpp:2936
msgid "Minimal distance of the support points"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2791
+#: src/libslic3r/PrintConfig.cpp:2938
msgid "No support points will be placed closer than this threshold."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2797
+#: src/libslic3r/PrintConfig.cpp:2944
msgid "Use pad"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2799
+#: src/libslic3r/PrintConfig.cpp:2946
msgid "Add a pad underneath the supported model"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2804
+#: src/libslic3r/PrintConfig.cpp:2951
msgid "Pad wall thickness"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2806
+#: src/libslic3r/PrintConfig.cpp:2953
msgid "The thickness of the pad and its optional cavity walls."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2814
+#: src/libslic3r/PrintConfig.cpp:2961
msgid "Pad wall height"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2815
+#: src/libslic3r/PrintConfig.cpp:2962
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 "
@@ -9442,115 +10727,107 @@ msgid ""
"difficult."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2828
+#: src/libslic3r/PrintConfig.cpp:2975
msgid "Pad brim size"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2829
+#: src/libslic3r/PrintConfig.cpp:2976
msgid "How far should the pad extend around the contained geometry"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2839
+#: src/libslic3r/PrintConfig.cpp:2986
msgid "Max merge distance"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2841
+#: src/libslic3r/PrintConfig.cpp:2988
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:2861
+#: src/libslic3r/PrintConfig.cpp:3008
msgid "Pad wall slope"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2863
+#: src/libslic3r/PrintConfig.cpp:3010
msgid ""
"The slope of the pad wall relative to the bed plane. 90 degrees means "
"straight walls."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2872
-msgid "Pad around object"
-msgstr ""
-
-#: src/libslic3r/PrintConfig.cpp:2874
+#: src/libslic3r/PrintConfig.cpp:3021
msgid "Create pad around object and ignore the support elevation"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2879
+#: src/libslic3r/PrintConfig.cpp:3026
msgid "Pad around object everywhere"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2881
+#: src/libslic3r/PrintConfig.cpp:3028
msgid "Force pad around object everywhere"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2886
+#: src/libslic3r/PrintConfig.cpp:3033
msgid "Pad object gap"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2888
+#: src/libslic3r/PrintConfig.cpp:3035
msgid ""
"The gap between the object bottom and the generated pad in zero elevation "
"mode."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2897
+#: src/libslic3r/PrintConfig.cpp:3044
msgid "Pad object connector stride"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2899
+#: src/libslic3r/PrintConfig.cpp:3046
msgid ""
"Distance between two connector sticks which connect the object and the "
"generated pad."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2906
+#: src/libslic3r/PrintConfig.cpp:3053
msgid "Pad object connector width"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2908
+#: src/libslic3r/PrintConfig.cpp:3055
msgid ""
"Width of the connector sticks which connect the object and the generated pad."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2915
+#: src/libslic3r/PrintConfig.cpp:3062
msgid "Pad object connector penetration"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2918
+#: src/libslic3r/PrintConfig.cpp:3065
msgid "How much should the tiny connectors penetrate into the model body."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2925
+#: src/libslic3r/PrintConfig.cpp:3072
msgid "Enable hollowing"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2927
+#: src/libslic3r/PrintConfig.cpp:3074
msgid "Hollow out a model to have an empty interior"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2932
+#: src/libslic3r/PrintConfig.cpp:3079
msgid "Wall thickness"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2934
+#: src/libslic3r/PrintConfig.cpp:3081
msgid "Minimum wall thickness of a hollowed model."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2942
-msgid "Accuracy"
-msgstr ""
-
-#: src/libslic3r/PrintConfig.cpp:2944
+#: src/libslic3r/PrintConfig.cpp:3091
msgid ""
"Performance vs accuracy of calculation. Lower values may produce unwanted "
"artifacts."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:2954
+#: src/libslic3r/PrintConfig.cpp:3101
msgid ""
"Hollowing is done in two steps: first, an imaginary interior is calculated "
"deeper (offset plus the closing distance) in the object and then it's "
@@ -9559,292 +10836,287 @@ msgid ""
"most."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3342
+#: src/libslic3r/PrintConfig.cpp:3513
msgid "Export OBJ"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3343
+#: src/libslic3r/PrintConfig.cpp:3514
msgid "Export the model(s) as OBJ."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3354
+#: src/libslic3r/PrintConfig.cpp:3525
msgid "Export SLA"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3355
+#: src/libslic3r/PrintConfig.cpp:3526
msgid "Slice the model and export SLA printing layers as PNG."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3360
+#: src/libslic3r/PrintConfig.cpp:3531
msgid "Export 3MF"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3361
+#: src/libslic3r/PrintConfig.cpp:3532
msgid "Export the model(s) as 3MF."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3365
+#: src/libslic3r/PrintConfig.cpp:3536
msgid "Export AMF"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3366
+#: src/libslic3r/PrintConfig.cpp:3537
msgid "Export the model(s) as AMF."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3370
+#: src/libslic3r/PrintConfig.cpp:3541
msgid "Export STL"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3371
+#: src/libslic3r/PrintConfig.cpp:3542
msgid "Export the model(s) as STL."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3376
+#: src/libslic3r/PrintConfig.cpp:3547
msgid "Slice the model and export toolpaths as G-code."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3381
+#: src/libslic3r/PrintConfig.cpp:3552
+msgid "G-code viewer"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:3553
+msgid "Visualize an already sliced and saved G-code"
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:3558
msgid "Slice"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3382
+#: src/libslic3r/PrintConfig.cpp:3559
msgid ""
"Slice the model as FFF or SLA based on the printer_technology configuration "
"value."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3387
+#: src/libslic3r/PrintConfig.cpp:3564
msgid "Help"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3388
+#: src/libslic3r/PrintConfig.cpp:3565
msgid "Show this help."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3393
+#: src/libslic3r/PrintConfig.cpp:3570
msgid "Help (FFF options)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3394
+#: src/libslic3r/PrintConfig.cpp:3571
msgid "Show the full list of print/G-code configuration options."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3398
+#: src/libslic3r/PrintConfig.cpp:3575
msgid "Help (SLA options)"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3399
+#: src/libslic3r/PrintConfig.cpp:3576
msgid "Show the full list of SLA print configuration options."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3403
+#: src/libslic3r/PrintConfig.cpp:3580
msgid "Output Model Info"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3404
+#: src/libslic3r/PrintConfig.cpp:3581
msgid "Write information about the model to the console."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3408
+#: src/libslic3r/PrintConfig.cpp:3585
msgid "Save config file"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3409
+#: src/libslic3r/PrintConfig.cpp:3586
msgid "Save configuration to the specified file."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3419
+#: src/libslic3r/PrintConfig.cpp:3596
msgid "Align XY"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3420
+#: src/libslic3r/PrintConfig.cpp:3597
msgid "Align the model to the given point."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3425
+#: src/libslic3r/PrintConfig.cpp:3602
msgid "Cut model at the given Z."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3446
+#: src/libslic3r/PrintConfig.cpp:3623
msgid "Center"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3447
+#: src/libslic3r/PrintConfig.cpp:3624
msgid "Center the print around the given center."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3451
+#: src/libslic3r/PrintConfig.cpp:3628
msgid "Don't arrange"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3452
+#: src/libslic3r/PrintConfig.cpp:3629
msgid ""
"Do not rearrange the given models before merging and keep their original XY "
"coordinates."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3455
+#: src/libslic3r/PrintConfig.cpp:3632
msgid "Duplicate"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3456
+#: src/libslic3r/PrintConfig.cpp:3633
msgid "Multiply copies by this factor."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3460
+#: src/libslic3r/PrintConfig.cpp:3637
msgid "Duplicate by grid"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3461
+#: src/libslic3r/PrintConfig.cpp:3638
msgid "Multiply copies by creating a grid."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3464
-msgid "Merge"
-msgstr ""
-
-#: src/libslic3r/PrintConfig.cpp:3465
+#: src/libslic3r/PrintConfig.cpp:3642
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:3470
+#: src/libslic3r/PrintConfig.cpp:3647
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:3474
+#: src/libslic3r/PrintConfig.cpp:3651
msgid "Rotation angle around the Z axis in degrees."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3478
+#: src/libslic3r/PrintConfig.cpp:3655
msgid "Rotate around X"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3479
+#: src/libslic3r/PrintConfig.cpp:3656
msgid "Rotation angle around the X axis in degrees."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3483
+#: src/libslic3r/PrintConfig.cpp:3660
msgid "Rotate around Y"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3484
+#: src/libslic3r/PrintConfig.cpp:3661
msgid "Rotation angle around the Y axis in degrees."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3489
+#: src/libslic3r/PrintConfig.cpp:3666
msgid "Scaling factor or percentage."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3494
+#: src/libslic3r/PrintConfig.cpp:3671
msgid ""
"Detect unconnected parts in the given model(s) and split them into separate "
"objects."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3497
+#: src/libslic3r/PrintConfig.cpp:3674
msgid "Scale to Fit"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3498
+#: src/libslic3r/PrintConfig.cpp:3675
msgid "Scale to fit the given volume."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3507
+#: src/libslic3r/PrintConfig.cpp:3684
msgid "Ignore non-existent config files"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3508
+#: src/libslic3r/PrintConfig.cpp:3685
msgid "Do not fail if a file supplied to --load does not exist."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3511
+#: src/libslic3r/PrintConfig.cpp:3688
msgid "Load config file"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3512
+#: src/libslic3r/PrintConfig.cpp:3689
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:3515
+#: src/libslic3r/PrintConfig.cpp:3692
msgid "Output File"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3516
+#: src/libslic3r/PrintConfig.cpp:3693
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:3526
+#: src/libslic3r/PrintConfig.cpp:3698
+msgid ""
+"If enabled, the command line arguments are sent to an existing instance of "
+"GUI PrusaSlicer, or an existing PrusaSlicer window is activated. Overrides "
+"the \"single_instance\" configuration value from application preferences."
+msgstr ""
+
+#: src/libslic3r/PrintConfig.cpp:3709
msgid "Data directory"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3527
+#: src/libslic3r/PrintConfig.cpp:3710
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:3530
+#: src/libslic3r/PrintConfig.cpp:3713
msgid "Logging level"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3531
+#: src/libslic3r/PrintConfig.cpp:3714
msgid ""
"Sets logging sensitivity. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:"
"trace\n"
"For example. loglevel=2 logs fatal, error and warning level messages."
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3537
+#: src/libslic3r/PrintConfig.cpp:3720
msgid "Render with a software renderer"
msgstr ""
-#: src/libslic3r/PrintConfig.cpp:3538
+#: src/libslic3r/PrintConfig.cpp:3721
msgid ""
"Render with a software renderer. The bundled MESA software renderer is "
"loaded instead of the default OpenGL driver."
msgstr ""
-#: src/libslic3r/PrintObject.cpp:108
+#: src/libslic3r/Zipper.cpp:27
+msgid "Error with zip archive"
+msgstr ""
+
+#: src/libslic3r/PrintObject.cpp:114
msgid "Processing triangulated mesh"
msgstr ""
-#: src/libslic3r/PrintObject.cpp:152
+#: src/libslic3r/PrintObject.cpp:158
msgid "Generating perimeters"
msgstr ""
-#: src/libslic3r/PrintObject.cpp:255
+#: src/libslic3r/PrintObject.cpp:261
msgid "Preparing infill"
msgstr ""
-#: src/libslic3r/PrintObject.cpp:395
+#: src/libslic3r/PrintObject.cpp:422
msgid "Generating support material"
msgstr ""
-
-#: src/libslic3r/GCode/PreviewData.cpp:348
-msgid "Height (mm)"
-msgstr ""
-
-#: src/libslic3r/GCode/PreviewData.cpp:350
-msgid "Width (mm)"
-msgstr ""
-
-#: src/libslic3r/GCode/PreviewData.cpp:352
-msgid "Speed (mm/s)"
-msgstr ""
-
-#: src/libslic3r/GCode/PreviewData.cpp:354
-msgid "Fan Speed (%)"
-msgstr ""
-
-#: src/libslic3r/GCode/PreviewData.cpp:356
-msgid "Volumetric flow rate (mm³/s)"
-msgstr ""
diff --git a/resources/localization/list.txt b/resources/localization/list.txt
index 3c2a95638..6950dc709 100644
--- a/resources/localization/list.txt
+++ b/resources/localization/list.txt
@@ -1,5 +1,4 @@
src/slic3r/GUI/AboutDialog.cpp
-src/slic3r/GUI/AppConfig.cpp
src/slic3r/GUI/BackgroundSlicingProcess.cpp
src/slic3r/GUI/BedShapeDialog.cpp
src/slic3r/GUI/BedShapeDialog.hpp
@@ -9,45 +8,60 @@ src/slic3r/GUI/ConfigManipulation.cpp
src/slic3r/GUI/ConfigSnapshotDialog.cpp
src/slic3r/GUI/ConfigWizard.cpp
src/slic3r/GUI/DoubleSlider.cpp
+src/slic3r/GUI/ExtraRenderers.cpp
src/slic3r/GUI/ExtruderSequenceDialog.cpp
src/slic3r/GUI/Field.cpp
src/slic3r/GUI/FirmwareDialog.cpp
+src/slic3r/GUI/GCodeViewer.cpp
src/slic3r/GUI/GLCanvas3D.cpp
-src/slic3r/GUI/GLCanvas3DManager.cpp
src/slic3r/GUI/Gizmos/GLGizmoCut.cpp
+src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp
src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp
src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp
src/slic3r/GUI/Gizmos/GLGizmoMove.cpp
src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp
src/slic3r/GUI/Gizmos/GLGizmoScale.cpp
+src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp
src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp
src/slic3r/GUI/Gizmos/GLGizmosManager.cpp
+src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp
src/slic3r/GUI/GUI.cpp
src/slic3r/GUI/GUI_App.cpp
+src/slic3r/GUI/GUI_Init.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
src/slic3r/GUI/GUI_Preview.cpp
-src/slic3r/GUI/Job.hpp
+src/slic3r/GUI/ImGuiWrapper.cpp
+src/slic3r/GUI/Jobs/ArrangeJob.cpp
+src/slic3r/GUI/Jobs/Job.cpp
+src/slic3r/GUI/Jobs/RotoptimizeJob.cpp
+src/slic3r/GUI/Jobs/SLAImportJob.cpp
src/slic3r/GUI/KBShortcutsDialog.cpp
src/slic3r/GUI/MainFrame.cpp
src/slic3r/GUI/Mouse3DController.cpp
src/slic3r/GUI/MsgDialog.cpp
+src/slic3r/GUI/NotificationManager.hpp
+src/slic3r/GUI/NotificationManager.cpp
src/slic3r/GUI/ObjectDataViewModel.cpp
+src/slic3r/GUI/OpenGLManager.cpp
src/slic3r/GUI/OptionsGroup.cpp
+src/slic3r/GUI/PhysicalPrinterDialog.cpp
src/slic3r/GUI/Plater.cpp
src/slic3r/GUI/Preferences.cpp
-src/slic3r/GUI/Preset.cpp
-src/slic3r/GUI/PresetBundle.cpp
+src/slic3r/GUI/PresetComboBoxes.cpp
src/slic3r/GUI/PresetHints.cpp
src/slic3r/GUI/PrintHostDialogs.cpp
src/slic3r/GUI/ProgressStatusBar.cpp
src/slic3r/GUI/RammingChart.cpp
+src/slic3r/GUI/SavePresetDialog.cpp
+src/slic3r/GUI/Search.cpp
src/slic3r/GUI/Selection.cpp
src/slic3r/GUI/SysInfoDialog.cpp
src/slic3r/GUI/Tab.cpp
src/slic3r/GUI/Tab.hpp
+src/slic3r/GUI/UnsavedChangesDialog.cpp
src/slic3r/GUI/UpdateDialogs.cpp
src/slic3r/GUI/WipeTowerDialog.cpp
src/slic3r/GUI/wxExtensions.cpp
@@ -57,18 +71,22 @@ src/slic3r/Utils/FixModelByWin10.cpp
src/slic3r/Utils/FlashAir.cpp
src/slic3r/Utils/OctoPrint.cpp
src/slic3r/Utils/PresetUpdater.cpp
-src/libslic3r/SLA/Pad.cpp
-src/libslic3r/SLA/Hollowing.cpp
-src/libslic3r/Zipper.cpp
+src/slic3r/Utils/Http.cpp
+src/slic3r/Utils/Process.cpp
src/libslic3r/GCode.cpp
src/libslic3r/ExtrusionEntity.cpp
src/libslic3r/Flow.cpp
src/libslic3r/Format/3mf.cpp
src/libslic3r/Format/AMF.cpp
+src/libslic3r/GCode/PreviewData.cpp
+src/libslic3r/miniz_extension.cpp
+src/libslic3r/Preset.cpp
src/libslic3r/Print.cpp
+src/libslic3r/SLA/Pad.cpp
+src/libslic3r/SLA/Hollowing.cpp
src/libslic3r/SLAPrint.cpp
src/libslic3r/SLAPrintSteps.cpp
src/libslic3r/PrintBase.cpp
src/libslic3r/PrintConfig.cpp
+src/libslic3r/Zipper.cpp
src/libslic3r/PrintObject.cpp
-src/libslic3r/GCode/PreviewData.cpp
diff --git a/resources/profiles/Anycubic.idx b/resources/profiles/Anycubic.idx
index 01a6c8f7e..d55dbb5f6 100644
--- a/resources/profiles/Anycubic.idx
+++ b/resources/profiles/Anycubic.idx
@@ -1,2 +1,4 @@
+min_slic3r_version = 2.3.0-alpha2
+0.0.2 Added Anycubic Predator
min_slic3r_version = 2.3.0-alpha0
0.0.1 Initial Version
diff --git a/resources/profiles/Anycubic.ini b/resources/profiles/Anycubic.ini
index 69abb525a..2099306d4 100644
--- a/resources/profiles/Anycubic.ini
+++ b/resources/profiles/Anycubic.ini
@@ -5,7 +5,7 @@
name = Anycubic
# 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 = 0.0.1
+config_version = 0.0.2
# Where to get the updates from?
config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Anycubic/
# changelog_url = http://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
@@ -53,6 +53,13 @@ variants = 0.4
technology = FFF
family = MEGA
+[printer_model:PREDATOR]
+name = Anycubic Predator
+variants = 0.4; 0.6; 0.8
+technology = FFF
+family = PREDATOR
+default_materials = Generic PLA @PREDATOR; Generic PETG @PREDATOR; Generic ABS @PREDATOR
+
# All presets starting with asterisk, for example *common*, are intermediate and they will
# not make it into the user interface.
@@ -1096,3 +1103,692 @@ printer_notes = Do not remove the following keywords! These keywords are used in
machine_max_feedrate_z = 8
+## Anycubic PREDATOR
+## Author: https://github.com/tillverka3d
+## Initial PR: https://github.com/prusa3d/PrusaSlicer/pull/4960
+
+#########################################
+###### begin common print presets #######
+#########################################
+
+# Common print preset
+[print:*common predator*]
+spiral_vase = 0
+top_solid_min_thickness = 0.8
+bottom_solid_min_thickness = 0.6
+extra_perimeters = 0
+ensure_vertical_shell_thickness = 1
+avoid_crossing_perimeters = 0
+thin_walls = 0
+overhangs = 1
+seam_position = nearest
+external_perimeters_first = 0
+fill_density = 20%
+external_fill_pattern = rectilinear
+infill_every_layers = 1
+infill_only_where_needed = 0
+solid_infill_every_layers = 0
+fill_angle = 45
+solid_infill_below_area = 20
+bridge_angle = 0
+only_retract_when_crossing_perimeters = 0
+infill_first = 0
+skirts = 1
+skirt_distance = 4
+skirt_height = 1
+min_skirt_length = 8
+brim_width = 0
+support_material = 0
+support_material_auto = 1
+support_material_threshold = 50
+support_material_enforce_layers = 0
+raft_layers = 0
+support_material_contact_distance = 0.1
+support_material_pattern = rectilinear
+support_material_with_sheath = 0
+support_material_spacing = 2
+support_material_angle = 0
+support_material_interface_layers = 2
+support_material_interface_spacing = 0.2
+support_material_interface_contact_loops = 0
+support_material_buildplate_only = 0
+support_material_xy_spacing = 60%
+dont_support_bridges = 1
+support_material_synchronize_layers = 0
+travel_speed = 94
+first_layer_speed = 15
+perimeter_acceleration = 300
+infill_acceleration = 200
+bridge_acceleration = 300
+first_layer_acceleration = 300
+default_acceleration = 300
+max_volumetric_speed = 15
+perimeter_extruder = 1
+infill_extruder = 1
+solid_infill_extruder = 1
+support_material_extruder = 0
+support_material_interface_extruder = 0
+ooze_prevention = 0
+standby_temperature_delta = -5
+wipe_tower = 0
+wipe_tower_x = 170
+wipe_tower_y = 140
+wipe_tower_width = 60
+wipe_tower_rotation_angle = 0
+wipe_tower_bridging = 10
+interface_shells = 0
+infill_overlap = 20%
+bridge_flow_ratio = 0.8
+resolution = 0
+xy_size_compensation = 0
+elefant_foot_compensation = 0.2
+clip_multipart_objects = 1
+complete_objects = 0
+extruder_clearance_radius = 45
+extruder_clearance_height = 25
+gcode_comments = 0
+output_filename_format = {input_filename_base}_{print_preset}_{filament_type[0]}_{printer_model}_{print_time}.gcode
+post_process =
+notes =
+max_volumetric_extrusion_rate_slope_negative = 0
+max_volumetric_extrusion_rate_slope_positive = 0
+print_settings_id =
+
+# Common print preset
+[print:*common predator 0.4 nozzle*]
+inherits = *common predator*
+printer_variant = 0.4
+nozzle_diameter = 0.4
+first_layer_height = 0.16
+compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_ANYCUBIC.*/ and printer_notes=~/.*PRINTER_MODEL_PREDATOR.*/ and printer_notes=~/.*PRINTER_HAS_BOWDEN.*/ and nozzle_diameter[0]==0.4
+
+# Common print preset
+[print:*common predator 0.6 nozzle*]
+inherits = *common predator*
+printer_variant = 0.6
+nozzle_diameter = 0.6
+first_layer_height = 0.24
+compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_ANYCUBIC.*/ and printer_notes=~/.*PRINTER_MODEL_PREDATOR.*/ and printer_notes=~/.*PRINTER_HAS_BOWDEN.*/ and nozzle_diameter[0]==0.6
+
+# Common print preset
+[print:*common predator 0.8 nozzle*]
+inherits = *common predator*
+printer_variant = 0.8
+nozzle_diameter = 0.8
+first_layer_height = 0.32
+compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_ANYCUBIC.*/ and printer_notes=~/.*PRINTER_MODEL_PREDATOR.*/ and printer_notes=~/.*PRINTER_HAS_BOWDEN.*/ and nozzle_diameter[0]==0.8
+
+# Common print preset
+[print:*common predator quality*]
+perimeter_speed = 50
+small_perimeter_speed = 15
+external_perimeter_speed = 70%
+infill_speed = 65
+solid_infill_speed = 85%
+top_solid_infill_speed = 85%
+support_material_speed = 30
+support_material_interface_speed = 85%
+bridge_speed = 30
+gap_fill_speed = 40
+ironing_speed = 15
+
+# Common print preset
+[print:*common predator speed*]
+perimeter_speed = 70
+small_perimeter_speed = 15
+external_perimeter_speed = 70%
+infill_speed = 85
+solid_infill_speed = 85%
+top_solid_infill_speed = 85%
+support_material_speed = 30
+support_material_interface_speed = 85%
+bridge_speed = 30
+gap_fill_speed = 40
+ironing_speed = 15
+
+# Common print preset
+[print:*common predator 0.4 nozzle detailed*]
+inherits = *common predator 0.4 nozzle*
+extrusion_width = 0.42
+first_layer_extrusion_width = 0.41
+perimeter_extrusion_width = 0.42
+external_perimeter_extrusion_width = 0.42
+infill_extrusion_width = 0.4
+solid_infill_extrusion_width = 0.4
+top_infill_extrusion_width = 0.4
+support_material_extrusion_width = 0.38
+
+# Common print preset
+[print:*common predator 0.4 nozzle coarse*]
+inherits = *common predator 0.4 nozzle*
+extrusion_width = 0.44
+first_layer_extrusion_width = 0.42
+perimeter_extrusion_width = 0.5
+external_perimeter_extrusion_width = 0.5
+infill_extrusion_width = 0.5
+solid_infill_extrusion_width = 0.5
+top_infill_extrusion_width = 0.4
+support_material_extrusion_width = 0.38
+
+# Common print preset
+[print:*common predator 0.6 nozzle detailed*]
+inherits = *common predator 0.6 nozzle*
+extrusion_width = 0.64
+first_layer_extrusion_width = 0.62
+perimeter_extrusion_width = 0.64
+external_perimeter_extrusion_width = 0.64
+infill_extrusion_width = 0.6
+solid_infill_extrusion_width = 0.6
+top_infill_extrusion_width = 0.6
+support_material_extrusion_width = 0.56
+
+# Common print preset
+[print:*common predator 0.6 nozzle coarse*]
+inherits = *common predator 0.6 nozzle*
+extrusion_width = 0.67
+first_layer_extrusion_width = 0.64
+perimeter_extrusion_width = 0.7
+external_perimeter_extrusion_width = 0.7
+infill_extrusion_width = 0.7
+solid_infill_extrusion_width = 0.7
+top_infill_extrusion_width = 0.6
+support_material_extrusion_width = 0.56
+
+# Common print preset
+[print:*common predator 0.8 nozzle detailed*]
+inherits = *common predator 0.8 nozzle*
+extrusion_width = 0.84
+first_layer_extrusion_width = 0.82
+perimeter_extrusion_width = 0.84
+external_perimeter_extrusion_width = 0.84
+infill_extrusion_width = 0.8
+solid_infill_extrusion_width = 0.8
+top_infill_extrusion_width = 0.8
+support_material_extrusion_width = 0.72
+
+# Common print preset
+[print:*common predator 0.8 nozzle coarse*]
+inherits = *common predator 0.8 nozzle*
+extrusion_width = 0.87
+first_layer_extrusion_width = 0.84
+perimeter_extrusion_width = 0.9
+external_perimeter_extrusion_width = 0.9
+infill_extrusion_width = 0.9
+solid_infill_extrusion_width = 0.9
+top_infill_extrusion_width = 0.8
+support_material_extrusion_width = 0.72
+
+#########################################
+####### end common print presets ########
+#########################################
+
+#########################################
+########## begin print presets ##########
+#########################################
+
+[print:0.08mm 0.4 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.4 nozzle detailed*; *common predator quality*
+layer_height = 0.08
+max_print_speed = 50
+perimeters = 3
+fill_pattern = grid
+
+[print:0.16mm 0.4 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.4 nozzle detailed*; *common predator quality*
+layer_height = 0.16
+max_print_speed = 60
+perimeters = 3
+fill_pattern = grid
+
+[print:0.16mm 0.4 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.4 nozzle coarse*; *common predator quality*
+layer_height = 0.16
+max_print_speed = 60
+perimeters = 3
+fill_pattern = grid
+
+[print:0.24mm 0.4 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.4 nozzle detailed*; *common predator quality*
+layer_height = 0.24
+max_print_speed = 70
+perimeters = 3
+fill_pattern = grid
+
+[print:0.24mm 0.4 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.4 nozzle coarse*; *common predator quality*
+layer_height = 0.24
+max_print_speed = 70
+perimeters = 3
+fill_pattern = grid
+
+[print:0.32mm 0.4 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.4 nozzle detailed*; *common predator quality*
+layer_height = 0.32
+max_print_speed = 70
+perimeters = 3
+fill_pattern = grid
+
+[print:0.32mm 0.4 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.4 nozzle coarse*; *common predator quality*
+layer_height = 0.32
+max_print_speed = 70
+perimeters = 3
+fill_pattern = grid
+
+[print:0.16mm 0.6 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.6 nozzle detailed*; *common predator quality*
+layer_height = 0.16
+max_print_speed = 70
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.16mm 0.6 nozzle DETAILED SPEED @PREDATOR]
+inherits = *common predator 0.6 nozzle detailed*; *common predator speed*
+layer_height = 0.16
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.16mm 0.6 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.6 nozzle coarse*; *common predator quality*
+layer_height = 0.16
+max_print_speed = 70
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.16mm 0.6 nozzle COARSE SPEED @PREDATOR]
+inherits = *common predator 0.6 nozzle coarse*; *common predator speed*
+layer_height = 0.16
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.24mm 0.6 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.6 nozzle detailed*; *common predator quality*
+layer_height = 0.24
+max_print_speed = 70
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.24mm 0.6 nozzle DETAILED SPEED @PREDATOR]
+inherits = *common predator 0.6 nozzle detailed*; *common predator speed*
+layer_height = 0.24
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.24mm 0.6 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.6 nozzle coarse*; *common predator quality*
+layer_height = 0.24
+max_print_speed = 70
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.24mm 0.6 nozzle COARSE SPEED @PREDATOR]
+inherits = *common predator 0.6 nozzle coarse*; *common predator speed*
+layer_height = 0.24
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.32mm 0.6 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.6 nozzle detailed*; *common predator quality*
+layer_height = 0.32
+max_print_speed = 70
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.32mm 0.6 nozzle DETAILED SPEED @PREDATOR]
+inherits = *common predator 0.6 nozzle detailed*; *common predator speed*
+layer_height = 0.32
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.32mm 0.6 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.6 nozzle coarse*; *common predator quality*
+layer_height = 0.32
+max_print_speed = 70
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.32mm 0.6 nozzle COARSE SPEED @PREDATOR]
+inherits = *common predator 0.6 nozzle coarse*; *common predator speed*
+layer_height = 0.32
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.4mm 0.6 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.6 nozzle detailed*; *common predator quality*
+layer_height = 0.4
+max_print_speed = 70
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.4mm 0.6 nozzle DETAILED SPEED @PREDATOR]
+inherits = *common predator 0.6 nozzle detailed*; *common predator speed*
+layer_height = 0.4
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.4mm 0.6 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.6 nozzle coarse*; *common predator quality*
+layer_height = 0.4
+max_print_speed = 70
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.4mm 0.6 nozzle COARSE SPEED @PREDATOR]
+inherits = *common predator 0.6 nozzle coarse*; *common predator speed*
+layer_height = 0.4
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.24mm 0.8 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.8 nozzle detailed*; *common predator quality*
+layer_height = 0.24
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.24mm 0.8 nozzle DETAILED SPEED @PREDATOR]
+inherits = *common predator 0.8 nozzle detailed*; *common predator speed*
+layer_height = 0.24
+max_print_speed = 90
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.24mm 0.8 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.8 nozzle coarse*; *common predator quality*
+layer_height = 0.24
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.24mm 0.8 nozzle COARSE SPEED @PREDATOR]
+inherits = *common predator 0.8 nozzle coarse*; *common predator speed*
+layer_height = 0.24
+max_print_speed = 90
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.32mm 0.8 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.8 nozzle detailed*; *common predator quality*
+layer_height = 0.32
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.32mm 0.8 nozzle DETAILED SPEED @PREDATOR]
+inherits = *common predator 0.8 nozzle detailed*; *common predator speed*
+layer_height = 0.32
+max_print_speed = 90
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.32mm 0.8 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.8 nozzle coarse*; *common predator quality*
+layer_height = 0.32
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.32mm 0.8 nozzle COARSE SPEED @PREDATOR]
+inherits = *common predator 0.8 nozzle coarse*; *common predator speed*
+layer_height = 0.32
+max_print_speed = 90
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.4mm 0.8 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.8 nozzle detailed*; *common predator quality*
+layer_height = 0.4
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.4mm 0.8 nozzle DETAILED SPEED @PREDATOR]
+inherits = *common predator 0.8 nozzle detailed*; *common predator speed*
+layer_height = 0.4
+max_print_speed = 90
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.4mm 0.8 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.8 nozzle coarse*; *common predator quality*
+layer_height = 0.4
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.4mm 0.8 nozzle COARSE SPEED @PREDATOR]
+inherits = *common predator 0.8 nozzle coarse*; *common predator speed*
+layer_height = 0.4
+max_print_speed = 90
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.48mm 0.8 nozzle DETAILED QUALITY @PREDATOR]
+inherits = *common predator 0.8 nozzle detailed*; *common predator quality*
+layer_height = 0.48
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.48mm 0.8 nozzle DETAILED SPEED @PREDATOR]
+inherits = *common predator 0.8 nozzle detailed*; *common predator speed*
+layer_height = 0.48
+max_print_speed = 90
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.48mm 0.8 nozzle COARSE QUALITY @PREDATOR]
+inherits = *common predator 0.8 nozzle coarse*; *common predator quality*
+layer_height = 0.48
+max_print_speed = 80
+perimeters = 2
+fill_pattern = gyroid
+
+[print:0.48mm 0.8 nozzle COARSE SPEED @PREDATOR]
+inherits = *common predator 0.8 nozzle coarse*; *common predator speed*
+layer_height = 0.48
+max_print_speed = 90
+perimeters = 2
+fill_pattern = gyroid
+
+#########################################
+########### end print presets ###########
+#########################################
+
+#########################################
+######## begin filament presets #########
+#########################################
+
+# Common filament preset
+[filament:*common predator*]
+cooling = 0
+compatible_printers =
+extrusion_multiplier = 1
+filament_cost = 0
+filament_density = 0
+filament_diameter = 1.75
+filament_notes = ""
+filament_settings_id = ""
+filament_soluble = 0
+min_print_speed = 15
+slowdown_below_layer_time = 20
+compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_ANYCUBIC.*/ and printer_notes=~/.*PRINTER_MODEL_PREDATOR.*/
+
+[filament:*PLA predator*]
+inherits = *common predator*
+bed_temperature = 60
+fan_below_layer_time = 100
+filament_colour = #FF3232
+filament_max_volumetric_speed = 10
+filament_type = PLA
+filament_density = 1.24
+filament_cost = 20
+first_layer_bed_temperature = 60
+first_layer_temperature = 200
+fan_always_on = 1
+cooling = 1
+max_fan_speed = 100
+min_fan_speed = 100
+bridge_fan_speed = 100
+disable_fan_first_layers = 1
+temperature = 200
+
+[filament:*PET predator*]
+inherits = *common predator*
+bed_temperature = 70
+cooling = 1
+disable_fan_first_layers = 3
+fan_below_layer_time = 20
+filament_colour = #FF8000
+filament_max_volumetric_speed = 8
+filament_type = PETG
+filament_density = 1.27
+filament_cost = 30
+first_layer_bed_temperature =70
+first_layer_temperature = 240
+fan_always_on = 1
+max_fan_speed = 50
+min_fan_speed = 20
+bridge_fan_speed = 100
+temperature = 240
+
+[filament:*ABS predator*]
+inherits = *common predator*
+bed_temperature = 100
+cooling = 0
+disable_fan_first_layers = 3
+fan_below_layer_time = 20
+filament_colour = #3A80CA
+filament_max_volumetric_speed = 10
+filament_type = ABS
+filament_density = 1.04
+filament_cost = 20
+first_layer_bed_temperature = 100
+first_layer_temperature = 245
+fan_always_on = 0
+max_fan_speed = 0
+min_fan_speed = 0
+bridge_fan_speed = 30
+top_fan_speed = 0
+temperature = 245
+
+[filament:Generic PLA @PREDATOR]
+inherits = *PLA predator*
+filament_vendor = Generic
+
+[filament:Generic PETG @PREDATOR]
+inherits = *PET predator*
+filament_vendor = Generic
+
+[filament:Generic ABS @PREDATOR]
+inherits = *ABS predator*
+filament_vendor = Generic
+
+#########################################
+######### end filament presets ##########
+#########################################
+
+#########################################
+######### begin printer presets #########
+#########################################
+
+# Anycubic predator common printer preset
+[printer:*common predator*]
+printer_vendor = Anycubic
+printer_model = Predator
+printer_technology = FFF
+printer_variant = 0.4
+thumbnails = 16x16,220x124
+bed_shape = 188.779x16.516,186.621x32.9063,183.043x49.0462,178.072x64.8128,171.745x80.0862,164.112x94.75,155.229x108.693,145.165x121.808,133.997x133.997,121.808x145.165,108.693x155.229,94.75x164.112,80.0862x171.745,64.8128x178.072,49.0462x183.043,32.9063x186.621,16.516x188.779,1.16035e-14x189.5,-16.516x188.779,-32.9063x186.621,-49.0462x183.043,-64.8128x178.072,-80.0862x171.745,-94.75x164.112,-108.693x155.229,-121.808x145.165,-133.997x133.997,-145.165x121.808,-155.229x108.693,-164.112x94.75,-171.745x80.0862,-178.072x64.8128,-183.043x49.0462,-186.621x32.9063,-188.779x16.516,-189.5x2.32071e-14,-188.779x-16.516,-186.621x-32.9063,-183.043x-49.0462,-178.072x-64.8128,-171.745x-80.0862,-164.112x-94.75,-155.229x-108.693,-145.165x-121.808,-133.997x-133.997,-121.808x-145.165,-108.693x-155.229,-94.75x-164.112,-80.0862x-171.745,-64.8128x-178.072,-49.0462x-183.043,-32.9063x-186.621,-16.516x-188.779,-3.48106e-14x-189.5,16.516x-188.779,32.9063x-186.621,49.0462x-183.043,64.8128x-178.072,80.0862x-171.745,94.75x-164.112,108.693x-155.229,121.808x-145.165,133.997x-133.997,145.165x-121.808,155.229x-108.693,164.112x-94.75,171.745x-80.0862,178.072x-64.8128,183.043x-49.0462,186.621x-32.9063,188.779x-16.516,189.5x-4.64141e-14
+max_print_height = 450
+z_offset = 0
+single_extruder_multi_material = 0
+gcode_flavor = reprap
+silent_mode = 0
+remaining_times = 0
+use_relative_e_distances = 0
+use_firmware_retraction = 0
+use_volumetric_e = 0
+variable_layer_height = 1
+start_gcode = "; start_gcode | start\n\n; v11 2020-09-02_14-27 tillverka\n\n; set metric values\n\nG21\n\n; use absolute positioning\n\nG90\n\n; set extruder to absolute mode\n\nM82\n\n; start with fan off\n\nM107\n\n; set e-steps for bondtech bmg and force store in eeprom\n; mm/step for chitu\n; 1/415 for bondtech bmg\n\nM8011 S0.0024096394\nM8500\n\n; set temps\n\nM104 S[first_layer_temperature]\nM140 S[first_layer_bed_temperature]\n\n; home xy\n\nG28 X0 Y0\n\n; home z\n\nG28 Z0\n\n; move the head down to Z 94mm\n\nG1 Z94.0 F2394\n\n; set and wait for temps\n\nM109 S[first_layer_temperature]\nM190 S[first_layer_bed_temperature]\n\n; zero the extruded length\n\nG92 E0\n\n; extrude 3mm of feed stock\n\nG1 F200 E3\n\n; zero the extruded length again\n\nG92 E0\n\n; set speed\n\nG1 F{travel_speed}\n\n; print preskirt\n\nG92 E0\nG1 E3.94000 F2520.00000\n\nG1 X125.464 Y-139.310\nG1 Z0.329 F3994.000\n\nG1 F994.000\n\nG1 X125.464 Y-139.310 E4.19679\nG1 X130.218 Y-134.876 E4.70359\nG1 X132.569 Y-132.567 E4.96053\nG1 X137.099 Y-127.877 E5.46890\nG1 X139.325 Y-125.447 E5.72585\nG1 X141.507 Y-122.981 E5.98254\nG1 X145.685 Y-118.002 E6.48934\nG1 X149.741 Y-112.810 E7.00296\nG1 X153.561 Y-107.552 E7.50975\nG1 X155.440 Y-104.819 E7.76827\nG1 X158.980 Y-99.367 E8.27506\nG1 X160.702 Y-96.558 E8.53201\nG1 X163.962 Y-90.911 E9.04038\nG1 X165.535 Y-88.015 E9.29732\nG1 X168.496 Y-82.205 E9.80570\nG1 X169.915 Y-79.231 E10.06264\nG1 X171.280 Y-76.235 E10.31934\nG1 X173.819 Y-70.251 E10.82613\nG1 X176.180 Y-64.101 E11.33975\nG1 X178.297 Y-57.955 E11.84654\nG1 X179.294 Y-54.793 E12.10507\nG1 X181.085 Y-48.544 E12.61186\nG1 X181.911 Y-45.354 E12.86880\nG1 X183.378 Y-39.001 E13.37718\nG1 X184.035 Y-35.771 E13.63412\nG1 X185.168 Y-29.350 E14.14250\nG1 X185.655 Y-26.091 E14.39944\nG1 X186.084 Y-22.826 E14.65614\nG1 X186.764 Y-16.362 E15.16293\nG1 X187.223 Y-9.790 E15.67655\nG1 X187.450 Y-3.294 E16.18334\nG1 X187.479 Y0.002 E16.44028\nG1 X187.450 Y3.294 E16.69698\nG1 X187.223 Y9.810 E17.20529\nG1 X187.021 Y13.100 E17.46229\nG1 X186.454 Y19.575 E17.96909\nG1 X186.079 Y22.870 E18.22761\nG1 X185.174 Y29.307 E18.73440\nG1 X184.031 Y35.794 E19.24802\nG1 X182.679 Y42.152 E19.75481\nG1 X181.910 Y45.357 E20.01176\nG1 X180.223 Y51.655 E20.52013\nG1 X179.287 Y54.815 E20.77708\nG1 X177.272 Y61.017 E21.28545\nG1 X176.172 Y64.123 E21.54239\nG1 X175.019 Y67.207 E21.79909\nG1 X172.584 Y73.234 E22.30588\nG1 X169.905 Y79.252 E22.81950\nG1 X167.055 Y85.094 E23.32629\nG1 X165.524 Y88.035 E23.58482\nG1 X162.373 Y93.721 E24.09161\nG1 X160.700 Y96.560 E24.34855\nG1 X157.245 Y102.090 E24.85693\nG1 X155.427 Y104.838 E25.11387\nG1 X151.687 Y110.180 E25.62225\nG1 X149.727 Y112.829 E25.87919\nG1 X147.722 Y115.441 E26.13588\nG1 X143.631 Y120.493 E26.64268\nG1 X139.310 Y125.464 E27.15629\nG1 X134.876 Y130.218 E27.66309\nG1 X132.567 Y132.569 E27.92003\nG1 X127.877 Y137.099 E28.42840\nG1 X125.447 Y139.325 E28.68535\nG1 X122.981 Y141.507 E28.94204\nG1 X118.002 Y145.685 E29.44883\nG1 X112.810 Y149.741 E29.96245\nG1 X107.552 Y153.561 E30.46924\nG1 X104.819 Y155.440 E30.72777\nG1 X99.367 Y158.980 E31.23456\nG1 X96.558 Y160.702 E31.49151\nG1 X90.911 Y163.962 E31.99988\nG1 X88.015 Y165.535 E32.25682\nG1 X82.205 Y168.496 E32.76520\nG1 X79.231 Y169.915 E33.02214\nG1 X76.235 Y171.280 E33.27884\nG1 X70.251 Y173.819 E33.78563\nG1 X64.101 Y176.180 E34.29925\nG1 X57.955 Y178.297 E34.80604\nG1 X54.793 Y179.294 E35.06457\nG1 X48.544 Y181.085 E35.57136\nG1 X45.354 Y181.911 E35.82830\nG1 X39.001 Y183.378 E36.33668\nG1 X35.771 Y184.035 E36.59362\nG1 X29.350 Y185.168 E37.10200\nG1 X26.091 Y185.655 E37.35894\nG1 X22.826 Y186.084 E37.61563\nG1 X16.362 Y186.764 E38.12242\nG1 X9.790 Y187.223 E38.63605\nG1 X3.294 Y187.450 E39.14283\nG1 X-0.002 Y187.479 E39.39978\nG1 X-3.294 Y187.450 E39.65648\nG1 X-9.810 Y187.223 E40.16479\nG1 X-13.100 Y187.021 E40.42179\nG1 X-19.575 Y186.454 E40.92858\nG1 X-22.870 Y186.079 E41.18711\nG1 X-29.307 Y185.174 E41.69390\nG1 X-35.794 Y184.031 E42.20752\nG1 X-42.152 Y182.679 E42.71431\nG1 X-45.357 Y181.910 E42.97126\nG1 X-51.655 Y180.223 E43.47963\nG1 X-54.815 Y179.287 E43.73657\nG1 X-61.017 Y177.272 E44.24495\nG1 X-64.123 Y176.172 E44.50189\nG1 X-67.207 Y175.019 E44.75859\nG1 X-73.234 Y172.584 E45.26538\nG1 X-79.252 Y169.905 E45.77900\nG1 X-85.094 Y167.055 E46.28579\nG1 X-88.035 Y165.524 E46.54432\nG1 X-93.721 Y162.373 E47.05111\nG1 X-96.560 Y160.700 E47.30805\nG1 X-102.090 Y157.245 E47.81643\nG1 X-104.838 Y155.427 E48.07337\nG1 X-110.180 Y151.687 E48.58174\nG1 X-112.829 Y149.727 E48.83869\nG1 X-115.441 Y147.722 E49.09538\nG1 X-120.493 Y143.631 E49.60218\nG1 X-125.464 Y139.310 E50.11579\nG1 X-130.218 Y134.876 E50.62259\nG1 X-132.569 Y132.567 E50.87953\nG1 X-137.099 Y127.877 E51.38790\nG1 X-139.325 Y125.447 E51.64485\nG1 X-141.507 Y122.981 E51.90154\nG1 X-145.685 Y118.002 E52.40833\nG1 X-149.741 Y112.810 E52.92195\nG1 X-153.561 Y107.552 E53.42874\nG1 X-155.440 Y104.819 E53.68727\nG1 X-158.980 Y99.367 E54.19406\nG1 X-160.702 Y96.558 E54.45101\nG1 X-163.962 Y90.911 E54.95938\nG1 X-165.535 Y88.015 E55.21632\nG1 X-168.496 Y82.205 E55.72470\nG1 X-169.915 Y79.231 E55.98164\nG1 X-171.280 Y76.235 E56.23834\nG1 X-173.819 Y70.251 E56.74513\nG1 X-176.180 Y64.101 E57.25875\nG1 X-178.297 Y57.955 E57.76554\nG1 X-179.294 Y54.793 E58.02407\nG1 X-181.085 Y48.544 E58.53086\nG1 X-181.911 Y45.354 E58.78780\nG1 X-183.378 Y39.001 E59.29618\nG1 X-184.035 Y35.771 E59.55312\nG1 X-185.168 Y29.350 E60.06149\nG1 X-185.655 Y26.091 E60.31844\nG1 X-186.084 Y22.826 E60.57513\nG1 X-186.764 Y16.362 E61.08192\nG1 X-187.223 Y9.790 E61.59554\nG1 X-187.450 Y3.294 E62.10233\nG1 X-187.479 Y-0.002 E62.35928\nG1 X-187.450 Y-3.294 E62.61598\nG1 X-187.223 Y-9.810 E63.12429\nG1 X-187.021 Y-13.100 E63.38129\nG1 X-186.454 Y-19.575 E63.88808\nG1 X-186.079 Y-22.870 E64.14661\nG1 X-185.174 Y-29.307 E64.65340\nG1 X-184.031 Y-35.794 E65.16702\nG1 X-182.679 Y-42.152 E65.67381\nG1 X-181.910 Y-45.357 E65.93076\nG1 X-180.223 Y-51.655 E66.43913\nG1 X-179.287 Y-54.815 E66.69607\nG1 X-177.272 Y-61.017 E67.20445\nG1 X-176.172 Y-64.123 E67.46139\nG1 X-175.019 Y-67.207 E67.71809\nG1 X-172.584 Y-73.234 E68.22488\nG1 X-169.905 Y-79.252 E68.73850\nG1 X-167.055 Y-85.094 E69.24529\nG1 X-165.524 Y-88.035 E69.50382\nG1 X-162.373 Y-93.721 E70.01061\nG1 X-160.700 Y-96.560 E70.26755\nG1 X-157.245 Y-102.090 E70.77593\nG1 X-155.427 Y-104.838 E71.03287\nG1 X-151.687 Y-110.180 E71.54124\nG1 X-149.727 Y-112.829 E71.79819\nG1 X-147.722 Y-115.441 E72.05488\nG1 X-143.631 Y-120.493 E72.56167\nG1 X-139.310 Y-125.464 E73.07529\nG1 X-134.876 Y-130.218 E73.58209\nG1 X-132.567 Y-132.569 E73.83903\nG1 X-127.877 Y-137.099 E74.34740\nG1 X-125.447 Y-139.325 E74.60435\nG1 X-122.981 Y-141.507 E74.86104\nG1 X-118.002 Y-145.685 E75.36783\nG1 X-112.810 Y-149.741 E75.88145\nG1 X-107.552 Y-153.561 E76.38824\nG1 X-104.819 Y-155.440 E76.64677\nG1 X-99.367 Y-158.980 E77.15356\nG1 X-96.558 Y-160.702 E77.41051\nG1 X-90.911 Y-163.962 E77.91888\nG1 X-88.015 Y-165.535 E78.17582\nG1 X-82.205 Y-168.496 E78.68420\nG1 X-79.231 Y-169.915 E78.94114\nG1 X-76.235 Y-171.280 E79.19784\nG1 X-70.251 Y-173.819 E79.70463\nG1 X-64.101 Y-176.180 E80.21825\nG1 X-57.955 Y-178.297 E80.72504\nG1 X-54.793 Y-179.294 E80.98356\nG1 X-48.544 Y-181.085 E81.49036\nG1 X-45.354 Y-181.911 E81.74730\nG1 X-39.001 Y-183.378 E82.25568\nG1 X-35.771 Y-184.035 E82.51262\nG1 X-29.350 Y-185.168 E83.02099\nG1 X-26.091 Y-185.655 E83.27794\nG1 X-22.826 Y-186.084 E83.53463\nG1 X-16.362 Y-186.764 E84.04142\nG1 X-9.790 Y-187.223 E84.55504\nG1 X-3.294 Y-187.450 E85.06183\nG1 X0.006 Y-187.479 E85.31908\nG1 X6.521 Y-187.366 E85.82715\nG1 X9.810 Y-187.223 E86.08379\nG1 X13.100 Y-187.021 E86.34079\nG1 X19.575 Y-186.454 E86.84758\nG1 X22.870 Y-186.079 E87.10611\nG1 X29.307 Y-185.174 E87.61290\nG1 X35.794 Y-184.031 E88.12652\nG1 X42.152 Y-182.679 E88.63331\nG1 X45.357 Y-181.910 E88.89025\nG1 X51.655 Y-180.223 E89.39863\nG1 X54.815 Y-179.287 E89.65557\nG1 X61.017 Y-177.272 E90.16395\nG1 X64.123 Y-176.172 E90.42089\nG1 X67.207 Y-175.019 E90.67759\nG1 X73.234 Y-172.584 E91.18438\nG1 X79.252 Y-169.905 E91.69800\nG1 X85.094 Y-167.055 E92.20479\nG1 X88.035 Y-165.524 E92.46332\nG1 X93.721 Y-162.373 E92.97011\nG1 X96.560 Y-160.700 E93.22705\nG1 X102.090 Y-157.245 E93.73543\nG1 X104.838 Y-155.427 E93.99237\nG1 X110.180 Y-151.687 E94.50074\nG1 X112.829 Y-149.727 E94.75768\nG1 X115.441 Y-147.722 E95.01438\nG1 X120.493 Y-143.631 E95.52117\nG1 X122.911 Y-141.529 E95.77098\n\n; end preskirt\n; start_gcode | end"
+end_gcode = "; end_gcode | start\n\n; v11 2020-09-02_14-27 tillverka\n\n; use relative positioning\n\nG91\n\n; retract the filament a bit before lifting the nozzle to release some of the pressure\n\nG1 E-1 F300\n\n; home\n\nG28\n\n; use absolute positioning\n\nG90\n\n; cooldown\n\nM104 S0\nM140 S0\n\n; end_gcode | end\n"
+before_layer_gcode =
+layer_gcode =
+toolchange_gcode =
+between_objects_gcode =
+retract_length = 4
+retract_lift = 0.3
+retract_lift_above = 0
+retract_lift_below = 449
+retract_speed = 30
+deretract_speed = 0
+retract_restart_extra = 0
+retract_before_travel = 2
+retract_layer_change = 1
+wipe = 1
+retract_before_wipe = 70%
+retract_length_toolchange = 10
+retract_restart_extra_toolchange = 0
+extruder_colour = #1193FF
+machine_max_acceleration_e = 3000
+machine_max_acceleration_extruding = 1000
+machine_max_acceleration_retracting = 1000
+machine_max_acceleration_x = 1500
+machine_max_acceleration_y = 1500
+machine_max_acceleration_z = 1500
+machine_max_feedrate_e = 60
+machine_max_feedrate_x = 200
+machine_max_feedrate_y = 200
+machine_max_feedrate_z = 200
+machine_max_jerk_e = 5
+machine_max_jerk_x = 5
+machine_max_jerk_y = 5
+machine_max_jerk_z = 5
+machine_min_extruding_rate = 0
+machine_min_travel_rate = 0
+octoprint_apikey =
+octoprint_host =
+printer_settings_id =
+serial_port =
+serial_speed = 125000
+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_ANYCUBIC\nPRINTER_MODEL_PREDATOR\nPRINTER_HAS_BOWDEN\n
+default_filament_profile = Generic PLA @PREDATOR
+
+[printer:Anycubic Predator 0.4 nozzle]
+inherits = *common predator*
+printer_model = PREDATOR
+printer_variant = 0.4
+nozzle_diameter = 0.4
+min_layer_height = 0.08
+max_layer_height = 0.32
+default_print_profile = 0.16mm 0.4 nozzle DETAILED QUALITY @PREDATOR
+
+[printer:Anycubic Predator 0.6 nozzle]
+inherits = *common predator*
+printer_model = PREDATOR
+printer_variant = 0.6
+nozzle_diameter = 0.6
+min_layer_height = 0.12
+max_layer_height = 0.4
+default_print_profile = 0.24mm 0.8 nozzle DETAILED QUALITY @PREDATOR
+
+[printer:Anycubic Predator 0.8 nozzle]
+inherits = *common predator*
+printer_model = PREDATOR
+printer_variant = 0.8
+nozzle_diameter = 0.8
+min_layer_height = 0.16
+max_layer_height = 0.48
+default_print_profile = 0.24mm 0.8 nozzle DETAILED QUALITY @PREDATOR
+
+#########################################
+########## end printer presets ##########
+#########################################
diff --git a/resources/profiles/Anycubic/PREDATOR_thumbnail.png b/resources/profiles/Anycubic/PREDATOR_thumbnail.png
new file mode 100644
index 000000000..a68b7df30
Binary files /dev/null and b/resources/profiles/Anycubic/PREDATOR_thumbnail.png differ
diff --git a/resources/profiles/BIBO.ini b/resources/profiles/BIBO.ini
index 2c94fc470..968436ddd 100644
--- a/resources/profiles/BIBO.ini
+++ b/resources/profiles/BIBO.ini
@@ -7,7 +7,7 @@ name = BIBO
# This means, the server may force the PrusaSlicer configuration to be downgraded.
config_version = 0.0.5
# Where to get the updates from?
-config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/BIBO/
+config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/BIBO/
# The printer models will be shown by the Configuration Wizard in this order,
# also the first model installed & the first nozzle installed will be activated after install.
diff --git a/resources/profiles/LulzBot.ini b/resources/profiles/LulzBot.ini
index b8fa117c3..7f7a0ab4d 100644
--- a/resources/profiles/LulzBot.ini
+++ b/resources/profiles/LulzBot.ini
@@ -4,7 +4,7 @@
# Vendor name will be shown by the Config Wizard.
name = LulzBot
config_version = 0.0.3
-config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/LulzBot/
+config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/LulzBot/
[printer_model:MINI_AERO]
name = Mini Aero
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8c4956543..dead65581 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -204,11 +204,11 @@ if (WIN32)
VERBATIM
)
endif ()
-
+
# This has to be a separate target due to the windows command line lenght limits
add_custom_target(slic3rDllsCopy ALL DEPENDS slic3r)
prusaslicer_copy_dlls(slic3rDllsCopy)
-
+
else ()
if (APPLE)
# On OSX, the name of the binary matches the name of the Application.
@@ -247,4 +247,7 @@ if (WIN32)
endif ()
else ()
install(TARGETS slic3r RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+
+ # Install the symlink for gcodeviewer
+ install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink prusa-slicer prusa-gcodeviewer WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})")
endif ()
diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp
index 3440bb6c4..fd4438604 100644
--- a/src/PrusaSlicer.cpp
+++ b/src/PrusaSlicer.cpp
@@ -40,23 +40,21 @@
#include "libslic3r/Format/OBJ.hpp"
#include "libslic3r/Format/SL1.hpp"
#include "libslic3r/Utils.hpp"
-#include "libslic3r/AppConfig.hpp"
+#include "libslic3r/Thread.hpp"
#include "PrusaSlicer.hpp"
#ifdef SLIC3R_GUI
- #include "slic3r/GUI/GUI.hpp"
- #include "slic3r/GUI/GUI_App.hpp"
- #include "slic3r/GUI/3DScene.hpp"
- #include "slic3r/GUI/InstanceCheck.hpp"
- #include "slic3r/GUI/MainFrame.hpp"
- #include "slic3r/GUI/Plater.hpp"
+ #include "slic3r/GUI/GUI_Init.hpp"
#endif /* SLIC3R_GUI */
using namespace Slic3r;
int CLI::run(int argc, char **argv)
{
+ // Mark the main thread for the debugger and for runtime checks.
+ set_current_thread_name("slic3r_main");
+
#ifdef __WXGTK__
// On Linux, wxGTK has no support for Wayland, and the app crashes on
// startup if gtk3 is used. This env var has to be set explicitly to
@@ -151,7 +149,7 @@ int CLI::run(int argc, char **argv)
#if ENABLE_GCODE_VIEWER
for (const std::string& file : m_input_files) {
std::string ext = boost::filesystem::path(file).extension().string();
- if (boost::filesystem::path(file).extension().string() == ".gcode") {
+ if (ext == ".gcode" || ext == ".g") {
if (boost::filesystem::exists(file)) {
start_as_gcodeviewer = true;
break;
@@ -573,75 +571,20 @@ int CLI::run(int argc, char **argv)
if (start_gui) {
#ifdef SLIC3R_GUI
-// #ifdef USE_WX
-#if ENABLE_GCODE_VIEWER
- GUI::GUI_App* gui = new GUI::GUI_App(start_as_gcodeviewer ? GUI::GUI_App::EAppMode::GCodeViewer : GUI::GUI_App::EAppMode::Editor);
- if (gui->get_app_mode() != GUI::GUI_App::EAppMode::GCodeViewer) {
- // G-code viewer is currently not performing instance check, a new G-code viewer is started every time.
- bool gui_single_instance_setting = gui->app_config->get("single_instance") == "1";
- if (Slic3r::instance_check(argc, argv, gui_single_instance_setting)) {
- //TODO: do we have delete gui and other stuff?
- return -1;
- }
- }
-#else
- GUI::GUI_App *gui = new GUI::GUI_App();
-#endif // ENABLE_GCODE_VIEWER
-
-// gui->autosave = m_config.opt_string("autosave");
- GUI::GUI_App::SetInstance(gui);
-#if ENABLE_GCODE_VIEWER
- gui->after_init_loads.set_params(load_configs, m_extra_config, m_input_files, start_as_gcodeviewer);
-#else
- gui->after_init_loads.set_params(load_configs, m_extra_config, m_input_files);
-#endif // ENABLE_GCODE_VIEWER
-/*
-#if ENABLE_GCODE_VIEWER
- gui->CallAfter([gui, this, &load_configs, start_as_gcodeviewer] {
-#else
- gui->CallAfter([gui, this, &load_configs] {
-#endif // ENABLE_GCODE_VIEWER
- if (!gui->initialized()) {
- return;
- }
-
-#if ENABLE_GCODE_VIEWER
- if (start_as_gcodeviewer) {
- if (!m_input_files.empty())
- gui->plater()->load_gcode(wxString::FromUTF8(m_input_files[0].c_str()));
- } else {
-#endif // ENABLE_GCODE_VIEWER_AS
-#if 0
- // Load the cummulative config over the currently active profiles.
- //FIXME if multiple configs are loaded, only the last one will have an effect.
- // We need to decide what to do about loading of separate presets (just print preset, just filament preset etc).
- // As of now only the full configs are supported here.
- if (!m_print_config.empty())
- gui->mainframe->load_config(m_print_config);
-#endif
- if (!load_configs.empty())
- // Load the last config to give it a name at the UI. The name of the preset may be later
- // changed by loading an AMF or 3MF.
- //FIXME this is not strictly correct, as one may pass a print/filament/printer profile here instead of a full config.
- gui->mainframe->load_config_file(load_configs.back());
- // If loading a 3MF file, the config is loaded from the last one.
- if (!m_input_files.empty())
- gui->plater()->load_files(m_input_files, true, true);
- if (!m_extra_config.empty())
- gui->mainframe->load_config(m_extra_config);
-#if ENABLE_GCODE_VIEWER
- }
-#endif // ENABLE_GCODE_VIEWER
- });
-*/
- int result = wxEntry(argc, argv);
- return result;
-#else /* SLIC3R_GUI */
+ Slic3r::GUI::GUI_InitParams params;
+ params.argc = argc;
+ params.argv = argv;
+ params.load_configs = load_configs;
+ params.extra_config = std::move(m_extra_config);
+ params.input_files = std::move(m_input_files);
+ params.start_as_gcodeviewer = start_as_gcodeviewer;
+ return Slic3r::GUI::GUI_Run(params);
+#else // SLIC3R_GUI
// No GUI support. Just print out a help.
this->print_help(false);
// If started without a parameter, consider it to be OK, otherwise report an error code (no action etc).
return (argc == 0) ? 0 : 1;
-#endif /* SLIC3R_GUI */
+#endif // SLIC3R_GUI
}
return 0;
diff --git a/src/hidapi/linux/hid.c b/src/hidapi/linux/hid.c
index d68354fe1..5f486c0a9 100644
--- a/src/hidapi/linux/hid.c
+++ b/src/hidapi/linux/hid.c
@@ -42,10 +42,16 @@
#include
#include
#include
-#include
#include "hidapi.h"
+// Declare udev structures needed in this module. They are passed by pointers
+// to udev functions and not used directly.
+struct udev_device;
+struct udev_list_entry;
+struct udev_enumerate;
+struct udev;
+
typedef const char* (*hid_wrapper_udev_device_get_devnode_type)(struct udev_device *udev_device);
typedef struct udev_device* (*hid_wrapper_udev_device_get_parent_with_subsystem_devtype_type)(struct udev_device *udev_device, const char *subsystem, const char *devtype);
typedef const char* (*hid_wrapper_udev_device_get_sysattr_value_type)(struct udev_device *udev_device, const char *sysattr);
diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp
index e54486e4e..d1c1c460c 100644
--- a/src/libslic3r/AppConfig.cpp
+++ b/src/libslic3r/AppConfig.cpp
@@ -2,6 +2,7 @@
#include "libslic3r/Utils.hpp"
#include "AppConfig.hpp"
#include "Exception.hpp"
+#include "Thread.hpp"
#include
#include
@@ -80,9 +81,9 @@ void AppConfig::set_defaults()
set("single_instance",
#ifdef __APPLE__
"1"
-#else __APPLE__
+#else // __APPLE__
"0"
-#endif __APPLE__
+#endif // __APPLE__
);
if (get("remember_output_path").empty())
@@ -218,6 +219,13 @@ std::string AppConfig::load()
void AppConfig::save()
{
+ {
+ // Returns "undefined" if the thread naming functionality is not supported by the operating system.
+ std::optional current_thread_name = get_current_thread_name();
+ if (current_thread_name && *current_thread_name != "slic3r_main")
+ throw CriticalException("Calling AppConfig::save() from a worker thread!");
+ }
+
// The config is first written to a file with a PID suffix and then moved
// to avoid race conditions with multiple instances of Slic3r
const auto path = config_path();
diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
index 5df62138e..bd2df0c7e 100644
--- a/src/libslic3r/CMakeLists.txt
+++ b/src/libslic3r/CMakeLists.txt
@@ -209,6 +209,8 @@ add_library(libslic3r STATIC
Utils.hpp
Time.cpp
Time.hpp
+ Thread.cpp
+ Thread.hpp
TriangleSelector.cpp
TriangleSelector.hpp
MTUtils.hpp
diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp
index e6c496a1a..53883f03b 100644
--- a/src/libslic3r/GCode.cpp
+++ b/src/libslic3r/GCode.cpp
@@ -828,7 +828,8 @@ void GCode::do_export(Print* print, const char* path, GCodePreviewData* preview_
std::error_code err_code;
if (rename_file(path_tmp, path))
- if (copy_file(path_tmp, path, true) != SUCCESS)
+ if (copy_file(path_tmp, path, ("Failed to rename the output G-code file from " + path_tmp + " to " + path + '\n' +
+ "Is " + path_tmp + " locked? " + err_code.message() + '\n'), true) != CopyFileResult::SUCCESS)
throw Slic3r::RuntimeError(
std::string("Failed to rename the output G-code file from ") + path_tmp + " to " + path + '\n' +
"Is " + path_tmp + " locked? " + err_code.message() + '\n');
@@ -1880,16 +1881,22 @@ static bool custom_gcode_sets_temperature(const std::string &gcode, const int mc
while (*ptr != 0) {
// Skip whitespaces.
for (; *ptr == ' ' || *ptr == '\t'; ++ ptr);
- if (*ptr == 'M') {
- // Line starts with 'M'. It is a machine command.
+ if (*ptr == 'M' || // Line starts with 'M'. It is a machine command.
+ (*ptr == 'G' && include_g10)) { // Only check for G10 if requested
+ bool is_gcode = *ptr == 'G';
++ ptr;
- // Parse the M code value.
+ // Parse the M or G code value.
char *endptr = nullptr;
- int mcode = int(strtol(ptr, &endptr, 10));
- if (endptr != nullptr && endptr != ptr && (mcode == mcode_set_temp_dont_wait || mcode == mcode_set_temp_and_wait)) {
+ int mgcode = int(strtol(ptr, &endptr, 10));
+ if (endptr != nullptr && endptr != ptr &&
+ is_gcode ?
+ // G10 found
+ mgcode == 10 :
// M104/M109 or M140/M190 found.
+ (mgcode == mcode_set_temp_dont_wait || mgcode == mcode_set_temp_and_wait)) {
ptr = endptr;
- // Let the caller know that the custom G-code sets the temperature.
+ if (! is_gcode)
+ // Let the caller know that the custom M-code sets the temperature.
temp_set_by_gcode = true;
// Now try to parse the temperature value.
// While not at the end of the line:
@@ -1905,6 +1912,10 @@ static bool custom_gcode_sets_temperature(const std::string &gcode, const int mc
if (endptr > ptr) {
ptr = endptr;
temp_out = temp_parsed;
+ // Let the caller know that the custom G-code sets the temperature
+ // Only do this after successfully parsing temperature since G10
+ // can be used for other reasons
+ temp_set_by_gcode = true;
}
} else {
// Skip this word.
@@ -1912,41 +1923,7 @@ static bool custom_gcode_sets_temperature(const std::string &gcode, const int mc
}
}
}
- } else if (*ptr == 'G' && include_g10) { // Only check for G10 if requested
- // Line starts with 'G'.
- ++ ptr;
- // Parse the G code value.
- char *endptr = nullptr;
- int gcode = int(strtol(ptr, &endptr, 10));
- if (endptr != nullptr && endptr != ptr && gcode == 10 /* G10 */) {
- // G10 code found
- ptr = endptr;
- // Now try to parse the temperature value.
- // While not at the end of the line:
- while (strchr(";\r\n\0", *ptr) == nullptr) {
- // Skip whitespaces.
- for (; *ptr == ' ' || *ptr == '\t'; ++ ptr);
- if (*ptr == 'S') {
- // Skip whitespaces.
- for (++ ptr; *ptr == ' ' || *ptr == '\t'; ++ ptr);
- // Parse an int.
- endptr = nullptr;
- long temp_parsed = strtol(ptr, &endptr, 10);
- if (endptr > ptr) {
- ptr = endptr;
- temp_out = temp_parsed;
- // Let the caller know that the custom G-code sets the temperature
- // Only do this after successfully parsing temperature since G10
- // can be used for other reasons
- temp_set_by_gcode = true;
}
- } else {
- // Skip this word.
- for (; strchr(" \t;\r\n\0", *ptr) == nullptr; ++ ptr);
- }
- }
- }
- }
// Skip the rest of the line.
for (; *ptr != 0 && *ptr != '\r' && *ptr != '\n'; ++ ptr);
// Skip the end of line indicators.
@@ -2035,11 +2012,13 @@ void GCode::_print_first_layer_bed_temperature(FILE *file, Print &print, const s
// Only do that if the start G-code does not already contain any M-code controlling an extruder temperature.
// M104 - Set Extruder Temperature
// M109 - Set Extruder Temperature and Wait
+// RepRapFirmware: G10 Sxx
void GCode::_print_first_layer_extruder_temperatures(FILE *file, Print &print, const std::string &gcode, unsigned int first_printing_extruder_id, bool wait)
{
// Is the bed temperature set by the provided custom G-code?
int temp_by_gcode = -1;
- if (custom_gcode_sets_temperature(gcode, 104, 109, true, temp_by_gcode)) {
+ bool include_g10 = print.config().gcode_flavor == gcfRepRap;
+ if (custom_gcode_sets_temperature(gcode, 104, 109, include_g10, temp_by_gcode)) {
// Set the extruder temperature at m_writer, but throw away the generated G-code as it will be written with the custom G-code.
int temp = print.config().first_layer_temperature.get_at(first_printing_extruder_id);
if (temp_by_gcode >= 0 && temp_by_gcode < 1000)
diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp
index cbb64577c..5ae985239 100644
--- a/src/libslic3r/GCode/GCodeProcessor.cpp
+++ b/src/libslic3r/GCode/GCodeProcessor.cpp
@@ -400,7 +400,7 @@ void GCodeProcessor::TimeProcessor::post_process(const std::string& filename)
const TimeMachine& machine = machines[i];
if (machine.enabled && g1_lines_counter < machine.g1_times_cache.size()) {
float elapsed_time = machine.g1_times_cache[g1_lines_counter];
- std::pair to_export = { int(::roundf(100.0f * elapsed_time / machine.time)),
+ std::pair to_export = { int(100.0f * elapsed_time / machine.time),
time_in_minutes(machine.time - elapsed_time) };
if (last_exported[i] != to_export) {
export_line += format_line_M73(machine.line_m73_mask.c_str(),
@@ -461,7 +461,8 @@ void GCodeProcessor::TimeProcessor::post_process(const std::string& filename)
std::error_code err_code;
if (err_code = rename_file(out_path, filename))
- if(copy_file(out_path, filename, true) != SUCCESS)
+ if(copy_file(out_path, filename, (std::string("Failed to rename the output G-code file from ") + out_path + " to " + filename + '\n' +
+ "Is " + out_path + " locked? (gcp)" + err_code.message() + '\n'), true) != SUCCESS)
throw Slic3r::RuntimeError(std::string("Failed to rename the output G-code file from ") + out_path + " to " + filename + '\n' +
"Is " + out_path + " locked? (gcp)" + err_code.message() + '\n');
}
@@ -691,7 +692,7 @@ void GCodeProcessor::reset()
m_global_positioning_type = EPositioningType::Absolute;
m_e_local_positioning_type = EPositioningType::Absolute;
m_extruder_offsets = std::vector(Min_Extruder_Count, Vec3f::Zero());
- m_flavor = gcfRepRap;
+ m_flavor = gcfSprinter;
m_start_position = { 0.0f, 0.0f, 0.0f, 0.0f };
m_end_position = { 0.0f, 0.0f, 0.0f, 0.0f };
@@ -1128,6 +1129,8 @@ bool GCodeProcessor::process_cura_tags(const std::string& comment)
m_flavor = gcfRepetier;
else if (flavor == "RepRap")
m_flavor = gcfRepRap;
+ else if (flavor == "Sprinter")
+ m_flavor = gcfSprinter;
else if (flavor == "Marlin")
m_flavor = gcfMarlin;
else
@@ -1832,7 +1835,7 @@ void GCodeProcessor::process_M201(const GCodeReader::GCodeLine& line)
return;
// see http://reprap.org/wiki/G-code#M201:_Set_max_printing_acceleration
- float factor = (m_flavor != gcfRepRap && m_units == EUnits::Inches) ? INCHES_TO_MM : 1.0f;
+ float factor = ((m_flavor != gcfSprinter && m_flavor != gcfRepRap) && m_units == EUnits::Inches) ? INCHES_TO_MM : 1.0f;
for (size_t i = 0; i < static_cast(PrintEstimatedTimeStatistics::ETimeMode::Count); ++i) {
if (line.has_x())
diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp
index db710665f..fbb3e765a 100644
--- a/src/libslic3r/GCodeWriter.cpp
+++ b/src/libslic3r/GCodeWriter.cpp
@@ -100,7 +100,7 @@ std::string GCodeWriter::set_temperature(const unsigned int temperature, bool wa
return "";
std::string code, comment;
- if (wait && FLAVOR_IS_NOT(gcfTeacup) && FLAVOR_IS_NOT(gcfRepRap) && FLAVOR_IS_NOT(gcfSprinter)) {
+ if (wait && FLAVOR_IS_NOT(gcfTeacup) && FLAVOR_IS_NOT(gcfRepRap)) {
code = "M109";
comment = "set temperature and wait for it to be reached";
} else {
@@ -124,7 +124,9 @@ std::string GCodeWriter::set_temperature(const unsigned int temperature, bool wa
gcode << temp_w_offset;
bool multiple_tools = this->multiple_extruders && ! m_single_extruder_multi_material;
if (tool != -1 && (multiple_tools || FLAVOR_IS(gcfMakerWare) || FLAVOR_IS(gcfSailfish)) ) {
- if (FLAVOR_IS_NOT(gcfRepRap)) {
+ if (FLAVOR_IS(gcfRepRap)) {
+ gcode << " P" << tool;
+ } else {
gcode << " T" << tool;
}
}
diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp
index 10b387027..ed22dfc71 100644
--- a/src/libslic3r/MeshBoolean.cpp
+++ b/src/libslic3r/MeshBoolean.cpp
@@ -12,7 +12,6 @@
#include
#include
#include
-#include
#include
#include
#include
diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp
index a8339ae1d..d0ee56082 100644
--- a/src/libslic3r/Model.cpp
+++ b/src/libslic3r/Model.cpp
@@ -1055,6 +1055,7 @@ void ModelObject::convert_units(ModelObjectPtrs& new_objects, bool from_imperial
ModelVolume* vol = new_object->add_volume(mesh);
vol->name = volume->name;
+ vol->set_type(volume->type());
// Don't copy the config's ID.
vol->config.assign_config(volume->config);
assert(vol->config.id().valid());
@@ -1065,7 +1066,7 @@ void ModelObject::convert_units(ModelObjectPtrs& new_objects, bool from_imperial
if (volume_idxs.empty() ||
std::find(volume_idxs.begin(), volume_idxs.end(), vol_idx) != volume_idxs.end()) {
vol->scale_geometry_after_creation(versor);
- vol->set_offset(versor.cwiseProduct(vol->get_offset()));
+ vol->set_offset(versor.cwiseProduct(volume->get_offset()));
}
else
vol->set_offset(volume->get_offset());
diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp
index 3a6ba6201..aa8ba2c4b 100644
--- a/src/libslic3r/Print.cpp
+++ b/src/libslic3r/Print.cpp
@@ -11,6 +11,7 @@
#include "I18N.hpp"
#include "ShortestPath.hpp"
#include "SupportMaterial.hpp"
+#include "Thread.hpp"
#include "GCode.hpp"
#include "GCode/WipeTower.hpp"
#include "Utils.hpp"
@@ -1696,6 +1697,8 @@ void Print::auto_assign_extruders(ModelObject* model_object) const
// Slicing process, running at a background thread.
void Print::process()
{
+ name_tbb_thread_pool_threads();
+
BOOST_LOG_TRIVIAL(info) << "Starting the slicing process." << log_memory_info();
for (PrintObject *obj : m_objects)
obj->make_perimeters();
diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp
index 79a8069ff..aecc82c84 100644
--- a/src/libslic3r/Print.hpp
+++ b/src/libslic3r/Print.hpp
@@ -38,17 +38,18 @@ namespace FillAdaptive {
};
// Print step IDs for keeping track of the print state.
+// The Print steps are applied in this order.
enum PrintStep {
- psSkirt,
- psBrim,
- // Synonym for the last step before the Wipe Tower / Tool Ordering, for the G-code preview slider to understand that
- // all the extrusions are there for the layer slider to add color changes etc.
- psExtrusionPaths = psBrim,
psWipeTower,
+ // Ordering of the tools on PrintObjects for a multi-material print.
// psToolOrdering is a synonym to psWipeTower, as the Wipe Tower calculates and modifies the ToolOrdering,
// while if printing without the Wipe Tower, the ToolOrdering is calculated as well.
psToolOrdering = psWipeTower,
- psSlicingFinished = psToolOrdering,
+ psSkirt,
+ psBrim,
+ // Last step before G-code export, after this step is finished, the initial extrusion path preview
+ // should be refreshed.
+ psSlicingFinished = psBrim,
psGCodeExport,
psCount,
};
diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp
index 3cbde26ca..070c67278 100644
--- a/src/libslic3r/PrintConfig.cpp
+++ b/src/libslic3r/PrintConfig.cpp
@@ -1778,7 +1778,7 @@ void PrintConfigDef::init_fff_params()
def->enum_values.push_back("sprinter");
def->enum_values.push_back("lerdge");
def->enum_values.push_back("no-extrusion");
- def->enum_labels.push_back("RepRap");
+ def->enum_labels.push_back("RepRapFirmware");
def->enum_labels.push_back("Repetier");
def->enum_labels.push_back("Teacup");
def->enum_labels.push_back("MakerWare (MakerBot)");
@@ -1792,7 +1792,7 @@ void PrintConfigDef::init_fff_params()
def->enum_labels.push_back("Lerdge");
def->enum_labels.push_back(L("No extrusion"));
def->mode = comAdvanced;
- def->set_default_value(new ConfigOptionEnum(gcfRepRap));
+ def->set_default_value(new ConfigOptionEnum(gcfSprinter));
def = this->add("gcode_label_objects", coBool);
def->label = L("Label objects");
diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp
index 5a48e4d3f..add088467 100644
--- a/src/libslic3r/PrintObject.cpp
+++ b/src/libslic3r/PrintObject.cpp
@@ -861,14 +861,14 @@ bool PrintObject::invalidate_step(PrintObjectStep step)
// propagate to dependent steps
if (step == posPerimeters) {
- invalidated |= this->invalidate_steps({ posPrepareInfill, posInfill });
+ invalidated |= this->invalidate_steps({ posPrepareInfill, posInfill, posIroning });
invalidated |= m_print->invalidate_steps({ psSkirt, psBrim });
} else if (step == posPrepareInfill) {
- invalidated |= this->invalidate_step(posInfill);
+ invalidated |= this->invalidate_steps({ posInfill, posIroning });
} else if (step == posInfill) {
invalidated |= m_print->invalidate_steps({ psSkirt, psBrim });
} else if (step == posSlice) {
- invalidated |= this->invalidate_steps({ posPerimeters, posPrepareInfill, posInfill, posSupportMaterial });
+ invalidated |= this->invalidate_steps({ posPerimeters, posPrepareInfill, posInfill, posIroning, posSupportMaterial });
invalidated |= m_print->invalidate_steps({ psSkirt, psBrim });
this->m_slicing_params.valid = false;
} else if (step == posSupportMaterial) {
@@ -2228,12 +2228,6 @@ void PrintObject::_slice(const std::vector &layer_height_profile)
m_typed_slices = false;
-#ifdef SLIC3R_PROFILE
- // Disable parallelization so the Shiny profiler works
- static tbb::task_scheduler_init *tbb_init = nullptr;
- tbb_init = new tbb::task_scheduler_init(1);
-#endif
-
// 1) Initialize layers and their slice heights.
std::vector slice_zs;
{
diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp
index b6c321c09..4dae5beec 100644
--- a/src/libslic3r/SLAPrint.cpp
+++ b/src/libslic3r/SLAPrint.cpp
@@ -4,6 +4,7 @@
#include "ClipperUtils.hpp"
#include "Geometry.hpp"
#include "MTUtils.hpp"
+#include "Thread.hpp"
#include
#include
@@ -689,7 +690,10 @@ bool SLAPrint::invalidate_step(SLAPrintStep step)
void SLAPrint::process()
{
- if(m_objects.empty()) return;
+ if (m_objects.empty())
+ return;
+
+ name_tbb_thread_pool_threads();
// Assumption: at this point the print objects should be populated only with
// the model objects we have to process and the instances are also filtered
diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp
index 2872346a1..7c63c3ffd 100644
--- a/src/libslic3r/Technologies.hpp
+++ b/src/libslic3r/Technologies.hpp
@@ -57,4 +57,5 @@
#define ENABLE_GCODE_VIEWER_STATISTICS (0 && ENABLE_GCODE_VIEWER)
#define ENABLE_GCODE_VIEWER_DATA_CHECKING (0 && ENABLE_GCODE_VIEWER)
+
#endif // _prusaslicer_technologies_h_
diff --git a/src/libslic3r/Thread.cpp b/src/libslic3r/Thread.cpp
new file mode 100644
index 000000000..4e915f0c9
--- /dev/null
+++ b/src/libslic3r/Thread.cpp
@@ -0,0 +1,238 @@
+#ifdef _WIN32
+ #include
+ #include
+#else
+ // any posix system
+ #include
+#endif
+
+#include
+#include
+#include
+#include
+#include
+
+
+#include "Thread.hpp"
+
+namespace Slic3r {
+
+#ifdef _WIN32
+// The new API is better than the old SEH style thread naming since the names also show up in crash dumpsand ETW traces.
+// Because the new API is only available on newer Windows 10, look it up dynamically.
+
+typedef HRESULT(__stdcall* SetThreadDescriptionType)(HANDLE, PCWSTR);
+typedef HRESULT(__stdcall* GetThreadDescriptionType)(HANDLE, PWSTR*);
+
+static bool s_SetGetThreadDescriptionInitialized = false;
+static HMODULE s_hKernel32 = nullptr;
+static SetThreadDescriptionType s_fnSetThreadDescription = nullptr;
+static GetThreadDescriptionType s_fnGetThreadDescription = nullptr;
+
+static bool WindowsGetSetThreadNameAPIInitialize()
+{
+ if (! s_SetGetThreadDescriptionInitialized) {
+ // Not thread safe! It is therefore a good idea to name the main thread before spawning worker threads
+ // to initialize
+ s_hKernel32 = LoadLibraryW(L"Kernel32.dll");
+ if (s_hKernel32) {
+ s_fnSetThreadDescription = (SetThreadDescriptionType)::GetProcAddress(s_hKernel32, "SetThreadDescription");
+ s_fnGetThreadDescription = (GetThreadDescriptionType)::GetProcAddress(s_hKernel32, "GetThreadDescription");
+ }
+ s_SetGetThreadDescriptionInitialized = true;
+ }
+ return s_fnSetThreadDescription && s_fnGetThreadDescription;
+}
+
+#ifndef NDEBUG
+ // Use the old way by throwing an exception, so at least in Debug mode the thread names are shown by the debugger.
+ static constexpr DWORD MSVC_SEH_EXCEPTION_NAME_THREAD = 0x406D1388;
+
+#pragma pack(push,8)
+ typedef struct tagTHREADNAME_INFO
+ {
+ DWORD dwType; // Must be 0x1000.
+ LPCSTR szName; // Pointer to name (in user addr space).
+ DWORD dwThreadID; // Thread ID (-1=caller thread).
+ DWORD dwFlags; // Reserved for future use, must be zero.
+ } THREADNAME_INFO;
+#pragma pack(pop)
+
+ static void WindowsSetThreadNameSEH(HANDLE hThread, const char* thread_name)
+ {
+ THREADNAME_INFO info;
+ info.dwType = 0x1000;
+ info.szName = thread_name;
+ info.dwThreadID = ::GetThreadId(hThread);
+ info.dwFlags = 0;
+ __try {
+ RaiseException(MSVC_SEH_EXCEPTION_NAME_THREAD, 0, sizeof(info) / sizeof(ULONG_PTR), (ULONG_PTR*)&info);
+ } __except (EXCEPTION_EXECUTE_HANDLER) {
+ }
+ }
+#endif // NDEBUG
+
+static bool WindowsSetThreadName(HANDLE hThread, const char *thread_name)
+{
+ if (! WindowsGetSetThreadNameAPIInitialize()) {
+#ifdef NDEBUG
+ return false;
+#else // NDEBUG
+ // Running on Windows 7 or old Windows 7 in debug mode,
+ // inform the debugger about the thread name by throwing an SEH.
+ WindowsSetThreadNameSEH(hThread, thread_name);
+ return true;
+#endif // NDEBUG
+ }
+
+ size_t len = strlen(thread_name);
+ if (len < 1024) {
+ // Allocate the temp string on stack.
+ wchar_t buf[1024];
+ s_fnSetThreadDescription(hThread, boost::nowide::widen(buf, 1024, thread_name));
+ } else {
+ // Allocate dynamically.
+ s_fnSetThreadDescription(hThread, boost::nowide::widen(thread_name).c_str());
+ }
+ return true;
+}
+
+bool set_thread_name(std::thread &thread, const char *thread_name)
+{
+ return WindowsSetThreadName(static_cast(thread.native_handle()), thread_name);
+}
+
+bool set_thread_name(boost::thread &thread, const char *thread_name)
+{
+ return WindowsSetThreadName(static_cast(thread.native_handle()), thread_name);
+}
+
+bool set_current_thread_name(const char *thread_name)
+{
+ return WindowsSetThreadName(::GetCurrentThread(), thread_name);
+}
+
+std::optional get_current_thread_name()
+{
+ if (! WindowsGetSetThreadNameAPIInitialize())
+ return std::nullopt;
+
+ wchar_t *ptr = nullptr;
+ s_fnGetThreadDescription(::GetCurrentThread(), &ptr);
+ return (ptr == nullptr) ? std::string() : boost::nowide::narrow(ptr);
+}
+
+#else // _WIN32
+
+#ifdef __APPLE__
+
+// Appe screwed the Posix norm.
+bool set_thread_name(std::thread &thread, const char *thread_name)
+{
+// not supported
+// pthread_setname_np(thread.native_handle(), thread_name);
+ return false;
+}
+
+bool set_thread_name(boost::thread &thread, const char *thread_name)
+{
+// not supported
+// pthread_setname_np(thread.native_handle(), thread_name);
+ return false;
+}
+
+bool set_current_thread_name(const char *thread_name)
+{
+ pthread_setname_np(thread_name);
+ return true;
+}
+
+std::optional get_current_thread_name()
+{
+// not supported
+// char buf[16];
+// return std::string(thread_getname_np(buf, 16) == 0 ? buf : "");
+ return std::nullopt;
+}
+
+#else
+
+// posix
+bool set_thread_name(std::thread &thread, const char *thread_name)
+{
+ pthread_setname_np(thread.native_handle(), thread_name);
+ return true;
+}
+
+bool set_thread_name(boost::thread &thread, const char *thread_name)
+{
+ pthread_setname_np(thread.native_handle(), thread_name);
+ return true;
+}
+
+bool set_current_thread_name(const char *thread_name)
+{
+ pthread_setname_np(pthread_self(), thread_name);
+ return true;
+}
+
+std::optional get_current_thread_name()
+{
+ char buf[16];
+ return std::string(pthread_getname_np(pthread_self(), buf, 16) == 0 ? buf : "");
+}
+
+#endif
+
+#endif // _WIN32
+
+// Spawn (n - 1) worker threads on Intel TBB thread pool and name them by an index and a system thread ID.
+void name_tbb_thread_pool_threads()
+{
+ static bool initialized = false;
+ if (initialized)
+ return;
+ initialized = true;
+
+ const size_t nthreads_hw = std::thread::hardware_concurrency();
+ size_t nthreads = nthreads_hw;
+
+#ifdef SLIC3R_PROFILE
+ // Shiny profiler is not thread safe, thus disable parallelization.
+ nthreads = 1;
+#endif
+
+ if (nthreads != nthreads_hw)
+ new tbb::task_scheduler_init(int(nthreads));
+
+ std::atomic nthreads_running(0);
+ std::condition_variable cv;
+ std::mutex cv_m;
+ auto master_thread_id = tbb::this_tbb_thread::get_id();
+ tbb::parallel_for(
+ tbb::blocked_range(0, nthreads, 1),
+ [&nthreads_running, nthreads, &master_thread_id, &cv, &cv_m](const tbb::blocked_range &range) {
+ assert(range.begin() + 1 == range.end());
+ if (nthreads_running.fetch_add(1) + 1 == nthreads) {
+ // All threads are spinning.
+ // Wake them up.
+ cv.notify_all();
+ } else {
+ // Wait for the last thread to wake the others.
+ std::unique_lock lk(cv_m);
+ cv.wait(lk, [&nthreads_running, nthreads]{return nthreads_running == nthreads;});
+ }
+ auto thread_id = tbb::this_tbb_thread::get_id();
+ if (thread_id == master_thread_id) {
+ // The calling thread runs the 0'th task.
+ assert(range.begin() == 0);
+ } else {
+ assert(range.begin() > 0);
+ std::ostringstream name;
+ name << "slic3r_tbb_" << range.begin();
+ set_current_thread_name(name.str().c_str());
+ }
+ });
+}
+
+}
diff --git a/src/libslic3r/Thread.hpp b/src/libslic3r/Thread.hpp
new file mode 100644
index 000000000..a86123796
--- /dev/null
+++ b/src/libslic3r/Thread.hpp
@@ -0,0 +1,57 @@
+#ifndef GUI_THREAD_HPP
+#define GUI_THREAD_HPP
+
+#include
+#include
+#include
+#include
+
+namespace Slic3r {
+
+// Set / get thread name.
+// Returns false if the API is not supported.
+//
+// It is a good idea to name the main thread before spawning children threads, because dynamic linking is used on Windows 10
+// to initialize Get/SetThreadDescription functions, which is not thread safe.
+//
+// pthread_setname_np supports maximum 15 character thread names! (16th character is the null terminator)
+//
+// Methods taking the thread as an argument are not supported by OSX.
+// Naming threads is only supported on newer Windows 10.
+
+bool set_thread_name(std::thread &thread, const char *thread_name);
+inline bool set_thread_name(std::thread &thread, const std::string &thread_name) { return set_thread_name(thread, thread_name.c_str()); }
+bool set_thread_name(boost::thread &thread, const char *thread_name);
+inline bool set_thread_name(boost::thread &thread, const std::string &thread_name) { return set_thread_name(thread, thread_name.c_str()); }
+bool set_current_thread_name(const char *thread_name);
+inline bool set_current_thread_name(const std::string &thread_name) { return set_current_thread_name(thread_name.c_str()); }
+
+// Returns nullopt if not supported.
+// Not supported by OSX.
+// Naming threads is only supported on newer Windows 10.
+std::optional get_current_thread_name();
+
+// To be called somewhere before the TBB threads are spinned for the first time, to
+// give them names recognizible in the debugger.
+void name_tbb_thread_pool_threads();
+
+template
+inline boost::thread create_thread(boost::thread::attributes &attrs, Fn &&fn)
+{
+ // 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));
+ return boost::thread{attrs, std::forward(fn)};
+}
+
+template inline boost::thread create_thread(Fn &&fn)
+{
+ boost::thread::attributes attrs;
+ return create_thread(attrs, std::forward(fn));
+}
+
+}
+
+#endif // GUI_THREAD_HPP
diff --git a/src/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp
index ad3be66e5..cda20dbc0 100644
--- a/src/libslic3r/Utils.hpp
+++ b/src/libslic3r/Utils.hpp
@@ -7,6 +7,8 @@
#include
#include
+#include
+
#include "libslic3r.h"
namespace boost { namespace filesystem { class directory_entry; }}
@@ -73,11 +75,12 @@ enum CopyFileResult {
FAIL_CHECK_TARGET_NOT_OPENED
};
// Copy a file, adjust the access attributes, so that the target is writable.
-CopyFileResult copy_file_inner(const std::string &from, const std::string &to);
+CopyFileResult copy_file_inner(const std::string &from, const std::string &to, std::string& error_message);
// Copy file to a temp file first, then rename it to the final file name.
// If with_check is true, then the content of the copied file is compared to the content
// of the source file before renaming.
-extern CopyFileResult copy_file(const std::string &from, const std::string &to, const bool with_check = false);
+// Additional error info is passed in error message.
+extern CopyFileResult copy_file(const std::string &from, const std::string &to, std::string& error_message, const bool with_check = false);
// Compares two files if identical.
extern CopyFileResult check_copy(const std::string& origin, const std::string& copy);
diff --git a/src/libslic3r/utils.cpp b/src/libslic3r/utils.cpp
index 91b95afd2..dbcb271bb 100644
--- a/src/libslic3r/utils.cpp
+++ b/src/libslic3r/utils.cpp
@@ -417,7 +417,7 @@ std::error_code rename_file(const std::string &from, const std::string &to)
#endif
}
-CopyFileResult copy_file_inner(const std::string& from, const std::string& to)
+CopyFileResult copy_file_inner(const std::string& from, const std::string& to, std::string& error_message)
{
const boost::filesystem::path source(from);
const boost::filesystem::path target(to);
@@ -429,20 +429,31 @@ CopyFileResult copy_file_inner(const std::string& from, const std::string& to)
// the copy_file() function will fail appropriately and we don't want the permission()
// calls to cause needless failures on permissionless filesystems (ie. FATs on SD cards etc.)
// or when the target file doesn't exist.
+
+ //This error code is ignored
boost::system::error_code ec;
+
boost::filesystem::permissions(target, perms, ec);
+ //if (ec)
+ // BOOST_LOG_TRIVIAL(error) << "Copy file permisions before copy error message: " << ec.message();
+ // This error code is passed up
+ ec.clear();
boost::filesystem::copy_file(source, target, boost::filesystem::copy_option::overwrite_if_exists, ec);
if (ec) {
+ error_message = ec.message();
return FAIL_COPY_FILE;
}
+ //ec.clear();
boost::filesystem::permissions(target, perms, ec);
+ //if (ec)
+ // BOOST_LOG_TRIVIAL(error) << "Copy file permisions after copy error message: " << ec.message();
return SUCCESS;
}
-CopyFileResult copy_file(const std::string &from, const std::string &to, const bool with_check)
+CopyFileResult copy_file(const std::string &from, const std::string &to, std::string& error_message, const bool with_check)
{
std::string to_temp = to + ".tmp";
- CopyFileResult ret_val = copy_file_inner(from,to_temp);
+ CopyFileResult ret_val = copy_file_inner(from, to_temp, error_message);
if(ret_val == SUCCESS)
{
if (with_check)
diff --git a/src/platform/unix/PrusaSlicer.desktop b/src/platform/unix/PrusaSlicer.desktop
new file mode 100644
index 000000000..464873f45
--- /dev/null
+++ b/src/platform/unix/PrusaSlicer.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=PrusaSlicer
+Exec=prusa-slicer %F
+Icon=PrusaSlicer
+Terminal=false
+Type=Application
+MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf;
+Categories=Graphics;3DGraphics;
+Keywords=3D;Printing;Slicer;
\ No newline at end of file
diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
index b51472f20..eb7d1c6a0 100644
--- a/src/slic3r/CMakeLists.txt
+++ b/src/slic3r/CMakeLists.txt
@@ -91,6 +91,8 @@ set(SLIC3R_GUI_SOURCES
GUI/PresetHints.hpp
GUI/GUI.cpp
GUI/GUI.hpp
+ GUI/GUI_Init.cpp
+ GUI/GUI_Init.hpp
GUI/GUI_Preview.cpp
GUI/GUI_Preview.hpp
GUI/GUI_App.cpp
@@ -105,6 +107,8 @@ set(SLIC3R_GUI_SOURCES
GUI/Plater.hpp
GUI/PresetComboBoxes.hpp
GUI/PresetComboBoxes.cpp
+ GUI/SavePresetDialog.hpp
+ GUI/SavePresetDialog.cpp
GUI/PhysicalPrinterDialog.hpp
GUI/PhysicalPrinterDialog.cpp
GUI/GUI_ObjectList.cpp
@@ -220,7 +224,6 @@ set(SLIC3R_GUI_SOURCES
Utils/UndoRedo.hpp
Utils/HexFile.cpp
Utils/HexFile.hpp
- Utils/Thread.hpp
)
if (APPLE)
diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.cpp b/src/slic3r/GUI/BackgroundSlicingProcess.cpp
index bf1cef90b..5fcdd4e7d 100644
--- a/src/slic3r/GUI/BackgroundSlicingProcess.cpp
+++ b/src/slic3r/GUI/BackgroundSlicingProcess.cpp
@@ -23,6 +23,7 @@
#include "libslic3r/GCode/PreviewData.hpp"
#endif // !ENABLE_GCODE_VIEWER
#include "libslic3r/Format/SL1.hpp"
+#include "libslic3r/Thread.hpp"
#include "libslic3r/libslic3r.h"
#include
@@ -36,7 +37,6 @@
#include "I18N.hpp"
#include "RemovableDriveManager.hpp"
-#include "slic3r/Utils/Thread.hpp"
#include "slic3r/GUI/Plater.hpp"
namespace Slic3r {
@@ -45,7 +45,7 @@ bool SlicingProcessCompletedEvent::critical_error() const
{
try {
this->rethrow_exception();
- } catch (const Slic3r::SlicingError &ex) {
+ } catch (const Slic3r::SlicingError &) {
// Exception derived from SlicingError is non-critical.
return false;
} catch (...) {
@@ -138,11 +138,12 @@ void BackgroundSlicingProcess::process_fff()
//FIXME localize the messages
// Perform the final post-processing of the export path by applying the print statistics over the file name.
std::string export_path = m_fff_print->print_statistics().finalize_output_path(m_export_path);
- int copy_ret_val = copy_file(m_temp_output_path, export_path, m_export_path_on_removable_media);
+ std::string error_message;
+ int copy_ret_val = copy_file(m_temp_output_path, export_path, error_message, m_export_path_on_removable_media);
switch (copy_ret_val) {
case SUCCESS: break; // no error
case FAIL_COPY_FILE:
- throw Slic3r::RuntimeError(_utf8(L("Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?")));
+ throw Slic3r::RuntimeError((boost::format(_utf8(L("Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?\nError message: %1%"))) % error_message).str());
break;
case FAIL_FILES_DIFFERENT:
throw Slic3r::RuntimeError((boost::format(_utf8(L("Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp."))) % export_path).str());
@@ -157,7 +158,8 @@ void BackgroundSlicingProcess::process_fff()
throw Slic3r::RuntimeError((boost::format(_utf8(L("Copying of the temporary G-code has finished but the exported code couldn't be opened during copy check. The output G-code is at %1%.tmp."))) % export_path).str());
break;
default:
- BOOST_LOG_TRIVIAL(warning) << "Unexpected fail code(" << (int)copy_ret_val << ") durring copy_file() to " << export_path << ".";
+ throw Slic3r::RuntimeError(_utf8(L("Unknown error occured during exporting G-code.")));
+ BOOST_LOG_TRIVIAL(error) << "Unexpected fail code(" << (int)copy_ret_val << ") durring copy_file() to " << export_path << ".";
break;
}
@@ -232,6 +234,9 @@ void BackgroundSlicingProcess::process_sla()
void BackgroundSlicingProcess::thread_proc()
{
+ set_current_thread_name("slic3r_BgSlcPcs");
+ name_tbb_thread_pool_threads();
+
assert(m_print != nullptr);
assert(m_print == m_fff_print || m_print == m_sla_print);
std::unique_lock lck(m_mutex);
@@ -527,7 +532,8 @@ void BackgroundSlicingProcess::prepare_upload()
if (m_print == m_fff_print) {
m_print->set_status(95, _utf8(L("Running post-processing scripts")));
- if (copy_file(m_temp_output_path, source_path.string()) != SUCCESS) {
+ std::string error_message;
+ if (copy_file(m_temp_output_path, source_path.string(), error_message) != SUCCESS) {
throw Slic3r::RuntimeError(_utf8(L("Copying of the temporary G-code to the output G-code failed")));
}
run_post_process_scripts(source_path.string(), m_fff_print->config());
diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp
index 85c4c83b0..6a4dfb3a4 100644
--- a/src/slic3r/GUI/ConfigWizard.cpp
+++ b/src/slic3r/GUI/ConfigWizard.cpp
@@ -916,7 +916,7 @@ void PageMaterials::update_lists(int sel_printer, int sel_type, int sel_vendor)
const std::string& type = list_type->get_data(sel_type);
const std::string& vendor = list_vendor->get_data(sel_vendor);
// finst printer preset
- std::vector, bool>> to_list;
+ std::vector to_list;
for (size_t i = 0; i < sel_printers_count; i++) {
const std::string& printer_name = list_printer->get_data(sel_printers[i]);
const Preset* printer = nullptr;
@@ -931,16 +931,19 @@ void PageMaterials::update_lists(int sel_printer, int sel_type, int sel_vendor)
bool was_checked = false;
//size_t printer_counter = materials->get_printer_counter(p);
int cur_i = list_profile->find(p->alias);
+ bool emplace_to_to_list = false;
if (cur_i == wxNOT_FOUND) {
cur_i = list_profile->append(p->alias + (materials->get_omnipresent(p) ? "" : " *"), &p->alias);
- to_list.emplace_back(p->alias, materials->get_omnipresent(p));
+ emplace_to_to_list = true;
} else
was_checked = list_profile->IsChecked(cur_i);
const std::string& section = materials->appconfig_section();
const bool checked = wizard_p()->appconfig_new.has(section, p->name);
- list_profile->Check(cur_i, checked | was_checked);
+ list_profile->Check(cur_i, checked || was_checked);
+ if (emplace_to_to_list)
+ to_list.emplace_back(p->alias, materials->get_omnipresent(p), checked || was_checked);
/* Update preset selection in config.
* If one preset from aliases bundle is selected,
@@ -1018,33 +1021,39 @@ void PageMaterials::sort_list_data(StringList* list, bool add_All_item, bool mat
list->append(item, &const_cast(item.get()));
}
-void PageMaterials::sort_list_data(PresetList* list, const std::vector, bool>>& data)
+void PageMaterials::sort_list_data(PresetList* list, const std::vector& data)
{
// sort data
// then prusa profiles
// then the rest
// in alphabetical order
- std::vector, bool>> prusa_profiles;
- std::vector, bool>> other_profiles;
+ std::vector prusa_profiles;
+ std::vector other_profiles;
//for (int i = 0; i < data.size(); ++i) {
for (const auto& item : data) {
- const std::string& name = item.first;
+ const std::string& name = item.name;
if (name.find("Prusa") != std::string::npos)
prusa_profiles.emplace_back(item);
else
other_profiles.emplace_back(item);
}
- std::sort(prusa_profiles.begin(), prusa_profiles.end(), [](std::pair, bool> a, std::pair, bool> b) {
- return a.first.get() < b.first.get();
+ std::sort(prusa_profiles.begin(), prusa_profiles.end(), [](ProfilePrintData a, ProfilePrintData b) {
+ return a.name.get() < b.name.get();
});
- std::sort(other_profiles.begin(), other_profiles.end(), [](std::pair, bool> a, std::pair, bool> b) {
- return a.first.get() < b.first.get();
+ std::sort(other_profiles.begin(), other_profiles.end(), [](ProfilePrintData a, ProfilePrintData b) {
+ return a.name.get() < b.name.get();
});
list->Clear();
- for (const auto& item : prusa_profiles)
- list->append(std::string(item.first) + (item.second ? "" : " *"), &const_cast(item.first.get()));
- for (const auto& item : other_profiles)
- list->append(std::string(item.first) + (item.second ? "" : " *"), &const_cast(item.first.get()));
+ //for (const auto& item : prusa_profiles)
+ for (int i = 0; i < prusa_profiles.size(); ++i) {
+ list->append(std::string(prusa_profiles[i].name) + (prusa_profiles[i].omnipresent ? "" : " *"), &const_cast(prusa_profiles[i].name.get()));
+ list->Check(i, prusa_profiles[i].checked);
+ }
+ //for (const auto& item : other_profiles)
+ for (int i = 0; i < other_profiles.size(); ++i) {
+ list->append(std::string(other_profiles[i].name) + (other_profiles[i].omnipresent ? "" : " *"), &const_cast(other_profiles[i].name.get()));
+ list->Check(i + prusa_profiles.size(), other_profiles[i].checked);
+ }
}
void PageMaterials::select_material(int i)
diff --git a/src/slic3r/GUI/ConfigWizard_private.hpp b/src/slic3r/GUI/ConfigWizard_private.hpp
index 6446dd769..e3f4f088a 100644
--- a/src/slic3r/GUI/ConfigWizard_private.hpp
+++ b/src/slic3r/GUI/ConfigWizard_private.hpp
@@ -315,6 +315,14 @@ template struct DataList : public T
typedef DataList StringList;
typedef DataList PresetList;
+struct ProfilePrintData
+{
+ std::reference_wrapper name;
+ bool omnipresent;
+ bool checked;
+ ProfilePrintData(const std::string& n, bool o, bool c) : name(n), omnipresent(o), checked(c) {}
+};
+
struct PageMaterials: ConfigWizardPage
{
Materials *materials;
@@ -345,7 +353,7 @@ struct PageMaterials: ConfigWizardPage
void clear_compatible_printers_label();
void sort_list_data(StringList* list, bool add_All_item, bool material_type_ordering);
- void sort_list_data(PresetList* list, const std::vector, bool>>& data);
+ void sort_list_data(PresetList* list, const std::vector& data);
void on_paint();
void on_mouse_move_on_profiles(wxMouseEvent& evt);
diff --git a/src/slic3r/GUI/DoubleSlider.cpp b/src/slic3r/GUI/DoubleSlider.cpp
index 3626d59f6..70a93d35f 100644
--- a/src/slic3r/GUI/DoubleSlider.cpp
+++ b/src/slic3r/GUI/DoubleSlider.cpp
@@ -12,6 +12,9 @@
#include "I18N.hpp"
#include "ExtruderSequenceDialog.hpp"
#include "libslic3r/Print.hpp"
+#if ENABLE_GCODE_VIEWER
+#include "libslic3r/AppConfig.hpp"
+#endif // ENABLE_GCODE_VIEWER
#include
#include
@@ -45,17 +48,18 @@ static std::string gcode(Type type)
{
const PrintConfig& config = GUI::wxGetApp().plater()->fff_print().config();
switch (type) {
- case ColorChange:
- return config.color_change_gcode;
- case PausePrint:
- return config.pause_print_gcode;
- case Template:
- return config.template_custom_gcode;
- default:
- return "";
+ case ColorChange: return config.color_change_gcode;
+ case PausePrint: return config.pause_print_gcode;
+ case Template: return config.template_custom_gcode;
+ default: return "";
}
}
+static bool is_lower_thumb_editable()
+{
+ return Slic3r::GUI::get_app_config()->get("seq_top_layer_only") == "0";
+}
+
Control::Control( wxWindow *parent,
wxWindowID id,
int lowerValue,
@@ -963,7 +967,7 @@ int Control::get_value_from_position(const wxCoord x, const wxCoord y)
bool Control::detect_selected_slider(const wxPoint& pt)
{
if (is_point_in_rect(pt, m_rect_lower_thumb))
- m_selection = m_lower_editable ? ssLower : ssUndef;
+ m_selection = is_lower_thumb_editable() ? ssLower : ssUndef;
else if(is_point_in_rect(pt, m_rect_higher_thumb))
m_selection = ssHigher;
else
@@ -1419,7 +1423,7 @@ void Control::OnWheel(wxMouseEvent& event)
ssLower : ssHigher;
}
- if (m_selection == ssLower && !m_lower_editable)
+ if (m_selection == ssLower && !is_lower_thumb_editable())
m_selection = ssUndef;
#if ENABLE_GCODE_VIEWER
@@ -1472,7 +1476,7 @@ void Control::OnKeyDown(wxKeyEvent &event)
else if (key == WXK_UP || key == WXK_DOWN) {
if (key == WXK_UP)
m_selection = ssHigher;
- else if (key == WXK_DOWN && m_lower_editable)
+ else if (key == WXK_DOWN && is_lower_thumb_editable())
m_selection = ssLower;
Refresh();
}
@@ -1487,7 +1491,7 @@ void Control::OnKeyDown(wxKeyEvent &event)
if (key == WXK_LEFT || key == WXK_RIGHT) {
if (key == WXK_LEFT)
m_selection = ssHigher;
- else if (key == WXK_RIGHT && m_lower_editable)
+ else if (key == WXK_RIGHT && is_lower_thumb_editable())
m_selection = ssLower;
Refresh();
}
@@ -2006,13 +2010,11 @@ void Control::move_current_thumb_to_pos(wxPoint pos)
const int mouse_val = tick_val >= 0 && m_draw_mode == dmRegular ? tick_val :
get_value_from_position(pos);
if (mouse_val >= 0) {
- // if (abs(mouse_val - m_lower_value) < abs(mouse_val - m_higher_value)) {
- // if (mouse_val <= m_lower_value) {
if (m_selection == ssLower) {
SetLowerValue(mouse_val);
correct_lower_value();
}
- else if (m_selection == ssHigher) {
+ else { // even m_selection is ssUndef, upper thumb should be selected
SetHigherValue(mouse_val);
correct_higher_value();
}
@@ -2099,7 +2101,7 @@ void Control::jump_to_print_z()
void Control::post_ticks_changed_event(Type type /*= Custom*/)
{
- m_force_mode_apply = type != ToolChange;
+// m_force_mode_apply = type != ToolChange; // It looks like this condition is no needed now. Leave it for the testing
wxPostEvent(this->GetParent(), wxCommandEvent(wxCUSTOMEVT_TICKSCHANGED));
}
diff --git a/src/slic3r/GUI/DoubleSlider.hpp b/src/slic3r/GUI/DoubleSlider.hpp
index 845e97989..899e7a58d 100644
--- a/src/slic3r/GUI/DoubleSlider.hpp
+++ b/src/slic3r/GUI/DoubleSlider.hpp
@@ -228,7 +228,6 @@ public:
void SetModeAndOnlyExtruder(const bool is_one_extruder_printed_model, const int only_extruder);
void SetExtruderColors(const std::vector& extruder_colors);
- void set_lower_editable(bool editable) { m_lower_editable = editable; }
void set_render_as_disabled(bool value) { m_render_as_disabled = value; }
bool is_rendering_as_disabled() const { return m_render_as_disabled; }
@@ -340,7 +339,6 @@ private:
int m_lower_value;
int m_higher_value;
- bool m_lower_editable{ true };
bool m_render_as_disabled{ false };
ScalableBitmap m_bmp_thumb_higher;
diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp
index 55193fde8..87a404994 100644
--- a/src/slic3r/GUI/GCodeViewer.cpp
+++ b/src/slic3r/GUI/GCodeViewer.cpp
@@ -2328,6 +2328,7 @@ void GCodeViewer::render_legend() const
m_extrusions.role_visibility_flags = visible ? m_extrusions.role_visibility_flags & ~(1 << role) : m_extrusions.role_visibility_flags | (1 << role);
// update buffers' render paths
refresh_render_paths(false, false);
+ wxGetApp().plater()->update_preview_moves_slider();
wxGetApp().plater()->get_current_canvas3D()->set_as_dirty();
wxGetApp().plater()->update_preview_bottom_toolbar();
}
@@ -2600,7 +2601,7 @@ void GCodeViewer::render_legend() const
// items
add_option(EMoveType::Retract, EOptionsColors::Retractions, _u8L("Retractions"));
- add_option(EMoveType::Unretract, EOptionsColors::Unretractions, _u8L("Unretractions"));
+ add_option(EMoveType::Unretract, EOptionsColors::Unretractions, _u8L("Deretractions"));
add_option(EMoveType::Tool_change, EOptionsColors::ToolChanges, _u8L("Tool changes"));
add_option(EMoveType::Color_change, EOptionsColors::ColorChanges, _u8L("Color changes"));
add_option(EMoveType::Pause_Print, EOptionsColors::PausePrints, _u8L("Pause prints"));
diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp
index 44ea7539d..b66f10209 100644
--- a/src/slic3r/GUI/GLCanvas3D.cpp
+++ b/src/slic3r/GUI/GLCanvas3D.cpp
@@ -2812,8 +2812,7 @@ void GLCanvas3D::load_preview(const std::vector& str_tool_colors, c
void GLCanvas3D::bind_event_handlers()
{
- if (m_canvas != nullptr)
- {
+ if (m_canvas != nullptr) {
m_canvas->Bind(wxEVT_SIZE, &GLCanvas3D::on_size, this);
m_canvas->Bind(wxEVT_IDLE, &GLCanvas3D::on_idle, this);
m_canvas->Bind(wxEVT_CHAR, &GLCanvas3D::on_char, this);
@@ -2835,13 +2834,14 @@ void GLCanvas3D::bind_event_handlers()
m_canvas->Bind(wxEVT_RIGHT_DCLICK, &GLCanvas3D::on_mouse, this);
m_canvas->Bind(wxEVT_PAINT, &GLCanvas3D::on_paint, this);
m_canvas->Bind(wxEVT_SET_FOCUS, &GLCanvas3D::on_set_focus, this);
+
+ m_event_handlers_bound = true;
}
}
void GLCanvas3D::unbind_event_handlers()
{
- if (m_canvas != nullptr)
- {
+ if (m_canvas != nullptr && m_event_handlers_bound) {
m_canvas->Unbind(wxEVT_SIZE, &GLCanvas3D::on_size, this);
m_canvas->Unbind(wxEVT_IDLE, &GLCanvas3D::on_idle, this);
m_canvas->Unbind(wxEVT_CHAR, &GLCanvas3D::on_char, this);
@@ -2863,6 +2863,8 @@ void GLCanvas3D::unbind_event_handlers()
m_canvas->Unbind(wxEVT_RIGHT_DCLICK, &GLCanvas3D::on_mouse, this);
m_canvas->Unbind(wxEVT_PAINT, &GLCanvas3D::on_paint, this);
m_canvas->Unbind(wxEVT_SET_FOCUS, &GLCanvas3D::on_set_focus, this);
+
+ m_event_handlers_bound = false;
}
}
@@ -2888,8 +2890,7 @@ void GLCanvas3D::on_idle(wxIdleEvent& evt)
_refresh_if_shown_on_screen();
- if (m_extra_frame_requested || mouse3d_controller_applied)
- {
+ if (m_extra_frame_requested || mouse3d_controller_applied) {
m_dirty = true;
m_extra_frame_requested = false;
evt.RequestMore();
@@ -2941,7 +2942,7 @@ void GLCanvas3D::on_char(wxKeyEvent& evt)
post_event(SimpleEvent(EVT_GLTOOLBAR_COPY));
break;
-#ifdef __linux__
+#if defined(__linux__) || defined(__APPLE__)
case WXK_CONTROL_M:
{
Mouse3DController& controller = wxGetApp().plater()->get_mouse3d_controller();
@@ -3512,40 +3513,35 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
#endif /* SLIC3R_DEBUG_MOUSE_EVENTS */
}
- if (m_main_toolbar.on_mouse(evt, *this))
- {
+ if (m_main_toolbar.on_mouse(evt, *this)) {
if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp())
mouse_up_cleanup();
m_mouse.set_start_position_3D_as_invalid();
return;
}
- if (m_undoredo_toolbar.on_mouse(evt, *this))
- {
+ if (m_undoredo_toolbar.on_mouse(evt, *this)) {
if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp())
mouse_up_cleanup();
m_mouse.set_start_position_3D_as_invalid();
return;
}
- if (wxGetApp().plater()->get_collapse_toolbar().on_mouse(evt, *this))
- {
+ if (wxGetApp().plater()->get_collapse_toolbar().on_mouse(evt, *this)) {
if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp())
mouse_up_cleanup();
m_mouse.set_start_position_3D_as_invalid();
return;
}
- if (wxGetApp().plater()->get_view_toolbar().on_mouse(evt, *this))
- {
+ if (wxGetApp().plater()->get_view_toolbar().on_mouse(evt, *this)) {
if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp())
mouse_up_cleanup();
m_mouse.set_start_position_3D_as_invalid();
return;
}
- if (m_gizmos.on_mouse(evt))
- {
+ if (m_gizmos.on_mouse(evt)) {
if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp())
mouse_up_cleanup();
@@ -3554,12 +3550,13 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
return;
}
+ bool any_gizmo_active = m_gizmos.get_current() != nullptr;
+
int selected_object_idx = m_selection.get_object_idx();
int layer_editing_object_idx = is_layers_editing_enabled() ? selected_object_idx : -1;
m_layers_editing.select_object(*m_model, layer_editing_object_idx);
- if (m_mouse.drag.move_requires_threshold && m_mouse.is_move_start_threshold_position_2D_defined() && m_mouse.is_move_threshold_met(pos))
- {
+ if (m_mouse.drag.move_requires_threshold && m_mouse.is_move_start_threshold_position_2D_defined() && m_mouse.is_move_threshold_met(pos)) {
m_mouse.drag.move_requires_threshold = false;
m_mouse.set_move_start_threshold_position_2D_as_invalid();
}
@@ -3568,8 +3565,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
// Grab keyboard focus on any mouse click event.
m_canvas->SetFocus();
- if (evt.Entering())
- {
+ if (evt.Entering()) {
//#if defined(__WXMSW__) || defined(__linux__)
// // On Windows and Linux needs focus in order to catch key events
// Set focus in order to remove it from sidebar fields
@@ -3594,49 +3590,41 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
m_mouse.set_start_position_2D_as_invalid();
//#endif
}
- else if (evt.Leaving())
- {
+ else if (evt.Leaving()) {
_deactivate_undo_redo_toolbar_items();
// to remove hover on objects when the mouse goes out of this canvas
m_mouse.position = Vec2d(-1.0, -1.0);
m_dirty = true;
}
- else if (evt.LeftDown() || evt.RightDown() || evt.MiddleDown())
- {
+ else if (evt.LeftDown() || evt.RightDown() || evt.MiddleDown()) {
if (_deactivate_undo_redo_toolbar_items() || _deactivate_search_toolbar_item())
return;
// If user pressed left or right button we first check whether this happened
// on a volume or not.
m_layers_editing.state = LayersEditing::Unknown;
- if ((layer_editing_object_idx != -1) && m_layers_editing.bar_rect_contains(*this, pos(0), pos(1)))
- {
+ if (layer_editing_object_idx != -1 && m_layers_editing.bar_rect_contains(*this, pos(0), pos(1))) {
// A volume is selected and the mouse is inside the layer thickness bar.
// Start editing the layer height.
m_layers_editing.state = LayersEditing::Editing;
_perform_layer_editing_action(&evt);
}
- else if (evt.LeftDown() && (evt.ShiftDown() || evt.AltDown()) && m_picking_enabled)
- {
+ else if (evt.LeftDown() && (evt.ShiftDown() || evt.AltDown()) && m_picking_enabled) {
if (m_gizmos.get_current_type() != GLGizmosManager::SlaSupports
&& m_gizmos.get_current_type() != GLGizmosManager::FdmSupports
- && m_gizmos.get_current_type() != GLGizmosManager::Seam)
- {
+ && m_gizmos.get_current_type() != GLGizmosManager::Seam) {
m_rectangle_selection.start_dragging(m_mouse.position, evt.ShiftDown() ? GLSelectionRectangle::Select : GLSelectionRectangle::Deselect);
m_dirty = true;
}
}
- else
- {
+ else {
// Select volume in this 3D canvas.
- // Don't deselect a volume if layer editing is enabled. We want the object to stay selected
+ // Don't deselect a volume if layer editing is enabled or any gizmo is active. We want the object to stay selected
// during the scene manipulation.
- if (m_picking_enabled && (!m_hover_volume_idxs.empty() || !is_layers_editing_enabled()))
- {
- if (evt.LeftDown() && !m_hover_volume_idxs.empty())
- {
+ if (m_picking_enabled && (!any_gizmo_active || !evt.CmdDown()) && (!m_hover_volume_idxs.empty() || !is_layers_editing_enabled())) {
+ if (evt.LeftDown() && !m_hover_volume_idxs.empty()) {
int volume_idx = get_first_hover_volume_idx();
bool already_selected = m_selection.contains_volume(volume_idx);
bool ctrl_down = evt.CmdDown();
@@ -3645,8 +3633,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
if (already_selected && ctrl_down)
m_selection.remove(volume_idx);
- else
- {
+ else {
m_selection.add(volume_idx, !ctrl_down, true);
m_mouse.drag.move_requires_threshold = !already_selected;
if (already_selected)
@@ -3656,8 +3643,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
}
// propagate event through callback
- if (curr_idxs != m_selection.get_volume_idxs())
- {
+ if (curr_idxs != m_selection.get_volume_idxs()) {
if (m_selection.is_empty())
m_gizmos.reset_all_states();
else
@@ -3670,16 +3656,13 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
}
}
- if (!m_hover_volume_idxs.empty())
- {
- if (evt.LeftDown() && m_moving_enabled && (m_mouse.drag.move_volume_idx == -1))
- {
+ if (!m_hover_volume_idxs.empty()) {
+ if (evt.LeftDown() && m_moving_enabled && m_mouse.drag.move_volume_idx == -1) {
// Only accept the initial position, if it is inside the volume bounding box.
int volume_idx = get_first_hover_volume_idx();
BoundingBoxf3 volume_bbox = m_volumes.volumes[volume_idx]->transformed_bounding_box();
volume_bbox.offset(1.0);
- if (volume_bbox.contains(m_mouse.scene_position))
- {
+ if ((!any_gizmo_active || !evt.CmdDown()) && volume_bbox.contains(m_mouse.scene_position)) {
m_volumes.volumes[volume_idx]->hover = GLVolume::HS_None;
// The dragging operation is initiated.
m_mouse.drag.move_volume_idx = volume_idx;
@@ -3691,18 +3674,14 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
}
}
}
- else if (evt.Dragging() && evt.LeftIsDown() && (m_layers_editing.state == LayersEditing::Unknown) && (m_mouse.drag.move_volume_idx != -1))
- {
- if (!m_mouse.drag.move_requires_threshold)
- {
+ else if (evt.Dragging() && evt.LeftIsDown() && m_layers_editing.state == LayersEditing::Unknown && m_mouse.drag.move_volume_idx != -1) {
+ if (!m_mouse.drag.move_requires_threshold) {
m_mouse.dragging = true;
Vec3d cur_pos = m_mouse.drag.start_position_3D;
// we do not want to translate objects if the user just clicked on an object while pressing shift to remove it from the selection and then drag
- if (m_selection.contains_volume(get_first_hover_volume_idx()))
- {
+ if (m_selection.contains_volume(get_first_hover_volume_idx())) {
const Camera& camera = wxGetApp().plater()->get_camera();
- if (std::abs(camera.get_dir_forward()(2)) < EPSILON)
- {
+ if (std::abs(camera.get_dir_forward()(2)) < EPSILON) {
// side view -> move selected volumes orthogonally to camera view direction
Linef3 ray = mouse_ray(pos);
Vec3d dir = ray.unit_vector();
@@ -3724,8 +3703,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
// apply offset
cur_pos = m_mouse.drag.start_position_3D + projection_x * camera_right + projection_z * camera_up;
}
- else
- {
+ else {
// Generic view
// Get new position at the same Z of the initial click point.
float z0 = 0.0f;
@@ -3739,35 +3717,28 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
m_dirty = true;
}
}
- else if (evt.Dragging() && evt.LeftIsDown() && m_picking_enabled && m_rectangle_selection.is_dragging())
- {
+ else if (evt.Dragging() && evt.LeftIsDown() && m_picking_enabled && m_rectangle_selection.is_dragging()) {
m_rectangle_selection.dragging(pos.cast());
m_dirty = true;
}
- else if (evt.Dragging())
- {
+ else if (evt.Dragging()) {
m_mouse.dragging = true;
- if ((m_layers_editing.state != LayersEditing::Unknown) && (layer_editing_object_idx != -1))
- {
- if (m_layers_editing.state == LayersEditing::Editing)
- {
+ if (m_layers_editing.state != LayersEditing::Unknown && layer_editing_object_idx != -1) {
+ if (m_layers_editing.state == LayersEditing::Editing) {
_perform_layer_editing_action(&evt);
m_mouse.position = pos.cast();
}
}
// do not process the dragging if the left mouse was set down in another canvas
- else if (evt.LeftIsDown())
- {
+ else if (evt.LeftIsDown()) {
// if dragging over blank area with left button, rotate
- if (m_hover_volume_idxs.empty() && m_mouse.is_start_position_3D_defined())
- {
+ if ((any_gizmo_active || m_hover_volume_idxs.empty()) && m_mouse.is_start_position_3D_defined()) {
const Vec3d rot = (Vec3d(pos.x(), pos.y(), 0.) - m_mouse.drag.start_position_3D) * (PI * TRACKBALLSIZE / 180.);
if (wxGetApp().app_config->get("use_free_camera") == "1")
// Virtual track ball (similar to the 3DConnexion mouse).
wxGetApp().plater()->get_camera().rotate_local_around_target(Vec3d(rot.y(), rot.x(), 0.));
- else
- {
+ else {
// Forces camera right vector to be parallel to XY plane in case it has been misaligned using the 3D mouse free rotation.
// It is cheaper to call this function right away instead of testing wxGetApp().plater()->get_mouse3d_controller().connected(),
// which checks an atomics (flushes CPU caches).
@@ -3781,11 +3752,9 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
}
m_mouse.drag.start_position_3D = Vec3d((double)pos(0), (double)pos(1), 0.0);
}
- else if (evt.MiddleIsDown() || evt.RightIsDown())
- {
+ else if (evt.MiddleIsDown() || evt.RightIsDown()) {
// If dragging over blank area with right button, pan.
- if (m_mouse.is_start_position_2D_defined())
- {
+ if (m_mouse.is_start_position_2D_defined()) {
// get point in model space at Z = 0
float z = 0.0f;
const Vec3d& cur_pos = _mouse_to_3d(pos, &z);
@@ -3805,43 +3774,36 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
m_mouse.drag.start_position_2D = pos;
}
}
- else if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp())
- {
- if (m_layers_editing.state != LayersEditing::Unknown)
- {
+ else if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp()) {
+ if (m_layers_editing.state != LayersEditing::Unknown) {
m_layers_editing.state = LayersEditing::Unknown;
_stop_timer();
m_layers_editing.accept_changes(*this);
}
- else if ((m_mouse.drag.move_volume_idx != -1) && m_mouse.dragging)
- {
+ else if (m_mouse.drag.move_volume_idx != -1 && m_mouse.dragging) {
do_move(L("Move Object"));
wxGetApp().obj_manipul()->set_dirty();
// Let the plater know that the dragging finished, so a delayed refresh
// of the scene with the background processing data should be performed.
post_event(SimpleEvent(EVT_GLCANVAS_MOUSE_DRAGGING_FINISHED));
}
- else if (evt.LeftUp() && m_picking_enabled && m_rectangle_selection.is_dragging())
- {
+ else if (evt.LeftUp() && m_picking_enabled && m_rectangle_selection.is_dragging()) {
if (evt.ShiftDown() || evt.AltDown())
_update_selection_from_hover();
m_rectangle_selection.stop_dragging();
}
- else if (evt.LeftUp() && !m_mouse.ignore_left_up && !m_mouse.dragging && m_hover_volume_idxs.empty() && !is_layers_editing_enabled())
- {
+ else if (evt.LeftUp() && !m_mouse.ignore_left_up && !m_mouse.dragging && m_hover_volume_idxs.empty() && !is_layers_editing_enabled()) {
// deselect and propagate event through callback
- if (!evt.ShiftDown() && m_picking_enabled)
+ if (!evt.ShiftDown() && (!any_gizmo_active || !evt.CmdDown()) && m_picking_enabled)
deselect_all();
}
- else if (evt.RightUp())
- {
+ else if (evt.RightUp()) {
m_mouse.position = pos.cast();
// forces a frame render to ensure that m_hover_volume_idxs is updated even when the user right clicks while
// the context menu is already shown
render();
- if (!m_hover_volume_idxs.empty())
- {
+ if (!m_hover_volume_idxs.empty()) {
// if right clicking on volume, propagate event through callback (shows context menu)
int volume_idx = get_first_hover_volume_idx();
if (!m_volumes.volumes[volume_idx]->is_wipe_tower // no context menu for the wipe tower
@@ -3873,8 +3835,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
mouse_up_cleanup();
}
- else if (evt.Moving())
- {
+ else if (evt.Moving()) {
m_mouse.position = pos.cast();
// updates gizmos overlay
@@ -5222,8 +5183,7 @@ void GLCanvas3D::_refresh_if_shown_on_screen()
void GLCanvas3D::_picking_pass() const
{
- if (m_picking_enabled && !m_mouse.dragging && (m_mouse.position != Vec2d(DBL_MAX, DBL_MAX)))
- {
+ if (m_picking_enabled && !m_mouse.dragging && m_mouse.position != Vec2d(DBL_MAX, DBL_MAX)) {
m_hover_volume_idxs.clear();
// Render the object for picking.
@@ -5257,16 +5217,16 @@ void GLCanvas3D::_picking_pass() const
GLubyte color[4] = { 0, 0, 0, 0 };
const Size& cnv_size = get_canvas_size();
- bool inside = (0 <= m_mouse.position(0)) && (m_mouse.position(0) < cnv_size.get_width()) && (0 <= m_mouse.position(1)) && (m_mouse.position(1) < cnv_size.get_height());
- if (inside)
- {
+ bool inside = 0 <= m_mouse.position(0) && m_mouse.position(0) < cnv_size.get_width() && 0 <= m_mouse.position(1) && m_mouse.position(1) < cnv_size.get_height();
+ 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()))
- {
+ if (0 <= volume_id && volume_id < (int)m_volumes.volumes.size()) {
+ // do not add the volume id if any gizmo is active and CTRL is pressed
+ if (m_gizmos.get_current_type() == GLGizmosManager::EType::Undefined || !wxGetKeyState(WXK_CONTROL))
m_hover_volume_idxs.emplace_back(volume_id);
m_gizmos.set_hover_id(-1);
}
diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp
index de28a8fe3..07ee0ab28 100644
--- a/src/slic3r/GUI/GLCanvas3D.hpp
+++ b/src/slic3r/GUI/GLCanvas3D.hpp
@@ -474,6 +474,7 @@ private:
// when true renders an extra frame by not resetting m_dirty to false
// see request_extra_frame()
bool m_extra_frame_requested;
+ bool m_event_handlers_bound{ false };
mutable GLVolumeCollection m_volumes;
#if ENABLE_GCODE_VIEWER
diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
index 87921ad7e..706689a3d 100644
--- a/src/slic3r/GUI/GUI_App.cpp
+++ b/src/slic3r/GUI/GUI_App.cpp
@@ -1,5 +1,6 @@
#include "libslic3r/Technologies.hpp"
#include "GUI_App.hpp"
+#include "GUI_Init.hpp"
#include "GUI_ObjectList.hpp"
#include "GUI_ObjectManipulation.hpp"
#include "I18N.hpp"
@@ -24,7 +25,6 @@
#include
#include
#include
-#include
#include
#include
#include
@@ -71,7 +71,7 @@
#include "InstanceCheck.hpp"
#include "NotificationManager.hpp"
#include "UnsavedChangesDialog.hpp"
-#include "PresetComboBoxes.hpp"
+#include "SavePresetDialog.hpp"
#include "BitmapCache.hpp"
@@ -355,6 +355,63 @@ private:
}
};
+
+#ifdef __linux__
+bool static check_old_linux_datadir(const wxString& app_name) {
+ // If we are on Linux and the datadir does not exist yet, look into the old
+ // location where the datadir was before version 2.3. If we find it there,
+ // tell the user that he might wanna migrate to the new location.
+ // (https://github.com/prusa3d/PrusaSlicer/issues/2911)
+ // To be precise, the datadir should exist, it is created when single instance
+ // lock happens. Instead of checking for existence, check the contents.
+
+ namespace fs = boost::filesystem;
+
+ std::string new_path = Slic3r::data_dir();
+
+ wxString dir;
+ if (! wxGetEnv(wxS("XDG_CONFIG_HOME"), &dir) || dir.empty() )
+ dir = wxFileName::GetHomeDir() + wxS("/.config");
+ std::string default_path = (dir + "/" + app_name).ToUTF8().data();
+
+ if (new_path != default_path) {
+ // This happens when the user specifies a custom --datadir.
+ // Do not show anything in that case.
+ return true;
+ }
+
+ fs::path data_dir = fs::path(new_path);
+ if (! fs::is_directory(data_dir))
+ return true; // This should not happen.
+
+ int file_count = std::distance(fs::directory_iterator(data_dir), fs::directory_iterator());
+
+ if (file_count <= 1) { // just cache dir with an instance lock
+ std::string old_path = wxStandardPaths::Get().GetUserDataDir().ToUTF8().data();
+
+ if (fs::is_directory(old_path)) {
+ wxString msg = from_u8((boost::format(_u8L("Starting with %1% 2.3, configuration "
+ "directory on Linux has changed (according to XDG Base Directory Specification) to \n%2%.\n\n"
+ "This directory did not exist yet (maybe you run the new version for the first time).\nHowever, "
+ "an old %1% configuration directory was detected in \n%3%.\n\n"
+ "Consider moving the contents of the old directory to the new location in order to access "
+ "your profiles, etc.\nNote that if you decide to downgrade %1% in future, it will use the old "
+ "location again.\n\n"
+ "What do you want to do now?")) % SLIC3R_APP_NAME % new_path % old_path).str());
+ wxString caption = from_u8((boost::format(_u8L("%s - BREAKING CHANGE")) % SLIC3R_APP_NAME).str());
+ wxRichMessageDialog dlg(nullptr, msg, caption, wxYES_NO);
+ dlg.SetYesNoLabels(_L("Quit, I will move my data now"), _L("Start the application"));
+ if (dlg.ShowModal() != wxID_NO)
+ return false;
+ }
+ } else {
+ // If the new directory exists, be silent. The user likely already saw the message.
+ }
+ return true;
+}
+#endif
+
+
wxString file_wildcards(FileType file_type, const std::string &custom_extension)
{
static const std::string defaults[FT_SIZE] = {
@@ -545,15 +602,16 @@ static void generic_exception_handle()
}
}
-void GUI_App::AfterInitLoads::on_loads(GUI_App* gui)
+void GUI_App::post_init()
{
- if (!gui->initialized())
- return;
+ assert(initialized());
+ if (! this->initialized())
+ throw Slic3r::RuntimeError("Calling post_init() while not yet initialized");
#if ENABLE_GCODE_VIEWER
- if (m_start_as_gcodeviewer) {
- if (!m_input_files.empty())
- gui->plater()->load_gcode(wxString::FromUTF8(m_input_files[0].c_str()));
+ if (this->init_params->start_as_gcodeviewer) {
+ if (! this->init_params->input_files.empty())
+ this->plater()->load_gcode(wxString::FromUTF8(this->init_params->input_files[0].c_str()));
}
else {
#endif // ENABLE_GCODE_VIEWER_AS
@@ -563,22 +621,22 @@ void GUI_App::AfterInitLoads::on_loads(GUI_App* gui)
// We need to decide what to do about loading of separate presets (just print preset, just filament preset etc).
// As of now only the full configs are supported here.
if (!m_print_config.empty())
- gui->mainframe->load_config(m_print_config);
+ this->gui->mainframe->load_config(m_print_config);
#endif
- if (!m_load_configs.empty())
+ if (! this->init_params->load_configs.empty())
// Load the last config to give it a name at the UI. The name of the preset may be later
// changed by loading an AMF or 3MF.
//FIXME this is not strictly correct, as one may pass a print/filament/printer profile here instead of a full config.
- gui->mainframe->load_config_file(m_load_configs.back());
+ this->mainframe->load_config_file(this->init_params->load_configs.back());
// If loading a 3MF file, the config is loaded from the last one.
- if (!m_input_files.empty())
- gui->plater()->load_files(m_input_files, true, true);
- if (!m_extra_config.empty())
- gui->mainframe->load_config(m_extra_config);
+ if (! this->init_params->input_files.empty())
+ this->plater()->load_files(this->init_params->input_files, true, true);
+ if (! this->init_params->extra_config.empty())
+ this->mainframe->load_config(this->init_params->extra_config);
#if ENABLE_GCODE_VIEWER
}
#endif // ENABLE_GCODE_VIEWER
- }
+}
IMPLEMENT_APP(GUI_App)
@@ -640,8 +698,18 @@ void GUI_App::init_app_config()
// Windows : "C:\Users\username\AppData\Roaming\Slic3r" or "C:\Documents and Settings\username\Application Data\Slic3r"
// Mac : "~/Library/Application Support/Slic3r"
- if (data_dir().empty())
- set_data_dir(wxStandardPaths::Get().GetUserDataDir().ToUTF8().data());
+ if (data_dir().empty()) {
+ #ifndef __linux__
+ set_data_dir(wxStandardPaths::Get().GetUserDataDir().ToUTF8().data());
+ #else
+ // Since version 2.3, config dir on Linux is in ${XDG_CONFIG_HOME}.
+ // https://github.com/prusa3d/PrusaSlicer/issues/2911
+ wxString dir;
+ if (! wxGetEnv(wxS("XDG_CONFIG_HOME"), &dir) || dir.empty() )
+ dir = wxFileName::GetHomeDir() + wxS("/.config");
+ set_data_dir((dir + "/" + GetAppName()).ToUTF8().data());
+ #endif
+ }
if (!app_config)
#if ENABLE_GCODE_VIEWER
@@ -654,7 +722,6 @@ void GUI_App::init_app_config()
m_app_conf_exists = app_config->exists();
if (m_app_conf_exists) {
std::string error = app_config->load();
-#if ENABLE_GCODE_VIEWER
if (!error.empty()) {
// Error while parsing config file. We'll customize the error message and rethrow to be displayed.
if (is_editor()) {
@@ -670,14 +737,6 @@ void GUI_App::init_app_config()
"\n\n" + app_config->config_path() + "\n\n" + error);
}
}
-#else
- if (!error.empty())
- // Error while parsing config file. We'll customize the error message and rethrow to be displayed.
- throw Slic3r::RuntimeError(
- _u8L("Error parsing PrusaSlicer config file, it is probably corrupted. "
- "Try to manually delete the file to recover from the error. Your user profiles will not be affected.") +
- "\n\n" + AppConfig::config_path() + "\n\n" + error);
-#endif // ENABLE_GCODE_VIEWER
}
}
@@ -704,6 +763,13 @@ bool GUI_App::on_init_inner()
wxCHECK_MSG(wxDirExists(resources_dir), false,
wxString::Format("Resources path does not exist or is not a directory: %s", resources_dir));
+#ifdef __linux__
+ if (! check_old_linux_datadir(GetAppName())) {
+ std::cerr << "Quitting, user chose to move his data to new location." << std::endl;
+ return false;
+ }
+#endif
+
// Enable this to get the default Win32 COMCTRL32 behavior of static boxes.
// wxSystemOptions::SetOption("msw.staticbox.optimized-paint", 0);
// Enable this to disable Windows Vista themes for all wxNotebooks. The themes seem to lead to terrible
@@ -863,7 +929,7 @@ bool GUI_App::on_init_inner()
#ifdef WIN32
this->mainframe->register_win32_callbacks();
#endif
- this->after_init_loads.on_loads(this);
+ this->post_init();
}
// Preset updating & Configwizard are done after the above initializations,
@@ -1259,9 +1325,9 @@ void fatal_error(wxWindow* parent)
// Called after the Preferences dialog is closed and the program settings are saved.
// Update the UI based on the current preferences.
-void GUI_App::update_ui_from_settings()
+void GUI_App::update_ui_from_settings(bool apply_free_camera_correction)
{
- mainframe->update_ui_from_settings();
+ mainframe->update_ui_from_settings(apply_free_camera_correction);
}
void GUI_App::persist_window_geometry(wxTopLevelWindow *window, bool default_maximized)
diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp
index 310358778..22622cc1e 100644
--- a/src/slic3r/GUI/GUI_App.hpp
+++ b/src/slic3r/GUI/GUI_App.hpp
@@ -24,6 +24,7 @@ class wxNotebook;
struct wxLanguageInfo;
namespace Slic3r {
+
class AppConfig;
class PresetBundle;
class PresetUpdater;
@@ -32,6 +33,7 @@ class PrintHostJobQueue;
class Model;
namespace GUI{
+
class RemovableDriveManager;
class OtherInstanceMessageHandler;
class MainFrame;
@@ -41,6 +43,7 @@ class ObjectSettings;
class ObjectList;
class ObjectLayers;
class Plater;
+struct GUI_InitParams;
@@ -142,37 +145,6 @@ private:
std::string m_instance_hash_string;
size_t m_instance_hash_int;
- // parameters needed for the after OnInit() loads
- struct AfterInitLoads
- {
- std::vector m_load_configs;
- DynamicPrintConfig m_extra_config;
- std::vector m_input_files;
-#if ENABLE_GCODE_VIEWER
- bool m_start_as_gcodeviewer;
-#endif // ENABLE_GCODE_VIEWER
-
- void set_params(
- const std::vector& load_configs,
- const DynamicPrintConfig& extra_config,
-#if ENABLE_GCODE_VIEWER
- const std::vector& input_files,
- bool start_as_gcodeviewer
-#else
- const std::vector& input_files
-#endif // ENABLE_GCODE_VIEWER
- ) {
- m_load_configs = load_configs;
- m_extra_config = extra_config;
- m_input_files = input_files;
-#if ENABLE_GCODE_VIEWER
- m_start_as_gcodeviewer = start_as_gcodeviewer;
-#endif // ENABLE_GCODE_VIEWER
- }
-
- void on_loads(GUI_App* gui);
- };
-
public:
bool OnInit() override;
bool initialized() const { return m_initialized; }
@@ -191,6 +163,10 @@ public:
bool is_recreating_gui() const { return m_is_recreating_gui; }
#endif // ENABLE_GCODE_VIEWER
+ // To be called after the GUI is fully built up.
+ // Process command line parameters cached in this->init_params,
+ // load configs, STLs etc.
+ void post_init();
static std::string get_gl_info(bool format_as_html, bool extensions);
wxGLContext* init_glcontext(wxGLCanvas& canvas);
bool init_opengl();
@@ -241,7 +217,7 @@ public:
static bool catch_error(std::function cb, const std::string& err);
void persist_window_geometry(wxTopLevelWindow *window, bool default_maximized = false);
- void update_ui_from_settings();
+ void update_ui_from_settings(bool apply_free_camera_correction = true);
bool switch_language();
bool load_language(wxString language, bool initial);
@@ -278,12 +254,14 @@ public:
Model& model();
+ // Parameters extracted from the command line to be passed to GUI after initialization.
+ const GUI_InitParams* init_params { nullptr };
+
AppConfig* app_config{ nullptr };
PresetBundle* preset_bundle{ nullptr };
PresetUpdater* preset_updater{ nullptr };
MainFrame* mainframe{ nullptr };
Plater* plater_{ nullptr };
- AfterInitLoads after_init_loads;
std::mutex not_modal_dialog_mutex;
wxDialog* not_modal_dialog = nullptr;
diff --git a/src/slic3r/GUI/GUI_Init.cpp b/src/slic3r/GUI/GUI_Init.cpp
new file mode 100644
index 000000000..d1c17bc89
--- /dev/null
+++ b/src/slic3r/GUI/GUI_Init.cpp
@@ -0,0 +1,96 @@
+#include "GUI_Init.hpp"
+
+#include "libslic3r/AppConfig.hpp"
+
+#include "slic3r/GUI/GUI.hpp"
+#include "slic3r/GUI/GUI_App.hpp"
+#include "slic3r/GUI/3DScene.hpp"
+#include "slic3r/GUI/InstanceCheck.hpp"
+#include "slic3r/GUI/format.hpp"
+#include "slic3r/GUI/MainFrame.hpp"
+#include "slic3r/GUI/Plater.hpp"
+
+// To show a message box if GUI initialization ends up with an exception thrown.
+#include
+
+#include
+#include
+
+namespace Slic3r {
+namespace GUI {
+
+int GUI_Run(GUI_InitParams ¶ms)
+{
+ try {
+#if ENABLE_GCODE_VIEWER
+ GUI::GUI_App* gui = new GUI::GUI_App(params.start_as_gcodeviewer ? GUI::GUI_App::EAppMode::GCodeViewer : GUI::GUI_App::EAppMode::Editor);
+ if (gui->get_app_mode() != GUI::GUI_App::EAppMode::GCodeViewer) {
+ // G-code viewer is currently not performing instance check, a new G-code viewer is started every time.
+ bool gui_single_instance_setting = gui->app_config->get("single_instance") == "1";
+ if (Slic3r::instance_check(params.argc, params.argv, gui_single_instance_setting)) {
+ //TODO: do we have delete gui and other stuff?
+ return -1;
+ }
+ }
+#else
+ GUI::GUI_App *gui = new GUI::GUI_App();
+#endif // ENABLE_GCODE_VIEWER
+
+// gui->autosave = m_config.opt_string("autosave");
+ GUI::GUI_App::SetInstance(gui);
+ gui->init_params = ¶ms;
+/*
+#if ENABLE_GCODE_VIEWER
+ gui->CallAfter([gui, this, &load_configs, params.start_as_gcodeviewer] {
+#else
+ gui->CallAfter([gui, this, &load_configs] {
+#endif // ENABLE_GCODE_VIEWER
+ if (!gui->initialized()) {
+ return;
+ }
+
+#if ENABLE_GCODE_VIEWER
+ if (params.start_as_gcodeviewer) {
+ if (!m_input_files.empty())
+ gui->plater()->load_gcode(wxString::FromUTF8(m_input_files[0].c_str()));
+ } else {
+#endif // ENABLE_GCODE_VIEWER_AS
+#if 0
+ // Load the cummulative config over the currently active profiles.
+ //FIXME if multiple configs are loaded, only the last one will have an effect.
+ // We need to decide what to do about loading of separate presets (just print preset, just filament preset etc).
+ // As of now only the full configs are supported here.
+ if (!m_print_config.empty())
+ gui->mainframe->load_config(m_print_config);
+#endif
+ if (!load_configs.empty())
+ // Load the last config to give it a name at the UI. The name of the preset may be later
+ // changed by loading an AMF or 3MF.
+ //FIXME this is not strictly correct, as one may pass a print/filament/printer profile here instead of a full config.
+ gui->mainframe->load_config_file(load_configs.back());
+ // If loading a 3MF file, the config is loaded from the last one.
+ if (!m_input_files.empty())
+ gui->plater()->load_files(m_input_files, true, true);
+ if (!m_extra_config.empty())
+ gui->mainframe->load_config(m_extra_config);
+#if ENABLE_GCODE_VIEWER
+ }
+#endif // ENABLE_GCODE_VIEWER
+ });
+*/
+ int result = wxEntry(params.argc, params.argv);
+ return result;
+ } catch (const Slic3r::Exception &ex) {
+ boost::nowide::cerr << ex.what() << std::endl;
+ wxMessageBox(boost::nowide::widen(ex.what()), _L("PrusaSlicer GUI initialization failed"), wxICON_STOP);
+ } catch (const std::exception &ex) {
+ boost::nowide::cerr << "PrusaSlicer GUI initialization failed: " << ex.what() << std::endl;
+ wxMessageBox(format_wxstr(_L("Fatal error, exception catched: %1%"), ex.what()), _L("PrusaSlicer GUI initialization failed"), wxICON_STOP);
+ }
+
+ // error
+ return 1;
+}
+
+}
+}
diff --git a/src/slic3r/GUI/GUI_Init.hpp b/src/slic3r/GUI/GUI_Init.hpp
new file mode 100644
index 000000000..c420c9554
--- /dev/null
+++ b/src/slic3r/GUI/GUI_Init.hpp
@@ -0,0 +1,27 @@
+#ifndef slic3r_GUI_Init_hpp_
+#define slic3r_GUI_Init_hpp_
+
+#include
+
+namespace Slic3r {
+
+namespace GUI {
+
+struct GUI_InitParams
+{
+ int argc;
+ char **argv;
+
+ std::vector load_configs;
+ DynamicPrintConfig extra_config;
+ std::vector input_files;
+
+ bool start_as_gcodeviewer;
+};
+
+int GUI_Run(GUI_InitParams ¶ms);
+
+} // namespace GUI
+} // namespace Slic3r
+
+#endif // slic3r_GUI_Init_hpp_
diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp
index b8695eac9..4cf2848d6 100644
--- a/src/slic3r/GUI/GUI_Preview.cpp
+++ b/src/slic3r/GUI/GUI_Preview.cpp
@@ -71,7 +71,6 @@ bool View3D::init(wxWindow* parent, Model* model, DynamicPrintConfig* config, Ba
m_canvas = new GLCanvas3D(m_canvas_widget);
m_canvas->set_context(wxGetApp().init_glcontext(*m_canvas_widget));
- m_canvas->bind_event_handlers();
m_canvas->allow_multisample(OpenGLManager::can_multisample());
// XXX: If have OpenGL
@@ -278,7 +277,6 @@ bool Preview::init(wxWindow* parent, Model* model)
m_canvas = new GLCanvas3D(m_canvas_widget);
m_canvas->set_context(wxGetApp().init_glcontext(*m_canvas_widget));
- m_canvas->bind_event_handlers();
m_canvas->allow_multisample(OpenGLManager::can_multisample());
m_canvas->set_config(m_config);
m_canvas->set_model(model);
@@ -368,7 +366,7 @@ bool Preview::init(wxWindow* parent, Model* model)
#else
m_checkbox_travel = new wxCheckBox(this, wxID_ANY, _(L("Travel")));
m_checkbox_retractions = new wxCheckBox(this, wxID_ANY, _(L(width_screen == tiny ? "Retr." : "Retractions")));
- m_checkbox_unretractions = new wxCheckBox(this, wxID_ANY, _(L(width_screen == tiny ? "Unre." : "Unretractions")));
+ m_checkbox_unretractions = new wxCheckBox(this, wxID_ANY, _(L(width_screen == tiny ? "Dere." : "Deretractions")));
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);
@@ -382,7 +380,6 @@ bool Preview::init(wxWindow* parent, Model* model)
right_sizer->Add(m_layers_slider_sizer, 1, wxEXPAND, 0);
m_moves_slider = new DoubleSlider::Control(m_bottom_toolbar_panel, wxID_ANY, 0, 0, 0, 100, wxDefaultPosition, wxSize(-1, 3 * GetTextExtent("m").y), wxSL_HORIZONTAL);
- m_moves_slider->set_lower_editable(get_app_config()->get("seq_top_layer_only") == "0");
m_moves_slider->SetDrawMode(DoubleSlider::dmSequentialGCodeView);
wxBoxSizer* bottom_toolbar_sizer = new wxBoxSizer(wxHORIZONTAL);
@@ -598,9 +595,6 @@ void Preview::refresh_print()
return;
load_print(true);
-#if ENABLE_GCODE_VIEWER
- m_moves_slider->set_lower_editable(get_app_config()->get("seq_top_layer_only") == "0");
-#endif // ENABLE_GCODE_VIEWER
}
void Preview::msw_rescale()
@@ -1314,17 +1308,13 @@ void Preview::load_print_as_fff(bool keep_z_range)
}
#if ENABLE_GCODE_VIEWER
- if (wxGetApp().is_editor() && !has_layers)
-#else
- if (! has_layers)
-#endif // ENABLE_GCODE_VIEWER
- {
-#if ENABLE_GCODE_VIEWER
+ if (wxGetApp().is_editor() && !has_layers) {
hide_layers_slider();
m_left_sizer->Hide(m_bottom_toolbar_panel);
m_left_sizer->Layout();
Refresh();
#else
+ if (! has_layers) {
reset_sliders(true);
m_canvas->reset_legend_texture();
#endif // ENABLE_GCODE_VIEWER
@@ -1332,8 +1322,7 @@ void Preview::load_print_as_fff(bool keep_z_range)
return;
}
- if (m_preferred_color_mode == "tool_or_feature")
- {
+ if (m_preferred_color_mode == "tool_or_feature") {
// It is left to Slic3r to decide whether the print shall be colored by the tool or by the feature.
// Color by feature if it is a single extruder print.
unsigned int number_extruders = (unsigned int)print->extruders().size();
@@ -1362,18 +1351,21 @@ void Preview::load_print_as_fff(bool keep_z_range)
std::vector color_print_values = {};
// set color print values, if it si selected "ColorPrint" view type
#if ENABLE_GCODE_VIEWER
- if (gcode_view_type == GCodeViewer::EViewType::ColorPrint)
+ if (gcode_view_type == GCodeViewer::EViewType::ColorPrint) {
#else
- if (m_gcode_preview_data->extrusion.view_type == GCodePreviewData::Extrusion::ColorPrint)
+ if (m_gcode_preview_data->extrusion.view_type == GCodePreviewData::Extrusion::ColorPrint) {
#endif // ENABLE_GCODE_VIEWER
- {
colors = wxGetApp().plater()->get_colors_for_color_print();
#if !ENABLE_GCODE_VIEWER
colors.push_back("#808080"); // gray color for pause print or custom G-code
#endif // !ENABLE_GCODE_VIEWER
- if (!gcode_preview_data_valid)
+ if (!gcode_preview_data_valid) {
color_print_values = wxGetApp().plater()->model().custom_gcode_per_print_z.gcodes;
+#if ENABLE_GCODE_VIEWER
+ colors.push_back("#808080"); // gray color for pause print or custom G-code
+#endif // ENABLE_GCODE_VIEWER
+ }
}
#if ENABLE_GCODE_VIEWER
else if (gcode_preview_data_valid || gcode_view_type == GCodeViewer::EViewType::Filament)
@@ -1408,8 +1400,7 @@ void Preview::load_print_as_fff(bool keep_z_range)
color_print_values.clear();
}
- if (IsShown())
- {
+ if (IsShown()) {
#if ENABLE_GCODE_VIEWER
std::vector zs;
#endif // ENABLE_GCODE_VIEWER
@@ -1563,7 +1554,7 @@ wxString Preview::get_option_type_string(OptionType type) const
{
case OptionType::Travel: { return _L("Travel"); }
case OptionType::Retractions: { return _L("Retractions"); }
- case OptionType::Unretractions: { return _L("Unretractions"); }
+ case OptionType::Unretractions: { return _L("Deretractions"); }
case OptionType::ToolChanges: { return _L("Tool changes"); }
case OptionType::ColorChanges: { return _L("Color changes"); }
case OptionType::PausePrints: { return _L("Pause prints"); }
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp
index f55fdb52e..10ab9932b 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp
@@ -30,7 +30,7 @@ void GLGizmoFdmSupports::on_shutdown()
std::string GLGizmoFdmSupports::on_get_name() const
{
- return (_(L("FDM Support Editing")) + " [L]").ToUTF8().data();
+ return (_L("Paint-on supports") + " [L]").ToUTF8().data();
}
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp
index c9e8b9d2b..fc5edff6d 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp
@@ -28,7 +28,6 @@ bool GLGizmoFlatten::on_init()
void GLGizmoFlatten::on_set_state()
{
-
}
CommonGizmosDataID GLGizmoFlatten::on_get_requirements() const
@@ -38,7 +37,7 @@ CommonGizmosDataID GLGizmoFlatten::on_get_requirements() const
std::string GLGizmoFlatten::on_get_name() const
{
- return (_(L("Place on face")) + " [F]").ToUTF8().data();
+ return (_L("Place on face") + " [F]").ToUTF8().data();
}
bool GLGizmoFlatten::on_is_activable() const
@@ -48,8 +47,7 @@ bool GLGizmoFlatten::on_is_activable() const
void GLGizmoFlatten::on_start_dragging()
{
- if (m_hover_id != -1)
- {
+ if (m_hover_id != -1) {
assert(m_planes_valid);
m_normal = m_planes[m_hover_id].normal;
m_starting_center = m_parent.get_selection().get_bounding_box().center();
@@ -65,16 +63,14 @@ void GLGizmoFlatten::on_render() const
glsafe(::glEnable(GL_DEPTH_TEST));
glsafe(::glEnable(GL_BLEND));
- if (selection.is_single_full_instance())
- {
+ if (selection.is_single_full_instance()) {
const Transform3d& m = selection.get_volume(*selection.get_volume_idxs().begin())->get_instance_transformation().get_matrix();
glsafe(::glPushMatrix());
glsafe(::glTranslatef(0.f, 0.f, selection.get_volume(*selection.get_volume_idxs().begin())->get_sla_shift_z()));
glsafe(::glMultMatrixd(m.data()));
if (this->is_plane_update_necessary())
const_cast(this)->update_planes();
- for (int i = 0; i < (int)m_planes.size(); ++i)
- {
+ for (int i = 0; i < (int)m_planes.size(); ++i) {
if (i == m_hover_id)
glsafe(::glColor4f(0.9f, 0.9f, 0.9f, 0.75f));
else
@@ -97,16 +93,14 @@ void GLGizmoFlatten::on_render_for_picking() const
glsafe(::glDisable(GL_DEPTH_TEST));
glsafe(::glDisable(GL_BLEND));
- if (selection.is_single_full_instance())
- {
+ if (selection.is_single_full_instance() && !wxGetKeyState(WXK_CONTROL)) {
const Transform3d& m = selection.get_volume(*selection.get_volume_idxs().begin())->get_instance_transformation().get_matrix();
glsafe(::glPushMatrix());
glsafe(::glTranslatef(0.f, 0.f, selection.get_volume(*selection.get_volume_idxs().begin())->get_sla_shift_z()));
glsafe(::glMultMatrixd(m.data()));
if (this->is_plane_update_necessary())
const_cast(this)->update_planes();
- for (int i = 0; i < (int)m_planes.size(); ++i)
- {
+ for (int i = 0; i < (int)m_planes.size(); ++i) {
glsafe(::glColor4fv(picking_color_component(i).data()));
m_planes[i].vbo.render();
}
@@ -129,8 +123,7 @@ void GLGizmoFlatten::update_planes()
{
const ModelObject* mo = m_c->selection_info()->model_object();
TriangleMesh ch;
- for (const ModelVolume* vol : mo->volumes)
- {
+ for (const ModelVolume* vol : mo->volumes) {
if (vol->type() != ModelVolumeType::MODEL_PART)
continue;
TriangleMesh vol_ch = vol->get_convex_hull();
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp
index 39cf49acc..e8a6f7bd3 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp
@@ -80,7 +80,7 @@ void GLGizmoPainterBase::render_triangles(const Selection& selection) const
glsafe(::glEnable(GL_POLYGON_OFFSET_FILL));
ScopeGuard offset_fill_guard([]() { glsafe(::glDisable(GL_POLYGON_OFFSET_FILL)); } );
- glsafe(::glPolygonOffset(-1.0, 1.0));
+ glsafe(::glPolygonOffset(-5.0, -5.0));
// Take care of the clipping plane. The normal of the clipping plane is
// saved with opposite sign than we need to pass to OpenGL (FIXME)
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp
index 6d74aba4c..0fe222aad 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp
@@ -43,7 +43,7 @@ bool GLGizmoSeam::on_init()
std::string GLGizmoSeam::on_get_name() const
{
- return (_(L("Seam Editing")) + " [P]").ToUTF8().data();
+ return (_L("Seam painting") + " [P]").ToUTF8().data();
}
diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp
index 54ae2de6e..739edec4c 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp
@@ -504,22 +504,22 @@ bool GLGizmosManager::on_mouse(wxMouseEvent& evt)
int selected_object_idx = selection.get_object_idx();
bool processed = false;
+ // when control is down we allow scene pan and rotation even when clicking over some object
+ bool control_down = evt.CmdDown();
+
// mouse anywhere
if (evt.Moving())
m_tooltip = update_hover_state(mouse_pos);
- else if (evt.LeftUp())
- {
- if (m_mouse_capture.left)
- {
+ else if (evt.LeftUp()) {
+ if (m_mouse_capture.left) {
processed = true;
m_mouse_capture.left = false;
}
- else if (is_dragging())
- {
+ else if (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;
+ 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;
}
@@ -538,41 +538,34 @@ bool GLGizmosManager::on_mouse(wxMouseEvent& evt)
// else
// return false;
}
- else if (evt.MiddleUp())
- {
- if (m_mouse_capture.middle)
- {
+ else if (evt.MiddleUp()) {
+ if (m_mouse_capture.middle) {
processed = true;
m_mouse_capture.middle = false;
}
else
return false;
}
- else if (evt.RightUp())
- {
- if (pending_right_up)
- {
+ else if (evt.RightUp()) {
+ if (pending_right_up) {
pending_right_up = false;
return true;
}
- if (m_mouse_capture.right)
- {
+ if (m_mouse_capture.right) {
processed = true;
m_mouse_capture.right = false;
}
// else
// return false;
}
- else if (evt.Dragging() && !is_dragging())
- {
+ else if (evt.Dragging() && !is_dragging()) {
if (m_mouse_capture.any())
// if the button down was done on this toolbar, prevent from dragging into the scene
processed = true;
// else
// return false;
}
- else if (evt.Dragging() && is_dragging())
- {
+ else if (evt.Dragging() && is_dragging()) {
if (!m_parent.get_wxglcanvas()->HasCapture())
m_parent.get_wxglcanvas()->CaptureMouse();
@@ -595,7 +588,7 @@ bool GLGizmosManager::on_mouse(wxMouseEvent& evt)
if (evt.AltDown())
transformation_type.set_independent();
selection.scale(get_scale(), transformation_type);
- if (evt.ControlDown())
+ if (control_down)
selection.translate(get_scale_offset(), true);
wxGetApp().obj_manipul()->set_dirty();
break;
@@ -618,15 +611,13 @@ bool GLGizmosManager::on_mouse(wxMouseEvent& evt)
processed = true;
}
- if (get_gizmo_idx_from_mouse(mouse_pos) == Undefined)
- {
+ if (get_gizmo_idx_from_mouse(mouse_pos) == Undefined) {
// mouse is outside the toolbar
m_tooltip = "";
- if (evt.LeftDown())
- {
- if ((m_current == SlaSupports || m_current == Hollow || m_current == FdmSupports ||m_current == Seam)
- && gizmo_event(SLAGizmoEventType::LeftDown, mouse_pos, evt.ShiftDown(), evt.AltDown(), evt.ControlDown()))
+ if (evt.LeftDown() && (!control_down || grabber_contains_mouse())) {
+ if ((m_current == SlaSupports || m_current == Hollow || m_current == FdmSupports || m_current == Seam)
+ && gizmo_event(SLAGizmoEventType::LeftDown, mouse_pos, evt.ShiftDown(), evt.AltDown()))
// 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()) {
@@ -644,71 +635,67 @@ bool GLGizmosManager::on_mouse(wxMouseEvent& evt)
processed = true;
}
}
- else if (evt.RightDown() && (selected_object_idx != -1) && (m_current == SlaSupports || m_current == Hollow)
- && gizmo_event(SLAGizmoEventType::RightDown, mouse_pos))
- {
+ else if (evt.RightDown() && selected_object_idx != -1 && (m_current == SlaSupports || m_current == Hollow)
+ && gizmo_event(SLAGizmoEventType::RightDown, mouse_pos)) {
// we need to set the following right up as processed to avoid showing the context menu if the user release the mouse over the object
pending_right_up = true;
// event was taken care of by the SlaSupports gizmo
processed = true;
}
- else if (evt.RightDown() && (selected_object_idx != -1) && (m_current == FdmSupports || m_current == Seam)
- && gizmo_event(SLAGizmoEventType::RightDown, mouse_pos))
- {
+ else if (evt.RightDown() && !control_down && selected_object_idx != -1 && (m_current == FdmSupports || m_current == Seam)
+ && gizmo_event(SLAGizmoEventType::RightDown, mouse_pos)) {
// event was taken care of by the FdmSupports / Seam gizmo
processed = true;
}
- else if (evt.Dragging() && (m_parent.get_move_volume_id() != -1)
+ else if (evt.Dragging() && m_parent.get_move_volume_id() != -1
&& (m_current == SlaSupports || m_current == Hollow || m_current == FdmSupports || m_current == Seam))
// don't allow dragging objects with the Sla gizmo on
processed = true;
- else if (evt.Dragging() && (m_current == SlaSupports || m_current == Hollow || m_current == FdmSupports || m_current == Seam )
- && gizmo_event(SLAGizmoEventType::Dragging, mouse_pos, evt.ShiftDown(), evt.AltDown(), evt.ControlDown()))
- {
+ else if (evt.Dragging() && !control_down && (m_current == SlaSupports || m_current == Hollow || m_current == FdmSupports || m_current == Seam)
+ && gizmo_event(SLAGizmoEventType::Dragging, mouse_pos, evt.ShiftDown(), evt.AltDown())) {
// the gizmo got the event and took some action, no need to do anything more here
m_parent.set_as_dirty();
processed = true;
}
- else if (evt.LeftUp() && (m_current == SlaSupports || m_current == Hollow || m_current == FdmSupports || m_current == Seam) && !m_parent.is_mouse_dragging())
- {
+ else if (evt.Dragging() && control_down && (evt.LeftIsDown() || evt.RightIsDown())) {
+ // CTRL has been pressed while already dragging -> stop current action
+ if (evt.LeftIsDown())
+ gizmo_event(SLAGizmoEventType::LeftUp, mouse_pos, evt.ShiftDown(), evt.AltDown(), true);
+ else if (evt.RightIsDown())
+ gizmo_event(SLAGizmoEventType::RightUp, mouse_pos, evt.ShiftDown(), evt.AltDown(), true);
+ }
+ else if (evt.LeftUp() && (m_current == SlaSupports || m_current == Hollow || m_current == FdmSupports || m_current == Seam) && !m_parent.is_mouse_dragging()) {
// in case SLA/FDM gizmo is selected, we just pass the LeftUp event and stop processing - neither
// object moving or selecting is suppressed in that case
- gizmo_event(SLAGizmoEventType::LeftUp, mouse_pos, evt.ShiftDown(), evt.AltDown(), evt.ControlDown());
+ gizmo_event(SLAGizmoEventType::LeftUp, mouse_pos, evt.ShiftDown(), evt.AltDown(), control_down);
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_gizmos[m_current]->get_hover_id() != -1) {
// to avoid to loose the selection when user clicks an the white faces of a different object while the Flatten gizmo is active
processed = true;
}
- else if (evt.RightUp() && (m_current == FdmSupports || m_current == Seam) && !m_parent.is_mouse_dragging())
- {
- gizmo_event(SLAGizmoEventType::RightUp, mouse_pos, evt.ShiftDown(), evt.AltDown(), evt.ControlDown());
+ else if (evt.RightUp() && (m_current == FdmSupports || m_current == Seam) && !m_parent.is_mouse_dragging()) {
+ gizmo_event(SLAGizmoEventType::RightUp, mouse_pos, evt.ShiftDown(), evt.AltDown(), control_down);
processed = true;
}
}
- else
- {
+ else {
// mouse inside toolbar
- if (evt.LeftDown() || evt.LeftDClick())
- {
+ if (evt.LeftDown() || evt.LeftDClick()) {
m_mouse_capture.left = true;
m_mouse_capture.parent = &m_parent;
processed = true;
- if (!selection.is_empty())
- {
+ if (!selection.is_empty()) {
update_on_off_state(mouse_pos);
update_data();
m_parent.set_as_dirty();
}
}
- else if (evt.MiddleDown())
- {
+ else if (evt.MiddleDown()) {
m_mouse_capture.middle = true;
m_mouse_capture.parent = &m_parent;
}
- else if (evt.RightDown())
- {
+ else if (evt.RightDown()) {
m_mouse_capture.right = true;
m_mouse_capture.parent = &m_parent;
}
diff --git a/src/slic3r/GUI/InstanceCheck.cpp b/src/slic3r/GUI/InstanceCheck.cpp
index b19d5c84d..4aaecd2b2 100644
--- a/src/slic3r/GUI/InstanceCheck.cpp
+++ b/src/slic3r/GUI/InstanceCheck.cpp
@@ -11,6 +11,7 @@
#include "boost/nowide/convert.hpp"
#include
+#include
#include
#include
#include
@@ -136,6 +137,13 @@ namespace instance_check_internal
fl.l_whence = SEEK_SET;
fl.l_start = 0;
fl.l_len = 1;
+
+ if (! boost::filesystem::is_directory(path)) {
+ BOOST_LOG_TRIVIAL(debug) << "get_lock(): datadir does not exist yet, creating...";
+ if (! boost::filesystem::create_directories(path))
+ BOOST_LOG_TRIVIAL(debug) << "get_lock(): unable to create datadir !!!";
+ }
+
if ((fdlock = open(dest_dir.c_str(), O_WRONLY | O_CREAT, 0666)) == -1)
return true;
diff --git a/src/slic3r/GUI/Jobs/Job.cpp b/src/slic3r/GUI/Jobs/Job.cpp
index cc2cb75f1..fedb6f4ac 100644
--- a/src/slic3r/GUI/Jobs/Job.cpp
+++ b/src/slic3r/GUI/Jobs/Job.cpp
@@ -1,6 +1,7 @@
#include
#include "Job.hpp"
+#include
#include
namespace Slic3r {
diff --git a/src/slic3r/GUI/Jobs/Job.hpp b/src/slic3r/GUI/Jobs/Job.hpp
index 130ca2ed9..aea7692e7 100644
--- a/src/slic3r/GUI/Jobs/Job.hpp
+++ b/src/slic3r/GUI/Jobs/Job.hpp
@@ -3,7 +3,8 @@
#include
-#include
+#include "libslic3r/libslic3r.h"
+
#include
#include "ProgressIndicator.hpp"
diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp
index 9b5dfeb1d..0b5a2aee7 100644
--- a/src/slic3r/GUI/KBShortcutsDialog.cpp
+++ b/src/slic3r/GUI/KBShortcutsDialog.cpp
@@ -178,7 +178,7 @@ void KBShortcutsDialog::fill_shortcuts()
{ "O", L("Zoom out") },
{ "Tab", L("Switch between Editor/Preview") },
{ "Shift+Tab", L("Collapse/Expand the sidebar") },
-#ifdef __linux__
+#if defined(__linux__) || defined(__APPLE__)
{ ctrl + "M", L("Show/Hide 3Dconnexion devices settings dialog") },
#endif // __linux__
#if ENABLE_RENDER_PICKING_PASS
@@ -190,10 +190,13 @@ void KBShortcutsDialog::fill_shortcuts()
m_full_shortcuts.push_back(std::make_pair(_L("Plater"), plater_shortcuts));
Shortcuts gizmos_shortcuts = {
- { "Shift+", L("Press to snap by 5% in Gizmo scale\nor to snap by 1mm in Gizmo move") },
- { "F", L("Scale selection to fit print volume\nin Gizmo scale") },
- { ctrl, L("Press to activate one direction scaling in Gizmo scale") },
- { alt, L("Press to scale (in Gizmo scale) or rotate (in Gizmo rotate)\nselected objects around their own center") },
+ { ctrl, L("All gizmos: Press to rotate view with mouse left or to pan view with mouse right") },
+ { "Shift+", L("Gizmo move: Press to snap by 1mm") },
+ { "Shift+", L("Gizmo scale: Press to snap by 5%") },
+ { "F", L("Gizmo scale: Scale selection to fit print volume") },
+ { ctrl, L("Gizmo scale: Press to activate one direction scaling") },
+ { alt, L("Gizmo scale: Press to scale selected objects around their own center") },
+ { alt, L("Gizmo rotate: Press to rotate selected objects around their own center") },
};
m_full_shortcuts.push_back(std::make_pair(_L("Gizmos"), gizmos_shortcuts));
@@ -251,7 +254,11 @@ wxPanel* KBShortcutsDialog::create_header(wxWindow* parent, const wxFont& bold_f
sizer->AddStretchSpacer();
// logo
+#if ENABLE_GCODE_VIEWER
+ m_logo_bmp = ScalableBitmap(this, wxGetApp().is_editor() ? "Slic3r_32px.png" : "PrusaSlicer-gcodeviewer_32px.png", 32);
+#else
m_logo_bmp = ScalableBitmap(this, "Slic3r_32px.png", 32);
+#endif // ENABLE_GCODE_VIEWER
m_header_bitmap = new wxStaticBitmap(panel, wxID_ANY, m_logo_bmp.bmp());
sizer->Add(m_header_bitmap, 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp
index 2f62ce867..abbce5c6c 100644
--- a/src/slic3r/GUI/MainFrame.cpp
+++ b/src/slic3r/GUI/MainFrame.cpp
@@ -1302,7 +1302,7 @@ void MainFrame::init_menubar()
append_menu_check_item(viewMenu, wxID_ANY, _L("Show &labels") + sep + "E", _L("Show object/instance labels in 3D scene"),
[this](wxCommandEvent&) { m_plater->show_view3D_labels(!m_plater->are_view3D_labels_shown()); }, this,
[this]() { return m_plater->is_view3D_shown(); }, [this]() { return m_plater->are_view3D_labels_shown(); }, this);
- append_menu_check_item(viewMenu, wxID_ANY, _L("&Collapse sidebar"), _L("Collapse sidebar"),
+ append_menu_check_item(viewMenu, wxID_ANY, _L("&Collapse sidebar") + "\tShift+Tab", _L("Collapse sidebar"),
[this](wxCommandEvent&) { m_plater->collapse_sidebar(!m_plater->is_sidebar_collapsed()); }, this,
[]() { return true; }, [this]() { return m_plater->is_sidebar_collapsed(); }, this);
}
@@ -1989,7 +1989,7 @@ void MainFrame::add_to_recent_projects(const wxString& filename)
//
// Called after the Preferences dialog is closed and the program settings are saved.
// Update the UI based on the current preferences.
-void MainFrame::update_ui_from_settings()
+void MainFrame::update_ui_from_settings(bool apply_free_camera_correction)
{
// const bool bp_on = wxGetApp().app_config->get("background_processing") == "1";
// m_menu_item_reslice_now->Enable(!bp_on);
@@ -1998,7 +1998,7 @@ void MainFrame::update_ui_from_settings()
// m_plater->sidebar().Layout();
if (m_plater)
- m_plater->update_ui_from_settings();
+ m_plater->update_ui_from_settings(apply_free_camera_correction);
for (auto tab: wxGetApp().tabs_list)
tab->update_ui_from_settings();
}
diff --git a/src/slic3r/GUI/MainFrame.hpp b/src/slic3r/GUI/MainFrame.hpp
index 8172b0d33..611ea7991 100644
--- a/src/slic3r/GUI/MainFrame.hpp
+++ b/src/slic3r/GUI/MainFrame.hpp
@@ -9,7 +9,7 @@
#include
#ifdef __APPLE__
#include
-#endif __APPLE__
+#endif // __APPLE__
#include
#include