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