Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE/bugreport.yaml2
-rw-r--r--cura/API/Account.py17
-rw-r--r--cura/ApplicationMetadata.py2
-rw-r--r--cura/Arranging/Nest2DArrange.py42
-rw-r--r--cura/Backups/Backup.py9
-rwxr-xr-xcura/BuildVolume.py5
-rwxr-xr-xcura/CuraApplication.py8
-rw-r--r--cura/Machines/Models/MaterialManagementModel.py78
-rw-r--r--cura/Machines/Models/QualityProfilesDropDownMenuModel.py4
-rw-r--r--cura/MultiplyObjectsJob.py39
-rw-r--r--cura/OAuth2/AuthorizationService.py9
-rw-r--r--cura/Settings/ContainerManager.py4
-rwxr-xr-xcura/Settings/MachineManager.py4
-rw-r--r--cura/SingleInstance.py7
-rw-r--r--cura/UI/PrintInformation.py11
-rwxr-xr-xplugins/CuraEngineBackend/CuraEngineBackend.py2
-rw-r--r--plugins/CuraEngineBackend/StartSliceJob.py19
-rw-r--r--plugins/DigitalLibrary/src/DigitalFactoryApiClient.py8
-rw-r--r--plugins/DigitalLibrary/src/DigitalFactoryController.py4
-rw-r--r--plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py7
-rw-r--r--plugins/PerObjectSettingsTool/SettingPickDialog.qml4
-rw-r--r--plugins/PostProcessingPlugin/scripts/ChangeAtZ.py2
-rw-r--r--plugins/PostProcessingPlugin/scripts/FilamentChange.py48
-rw-r--r--plugins/PostProcessingPlugin/scripts/SearchAndReplace.py2
-rwxr-xr-xplugins/SliceInfoPlugin/SliceInfo.py1
-rw-r--r--plugins/SliceInfoPlugin/example_data.html1
-rw-r--r--plugins/Toolbox/src/CloudSync/LicensePresenter.py9
-rw-r--r--plugins/Toolbox/src/Toolbox.py18
-rw-r--r--plugins/UFPReader/plugin.json2
-rw-r--r--plugins/UM3NetworkPrinting/resources/svg/CloudPlatform.svg353
-rw-r--r--plugins/UM3NetworkPrinting/resources/svg/cloud-flow-start.svg13
-rw-r--r--plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py33
-rw-r--r--plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py3
-rw-r--r--plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py3
-rw-r--r--plugins/VersionUpgrade/VersionUpgrade411to412/VersionUpgrade411to412.py114
-rw-r--r--plugins/VersionUpgrade/VersionUpgrade411to412/__init__.py56
-rw-r--r--plugins/VersionUpgrade/VersionUpgrade411to412/plugin.json8
-rw-r--r--requirements.txt38
-rw-r--r--resources/bundled_packages/cura.json232
-rw-r--r--resources/definitions/3di_base.def.json49
-rw-r--r--resources/definitions/3di_d300.def.json26
-rw-r--r--resources/definitions/anycubic_mega_zero.def.json2
-rw-r--r--resources/definitions/arjunpro300.def.json52
-rw-r--r--resources/definitions/arjunpro_duplication.def.json49
-rw-r--r--resources/definitions/arjunpro_mirrored.def.json49
-rw-r--r--resources/definitions/atmat_signal_pro_base.def.json2
-rw-r--r--resources/definitions/creality_ender5plus.def.json1
-rw-r--r--resources/definitions/creality_ender6.def.json41
-rw-r--r--resources/definitions/creasee_cs50spro.def.json32
-rw-r--r--resources/definitions/creasee_phoenix.def.json32
-rw-r--r--resources/definitions/creasee_skywalker.def.json32
-rw-r--r--resources/definitions/creatable_d3.def.json2
-rw-r--r--resources/definitions/cremaker_common.def.json58
-rw-r--r--resources/definitions/cremaker_m_v1.def.json40
-rw-r--r--resources/definitions/cremaker_m_v2.def.json38
-rw-r--r--resources/definitions/cremaker_s_v1.def.json32
-rw-r--r--resources/definitions/deltacomb_base.def.json2
-rw-r--r--resources/definitions/eryone_thinker.def.json12
-rw-r--r--resources/definitions/fdmextruder.def.json2
-rw-r--r--resources/definitions/fdmprinter.def.json97
-rw-r--r--resources/definitions/hellbot_hidra.def.json22
-rw-r--r--resources/definitions/hellbot_hidra_plus.def.json27
-rw-r--r--resources/definitions/hellbot_magna_2_230.def.json8
-rw-r--r--resources/definitions/hellbot_magna_2_230_dual.def.json15
-rw-r--r--resources/definitions/hellbot_magna_2_300.def.json9
-rw-r--r--resources/definitions/hellbot_magna_2_300_dual.def.json17
-rw-r--r--resources/definitions/hellbot_magna_2_400.def.json42
-rw-r--r--resources/definitions/hellbot_magna_2_400_dual.def.json49
-rw-r--r--resources/definitions/hellbot_magna_2_500.def.json42
-rw-r--r--resources/definitions/hellbot_magna_2_500_dual.def.json48
-rw-r--r--resources/definitions/hellbot_magna_I.def.json2
-rw-r--r--resources/definitions/hellbot_magna_dual.def.json6
-rw-r--r--resources/definitions/inat_base.def.json2
-rw-r--r--resources/definitions/julia.def.json2
-rw-r--r--resources/definitions/leapfrog_bolt_pro.def.json2
-rw-r--r--resources/definitions/liquid.def.json2
-rw-r--r--resources/definitions/maker_made_300x.def.json2
-rw-r--r--resources/definitions/malyan_m180.def.json2
-rw-r--r--resources/definitions/malyan_m200.def.json2
-rw-r--r--resources/definitions/monoprice_select_mini_v2.def.json2
-rw-r--r--resources/definitions/renkforce_rf100.def.json2
-rw-r--r--resources/definitions/renkforce_rf100_v2.def.json2
-rw-r--r--resources/definitions/renkforce_rf100_xl.def.json2
-rw-r--r--resources/definitions/robo_3d_r1.def.json2
-rw-r--r--resources/definitions/seemecnc_artemis.def.json2
-rw-r--r--resources/definitions/seemecnc_v32.def.json2
-rw-r--r--resources/definitions/skriware_2.def.json2
-rw-r--r--resources/definitions/strateo3d.def.json2
-rw-r--r--resources/definitions/tizyx_evy.def.json2
-rw-r--r--resources/definitions/tizyx_evy_dual.def.json2
-rw-r--r--resources/definitions/tizyx_k25.def.json2
-rw-r--r--resources/definitions/ultimaker2.def.json16
-rw-r--r--resources/definitions/ultimaker2_plus_connect.def.json18
-rw-r--r--resources/definitions/ultimaker3.def.json29
-rw-r--r--resources/definitions/ultimaker_s3.def.json34
-rw-r--r--resources/definitions/ultimaker_s5.def.json32
-rw-r--r--resources/definitions/voron2_base.def.json2
-rw-r--r--resources/extruders/3di_base_extruder_0.def.json15
-rw-r--r--resources/extruders/arjunpro_dm_extruder.def.json20
-rw-r--r--resources/extruders/arjunpro_extruder_0.def.json27
-rw-r--r--resources/extruders/arjunpro_extruder_1.def.json27
-rw-r--r--resources/extruders/arjunpro_mm_extruder.def.json20
-rw-r--r--resources/extruders/creasee_cs50spro_extruder.def.json15
-rw-r--r--resources/extruders/creasee_phoenix_extruder.def.json15
-rw-r--r--resources/extruders/creasee_skywalker_extruder.def.json15
-rw-r--r--resources/extruders/cremaker_extruder_0.def.json15
-rw-r--r--resources/extruders/hellbot_hidra_extruder_0.def.json2
-rw-r--r--resources/extruders/hellbot_hidra_extruder_1.def.json2
-rw-r--r--resources/extruders/hellbot_hidra_plus_extruder_0.def.json2
-rw-r--r--resources/extruders/hellbot_hidra_plus_extruder_1.def.json2
-rw-r--r--resources/extruders/hellbot_magna_2_230_extruder_0.def.json1
-rw-r--r--resources/extruders/hellbot_magna_2_400_dual_extruder_0.def.json24
-rw-r--r--resources/extruders/hellbot_magna_2_400_dual_extruder_1.def.json24
-rw-r--r--resources/extruders/hellbot_magna_2_400_extruder_0.def.json15
-rw-r--r--resources/extruders/hellbot_magna_2_500_dual_extruder_0.def.json24
-rw-r--r--resources/extruders/hellbot_magna_2_500_dual_extruder_1.def.json24
-rw-r--r--resources/extruders/hellbot_magna_2_500_extruder_0.def.json15
-rw-r--r--resources/i18n/cs_CZ/cura.po4
-rw-r--r--resources/i18n/cs_CZ/fdmextruder.def.json.po4
-rw-r--r--resources/i18n/cs_CZ/fdmprinter.def.json.po4
-rw-r--r--resources/i18n/cura.pot2
-rw-r--r--resources/i18n/de_DE/cura.po2
-rw-r--r--resources/i18n/de_DE/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/de_DE/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/es_ES/cura.po2
-rw-r--r--resources/i18n/es_ES/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/es_ES/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/fdmextruder.def.json.pot2
-rw-r--r--resources/i18n/fdmprinter.def.json.pot2
-rw-r--r--resources/i18n/fi_FI/cura.po2
-rw-r--r--resources/i18n/fi_FI/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/fi_FI/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/fr_FR/cura.po2
-rw-r--r--resources/i18n/fr_FR/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/fr_FR/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/hu_HU/cura.po2
-rw-r--r--resources/i18n/hu_HU/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/hu_HU/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/it_IT/cura.po2
-rw-r--r--resources/i18n/it_IT/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/it_IT/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/ja_JP/cura.po2
-rw-r--r--resources/i18n/ja_JP/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/ja_JP/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/ko_KR/cura.po2
-rw-r--r--resources/i18n/ko_KR/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/ko_KR/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/nl_NL/cura.po2
-rw-r--r--resources/i18n/nl_NL/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/nl_NL/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/pl_PL/cura.po2
-rw-r--r--resources/i18n/pl_PL/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/pl_PL/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/pt_BR/cura.po2
-rw-r--r--resources/i18n/pt_BR/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/pt_BR/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/pt_PT/cura.po2
-rw-r--r--resources/i18n/pt_PT/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/pt_PT/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/ru_RU/cura.po2
-rw-r--r--resources/i18n/ru_RU/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/ru_RU/fdmprinter.def.json.po4
-rw-r--r--resources/i18n/tr_TR/cura.po2
-rw-r--r--resources/i18n/tr_TR/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/tr_TR/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/zh_CN/cura.po2
-rw-r--r--resources/i18n/zh_CN/fdmextruder.def.json.po2
-rw-r--r--resources/i18n/zh_CN/fdmprinter.def.json.po2
-rw-r--r--resources/i18n/zh_TW/cura.po4
-rw-r--r--resources/i18n/zh_TW/fdmextruder.def.json.po4
-rw-r--r--resources/i18n/zh_TW/fdmprinter.def.json.po4
-rw-r--r--resources/images/Magna2_400.pngbin0 -> 290328 bytes
-rw-r--r--resources/images/Magna2_500.pngbin0 -> 290350 bytes
-rw-r--r--resources/meshes/3di_d300_platform.STLbin0 -> 332484 bytes
-rw-r--r--resources/meshes/Hellbot_Magna_2_230.obj3
-rw-r--r--resources/meshes/Hellbot_Magna_2_300.obj3
-rw-r--r--resources/meshes/Hellbot_Magna_2_400.obj949
-rw-r--r--resources/meshes/Hellbot_Magna_2_500.obj949
-rw-r--r--resources/meshes/arjunpro300_platform.STLbin0 -> 710884 bytes
-rw-r--r--resources/meshes/cremaker_platform_200.obj1870
-rw-r--r--resources/meshes/cremaker_platform_220.obj1870
-rw-r--r--resources/meshes/hellbot_hidra.obj3
-rw-r--r--resources/meshes/hellbot_hidra_plus.obj3
-rw-r--r--resources/qml/Account/AccountWidget.qml36
-rw-r--r--resources/qml/ApplicationSwitcher/ApplicationButton.qml91
-rw-r--r--resources/qml/ApplicationSwitcher/ApplicationSwitcher.qml61
-rw-r--r--resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml120
-rw-r--r--resources/qml/MainWindow/MainWindowHeader.qml29
-rw-r--r--resources/qml/Preferences/GeneralPage.qml18
-rw-r--r--resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml1
-rw-r--r--resources/qml/WelcomePages/CloudContent.qml75
-rw-r--r--resources/qml/Widgets/ComboBox.qml6
-rw-r--r--resources/quality/eryone_thinker/eryone_thinker_extra_fast.inst.cfg37
-rw-r--r--resources/quality/eryone_thinker/eryone_thinker_fast.inst.cfg4
-rw-r--r--resources/quality/jgaurora_a6/jgaurora_a6_0.28_fast.inst.cfg.txt2
-rw-r--r--resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Draft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Superdraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Verydraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Draft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Superdraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Verydraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg3
-rw-r--r--resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg3
-rw-r--r--resources/setting_visibility/expert.cfg4
-rw-r--r--resources/texts/change_log.txt2
-rw-r--r--resources/themes/cura-light/icons/default/BlockGrid.svg3
-rw-r--r--resources/themes/cura-light/icons/default/Browser.svg3
-rw-r--r--resources/themes/cura-light/icons/default/Bug.svg3
-rw-r--r--resources/themes/cura-light/icons/default/FoodBeverages.svg3
-rw-r--r--resources/themes/cura-light/icons/default/Help.svg3
-rw-r--r--resources/themes/cura-light/icons/default/Knowledge.svg3
-rw-r--r--resources/themes/cura-light/icons/default/Library.svg3
-rw-r--r--resources/themes/cura-light/icons/default/Shop.svg3
-rw-r--r--resources/themes/cura-light/icons/default/Speak.svg3
-rw-r--r--resources/themes/cura-light/icons/high/Bug.svg3
-rw-r--r--resources/themes/cura-light/icons/high/Help.svg3
-rw-r--r--resources/themes/cura-light/icons/high/Library.svg3
-rw-r--r--resources/themes/cura-light/icons/high/PrinterTriple.svg3
-rw-r--r--resources/themes/cura-light/icons/high/Shop.svg3
-rw-r--r--resources/themes/cura-light/icons/high/Speak.svg3
-rw-r--r--resources/themes/cura-light/theme.json8
-rw-r--r--resources/variants/arjunpro300_0.2.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_0.3.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_0.4.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_0.5.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_0.6.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_0.8.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_dm_0.2.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_dm_0.3.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_dm_0.4.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_dm_0.5.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_dm_0.6.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_dm_0.8.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_mm_0.2.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_mm_0.3.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_mm_0.4.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_mm_0.5.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_mm_0.6.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_mm_0.8.inst.cfg13
-rw-r--r--resources/variants/arjunpro300_pva_0.2.inst.cfg32
-rw-r--r--resources/variants/arjunpro300_pva_0.3.inst.cfg32
-rw-r--r--resources/variants/arjunpro300_pva_0.4.inst.cfg32
-rw-r--r--resources/variants/arjunpro300_pva_0.5.inst.cfg32
-rw-r--r--resources/variants/arjunpro300_pva_0.6.inst.cfg32
-rw-r--r--resources/variants/arjunpro300_pva_0.8.inst.cfg32
-rw-r--r--resources/variants/creality_ender6_0.2.inst.cfg12
-rw-r--r--resources/variants/creality_ender6_0.3.inst.cfg12
-rw-r--r--resources/variants/creality_ender6_0.4.inst.cfg12
-rw-r--r--resources/variants/creality_ender6_0.5.inst.cfg12
-rw-r--r--resources/variants/creality_ender6_0.6.inst.cfg12
-rw-r--r--resources/variants/creality_ender6_0.8.inst.cfg12
-rw-r--r--resources/variants/creality_ender6_1.0.inst.cfg12
-rw-r--r--resources/variants/ultimaker3_aa0.8.inst.cfg3
-rw-r--r--resources/variants/ultimaker3_bb0.8.inst.cfg1
-rw-r--r--resources/variants/ultimaker3_bb04.inst.cfg7
-rw-r--r--resources/variants/ultimaker3_extended_aa0.8.inst.cfg3
-rw-r--r--resources/variants/ultimaker3_extended_bb0.8.inst.cfg1
-rw-r--r--resources/variants/ultimaker3_extended_bb04.inst.cfg1
-rw-r--r--resources/variants/ultimaker_s3_aa0.8.inst.cfg3
-rw-r--r--resources/variants/ultimaker_s3_bb0.8.inst.cfg1
-rw-r--r--resources/variants/ultimaker_s3_bb04.inst.cfg7
-rw-r--r--resources/variants/ultimaker_s5_aa0.8.inst.cfg3
-rw-r--r--resources/variants/ultimaker_s5_bb0.8.inst.cfg1
-rw-r--r--resources/variants/ultimaker_s5_bb04.inst.cfg7
274 files changed, 8943 insertions, 601 deletions
diff --git a/.github/ISSUE_TEMPLATE/bugreport.yaml b/.github/ISSUE_TEMPLATE/bugreport.yaml
index 87c82c982a..f31971ab2a 100644
--- a/.github/ISSUE_TEMPLATE/bugreport.yaml
+++ b/.github/ISSUE_TEMPLATE/bugreport.yaml
@@ -64,7 +64,7 @@ body:
You can find your log file here:
Windows: `%APPDATA%\cura\<Cura version>\cura.log` or usually `C:\Users\\<your username>\AppData\Roaming\cura\<Cura version>\cura.log`
MacOS: `$USER/Library/Application Support/cura/<Cura version>/cura.log`
- Ubuntu/Linus: `$USER/.local/share/cura/<Cura version>/cura.log`
+ Ubuntu/Linux: `$USER/.local/share/cura/<Cura version>/cura.log`
If the Cura user interface still starts, you can also reach this directory from the application menu in Help -> Show settings folder
- type: checkboxes
diff --git a/cura/API/Account.py b/cura/API/Account.py
index a85e2c64c5..ab45c4a4be 100644
--- a/cura/API/Account.py
+++ b/cura/API/Account.py
@@ -1,7 +1,7 @@
# Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
from datetime import datetime
-from typing import Optional, Dict, TYPE_CHECKING, Callable
+from typing import Any, Optional, Dict, TYPE_CHECKING, Callable
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, pyqtProperty, QTimer, Q_ENUMS
@@ -46,6 +46,9 @@ class Account(QObject):
loginStateChanged = pyqtSignal(bool)
"""Signal emitted when user logged in or out"""
+ additionalRightsChanged = pyqtSignal("QVariantMap")
+ """Signal emitted when a users additional rights change"""
+
accessTokenChanged = pyqtSignal()
syncRequested = pyqtSignal()
"""Sync services may connect to this signal to receive sync triggers.
@@ -70,6 +73,7 @@ class Account(QObject):
self._error_message = None # type: Optional[Message]
self._logged_in = False
+ self._additional_rights: Dict[str, Any] = {}
self._sync_state = SyncState.IDLE
self._manual_sync_enabled = False
self._update_packages_enabled = False
@@ -301,3 +305,14 @@ class Account(QObject):
return # Nothing to do, user isn't logged in.
self._authorization_service.deleteAuthData()
+
+ def updateAdditionalRight(self, **kwargs) -> None:
+ """Update the additional rights of the account.
+ The argument(s) are the rights that need to be set"""
+ self._additional_rights.update(kwargs)
+ self.additionalRightsChanged.emit(self._additional_rights)
+
+ @pyqtProperty("QVariantMap", notify = additionalRightsChanged)
+ def additionalRights(self) -> Dict[str, Any]:
+ """A dictionary which can be queried for additional account rights."""
+ return self._additional_rights
diff --git a/cura/ApplicationMetadata.py b/cura/ApplicationMetadata.py
index 6911132f55..712f3e0f1b 100644
--- a/cura/ApplicationMetadata.py
+++ b/cura/ApplicationMetadata.py
@@ -13,7 +13,7 @@ DEFAULT_CURA_DEBUG_MODE = False
# Each release has a fixed SDK version coupled with it. It doesn't make sense to make it configurable because, for
# example Cura 3.2 with SDK version 6.1 will not work. So the SDK version is hard-coded here and left out of the
# CuraVersion.py.in template.
-CuraSDKVersion = "7.7.0"
+CuraSDKVersion = "7.8.0"
try:
from cura.CuraVersion import CuraAppName # type: ignore
diff --git a/cura/Arranging/Nest2DArrange.py b/cura/Arranging/Nest2DArrange.py
index fdac63cd9d..ebe96202f2 100644
--- a/cura/Arranging/Nest2DArrange.py
+++ b/cura/Arranging/Nest2DArrange.py
@@ -110,18 +110,11 @@ def findNodePlacement(nodes_to_arrange: List["SceneNode"], build_volume: "BuildV
return found_solution_for_all, node_items
-def arrange(nodes_to_arrange: List["SceneNode"], build_volume: "BuildVolume", fixed_nodes: Optional[List["SceneNode"]] = None, factor = 10000, add_new_nodes_in_scene: bool = False) -> bool:
- """
- Find placement for a set of scene nodes, and move them by using a single grouped operation.
- :param nodes_to_arrange: The list of nodes that need to be moved.
- :param build_volume: The build volume that we want to place the nodes in. It gets size & disallowed areas from this.
- :param fixed_nodes: List of nods that should not be moved, but should be used when deciding where the others nodes
- are placed.
- :param factor: The library that we use is int based. This factor defines how accuracte we want it to be.
- :param add_new_nodes_in_scene: Whether to create new scene nodes before applying the transformations and rotations
-
- :return: found_solution_for_all: Whether the algorithm found a place on the buildplate for all the objects
- """
+def createGroupOperationForArrange(nodes_to_arrange: List["SceneNode"],
+ build_volume: "BuildVolume",
+ fixed_nodes: Optional[List["SceneNode"]] = None,
+ factor = 10000,
+ add_new_nodes_in_scene: bool = False) -> Tuple[GroupedOperation, int]:
scene_root = Application.getInstance().getController().getScene().getRoot()
found_solution_for_all, node_items = findNodePlacement(nodes_to_arrange, build_volume, fixed_nodes, factor)
@@ -143,6 +136,27 @@ def arrange(nodes_to_arrange: List["SceneNode"], build_volume: "BuildVolume", fi
grouped_operation.addOperation(
TranslateOperation(node, Vector(200, node.getWorldPosition().y, -not_fit_count * 20), set_position = True))
not_fit_count += 1
- grouped_operation.push()
- return found_solution_for_all
+ return grouped_operation, not_fit_count
+
+
+def arrange(nodes_to_arrange: List["SceneNode"],
+ build_volume: "BuildVolume",
+ fixed_nodes: Optional[List["SceneNode"]] = None,
+ factor = 10000,
+ add_new_nodes_in_scene: bool = False) -> bool:
+ """
+ Find placement for a set of scene nodes, and move them by using a single grouped operation.
+ :param nodes_to_arrange: The list of nodes that need to be moved.
+ :param build_volume: The build volume that we want to place the nodes in. It gets size & disallowed areas from this.
+ :param fixed_nodes: List of nods that should not be moved, but should be used when deciding where the others nodes
+ are placed.
+ :param factor: The library that we use is int based. This factor defines how accuracte we want it to be.
+ :param add_new_nodes_in_scene: Whether to create new scene nodes before applying the transformations and rotations
+
+ :return: found_solution_for_all: Whether the algorithm found a place on the buildplate for all the objects
+ """
+
+ grouped_operation, not_fit_count = createGroupOperationForArrange(nodes_to_arrange, build_volume, fixed_nodes, factor, add_new_nodes_in_scene)
+ grouped_operation.push()
+ return not_fit_count != 0
diff --git a/cura/Backups/Backup.py b/cura/Backups/Backup.py
index 85510e6b4c..90a354c0a3 100644
--- a/cura/Backups/Backup.py
+++ b/cura/Backups/Backup.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Ultimaker B.V.
+# Copyright (c) 2021 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import io
@@ -168,7 +168,10 @@ class Backup:
preferences_file = Resources.getPath(Resources.Preferences, "{}.cfg".format(preferences_file_name))
backup_preferences_file = os.path.join(version_data_dir, "{}.cfg".format(preferences_file_name))
Logger.log("d", "Moving preferences file from %s to %s", backup_preferences_file, preferences_file)
- shutil.move(backup_preferences_file, preferences_file)
+ try:
+ shutil.move(backup_preferences_file, preferences_file)
+ except EnvironmentError as e:
+ Logger.error(f"Unable to back-up preferences file: {type(e)} - {str(e)}")
# Read the preferences from the newly restored configuration (or else the cached Preferences will override the restored ones)
self._application.readPreferencesFromConfiguration()
@@ -203,6 +206,8 @@ class Backup:
archive.extract(archive_filename, target_path)
except (PermissionError, EnvironmentError):
Logger.logException("e", f"Unable to extract the file {archive_filename} from the backup due to permission or file system errors.")
+ except UnicodeEncodeError:
+ Logger.error(f"Unable to extract the file {archive_filename} because of an encoding error.")
CuraApplication.getInstance().processEvents()
return True
diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py
index cf397e395e..e0c43c4876 100755
--- a/cura/BuildVolume.py
+++ b/cura/BuildVolume.py
@@ -1078,9 +1078,10 @@ class BuildVolume(SceneNode):
# setting does *not* have a limit_to_extruder setting (which means that we can't ask the global extruder what
# the value is.
adhesion_extruder = self._global_container_stack.getProperty("adhesion_extruder_nr", "value")
- skirt_brim_line_width = self._global_container_stack.extruderList[int(adhesion_extruder)].getProperty("skirt_brim_line_width", "value")
+ adhesion_stack = self._global_container_stack.extruderList[int(adhesion_extruder)]
+ skirt_brim_line_width = adhesion_stack.getProperty("skirt_brim_line_width", "value")
- initial_layer_line_width_factor = self._global_container_stack.getProperty("initial_layer_line_width_factor", "value")
+ initial_layer_line_width_factor = adhesion_stack.getProperty("initial_layer_line_width_factor", "value")
# Use brim width if brim is enabled OR the prime tower has a brim.
if adhesion_type == "brim":
brim_line_count = self._global_container_stack.getProperty("brim_line_count", "value")
diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py
index 5c5f083491..609a5e26b1 100755
--- a/cura/CuraApplication.py
+++ b/cura/CuraApplication.py
@@ -129,7 +129,7 @@ class CuraApplication(QtApplication):
# SettingVersion represents the set of settings available in the machine/extruder definitions.
# You need to make sure that this version number needs to be increased if there is any non-backwards-compatible
# changes of the settings.
- SettingVersion = 18
+ SettingVersion = 19
Created = False
@@ -320,7 +320,7 @@ class CuraApplication(QtApplication):
super().initialize()
self._preferences.addPreference("cura/single_instance", False)
- self._use_single_instance = self._preferences.getValue("cura/single_instance")
+ self._use_single_instance = self._preferences.getValue("cura/single_instance") or self._cli_args.single_instance
self.__sendCommandToSingleInstance()
self._initializeSettingDefinitions()
@@ -750,7 +750,9 @@ class CuraApplication(QtApplication):
@pyqtSlot(str, result = QUrl)
def getDefaultPath(self, key):
default_path = self.getPreferences().getValue("local_file/%s" % key)
- return QUrl.fromLocalFile(default_path)
+ if os.path.exists(default_path):
+ return QUrl.fromLocalFile(default_path)
+ return QUrl()
@pyqtSlot(str, str)
def setDefaultPath(self, key, default_path):
diff --git a/cura/Machines/Models/MaterialManagementModel.py b/cura/Machines/Models/MaterialManagementModel.py
index 6663dbdae1..5c6baaf55f 100644
--- a/cura/Machines/Models/MaterialManagementModel.py
+++ b/cura/Machines/Models/MaterialManagementModel.py
@@ -7,8 +7,11 @@ from typing import Any, Dict, Optional, TYPE_CHECKING
import uuid # To generate new GUIDs for new materials.
import zipfile # To export all materials in a .zip archive.
+from PyQt5.QtGui import QDesktopServices
+
from UM.i18n import i18nCatalog
from UM.Logger import Logger
+from UM.Message import Message
from UM.Signal import postponeSignals, CompressTechnique
import cura.CuraApplication # Imported like this to prevent circular imports.
@@ -20,6 +23,7 @@ if TYPE_CHECKING:
catalog = i18nCatalog("cura")
+
class MaterialManagementModel(QObject):
favoritesChanged = pyqtSignal(str)
"""Triggered when a favorite is added or removed.
@@ -27,6 +31,63 @@ class MaterialManagementModel(QObject):
:param The base file of the material is provided as parameter when this emits
"""
+ def __init__(self, parent: Optional[QObject] = None) -> None:
+ super().__init__(parent = parent)
+ self._checkIfNewMaterialsWereInstalled()
+
+ def _checkIfNewMaterialsWereInstalled(self) -> None:
+ """
+ Checks whether new material packages were installed in the latest startup. If there were, then it shows
+ a message prompting the user to sync the materials with their printers.
+ """
+ application = cura.CuraApplication.CuraApplication.getInstance()
+ for package_id, package_data in application.getPackageManager().getPackagesInstalledOnStartup().items():
+ if package_data["package_info"]["package_type"] == "material":
+ # At least one new material was installed
+ self._showSyncNewMaterialsMessage()
+ break
+
+ def _showSyncNewMaterialsMessage(self) -> None:
+ sync_materials_message = Message(
+ text = catalog.i18nc("@action:button",
+ "Please sync the material profiles with your printers before starting to print."),
+ title = catalog.i18nc("@action:button", "New materials installed"),
+ message_type = Message.MessageType.WARNING,
+ lifetime = 0
+ )
+
+ sync_materials_message.addAction(
+ "sync",
+ name = catalog.i18nc("@action:button", "Sync materials with printers"),
+ icon = "",
+ description = "Sync your newly installed materials with your printers.",
+ button_align = Message.ActionButtonAlignment.ALIGN_RIGHT
+ )
+
+ sync_materials_message.addAction(
+ "learn_more",
+ name = catalog.i18nc("@action:button", "Learn more"),
+ icon = "",
+ description = "Learn more about syncing your newly installed materials with your printers.",
+ button_align = Message.ActionButtonAlignment.ALIGN_LEFT,
+ button_style = Message.ActionButtonStyle.LINK
+ )
+ sync_materials_message.actionTriggered.connect(self._onSyncMaterialsMessageActionTriggered)
+
+ # Show the message only if there are printers that support material export
+ container_registry = cura.CuraApplication.CuraApplication.getInstance().getContainerRegistry()
+ global_stacks = container_registry.findContainerStacks(type = "machine")
+ if any([stack.supportsMaterialExport for stack in global_stacks]):
+ sync_materials_message.show()
+
+ def _onSyncMaterialsMessageActionTriggered(self, sync_message: Message, sync_message_action: str):
+ if sync_message_action == "sync":
+ QDesktopServices.openUrl(QUrl("https://example.com/openSyncAllWindow"))
+ # self.openSyncAllWindow()
+ sync_message.hide()
+ elif sync_message_action == "learn_more":
+ QDesktopServices.openUrl(QUrl("https://support.ultimaker.com/hc/en-us/articles/360013137919?utm_source=cura&utm_medium=software&utm_campaign=sync-material-printer-message"))
+
@pyqtSlot("QVariant", result = bool)
def canMaterialBeRemoved(self, material_node: "MaterialNode") -> bool:
"""Can a certain material be deleted, or is it still in use in one of the container stacks anywhere?
@@ -287,7 +348,17 @@ class MaterialManagementModel(QObject):
"""
registry = CuraContainerRegistry.getInstance()
- archive = zipfile.ZipFile(file_path.toLocalFile(), "w", compression = zipfile.ZIP_DEFLATED)
+ try:
+ archive = zipfile.ZipFile(file_path.toLocalFile(), "w", compression = zipfile.ZIP_DEFLATED)
+ except OSError as e:
+ Logger.log("e", f"Can't write to destination {file_path.toLocalFile()}: {type(e)} - {str(e)}")
+ error_message = Message(
+ text = catalog.i18nc("@message:text", "Could not save material archive to {}:").format(file_path.toLocalFile()) + " " + str(e),
+ title = catalog.i18nc("@message:title", "Failed to save material archive"),
+ message_type = Message.MessageType.ERROR
+ )
+ error_message.show()
+ return
for metadata in registry.findInstanceContainersMetadata(type = "material"):
if metadata["base_file"] != metadata["id"]: # Only process base files.
continue
@@ -296,4 +367,7 @@ class MaterialManagementModel(QObject):
material = registry.findContainers(id = metadata["id"])[0]
suffix = registry.getMimeTypeForContainer(type(material)).preferredSuffix
filename = metadata["id"] + "." + suffix
- archive.writestr(filename, material.serialize())
+ try:
+ archive.writestr(filename, material.serialize())
+ except OSError as e:
+ Logger.log("e", f"An error has occurred while writing the material \'{metadata['id']}\' in the file \'{filename}\': {e}.")
diff --git a/cura/Machines/Models/QualityProfilesDropDownMenuModel.py b/cura/Machines/Models/QualityProfilesDropDownMenuModel.py
index 7aa30c6f82..f7316e9c09 100644
--- a/cura/Machines/Models/QualityProfilesDropDownMenuModel.py
+++ b/cura/Machines/Models/QualityProfilesDropDownMenuModel.py
@@ -41,10 +41,6 @@ class QualityProfilesDropDownMenuModel(ListModel):
machine_manager.activeQualityGroupChanged.connect(self._onChange)
machine_manager.activeMaterialChanged.connect(self._onChange)
machine_manager.activeVariantChanged.connect(self._onChange)
- machine_manager.extruderChanged.connect(self._onChange)
-
- extruder_manager = application.getExtruderManager()
- extruder_manager.extrudersChanged.connect(self._onChange)
self._layer_height_unit = "" # This is cached
diff --git a/cura/MultiplyObjectsJob.py b/cura/MultiplyObjectsJob.py
index 4c1caf137c..1446ae687e 100644
--- a/cura/MultiplyObjectsJob.py
+++ b/cura/MultiplyObjectsJob.py
@@ -6,11 +6,15 @@ from typing import List
from UM.Application import Application
from UM.Job import Job
+from UM.Math.Vector import Vector
from UM.Message import Message
+from UM.Operations.AddSceneNodeOperation import AddSceneNodeOperation
+from UM.Operations.GroupedOperation import GroupedOperation
+from UM.Operations.TranslateOperation import TranslateOperation
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
from UM.Scene.SceneNode import SceneNode
from UM.i18n import i18nCatalog
-from cura.Arranging.Nest2DArrange import arrange
+from cura.Arranging.Nest2DArrange import arrange, createGroupOperationForArrange
i18n_catalog = i18nCatalog("cura")
@@ -43,11 +47,11 @@ class MultiplyObjectsJob(Job):
# Only count sliceable objects
if node_.callDecoration("isSliceable"):
fixed_nodes.append(node_)
-
+ nodes_to_add_without_arrange = []
for node in self._objects:
# If object is part of a group, multiply group
current_node = node
- while current_node.getParent() and (current_node.getParent().callDecoration("isGroup") or current_node.getParent().callDecoration("isSliceable")):
+ while current_node.getParent() and current_node.getParent().callDecoration("isGroup"):
current_node = current_node.getParent()
if current_node in processed_nodes:
@@ -56,19 +60,38 @@ class MultiplyObjectsJob(Job):
for _ in range(self._count):
new_node = copy.deepcopy(node)
-
# Same build plate
build_plate_number = current_node.callDecoration("getBuildPlateNumber")
new_node.callDecoration("setBuildPlateNumber", build_plate_number)
for child in new_node.getChildren():
child.callDecoration("setBuildPlateNumber", build_plate_number)
-
- nodes.append(new_node)
+ if not current_node.getParent().callDecoration("isSliceable"):
+ nodes.append(new_node)
+ else:
+ # The node we're trying to place has another node that is sliceable as a parent.
+ # As such, we shouldn't arrange it (but it should be added to the scene!)
+ nodes_to_add_without_arrange.append(new_node)
+ new_node.setParent(current_node.getParent())
found_solution_for_all = True
+ group_operation = GroupedOperation()
if nodes:
- found_solution_for_all = arrange(nodes, Application.getInstance().getBuildVolume(), fixed_nodes,
- factor = 10000, add_new_nodes_in_scene = True)
+ group_operation, not_fit_count = createGroupOperationForArrange(nodes,
+ Application.getInstance().getBuildVolume(),
+ fixed_nodes,
+ factor = 10000,
+ add_new_nodes_in_scene = True)
+ found_solution_for_all = not_fit_count == 0
+
+ if nodes_to_add_without_arrange:
+ for nested_node in nodes_to_add_without_arrange:
+ group_operation.addOperation(AddSceneNodeOperation(nested_node, nested_node.getParent()))
+ # Move the node a tiny bit so it doesn't overlap with the existing one.
+ # This doesn't fix it if someone creates more than one duplicate, but it at least shows that something
+ # happened (and after moving it, it's clear that there are more underneath)
+ group_operation.addOperation(TranslateOperation(nested_node, Vector(2.5, 2.5, 2.5)))
+
+ group_operation.push()
status_message.hide()
if not found_solution_for_all:
diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py
index 9bff497c17..291845fd78 100644
--- a/cura/OAuth2/AuthorizationService.py
+++ b/cura/OAuth2/AuthorizationService.py
@@ -99,7 +99,14 @@ class AuthorizationService:
# If no auth data exists, we should always log in again.
Logger.log("d", "There was no auth data or access token")
return None
- user_data = self._auth_helpers.parseJWT(self._auth_data.access_token)
+
+ try:
+ user_data = self._auth_helpers.parseJWT(self._auth_data.access_token)
+ except AttributeError:
+ # THis might seem a bit double, but we get crash reports about this (CURA-2N2 in sentry)
+ Logger.log("d", "There was no auth data or access token")
+ return None
+
if user_data:
# If the profile was found, we return it immediately.
return user_data
diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py
index 09c9a7a3dc..518eaaa8fa 100644
--- a/cura/Settings/ContainerManager.py
+++ b/cura/Settings/ContainerManager.py
@@ -23,6 +23,8 @@ from UM.Settings.InstanceContainer import InstanceContainer
import cura.CuraApplication
from cura.Machines.ContainerTree import ContainerTree
+from cura.Settings.ExtruderStack import ExtruderStack
+from cura.Settings.GlobalStack import GlobalStack
if TYPE_CHECKING:
from cura.CuraApplication import CuraApplication
@@ -408,7 +410,7 @@ class ContainerManager(QObject):
container_registry = cura.CuraApplication.CuraApplication.getInstance().getContainerRegistry()
for plugin_id, container_type in container_registry.getContainerTypes():
# Ignore default container types since those are not plugins
- if container_type in (InstanceContainer, ContainerStack, DefinitionContainer):
+ if container_type in (InstanceContainer, ContainerStack, DefinitionContainer, GlobalStack, ExtruderStack):
continue
serialize_type = ""
diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py
index ac9d704afd..d8e17ec305 100755
--- a/cura/Settings/MachineManager.py
+++ b/cura/Settings/MachineManager.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Ultimaker B.V.
+# Copyright (c) 2021 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import time
@@ -1398,6 +1398,8 @@ class MachineManager(QObject):
# previous one).
self._global_container_stack.setUserChanges(global_user_changes)
for i, user_changes in enumerate(per_extruder_user_changes):
+ if i >= len(self._global_container_stack.extruderList): # New printer has fewer extruders.
+ break
self._global_container_stack.extruderList[i].setUserChanges(per_extruder_user_changes[i])
@pyqtSlot(QObject)
diff --git a/cura/SingleInstance.py b/cura/SingleInstance.py
index fa82ceb104..597a4d5f32 100644
--- a/cura/SingleInstance.py
+++ b/cura/SingleInstance.py
@@ -18,6 +18,8 @@ class SingleInstance:
self._single_instance_server = None
+ self._application.getPreferences().addPreference("cura/single_instance_clear_before_load", True)
+
# Starts a client that checks for a single instance server and sends the files that need to opened if the server
# exists. Returns True if the single instance server is found, otherwise False.
def startClient(self) -> bool:
@@ -42,8 +44,9 @@ class SingleInstance:
# "command" field is required and holds the name of the command to execute.
# Other fields depend on the command.
- payload = {"command": "clear-all"}
- single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii"))
+ if self._application.getPreferences().getValue("cura/single_instance_clear_before_load"):
+ payload = {"command": "clear-all"}
+ single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii"))
payload = {"command": "focus"}
single_instance_socket.write(bytes(json.dumps(payload) + "\n", encoding = "ascii"))
diff --git a/cura/UI/PrintInformation.py b/cura/UI/PrintInformation.py
index d6bd336558..2135c6fe81 100644
--- a/cura/UI/PrintInformation.py
+++ b/cura/UI/PrintInformation.py
@@ -13,6 +13,8 @@ from UM.Qt.Duration import Duration
from UM.Scene.SceneNode import SceneNode
from UM.i18n import i18nCatalog
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeTypeNotFoundError
+from UM.OutputDevice.OutputDevice import OutputDevice
+from UM.OutputDevice.ProjectOutputDevice import ProjectOutputDevice
if TYPE_CHECKING:
from cura.CuraApplication import CuraApplication
@@ -68,6 +70,7 @@ class PrintInformation(QObject):
self._application.globalContainerStackChanged.connect(self.setToZeroPrintInformation)
self._application.fileLoaded.connect(self.setBaseName)
self._application.workspaceLoaded.connect(self.setProjectName)
+ self._application.getOutputDeviceManager().writeStarted.connect(self._onOutputStart)
self._application.getMachineManager().rootMaterialChanged.connect(self._onActiveMaterialsChanged)
self._application.getInstance().getPreferences().preferenceChanged.connect(self._onPreferencesChanged)
@@ -439,3 +442,11 @@ class PrintInformation(QObject):
"""Listen to scene changes to check if we need to reset the print information"""
self.setToZeroPrintInformation(self._active_build_plate)
+
+ def _onOutputStart(self, output_device: OutputDevice) -> None:
+ """If this is the sort of output 'device' (like local or online file storage, rather than a printer),
+ the user could have altered the file-name, and thus the project name should be altered as well."""
+ if isinstance(output_device, ProjectOutputDevice):
+ new_name = output_device.getLastOutputName()
+ if new_name is not None:
+ self.setJobName(os.path.splitext(os.path.basename(new_name))[0])
diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py
index 74f564c825..8636c465c0 100755
--- a/plugins/CuraEngineBackend/CuraEngineBackend.py
+++ b/plugins/CuraEngineBackend/CuraEngineBackend.py
@@ -428,6 +428,7 @@ class CuraEngineBackend(QObject, Backend):
"Unable to slice with the current settings. The following settings have errors: {0}").format(", ".join(error_labels)),
title = catalog.i18nc("@info:title", "Unable to slice"),
message_type = Message.MessageType.WARNING)
+ Logger.warning(f"Unable to slice with the current settings. The following settings have errors: {', '.join(error_labels)}")
self._error_message.show()
self.setState(BackendState.Error)
self.backendError.emit(job)
@@ -454,6 +455,7 @@ class CuraEngineBackend(QObject, Backend):
"Unable to slice due to some per-model settings. The following settings have errors on one or more models: {error_labels}").format(error_labels = ", ".join(errors.values())),
title = catalog.i18nc("@info:title", "Unable to slice"),
message_type = Message.MessageType.WARNING)
+ Logger.warning(f"Unable to slice due to per-object settings. The following settings have errors on one or more models: {', '.join(errors.values())}")
self._error_message.show()
self.setState(BackendState.Error)
self.backendError.emit(job)
diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py
index de3b375e28..9e53ce8b3a 100644
--- a/plugins/CuraEngineBackend/StartSliceJob.py
+++ b/plugins/CuraEngineBackend/StartSliceJob.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Ultimaker B.V.
+# Copyright (c) 2021 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import numpy
@@ -353,10 +353,19 @@ class StartSliceJob(Job):
result[key] = stack.getProperty(key, "value")
Job.yieldThread()
- result["print_bed_temperature"] = result["material_bed_temperature"] # Renamed settings.
+ # Material identification in addition to non-human-readable GUID
+ result["material_id"] = stack.material.getMetaDataEntry("base_file", "")
+ result["material_type"] = stack.material.getMetaDataEntry("material", "")
+ result["material_name"] = stack.material.getMetaDataEntry("name", "")
+ result["material_brand"] = stack.material.getMetaDataEntry("brand", "")
+
+ # Renamed settings.
+ result["print_bed_temperature"] = result["material_bed_temperature"]
result["print_temperature"] = result["material_print_temperature"]
result["travel_speed"] = result["speed_travel"]
- result["time"] = time.strftime("%H:%M:%S") #Some extra settings.
+
+ #Some extra settings.
+ result["time"] = time.strftime("%H:%M:%S")
result["date"] = time.strftime("%d-%m-%Y")
result["day"] = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][int(time.strftime("%w"))]
result["initial_extruder_nr"] = CuraApplication.getInstance().getExtruderManager().getInitialExtruderNr()
@@ -455,9 +464,9 @@ class StartSliceJob(Job):
bed_temperature_settings = ["material_bed_temperature", "material_bed_temperature_layer_0"]
pattern = r"\{(%s)(,\s?\w+)?\}" % "|".join(bed_temperature_settings) # match {setting} as well as {setting, extruder_nr}
settings["material_bed_temp_prepend"] = re.search(pattern, start_gcode) == None
- print_temperature_settings = ["material_print_temperature", "material_print_temperature_layer_0", "default_material_print_temperature", "material_initial_print_temperature", "material_final_print_temperature", "material_standby_temperature"]
+ print_temperature_settings = ["material_print_temperature", "material_print_temperature_layer_0", "default_material_print_temperature", "material_initial_print_temperature", "material_final_print_temperature", "material_standby_temperature", "print_temperature"]
pattern = r"\{(%s)(,\s?\w+)?\}" % "|".join(print_temperature_settings) # match {setting} as well as {setting, extruder_nr}
- settings["material_print_temp_prepend"] = re.search(pattern, start_gcode) == None
+ settings["material_print_temp_prepend"] = re.search(pattern, start_gcode) is None
# Replace the setting tokens in start and end g-code.
# Use values from the first used extruder by default so we get the expected temperatures
diff --git a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py
index ad87ea9b8a..5301151c5f 100644
--- a/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py
+++ b/plugins/DigitalLibrary/src/DigitalFactoryApiClient.py
@@ -67,10 +67,12 @@ class DigitalFactoryApiClient:
def callbackWrap(response: Optional[Any] = None, *args, **kwargs) -> None:
if (response is not None and isinstance(response, DigitalFactoryFeatureBudgetResponse) and
response.library_max_private_projects is not None):
- callback(
- response.library_max_private_projects == -1 or # Note: -1 is unlimited
- response.library_max_private_projects > 0)
+ # A user has DF access when library_max_private_projects is either -1 (unlimited) or bigger then 0
+ has_access = response.library_max_private_projects == -1 or response.library_max_private_projects > 0
+ callback(has_access)
self._library_max_private_projects = response.library_max_private_projects
+ # update the account with the additional user rights
+ self._account.updateAdditionalRight(df_access = has_access)
else:
Logger.warning(f"Digital Factory: Response is not a feature budget, likely an error: {str(response)}")
callback(False)
diff --git a/plugins/DigitalLibrary/src/DigitalFactoryController.py b/plugins/DigitalLibrary/src/DigitalFactoryController.py
index b94f0e69c8..e1b1c62172 100644
--- a/plugins/DigitalLibrary/src/DigitalFactoryController.py
+++ b/plugins/DigitalLibrary/src/DigitalFactoryController.py
@@ -603,8 +603,8 @@ class DigitalFactoryController(QObject):
self._saveFileToSelectedProjectHelper(filename, formats)
def _saveFileToSelectedProjectHelper(self, filename: str, formats: List[str]) -> None:
- # Indicate we have started sending a job.
- self.uploadStarted.emit()
+ # Indicate we have started sending a job (and propagate any user file name changes back to the open project)
+ self.uploadStarted.emit(filename if "3mf" in formats else None)
library_project_id = self._project_model.items[self._selected_project_idx]["libraryProjectId"]
library_project_name = self._project_model.items[self._selected_project_idx]["displayName"]
diff --git a/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py b/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py
index 70e3ac34f2..0a10ea034c 100644
--- a/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py
+++ b/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py
@@ -8,6 +8,8 @@ from UM.Logger import Logger
from UM.OutputDevice import OutputDeviceError
from UM.OutputDevice.ProjectOutputDevice import ProjectOutputDevice
from UM.Scene.SceneNode import SceneNode
+from UM.Version import Version
+from cura import ApplicationMetadata
from cura.API import Account
from cura.CuraApplication import CuraApplication
from .DigitalFactoryController import DigitalFactoryController
@@ -105,8 +107,11 @@ class DigitalFactoryOutputDevice(ProjectOutputDevice):
self.enabled = logged_in and self._controller.userAccountHasLibraryAccess()
self.enabledChanged.emit()
- def _onWriteStarted(self) -> None:
+ def _onWriteStarted(self, new_name: Optional[str] = None) -> None:
self._writing = True
+ if new_name and Version(ApplicationMetadata.CuraSDKVersion) >= Version("7.8.0"):
+ # setLastOutputName is only supported in sdk version 7.8.0 and up
+ self.setLastOutputName(new_name) # On saving, the user can change the name, this should propagate.
self.writeStarted.emit(self)
def _onWriteFinished(self) -> None:
diff --git a/plugins/PerObjectSettingsTool/SettingPickDialog.qml b/plugins/PerObjectSettingsTool/SettingPickDialog.qml
index 28ddb7e642..1bba094e49 100644
--- a/plugins/PerObjectSettingsTool/SettingPickDialog.qml
+++ b/plugins/PerObjectSettingsTool/SettingPickDialog.qml
@@ -96,11 +96,11 @@ UM.Dialog
}
showAll: toggleShowAll.checked || filterInput.text !== ""
}
- delegate:Loader
+ delegate: Loader
{
id: loader
- width: parent.width
+ width: listview.width
height: model.type != undefined ? UM.Theme.getSize("section").height : 0
property var definition: model
diff --git a/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py b/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py
index 712af63b07..3a46fcabdf 100644
--- a/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py
+++ b/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py
@@ -9,7 +9,7 @@
# Modified by Ricardo Gomez, ricardoga@otulook.com, to add Bed Temperature and make it work with Cura_13.06.04+
# Modified by Stefan Heule, Dim3nsioneer@gmx.ch since V3.0 (see changelog below)
# Modified by Jaime van Kessel (Ultimaker), j.vankessel@ultimaker.com to make it work for 15.10 / 2.x
-# Modified by Ruben Dulek (Ultimaker), r.dulek@ultimaker.com, to debug.
+# Modified by Ghostkeeper (Ultimaker), rubend@tutanota.com, to debug.
# Modified by Wes Hanney, https://github.com/novamxd, Retract Length + Speed, Clean up
# history / changelog:
diff --git a/plugins/PostProcessingPlugin/scripts/FilamentChange.py b/plugins/PostProcessingPlugin/scripts/FilamentChange.py
index 17ff045b8d..ff62e1949c 100644
--- a/plugins/PostProcessingPlugin/scripts/FilamentChange.py
+++ b/plugins/PostProcessingPlugin/scripts/FilamentChange.py
@@ -7,6 +7,8 @@
from typing import List
from ..Script import Script
+from UM.Application import Application #To get the current printer's settings.
+
class FilamentChange(Script):
_layer_keyword = ";LAYER:"
@@ -81,10 +83,51 @@ class FilamentChange(Script):
"type": "float",
"default_value": 0,
"minimum_value": 0
+ },
+ "retract_method":
+ {
+ "label": "Retract method",
+ "description": "The gcode variant to use for retract.",
+ "type": "enum",
+ "options": {"U": "Marlin (M600 U)", "L": "Reprap (M600 L)"},
+ "default_value": "U",
+ "value": "\\\"L\\\" if machine_gcode_flavor==\\\"RepRap (RepRap)\\\" else \\\"U\\\"",
+ "enabled": "not firmware_config"
+ },
+ "machine_gcode_flavor":
+ {
+ "label": "G-code flavor",
+ "description": "The type of g-code to be generated. This setting is controlled by the script and will not be visible.",
+ "type": "enum",
+ "options":
+ {
+ "RepRap (Marlin/Sprinter)": "Marlin",
+ "RepRap (Volumetric)": "Marlin (Volumetric)",
+ "RepRap (RepRap)": "RepRap",
+ "UltiGCode": "Ultimaker 2",
+ "Griffin": "Griffin",
+ "Makerbot": "Makerbot",
+ "BFB": "Bits from Bytes",
+ "MACH3": "Mach3",
+ "Repetier": "Repetier"
+ },
+ "default_value": "RepRap (Marlin/Sprinter)",
+ "enabled": "false"
}
}
}"""
+ ## Copy machine name and gcode flavor from global stack so we can use their value in the script stack
+ def initialize(self) -> None:
+ super().initialize()
+
+ global_container_stack = Application.getInstance().getGlobalContainerStack()
+ if global_container_stack is None or self._instance is None:
+ return
+
+ for key in ["machine_gcode_flavor"]:
+ self._instance.setProperty(key, "value", global_container_stack.getProperty(key, "value"))
+
def execute(self, data: List[str]):
"""Inserts the filament change g-code at specific layer numbers.
@@ -106,7 +149,10 @@ class FilamentChange(Script):
color_change = color_change + (" E%.2f" % initial_retract)
if later_retract is not None and later_retract > 0.:
- color_change = color_change + (" L%.2f" % later_retract)
+ # Reprap uses 'L': https://reprap.org/wiki/G-code#M600:_Filament_change_pause
+ # Marlin uses 'U' https://marlinfw.org/docs/gcode/M600.html
+ retract_method = self.getSettingValueByKey("retract_method")
+ color_change = color_change + (" %s%.2f" % (retract_method, later_retract))
if x_pos is not None:
color_change = color_change + (" X%.2f" % x_pos)
diff --git a/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py b/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py
index a0c3648304..40a56ace57 100644
--- a/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py
+++ b/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2017 Ruben Dulek
+# Copyright (c) 2017 Ghostkeeper
# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher.
import re #To perform the search and replace.
diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py
index 02e71207e0..0e8db0f88a 100755
--- a/plugins/SliceInfoPlugin/SliceInfo.py
+++ b/plugins/SliceInfoPlugin/SliceInfo.py
@@ -130,6 +130,7 @@ class SliceInfo(QObject, Extension):
data["cura_version"] = self._application.getVersion()
data["cura_build_type"] = ApplicationMetadata.CuraBuildType
org_id = user_profile.get("organization_id", None) if user_profile else None
+ data["is_logged_in"] = self._application.getCuraAPI().account.isLoggedIn
data["organization_id"] = org_id if org_id else None
data["subscriptions"] = user_profile.get("subscriptions", []) if user_profile else []
diff --git a/plugins/SliceInfoPlugin/example_data.html b/plugins/SliceInfoPlugin/example_data.html
index 5b97f1cba6..85a9f554ff 100644
--- a/plugins/SliceInfoPlugin/example_data.html
+++ b/plugins/SliceInfoPlugin/example_data.html
@@ -7,6 +7,7 @@
<b>Intent Profile:</b> Default<br/>
<b>Quality Profile:</b> Fast<br/>
<b>Using Custom Settings:</b> No<br/>
+ <b>Is Logged In:</b> Yes<br/>
<b>Organization ID (if any):</b> ABCDefGHIjKlMNOpQrSTUvYxWZ0-1234567890abcDE=<br/>
<b>Subscriptions (if any):</b>
<ul>
diff --git a/plugins/Toolbox/src/CloudSync/LicensePresenter.py b/plugins/Toolbox/src/CloudSync/LicensePresenter.py
index 9a68c93d71..39ce11c8d3 100644
--- a/plugins/Toolbox/src/CloudSync/LicensePresenter.py
+++ b/plugins/Toolbox/src/CloudSync/LicensePresenter.py
@@ -1,3 +1,6 @@
+# Copyright (c) 2021 Ultimaker B.V.
+# Cura is released under the terms of the LGPLv3 or higher.
+
import os
from collections import OrderedDict
from typing import Dict, Optional, List, Any
@@ -95,7 +98,11 @@ class LicensePresenter(QObject):
for package_id, item in packages.items():
item["package_id"] = package_id
- item["licence_content"] = self._package_manager.getPackageLicense(item["package_path"])
+ try:
+ item["licence_content"] = self._package_manager.getPackageLicense(item["package_path"])
+ except EnvironmentError as e:
+ Logger.error(f"Could not open downloaded package {package_id} to read license file! {type(e)} - {e}")
+ continue # Skip this package.
if item["licence_content"] is None:
# Implicitly accept when there is no license
item["accepted"] = True
diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py
index b91b580779..e525a88d89 100644
--- a/plugins/Toolbox/src/Toolbox.py
+++ b/plugins/Toolbox/src/Toolbox.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Ultimaker B.V.
+# Copyright (c) 2021 Ultimaker B.V.
# Toolbox is released under the terms of the LGPLv3 or higher.
import json
@@ -542,7 +542,7 @@ class Toolbox(QObject, Extension):
# Make API Calls
# --------------------------------------------------------------------------
def _makeRequestByType(self, request_type: str) -> None:
- Logger.log("d", "Requesting [%s] metadata from server.", request_type)
+ Logger.debug(f"Requesting {request_type} metadata from server.")
url = self._request_urls[request_type]
callback = lambda r, rt = request_type: self._onDataRequestFinished(rt, r)
@@ -554,7 +554,7 @@ class Toolbox(QObject, Extension):
@pyqtSlot(str)
def startDownload(self, url: str) -> None:
- Logger.log("i", "Attempting to download & install package from %s.", url)
+ Logger.info(f"Attempting to download & install package from {url}.")
callback = lambda r: self._onDownloadFinished(r)
error_callback = lambda r, e: self._onDownloadFailed(r, e)
@@ -572,7 +572,7 @@ class Toolbox(QObject, Extension):
@pyqtSlot()
def cancelDownload(self) -> None:
- Logger.log("i", "User cancelled the download of a package. request %s", self._download_request_data)
+ Logger.info(f"User cancelled the download of a package. request {self._download_request_data}")
if self._download_request_data is not None:
self._application.getHttpRequestManager().abortRequest(self._download_request_data)
self._download_request_data = None
@@ -585,7 +585,7 @@ class Toolbox(QObject, Extension):
# Handlers for Network Events
# --------------------------------------------------------------------------
def _onDataRequestError(self, request_type: str, reply: "QNetworkReply", error: "QNetworkReply.NetworkError") -> None:
- Logger.log("e", "Request [%s] failed due to error [%s]: %s", request_type, error, reply.errorString())
+ Logger.error(f"Request {request_type} failed due to error {error}: {reply.errorString()}")
self.setViewPage("errored")
def _onDataRequestFinished(self, request_type: str, reply: "QNetworkReply") -> None:
@@ -682,9 +682,13 @@ class Toolbox(QObject, Extension):
if not package_info:
Logger.log("w", "Package file [%s] was not a valid CuraPackage.", file_path)
return
-
- license_content = self._package_manager.getPackageLicense(file_path)
package_id = package_info["package_id"]
+
+ try:
+ license_content = self._package_manager.getPackageLicense(file_path)
+ except EnvironmentError as e:
+ Logger.error(f"Could not open downloaded package {package_id} to read license file! {type(e)} - {e}")
+ return
if license_content is not None:
# get the icon url for package_id, make sure the result is a string, never None
icon_url = next((x["icon_url"] for x in self.packagesModel.items if x["id"] == package_id), None) or ""
diff --git a/plugins/UFPReader/plugin.json b/plugins/UFPReader/plugin.json
index be0ea40073..08df39c938 100644
--- a/plugins/UFPReader/plugin.json
+++ b/plugins/UFPReader/plugin.json
@@ -3,6 +3,6 @@
"author": "Ultimaker B.V.",
"version": "1.0.0",
"description": "Provides support for reading Ultimaker Format Packages.",
- "supported_sdk_versions": ["7.7.0"],
+ "supported_sdk_versions": ["7.8.0"],
"i18n-catalog": "cura"
} \ No newline at end of file
diff --git a/plugins/UM3NetworkPrinting/resources/svg/CloudPlatform.svg b/plugins/UM3NetworkPrinting/resources/svg/CloudPlatform.svg
new file mode 100644
index 0000000000..5da9f17bbf
--- /dev/null
+++ b/plugins/UM3NetworkPrinting/resources/svg/CloudPlatform.svg
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ viewBox="0 0 274.75 126.24"
+ version="1.1"
+ id="svg425"
+ sodipodi:docname="CloudPlatform.svg"
+ width="274.75"
+ height="126.24"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+ <metadata
+ id="metadata429">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1920"
+ inkscape:window-height="1200"
+ id="namedview427"
+ showgrid="false"
+ fit-margin-left="1"
+ fit-margin-bottom="1"
+ fit-margin-top="1"
+ fit-margin-right="1"
+ inkscape:zoom="2.593819"
+ inkscape:cx="115.77157"
+ inkscape:cy="14.444977"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg425" />
+ <defs
+ id="defs332">
+ <style
+ id="style330">.cls-1{fill:#f3f8fe;}.cls-2{fill:none;stroke:#061884;stroke-miterlimit:10;}.cls-3{fill:#061884;}.cls-4,.cls-6{fill:#fff;}.cls-4{fill-rule:evenodd;}.cls-5{fill:#dde9fd;}.cls-7{fill:#c5dbfb;}</style>
+ </defs>
+ <g
+ id="Layer_2"
+ data-name="Layer 2"
+ transform="translate(-28.84,-11.189998)">
+ <path
+ class="cls-1"
+ d="M 71.93,79.82 H 49.62 a 4.12,4.12 0 0 0 -4.13,4.11 v 47.55 a 4.13,4.13 0 0 0 4.13,4.12 h 22.31 a 4.13,4.13 0 0 0 4.13,-4.12 V 83.93 a 4.12,4.12 0 0 0 -4.13,-4.11 z m 2.18,51 a 2.82,2.82 0 0 1 -2.82,2.82 h -21 a 2.83,2.83 0 0 1 -2.82,-2.82 V 84.58 a 2.84,2.84 0 0 1 2.82,-2.83 h 5.92 a 1.45,1.45 0 0 0 1.45,1.46 h 6.3 a 1.46,1.46 0 0 0 1.46,-1.46 h 5.91 a 2.83,2.83 0 0 1 2.82,2.83 z"
+ id="path334"
+ inkscape:connector-curvature="0"
+ style="fill:#f3f8fe" />
+ <path
+ class="cls-2"
+ d="M 71.93,79.82 H 49.62 a 4.12,4.12 0 0 0 -4.13,4.11 v 47.55 a 4.13,4.13 0 0 0 4.13,4.12 h 22.31 a 4.13,4.13 0 0 0 4.13,-4.12 V 83.93 a 4.12,4.12 0 0 0 -4.13,-4.11 z"
+ id="path336"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#061884;stroke-miterlimit:10" />
+ <path
+ class="cls-3"
+ d="m 63.2,81 h -4.85 a 0.5,0.5 0 1 0 0,1 h 4.85 a 0.5,0.5 0 0 0 0,-1 z"
+ id="path338"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <path
+ class="cls-4"
+ d="m 74.11,84.58 v 46.26 a 2.82,2.82 0 0 1 -2.82,2.82 h -21 a 2.83,2.83 0 0 1 -2.82,-2.82 V 84.58 a 2.84,2.84 0 0 1 2.82,-2.83 h 5.92 a 1.45,1.45 0 0 0 1.45,1.46 h 6.3 a 1.46,1.46 0 0 0 1.46,-1.46 h 5.91 a 2.83,2.83 0 0 1 2.78,2.83 z"
+ id="path340"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-rule:evenodd" />
+ <rect
+ class="cls-5"
+ x="50.32"
+ y="125.88"
+ width="19.91"
+ height="4.7399998"
+ id="rect342"
+ style="fill:#dde9fd" />
+ <rect
+ class="cls-5"
+ x="50.32"
+ y="85.959999"
+ width="19.91"
+ height="1.9"
+ rx="0.94999999"
+ id="rect344"
+ style="fill:#dde9fd" />
+ <rect
+ class="cls-5"
+ x="50.32"
+ y="114.4"
+ width="10.43"
+ height="1.9"
+ rx="0.94999999"
+ id="rect346"
+ style="fill:#dde9fd" />
+ <rect
+ class="cls-5"
+ x="50.32"
+ y="117.25"
+ width="10.43"
+ height="1.9"
+ rx="0.94999999"
+ id="rect348"
+ style="fill:#dde9fd" />
+ <path
+ class="cls-1"
+ d="m 291.5,135.38 a 5.12,5.12 0 0 0 5.11,-5.11 v -0.38 a 0.38,0.38 0 0 0 -0.37,-0.37 h -103.9 a 0.37,0.37 0 0 0 -0.36,0.37 v 0.38 a 5.11,5.11 0 0 0 5.1,5.11 z"
+ id="path350"
+ inkscape:connector-curvature="0"
+ style="fill:#f3f8fe" />
+ <path
+ class="cls-3"
+ d="m 296.24,129.89 h -103.9 v 0.38 0 a 4.74,4.74 0 0 0 4.74,4.74 h 94.42 a 4.74,4.74 0 0 0 4.74,-4.74 v -0.38 m 0,-0.73 a 0.73,0.73 0 0 1 0.73,0.73 v 0.38 a 5.47,5.47 0 0 1 -5.47,5.47 h -94.42 a 5.47,5.47 0 0 1 -5.47,-5.47 v -0.38 a 0.73,0.73 0 0 1 0.73,-0.73 z"
+ id="path352"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <path
+ class="cls-3"
+ d="m 235.51,129.16 a 2.93,2.93 0 0 0 2.93,2.93 h 11.71 a 2.93,2.93 0 0 0 2.92,-2.93 z"
+ id="path354"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <path
+ class="cls-1"
+ d="M 287.83,129.52 V 71.36 a 2.56,2.56 0 0 0 -2.56,-2.56 h -81.95 a 2.56,2.56 0 0 0 -2.56,2.56 v 58.16 z"
+ id="path356"
+ inkscape:connector-curvature="0"
+ style="fill:#f3f8fe" />
+ <path
+ class="cls-2"
+ d="M 287.83,129.52 V 71.36 a 2.56,2.56 0 0 0 -2.56,-2.56 h -81.95 a 2.56,2.56 0 0 0 -2.56,2.56 v 58.16"
+ id="path358"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#061884;stroke-miterlimit:10" />
+ <path
+ class="cls-6"
+ d="m 284.17,128.79 v -56 a 0.36,0.36 0 0 0 -0.37,-0.36 h -79 a 0.36,0.36 0 0 0 -0.36,0.36 v 56 z"
+ id="path360"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff" />
+ <path
+ class="cls-1"
+ d="m 283.8,72.82 h -79 v 55.61 h 79 V 72.82 m 0.74,0 v 56.34 H 204.05 V 72.82 a 0.73,0.73 0 0 1 0.73,-0.73 h 79 a 0.74,0.74 0 0 1 0.76,0.73 z"
+ id="path362"
+ inkscape:connector-curvature="0"
+ style="fill:#f3f8fe" />
+ <path
+ class="cls-2"
+ d="M 204.11,129.57 V 73.86 a 1.64,1.64 0 0 1 1.64,-1.64 H 283 a 1.64,1.64 0 0 1 1.64,1.64 v 55.71"
+ id="path364"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#061884;stroke-miterlimit:10" />
+ <path
+ class="cls-2"
+ d="m 291.5,135.38 a 5.12,5.12 0 0 0 5.11,-5.11 v -0.38 a 0.38,0.38 0 0 0 -0.37,-0.37 h -103.9 a 0.37,0.37 0 0 0 -0.36,0.37 v 0.38 a 5.11,5.11 0 0 0 5.1,5.11 z"
+ id="path366"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#061884;stroke-miterlimit:10" />
+ <path
+ class="cls-3"
+ d="m 131.73,12.19 c -3.87,0 -8.7,5.75 -14.75,17.5 -4.63,9 -8.26,18.32 -8.3,18.41 a 0.86443623,0.86443623 0 0 0 1.61,0.63 c 5.46,-14.09 16.24,-36 21.88,-34.77 5.64,1.23 5.35,21.35 3.87,33.76 a 0.86142324,0.86142324 0 1 0 1.71,0.21 c 0.41,-3.45 3.75,-33.71 -5.22,-35.65 a 3.57,3.57 0 0 0 -0.8,-0.09 z"
+ id="path368"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <path
+ class="cls-3"
+ d="m 143.87,17.34 a 3.56,3.56 0 0 0 -0.8,0.08 c -9,1.94 -5.63,32.2 -5.22,35.65 a 0.86142324,0.86142324 0 1 0 1.71,-0.21 c -1.48,-12.41 -1.74,-32.55 3.87,-33.76 5.61,-1.21 16.42,20.68 21.88,34.77 a 0.86443623,0.86443623 0 1 0 1.61,-0.63 c 0,-0.09 -3.67,-9.42 -8.3,-18.41 -6.05,-11.75 -10.88,-17.49 -14.75,-17.49 z"
+ id="path370"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <path
+ class="cls-1"
+ d="m 178,135.58 a 2.25,2.25 0 0 0 2.24,-2.24 v -84 A 2.3,2.3 0 0 0 178,47 H 94.81 a 2.29,2.29 0 0 0 -2.24,2.29 v 84 a 2.24,2.24 0 0 0 2.24,2.24 h 6 l 0.69,-0.38 c 3.56,-2 3.94,-2.2 8.66,-2.2 h 51.59 c 4.72,0 5.09,0.21 8.66,2.2 l 0.69,0.38 z"
+ id="path372"
+ inkscape:connector-curvature="0"
+ style="fill:#f3f8fe" />
+ <path
+ class="cls-3"
+ d="M 178,47.45 H 94.81 A 1.85,1.85 0 0 0 93,49.31 v 84 0 a 1.81,1.81 0 0 0 1.81,1.81 h 5.93 c 4.15,-2.3 4.37,-2.58 9.46,-2.58 h 51.59 c 5.08,0 5.31,0.28 9.46,2.58 H 178 a 1.81,1.81 0 0 0 1.81,-1.81 v -84 A 1.85,1.85 0 0 0 178,47.45 m 2.67,1.86 v 84 A 2.68,2.68 0 0 1 178,136 h -7 l -0.19,-0.11 -0.59,-0.33 c -3.55,-2 -3.84,-2.14 -8.45,-2.14 H 110.2 c -4.61,0 -4.9,0.16 -8.45,2.14 l -0.59,0.33 -0.2,0.11 h -6.15 a 2.66,2.66 0 0 1 -2.67,-2.67 v -84 a 2.69,2.69 0 0 1 2.67,-2.72 H 178 a 2.7,2.7 0 0 1 2.71,2.7 z"
+ id="path374"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <rect
+ class="cls-3"
+ x="111.92"
+ y="126.55"
+ width="3.4400001"
+ height="0.86000001"
+ id="rect376"
+ style="fill:#061884" />
+ <circle
+ class="cls-3"
+ cx="102.46"
+ cy="50.029999"
+ r="0.86000001"
+ id="circle378"
+ style="fill:#061884" />
+ <circle
+ class="cls-3"
+ cx="124.81"
+ cy="50.029999"
+ r="0.86000001"
+ id="circle380"
+ style="fill:#061884" />
+ <circle
+ class="cls-3"
+ cx="147.17"
+ cy="50.029999"
+ r="0.86000001"
+ id="circle382"
+ style="fill:#061884" />
+ <circle
+ class="cls-3"
+ cx="169.53"
+ cy="50.029999"
+ r="0.86000001"
+ id="circle384"
+ style="fill:#061884" />
+ <circle
+ class="cls-3"
+ cx="102.46"
+ cy="126.55"
+ r="0.86000001"
+ id="circle386"
+ style="fill:#061884" />
+ <circle
+ class="cls-3"
+ cx="169.53"
+ cy="126.55"
+ r="0.86000001"
+ id="circle388"
+ style="fill:#061884" />
+ <path
+ class="cls-6"
+ d="m 168.52,121.82 a 6.6,6.6 0 0 0 6.6,-6.59 V 60.42 A 3.1,3.1 0 0 0 172,57.34 h -71.19 a 3.08,3.08 0 0 0 -3.08,3.08 v 54.81 a 6.59,6.59 0 0 0 6.6,6.59 z"
+ id="path390"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff" />
+ <path
+ class="cls-1"
+ d="m 172,57.77 h -71.19 a 2.65,2.65 0 0 0 -2.65,2.65 v 54.81 a 6.16,6.16 0 0 0 6.17,6.16 h 64.19 a 6.18,6.18 0 0 0 6.17,-6.16 V 60.42 A 2.66,2.66 0 0 0 172,57.77 m 3.52,2.65 v 54.81 0 a 7,7 0 0 1 -7,7 h -64.19 a 7,7 0 0 1 -7,-7 V 60.42 a 3.51,3.51 0 0 1 3.51,-3.51 H 172 a 3.52,3.52 0 0 1 3.55,3.51 z"
+ id="path392"
+ inkscape:connector-curvature="0"
+ style="fill:#f3f8fe" />
+ <path
+ class="cls-3"
+ d="m 172,56.91 h -71.19 a 3.51,3.51 0 0 0 -3.51,3.51 v 54.81 a 7,7 0 0 0 7,7 h 64.19 a 7,7 0 0 0 7,-7 V 60.42 A 3.52,3.52 0 0 0 172,56.91 m 4.38,3.51 v 54.81 a 7.9,7.9 0 0 1 -7.89,7.88 h -64.16 a 7.88,7.88 0 0 1 -7.89,-7.88 V 60.42 a 4.37,4.37 0 0 1 4.37,-4.37 H 172 a 4.38,4.38 0 0 1 4.41,4.37 z"
+ id="path394"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <path
+ class="cls-7"
+ d="m 146.31,118 h -20.64 v 10.32 h 20.64 V 118 m 0,-0.85 v 0 a 0.83,0.83 0 0 1 0.84,0.83 v 10.32 0 a 0.83,0.83 0 0 1 -0.84,0.83 h -20.66 a 0.84,0.84 0 0 1 -0.84,-0.83 v -10.37 a 0.84,0.84 0 0 1 0.84,-0.83 z"
+ id="path396"
+ inkscape:connector-curvature="0"
+ style="fill:#c5dbfb" />
+ <path
+ class="cls-6"
+ d="m 142.1,65.93 a 1.35,1.35 0 0 0 1.29,-1 L 145,58.77 v -2.29 h -18 v 2.29 l 1.6,6.23 a 1.34,1.34 0 0 0 1.28,1 z"
+ id="path398"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff" />
+ <path
+ class="cls-3"
+ d="m 144.59,56.91 h -17.2 v 1.8 l 1.61,6.14 a 0.9,0.9 0 0 0 0.87,0.65 h 12.23 a 0.89,0.89 0 0 0 0.87,-0.65 l 1.62,-6.14 v -1.8 m 0.86,-0.86 v 2.78 0.1 l -1.62,6.16 a 1.77,1.77 0 0 1 -1.7,1.27 h -12.25 a 1.78,1.78 0 0 1 -1.7,-1.29 l -1.62,-6.14 v -0.1 -2.78 z"
+ id="path400"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <path
+ class="cls-6"
+ d="m 140.19,67.65 h 0.15 a 1.34,1.34 0 0 0 1.17,-1.48 l -0.84,-7.11 h -9.36 l -0.84,7.11 v 0.15 a 1.32,1.32 0 0 0 1.33,1.33 z"
+ id="path402"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff" />
+ <path
+ class="cls-3"
+ d="m 140.29,59.49 h -8.6 l -0.79,6.73 v 0.1 a 0.9,0.9 0 0 0 0.9,0.9 h 8.49 a 0.9,0.9 0 0 0 0.79,-1 l -0.79,-6.73 m 0.77,-0.86 0.09,0.76 0.79,6.74 a 1.21,1.21 0 0 1 0,0.19 1.76,1.76 0 0 1 -1.76,1.76 h -8.58 a 1.76,1.76 0 0 1 -1.55,-1.95 l 0.79,-6.73 0.09,-0.76 z"
+ id="path404"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <path
+ class="cls-6"
+ d="m 147,59.06 a 2.59,2.59 0 0 0 0,-5.16 h -22 a 2.59,2.59 0 0 0 0,5.16 z"
+ id="path406"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff" />
+ <path
+ class="cls-3"
+ d="m 147,54.33 h -22 a 2,2 0 0 0 -1.92,2.13 2.07,2.07 0 0 0 1.92,2.17 h 22 a 2.07,2.07 0 0 0 1.92,-2.17 2,2 0 0 0 -1.92,-2.13 m 2.78,2.13 a 2.92,2.92 0 0 1 -2.78,3 h -22 a 3,3 0 0 1 0,-6 h 22 a 2.9,2.9 0 0 1 2.75,3 z"
+ id="path408"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <rect
+ class="cls-3"
+ x="135.56"
+ y="54.330002"
+ width="0.86000001"
+ height="4.3699999"
+ id="rect410"
+ style="fill:#061884" />
+ <line
+ class="cls-2"
+ x1="29.84"
+ y1="135.92999"
+ x2="302.59"
+ y2="135.92999"
+ id="line412"
+ style="fill:none;stroke:#061884;stroke-miterlimit:10" />
+ <polygon
+ class="cls-5"
+ points="112.35,101.51 124.06,121.81 147.5,121.81 159.22,101.51 147.5,81.22 124.06,81.22 "
+ id="polygon414"
+ style="fill:#dde9fd" />
+ <polygon
+ class="cls-5"
+ points="224.57,103.51 234.68,121.01 254.89,121.01 264.99,103.51 254.89,86.01 234.68,86.01 "
+ id="polygon416"
+ style="fill:#dde9fd" />
+ <path
+ class="cls-6"
+ d="m 125.65,117.53 a 0.41,0.41 0 0 0 -0.41,0.4 v 10.37 0 a 0.41,0.41 0 0 0 0.41,0.4 h 20.68 a 0.4,0.4 0 0 0 0.41,-0.4 v -10.37 0 a 0.4,0.4 0 0 0 -0.41,-0.4 z"
+ id="path418"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff" />
+ <path
+ class="cls-3"
+ d="m 146.33,117.1 h -20.68 a 0.84,0.84 0 0 0 -0.84,0.83 v 10.37 a 0.84,0.84 0 0 0 0.84,0.83 h 20.68 a 0.83,0.83 0 0 0 0.84,-0.83 v -10.37 0 a 0.83,0.83 0 0 0 -0.84,-0.83 m 1.7,0.83 v 10.37 a 1.7,1.7 0 0 1 -1.7,1.69 h -20.68 a 1.7,1.7 0 0 1 -1.7,-1.69 v -10.37 a 1.7,1.7 0 0 1 1.7,-1.69 h 20.68 a 1.7,1.7 0 0 1 1.67,1.69 z"
+ id="path420"
+ inkscape:connector-curvature="0"
+ style="fill:#061884" />
+ <polygon
+ class="cls-5"
+ points="50.22,101.67 55.22,110.33 65.22,110.33 70.22,101.67 65.22,93.01 55.22,93.01 "
+ id="polygon422"
+ style="fill:#dde9fd" />
+ </g>
+</svg>
diff --git a/plugins/UM3NetworkPrinting/resources/svg/cloud-flow-start.svg b/plugins/UM3NetworkPrinting/resources/svg/cloud-flow-start.svg
deleted file mode 100644
index 746dc269fd..0000000000
--- a/plugins/UM3NetworkPrinting/resources/svg/cloud-flow-start.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="186px" height="57px" viewBox="0 0 186 57" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
- <title>Cloud_connection-icon</title>
- <desc>Created with Sketch.</desc>
- <g id="Cloud_connection-icon" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <path d="M38.6261428,52.7109865 L7.48755878,52.7109865 C6.85100215,52.7676651 6.21444551,52.994379 5.75149524,53.3911284 L5.40428251,53.7311992 C5.05706981,54.2979841 4.36264439,54.4113411 3.66821896,54.4113411 L0.543304569,54.4113411 C0.369698215,54.4113411 0.196091859,54.2413055 0.196091859,54.0712703 L0.196091859,0.623463283 C0.196091859,0.453427843 0.369698215,0.283392401 0.543304569,0.283392401 L48.3429212,0.283392401 C48.5165273,0.283392401 48.6901338,0.453427843 48.6901338,0.623463283 L48.6901338,26.0155943 C48.4613867,26.0052354 48.2313048,26 48,26 C46.4042274,26 44.8666558,26.2491876 43.4240742,26.7107738 L43.4240742,6.23463283 C43.4240742,5.61116956 42.9032553,5.15774169 42.3245675,5.15774169 L6.50378945,5.15774169 C5.86723281,5.15774169 5.40428251,5.66784803 5.40428251,6.23463283 L5.40428251,41.3186122 C5.40428251,42.9056095 6.73526457,44.2092147 8.35559054,44.2092147 L33.3440862,44.2092147 C34.087979,47.6221969 35.9937272,50.6011835 38.6261428,52.7109865 Z" id="Combined-Shape" fill="#08073F" fill-rule="nonzero"></path>
- <path d="M158.961954,52.7109865 L131.487559,52.7109865 C130.851002,52.7676651 130.214446,52.994379 129.751495,53.3911284 L129.404283,53.7311992 C129.05707,54.2979841 128.362644,54.4113411 127.668219,54.4113411 L124.543305,54.4113411 C124.369698,54.4113411 124.196092,54.2413055 124.196092,54.0712703 L124.196092,0.623463283 C124.196092,0.453427843 124.369698,0.283392401 124.543305,0.283392401 L172.342921,0.283392401 C172.516527,0.283392401 172.690134,0.453427843 172.690134,0.623463283 L172.690134,27.0854877 C172.13468,27.0289729 171.570805,27 171,27 C169.770934,27 168.574002,27.1343278 167.424074,27.3886981 L167.424074,6.23463283 C167.424074,5.61116956 166.903255,5.15774169 166.324567,5.15774169 L130.503789,5.15774169 C129.867233,5.15774169 129.404283,5.66784803 129.404283,6.23463283 L129.404283,41.3186122 C129.404283,42.9056095 130.735265,44.2092147 132.355591,44.2092147 L155.096113,44.2092147 C155.462794,47.4493334 156.859805,50.3873861 158.961954,52.7109865 Z" id="Combined-Shape" fill="#08073F" fill-rule="nonzero"></path>
- <path d="M171,56 C163.26057,56 157,49.9481159 157,42.5 C157,35.0518841 163.26057,29 171,29 C178.73943,29 185,35.0518841 185,42.5 C185,49.9481159 178.73943,56 171,56 Z M177.416667,40.7546296 C177.233333,39.1569444 175.858333,37.9351852 174.208333,37.9351852 C173.75,37.9351852 173.383333,38.0291667 173.016667,38.2171296 C172.191667,36.9013889 170.725,36.0555556 169.166667,36.0555556 C166.6,36.0555556 164.583333,38.1231482 164.583333,40.7546296 C164.583333,40.7546296 164.583333,40.7546296 164.583333,40.8486111 C163.025,41.0365741 161.833333,42.4462963 161.833333,44.0439815 C161.833333,45.8296296 163.3,47.3333333 165.041667,47.3333333 C166.416667,47.3333333 175.308333,47.3333333 176.958333,47.3333333 C178.7,47.3333333 180.166667,45.8296296 180.166667,44.0439815 C180.166667,42.3523148 178.975,41.0365741 177.416667,40.7546296 Z" id="Combined-Shape" fill="#3282FF" fill-rule="nonzero"></path>
- <path d="M48,54 C40.8202983,54 35,48.1797017 35,41 C35,33.8202983 40.8202983,28 48,28 C55.1797017,28 61,33.8202983 61,41 C61,48.1797017 55.1797017,54 48,54 Z M46.862511,41.4631428 L43.8629783,38.6111022 L41.1067187,41.5099007 L47.0308248,47.1427085 L55.8527121,37.698579 L52.9296286,34.9680877 L46.862511,41.4631428 Z" id="Combined-Shape" fill="#3282FF" fill-rule="nonzero"></path>
- <path d="M54.5,25 C53.6715729,25 53,24.3284271 53,23.5 C53,22.6715729 53.6715729,22 54.5,22 C55.3284271,22 56,22.6715729 56,23.5 C56,24.3284271 55.3284271,25 54.5,25 Z M78.5,25 C77.6715729,25 77,24.3284271 77,23.5 C77,22.6715729 77.6715729,22 78.5,22 C79.3284271,22 80,22.6715729 80,23.5 C80,24.3284271 79.3284271,25 78.5,25 Z M102.5,25 C101.671573,25 101,24.3284271 101,23.5 C101,22.6715729 101.671573,22 102.5,22 C103.328427,22 104,22.6715729 104,23.5 C104,24.3284271 103.328427,25 102.5,25 Z M62.5,25 C61.6715729,25 61,24.3284271 61,23.5 C61,22.6715729 61.6715729,22 62.5,22 C63.3284271,22 64,22.6715729 64,23.5 C64,24.3284271 63.3284271,25 62.5,25 Z M86.5,25 C85.6715729,25 85,24.3284271 85,23.5 C85,22.6715729 85.6715729,22 86.5,22 C87.3284271,22 88,22.6715729 88,23.5 C88,24.3284271 87.3284271,25 86.5,25 Z M110.5,25 C109.671573,25 109,24.3284271 109,23.5 C109,22.6715729 109.671573,22 110.5,22 C111.328427,22 112,22.6715729 112,23.5 C112,24.3284271 111.328427,25 110.5,25 Z M70.5,25 C69.6715729,25 69,24.3284271 69,23.5 C69,22.6715729 69.6715729,22 70.5,22 C71.3284271,22 72,22.6715729 72,23.5 C72,24.3284271 71.3284271,25 70.5,25 Z M94.5,25 C93.6715729,25 93,24.3284271 93,23.5 C93,22.6715729 93.6715729,22 94.5,22 C95.3284271,22 96,22.6715729 96,23.5 C96,24.3284271 95.3284271,25 94.5,25 Z M118.5,25 C117.671573,25 117,24.3284271 117,23.5 C117,22.6715729 117.671573,22 118.5,22 C119.328427,22 120,22.6715729 120,23.5 C120,24.3284271 119.328427,25 118.5,25 Z" id="Combined-Shape" fill="#3282FF" fill-rule="nonzero"></path>
- </g>
-</svg> \ No newline at end of file
diff --git a/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py b/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py
index c453537d81..34687339a9 100644
--- a/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py
+++ b/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py
@@ -15,27 +15,26 @@ I18N_CATALOG = i18nCatalog("cura")
class CloudFlowMessage(Message):
- def __init__(self, address: str) -> None:
-
+ def __init__(self, printer_name: str) -> None:
image_path = os.path.join(
CuraApplication.getInstance().getPluginRegistry().getPluginPath("UM3NetworkPrinting") or "",
- "resources", "svg", "cloud-flow-start.svg"
+ "resources", "svg", "CloudPlatform.svg"
)
-
super().__init__(
- text=I18N_CATALOG.i18nc("@info:status",
- "Send and monitor print jobs from anywhere using your Ultimaker account."),
- lifetime=0,
- dismissable=True,
- option_state=False,
- image_source=QUrl.fromLocalFile(image_path),
- image_caption=I18N_CATALOG.i18nc("@info:status Ultimaker Cloud should not be translated.",
- "Connect to Ultimaker Digital Factory"),
+ text = I18N_CATALOG.i18nc("@info:status",
+ f"Your printer <b>{printer_name}</b> could be connected via cloud.\n Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"),
+ title = I18N_CATALOG.i18nc("@info:title", "Are you ready for cloud printing?"),
+ image_source = QUrl.fromLocalFile(image_path)
)
- self._address = address
- self.addAction("", I18N_CATALOG.i18nc("@action", "Get started"), "", "")
+ self._printer_name = printer_name
+ self.addAction("get_started", I18N_CATALOG.i18nc("@action", "Get started"), "", "")
+ self.addAction("learn_more", I18N_CATALOG.i18nc("@action", "Learn more"), "", "", button_style = Message.ActionButtonStyle.LINK, button_align = Message.ActionButtonAlignment.ALIGN_LEFT)
+
self.actionTriggered.connect(self._onCloudFlowStarted)
- def _onCloudFlowStarted(self, messageId: str, actionId: str) -> None:
- QDesktopServices.openUrl(QUrl("http://{}/cloud_connect".format(self._address)))
- self.hide()
+ def _onCloudFlowStarted(self, message_id: str, action_id: str) -> None:
+ if action_id == "get_started":
+ QDesktopServices.openUrl(QUrl("https://digitalfactory.ultimaker.com/app/printers?add_printer=true&utm_source=cura&utm_medium=software&utm_campaign=message-networkprinter-added"))
+ self.hide()
+ else:
+ QDesktopServices.openUrl(QUrl("https://support.ultimaker.com/hc/en-us/articles/360012019239?utm_source=cura&utm_medium=software&utm_campaign=add-cloud-printer"))
diff --git a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py
index e79709d3dc..0cd5304cf9 100644
--- a/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py
+++ b/plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py
@@ -52,7 +52,6 @@ class LocalClusterOutputDeviceManager:
def start(self) -> None:
"""Start the network discovery."""
-
self._zero_conf_client.start()
for address in self._getStoredManualAddresses():
self.addManualDevice(address)
@@ -292,4 +291,4 @@ class LocalClusterOutputDeviceManager:
if not CuraApplication.getInstance().getCuraAPI().account.isLoggedIn:
# Do not show the message if the user is not signed in.
return
- CloudFlowMessage(device.ipAddress).show()
+ CloudFlowMessage(device.name).show()
diff --git a/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py
index 96a2b78e8f..877eaebcb7 100644
--- a/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py
+++ b/plugins/UM3NetworkPrinting/src/Network/SendMaterialJob.py
@@ -133,6 +133,9 @@ class SendMaterialJob(Job):
except FileNotFoundError:
Logger.error("Unable to send material {material_id}, since it has been deleted in the meanwhile.".format(material_id = material_id))
return
+ except EnvironmentError as e:
+ Logger.error(f"Unable to send material {material_id}. We can't open that file for reading: {str(e)}")
+ return
# Add the material signature file if needed.
signature_file_path = "{}.sig".format(file_path)
diff --git a/plugins/VersionUpgrade/VersionUpgrade411to412/VersionUpgrade411to412.py b/plugins/VersionUpgrade/VersionUpgrade411to412/VersionUpgrade411to412.py
new file mode 100644
index 0000000000..4fb18486c2
--- /dev/null
+++ b/plugins/VersionUpgrade/VersionUpgrade411to412/VersionUpgrade411to412.py
@@ -0,0 +1,114 @@
+# Copyright (c) 2021 Ultimaker B.V.
+# Cura is released under the terms of the LGPLv3 or higher.
+
+import configparser
+import io
+import os.path
+from typing import List, Tuple
+
+from UM.VersionUpgrade import VersionUpgrade
+
+
+class VersionUpgrade411to412(VersionUpgrade):
+ """
+ Upgrades configurations from the state they were in at version 4.11 to the
+ state they should be in at version 4.12.
+ """
+
+ _flsun_profile_mapping = {
+ "extra_coarse": "flsun_sr_normal",
+ "coarse": "flsun_sr_normal",
+ "extra_fast": "flsun_sr_normal",
+ "draft": "flsun_sr_normal",
+ "fast": "flsun_sr_normal",
+ "normal": "flsun_sr_normal",
+ "high": "flsun_sr_fine"
+ }
+
+ _flsun_quality_type_mapping = {
+ "extra coarse": "normal",
+ "coarse" : "normal",
+ "verydraft" : "normal",
+ "draft" : "normal",
+ "fast" : "normal",
+ "normal" : "normal",
+ "high" : "fine"
+ }
+
+ def upgradePreferences(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
+ """
+ Upgrades preferences to have the new version number.
+ :param serialized: The original contents of the preferences file.
+ :param filename: The file name of the preferences file.
+ :return: A list of new file names, and a list of the new contents for
+ those files.
+ """
+ parser = configparser.ConfigParser(interpolation = None)
+ parser.read_string(serialized)
+
+ # Update version number.
+ parser["metadata"]["setting_version"] = "19"
+
+ result = io.StringIO()
+ parser.write(result)
+ return [filename], [result.getvalue()]
+
+
+ def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
+ """
+ Upgrades instance containers to have the new version number.
+ :param serialized: The original contents of the instance container.
+ :param filename: The file name of the instance container.
+ :return: A list of file names, and a list of the new contents for those
+ files.
+ """
+ parser = configparser.ConfigParser(interpolation = None, comment_prefixes = ())
+ parser.read_string(serialized)
+
+ # Update setting version number.
+ if "metadata" not in parser:
+ parser["metadata"] = {}
+ parser["metadata"]["setting_version"] = "19"
+
+ # Update user-made quality profiles of flsun_sr printers to use the flsun_sr-specific qualities instead of the
+ # global ones as their base
+ file_base_name = os.path.basename(filename) # Remove any path-related characters from the filename
+ if file_base_name.startswith("flsun_sr_") and parser["metadata"].get("type") == "quality_changes":
+ if "general" in parser and parser["general"].get("definition") == "fdmprinter":
+ old_quality_type = parser["metadata"].get("quality_type", "normal")
+ parser["general"]["definition"] = "flsun_sr"
+ parser["metadata"]["quality_type"] = self._flsun_quality_type_mapping.get(old_quality_type, "normal")
+
+ result = io.StringIO()
+ parser.write(result)
+ return [filename], [result.getvalue()]
+
+ def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
+ """
+ Upgrades container stacks to have the new version number.
+ Upgrades container stacks for FLSun Racer to change their profiles.
+ :param serialized: The original contents of the container stack.
+ :param filename: The file name of the container stack.
+ :return: A list of file names, and a list of the new contents for those
+ files.
+ """
+ parser = configparser.ConfigParser(interpolation = None)
+ parser.read_string(serialized)
+
+ # Update setting version number.
+ if "metadata" not in parser:
+ parser["metadata"] = {}
+ parser["metadata"]["setting_version"] = "19"
+
+ # Change renamed profiles.
+ if "containers" in parser:
+ definition_id = parser["containers"].get("7")
+ if definition_id == "flsun_sr":
+ if parser["metadata"].get("type", "machine") == "machine": # Only global stacks.
+ old_quality = parser["containers"].get("3")
+ new_quality = self._flsun_profile_mapping.get(old_quality, "flsun_sr_normal")
+ parser["containers"]["3"] = new_quality
+
+ result = io.StringIO()
+ parser.write(result)
+ return [filename], [result.getvalue()]
diff --git a/plugins/VersionUpgrade/VersionUpgrade411to412/__init__.py b/plugins/VersionUpgrade/VersionUpgrade411to412/__init__.py
new file mode 100644
index 0000000000..cb84fe0361
--- /dev/null
+++ b/plugins/VersionUpgrade/VersionUpgrade411to412/__init__.py
@@ -0,0 +1,56 @@
+# Copyright (c) 2021 Ultimaker B.V.
+# Cura is released under the terms of the LGPLv3 or higher.
+
+from typing import Any, Dict, TYPE_CHECKING
+
+from . import VersionUpgrade411to412
+
+if TYPE_CHECKING:
+ from UM.Application import Application
+
+upgrade = VersionUpgrade411to412.VersionUpgrade411to412()
+
+
+def getMetaData() -> Dict[str, Any]:
+ return {
+ "version_upgrade": {
+ # From To Upgrade function
+ ("machine_stack", 5000017): ("machine_stack", 5000019, upgrade.upgradeStack),
+ ("extruder_train", 5000017): ("extruder_train", 5000019, upgrade.upgradeStack),
+ ("definition_changes", 4000017): ("definition_changes", 4000019, upgrade.upgradeInstanceContainer),
+ ("quality_changes", 4000017): ("quality_changes", 4000019, upgrade.upgradeInstanceContainer),
+ ("quality", 4000017): ("quality", 4000019, upgrade.upgradeInstanceContainer),
+ ("user", 4000017): ("user", 4000019, upgrade.upgradeInstanceContainer),
+ ("preferences", 7000017): ("preferences", 7000019, upgrade.upgradePreferences),
+ },
+ "sources": {
+ "machine_stack": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./machine_instances"}
+ },
+ "extruder_train": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./extruders"}
+ },
+ "definition_changes": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./definition_changes"}
+ },
+ "quality_changes": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./quality_changes"}
+ },
+ "quality": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./quality"}
+ },
+ "user": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./user"}
+ }
+ }
+ }
+
+
+def register(app: "Application") -> Dict[str, Any]:
+ return {"version_upgrade": upgrade}
diff --git a/plugins/VersionUpgrade/VersionUpgrade411to412/plugin.json b/plugins/VersionUpgrade/VersionUpgrade411to412/plugin.json
new file mode 100644
index 0000000000..4ac4f264c8
--- /dev/null
+++ b/plugins/VersionUpgrade/VersionUpgrade411to412/plugin.json
@@ -0,0 +1,8 @@
+{
+ "name": "Version Upgrade 4.11 to 4.12",
+ "author": "Ultimaker B.V.",
+ "version": "1.0.0",
+ "description": "Upgrades configurations from Cura 4.11 to Cura 4.12.",
+ "api": 7,
+ "i18n-catalog": "cura"
+}
diff --git a/requirements.txt b/requirements.txt
index db927c4943..7daca8335a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,36 +1,38 @@
-cffi==1.14.1
-colorlog
-cryptography==3.4.6
-importlib-metadata==3.7.2
-mypy==0.740
-numpy==1.20.2
-PyQt5==5.15.2
-PyQt5-sip==12.8.1
-scipy==1.6.1
-shapely[vectorized]==1.7.1
-twisted==21.2.0
-typing
appdirs==1.4.3
certifi==2019.11.28
+cffi==1.14.1
chardet==3.0.4
+colorlog
+comtypes==1.1.7
+cryptography==3.4.8
decorator==4.4.0
idna==2.8
+importlib-metadata==3.7.2
+keyring==23.0.1
+lxml==4.6.3
+mypy==0.740
netifaces==0.10.9
-networkx==2.3
+networkx==2.6.2
+numpy==1.20.2
numpy-stl==2.10.1
packaging==18.0
pycollada==0.6
-pycparser==2.19
+pycparser==2.20
pyparsing==2.4.2
+PyQt5==5.15.2
+PyQt5-sip==12.8.1
pyserial==3.4
pytest
python-dateutil==2.8.0
python-utils==2.3.0
+pywin32==301
requests==2.22.0
+scipy==1.6.2
sentry-sdk==0.13.5
+shapely[vectorized]==1.7.1
six==1.12.0
trimesh==3.2.33
-zeroconf==0.24.1
-comtypes==1.1.7
-pywin32==300
-keyring==23.0.1
+twisted==21.2.0
+typing
+urllib3==1.25.9
+zeroconf==0.31.0
diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json
index 641a6dca66..a5d0ffb2a3 100644
--- a/resources/bundled_packages/cura.json
+++ b/resources/bundled_packages/cura.json
@@ -6,7 +6,7 @@
"display_name": "3MF Reader",
"description": "Provides support for reading 3MF files.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -23,7 +23,7 @@
"display_name": "3MF Writer",
"description": "Provides support for writing 3MF files.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -40,7 +40,7 @@
"display_name": "AMF Reader",
"description": "Provides support for reading AMF files.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "fieldOfView",
@@ -57,7 +57,7 @@
"display_name": "Cura Backups",
"description": "Backup and restore your configuration.",
"package_version": "1.2.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -74,7 +74,7 @@
"display_name": "CuraEngine Backend",
"description": "Provides the link to the CuraEngine slicing backend.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -91,7 +91,7 @@
"display_name": "Cura Profile Reader",
"description": "Provides support for importing Cura profiles.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -108,7 +108,7 @@
"display_name": "Cura Profile Writer",
"description": "Provides support for exporting Cura profiles.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -124,8 +124,8 @@
"package_type": "plugin",
"display_name": "Ultimaker Digital Library",
"description": "Connects to the Digital Library, allowing Cura to open files from and save files to the Digital Library.",
- "package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "package_version": "1.1.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -142,7 +142,7 @@
"display_name": "Firmware Update Checker",
"description": "Checks for firmware updates.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -159,7 +159,7 @@
"display_name": "Firmware Updater",
"description": "Provides a machine actions for updating firmware.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -176,7 +176,7 @@
"display_name": "Compressed G-code Reader",
"description": "Reads g-code from a compressed archive.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -193,7 +193,7 @@
"display_name": "Compressed G-code Writer",
"description": "Writes g-code to a compressed archive.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -210,7 +210,7 @@
"display_name": "G-Code Profile Reader",
"description": "Provides support for importing profiles from g-code files.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -227,7 +227,7 @@
"display_name": "G-Code Reader",
"description": "Allows loading and displaying G-code files.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "VictorLarchenko",
@@ -244,7 +244,7 @@
"display_name": "G-Code Writer",
"description": "Writes g-code to a file.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -261,7 +261,7 @@
"display_name": "Image Reader",
"description": "Enables ability to generate printable geometry from 2D image files.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -278,7 +278,7 @@
"display_name": "Legacy Cura Profile Reader",
"description": "Provides support for importing profiles from legacy Cura versions.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -295,7 +295,7 @@
"display_name": "Machine Settings Action",
"description": "Provides a way to change machine settings (such as build volume, nozzle size, etc.).",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "fieldOfView",
@@ -312,7 +312,7 @@
"display_name": "Model Checker",
"description": "Checks models and print configuration for possible printing issues and give suggestions.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -329,7 +329,7 @@
"display_name": "Monitor Stage",
"description": "Provides a monitor stage in Cura.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -346,7 +346,7 @@
"display_name": "Per-Object Settings Tool",
"description": "Provides the per-model settings.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -363,7 +363,7 @@
"display_name": "Post Processing",
"description": "Extension that allows for user created scripts for post processing.",
"package_version": "2.2.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -380,7 +380,7 @@
"display_name": "Prepare Stage",
"description": "Provides a prepare stage in Cura.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -397,7 +397,7 @@
"display_name": "Preview Stage",
"description": "Provides a preview stage in Cura.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -414,7 +414,7 @@
"display_name": "Removable Drive Output Device",
"description": "Provides removable drive hotplugging and writing support.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -431,7 +431,7 @@
"display_name": "Sentry Logger",
"description": "Logs certain events so that they can be used by the crash reporter",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -448,7 +448,7 @@
"display_name": "Simulation View",
"description": "Provides the Simulation view.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -465,7 +465,7 @@
"display_name": "Slice Info",
"description": "Submits anonymous slice info. Can be disabled through preferences.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -482,7 +482,7 @@
"display_name": "Solid View",
"description": "Provides a normal solid mesh view.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -499,7 +499,7 @@
"display_name": "Support Eraser Tool",
"description": "Creates an eraser mesh to block the printing of support in certain places.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -516,7 +516,7 @@
"display_name": "Trimesh Reader",
"description": "Provides support for reading model files.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -533,7 +533,7 @@
"display_name": "Toolbox",
"description": "Find, manage and install new Cura packages.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -550,7 +550,7 @@
"display_name": "UFP Reader",
"description": "Provides support for reading Ultimaker Format Packages.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -567,7 +567,7 @@
"display_name": "UFP Writer",
"description": "Provides support for writing Ultimaker Format Packages.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -584,7 +584,7 @@
"display_name": "Ultimaker Machine Actions",
"description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -601,7 +601,7 @@
"display_name": "UM3 Network Printing",
"description": "Manages network connections to Ultimaker 3 printers.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -618,7 +618,7 @@
"display_name": "USB Printing",
"description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.",
"package_version": "1.0.2",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -635,7 +635,7 @@
"display_name": "Version Upgrade 2.1 to 2.2",
"description": "Upgrades configurations from Cura 2.1 to Cura 2.2.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -652,7 +652,7 @@
"display_name": "Version Upgrade 2.2 to 2.4",
"description": "Upgrades configurations from Cura 2.2 to Cura 2.4.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -669,7 +669,7 @@
"display_name": "Version Upgrade 2.5 to 2.6",
"description": "Upgrades configurations from Cura 2.5 to Cura 2.6.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -686,7 +686,7 @@
"display_name": "Version Upgrade 2.6 to 2.7",
"description": "Upgrades configurations from Cura 2.6 to Cura 2.7.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -703,7 +703,7 @@
"display_name": "Version Upgrade 2.7 to 3.0",
"description": "Upgrades configurations from Cura 2.7 to Cura 3.0.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -720,7 +720,7 @@
"display_name": "Version Upgrade 3.0 to 3.1",
"description": "Upgrades configurations from Cura 3.0 to Cura 3.1.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -737,7 +737,7 @@
"display_name": "Version Upgrade 3.2 to 3.3",
"description": "Upgrades configurations from Cura 3.2 to Cura 3.3.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -754,7 +754,7 @@
"display_name": "Version Upgrade 3.3 to 3.4",
"description": "Upgrades configurations from Cura 3.3 to Cura 3.4.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -771,7 +771,7 @@
"display_name": "Version Upgrade 3.4 to 3.5",
"description": "Upgrades configurations from Cura 3.4 to Cura 3.5.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -788,7 +788,7 @@
"display_name": "Version Upgrade 3.5 to 4.0",
"description": "Upgrades configurations from Cura 3.5 to Cura 4.0.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -805,7 +805,7 @@
"display_name": "Version Upgrade 4.0 to 4.1",
"description": "Upgrades configurations from Cura 4.0 to Cura 4.1.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -822,7 +822,7 @@
"display_name": "Version Upgrade 4.1 to 4.2",
"description": "Upgrades configurations from Cura 4.1 to Cura 4.2.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -839,7 +839,7 @@
"display_name": "Version Upgrade 4.2 to 4.3",
"description": "Upgrades configurations from Cura 4.2 to Cura 4.3.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -856,7 +856,7 @@
"display_name": "Version Upgrade 4.3 to 4.4",
"description": "Upgrades configurations from Cura 4.3 to Cura 4.4.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -873,7 +873,7 @@
"display_name": "Version Upgrade 4.4 to 4.5",
"description": "Upgrades configurations from Cura 4.4 to Cura 4.5.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -890,7 +890,7 @@
"display_name": "Version Upgrade 4.5 to 4.6",
"description": "Upgrades configurations from Cura 4.5 to Cura 4.6.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -907,7 +907,7 @@
"display_name": "Version Upgrade 4.6.0 to 4.6.2",
"description": "Upgrades configurations from Cura 4.6.0 to Cura 4.6.2.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -924,7 +924,7 @@
"display_name": "Version Upgrade 4.6.2 to 4.7",
"description": "Upgrades configurations from Cura 4.6.2 to Cura 4.7.",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -941,7 +941,7 @@
"display_name": "Version Upgrade 4.7.0 to 4.8.0",
"description": "Upgrades configurations from Cura 4.7.0 to Cura 4.8.0",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -958,7 +958,7 @@
"display_name": "Version Upgrade 4.8.0 to 4.9.0",
"description": "Upgrades configurations from Cura 4.8.0 to Cura 4.9.0",
"package_version": "1.0.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -976,6 +976,24 @@
"description": "Upgrades configurations from Cura 4.9 to Cura 4.10",
"package_version": "1.0.0",
"sdk_version": 7,
+ "sdk_version_semver": "7.8.0",
+ "website": "https://ultimaker.com",
+ "author": {
+ "author_id": "UltimakerPackages",
+ "display_name": "Ultimaker B.V.",
+ "email": "plugins@ultimaker.com",
+ "website": "https://ultimaker.com"
+ }
+ }
+ },
+ "VersionUpgrade411to412": {
+ "package_info": {
+ "package_id": "VersionUpgrade411to412",
+ "package_type": "plugin",
+ "display_name": "Version Upgrade 4.11 to 4.12",
+ "description": "Upgrades configurations from Cura 4.11 to Cura 4.12",
+ "package_version": "1.0.0",
+ "sdk_version": 7,
"sdk_version_semver": "7.7.0",
"website": "https://ultimaker.com",
"author": {
@@ -993,7 +1011,7 @@
"display_name": "X3D Reader",
"description": "Provides support for reading X3D files.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "SevaAlekseyev",
@@ -1010,7 +1028,7 @@
"display_name": "XML Material Profiles",
"description": "Provides capabilities to read and write XML-based material profiles.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -1027,7 +1045,7 @@
"display_name": "X-Ray View",
"description": "Provides the X-Ray view.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com",
"author": {
"author_id": "UltimakerPackages",
@@ -1044,7 +1062,7 @@
"display_name": "Generic ABS",
"description": "The generic ABS profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1062,7 +1080,7 @@
"display_name": "Generic BAM",
"description": "The generic BAM profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1080,7 +1098,7 @@
"display_name": "Generic CFF CPE",
"description": "The generic CFF CPE profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1098,7 +1116,7 @@
"display_name": "Generic CFF PA",
"description": "The generic CFF PA profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1116,7 +1134,7 @@
"display_name": "Generic CPE",
"description": "The generic CPE profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1134,7 +1152,7 @@
"display_name": "Generic CPE+",
"description": "The generic CPE+ profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1152,7 +1170,7 @@
"display_name": "Generic GFF CPE",
"description": "The generic GFF CPE profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1170,7 +1188,7 @@
"display_name": "Generic GFF PA",
"description": "The generic GFF PA profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1188,7 +1206,7 @@
"display_name": "Generic HIPS",
"description": "The generic HIPS profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1206,7 +1224,7 @@
"display_name": "Generic Nylon",
"description": "The generic Nylon profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1224,7 +1242,7 @@
"display_name": "Generic PC",
"description": "The generic PC profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1242,7 +1260,7 @@
"display_name": "Generic PETG",
"description": "The generic PETG profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1260,7 +1278,7 @@
"display_name": "Generic PLA",
"description": "The generic PLA profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1278,7 +1296,7 @@
"display_name": "Generic PP",
"description": "The generic PP profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1296,7 +1314,7 @@
"display_name": "Generic PVA",
"description": "The generic PVA profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1314,7 +1332,7 @@
"display_name": "Generic Tough PLA",
"description": "The generic Tough PLA profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1332,7 +1350,7 @@
"display_name": "Generic TPU",
"description": "The generic TPU profile which other profiles can be based upon.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://github.com/Ultimaker/fdm_materials",
"author": {
"author_id": "Generic",
@@ -1350,7 +1368,7 @@
"display_name": "Dagoma Chromatik PLA",
"description": "Filament testé et approuvé pour les imprimantes 3D Dagoma. Chromatik est l'idéal pour débuter et suivre les tutoriels premiers pas. Il vous offre qualité et résistance pour chacune de vos impressions.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://dagoma.fr/boutique/filaments.html",
"author": {
"author_id": "Dagoma",
@@ -1367,7 +1385,7 @@
"display_name": "FABtotum ABS",
"description": "This material is easy to be extruded but it is not the simplest to use. It is one of the most used in 3D printing to get very well finished objects. It is not sustainable and its smoke can be dangerous if inhaled. The reason to prefer this filament to PLA is mainly because of its precision and mechanical specs. ABS (for plastic) stands for Acrylonitrile Butadiene Styrene and it is a thermoplastic which is widely used in everyday objects. It can be printed with any FFF 3D printer which can get to high temperatures as it must be extruded in a range between 220° and 245°, so it’s compatible with all versions of the FABtotum Personal fabricator.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=40",
"author": {
"author_id": "FABtotum",
@@ -1384,7 +1402,7 @@
"display_name": "FABtotum Nylon",
"description": "When 3D printing started this material was not listed among the extrudable filaments. It is flexible as well as resistant to tractions. It is well known for its uses in textile but also in industries which require a strong and flexible material. There are different kinds of Nylon: 3D printing mostly uses Nylon 6 and Nylon 6.6, which are the most common. It requires higher temperatures to be printed, so a 3D printer must be able to reach them (around 240°C): the FABtotum, of course, can.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=53",
"author": {
"author_id": "FABtotum",
@@ -1401,7 +1419,7 @@
"display_name": "FABtotum PLA",
"description": "It is the most common filament used for 3D printing. It is studied to be bio-degradable as it comes from corn starch’s sugar mainly. It is completely made of renewable sources and has no footprint on polluting. PLA stands for PolyLactic Acid and it is a thermoplastic that today is still considered the easiest material to be 3D printed. It can be extruded at lower temperatures: the standard range of FABtotum’s one is between 185° and 195°.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=39",
"author": {
"author_id": "FABtotum",
@@ -1418,7 +1436,7 @@
"display_name": "FABtotum TPU Shore 98A",
"description": "",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=66",
"author": {
"author_id": "FABtotum",
@@ -1435,7 +1453,7 @@
"display_name": "Fiberlogy HD PLA",
"description": "With our HD PLA you have many more options. You can use this material in two ways. Choose the one you like best. You can use it as a normal PLA and get prints characterized by a very good adhesion between the layers and high precision. You can also make your prints acquire similar properties to that of ABS – better impact resistance and high temperature resistance. All you need is an oven. Yes, an oven! By annealing our HD PLA in an oven, in accordance with the manual, you will avoid all the inconveniences of printing with ABS, such as unpleasant odour or hazardous fumes.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "http://fiberlogy.com/en/fiberlogy-filaments/filament-hd-pla/",
"author": {
"author_id": "Fiberlogy",
@@ -1452,7 +1470,7 @@
"display_name": "Filo3D PLA",
"description": "Fast, safe and reliable printing. PLA is ideal for the fast and reliable printing of parts and prototypes with a great surface quality.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://dagoma.fr",
"author": {
"author_id": "Dagoma",
@@ -1469,7 +1487,7 @@
"display_name": "IMADE3D JellyBOX PETG",
"description": "",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "http://shop.imade3d.com/filament.html",
"author": {
"author_id": "IMADE3D",
@@ -1486,7 +1504,7 @@
"display_name": "IMADE3D JellyBOX PLA",
"description": "",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "http://shop.imade3d.com/filament.html",
"author": {
"author_id": "IMADE3D",
@@ -1503,7 +1521,7 @@
"display_name": "Octofiber PLA",
"description": "PLA material from Octofiber.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://nl.octofiber.com/3d-printing-filament/pla.html",
"author": {
"author_id": "Octofiber",
@@ -1520,7 +1538,7 @@
"display_name": "PolyFlex™ PLA",
"description": "PolyFlex™ is a highly flexible yet easy to print 3D printing material. Featuring good elasticity and a large strain-to- failure, PolyFlex™ opens up a completely new realm of applications.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "http://www.polymaker.com/shop/polyflex/",
"author": {
"author_id": "Polymaker",
@@ -1537,7 +1555,7 @@
"display_name": "PolyMax™ PLA",
"description": "PolyMax™ PLA is a 3D printing material with excellent mechanical properties and printing quality. PolyMax™ PLA has an impact resistance of up to nine times that of regular PLA, and better overall mechanical properties than ABS.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "http://www.polymaker.com/shop/polymax/",
"author": {
"author_id": "Polymaker",
@@ -1554,7 +1572,7 @@
"display_name": "PolyPlus™ PLA True Colour",
"description": "PolyPlus™ PLA is a premium PLA designed for all desktop FDM/FFF 3D printers. It is produced with our patented Jam-Free™ technology that ensures consistent extrusion and prevents jams.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "http://www.polymaker.com/shop/polyplus-true-colour/",
"author": {
"author_id": "Polymaker",
@@ -1571,7 +1589,7 @@
"display_name": "PolyWood™ PLA",
"description": "PolyWood™ is a wood mimic printing material that contains no actual wood ensuring a clean Jam-Free™ printing experience.",
"package_version": "1.0.1",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "http://www.polymaker.com/shop/polywood/",
"author": {
"author_id": "Polymaker",
@@ -1588,7 +1606,7 @@
"display_name": "Ultimaker ABS",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/abs",
"author": {
"author_id": "UltimakerPackages",
@@ -1607,7 +1625,7 @@
"display_name": "Ultimaker Breakaway",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/breakaway",
"author": {
"author_id": "UltimakerPackages",
@@ -1626,7 +1644,7 @@
"display_name": "Ultimaker CPE",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/abs",
"author": {
"author_id": "UltimakerPackages",
@@ -1645,7 +1663,7 @@
"display_name": "Ultimaker CPE+",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/cpe",
"author": {
"author_id": "UltimakerPackages",
@@ -1664,7 +1682,7 @@
"display_name": "Ultimaker Nylon",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/abs",
"author": {
"author_id": "UltimakerPackages",
@@ -1683,7 +1701,7 @@
"display_name": "Ultimaker PC",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/pc",
"author": {
"author_id": "UltimakerPackages",
@@ -1702,7 +1720,7 @@
"display_name": "Ultimaker PLA",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/abs",
"author": {
"author_id": "UltimakerPackages",
@@ -1721,7 +1739,7 @@
"display_name": "Ultimaker PP",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/pp",
"author": {
"author_id": "UltimakerPackages",
@@ -1740,7 +1758,7 @@
"display_name": "Ultimaker PVA",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/abs",
"author": {
"author_id": "UltimakerPackages",
@@ -1759,7 +1777,7 @@
"display_name": "Ultimaker TPU 95A",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/tpu-95a",
"author": {
"author_id": "UltimakerPackages",
@@ -1778,7 +1796,7 @@
"display_name": "Ultimaker Tough PLA",
"description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://ultimaker.com/products/materials/tough-pla",
"author": {
"author_id": "UltimakerPackages",
@@ -1797,7 +1815,7 @@
"display_name": "Vertex Delta ABS",
"description": "ABS material and quality files for the Delta Vertex K8800.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://vertex3dprinter.eu",
"author": {
"author_id": "Velleman",
@@ -1814,7 +1832,7 @@
"display_name": "Vertex Delta PET",
"description": "ABS material and quality files for the Delta Vertex K8800.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://vertex3dprinter.eu",
"author": {
"author_id": "Velleman",
@@ -1831,7 +1849,7 @@
"display_name": "Vertex Delta PLA",
"description": "ABS material and quality files for the Delta Vertex K8800.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://vertex3dprinter.eu",
"author": {
"author_id": "Velleman",
@@ -1848,7 +1866,7 @@
"display_name": "Vertex Delta TPU",
"description": "ABS material and quality files for the Delta Vertex K8800.",
"package_version": "1.4.0",
- "sdk_version": "7.7.0",
+ "sdk_version": "7.8.0",
"website": "https://vertex3dprinter.eu",
"author": {
"author_id": "Velleman",
diff --git a/resources/definitions/3di_base.def.json b/resources/definitions/3di_base.def.json
new file mode 100644
index 0000000000..b86ff4707c
--- /dev/null
+++ b/resources/definitions/3di_base.def.json
@@ -0,0 +1,49 @@
+{
+ "version": 2,
+ "name": "3DI Base Printer",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": false,
+ "author": "Vaibhav Jain",
+ "manufacturer": "3Deometry Innovations",
+ "file_formats": "text/x-gcode",
+ "machine_extruder_trains":
+ {
+ "0": "3di_base_extruder_0"
+ }
+ },
+
+ "overrides": {
+ "machine_name":{
+ "default_value": "3DI Base Printer"
+ },
+ "machine_heated_bed": {
+ "default_value": true
+ },
+ "machine_width": {
+ "default_value": 220
+ },
+ "machine_height": {
+ "default_value": 220
+ },
+ "machine_depth": {
+ "default_value": 220
+ },
+ "machine_center_is_zero": {
+ "default_value": true
+ },
+ "machine_gcode_flavor": {
+ "default_value": "RepRap (Marlin/Sprinter)"
+ },
+ "machine_start_gcode": {
+ "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home all axes (max endstops)\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."
+ },
+ "machine_end_gcode": {
+ "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG28 ;Home all axes (max endstops)\nM84 ;steppers off\nG90 ;absolute positioning"
+ },
+ "machine_shape": {
+ "default_value": "elliptic"
+ }
+ }
+}
+
diff --git a/resources/definitions/3di_d300.def.json b/resources/definitions/3di_d300.def.json
new file mode 100644
index 0000000000..3fad62d339
--- /dev/null
+++ b/resources/definitions/3di_d300.def.json
@@ -0,0 +1,26 @@
+{
+ "version": 2,
+ "name": "3DI D300",
+ "inherits": "3di_base",
+ "metadata": {
+ "visible": true,
+ "platform": "3di_d300_platform.STL",
+ "platform_offset": [-200, -5, 173.205]
+ },
+
+ "overrides": {
+ "machine_name": {
+ "default_value": "3DI D300"
+ },
+ "machine_width": {
+ "default_value": 300
+ },
+ "machine_height": {
+ "default_value": 300
+ },
+ "machine_depth": {
+ "default_value": 300
+ }
+ }
+}
+
diff --git a/resources/definitions/anycubic_mega_zero.def.json b/resources/definitions/anycubic_mega_zero.def.json
index b0c3132858..5f71d243ab 100644
--- a/resources/definitions/anycubic_mega_zero.def.json
+++ b/resources/definitions/anycubic_mega_zero.def.json
@@ -92,7 +92,7 @@
"retraction_hop_enabled": { "value": "True" },
"retraction_hop": { "value": 0.2 },
- "retraction_combing": { "default_value": "noskin" },
+ "retraction_combing": { "value": "'noskin'" },
"retraction_combing_max_distance": { "value": 30 },
"travel_avoid_other_parts": { "value": true },
diff --git a/resources/definitions/arjunpro300.def.json b/resources/definitions/arjunpro300.def.json
new file mode 100644
index 0000000000..7f7160f777
--- /dev/null
+++ b/resources/definitions/arjunpro300.def.json
@@ -0,0 +1,52 @@
+{
+ "version": 2,
+ "name": "Arjun Pro 300",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": true,
+ "author": "Venkat Kamesh",
+ "manufacturer": "Sri Vignan Technologies",
+ "weight": 3,
+ "file_formats": "text/x-gcode",
+ "platform": "arjunpro300_platform.STL",
+ "platform_offset": [-155, -6, 190],
+ "has_material": true,
+ "has_variants": true,
+ "preferred_variant_name": "0.4 mm Nozzle",
+ "machine_extruder_trains":
+ {
+ "0": "arjunpro_extruder_0",
+ "1": "arjunpro_extruder_1"
+ }
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Arjun Pro 300" },
+ "machine_width": { "default_value": 300 },
+ "machine_height": { "default_value": 293 },
+ "machine_depth": { "default_value": 300 },
+ "machine_center_is_zero": {"default_value": false},
+ "machine_heated_bed": { "default_value": true },
+ "machine_nozzle_size": {"default_value": 0.4},
+ "machine_show_variants": {"default_value": true},
+ "machine_acceleration": {"default_value": 2000},
+ "machine_max_feedrate_x": { "value": 300 },
+ "machine_max_feedrate_y": { "value": 300 },
+ "machine_max_feedrate_z": { "value": 15 },
+ "machine_max_feedrate_e": { "value": 150 },
+ "machine_use_extruder_offset_to_offset_coords": {"default_value": false},
+ "line_width": {"value": "machine_nozzle_size"},
+ "speed_travel": {"maximum_value": "300", "value": "200"},
+ "optimize_wall_printing_order": { "value": "True" },
+ "material_diameter": { "default_value": 1.75},
+ "retraction_amount": {"default_value": 6.5},
+ "retraction_speed": { "default_value": 30},
+
+ "adhesion_type": { "default_value": "skirt" },
+ "machine_gcode_flavor": { "default_value": "Marlin"},
+ "ironing_enabled":{"default_value": true},
+ "machine_start_gcode": { "default_value": "M605 S0\nG21\nG90\nM82\nM107\nT1\nG28 \nG29 \nG1 X0 Y5 F2000\nT1\nG92 E0\nG1 E45 F210\nG92 E0\nT0\nG92 E0\nG1 E45 F210\nG92 E0\nM117\n"},
+ "machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0 T1\nM104 S0 T0\nM140 S0\nM117\nG28 X0 Y0\nT0\nM84"},
+ "machine_extruder_count": { "default_value": 2 }
+ }
+}
diff --git a/resources/definitions/arjunpro_duplication.def.json b/resources/definitions/arjunpro_duplication.def.json
new file mode 100644
index 0000000000..9aebd197a7
--- /dev/null
+++ b/resources/definitions/arjunpro_duplication.def.json
@@ -0,0 +1,49 @@
+{
+ "version": 2,
+ "name": "Arjun Pro 300 Duplication",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": true,
+ "author": "Venkat Kamesh",
+ "manufacturer": "Sri Vignan Technologies",
+ "weight": 3,
+ "file_formats": "text/x-gcode",
+ "has_material": true,
+ "has_variants": true,
+ "preferred_variant_name": "0.4 mm Nozzle",
+ "machine_extruder_trains":
+ {
+ "0": "arjunpro_dm_extruder"
+ }
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Arjunpro 300 Duplication" },
+ "machine_width": { "default_value": 120 },
+ "machine_height": { "default_value": 293 },
+ "machine_depth": { "default_value": 300 },
+ "machine_center_is_zero": {"default_value": false},
+ "machine_heated_bed": { "default_value": true },
+ "machine_nozzle_size": {"default_value": 0.4},
+ "machine_show_variants": {"default_value": true},
+ "machine_acceleration": {"default_value": 2000},
+ "machine_max_feedrate_x": { "value": 300 },
+ "machine_max_feedrate_y": { "value": 300 },
+ "machine_max_feedrate_z": { "value": 15 },
+ "machine_max_feedrate_e": { "value": 150 },
+ "machine_use_extruder_offset_to_offset_coords": {"default_value": false},
+ "line_width": {"value": "machine_nozzle_size"},
+ "speed_travel": {"maximum_value": "300", "value": "200"},
+ "optimize_wall_printing_order": { "value": "True" },
+ "material_diameter": { "default_value": 1.75},
+ "retraction_amount": {"default_value": 6.5},
+ "retraction_speed": { "default_value": 30},
+
+ "adhesion_type": { "default_value": "skirt" },
+ "machine_gcode_flavor": { "default_value": "Marlin"},
+ "ironing_enabled":{"default_value": true},
+ "machine_start_gcode": {"default_value": "M605 S2 R0 X125\nG21\nG90\nM82\nM107\nM104 S{material_print_temperature}\nM105\nM109 S{material_print_temperature}\nG28 \nG29 \nG1 Z15 F150\nG28 Y5\nG1 Y20 F6000\nG28 X0\nG1 X80 F6000\nT0\nG92 E0\nG1 E35 F250\nG1 E45 F120\nG92 E0\nG1 X100 Z0 F5000\nG1 X125 F6000\nM117\n"},
+ "machine_end_gcode": {"default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM107 P1\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM84"},
+ "machine_extruder_count": { "default_value": 1 }
+ }
+}
diff --git a/resources/definitions/arjunpro_mirrored.def.json b/resources/definitions/arjunpro_mirrored.def.json
new file mode 100644
index 0000000000..5502708186
--- /dev/null
+++ b/resources/definitions/arjunpro_mirrored.def.json
@@ -0,0 +1,49 @@
+{
+ "version": 2,
+ "name": "Arjun Pro 300 Mirror",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": true,
+ "author": "Venkat Kamesh",
+ "manufacturer": "Sri Vignan Technologies",
+ "weight": 3,
+ "file_formats": "text/x-gcode",
+ "has_material": true,
+ "has_variants": true,
+ "preferred_variant_name": "0.4 mm Nozzle",
+ "machine_extruder_trains":
+ {
+ "0": "arjunpro_mm_extruder"
+ }
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Arjunpro 300 Mirror" },
+ "machine_width": { "default_value": 120 },
+ "machine_height": { "default_value": 293 },
+ "machine_depth": { "default_value": 300 },
+ "machine_center_is_zero": {"default_value": false},
+ "machine_heated_bed": { "default_value": true },
+ "machine_nozzle_size": {"default_value": 0.4},
+ "machine_show_variants": {"default_value": true},
+ "machine_acceleration": {"default_value": 2000},
+ "machine_max_feedrate_x": { "value": 300 },
+ "machine_max_feedrate_y": { "value": 300 },
+ "machine_max_feedrate_z": { "value": 15 },
+ "machine_max_feedrate_e": { "value": 150 },
+ "machine_use_extruder_offset_to_offset_coords": {"default_value": false},
+ "line_width": {"value": "machine_nozzle_size"},
+ "speed_travel": {"maximum_value": "300", "value": "200"},
+ "optimize_wall_printing_order": { "value": "True" },
+ "material_diameter": { "default_value": 1.75},
+ "retraction_amount": {"default_value": 6.5},
+ "retraction_speed": { "default_value": 30},
+
+ "adhesion_type": { "default_value": "skirt" },
+ "machine_gcode_flavor": { "default_value": "Marlin"},
+ "ironing_enabled":{"default_value": true},
+ "machine_start_gcode": {"default_value": "M605 S2 R0 X125\nM605 S3 X125\nG21\nG90\nM82\nM107\nM104 S{material_print_temperature}\nM105\nM109 S{material_print_temperature}\nG28 \nG29 \nG1 Z15 F150\nG28 Y5\nG1 Y20 F6000\nG28 X0\nG1 X80 F6000\nT0\nG92 E0\nG1 E35 F250\nG1 E45 F120\nG92 E0\nG1 X100 Z0 F5000\nG1 X125 F6000\nM117\n"},
+ "machine_end_gcode": {"default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM107 P1\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM84"},
+ "machine_extruder_count": { "default_value": 1 }
+ }
+}
diff --git a/resources/definitions/atmat_signal_pro_base.def.json b/resources/definitions/atmat_signal_pro_base.def.json
index 411867fb02..0d1c5a75c2 100644
--- a/resources/definitions/atmat_signal_pro_base.def.json
+++ b/resources/definitions/atmat_signal_pro_base.def.json
@@ -225,7 +225,7 @@
"retraction_prime_speed": { "value": "math.ceil(retraction_speed * 0.4)", "maximum_value_warning": "130" },
"retraction_hop_enabled": { "value": "True" },
"retraction_hop": { "value": "0.5" },
- "retraction_combing": { "default_value": "noskin" },
+ "retraction_combing": { "value": "'noskin'" },
"retraction_combing_max_distance": { "value": "10" },
"travel_avoid_other_parts": { "value": "True" },
"travel_avoid_supports": { "value": "True" },
diff --git a/resources/definitions/creality_ender5plus.def.json b/resources/definitions/creality_ender5plus.def.json
index 48ebad61ea..44469284f2 100644
--- a/resources/definitions/creality_ender5plus.def.json
+++ b/resources/definitions/creality_ender5plus.def.json
@@ -5,6 +5,7 @@
"overrides": {
"machine_name": { "default_value": "Creality Ender-5 Plus" },
"machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\nM420 S1 Z2 ;Enable ABL using saved Mesh and Fade Height\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n"},
+ "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X{machine_width} Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" },
"machine_width": { "default_value": 350 },
"machine_depth": { "default_value": 350 },
"machine_height": { "default_value": 400 },
diff --git a/resources/definitions/creality_ender6.def.json b/resources/definitions/creality_ender6.def.json
new file mode 100644
index 0000000000..7d1c8ff9f4
--- /dev/null
+++ b/resources/definitions/creality_ender6.def.json
@@ -0,0 +1,41 @@
+{
+ "name": "Creality Ender-6",
+ "version": 2,
+ "inherits": "creality_base",
+ "overrides": {
+ "machine_name": { "default_value": "Creality Ender-6" },
+ "machine_start_gcode": { "default_value": "\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n"},
+ "machine_end_gcode": { "default_value": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG28 X Y ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" },
+ "machine_width": { "default_value": 260 },
+ "machine_depth": { "default_value": 260 },
+ "machine_height": { "default_value": 400 },
+ "z_seam_type": { "value": "'sharpest_corner'"},
+ "z_seam_corner": { "value": "'z_seam_corner_inner'"},
+ "infill_sparse_density": { "value": "10"},
+ "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'grid'"},
+ "infill_overlap":{"value": 10},
+ "material_print_temperature":{"value": 220},
+ "material_bed_temperature":{"value": 50},
+ "retraction_amount":{"value": 10},
+ "speed_travel": { "value": 80.0 },
+ "coasting_enable": { "value": true},
+ "coasting_min_volume": { "value": 0.5},
+ "machine_head_with_fans_polygon": { "default_value": [
+ [-26, 34],
+ [-26, -32],
+ [32, -32],
+ [32, 34]
+ ]
+ },
+
+ "gantry_height": { "value": 25 },
+
+ "speed_print": { "value": 50.0 },
+ "speed_wall": { "value": 30.0 }
+
+ },
+ "metadata": {
+ "quality_definition": "creality_base",
+ "visible": true
+ }
+}
diff --git a/resources/definitions/creasee_cs50spro.def.json b/resources/definitions/creasee_cs50spro.def.json
new file mode 100644
index 0000000000..a2be3d0a52
--- /dev/null
+++ b/resources/definitions/creasee_cs50spro.def.json
@@ -0,0 +1,32 @@
+{
+ "version": 2,
+ "name": "Creasee CS50s Pro",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": true,
+ "manufacturer": "Creasee",
+ "machine_extruder_trains":
+ {
+ "0": "creasee_cs50spro_extruder"
+ }
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Creasee CS50s Pro" },
+ "machine_width": {
+ "default_value": 500
+ },
+ "machine_depth": {
+ "default_value": 500
+ },
+ "machine_height": {
+ "default_value": 600
+ },
+ "machine_start_gcode": {
+ "default_value": "G28 ;Home\nG1 Z15.0 F2000 ;Move the platform"
+ },
+ "machine_end_gcode": {
+ "default_value": "M104 S0\nM140 S0\nG92 E0\nG1 E-10 F2000\nG28 X0 Y0\nM84"
+ }
+ }
+}
diff --git a/resources/definitions/creasee_phoenix.def.json b/resources/definitions/creasee_phoenix.def.json
new file mode 100644
index 0000000000..05e134b6b8
--- /dev/null
+++ b/resources/definitions/creasee_phoenix.def.json
@@ -0,0 +1,32 @@
+{
+ "version": 2,
+ "name": "Creasee Phoenix",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": true,
+ "manufacturer": "Creasee",
+ "machine_extruder_trains":
+ {
+ "0": "creasee_phoenix_extruder"
+ }
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Creasee Phoenix" },
+ "machine_width": {
+ "default_value": 350
+ },
+ "machine_depth": {
+ "default_value": 350
+ },
+ "machine_height": {
+ "default_value": 350
+ },
+ "machine_start_gcode": {
+ "default_value": "G28 ;Home\nG1 Z15.0 F2000 ;Move the platform"
+ },
+ "machine_end_gcode": {
+ "default_value": "M104 S0\nM140 S0\nG92 E0\nG1 E-10 F2000\nG28 X0 Y0\nM84"
+ }
+ }
+}
diff --git a/resources/definitions/creasee_skywalker.def.json b/resources/definitions/creasee_skywalker.def.json
new file mode 100644
index 0000000000..3120e6b116
--- /dev/null
+++ b/resources/definitions/creasee_skywalker.def.json
@@ -0,0 +1,32 @@
+{
+ "version": 2,
+ "name": "Creasee Skywalker",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": true,
+ "manufacturer": "Creasee",
+ "machine_extruder_trains":
+ {
+ "0": "creasee_skywalker_extruder"
+ }
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Creasee Skywalker" },
+ "machine_width": {
+ "default_value": 300
+ },
+ "machine_depth": {
+ "default_value": 300
+ },
+ "machine_height": {
+ "default_value": 400
+ },
+ "machine_start_gcode": {
+ "default_value": "G28 ;Home\nG1 Z15.0 F2000 ;Move the platform"
+ },
+ "machine_end_gcode": {
+ "default_value": "M104 S0\nM140 S0\nG92 E0\nG1 E-10 F2000\nG28 X0 Y0\nM84"
+ }
+ }
+}
diff --git a/resources/definitions/creatable_d3.def.json b/resources/definitions/creatable_d3.def.json
index 864e25301f..a95fe44ff1 100644
--- a/resources/definitions/creatable_d3.def.json
+++ b/resources/definitions/creatable_d3.def.json
@@ -27,7 +27,7 @@
"gantry_height": {"value": "43"},
"layer_height": { "default_value": 0.1 },
"relative_extrusion": { "value": "False" },
- "retraction_combing": { "default_value": "off" },
+ "retraction_combing": { "value": "'off'" },
"retraction_hop_enabled": { "default_value": true },
"retraction_hop_only_when_collides": { "default_value": false },
"retraction_speed": { "default_value": 100 },
diff --git a/resources/definitions/cremaker_common.def.json b/resources/definitions/cremaker_common.def.json
new file mode 100644
index 0000000000..6fd339f58f
--- /dev/null
+++ b/resources/definitions/cremaker_common.def.json
@@ -0,0 +1,58 @@
+{
+ "version": 2,
+ "name": "cremaker common",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": false,
+ "author": "Joyplace",
+ "manufacturer": "JOYPLACE CO., LTD.",
+ "file_formats": "text/x-gcode",
+ "icon": "icon_ultimaker2",
+ "has_materials": true,
+ "machine_extruder_trains": {
+ "0": "cremaker_extruder_0"
+ }
+ },
+
+ "overrides": {
+ "machine_heated_bed": { "default_value": true },
+ "material_diameter": { "default_value": 1.75 },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "layer_height": { "value": 0.2 },
+ "layer_height_0": { "value": 0.3 },
+ "optimize_wall_printing_order": { "value": true },
+ "xy_offset": { "value": 0.1 },
+ "xy_offset_layer_0": { "value": -0.1 },
+ "hole_xy_offset": { "value": 0.15 },
+ "material_print_temperature": { "value": 200 },
+ "speed_travel": { "value": 100 },
+ "speed_layer_0": { "value": 25 },
+ "acceleration_enabled": { "value": true },
+ "acceleration_print": { "value": 1250 },
+ "acceleration_infill": { "value": 1250 },
+ "acceleration_wall": { "value": 800 },
+ "acceleration_wall_0": { "value": 800 },
+ "acceleration_wall_x": { "value": 800 },
+ "acceleration_travel": { "value": 1250 },
+ "acceleration_layer_0": { "value": 1000 },
+ "acceleration_print_layer_0": { "value": 1000 },
+ "acceleration_travel_layer_0": { "value": 1000 },
+ "retraction_amount": { "value": 1.2 },
+ "retraction_speed": { "value": 40 },
+ "retraction_combing": { "value": "'infill'" },
+ "retraction_hop_enabled": { "value": true },
+ "retraction_hop_only_when_collides": { "value": true },
+ "retraction_hop": { "value": 0.3 },
+ "adhesion_type": { "value": "'skirt'" },
+ "relative_extrusion": { "value": true },
+ "gantry_height": { "value": 28 },
+ "machine_max_feedrate_z": { "value": 12 },
+ "machine_max_feedrate_e": { "value": 120 },
+ "machine_max_acceleration_z": { "value": 10 },
+ "machine_acceleration": { "value": 1250 },
+ "machine_max_jerk_xy": { "value": 10 },
+ "machine_max_jerk_z": { "value": 0.3 },
+ "machine_max_jerk_e": { "value": 5.0 },
+ "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }
+ }
+}
diff --git a/resources/definitions/cremaker_m_v1.def.json b/resources/definitions/cremaker_m_v1.def.json
new file mode 100644
index 0000000000..d4cd65a6da
--- /dev/null
+++ b/resources/definitions/cremaker_m_v1.def.json
@@ -0,0 +1,40 @@
+{
+ "version": 2,
+ "name": "Cremaker M V1",
+ "inherits": "cremaker_common",
+ "metadata": {
+ "visible": true,
+ "platform": "cremaker_platform_200.obj"
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Cremaker M V1" },
+ "machine_width": { "default_value": 200 },
+ "machine_depth": { "default_value": 200 },
+ "machine_height": { "default_value": 260 },
+ "initial_layer_line_width_factor": { "default_value": 110.0 },
+ "machine_head_with_fans_polygon": {
+ "default_value": [
+ [ -35, 48 ],
+ [ 54, 48 ],
+ [ 54, -67 ],
+ [ -35, -67 ]
+ ]
+ },
+ "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
+ "machine_start_gcode": {
+ "default_value": "G28\nG1 Z5.0 F6000\nG1 X2 Y5 F3000\nG1 Z0.3\nG92 E0\nG1 Y100 E10 F600\nG92 E0"
+ },
+ "machine_end_gcode": {
+ "default_value": "M104 S0\nM140 S0\nG92 E1\nG1 E-1 F300\nG28 X0 Y180\nM84"
+ },
+ "jerk_enabled": { "value": true },
+ "jerk_print": { "value": 8 },
+ "jerk_infill": { "value": 8 },
+ "jerk_wall": { "value": 8 },
+ "jerk_wall_0": { "value": 8 },
+ "jerk_wall_x": { "value": 8 },
+ "jerk_travel": { "value": 10 },
+ "jerk_layer_0": { "value": 8 }
+ }
+}
diff --git a/resources/definitions/cremaker_m_v2.def.json b/resources/definitions/cremaker_m_v2.def.json
new file mode 100644
index 0000000000..2d6c4d1a7f
--- /dev/null
+++ b/resources/definitions/cremaker_m_v2.def.json
@@ -0,0 +1,38 @@
+{
+ "version": 2,
+ "name": "Cremaker M V2",
+ "inherits": "cremaker_common",
+ "metadata": {
+ "visible": true,
+ "platform": "cremaker_platform_220.obj"
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Cremaker M V2" },
+ "machine_width": { "default_value": 220 },
+ "machine_depth": { "default_value": 220 },
+ "machine_height": { "default_value": 260 },
+ "initial_layer_line_width_factor": { "default_value": 100.0 },
+ "machine_head_with_fans_polygon": {
+ "default_value": [
+ [ -35, 48 ],
+ [ 54, 48 ],
+ [ 54, -67 ],
+ [ -35, -67 ]
+ ]
+ },
+ "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
+ "machine_start_gcode": {
+ "default_value": "G28\nG29\nG1 Z5.0 F6000\nG1 X2 Y5 Z0.3 F3000\nG92 E0\nG1 Y100 E10 F1500\nG0 X2.3 F3000\nG1 Y20 E8.5 F1500\nG92 E0\nG1 F2400 E-2"
+ },
+ "machine_end_gcode": {
+ "default_value": "M104 S0\nM140 S0\nG92 E1\nG1 E-1 F300\nG28 X0 Y200\nM84"
+ },
+
+ "cool_fan_speed": { "value": 50 },
+ "coasting_enable": { "value": true },
+ "coasting_volume": { "value": 0.05 },
+ "coasting_min_volume": { "value": 1.0 },
+ "jerk_enabled": { "value": false }
+ }
+}
diff --git a/resources/definitions/cremaker_s_v1.def.json b/resources/definitions/cremaker_s_v1.def.json
new file mode 100644
index 0000000000..101d82fac8
--- /dev/null
+++ b/resources/definitions/cremaker_s_v1.def.json
@@ -0,0 +1,32 @@
+{
+ "version": 2,
+ "name": "Cremaker S V1",
+ "inherits": "cremaker_common",
+ "metadata": {
+ "visible": true,
+ "platform": "cremaker_platform_200.obj"
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Cremaker S V1" },
+ "machine_width": { "default_value": 200 },
+ "machine_depth": { "default_value": 200 },
+ "machine_height": { "default_value": 160 },
+ "initial_layer_line_width_factor": { "default_value": 110.0 },
+ "machine_head_with_fans_polygon": {
+ "default_value": [
+ [ -39, 45 ],
+ [ 23, 45 ],
+ [ 23, -33 ],
+ [ -39, -33 ]
+ ]
+ },
+ "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
+ "machine_start_gcode": {
+ "default_value": "G28\nG1 Z5.0 F6000\nG1 X2 Y5 F3000\nG1 Z0.3\nG92 E0\nG1 Y100 E10 F600\nG92 E0"
+ },
+ "machine_end_gcode": {
+ "default_value": "M104 S0 ; turn off extruder\nM140 S0 ; turn off heatbed\nG92 E1\nG1 E-1 F300\nG28 X0 Y180\nM84"
+ }
+ }
+}
diff --git a/resources/definitions/deltacomb_base.def.json b/resources/definitions/deltacomb_base.def.json
index 254257036a..a977dee663 100644
--- a/resources/definitions/deltacomb_base.def.json
+++ b/resources/definitions/deltacomb_base.def.json
@@ -64,7 +64,7 @@
"retraction_hop": { "default_value": 1.0 },
"retraction_amount" : { "default_value": 3.5 },
"retraction_speed" : { "default_value": 40 },
- "retraction_combing" : { "default_value": "noskin" },
+ "retraction_combing" : { "value": "'noskin'" },
"travel_avoid_distance": { "value": "1" },
"travel_avoid_supports": { "value": "True" },
"retraction_hop_only_when_collides": { "value": "1" },
diff --git a/resources/definitions/eryone_thinker.def.json b/resources/definitions/eryone_thinker.def.json
index ded5fbc1f5..a89ae76bcb 100644
--- a/resources/definitions/eryone_thinker.def.json
+++ b/resources/definitions/eryone_thinker.def.json
@@ -12,7 +12,7 @@
"platform_texture": "eryone_thinker_plate.png",
"platform_offset": [0, -120, 0],
"has_materials": true,
- "preferred_material": "generic_pla",
+ "preferred_material": "eryone_pla",
"has_machine_quality": true,
"preferred_quality_type": "normal",
"machine_extruder_trains":
@@ -57,10 +57,10 @@
"default_value": "Marlin"
},
"machine_start_gcode": {
- "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z10.0 F600 ;move the platform down 10mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Y-3 F1200 ;move to prime\nG1 X10 F1200 ;\nG1 Z0.1 F600 ;get ready to prime\nG1 X120 E15 F1200 ;prime nozzle \nG1 X120 F3600 ;quick wipe\nG92 E0 ;zero the extruded length\nG5 ;enable resume from power failure\nM117 Printing..."
+ "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z10.0 F600 ;move the platform down 10mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Y-3 F1200 ;move to prime\nG1 X10 F1200 ;\nG1 Z0.1 F600 ;get ready to prime\nG1 X120 E15 F1200 ;prime nozzle \nG1 X120 F3600 ;quick wipe\nG92 E0 ;zero the extruded length\nM413 S1 ;enable resume from power failure\nM117 Printing..."
},
"machine_end_gcode": {
- "default_value": "M104 S0 ;turn off extruder\nM140 S0 ;turn off bed\nM107 ;turn off all fans\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 E-5 F300\nG1 Z+0.5 E-5 ;move Z up a bit and retract filament even more\nG90 ;absolute positioning\nG1 X0 Y250 F4800 ; position for easy part removal\nM84 ;steppers off"
+ "default_value": "M104 S0 ;turn off extruder\nM140 S0 ;turn off bed\nM107 ;turn off all fans\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 ;move Z up a bit and retract filament even more\nG90 ;absolute positioning\nG1 X0 Y250 F4800 ; position for easy part removal\nM84 ;steppers off"
},
"acceleration_enabled": {
"value": true
@@ -160,7 +160,7 @@
"value": 10
},
"skirt_brim_speed": {
- "value": 40
+ "value": "math.ceil(speed_print * 40 / 60)"
},
"skirt_gap": {
"value": 5
@@ -229,7 +229,7 @@
"value": 3
},
"wall_thickness": {
- "value": "1.2"
+ "value": "line_width * wall_line_count"
},
"bottom_layers": {
"value": "4"
@@ -250,4 +250,4 @@
"value": "'z_seam_corner_inner'"
}
}
-}
+} \ No newline at end of file
diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json
index ff8c410c5b..f25aed5d5b 100644
--- a/resources/definitions/fdmextruder.def.json
+++ b/resources/definitions/fdmextruder.def.json
@@ -6,7 +6,7 @@
"type": "extruder",
"author": "Ultimaker",
"manufacturer": "Unknown",
- "setting_version": 18,
+ "setting_version": 19,
"visible": false,
"position": "0"
},
diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json
index 27e0d61126..ad31892e14 100644
--- a/resources/definitions/fdmprinter.def.json
+++ b/resources/definitions/fdmprinter.def.json
@@ -6,7 +6,7 @@
"type": "machine",
"author": "Ultimaker",
"manufacturer": "Unknown",
- "setting_version": 18,
+ "setting_version": 19,
"file_formats": "text/x-gcode;model/stl;application/x-wavefront-obj;application/x3g",
"visible": false,
"has_materials": true,
@@ -1943,7 +1943,7 @@
"default_value": 2,
"minimum_value": "0",
"minimum_value_warning": "infill_line_width",
- "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else (1 if infill_pattern == 'cross' or infill_pattern == 'cross_3d' else 1))))",
+ "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else (1 if infill_pattern == 'cross' or infill_pattern == 'cross_3d' else (1.6 if infill_pattern == 'lightning' else 1)))))",
"limit_to_extruder": "infill_extruder_nr",
"settable_per_mesh": true
}
@@ -1952,7 +1952,7 @@
"infill_pattern":
{
"label": "Infill Pattern",
- "description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction.",
+ "description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model.",
"type": "enum",
"options":
{
@@ -1968,7 +1968,8 @@
"zigzag": "Zig Zag",
"cross": "Cross",
"cross_3d": "Cross 3D",
- "gyroid": "Gyroid"
+ "gyroid": "Gyroid",
+ "lightning": "Lightning"
},
"default_value": "grid",
"enabled": "infill_line_distance > 0",
@@ -1994,7 +1995,7 @@
"type": "bool",
"default_value": true,
"value": "(infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_multiplier % 2 == 0) and infill_wall_line_count > 0",
- "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'concentric' or infill_multiplier % 2 == 0 or infill_wall_line_count > 1",
+ "enabled": "infill_pattern != 'lightning' and infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'concentric' or infill_multiplier % 2 == 0 or infill_wall_line_count > 1",
"limit_to_extruder": "infill_extruder_nr",
"settable_per_mesh": true
},
@@ -2004,7 +2005,7 @@
"description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees for the lines and zig zag patterns and 45 degrees for all other patterns).",
"type": "[int]",
"default_value": "[ ]",
- "enabled": "infill_pattern != 'concentric' and infill_sparse_density > 0",
+ "enabled": "infill_pattern != 'lightning' and infill_pattern != 'concentric' and infill_sparse_density > 0",
"limit_to_extruder": "infill_extruder_nr",
"settable_per_mesh": true
},
@@ -2015,7 +2016,7 @@
"unit": "mm",
"type": "float",
"default_value": 0,
- "enabled": "infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'",
+ "enabled": "infill_pattern != 'lightning' and infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'",
"limit_to_extruder": "infill_extruder_nr",
"settable_per_mesh": true
},
@@ -2026,7 +2027,7 @@
"unit": "mm",
"type": "float",
"default_value": 0,
- "enabled": "infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'",
+ "enabled": "infill_pattern != 'lightning' and infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'",
"limit_to_extruder": "infill_extruder_nr",
"settable_per_mesh": true
},
@@ -2037,7 +2038,7 @@
"type": "bool",
"default_value": false,
"warning_value": "True if infill_pattern not in ('grid', 'triangles', 'trihexagon', 'cubic', 'cubicsubdiv', 'tetrahedral', 'quarter_cubic') else None",
- "enabled": "not ((infill_pattern == 'cross' and connect_infill_polygons) or infill_pattern == 'concentric')",
+ "enabled": "not (infill_pattern == 'lightning' or (infill_pattern == 'cross' and connect_infill_polygons) or infill_pattern == 'concentric')",
"limit_to_extruder": "infill_extruder_nr",
"settable_per_mesh": true
},
@@ -2146,7 +2147,7 @@
"minimum_value": "0",
"maximum_value_warning": "1 if (infill_pattern == 'cross' or infill_pattern == 'cross_3d' or support_pattern == 'concentric') else 5",
"maximum_value": "999999 if infill_line_distance == 0 else (20 - math.log(infill_line_distance) / math.log(2))",
- "enabled": "infill_sparse_density > 0 and infill_pattern != 'cubicsubdiv'",
+ "enabled": "infill_pattern != 'lightning' and infill_sparse_density > 0 and infill_pattern != 'cubicsubdiv'",
"limit_to_extruder": "infill_extruder_nr",
"settable_per_mesh": true
},
@@ -2159,7 +2160,7 @@
"default_value": 1.5,
"minimum_value": "0.0001",
"minimum_value_warning": "3 * resolveOrValue('layer_height')",
- "enabled": "infill_sparse_density > 0 and gradual_infill_steps > 0 and infill_pattern != 'cubicsubdiv'",
+ "enabled": "infill_pattern != 'lightning' and infill_sparse_density > 0 and gradual_infill_steps > 0 and infill_pattern != 'cubicsubdiv'",
"limit_to_extruder": "infill_extruder_nr",
"settable_per_mesh": true
},
@@ -2189,7 +2190,7 @@
"description": "Print infill structures only where tops of the model should be supported. Enabling this reduces print time and material usage, but leads to ununiform object strength.",
"type": "bool",
"default_value": false,
- "enabled": "infill_sparse_density > 0",
+ "enabled": "infill_pattern != 'lightning' and infill_sparse_density > 0",
"limit_to_extruder": "infill_extruder_nr",
"settable_per_mesh": true
},
@@ -2203,7 +2204,7 @@
"minimum_value_warning": "2",
"maximum_value": "90",
"default_value": 40,
- "enabled": "infill_sparse_density > 0 and infill_support_enabled",
+ "enabled": "infill_pattern != 'lightning' and infill_sparse_density > 0 and infill_support_enabled",
"limit_to_extruder": "infill_extruder_nr",
"settable_per_mesh": true
},
@@ -2237,6 +2238,72 @@
"settable_per_mesh": true
}
}
+ },
+ "lightning_infill_support_angle":
+ {
+ "label": "Lightning Infill Support Angle",
+ "description": "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer.",
+ "unit": "°",
+ "type": "float",
+ "minimum_value": "0",
+ "maximum_value": "90",
+ "maximum_value_warning": "75",
+ "default_value": 40,
+ "limit_to_extruder": "infill_extruder_nr",
+ "enabled": "infill_pattern == 'lightning'",
+ "settable_per_mesh": false,
+ "settable_per_extruder": true,
+ "children":
+ {
+ "lightning_infill_overhang_angle":
+ {
+ "label": "Lightning Infill Overhang Angle",
+ "description": "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness.",
+ "unit": "°",
+ "type": "float",
+ "minimum_value": "0",
+ "maximum_value": "90",
+ "maximum_value_warning": "75",
+ "default_value": 40,
+ "limit_to_extruder": "infill_extruder_nr",
+ "enabled": "infill_pattern == 'lightning'",
+ "settable_per_mesh": false,
+ "settable_per_extruder": true,
+ "value": "lightning_infill_support_angle"
+ },
+ "lightning_infill_prune_angle":
+ {
+ "label": "Lightning Infill Prune Angle",
+ "description": "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness.",
+ "unit": "°",
+ "type": "float",
+ "minimum_value": "0",
+ "maximum_value": "90",
+ "maximum_value_warning": "75",
+ "default_value": 40,
+ "limit_to_extruder": "infill_extruder_nr",
+ "enabled": "infill_pattern == 'lightning'",
+ "settable_per_mesh": false,
+ "settable_per_extruder": true,
+ "value": "lightning_infill_support_angle"
+ },
+ "lightning_infill_straightening_angle":
+ {
+ "label": "Lightning Infill Straightening Angle",
+ "description": "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness.",
+ "unit": "°",
+ "type": "float",
+ "minimum_value": "0",
+ "maximum_value": "90",
+ "maximum_value_warning": "75",
+ "default_value": 40,
+ "limit_to_extruder": "infill_extruder_nr",
+ "enabled": "infill_pattern == 'lightning'",
+ "settable_per_mesh": false,
+ "settable_per_extruder": true,
+ "value": "lightning_infill_support_angle"
+ }
+ }
}
}
},
@@ -3901,11 +3968,13 @@
{
"off": "Off",
"all": "All",
+ "no_outer_surfaces": "Not on Outer Surface",
"noskin": "Not in Skin",
"infill": "Within Infill"
},
"default_value": "all",
- "resolve": "'noskin' if 'noskin' in extruderValues('retraction_combing') else ('infill' if 'infill' in extruderValues('retraction_combing') else ('all' if 'all' in extruderValues('retraction_combing') else 'off'))",
+ "value": "'no_outer_surfaces' if (any(extruderValues('skin_monotonic')) or any(extruderValues('ironing_enabled')) or (any(extruderValues('roofing_monotonic')) and any(extruderValues('roofing_layer_count')))) else 'all'",
+ "resolve": "'noskin' if 'noskin' in extruderValues('retraction_combing') else ('infill' if 'infill' in extruderValues('retraction_combing') else ('all' if 'all' in extruderValues('retraction_combing') else ('no_outer_surfaces' if 'no_outer_surfaces' in extruderValues('retraction_combing') else 'off')))",
"settable_per_mesh": false,
"settable_per_extruder": false
},
diff --git a/resources/definitions/hellbot_hidra.def.json b/resources/definitions/hellbot_hidra.def.json
index 87695dc9d0..90a196e1a9 100644
--- a/resources/definitions/hellbot_hidra.def.json
+++ b/resources/definitions/hellbot_hidra.def.json
@@ -7,14 +7,14 @@
"author": "Hellbot Development Team",
"manufacturer": "Hellbot",
"file_formats": "text/x-gcode",
- "platform": "hellbot_hidra.obj",
- "platform_offset": [0, 0, 5],
+ "platform": "hellbot_hidra.obj",
+ "platform_offset": [0, 0, 5],
"platform_texture": "hellbot_hidra.png",
"has_materials": true,
"machine_extruder_trains":
{
"0": "hellbot_hidra_extruder_0",
- "1": "hellbot_hidra_extruder_1"
+ "1": "hellbot_hidra_extruder_1"
}
},
@@ -24,19 +24,19 @@
"machine_width": {
"default_value": 220
},
- "machine_depth": {
+ "machine_depth": {
"default_value": 220
},
"machine_height": {
"default_value": 250
},
- "machine_heated_bed": {
- "default_value": true
- },
+ "machine_heated_bed": {
+ "default_value": true
+ },
"machine_center_is_zero": {
"default_value": false
},
- "machine_head_with_fans_polygon":
+ "machine_head_with_fans_polygon":
{
"default_value": [
[ -75, 35 ],
@@ -48,11 +48,11 @@
"machine_extruder_count": {
"default_value": 2
},
- "machine_start_gcode": {
- "default_value": "G21; Unidades en Milimetro\nG90; Posicionamiento Absoluto\nM82; E Absoluto\nM107; Apagar Venitilador de capas\nG28; Llevar ejes a origen\nG1 Z15.0 F9000; Levantar Eje Z 15mm"
+ "machine_start_gcode": {
+ "default_value": "G21;\nG90;\nM82;\nM107;\nG28;\nG1 Z15.0 F9000;"
},
"machine_end_gcode": {
- "default_value": "M104 T0 S0; Apagar Extrusor E0\nM104 T1 S0; Apagar Extrusor E1\nM140 S0; Apagar Cama Caliente\nG92 E1; Posicionar Extrusor en 1mm\nG1 E-1 F300; Retraer Extrusor 1mm\nG28 X0 Y0; Llevar al origen ejes X e Y\nM84; Desactivar Motores "
+ "default_value": "M104 T0 S0;\nM104 T1 S0;\nM140 S0;\nG92 E1;\nG1 E-1 F300;\nG28 X0 Y0;\nM84;"
}
}
diff --git a/resources/definitions/hellbot_hidra_plus.def.json b/resources/definitions/hellbot_hidra_plus.def.json
index 9ff7a40ecd..f3c1013915 100644
--- a/resources/definitions/hellbot_hidra_plus.def.json
+++ b/resources/definitions/hellbot_hidra_plus.def.json
@@ -7,14 +7,14 @@
"author": "Hellbot Development Team",
"manufacturer": "Hellbot",
"file_formats": "text/x-gcode",
- "platform": "hellbot_hidra_plus.obj",
- "platform_offset": [0, 0, 5],
+ "platform": "hellbot_hidra_plus.obj",
+ "platform_offset": [0, 0, 5],
"platform_texture": "hellbot_hidra_plus.png",
"has_materials": true,
"machine_extruder_trains":
{
"0": "hellbot_hidra_plus_extruder_0",
- "1": "hellbot_hidra_plus_extruder_1"
+ "1": "hellbot_hidra_plus_extruder_1"
}
},
@@ -22,21 +22,21 @@
"overrides": {
"machine_name": { "default_value": "Hellbot Hidra Plus" },
"machine_width": {
- "default_value": 305
+ "default_value": 300
},
"machine_depth": {
- "default_value": 305
+ "default_value": 300
},
- "machine_height": {
+ "machine_height": {
"default_value": 350
},
- "machine_heated_bed": {
- "default_value": true
- },
+ "machine_heated_bed": {
+ "default_value": true
+ },
"machine_center_is_zero": {
"default_value": false
},
- "machine_head_with_fans_polygon":
+ "machine_head_with_fans_polygon":
{
"default_value": [
[ -75, 35 ],
@@ -48,12 +48,11 @@
"machine_extruder_count": {
"default_value": 2
},
- "machine_start_gcode": {
- "default_value": "G21; Unidades en Milimetro\nG90; Posicionamiento Absoluto\nM82; E Absoluto\nM107; Apagar Venitilador de capas\nG28; Llevar ejes a origen\nG1 Z15.0 F9000; Levantar Eje Z 15mm"
+ "machine_start_gcode": {
+ "default_value": "G21;\nG90;\nM82;\nM107;\nG28;\nG1 Z15.0 F9000;"
},
"machine_end_gcode": {
- "default_value": "M104 T0 S0; Apagar Extrusor E0\nM104 T1 S0; Apagar Extrusor E1\nM140 S0; Apagar Cama Caliente\nG92 E1; Posicionar Extrusor en 1mm\nG1 E-1 F300; Retraer Extrusor 1mm\nG28 X0 Y0; Llevar al origen ejes X e Y\nM84; Desactivar Motores "
+ "default_value": "M104 T0 S0;\nM104 T1 S0;\nM140 S0;\nG92 E1;\nG1 E-1 F300;\nG28 X0 Y0;\nM84;"
}
-
}
}
diff --git a/resources/definitions/hellbot_magna_2_230.def.json b/resources/definitions/hellbot_magna_2_230.def.json
index 0dedd0b71a..ef6dc0b3be 100644
--- a/resources/definitions/hellbot_magna_2_230.def.json
+++ b/resources/definitions/hellbot_magna_2_230.def.json
@@ -7,7 +7,7 @@
"author": "Hellbot Development Team",
"manufacturer": "Hellbot",
"file_formats": "text/x-gcode",
- "platform": "Hellbot_Magna_2_230.obj",
+ "platform": "Hellbot_Magna_2_230.obj",
"platform_texture": "Magna2_230.png",
"has_materials": true,
"machine_extruder_trains":
@@ -28,9 +28,9 @@
"machine_depth": {
"default_value": 230
},
- "machine_heated_bed": {
- "default_value": true
- },
+ "machine_heated_bed": {
+ "default_value": true
+ },
"machine_center_is_zero": {
"default_value": false
},
diff --git a/resources/definitions/hellbot_magna_2_230_dual.def.json b/resources/definitions/hellbot_magna_2_230_dual.def.json
index ad15ddf264..b7a0e6f820 100644
--- a/resources/definitions/hellbot_magna_2_230_dual.def.json
+++ b/resources/definitions/hellbot_magna_2_230_dual.def.json
@@ -7,13 +7,13 @@
"author": "Hellbot Development Team",
"manufacturer": "Hellbot",
"file_formats": "text/x-gcode",
- "platform": "Hellbot_Magna_2_230.obj",
+ "platform": "Hellbot_Magna_2_230.obj",
"platform_texture": "Magna2_230.png",
"has_materials": true,
"machine_extruder_trains":
{
"0": "hellbot_magna_2_230_dual_extruder_0",
- "1": "hellbot_magna_2_230_dual_extruder_1"
+ "1": "hellbot_magna_2_230_dual_extruder_1"
}
},
@@ -29,21 +29,20 @@
"machine_depth": {
"default_value": 230
},
- "machine_heated_bed": {
- "default_value": true
- },
+ "machine_heated_bed": {
+ "default_value": true
+ },
"machine_center_is_zero": {
"default_value": false
},
"machine_extruder_count": {
"default_value": 2
},
- "machine_start_gcode": {
+ "machine_start_gcode": {
"default_value": "G21\nG90\nM107\nG28 X0 Y0\nG28 Z0\nG1 Z15.0 F300\nT0\nG92 E0\nG1 F700 E-80\nT1\nG92 E0\nG1 F1000 X1 Y1 Z0.3\nG1 F600 X200 E60\nG1 F1000 Y3\nG1 F600 X1 E120\nT1\nG92 E0\nG28 X0 Y0\nG1 F700 E-80\nT0\nG92 E0"
- },
+ },
"machine_end_gcode": {
"default_value": "M104 T0 S0\nM104 T1 S0\nM140 S0\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84"
}
-
}
}
diff --git a/resources/definitions/hellbot_magna_2_300.def.json b/resources/definitions/hellbot_magna_2_300.def.json
index 8fe65de581..d0cf2657b8 100644
--- a/resources/definitions/hellbot_magna_2_300.def.json
+++ b/resources/definitions/hellbot_magna_2_300.def.json
@@ -7,7 +7,7 @@
"author": "Hellbot Development Team",
"manufacturer": "Hellbot",
"file_formats": "text/x-gcode",
- "platform": "Hellbot_Magna_2_300.obj",
+ "platform": "Hellbot_Magna_2_300.obj",
"platform_texture": "Magna2_300.png",
"has_materials": true,
"machine_extruder_trains":
@@ -28,15 +28,14 @@
"machine_depth": {
"default_value": 300
},
- "machine_heated_bed": {
- "default_value": true
- },
+ "machine_heated_bed": {
+ "default_value": true
+ },
"machine_center_is_zero": {
"default_value": false
},
"machine_extruder_count": {
"default_value": 1
}
-
}
}
diff --git a/resources/definitions/hellbot_magna_2_300_dual.def.json b/resources/definitions/hellbot_magna_2_300_dual.def.json
index cd94d03100..52efac0ed2 100644
--- a/resources/definitions/hellbot_magna_2_300_dual.def.json
+++ b/resources/definitions/hellbot_magna_2_300_dual.def.json
@@ -7,13 +7,13 @@
"author": "Hellbot Development Team",
"manufacturer": "Hellbot",
"file_formats": "text/x-gcode",
- "platform": "Hellbot_Magna_2_300.obj",
+ "platform": "Hellbot_Magna_2_300.obj",
"platform_texture": "Magna2_300.png",
"has_materials": true,
"machine_extruder_trains":
{
"0": "hellbot_magna_2_300_dual_extruder_0",
- "1": "hellbot_magna_2_300_dual_extruder_1"
+ "1": "hellbot_magna_2_300_dual_extruder_1"
}
},
@@ -29,21 +29,20 @@
"machine_depth": {
"default_value": 300
},
- "machine_heated_bed": {
- "default_value": true
- },
+ "machine_heated_bed": {
+ "default_value": true
+ },
"machine_center_is_zero": {
"default_value": false
},
"machine_extruder_count": {
"default_value": 2
},
- "machine_start_gcode": {
- "default_value": "G21\nG90\nM107\nG28 X0 Y0\nG28 Z0\nG1 Z15.0 F300\nT0\nG92 E0\nG1 F700 E-80\nT1\nG92 E0\nG1 F1000 X1 Y1 Z0.3\nG1 F600 X200 E60\nG1 F1000 Y3\nG1 F600 X1 E120\nT1\nG92 E0\nG28 X0 Y0\nG1 F700 E-80\nT0\nG92 E0"
- },
+ "machine_start_gcode": {
+ "default_value": "G21\nG90\nM107\nG28 X0 Y0\nG28 Z0\nG1 Z15.0 F300\nT0\nG92 E0\nG1 F700 E-80\nT1\nG92 E0\nG1 F1000 X1 Y1 Z0.3\nG1 F600 X200 E60\nG1 F1000 Y3\nG1 F600 X1 E120\nT1\nG92 E0\nG28 X0 Y0\nG1 F700 E-80\nT0\nG92 E0"
+ },
"machine_end_gcode": {
"default_value": "M104 T0 S0\nM104 T1 S0\nM140 S0\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84"
}
-
}
}
diff --git a/resources/definitions/hellbot_magna_2_400.def.json b/resources/definitions/hellbot_magna_2_400.def.json
new file mode 100644
index 0000000000..b98c43805c
--- /dev/null
+++ b/resources/definitions/hellbot_magna_2_400.def.json
@@ -0,0 +1,42 @@
+{
+ "version": 2,
+ "name": "Hellbot Magna 2 400",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": true,
+ "author": "Hellbot Development Team",
+ "manufacturer": "Hellbot",
+ "file_formats": "text/x-gcode",
+ "platform": "Hellbot_Magna_2_400.obj",
+ "platform_texture": "Magna2_400.png",
+ "has_materials": true,
+ "machine_extruder_trains":
+ {
+ "0": "hellbot_magna_2_400_extruder_0"
+ }
+
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Hellbot Magna 2 400" },
+ "machine_width": {
+ "default_value": 400
+ },
+ "machine_height": {
+ "default_value": 400
+ },
+ "machine_depth": {
+ "default_value": 400
+ },
+ "machine_heated_bed": {
+ "default_value": true
+ },
+ "machine_center_is_zero": {
+ "default_value": false
+ },
+ "machine_extruder_count": {
+ "default_value": 1
+ }
+
+ }
+}
diff --git a/resources/definitions/hellbot_magna_2_400_dual.def.json b/resources/definitions/hellbot_magna_2_400_dual.def.json
new file mode 100644
index 0000000000..963a7f7bc1
--- /dev/null
+++ b/resources/definitions/hellbot_magna_2_400_dual.def.json
@@ -0,0 +1,49 @@
+{
+ "version": 2,
+ "name": "Hellbot Magna 2 400 dual",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": true,
+ "author": "Hellbot Development Team",
+ "manufacturer": "Hellbot",
+ "file_formats": "text/x-gcode",
+ "platform": "Hellbot_Magna_2_400.obj",
+ "platform_texture": "Magna2_400.png",
+ "has_materials": true,
+ "machine_extruder_trains":
+ {
+ "0": "hellbot_magna_2_400_dual_extruder_0",
+ "1": "hellbot_magna_2_400_dual_extruder_1"
+ }
+
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Hellbot Magna 2 400 Dual" },
+ "machine_width": {
+ "default_value": 400
+ },
+ "machine_height": {
+ "default_value": 400
+ },
+ "machine_depth": {
+ "default_value": 400
+ },
+ "machine_heated_bed": {
+ "default_value": true
+ },
+ "machine_center_is_zero": {
+ "default_value": false
+ },
+ "machine_extruder_count": {
+ "default_value": 2
+ },
+ "machine_start_gcode": {
+ "default_value": "M104 T0 S{material_print_temperature}\nM104 T1 S{material_print_temperature}\nM109 T0 S{material_print_temperature}\nM109 T1 S{material_print_temperature}\nG21\nG90 \nG28 X0 Y0 \nG28 Z0 \nG1 Z15.0 F300 \nT0 \nG92 E0 \nG1 F700 E-80 \nT1 \nG92 E0 \nG1 F1000 X1 Y1 Z0.3 \nG1 F600 X200 E60 \nG1 F1000 Y3 \nG1 F600 X1 E120 \nT1 \nG92 E0 \nG28 X0 Y0 \nG1 F700 E-80 \nT0 \nG92 E0"
+ },
+ "machine_end_gcode": {
+ "default_value": "M104 T0 S0\nM104 T1 S0\nM140 S0\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84"
+ }
+
+ }
+}
diff --git a/resources/definitions/hellbot_magna_2_500.def.json b/resources/definitions/hellbot_magna_2_500.def.json
new file mode 100644
index 0000000000..e7c645b6f4
--- /dev/null
+++ b/resources/definitions/hellbot_magna_2_500.def.json
@@ -0,0 +1,42 @@
+{
+ "version": 2,
+ "name": "Hellbot Magna 2 500",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": true,
+ "author": "Hellbot Development Team",
+ "manufacturer": "Hellbot",
+ "file_formats": "text/x-gcode",
+ "platform": "Hellbot_Magna_2_500.obj",
+ "platform_texture": "Magna2_500.png",
+ "has_materials": true,
+ "machine_extruder_trains":
+ {
+ "0": "hellbot_magna_2_500_extruder_0"
+ }
+
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Hellbot Magna 2 500" },
+ "machine_width": {
+ "default_value": 500
+ },
+ "machine_height": {
+ "default_value": 500
+ },
+ "machine_depth": {
+ "default_value": 500
+ },
+ "machine_heated_bed": {
+ "default_value": true
+ },
+ "machine_center_is_zero": {
+ "default_value": false
+ },
+ "machine_extruder_count": {
+ "default_value": 1
+ }
+
+ }
+}
diff --git a/resources/definitions/hellbot_magna_2_500_dual.def.json b/resources/definitions/hellbot_magna_2_500_dual.def.json
new file mode 100644
index 0000000000..5b3f05ec4d
--- /dev/null
+++ b/resources/definitions/hellbot_magna_2_500_dual.def.json
@@ -0,0 +1,48 @@
+{
+ "version": 2,
+ "name": "Hellbot Magna 2 500 dual",
+ "inherits": "fdmprinter",
+ "metadata": {
+ "visible": true,
+ "author": "Hellbot Development Team",
+ "manufacturer": "Hellbot",
+ "file_formats": "text/x-gcode",
+ "platform": "Hellbot_Magna_2_500.obj",
+ "platform_texture": "Magna2_500.png",
+ "has_materials": true,
+ "machine_extruder_trains":
+ {
+ "0": "hellbot_magna_2_500_dual_extruder_0",
+ "1": "hellbot_magna_2_500_dual_extruder_1"
+ }
+
+ },
+
+ "overrides": {
+ "machine_name": { "default_value": "Hellbot Magna 2 500 Dual" },
+ "machine_width": {
+ "default_value": 500
+ },
+ "machine_height": {
+ "default_value": 500
+ },
+ "machine_depth": {
+ "default_value": 500
+ },
+ "machine_heated_bed": {
+ "default_value": true
+ },
+ "machine_center_is_zero": {
+ "default_value": false
+ },
+ "machine_extruder_count": {
+ "default_value": 2
+ },
+ "machine_start_gcode": {
+ "default_value": "M104 T0 S{material_print_temperature}\nM104 T1 S{material_print_temperature}\nM109 T0 S{material_print_temperature}\nM109 T1 S{material_print_temperature}\nG21\nG90 \nG28 X0 Y0 \nG28 Z0 \nG1 Z15.0 F300 \nT0 \nG92 E0 \nG1 F700 E-80 \nT1 \nG92 E0 \nG1 F1000 X1 Y1 Z0.3 \nG1 F600 X200 E60 \nG1 F1000 Y3 \nG1 F600 X1 E120 \nT1 \nG92 E0 \nG28 X0 Y0 \nG1 F700 E-80 \nT0 \nG92 E0"
+ },
+ "machine_end_gcode": {
+ "default_value": "M104 T0 S0\nM104 T1 S0\nM140 S0\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84"
+ }
+ }
+}
diff --git a/resources/definitions/hellbot_magna_I.def.json b/resources/definitions/hellbot_magna_I.def.json
index 777ed40954..019f214387 100644
--- a/resources/definitions/hellbot_magna_I.def.json
+++ b/resources/definitions/hellbot_magna_I.def.json
@@ -19,7 +19,7 @@
"machine_name": {
"default_value": "Hellbot Magna 1"
},
- "machine_heated_bed": { "default_value": true },
+ "machine_heated_bed": { "default_value": true },
"machine_width": {
"default_value": 220
},
diff --git a/resources/definitions/hellbot_magna_dual.def.json b/resources/definitions/hellbot_magna_dual.def.json
index feaee38419..6448ed3a44 100644
--- a/resources/definitions/hellbot_magna_dual.def.json
+++ b/resources/definitions/hellbot_magna_dual.def.json
@@ -26,9 +26,9 @@
"machine_depth": {
"default_value": 220
},
- "machine_heated_bed": {
- "default_value": true
- },
+ "machine_heated_bed": {
+ "default_value": true
+ },
"machine_height": {
"default_value": 260
},
diff --git a/resources/definitions/inat_base.def.json b/resources/definitions/inat_base.def.json
index 974ae9ac5a..61a543c9cc 100644
--- a/resources/definitions/inat_base.def.json
+++ b/resources/definitions/inat_base.def.json
@@ -369,7 +369,7 @@
"value": 45
},
"retraction_combing": {
- "value": "infill"
+ "value": "'infill'"
},
"retraction_hop_enabled": {
"value": true
diff --git a/resources/definitions/julia.def.json b/resources/definitions/julia.def.json
index 15e5057a55..43c62a46b2 100644
--- a/resources/definitions/julia.def.json
+++ b/resources/definitions/julia.def.json
@@ -30,7 +30,7 @@
"support_pattern": { "default_value": "grid" },
"infill_sparse_density": { "default_value": 10 },
"machine_extruder_count": { "default_value": 1 },
- "retraction_combing": { "default_value": "off" },
+ "retraction_combing": { "value": "'off'" },
"machine_heated_bed": { "default_value": true },
"machine_center_is_zero": { "default_value": false },
"machine_height": { "default_value": 260 },
diff --git a/resources/definitions/leapfrog_bolt_pro.def.json b/resources/definitions/leapfrog_bolt_pro.def.json
index 904215853b..e7ccc76735 100644
--- a/resources/definitions/leapfrog_bolt_pro.def.json
+++ b/resources/definitions/leapfrog_bolt_pro.def.json
@@ -97,7 +97,7 @@
"material_final_print_temperature": {"value": "default_material_print_temperature" },
"material_initial_print_temperature": {"value": "default_material_print_temperature" },
"gantry_height": {"value": "20"},
- "retraction_combing": { "default_value": "all" },
+ "retraction_combing": { "value": "'all'" },
"retraction_amount": {"default_value": 2},
"adhesion_type": {"default_value": "skirt"},
"skirt_line_count": {"default_value": 3},
diff --git a/resources/definitions/liquid.def.json b/resources/definitions/liquid.def.json
index 89c0b1c50e..0fc0f3c9ca 100644
--- a/resources/definitions/liquid.def.json
+++ b/resources/definitions/liquid.def.json
@@ -171,7 +171,7 @@
"meshfix_maximum_resolution": { "value": "(speed_wall_0 + speed_wall_x) / 100" },
"meshfix_maximum_deviation": { "value": "layer_height / 4" },
"optimize_wall_printing_order": { "value": "True" },
- "retraction_combing": { "default_value": "all" },
+ "retraction_combing": { "value": "'all'" },
"initial_layer_line_width_factor": { "value": "120" },
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" }
}
diff --git a/resources/definitions/maker_made_300x.def.json b/resources/definitions/maker_made_300x.def.json
index 9a4cd78d28..efe5b18ec8 100644
--- a/resources/definitions/maker_made_300x.def.json
+++ b/resources/definitions/maker_made_300x.def.json
@@ -95,7 +95,7 @@
"acceleration_enabled": {"value": false },
"acceleration_roofing": {"value": 3000 },
"jerk_enabled": {"value": false },
- "retraction_combing": {"value": "'within infill'" },
+ "retraction_combing": {"value": "'infill'" },
"travel_retract_before_outer_wall": {"value": false },
"travel_avoid_other_parts": {"value": true },
"retraction_hop_enabled": {"value": false },
diff --git a/resources/definitions/malyan_m180.def.json b/resources/definitions/malyan_m180.def.json
index bb812b6dd6..7c32ebfba0 100644
--- a/resources/definitions/malyan_m180.def.json
+++ b/resources/definitions/malyan_m180.def.json
@@ -4,7 +4,7 @@
"inherits": "fdmprinter",
"metadata": {
"visible": true,
- "author": "Ruben Dulek",
+ "author": "Ghostkeeper",
"manufacturer": "Malyan",
"machine_x3g_variant": "r1d",
"file_formats": "application/x3g",
diff --git a/resources/definitions/malyan_m200.def.json b/resources/definitions/malyan_m200.def.json
index e9980724cb..c8eb4eb654 100644
--- a/resources/definitions/malyan_m200.def.json
+++ b/resources/definitions/malyan_m200.def.json
@@ -76,7 +76,7 @@
"raft_surface_layers": { "default_value": 1 },
"skirt_line_count": { "default_value": 2},
"brim_width" : { "default_value": 5},
- "retraction_combing": { "default_value": "noskin" },
+ "retraction_combing": { "value": "'noskin'" },
"retraction_amount" : { "default_value": 4.5},
"retraction_speed" : { "default_value": 40},
"coasting_enable": { "default_value": true },
diff --git a/resources/definitions/monoprice_select_mini_v2.def.json b/resources/definitions/monoprice_select_mini_v2.def.json
index d671f319ad..004de649f1 100644
--- a/resources/definitions/monoprice_select_mini_v2.def.json
+++ b/resources/definitions/monoprice_select_mini_v2.def.json
@@ -23,7 +23,7 @@
"default_value": "G0 X0 Y120;(Stick out the part)\nM190 S0;(Turn off heat bed, don't wait.)\nG92 E10;(Set extruder to 10)\nG1 E7 F200;(retract 3mm)\nM104 S0;(Turn off nozzle, don't wait)\nG4 S300;(Delay 5 minutes)\nM107;(Turn off part fan)\nM84;(Turn off stepper motors.)"
},
"adhesion_type": { "default_value": "brim" },
- "retraction_combing": { "default_value": "noskin" },
+ "retraction_combing": { "value": "'noskin'" },
"retraction_amount" : { "default_value": 2.5},
"retraction_speed" : { "default_value": 40},
"material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }
diff --git a/resources/definitions/renkforce_rf100.def.json b/resources/definitions/renkforce_rf100.def.json
index 0f0c4eed97..7ad092ce8f 100644
--- a/resources/definitions/renkforce_rf100.def.json
+++ b/resources/definitions/renkforce_rf100.def.json
@@ -153,7 +153,7 @@
"value": "5.0"
},
"retraction_combing": {
- "default_value": "all"
+ "value": "'all'"
},
"retraction_enable": {
"value": "True"
diff --git a/resources/definitions/renkforce_rf100_v2.def.json b/resources/definitions/renkforce_rf100_v2.def.json
index 218e6e1feb..05907a1c20 100644
--- a/resources/definitions/renkforce_rf100_v2.def.json
+++ b/resources/definitions/renkforce_rf100_v2.def.json
@@ -153,7 +153,7 @@
"value": "5.0"
},
"retraction_combing": {
- "default_value": "all"
+ "value": "'all'"
},
"retraction_enable": {
"value": "True"
diff --git a/resources/definitions/renkforce_rf100_xl.def.json b/resources/definitions/renkforce_rf100_xl.def.json
index 5ab40d7e7f..f0e8644ae4 100644
--- a/resources/definitions/renkforce_rf100_xl.def.json
+++ b/resources/definitions/renkforce_rf100_xl.def.json
@@ -141,7 +141,7 @@
"value": "5.0"
},
"retraction_combing": {
- "default_value": "all"
+ "value": "'all'"
},
"retraction_enable": {
"value": "True"
diff --git a/resources/definitions/robo_3d_r1.def.json b/resources/definitions/robo_3d_r1.def.json
index e72b0a2688..5ef21cef8b 100644
--- a/resources/definitions/robo_3d_r1.def.json
+++ b/resources/definitions/robo_3d_r1.def.json
@@ -36,7 +36,7 @@
"layer_height": { "default_value": 0.2 },
"speed_print": { "default_value": 40 },
"machine_extruder_count": { "default_value": 1 },
- "retraction_combing": { "default_value": "off" },
+ "retraction_combing": { "value": "'off'" },
"machine_heated_bed": { "default_value": true },
"machine_center_is_zero": { "default_value": false },
"machine_height": { "default_value": 210 },
diff --git a/resources/definitions/seemecnc_artemis.def.json b/resources/definitions/seemecnc_artemis.def.json
index 89fc9e4993..1501d2c68d 100644
--- a/resources/definitions/seemecnc_artemis.def.json
+++ b/resources/definitions/seemecnc_artemis.def.json
@@ -29,7 +29,7 @@
"machine_width": { "default_value": 290 },
"relative_extrusion": { "value": "False" },
"retraction_amount": { "default_value": 3.2 },
- "retraction_combing": { "default_value": "off" },
+ "retraction_combing": { "value": "'off'" },
"retraction_hop_enabled": { "default_value": true },
"retraction_hop_only_when_collides": { "default_value": false },
"retraction_speed": { "default_value": 45 },
diff --git a/resources/definitions/seemecnc_v32.def.json b/resources/definitions/seemecnc_v32.def.json
index 06414f0b1d..46a5e63f01 100644
--- a/resources/definitions/seemecnc_v32.def.json
+++ b/resources/definitions/seemecnc_v32.def.json
@@ -29,7 +29,7 @@
"machine_width": { "default_value": 265 },
"relative_extrusion": { "value": "False" },
"retraction_amount": { "default_value": 3.2 },
- "retraction_combing": { "default_value": "off" },
+ "retraction_combing": { "value": "'off'" },
"retraction_hop_enabled": { "default_value": true },
"retraction_hop_only_when_collides": { "default_value": false },
"retraction_speed": { "default_value": 45 },
diff --git a/resources/definitions/skriware_2.def.json b/resources/definitions/skriware_2.def.json
index dcef30d8b0..dbcf140585 100644
--- a/resources/definitions/skriware_2.def.json
+++ b/resources/definitions/skriware_2.def.json
@@ -411,7 +411,7 @@
"value": "1"
},
"retraction_combing": {
- "default_value": "infill"
+ "value": "'infill'"
},
"acceleration_prime_tower": {
"value": "250"
diff --git a/resources/definitions/strateo3d.def.json b/resources/definitions/strateo3d.def.json
index 9c865fe233..cc4038586c 100644
--- a/resources/definitions/strateo3d.def.json
+++ b/resources/definitions/strateo3d.def.json
@@ -116,7 +116,7 @@
"prime_tower_position_x": { "value": "machine_width/2 + prime_tower_size/2" },
"prime_tower_position_y": { "value": "machine_depth - prime_tower_size - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - 1" },
"retraction_amount": { "default_value": 1.5 },
- "retraction_combing": { "default_value": "all" },
+ "retraction_combing": { "value": "'all'" },
"retraction_combing_max_distance": { "default_value": 5 },
"retraction_count_max": { "default_value": 15 },
"retraction_hop": { "value": "2" },
diff --git a/resources/definitions/tizyx_evy.def.json b/resources/definitions/tizyx_evy.def.json
index 7776007f41..5032ee16d7 100644
--- a/resources/definitions/tizyx_evy.def.json
+++ b/resources/definitions/tizyx_evy.def.json
@@ -70,6 +70,6 @@
"z_seam_type": {"default_value": "back"},
"z_seam_x": {"value": "127.5"},
"z_seam_y": {"value": "250"},
- "retraction_combing": {"default_value": "off"}
+ "retraction_combing": {"value": "'off'"}
}
}
diff --git a/resources/definitions/tizyx_evy_dual.def.json b/resources/definitions/tizyx_evy_dual.def.json
index 3b6892682a..2aafa5cecc 100644
--- a/resources/definitions/tizyx_evy_dual.def.json
+++ b/resources/definitions/tizyx_evy_dual.def.json
@@ -58,6 +58,6 @@
"z_seam_type": {"default_value": "back"},
"z_seam_x": {"value": "127.5"},
"z_seam_y": {"value": "250"},
- "retraction_combing": {"default_value": "off"}
+ "retraction_combing": {"value": "'off'"}
}
}
diff --git a/resources/definitions/tizyx_k25.def.json b/resources/definitions/tizyx_k25.def.json
index ccaa6fff0b..9f65d67313 100644
--- a/resources/definitions/tizyx_k25.def.json
+++ b/resources/definitions/tizyx_k25.def.json
@@ -55,6 +55,6 @@
"z_seam_type": {"default_value": "back"},
"z_seam_x": {"value": "127.5"},
"z_seam_y": {"value": "250"},
- "retraction_combing": {"default_value": "off"}
+ "retraction_combing": {"value": "'off'"}
}
}
diff --git a/resources/definitions/ultimaker2.def.json b/resources/definitions/ultimaker2.def.json
index df2ec9cab5..e81d455a5e 100644
--- a/resources/definitions/ultimaker2.def.json
+++ b/resources/definitions/ultimaker2.def.json
@@ -90,17 +90,17 @@
"infill_before_walls": {
"value": "False"
},
- "top_bottom_pattern": {
- "value": "zigzag"
+ "speed_equalize_flow_width_factor": {
+ "value": "0.5"
},
- "roofing_layer_count": {
- "value": "1"
+ "retraction_combing": {
+ "value": "'no_outer_surfaces'"
},
- "roofing_monotonic": {
- "value": "True"
+ "skin_monotonic" : {
+ "value": true
},
- "speed_equalize_flow_width_factor": {
- "value": "0.5"
+ "top_bottom_pattern" : {
+ "value": "'zigzag'"
}
}
}
diff --git a/resources/definitions/ultimaker2_plus_connect.def.json b/resources/definitions/ultimaker2_plus_connect.def.json
index 695d2385c4..52c9eca861 100644
--- a/resources/definitions/ultimaker2_plus_connect.def.json
+++ b/resources/definitions/ultimaker2_plus_connect.def.json
@@ -63,17 +63,23 @@
"optimize_wall_printing_order": { "value": "True" },
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" },
"speed_support": { "value": "speed_wall_0" },
- "material_initial_print_temperature": { "value": "material_print_temperature" },
- "material_final_print_temperature": { "value": "material_print_temperature" },
- "material_print_temperature_layer_0": { "value": "material_print_temperature" },
+ "material_initial_print_temperature": {
+ "value": "material_print_temperature",
+ "maximum_value": 260
+ },
+ "material_final_print_temperature": {
+ "value": "material_print_temperature",
+ "maximum_value": 260
+ },
+ "material_print_temperature_layer_0": {
+ "value": "material_print_temperature",
+ "maximum_value": 260
+ },
"machine_start_gcode": { "value": "''" },
"machine_end_gcode": { "value": "''" },
"material_bed_temperature": { "maximum_value": 110 },
"material_bed_temperature_layer_0": { "maximum_value": 110 },
"material_print_temperature": { "maximum_value": 260 },
- "material_print_temperature_layer_0": { "maximum_value": 260 },
- "material_initial_print_temperature": { "maximum_value": 260 },
- "material_final_print_temperature": { "maximum_value": 260 },
"meshfix_maximum_resolution": { "value": "(speed_wall_0 + speed_wall_x) / 60" },
"meshfix_maximum_deviation": { "value": "layer_height / 4" },
"meshfix_maximum_travel_resolution": { "value": 0.5 },
diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json
index 32d080bc53..a7d59909fd 100644
--- a/resources/definitions/ultimaker3.def.json
+++ b/resources/definitions/ultimaker3.def.json
@@ -99,21 +99,28 @@
"fill_outline_gaps": { "value": "True" },
"min_feature_size": { "value": "wall_line_width_0 / 4" },
"min_bead_width": { "value": "wall_line_width_0 / 2" },
- "infill_before_walls": { "value": "False" },
- "infill_line_width": { "value": "line_width" },
+ "infill_before_walls": { "value": false },
+ "infill_line_width": { "value": "round(line_width * 0.5 / 0.35, 2)" },
"infill_overlap": { "value": "0" },
"infill_pattern": { "value": "'triangles'" },
"infill_wipe_dist": { "value": "0" },
"initial_layer_line_width_factor": { "value": "120" },
"jerk_enabled": { "value": "True" },
- "jerk_layer_0": { "value": "jerk_topbottom" },
- "jerk_prime_tower": { "value": "max(math.ceil(jerk_print * 15 / 25), 20)" },
- "jerk_print": { "value": "25" },
- "jerk_support": { "value": "max(math.ceil(jerk_print * 15 / 25), 20)" },
- "jerk_support_interface": { "value": "jerk_topbottom" },
- "jerk_topbottom": { "value": "max(math.ceil(jerk_print * 5 / 25), 20)" },
- "jerk_wall": { "value": "max(math.ceil(jerk_print * 10 / 25), 20" },
- "jerk_wall_0": { "value": "max(math.ceil(jerk_wall * 5 / 10), 20)" },
+ "jerk_print": { "value": "20", "minimum_value_warning": 20 },
+ "jerk_infill": {"minimum_value_warning": 20 },
+ "jerk_wall": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_wall_0": { "value": "jerk_wall", "minimum_value_warning": 20 },
+ "jerk_roofing": {"minimum_value_warning": 20 },
+ "jerk_topbottom": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_support": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_support_infill": {"minimum_value_warning": 20 },
+ "jerk_support_interface": { "value": "math.ceil(jerk_print * 5 / 20)"},
+ "jerk_prime_tower": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_travel": {"minimum_value_warning": 20 },
+ "jerk_layer_0": { "value": "jerk_topbottom", "minimum_value_warning": 20},
+ "jerk_print_layer_0": {"minimum_value_warning": 20 },
+ "jerk_travel_layer_0": {"minimum_value_warning": 20 },
+ "jerk_skirt_brim": {"minimum_value_warning": 20 },
"layer_height_0": { "value": "round(machine_nozzle_size / 1.5, 2)" },
"layer_start_x": { "value": "sum(extruderValues('machine_extruder_start_pos_x')) / len(extruderValues('machine_extruder_start_pos_x'))" },
"layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" },
@@ -137,6 +144,7 @@
"raft_margin": { "value": "10" },
"raft_surface_layers": { "value": "1" },
"retraction_amount": { "value": "6.5" },
+ "retraction_combing": {"value": "'no_outer_surfaces'"},
"retraction_count_max": { "value": "10" },
"retraction_extrusion_window": { "value": "1" },
"retraction_hop": { "value": "2" },
@@ -148,6 +156,7 @@
"roofing_monotonic": { "value": "True" },
"skin_overlap": { "value": "10" },
"speed_equalize_flow_width_factor": { "value": "0.5" },
+ "skin_monotonic" : { "value": true },
"speed_layer_0": { "value": "20" },
"speed_prime_tower": { "value": "speed_topbottom" },
"speed_print": { "value": "35" },
diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json
index cd7587d233..221231ff0b 100644
--- a/resources/definitions/ultimaker_s3.def.json
+++ b/resources/definitions/ultimaker_s3.def.json
@@ -89,23 +89,27 @@
"cool_fan_speed": { "value": "50" },
"cool_fan_speed_max": { "value": "100" },
"cool_min_speed": { "value": "5" },
- "fill_outline_gaps": { "value": "True" },
- "min_feature_size": { "value": "wall_line_width_0 / 4" },
- "min_bead_width": { "value": "wall_line_width_0 / 2" },
- "infill_before_walls": { "value": "False" },
+ "infill_before_walls": { "value": false },
"infill_line_width": { "value": "round(line_width * 0.5 / 0.35, 2)" },
"infill_overlap": { "value": "0" },
"infill_pattern": { "value": "'triangles'" },
"infill_wipe_dist": { "value": "0" },
"jerk_enabled": { "value": "True" },
- "jerk_layer_0": { "value": "jerk_topbottom" },
- "jerk_prime_tower": { "value": "max(math.ceil(jerk_print * 15 / 25), 20)" },
- "jerk_print": { "value": "25" },
- "jerk_support": { "value": "max(math.ceil(jerk_print * 15 / 25), 20)" },
- "jerk_support_interface": { "value": "jerk_topbottom" },
- "jerk_topbottom": { "value": "max(math.ceil(jerk_print * 5 / 25), 20)" },
- "jerk_wall": { "value": "max(math.ceil(jerk_print * 10 / 25), 20)" },
- "jerk_wall_0": { "value": "max(math.ceil(jerk_wall * 5 / 10), 20)" },
+ "jerk_print": { "value": "20", "minimum_value_warning": 20 },
+ "jerk_infill": {"minimum_value_warning": 20 },
+ "jerk_wall": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_wall_0": { "value": "jerk_wall", "minimum_value_warning": 20 },
+ "jerk_roofing": {"minimum_value_warning": 20 },
+ "jerk_topbottom": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_support": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_support_infill": {"minimum_value_warning": 20 },
+ "jerk_support_interface": { "value": "math.ceil(jerk_print * 5 / 20)"},
+ "jerk_prime_tower": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_travel": {"minimum_value_warning": 20 },
+ "jerk_layer_0": { "value": "jerk_topbottom", "minimum_value_warning": 20},
+ "jerk_print_layer_0": {"minimum_value_warning": 20 },
+ "jerk_travel_layer_0": {"minimum_value_warning": 20 },
+ "jerk_skirt_brim": {"minimum_value_warning": 20 },
"layer_height_0": { "value": "round(machine_nozzle_size / 1.5, 2)" },
"layer_start_x": { "value": "sum(extruderValues('machine_extruder_start_pos_x')) / len(extruderValues('machine_extruder_start_pos_x'))" },
"layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" },
@@ -114,6 +118,7 @@
"default_material_print_temperature": { "value": "200" },
"material_standby_temperature": { "value": "100" },
"multiple_mesh_overlap": { "value": "0" },
+ "optimize_wall_printing_order": { "value": "True" },
"prime_tower_enable": { "value": "True" },
"raft_airgap": { "value": "0" },
"raft_base_speed": { "value": "20" },
@@ -127,6 +132,7 @@
"raft_speed": { "value": "25" },
"raft_surface_layers": { "value": "1" },
"retraction_amount": { "value": "6.5" },
+ "retraction_combing": { "value": "'no_outer_surfaces'"},
"retraction_count_max": { "value": "10" },
"retraction_extrusion_window": { "value": "1" },
"retraction_hop": { "value": "2" },
@@ -134,8 +140,7 @@
"retraction_hop_only_when_collides": { "value": "True" },
"retraction_min_travel": { "value": "5" },
"retraction_prime_speed": { "value": "15" },
- "roofing_layer_count": { "value": "1" },
- "roofing_monotonic": { "value": "True" },
+ "skin_monotonic" : { "value": true },
"skin_overlap": { "value": "10" },
"speed_equalize_flow_width_factor": { "value": "0.5" },
"speed_layer_0": { "value": "20" },
@@ -166,7 +171,6 @@
"meshfix_maximum_deviation": { "value": "layer_height / 4" },
"meshfix_maximum_extrusion_area_deviation": { "value": "50000" },
"optimize_wall_printing_order": { "value": "True" },
- "retraction_combing": { "default_value": "all" },
"initial_layer_line_width_factor": { "value": "120" },
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" }
}
diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json
index 004734467a..64d4be2a38 100644
--- a/resources/definitions/ultimaker_s5.def.json
+++ b/resources/definitions/ultimaker_s5.def.json
@@ -91,20 +91,27 @@
"cool_fan_speed": { "value": "50" },
"cool_fan_speed_max": { "value": "100" },
"cool_min_speed": { "value": "5" },
- "infill_before_walls": { "value": "False" },
- "infill_line_width": { "value": "line_width" },
+ "infill_before_walls": { "value": false },
+ "infill_line_width": { "value": "round(line_width * 0.5 / 0.35, 2)" },
"infill_overlap": { "value": "0" },
"infill_pattern": { "value": "'triangles'" },
"infill_wipe_dist": { "value": "0" },
"jerk_enabled": { "value": "True" },
- "jerk_layer_0": { "value": "jerk_topbottom" },
- "jerk_prime_tower": { "value": "max(math.ceil(jerk_print * 15 / 25), 20)" },
- "jerk_print": { "value": "25" },
- "jerk_support": { "value": "max(math.ceil(jerk_print * 15 / 25), 20)" },
- "jerk_support_interface": { "value": "jerk_topbottom" },
- "jerk_topbottom": { "value": "max(math.ceil(jerk_print * 5 / 25), 20)" },
- "jerk_wall": { "value": "max(math.ceil(jerk_print * 10 / 25), 20)" },
- "jerk_wall_0": { "value": "max(math.ceil(jerk_wall * 5 / 10), 20)" },
+ "jerk_print": { "value": "20", "minimum_value_warning": 20 },
+ "jerk_infill": {"minimum_value_warning": 20 },
+ "jerk_wall": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_wall_0": { "value": "jerk_wall", "minimum_value_warning": 20 },
+ "jerk_roofing": {"minimum_value_warning": 20 },
+ "jerk_topbottom": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_support": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_support_infill": {"minimum_value_warning": 20 },
+ "jerk_support_interface": { "value": "math.ceil(jerk_print * 5 / 20)"},
+ "jerk_prime_tower": { "value": "jerk_print", "minimum_value_warning": 20 },
+ "jerk_travel": {"minimum_value_warning": 20 },
+ "jerk_layer_0": { "value": "jerk_topbottom", "minimum_value_warning": 20},
+ "jerk_print_layer_0": {"minimum_value_warning": 20 },
+ "jerk_travel_layer_0": {"minimum_value_warning": 20 },
+ "jerk_skirt_brim": {"minimum_value_warning": 20 },
"layer_height_0": { "value": "round(machine_nozzle_size / 1.5, 2)" },
"layer_start_x": { "value": "sum(extruderValues('machine_extruder_start_pos_x')) / len(extruderValues('machine_extruder_start_pos_x'))" },
"layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" },
@@ -129,6 +136,7 @@
"raft_speed": { "value": "25" },
"raft_surface_layers": { "value": "1" },
"retraction_amount": { "value": "6.5" },
+ "retraction_combing": { "value": "'no_outer_surfaces'"},
"retraction_count_max": { "value": "10" },
"retraction_extrusion_window": { "value": "1" },
"retraction_hop": { "value": "2" },
@@ -136,8 +144,7 @@
"retraction_hop_only_when_collides": { "value": "True" },
"retraction_min_travel": { "value": "5" },
"retraction_prime_speed": { "value": "15" },
- "roofing_layer_count": { "value": "1" },
- "roofing_monotonic": { "value": "True" },
+ "skin_monotonic" : { "value": true },
"skin_overlap": { "value": "10" },
"speed_equalize_flow_width_factor": { "value": "0.5" },
"speed_layer_0": { "value": "20" },
@@ -168,7 +175,6 @@
"meshfix_maximum_deviation": { "value": "layer_height / 4" },
"meshfix_maximum_extrusion_area_deviation": { "value": "50000" },
"optimize_wall_printing_order": { "value": "True" },
- "retraction_combing": { "default_value": "all" },
"initial_layer_line_width_factor": { "value": "120" },
"zig_zaggify_infill": { "value": "gradual_infill_steps == 0" },
"build_volume_temperature": { "maximum_value": 50 }
diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json
index cc48833136..ec069b24fb 100644
--- a/resources/definitions/voron2_base.def.json
+++ b/resources/definitions/voron2_base.def.json
@@ -104,7 +104,7 @@
"retraction_prime_speed": { "value": "math.ceil(retraction_speed * 0.4)", "maximum_value_warning": 130 },
"retraction_hop_enabled": { "default_value": true },
"retraction_hop": { "default_value": 0.2 },
- "retraction_combing": { "default_value": "noskin" },
+ "retraction_combing": { "value": "'noskin'" },
"retraction_combing_max_distance": { "default_value": 10 },
"travel_avoid_other_parts": { "default_value": false },
"speed_travel": { "maximum_value": 300, "value": 300, "maximum_value_warning": 501 },
diff --git a/resources/extruders/3di_base_extruder_0.def.json b/resources/extruders/3di_base_extruder_0.def.json
new file mode 100644
index 0000000000..5fbb347ede
--- /dev/null
+++ b/resources/extruders/3di_base_extruder_0.def.json
@@ -0,0 +1,15 @@
+{
+ "version": 2,
+ "name": "Extruder 1",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "3di_base",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": { "default_value": 0 },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 }
+ }
+} \ No newline at end of file
diff --git a/resources/extruders/arjunpro_dm_extruder.def.json b/resources/extruders/arjunpro_dm_extruder.def.json
new file mode 100644
index 0000000000..9ea7bbe27b
--- /dev/null
+++ b/resources/extruders/arjunpro_dm_extruder.def.json
@@ -0,0 +1,20 @@
+{
+ "version": 2,
+ "name": "Duplication Extruder",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "arjunpro_duplication",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": {
+ "default_value": 0,
+ "maximum_value": "1"
+ },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 },
+ "machine_nozzle_offset_x": { "default_value": 0 },
+ "machine_nozzle_offset_y": { "default_value": 0 }
+ }
+}
diff --git a/resources/extruders/arjunpro_extruder_0.def.json b/resources/extruders/arjunpro_extruder_0.def.json
new file mode 100644
index 0000000000..b4ba094804
--- /dev/null
+++ b/resources/extruders/arjunpro_extruder_0.def.json
@@ -0,0 +1,27 @@
+{
+ "version": 2,
+ "name": "Left Extruder",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "arjunpro300",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": {
+ "default_value": 0,
+ "maximum_value": "1"
+ },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 },
+ "machine_nozzle_offset_x": { "default_value": 0 },
+ "machine_nozzle_offset_y": { "default_value": 0 },
+ "machine_extruder_start_pos_abs": { "default_value": true },
+ "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" },
+ "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" },
+ "machine_extruder_end_pos_abs": { "default_value": true },
+ "machine_extruder_end_pos_x": { "value": -51 },
+ "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" },
+ "machine_extruder_start_code": { "default_value": "T0" }
+ }
+}
diff --git a/resources/extruders/arjunpro_extruder_1.def.json b/resources/extruders/arjunpro_extruder_1.def.json
new file mode 100644
index 0000000000..b5177807b8
--- /dev/null
+++ b/resources/extruders/arjunpro_extruder_1.def.json
@@ -0,0 +1,27 @@
+{
+ "version": 2,
+ "name": "Right Extruder",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "arjunpro300",
+ "position": "1"
+ },
+
+ "overrides": {
+ "extruder_nr": {
+ "default_value": 1,
+ "maximum_value": "1"
+ },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 },
+ "machine_nozzle_offset_x": { "default_value": 0.0 },
+ "machine_nozzle_offset_y": { "default_value": 0.0 },
+ "machine_extruder_start_pos_abs": { "default_value": true },
+ "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" },
+ "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" },
+ "machine_extruder_end_pos_abs": { "default_value": true },
+ "machine_extruder_end_pos_x": { "value": 257 },
+ "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" },
+ "machine_extruder_start_code": { "default_value": "T1" }
+ }
+}
diff --git a/resources/extruders/arjunpro_mm_extruder.def.json b/resources/extruders/arjunpro_mm_extruder.def.json
new file mode 100644
index 0000000000..c101ede4ca
--- /dev/null
+++ b/resources/extruders/arjunpro_mm_extruder.def.json
@@ -0,0 +1,20 @@
+{
+ "version": 2,
+ "name": "Mirror Extruder",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "arjunpro_mirrored",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": {
+ "default_value": 0,
+ "maximum_value": "1"
+ },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 },
+ "machine_nozzle_offset_x": { "default_value": 0 },
+ "machine_nozzle_offset_y": { "default_value": 0 }
+ }
+}
diff --git a/resources/extruders/creasee_cs50spro_extruder.def.json b/resources/extruders/creasee_cs50spro_extruder.def.json
new file mode 100644
index 0000000000..8fdd42186a
--- /dev/null
+++ b/resources/extruders/creasee_cs50spro_extruder.def.json
@@ -0,0 +1,15 @@
+{
+ "version": 2,
+ "name": "Extruder 1",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "creasee_cs50spro",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": { "default_value": 0 },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 }
+ }
+}
diff --git a/resources/extruders/creasee_phoenix_extruder.def.json b/resources/extruders/creasee_phoenix_extruder.def.json
new file mode 100644
index 0000000000..9eed5943e4
--- /dev/null
+++ b/resources/extruders/creasee_phoenix_extruder.def.json
@@ -0,0 +1,15 @@
+{
+ "version": 2,
+ "name": "Extruder 1",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "creasee_phoenix",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": { "default_value": 0 },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 }
+ }
+}
diff --git a/resources/extruders/creasee_skywalker_extruder.def.json b/resources/extruders/creasee_skywalker_extruder.def.json
new file mode 100644
index 0000000000..0e240665ec
--- /dev/null
+++ b/resources/extruders/creasee_skywalker_extruder.def.json
@@ -0,0 +1,15 @@
+{
+ "version": 2,
+ "name": "Extruder 1",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "creasee_skywalker",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": { "default_value": 0 },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 }
+ }
+}
diff --git a/resources/extruders/cremaker_extruder_0.def.json b/resources/extruders/cremaker_extruder_0.def.json
new file mode 100644
index 0000000000..bf1dcce526
--- /dev/null
+++ b/resources/extruders/cremaker_extruder_0.def.json
@@ -0,0 +1,15 @@
+{
+ "version": 2,
+ "name": "Extruder 1",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "cremaker_common",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": { "default_value": 0 },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 }
+ }
+}
diff --git a/resources/extruders/hellbot_hidra_extruder_0.def.json b/resources/extruders/hellbot_hidra_extruder_0.def.json
index f6e66d5381..aa8da12ea3 100644
--- a/resources/extruders/hellbot_hidra_extruder_0.def.json
+++ b/resources/extruders/hellbot_hidra_extruder_0.def.json
@@ -1,6 +1,6 @@
{
"version": 2,
- "name": "Extrusor E1",
+ "name": "Extruder E1",
"inherits": "fdmextruder",
"metadata": {
"machine": "hellbot_hidra",
diff --git a/resources/extruders/hellbot_hidra_extruder_1.def.json b/resources/extruders/hellbot_hidra_extruder_1.def.json
index 87b18db36c..8389b5e8d8 100644
--- a/resources/extruders/hellbot_hidra_extruder_1.def.json
+++ b/resources/extruders/hellbot_hidra_extruder_1.def.json
@@ -1,6 +1,6 @@
{
"version": 2,
- "name": "Extrusor E2",
+ "name": "Extruder E2",
"inherits": "fdmextruder",
"metadata": {
"machine": "hellbot_hidra",
diff --git a/resources/extruders/hellbot_hidra_plus_extruder_0.def.json b/resources/extruders/hellbot_hidra_plus_extruder_0.def.json
index e8817236a1..2b023119eb 100644
--- a/resources/extruders/hellbot_hidra_plus_extruder_0.def.json
+++ b/resources/extruders/hellbot_hidra_plus_extruder_0.def.json
@@ -1,6 +1,6 @@
{
"version": 2,
- "name": "Extrusor E1",
+ "name": "Extruder E1",
"inherits": "fdmextruder",
"metadata": {
"machine": "hellbot_hidra_plus",
diff --git a/resources/extruders/hellbot_hidra_plus_extruder_1.def.json b/resources/extruders/hellbot_hidra_plus_extruder_1.def.json
index 37f37fc71f..ade40aafea 100644
--- a/resources/extruders/hellbot_hidra_plus_extruder_1.def.json
+++ b/resources/extruders/hellbot_hidra_plus_extruder_1.def.json
@@ -1,6 +1,6 @@
{
"version": 2,
- "name": "Extrusor E2",
+ "name": "Extruder E2",
"inherits": "fdmextruder",
"metadata": {
"machine": "hellbot_hidra_plus",
diff --git a/resources/extruders/hellbot_magna_2_230_extruder_0.def.json b/resources/extruders/hellbot_magna_2_230_extruder_0.def.json
index 926e8b94c4..83e76a2d31 100644
--- a/resources/extruders/hellbot_magna_2_230_extruder_0.def.json
+++ b/resources/extruders/hellbot_magna_2_230_extruder_0.def.json
@@ -11,6 +11,5 @@
"extruder_nr": { "default_value": 0 },
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
-
}
}
diff --git a/resources/extruders/hellbot_magna_2_400_dual_extruder_0.def.json b/resources/extruders/hellbot_magna_2_400_dual_extruder_0.def.json
new file mode 100644
index 0000000000..f42dd7f986
--- /dev/null
+++ b/resources/extruders/hellbot_magna_2_400_dual_extruder_0.def.json
@@ -0,0 +1,24 @@
+{
+ "version": 2,
+ "name": "Extruder 1",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "hellbot_magna_2_400_dual",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": {
+ "default_value": 0,
+ "maximum_value": "1"
+ },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 },
+ "machine_extruder_start_code": {
+ "default_value": "T0 \nG92 E0 \nG1 F1000 E100 \nG92 E0 \nM104 S{material_print_temperature}"
+ },
+ "machine_extruder_end_code": {
+ "default_value": "G92 E0 \nG1 F2500 E-5 \nG1 F2400 X395 Y350 \nG1 F3000 E-100 \nG92 E0 \nG90"
+ }
+ }
+}
diff --git a/resources/extruders/hellbot_magna_2_400_dual_extruder_1.def.json b/resources/extruders/hellbot_magna_2_400_dual_extruder_1.def.json
new file mode 100644
index 0000000000..f5ab430fc7
--- /dev/null
+++ b/resources/extruders/hellbot_magna_2_400_dual_extruder_1.def.json
@@ -0,0 +1,24 @@
+{
+ "version": 2,
+ "name": "Extruder 2",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "hellbot_magna_2_400_dual",
+ "position": "1"
+ },
+
+ "overrides": {
+ "extruder_nr": {
+ "default_value": 1,
+ "maximum_value": "1"
+ },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 },
+ "machine_extruder_start_code": {
+ "default_value": "T1 \nG92 E0 \nG1 F1000 E100 \nG92 E0 \nM104 S{material_print_temperature}"
+ },
+ "machine_extruder_end_code": {
+ "default_value": "G92 E0 \nG1 F2500 E-5 \nG1 F2400 X395 Y350 \nG1 F3000 E-100 \nG92 E0 \nG90"
+ }
+ }
+}
diff --git a/resources/extruders/hellbot_magna_2_400_extruder_0.def.json b/resources/extruders/hellbot_magna_2_400_extruder_0.def.json
new file mode 100644
index 0000000000..59ee87321c
--- /dev/null
+++ b/resources/extruders/hellbot_magna_2_400_extruder_0.def.json
@@ -0,0 +1,15 @@
+{
+ "version": 2,
+ "name": "Extruder 1",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "hellbot_magna_2_400",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": { "default_value": 0 },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 }
+ }
+}
diff --git a/resources/extruders/hellbot_magna_2_500_dual_extruder_0.def.json b/resources/extruders/hellbot_magna_2_500_dual_extruder_0.def.json
new file mode 100644
index 0000000000..033b62e0f9
--- /dev/null
+++ b/resources/extruders/hellbot_magna_2_500_dual_extruder_0.def.json
@@ -0,0 +1,24 @@
+{
+ "version": 2,
+ "name": "Extruder 2",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "hellbot_magna_2_500_dual",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": {
+ "default_value": 0,
+ "maximum_value": "1"
+ },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 },
+ "machine_extruder_start_code": {
+ "default_value": "T0 \nG92 E0 \nG1 F1000 E100 \nG92 E0 \nM104 S{material_print_temperature}"
+ },
+ "machine_extruder_end_code": {
+ "default_value": "G92 E0 \nG1 F2500 E-5 \nG1 F2400 X495 Y450 \nG1 F3000 E-100 \nG92 E0 \nG90"
+ }
+ }
+}
diff --git a/resources/extruders/hellbot_magna_2_500_dual_extruder_1.def.json b/resources/extruders/hellbot_magna_2_500_dual_extruder_1.def.json
new file mode 100644
index 0000000000..62f6e1b7bc
--- /dev/null
+++ b/resources/extruders/hellbot_magna_2_500_dual_extruder_1.def.json
@@ -0,0 +1,24 @@
+{
+ "version": 2,
+ "name": "Extruder 1",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "hellbot_magna_2_500_dual",
+ "position": "1"
+ },
+
+ "overrides": {
+ "extruder_nr": {
+ "default_value": 1,
+ "maximum_value": "1"
+ },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 },
+ "machine_extruder_start_code": {
+ "default_value": "T1 \nG92 E0 \nG1 F1000 E100 \nG92 E0 \nM104 S{material_print_temperature}"
+ },
+ "machine_extruder_end_code": {
+ "default_value": "G92 E0 \nG1 F2500 E-5 \nG1 F2400 X495 Y450 \nG1 F3000 E-100 \nG92 E0 \nG90"
+ }
+ }
+}
diff --git a/resources/extruders/hellbot_magna_2_500_extruder_0.def.json b/resources/extruders/hellbot_magna_2_500_extruder_0.def.json
new file mode 100644
index 0000000000..749e77cbe7
--- /dev/null
+++ b/resources/extruders/hellbot_magna_2_500_extruder_0.def.json
@@ -0,0 +1,15 @@
+{
+ "version": 2,
+ "name": "Extruder 1",
+ "inherits": "fdmextruder",
+ "metadata": {
+ "machine": "hellbot_magna_2_500",
+ "position": "0"
+ },
+
+ "overrides": {
+ "extruder_nr": { "default_value": 0 },
+ "machine_nozzle_size": { "default_value": 0.4 },
+ "material_diameter": { "default_value": 1.75 }
+ }
+}
diff --git a/resources/i18n/cs_CZ/cura.po b/resources/i18n/cs_CZ/cura.po
index 6c651714d2..c4bada9c78 100644
--- a/resources/i18n/cs_CZ/cura.po
+++ b/resources/i18n/cs_CZ/cura.po
@@ -1,12 +1,12 @@
# Cura
# Copyright (C) 2021 Ultimaker B.V.
# This file is distributed under the same license as the Cura package.
-# Ruben Dulek <r.dulek@ultimaker.com>, 2020.
+# Ultimaker <plugins@ultimaker.com>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-04-04 15:31+0200\n"
"Last-Translator: Miroslav Šustek <sustmidown@centrum.cz>\n"
diff --git a/resources/i18n/cs_CZ/fdmextruder.def.json.po b/resources/i18n/cs_CZ/fdmextruder.def.json.po
index 9d0fe7af08..def60713ad 100644
--- a/resources/i18n/cs_CZ/fdmextruder.def.json.po
+++ b/resources/i18n/cs_CZ/fdmextruder.def.json.po
@@ -1,12 +1,12 @@
# Cura
# Copyright (C) 2021 Ultimaker B.V.
# This file is distributed under the same license as the Cura package.
-# Ruben Dulek <r.dulek@ultimaker.com>, 2020.
+# Ultimaker <plugins@ultimaker.com>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2020-02-20 17:30+0100\n"
"Last-Translator: DenyCZ <www.github.com/DenyCZ>\n"
diff --git a/resources/i18n/cs_CZ/fdmprinter.def.json.po b/resources/i18n/cs_CZ/fdmprinter.def.json.po
index c49ead79c6..61511df879 100644
--- a/resources/i18n/cs_CZ/fdmprinter.def.json.po
+++ b/resources/i18n/cs_CZ/fdmprinter.def.json.po
@@ -1,12 +1,12 @@
# Cura
# Copyright (C) 2021 Ultimaker B.V.
# This file is distributed under the same license as the Cura package.
-# Ruben Dulek <r.dulek@ultimaker.com>, 2020.
+# Ultimaker <plugins@ultimaker.com>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-04 19:37+0200\n"
"Last-Translator: Miroslav Šustek <sustmidown@centrum.cz>\n"
diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot
index e97148a38c..e21f834c9d 100644
--- a/resources/i18n/cura.pot
+++ b/resources/i18n/cura.pot
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po
index 6cb4dbafab..2078b327d6 100644
--- a/resources/i18n/de_DE/cura.po
+++ b/resources/i18n/de_DE/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-09-07 07:41+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/de_DE/fdmextruder.def.json.po b/resources/i18n/de_DE/fdmextruder.def.json.po
index 3196e4e873..298b009347 100644
--- a/resources/i18n/de_DE/fdmextruder.def.json.po
+++ b/resources/i18n/de_DE/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:15+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/de_DE/fdmprinter.def.json.po b/resources/i18n/de_DE/fdmprinter.def.json.po
index a4db59cb52..8f26ecc2db 100644
--- a/resources/i18n/de_DE/fdmprinter.def.json.po
+++ b/resources/i18n/de_DE/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:16+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po
index 0c4697e432..dd0c259f90 100644
--- a/resources/i18n/es_ES/cura.po
+++ b/resources/i18n/es_ES/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-09-07 07:43+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/es_ES/fdmextruder.def.json.po b/resources/i18n/es_ES/fdmextruder.def.json.po
index 07993d655f..3057759188 100644
--- a/resources/i18n/es_ES/fdmextruder.def.json.po
+++ b/resources/i18n/es_ES/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/es_ES/fdmprinter.def.json.po b/resources/i18n/es_ES/fdmprinter.def.json.po
index 732289c9e7..562b93165c 100644
--- a/resources/i18n/es_ES/fdmprinter.def.json.po
+++ b/resources/i18n/es_ES/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:15+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/fdmextruder.def.json.pot b/resources/i18n/fdmextruder.def.json.pot
index 284b033c49..6f496b5ad3 100644
--- a/resources/i18n/fdmextruder.def.json.pot
+++ b/resources/i18n/fdmextruder.def.json.pot
@@ -2,7 +2,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Uranium json setting files\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
diff --git a/resources/i18n/fdmprinter.def.json.pot b/resources/i18n/fdmprinter.def.json.pot
index 8cbd4d5d1d..2c05787546 100644
--- a/resources/i18n/fdmprinter.def.json.pot
+++ b/resources/i18n/fdmprinter.def.json.pot
@@ -2,7 +2,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Uranium json setting files\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po
index 406db14a12..b74ec234c0 100644
--- a/resources/i18n/fi_FI/cura.po
+++ b/resources/i18n/fi_FI/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2017-09-27 12:27+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/fi_FI/fdmextruder.def.json.po b/resources/i18n/fi_FI/fdmextruder.def.json.po
index f1d8767b81..28fd84b7ca 100644
--- a/resources/i18n/fi_FI/fdmextruder.def.json.po
+++ b/resources/i18n/fi_FI/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2017-08-11 14:31+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/fi_FI/fdmprinter.def.json.po b/resources/i18n/fi_FI/fdmprinter.def.json.po
index 52558d0db4..acd995d7d0 100644
--- a/resources/i18n/fi_FI/fdmprinter.def.json.po
+++ b/resources/i18n/fi_FI/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2017-09-27 12:27+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po
index a0cb30bc72..41df93d778 100644
--- a/resources/i18n/fr_FR/cura.po
+++ b/resources/i18n/fr_FR/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-09-07 07:48+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/fr_FR/fdmextruder.def.json.po b/resources/i18n/fr_FR/fdmextruder.def.json.po
index 7caa73f8f5..7947f8efb7 100644
--- a/resources/i18n/fr_FR/fdmextruder.def.json.po
+++ b/resources/i18n/fr_FR/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:16+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/fr_FR/fdmprinter.def.json.po b/resources/i18n/fr_FR/fdmprinter.def.json.po
index 0e02469dcc..bc0f03be3a 100644
--- a/resources/i18n/fr_FR/fdmprinter.def.json.po
+++ b/resources/i18n/fr_FR/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:16+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/hu_HU/cura.po b/resources/i18n/hu_HU/cura.po
index a4781df59b..cab7d0e7f1 100644
--- a/resources/i18n/hu_HU/cura.po
+++ b/resources/i18n/hu_HU/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2020-03-24 09:36+0100\n"
"Last-Translator: Nagy Attila <vokroot@gmail.com>\n"
diff --git a/resources/i18n/hu_HU/fdmextruder.def.json.po b/resources/i18n/hu_HU/fdmextruder.def.json.po
index e153967ccf..6bbc53b33c 100644
--- a/resources/i18n/hu_HU/fdmextruder.def.json.po
+++ b/resources/i18n/hu_HU/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2020-03-24 09:27+0100\n"
"Last-Translator: Nagy Attila <vokroot@gmail.com>\n"
diff --git a/resources/i18n/hu_HU/fdmprinter.def.json.po b/resources/i18n/hu_HU/fdmprinter.def.json.po
index e1dddf829d..3c5871a749 100644
--- a/resources/i18n/hu_HU/fdmprinter.def.json.po
+++ b/resources/i18n/hu_HU/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2020-03-24 09:43+0100\n"
"Last-Translator: Nagy Attila <vokroot@gmail.com>\n"
diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po
index e4b973e436..9825abd294 100644
--- a/resources/i18n/it_IT/cura.po
+++ b/resources/i18n/it_IT/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-09-07 07:57+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/it_IT/fdmextruder.def.json.po b/resources/i18n/it_IT/fdmextruder.def.json.po
index 58e76cc1a8..35c2aaa2f9 100644
--- a/resources/i18n/it_IT/fdmextruder.def.json.po
+++ b/resources/i18n/it_IT/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 14:58+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/it_IT/fdmprinter.def.json.po b/resources/i18n/it_IT/fdmprinter.def.json.po
index e72b81f693..2d5ff8a607 100644
--- a/resources/i18n/it_IT/fdmprinter.def.json.po
+++ b/resources/i18n/it_IT/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 14:58+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/ja_JP/cura.po b/resources/i18n/ja_JP/cura.po
index 984b90d3e8..f26b08ab04 100644
--- a/resources/i18n/ja_JP/cura.po
+++ b/resources/i18n/ja_JP/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-09-07 08:00+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/ja_JP/fdmextruder.def.json.po b/resources/i18n/ja_JP/fdmextruder.def.json.po
index 99a1ce54b1..cf9ade8be8 100644
--- a/resources/i18n/ja_JP/fdmextruder.def.json.po
+++ b/resources/i18n/ja_JP/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 14:59+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/ja_JP/fdmprinter.def.json.po b/resources/i18n/ja_JP/fdmprinter.def.json.po
index ab5a6e9d40..0669bfc4df 100644
--- a/resources/i18n/ja_JP/fdmprinter.def.json.po
+++ b/resources/i18n/ja_JP/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:00+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/ko_KR/cura.po b/resources/i18n/ko_KR/cura.po
index 3dd4d02557..19a48d2159 100644
--- a/resources/i18n/ko_KR/cura.po
+++ b/resources/i18n/ko_KR/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-04-16 15:01+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/ko_KR/fdmextruder.def.json.po b/resources/i18n/ko_KR/fdmextruder.def.json.po
index 08f803dda0..5b9c3e4fb5 100644
--- a/resources/i18n/ko_KR/fdmextruder.def.json.po
+++ b/resources/i18n/ko_KR/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:01+0200\n"
"Last-Translator: Korean <info@bothof.nl>\n"
diff --git a/resources/i18n/ko_KR/fdmprinter.def.json.po b/resources/i18n/ko_KR/fdmprinter.def.json.po
index 329a4a840a..29316aed55 100644
--- a/resources/i18n/ko_KR/fdmprinter.def.json.po
+++ b/resources/i18n/ko_KR/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:02+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po
index eb7e234e4e..00ef90fa8a 100644
--- a/resources/i18n/nl_NL/cura.po
+++ b/resources/i18n/nl_NL/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-09-07 08:01+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/nl_NL/fdmextruder.def.json.po b/resources/i18n/nl_NL/fdmextruder.def.json.po
index d83f7fa915..2eb41f59e2 100644
--- a/resources/i18n/nl_NL/fdmextruder.def.json.po
+++ b/resources/i18n/nl_NL/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:03+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/nl_NL/fdmprinter.def.json.po b/resources/i18n/nl_NL/fdmprinter.def.json.po
index f2c72d2c6d..d9ab749078 100644
--- a/resources/i18n/nl_NL/fdmprinter.def.json.po
+++ b/resources/i18n/nl_NL/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:03+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po
index 3e46e02a78..9331746276 100644
--- a/resources/i18n/pl_PL/cura.po
+++ b/resources/i18n/pl_PL/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-09-07 08:02+0200\n"
"Last-Translator: Mariusz Matłosz <matliks@gmail.com>\n"
diff --git a/resources/i18n/pl_PL/fdmextruder.def.json.po b/resources/i18n/pl_PL/fdmextruder.def.json.po
index 2dffba2cce..c5e732052c 100644
--- a/resources/i18n/pl_PL/fdmextruder.def.json.po
+++ b/resources/i18n/pl_PL/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"
"Last-Translator: Mariusz 'Virgin71' Matłosz <matliks@gmail.com>\n"
diff --git a/resources/i18n/pl_PL/fdmprinter.def.json.po b/resources/i18n/pl_PL/fdmprinter.def.json.po
index 30e3ae185b..1e73a90362 100644
--- a/resources/i18n/pl_PL/fdmprinter.def.json.po
+++ b/resources/i18n/pl_PL/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2019-11-15 15:34+0100\n"
"Last-Translator: Mariusz Matłosz <matliks@gmail.com>\n"
diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po
index a5a2678ea1..529c54001c 100644
--- a/resources/i18n/pt_BR/cura.po
+++ b/resources/i18n/pt_BR/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-09-07 08:07+0200\n"
"Last-Translator: Cláudio Sampaio <patola@gmail.com>\n"
diff --git a/resources/i18n/pt_BR/fdmextruder.def.json.po b/resources/i18n/pt_BR/fdmextruder.def.json.po
index e98904fd6f..66e4731de6 100644
--- a/resources/i18n/pt_BR/fdmextruder.def.json.po
+++ b/resources/i18n/pt_BR/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-11 17:09+0200\n"
"Last-Translator: Cláudio Sampaio <patola@gmail.com>\n"
diff --git a/resources/i18n/pt_BR/fdmprinter.def.json.po b/resources/i18n/pt_BR/fdmprinter.def.json.po
index 15b06de7be..b39ab59718 100644
--- a/resources/i18n/pt_BR/fdmprinter.def.json.po
+++ b/resources/i18n/pt_BR/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-08-18 02:56+0200\n"
"Last-Translator: Cláudio Sampaio <patola@gmail.com>\n"
diff --git a/resources/i18n/pt_PT/cura.po b/resources/i18n/pt_PT/cura.po
index 06190424f9..a1a6545a46 100644
--- a/resources/i18n/pt_PT/cura.po
+++ b/resources/i18n/pt_PT/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-04-16 14:56+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/pt_PT/fdmextruder.def.json.po b/resources/i18n/pt_PT/fdmextruder.def.json.po
index cc58862076..9371c355ef 100644
--- a/resources/i18n/pt_PT/fdmextruder.def.json.po
+++ b/resources/i18n/pt_PT/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 14:56+0200\n"
"Last-Translator: Portuguese <info@bothof.nl>\n"
diff --git a/resources/i18n/pt_PT/fdmprinter.def.json.po b/resources/i18n/pt_PT/fdmprinter.def.json.po
index 1a38b8d1e0..038828891f 100644
--- a/resources/i18n/pt_PT/fdmprinter.def.json.po
+++ b/resources/i18n/pt_PT/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 14:56+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po
index 31faaceb24..3514db23e6 100644
--- a/resources/i18n/ru_RU/cura.po
+++ b/resources/i18n/ru_RU/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-09-07 08:08+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/ru_RU/fdmextruder.def.json.po b/resources/i18n/ru_RU/fdmextruder.def.json.po
index fe71cb985a..138a2e496d 100644
--- a/resources/i18n/ru_RU/fdmextruder.def.json.po
+++ b/resources/i18n/ru_RU/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 14:58+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/ru_RU/fdmprinter.def.json.po b/resources/i18n/ru_RU/fdmprinter.def.json.po
index 01cc81513e..a33aebc52a 100644
--- a/resources/i18n/ru_RU/fdmprinter.def.json.po
+++ b/resources/i18n/ru_RU/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 14:58+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
@@ -5354,7 +5354,7 @@ msgstr "Оптимизация перемещения заполнения"
#: fdmprinter.def.json
msgctxt "infill_enable_travel_optimization description"
msgid "When enabled, the order in which the infill lines are printed is optimized to reduce the distance travelled. The reduction in travel time achieved very much depends on the model being sliced, infill pattern, density, etc. Note that, for some models that have many small areas of infill, the time to slice the model may be greatly increased."
-msgstr "Если включено, заказ, в котором печатаются линии заполнения, оптимизируется для сокращения пройденного расстояния. Достигнутое сокращение времени перемещения в очень большой степени зависит от модели, разделяемой на слои, шаблона заполнения, плотности и т. п. Обратите внимание, что для некоторых моделей, имеющих множество небольших заполняемых областей, время разделения на слои может существенно возрасти."
+msgstr "Если включено, порядок, в котором печатаются линии заполнения, оптимизируется для сокращения пройденного расстояния. Достигнутое сокращение времени перемещения в очень большой степени зависит от модели, разделяемой на слои, шаблона заполнения, плотности и т. п. Обратите внимание, что для некоторых моделей, имеющих множество небольших заполняемых областей, время разделения на слои может существенно возрасти."
#: fdmprinter.def.json
msgctxt "material_flow_dependent_temperature label"
diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po
index dac15afb60..87cdc2f421 100644
--- a/resources/i18n/tr_TR/cura.po
+++ b/resources/i18n/tr_TR/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-04-16 14:58+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/tr_TR/fdmextruder.def.json.po b/resources/i18n/tr_TR/fdmextruder.def.json.po
index a0042eead5..1f3473c867 100644
--- a/resources/i18n/tr_TR/fdmextruder.def.json.po
+++ b/resources/i18n/tr_TR/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:03+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/tr_TR/fdmprinter.def.json.po b/resources/i18n/tr_TR/fdmprinter.def.json.po
index cf68ffbda1..af97e84728 100644
--- a/resources/i18n/tr_TR/fdmprinter.def.json.po
+++ b/resources/i18n/tr_TR/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:03+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po
index e61a189352..e9de36f8c3 100644
--- a/resources/i18n/zh_CN/cura.po
+++ b/resources/i18n/zh_CN/cura.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-04-16 15:04+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/zh_CN/fdmextruder.def.json.po b/resources/i18n/zh_CN/fdmextruder.def.json.po
index 028a571491..ec53ba0197 100644
--- a/resources/i18n/zh_CN/fdmextruder.def.json.po
+++ b/resources/i18n/zh_CN/fdmextruder.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"
"Last-Translator: Bothof <info@bothof.nl>\n"
diff --git a/resources/i18n/zh_CN/fdmprinter.def.json.po b/resources/i18n/zh_CN/fdmprinter.def.json.po
index a0a6900281..568e8d0df0 100644
--- a/resources/i18n/zh_CN/fdmprinter.def.json.po
+++ b/resources/i18n/zh_CN/fdmprinter.def.json.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 15:04+0200\n"
"Last-Translator: Lionbridge <info@lionbridge.com>\n"
diff --git a/resources/i18n/zh_TW/cura.po b/resources/i18n/zh_TW/cura.po
index ad28ebb1f8..214e913dab 100644
--- a/resources/i18n/zh_TW/cura.po
+++ b/resources/i18n/zh_TW/cura.po
@@ -1,12 +1,12 @@
# Cura
# Copyright (C) 2021 Ultimaker B.V.
# This file is distributed under the same license as the Cura package.
-# Ruben Dulek <r.dulek@ultimaker.com>, 2021.
+# Ultimaker <plugins@ultimaker.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:59+0200\n"
"PO-Revision-Date: 2021-08-16 19:58+0800\n"
"Last-Translator: Valen Chang <carf17771@gmail.com>\n"
diff --git a/resources/i18n/zh_TW/fdmextruder.def.json.po b/resources/i18n/zh_TW/fdmextruder.def.json.po
index ebfbcb47b5..8aa19940a9 100644
--- a/resources/i18n/zh_TW/fdmextruder.def.json.po
+++ b/resources/i18n/zh_TW/fdmextruder.def.json.po
@@ -1,12 +1,12 @@
# Cura JSON setting files
# Copyright (C) 2021 Ultimaker
# This file is distributed under the same license as the Cura package.
-# Ruben Dulek <r.dulek@ultimaker.com>, 2021.
+# Ultimaker <plugins@ultimaker.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-04-16 20:13+0200\n"
"Last-Translator: Valen Chang <carf17771@gmail.com>\n"
diff --git a/resources/i18n/zh_TW/fdmprinter.def.json.po b/resources/i18n/zh_TW/fdmprinter.def.json.po
index 16b3580942..7ffc615071 100644
--- a/resources/i18n/zh_TW/fdmprinter.def.json.po
+++ b/resources/i18n/zh_TW/fdmprinter.def.json.po
@@ -1,12 +1,12 @@
# Cura JSON setting files
# Copyright (C) 2021 Ultimaker B.V.
# This file is distributed under the same license as the Cura package.
-# Ruben Dulek <r.dulek@ultimaker.com>, 2021.
+# Ultimaker <plugins@ultimaker.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.11\n"
-"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
+"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
"POT-Creation-Date: 2021-08-11 09:58+0000\n"
"PO-Revision-Date: 2021-08-16 20:48+0800\n"
"Last-Translator: Valen Chang <carf17771@gmail.com>\n"
diff --git a/resources/images/Magna2_400.png b/resources/images/Magna2_400.png
new file mode 100644
index 0000000000..1b0b29bdff
--- /dev/null
+++ b/resources/images/Magna2_400.png
Binary files differ
diff --git a/resources/images/Magna2_500.png b/resources/images/Magna2_500.png
new file mode 100644
index 0000000000..ecbb9a6df1
--- /dev/null
+++ b/resources/images/Magna2_500.png
Binary files differ
diff --git a/resources/meshes/3di_d300_platform.STL b/resources/meshes/3di_d300_platform.STL
new file mode 100644
index 0000000000..6615bfb523
--- /dev/null
+++ b/resources/meshes/3di_d300_platform.STL
Binary files differ
diff --git a/resources/meshes/Hellbot_Magna_2_230.obj b/resources/meshes/Hellbot_Magna_2_230.obj
index 0a23384817..d30c80e5ac 100644
--- a/resources/meshes/Hellbot_Magna_2_230.obj
+++ b/resources/meshes/Hellbot_Magna_2_230.obj
@@ -1,6 +1,3 @@
-# Exported from 3D Builder
-mtllib Hellbot_Magna_2_230.mtl
-
o Object.1
v 112.500000 117.499786 0.999789 188 188 188
v -112.500008 117.499786 0.999789 188 188 188
diff --git a/resources/meshes/Hellbot_Magna_2_300.obj b/resources/meshes/Hellbot_Magna_2_300.obj
index 4f80fea99d..28c859d96e 100644
--- a/resources/meshes/Hellbot_Magna_2_300.obj
+++ b/resources/meshes/Hellbot_Magna_2_300.obj
@@ -1,6 +1,3 @@
-# Exported from 3D Builder
-mtllib Hellbot_Magna_2_300.mtl
-
o Object.1
v 150.000000 154.999985 0.999812 188 188 188
v -150.782166 154.938431 -1.000188 188 188 188
diff --git a/resources/meshes/Hellbot_Magna_2_400.obj b/resources/meshes/Hellbot_Magna_2_400.obj
new file mode 100644
index 0000000000..8b8fc6f018
--- /dev/null
+++ b/resources/meshes/Hellbot_Magna_2_400.obj
@@ -0,0 +1,949 @@
+o Object.1
+v 200.000031 204.999557 1.000034 188 188 188
+v -200.782135 204.938004 -0.999961 188 188 188
+v -204.999969 199.999573 -0.999962 188 188 188
+v -204.999969 -199.999588 -1.000031 188 188 188
+v -160.315567 -205.146408 -1.000032 188 188 188
+v -159.121292 -205.878250 -1.000032 188 188 188
+v 159.880707 -205.326553 -1.000032 188 188 188
+v 159.479309 -205.572525 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v 160.773376 -205.036514 0.999964 188 188 188
+v 161.242676 -204.999588 0.999964 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 200.000031 -204.999588 -1.000032 188 188 188
+v 202.938965 -204.044662 -1.000032 188 188 188
+v 202.269989 -204.454605 -1.000032 188 188 188
+v 204.938477 -200.781754 0.999965 188 188 188
+v 205.000031 199.999573 1.000033 188 188 188
+v 205.000031 -199.999588 0.999965 188 188 188
+v 205.000031 199.999573 -0.999962 188 188 188
+v 204.938477 200.781754 -0.999962 188 188 188
+v 204.755310 201.544662 1.000033 188 188 188
+v 204.938477 200.781754 1.000033 188 188 188
+v 204.455048 202.269516 1.000033 188 188 188
+v 204.455048 202.269516 -0.999962 188 188 188
+v 204.045105 202.938492 -0.999962 188 188 188
+v 204.045105 202.938492 1.000033 188 188 188
+v 203.535553 203.535110 1.000033 188 188 188
+v 203.535553 203.535110 -0.999961 188 188 188
+v 202.938965 204.044647 1.000034 188 188 188
+v 202.938965 204.044647 -0.999961 188 188 188
+v 202.269989 204.454590 -0.999961 188 188 188
+v 201.545105 204.754852 1.000034 188 188 188
+v 202.269989 204.454590 1.000034 188 188 188
+v 201.545105 204.754852 -0.999961 188 188 188
+v 200.782196 204.938004 1.000034 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v 200.782196 204.938004 -0.999961 188 188 188
+v 204.755310 201.544662 -0.999962 188 188 188
+v 161.242676 -204.999588 -1.000032 188 188 188
+v 204.755310 -201.544662 0.999965 188 188 188
+v 204.455048 -202.269516 0.999964 188 188 188
+v 204.755310 -201.544662 -1.000031 188 188 188
+v 203.535553 -203.535110 -1.000032 188 188 188
+v 203.535553 -203.535110 0.999964 188 188 188
+v 204.045105 -202.938492 -1.000031 188 188 188
+v 204.045105 -202.938492 0.999964 188 188 188
+v 202.938965 -204.044662 0.999964 188 188 188
+v 202.269989 -204.454605 0.999964 188 188 188
+v 201.545105 -204.754868 0.999964 188 188 188
+v 200.782196 -204.938034 0.999964 188 188 188
+v 201.545105 -204.754868 -1.000032 188 188 188
+v 200.000031 -204.999588 0.999964 188 188 188
+v 204.455048 -202.269516 -1.000031 188 188 188
+v 204.938477 -200.781754 -1.000031 188 188 188
+v 200.782196 -204.938034 -1.000032 188 188 188
+v 160.773376 -205.036514 -1.000032 188 188 188
+v -160.315567 -205.146408 0.999964 188 188 188
+v -160.773300 -205.036514 0.999964 188 188 188
+v -159.880630 -205.326553 0.999964 188 188 188
+v -159.479263 -205.572525 0.999964 188 188 188
+v -159.479263 -205.572525 -1.000032 188 188 188
+v -150.520676 -214.426590 -1.000034 188 188 188
+v -149.226639 -214.962631 -1.000034 188 188 188
+v -149.684387 -214.852737 -1.000034 188 188 188
+v -148.757324 -214.999557 -1.000034 188 188 188
+v 148.757385 -214.999557 -1.000034 188 188 188
+v 150.119354 -214.672562 -1.000034 188 188 188
+v 149.684448 -214.852737 -1.000034 188 188 188
+v 150.878723 -214.120865 0.999961 188 188 188
+v 150.878723 -214.120865 -1.000033 188 188 188
+v 150.520752 -214.426590 0.999961 188 188 188
+v 150.119354 -214.672562 0.999961 188 188 188
+v 149.684448 -214.852737 0.999961 188 188 188
+v 150.520752 -214.426590 -1.000034 188 188 188
+v 149.226685 -214.962631 0.999961 188 188 188
+v 149.226685 -214.962631 -1.000034 188 188 188
+v -148.757324 -214.999557 0.999961 188 188 188
+v -150.878647 -214.120865 -1.000033 188 188 188
+v 159.479309 -205.572525 0.999964 188 188 188
+v -149.684387 -214.852737 0.999961 188 188 188
+v -150.119308 -214.672562 -1.000034 188 188 188
+v -150.520676 -214.426590 0.999961 188 188 188
+v -150.878647 -214.120865 0.999961 188 188 188
+v -159.121292 -205.878250 0.999964 188 188 188
+v -150.119308 -214.672562 0.999961 188 188 188
+v -149.226639 -214.962631 0.999961 188 188 188
+v 148.757385 -214.999557 0.999961 188 188 188
+v 159.121338 -205.878250 0.999964 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v 159.880707 -205.326553 0.999964 188 188 188
+v 160.315613 -205.146408 0.999964 188 188 188
+v 160.315613 -205.146408 -1.000032 188 188 188
+v -159.880630 -205.326553 -1.000032 188 188 188
+v -160.773300 -205.036514 -1.000032 188 188 188
+v -161.242599 -204.999588 0.999964 188 188 188
+v -199.999969 -204.999588 0.999964 188 188 188
+v -202.938904 -204.044662 -1.000032 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -203.535492 -203.535110 -1.000032 188 188 188
+v -204.045059 -202.938492 -1.000031 188 188 188
+v -204.755249 -201.544662 -1.000031 188 188 188
+v -204.938416 -200.781754 0.999965 188 188 188
+v -204.938416 -200.781754 -1.000031 188 188 188
+v -204.999969 -199.999588 0.999965 188 188 188
+v -204.999969 199.999573 1.000033 188 188 188
+v -201.545059 204.754852 1.000034 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -204.045059 202.938492 -0.999962 188 188 188
+v -204.455002 202.269516 -0.999962 188 188 188
+v -204.938416 200.781754 1.000033 188 188 188
+v -204.755249 201.544662 1.000033 188 188 188
+v -202.269928 204.454590 1.000034 188 188 188
+v -203.535492 203.535110 1.000033 188 188 188
+v -203.535492 203.535110 -0.999961 188 188 188
+v -204.045059 202.938492 1.000033 188 188 188
+v -204.455002 202.269516 1.000033 188 188 188
+v -204.755249 201.544662 -0.999962 188 188 188
+v -204.938416 200.781754 -0.999962 188 188 188
+v -202.938904 204.044647 1.000034 188 188 188
+v -202.938904 204.044647 -0.999961 188 188 188
+v -202.269928 204.454590 -0.999961 188 188 188
+v -200.782135 204.938004 1.000034 188 188 188
+v -201.545059 -204.754868 0.999964 188 188 188
+v -199.999969 -204.999588 -1.000032 188 188 188
+v -200.782135 -204.938034 0.999964 188 188 188
+v -200.782135 -204.938034 -1.000032 188 188 188
+v -202.269928 -204.454605 -1.000032 188 188 188
+v -203.535492 -203.535110 0.999964 188 188 188
+v -204.455002 -202.269516 0.999964 188 188 188
+v -204.755249 -201.544662 0.999965 188 188 188
+v -204.045059 -202.938492 0.999964 188 188 188
+v -204.455002 -202.269516 -1.000031 188 188 188
+v -202.938904 -204.044662 0.999964 188 188 188
+v -201.545059 -204.754868 -1.000032 188 188 188
+v -202.269928 -204.454605 0.999964 188 188 188
+v -199.999969 204.999557 1.000034 188 188 188
+
+v 200.000031 204.999557 1.000034 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v -199.999969 204.999557 1.000034 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v -200.782135 204.938004 -0.999961 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v -204.999969 199.999573 -0.999962 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v -204.999969 -199.999588 -1.000031 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v -160.773300 -205.036514 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v -160.315567 -205.146408 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v -159.880630 -205.326553 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v -159.479263 -205.572525 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v -159.121292 -205.878250 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v 159.479309 -205.572525 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v 159.880707 -205.326553 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v 160.315613 -205.146408 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v 160.315613 -205.146408 -1.000032 188 188 188
+v 160.773376 -205.036514 -1.000032 188 188 188
+v 160.773376 -205.036514 0.999964 188 188 188
+v 160.773376 -205.036514 -1.000032 188 188 188
+v 161.242676 -204.999588 0.999964 188 188 188
+v 160.773376 -205.036514 -1.000032 188 188 188
+v 161.242676 -204.999588 0.999964 188 188 188
+v 161.242676 -204.999588 -1.000032 188 188 188
+v 200.000031 -204.999588 -1.000032 188 188 188
+v 161.242676 -204.999588 -1.000032 188 188 188
+v 200.000031 -204.999588 -1.000032 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 200.782196 -204.938034 -1.000032 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 201.545105 -204.754868 -1.000032 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 202.269989 -204.454605 -1.000032 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 202.938965 -204.044662 -1.000032 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 203.535553 -203.535110 -1.000032 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 204.938477 -200.781754 -1.000031 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 204.938477 -200.781754 0.999965 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 205.000031 -199.999588 0.999965 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 205.000031 -199.999588 0.999965 188 188 188
+v 205.000031 199.999573 -0.999962 188 188 188
+v 205.000031 199.999573 1.000033 188 188 188
+v 205.000031 199.999573 -0.999962 188 188 188
+v 205.000031 199.999573 1.000033 188 188 188
+v 204.938477 200.781754 -0.999962 188 188 188
+v 204.938477 200.781754 1.000033 188 188 188
+v 204.938477 200.781754 -0.999962 188 188 188
+v 204.938477 200.781754 1.000033 188 188 188
+v 204.755310 201.544662 -0.999962 188 188 188
+v 204.755310 201.544662 1.000033 188 188 188
+v 204.755310 201.544662 -0.999962 188 188 188
+v 204.755310 201.544662 1.000033 188 188 188
+v 204.455048 202.269516 -0.999962 188 188 188
+v 204.455048 202.269516 1.000033 188 188 188
+v 204.455048 202.269516 -0.999962 188 188 188
+v 204.455048 202.269516 1.000033 188 188 188
+v 204.045105 202.938492 -0.999962 188 188 188
+v 204.045105 202.938492 1.000033 188 188 188
+v 204.045105 202.938492 -0.999962 188 188 188
+v 204.045105 202.938492 1.000033 188 188 188
+v 203.535553 203.535110 -0.999961 188 188 188
+v 203.535553 203.535110 1.000033 188 188 188
+v 203.535553 203.535110 -0.999961 188 188 188
+v 203.535553 203.535110 1.000033 188 188 188
+v 202.938965 204.044647 -0.999961 188 188 188
+v 202.938965 204.044647 1.000034 188 188 188
+v 202.938965 204.044647 -0.999961 188 188 188
+v 202.938965 204.044647 1.000034 188 188 188
+v 202.269989 204.454590 -0.999961 188 188 188
+v 202.269989 204.454590 1.000034 188 188 188
+v 202.269989 204.454590 -0.999961 188 188 188
+v 202.269989 204.454590 1.000034 188 188 188
+v 201.545105 204.754852 -0.999961 188 188 188
+v 201.545105 204.754852 1.000034 188 188 188
+v 201.545105 204.754852 -0.999961 188 188 188
+v 201.545105 204.754852 1.000034 188 188 188
+v 200.782196 204.938004 -0.999961 188 188 188
+v 200.782196 204.938004 1.000034 188 188 188
+v 200.782196 204.938004 -0.999961 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v 200.782196 204.938004 -0.999961 188 188 188
+v 203.535553 203.535110 -0.999961 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v 201.545105 204.754852 -0.999961 188 188 188
+v 203.535553 203.535110 -0.999961 188 188 188
+v 200.782196 204.938004 -0.999961 188 188 188
+v 202.269989 204.454590 -0.999961 188 188 188
+v 202.938965 204.044647 -0.999961 188 188 188
+v 201.545105 204.754852 -0.999961 188 188 188
+v 202.938965 204.044647 -0.999961 188 188 188
+v 203.535553 203.535110 -0.999961 188 188 188
+v 201.545105 204.754852 -0.999961 188 188 188
+v 203.535553 203.535110 -0.999961 188 188 188
+v 204.045105 202.938492 -0.999962 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v 204.045105 202.938492 -0.999962 188 188 188
+v 204.455048 202.269516 -0.999962 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v 204.455048 202.269516 -0.999962 188 188 188
+v 204.755310 201.544662 -0.999962 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v 204.755310 201.544662 -0.999962 188 188 188
+v 204.938477 200.781754 -0.999962 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v 204.938477 200.781754 -0.999962 188 188 188
+v 205.000031 199.999573 -0.999962 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v 205.000031 199.999573 -0.999962 188 188 188
+v 161.242676 -204.999588 -1.000032 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v 204.755310 -201.544662 0.999965 188 188 188
+v 204.755310 -201.544662 -1.000031 188 188 188
+v 204.938477 -200.781754 -1.000031 188 188 188
+v 204.455048 -202.269516 0.999964 188 188 188
+v 204.755310 -201.544662 -1.000031 188 188 188
+v 204.455048 -202.269516 -1.000031 188 188 188
+v 204.755310 -201.544662 -1.000031 188 188 188
+v 204.045105 -202.938492 -1.000031 188 188 188
+v 203.535553 -203.535110 -1.000032 188 188 188
+v 204.755310 -201.544662 -1.000031 188 188 188
+v 203.535553 -203.535110 -1.000032 188 188 188
+v 204.045105 -202.938492 -1.000031 188 188 188
+v 203.535553 -203.535110 0.999964 188 188 188
+v 204.045105 -202.938492 -1.000031 188 188 188
+v 202.938965 -204.044662 -1.000032 188 188 188
+v 202.269989 -204.454605 0.999964 188 188 188
+v 202.269989 -204.454605 -1.000032 188 188 188
+v 201.545105 -204.754868 0.999964 188 188 188
+v 201.545105 -204.754868 -1.000032 188 188 188
+v 200.782196 -204.938034 0.999964 188 188 188
+v 200.782196 -204.938034 -1.000032 188 188 188
+v 203.535553 -203.535110 0.999964 188 188 188
+v 202.938965 -204.044662 0.999964 188 188 188
+v 203.535553 -203.535110 -1.000032 188 188 188
+v 204.045105 -202.938492 0.999964 188 188 188
+v 204.045105 -202.938492 -1.000031 188 188 188
+v 204.455048 -202.269516 -1.000031 188 188 188
+v 204.455048 -202.269516 0.999964 188 188 188
+v 204.045105 -202.938492 0.999964 188 188 188
+v 204.455048 -202.269516 -1.000031 188 188 188
+v 204.938477 -200.781754 0.999965 188 188 188
+v 204.755310 -201.544662 0.999965 188 188 188
+v 204.938477 -200.781754 -1.000031 188 188 188
+v 204.755310 -201.544662 -1.000031 188 188 188
+v 203.535553 -203.535110 -1.000032 188 188 188
+v 204.938477 -200.781754 -1.000031 188 188 188
+v 202.938965 -204.044662 0.999964 188 188 188
+v 202.938965 -204.044662 -1.000032 188 188 188
+v 203.535553 -203.535110 -1.000032 188 188 188
+v 202.269989 -204.454605 0.999964 188 188 188
+v 202.269989 -204.454605 -1.000032 188 188 188
+v 202.938965 -204.044662 -1.000032 188 188 188
+v 201.545105 -204.754868 0.999964 188 188 188
+v 201.545105 -204.754868 -1.000032 188 188 188
+v 202.269989 -204.454605 -1.000032 188 188 188
+v 200.782196 -204.938034 0.999964 188 188 188
+v 200.782196 -204.938034 -1.000032 188 188 188
+v 201.545105 -204.754868 -1.000032 188 188 188
+v 200.000031 -204.999588 0.999964 188 188 188
+v 200.000031 -204.999588 -1.000032 188 188 188
+v 200.782196 -204.938034 -1.000032 188 188 188
+v 205.000031 -199.999588 -1.000031 188 188 188
+v 161.242676 -204.999588 -1.000032 188 188 188
+v 205.000031 199.999573 -0.999962 188 188 188
+v 200.000031 -204.999588 0.999964 188 188 188
+v 161.242676 -204.999588 0.999964 188 188 188
+v 200.000031 -204.999588 -1.000032 188 188 188
+v 161.242676 -204.999588 -1.000032 188 188 188
+v 160.773376 -205.036514 -1.000032 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v -160.773300 -205.036514 -1.000032 188 188 188
+v -160.315567 -205.146408 0.999964 188 188 188
+v -160.315567 -205.146408 -1.000032 188 188 188
+v -159.880630 -205.326553 0.999964 188 188 188
+v -159.880630 -205.326553 -1.000032 188 188 188
+v -159.479263 -205.572525 0.999964 188 188 188
+v -159.479263 -205.572525 -1.000032 188 188 188
+v -159.121292 -205.878250 0.999964 188 188 188
+v -150.878647 -214.120865 0.999961 188 188 188
+v -150.878647 -214.120865 -1.000033 188 188 188
+v -150.520676 -214.426590 -1.000034 188 188 188
+v -150.878647 -214.120865 -1.000033 188 188 188
+v -150.119308 -214.672562 -1.000034 188 188 188
+v -150.878647 -214.120865 -1.000033 188 188 188
+v -149.684387 -214.852737 -1.000034 188 188 188
+v -150.878647 -214.120865 -1.000033 188 188 188
+v -149.226639 -214.962631 -1.000034 188 188 188
+v -150.878647 -214.120865 -1.000033 188 188 188
+v -148.757324 -214.999557 -1.000034 188 188 188
+v -150.878647 -214.120865 -1.000033 188 188 188
+v -148.757324 -214.999557 -1.000034 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v 148.757385 -214.999557 -1.000034 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v 149.226685 -214.962631 -1.000034 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v 149.684448 -214.852737 -1.000034 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v 150.119354 -214.672562 -1.000034 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v 150.878723 -214.120865 -1.000033 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v 150.878723 -214.120865 0.999961 188 188 188
+v 150.878723 -214.120865 -1.000033 188 188 188
+v 150.520752 -214.426590 0.999961 188 188 188
+v 150.878723 -214.120865 -1.000033 188 188 188
+v 150.520752 -214.426590 0.999961 188 188 188
+v 150.520752 -214.426590 -1.000034 188 188 188
+v 150.119354 -214.672562 0.999961 188 188 188
+v 150.119354 -214.672562 -1.000034 188 188 188
+v 150.520752 -214.426590 -1.000034 188 188 188
+v 150.119354 -214.672562 0.999961 188 188 188
+v 150.119354 -214.672562 -1.000034 188 188 188
+v 149.684448 -214.852737 0.999961 188 188 188
+v 149.684448 -214.852737 -1.000034 188 188 188
+v 150.520752 -214.426590 -1.000034 188 188 188
+v 150.119354 -214.672562 -1.000034 188 188 188
+v 150.878723 -214.120865 -1.000033 188 188 188
+v 149.684448 -214.852737 0.999961 188 188 188
+v 149.684448 -214.852737 -1.000034 188 188 188
+v 150.119354 -214.672562 -1.000034 188 188 188
+v 149.226685 -214.962631 0.999961 188 188 188
+v 149.226685 -214.962631 -1.000034 188 188 188
+v 149.684448 -214.852737 -1.000034 188 188 188
+v 149.226685 -214.962631 0.999961 188 188 188
+v 149.226685 -214.962631 -1.000034 188 188 188
+v 148.757385 -214.999557 0.999961 188 188 188
+v 148.757385 -214.999557 -1.000034 188 188 188
+v 149.226685 -214.962631 -1.000034 188 188 188
+v 148.757385 -214.999557 -1.000034 188 188 188
+v -148.757324 -214.999557 -1.000034 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v -150.878647 -214.120865 -1.000033 188 188 188
+v 159.479309 -205.572525 -1.000032 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v 159.479309 -205.572525 -1.000032 188 188 188
+v -148.757324 -214.999557 -1.000034 188 188 188
+v -149.226639 -214.962631 -1.000034 188 188 188
+v -149.226639 -214.962631 -1.000034 188 188 188
+v -149.684387 -214.852737 -1.000034 188 188 188
+v -149.684387 -214.852737 -1.000034 188 188 188
+v -150.119308 -214.672562 -1.000034 188 188 188
+v -150.119308 -214.672562 0.999961 188 188 188
+v -150.119308 -214.672562 -1.000034 188 188 188
+v -150.119308 -214.672562 -1.000034 188 188 188
+v -150.520676 -214.426590 0.999961 188 188 188
+v -150.520676 -214.426590 -1.000034 188 188 188
+v -150.520676 -214.426590 0.999961 188 188 188
+v -150.878647 -214.120865 0.999961 188 188 188
+v -150.520676 -214.426590 -1.000034 188 188 188
+v -150.878647 -214.120865 -1.000033 188 188 188
+v -159.121292 -205.878250 0.999964 188 188 188
+v -159.121292 -205.878250 -1.000032 188 188 188
+v -149.684387 -214.852737 0.999961 188 188 188
+v -150.119308 -214.672562 0.999961 188 188 188
+v -149.684387 -214.852737 -1.000034 188 188 188
+v -149.226639 -214.962631 0.999961 188 188 188
+v -149.684387 -214.852737 0.999961 188 188 188
+v -149.226639 -214.962631 -1.000034 188 188 188
+v -148.757324 -214.999557 0.999961 188 188 188
+v -149.226639 -214.962631 0.999961 188 188 188
+v -148.757324 -214.999557 -1.000034 188 188 188
+v 148.757385 -214.999557 0.999961 188 188 188
+v -148.757324 -214.999557 0.999961 188 188 188
+v 148.757385 -214.999557 -1.000034 188 188 188
+v 150.878723 -214.120865 0.999961 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v 159.479309 -205.572525 0.999964 188 188 188
+v 159.121338 -205.878250 0.999964 188 188 188
+v 159.121338 -205.878250 -1.000032 188 188 188
+v 159.479309 -205.572525 0.999964 188 188 188
+v 159.479309 -205.572525 -1.000032 188 188 188
+v 159.880707 -205.326553 0.999964 188 188 188
+v 159.880707 -205.326553 -1.000032 188 188 188
+v 160.773376 -205.036514 0.999964 188 188 188
+v 160.315613 -205.146408 0.999964 188 188 188
+v 160.315613 -205.146408 -1.000032 188 188 188
+v 160.315613 -205.146408 0.999964 188 188 188
+v 159.880707 -205.326553 -1.000032 188 188 188
+v 160.315613 -205.146408 -1.000032 188 188 188
+v 159.880707 -205.326553 0.999964 188 188 188
+v 159.479309 -205.572525 -1.000032 188 188 188
+v 159.880707 -205.326553 -1.000032 188 188 188
+v -150.878647 -214.120865 -1.000033 188 188 188
+v -159.121292 -205.878250 -1.000032 188 188 188
+v 159.479309 -205.572525 -1.000032 188 188 188
+v -159.121292 -205.878250 -1.000032 188 188 188
+v -159.121292 -205.878250 0.999964 188 188 188
+v -159.479263 -205.572525 -1.000032 188 188 188
+v -159.479263 -205.572525 -1.000032 188 188 188
+v -159.479263 -205.572525 0.999964 188 188 188
+v -159.880630 -205.326553 -1.000032 188 188 188
+v -159.880630 -205.326553 -1.000032 188 188 188
+v -159.880630 -205.326553 0.999964 188 188 188
+v -160.315567 -205.146408 -1.000032 188 188 188
+v -160.315567 -205.146408 -1.000032 188 188 188
+v -160.315567 -205.146408 0.999964 188 188 188
+v -160.773300 -205.036514 -1.000032 188 188 188
+v -160.773300 -205.036514 -1.000032 188 188 188
+v -160.773300 -205.036514 0.999964 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -160.773300 -205.036514 0.999964 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -161.242599 -204.999588 0.999964 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -199.999969 -204.999588 0.999964 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -199.999969 -204.999588 -1.000032 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -201.545059 -204.754868 -1.000032 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -202.269928 -204.454605 -1.000032 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -202.938904 -204.044662 -1.000032 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -203.535492 -203.535110 -1.000032 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -204.045059 -202.938492 -1.000031 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -204.455002 -202.269516 -1.000031 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -204.755249 -201.544662 -1.000031 188 188 188
+v -204.755249 -201.544662 -1.000031 188 188 188
+v -204.938416 -200.781754 -1.000031 188 188 188
+v -204.938416 -200.781754 0.999965 188 188 188
+v -204.938416 -200.781754 -1.000031 188 188 188
+v -204.938416 -200.781754 -1.000031 188 188 188
+v -204.999969 -199.999588 0.999965 188 188 188
+v -204.999969 -199.999588 -1.000031 188 188 188
+v -204.999969 -199.999588 0.999965 188 188 188
+v -204.999969 -199.999588 -1.000031 188 188 188
+v -201.545059 204.754852 1.000034 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -202.269928 204.454590 -0.999961 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -202.938904 204.044647 -0.999961 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -203.535492 203.535110 -0.999961 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -204.045059 202.938492 -0.999962 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -204.455002 202.269516 -0.999962 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -204.755249 201.544662 -0.999962 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -204.999969 199.999573 -0.999962 188 188 188
+v -204.938416 200.781754 -0.999962 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -204.999969 199.999573 -0.999962 188 188 188
+v -204.938416 200.781754 -0.999962 188 188 188
+v -204.938416 200.781754 1.000033 188 188 188
+v -204.938416 200.781754 -0.999962 188 188 188
+v -202.938904 204.044647 -0.999961 188 188 188
+v -202.938904 204.044647 1.000034 188 188 188
+v -203.535492 203.535110 -0.999961 188 188 188
+v -203.535492 203.535110 1.000033 188 188 188
+v -204.045059 202.938492 -0.999962 188 188 188
+v -204.045059 202.938492 1.000033 188 188 188
+v -204.455002 202.269516 -0.999962 188 188 188
+v -204.755249 201.544662 1.000033 188 188 188
+v -204.455002 202.269516 1.000033 188 188 188
+v -204.755249 201.544662 -0.999962 188 188 188
+v -204.999969 199.999573 1.000033 188 188 188
+v -204.938416 200.781754 1.000033 188 188 188
+v -204.999969 199.999573 -0.999962 188 188 188
+v -204.938416 200.781754 -0.999962 188 188 188
+v -204.755249 201.544662 1.000033 188 188 188
+v -204.755249 201.544662 -0.999962 188 188 188
+v -204.755249 201.544662 -0.999962 188 188 188
+v -204.455002 202.269516 1.000033 188 188 188
+v -204.455002 202.269516 -0.999962 188 188 188
+v -204.455002 202.269516 -0.999962 188 188 188
+v -204.045059 202.938492 1.000033 188 188 188
+v -204.045059 202.938492 -0.999962 188 188 188
+v -204.045059 202.938492 -0.999962 188 188 188
+v -203.535492 203.535110 1.000033 188 188 188
+v -203.535492 203.535110 -0.999961 188 188 188
+v -203.535492 203.535110 -0.999961 188 188 188
+v -202.938904 204.044647 1.000034 188 188 188
+v -202.938904 204.044647 -0.999961 188 188 188
+v -202.938904 204.044647 -0.999961 188 188 188
+v -202.269928 204.454590 1.000034 188 188 188
+v -202.269928 204.454590 -0.999961 188 188 188
+v -202.269928 204.454590 1.000034 188 188 188
+v -201.545059 204.754852 1.000034 188 188 188
+v -202.269928 204.454590 -0.999961 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -200.782135 204.938004 1.000034 188 188 188
+v -200.782135 204.938004 -0.999961 188 188 188
+v -199.999969 -204.999588 -1.000032 188 188 188
+v -200.782135 -204.938034 0.999964 188 188 188
+v -200.782135 -204.938034 -1.000032 188 188 188
+v -200.782135 -204.938034 -1.000032 188 188 188
+v -201.545059 -204.754868 0.999964 188 188 188
+v -201.545059 -204.754868 -1.000032 188 188 188
+v -201.545059 -204.754868 0.999964 188 188 188
+v -201.545059 -204.754868 -1.000032 188 188 188
+v -202.269928 -204.454605 0.999964 188 188 188
+v -202.269928 -204.454605 -1.000032 188 188 188
+v -202.938904 -204.044662 0.999964 188 188 188
+v -202.938904 -204.044662 -1.000032 188 188 188
+v -204.455002 -202.269516 -1.000031 188 188 188
+v -204.455002 -202.269516 0.999964 188 188 188
+v -204.045059 -202.938492 -1.000031 188 188 188
+v -203.535492 -203.535110 0.999964 188 188 188
+v -204.045059 -202.938492 0.999964 188 188 188
+v -203.535492 -203.535110 -1.000032 188 188 188
+v -204.755249 -201.544662 0.999965 188 188 188
+v -204.938416 -200.781754 0.999965 188 188 188
+v -204.755249 -201.544662 -1.000031 188 188 188
+v -204.455002 -202.269516 -1.000031 188 188 188
+v -204.755249 -201.544662 0.999965 188 188 188
+v -204.755249 -201.544662 -1.000031 188 188 188
+v -204.045059 -202.938492 -1.000031 188 188 188
+v -204.455002 -202.269516 0.999964 188 188 188
+v -204.455002 -202.269516 -1.000031 188 188 188
+v -203.535492 -203.535110 -1.000032 188 188 188
+v -204.045059 -202.938492 0.999964 188 188 188
+v -204.045059 -202.938492 -1.000031 188 188 188
+v -202.938904 -204.044662 -1.000032 188 188 188
+v -203.535492 -203.535110 0.999964 188 188 188
+v -203.535492 -203.535110 -1.000032 188 188 188
+v -202.269928 -204.454605 -1.000032 188 188 188
+v -202.938904 -204.044662 0.999964 188 188 188
+v -202.938904 -204.044662 -1.000032 188 188 188
+v -201.545059 -204.754868 -1.000032 188 188 188
+v -202.269928 -204.454605 0.999964 188 188 188
+v -202.269928 -204.454605 -1.000032 188 188 188
+v -199.999969 -204.999588 -1.000032 188 188 188
+v -200.782135 -204.938034 -1.000032 188 188 188
+v -201.545059 -204.754868 -1.000032 188 188 188
+v -199.999969 -204.999588 0.999964 188 188 188
+v -200.782135 -204.938034 0.999964 188 188 188
+v -199.999969 -204.999588 -1.000032 188 188 188
+v -161.242599 -204.999588 -1.000032 188 188 188
+v -204.938416 -200.781754 -1.000031 188 188 188
+v -204.999969 -199.999588 -1.000031 188 188 188
+v -204.999969 -199.999588 -1.000031 188 188 188
+v -204.999969 199.999573 1.000033 188 188 188
+v -204.999969 199.999573 -0.999962 188 188 188
+v -204.999969 199.999573 -0.999962 188 188 188
+v -201.545059 204.754852 -0.999961 188 188 188
+v -200.782135 204.938004 -0.999961 188 188 188
+v -200.782135 204.938004 1.000034 188 188 188
+v -199.999969 204.999557 1.000034 188 188 188
+v -200.782135 204.938004 -0.999961 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+v 160.773376 -205.036514 -1.000032 188 188 188
+v -199.999969 204.999557 -0.999961 188 188 188
+v 200.000031 204.999557 1.000034 188 188 188
+v 200.782196 204.938004 1.000034 188 188 188
+v 200.000031 204.999557 -0.999961 188 188 188
+
+f 1 36 9
+f 136 137 138
+f 2 139 140
+f 3 141 142
+f 4 143 144
+f 98 145 146
+f 94 147 148
+f 5 149 150
+f 93 151 152
+f 61 153 154
+f 6 155 156
+f 8 157 158
+f 7 159 160
+f 92 161 162
+f 56 163 164
+f 10 165 166
+f 11 167 168
+f 169 170 39
+f 13 171 172
+f 173 174 12
+f 55 175 176
+f 51 177 178
+f 15 179 180
+f 14 181 182
+f 43 183 184
+f 54 185 186
+f 16 187 188
+f 18 189 190
+f 191 192 19
+f 17 193 194
+f 195 196 20
+f 22 197 198
+f 199 200 38
+f 21 201 202
+f 203 204 24
+f 23 205 206
+f 207 208 25
+f 26 209 210
+f 211 212 28
+f 27 213 214
+f 215 216 30
+f 29 217 218
+f 219 220 31
+f 33 221 222
+f 223 224 34
+f 32 225 226
+f 227 228 37
+f 35 229 230
+f 231 232 233
+f 234 235 236
+f 237 238 239
+f 240 241 242
+f 243 244 245
+f 246 247 248
+f 249 250 251
+f 252 253 254
+f 255 256 257
+f 258 259 260
+f 261 262 263
+f 40 41 42
+f 264 265 266
+f 267 53 268
+f 269 45 270
+f 271 272 273
+f 44 274 275
+f 46 276 277
+f 47 48 278
+f 279 49 280
+f 281 50 282
+f 283 52 284
+f 285 286 287
+f 288 289 290
+f 291 292 293
+f 294 295 296
+f 297 298 299
+f 300 301 302
+f 303 304 305
+f 306 307 308
+f 309 310 311
+f 312 313 314
+f 315 316 317
+f 318 319 320
+f 321 322 323
+f 57 58 324
+f 59 325 326
+f 60 327 328
+f 84 329 330
+f 83 331 78
+f 62 332 333
+f 81 334 335
+f 64 336 337
+f 63 338 339
+f 65 340 341
+f 342 343 89
+f 66 344 345
+f 76 346 347
+f 68 348 349
+f 67 350 351
+f 70 352 353
+f 69 354 355
+f 356 71 357
+f 358 74 359
+f 360 72 361
+f 362 363 364
+f 365 73 366
+f 367 75 368
+f 369 370 371
+f 372 373 374
+f 375 376 377
+f 378 87 379
+f 380 381 382
+f 383 77 384
+f 385 386 387
+f 79 388 389
+f 390 86 391
+f 392 80 393
+f 394 85 395
+f 396 82 397
+f 398 399 400
+f 401 402 403
+f 404 405 406
+f 407 408 409
+f 410 411 412
+f 413 414 415
+f 416 417 418
+f 88 419 420
+f 421 422 423
+f 90 424 425
+f 91 426 427
+f 428 429 430
+f 431 432 433
+f 434 435 436
+f 437 438 439
+f 440 441 442
+f 443 444 445
+f 446 447 448
+f 449 450 451
+f 452 453 454
+f 455 95 456
+f 457 96 458
+f 459 460 124
+f 461 462 134
+f 463 464 127
+f 465 466 97
+f 467 468 99
+f 469 470 100
+f 471 472 132
+f 473 474 101
+f 475 476 103
+f 477 102 478
+f 479 104 480
+f 481 482 483
+f 484 105 485
+f 106 122 107
+f 121 486 487
+f 120 488 489
+f 114 490 491
+f 108 492 493
+f 109 494 495
+f 117 496 497
+f 118 498 499
+f 500 501 502
+f 503 110 504
+f 505 111 506
+f 119 112 507
+f 113 508 509
+f 115 510 511
+f 116 512 513
+f 514 515 516
+f 517 518 519
+f 520 521 522
+f 523 524 525
+f 526 527 528
+f 529 530 531
+f 532 533 534
+f 535 536 537
+f 538 539 540
+f 541 542 543
+f 125 123 126
+f 544 545 546
+f 547 548 549
+f 550 135 551
+f 552 133 553
+f 554 128 555
+f 129 130 556
+f 131 557 558
+f 559 560 561
+f 562 563 564
+f 565 566 567
+f 568 569 570
+f 571 572 573
+f 574 575 576
+f 577 578 579
+f 580 581 582
+f 583 584 585
+f 586 587 588
+f 589 590 591
+f 592 593 594
+f 595 596 597
+f 598 599 600
+f 601 602 603
+f 604 605 606
+
+vt 0.106310 0.023379
+vt 0.973522 0.985541
+vt 0.012019 0.985541
+vt 0.107410 0.023121
+vt 0.108456 0.022698
+vt 0.109421 0.022121
+vt 0.875260 0.021403
+vt 0.876120 0.022121
+vt 0.877085 0.022698
+vt 0.878130 0.023121
+vt 0.879231 0.023379
+vt 0.880359 0.023465
+vt 0.985541 0.035198
+vt 0.985541 0.973808
+vt 0.985393 0.975644
+vt 0.984953 0.977434
+vt 0.984231 0.979135
+vt 0.983246 0.980705
+vt 0.982021 0.982105
+vt 0.975402 0.985397
+vt 0.977236 0.984967
+vt 0.980587 0.983300
+vt 0.978979 0.984262
+vt 0.985393 0.033363
+vt 0.984953 0.031572
+vt 0.984231 0.029871
+vt 0.983246 0.028302
+vt 0.982021 0.026902
+vt 0.980587 0.025706
+vt 0.978979 0.024744
+vt 0.977236 0.024040
+vt 0.973522 0.023465
+vt 0.975402 0.023610
+vt 0.855446 0.002062
+vt 0.110281 0.021403
+vt 0.850347 0.000000
+vt 0.851475 0.000087
+vt 0.852576 0.000345
+vt 0.853621 0.000767
+vt 0.854586 0.001345
+vt 0.135194 0.000000
+vt 0.134066 0.000087
+vt 0.132965 0.000345
+vt 0.131920 0.000767
+vt 0.130095 0.002062
+vt 0.130955 0.001345
+vt 0.105182 0.023465
+vt -0.000000 0.973808
+vt -0.000000 0.035198
+vt 0.012019 0.023465
+vt 0.010139 0.023610
+vt 0.008305 0.024040
+vt 0.006562 0.024744
+vt 0.004954 0.025706
+vt 0.003520 0.026902
+vt 0.000148 0.033363
+vt 0.000588 0.031572
+vt 0.001310 0.029871
+vt 0.002295 0.028302
+vt 0.010139 0.985397
+vt 0.008305 0.984967
+vt 0.000148 0.975644
+vt 0.000588 0.977434
+vt 0.006562 0.984262
+vt 0.004954 0.983300
+vt 0.003520 0.982105
+vt 0.002295 0.980705
+vt 0.001310 0.979135
+
+usemtl Mat_0
+f 27/19 32/21 35/20
+f 27/19 35/20 1/2
+f 29/22 33/23 32/21
+f 27/19 29/22 32/21
+f 26/18 27/19 1/2
+f 23/17 26/18 1/2
+f 21/16 23/17 1/2
+f 22/15 21/16 1/2
+f 17/14 22/15 1/2
+f 18/13 17/14 1/2
+f 11/12 18/13 1/2
+f 11/12 16/24 18/13
+f 11/12 40/25 16/24
+f 11/12 41/26 40/25
+f 11/12 44/28 46/27
+f 11/12 47/29 44/28
+f 11/12 48/30 47/29
+f 11/12 49/31 48/30
+f 11/12 52/32 49/31
+f 52/32 50/33 49/31
+f 11/12 46/27 41/26
+f 10/11 11/12 1/2
+f 91/10 10/11 1/2
+f 90/9 91/10 1/2
+f 79/8 90/9 1/2
+f 88/7 79/8 1/2
+f 60/6 88/7 1/2
+f 59/5 60/6 1/2
+f 57/4 59/5 1/2
+f 58/1 57/4 1/2
+f 69/34 88/7 60/6
+f 84/35 69/34 60/6
+f 87/36 69/34 84/35
+f 77/41 87/36 84/35
+f 86/42 77/41 84/35
+f 80/43 86/42 84/35
+f 85/44 80/43 84/35
+f 83/45 85/44 84/35
+f 73/38 72/39 69/34
+f 75/37 73/38 69/34
+f 72/39 71/40 69/34
+f 82/46 85/44 83/45
+f 87/36 75/37 69/34
+f 104/49 95/47 105/48
+f 105/48 95/47 136/3
+f 122/60 105/48 136/3
+f 106/61 105/48 122/60
+f 111/63 110/62 106/61
+f 112/64 111/63 106/61
+f 119/65 111/63 112/64
+f 113/66 111/63 119/65
+f 115/67 111/63 113/66
+f 116/68 111/63 115/67
+f 110/62 105/48 106/61
+f 102/56 128/55 104/49
+f 128/55 133/54 104/49
+f 133/54 135/53 104/49
+f 135/53 123/52 104/49
+f 123/52 125/51 104/49
+f 125/51 96/50 104/49
+f 130/57 128/55 102/56
+f 129/58 128/55 130/57
+f 131/59 128/55 129/58
+f 96/50 95/47 104/49
+f 95/47 58/1 136/3
+f 58/1 1/2 136/3
+
diff --git a/resources/meshes/Hellbot_Magna_2_500.obj b/resources/meshes/Hellbot_Magna_2_500.obj
new file mode 100644
index 0000000000..7ff0e017f1
--- /dev/null
+++ b/resources/meshes/Hellbot_Magna_2_500.obj
@@ -0,0 +1,949 @@
+o Object.1
+v 250.000000 254.999847 0.999835 188 188 188
+v -250.000000 254.999847 0.999835 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v -209.121323 -255.878632 -0.999841 188 188 188
+v 210.315582 -255.146759 1.000158 188 188 188
+v 210.773315 -255.036865 1.000158 188 188 188
+v 211.242645 -254.999939 1.000158 188 188 188
+v 210.773315 -255.036865 -0.999841 188 188 188
+v 211.242645 -254.999939 -0.999841 188 188 188
+v 250.782166 254.938293 0.999835 188 188 188
+v 250.782166 254.938293 -1.000164 188 188 188
+v 251.545074 254.755127 0.999835 188 188 188
+v 252.269958 254.454895 0.999836 188 188 188
+v 251.545074 254.755127 -1.000164 188 188 188
+v 252.269958 254.454895 -1.000164 188 188 188
+v 254.755280 251.544952 -1.000162 188 188 188
+v 252.938934 254.044952 0.999836 188 188 188
+v 252.938934 254.044952 -1.000163 188 188 188
+v 253.535522 253.535400 0.999836 188 188 188
+v 253.535522 253.535400 -1.000163 188 188 188
+v 254.045105 252.938782 0.999836 188 188 188
+v 254.455017 252.269806 0.999837 188 188 188
+v 254.045105 252.938782 -1.000163 188 188 188
+v 254.755280 251.544952 0.999837 188 188 188
+v 254.455017 252.269806 -1.000162 188 188 188
+v 254.938446 250.782043 0.999838 188 188 188
+v 254.938446 250.782043 -1.000161 188 188 188
+v 255.000000 249.999847 0.999838 188 188 188
+v 255.000000 -249.999939 1.000155 188 188 188
+v 254.938446 -250.782104 1.000155 188 188 188
+v 254.938446 -250.782104 -0.999844 188 188 188
+v 254.455017 -252.269897 -0.999843 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 250.000000 -254.999939 -0.999841 188 188 188
+v 250.000000 -254.999939 1.000158 188 188 188
+v 254.455017 -252.269897 1.000156 188 188 188
+v 254.755280 -251.545013 1.000155 188 188 188
+v 254.045105 -252.938873 1.000156 188 188 188
+v 253.535522 -253.535461 1.000157 188 188 188
+v 252.938934 -254.045013 1.000157 188 188 188
+v 252.269958 -254.454956 1.000157 188 188 188
+v 251.545074 -254.755219 1.000158 188 188 188
+v 252.269958 -254.454956 -0.999842 188 188 188
+v 250.782166 -254.938385 1.000158 188 188 188
+v 251.545074 -254.755219 -0.999842 188 188 188
+v 250.782166 -254.938385 -0.999841 188 188 188
+v 252.938934 -254.045013 -0.999842 188 188 188
+v 253.535522 -253.535461 -0.999842 188 188 188
+v 254.045105 -252.938873 -0.999843 188 188 188
+v 254.755280 -251.545013 -0.999844 188 188 188
+v -210.315598 -255.146759 1.000158 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -254.938477 250.782043 -1.000161 188 188 188
+v -254.755310 251.544952 -1.000162 188 188 188
+v -254.045105 252.938782 -1.000163 188 188 188
+v -253.535522 253.535400 -1.000163 188 188 188
+v -252.269958 254.454895 -1.000164 188 188 188
+v -251.545074 254.755127 0.999835 188 188 188
+v -250.782166 254.938293 0.999835 188 188 188
+v -250.782166 254.938293 -1.000164 188 188 188
+v -210.773331 -255.036865 1.000158 188 188 188
+v -211.242645 -254.999939 1.000158 188 188 188
+v -254.938477 -250.782104 -0.999844 188 188 188
+v -255.000000 -249.999939 1.000155 188 188 188
+v -255.000000 249.999847 0.999838 188 188 188
+v -254.938477 250.782043 0.999838 188 188 188
+v -255.000000 249.999847 -1.000161 188 188 188
+v -252.938934 254.044952 0.999836 188 188 188
+v -252.269958 254.454895 0.999836 188 188 188
+v -253.535522 253.535400 0.999836 188 188 188
+v -254.045105 252.938782 0.999836 188 188 188
+v -254.455017 252.269806 0.999837 188 188 188
+v -254.755310 251.544952 0.999837 188 188 188
+v -254.938477 -250.782104 1.000155 188 188 188
+v -254.755310 -251.545013 1.000155 188 188 188
+v -254.455017 -252.269897 1.000156 188 188 188
+v -254.455017 -252.269897 -0.999843 188 188 188
+v -254.045105 -252.938873 1.000156 188 188 188
+v -252.938934 -254.045013 -0.999842 188 188 188
+v -252.269958 -254.454956 -0.999842 188 188 188
+v -251.545074 -254.755219 -0.999842 188 188 188
+v -252.269958 -254.454956 1.000157 188 188 188
+v -250.782166 -254.938385 -0.999841 188 188 188
+v -250.000000 -254.999939 -0.999841 188 188 188
+v -250.000000 -254.999939 1.000158 188 188 188
+v -250.782166 -254.938385 1.000158 188 188 188
+v -251.545074 -254.755219 1.000158 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -252.938934 -254.045013 1.000157 188 188 188
+v -253.535522 -253.535461 1.000157 188 188 188
+v -253.535522 -253.535461 -0.999842 188 188 188
+v -254.045105 -252.938873 -0.999843 188 188 188
+v -254.755310 -251.545013 -0.999844 188 188 188
+v -252.938934 254.044952 -1.000163 188 188 188
+v -254.455017 252.269806 -1.000162 188 188 188
+v -210.773331 -255.036865 -0.999841 188 188 188
+v -255.000000 -249.999939 -0.999845 188 188 188
+v -209.479294 -255.572876 1.000158 188 188 188
+v -209.121323 -255.878632 1.000158 188 188 188
+v -200.878677 -264.121246 1.000164 188 188 188
+v -198.757370 -264.999908 -0.999835 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v 200.878662 -264.121246 -0.999836 188 188 188
+v 200.520691 -264.426910 1.000164 188 188 188
+v 200.520691 -264.426910 -0.999835 188 188 188
+v 200.119324 -264.672943 1.000164 188 188 188
+v 200.119324 -264.672943 -0.999835 188 188 188
+v 199.684418 -264.853058 1.000164 188 188 188
+v 199.684418 -264.853058 -0.999835 188 188 188
+v 199.226654 -264.962982 1.000164 188 188 188
+v 199.226654 -264.962982 -0.999835 188 188 188
+v 198.757355 -264.999908 1.000164 188 188 188
+v -198.757370 -264.999908 1.000164 188 188 188
+v 209.479279 -255.572876 1.000158 188 188 188
+v -200.119339 -264.672943 -0.999835 188 188 188
+v -200.520706 -264.426910 1.000164 188 188 188
+v -200.520706 -264.426910 -0.999835 188 188 188
+v -200.119339 -264.672943 1.000164 188 188 188
+v -199.684418 -264.853058 -0.999835 188 188 188
+v -199.226669 -264.962982 -0.999835 188 188 188
+v -199.684418 -264.853058 1.000164 188 188 188
+v -200.878677 -264.121246 -0.999836 188 188 188
+v -199.226669 -264.962982 1.000164 188 188 188
+v 198.757355 -264.999908 -0.999835 188 188 188
+v 200.878662 -264.121246 1.000164 188 188 188
+v 209.121307 -255.878632 1.000158 188 188 188
+v 255.000000 249.999847 -1.000161 188 188 188
+v 209.880646 -255.326935 1.000158 188 188 188
+v 209.479279 -255.572876 -0.999841 188 188 188
+v 209.880646 -255.326935 -0.999841 188 188 188
+v -209.479294 -255.572876 -0.999841 188 188 188
+v -209.880661 -255.326935 -0.999841 188 188 188
+v -209.880661 -255.326935 1.000158 188 188 188
+v -251.545074 254.755127 -1.000164 188 188 188
+v 210.315582 -255.146759 -0.999841 188 188 188
+v 250.000000 254.999847 -1.000164 188 188 188
+
+v 250.000000 254.999847 0.999835 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v -250.000000 254.999847 0.999835 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v -250.782166 254.938293 -1.000164 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v -209.880661 -255.326935 -0.999841 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v -209.479294 -255.572876 -0.999841 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v -209.121323 -255.878632 -0.999841 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v 209.479279 -255.572876 -0.999841 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v 209.880646 -255.326935 -0.999841 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v 209.880646 -255.326935 -0.999841 188 188 188
+v 210.315582 -255.146759 -0.999841 188 188 188
+v 210.315582 -255.146759 1.000158 188 188 188
+v 210.315582 -255.146759 -0.999841 188 188 188
+v 210.773315 -255.036865 1.000158 188 188 188
+v 210.315582 -255.146759 -0.999841 188 188 188
+v 210.773315 -255.036865 1.000158 188 188 188
+v 210.773315 -255.036865 -0.999841 188 188 188
+v 211.242645 -254.999939 1.000158 188 188 188
+v 210.773315 -255.036865 -0.999841 188 188 188
+v 211.242645 -254.999939 1.000158 188 188 188
+v 211.242645 -254.999939 -0.999841 188 188 188
+v 250.000000 -254.999939 -0.999841 188 188 188
+v 211.242645 -254.999939 -0.999841 188 188 188
+v 250.000000 254.999847 -1.000164 188 188 188
+v 250.000000 -254.999939 -0.999841 188 188 188
+v 250.000000 254.999847 -1.000164 188 188 188
+v 255.000000 249.999847 -1.000161 188 188 188
+v 250.000000 254.999847 -1.000164 188 188 188
+v 250.782166 254.938293 -1.000164 188 188 188
+v 250.000000 254.999847 -1.000164 188 188 188
+v 250.782166 254.938293 0.999835 188 188 188
+v 250.782166 254.938293 -1.000164 188 188 188
+v 251.545074 254.755127 0.999835 188 188 188
+v 250.782166 254.938293 -1.000164 188 188 188
+v 251.545074 254.755127 0.999835 188 188 188
+v 251.545074 254.755127 -1.000164 188 188 188
+v 252.269958 254.454895 0.999836 188 188 188
+v 251.545074 254.755127 -1.000164 188 188 188
+v 252.269958 254.454895 -1.000164 188 188 188
+v 255.000000 249.999847 -1.000161 188 188 188
+v 251.545074 254.755127 -1.000164 188 188 188
+v 255.000000 249.999847 -1.000161 188 188 188
+v 252.269958 254.454895 -1.000164 188 188 188
+v 254.938446 250.782043 -1.000161 188 188 188
+v 252.269958 254.454895 -1.000164 188 188 188
+v 254.755280 251.544952 -1.000162 188 188 188
+v 252.269958 254.454895 -1.000164 188 188 188
+v 254.455017 252.269806 -1.000162 188 188 188
+v 252.269958 254.454895 -1.000164 188 188 188
+v 252.938934 254.044952 -1.000163 188 188 188
+v 252.269958 254.454895 -1.000164 188 188 188
+v 252.938934 254.044952 0.999836 188 188 188
+v 252.938934 254.044952 -1.000163 188 188 188
+v 253.535522 253.535400 0.999836 188 188 188
+v 252.938934 254.044952 -1.000163 188 188 188
+v 253.535522 253.535400 -1.000163 188 188 188
+v 252.938934 254.044952 -1.000163 188 188 188
+v 254.045105 252.938782 -1.000163 188 188 188
+v 253.535522 253.535400 -1.000163 188 188 188
+v 254.045105 252.938782 0.999836 188 188 188
+v 254.045105 252.938782 -1.000163 188 188 188
+v 254.455017 252.269806 0.999837 188 188 188
+v 254.455017 252.269806 -1.000162 188 188 188
+v 254.045105 252.938782 -1.000163 188 188 188
+v 254.455017 252.269806 0.999837 188 188 188
+v 254.455017 252.269806 -1.000162 188 188 188
+v 254.755280 251.544952 0.999837 188 188 188
+v 254.755280 251.544952 -1.000162 188 188 188
+v 254.938446 250.782043 0.999838 188 188 188
+v 254.938446 250.782043 -1.000161 188 188 188
+v 253.535522 253.535400 0.999836 188 188 188
+v 254.045105 252.938782 0.999836 188 188 188
+v 253.535522 253.535400 -1.000163 188 188 188
+v 254.045105 252.938782 -1.000163 188 188 188
+v 254.455017 252.269806 -1.000162 188 188 188
+v 252.938934 254.044952 -1.000163 188 188 188
+v 254.755280 251.544952 0.999837 188 188 188
+v 254.755280 251.544952 -1.000162 188 188 188
+v 254.455017 252.269806 -1.000162 188 188 188
+v 254.938446 250.782043 0.999838 188 188 188
+v 254.938446 250.782043 -1.000161 188 188 188
+v 254.755280 251.544952 -1.000162 188 188 188
+v 255.000000 249.999847 0.999838 188 188 188
+v 255.000000 249.999847 -1.000161 188 188 188
+v 254.938446 250.782043 -1.000161 188 188 188
+v 255.000000 249.999847 0.999838 188 188 188
+v 255.000000 249.999847 -1.000161 188 188 188
+v 255.000000 -249.999939 1.000155 188 188 188
+v 255.000000 249.999847 -1.000161 188 188 188
+v 255.000000 -249.999939 1.000155 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 254.938446 -250.782104 1.000155 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 254.938446 -250.782104 -0.999844 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 254.455017 -252.269897 -0.999843 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 254.045105 -252.938873 -0.999843 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 253.535522 -253.535461 -0.999842 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 252.938934 -254.045013 -0.999842 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 252.269958 -254.454956 -0.999842 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 251.545074 -254.755219 -0.999842 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 250.782166 -254.938385 -0.999841 188 188 188
+v 250.000000 -254.999939 -0.999841 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 250.000000 -254.999939 -0.999841 188 188 188
+v 250.782166 -254.938385 -0.999841 188 188 188
+v 250.000000 -254.999939 1.000158 188 188 188
+v 250.782166 -254.938385 -0.999841 188 188 188
+v 254.755280 -251.545013 1.000155 188 188 188
+v 254.755280 -251.545013 -0.999844 188 188 188
+v 254.938446 -250.782104 -0.999844 188 188 188
+v 254.455017 -252.269897 1.000156 188 188 188
+v 254.455017 -252.269897 -0.999843 188 188 188
+v 254.755280 -251.545013 -0.999844 188 188 188
+v 254.455017 -252.269897 1.000156 188 188 188
+v 254.455017 -252.269897 -0.999843 188 188 188
+v 254.045105 -252.938873 1.000156 188 188 188
+v 254.045105 -252.938873 -0.999843 188 188 188
+v 253.535522 -253.535461 1.000157 188 188 188
+v 253.535522 -253.535461 -0.999842 188 188 188
+v 252.938934 -254.045013 1.000157 188 188 188
+v 252.938934 -254.045013 -0.999842 188 188 188
+v 252.269958 -254.454956 1.000157 188 188 188
+v 252.269958 -254.454956 -0.999842 188 188 188
+v 251.545074 -254.755219 1.000158 188 188 188
+v 250.782166 -254.938385 1.000158 188 188 188
+v 251.545074 -254.755219 -0.999842 188 188 188
+v 250.782166 -254.938385 1.000158 188 188 188
+v 250.782166 -254.938385 -0.999841 188 188 188
+v 251.545074 -254.755219 -0.999842 188 188 188
+v 251.545074 -254.755219 1.000158 188 188 188
+v 251.545074 -254.755219 -0.999842 188 188 188
+v 252.269958 -254.454956 -0.999842 188 188 188
+v 252.269958 -254.454956 1.000157 188 188 188
+v 252.269958 -254.454956 -0.999842 188 188 188
+v 252.938934 -254.045013 -0.999842 188 188 188
+v 252.938934 -254.045013 1.000157 188 188 188
+v 252.938934 -254.045013 -0.999842 188 188 188
+v 253.535522 -253.535461 -0.999842 188 188 188
+v 253.535522 -253.535461 1.000157 188 188 188
+v 253.535522 -253.535461 -0.999842 188 188 188
+v 254.045105 -252.938873 -0.999843 188 188 188
+v 254.045105 -252.938873 1.000156 188 188 188
+v 254.045105 -252.938873 -0.999843 188 188 188
+v 254.455017 -252.269897 -0.999843 188 188 188
+v 254.755280 -251.545013 -0.999844 188 188 188
+v 254.455017 -252.269897 -0.999843 188 188 188
+v 254.938446 -250.782104 -0.999844 188 188 188
+v 254.938446 -250.782104 1.000155 188 188 188
+v 254.755280 -251.545013 1.000155 188 188 188
+v 254.938446 -250.782104 -0.999844 188 188 188
+v 252.269958 254.454895 0.999836 188 188 188
+v 252.938934 254.044952 0.999836 188 188 188
+v 252.269958 254.454895 -1.000164 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -210.315598 -255.146759 1.000158 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -210.773331 -255.036865 -0.999841 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -255.000000 249.999847 -1.000161 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -254.938477 250.782043 -1.000161 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -254.755310 251.544952 -1.000162 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -254.455017 252.269806 -1.000162 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -254.045105 252.938782 -1.000163 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -253.535522 253.535400 -1.000163 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -252.938934 254.044952 -1.000163 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -252.269958 254.454895 -1.000164 188 188 188
+v -252.269958 254.454895 -1.000164 188 188 188
+v -251.545074 254.755127 -1.000164 188 188 188
+v -251.545074 254.755127 0.999835 188 188 188
+v -251.545074 254.755127 -1.000164 188 188 188
+v -251.545074 254.755127 -1.000164 188 188 188
+v -250.782166 254.938293 0.999835 188 188 188
+v -250.782166 254.938293 -1.000164 188 188 188
+v -210.773331 -255.036865 -0.999841 188 188 188
+v -210.773331 -255.036865 1.000158 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -210.773331 -255.036865 -0.999841 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -210.773331 -255.036865 -0.999841 188 188 188
+v -254.938477 -250.782104 -0.999844 188 188 188
+v -254.938477 -250.782104 -0.999844 188 188 188
+v -255.000000 -249.999939 -0.999845 188 188 188
+v -255.000000 -249.999939 1.000155 188 188 188
+v -255.000000 -249.999939 -0.999845 188 188 188
+v -255.000000 -249.999939 -0.999845 188 188 188
+v -255.000000 249.999847 0.999838 188 188 188
+v -255.000000 249.999847 -1.000161 188 188 188
+v -255.000000 249.999847 0.999838 188 188 188
+v -255.000000 249.999847 -1.000161 188 188 188
+v -252.938934 254.044952 -1.000163 188 188 188
+v -252.938934 254.044952 0.999836 188 188 188
+v -253.535522 253.535400 -1.000163 188 188 188
+v -253.535522 253.535400 0.999836 188 188 188
+v -254.045105 252.938782 -1.000163 188 188 188
+v -254.045105 252.938782 0.999836 188 188 188
+v -254.455017 252.269806 -1.000162 188 188 188
+v -254.455017 252.269806 0.999837 188 188 188
+v -254.755310 251.544952 -1.000162 188 188 188
+v -254.938477 250.782043 0.999838 188 188 188
+v -254.755310 251.544952 0.999837 188 188 188
+v -254.938477 250.782043 -1.000161 188 188 188
+v -255.000000 -249.999939 1.000155 188 188 188
+v -254.938477 -250.782104 -0.999844 188 188 188
+v -254.938477 -250.782104 1.000155 188 188 188
+v -254.938477 -250.782104 -0.999844 188 188 188
+v -254.938477 -250.782104 1.000155 188 188 188
+v -254.755310 -251.545013 -0.999844 188 188 188
+v -254.755310 -251.545013 1.000155 188 188 188
+v -254.755310 -251.545013 -0.999844 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -254.455017 -252.269897 -0.999843 188 188 188
+v -254.755310 -251.545013 -0.999844 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -254.455017 -252.269897 -0.999843 188 188 188
+v -254.045105 -252.938873 -0.999843 188 188 188
+v -254.455017 -252.269897 -0.999843 188 188 188
+v -254.455017 -252.269897 1.000156 188 188 188
+v -254.045105 -252.938873 -0.999843 188 188 188
+v -254.045105 -252.938873 1.000156 188 188 188
+v -254.045105 -252.938873 -0.999843 188 188 188
+v -254.045105 -252.938873 1.000156 188 188 188
+v -253.535522 -253.535461 -0.999842 188 188 188
+v -253.535522 -253.535461 1.000157 188 188 188
+v -253.535522 -253.535461 -0.999842 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -252.938934 -254.045013 -0.999842 188 188 188
+v -253.535522 -253.535461 -0.999842 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -252.938934 -254.045013 -0.999842 188 188 188
+v -252.269958 -254.454956 -0.999842 188 188 188
+v -252.938934 -254.045013 -0.999842 188 188 188
+v -252.938934 -254.045013 1.000157 188 188 188
+v -252.269958 -254.454956 -0.999842 188 188 188
+v -252.269958 -254.454956 1.000157 188 188 188
+v -252.269958 -254.454956 -0.999842 188 188 188
+v -252.269958 -254.454956 1.000157 188 188 188
+v -251.545074 -254.755219 -0.999842 188 188 188
+v -251.545074 -254.755219 1.000158 188 188 188
+v -251.545074 -254.755219 -0.999842 188 188 188
+v -250.782166 -254.938385 -0.999841 188 188 188
+v -251.545074 -254.755219 -0.999842 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -250.000000 -254.999939 -0.999841 188 188 188
+v -251.545074 -254.755219 -0.999842 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -250.000000 -254.999939 -0.999841 188 188 188
+v -250.000000 -254.999939 1.000158 188 188 188
+v -250.000000 -254.999939 -0.999841 188 188 188
+v -250.000000 -254.999939 -0.999841 188 188 188
+v -250.782166 -254.938385 1.000158 188 188 188
+v -250.782166 -254.938385 -0.999841 188 188 188
+v -250.782166 -254.938385 1.000158 188 188 188
+v -251.545074 -254.755219 1.000158 188 188 188
+v -250.782166 -254.938385 -0.999841 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -251.545074 -254.755219 -0.999842 188 188 188
+v -252.269958 -254.454956 -0.999842 188 188 188
+v -252.938934 -254.045013 1.000157 188 188 188
+v -253.535522 -253.535461 1.000157 188 188 188
+v -252.938934 -254.045013 -0.999842 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -253.535522 -253.535461 -0.999842 188 188 188
+v -254.045105 -252.938873 -0.999843 188 188 188
+v -254.455017 -252.269897 1.000156 188 188 188
+v -254.755310 -251.545013 1.000155 188 188 188
+v -254.455017 -252.269897 -0.999843 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -254.755310 -251.545013 -0.999844 188 188 188
+v -254.938477 -250.782104 -0.999844 188 188 188
+v -211.242645 -254.999939 1.000158 188 188 188
+v -250.000000 -254.999939 1.000158 188 188 188
+v -211.242645 -254.999939 -0.999841 188 188 188
+v -252.269958 254.454895 0.999836 188 188 188
+v -251.545074 254.755127 0.999835 188 188 188
+v -252.269958 254.454895 -1.000164 188 188 188
+v -252.938934 254.044952 -1.000163 188 188 188
+v -252.269958 254.454895 0.999836 188 188 188
+v -252.269958 254.454895 -1.000164 188 188 188
+v -253.535522 253.535400 -1.000163 188 188 188
+v -252.938934 254.044952 0.999836 188 188 188
+v -252.938934 254.044952 -1.000163 188 188 188
+v -254.045105 252.938782 -1.000163 188 188 188
+v -253.535522 253.535400 0.999836 188 188 188
+v -253.535522 253.535400 -1.000163 188 188 188
+v -254.455017 252.269806 -1.000162 188 188 188
+v -254.045105 252.938782 0.999836 188 188 188
+v -254.045105 252.938782 -1.000163 188 188 188
+v -254.755310 251.544952 -1.000162 188 188 188
+v -254.455017 252.269806 0.999837 188 188 188
+v -254.455017 252.269806 -1.000162 188 188 188
+v -254.938477 250.782043 -1.000161 188 188 188
+v -254.755310 251.544952 0.999837 188 188 188
+v -254.755310 251.544952 -1.000162 188 188 188
+v -255.000000 249.999847 -1.000161 188 188 188
+v -254.938477 250.782043 0.999838 188 188 188
+v -254.938477 250.782043 -1.000161 188 188 188
+v -210.773331 -255.036865 -0.999841 188 188 188
+v -255.000000 -249.999939 -0.999845 188 188 188
+v -255.000000 249.999847 -1.000161 188 188 188
+v -210.315598 -255.146759 1.000158 188 188 188
+v -210.773331 -255.036865 1.000158 188 188 188
+v -210.773331 -255.036865 -0.999841 188 188 188
+v -209.880661 -255.326935 1.000158 188 188 188
+v -209.880661 -255.326935 -0.999841 188 188 188
+v -209.479294 -255.572876 1.000158 188 188 188
+v -209.479294 -255.572876 -0.999841 188 188 188
+v -209.121323 -255.878632 1.000158 188 188 188
+v -200.878677 -264.121246 1.000164 188 188 188
+v -200.878677 -264.121246 -0.999836 188 188 188
+v -200.520706 -264.426910 -0.999835 188 188 188
+v -200.878677 -264.121246 -0.999836 188 188 188
+v -199.226669 -264.962982 -0.999835 188 188 188
+v -200.878677 -264.121246 -0.999836 188 188 188
+v -198.757370 -264.999908 -0.999835 188 188 188
+v -200.878677 -264.121246 -0.999836 188 188 188
+v -198.757370 -264.999908 -0.999835 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v 198.757355 -264.999908 -0.999835 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v 199.226654 -264.962982 -0.999835 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v 199.684418 -264.853058 -0.999835 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v 200.119324 -264.672943 -0.999835 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v 200.878662 -264.121246 -0.999836 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v 200.878662 -264.121246 1.000164 188 188 188
+v 200.878662 -264.121246 -0.999836 188 188 188
+v 200.520691 -264.426910 1.000164 188 188 188
+v 200.878662 -264.121246 -0.999836 188 188 188
+v 200.520691 -264.426910 1.000164 188 188 188
+v 200.520691 -264.426910 -0.999835 188 188 188
+v 200.119324 -264.672943 1.000164 188 188 188
+v 200.119324 -264.672943 -0.999835 188 188 188
+v 200.520691 -264.426910 -0.999835 188 188 188
+v 200.119324 -264.672943 1.000164 188 188 188
+v 200.119324 -264.672943 -0.999835 188 188 188
+v 199.684418 -264.853058 1.000164 188 188 188
+v 199.684418 -264.853058 -0.999835 188 188 188
+v 200.520691 -264.426910 -0.999835 188 188 188
+v 200.119324 -264.672943 -0.999835 188 188 188
+v 200.878662 -264.121246 -0.999836 188 188 188
+v 199.684418 -264.853058 1.000164 188 188 188
+v 199.684418 -264.853058 -0.999835 188 188 188
+v 200.119324 -264.672943 -0.999835 188 188 188
+v 199.226654 -264.962982 1.000164 188 188 188
+v 199.226654 -264.962982 -0.999835 188 188 188
+v 199.684418 -264.853058 -0.999835 188 188 188
+v 199.226654 -264.962982 1.000164 188 188 188
+v 199.226654 -264.962982 -0.999835 188 188 188
+v 198.757355 -264.999908 1.000164 188 188 188
+v 198.757355 -264.999908 -0.999835 188 188 188
+v 199.226654 -264.962982 -0.999835 188 188 188
+v 198.757355 -264.999908 -0.999835 188 188 188
+v -198.757370 -264.999908 -0.999835 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v -200.878677 -264.121246 -0.999836 188 188 188
+v 209.479279 -255.572876 -0.999841 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v 209.479279 -255.572876 -0.999841 188 188 188
+v -198.757370 -264.999908 -0.999835 188 188 188
+v -199.226669 -264.962982 -0.999835 188 188 188
+v -199.226669 -264.962982 -0.999835 188 188 188
+v -200.520706 -264.426910 -0.999835 188 188 188
+v -200.119339 -264.672943 -0.999835 188 188 188
+v -200.520706 -264.426910 -0.999835 188 188 188
+v -200.520706 -264.426910 1.000164 188 188 188
+v -200.119339 -264.672943 -0.999835 188 188 188
+v -200.119339 -264.672943 1.000164 188 188 188
+v -200.119339 -264.672943 -0.999835 188 188 188
+v -199.226669 -264.962982 -0.999835 188 188 188
+v -199.684418 -264.853058 -0.999835 188 188 188
+v -200.119339 -264.672943 -0.999835 188 188 188
+v -199.226669 -264.962982 -0.999835 188 188 188
+v -199.684418 -264.853058 -0.999835 188 188 188
+v -200.520706 -264.426910 1.000164 188 188 188
+v -200.878677 -264.121246 1.000164 188 188 188
+v -200.520706 -264.426910 -0.999835 188 188 188
+v -200.878677 -264.121246 -0.999836 188 188 188
+v -209.121323 -255.878632 1.000158 188 188 188
+v -209.121323 -255.878632 -0.999841 188 188 188
+v -199.684418 -264.853058 1.000164 188 188 188
+v -200.119339 -264.672943 1.000164 188 188 188
+v -199.684418 -264.853058 -0.999835 188 188 188
+v -199.226669 -264.962982 1.000164 188 188 188
+v -199.684418 -264.853058 1.000164 188 188 188
+v -199.226669 -264.962982 -0.999835 188 188 188
+v -198.757370 -264.999908 1.000164 188 188 188
+v -199.226669 -264.962982 1.000164 188 188 188
+v -198.757370 -264.999908 -0.999835 188 188 188
+v 198.757355 -264.999908 1.000164 188 188 188
+v -198.757370 -264.999908 1.000164 188 188 188
+v 198.757355 -264.999908 -0.999835 188 188 188
+v 200.878662 -264.121246 1.000164 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v 209.479279 -255.572876 1.000158 188 188 188
+v 209.121307 -255.878632 1.000158 188 188 188
+v 209.121307 -255.878632 -0.999841 188 188 188
+v 209.479279 -255.572876 1.000158 188 188 188
+v 209.479279 -255.572876 -0.999841 188 188 188
+v 251.545074 254.755127 -1.000164 188 188 188
+v 255.000000 249.999847 -1.000161 188 188 188
+v 250.782166 254.938293 -1.000164 188 188 188
+v 255.000000 -249.999939 -0.999845 188 188 188
+v 250.000000 -254.999939 -0.999841 188 188 188
+v 255.000000 249.999847 -1.000161 188 188 188
+v 250.000000 -254.999939 1.000158 188 188 188
+v 211.242645 -254.999939 1.000158 188 188 188
+v 250.000000 -254.999939 -0.999841 188 188 188
+v 211.242645 -254.999939 -0.999841 188 188 188
+v 210.773315 -255.036865 -0.999841 188 188 188
+v 250.000000 254.999847 -1.000164 188 188 188
+v 210.773315 -255.036865 -0.999841 188 188 188
+v 210.315582 -255.146759 -0.999841 188 188 188
+v 250.000000 254.999847 -1.000164 188 188 188
+v 210.315582 -255.146759 1.000158 188 188 188
+v 209.880646 -255.326935 1.000158 188 188 188
+v 209.880646 -255.326935 -0.999841 188 188 188
+v 209.880646 -255.326935 1.000158 188 188 188
+v 209.479279 -255.572876 -0.999841 188 188 188
+v 209.880646 -255.326935 -0.999841 188 188 188
+v -200.878677 -264.121246 -0.999836 188 188 188
+v -209.121323 -255.878632 -0.999841 188 188 188
+v 209.479279 -255.572876 -0.999841 188 188 188
+v -209.121323 -255.878632 -0.999841 188 188 188
+v -209.121323 -255.878632 1.000158 188 188 188
+v -209.479294 -255.572876 -0.999841 188 188 188
+v -209.479294 -255.572876 -0.999841 188 188 188
+v -209.479294 -255.572876 1.000158 188 188 188
+v -209.880661 -255.326935 -0.999841 188 188 188
+v -209.880661 -255.326935 -0.999841 188 188 188
+v -209.880661 -255.326935 1.000158 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -210.315598 -255.146759 -0.999841 188 188 188
+v -251.545074 254.755127 -1.000164 188 188 188
+v -250.782166 254.938293 -1.000164 188 188 188
+v -250.782166 254.938293 0.999835 188 188 188
+v -250.000000 254.999847 0.999835 188 188 188
+v -250.782166 254.938293 -1.000164 188 188 188
+v 250.000000 254.999847 -1.000164 188 188 188
+v 210.315582 -255.146759 -0.999841 188 188 188
+v -250.000000 254.999847 -1.000164 188 188 188
+v 250.000000 254.999847 0.999835 188 188 188
+v 250.782166 254.938293 0.999835 188 188 188
+v 250.000000 254.999847 -1.000164 188 188 188
+
+f 1 136 3
+f 2 137 138
+f 60 139 140
+f 52 141 142
+f 132 143 144
+f 131 145 146
+f 4 147 148
+f 129 149 150
+f 130 151 152
+f 135 153 154
+f 5 155 156
+f 6 157 158
+f 159 160 8
+f 7 161 162
+f 163 164 9
+f 34 165 166
+f 167 168 169
+f 127 170 171
+f 11 172 173
+f 10 174 175
+f 176 12 177
+f 178 14 179
+f 180 13 181
+f 182 15 183
+f 184 185 186
+f 27 187 188
+f 16 189 190
+f 25 191 192
+f 18 193 194
+f 17 195 196
+f 197 19 198
+f 199 20 200
+f 201 23 202
+f 21 203 204
+f 205 22 206
+f 207 208 209
+f 210 24 211
+f 212 26 213
+f 214 28 215
+f 216 217 218
+f 219 220 221
+f 222 223 224
+f 225 226 227
+f 228 229 230
+f 231 29 232
+f 233 33 234
+f 235 30 236
+f 237 31 238
+f 239 32 240
+f 241 49 242
+f 243 48 244
+f 245 47 246
+f 247 43 248
+f 249 45 250
+f 251 46 252
+f 253 254 255
+f 35 256 257
+f 44 258 259
+f 37 36 50
+f 260 261 262
+f 263 264 265
+f 266 38 267
+f 268 39 269
+f 270 40 271
+f 272 41 273
+f 274 42 275
+f 276 277 278
+f 279 280 281
+f 282 283 284
+f 285 286 287
+f 288 289 290
+f 291 292 293
+f 294 295 296
+f 297 298 299
+f 300 301 302
+f 303 304 305
+f 133 51 306
+f 307 308 96
+f 309 310 67
+f 311 312 53
+f 313 314 54
+f 315 316 95
+f 317 318 55
+f 319 320 56
+f 321 322 94
+f 323 324 57
+f 325 326 134
+f 327 58 328
+f 329 59 330
+f 331 332 333
+f 61 62 88
+f 334 335 336
+f 337 338 63
+f 339 340 97
+f 341 64 342
+f 343 65 344
+f 345 346 347
+f 348 66 349
+f 68 69 350
+f 70 351 352
+f 71 353 354
+f 72 355 356
+f 73 357 358
+f 359 360 361
+f 74 362 363
+f 93 364 365
+f 75 366 367
+f 77 368 369
+f 370 371 372
+f 373 92 374
+f 375 76 376
+f 78 377 378
+f 91 379 380
+f 90 381 382
+f 79 383 384
+f 385 386 387
+f 388 80 389
+f 390 89 391
+f 82 392 393
+f 81 394 395
+f 87 396 397
+f 83 398 399
+f 84 400 401
+f 402 403 404
+f 405 85 406
+f 407 86 408
+f 409 410 411
+f 412 413 414
+f 415 416 417
+f 418 419 420
+f 421 422 423
+f 424 425 426
+f 427 428 429
+f 430 431 432
+f 433 434 435
+f 436 437 438
+f 439 440 441
+f 442 443 444
+f 445 446 447
+f 448 449 450
+f 451 452 453
+f 454 455 456
+f 457 458 459
+f 460 461 462
+f 98 463 464
+f 99 465 466
+f 100 467 122
+f 117 468 469
+f 120 470 471
+f 101 472 473
+f 474 475 102
+f 124 476 477
+f 111 478 479
+f 109 480 481
+f 107 482 483
+f 103 484 485
+f 125 486 487
+f 488 104 489
+f 490 105 491
+f 492 106 493
+f 494 495 496
+f 497 108 498
+f 499 110 500
+f 501 502 503
+f 504 505 506
+f 507 508 509
+f 510 112 511
+f 512 513 514
+f 515 113 516
+f 517 518 519
+f 114 520 521
+f 522 123 523
+f 524 115 525
+f 526 116 527
+f 118 528 529
+f 119 530 531
+f 532 533 534
+f 535 121 536
+f 537 538 539
+f 540 541 542
+f 543 544 545
+f 546 547 548
+f 549 550 551
+f 552 553 554
+f 126 555 556
+f 557 558 559
+f 128 560 561
+f 562 563 564
+f 565 566 567
+f 568 569 570
+f 571 572 573
+f 574 575 576
+f 577 578 579
+f 580 581 582
+f 583 584 585
+f 586 587 588
+f 589 590 591
+f 592 593 594
+f 595 596 597
+f 598 599 600
+f 601 602 603
+f 604 605 606
+
+vt 0.088207 0.017916
+vt 0.901653 0.018726
+vt 0.987765 0.981673
+vt 0.987183 0.983051
+vt 0.988120 0.980224
+vt 0.988239 0.978737
+vt 0.986389 0.984322
+vt 0.985402 0.985456
+vt 0.984246 0.986425
+vt 0.982949 0.987204
+vt 0.978551 0.019005
+vt 0.980066 0.019122
+vt 0.981545 0.019470
+vt 0.903450 0.019005
+vt 0.982949 0.020040
+vt 0.984246 0.020819
+vt 0.985402 0.021788
+vt 0.986389 0.022922
+vt 0.987183 0.024193
+vt 0.987765 0.025571
+vt 0.988120 0.027020
+vt 0.902540 0.018934
+vt 0.988239 0.028507
+vt 0.981545 0.987774
+vt 0.980066 0.988122
+vt 0.978551 0.988239
+vt 0.900810 0.018383
+vt 0.900033 0.017916
+vt 0.899339 0.017335
+vt 0.087429 0.018383
+vt 0.086586 0.018726
+vt 0.006695 0.987774
+vt 0.000000 0.978737
+vt 0.008173 0.988122
+vt 0.009689 0.988239
+vt 0.084790 0.019005
+vt 0.085699 0.018934
+vt 0.000119 0.980224
+vt 0.005290 0.987204
+vt 0.000474 0.981673
+vt 0.001056 0.983051
+vt 0.003994 0.986425
+vt 0.001850 0.984322
+vt 0.002838 0.985456
+vt 0.008173 0.019122
+vt 0.009689 0.019005
+vt 0.000000 0.028507
+vt 0.006695 0.019470
+vt 0.005290 0.020040
+vt 0.003994 0.020819
+vt 0.002838 0.021788
+vt 0.001850 0.022922
+vt 0.001056 0.024193
+vt 0.000474 0.025571
+vt 0.000119 0.027020
+vt 0.883367 0.001670
+vt 0.088900 0.017335
+vt 0.879257 0.000000
+vt 0.108983 0.000000
+vt 0.108073 0.000070
+vt 0.107186 0.000279
+vt 0.106344 0.000621
+vt 0.104872 0.001670
+vt 0.880166 0.000070
+vt 0.881053 0.000279
+vt 0.881896 0.000621
+vt 0.882674 0.001089
+vt 0.105566 0.001089
+
+usemtl Mat_0
+f 5/2 24/3 22/4
+f 5/2 26/5 24/3
+f 5/2 28/6 26/5
+f 5/2 22/4 21/7
+f 5/2 21/7 19/8
+f 5/2 19/8 17/9
+f 5/2 17/9 13/10
+f 35/11 44/12 42/13
+f 7/14 35/11 42/13
+f 7/14 42/13 41/15
+f 7/14 41/15 40/16
+f 7/14 40/16 39/17
+f 7/14 39/17 38/18
+f 7/14 38/18 36/19
+f 7/14 36/19 37/20
+f 7/14 37/20 30/21
+f 6/22 30/21 29/23
+f 6/22 29/23 28/6
+f 5/2 13/10 12/24
+f 5/2 12/24 10/25
+f 5/2 10/25 1/26
+f 128/27 5/2 1/26
+f 114/28 128/27 1/26
+f 126/29 114/28 1/26
+f 98/1 126/29 1/26
+f 133/30 98/1 1/26
+f 51/31 133/30 1/26
+f 58/32 65/33 59/34
+f 59/34 65/33 2/35
+f 65/33 62/36 2/35
+f 62/36 61/37 2/35
+f 61/37 51/31 2/35
+f 66/38 65/33 69/39
+f 73/40 66/38 69/39
+f 72/41 73/40 69/39
+f 68/42 72/41 69/39
+f 71/43 72/41 68/42
+f 70/44 71/43 68/42
+f 86/45 85/46 64/47
+f 87/48 86/45 64/47
+f 85/46 62/36 64/47
+f 82/49 87/48 64/47
+f 89/50 82/49 64/47
+f 90/51 89/50 64/47
+f 78/52 90/51 64/47
+f 76/53 78/52 64/47
+f 75/54 76/53 74/55
+f 74/55 76/53 64/47
+f 64/47 62/36 65/33
+f 69/39 65/33 58/32
+f 125/56 126/29 98/1
+f 99/57 125/56 98/1
+f 112/58 125/56 99/57
+f 113/59 112/58 99/57
+f 123/60 113/59 99/57
+f 121/61 123/60 99/57
+f 118/62 121/61 99/57
+f 100/63 118/62 99/57
+f 110/64 108/65 106/66
+f 110/64 106/66 104/67
+f 110/64 104/67 125/56
+f 116/68 118/62 100/63
+f 112/58 110/64 125/56
+f 6/22 7/14 30/21
+f 5/2 6/22 28/6
+f 51/31 1/26 2/35
+
diff --git a/resources/meshes/arjunpro300_platform.STL b/resources/meshes/arjunpro300_platform.STL
new file mode 100644
index 0000000000..47d7165fee
--- /dev/null
+++ b/resources/meshes/arjunpro300_platform.STL
Binary files differ
diff --git a/resources/meshes/cremaker_platform_200.obj b/resources/meshes/cremaker_platform_200.obj
new file mode 100644
index 0000000000..72dd507c04
--- /dev/null
+++ b/resources/meshes/cremaker_platform_200.obj
@@ -0,0 +1,1870 @@
+# Blender v2.83.4 OBJ File: ''
+# www.blender.org
+mtllib cremaker_platform_220.mtl
+o Cremaker_Bed_For_Cura_200
+v -1.890215 15.706850 0.000001
+v 6.767278 20.737940 0.000001
+v -5.775456 19.937870 0.000001
+v -6.085020 19.717300 0.000001
+v -6.206591 19.597380 0.000001
+v -6.306021 19.472389 0.000001
+v -6.404158 19.299610 0.000001
+v -6.462938 19.122049 0.000001
+v -6.482364 18.942129 0.000001
+v -6.462439 18.762270 0.000001
+v -6.403163 18.584881 0.000001
+v -6.304539 18.412380 0.000001
+v -6.204750 18.287661 0.000001
+v -6.082830 18.168079 0.000001
+v -5.772599 17.948380 0.000001
+v -0.169347 23.195789 0.000001
+v 2.503686 23.199570 0.000001
+v 0.015533 23.290100 0.000001
+v 2.318549 23.293369 0.000001
+v 0.215548 23.368071 0.000001
+v 2.118320 23.370770 0.000001
+v 0.445728 23.434031 0.000001
+v 1.887968 23.436081 0.000001
+v 0.686610 23.480829 0.000001
+v 1.646967 23.482201 0.000001
+v 1.166741 23.516991 0.000001
+v 8.977601 -31.682760 -0.000001
+v 15.463810 -27.894529 -0.000001
+v 9.126501 -31.581169 -0.000001
+v 9.251994 -31.471161 -0.000001
+v 9.354342 -31.353979 -0.000001
+v 9.435792 -31.228849 -0.000001
+v 9.497616 -31.095310 -0.000001
+v 9.540466 -30.954081 -0.000001
+v -2.474875 -23.004829 -0.000001
+v -3.486624 -14.063000 -0.000001
+v -2.653391 -22.608061 -0.000001
+v -2.900688 -22.237030 -0.000001
+v -3.052730 -22.062059 -0.000001
+v -3.221965 -21.899099 -0.000001
+v -3.400519 -21.755520 -0.000001
+v 27.762609 18.434891 0.000001
+v 1.302336 3.393586 0.000000
+v 3.475899 -0.694668 -0.000000
+v 29.570330 14.423920 0.000001
+v 29.843470 14.553590 0.000001
+v 30.123699 14.616530 0.000001
+v 30.402599 14.617650 0.000001
+v 30.671749 14.561850 0.000001
+v 30.922720 14.454050 0.000001
+v 31.147100 14.299160 0.000001
+v -26.719641 17.714270 0.000001
+v -30.969570 14.542240 0.000001
+v -30.693640 14.614890 0.000001
+v -30.396780 14.615500 0.000001
+v -30.088209 14.539130 0.000001
+v -3.517677 -0.801377 -0.000000
+v -1.435565 3.392086 0.000000
+v 2.106637 -33.573120 -0.000001
+v 2.133908 -3.020771 -0.000000
+v -2.272171 -2.965736 -0.000000
+v -2.298659 -12.744290 -0.000001
+v -2.325924 -13.082530 -0.000001
+v -2.402435 -13.372600 -0.000001
+v -2.523336 -13.613500 -0.000001
+v -2.683776 -13.804260 -0.000001
+v -2.878902 -13.943900 -0.000001
+v -3.064503 -14.020530 -0.000001
+v -3.268013 -14.060420 -0.000001
+v -2.366918 -23.413799 -0.000001
+v -2.331298 -23.821421 -0.000001
+v -2.538111 -33.729561 -0.000001
+v 2.114818 -33.739540 -0.000001
+v -100.000000 100.000000 0.000004
+v -100.000000 -100.000000 -0.000004
+v -31.579510 13.941270 0.000001
+v -31.421730 14.200490 0.000001
+v -27.414490 20.492630 0.000001
+v -27.228689 20.743530 0.000001
+v -26.998230 20.967470 0.000001
+v -26.723070 21.158649 0.000001
+v -3.097852 34.888088 0.000002
+v -3.058702 34.910809 0.000002
+v -2.760384 35.064079 0.000002
+v -2.510572 35.174419 0.000002
+v -2.024714 35.353069 0.000002
+v -1.582107 35.478981 0.000002
+v -1.080716 35.581661 0.000002
+v -0.754755 35.626011 0.000002
+v -0.411912 35.653530 0.000002
+v 0.068701 35.658569 0.000002
+v 0.572670 35.620548 0.000002
+v 1.096192 35.531940 0.000002
+v 1.635463 35.385231 0.000002
+v 2.186679 35.172890 0.000002
+v 2.746035 34.887402 0.000002
+v 100.000000 -100.000000 -0.000004
+v 20.371010 -25.084841 -0.000001
+v 15.581860 -27.858259 -0.000001
+v 3.623141 -34.783489 -0.000002
+v 3.518881 -34.835880 -0.000002
+v 3.407471 -34.868351 -0.000002
+v 3.280597 -34.881981 -0.000002
+v -3.206139 -34.884621 -0.000002
+v -3.407758 -34.910000 -0.000002
+v -3.633279 -34.894100 -0.000002
+v -3.809279 -34.856091 -0.000002
+v -3.996799 -34.794971 -0.000002
+v -4.214165 -34.700981 -0.000002
+v -4.444436 -34.577541 -0.000002
+v -31.037670 -19.223930 -0.000001
+v -31.293150 -19.038361 -0.000001
+v -31.520281 -18.799589 -0.000001
+v -31.710920 -18.522110 -0.000001
+v -31.856939 -18.220461 -0.000001
+v -31.950171 -17.909149 -0.000001
+v -31.982500 -17.602690 -0.000001
+v -31.712339 13.270770 0.000001
+v -31.679449 13.629710 0.000001
+v 100.000000 100.000000 0.000004
+v 2.771456 34.872719 0.000002
+v 7.464162 32.163349 0.000001
+v 15.253320 27.666241 0.000001
+v 27.735189 20.459780 0.000001
+v 27.760611 20.445101 0.000001
+v 27.895399 20.354771 0.000001
+v 28.012421 20.250940 0.000001
+v 28.113310 20.133301 0.000001
+v 28.195770 20.005659 0.000001
+v -31.215340 14.402460 0.000001
+v -26.995159 17.904921 0.000001
+v -27.226070 18.128401 0.000001
+v -27.412350 18.378941 0.000001
+v -27.554010 18.650749 0.000001
+v -27.623430 18.840151 0.000001
+v -27.673161 19.034679 0.000001
+v -27.703360 19.234209 0.000001
+v -27.713560 19.435499 0.000001
+v -27.703770 19.636801 0.000001
+v -27.673969 19.836390 0.000001
+v -27.624630 20.031019 0.000001
+v -27.555599 20.220551 0.000001
+v 0.976425 3.232473 0.000000
+v 0.636600 3.117338 0.000000
+v 0.287486 3.048182 0.000000
+v -0.066293 3.025005 0.000000
+v -3.345686 -0.911826 -0.000000
+v 3.139616 -0.917790 -0.000000
+v -0.420113 3.047807 0.000000
+v -0.769347 3.116588 0.000000
+v -1.109373 3.231348 0.000000
+v -3.594514 -21.626280 -0.000001
+v -12.938980 -15.140140 -0.000001
+v -12.905790 -15.448240 -0.000001
+v -12.810930 -15.763330 -0.000001
+v -12.664030 -16.069201 -0.000001
+v -12.474700 -16.349609 -0.000001
+v -12.252560 -16.588350 -0.000001
+v -12.007230 -16.769199 -0.000001
+v -2.563875 -34.102112 -0.000001
+v -2.601945 -34.265640 -0.000001
+v 2.260306 -34.209869 -0.000001
+v 2.192190 -34.059601 -0.000001
+v 2.142445 -33.897968 -0.000001
+v -3.658804 -14.040120 -0.000001
+v -3.836713 -13.995700 -0.000001
+v -4.204983 -13.841300 -0.000001
+v -12.922880 -9.899136 -0.000000
+v -11.984960 -9.349529 -0.000000
+v -12.721910 -9.347394 -0.000000
+v -12.789020 -9.421888 -0.000000
+v -12.845920 -9.517392 -0.000000
+v -12.888060 -9.630308 -0.000000
+v 9.573477 -21.213511 -0.000001
+v 9.573477 -30.649120 -0.000001
+v 15.034420 -27.542681 -0.000001
+v 15.034420 -18.158489 -0.000001
+v 10.169160 -20.177891 -0.000001
+v 9.977448 -20.309700 -0.000001
+v 9.825815 -20.460020 -0.000001
+v 9.711927 -20.627211 -0.000001
+v 9.649883 -20.762680 -0.000001
+v 9.606781 -20.906019 -0.000001
+v 15.003990 -18.001150 -0.000001
+v 14.921680 -17.866699 -0.000001
+v 14.800500 -17.765039 -0.000001
+v 14.333690 -17.755440 -0.000001
+v 15.340730 -27.890249 -0.000001
+v 15.224440 -27.849171 -0.000001
+v 15.126750 -27.775049 -0.000001
+v 15.059470 -27.671631 -0.000001
+v 28.304729 19.730980 0.000001
+v 28.341249 19.440559 0.000001
+v 31.482401 13.867730 0.000001
+v 31.576481 13.601010 0.000001
+v 31.610291 13.306840 0.000001
+v 31.698460 -17.754620 -0.000001
+v 31.678040 -18.025631 -0.000001
+v 31.618450 -18.258989 -0.000001
+v 31.522221 -18.459169 -0.000001
+v 31.427509 -18.590231 -0.000001
+v 31.314671 -18.707041 -0.000001
+v 31.184740 -18.811489 -0.000001
+v 31.038811 -18.905470 -0.000001
+v 26.822330 -21.359131 -0.000001
+v 26.698940 -21.396070 -0.000001
+v 20.966869 -24.051201 -0.000001
+v 20.956520 -24.269871 -0.000001
+v 20.904810 -24.472601 -0.000001
+v 20.816071 -24.657419 -0.000001
+v 20.727819 -24.783110 -0.000001
+v 20.623011 -24.896790 -0.000001
+v 31.336460 14.102080 0.000001
+v 28.305321 19.150070 0.000001
+v 28.196911 18.875179 0.000001
+v 28.114700 18.747379 0.000001
+v 28.014050 18.629551 0.000001
+v 27.897230 18.525490 0.000001
+v 20.966869 -14.603510 -0.000001
+v 26.274229 -21.043930 -0.000001
+v 26.274229 -11.652350 -0.000001
+v 21.562111 -13.571100 -0.000001
+v 21.370380 -13.705390 -0.000001
+v 21.218809 -13.856010 -0.000001
+v 21.105040 -14.022040 -0.000001
+v 21.043091 -14.156130 -0.000001
+v 21.000080 -14.298000 -0.000001
+v 26.574249 -21.392080 -0.000001
+v 26.458860 -21.351021 -0.000001
+v 26.363340 -21.276751 -0.000001
+v 26.298269 -21.173100 -0.000001
+v 2.856881 -1.162039 -0.000000
+v -3.183302 -1.040252 -0.000000
+v -3.017757 -1.198799 -0.000000
+v 2.624997 -1.426512 -0.000000
+v -2.865824 -1.373666 -0.000000
+v 2.441266 -1.710312 -0.000000
+v -2.616956 -1.744172 -0.000000
+v 2.344197 -1.909804 -0.000000
+v -2.429858 -2.145653 -0.000000
+v 2.266531 -2.117218 -0.000000
+v 2.207469 -2.332289 -0.000000
+v -2.312331 -2.559157 -0.000000
+v 2.166210 -2.554749 -0.000000
+v -2.282093 -2.764497 -0.000000
+v 2.434501 -34.463181 -0.000002
+v -2.656312 -34.412819 -0.000002
+v 2.651738 -34.663250 -0.000002
+v -2.753508 -34.582069 -0.000002
+v -2.878132 -34.718540 -0.000002
+v 2.895620 -34.802711 -0.000002
+v -3.029303 -34.820099 -0.000002
+v 3.149746 -34.874161 -0.000002
+v -12.348020 -9.227452 -0.000000
+v -12.458250 -9.229397 -0.000000
+v -12.230520 -9.246961 -0.000000
+v -12.555370 -9.250595 -0.000000
+v -12.643580 -9.290076 -0.000000
+v 14.493510 -17.699530 -0.000001
+v 14.653450 -17.706020 -0.000001
+v 25.891661 -11.178740 -0.000000
+v 25.733061 -11.186380 -0.000000
+v 26.037319 -11.223560 -0.000000
+v 25.573780 -11.248510 -0.000000
+v 26.157789 -11.318790 -0.000000
+v 26.240850 -11.462400 -0.000001
+v -30.088209 14.539130 -0.999999
+v -3.517677 -0.801377 -1.000000
+v -2.429858 -2.145653 -1.000000
+v -2.312331 -2.559157 -1.000000
+v -2.282093 -2.764497 -1.000000
+v -2.272171 -2.965736 -1.000000
+v -2.616956 -1.744172 -1.000000
+v -2.865824 -1.373666 -1.000000
+v -3.017757 -1.198799 -1.000000
+v -3.183302 -1.040252 -1.000000
+v -3.345686 -0.911826 -1.000000
+v -2.298659 -12.744290 -1.000001
+v -3.268013 -14.060420 -1.000001
+v -3.486624 -14.063000 -1.000001
+v -3.658804 -14.040120 -1.000001
+v -3.836713 -13.995700 -1.000001
+v -4.204983 -13.841300 -1.000001
+v -3.064503 -14.020530 -1.000001
+v -2.878902 -13.943900 -1.000001
+v -2.683776 -13.804260 -1.000001
+v -2.523336 -13.613500 -1.000001
+v -2.402435 -13.372600 -1.000001
+v -2.325924 -13.082530 -1.000001
+v -11.984960 -9.349529 -1.000000
+v -12.721910 -9.347394 -1.000000
+v -12.789020 -9.421888 -1.000000
+v -12.845920 -9.517392 -1.000000
+v -12.888060 -9.630308 -1.000000
+v -12.922880 -9.899136 -1.000000
+v -12.643580 -9.290076 -1.000000
+v -12.555370 -9.250595 -1.000000
+v -12.458250 -9.229397 -1.000000
+v -12.348020 -9.227452 -1.000000
+v -12.230520 -9.246961 -1.000000
+v -12.938980 -15.140140 -1.000001
+v -12.474700 -16.349609 -1.000001
+v -12.252560 -16.588350 -1.000001
+v -12.007230 -16.769199 -1.000001
+v -12.664030 -16.069201 -1.000001
+v -12.810930 -15.763330 -1.000001
+v -12.905790 -15.448240 -1.000001
+v -3.594514 -21.626280 -1.000001
+v -2.653391 -22.608061 -1.000001
+v -2.474875 -23.004829 -1.000001
+v -2.366918 -23.413799 -1.000001
+v -2.331298 -23.821421 -1.000001
+v -2.900688 -22.237030 -1.000001
+v -3.052730 -22.062059 -1.000001
+v -3.221965 -21.899099 -1.000001
+v -3.400519 -21.755520 -1.000001
+v -2.538111 -33.729561 -1.000001
+v -3.407758 -34.910000 -1.000002
+v -3.633279 -34.894100 -1.000002
+v -3.809279 -34.856091 -1.000002
+v -3.996799 -34.794971 -1.000002
+v -4.214165 -34.700981 -1.000002
+v -4.444436 -34.577541 -1.000002
+v -3.206139 -34.884621 -1.000002
+v -3.029303 -34.820099 -1.000002
+v -2.878132 -34.718540 -1.000002
+v -2.753508 -34.582069 -1.000002
+v -2.656312 -34.412819 -1.000002
+v -2.601945 -34.265640 -1.000002
+v -2.563875 -34.102112 -1.000002
+v -31.037670 -19.223930 -1.000001
+v -31.856939 -18.220461 -1.000001
+v -31.950171 -17.909149 -1.000001
+v -31.982500 -17.602690 -1.000001
+v -31.710920 -18.522110 -1.000001
+v -31.520281 -18.799589 -1.000001
+v -31.293150 -19.038361 -1.000001
+v -31.712339 13.270770 -0.999999
+v -30.969570 14.542240 -0.999999
+v -30.693640 14.614890 -0.999999
+v -30.396780 14.615500 -0.999999
+v -31.215340 14.402460 -0.999999
+v -31.421730 14.200490 -0.999999
+v -31.579510 13.941270 -0.999999
+v -31.679449 13.629710 -0.999999
+v 2.503686 23.199570 -0.999999
+v 6.767278 20.737940 -0.999999
+v 2.318549 23.293369 -0.999999
+v 2.118320 23.370770 -0.999999
+v 1.887968 23.436081 -0.999999
+v 1.646967 23.482201 -0.999999
+v 1.166741 23.516991 -0.999999
+v 0.686610 23.480829 -0.999999
+v 0.445728 23.434031 -0.999999
+v 0.215548 23.368071 -0.999999
+v 0.015533 23.290100 -0.999999
+v -0.169347 23.195789 -0.999999
+v -5.775456 19.937870 -0.999999
+v -6.085020 19.717300 -0.999999
+v -6.206591 19.597380 -0.999999
+v -6.306021 19.472389 -0.999999
+v -6.404158 19.299610 -0.999999
+v -6.462938 19.122049 -0.999999
+v -6.482364 18.942129 -0.999999
+v -6.462439 18.762270 -0.999999
+v -6.403163 18.584881 -0.999999
+v -6.304539 18.412380 -0.999999
+v -6.204750 18.287661 -0.999999
+v -6.082830 18.168079 -0.999999
+v -5.772599 17.948380 -0.999999
+v -1.890215 15.706850 -0.999999
+v 1.302336 3.393586 -1.000000
+v 27.762609 18.434891 -0.999999
+v 0.976425 3.232473 -1.000000
+v 0.636600 3.117338 -1.000000
+v 0.287486 3.048182 -1.000000
+v -0.066293 3.025005 -1.000000
+v -0.420113 3.047807 -1.000000
+v -0.769347 3.116588 -1.000000
+v -1.109373 3.231348 -1.000000
+v -1.435565 3.392086 -1.000000
+v -26.719641 17.714270 -0.999999
+v -26.995159 17.904921 -0.999999
+v -27.226070 18.128401 -0.999999
+v -27.412350 18.378941 -0.999999
+v -27.554010 18.650749 -0.999999
+v -27.623430 18.840151 -0.999999
+v -27.673161 19.034679 -0.999999
+v -27.703360 19.234209 -0.999999
+v -27.713560 19.435499 -0.999999
+v -27.703770 19.636801 -0.999999
+v -27.673969 19.836390 -0.999999
+v -27.624630 20.031019 -0.999999
+v -27.555599 20.220551 -0.999999
+v -27.414490 20.492630 -0.999999
+v -27.228689 20.743530 -0.999999
+v -26.998230 20.967470 -0.999999
+v -26.723070 21.158649 -0.999999
+v -3.097852 34.888088 -0.999998
+v -3.058702 34.910809 -0.999998
+v -2.760384 35.064079 -0.999998
+v -2.510572 35.174419 -0.999998
+v -2.024714 35.353069 -0.999998
+v -1.582107 35.478981 -0.999998
+v -1.080716 35.581661 -0.999998
+v -0.754755 35.626011 -0.999998
+v -0.411912 35.653530 -0.999998
+v 0.068701 35.658569 -0.999998
+v 0.572670 35.620548 -0.999998
+v 1.096192 35.531940 -0.999998
+v 1.635463 35.385231 -0.999998
+v 2.186679 35.172890 -0.999998
+v 2.746035 34.887402 -0.999998
+v 2.771456 34.872719 -0.999998
+v 7.464162 32.163349 -0.999999
+v 15.253320 27.666241 -0.999999
+v 27.735189 20.459780 -0.999999
+v 27.760611 20.445101 -0.999999
+v 27.895399 20.354771 -0.999999
+v 28.012421 20.250940 -0.999999
+v 28.113310 20.133301 -0.999999
+v 28.195770 20.005659 -0.999999
+v 28.304729 19.730980 -0.999999
+v 28.341249 19.440559 -0.999999
+v 28.305321 19.150070 -0.999999
+v 28.196911 18.875179 -0.999999
+v 28.114700 18.747379 -0.999999
+v 28.014050 18.629551 -0.999999
+v 27.897230 18.525490 -0.999999
+v 31.698460 -17.754620 -1.000001
+v 31.678040 -18.025631 -1.000001
+v 31.618450 -18.258989 -1.000001
+v 31.522221 -18.459169 -1.000001
+v 31.427509 -18.590231 -1.000001
+v 31.314671 -18.707041 -1.000001
+v 31.184740 -18.811489 -1.000001
+v 31.038811 -18.905470 -1.000001
+v 26.822330 -21.359131 -1.000001
+v 26.698940 -21.396070 -1.000001
+v 26.574249 -21.392080 -1.000001
+v 26.458860 -21.351021 -1.000001
+v 26.363340 -21.276751 -1.000001
+v 26.298269 -21.173100 -1.000001
+v 26.274229 -21.043930 -1.000001
+v 26.274229 -11.652350 -1.000000
+v 26.240850 -11.462400 -1.000000
+v 26.157789 -11.318790 -1.000000
+v 26.037319 -11.223560 -1.000000
+v 25.891661 -11.178740 -1.000000
+v 25.733061 -11.186380 -1.000000
+v 25.573780 -11.248510 -1.000000
+v 21.562111 -13.571100 -1.000001
+v 21.370380 -13.705390 -1.000001
+v 21.218809 -13.856010 -1.000001
+v 21.105040 -14.022040 -1.000001
+v 21.043091 -14.156130 -1.000001
+v 21.000080 -14.298000 -1.000001
+v 20.966869 -14.603510 -1.000001
+v 20.966869 -24.051201 -1.000001
+v 20.956520 -24.269871 -1.000001
+v 20.904810 -24.472601 -1.000001
+v 20.816071 -24.657419 -1.000001
+v 20.727819 -24.783110 -1.000001
+v 20.623011 -24.896790 -1.000001
+v 20.371010 -25.084841 -1.000001
+v 15.581860 -27.858259 -1.000001
+v 15.463810 -27.894529 -1.000001
+v 15.340730 -27.890249 -1.000001
+v 15.224440 -27.849171 -1.000001
+v 15.126750 -27.775049 -1.000001
+v 15.059470 -27.671631 -1.000001
+v 15.034420 -27.542681 -1.000001
+v 15.034420 -18.158489 -1.000001
+v 15.003990 -18.001150 -1.000001
+v 14.921680 -17.866699 -1.000001
+v 14.800500 -17.765039 -1.000001
+v 14.653450 -17.706020 -1.000001
+v 14.493510 -17.699530 -1.000001
+v 14.333690 -17.755440 -1.000001
+v 10.169160 -20.177891 -1.000001
+v 9.977448 -20.309700 -1.000001
+v 9.825815 -20.460020 -1.000001
+v 9.711927 -20.627211 -1.000001
+v 9.649883 -20.762680 -1.000001
+v 9.606781 -20.906019 -1.000001
+v 9.573477 -21.213511 -1.000001
+v 9.573477 -30.649120 -1.000001
+v 9.540466 -30.954081 -1.000001
+v 9.497616 -31.095310 -1.000001
+v 9.435792 -31.228849 -1.000001
+v 9.354342 -31.353979 -1.000001
+v 9.251994 -31.471161 -1.000001
+v 9.126501 -31.581169 -1.000001
+v 8.977601 -31.682760 -1.000001
+v 3.623141 -34.783489 -1.000002
+v 3.518881 -34.835880 -1.000002
+v 3.407471 -34.868351 -1.000002
+v 3.280597 -34.881981 -1.000002
+v 3.149746 -34.874161 -1.000002
+v 2.895620 -34.802711 -1.000002
+v 2.651738 -34.663250 -1.000002
+v 2.434501 -34.463181 -1.000002
+v 2.260306 -34.209869 -1.000002
+v 2.192190 -34.059601 -1.000001
+v 2.142445 -33.897968 -1.000001
+v 2.114818 -33.739540 -1.000001
+v 2.106637 -33.573120 -1.000001
+v 2.133908 -3.020771 -1.000000
+v 2.166210 -2.554749 -1.000000
+v 2.207469 -2.332289 -1.000000
+v 2.266531 -2.117218 -1.000000
+v 2.344197 -1.909804 -1.000000
+v 2.441266 -1.710312 -1.000000
+v 2.624997 -1.426512 -1.000000
+v 2.856881 -1.162039 -1.000000
+v 3.139616 -0.917790 -1.000000
+v 3.475899 -0.694668 -1.000000
+v 29.570330 14.423920 -0.999999
+v 29.843470 14.553590 -0.999999
+v 30.123699 14.616530 -0.999999
+v 30.402599 14.617650 -0.999999
+v 30.671749 14.561850 -0.999999
+v 30.922720 14.454050 -0.999999
+v 31.147100 14.299160 -0.999999
+v 31.336460 14.102080 -0.999999
+v 31.482401 13.867730 -0.999999
+v 31.576481 13.601010 -0.999999
+v 31.610291 13.306840 -0.999999
+v -100.000000 -100.000000 -3.000004
+v -100.000000 100.000000 -2.999996
+v 100.000000 -100.000000 -3.000004
+v 100.000000 100.000000 -2.999996
+vn 0.0000 -0.0000 1.0000
+vn -0.5000 -0.8660 0.0000
+vn -0.9064 -0.4224 0.0000
+vn -0.9619 -0.2734 0.0000
+vn -0.9893 -0.1457 0.0000
+vn -0.9988 -0.0492 0.0000
+vn -0.8301 -0.5576 0.0000
+vn -0.7549 -0.6559 0.0000
+vn -0.6917 -0.7222 0.0000
+vn -0.6203 -0.7843 0.0000
+vn -0.5404 -0.8414 0.0000
+vn -1.0000 0.0027 0.0000
+vn -0.1924 0.9813 0.0000
+vn -0.0118 0.9999 0.0000
+vn 0.1317 0.9913 0.0000
+vn 0.2422 0.9702 0.0000
+vn 0.3866 0.9222 0.0000
+vn 0.3867 0.9222 0.0000
+vn -0.3816 0.9243 0.0000
+vn -0.5820 0.8132 0.0000
+vn -0.7653 0.6437 0.0000
+vn -0.8938 0.4486 0.0000
+vn -0.9669 0.2550 0.0000
+vn -0.9968 0.0803 0.0000
+vn 0.5000 0.8660 0.0000
+vn -0.5905 0.8070 0.0000
+vn -0.7430 0.6693 0.0000
+vn -0.8591 0.5118 0.0000
+vn -0.9369 0.3497 0.0000
+vn -0.9369 0.3496 0.0000
+vn -0.9917 0.1285 0.0000
+vn -0.4085 0.9127 0.0000
+vn -0.2132 0.9770 0.0000
+vn -0.0176 0.9998 0.0000
+vn 0.1638 0.9865 0.0000
+vn 0.3854 0.9227 0.0000
+vn -1.0000 0.0031 0.0000
+vn -0.8288 -0.5596 0.0000
+vn -0.7321 -0.6812 0.0000
+vn -0.5934 -0.8049 0.0000
+vn -0.9014 -0.4329 0.0000
+vn -0.9575 -0.2883 0.0000
+vn -0.9942 -0.1071 0.0000
+vn -0.8321 -0.5546 0.0000
+vn -0.9119 -0.4103 0.0000
+vn -0.9669 -0.2552 0.0000
+vn -0.9962 -0.0871 0.0000
+vn -0.7548 -0.6559 0.0000
+vn -0.6936 -0.7203 0.0000
+vn -0.6267 -0.7793 0.0000
+vn -0.5544 -0.8322 0.0000
+vn -0.9998 0.0209 0.0000
+vn -0.1249 0.9922 0.0000
+vn 0.0703 0.9975 0.0000
+vn 0.2111 0.9775 0.0000
+vn 0.3099 0.9508 0.0000
+vn 0.3969 0.9179 0.0000
+vn 0.4725 0.8814 0.0000
+vn -0.3428 0.9394 0.0000
+vn -0.5577 0.8301 0.0000
+vn -0.7384 0.6743 0.0000
+vn -0.8672 0.4980 0.0000
+vn -0.9380 0.3465 0.0000
+vn -0.9740 0.2267 0.0000
+vn -0.9976 0.0690 0.0000
+vn 0.9001 0.4357 0.0000
+vn 0.9580 0.2869 0.0000
+vn 0.9945 0.1049 0.0000
+vn 0.8242 0.5663 0.0000
+vn 0.7245 0.6892 0.0000
+vn 0.5877 0.8091 0.0000
+vn 1.0000 -0.0088 0.0000
+vn 0.4944 -0.8692 0.0000
+vn 0.2546 -0.9670 0.0000
+vn 0.0021 -1.0000 0.0000
+vn -0.2402 -0.9707 0.0000
+vn 0.6994 -0.7147 0.0000
+vn 0.8542 -0.5199 0.0000
+vn 0.9522 -0.3054 0.0000
+vn 0.9958 -0.0913 0.0000
+vn 0.9958 -0.0912 0.0000
+vn 0.4520 0.8920 0.0000
+vn 0.3606 0.9327 0.0000
+vn 0.2728 0.9621 0.0000
+vn 0.1880 0.9822 0.0000
+vn 0.0723 0.9974 0.0000
+vn -0.0751 0.9972 0.0000
+vn -0.1907 0.9816 0.0000
+vn -0.2755 0.9613 0.0000
+vn -0.3632 0.9317 0.0000
+vn -0.4544 0.8908 0.0000
+vn -0.5025 0.8646 0.0000
+vn -0.5803 0.8144 0.0000
+vn -0.7023 0.7119 0.0000
+vn -0.7826 0.6225 0.0000
+vn -0.8695 0.4939 0.0000
+vn -0.9493 0.3143 0.0000
+vn -0.9942 0.1073 0.0000
+vn -0.9939 -0.1101 0.0000
+vn -0.9484 -0.3169 0.0000
+vn -0.8681 -0.4963 0.0000
+vn -0.7808 -0.6248 0.0000
+vn -0.7808 -0.6247 0.0000
+vn -0.7002 -0.7139 0.0000
+vn -0.5779 -0.8161 0.0000
+vn 0.5024 -0.8646 0.0000
+vn -0.4942 0.8694 0.0000
+vn -0.4432 0.8964 0.0000
+vn -0.3209 0.9471 0.0000
+vn -0.1943 0.9809 0.0000
+vn -0.0654 0.9979 0.0000
+vn 0.0643 0.9979 0.0000
+vn 0.1932 0.9812 0.0000
+vn 0.3198 0.9475 0.0000
+vn 0.4420 0.8970 0.0000
+vn 0.4929 0.8701 0.0000
+vn 0.5690 0.8223 0.0000
+vn 0.6954 0.7186 0.0000
+vn 0.8025 0.5967 0.0000
+vn 0.8868 0.4622 0.0000
+vn 0.9389 0.3441 0.0000
+vn 0.9688 0.2477 0.0000
+vn 0.9887 0.1496 0.0000
+vn 0.9887 0.1497 0.0000
+vn 0.9987 0.0506 0.0000
+vn 0.9988 -0.0486 0.0000
+vn 0.9890 -0.1477 0.0000
+vn 0.9693 -0.2457 0.0000
+vn 0.9396 -0.3422 0.0000
+vn 0.8877 -0.4604 0.0000
+vn 0.8036 -0.5951 0.0000
+vn 0.6969 -0.7172 0.0000
+vn 0.5706 -0.8212 0.0000
+vn 0.5025 -0.8646 0.0000
+vn 0.5019 -0.8649 0.0000
+vn 0.4570 -0.8895 0.0000
+vn 0.4040 -0.9147 0.0000
+vn 0.3451 -0.9386 0.0000
+vn 0.2736 -0.9618 0.0000
+vn 0.2006 -0.9797 0.0000
+vn 0.1348 -0.9909 0.0000
+vn 0.0800 -0.9968 0.0000
+vn 0.0105 -0.9999 0.0000
+vn -0.0752 -0.9972 0.0000
+vn -0.1669 -0.9860 0.0000
+vn -0.2625 -0.9649 0.0000
+vn -0.3595 -0.9332 0.0000
+vn -0.4546 -0.8907 0.0000
+vn -0.5001 -0.8659 0.0000
+vn -0.5002 -0.8659 0.0000
+vn -0.5001 -0.8660 0.0000
+vn -0.5567 -0.8307 0.0000
+vn -0.6637 -0.7480 0.0000
+vn -0.7591 -0.6510 0.0000
+vn -0.8400 -0.5427 0.0000
+vn -0.8400 -0.5426 0.0000
+vn -0.9295 -0.3687 0.0000
+vn -0.9922 -0.1248 0.0000
+vn -0.9924 0.1228 0.0000
+vn -0.9924 0.1227 0.0000
+vn -0.9303 0.3669 0.0000
+vn -0.8410 0.5410 0.0000
+vn -0.7604 0.6495 0.0000
+vn -0.6651 0.7467 0.0000
+vn -0.6652 0.7467 0.0000
+vn -0.5583 0.8296 0.0000
+vn -0.9972 0.0751 0.0000
+vn -0.9689 0.2474 0.0000
+vn -0.9013 0.4333 0.0000
+vn -0.8105 0.5857 0.0000
+vn -0.7192 0.6948 0.0000
+vn -0.6265 0.7794 0.0000
+vn -0.5414 0.8407 0.0000
+vn -0.5415 0.8407 0.0000
+vn -0.5030 0.8643 0.0000
+vn -0.2868 0.9580 0.0000
+vn 0.0320 0.9995 0.0000
+vn 0.3352 0.9421 0.0000
+vn 0.6138 0.7894 0.0000
+vn 0.8469 0.5317 0.0000
+vn 0.9831 0.1830 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.9849 0.1731 0.0000
+vn 0.8656 0.5007 0.0000
+vn 0.6201 0.7845 0.0000
+vn 0.2941 0.9558 0.0000
+vn -0.0481 0.9988 0.0000
+vn -0.3634 0.9316 0.0000
+vn -0.5010 0.8654 0.0000
+vn -0.5737 0.8191 0.0000
+vn -0.7049 0.7093 0.0000
+vn -0.8249 0.5653 0.0000
+vn -0.9078 0.4194 0.0000
+vn -0.9570 0.2901 0.0000
+vn -0.9941 0.1081 0.0000
+vn -1.0000 0.0000 0.0000
+vn -0.9989 0.0473 0.0000
+vn -0.9690 0.2472 0.0000
+vn -0.9690 0.2471 0.0000
+vn -0.9015 0.4328 0.0000
+vn -0.8184 0.5746 0.0000
+vn -0.7352 0.6778 0.0000
+vn -0.5981 0.8014 0.0000
+vn -0.5011 0.8654 0.0000
+vn -0.2937 0.9559 0.0000
+vn 0.0348 0.9994 0.0000
+vn 0.3331 0.9429 0.0000
+vn 0.6044 0.7966 0.0000
+vn 0.6045 0.7966 0.0000
+vn 0.8382 0.5453 0.0000
+vn 0.9817 0.1907 0.0000
+vn 0.9816 0.1907 0.0000
+vn 0.9818 0.1899 0.0000
+vn 0.8529 0.5221 0.0000
+vn 0.6427 0.7661 0.0000
+vn 0.3725 0.9280 0.0000
+vn 0.0405 0.9992 0.0000
+vn -0.3302 0.9439 0.0000
+vn -0.5028 0.8644 0.0000
+vn -0.5666 0.8240 0.0000
+vn -0.7040 0.7102 0.0000
+vn -0.8265 0.5630 0.0000
+vn -0.9092 0.4164 0.0000
+vn -0.9576 0.2880 0.0000
+vn -0.9942 0.1077 0.0000
+vn -0.9942 0.1076 0.0000
+vn -0.9569 0.2903 0.0000
+vn -0.9075 0.4201 0.0000
+vn -0.8381 0.5455 0.0000
+vn -0.7532 0.6578 0.0000
+vn -0.6592 0.7520 0.0000
+vn -0.5636 0.8260 0.0000
+vn -0.5636 0.8261 0.0000
+vn -0.4490 0.8935 0.0000
+vn -0.2798 0.9601 0.0000
+vn -0.1068 0.9943 0.0000
+vn 0.0597 0.9982 0.0000
+vn 0.2707 0.9627 0.0000
+vn 0.4964 0.8681 0.0000
+vn 0.6774 0.7356 0.0000
+vn 0.8240 0.5666 0.0000
+vn 0.9108 0.4129 0.0000
+vn 0.9558 0.2942 0.0000
+vn 0.9558 0.2941 0.0000
+vn 0.9851 0.1718 0.0000
+vn 0.9988 0.0491 0.0000
+vn 1.0000 -0.0009 0.0000
+vn 0.9976 -0.0691 0.0000
+vn 0.9832 -0.1824 0.0000
+vn 0.9643 -0.2648 0.0000
+vn 0.9365 -0.3507 0.0000
+vn 0.8992 -0.4375 0.0000
+vn 0.8394 -0.5435 0.0000
+vn 0.8394 -0.5434 0.0000
+vn 0.7519 -0.6593 0.0000
+vn 0.6537 -0.7567 0.0000
+vn 0.5529 -0.8333 0.0000
+vn 0.5013 -0.8653 0.0000
+vn 0.4289 -0.9034 0.0000
+vn 0.2191 -0.9757 0.0000
+vn 0.0040 -1.0000 0.0000
+vn -0.2030 -0.9792 0.0000
+vn -0.3947 -0.9188 0.0000
+vn -0.5681 -0.8230 0.0000
+vn -0.7211 -0.6928 0.0000
+vn -0.8489 -0.5286 0.0000
+vn -0.9431 -0.3326 0.0000
+vn -0.9935 -0.1142 0.0000
+vn -1.0000 -0.0028 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 1.0000 0.0000
+usemtl None
+s off
+f 1//1 2//1 3//1
+f 1//1 3//1 4//1
+f 1//1 4//1 5//1
+f 1//1 5//1 6//1
+f 1//1 6//1 7//1
+f 1//1 7//1 8//1
+f 1//1 8//1 9//1
+f 1//1 9//1 10//1
+f 1//1 10//1 11//1
+f 1//1 11//1 12//1
+f 1//1 12//1 13//1
+f 1//1 13//1 14//1
+f 1//1 14//1 15//1
+f 3//1 2//1 16//1
+f 16//1 2//1 17//1
+f 16//1 17//1 18//1
+f 18//1 17//1 19//1
+f 18//1 19//1 20//1
+f 20//1 19//1 21//1
+f 20//1 21//1 22//1
+f 22//1 21//1 23//1
+f 22//1 23//1 24//1
+f 24//1 23//1 25//1
+f 24//1 25//1 26//1
+f 27//1 28//1 29//1
+f 29//1 28//1 30//1
+f 30//1 28//1 31//1
+f 31//1 28//1 32//1
+f 32//1 28//1 33//1
+f 33//1 28//1 34//1
+f 35//1 36//1 37//1
+f 37//1 36//1 38//1
+f 38//1 36//1 39//1
+f 39//1 36//1 40//1
+f 40//1 36//1 41//1
+f 42//1 43//1 44//1
+f 42//1 44//1 45//1
+f 42//1 45//1 46//1
+f 42//1 46//1 47//1
+f 42//1 47//1 48//1
+f 42//1 48//1 49//1
+f 42//1 49//1 50//1
+f 42//1 50//1 51//1
+f 52//1 53//1 54//1
+f 52//1 54//1 55//1
+f 52//1 55//1 56//1
+f 52//1 56//1 57//1
+f 52//1 57//1 58//1
+f 59//1 60//1 61//1
+f 59//1 61//1 62//1
+f 59//1 62//1 63//1
+f 59//1 63//1 64//1
+f 59//1 64//1 65//1
+f 59//1 65//1 66//1
+f 59//1 66//1 67//1
+f 59//1 67//1 68//1
+f 59//1 68//1 69//1
+f 59//1 69//1 36//1
+f 59//1 36//1 35//1
+f 59//1 35//1 70//1
+f 59//1 70//1 71//1
+f 59//1 71//1 72//1
+f 59//1 72//1 73//1
+f 74//1 75//1 76//1
+f 74//1 76//1 77//1
+f 74//1 77//1 78//1
+f 74//1 78//1 79//1
+f 74//1 79//1 80//1
+f 74//1 80//1 81//1
+f 74//1 81//1 82//1
+f 74//1 82//1 83//1
+f 74//1 83//1 84//1
+f 74//1 84//1 85//1
+f 74//1 85//1 86//1
+f 74//1 86//1 87//1
+f 74//1 87//1 88//1
+f 74//1 88//1 89//1
+f 74//1 89//1 90//1
+f 74//1 90//1 91//1
+f 74//1 91//1 92//1
+f 74//1 92//1 93//1
+f 74//1 93//1 94//1
+f 74//1 94//1 95//1
+f 74//1 95//1 96//1
+f 75//1 97//1 98//1
+f 75//1 98//1 99//1
+f 75//1 99//1 28//1
+f 75//1 28//1 27//1
+f 75//1 27//1 100//1
+f 75//1 100//1 101//1
+f 75//1 101//1 102//1
+f 75//1 102//1 103//1
+f 75//1 103//1 104//1
+f 75//1 104//1 105//1
+f 75//1 105//1 106//1
+f 75//1 106//1 107//1
+f 75//1 107//1 108//1
+f 75//1 108//1 109//1
+f 75//1 109//1 110//1
+f 75//1 110//1 111//1
+f 75//1 111//1 112//1
+f 75//1 112//1 113//1
+f 75//1 113//1 114//1
+f 75//1 114//1 115//1
+f 75//1 115//1 116//1
+f 75//1 116//1 117//1
+f 75//1 117//1 118//1
+f 75//1 118//1 119//1
+f 75//1 119//1 76//1
+f 120//1 74//1 96//1
+f 120//1 96//1 121//1
+f 120//1 121//1 122//1
+f 120//1 122//1 123//1
+f 120//1 123//1 124//1
+f 120//1 124//1 125//1
+f 120//1 125//1 126//1
+f 120//1 126//1 127//1
+f 120//1 127//1 128//1
+f 120//1 128//1 129//1
+f 120//1 129//1 97//1
+f 130//1 53//1 52//1
+f 130//1 52//1 131//1
+f 130//1 131//1 132//1
+f 130//1 132//1 133//1
+f 130//1 133//1 134//1
+f 77//1 130//1 134//1
+f 77//1 134//1 135//1
+f 77//1 135//1 136//1
+f 77//1 136//1 137//1
+f 77//1 137//1 138//1
+f 77//1 138//1 139//1
+f 77//1 139//1 140//1
+f 77//1 140//1 141//1
+f 77//1 141//1 142//1
+f 77//1 142//1 78//1
+f 44//1 43//1 143//1
+f 44//1 143//1 144//1
+f 44//1 144//1 145//1
+f 44//1 145//1 146//1
+f 57//1 147//1 148//1
+f 57//1 148//1 44//1
+f 57//1 44//1 146//1
+f 57//1 146//1 149//1
+f 57//1 149//1 150//1
+f 57//1 150//1 151//1
+f 57//1 151//1 58//1
+f 152//1 41//1 36//1
+f 152//1 36//1 153//1
+f 152//1 153//1 154//1
+f 152//1 154//1 155//1
+f 152//1 155//1 156//1
+f 152//1 156//1 157//1
+f 152//1 157//1 158//1
+f 152//1 158//1 159//1
+f 160//1 161//1 162//1
+f 160//1 162//1 163//1
+f 160//1 163//1 164//1
+f 160//1 164//1 73//1
+f 160//1 73//1 72//1
+f 153//1 36//1 165//1
+f 153//1 165//1 166//1
+f 153//1 166//1 167//1
+f 153//1 167//1 168//1
+f 167//1 169//1 170//1
+f 167//1 170//1 171//1
+f 167//1 171//1 172//1
+f 167//1 172//1 173//1
+f 167//1 173//1 168//1
+f 174//1 175//1 176//1
+f 174//1 176//1 177//1
+f 174//1 177//1 178//1
+f 174//1 178//1 179//1
+f 174//1 179//1 180//1
+f 174//1 180//1 181//1
+f 174//1 181//1 182//1
+f 174//1 182//1 183//1
+f 178//1 177//1 184//1
+f 178//1 184//1 185//1
+f 178//1 185//1 186//1
+f 178//1 186//1 187//1
+f 175//1 34//1 28//1
+f 175//1 28//1 188//1
+f 175//1 188//1 189//1
+f 175//1 189//1 190//1
+f 175//1 190//1 191//1
+f 175//1 191//1 176//1
+f 97//1 129//1 192//1
+f 97//1 192//1 193//1
+f 97//1 193//1 194//1
+f 97//1 194//1 195//1
+f 97//1 195//1 196//1
+f 97//1 196//1 197//1
+f 97//1 197//1 198//1
+f 97//1 198//1 199//1
+f 97//1 199//1 200//1
+f 97//1 200//1 201//1
+f 97//1 201//1 202//1
+f 97//1 202//1 203//1
+f 97//1 203//1 204//1
+f 97//1 204//1 205//1
+f 97//1 205//1 206//1
+f 97//1 206//1 207//1
+f 97//1 207//1 208//1
+f 97//1 208//1 209//1
+f 97//1 209//1 210//1
+f 97//1 210//1 211//1
+f 97//1 211//1 212//1
+f 97//1 212//1 98//1
+f 213//1 194//1 193//1
+f 213//1 193//1 214//1
+f 213//1 214//1 215//1
+f 213//1 215//1 216//1
+f 213//1 216//1 217//1
+f 213//1 217//1 218//1
+f 213//1 218//1 42//1
+f 213//1 42//1 51//1
+f 219//1 207//1 220//1
+f 219//1 220//1 221//1
+f 219//1 221//1 222//1
+f 219//1 222//1 223//1
+f 219//1 223//1 224//1
+f 219//1 224//1 225//1
+f 219//1 225//1 226//1
+f 219//1 226//1 227//1
+f 207//1 206//1 228//1
+f 207//1 228//1 229//1
+f 207//1 229//1 230//1
+f 207//1 230//1 231//1
+f 207//1 231//1 220//1
+f 148//1 147//1 232//1
+f 232//1 147//1 233//1
+f 232//1 233//1 234//1
+f 232//1 234//1 235//1
+f 235//1 234//1 236//1
+f 235//1 236//1 237//1
+f 237//1 236//1 238//1
+f 237//1 238//1 239//1
+f 239//1 238//1 240//1
+f 239//1 240//1 241//1
+f 241//1 240//1 242//1
+f 242//1 240//1 243//1
+f 242//1 243//1 244//1
+f 244//1 243//1 60//1
+f 60//1 243//1 245//1
+f 60//1 245//1 61//1
+f 162//1 161//1 246//1
+f 246//1 161//1 247//1
+f 246//1 247//1 248//1
+f 248//1 247//1 249//1
+f 248//1 249//1 250//1
+f 248//1 250//1 251//1
+f 251//1 250//1 252//1
+f 251//1 252//1 253//1
+f 253//1 252//1 104//1
+f 253//1 104//1 103//1
+f 254//1 255//1 256//1
+f 256//1 255//1 257//1
+f 256//1 257//1 169//1
+f 169//1 257//1 258//1
+f 169//1 258//1 170//1
+f 187//1 186//1 259//1
+f 259//1 186//1 260//1
+f 261//1 262//1 263//1
+f 263//1 262//1 264//1
+f 263//1 264//1 265//1
+f 265//1 264//1 222//1
+f 265//1 222//1 266//1
+f 266//1 222//1 221//1
+f 267//2 268//2 56//2
+f 56//2 268//2 57//2
+f 238//3 269//3 240//3
+f 240//4 269//4 270//4
+f 240//4 270//4 243//4
+f 243//5 270//5 271//5
+f 243//5 271//5 245//5
+f 245//6 271//6 272//6
+f 245//6 272//6 61//6
+f 269//3 238//3 273//3
+f 273//7 238//7 236//7
+f 273//7 236//7 274//7
+f 274//8 236//8 234//8
+f 274//8 234//8 275//8
+f 275//9 234//9 233//9
+f 275//9 233//9 276//9
+f 276//10 233//10 147//10
+f 276//10 147//10 277//10
+f 277//11 147//11 57//11
+f 277//11 57//11 268//11
+f 272//12 278//12 61//12
+f 61//12 278//12 62//12
+f 68//13 279//13 69//13
+f 69//14 279//14 280//14
+f 69//14 280//14 36//14
+f 36//15 280//15 281//15
+f 36//15 281//15 165//15
+f 165//16 281//16 282//16
+f 165//16 282//16 166//16
+f 166//17 282//17 283//17
+f 166//18 283//18 167//18
+f 279//13 68//13 284//13
+f 284//19 68//19 67//19
+f 284//19 67//19 285//19
+f 285//20 67//20 66//20
+f 285//20 66//20 286//20
+f 286//21 66//21 65//21
+f 286//21 65//21 287//21
+f 287//22 65//22 64//22
+f 287//22 64//22 288//22
+f 288//23 64//23 63//23
+f 288//23 63//23 289//23
+f 289//24 63//24 62//24
+f 289//24 62//24 278//24
+f 283//25 290//25 167//25
+f 167//25 290//25 169//25
+f 258//26 291//26 170//26
+f 170//27 291//27 292//27
+f 170//27 292//27 171//27
+f 171//28 292//28 293//28
+f 171//28 293//28 172//28
+f 172//29 293//29 294//29
+f 172//30 294//30 173//30
+f 173//31 294//31 295//31
+f 173//31 295//31 168//31
+f 291//26 258//26 296//26
+f 296//32 258//32 257//32
+f 296//32 257//32 297//32
+f 297//33 257//33 255//33
+f 297//33 255//33 298//33
+f 298//34 255//34 254//34
+f 298//34 254//34 299//34
+f 299//35 254//35 256//35
+f 299//35 256//35 300//35
+f 300//36 256//36 169//36
+f 300//36 169//36 290//36
+f 295//37 301//37 168//37
+f 168//37 301//37 153//37
+f 156//38 302//38 157//38
+f 157//39 302//39 303//39
+f 157//39 303//39 158//39
+f 158//40 303//40 304//40
+f 158//40 304//40 159//40
+f 302//38 156//38 305//38
+f 305//41 156//41 155//41
+f 305//41 155//41 306//41
+f 306//42 155//42 154//42
+f 306//42 154//42 307//42
+f 307//43 154//43 153//43
+f 307//43 153//43 301//43
+f 304//2 308//2 159//2
+f 159//2 308//2 152//2
+f 38//44 309//44 37//44
+f 37//45 309//45 310//45
+f 37//45 310//45 35//45
+f 35//46 310//46 311//46
+f 35//46 311//46 70//46
+f 70//47 311//47 312//47
+f 70//47 312//47 71//47
+f 309//44 38//44 313//44
+f 313//48 38//48 39//48
+f 313//48 39//48 314//48
+f 314//49 39//49 40//49
+f 314//49 40//49 315//49
+f 315//50 40//50 41//50
+f 315//50 41//50 316//50
+f 316//51 41//51 152//51
+f 316//51 152//51 308//51
+f 312//52 317//52 71//52
+f 71//52 317//52 72//52
+f 104//53 318//53 105//53
+f 105//54 318//54 319//54
+f 105//54 319//54 106//54
+f 106//55 319//55 320//55
+f 106//55 320//55 107//55
+f 107//56 320//56 321//56
+f 107//56 321//56 108//56
+f 108//57 321//57 322//57
+f 108//57 322//57 109//57
+f 109//58 322//58 323//58
+f 109//58 323//58 110//58
+f 318//53 104//53 324//53
+f 324//59 104//59 252//59
+f 324//59 252//59 325//59
+f 325//60 252//60 250//60
+f 325//60 250//60 326//60
+f 326//61 250//61 249//61
+f 326//61 249//61 327//61
+f 327//62 249//62 247//62
+f 327//62 247//62 328//62
+f 328//63 247//63 161//63
+f 328//63 161//63 329//63
+f 329//64 161//64 160//64
+f 329//64 160//64 330//64
+f 330//65 160//65 72//65
+f 330//65 72//65 317//65
+f 323//25 331//25 110//25
+f 110//25 331//25 111//25
+f 114//66 332//66 115//66
+f 115//67 332//67 333//67
+f 115//67 333//67 116//67
+f 116//68 333//68 334//68
+f 116//68 334//68 117//68
+f 332//66 114//66 335//66
+f 335//69 114//69 113//69
+f 335//69 113//69 336//69
+f 336//70 113//70 112//70
+f 336//70 112//70 337//70
+f 337//71 112//71 111//71
+f 337//71 111//71 331//71
+f 334//72 338//72 117//72
+f 117//72 338//72 118//72
+f 130//73 339//73 53//73
+f 53//74 339//74 340//74
+f 53//74 340//74 54//74
+f 54//75 340//75 341//75
+f 54//75 341//75 55//75
+f 55//76 341//76 267//76
+f 55//76 267//76 56//76
+f 339//73 130//73 342//73
+f 342//77 130//77 77//77
+f 342//77 77//77 343//77
+f 343//78 77//78 76//78
+f 343//78 76//78 344//78
+f 344//79 76//79 119//79
+f 344//79 119//79 345//79
+f 345//80 119//80 118//80
+f 345//81 118//81 338//81
+f 346//25 17//25 347//25
+f 347//25 17//25 2//25
+f 17//82 346//82 19//82
+f 19//82 346//82 348//82
+f 19//83 348//83 21//83
+f 21//83 348//83 349//83
+f 21//84 349//84 23//84
+f 23//84 349//84 350//84
+f 23//85 350//85 25//85
+f 25//85 350//85 351//85
+f 25//86 351//86 26//86
+f 26//86 351//86 352//86
+f 26//87 352//87 24//87
+f 24//87 352//87 353//87
+f 24//88 353//88 22//88
+f 22//88 353//88 354//88
+f 22//89 354//89 20//89
+f 20//89 354//89 355//89
+f 20//90 355//90 18//90
+f 18//90 355//90 356//90
+f 18//91 356//91 16//91
+f 16//91 356//91 357//91
+f 358//92 3//92 357//92
+f 357//92 3//92 16//92
+f 3//93 358//93 4//93
+f 4//93 358//93 359//93
+f 4//94 359//94 5//94
+f 5//94 359//94 360//94
+f 5//95 360//95 6//95
+f 6//95 360//95 361//95
+f 6//96 361//96 7//96
+f 7//96 361//96 362//96
+f 7//97 362//97 8//97
+f 8//97 362//97 363//97
+f 8//98 363//98 9//98
+f 9//98 363//98 364//98
+f 9//99 364//99 10//99
+f 10//99 364//99 365//99
+f 10//100 365//100 11//100
+f 11//100 365//100 366//100
+f 11//101 366//101 12//101
+f 12//101 366//101 367//101
+f 12//102 367//102 13//102
+f 13//103 367//103 368//103
+f 13//104 368//104 14//104
+f 14//104 368//104 369//104
+f 14//105 369//105 15//105
+f 15//105 369//105 370//105
+f 371//2 1//2 370//2
+f 370//2 1//2 15//2
+f 347//106 2//106 371//106
+f 371//106 2//106 1//106
+f 372//107 43//107 373//107
+f 373//107 43//107 42//107
+f 43//108 372//108 143//108
+f 143//108 372//108 374//108
+f 143//109 374//109 144//109
+f 144//109 374//109 375//109
+f 144//110 375//110 145//110
+f 145//110 375//110 376//110
+f 145//111 376//111 146//111
+f 146//111 376//111 377//111
+f 146//112 377//112 149//112
+f 149//112 377//112 378//112
+f 149//113 378//113 150//113
+f 150//113 378//113 379//113
+f 150//114 379//114 151//114
+f 151//114 379//114 380//114
+f 151//115 380//115 58//115
+f 58//115 380//115 381//115
+f 382//116 52//116 381//116
+f 381//116 52//116 58//116
+f 52//117 382//117 131//117
+f 131//117 382//117 383//117
+f 131//118 383//118 132//118
+f 132//118 383//118 384//118
+f 132//119 384//119 133//119
+f 133//119 384//119 385//119
+f 133//120 385//120 134//120
+f 134//120 385//120 386//120
+f 134//121 386//121 135//121
+f 135//121 386//121 387//121
+f 135//122 387//122 136//122
+f 136//122 387//122 388//122
+f 136//123 388//123 137//123
+f 137//124 388//124 389//124
+f 137//125 389//125 138//125
+f 138//125 389//125 390//125
+f 138//126 390//126 139//126
+f 139//126 390//126 391//126
+f 139//127 391//127 140//127
+f 140//127 391//127 392//127
+f 140//128 392//128 141//128
+f 141//128 392//128 393//128
+f 141//129 393//129 142//129
+f 142//129 393//129 394//129
+f 142//130 394//130 78//130
+f 78//130 394//130 395//130
+f 78//131 395//131 79//131
+f 79//131 395//131 396//131
+f 79//132 396//132 80//132
+f 80//132 396//132 397//132
+f 80//133 397//133 81//133
+f 81//133 397//133 398//133
+f 399//134 82//134 398//134
+f 398//134 82//134 81//134
+f 83//135 82//135 400//135
+f 400//135 82//135 399//135
+f 83//136 400//136 84//136
+f 84//136 400//136 401//136
+f 84//137 401//137 85//137
+f 85//137 401//137 402//137
+f 85//138 402//138 86//138
+f 86//138 402//138 403//138
+f 86//139 403//139 87//139
+f 87//139 403//139 404//139
+f 87//140 404//140 88//140
+f 88//140 404//140 405//140
+f 88//141 405//141 89//141
+f 89//141 405//141 406//141
+f 89//142 406//142 90//142
+f 90//142 406//142 407//142
+f 90//143 407//143 91//143
+f 91//143 407//143 408//143
+f 91//144 408//144 92//144
+f 92//144 408//144 409//144
+f 92//145 409//145 93//145
+f 93//145 409//145 410//145
+f 93//146 410//146 94//146
+f 94//146 410//146 411//146
+f 94//147 411//147 95//147
+f 95//147 411//147 412//147
+f 95//148 412//148 96//148
+f 96//148 412//148 413//148
+f 96//149 413//149 121//149
+f 121//150 413//150 414//150
+f 121//2 414//2 122//2
+f 122//2 414//2 415//2
+f 122//2 415//2 123//2
+f 123//2 415//2 416//2
+f 123//2 416//2 124//2
+f 124//2 416//2 417//2
+f 124//151 417//151 125//151
+f 125//151 417//151 418//151
+f 125//152 418//152 126//152
+f 126//152 418//152 419//152
+f 126//153 419//153 127//153
+f 127//153 419//153 420//153
+f 127//154 420//154 128//154
+f 128//154 420//154 421//154
+f 128//155 421//155 129//155
+f 129//156 421//156 422//156
+f 129//157 422//157 192//157
+f 192//157 422//157 423//157
+f 192//158 423//158 193//158
+f 193//158 423//158 424//158
+f 193//159 424//159 214//159
+f 214//160 424//160 425//160
+f 214//161 425//161 215//161
+f 215//161 425//161 426//161
+f 215//162 426//162 216//162
+f 216//162 426//162 427//162
+f 216//163 427//163 217//163
+f 217//163 427//163 428//163
+f 217//164 428//164 218//164
+f 218//165 428//165 429//165
+f 218//166 429//166 42//166
+f 42//166 429//166 373//166
+f 197//167 430//167 198//167
+f 198//167 430//167 431//167
+f 198//168 431//168 199//168
+f 199//168 431//168 432//168
+f 199//169 432//169 200//169
+f 200//169 432//169 433//169
+f 200//170 433//170 201//170
+f 201//170 433//170 434//170
+f 201//171 434//171 202//171
+f 202//171 434//171 435//171
+f 202//172 435//172 203//172
+f 203//172 435//172 436//172
+f 203//173 436//173 204//173
+f 204//174 436//174 437//174
+f 438//175 205//175 437//175
+f 437//175 205//175 204//175
+f 205//176 438//176 206//176
+f 206//176 438//176 439//176
+f 206//177 439//177 228//177
+f 228//177 439//177 440//177
+f 228//178 440//178 229//178
+f 229//178 440//178 441//178
+f 229//179 441//179 230//179
+f 230//179 441//179 442//179
+f 230//180 442//180 231//180
+f 231//180 442//180 443//180
+f 231//181 443//181 220//181
+f 220//181 443//181 444//181
+f 445//182 221//182 444//182
+f 444//182 221//182 220//182
+f 221//183 445//183 266//183
+f 266//183 445//183 446//183
+f 266//184 446//184 265//184
+f 265//184 446//184 447//184
+f 265//185 447//185 263//185
+f 263//185 447//185 448//185
+f 263//186 448//186 261//186
+f 261//186 448//186 449//186
+f 261//187 449//187 262//187
+f 262//187 449//187 450//187
+f 262//188 450//188 264//188
+f 264//188 450//188 451//188
+f 452//189 222//189 451//189
+f 451//189 222//189 264//189
+f 222//190 452//190 223//190
+f 223//190 452//190 453//190
+f 223//191 453//191 224//191
+f 224//191 453//191 454//191
+f 224//192 454//192 225//192
+f 225//192 454//192 455//192
+f 225//193 455//193 226//193
+f 226//193 455//193 456//193
+f 226//194 456//194 227//194
+f 227//194 456//194 457//194
+f 227//195 457//195 219//195
+f 219//195 457//195 458//195
+f 459//196 207//196 458//196
+f 458//196 207//196 219//196
+f 207//197 459//197 208//197
+f 208//197 459//197 460//197
+f 208//198 460//198 209//198
+f 209//199 460//199 461//199
+f 209//200 461//200 210//200
+f 210//200 461//200 462//200
+f 210//201 462//201 211//201
+f 211//201 462//201 463//201
+f 211//202 463//202 212//202
+f 212//202 463//202 464//202
+f 212//203 464//203 98//203
+f 98//203 464//203 465//203
+f 466//204 99//204 465//204
+f 465//204 99//204 98//204
+f 99//205 466//205 28//205
+f 28//205 466//205 467//205
+f 28//206 467//206 188//206
+f 188//206 467//206 468//206
+f 188//207 468//207 189//207
+f 189//207 468//207 469//207
+f 189//208 469//208 190//208
+f 190//209 469//209 470//209
+f 190//210 470//210 191//210
+f 191//210 470//210 471//210
+f 191//211 471//211 176//211
+f 176//212 471//212 472//212
+f 473//182 177//182 472//182
+f 472//182 177//182 176//182
+f 177//213 473//213 184//213
+f 184//213 473//213 474//213
+f 184//214 474//214 185//214
+f 185//214 474//214 475//214
+f 185//215 475//215 186//215
+f 186//215 475//215 476//215
+f 186//216 476//216 260//216
+f 260//216 476//216 477//216
+f 260//217 477//217 259//217
+f 259//217 477//217 478//217
+f 259//218 478//218 187//218
+f 187//218 478//218 479//218
+f 480//219 178//219 479//219
+f 479//219 178//219 187//219
+f 178//220 480//220 179//220
+f 179//220 480//220 481//220
+f 179//221 481//221 180//221
+f 180//221 481//221 482//221
+f 180//222 482//222 181//222
+f 181//222 482//222 483//222
+f 181//223 483//223 182//223
+f 182//223 483//223 484//223
+f 182//224 484//224 183//224
+f 183//224 484//224 485//224
+f 183//225 485//225 174//225
+f 174//225 485//225 486//225
+f 487//196 175//196 486//196
+f 486//196 175//196 174//196
+f 175//226 487//226 34//226
+f 34//226 487//226 488//226
+f 34//227 488//227 33//227
+f 33//227 488//227 489//227
+f 33//228 489//228 32//228
+f 32//228 489//228 490//228
+f 32//229 490//229 31//229
+f 31//229 490//229 491//229
+f 31//230 491//230 30//230
+f 30//230 491//230 492//230
+f 30//231 492//231 29//231
+f 29//231 492//231 493//231
+f 29//232 493//232 27//232
+f 27//233 493//233 494//233
+f 495//204 100//204 494//204
+f 494//204 100//204 27//204
+f 100//234 495//234 101//234
+f 101//234 495//234 496//234
+f 101//235 496//235 102//235
+f 102//235 496//235 497//235
+f 102//236 497//236 103//236
+f 103//236 497//236 498//236
+f 103//237 498//237 253//237
+f 253//237 498//237 499//237
+f 253//238 499//238 251//238
+f 251//238 499//238 500//238
+f 251//239 500//239 248//239
+f 248//239 500//239 501//239
+f 248//240 501//240 246//240
+f 246//240 501//240 502//240
+f 246//241 502//241 162//241
+f 162//241 502//241 503//241
+f 162//242 503//242 163//242
+f 163//242 503//242 504//242
+f 163//243 504//243 164//243
+f 164//244 504//244 505//244
+f 164//245 505//245 73//245
+f 73//245 505//245 506//245
+f 73//246 506//246 59//246
+f 59//246 506//246 507//246
+f 508//247 60//247 507//247
+f 507//247 60//247 59//247
+f 60//248 508//248 244//248
+f 244//248 508//248 509//248
+f 244//249 509//249 242//249
+f 242//249 509//249 510//249
+f 242//250 510//250 241//250
+f 241//250 510//250 511//250
+f 241//251 511//251 239//251
+f 239//251 511//251 512//251
+f 239//252 512//252 237//252
+f 237//252 512//252 513//252
+f 237//253 513//253 235//253
+f 235//254 513//254 514//254
+f 235//255 514//255 232//255
+f 232//255 514//255 515//255
+f 232//256 515//256 148//256
+f 148//256 515//256 516//256
+f 148//257 516//257 44//257
+f 44//257 516//257 517//257
+f 518//258 45//258 517//258
+f 517//258 45//258 44//258
+f 45//259 518//259 46//259
+f 46//259 518//259 519//259
+f 46//260 519//260 47//260
+f 47//260 519//260 520//260
+f 47//261 520//261 48//261
+f 48//261 520//261 521//261
+f 48//262 521//262 49//262
+f 49//262 521//262 522//262
+f 49//263 522//263 50//263
+f 50//263 522//263 523//263
+f 50//264 523//264 51//264
+f 51//264 523//264 524//264
+f 51//265 524//265 213//265
+f 213//265 524//265 525//265
+f 213//266 525//266 194//266
+f 194//266 525//266 526//266
+f 194//267 526//267 195//267
+f 195//267 526//267 527//267
+f 195//268 527//268 196//268
+f 196//268 527//268 528//268
+f 430//269 197//269 528//269
+f 528//269 197//269 196//269
+f 324//1 319//1 318//1
+f 272//1 296//1 297//1
+f 272//1 297//1 298//1
+f 272//1 298//1 299//1
+f 272//1 299//1 300//1
+f 272//1 300//1 290//1
+f 272//1 290//1 278//1
+f 334//1 308//1 304//1
+f 334//1 304//1 303//1
+f 334//1 303//1 302//1
+f 334//1 302//1 305//1
+f 334//1 305//1 306//1
+f 334//1 306//1 307//1
+f 334//1 307//1 301//1
+f 334//1 301//1 295//1
+f 334//1 295//1 294//1
+f 334//1 294//1 293//1
+f 334//1 293//1 292//1
+f 334//1 292//1 291//1
+f 334//1 291//1 296//1
+f 334//1 296//1 272//1
+f 334//1 272//1 271//1
+f 334//1 271//1 270//1
+f 334//1 270//1 269//1
+f 334//1 269//1 273//1
+f 334//1 273//1 274//1
+f 334//1 274//1 275//1
+f 334//1 275//1 276//1
+f 334//1 276//1 277//1
+f 334//1 277//1 268//1
+f 334//1 268//1 338//1
+f 268//1 267//1 339//1
+f 268//1 339//1 342//1
+f 268//1 342//1 343//1
+f 268//1 343//1 344//1
+f 268//1 344//1 345//1
+f 268//1 345//1 338//1
+f 308//1 334//1 333//1
+f 308//1 333//1 332//1
+f 308//1 332//1 335//1
+f 308//1 335//1 336//1
+f 308//1 336//1 337//1
+f 308//1 337//1 331//1
+f 323//1 322//1 326//1
+f 323//1 326//1 327//1
+f 323//1 327//1 328//1
+f 323//1 328//1 329//1
+f 323//1 329//1 330//1
+f 323//1 330//1 317//1
+f 323//1 317//1 312//1
+f 323//1 312//1 311//1
+f 323//1 311//1 310//1
+f 323//1 310//1 309//1
+f 323//1 309//1 313//1
+f 323//1 313//1 314//1
+f 323//1 314//1 315//1
+f 323//1 315//1 316//1
+f 323//1 316//1 308//1
+f 323//1 308//1 331//1
+f 283//1 282//1 285//1
+f 283//1 285//1 286//1
+f 283//1 286//1 287//1
+f 283//1 287//1 288//1
+f 283//1 288//1 289//1
+f 283//1 289//1 278//1
+f 283//1 278//1 290//1
+f 339//1 267//1 340//1
+f 340//1 267//1 341//1
+f 326//1 322//1 325//1
+f 325//1 322//1 321//1
+f 325//1 321//1 324//1
+f 324//1 321//1 320//1
+f 324//1 320//1 319//1
+f 285//1 282//1 284//1
+f 284//1 282//1 281//1
+f 284//1 281//1 279//1
+f 279//1 281//1 280//1
+f 401//1 403//1 402//1
+f 406//1 408//1 407//1
+f 371//1 370//1 382//1
+f 371//1 382//1 381//1
+f 371//1 381//1 380//1
+f 371//1 380//1 379//1
+f 371//1 379//1 378//1
+f 371//1 378//1 377//1
+f 371//1 377//1 376//1
+f 371//1 376//1 375//1
+f 371//1 375//1 374//1
+f 371//1 374//1 372//1
+f 400//1 406//1 405//1
+f 400//1 405//1 404//1
+f 400//1 404//1 403//1
+f 400//1 403//1 401//1
+f 356//1 355//1 408//1
+f 356//1 408//1 406//1
+f 356//1 406//1 400//1
+f 356//1 400//1 399//1
+f 356//1 399//1 398//1
+f 356//1 398//1 357//1
+f 358//1 357//1 398//1
+f 358//1 398//1 397//1
+f 358//1 397//1 396//1
+f 358//1 396//1 395//1
+f 358//1 395//1 394//1
+f 358//1 394//1 393//1
+f 352//1 351//1 416//1
+f 352//1 416//1 415//1
+f 352//1 415//1 414//1
+f 352//1 414//1 413//1
+f 352//1 413//1 412//1
+f 352//1 412//1 411//1
+f 352//1 411//1 410//1
+f 352//1 410//1 409//1
+f 352//1 409//1 353//1
+f 417//1 416//1 351//1
+f 417//1 351//1 350//1
+f 417//1 350//1 349//1
+f 417//1 349//1 348//1
+f 417//1 348//1 346//1
+f 417//1 346//1 347//1
+f 347//1 371//1 417//1
+f 417//1 371//1 372//1
+f 417//1 372//1 418//1
+f 418//1 372//1 373//1
+f 418//1 373//1 419//1
+f 419//1 373//1 429//1
+f 419//1 429//1 420//1
+f 420//1 429//1 428//1
+f 420//1 428//1 421//1
+f 421//1 428//1 427//1
+f 421//1 427//1 422//1
+f 422//1 427//1 426//1
+f 422//1 426//1 423//1
+f 423//1 426//1 425//1
+f 423//1 425//1 424//1
+f 353//1 409//1 354//1
+f 354//1 409//1 408//1
+f 354//1 408//1 355//1
+f 358//1 393//1 359//1
+f 359//1 393//1 392//1
+f 359//1 392//1 360//1
+f 360//1 392//1 391//1
+f 360//1 391//1 361//1
+f 361//1 391//1 390//1
+f 361//1 390//1 362//1
+f 362//1 390//1 389//1
+f 362//1 389//1 363//1
+f 363//1 389//1 388//1
+f 363//1 388//1 364//1
+f 364//1 388//1 387//1
+f 364//1 387//1 365//1
+f 365//1 387//1 366//1
+f 366//1 387//1 386//1
+f 366//1 386//1 367//1
+f 367//1 386//1 385//1
+f 367//1 385//1 368//1
+f 368//1 385//1 384//1
+f 368//1 384//1 369//1
+f 369//1 384//1 370//1
+f 370//1 384//1 383//1
+f 370//1 383//1 382//1
+f 430//1 446//1 445//1
+f 430//1 447//1 446//1
+f 499//1 497//1 496//1
+f 497//1 499//1 498//1
+f 507//1 495//1 494//1
+f 507//1 494//1 493//1
+f 507//1 493//1 492//1
+f 507//1 492//1 491//1
+f 507//1 491//1 490//1
+f 507//1 490//1 489//1
+f 507//1 489//1 488//1
+f 507//1 488//1 487//1
+f 507//1 487//1 486//1
+f 507//1 486//1 485//1
+f 507//1 485//1 484//1
+f 507//1 484//1 483//1
+f 479//1 478//1 458//1
+f 479//1 458//1 457//1
+f 479//1 457//1 456//1
+f 479//1 456//1 455//1
+f 479//1 455//1 454//1
+f 479//1 454//1 453//1
+f 479//1 453//1 452//1
+f 508//1 507//1 483//1
+f 508//1 483//1 482//1
+f 508//1 482//1 481//1
+f 508//1 481//1 480//1
+f 508//1 480//1 479//1
+f 508//1 479//1 452//1
+f 508//1 452//1 451//1
+f 508//1 451//1 450//1
+f 508//1 450//1 449//1
+f 495//1 507//1 506//1
+f 495//1 506//1 505//1
+f 495//1 505//1 504//1
+f 495//1 504//1 503//1
+f 495//1 503//1 502//1
+f 495//1 502//1 501//1
+f 495//1 501//1 500//1
+f 495//1 500//1 499//1
+f 495//1 499//1 496//1
+f 449//1 511//1 510//1
+f 449//1 510//1 509//1
+f 449//1 509//1 508//1
+f 448//1 517//1 516//1
+f 448//1 516//1 515//1
+f 448//1 515//1 514//1
+f 448//1 514//1 513//1
+f 448//1 513//1 512//1
+f 448//1 512//1 511//1
+f 448//1 511//1 449//1
+f 528//1 517//1 448//1
+f 528//1 448//1 447//1
+f 528//1 447//1 430//1
+f 517//1 528//1 527//1
+f 517//1 527//1 526//1
+f 517//1 526//1 525//1
+f 517//1 525//1 524//1
+f 517//1 524//1 523//1
+f 517//1 523//1 518//1
+f 444//1 438//1 437//1
+f 444//1 437//1 436//1
+f 444//1 436//1 435//1
+f 444//1 435//1 434//1
+f 444//1 434//1 433//1
+f 444//1 433//1 432//1
+f 444//1 432//1 431//1
+f 444//1 431//1 430//1
+f 444//1 430//1 445//1
+f 438//1 444//1 443//1
+f 438//1 443//1 442//1
+f 438//1 442//1 441//1
+f 438//1 441//1 440//1
+f 438//1 440//1 439//1
+f 458//1 478//1 477//1
+f 458//1 477//1 476//1
+f 458//1 476//1 475//1
+f 458//1 475//1 474//1
+f 458//1 474//1 473//1
+f 458//1 473//1 472//1
+f 458//1 472//1 459//1
+f 466//1 465//1 472//1
+f 466//1 472//1 471//1
+f 466//1 471//1 470//1
+f 466//1 470//1 469//1
+f 466//1 469//1 468//1
+f 466//1 468//1 467//1
+f 472//1 465//1 464//1
+f 472//1 464//1 463//1
+f 472//1 463//1 462//1
+f 472//1 462//1 461//1
+f 472//1 461//1 460//1
+f 472//1 460//1 459//1
+f 521//1 520//1 522//1
+f 522//1 520//1 519//1
+f 522//1 519//1 523//1
+f 523//1 519//1 518//1
+f 529//270 530//270 531//270
+f 531//270 530//270 532//270
+f 532//182 120//182 531//182
+f 531//182 120//182 97//182
+f 531//271 97//271 529//271
+f 529//271 97//271 75//271
+f 529//196 75//196 530//196
+f 530//196 75//196 74//196
+f 530//272 74//272 532//272
+f 532//272 74//272 120//272
diff --git a/resources/meshes/cremaker_platform_220.obj b/resources/meshes/cremaker_platform_220.obj
new file mode 100644
index 0000000000..07f270912c
--- /dev/null
+++ b/resources/meshes/cremaker_platform_220.obj
@@ -0,0 +1,1870 @@
+# Blender v2.83.4 OBJ File: ''
+# www.blender.org
+mtllib cremaker_platform_220.mtl
+o Cremaker_Bed_For_Cura_220
+v -1.890215 15.706850 0.000001
+v 6.767278 20.737940 0.000001
+v -5.775456 19.937870 0.000001
+v -6.085020 19.717300 0.000001
+v -6.206591 19.597380 0.000001
+v -6.306021 19.472389 0.000001
+v -6.404158 19.299610 0.000001
+v -6.462938 19.122049 0.000001
+v -6.482364 18.942129 0.000001
+v -6.462439 18.762270 0.000001
+v -6.403163 18.584881 0.000001
+v -6.304539 18.412380 0.000001
+v -6.204750 18.287661 0.000001
+v -6.082830 18.168079 0.000001
+v -5.772599 17.948380 0.000001
+v -0.169347 23.195789 0.000001
+v 2.503686 23.199570 0.000001
+v 0.015533 23.290100 0.000001
+v 2.318549 23.293369 0.000001
+v 0.215548 23.368071 0.000001
+v 2.118320 23.370770 0.000001
+v 0.445728 23.434031 0.000001
+v 1.887968 23.436081 0.000001
+v 0.686610 23.480829 0.000001
+v 1.646967 23.482201 0.000001
+v 1.166741 23.516991 0.000001
+v 8.977601 -31.682760 -0.000001
+v 15.463810 -27.894529 -0.000001
+v 9.126501 -31.581169 -0.000001
+v 9.251994 -31.471161 -0.000001
+v 9.354342 -31.353979 -0.000001
+v 9.435792 -31.228849 -0.000001
+v 9.497616 -31.095310 -0.000001
+v 9.540466 -30.954081 -0.000001
+v -2.474875 -23.004829 -0.000001
+v -3.486624 -14.063000 -0.000001
+v -2.653391 -22.608061 -0.000001
+v -2.900688 -22.237030 -0.000001
+v -3.052730 -22.062059 -0.000001
+v -3.221965 -21.899099 -0.000001
+v -3.400519 -21.755520 -0.000001
+v 27.762609 18.434891 0.000001
+v 1.302336 3.393586 0.000000
+v 3.475899 -0.694668 -0.000000
+v 29.570330 14.423920 0.000001
+v 29.843470 14.553590 0.000001
+v 30.123699 14.616530 0.000001
+v 30.402599 14.617650 0.000001
+v 30.671749 14.561850 0.000001
+v 30.922720 14.454050 0.000001
+v 31.147100 14.299160 0.000001
+v -26.719641 17.714270 0.000001
+v -30.969570 14.542240 0.000001
+v -30.693640 14.614890 0.000001
+v -30.396780 14.615500 0.000001
+v -30.088209 14.539130 0.000001
+v -3.517677 -0.801377 -0.000000
+v -1.435565 3.392086 0.000000
+v 2.106637 -33.573120 -0.000001
+v 2.133908 -3.020771 -0.000000
+v -2.272171 -2.965736 -0.000000
+v -2.298659 -12.744290 -0.000001
+v -2.325924 -13.082530 -0.000001
+v -2.402435 -13.372600 -0.000001
+v -2.523336 -13.613500 -0.000001
+v -2.683776 -13.804260 -0.000001
+v -2.878902 -13.943900 -0.000001
+v -3.064503 -14.020530 -0.000001
+v -3.268013 -14.060420 -0.000001
+v -2.366918 -23.413799 -0.000001
+v -2.331298 -23.821421 -0.000001
+v -2.538111 -33.729561 -0.000001
+v 2.114818 -33.739540 -0.000001
+v -110.000000 110.000000 0.000005
+v -110.000000 -110.000000 -0.000005
+v -31.579510 13.941270 0.000001
+v -31.421730 14.200490 0.000001
+v -27.414490 20.492630 0.000001
+v -27.228689 20.743530 0.000001
+v -26.998230 20.967470 0.000001
+v -26.723070 21.158649 0.000001
+v -3.097852 34.888088 0.000002
+v -3.058702 34.910809 0.000002
+v -2.760384 35.064079 0.000002
+v -2.510572 35.174419 0.000002
+v -2.024714 35.353069 0.000002
+v -1.582107 35.478981 0.000002
+v -1.080716 35.581661 0.000002
+v -0.754755 35.626011 0.000002
+v -0.411912 35.653530 0.000002
+v 0.068701 35.658569 0.000002
+v 0.572670 35.620548 0.000002
+v 1.096192 35.531940 0.000002
+v 1.635463 35.385231 0.000002
+v 2.186679 35.172890 0.000002
+v 2.746035 34.887402 0.000002
+v 110.000000 -110.000000 -0.000005
+v 20.371010 -25.084841 -0.000001
+v 15.581860 -27.858259 -0.000001
+v 3.623141 -34.783489 -0.000002
+v 3.518881 -34.835880 -0.000002
+v 3.407471 -34.868351 -0.000002
+v 3.280597 -34.881981 -0.000002
+v -3.206139 -34.884621 -0.000002
+v -3.407758 -34.910000 -0.000002
+v -3.633279 -34.894100 -0.000002
+v -3.809279 -34.856091 -0.000002
+v -3.996799 -34.794971 -0.000002
+v -4.214165 -34.700981 -0.000002
+v -4.444436 -34.577541 -0.000002
+v -31.037670 -19.223930 -0.000001
+v -31.293150 -19.038361 -0.000001
+v -31.520281 -18.799589 -0.000001
+v -31.710920 -18.522110 -0.000001
+v -31.856939 -18.220461 -0.000001
+v -31.950171 -17.909149 -0.000001
+v -31.982500 -17.602690 -0.000001
+v -31.712339 13.270770 0.000001
+v -31.679449 13.629710 0.000001
+v 110.000000 110.000000 0.000005
+v 2.771456 34.872719 0.000002
+v 7.464162 32.163349 0.000001
+v 15.253320 27.666241 0.000001
+v 27.735189 20.459780 0.000001
+v 27.760611 20.445101 0.000001
+v 27.895399 20.354771 0.000001
+v 28.012421 20.250940 0.000001
+v 28.113310 20.133301 0.000001
+v 28.195770 20.005659 0.000001
+v -31.215340 14.402460 0.000001
+v -26.995159 17.904921 0.000001
+v -27.226070 18.128401 0.000001
+v -27.412350 18.378941 0.000001
+v -27.554010 18.650749 0.000001
+v -27.623430 18.840151 0.000001
+v -27.673161 19.034679 0.000001
+v -27.703360 19.234209 0.000001
+v -27.713560 19.435499 0.000001
+v -27.703770 19.636801 0.000001
+v -27.673969 19.836390 0.000001
+v -27.624630 20.031019 0.000001
+v -27.555599 20.220551 0.000001
+v 0.976425 3.232473 0.000000
+v 0.636600 3.117338 0.000000
+v 0.287486 3.048182 0.000000
+v -0.066293 3.025005 0.000000
+v -3.345686 -0.911826 -0.000000
+v 3.139616 -0.917790 -0.000000
+v -0.420113 3.047807 0.000000
+v -0.769347 3.116588 0.000000
+v -1.109373 3.231348 0.000000
+v -3.594514 -21.626280 -0.000001
+v -12.938980 -15.140140 -0.000001
+v -12.905790 -15.448240 -0.000001
+v -12.810930 -15.763330 -0.000001
+v -12.664030 -16.069201 -0.000001
+v -12.474700 -16.349609 -0.000001
+v -12.252560 -16.588350 -0.000001
+v -12.007230 -16.769199 -0.000001
+v -2.563875 -34.102112 -0.000001
+v -2.601945 -34.265640 -0.000001
+v 2.260306 -34.209869 -0.000001
+v 2.192190 -34.059601 -0.000001
+v 2.142445 -33.897968 -0.000001
+v -3.658804 -14.040120 -0.000001
+v -3.836713 -13.995700 -0.000001
+v -4.204983 -13.841300 -0.000001
+v -12.922880 -9.899136 -0.000000
+v -11.984960 -9.349529 -0.000000
+v -12.721910 -9.347394 -0.000000
+v -12.789020 -9.421888 -0.000000
+v -12.845920 -9.517392 -0.000000
+v -12.888060 -9.630308 -0.000000
+v 9.573477 -21.213511 -0.000001
+v 9.573477 -30.649120 -0.000001
+v 15.034420 -27.542681 -0.000001
+v 15.034420 -18.158489 -0.000001
+v 10.169160 -20.177891 -0.000001
+v 9.977448 -20.309700 -0.000001
+v 9.825815 -20.460020 -0.000001
+v 9.711927 -20.627211 -0.000001
+v 9.649883 -20.762680 -0.000001
+v 9.606781 -20.906019 -0.000001
+v 15.003990 -18.001150 -0.000001
+v 14.921680 -17.866699 -0.000001
+v 14.800500 -17.765039 -0.000001
+v 14.333690 -17.755440 -0.000001
+v 15.340730 -27.890249 -0.000001
+v 15.224440 -27.849171 -0.000001
+v 15.126750 -27.775049 -0.000001
+v 15.059470 -27.671631 -0.000001
+v 28.304729 19.730980 0.000001
+v 28.341249 19.440559 0.000001
+v 31.482401 13.867730 0.000001
+v 31.576481 13.601010 0.000001
+v 31.610291 13.306840 0.000001
+v 31.698460 -17.754620 -0.000001
+v 31.678040 -18.025631 -0.000001
+v 31.618450 -18.258989 -0.000001
+v 31.522221 -18.459169 -0.000001
+v 31.427509 -18.590231 -0.000001
+v 31.314671 -18.707041 -0.000001
+v 31.184740 -18.811489 -0.000001
+v 31.038811 -18.905470 -0.000001
+v 26.822330 -21.359131 -0.000001
+v 26.698940 -21.396070 -0.000001
+v 20.966869 -24.051201 -0.000001
+v 20.956520 -24.269871 -0.000001
+v 20.904810 -24.472601 -0.000001
+v 20.816071 -24.657419 -0.000001
+v 20.727819 -24.783110 -0.000001
+v 20.623011 -24.896790 -0.000001
+v 31.336460 14.102080 0.000001
+v 28.305321 19.150070 0.000001
+v 28.196911 18.875179 0.000001
+v 28.114700 18.747379 0.000001
+v 28.014050 18.629551 0.000001
+v 27.897230 18.525490 0.000001
+v 20.966869 -14.603510 -0.000001
+v 26.274229 -21.043930 -0.000001
+v 26.274229 -11.652350 -0.000001
+v 21.562111 -13.571100 -0.000001
+v 21.370380 -13.705390 -0.000001
+v 21.218809 -13.856010 -0.000001
+v 21.105040 -14.022040 -0.000001
+v 21.043091 -14.156130 -0.000001
+v 21.000080 -14.298000 -0.000001
+v 26.574249 -21.392080 -0.000001
+v 26.458860 -21.351021 -0.000001
+v 26.363340 -21.276751 -0.000001
+v 26.298269 -21.173100 -0.000001
+v 2.856881 -1.162039 -0.000000
+v -3.183302 -1.040252 -0.000000
+v -3.017757 -1.198799 -0.000000
+v 2.624997 -1.426512 -0.000000
+v -2.865824 -1.373666 -0.000000
+v 2.441266 -1.710312 -0.000000
+v -2.616956 -1.744172 -0.000000
+v 2.344197 -1.909804 -0.000000
+v -2.429858 -2.145653 -0.000000
+v 2.266531 -2.117218 -0.000000
+v 2.207469 -2.332289 -0.000000
+v -2.312331 -2.559157 -0.000000
+v 2.166210 -2.554749 -0.000000
+v -2.282093 -2.764497 -0.000000
+v 2.434501 -34.463181 -0.000002
+v -2.656312 -34.412819 -0.000002
+v 2.651738 -34.663250 -0.000002
+v -2.753508 -34.582069 -0.000002
+v -2.878132 -34.718540 -0.000002
+v 2.895620 -34.802711 -0.000002
+v -3.029303 -34.820099 -0.000002
+v 3.149746 -34.874161 -0.000002
+v -12.348020 -9.227452 -0.000000
+v -12.458250 -9.229397 -0.000000
+v -12.230520 -9.246961 -0.000000
+v -12.555370 -9.250595 -0.000000
+v -12.643580 -9.290076 -0.000000
+v 14.493510 -17.699530 -0.000001
+v 14.653450 -17.706020 -0.000001
+v 25.891661 -11.178740 -0.000000
+v 25.733061 -11.186380 -0.000000
+v 26.037319 -11.223560 -0.000000
+v 25.573780 -11.248510 -0.000000
+v 26.157789 -11.318790 -0.000000
+v 26.240850 -11.462400 -0.000001
+v -30.088209 14.539130 -0.999999
+v -3.517677 -0.801377 -1.000000
+v -2.429858 -2.145653 -1.000000
+v -2.312331 -2.559157 -1.000000
+v -2.282093 -2.764497 -1.000000
+v -2.272171 -2.965736 -1.000000
+v -2.616956 -1.744172 -1.000000
+v -2.865824 -1.373666 -1.000000
+v -3.017757 -1.198799 -1.000000
+v -3.183302 -1.040252 -1.000000
+v -3.345686 -0.911826 -1.000000
+v -2.298659 -12.744290 -1.000001
+v -3.268013 -14.060420 -1.000001
+v -3.486624 -14.063000 -1.000001
+v -3.658804 -14.040120 -1.000001
+v -3.836713 -13.995700 -1.000001
+v -4.204983 -13.841300 -1.000001
+v -3.064503 -14.020530 -1.000001
+v -2.878902 -13.943900 -1.000001
+v -2.683776 -13.804260 -1.000001
+v -2.523336 -13.613500 -1.000001
+v -2.402435 -13.372600 -1.000001
+v -2.325924 -13.082530 -1.000001
+v -11.984960 -9.349529 -1.000000
+v -12.721910 -9.347394 -1.000000
+v -12.789020 -9.421888 -1.000000
+v -12.845920 -9.517392 -1.000000
+v -12.888060 -9.630308 -1.000000
+v -12.922880 -9.899136 -1.000000
+v -12.643580 -9.290076 -1.000000
+v -12.555370 -9.250595 -1.000000
+v -12.458250 -9.229397 -1.000000
+v -12.348020 -9.227452 -1.000000
+v -12.230520 -9.246961 -1.000000
+v -12.938980 -15.140140 -1.000001
+v -12.474700 -16.349609 -1.000001
+v -12.252560 -16.588350 -1.000001
+v -12.007230 -16.769199 -1.000001
+v -12.664030 -16.069201 -1.000001
+v -12.810930 -15.763330 -1.000001
+v -12.905790 -15.448240 -1.000001
+v -3.594514 -21.626280 -1.000001
+v -2.653391 -22.608061 -1.000001
+v -2.474875 -23.004829 -1.000001
+v -2.366918 -23.413799 -1.000001
+v -2.331298 -23.821421 -1.000001
+v -2.900688 -22.237030 -1.000001
+v -3.052730 -22.062059 -1.000001
+v -3.221965 -21.899099 -1.000001
+v -3.400519 -21.755520 -1.000001
+v -2.538111 -33.729561 -1.000001
+v -3.407758 -34.910000 -1.000002
+v -3.633279 -34.894100 -1.000002
+v -3.809279 -34.856091 -1.000002
+v -3.996799 -34.794971 -1.000002
+v -4.214165 -34.700981 -1.000002
+v -4.444436 -34.577541 -1.000002
+v -3.206139 -34.884621 -1.000002
+v -3.029303 -34.820099 -1.000002
+v -2.878132 -34.718540 -1.000002
+v -2.753508 -34.582069 -1.000002
+v -2.656312 -34.412819 -1.000002
+v -2.601945 -34.265640 -1.000002
+v -2.563875 -34.102112 -1.000002
+v -31.037670 -19.223930 -1.000001
+v -31.856939 -18.220461 -1.000001
+v -31.950171 -17.909149 -1.000001
+v -31.982500 -17.602690 -1.000001
+v -31.710920 -18.522110 -1.000001
+v -31.520281 -18.799589 -1.000001
+v -31.293150 -19.038361 -1.000001
+v -31.712339 13.270770 -0.999999
+v -30.969570 14.542240 -0.999999
+v -30.693640 14.614890 -0.999999
+v -30.396780 14.615500 -0.999999
+v -31.215340 14.402460 -0.999999
+v -31.421730 14.200490 -0.999999
+v -31.579510 13.941270 -0.999999
+v -31.679449 13.629710 -0.999999
+v 2.503686 23.199570 -0.999999
+v 6.767278 20.737940 -0.999999
+v 2.318549 23.293369 -0.999999
+v 2.118320 23.370770 -0.999999
+v 1.887968 23.436081 -0.999999
+v 1.646967 23.482201 -0.999999
+v 1.166741 23.516991 -0.999999
+v 0.686610 23.480829 -0.999999
+v 0.445728 23.434031 -0.999999
+v 0.215548 23.368071 -0.999999
+v 0.015533 23.290100 -0.999999
+v -0.169347 23.195789 -0.999999
+v -5.775456 19.937870 -0.999999
+v -6.085020 19.717300 -0.999999
+v -6.206591 19.597380 -0.999999
+v -6.306021 19.472389 -0.999999
+v -6.404158 19.299610 -0.999999
+v -6.462938 19.122049 -0.999999
+v -6.482364 18.942129 -0.999999
+v -6.462439 18.762270 -0.999999
+v -6.403163 18.584881 -0.999999
+v -6.304539 18.412380 -0.999999
+v -6.204750 18.287661 -0.999999
+v -6.082830 18.168079 -0.999999
+v -5.772599 17.948380 -0.999999
+v -1.890215 15.706850 -0.999999
+v 1.302336 3.393586 -1.000000
+v 27.762609 18.434891 -0.999999
+v 0.976425 3.232473 -1.000000
+v 0.636600 3.117338 -1.000000
+v 0.287486 3.048182 -1.000000
+v -0.066293 3.025005 -1.000000
+v -0.420113 3.047807 -1.000000
+v -0.769347 3.116588 -1.000000
+v -1.109373 3.231348 -1.000000
+v -1.435565 3.392086 -1.000000
+v -26.719641 17.714270 -0.999999
+v -26.995159 17.904921 -0.999999
+v -27.226070 18.128401 -0.999999
+v -27.412350 18.378941 -0.999999
+v -27.554010 18.650749 -0.999999
+v -27.623430 18.840151 -0.999999
+v -27.673161 19.034679 -0.999999
+v -27.703360 19.234209 -0.999999
+v -27.713560 19.435499 -0.999999
+v -27.703770 19.636801 -0.999999
+v -27.673969 19.836390 -0.999999
+v -27.624630 20.031019 -0.999999
+v -27.555599 20.220551 -0.999999
+v -27.414490 20.492630 -0.999999
+v -27.228689 20.743530 -0.999999
+v -26.998230 20.967470 -0.999999
+v -26.723070 21.158649 -0.999999
+v -3.097852 34.888088 -0.999998
+v -3.058702 34.910809 -0.999998
+v -2.760384 35.064079 -0.999998
+v -2.510572 35.174419 -0.999998
+v -2.024714 35.353069 -0.999998
+v -1.582107 35.478981 -0.999998
+v -1.080716 35.581661 -0.999998
+v -0.754755 35.626011 -0.999998
+v -0.411912 35.653530 -0.999998
+v 0.068701 35.658569 -0.999998
+v 0.572670 35.620548 -0.999998
+v 1.096192 35.531940 -0.999998
+v 1.635463 35.385231 -0.999998
+v 2.186679 35.172890 -0.999998
+v 2.746035 34.887402 -0.999998
+v 2.771456 34.872719 -0.999998
+v 7.464162 32.163349 -0.999999
+v 15.253320 27.666241 -0.999999
+v 27.735189 20.459780 -0.999999
+v 27.760611 20.445101 -0.999999
+v 27.895399 20.354771 -0.999999
+v 28.012421 20.250940 -0.999999
+v 28.113310 20.133301 -0.999999
+v 28.195770 20.005659 -0.999999
+v 28.304729 19.730980 -0.999999
+v 28.341249 19.440559 -0.999999
+v 28.305321 19.150070 -0.999999
+v 28.196911 18.875179 -0.999999
+v 28.114700 18.747379 -0.999999
+v 28.014050 18.629551 -0.999999
+v 27.897230 18.525490 -0.999999
+v 31.698460 -17.754620 -1.000001
+v 31.678040 -18.025631 -1.000001
+v 31.618450 -18.258989 -1.000001
+v 31.522221 -18.459169 -1.000001
+v 31.427509 -18.590231 -1.000001
+v 31.314671 -18.707041 -1.000001
+v 31.184740 -18.811489 -1.000001
+v 31.038811 -18.905470 -1.000001
+v 26.822330 -21.359131 -1.000001
+v 26.698940 -21.396070 -1.000001
+v 26.574249 -21.392080 -1.000001
+v 26.458860 -21.351021 -1.000001
+v 26.363340 -21.276751 -1.000001
+v 26.298269 -21.173100 -1.000001
+v 26.274229 -21.043930 -1.000001
+v 26.274229 -11.652350 -1.000000
+v 26.240850 -11.462400 -1.000000
+v 26.157789 -11.318790 -1.000000
+v 26.037319 -11.223560 -1.000000
+v 25.891661 -11.178740 -1.000000
+v 25.733061 -11.186380 -1.000000
+v 25.573780 -11.248510 -1.000000
+v 21.562111 -13.571100 -1.000001
+v 21.370380 -13.705390 -1.000001
+v 21.218809 -13.856010 -1.000001
+v 21.105040 -14.022040 -1.000001
+v 21.043091 -14.156130 -1.000001
+v 21.000080 -14.298000 -1.000001
+v 20.966869 -14.603510 -1.000001
+v 20.966869 -24.051201 -1.000001
+v 20.956520 -24.269871 -1.000001
+v 20.904810 -24.472601 -1.000001
+v 20.816071 -24.657419 -1.000001
+v 20.727819 -24.783110 -1.000001
+v 20.623011 -24.896790 -1.000001
+v 20.371010 -25.084841 -1.000001
+v 15.581860 -27.858259 -1.000001
+v 15.463810 -27.894529 -1.000001
+v 15.340730 -27.890249 -1.000001
+v 15.224440 -27.849171 -1.000001
+v 15.126750 -27.775049 -1.000001
+v 15.059470 -27.671631 -1.000001
+v 15.034420 -27.542681 -1.000001
+v 15.034420 -18.158489 -1.000001
+v 15.003990 -18.001150 -1.000001
+v 14.921680 -17.866699 -1.000001
+v 14.800500 -17.765039 -1.000001
+v 14.653450 -17.706020 -1.000001
+v 14.493510 -17.699530 -1.000001
+v 14.333690 -17.755440 -1.000001
+v 10.169160 -20.177891 -1.000001
+v 9.977448 -20.309700 -1.000001
+v 9.825815 -20.460020 -1.000001
+v 9.711927 -20.627211 -1.000001
+v 9.649883 -20.762680 -1.000001
+v 9.606781 -20.906019 -1.000001
+v 9.573477 -21.213511 -1.000001
+v 9.573477 -30.649120 -1.000001
+v 9.540466 -30.954081 -1.000001
+v 9.497616 -31.095310 -1.000001
+v 9.435792 -31.228849 -1.000001
+v 9.354342 -31.353979 -1.000001
+v 9.251994 -31.471161 -1.000001
+v 9.126501 -31.581169 -1.000001
+v 8.977601 -31.682760 -1.000001
+v 3.623141 -34.783489 -1.000002
+v 3.518881 -34.835880 -1.000002
+v 3.407471 -34.868351 -1.000002
+v 3.280597 -34.881981 -1.000002
+v 3.149746 -34.874161 -1.000002
+v 2.895620 -34.802711 -1.000002
+v 2.651738 -34.663250 -1.000002
+v 2.434501 -34.463181 -1.000002
+v 2.260306 -34.209869 -1.000002
+v 2.192190 -34.059601 -1.000001
+v 2.142445 -33.897968 -1.000001
+v 2.114818 -33.739540 -1.000001
+v 2.106637 -33.573120 -1.000001
+v 2.133908 -3.020771 -1.000000
+v 2.166210 -2.554749 -1.000000
+v 2.207469 -2.332289 -1.000000
+v 2.266531 -2.117218 -1.000000
+v 2.344197 -1.909804 -1.000000
+v 2.441266 -1.710312 -1.000000
+v 2.624997 -1.426512 -1.000000
+v 2.856881 -1.162039 -1.000000
+v 3.139616 -0.917790 -1.000000
+v 3.475899 -0.694668 -1.000000
+v 29.570330 14.423920 -0.999999
+v 29.843470 14.553590 -0.999999
+v 30.123699 14.616530 -0.999999
+v 30.402599 14.617650 -0.999999
+v 30.671749 14.561850 -0.999999
+v 30.922720 14.454050 -0.999999
+v 31.147100 14.299160 -0.999999
+v 31.336460 14.102080 -0.999999
+v 31.482401 13.867730 -0.999999
+v 31.576481 13.601010 -0.999999
+v 31.610291 13.306840 -0.999999
+v -110.000000 -110.000000 -3.000005
+v -110.000000 110.000000 -2.999995
+v 110.000000 -110.000000 -3.000005
+v 110.000000 110.000000 -2.999995
+vn 0.0000 -0.0000 1.0000
+vn -0.5000 -0.8660 0.0000
+vn -0.9064 -0.4224 0.0000
+vn -0.9619 -0.2734 0.0000
+vn -0.9893 -0.1457 0.0000
+vn -0.9988 -0.0492 0.0000
+vn -0.8301 -0.5576 0.0000
+vn -0.7549 -0.6559 0.0000
+vn -0.6917 -0.7222 0.0000
+vn -0.6203 -0.7843 0.0000
+vn -0.5404 -0.8414 0.0000
+vn -1.0000 0.0027 0.0000
+vn -0.1924 0.9813 0.0000
+vn -0.0118 0.9999 0.0000
+vn 0.1317 0.9913 0.0000
+vn 0.2422 0.9702 0.0000
+vn 0.3866 0.9222 0.0000
+vn 0.3867 0.9222 0.0000
+vn -0.3816 0.9243 0.0000
+vn -0.5820 0.8132 0.0000
+vn -0.7653 0.6437 0.0000
+vn -0.8938 0.4486 0.0000
+vn -0.9669 0.2550 0.0000
+vn -0.9968 0.0803 0.0000
+vn 0.5000 0.8660 0.0000
+vn -0.5905 0.8070 0.0000
+vn -0.7430 0.6693 0.0000
+vn -0.8591 0.5118 0.0000
+vn -0.9369 0.3497 0.0000
+vn -0.9369 0.3496 0.0000
+vn -0.9917 0.1285 0.0000
+vn -0.4085 0.9127 0.0000
+vn -0.2132 0.9770 0.0000
+vn -0.0176 0.9998 0.0000
+vn 0.1638 0.9865 0.0000
+vn 0.3854 0.9227 0.0000
+vn -1.0000 0.0031 0.0000
+vn -0.8288 -0.5596 0.0000
+vn -0.7321 -0.6812 0.0000
+vn -0.5934 -0.8049 0.0000
+vn -0.9014 -0.4329 0.0000
+vn -0.9575 -0.2883 0.0000
+vn -0.9942 -0.1071 0.0000
+vn -0.8321 -0.5546 0.0000
+vn -0.9119 -0.4103 0.0000
+vn -0.9669 -0.2552 0.0000
+vn -0.9962 -0.0871 0.0000
+vn -0.7548 -0.6559 0.0000
+vn -0.6936 -0.7203 0.0000
+vn -0.6267 -0.7793 0.0000
+vn -0.5544 -0.8322 0.0000
+vn -0.9998 0.0209 0.0000
+vn -0.1249 0.9922 0.0000
+vn 0.0703 0.9975 0.0000
+vn 0.2111 0.9775 0.0000
+vn 0.3099 0.9508 0.0000
+vn 0.3969 0.9179 0.0000
+vn 0.4725 0.8814 0.0000
+vn -0.3428 0.9394 0.0000
+vn -0.5577 0.8301 0.0000
+vn -0.7384 0.6743 0.0000
+vn -0.8672 0.4980 0.0000
+vn -0.9380 0.3465 0.0000
+vn -0.9740 0.2267 0.0000
+vn -0.9976 0.0690 0.0000
+vn 0.9001 0.4357 0.0000
+vn 0.9580 0.2869 0.0000
+vn 0.9945 0.1049 0.0000
+vn 0.8242 0.5663 0.0000
+vn 0.7245 0.6892 0.0000
+vn 0.5877 0.8091 0.0000
+vn 1.0000 -0.0088 0.0000
+vn 0.4944 -0.8692 0.0000
+vn 0.2546 -0.9670 0.0000
+vn 0.0021 -1.0000 0.0000
+vn -0.2402 -0.9707 0.0000
+vn 0.6994 -0.7147 0.0000
+vn 0.8542 -0.5199 0.0000
+vn 0.9522 -0.3054 0.0000
+vn 0.9958 -0.0913 0.0000
+vn 0.9958 -0.0912 0.0000
+vn 0.4520 0.8920 0.0000
+vn 0.3606 0.9327 0.0000
+vn 0.2728 0.9621 0.0000
+vn 0.1880 0.9822 0.0000
+vn 0.0723 0.9974 0.0000
+vn -0.0751 0.9972 0.0000
+vn -0.1907 0.9816 0.0000
+vn -0.2755 0.9613 0.0000
+vn -0.3632 0.9317 0.0000
+vn -0.4544 0.8908 0.0000
+vn -0.5025 0.8646 0.0000
+vn -0.5803 0.8144 0.0000
+vn -0.7023 0.7119 0.0000
+vn -0.7826 0.6225 0.0000
+vn -0.8695 0.4939 0.0000
+vn -0.9493 0.3143 0.0000
+vn -0.9942 0.1073 0.0000
+vn -0.9939 -0.1101 0.0000
+vn -0.9484 -0.3169 0.0000
+vn -0.8681 -0.4963 0.0000
+vn -0.7808 -0.6248 0.0000
+vn -0.7808 -0.6247 0.0000
+vn -0.7002 -0.7139 0.0000
+vn -0.5779 -0.8161 0.0000
+vn 0.5024 -0.8646 0.0000
+vn -0.4942 0.8694 0.0000
+vn -0.4432 0.8964 0.0000
+vn -0.3209 0.9471 0.0000
+vn -0.1943 0.9809 0.0000
+vn -0.0654 0.9979 0.0000
+vn 0.0643 0.9979 0.0000
+vn 0.1932 0.9812 0.0000
+vn 0.3198 0.9475 0.0000
+vn 0.4420 0.8970 0.0000
+vn 0.4929 0.8701 0.0000
+vn 0.5690 0.8223 0.0000
+vn 0.6954 0.7186 0.0000
+vn 0.8025 0.5967 0.0000
+vn 0.8868 0.4622 0.0000
+vn 0.9389 0.3441 0.0000
+vn 0.9688 0.2477 0.0000
+vn 0.9887 0.1496 0.0000
+vn 0.9887 0.1497 0.0000
+vn 0.9987 0.0506 0.0000
+vn 0.9988 -0.0486 0.0000
+vn 0.9890 -0.1477 0.0000
+vn 0.9693 -0.2457 0.0000
+vn 0.9396 -0.3422 0.0000
+vn 0.8877 -0.4604 0.0000
+vn 0.8036 -0.5951 0.0000
+vn 0.6969 -0.7172 0.0000
+vn 0.5706 -0.8212 0.0000
+vn 0.5025 -0.8646 0.0000
+vn 0.5019 -0.8649 0.0000
+vn 0.4570 -0.8895 0.0000
+vn 0.4040 -0.9147 0.0000
+vn 0.3451 -0.9386 0.0000
+vn 0.2736 -0.9618 0.0000
+vn 0.2006 -0.9797 0.0000
+vn 0.1348 -0.9909 0.0000
+vn 0.0800 -0.9968 0.0000
+vn 0.0105 -0.9999 0.0000
+vn -0.0752 -0.9972 0.0000
+vn -0.1669 -0.9860 0.0000
+vn -0.2625 -0.9649 0.0000
+vn -0.3595 -0.9332 0.0000
+vn -0.4546 -0.8907 0.0000
+vn -0.5001 -0.8659 0.0000
+vn -0.5002 -0.8659 0.0000
+vn -0.5001 -0.8660 0.0000
+vn -0.5567 -0.8307 0.0000
+vn -0.6637 -0.7480 0.0000
+vn -0.7591 -0.6510 0.0000
+vn -0.8400 -0.5427 0.0000
+vn -0.8400 -0.5426 0.0000
+vn -0.9295 -0.3687 0.0000
+vn -0.9922 -0.1248 0.0000
+vn -0.9924 0.1228 0.0000
+vn -0.9924 0.1227 0.0000
+vn -0.9303 0.3669 0.0000
+vn -0.8410 0.5410 0.0000
+vn -0.7604 0.6495 0.0000
+vn -0.6651 0.7467 0.0000
+vn -0.6652 0.7467 0.0000
+vn -0.5583 0.8296 0.0000
+vn -0.9972 0.0751 0.0000
+vn -0.9689 0.2474 0.0000
+vn -0.9013 0.4333 0.0000
+vn -0.8105 0.5857 0.0000
+vn -0.7192 0.6948 0.0000
+vn -0.6265 0.7794 0.0000
+vn -0.5414 0.8407 0.0000
+vn -0.5415 0.8407 0.0000
+vn -0.5030 0.8643 0.0000
+vn -0.2868 0.9580 0.0000
+vn 0.0320 0.9995 0.0000
+vn 0.3352 0.9421 0.0000
+vn 0.6138 0.7894 0.0000
+vn 0.8469 0.5317 0.0000
+vn 0.9831 0.1830 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.9849 0.1731 0.0000
+vn 0.8656 0.5007 0.0000
+vn 0.6201 0.7845 0.0000
+vn 0.2941 0.9558 0.0000
+vn -0.0481 0.9988 0.0000
+vn -0.3634 0.9316 0.0000
+vn -0.5010 0.8654 0.0000
+vn -0.5737 0.8191 0.0000
+vn -0.7049 0.7093 0.0000
+vn -0.8249 0.5653 0.0000
+vn -0.9078 0.4194 0.0000
+vn -0.9570 0.2901 0.0000
+vn -0.9941 0.1081 0.0000
+vn -1.0000 0.0000 0.0000
+vn -0.9989 0.0473 0.0000
+vn -0.9690 0.2472 0.0000
+vn -0.9690 0.2471 0.0000
+vn -0.9015 0.4328 0.0000
+vn -0.8184 0.5746 0.0000
+vn -0.7352 0.6778 0.0000
+vn -0.5981 0.8014 0.0000
+vn -0.5011 0.8654 0.0000
+vn -0.2937 0.9559 0.0000
+vn 0.0348 0.9994 0.0000
+vn 0.3331 0.9429 0.0000
+vn 0.6044 0.7966 0.0000
+vn 0.6045 0.7966 0.0000
+vn 0.8382 0.5453 0.0000
+vn 0.9817 0.1907 0.0000
+vn 0.9816 0.1907 0.0000
+vn 0.9818 0.1899 0.0000
+vn 0.8529 0.5221 0.0000
+vn 0.6427 0.7661 0.0000
+vn 0.3725 0.9280 0.0000
+vn 0.0405 0.9992 0.0000
+vn -0.3302 0.9439 0.0000
+vn -0.5028 0.8644 0.0000
+vn -0.5666 0.8240 0.0000
+vn -0.7040 0.7102 0.0000
+vn -0.8265 0.5630 0.0000
+vn -0.9092 0.4164 0.0000
+vn -0.9576 0.2880 0.0000
+vn -0.9942 0.1077 0.0000
+vn -0.9942 0.1076 0.0000
+vn -0.9569 0.2903 0.0000
+vn -0.9075 0.4201 0.0000
+vn -0.8381 0.5455 0.0000
+vn -0.7532 0.6578 0.0000
+vn -0.6592 0.7520 0.0000
+vn -0.5636 0.8260 0.0000
+vn -0.5636 0.8261 0.0000
+vn -0.4490 0.8935 0.0000
+vn -0.2798 0.9601 0.0000
+vn -0.1068 0.9943 0.0000
+vn 0.0597 0.9982 0.0000
+vn 0.2707 0.9627 0.0000
+vn 0.4964 0.8681 0.0000
+vn 0.6774 0.7356 0.0000
+vn 0.8240 0.5666 0.0000
+vn 0.9108 0.4129 0.0000
+vn 0.9558 0.2942 0.0000
+vn 0.9558 0.2941 0.0000
+vn 0.9851 0.1718 0.0000
+vn 0.9988 0.0491 0.0000
+vn 1.0000 -0.0009 0.0000
+vn 0.9976 -0.0691 0.0000
+vn 0.9832 -0.1824 0.0000
+vn 0.9643 -0.2648 0.0000
+vn 0.9365 -0.3507 0.0000
+vn 0.8992 -0.4375 0.0000
+vn 0.8394 -0.5435 0.0000
+vn 0.8394 -0.5434 0.0000
+vn 0.7519 -0.6593 0.0000
+vn 0.6537 -0.7567 0.0000
+vn 0.5529 -0.8333 0.0000
+vn 0.5013 -0.8653 0.0000
+vn 0.4289 -0.9034 0.0000
+vn 0.2191 -0.9757 0.0000
+vn 0.0040 -1.0000 0.0000
+vn -0.2030 -0.9792 0.0000
+vn -0.3947 -0.9188 0.0000
+vn -0.5681 -0.8230 0.0000
+vn -0.7211 -0.6928 0.0000
+vn -0.8489 -0.5286 0.0000
+vn -0.9431 -0.3326 0.0000
+vn -0.9935 -0.1142 0.0000
+vn -1.0000 -0.0028 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 1.0000 0.0000
+usemtl None
+s off
+f 1//1 2//1 3//1
+f 1//1 3//1 4//1
+f 1//1 4//1 5//1
+f 1//1 5//1 6//1
+f 1//1 6//1 7//1
+f 1//1 7//1 8//1
+f 1//1 8//1 9//1
+f 1//1 9//1 10//1
+f 1//1 10//1 11//1
+f 1//1 11//1 12//1
+f 1//1 12//1 13//1
+f 1//1 13//1 14//1
+f 1//1 14//1 15//1
+f 3//1 2//1 16//1
+f 16//1 2//1 17//1
+f 16//1 17//1 18//1
+f 18//1 17//1 19//1
+f 18//1 19//1 20//1
+f 20//1 19//1 21//1
+f 20//1 21//1 22//1
+f 22//1 21//1 23//1
+f 22//1 23//1 24//1
+f 24//1 23//1 25//1
+f 24//1 25//1 26//1
+f 27//1 28//1 29//1
+f 29//1 28//1 30//1
+f 30//1 28//1 31//1
+f 31//1 28//1 32//1
+f 32//1 28//1 33//1
+f 33//1 28//1 34//1
+f 35//1 36//1 37//1
+f 37//1 36//1 38//1
+f 38//1 36//1 39//1
+f 39//1 36//1 40//1
+f 40//1 36//1 41//1
+f 42//1 43//1 44//1
+f 42//1 44//1 45//1
+f 42//1 45//1 46//1
+f 42//1 46//1 47//1
+f 42//1 47//1 48//1
+f 42//1 48//1 49//1
+f 42//1 49//1 50//1
+f 42//1 50//1 51//1
+f 52//1 53//1 54//1
+f 52//1 54//1 55//1
+f 52//1 55//1 56//1
+f 52//1 56//1 57//1
+f 52//1 57//1 58//1
+f 59//1 60//1 61//1
+f 59//1 61//1 62//1
+f 59//1 62//1 63//1
+f 59//1 63//1 64//1
+f 59//1 64//1 65//1
+f 59//1 65//1 66//1
+f 59//1 66//1 67//1
+f 59//1 67//1 68//1
+f 59//1 68//1 69//1
+f 59//1 69//1 36//1
+f 59//1 36//1 35//1
+f 59//1 35//1 70//1
+f 59//1 70//1 71//1
+f 59//1 71//1 72//1
+f 59//1 72//1 73//1
+f 74//1 75//1 76//1
+f 74//1 76//1 77//1
+f 74//1 77//1 78//1
+f 74//1 78//1 79//1
+f 74//1 79//1 80//1
+f 74//1 80//1 81//1
+f 74//1 81//1 82//1
+f 74//1 82//1 83//1
+f 74//1 83//1 84//1
+f 74//1 84//1 85//1
+f 74//1 85//1 86//1
+f 74//1 86//1 87//1
+f 74//1 87//1 88//1
+f 74//1 88//1 89//1
+f 74//1 89//1 90//1
+f 74//1 90//1 91//1
+f 74//1 91//1 92//1
+f 74//1 92//1 93//1
+f 74//1 93//1 94//1
+f 74//1 94//1 95//1
+f 74//1 95//1 96//1
+f 75//1 97//1 98//1
+f 75//1 98//1 99//1
+f 75//1 99//1 28//1
+f 75//1 28//1 27//1
+f 75//1 27//1 100//1
+f 75//1 100//1 101//1
+f 75//1 101//1 102//1
+f 75//1 102//1 103//1
+f 75//1 103//1 104//1
+f 75//1 104//1 105//1
+f 75//1 105//1 106//1
+f 75//1 106//1 107//1
+f 75//1 107//1 108//1
+f 75//1 108//1 109//1
+f 75//1 109//1 110//1
+f 75//1 110//1 111//1
+f 75//1 111//1 112//1
+f 75//1 112//1 113//1
+f 75//1 113//1 114//1
+f 75//1 114//1 115//1
+f 75//1 115//1 116//1
+f 75//1 116//1 117//1
+f 75//1 117//1 118//1
+f 75//1 118//1 119//1
+f 75//1 119//1 76//1
+f 120//1 74//1 96//1
+f 120//1 96//1 121//1
+f 120//1 121//1 122//1
+f 120//1 122//1 123//1
+f 120//1 123//1 124//1
+f 120//1 124//1 125//1
+f 120//1 125//1 126//1
+f 120//1 126//1 127//1
+f 120//1 127//1 128//1
+f 120//1 128//1 129//1
+f 120//1 129//1 97//1
+f 130//1 53//1 52//1
+f 130//1 52//1 131//1
+f 130//1 131//1 132//1
+f 130//1 132//1 133//1
+f 130//1 133//1 134//1
+f 77//1 130//1 134//1
+f 77//1 134//1 135//1
+f 77//1 135//1 136//1
+f 77//1 136//1 137//1
+f 77//1 137//1 138//1
+f 77//1 138//1 139//1
+f 77//1 139//1 140//1
+f 77//1 140//1 141//1
+f 77//1 141//1 142//1
+f 77//1 142//1 78//1
+f 44//1 43//1 143//1
+f 44//1 143//1 144//1
+f 44//1 144//1 145//1
+f 44//1 145//1 146//1
+f 57//1 147//1 148//1
+f 57//1 148//1 44//1
+f 57//1 44//1 146//1
+f 57//1 146//1 149//1
+f 57//1 149//1 150//1
+f 57//1 150//1 151//1
+f 57//1 151//1 58//1
+f 152//1 41//1 36//1
+f 152//1 36//1 153//1
+f 152//1 153//1 154//1
+f 152//1 154//1 155//1
+f 152//1 155//1 156//1
+f 152//1 156//1 157//1
+f 152//1 157//1 158//1
+f 152//1 158//1 159//1
+f 160//1 161//1 162//1
+f 160//1 162//1 163//1
+f 160//1 163//1 164//1
+f 160//1 164//1 73//1
+f 160//1 73//1 72//1
+f 153//1 36//1 165//1
+f 153//1 165//1 166//1
+f 153//1 166//1 167//1
+f 153//1 167//1 168//1
+f 167//1 169//1 170//1
+f 167//1 170//1 171//1
+f 167//1 171//1 172//1
+f 167//1 172//1 173//1
+f 167//1 173//1 168//1
+f 174//1 175//1 176//1
+f 174//1 176//1 177//1
+f 174//1 177//1 178//1
+f 174//1 178//1 179//1
+f 174//1 179//1 180//1
+f 174//1 180//1 181//1
+f 174//1 181//1 182//1
+f 174//1 182//1 183//1
+f 178//1 177//1 184//1
+f 178//1 184//1 185//1
+f 178//1 185//1 186//1
+f 178//1 186//1 187//1
+f 175//1 34//1 28//1
+f 175//1 28//1 188//1
+f 175//1 188//1 189//1
+f 175//1 189//1 190//1
+f 175//1 190//1 191//1
+f 175//1 191//1 176//1
+f 97//1 129//1 192//1
+f 97//1 192//1 193//1
+f 97//1 193//1 194//1
+f 97//1 194//1 195//1
+f 97//1 195//1 196//1
+f 97//1 196//1 197//1
+f 97//1 197//1 198//1
+f 97//1 198//1 199//1
+f 97//1 199//1 200//1
+f 97//1 200//1 201//1
+f 97//1 201//1 202//1
+f 97//1 202//1 203//1
+f 97//1 203//1 204//1
+f 97//1 204//1 205//1
+f 97//1 205//1 206//1
+f 97//1 206//1 207//1
+f 97//1 207//1 208//1
+f 97//1 208//1 209//1
+f 97//1 209//1 210//1
+f 97//1 210//1 211//1
+f 97//1 211//1 212//1
+f 97//1 212//1 98//1
+f 213//1 194//1 193//1
+f 213//1 193//1 214//1
+f 213//1 214//1 215//1
+f 213//1 215//1 216//1
+f 213//1 216//1 217//1
+f 213//1 217//1 218//1
+f 213//1 218//1 42//1
+f 213//1 42//1 51//1
+f 219//1 207//1 220//1
+f 219//1 220//1 221//1
+f 219//1 221//1 222//1
+f 219//1 222//1 223//1
+f 219//1 223//1 224//1
+f 219//1 224//1 225//1
+f 219//1 225//1 226//1
+f 219//1 226//1 227//1
+f 207//1 206//1 228//1
+f 207//1 228//1 229//1
+f 207//1 229//1 230//1
+f 207//1 230//1 231//1
+f 207//1 231//1 220//1
+f 148//1 147//1 232//1
+f 232//1 147//1 233//1
+f 232//1 233//1 234//1
+f 232//1 234//1 235//1
+f 235//1 234//1 236//1
+f 235//1 236//1 237//1
+f 237//1 236//1 238//1
+f 237//1 238//1 239//1
+f 239//1 238//1 240//1
+f 239//1 240//1 241//1
+f 241//1 240//1 242//1
+f 242//1 240//1 243//1
+f 242//1 243//1 244//1
+f 244//1 243//1 60//1
+f 60//1 243//1 245//1
+f 60//1 245//1 61//1
+f 162//1 161//1 246//1
+f 246//1 161//1 247//1
+f 246//1 247//1 248//1
+f 248//1 247//1 249//1
+f 248//1 249//1 250//1
+f 248//1 250//1 251//1
+f 251//1 250//1 252//1
+f 251//1 252//1 253//1
+f 253//1 252//1 104//1
+f 253//1 104//1 103//1
+f 254//1 255//1 256//1
+f 256//1 255//1 257//1
+f 256//1 257//1 169//1
+f 169//1 257//1 258//1
+f 169//1 258//1 170//1
+f 187//1 186//1 259//1
+f 259//1 186//1 260//1
+f 261//1 262//1 263//1
+f 263//1 262//1 264//1
+f 263//1 264//1 265//1
+f 265//1 264//1 222//1
+f 265//1 222//1 266//1
+f 266//1 222//1 221//1
+f 267//2 268//2 56//2
+f 56//2 268//2 57//2
+f 238//3 269//3 240//3
+f 240//4 269//4 270//4
+f 240//4 270//4 243//4
+f 243//5 270//5 271//5
+f 243//5 271//5 245//5
+f 245//6 271//6 272//6
+f 245//6 272//6 61//6
+f 269//3 238//3 273//3
+f 273//7 238//7 236//7
+f 273//7 236//7 274//7
+f 274//8 236//8 234//8
+f 274//8 234//8 275//8
+f 275//9 234//9 233//9
+f 275//9 233//9 276//9
+f 276//10 233//10 147//10
+f 276//10 147//10 277//10
+f 277//11 147//11 57//11
+f 277//11 57//11 268//11
+f 272//12 278//12 61//12
+f 61//12 278//12 62//12
+f 68//13 279//13 69//13
+f 69//14 279//14 280//14
+f 69//14 280//14 36//14
+f 36//15 280//15 281//15
+f 36//15 281//15 165//15
+f 165//16 281//16 282//16
+f 165//16 282//16 166//16
+f 166//17 282//17 283//17
+f 166//18 283//18 167//18
+f 279//13 68//13 284//13
+f 284//19 68//19 67//19
+f 284//19 67//19 285//19
+f 285//20 67//20 66//20
+f 285//20 66//20 286//20
+f 286//21 66//21 65//21
+f 286//21 65//21 287//21
+f 287//22 65//22 64//22
+f 287//22 64//22 288//22
+f 288//23 64//23 63//23
+f 288//23 63//23 289//23
+f 289//24 63//24 62//24
+f 289//24 62//24 278//24
+f 283//25 290//25 167//25
+f 167//25 290//25 169//25
+f 258//26 291//26 170//26
+f 170//27 291//27 292//27
+f 170//27 292//27 171//27
+f 171//28 292//28 293//28
+f 171//28 293//28 172//28
+f 172//29 293//29 294//29
+f 172//30 294//30 173//30
+f 173//31 294//31 295//31
+f 173//31 295//31 168//31
+f 291//26 258//26 296//26
+f 296//32 258//32 257//32
+f 296//32 257//32 297//32
+f 297//33 257//33 255//33
+f 297//33 255//33 298//33
+f 298//34 255//34 254//34
+f 298//34 254//34 299//34
+f 299//35 254//35 256//35
+f 299//35 256//35 300//35
+f 300//36 256//36 169//36
+f 300//36 169//36 290//36
+f 295//37 301//37 168//37
+f 168//37 301//37 153//37
+f 156//38 302//38 157//38
+f 157//39 302//39 303//39
+f 157//39 303//39 158//39
+f 158//40 303//40 304//40
+f 158//40 304//40 159//40
+f 302//38 156//38 305//38
+f 305//41 156//41 155//41
+f 305//41 155//41 306//41
+f 306//42 155//42 154//42
+f 306//42 154//42 307//42
+f 307//43 154//43 153//43
+f 307//43 153//43 301//43
+f 304//2 308//2 159//2
+f 159//2 308//2 152//2
+f 38//44 309//44 37//44
+f 37//45 309//45 310//45
+f 37//45 310//45 35//45
+f 35//46 310//46 311//46
+f 35//46 311//46 70//46
+f 70//47 311//47 312//47
+f 70//47 312//47 71//47
+f 309//44 38//44 313//44
+f 313//48 38//48 39//48
+f 313//48 39//48 314//48
+f 314//49 39//49 40//49
+f 314//49 40//49 315//49
+f 315//50 40//50 41//50
+f 315//50 41//50 316//50
+f 316//51 41//51 152//51
+f 316//51 152//51 308//51
+f 312//52 317//52 71//52
+f 71//52 317//52 72//52
+f 104//53 318//53 105//53
+f 105//54 318//54 319//54
+f 105//54 319//54 106//54
+f 106//55 319//55 320//55
+f 106//55 320//55 107//55
+f 107//56 320//56 321//56
+f 107//56 321//56 108//56
+f 108//57 321//57 322//57
+f 108//57 322//57 109//57
+f 109//58 322//58 323//58
+f 109//58 323//58 110//58
+f 318//53 104//53 324//53
+f 324//59 104//59 252//59
+f 324//59 252//59 325//59
+f 325//60 252//60 250//60
+f 325//60 250//60 326//60
+f 326//61 250//61 249//61
+f 326//61 249//61 327//61
+f 327//62 249//62 247//62
+f 327//62 247//62 328//62
+f 328//63 247//63 161//63
+f 328//63 161//63 329//63
+f 329//64 161//64 160//64
+f 329//64 160//64 330//64
+f 330//65 160//65 72//65
+f 330//65 72//65 317//65
+f 323//25 331//25 110//25
+f 110//25 331//25 111//25
+f 114//66 332//66 115//66
+f 115//67 332//67 333//67
+f 115//67 333//67 116//67
+f 116//68 333//68 334//68
+f 116//68 334//68 117//68
+f 332//66 114//66 335//66
+f 335//69 114//69 113//69
+f 335//69 113//69 336//69
+f 336//70 113//70 112//70
+f 336//70 112//70 337//70
+f 337//71 112//71 111//71
+f 337//71 111//71 331//71
+f 334//72 338//72 117//72
+f 117//72 338//72 118//72
+f 130//73 339//73 53//73
+f 53//74 339//74 340//74
+f 53//74 340//74 54//74
+f 54//75 340//75 341//75
+f 54//75 341//75 55//75
+f 55//76 341//76 267//76
+f 55//76 267//76 56//76
+f 339//73 130//73 342//73
+f 342//77 130//77 77//77
+f 342//77 77//77 343//77
+f 343//78 77//78 76//78
+f 343//78 76//78 344//78
+f 344//79 76//79 119//79
+f 344//79 119//79 345//79
+f 345//80 119//80 118//80
+f 345//81 118//81 338//81
+f 346//25 17//25 347//25
+f 347//25 17//25 2//25
+f 17//82 346//82 19//82
+f 19//82 346//82 348//82
+f 19//83 348//83 21//83
+f 21//83 348//83 349//83
+f 21//84 349//84 23//84
+f 23//84 349//84 350//84
+f 23//85 350//85 25//85
+f 25//85 350//85 351//85
+f 25//86 351//86 26//86
+f 26//86 351//86 352//86
+f 26//87 352//87 24//87
+f 24//87 352//87 353//87
+f 24//88 353//88 22//88
+f 22//88 353//88 354//88
+f 22//89 354//89 20//89
+f 20//89 354//89 355//89
+f 20//90 355//90 18//90
+f 18//90 355//90 356//90
+f 18//91 356//91 16//91
+f 16//91 356//91 357//91
+f 358//92 3//92 357//92
+f 357//92 3//92 16//92
+f 3//93 358//93 4//93
+f 4//93 358//93 359//93
+f 4//94 359//94 5//94
+f 5//94 359//94 360//94
+f 5//95 360//95 6//95
+f 6//95 360//95 361//95
+f 6//96 361//96 7//96
+f 7//96 361//96 362//96
+f 7//97 362//97 8//97
+f 8//97 362//97 363//97
+f 8//98 363//98 9//98
+f 9//98 363//98 364//98
+f 9//99 364//99 10//99
+f 10//99 364//99 365//99
+f 10//100 365//100 11//100
+f 11//100 365//100 366//100
+f 11//101 366//101 12//101
+f 12//101 366//101 367//101
+f 12//102 367//102 13//102
+f 13//103 367//103 368//103
+f 13//104 368//104 14//104
+f 14//104 368//104 369//104
+f 14//105 369//105 15//105
+f 15//105 369//105 370//105
+f 371//2 1//2 370//2
+f 370//2 1//2 15//2
+f 347//106 2//106 371//106
+f 371//106 2//106 1//106
+f 372//107 43//107 373//107
+f 373//107 43//107 42//107
+f 43//108 372//108 143//108
+f 143//108 372//108 374//108
+f 143//109 374//109 144//109
+f 144//109 374//109 375//109
+f 144//110 375//110 145//110
+f 145//110 375//110 376//110
+f 145//111 376//111 146//111
+f 146//111 376//111 377//111
+f 146//112 377//112 149//112
+f 149//112 377//112 378//112
+f 149//113 378//113 150//113
+f 150//113 378//113 379//113
+f 150//114 379//114 151//114
+f 151//114 379//114 380//114
+f 151//115 380//115 58//115
+f 58//115 380//115 381//115
+f 382//116 52//116 381//116
+f 381//116 52//116 58//116
+f 52//117 382//117 131//117
+f 131//117 382//117 383//117
+f 131//118 383//118 132//118
+f 132//118 383//118 384//118
+f 132//119 384//119 133//119
+f 133//119 384//119 385//119
+f 133//120 385//120 134//120
+f 134//120 385//120 386//120
+f 134//121 386//121 135//121
+f 135//121 386//121 387//121
+f 135//122 387//122 136//122
+f 136//122 387//122 388//122
+f 136//123 388//123 137//123
+f 137//124 388//124 389//124
+f 137//125 389//125 138//125
+f 138//125 389//125 390//125
+f 138//126 390//126 139//126
+f 139//126 390//126 391//126
+f 139//127 391//127 140//127
+f 140//127 391//127 392//127
+f 140//128 392//128 141//128
+f 141//128 392//128 393//128
+f 141//129 393//129 142//129
+f 142//129 393//129 394//129
+f 142//130 394//130 78//130
+f 78//130 394//130 395//130
+f 78//131 395//131 79//131
+f 79//131 395//131 396//131
+f 79//132 396//132 80//132
+f 80//132 396//132 397//132
+f 80//133 397//133 81//133
+f 81//133 397//133 398//133
+f 399//134 82//134 398//134
+f 398//134 82//134 81//134
+f 83//135 82//135 400//135
+f 400//135 82//135 399//135
+f 83//136 400//136 84//136
+f 84//136 400//136 401//136
+f 84//137 401//137 85//137
+f 85//137 401//137 402//137
+f 85//138 402//138 86//138
+f 86//138 402//138 403//138
+f 86//139 403//139 87//139
+f 87//139 403//139 404//139
+f 87//140 404//140 88//140
+f 88//140 404//140 405//140
+f 88//141 405//141 89//141
+f 89//141 405//141 406//141
+f 89//142 406//142 90//142
+f 90//142 406//142 407//142
+f 90//143 407//143 91//143
+f 91//143 407//143 408//143
+f 91//144 408//144 92//144
+f 92//144 408//144 409//144
+f 92//145 409//145 93//145
+f 93//145 409//145 410//145
+f 93//146 410//146 94//146
+f 94//146 410//146 411//146
+f 94//147 411//147 95//147
+f 95//147 411//147 412//147
+f 95//148 412//148 96//148
+f 96//148 412//148 413//148
+f 96//149 413//149 121//149
+f 121//150 413//150 414//150
+f 121//2 414//2 122//2
+f 122//2 414//2 415//2
+f 122//2 415//2 123//2
+f 123//2 415//2 416//2
+f 123//2 416//2 124//2
+f 124//2 416//2 417//2
+f 124//151 417//151 125//151
+f 125//151 417//151 418//151
+f 125//152 418//152 126//152
+f 126//152 418//152 419//152
+f 126//153 419//153 127//153
+f 127//153 419//153 420//153
+f 127//154 420//154 128//154
+f 128//154 420//154 421//154
+f 128//155 421//155 129//155
+f 129//156 421//156 422//156
+f 129//157 422//157 192//157
+f 192//157 422//157 423//157
+f 192//158 423//158 193//158
+f 193//158 423//158 424//158
+f 193//159 424//159 214//159
+f 214//160 424//160 425//160
+f 214//161 425//161 215//161
+f 215//161 425//161 426//161
+f 215//162 426//162 216//162
+f 216//162 426//162 427//162
+f 216//163 427//163 217//163
+f 217//163 427//163 428//163
+f 217//164 428//164 218//164
+f 218//165 428//165 429//165
+f 218//166 429//166 42//166
+f 42//166 429//166 373//166
+f 197//167 430//167 198//167
+f 198//167 430//167 431//167
+f 198//168 431//168 199//168
+f 199//168 431//168 432//168
+f 199//169 432//169 200//169
+f 200//169 432//169 433//169
+f 200//170 433//170 201//170
+f 201//170 433//170 434//170
+f 201//171 434//171 202//171
+f 202//171 434//171 435//171
+f 202//172 435//172 203//172
+f 203//172 435//172 436//172
+f 203//173 436//173 204//173
+f 204//174 436//174 437//174
+f 438//175 205//175 437//175
+f 437//175 205//175 204//175
+f 205//176 438//176 206//176
+f 206//176 438//176 439//176
+f 206//177 439//177 228//177
+f 228//177 439//177 440//177
+f 228//178 440//178 229//178
+f 229//178 440//178 441//178
+f 229//179 441//179 230//179
+f 230//179 441//179 442//179
+f 230//180 442//180 231//180
+f 231//180 442//180 443//180
+f 231//181 443//181 220//181
+f 220//181 443//181 444//181
+f 445//182 221//182 444//182
+f 444//182 221//182 220//182
+f 221//183 445//183 266//183
+f 266//183 445//183 446//183
+f 266//184 446//184 265//184
+f 265//184 446//184 447//184
+f 265//185 447//185 263//185
+f 263//185 447//185 448//185
+f 263//186 448//186 261//186
+f 261//186 448//186 449//186
+f 261//187 449//187 262//187
+f 262//187 449//187 450//187
+f 262//188 450//188 264//188
+f 264//188 450//188 451//188
+f 452//189 222//189 451//189
+f 451//189 222//189 264//189
+f 222//190 452//190 223//190
+f 223//190 452//190 453//190
+f 223//191 453//191 224//191
+f 224//191 453//191 454//191
+f 224//192 454//192 225//192
+f 225//192 454//192 455//192
+f 225//193 455//193 226//193
+f 226//193 455//193 456//193
+f 226//194 456//194 227//194
+f 227//194 456//194 457//194
+f 227//195 457//195 219//195
+f 219//195 457//195 458//195
+f 459//196 207//196 458//196
+f 458//196 207//196 219//196
+f 207//197 459//197 208//197
+f 208//197 459//197 460//197
+f 208//198 460//198 209//198
+f 209//199 460//199 461//199
+f 209//200 461//200 210//200
+f 210//200 461//200 462//200
+f 210//201 462//201 211//201
+f 211//201 462//201 463//201
+f 211//202 463//202 212//202
+f 212//202 463//202 464//202
+f 212//203 464//203 98//203
+f 98//203 464//203 465//203
+f 466//204 99//204 465//204
+f 465//204 99//204 98//204
+f 99//205 466//205 28//205
+f 28//205 466//205 467//205
+f 28//206 467//206 188//206
+f 188//206 467//206 468//206
+f 188//207 468//207 189//207
+f 189//207 468//207 469//207
+f 189//208 469//208 190//208
+f 190//209 469//209 470//209
+f 190//210 470//210 191//210
+f 191//210 470//210 471//210
+f 191//211 471//211 176//211
+f 176//212 471//212 472//212
+f 473//182 177//182 472//182
+f 472//182 177//182 176//182
+f 177//213 473//213 184//213
+f 184//213 473//213 474//213
+f 184//214 474//214 185//214
+f 185//214 474//214 475//214
+f 185//215 475//215 186//215
+f 186//215 475//215 476//215
+f 186//216 476//216 260//216
+f 260//216 476//216 477//216
+f 260//217 477//217 259//217
+f 259//217 477//217 478//217
+f 259//218 478//218 187//218
+f 187//218 478//218 479//218
+f 480//219 178//219 479//219
+f 479//219 178//219 187//219
+f 178//220 480//220 179//220
+f 179//220 480//220 481//220
+f 179//221 481//221 180//221
+f 180//221 481//221 482//221
+f 180//222 482//222 181//222
+f 181//222 482//222 483//222
+f 181//223 483//223 182//223
+f 182//223 483//223 484//223
+f 182//224 484//224 183//224
+f 183//224 484//224 485//224
+f 183//225 485//225 174//225
+f 174//225 485//225 486//225
+f 487//196 175//196 486//196
+f 486//196 175//196 174//196
+f 175//226 487//226 34//226
+f 34//226 487//226 488//226
+f 34//227 488//227 33//227
+f 33//227 488//227 489//227
+f 33//228 489//228 32//228
+f 32//228 489//228 490//228
+f 32//229 490//229 31//229
+f 31//229 490//229 491//229
+f 31//230 491//230 30//230
+f 30//230 491//230 492//230
+f 30//231 492//231 29//231
+f 29//231 492//231 493//231
+f 29//232 493//232 27//232
+f 27//233 493//233 494//233
+f 495//204 100//204 494//204
+f 494//204 100//204 27//204
+f 100//234 495//234 101//234
+f 101//234 495//234 496//234
+f 101//235 496//235 102//235
+f 102//235 496//235 497//235
+f 102//236 497//236 103//236
+f 103//236 497//236 498//236
+f 103//237 498//237 253//237
+f 253//237 498//237 499//237
+f 253//238 499//238 251//238
+f 251//238 499//238 500//238
+f 251//239 500//239 248//239
+f 248//239 500//239 501//239
+f 248//240 501//240 246//240
+f 246//240 501//240 502//240
+f 246//241 502//241 162//241
+f 162//241 502//241 503//241
+f 162//242 503//242 163//242
+f 163//242 503//242 504//242
+f 163//243 504//243 164//243
+f 164//244 504//244 505//244
+f 164//245 505//245 73//245
+f 73//245 505//245 506//245
+f 73//246 506//246 59//246
+f 59//246 506//246 507//246
+f 508//247 60//247 507//247
+f 507//247 60//247 59//247
+f 60//248 508//248 244//248
+f 244//248 508//248 509//248
+f 244//249 509//249 242//249
+f 242//249 509//249 510//249
+f 242//250 510//250 241//250
+f 241//250 510//250 511//250
+f 241//251 511//251 239//251
+f 239//251 511//251 512//251
+f 239//252 512//252 237//252
+f 237//252 512//252 513//252
+f 237//253 513//253 235//253
+f 235//254 513//254 514//254
+f 235//255 514//255 232//255
+f 232//255 514//255 515//255
+f 232//256 515//256 148//256
+f 148//256 515//256 516//256
+f 148//257 516//257 44//257
+f 44//257 516//257 517//257
+f 518//258 45//258 517//258
+f 517//258 45//258 44//258
+f 45//259 518//259 46//259
+f 46//259 518//259 519//259
+f 46//260 519//260 47//260
+f 47//260 519//260 520//260
+f 47//261 520//261 48//261
+f 48//261 520//261 521//261
+f 48//262 521//262 49//262
+f 49//262 521//262 522//262
+f 49//263 522//263 50//263
+f 50//263 522//263 523//263
+f 50//264 523//264 51//264
+f 51//264 523//264 524//264
+f 51//265 524//265 213//265
+f 213//265 524//265 525//265
+f 213//266 525//266 194//266
+f 194//266 525//266 526//266
+f 194//267 526//267 195//267
+f 195//267 526//267 527//267
+f 195//268 527//268 196//268
+f 196//268 527//268 528//268
+f 430//269 197//269 528//269
+f 528//269 197//269 196//269
+f 324//1 319//1 318//1
+f 272//1 296//1 297//1
+f 272//1 297//1 298//1
+f 272//1 298//1 299//1
+f 272//1 299//1 300//1
+f 272//1 300//1 290//1
+f 272//1 290//1 278//1
+f 334//1 308//1 304//1
+f 334//1 304//1 303//1
+f 334//1 303//1 302//1
+f 334//1 302//1 305//1
+f 334//1 305//1 306//1
+f 334//1 306//1 307//1
+f 334//1 307//1 301//1
+f 334//1 301//1 295//1
+f 334//1 295//1 294//1
+f 334//1 294//1 293//1
+f 334//1 293//1 292//1
+f 334//1 292//1 291//1
+f 334//1 291//1 296//1
+f 334//1 296//1 272//1
+f 334//1 272//1 271//1
+f 334//1 271//1 270//1
+f 334//1 270//1 269//1
+f 334//1 269//1 273//1
+f 334//1 273//1 274//1
+f 334//1 274//1 275//1
+f 334//1 275//1 276//1
+f 334//1 276//1 277//1
+f 334//1 277//1 268//1
+f 334//1 268//1 338//1
+f 268//1 267//1 339//1
+f 268//1 339//1 342//1
+f 268//1 342//1 343//1
+f 268//1 343//1 344//1
+f 268//1 344//1 345//1
+f 268//1 345//1 338//1
+f 308//1 334//1 333//1
+f 308//1 333//1 332//1
+f 308//1 332//1 335//1
+f 308//1 335//1 336//1
+f 308//1 336//1 337//1
+f 308//1 337//1 331//1
+f 323//1 322//1 326//1
+f 323//1 326//1 327//1
+f 323//1 327//1 328//1
+f 323//1 328//1 329//1
+f 323//1 329//1 330//1
+f 323//1 330//1 317//1
+f 323//1 317//1 312//1
+f 323//1 312//1 311//1
+f 323//1 311//1 310//1
+f 323//1 310//1 309//1
+f 323//1 309//1 313//1
+f 323//1 313//1 314//1
+f 323//1 314//1 315//1
+f 323//1 315//1 316//1
+f 323//1 316//1 308//1
+f 323//1 308//1 331//1
+f 283//1 282//1 285//1
+f 283//1 285//1 286//1
+f 283//1 286//1 287//1
+f 283//1 287//1 288//1
+f 283//1 288//1 289//1
+f 283//1 289//1 278//1
+f 283//1 278//1 290//1
+f 339//1 267//1 340//1
+f 340//1 267//1 341//1
+f 326//1 322//1 325//1
+f 325//1 322//1 321//1
+f 325//1 321//1 324//1
+f 324//1 321//1 320//1
+f 324//1 320//1 319//1
+f 285//1 282//1 284//1
+f 284//1 282//1 281//1
+f 284//1 281//1 279//1
+f 279//1 281//1 280//1
+f 401//1 403//1 402//1
+f 406//1 408//1 407//1
+f 371//1 370//1 382//1
+f 371//1 382//1 381//1
+f 371//1 381//1 380//1
+f 371//1 380//1 379//1
+f 371//1 379//1 378//1
+f 371//1 378//1 377//1
+f 371//1 377//1 376//1
+f 371//1 376//1 375//1
+f 371//1 375//1 374//1
+f 371//1 374//1 372//1
+f 400//1 406//1 405//1
+f 400//1 405//1 404//1
+f 400//1 404//1 403//1
+f 400//1 403//1 401//1
+f 356//1 355//1 408//1
+f 356//1 408//1 406//1
+f 356//1 406//1 400//1
+f 356//1 400//1 399//1
+f 356//1 399//1 398//1
+f 356//1 398//1 357//1
+f 358//1 357//1 398//1
+f 358//1 398//1 397//1
+f 358//1 397//1 396//1
+f 358//1 396//1 395//1
+f 358//1 395//1 394//1
+f 358//1 394//1 393//1
+f 352//1 351//1 416//1
+f 352//1 416//1 415//1
+f 352//1 415//1 414//1
+f 352//1 414//1 413//1
+f 352//1 413//1 412//1
+f 352//1 412//1 411//1
+f 352//1 411//1 410//1
+f 352//1 410//1 409//1
+f 352//1 409//1 353//1
+f 417//1 416//1 351//1
+f 417//1 351//1 350//1
+f 417//1 350//1 349//1
+f 417//1 349//1 348//1
+f 417//1 348//1 346//1
+f 417//1 346//1 347//1
+f 347//1 371//1 417//1
+f 417//1 371//1 372//1
+f 417//1 372//1 418//1
+f 418//1 372//1 373//1
+f 418//1 373//1 419//1
+f 419//1 373//1 429//1
+f 419//1 429//1 420//1
+f 420//1 429//1 428//1
+f 420//1 428//1 421//1
+f 421//1 428//1 427//1
+f 421//1 427//1 422//1
+f 422//1 427//1 426//1
+f 422//1 426//1 423//1
+f 423//1 426//1 425//1
+f 423//1 425//1 424//1
+f 353//1 409//1 354//1
+f 354//1 409//1 408//1
+f 354//1 408//1 355//1
+f 358//1 393//1 359//1
+f 359//1 393//1 392//1
+f 359//1 392//1 360//1
+f 360//1 392//1 391//1
+f 360//1 391//1 361//1
+f 361//1 391//1 390//1
+f 361//1 390//1 362//1
+f 362//1 390//1 389//1
+f 362//1 389//1 363//1
+f 363//1 389//1 388//1
+f 363//1 388//1 364//1
+f 364//1 388//1 387//1
+f 364//1 387//1 365//1
+f 365//1 387//1 366//1
+f 366//1 387//1 386//1
+f 366//1 386//1 367//1
+f 367//1 386//1 385//1
+f 367//1 385//1 368//1
+f 368//1 385//1 384//1
+f 368//1 384//1 369//1
+f 369//1 384//1 370//1
+f 370//1 384//1 383//1
+f 370//1 383//1 382//1
+f 430//1 446//1 445//1
+f 430//1 447//1 446//1
+f 499//1 497//1 496//1
+f 497//1 499//1 498//1
+f 507//1 495//1 494//1
+f 507//1 494//1 493//1
+f 507//1 493//1 492//1
+f 507//1 492//1 491//1
+f 507//1 491//1 490//1
+f 507//1 490//1 489//1
+f 507//1 489//1 488//1
+f 507//1 488//1 487//1
+f 507//1 487//1 486//1
+f 507//1 486//1 485//1
+f 507//1 485//1 484//1
+f 507//1 484//1 483//1
+f 479//1 478//1 458//1
+f 479//1 458//1 457//1
+f 479//1 457//1 456//1
+f 479//1 456//1 455//1
+f 479//1 455//1 454//1
+f 479//1 454//1 453//1
+f 479//1 453//1 452//1
+f 508//1 507//1 483//1
+f 508//1 483//1 482//1
+f 508//1 482//1 481//1
+f 508//1 481//1 480//1
+f 508//1 480//1 479//1
+f 508//1 479//1 452//1
+f 508//1 452//1 451//1
+f 508//1 451//1 450//1
+f 508//1 450//1 449//1
+f 495//1 507//1 506//1
+f 495//1 506//1 505//1
+f 495//1 505//1 504//1
+f 495//1 504//1 503//1
+f 495//1 503//1 502//1
+f 495//1 502//1 501//1
+f 495//1 501//1 500//1
+f 495//1 500//1 499//1
+f 495//1 499//1 496//1
+f 449//1 511//1 510//1
+f 449//1 510//1 509//1
+f 449//1 509//1 508//1
+f 448//1 517//1 516//1
+f 448//1 516//1 515//1
+f 448//1 515//1 514//1
+f 448//1 514//1 513//1
+f 448//1 513//1 512//1
+f 448//1 512//1 511//1
+f 448//1 511//1 449//1
+f 528//1 517//1 448//1
+f 528//1 448//1 447//1
+f 528//1 447//1 430//1
+f 517//1 528//1 527//1
+f 517//1 527//1 526//1
+f 517//1 526//1 525//1
+f 517//1 525//1 524//1
+f 517//1 524//1 523//1
+f 517//1 523//1 518//1
+f 444//1 438//1 437//1
+f 444//1 437//1 436//1
+f 444//1 436//1 435//1
+f 444//1 435//1 434//1
+f 444//1 434//1 433//1
+f 444//1 433//1 432//1
+f 444//1 432//1 431//1
+f 444//1 431//1 430//1
+f 444//1 430//1 445//1
+f 438//1 444//1 443//1
+f 438//1 443//1 442//1
+f 438//1 442//1 441//1
+f 438//1 441//1 440//1
+f 438//1 440//1 439//1
+f 458//1 478//1 477//1
+f 458//1 477//1 476//1
+f 458//1 476//1 475//1
+f 458//1 475//1 474//1
+f 458//1 474//1 473//1
+f 458//1 473//1 472//1
+f 458//1 472//1 459//1
+f 466//1 465//1 472//1
+f 466//1 472//1 471//1
+f 466//1 471//1 470//1
+f 466//1 470//1 469//1
+f 466//1 469//1 468//1
+f 466//1 468//1 467//1
+f 472//1 465//1 464//1
+f 472//1 464//1 463//1
+f 472//1 463//1 462//1
+f 472//1 462//1 461//1
+f 472//1 461//1 460//1
+f 472//1 460//1 459//1
+f 521//1 520//1 522//1
+f 522//1 520//1 519//1
+f 522//1 519//1 523//1
+f 523//1 519//1 518//1
+f 529//270 530//270 531//270
+f 531//270 530//270 532//270
+f 532//182 120//182 531//182
+f 531//182 120//182 97//182
+f 531//271 97//271 529//271
+f 529//271 97//271 75//271
+f 529//196 75//196 530//196
+f 530//196 75//196 74//196
+f 530//272 74//272 532//272
+f 532//272 74//272 120//272
diff --git a/resources/meshes/hellbot_hidra.obj b/resources/meshes/hellbot_hidra.obj
index 8f5a11b3e9..992a5bdd20 100644
--- a/resources/meshes/hellbot_hidra.obj
+++ b/resources/meshes/hellbot_hidra.obj
@@ -1,6 +1,3 @@
-# Exported from 3D Builder
-mtllib hellbot_hidra.mtl
-
o Object.1
v -48.976158 -116.868103 -0.999955 188 188 188
v -63.523849 -108.540039 1.000040 188 188 188
diff --git a/resources/meshes/hellbot_hidra_plus.obj b/resources/meshes/hellbot_hidra_plus.obj
index 725c577fc3..4b39269b9b 100644
--- a/resources/meshes/hellbot_hidra_plus.obj
+++ b/resources/meshes/hellbot_hidra_plus.obj
@@ -1,6 +1,3 @@
-# Exported from 3D Builder
-mtllib hellbot_hidra_plus.mtl
-
o Object.1
v -150.000000 160.000168 -1.000108 188 188 188
v -91.259621 -159.160385 -0.999880 188 188 188
diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml
index ef1622daee..b058ead22f 100644
--- a/resources/qml/Account/AccountWidget.qml
+++ b/resources/qml/Account/AccountWidget.qml
@@ -12,8 +12,8 @@ Item
property var profile: Cura.API.account.userProfile
property var loggedIn: Cura.API.account.isLoggedIn
- height: signInButton.height > accountWidget.height ? signInButton.height : accountWidget.height
- width: signInButton.width > accountWidget.width ? signInButton.width : accountWidget.width
+ height: signInButton.visible ? signInButton.height : accountWidget.height
+ width: signInButton.visible ? signInButton.width : accountWidget.width
Button
{
@@ -32,9 +32,18 @@ Item
background: Rectangle
{
radius: UM.Theme.getSize("action_button_radius").width
- color: signInButton.hovered ? UM.Theme.getColor("primary_text") : UM.Theme.getColor("main_window_header_background")
+ color: UM.Theme.getColor("main_window_header_background")
border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("primary_text")
+
+ Rectangle
+ {
+ anchors.fill: parent
+ radius: parent.radius
+ color: UM.Theme.getColor("primary_text")
+ opacity: signInButton.hovered ? 0.2 : 0
+ Behavior on opacity { NumberAnimation { duration: 100 } }
+ }
}
contentItem: Label
@@ -42,7 +51,7 @@ Item
id: label
text: signInButton.text
font: UM.Theme.getFont("default")
- color: signInButton.hovered ? UM.Theme.getColor("main_window_header_background") : UM.Theme.getColor("primary_text")
+ color: UM.Theme.getColor("primary_text")
width: contentWidth
verticalAlignment: Text.AlignVCenter
renderType: Text.NativeRendering
@@ -54,7 +63,6 @@ Item
id: accountWidget
anchors.verticalCenter: parent.verticalCenter
- anchors.horizontalCenter: signInButton.horizontalCenter
implicitHeight: Math.round(0.5 * UM.Theme.getSize("main_window_header").height)
implicitWidth: Math.round(0.5 * UM.Theme.getSize("main_window_header").height)
@@ -90,9 +98,19 @@ Item
width: Math.min(accountWidget.width, accountWidget.height)
height: width
radius: width
- color: accountWidget.hovered ? UM.Theme.getColor("primary_text") : "transparent"
- border.width: 1
+ color: UM.Theme.getColor("main_window_header_background")
+ border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("primary_text")
+
+ Rectangle
+ {
+ id: initialCircleFill
+ anchors.fill: parent
+ radius: parent.radius
+ color: UM.Theme.getColor("primary_text")
+ opacity: accountWidget.hovered ? 0.2 : 0
+ Behavior on opacity { NumberAnimation { duration: 100 } }
+ }
}
Label
@@ -102,7 +120,7 @@ Item
anchors.horizontalCenter: parent.horizontalCenter
text: accountWidget.text
font: UM.Theme.getFont("large_bold")
- color: accountWidget.hovered ? UM.Theme.getColor("main_window_header_background") : UM.Theme.getColor("primary_text")
+ color: UM.Theme.getColor("primary_text")
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
renderType: Text.NativeRendering
@@ -142,7 +160,7 @@ Item
borderColor: UM.Theme.getColor("lining")
borderWidth: UM.Theme.getSize("default_lining").width
- target: Qt.point(width - (signInButton.width / 2), -10)
+ target: Qt.point(width - ((signInButton.visible ? signInButton.width : accountWidget.width) / 2), -10)
arrowSize: UM.Theme.getSize("default_arrow").width
}
diff --git a/resources/qml/ApplicationSwitcher/ApplicationButton.qml b/resources/qml/ApplicationSwitcher/ApplicationButton.qml
new file mode 100644
index 0000000000..bcf780753c
--- /dev/null
+++ b/resources/qml/ApplicationSwitcher/ApplicationButton.qml
@@ -0,0 +1,91 @@
+// Copyright (c) 2021 Ultimaker B.V.
+// Cura is released under the terms of the LGPLv3 or higher.
+
+import QtQuick 2.10
+import QtQuick.Controls 2.3
+
+import UM 1.4 as UM
+import Cura 1.1 as Cura
+
+Button
+{
+ id: base
+
+ property alias iconSource: applicationIcon.source
+ property alias displayName: applicationDisplayName.text
+ property alias tooltipText: tooltip.text
+ property bool isExternalLink: false
+ property color borderColor: hovered ? UM.Theme.getColor("primary") : "transparent"
+ property color backgroundColor: hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
+ Behavior on backgroundColor { ColorAnimation { duration: 200; } }
+ Behavior on borderColor { ColorAnimation { duration: 200; } }
+
+ hoverEnabled: true
+ width: UM.Theme.getSize("application_switcher_item").width
+ height: UM.Theme.getSize("application_switcher_item").height
+
+ background: Rectangle
+ {
+ color:backgroundColor
+ border.color: borderColor
+ border.width: UM.Theme.getSize("default_lining").width
+ }
+
+ Cura.ToolTip
+ {
+ id: tooltip
+ tooltipText: base.text
+ visible: base.hovered
+ }
+
+ Column
+ {
+ id: applicationButtonContent
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+
+ UM.RecolorImage
+ {
+ id: applicationIcon
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ color: UM.Theme.getColor("icon")
+ width: UM.Theme.getSize("application_switcher_icon").width
+ height: width
+
+ UM.RecolorImage
+ {
+ id: externalLinkIndicatorIcon
+ visible: base.isExternalLink
+
+ anchors
+ {
+ bottom: parent.bottom
+ bottomMargin: - Math.round(height * 1 / 6)
+ right: parent.right
+ rightMargin: - Math.round(width * 5 / 6)
+ }
+ width: UM.Theme.getSize("icon_indicator").width
+ height: width
+ color: UM.Theme.getColor("icon")
+ source: UM.Theme.getIcon("LinkExternal")
+ }
+ }
+
+ Label
+ {
+ id: applicationDisplayName
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ height: base.height - applicationIcon.height - 2 * UM.Theme.getSize("default_margin").width // Account for the top and bottom margins
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ wrapMode: Text.Wrap
+ elide: Text.ElideRight
+ color: UM.Theme.getColor("text")
+ }
+ }
+}
diff --git a/resources/qml/ApplicationSwitcher/ApplicationSwitcher.qml b/resources/qml/ApplicationSwitcher/ApplicationSwitcher.qml
new file mode 100644
index 0000000000..a8ea2312a5
--- /dev/null
+++ b/resources/qml/ApplicationSwitcher/ApplicationSwitcher.qml
@@ -0,0 +1,61 @@
+// Copyright (c) 2021 Ultimaker B.V.
+// Cura is released under the terms of the LGPLv3 or higher.
+
+import QtQuick 2.10
+import QtQuick.Controls 2.3
+import QtQuick.Layouts 1.15
+
+import UM 1.4 as UM
+import Cura 1.1 as Cura
+
+Item
+{
+ id: applicationSwitcherWidget
+ width: Math.round(0.5 * UM.Theme.getSize("main_window_header").height)
+ height: width
+
+ Button
+ {
+ id: applicationSwitcherButton
+
+ anchors.fill: parent
+
+ background: Item
+ {
+ Rectangle
+ {
+ anchors.fill: parent
+ radius: UM.Theme.getSize("action_button_radius").width
+ color: UM.Theme.getColor("primary_text")
+ opacity: applicationSwitcherButton.hovered ? 0.2 : 0
+ Behavior on opacity { NumberAnimation { duration: 100; } }
+ }
+
+ UM.RecolorImage
+ {
+ anchors.fill: parent
+ color: UM.Theme.getColor("primary_text")
+
+ source: UM.Theme.getIcon("BlockGrid")
+ }
+ }
+
+ onClicked:
+ {
+ if (applicationSwitcherPopup.opened)
+ {
+ applicationSwitcherPopup.close()
+ } else {
+ applicationSwitcherPopup.open()
+ }
+ }
+ }
+ ApplicationSwitcherPopup
+ {
+ id: applicationSwitcherPopup
+ y: parent.height + UM.Theme.getSize("default_arrow").height
+
+ // Move the x position by the default margin so that the arrow isn't drawn exactly on the corner
+ x: parent.width - width + UM.Theme.getSize("default_margin").width
+ }
+} \ No newline at end of file
diff --git a/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml b/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml
new file mode 100644
index 0000000000..ede42fcd5f
--- /dev/null
+++ b/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml
@@ -0,0 +1,120 @@
+// Copyright (c) 2021 Ultimaker B.V.
+// Cura is released under the terms of the LGPLv3 or higher.
+
+import QtQuick 2.10
+import QtQuick.Controls 2.3
+import QtQuick.Layouts 1.15
+
+import UM 1.4 as UM
+import Cura 1.1 as Cura
+
+Popup
+{
+ id: applicationSwitcherPopup
+
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
+
+ opacity: opened ? 1 : 0
+ Behavior on opacity { NumberAnimation { duration: 100 } }
+ padding: UM.Theme.getSize("wide_margin").width
+
+ contentItem: Grid
+ {
+ id: ultimakerPlatformLinksGrid
+ columns: 3
+ spacing: UM.Theme.getSize("default_margin").width
+
+ Repeater
+ {
+ model:
+ [
+ {
+ displayName: catalog.i18nc("@label:button", "My printers"),
+ thumbnail: UM.Theme.getIcon("PrinterTriple", "high"),
+ description: catalog.i18nc("@tooltip:button", "Monitor printers in Ultimaker Digital Factory."),
+ link: "https://digitalfactory.ultimaker.com/app/printers?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory-printers",
+ DFAccessRequired: true
+ },
+ {
+ displayName: "Digital Library", //Not translated, since it's a brand name.
+ thumbnail: UM.Theme.getIcon("Library", "high"),
+ description: catalog.i18nc("@tooltip:button", "Create print projects in Digital Library."),
+ link: "https://digitalfactory.ultimaker.com/app/library?utm_source=cura&utm_medium=software&utm_campaign=switcher-library",
+ DFAccessRequired: true
+ },
+ {
+ displayName: catalog.i18nc("@label:button", "Print jobs"),
+ thumbnail: UM.Theme.getIcon("FoodBeverages"),
+ description: catalog.i18nc("@tooltip:button", "Monitor print jobs and reprint from your print history."),
+ link: "https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory-printjobs",
+ DFAccessRequired: true
+ },
+ {
+ displayName: "Ultimaker Marketplace", //Not translated, since it's a brand name.
+ thumbnail: UM.Theme.getIcon("Shop", "high"),
+ description: catalog.i18nc("@tooltip:button", "Extend Ultimaker Cura with plugins and material profiles."),
+ link: "https://marketplace.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-marketplace-materials",
+ DFAccessRequired: false
+ },
+ {
+ displayName: "Ultimaker Academy", //Not translated, since it's a brand name.
+ thumbnail: UM.Theme.getIcon("Knowledge"),
+ description: catalog.i18nc("@tooltip:button", "Become a 3D printing expert with Ultimaker e-learning."),
+ link: "https://academy.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-academy",
+ DFAccessRequired: false
+ },
+ {
+ displayName: catalog.i18nc("@label:button", "Ultimaker support"),
+ thumbnail: UM.Theme.getIcon("Help", "high"),
+ description: catalog.i18nc("@tooltip:button", "Learn how to get started with Ultimaker Cura."),
+ link: "https://support.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-support",
+ DFAccessRequired: false
+ },
+ {
+ displayName: catalog.i18nc("@label:button", "Ask a question"),
+ thumbnail: UM.Theme.getIcon("Speak", "high"),
+ description: catalog.i18nc("@tooltip:button", "Consult the Ultimaker Community."),
+ link: "https://community.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-community",
+ DFAccessRequired: false
+ },
+ {
+ displayName: catalog.i18nc("@label:button", "Report a bug"),
+ thumbnail: UM.Theme.getIcon("Bug", "high"),
+ description: catalog.i18nc("@tooltip:button", "Let developers know that something is going wrong."),
+ link: "https://github.com/Ultimaker/Cura/issues/new/choose",
+ DFAccessRequired: false
+ },
+ {
+ displayName: "Ultimaker.com", //Not translated, since it's a URL.
+ thumbnail: UM.Theme.getIcon("Browser"),
+ description: catalog.i18nc("@tooltip:button", "Visit the Ultimaker website."),
+ link: "https://ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-umwebsite",
+ DFAccessRequired: false
+ }
+ ]
+
+ delegate: ApplicationButton
+ {
+ displayName: modelData.displayName
+ iconSource: modelData.thumbnail
+ tooltipText: modelData.description
+ isExternalLink: true
+ visible: modelData.DFAccessRequired ? Cura.API.account.isLoggedIn & Cura.API.account.additionalRights["df_access"] : true
+
+ onClicked: Qt.openUrlExternally(modelData.link)
+ }
+ }
+ }
+
+ background: UM.PointingRectangle
+ {
+ color: UM.Theme.getColor("tool_panel_background")
+ borderColor: UM.Theme.getColor("lining")
+ borderWidth: UM.Theme.getSize("default_lining").width
+
+ // Move the target by the default margin so that the arrow isn't drawn exactly on the corner
+ target: Qt.point(width - UM.Theme.getSize("default_margin").width - (applicationSwitcherButton.width / 2), -10)
+
+ arrowSize: UM.Theme.getSize("default_arrow").width
+ }
+}
diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml
index c27f3b0a24..815ddff732 100644
--- a/resources/qml/MainWindow/MainWindowHeader.qml
+++ b/resources/qml/MainWindow/MainWindowHeader.qml
@@ -10,6 +10,7 @@ import UM 1.4 as UM
import Cura 1.0 as Cura
import "../Account"
+import "../ApplicationSwitcher"
Item
{
@@ -94,10 +95,21 @@ Item
background: Rectangle
{
+ id: marketplaceButtonBorder
radius: UM.Theme.getSize("action_button_radius").width
- color: marketplaceButton.hovered ? UM.Theme.getColor("primary_text") : UM.Theme.getColor("main_window_header_background")
+ color: UM.Theme.getColor("main_window_header_background")
border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("primary_text")
+
+ Rectangle
+ {
+ id: marketplaceButtonFill
+ anchors.fill: parent
+ radius: parent.radius
+ color: UM.Theme.getColor("primary_text")
+ opacity: marketplaceButton.hovered ? 0.2 : 0
+ Behavior on opacity { NumberAnimation { duration: 100 } }
+ }
}
contentItem: Label
@@ -105,7 +117,7 @@ Item
id: label
text: marketplaceButton.text
font: UM.Theme.getFont("default")
- color: marketplaceButton.hovered ? UM.Theme.getColor("main_window_header_background") : UM.Theme.getColor("primary_text")
+ color: UM.Theme.getColor("primary_text")
width: contentWidth
verticalAlignment: Text.AlignVCenter
renderType: Text.NativeRendering
@@ -113,7 +125,7 @@ Item
anchors
{
- right: accountWidget.left
+ right: applicationSwitcher.left
rightMargin: UM.Theme.getSize("default_margin").width
verticalCenter: parent.verticalCenter
}
@@ -138,6 +150,17 @@ Item
}
}
+ ApplicationSwitcher
+ {
+ id: applicationSwitcher
+ anchors
+ {
+ verticalCenter: parent.verticalCenter
+ right: accountWidget.left
+ rightMargin: UM.Theme.getSize("default_margin").width
+ }
+ }
+
AccountWidget
{
id: accountWidget
diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml
index 98f3266455..905c8485d0 100644
--- a/resources/qml/Preferences/GeneralPage.qml
+++ b/resources/qml/Preferences/GeneralPage.qml
@@ -76,6 +76,8 @@ UM.PreferencesPage
UM.Preferences.resetPreference("cura/single_instance")
singleInstanceCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/single_instance"))
+ UM.Preferences.resetPreference("cura/single_instance_clear_before_load")
+ singleInstanceClearBeforeLoadCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/single_instance_clear_before_load"))
UM.Preferences.resetPreference("physics/automatic_push_free")
pushFreeCheckbox.checked = boolCheck(UM.Preferences.getValue("physics/automatic_push_free"))
@@ -571,6 +573,22 @@ UM.PreferencesPage
{
width: childrenRect.width
height: childrenRect.height
+ text: catalog.i18nc("@info:tooltip","Should the build plate be cleared before loading a new model in the single instance of Cura?")
+ enabled: singleInstanceCheckbox.checked
+
+ CheckBox
+ {
+ id: singleInstanceClearBeforeLoadCheckbox
+ text: catalog.i18nc("@option:check","Clear buildplate before loading model into the single instance")
+ checked: boolCheck(UM.Preferences.getValue("cura/single_instance_clear_before_load"))
+ onCheckedChanged: UM.Preferences.setValue("cura/single_instance_clear_before_load", checked)
+ }
+ }
+
+ UM.TooltipArea
+ {
+ width: childrenRect.width
+ height: childrenRect.height
text: catalog.i18nc("@info:tooltip","Should models be scaled to the build volume if they are too large?")
CheckBox
diff --git a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml
index 49d5b57021..1209071320 100644
--- a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml
+++ b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml
@@ -205,6 +205,7 @@ Item
height: UM.Theme.getSize("message_action_button").height
onClicked: {
CuraApplication.getDiscoveredCloudPrintersModel().clear()
+ Cura.API.account.sync(true)
base.addCloudPrinterButtonClicked()
}
}
diff --git a/resources/qml/WelcomePages/CloudContent.qml b/resources/qml/WelcomePages/CloudContent.qml
index 528991b38e..7dc35c7bc5 100644
--- a/resources/qml/WelcomePages/CloudContent.qml
+++ b/resources/qml/WelcomePages/CloudContent.qml
@@ -190,55 +190,48 @@ Item
}
}
}
-
- // Sign in Button
- Cura.PrimaryButton
- {
- id: signInButton
- anchors.horizontalCenter: parent.horizontalCenter
- text: catalog.i18nc("@button", "Sign in")
- onClicked: Cura.API.account.login()
- // Content Item is used in order to align the text inside the button. Without it, when resizing the
- // button, the text will be aligned on the left
- contentItem: Text {
- text: signInButton.text
- font: UM.Theme.getFont("medium")
- color: UM.Theme.getColor("primary_text")
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
- }
-
- // Create an account button
- Cura.TertiaryButton
- {
- id: createAccountButton
- anchors.horizontalCenter: parent.horizontalCenter
- text: catalog.i18nc("@text", "Create a free Ultimaker Account")
- onClicked: Qt.openUrlExternally("https://ultimaker.com/app/ultimaker-cura-account-sign-up?utm_source=cura&utm_medium=software&utm_campaign=onboarding-signup")
- }
}
}
- // The "Skip" button exists on the bottom right
- Label
+ // Skip button
+ Cura.TertiaryButton
{
id: skipButton
- anchors.right: parent.right
+ anchors.left: parent.left
anchors.bottom: parent.bottom
- anchors.leftMargin: UM.Theme.getSize("default_margin").width
text: catalog.i18nc("@button", "Skip")
- color: UM.Theme.getColor("secondary_button_text")
- font: UM.Theme.getFont("medium")
- renderType: Text.NativeRendering
+ onClicked: base.showNextPage()
+ }
- MouseArea
- {
- anchors.fill: parent
- hoverEnabled: true
- onClicked: base.showNextPage()
- onEntered: parent.font.underline = true
- onExited: parent.font.underline = false
+ // Create an account button
+ Cura.SecondaryButton
+ {
+ id: createAccountButton
+ anchors.right: signInButton.left
+ anchors.rightMargin: UM.Theme.getSize("default_margin").width
+ anchors.bottom: parent.bottom
+
+ text: catalog.i18nc("@text", "Create a free Ultimaker Account")
+ onClicked: Qt.openUrlExternally("https://ultimaker.com/app/ultimaker-cura-account-sign-up?utm_source=cura&utm_medium=software&utm_campaign=onboarding-signup")
+ }
+
+ // Sign in Button
+ Cura.PrimaryButton
+ {
+ id: signInButton
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+
+ text: catalog.i18nc("@button", "Sign in")
+ onClicked: Cura.API.account.login()
+ // Content Item is used in order to align the text inside the button. Without it, when resizing the
+ // button, the text will be aligned on the left
+ contentItem: Text {
+ text: signInButton.text
+ font: UM.Theme.getFont("medium")
+ color: UM.Theme.getColor("primary_text")
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
}
}
}
diff --git a/resources/qml/Widgets/ComboBox.qml b/resources/qml/Widgets/ComboBox.qml
index f0ee3bdc00..36288f0f4f 100644
--- a/resources/qml/Widgets/ComboBox.qml
+++ b/resources/qml/Widgets/ComboBox.qml
@@ -15,12 +15,6 @@ ComboBox
{
id: control
- UM.I18nCatalog
- {
- id: catalog
- name: "cura"
- }
-
property var defaultTextOnEmptyModel: catalog.i18nc("@label", "No items to select from") // Text displayed in the combobox when the model is empty
property var defaultTextOnEmptyIndex: "" // Text displayed in the combobox when the model has items but no item is selected
enabled: delegateModel.count > 0
diff --git a/resources/quality/eryone_thinker/eryone_thinker_extra_fast.inst.cfg b/resources/quality/eryone_thinker/eryone_thinker_extra_fast.inst.cfg
new file mode 100644
index 0000000000..8eeedbf299
--- /dev/null
+++ b/resources/quality/eryone_thinker/eryone_thinker_extra_fast.inst.cfg
@@ -0,0 +1,37 @@
+[general]
+version = 4
+name = Extra Fast
+definition = eryone_thinker
+
+[metadata]
+setting_version = 19
+type = quality
+quality_type = verydraft
+weight = -3
+global_quality = True
+
+[values]
+acceleration_print = 1500
+acceleration_travel = 3000
+infill_sparse_density = 10
+initial_layer_line_width_factor = 100.0
+layer_height = 0.3
+layer_height_0 = =layer_height
+material_bed_temperature = =default_material_bed_temperature
+material_bed_temperature_layer_0 = =material_bed_temperature
+material_final_print_temperature = =material_print_temperature
+material_initial_print_temperature = =material_print_temperature
+material_print_temperature = =default_material_print_temperature
+material_print_temperature_layer_0 = =max(-273.15, material_print_temperature + 5)
+skirt_brim_speed = =math.ceil(speed_print * 40 / 50)
+speed_print = 100.0
+speed_infill = =math.ceil(speed_print * 60 / 50)
+speed_topbottom = =math.ceil(speed_print * 40 / 50)
+speed_travel = =speed_print if magic_spiralize else 150
+speed_layer_0 = =math.ceil(speed_print * 40 / 50)
+speed_wall_0 = =math.ceil(speed_print * 40 / 50)
+speed_wall_x = =math.ceil(speed_print * 60 / 50)
+speed_z_hop = =math.ceil(speed_print * 30 / 60)
+top_layers = 4
+bottom_layers = 2
+wall_line_count = 2
diff --git a/resources/quality/eryone_thinker/eryone_thinker_fast.inst.cfg b/resources/quality/eryone_thinker/eryone_thinker_fast.inst.cfg
index 2455e0cf38..e44d39ae7d 100644
--- a/resources/quality/eryone_thinker/eryone_thinker_fast.inst.cfg
+++ b/resources/quality/eryone_thinker/eryone_thinker_fast.inst.cfg
@@ -11,9 +11,11 @@ weight = -1
global_quality = True
[values]
+acceleration_print = 1500
+acceleration_travel = 3000
infill_sparse_density = 15
initial_layer_line_width_factor = 100.0
-layer_height = 0.3
+layer_height = 0.25
layer_height_0 = =layer_height
material_bed_temperature = =default_material_bed_temperature
material_bed_temperature_layer_0 = =material_bed_temperature
diff --git a/resources/quality/jgaurora_a6/jgaurora_a6_0.28_fast.inst.cfg.txt b/resources/quality/jgaurora_a6/jgaurora_a6_0.28_fast.inst.cfg.txt
index fec1807b9e..89f09b6a8c 100644
--- a/resources/quality/jgaurora_a6/jgaurora_a6_0.28_fast.inst.cfg.txt
+++ b/resources/quality/jgaurora_a6/jgaurora_a6_0.28_fast.inst.cfg.txt
@@ -5,7 +5,7 @@ definition = jgaurora_a6
[metadata]
quality_type = fast
-setting_version = 18
+setting_version = 19
type = quality
weight = -4
global_quality = true
diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg
index b72bb5deb0..eb7258b819 100644
--- a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg
+++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg
@@ -17,9 +17,6 @@ cool_min_layer_time_fan_speed_max = 6
cool_min_speed = 17
top_skin_expand_distance = =line_width * 2
infill_pattern = tetrahedral
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
material_bed_temperature_layer_0 = =material_bed_temperature
material_print_temperature = =default_material_print_temperature - 2
material_print_temperature_layer_0 = =default_material_print_temperature + 2
diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg
index 7404371746..0e73a51c3a 100644
--- a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg
+++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg
@@ -17,9 +17,6 @@ cool_min_layer_time_fan_speed_max = 6
cool_min_speed = 17
top_skin_expand_distance = =line_width * 2
infill_pattern = tetrahedral
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
material_bed_temperature_layer_0 = =material_bed_temperature
material_print_temperature = =default_material_print_temperature + 2
material_print_temperature_layer_0 = =default_material_print_temperature + 2
diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg
index 182ecd4fe7..9b0892b81a 100644
--- a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg
+++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg
@@ -17,9 +17,6 @@ cool_min_layer_time_fan_speed_max = 6
cool_min_speed = 17
top_skin_expand_distance = =line_width * 2
infill_pattern = tetrahedral
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
layer_height = 0.3
material_bed_temperature_layer_0 = =material_bed_temperature
material_print_temperature_layer_0 = =default_material_print_temperature + 2
diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg
index efcc99228f..c80d7dc66d 100644
--- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg
+++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg
@@ -18,9 +18,6 @@ top_skin_expand_distance = =line_width * 2
gradual_infill_step_height = =4 * layer_height
infill_pattern = cross_3d
infill_sparse_density = 10
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
machine_nozzle_cool_down_speed = 0.5
machine_nozzle_heat_up_speed = 2.5
material_final_print_temperature = =material_print_temperature
diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg
index cbe9ab9a47..db3e9a7859 100644
--- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg
+++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg
@@ -18,9 +18,6 @@ top_skin_expand_distance = =line_width * 2
gradual_infill_step_height = =4 * layer_height
infill_pattern = cross_3d
infill_sparse_density = 10
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
layer_height = 0.4
machine_nozzle_cool_down_speed = 0.5
machine_nozzle_heat_up_speed = 2.5
diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg
index 00b1c0d97e..59d9a9987f 100644
--- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg
+++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg
@@ -18,9 +18,6 @@ top_skin_expand_distance = =line_width * 2
gradual_infill_step_height = =4 * layer_height
infill_pattern = cross_3d
infill_sparse_density = 10
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
layer_height = 0.3
machine_nozzle_cool_down_speed = 0.5
machine_nozzle_heat_up_speed = 2.5
diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Draft_Print.inst.cfg
index a79e349ae7..edabd04a60 100644
--- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Draft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Draft_Print.inst.cfg
@@ -19,9 +19,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = tetrahedral
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
material_bed_temperature_layer_0 = =material_bed_temperature
material_print_temperature = =default_material_print_temperature - 2
material_print_temperature_layer_0 = =default_material_print_temperature + 2
diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Superdraft_Print.inst.cfg
index aea3306a5d..0e826b2c20 100644
--- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Superdraft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Superdraft_Print.inst.cfg
@@ -19,9 +19,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = tetrahedral
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
material_bed_temperature_layer_0 = =material_bed_temperature
material_print_temperature = =default_material_print_temperature + 2
material_print_temperature_layer_0 = =default_material_print_temperature + 2
diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Verydraft_Print.inst.cfg
index 515dc48f38..d7b22b3a76 100644
--- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Verydraft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PP_Verydraft_Print.inst.cfg
@@ -19,9 +19,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = tetrahedral
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
material_bed_temperature_layer_0 = =material_bed_temperature
material_print_temperature_layer_0 = =default_material_print_temperature + 2
material_standby_temperature = 100
diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Draft_Print.inst.cfg
index c901be85b6..6c47e4c8b3 100644
--- a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Draft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Draft_Print.inst.cfg
@@ -16,9 +16,6 @@ brim_width = 8.75
cool_min_layer_time_fan_speed_max = 6
top_skin_expand_distance = =line_width * 2
infill_pattern = cross_3d
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
machine_nozzle_cool_down_speed = 0.5
machine_nozzle_heat_up_speed = 2.5
material_final_print_temperature = =material_print_temperature
diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Superdraft_Print.inst.cfg
index dbe1ade2d9..5830b94fb7 100644
--- a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Superdraft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Superdraft_Print.inst.cfg
@@ -19,9 +19,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = cross_3d
infill_sparse_density = 10
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
machine_nozzle_cool_down_speed = 0.5
machine_nozzle_heat_up_speed = 2.5
material_final_print_temperature = =material_print_temperature
diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Verydraft_Print.inst.cfg
index ebe6dad9dc..28d7d3d756 100644
--- a/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Verydraft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_TPU_Verydraft_Print.inst.cfg
@@ -19,9 +19,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = cross_3d
infill_sparse_density = 10
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
machine_nozzle_cool_down_speed = 0.5
machine_nozzle_heat_up_speed = 2.5
material_final_print_temperature = =material_print_temperature
diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg
index 9d8662a172..351685d6a3 100644
--- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg
@@ -19,9 +19,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = tetrahedral
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
material_bed_temperature_layer_0 = =material_bed_temperature
material_print_temperature = =default_material_print_temperature - 2
material_print_temperature_layer_0 = =default_material_print_temperature + 2
diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg
index dca926fe63..d012240e7d 100644
--- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg
@@ -19,9 +19,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = tetrahedral
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
material_bed_temperature_layer_0 = =material_bed_temperature
material_print_temperature = =default_material_print_temperature + 2
material_print_temperature_layer_0 = =default_material_print_temperature + 2
diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg
index 81f7a935f8..a3e3d01f0b 100644
--- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg
@@ -19,9 +19,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = tetrahedral
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
material_bed_temperature_layer_0 = =material_bed_temperature
material_print_temperature_layer_0 = =default_material_print_temperature + 2
material_standby_temperature = 100
diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg
index fe60c7acd8..5cdd4198b1 100644
--- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg
@@ -18,9 +18,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = cross_3d
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
machine_nozzle_cool_down_speed = 0.5
machine_nozzle_heat_up_speed = 2.5
material_final_print_temperature = =material_print_temperature
diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg
index ded2729f68..0c5ce71871 100644
--- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg
@@ -19,9 +19,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = cross_3d
infill_sparse_density = 10
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
machine_nozzle_cool_down_speed = 0.5
machine_nozzle_heat_up_speed = 2.5
material_final_print_temperature = =material_print_temperature
diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg
index 03f293d9de..eb7b83f949 100644
--- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg
+++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg
@@ -19,9 +19,6 @@ top_skin_expand_distance = =line_width * 2
infill_pattern = cross_3d
infill_sparse_density = 10
-jerk_prime_tower = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 15 / 25), 20)
machine_nozzle_cool_down_speed = 0.5
machine_nozzle_heat_up_speed = 2.5
material_final_print_temperature = =material_print_temperature
diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg
index 4bdc6a4554..1da548302f 100644
--- a/resources/setting_visibility/expert.cfg
+++ b/resources/setting_visibility/expert.cfg
@@ -354,6 +354,10 @@ magic_mesh_surface_mode
magic_spiralize
smooth_spiralized_contours
relative_extrusion
+lightning_infill_support_angle
+lightning_infill_overhang_angle
+lightning_infill_prune_angle
+lightning_infill_straightening_angle
[experimental]
support_tree_wall_thickness
diff --git a/resources/texts/change_log.txt b/resources/texts/change_log.txt
index 26d38493e4..d540a95b24 100644
--- a/resources/texts/change_log.txt
+++ b/resources/texts/change_log.txt
@@ -252,7 +252,7 @@ When double clicking on a file in the open project dialog in Digital Factory it
- Fixed a bug when the seam was not placed in sharpest corner.
- Fixed the gantry height for S-line printers.
- Fixed a bug where a model is partially below build plate if center selected model is used.
-- Fixed a bug where a tootip arrow appeared when the "Manage printers" button is hovered.
+- Fixed a bug where a tooltip arrow appeared when the "Manage printers" button is hovered.
- Fixed a bug where assemblies were not arranged in the center of the build plate.
* Printer definitions, profiles and materials.
diff --git a/resources/themes/cura-light/icons/default/BlockGrid.svg b/resources/themes/cura-light/icons/default/BlockGrid.svg
new file mode 100644
index 0000000000..207171b8f7
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/BlockGrid.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M7 7H3V6C3 5.20435 3.31607 4.44129 3.87868 3.87868C4.44129 3.31607 5.20435 3 6 3H7V7ZM14 3H10V7H14V3ZM21 6C21 5.20435 20.6839 4.44129 20.1213 3.87868C19.5587 3.31607 18.7956 3 18 3H17V7H21V6ZM7 10H3V14H7V10ZM14 10H10V14H14V10ZM21 10H17V14H21V10ZM7 17H3V18C3 18.7956 3.31607 19.5587 3.87868 20.1213C4.44129 20.6839 5.20435 21 6 21H7V17ZM14 17H10V21H14V17ZM21 18V17H17V21H18C18.7956 21 19.5587 20.6839 20.1213 20.1213C20.6839 19.5587 21 18.7956 21 18Z" fill="#000E1A"/>
+</svg>
diff --git a/resources/themes/cura-light/icons/default/Browser.svg b/resources/themes/cura-light/icons/default/Browser.svg
new file mode 100644
index 0000000000..01365ec678
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/Browser.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
+<path d="M42 6.00001H6C5.7371 5.9991 5.47662 6.05021 5.23355 6.1504C4.99049 6.25058 4.76965 6.39787 4.58375 6.58377C4.39785 6.76966 4.25057 6.99051 4.15038 7.23357C4.05019 7.47663 3.99908 7.73711 4 8.00001V40C3.99908 40.2629 4.05019 40.5234 4.15038 40.7665C4.25057 41.0095 4.39785 41.2304 4.58375 41.4163C4.76965 41.6022 4.99049 41.7494 5.23355 41.8496C5.47662 41.9498 5.7371 42.0009 6 42H42C42.5299 41.9985 43.0378 41.7872 43.4125 41.4125C43.7872 41.0378 43.9984 40.53 44 40V8.00001C44.0009 7.73711 43.9498 7.47663 43.8496 7.23357C43.7494 6.99051 43.6021 6.76966 43.4162 6.58377C43.2303 6.39787 43.0095 6.25058 42.7664 6.1504C42.5234 6.05021 42.2629 5.9991 42 6.00001ZM6 8.00001H42V13H6V8.00001ZM42 40H6V15H42V40ZM11 10.5C11 10.7967 10.912 11.0867 10.7472 11.3334C10.5824 11.58 10.3481 11.7723 10.074 11.8858C9.79993 11.9994 9.49833 12.0291 9.20736 11.9712C8.91639 11.9133 8.64912 11.7705 8.43934 11.5607C8.22956 11.3509 8.0867 11.0836 8.02882 10.7926C7.97094 10.5017 8.00065 10.2001 8.11418 9.92599C8.22771 9.6519 8.41997 9.41763 8.66664 9.25281C8.91332 9.08799 9.20332 9.00001 9.5 9.00001C9.89782 9.00001 10.2794 9.15805 10.5607 9.43935C10.842 9.72066 11 10.1022 11 10.5ZM15 10.5C15 10.7967 14.912 11.0867 14.7472 11.3334C14.5824 11.58 14.3481 11.7723 14.074 11.8858C13.7999 11.9994 13.4983 12.0291 13.2074 11.9712C12.9164 11.9133 12.6491 11.7705 12.4393 11.5607C12.2296 11.3509 12.0867 11.0836 12.0288 10.7926C11.9709 10.5017 12.0006 10.2001 12.1142 9.92599C12.2277 9.6519 12.42 9.41763 12.6666 9.25281C12.9133 9.08799 13.2033 9.00001 13.5 9.00001C13.8978 9.00001 14.2794 9.15805 14.5607 9.43935C14.842 9.72066 15 10.1022 15 10.5ZM19 10.5C19 10.7967 18.912 11.0867 18.7472 11.3334C18.5824 11.58 18.3481 11.7723 18.074 11.8858C17.7999 11.9994 17.4983 12.0291 17.2074 11.9712C16.9164 11.9133 16.6491 11.7705 16.4393 11.5607C16.2296 11.3509 16.0867 11.0836 16.0288 10.7926C15.9709 10.5017 16.0006 10.2001 16.1142 9.92599C16.2277 9.6519 16.42 9.41763 16.6666 9.25281C16.9133 9.08799 17.2033 9.00001 17.5 9.00001C17.8978 9.00001 18.2794 9.15805 18.5607 9.43935C18.842 9.72066 19 10.1022 19 10.5ZM22 37H9V18H22V37ZM11 35H20V20H11V35ZM39 20H25V18H39V20ZM39 24H25V22H39V24ZM39 28H25V26H39V28ZM39 32H25V30H39V32ZM39 36H25V34H39V36Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/default/Bug.svg b/resources/themes/cura-light/icons/default/Bug.svg
new file mode 100644
index 0000000000..7ad9bb4f1c
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/Bug.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+<path d="M18 9.9C18.2 9.9 18.4 9.8 18.5 9.7C19 9.5 19.4 9.2 19.8 8.8C20.2 8.4 20.5 8 20.7 7.5C20.9 7 21 6.5 21 6H19C19 6.3 18.9 6.5 18.8 6.8C18.7 7 18.6 7.3 18.4 7.4C18.2 7.6 18.1 7.7 17.9 7.8C17.8 7.4 17.7 7.1 17.6 6.7C17.3 6 16.9 5.3 16.3 4.8C15.7 4.2 15.1 3.8 14.4 3.5C12.9 2.9 11.3 2.9 9.8 3.5C9 3.8 8.3 4.2 7.8 4.8C7.2 5.3 6.8 6 6.5 6.7C6.3 7.1 6.2 7.4 6.1 7.8C5.9 7.7 5.7 7.6 5.6 7.4C5.4 7.2 5.3 7 5.2 6.8C5.1 6.5 5 6.3 5 6H3C3 6.5 3.1 7 3.3 7.5C3.5 8 3.8 8.5 4.2 8.8C4.5 9.2 5 9.5 5.5 9.7C5.6 9.8 5.8 9.8 6 9.9V11H3V13H6V15V15.1C5.8 15.1 5.6 15.2 5.5 15.3C5 15.5 4.6 15.8 4.2 16.2C3.8 16.6 3.5 17 3.3 17.5C3.1 18 3 18.5 3 19H5C5 18.7 5.1 18.5 5.2 18.2C5.3 18 5.4 17.7 5.6 17.6C5.8 17.4 6 17.3 6.2 17.2C6.3 17.2 6.3 17.2 6.4 17.2C6.4 17.3 6.4 17.3 6.5 17.4C6.8 18.1 7.2 18.8 7.8 19.3C8.4 19.9 9 20.3 9.7 20.6C10.4 20.9 11.2 21 12 21C12.8 21 13.6 20.8 14.3 20.5C15 20.2 15.7 19.8 16.2 19.2C16.8 18.6 17.2 18 17.5 17.3C17.5 17.2 17.5 17.2 17.6 17.1C17.7 17.1 17.7 17.1 17.8 17.1C18 17.2 18.3 17.3 18.4 17.5C18.6 17.7 18.7 17.9 18.8 18.2C18.9 18.4 19 18.7 19 19H21C21 18.5 20.9 18 20.7 17.5C20.5 17 20.2 16.6 19.8 16.2C19.4 15.8 19 15.5 18.5 15.3C18.3 15.2 18.1 15.2 18 15.1V15V13H21V11H18V9.9ZM9.2 6.2C9.5 5.8 10 5.5 10.5 5.3C11.5 4.9 12.6 4.9 13.6 5.3C14.1 5.5 14.5 5.8 14.9 6.2C15.3 6.6 15.6 7 15.8 7.5C15.9 7.7 15.9 7.9 16 8H8.1C8.1 7.8 8.2 7.6 8.3 7.5C8.5 7 8.8 6.5 9.2 6.2ZM9.2 17.8C8.8 17.4 8.5 17 8.3 16.5C8.1 16 8 15.5 8 15V10H11V18.9C10.8 18.9 10.6 18.8 10.5 18.7C10 18.5 9.5 18.2 9.2 17.8ZM15.7 16.5C15.5 17 15.2 17.4 14.8 17.8C14.4 18.2 14 18.5 13.5 18.7C13.3 18.8 13.1 18.8 13 18.9V10H16V15C16 15.5 15.9 16 15.7 16.5Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/default/FoodBeverages.svg b/resources/themes/cura-light/icons/default/FoodBeverages.svg
new file mode 100644
index 0000000000..1e74b33955
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/FoodBeverages.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
+<path d="M4 4V6H9V8C8.99947 8.39411 9.07671 8.78446 9.22729 9.14867C9.37787 9.51289 9.59882 9.84381 9.87751 10.1225C10.1562 10.4012 10.4871 10.6221 10.8513 10.7727C11.2155 10.9233 11.6059 11.0005 12 11H13V13H15V11H16C16.3941 11.0005 16.7845 10.9233 17.1487 10.7727C17.5129 10.6221 17.8438 10.4012 18.1225 10.1225C18.4012 9.84381 18.6221 9.51289 18.7727 9.14867C18.9233 8.78446 19.0005 8.39411 19 8V6H44V4H4ZM17 9H11V6H17V9ZM38 32V23.9L37 19.9V17C36.9984 16.47 36.7872 15.9622 36.4125 15.5875C36.0378 15.2128 35.53 15.0016 35 15H33C32.47 15.0016 31.9622 15.2128 31.5875 15.5875C31.2128 15.9622 31.0016 16.47 31 17V19.9L30.02 23.7L30 32H28V23.9L27 19.9V17C26.9984 16.47 26.7872 15.9622 26.4125 15.5875C26.0378 15.2128 25.53 15.0016 25 15H23C22.47 15.0016 21.9622 15.2128 21.5875 15.5875C21.2128 15.9622 21.0016 16.47 21 17V19.9L20.02 23.7L20 32H18V23.9L17 19.9V17C16.9984 16.47 16.7872 15.9622 16.4125 15.5875C16.0378 15.2128 15.53 15.0016 15 15H13C12.47 15.0016 11.9622 15.2128 11.5875 15.5875C11.2128 15.9622 11.0016 16.47 11 17V19.9L10.02 23.7L10 32C8.4087 32 6.88258 32.6321 5.75736 33.7574C4.63214 34.8826 4 36.4087 4 38C4 39.5913 4.63214 41.1174 5.75736 42.2426C6.88258 43.3679 8.4087 44 10 44H38C39.5913 44 41.1174 43.3679 42.2426 42.2426C43.3679 41.1174 44 39.5913 44 38C44 36.4087 43.3679 34.8826 42.2426 33.7574C41.1174 32.6321 39.5913 32 38 32ZM32 24L32.98 20.2L33 17H35V20L36 24V32H32V24ZM22 24L22.98 20.2L23 17H25V20L26 24V32H22V24ZM12 24L12.98 20.2L13 17H15V20L16 24V32H12V24ZM38 42H10C8.93913 42 7.92172 41.5786 7.17157 40.8284C6.42143 40.0783 6 39.0609 6 38C6 36.9391 6.42143 35.9217 7.17157 35.1716C7.92172 34.4214 8.93913 34 10 34H38C39.0609 34 40.0783 34.4214 40.8284 35.1716C41.5786 35.9217 42 36.9391 42 38C42 39.0609 41.5786 40.0783 40.8284 40.8284C40.0783 41.5786 39.0609 42 38 42ZM12 38C12 38.3956 11.8827 38.7822 11.6629 39.1111C11.4432 39.44 11.1308 39.6964 10.7654 39.8478C10.3999 39.9991 9.99778 40.0387 9.60982 39.9616C9.22186 39.8844 8.86549 39.6939 8.58579 39.4142C8.30608 39.1345 8.1156 38.7781 8.03843 38.3902C7.96126 38.0022 8.00087 37.6001 8.15224 37.2346C8.30362 36.8692 8.55996 36.5568 8.88886 36.3371C9.21776 36.1173 9.60444 36 10 36C10.5304 36 11.0391 36.2107 11.4142 36.5858C11.7893 36.9609 12 37.4696 12 38ZM15.6 36C15.2044 36 14.8178 36.1173 14.4889 36.3371C14.16 36.5568 13.9036 36.8692 13.7522 37.2346C13.6009 37.6001 13.5613 38.0022 13.6384 38.3902C13.7156 38.7781 13.9061 39.1345 14.1858 39.4142C14.4655 39.6939 14.8219 39.8844 15.2098 39.9616C15.5978 40.0387 15.9999 39.9991 16.3654 39.8478C16.7308 39.6964 17.0432 39.44 17.2629 39.1111C17.4827 38.7822 17.6 38.3956 17.6 38C17.6 37.7374 17.5483 37.4773 17.4478 37.2346C17.3472 36.992 17.1999 36.7715 17.0142 36.5858C16.8285 36.4001 16.608 36.2528 16.3654 36.1522C16.1227 36.0517 15.8626 36 15.6 36ZM21.2 36C20.8044 36 20.4178 36.1173 20.0889 36.3371C19.76 36.5568 19.5036 36.8692 19.3522 37.2346C19.2009 37.6001 19.1613 38.0022 19.2384 38.3902C19.3156 38.7781 19.5061 39.1345 19.7858 39.4142C20.0655 39.6939 20.4219 39.8844 20.8098 39.9616C21.1978 40.0387 21.5999 39.9991 21.9654 39.8478C22.3308 39.6964 22.6432 39.44 22.8629 39.1111C23.0827 38.7822 23.2 38.3956 23.2 38C23.2 37.4696 22.9893 36.9609 22.6142 36.5858C22.2391 36.2107 21.7304 36 21.2 36ZM26.8 36C26.4044 36 26.0178 36.1173 25.6889 36.3371C25.36 36.5568 25.1036 36.8692 24.9522 37.2346C24.8009 37.6001 24.7613 38.0022 24.8384 38.3902C24.9156 38.7781 25.1061 39.1345 25.3858 39.4142C25.6655 39.6939 26.0219 39.8844 26.4098 39.9616C26.7978 40.0387 27.1999 39.9991 27.5654 39.8478C27.9308 39.6964 28.2432 39.44 28.4629 39.1111C28.6827 38.7822 28.8 38.3956 28.8 38C28.8 37.4696 28.5893 36.9609 28.2142 36.5858C27.8391 36.2107 27.3304 36 26.8 36ZM32.4 36C32.0044 36 31.6178 36.1173 31.2889 36.3371C30.96 36.5568 30.7036 36.8692 30.5522 37.2346C30.4009 37.6001 30.3613 38.0022 30.4384 38.3902C30.5156 38.7781 30.7061 39.1345 30.9858 39.4142C31.2655 39.6939 31.6219 39.8844 32.0098 39.9616C32.3978 40.0387 32.7999 39.9991 33.1654 39.8478C33.5308 39.6964 33.8432 39.44 34.0629 39.1111C34.2827 38.7822 34.4 38.3956 34.4 38C34.4 37.4696 34.1893 36.9609 33.8142 36.5858C33.4391 36.2107 32.9304 36 32.4 36ZM38 36C37.6044 36 37.2178 36.1173 36.8889 36.3371C36.56 36.5568 36.3036 36.8692 36.1522 37.2346C36.0009 37.6001 35.9613 38.0022 36.0384 38.3902C36.1156 38.7781 36.3061 39.1345 36.5858 39.4142C36.8655 39.6939 37.2219 39.8844 37.6098 39.9616C37.9978 40.0387 38.3999 39.9991 38.7654 39.8478C39.1308 39.6964 39.4432 39.44 39.6629 39.1111C39.8827 38.7822 40 38.3956 40 38C40 37.4696 39.7893 36.9609 39.4142 36.5858C39.0391 36.2107 38.5304 36 38 36Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/default/Help.svg b/resources/themes/cura-light/icons/default/Help.svg
new file mode 100644
index 0000000000..84f94c2703
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/Help.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+<path d="M12 22C10.0222 22 8.08879 21.4135 6.4443 20.3147C4.79981 19.2159 3.51809 17.6541 2.76121 15.8268C2.00433 13.9996 1.8063 11.9889 2.19215 10.0491C2.578 8.10929 3.53041 6.32746 4.92894 4.92894C6.32746 3.53041 8.10929 2.578 10.0491 2.19215C11.9889 1.8063 13.9996 2.00433 15.8268 2.76121C17.6541 3.51809 19.2159 4.79981 20.3147 6.4443C21.4135 8.08879 22 10.0222 22 12C21.997 14.6512 20.9424 17.193 19.0677 19.0677C17.193 20.9424 14.6512 21.997 12 22ZM12 4C10.4178 4 8.87104 4.4692 7.55544 5.34825C6.23985 6.2273 5.21447 7.47673 4.60897 8.93854C4.00347 10.4003 3.84504 12.0089 4.15372 13.5607C4.4624 15.1126 5.22433 16.538 6.34315 17.6569C7.46197 18.7757 8.88743 19.5376 10.4393 19.8463C11.9911 20.155 13.5997 19.9965 15.0615 19.391C16.5233 18.7855 17.7727 17.7602 18.6518 16.4446C19.5308 15.129 20 13.5823 20 12C19.9976 9.87902 19.1539 7.8456 17.6542 6.34584C16.1544 4.84608 14.121 4.00244 12 4ZM13.9717 13.7749C14.6315 13.4014 15.1721 12.8488 15.531 12.1809C15.8899 11.5131 16.0525 10.7574 16 10.001C15.9818 9.32486 15.8182 8.66055 15.5205 8.0532C15.1975 7.40521 14.6923 6.86569 14.0668 6.50093C13.4414 6.13617 12.723 5.96206 12 6C11.2771 5.96216 10.5588 6.13631 9.93346 6.50107C9.30813 6.86582 8.80296 7.40529 8.48 8.0532C8.18212 8.66052 8.01841 9.32482 8 10.001L10 10.0063C9.98182 9.73868 10.021 9.47026 10.115 9.21902C10.209 8.96778 10.3556 8.73953 10.545 8.54956C10.7344 8.35959 10.9621 8.21228 11.2131 8.1175C11.464 8.02272 11.7323 7.98266 12 8C12.2672 7.98248 12.535 8.02219 12.7856 8.1165C13.0362 8.21081 13.2638 8.35754 13.4531 8.54687C13.6425 8.73621 13.7892 8.96378 13.8835 9.21438C13.9778 9.46498 14.0175 9.73282 14 10C14.0478 10.3918 13.9823 10.7891 13.8113 11.1448C13.6404 11.5006 13.371 11.7999 13.0352 12.0073C12.4508 12.2669 11.9506 12.6847 11.591 13.2135C11.2314 13.7423 11.0267 14.3611 11 15H13C13 14.3569 13.6768 13.93 13.9717 13.7749ZM13 16H11V18H13V16Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/default/Knowledge.svg b/resources/themes/cura-light/icons/default/Knowledge.svg
new file mode 100644
index 0000000000..4f8798d5f1
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/Knowledge.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
+<path d="M40.0175 21C40.016 23.1746 39.5719 25.3262 38.7123 27.3237C37.8527 29.3212 36.5956 31.1229 35.0175 32.6191V43H33.0175V32.1808C33.0175 32.0402 33.0471 31.9011 33.1045 31.7727C33.1619 31.6444 33.2457 31.5295 33.3505 31.4357C34.8176 30.1215 35.9914 28.513 36.7955 26.715C37.5996 24.9169 38.016 22.9697 38.0175 21C38.0175 19.1043 37.6326 17.2284 36.886 15.486C36.1394 13.7435 35.0467 12.1708 33.6741 10.8633C32.3016 9.55575 30.6778 8.54056 28.9012 7.87928C27.1246 7.218 25.2322 6.92442 23.3388 7.01631C19.6908 7.24159 16.2701 8.86501 13.7888 11.5487C11.3075 14.2323 9.95667 17.7695 10.0175 21.424V22C10.0176 22.14 9.98814 22.2784 9.9311 22.4062L6.4145 30.3185L9.26 31.03C9.4763 31.0841 9.66831 31.209 9.80553 31.3847C9.94274 31.5605 10.0173 31.777 10.0173 32V37C10.0179 37.5303 10.2288 38.0386 10.6038 38.4136C10.9787 38.7885 11.4871 38.9994 12.0173 39H18.0173C18.2825 39 18.5369 39.1054 18.7244 39.2929C18.9119 39.4804 19.0173 39.7348 19.0173 40V43H17.0173V41H12.0173C10.9568 40.9989 9.94003 40.5771 9.19013 39.8272C8.44023 39.0773 8.01844 38.0605 8.0173 37V32.7814L4.7749 31.97C4.63331 31.9347 4.50116 31.8689 4.38775 31.7771C4.27435 31.6852 4.18244 31.5697 4.11849 31.4385C4.05454 31.3073 4.0201 31.1638 4.0176 31.0179C4.01509 30.872 4.04459 30.7273 4.104 30.594L8.0175 21.7878V21.424C7.95598 17.2551 9.50462 13.223 12.341 10.1671C15.1775 7.11126 19.0831 5.26699 23.2451 5.01821C25.4088 4.91377 27.5711 5.24974 29.6011 6.00576C31.6311 6.76178 33.4864 7.92212 35.0546 9.41644C36.6229 10.9108 37.8714 12.7079 38.7244 14.6991C39.5775 16.6902 40.0174 18.8338 40.0175 21ZM31.0175 17.4538C30.92 19.0434 30.3187 20.5606 29.3007 21.7854C29.1434 22.0168 28.9833 22.2527 28.8261 22.4963C28.4018 23.0812 28.1245 23.7597 28.0175 24.4743V27.989L24.0175 30.6555L20.0175 27.989V24.4745C19.9105 23.7599 19.6332 23.0814 19.2089 22.4965C19.0516 22.2529 18.8915 22.0165 18.7343 21.7856C17.7163 20.5609 17.115 19.0436 17.0175 17.454C17.0175 15.5975 17.755 13.817 19.0678 12.5043C20.3805 11.1915 22.161 10.454 24.0175 10.454C25.874 10.454 27.6545 11.1915 28.9672 12.5043C30.28 13.817 31.0175 15.5975 31.0175 17.454V17.4538ZM26.0175 25.4538H22.0175V26.9187L24.0175 28.2522L26.0175 26.9187V25.4538ZM29.0175 17.4538C29.0175 16.1277 28.4907 14.856 27.553 13.9183C26.6154 12.9806 25.3436 12.4538 24.0175 12.4538C22.6914 12.4538 21.4196 12.9806 20.482 13.9183C19.5443 14.856 19.0175 16.1277 19.0175 17.4538C19.1285 18.6405 19.6083 19.7626 20.3895 20.6628C20.5546 20.9065 20.7235 21.155 20.8886 21.4113C21.3065 22.041 21.6284 22.7294 21.8438 23.4538H23.0175V19.4538H21.0175V17.4538H27.0175V19.4538H25.0175V23.4538H26.1911C26.4065 22.7294 26.7284 22.041 27.1464 21.4113C27.3114 21.155 27.4804 20.9065 27.6454 20.6628C28.4266 19.7627 28.9065 18.6407 29.0176 17.454L29.0175 17.4538Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/default/Library.svg b/resources/themes/cura-light/icons/default/Library.svg
new file mode 100644
index 0000000000..beb8c6e593
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/Library.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+<path d="M20 9V6H18V3H6V6H4V9H2V18C1.99948 18.3941 2.07671 18.7845 2.22729 19.1487C2.37787 19.5129 2.59883 19.8438 2.87751 20.1225C3.15619 20.4012 3.48712 20.6221 3.85133 20.7727C4.21554 20.9233 4.60589 21.0005 5 21H19C19.3941 21.0005 19.7845 20.9233 20.1487 20.7727C20.5129 20.6221 20.8438 20.4012 21.1225 20.1225C21.4012 19.8438 21.6221 19.5129 21.7727 19.1487C21.9233 18.7845 22.0005 18.3941 22 18V9H20ZM8 5H16V6H8V5ZM6 8H18V9H6V8ZM20 19H4V11H20V19ZM10 13H14V15H10V13Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/default/Shop.svg b/resources/themes/cura-light/icons/default/Shop.svg
new file mode 100644
index 0000000000..bfd5a4bf69
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/Shop.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+<path d="M19 3H5C4.20435 3 3.44129 3.31607 2.87868 3.87868C2.31607 4.44129 2 5.20435 2 6V9C2.00225 9.69895 2.18821 10.385 2.53924 10.9894C2.89027 11.5939 3.39402 12.0954 4 12.4437V22H20V12.4437C20.606 12.0954 21.1097 11.5939 21.4608 10.9894C21.8118 10.385 21.9977 9.69895 22 9V6C22 5.20435 21.6839 4.44129 21.1213 3.87868C20.5587 3.31607 19.7956 3 19 3ZM10 5H14V9C14 9.53043 13.7893 10.0391 13.4142 10.4142C13.0391 10.7893 12.5304 11 12 11C11.4696 11 10.9609 10.7893 10.5858 10.4142C10.2107 10.0391 10 9.53043 10 9V5ZM4 9V5H8V9C8 9.53043 7.78929 10.0391 7.41421 10.4142C7.03914 10.7893 6.53043 11 6 11C5.46957 11 4.96086 10.7893 4.58579 10.4142C4.21071 10.0391 4 9.53043 4 9ZM18 20H14V15H10V20H6V13C6.56991 12.9982 7.13276 12.8738 7.65038 12.6353C8.168 12.3968 8.62828 12.0498 9 11.6178C9.37052 12.0512 9.83056 12.3992 10.3485 12.6378C10.8663 12.8764 11.4298 13 12 13C12.5702 13 13.1337 12.8764 13.6515 12.6378C14.1694 12.3992 14.6295 12.0512 15 11.6178C15.3717 12.0498 15.832 12.3968 16.3496 12.6353C16.8672 12.8738 17.4301 12.9982 18 13V20ZM20 9C20 9.53043 19.7893 10.0391 19.4142 10.4142C19.0391 10.7893 18.5304 11 18 11C17.4696 11 16.9609 10.7893 16.5858 10.4142C16.2107 10.0391 16 9.53043 16 9V5H20V9Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/default/Speak.svg b/resources/themes/cura-light/icons/default/Speak.svg
new file mode 100644
index 0000000000..8f308643a7
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/Speak.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+<path d="M6 6V7H5C4.20435 7 3.44129 7.31607 2.87868 7.87868C2.31607 8.44129 2 9.20435 2 10V15C2 15.7956 2.31607 16.5587 2.87868 17.1213C3.44129 17.6839 4.20435 18 5 18H6V22L10 18H15C15.7956 18 16.5587 17.6839 17.1213 17.1213C17.6839 16.5587 18 15.7956 18 15V14H19C19.7956 14 20.5587 13.6839 21.1213 13.1213C21.6839 12.5587 22 11.7956 22 11V6C22 5.20435 21.6839 4.44129 21.1213 3.87868C20.5587 3.31607 19.7956 3 19 3H9C8.20435 3 7.44129 3.31607 6.87868 3.87868C6.31607 4.44129 6 5.20435 6 6ZM16 16H4V9H16V16ZM20 12H18V10C18 9.20435 17.6839 8.44129 17.1213 7.87868C16.5587 7.31607 15.7956 7 15 7H8V5H20V12Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/high/Bug.svg b/resources/themes/cura-light/icons/high/Bug.svg
new file mode 100644
index 0000000000..a24963cd8e
--- /dev/null
+++ b/resources/themes/cura-light/icons/high/Bug.svg
@@ -0,0 +1,3 @@
+<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
+<path d="M42 12C42 15.5 39.4 18.4 36 18.9V24H42V26H36V31V31.1C39.4 31.6 42 34.5 42 38H40C40 35.5 38.2 33.5 35.8 33.1C34.8 38.7 29.9 43 24 43C18.1 43 13.2 38.7 12.2 33.1C9.8 33.5 8 35.5 8 38H6C6 34.5 8.6 31.6 12 31.1V31V26H6V24H12V18.9C8.6 18.4 6 15.5 6 12H8C8 14.4 9.7 16.4 12 16.9C12.1 10.3 17.4 5 24 5C30.6 5 35.9 10.3 36 16.9C38.3 16.4 40 14.4 40 12H42ZM34 17C34 11.5 29.5 7 24 7C18.5 7 14 11.5 14 17H34ZM14 19V31C14 36.2 18 40.4 23 40.9V19H14ZM25 19V40.9C30 40.4 34 36.2 34 31V19H25ZM24 11.9L27.6 10.1L28.4 11.9L26.2 13L28.4 14.1L27.6 15.9L24 14.1L20.4 15.9L19.6 14.1L21.8 13L19.6 11.9L20.4 10.1L24 11.9Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/high/Help.svg b/resources/themes/cura-light/icons/high/Help.svg
new file mode 100644
index 0000000000..355b9dd468
--- /dev/null
+++ b/resources/themes/cura-light/icons/high/Help.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
+<path d="M24 44C20.0444 44 16.1776 42.827 12.8886 40.6294C9.59961 38.4318 7.03616 35.3082 5.5224 31.6537C4.00865 27.9992 3.61258 23.9778 4.38429 20.0982C5.15599 16.2186 7.06081 12.6549 9.85786 9.85787C12.6549 7.06082 16.2186 5.15601 20.0982 4.3843C23.9778 3.6126 27.9991 4.00867 31.6537 5.52242C35.3082 7.03617 38.4318 9.59962 40.6294 12.8886C42.827 16.1776 44 20.0444 44 24C43.994 29.3025 41.885 34.3861 38.1355 38.1355C34.3861 41.885 29.3025 43.994 24 44ZM24 6.00001C20.4399 6.00001 16.9598 7.05569 13.9997 9.03356C11.0396 11.0114 8.73254 13.8226 7.37016 17.1117C6.00778 20.4008 5.65132 24.02 6.34586 27.5116C7.04039 31.0033 8.75473 34.2106 11.2721 36.7279C13.7894 39.2453 16.9967 40.9596 20.4884 41.6541C23.98 42.3487 27.5992 41.9922 30.8883 40.6298C34.1774 39.2675 36.9886 36.9604 38.9664 34.0003C40.9443 31.0402 42 27.5601 42 24C41.9945 19.2278 40.0964 14.6526 36.7219 11.2781C33.3474 7.90364 28.7722 6.00546 24 6.00001ZM27.9785 26.9C29.9229 25.8647 32 23.2461 32 19.0044C31.9554 16.8303 31.1249 14.7458 29.6621 13.1367C28.9093 12.4166 28.018 11.8571 27.0423 11.4921C26.0666 11.1272 25.0269 10.9644 23.9863 11.0137C22.9464 10.9639 21.9073 11.1267 20.9325 11.4919C19.9576 11.8572 19.0674 12.4174 18.3163 13.1382C16.859 14.75 16.036 16.8357 16 19.0083L18 18.9946C18.0422 17.3494 18.6608 15.7712 19.748 14.5356C20.3156 14.0097 20.9836 13.6038 21.7119 13.3423C22.4402 13.0808 23.2138 12.969 23.9863 13.0137C29.92 13.0137 30 18.7544 30 19C30 22.36 28.4707 24.3721 27.042 25.1328C25.0879 26.1641 23 28.772 23 33H25C25 29.6611 26.5371 27.6606 27.9785 26.9ZM25 35H23V37H25V35Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/high/Library.svg b/resources/themes/cura-light/icons/high/Library.svg
new file mode 100644
index 0000000000..3ddc018543
--- /dev/null
+++ b/resources/themes/cura-light/icons/high/Library.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" d="M13 10H35V13H13V10ZM11 13V8H37V13H40V19H44V37C44 37.7956 43.6839 38.5587 43.1213 39.1213C42.5587 39.6839 41.7957 40 41 40H7C6.20435 40 5.44129 39.6839 4.87868 39.1213C4.31607 38.5587 4 37.7956 4 37V19H8V13H11ZM10 19H38V15H10V19ZM40 21H6V38H42V21H40ZM28 26H20V28H28V26ZM20 24H18V30H30V24H20Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/high/PrinterTriple.svg b/resources/themes/cura-light/icons/high/PrinterTriple.svg
new file mode 100644
index 0000000000..65e4936bc2
--- /dev/null
+++ b/resources/themes/cura-light/icons/high/PrinterTriple.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
+<path d="M9 40H15.3335L19.3335 37H28.6665L32.6665 40H39V8H9V40ZM11 10H37V38H33.3335L29.3335 35H18.6665L14.6665 38H11V10ZM18 32H30C30.7956 32 31.5587 31.6839 32.1213 31.1213C32.6839 30.5587 33 29.7956 33 29V13H15V29C15 29.7956 15.3161 30.5587 15.8787 31.1213C16.4413 31.6839 17.2044 32 18 32ZM21 15H27V18H21V15ZM17 15H19V20H29V15H31V30H17V15ZM44 13V37H40V35H42V15H40V13H44ZM4 13H8V15H6V35H8V37H4V13Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/high/Shop.svg b/resources/themes/cura-light/icons/high/Shop.svg
new file mode 100644
index 0000000000..7662cf4b9b
--- /dev/null
+++ b/resources/themes/cura-light/icons/high/Shop.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
+<path d="M8 6C7.20435 6 6.44129 6.31607 5.87868 6.87868C5.31607 7.44129 5 8.20435 5 9V18C5.00075 19.1271 5.27394 20.2374 5.79629 21.2362C6.31864 22.235 7.07468 23.0928 8 23.7364V42H40V23.7362C40.9253 23.0926 41.6813 22.2349 42.2037 21.2361C42.726 20.2373 42.9992 19.1271 43 18V9C43 8.20435 42.6839 7.44129 42.1213 6.87868C41.5587 6.31607 40.7957 6 40 6H8ZM19 8H29V18C29 19.3261 28.4732 20.5979 27.5355 21.5355C26.5979 22.4732 25.3261 23 24 23C22.6739 23 21.4021 22.4732 20.4645 21.5355C19.5268 20.5979 19 19.3261 19 18V8ZM7 18V8H17V18C17 19.3261 16.4732 20.5979 15.5355 21.5355C14.5979 22.4732 13.3261 23 12 23C10.6739 23 9.40215 22.4732 8.46447 21.5355C7.52678 20.5979 7 19.3261 7 18ZM19 40V30H23V40H19ZM25 30H29V40H25V30ZM38 40H31V28H17V40H10V24.7052C11.4902 25.153 13.0874 25.0893 14.5372 24.5242C15.9869 23.9591 17.2059 22.9252 18 21.587C18.6184 22.6273 19.4966 23.4889 20.5485 24.0874C21.6004 24.6858 22.7898 25.0004 24 25.0004C25.2102 25.0004 26.3996 24.6858 27.4515 24.0874C28.5034 23.4889 29.3816 22.6273 30 21.587C30.7941 22.9252 32.013 23.9592 33.4628 24.5243C34.9126 25.0894 36.5098 25.1531 38 24.7053V40ZM41 18C41 19.3261 40.4732 20.5979 39.5355 21.5355C38.5979 22.4732 37.3261 23 36 23C34.6739 23 33.4021 22.4732 32.4645 21.5355C31.5268 20.5979 31 19.3261 31 18V8H41V18Z" />
+</svg>
diff --git a/resources/themes/cura-light/icons/high/Speak.svg b/resources/themes/cura-light/icons/high/Speak.svg
new file mode 100644
index 0000000000..68642bba2b
--- /dev/null
+++ b/resources/themes/cura-light/icons/high/Speak.svg
@@ -0,0 +1,3 @@
+<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
+<path d="M31 21H10V19H31V21ZM22 25H10V27H22V25ZM14 4H41C41.7957 4 42.5587 4.31607 43.1213 4.87868C43.6839 5.44129 44 6.20435 44 7V24C44 24.7956 43.6839 25.5587 43.1213 26.1213C42.5587 26.6839 41.7957 27 41 27H37V33C37 33.5304 36.7893 34.0391 36.4142 34.4142C36.0391 34.7893 35.5304 35 35 35H21.4141L12 44.4141V35H7C6.20435 35 5.44129 34.6839 4.87868 34.1213C4.31607 33.5587 4 32.7956 4 32V15C4 14.2044 4.31607 13.4413 4.87868 12.8787C5.44129 12.3161 6.20435 12 7 12H11V7C11 6.20435 11.3161 5.44129 11.8787 4.87868C12.4413 4.31607 13.2044 4 14 4ZM35 14H6V33H14V39.5859L20.5859 33H35V14ZM42 6H13V12H34C34.7956 12 35.5587 12.3161 36.1213 12.8787C36.6839 13.4413 37 14.2044 37 15V25H42V6Z" />
+</svg>
diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json
index d50a748493..78676da926 100644
--- a/resources/themes/cura-light/theme.json
+++ b/resources/themes/cura-light/theme.json
@@ -499,6 +499,9 @@
"print_setup_icon": [1.2, 1.2],
"drag_icon": [1.416, 0.25],
+ "application_switcher_item": [8, 9],
+ "application_switcher_icon": [3.75, 3.75],
+
"expandable_component_content_header": [0.0, 3.0],
"configuration_selector": [35.0, 4.0],
@@ -571,6 +574,9 @@
"favorites_button": [2, 2],
"favorites_button_icon": [1.2, 1.2],
+ "icon_indicator_background": [1.5, 1.5],
+ "icon_indicator": [1, 1],
+
"printer_status_icon": [1.0, 1.0],
"printer_sync_icon": [1.2, 1.2],
@@ -620,7 +626,7 @@
"message_close": [1, 1],
"message_radius": [0.25, 0.25],
"message_action_button": [0, 2.5],
- "message_image": [15.0, 5.0],
+ "message_image": [15.0, 10.0],
"message_type_icon": [2, 2],
"infill_button_margin": [0.5, 0.5],
diff --git a/resources/variants/arjunpro300_0.2.inst.cfg b/resources/variants/arjunpro300_0.2.inst.cfg
new file mode 100644
index 0000000000..51b359bfab
--- /dev/null
+++ b/resources/variants/arjunpro300_0.2.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.2 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.2
diff --git a/resources/variants/arjunpro300_0.3.inst.cfg b/resources/variants/arjunpro300_0.3.inst.cfg
new file mode 100644
index 0000000000..4d647df100
--- /dev/null
+++ b/resources/variants/arjunpro300_0.3.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.3 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.3
diff --git a/resources/variants/arjunpro300_0.4.inst.cfg b/resources/variants/arjunpro300_0.4.inst.cfg
new file mode 100644
index 0000000000..d17e90e245
--- /dev/null
+++ b/resources/variants/arjunpro300_0.4.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.4 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.4
diff --git a/resources/variants/arjunpro300_0.5.inst.cfg b/resources/variants/arjunpro300_0.5.inst.cfg
new file mode 100644
index 0000000000..61bdaf0ab9
--- /dev/null
+++ b/resources/variants/arjunpro300_0.5.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.5 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.5
diff --git a/resources/variants/arjunpro300_0.6.inst.cfg b/resources/variants/arjunpro300_0.6.inst.cfg
new file mode 100644
index 0000000000..905162b547
--- /dev/null
+++ b/resources/variants/arjunpro300_0.6.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.6 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.6
diff --git a/resources/variants/arjunpro300_0.8.inst.cfg b/resources/variants/arjunpro300_0.8.inst.cfg
new file mode 100644
index 0000000000..f12ef67d30
--- /dev/null
+++ b/resources/variants/arjunpro300_0.8.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.8 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.8
diff --git a/resources/variants/arjunpro300_dm_0.2.inst.cfg b/resources/variants/arjunpro300_dm_0.2.inst.cfg
new file mode 100644
index 0000000000..6b61519d07
--- /dev/null
+++ b/resources/variants/arjunpro300_dm_0.2.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.2 mm Nozzle
+version = 4
+definition = arjunpro_duplication
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.2
diff --git a/resources/variants/arjunpro300_dm_0.3.inst.cfg b/resources/variants/arjunpro300_dm_0.3.inst.cfg
new file mode 100644
index 0000000000..3570f3b57f
--- /dev/null
+++ b/resources/variants/arjunpro300_dm_0.3.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.3 mm Nozzle
+version = 4
+definition = arjunpro_duplication
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.3
diff --git a/resources/variants/arjunpro300_dm_0.4.inst.cfg b/resources/variants/arjunpro300_dm_0.4.inst.cfg
new file mode 100644
index 0000000000..e3ede604ab
--- /dev/null
+++ b/resources/variants/arjunpro300_dm_0.4.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.4 mm Nozzle
+version = 4
+definition = arjunpro_duplication
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.4
diff --git a/resources/variants/arjunpro300_dm_0.5.inst.cfg b/resources/variants/arjunpro300_dm_0.5.inst.cfg
new file mode 100644
index 0000000000..ada64e3553
--- /dev/null
+++ b/resources/variants/arjunpro300_dm_0.5.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.5 mm Nozzle
+version = 4
+definition = arjunpro_duplication
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.5
diff --git a/resources/variants/arjunpro300_dm_0.6.inst.cfg b/resources/variants/arjunpro300_dm_0.6.inst.cfg
new file mode 100644
index 0000000000..47d80f5a4f
--- /dev/null
+++ b/resources/variants/arjunpro300_dm_0.6.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.6 mm Nozzle
+version = 4
+definition = arjunpro_duplication
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.6
diff --git a/resources/variants/arjunpro300_dm_0.8.inst.cfg b/resources/variants/arjunpro300_dm_0.8.inst.cfg
new file mode 100644
index 0000000000..a34524e268
--- /dev/null
+++ b/resources/variants/arjunpro300_dm_0.8.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.8 mm Nozzle
+version = 4
+definition = arjunpro_duplication
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.8
diff --git a/resources/variants/arjunpro300_mm_0.2.inst.cfg b/resources/variants/arjunpro300_mm_0.2.inst.cfg
new file mode 100644
index 0000000000..9630a9e30b
--- /dev/null
+++ b/resources/variants/arjunpro300_mm_0.2.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.2 mm Nozzle
+version = 4
+definition = arjunpro_mirrored
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.2
diff --git a/resources/variants/arjunpro300_mm_0.3.inst.cfg b/resources/variants/arjunpro300_mm_0.3.inst.cfg
new file mode 100644
index 0000000000..09d397ddea
--- /dev/null
+++ b/resources/variants/arjunpro300_mm_0.3.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.3 mm Nozzle
+version = 4
+definition = arjunpro_mirrored
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.3
diff --git a/resources/variants/arjunpro300_mm_0.4.inst.cfg b/resources/variants/arjunpro300_mm_0.4.inst.cfg
new file mode 100644
index 0000000000..49b7851df7
--- /dev/null
+++ b/resources/variants/arjunpro300_mm_0.4.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.4 mm Nozzle
+version = 4
+definition = arjunpro_mirrored
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.4
diff --git a/resources/variants/arjunpro300_mm_0.5.inst.cfg b/resources/variants/arjunpro300_mm_0.5.inst.cfg
new file mode 100644
index 0000000000..dfbf3662c3
--- /dev/null
+++ b/resources/variants/arjunpro300_mm_0.5.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.5 mm Nozzle
+version = 4
+definition = arjunpro_mirrored
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.5
diff --git a/resources/variants/arjunpro300_mm_0.6.inst.cfg b/resources/variants/arjunpro300_mm_0.6.inst.cfg
new file mode 100644
index 0000000000..c13c5cf82b
--- /dev/null
+++ b/resources/variants/arjunpro300_mm_0.6.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.6 mm Nozzle
+version = 4
+definition = arjunpro_mirrored
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.6
diff --git a/resources/variants/arjunpro300_mm_0.8.inst.cfg b/resources/variants/arjunpro300_mm_0.8.inst.cfg
new file mode 100644
index 0000000000..feffb6846c
--- /dev/null
+++ b/resources/variants/arjunpro300_mm_0.8.inst.cfg
@@ -0,0 +1,13 @@
+[general]
+name = 0.8 mm Nozzle
+version = 4
+definition = arjunpro_mirrored
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.8
diff --git a/resources/variants/arjunpro300_pva_0.2.inst.cfg b/resources/variants/arjunpro300_pva_0.2.inst.cfg
new file mode 100644
index 0000000000..1abc708060
--- /dev/null
+++ b/resources/variants/arjunpro300_pva_0.2.inst.cfg
@@ -0,0 +1,32 @@
+[general]
+name = PVA 0.2 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.2
+support_infill_sparse_thickness = =(layer_height * 2) if (layer_height * 2) <= 0.75 * machine_nozzle_size else layer_height
+support_offset = 3
+support_bottom_height = =layer_height * 2
+support_bottom_pattern = zigzag
+support_bottom_stair_step_height = =layer_height
+support_infill_rate = 50
+support_interface_enable = True
+support_interface_height = =layer_height * 5
+support_interface_skip_height = =layer_height
+support_join_distance = 3
+support_xy_distance = =machine_nozzle_size / 2
+support_xy_distance_overhang = =machine_nozzle_size / 2
+support_angle = 45
+support_pattern = triangles
+support_use_towers = False
+support_z_distance = 0
+gradual_support_infill_steps = 2
+support_interface_density = 100
+support_interface_pattern = concentric \ No newline at end of file
diff --git a/resources/variants/arjunpro300_pva_0.3.inst.cfg b/resources/variants/arjunpro300_pva_0.3.inst.cfg
new file mode 100644
index 0000000000..5cb59930c1
--- /dev/null
+++ b/resources/variants/arjunpro300_pva_0.3.inst.cfg
@@ -0,0 +1,32 @@
+[general]
+name = PVA 0.3 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.3
+support_infill_sparse_thickness = =(layer_height * 2) if (layer_height * 2) <= 0.75 * machine_nozzle_size else layer_height
+support_offset = 3
+support_bottom_height = =layer_height * 2
+support_bottom_pattern = zigzag
+support_bottom_stair_step_height = =layer_height
+support_infill_rate = 50
+support_interface_enable = True
+support_interface_height = =layer_height * 5
+support_interface_skip_height = =layer_height
+support_join_distance = 3
+support_xy_distance = =machine_nozzle_size / 2
+support_xy_distance_overhang = =machine_nozzle_size / 2
+support_angle = 45
+support_pattern = triangles
+support_use_towers = False
+support_z_distance = 0
+gradual_support_infill_steps = 2
+support_interface_density = 100
+support_interface_pattern = concentric \ No newline at end of file
diff --git a/resources/variants/arjunpro300_pva_0.4.inst.cfg b/resources/variants/arjunpro300_pva_0.4.inst.cfg
new file mode 100644
index 0000000000..c2f5c68480
--- /dev/null
+++ b/resources/variants/arjunpro300_pva_0.4.inst.cfg
@@ -0,0 +1,32 @@
+[general]
+name = PVA 0.4 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.4
+support_infill_sparse_thickness = =(layer_height * 2) if (layer_height * 2) <= 0.75 * machine_nozzle_size else layer_height
+support_offset = 3
+support_bottom_height = =layer_height * 2
+support_bottom_pattern = zigzag
+support_bottom_stair_step_height = =layer_height
+support_infill_rate = 50
+support_interface_enable = True
+support_interface_height = =layer_height * 5
+support_interface_skip_height = =layer_height
+support_join_distance = 3
+support_xy_distance = =machine_nozzle_size / 2
+support_xy_distance_overhang = =machine_nozzle_size / 2
+support_angle = 45
+support_pattern = triangles
+support_use_towers = False
+support_z_distance = 0
+gradual_support_infill_steps = 2
+support_interface_density = 100
+support_interface_pattern = concentric \ No newline at end of file
diff --git a/resources/variants/arjunpro300_pva_0.5.inst.cfg b/resources/variants/arjunpro300_pva_0.5.inst.cfg
new file mode 100644
index 0000000000..6b985fb06b
--- /dev/null
+++ b/resources/variants/arjunpro300_pva_0.5.inst.cfg
@@ -0,0 +1,32 @@
+[general]
+name = PVA 0.5 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.5
+support_infill_sparse_thickness = =(layer_height * 2) if (layer_height * 2) <= 0.75 * machine_nozzle_size else layer_height
+support_offset = 3
+support_bottom_height = =layer_height * 2
+support_bottom_pattern = zigzag
+support_bottom_stair_step_height = =layer_height
+support_infill_rate = 50
+support_interface_enable = True
+support_interface_height = =layer_height * 5
+support_interface_skip_height = =layer_height
+support_join_distance = 3
+support_xy_distance = =machine_nozzle_size / 2
+support_xy_distance_overhang = =machine_nozzle_size / 2
+support_angle = 45
+support_pattern = triangles
+support_use_towers = False
+support_z_distance = 0
+gradual_support_infill_steps = 2
+support_interface_density = 100
+support_interface_pattern = concentric \ No newline at end of file
diff --git a/resources/variants/arjunpro300_pva_0.6.inst.cfg b/resources/variants/arjunpro300_pva_0.6.inst.cfg
new file mode 100644
index 0000000000..6bfea88e1a
--- /dev/null
+++ b/resources/variants/arjunpro300_pva_0.6.inst.cfg
@@ -0,0 +1,32 @@
+[general]
+name = PVA 0.6 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.6
+support_infill_sparse_thickness = =(layer_height * 2) if (layer_height * 2) <= 0.75 * machine_nozzle_size else layer_height
+support_offset = 3
+support_bottom_height = =layer_height * 2
+support_bottom_pattern = zigzag
+support_bottom_stair_step_height = =layer_height
+support_infill_rate = 50
+support_interface_enable = True
+support_interface_height = =layer_height * 5
+support_interface_skip_height = =layer_height
+support_join_distance = 3
+support_xy_distance = =machine_nozzle_size / 2
+support_xy_distance_overhang = =machine_nozzle_size / 2
+support_angle = 45
+support_pattern = triangles
+support_use_towers = False
+support_z_distance = 0
+gradual_support_infill_steps = 2
+support_interface_density = 100
+support_interface_pattern = concentric \ No newline at end of file
diff --git a/resources/variants/arjunpro300_pva_0.8.inst.cfg b/resources/variants/arjunpro300_pva_0.8.inst.cfg
new file mode 100644
index 0000000000..7cc066e19d
--- /dev/null
+++ b/resources/variants/arjunpro300_pva_0.8.inst.cfg
@@ -0,0 +1,32 @@
+[general]
+name = PVA 0.8 mm Nozzle
+version = 4
+definition = arjunpro300
+
+[metadata]
+
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.8
+support_infill_sparse_thickness = =(layer_height * 2) if (layer_height * 2) <= 0.75 * machine_nozzle_size else layer_height
+support_offset = 3
+support_bottom_height = =layer_height * 2
+support_bottom_pattern = zigzag
+support_bottom_stair_step_height = =layer_height
+support_infill_rate = 50
+support_interface_enable = True
+support_interface_height = =layer_height * 5
+support_interface_skip_height = =layer_height
+support_join_distance = 3
+support_xy_distance = =machine_nozzle_size / 2
+support_xy_distance_overhang = =machine_nozzle_size / 2
+support_angle = 45
+support_pattern = triangles
+support_use_towers = False
+support_z_distance = 0
+gradual_support_infill_steps = 2
+support_interface_density = 100
+support_interface_pattern = concentric \ No newline at end of file
diff --git a/resources/variants/creality_ender6_0.2.inst.cfg b/resources/variants/creality_ender6_0.2.inst.cfg
new file mode 100644
index 0000000000..ffa4156810
--- /dev/null
+++ b/resources/variants/creality_ender6_0.2.inst.cfg
@@ -0,0 +1,12 @@
+[general]
+name = 0.2mm Nozzle
+version = 4
+definition = creality_ender6
+
+[metadata]
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.2
diff --git a/resources/variants/creality_ender6_0.3.inst.cfg b/resources/variants/creality_ender6_0.3.inst.cfg
new file mode 100644
index 0000000000..398e975ff9
--- /dev/null
+++ b/resources/variants/creality_ender6_0.3.inst.cfg
@@ -0,0 +1,12 @@
+[general]
+name = 0.3mm Nozzle
+version = 4
+definition = creality_ender6
+
+[metadata]
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.3
diff --git a/resources/variants/creality_ender6_0.4.inst.cfg b/resources/variants/creality_ender6_0.4.inst.cfg
new file mode 100644
index 0000000000..93e4fb982c
--- /dev/null
+++ b/resources/variants/creality_ender6_0.4.inst.cfg
@@ -0,0 +1,12 @@
+[general]
+name = 0.4mm Nozzle
+version = 4
+definition = creality_ender6
+
+[metadata]
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.4
diff --git a/resources/variants/creality_ender6_0.5.inst.cfg b/resources/variants/creality_ender6_0.5.inst.cfg
new file mode 100644
index 0000000000..017d1f4e6c
--- /dev/null
+++ b/resources/variants/creality_ender6_0.5.inst.cfg
@@ -0,0 +1,12 @@
+[general]
+name = 0.5mm Nozzle
+version = 4
+definition = creality_ender6
+
+[metadata]
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.5
diff --git a/resources/variants/creality_ender6_0.6.inst.cfg b/resources/variants/creality_ender6_0.6.inst.cfg
new file mode 100644
index 0000000000..795c209d37
--- /dev/null
+++ b/resources/variants/creality_ender6_0.6.inst.cfg
@@ -0,0 +1,12 @@
+[general]
+name = 0.6mm Nozzle
+version = 4
+definition = creality_ender6
+
+[metadata]
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.6
diff --git a/resources/variants/creality_ender6_0.8.inst.cfg b/resources/variants/creality_ender6_0.8.inst.cfg
new file mode 100644
index 0000000000..1c91f353d8
--- /dev/null
+++ b/resources/variants/creality_ender6_0.8.inst.cfg
@@ -0,0 +1,12 @@
+[general]
+name = 0.8mm Nozzle
+version = 4
+definition = creality_ender6
+
+[metadata]
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 0.8
diff --git a/resources/variants/creality_ender6_1.0.inst.cfg b/resources/variants/creality_ender6_1.0.inst.cfg
new file mode 100644
index 0000000000..df3527ff2a
--- /dev/null
+++ b/resources/variants/creality_ender6_1.0.inst.cfg
@@ -0,0 +1,12 @@
+[general]
+name = 1.0mm Nozzle
+version = 4
+definition = creality_ender6
+
+[metadata]
+setting_version = 19
+type = variant
+hardware_type = nozzle
+
+[values]
+machine_nozzle_size = 1.0
diff --git a/resources/variants/ultimaker3_aa0.8.inst.cfg b/resources/variants/ultimaker3_aa0.8.inst.cfg
index 899651d56e..557f89fb07 100644
--- a/resources/variants/ultimaker3_aa0.8.inst.cfg
+++ b/resources/variants/ultimaker3_aa0.8.inst.cfg
@@ -19,9 +19,6 @@ infill_pattern = triangles
infill_wipe_dist = 0
jerk_enabled = True
jerk_print = 25
-jerk_topbottom = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 25 / 25), 200
layer_height = 0.2
machine_min_cool_heat_time_window = 15
machine_nozzle_cool_down_speed = 0.85
diff --git a/resources/variants/ultimaker3_bb0.8.inst.cfg b/resources/variants/ultimaker3_bb0.8.inst.cfg
index 1eb76c11d7..5976d140d2 100644
--- a/resources/variants/ultimaker3_bb0.8.inst.cfg
+++ b/resources/variants/ultimaker3_bb0.8.inst.cfg
@@ -23,7 +23,6 @@ infill_overlap = 0
infill_pattern = triangles
infill_wipe_dist = 0
jerk_enabled = True
-jerk_prime_tower = =max(math.ceil(jerk_print * 2 / 25), 20)
jerk_print = 25
jerk_support = =max(math.ceil(jerk_print * 15 / 25), 20)
jerk_support_interface = =max(math.ceil(jerk_support * 10 / 15), 20)
diff --git a/resources/variants/ultimaker3_bb04.inst.cfg b/resources/variants/ultimaker3_bb04.inst.cfg
index e734ea9f25..89c5430af5 100644
--- a/resources/variants/ultimaker3_bb04.inst.cfg
+++ b/resources/variants/ultimaker3_bb04.inst.cfg
@@ -15,10 +15,9 @@ acceleration_support_interface = =math.ceil(acceleration_support * 1500 / 2000)
acceleration_support_bottom = =math.ceil(acceleration_support_interface * 100 / 1500)
cool_fan_speed_max = =cool_fan_speed
gradual_support_infill_steps = 2
-jerk_prime_tower = =max(math.ceil(jerk_print * 2 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 15 / 25), 20)
-jerk_support_interface = =max(math.ceil(jerk_support * 10 / 15), 20)
-jerk_support_bottom = =max(math.ceil(jerk_support_interface * 1 / 10), 20)
+jerk_support = =math.ceil(jerk_print * 15 / 25)
+jerk_support_interface = =math.ceil(jerk_support * 10 / 15)
+jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10)
machine_nozzle_heat_up_speed = 1.5
machine_nozzle_id = BB 0.4
machine_nozzle_tip_outer_diameter = 1.0
diff --git a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg
index b8d26292b4..59549a28cc 100644
--- a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg
+++ b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg
@@ -19,9 +19,6 @@ infill_pattern = triangles
infill_wipe_dist = 0
jerk_enabled = True
jerk_print = 25
-jerk_topbottom = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 25 / 25), 20)
layer_height = 0.2
machine_min_cool_heat_time_window = 15
machine_nozzle_cool_down_speed = 0.85
diff --git a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg
index 041823e774..5393c14eb4 100644
--- a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg
+++ b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg
@@ -23,7 +23,6 @@ infill_overlap = 0
infill_pattern = triangles
infill_wipe_dist = 0
jerk_enabled = True
-jerk_prime_tower = =max(math.ceil(jerk_print * 2 / 25), 20)
jerk_print = 25
jerk_support = =max(math.ceil(jerk_print * 15 / 25), 20)
jerk_support_interface = =max(math.ceil(jerk_support * 10 / 15), 20)
diff --git a/resources/variants/ultimaker3_extended_bb04.inst.cfg b/resources/variants/ultimaker3_extended_bb04.inst.cfg
index 405db38c85..79a7441256 100644
--- a/resources/variants/ultimaker3_extended_bb04.inst.cfg
+++ b/resources/variants/ultimaker3_extended_bb04.inst.cfg
@@ -15,7 +15,6 @@ acceleration_support_interface = =math.ceil(acceleration_support * 1500 / 2000)
acceleration_support_bottom = =math.ceil(acceleration_support_interface * 100 / 1500)
cool_fan_speed_max = =cool_fan_speed
gradual_support_infill_steps = 2
-jerk_prime_tower = =math.ceil(jerk_print * 2 / 25)
jerk_support = =math.ceil(jerk_print * 15 / 25)
jerk_support_interface = =math.ceil(jerk_support * 10 / 15)
jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10)
diff --git a/resources/variants/ultimaker_s3_aa0.8.inst.cfg b/resources/variants/ultimaker_s3_aa0.8.inst.cfg
index f612d43c17..3e0aa20e73 100644
--- a/resources/variants/ultimaker_s3_aa0.8.inst.cfg
+++ b/resources/variants/ultimaker_s3_aa0.8.inst.cfg
@@ -19,9 +19,6 @@ infill_pattern = triangles
infill_wipe_dist = 0
jerk_enabled = True
jerk_print = 25
-jerk_topbottom = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 25 / 25), 20)
layer_height = 0.2
machine_min_cool_heat_time_window = 15
machine_nozzle_cool_down_speed = 0.85
diff --git a/resources/variants/ultimaker_s3_bb0.8.inst.cfg b/resources/variants/ultimaker_s3_bb0.8.inst.cfg
index 3a9097fffb..f9504753ac 100644
--- a/resources/variants/ultimaker_s3_bb0.8.inst.cfg
+++ b/resources/variants/ultimaker_s3_bb0.8.inst.cfg
@@ -22,7 +22,6 @@ infill_overlap = 0
infill_pattern = triangles
infill_wipe_dist = 0
jerk_enabled = True
-jerk_prime_tower = =max(math.ceil(jerk_print * 2 / 25), 20)
jerk_print = 25
jerk_support = =max(math.ceil(jerk_print * 15 / 25), 20)
jerk_support_interface = =max(math.ceil(jerk_support * 10 / 15), 20)
diff --git a/resources/variants/ultimaker_s3_bb04.inst.cfg b/resources/variants/ultimaker_s3_bb04.inst.cfg
index 4bf99d35a2..cd33dbfe1b 100644
--- a/resources/variants/ultimaker_s3_bb04.inst.cfg
+++ b/resources/variants/ultimaker_s3_bb04.inst.cfg
@@ -15,10 +15,9 @@ acceleration_support_bottom = =math.ceil(acceleration_support_interface * 100 /
acceleration_prime_tower = =math.ceil(acceleration_print * 200 / 3500)
cool_fan_speed_max = =cool_fan_speed
gradual_support_infill_steps = 2
-jerk_prime_tower = =max(math.ceil(jerk_print * 2 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 15 / 25), 20)
-jerk_support_interface = =max(math.ceil(jerk_support * 10 / 15), 20)
-jerk_support_bottom = =max(math.ceil(jerk_support_interface * 1 / 10), 20)
+jerk_support = =math.ceil(jerk_print * 15 / 25)
+jerk_support_interface = =math.ceil(jerk_support * 10 / 15)
+jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10)
machine_nozzle_heat_up_speed = 1.5
machine_nozzle_id = BB 0.4
machine_nozzle_tip_outer_diameter = 1.0
diff --git a/resources/variants/ultimaker_s5_aa0.8.inst.cfg b/resources/variants/ultimaker_s5_aa0.8.inst.cfg
index b62fb9f37f..7a6398ee56 100644
--- a/resources/variants/ultimaker_s5_aa0.8.inst.cfg
+++ b/resources/variants/ultimaker_s5_aa0.8.inst.cfg
@@ -19,9 +19,6 @@ infill_pattern = triangles
infill_wipe_dist = 0
jerk_enabled = True
jerk_print = 25
-jerk_topbottom = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall = =max(math.ceil(jerk_print * 25 / 25), 20)
-jerk_wall_0 = =max(math.ceil(jerk_wall * 25 / 25), 20)
layer_height = 0.2
machine_min_cool_heat_time_window = 15
machine_nozzle_cool_down_speed = 0.85
diff --git a/resources/variants/ultimaker_s5_bb0.8.inst.cfg b/resources/variants/ultimaker_s5_bb0.8.inst.cfg
index 011b567f22..34faf7d254 100644
--- a/resources/variants/ultimaker_s5_bb0.8.inst.cfg
+++ b/resources/variants/ultimaker_s5_bb0.8.inst.cfg
@@ -22,7 +22,6 @@ infill_overlap = 0
infill_pattern = triangles
infill_wipe_dist = 0
jerk_enabled = True
-jerk_prime_tower = =math.ceil(jerk_print * 2 / 25)
jerk_print = 25
jerk_support = =math.ceil(jerk_print * 15 / 25)
jerk_support_interface = =math.ceil(jerk_support * 10 / 15)
diff --git a/resources/variants/ultimaker_s5_bb04.inst.cfg b/resources/variants/ultimaker_s5_bb04.inst.cfg
index 90c11e53f3..3a4d937620 100644
--- a/resources/variants/ultimaker_s5_bb04.inst.cfg
+++ b/resources/variants/ultimaker_s5_bb04.inst.cfg
@@ -15,10 +15,9 @@ acceleration_support_bottom = =math.ceil(acceleration_support_interface * 100 /
acceleration_prime_tower = =math.ceil(acceleration_print * 200 / 3500)
cool_fan_speed_max = =cool_fan_speed
gradual_support_infill_steps = 2
-jerk_prime_tower = =max(math.ceil(jerk_print * 2 / 25), 20)
-jerk_support = =max(math.ceil(jerk_print * 15 / 25), 20)
-jerk_support_interface = =max(math.ceil(jerk_support * 10 / 15), 20)
-jerk_support_bottom = =max(math.ceil(jerk_support_interface * 1 / 10), 20)
+jerk_support = =math.ceil(jerk_print * 15 / 25)
+jerk_support_interface = =math.ceil(jerk_support * 10 / 15)
+jerk_support_bottom = =math.ceil(jerk_support_interface * 1 / 10)
machine_nozzle_heat_up_speed = 1.5
machine_nozzle_id = BB 0.4
machine_nozzle_tip_outer_diameter = 1.0