From 827ef072bd1a40b6d59a6e3f576950c6f9bfebee Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 23 Sep 2022 13:28:13 +0200 Subject: [PATCH 01/52] Should be able to run a build for VnV (testing). --- conandata.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conandata.yml b/conandata.yml index 83f45a2056..108b83f368 100644 --- a/conandata.yml +++ b/conandata.yml @@ -13,10 +13,10 @@ "5.2.0-alpha": requirements: - "pyarcus/(latest)@ultimaker/testing" - - "curaengine/(latest)@ultimaker/testing" + - "curaengine/5.2@ultimaker/testing" - "pysavitar/(latest)@ultimaker/testing" - "pynest2d/(latest)@ultimaker/testing" - - "uranium/(latest)@ultimaker/testing" + - "uranium/5.2@ultimaker/testing" - "fdm_materials/(latest)@ultimaker/testing" - "cura_binary_data/(latest)@ultimaker/testing" - "cpython/3.10.4" From 31e1577347947766fcec54ff5d9a155a00c8a20c Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 23 Sep 2022 14:01:55 +0200 Subject: [PATCH 02/52] Revert "Should be able to run a build for VnV (testing)." This reverts commit 827ef072bd1a40b6d59a6e3f576950c6f9bfebee. --- conandata.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conandata.yml b/conandata.yml index 108b83f368..83f45a2056 100644 --- a/conandata.yml +++ b/conandata.yml @@ -13,10 +13,10 @@ "5.2.0-alpha": requirements: - "pyarcus/(latest)@ultimaker/testing" - - "curaengine/5.2@ultimaker/testing" + - "curaengine/(latest)@ultimaker/testing" - "pysavitar/(latest)@ultimaker/testing" - "pynest2d/(latest)@ultimaker/testing" - - "uranium/5.2@ultimaker/testing" + - "uranium/(latest)@ultimaker/testing" - "fdm_materials/(latest)@ultimaker/testing" - "cura_binary_data/(latest)@ultimaker/testing" - "cpython/3.10.4" From a94bd91085afa99707ef5c6f5e2ff9fe709bf764 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 23 Sep 2022 17:49:50 +0200 Subject: [PATCH 03/52] Able to force 'prerelease'-version information. --- conanfile.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 17cd0260a6..327a571e54 100644 --- a/conanfile.py +++ b/conanfile.py @@ -35,6 +35,7 @@ class CuraConan(ConanFile): "devtools": [True, False], # FIXME: Split this up in testing and (development / build (pyinstaller) / system installer) tools "cloud_api_version": "ANY", "display_name": "ANY", # TODO: should this be an option?? + "extra_build_version": "ANY", #FIXME?: can't retrieve this from github workflow, so have an option to do it 'manually' "cura_debug_mode": [True, False], # FIXME: Use profiles "internal": [True, False] } @@ -44,6 +45,7 @@ class CuraConan(ConanFile): "devtools": False, "cloud_api_version": "1", "display_name": "Ultimaker Cura", + "extra_build_version": "", "cura_debug_mode": False, # Not yet implemented "internal": False, } @@ -150,9 +152,12 @@ class CuraConan(ConanFile): cura_version_py = Template(f.read()) cura_version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) + version = Version(cura_version) + if self.options.extra_build_version != "": + version.prerelease = self.options.extra_build_version if self.options.internal: - version = Version(cura_version) - cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease.replace('+', '+internal_')}" + version.prerelease = version.prerelease.replace('+', '+internal_') + cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease}" with open(Path(location, "CuraVersion.py"), "w") as f: f.write(cura_version_py.render( From 73f05a392958ffff48adf550324729037d603576 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 27 Sep 2022 16:48:57 +0200 Subject: [PATCH 04/52] Changelog for 5.2-beta (draft v2). --- resources/texts/change_log.txt | 66 ++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/resources/texts/change_log.txt b/resources/texts/change_log.txt index c402291178..16b5952a8f 100644 --- a/resources/texts/change_log.txt +++ b/resources/texts/change_log.txt @@ -1,3 +1,69 @@ +[5.2-BETA] + +* Abstract Cloud Printer Type +For currently online cloud printers, they are collated by type, and you can slice on the ('abstract') printer-type, then choose the specific printer that matches the profiles afterwards. + +* Support For 'Student'-Type Accounts (In Digital Factory) +Accounts can have a 'Student'/'Teacher' relationship, where permission is needed for printing, when a print is sent via cloud. + +* More Control Over Initial Layer Flow +Three new settings: 'Initial Layer Outer Wall Flow', 'Initial Layer Inner Wall Flow', 'Initial Layer Bottom Flow', to better counteract the 'elephants foot' phenomenon. + +* Other new features and improvements: +- Auto-remove holes from not completely solid models in vase-mode. +- Add setting for 'tree support max diameter'. +- Add option to drop-down models to the build-plate individually. contributed to @Piezoid +- Added a preference to make the tray icon optional. contributed by @fieldOfView + +* Bug fixes: +- Don't ignore bottom pattern when spiralizing. +- Don't 'Union All' for 'Merged Meshes Overlap'. +- Seam placement was not in the correct corner in some cases. +- Cutting meshes with 'surface' set to 'both' cut through the mesh. +- Brim lines where ordered the wrong way in some cases. +- Random seam is now more random. +- Correctly apply combing when spiralizing. contributed by @smartavionics +- Don't spam the user with spurious 'Cura Notification's. +- Don't spam the logs with duplicated deprecated warnings. contributed by @Patschke +- Properly update the infill percentage in the top bar after an intent profile switch. +- An uninstall could only be done by the original user that installed. +- In certain rare situations, layers would be printed multiple times when monotonic fill was on. +- Put tree support infill density at 0% by default. +- Machine settings: Also save values when closing the window, not just when focus' changed. +- Reduce clickable area of settings checkboxes, to prevent mis-clicks. +- Fixed a crash when an unnamed tool would be accessed (possibly related to plugin use). +- Fix an issue where a plugin would crash because of a missing dependency. +- Code refactors contributed by @digitalfrost +- Fix for to-mouse zoom on screens with scaling factor. contributed by @seaniepie +- Models could not be multiplied in one-at-a-time mode. + +* Printer definitions, profiles and materials: +- Added Creality Ender 3 S1 profile. contributed by @Sebazzz +- Added Anycubic Kobra (Max). contributed by @ANYCUBIC-3D +- Added HCTECH printers. contributed by @3d-hctech +- Added da Vinci Pro EVO. contributed by @heed818 +- Fix FLSUN QQ-S platform orientation. contributed by @RVillani +- Fix Kingroon printers from going outside the build-volume in the end-gcode. contributed by @odaki +- Added Geetech Mizar_S. contributed by @Geeetech3D +- Added Tank-M printer. contributed by KOONOVO3DPrinter +- Update Renkforce RF100XL definition. contributed by @imakecodes +- Added VzBot profiles. contributed by @ckvsoft +- Added (additional) mingda printers. contributed by @jianshu-du +- Added Naxe machines. contributed by @Naxecorp +- Added T-Rex 2+, T-Rex 3. contributed by @jim-edwards +- Update FLsun SR. @xPakrikx +- Update Anycubic mega zero. contributed by @NOVAXIM +- Added some Renkforce machines. contributed by @goofoo3d + +* Community translations (pending): +- Updated the Brazilian Portuguese translation, contributed by Patola. +- Updated the Czech translation, contributed by sustmi. + +* Known critical issues: +- While some small fixes have been made already, the placement of the seam is still more scattered than before 5.0. (Will try to fix in stable.) +- Support is sometimes missing in detailed parts, where previous releases supported them properly (still). (Will probably not be fixed in stable. This is currently slated for 5.3) +- Multiple external monitors on Windows (especially if from the same brand) might be a problem under some circumstances. (Will probably not be fixed in stable.) + [5.1.1] * New features: - Added support for the Ultimaker S3 and Ultimaker S5 updated mainbord From da8042fe20879420ece3ad58f2a21e84e52bc466 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 27 Sep 2022 17:05:00 +0200 Subject: [PATCH 05/52] Update change-log to better reflect guest-type accounts. --- resources/texts/change_log.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/texts/change_log.txt b/resources/texts/change_log.txt index 16b5952a8f..6f505ac21c 100644 --- a/resources/texts/change_log.txt +++ b/resources/texts/change_log.txt @@ -3,8 +3,8 @@ * Abstract Cloud Printer Type For currently online cloud printers, they are collated by type, and you can slice on the ('abstract') printer-type, then choose the specific printer that matches the profiles afterwards. -* Support For 'Student'-Type Accounts (In Digital Factory) -Accounts can have a 'Student'/'Teacher' relationship, where permission is needed for printing, when a print is sent via cloud. +* Support For 'Guest'-Type Accounts (In Digital Factory) +Colleagues or students in a ‘Guest’ role can prepare print jobs in Ultimaker Cura and send them to the printers via Digital Factory. Print jobs prepared like this will not start immediately but wait for approval from a user with an 'Member' or 'Admin' role. * More Control Over Initial Layer Flow Three new settings: 'Initial Layer Outer Wall Flow', 'Initial Layer Inner Wall Flow', 'Initial Layer Bottom Flow', to better counteract the 'elephants foot' phenomenon. From 5a15d973deecf476482bc0eb46454bb4fd18036f Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 27 Sep 2022 17:08:44 +0200 Subject: [PATCH 06/52] Update change-log: Remove at-signs before contributors. --- resources/texts/change_log.txt | 42 +++++++++++++++++----------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/resources/texts/change_log.txt b/resources/texts/change_log.txt index 6f505ac21c..d542d4fdf7 100644 --- a/resources/texts/change_log.txt +++ b/resources/texts/change_log.txt @@ -12,8 +12,8 @@ Three new settings: 'Initial Layer Outer Wall Flow', 'Initial Layer Inner Wall F * Other new features and improvements: - Auto-remove holes from not completely solid models in vase-mode. - Add setting for 'tree support max diameter'. -- Add option to drop-down models to the build-plate individually. contributed to @Piezoid -- Added a preference to make the tray icon optional. contributed by @fieldOfView +- Add option to drop-down models to the build-plate individually. contributed to Piezoid +- Added a preference to make the tray icon optional. contributed by fieldOfView * Bug fixes: - Don't ignore bottom pattern when spiralizing. @@ -22,9 +22,9 @@ Three new settings: 'Initial Layer Outer Wall Flow', 'Initial Layer Inner Wall F - Cutting meshes with 'surface' set to 'both' cut through the mesh. - Brim lines where ordered the wrong way in some cases. - Random seam is now more random. -- Correctly apply combing when spiralizing. contributed by @smartavionics +- Correctly apply combing when spiralizing. contributed by smartavionics - Don't spam the user with spurious 'Cura Notification's. -- Don't spam the logs with duplicated deprecated warnings. contributed by @Patschke +- Don't spam the logs with duplicated deprecated warnings. contributed by Patschke - Properly update the infill percentage in the top bar after an intent profile switch. - An uninstall could only be done by the original user that installed. - In certain rare situations, layers would be printed multiple times when monotonic fill was on. @@ -33,27 +33,27 @@ Three new settings: 'Initial Layer Outer Wall Flow', 'Initial Layer Inner Wall F - Reduce clickable area of settings checkboxes, to prevent mis-clicks. - Fixed a crash when an unnamed tool would be accessed (possibly related to plugin use). - Fix an issue where a plugin would crash because of a missing dependency. -- Code refactors contributed by @digitalfrost -- Fix for to-mouse zoom on screens with scaling factor. contributed by @seaniepie +- Code refactors contributed by digitalfrost +- Fix for to-mouse zoom on screens with scaling factor. contributed by seaniepie - Models could not be multiplied in one-at-a-time mode. * Printer definitions, profiles and materials: -- Added Creality Ender 3 S1 profile. contributed by @Sebazzz -- Added Anycubic Kobra (Max). contributed by @ANYCUBIC-3D -- Added HCTECH printers. contributed by @3d-hctech -- Added da Vinci Pro EVO. contributed by @heed818 -- Fix FLSUN QQ-S platform orientation. contributed by @RVillani -- Fix Kingroon printers from going outside the build-volume in the end-gcode. contributed by @odaki -- Added Geetech Mizar_S. contributed by @Geeetech3D +- Added Creality Ender 3 S1 profile. contributed by Sebazzz +- Added Anycubic Kobra (Max). contributed by ANYCUBIC-3D +- Added HCTECH printers. contributed by 3d-hctech +- Added da Vinci Pro EVO. contributed by heed818 +- Fix FLSUN QQ-S platform orientation. contributed by RVillani +- Fix Kingroon printers from going outside the build-volume in the end-gcode. contributed by odaki +- Added Geetech Mizar_S. contributed by Geeetech3D - Added Tank-M printer. contributed by KOONOVO3DPrinter -- Update Renkforce RF100XL definition. contributed by @imakecodes -- Added VzBot profiles. contributed by @ckvsoft -- Added (additional) mingda printers. contributed by @jianshu-du -- Added Naxe machines. contributed by @Naxecorp -- Added T-Rex 2+, T-Rex 3. contributed by @jim-edwards -- Update FLsun SR. @xPakrikx -- Update Anycubic mega zero. contributed by @NOVAXIM -- Added some Renkforce machines. contributed by @goofoo3d +- Update Renkforce RF100XL definition. contributed by imakecodes +- Added VzBot profiles. contributed by ckvsoft +- Added (additional) mingda printers. contributed by jianshu-du +- Added Naxe machines. contributed by Naxecorp +- Added T-Rex 2+, T-Rex 3. contributed by jim-edwards +- Update FLsun SR. xPakrikx +- Update Anycubic mega zero. contributed by NOVAXIM +- Added some Renkforce machines. contributed by goofoo3d * Community translations (pending): - Updated the Brazilian Portuguese translation, contributed by Patola. From fb48c80ff904f33e0766fa5edbb460a1a1b2ce3a Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 27 Sep 2022 17:25:58 +0200 Subject: [PATCH 07/52] Update changelog: Style and small fixes. --- resources/texts/change_log.txt | 84 +++++++++++++++++----------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/resources/texts/change_log.txt b/resources/texts/change_log.txt index d542d4fdf7..d62c0c0a34 100644 --- a/resources/texts/change_log.txt +++ b/resources/texts/change_log.txt @@ -10,54 +10,54 @@ Colleagues or students in a ‘Guest’ role can prepare print jobs in Ultimaker Three new settings: 'Initial Layer Outer Wall Flow', 'Initial Layer Inner Wall Flow', 'Initial Layer Bottom Flow', to better counteract the 'elephants foot' phenomenon. * Other new features and improvements: -- Auto-remove holes from not completely solid models in vase-mode. -- Add setting for 'tree support max diameter'. -- Add option to drop-down models to the build-plate individually. contributed to Piezoid -- Added a preference to make the tray icon optional. contributed by fieldOfView +- Auto-remove holes from not completely solid models in vase-mode +- Add setting for 'tree support max diameter' +- Add option to drop-down models to the build-plate individually, contributed to Piezoid +- Added a preference to make the tray icon optional, contributed by fieldOfView * Bug fixes: -- Don't ignore bottom pattern when spiralizing. -- Don't 'Union All' for 'Merged Meshes Overlap'. -- Seam placement was not in the correct corner in some cases. -- Cutting meshes with 'surface' set to 'both' cut through the mesh. -- Brim lines where ordered the wrong way in some cases. -- Random seam is now more random. -- Correctly apply combing when spiralizing. contributed by smartavionics -- Don't spam the user with spurious 'Cura Notification's. -- Don't spam the logs with duplicated deprecated warnings. contributed by Patschke -- Properly update the infill percentage in the top bar after an intent profile switch. -- An uninstall could only be done by the original user that installed. -- In certain rare situations, layers would be printed multiple times when monotonic fill was on. -- Put tree support infill density at 0% by default. -- Machine settings: Also save values when closing the window, not just when focus' changed. -- Reduce clickable area of settings checkboxes, to prevent mis-clicks. -- Fixed a crash when an unnamed tool would be accessed (possibly related to plugin use). -- Fix an issue where a plugin would crash because of a missing dependency. -- Code refactors contributed by digitalfrost -- Fix for to-mouse zoom on screens with scaling factor. contributed by seaniepie -- Models could not be multiplied in one-at-a-time mode. +- Don't ignore bottom pattern when spiralizing +- Don't 'Union All' for 'Merged Meshes Overlap' +- Seam placement was not in the correct corner in some cases +- Cutting meshes with 'surface' set to 'both' cut through the mesh +- Brim lines where ordered the wrong way in some cases +- Random seam is now more random +- Correctly apply combing when spiralizing, contributed by smartavionics +- Don't spam the user with spurious 'Cura Notification's (Windows only) +- Don't spam the logs with duplicated deprecated warnings, contributed by Patschke +- Properly update the infill percentage in the top bar after an intent profile switch +- An uninstall could only be done by the original user that installed +- In certain rare situations, layers would be printed multiple times when monotonic fill was on +- Put tree support infill density at 0% by default +- Machine settings: Also save values when closing the window, not just when focus' changed +- Reduce clickable area of settings checkboxes, to prevent mis-clicks +- Fixed a crash when an unnamed tool would be accessed (possibly related to plugin use) +- Fix an issue where a plugin would crash because of a missing dependency +- Many helpful code refactors, contributed by digitalfrost +- Fix for to-mouse zoom on screens with scaling factor, contributed by seaniepie +- Models could not be multiplied in one-at-a-time mode * Printer definitions, profiles and materials: -- Added Creality Ender 3 S1 profile. contributed by Sebazzz -- Added Anycubic Kobra (Max). contributed by ANYCUBIC-3D -- Added HCTECH printers. contributed by 3d-hctech -- Added da Vinci Pro EVO. contributed by heed818 -- Fix FLSUN QQ-S platform orientation. contributed by RVillani -- Fix Kingroon printers from going outside the build-volume in the end-gcode. contributed by odaki -- Added Geetech Mizar_S. contributed by Geeetech3D -- Added Tank-M printer. contributed by KOONOVO3DPrinter -- Update Renkforce RF100XL definition. contributed by imakecodes -- Added VzBot profiles. contributed by ckvsoft -- Added (additional) mingda printers. contributed by jianshu-du -- Added Naxe machines. contributed by Naxecorp -- Added T-Rex 2+, T-Rex 3. contributed by jim-edwards -- Update FLsun SR. xPakrikx -- Update Anycubic mega zero. contributed by NOVAXIM -- Added some Renkforce machines. contributed by goofoo3d +- Added Creality Ender 3 S1 profile, contributed by Sebazzz +- Added Anycubic Kobra (Max), contributed by ANYCUBIC-3D +- Added HCTECH printers, contributed by 3d-hctech +- Added da Vinci Pro EVO, contributed by heed818 +- Fix FLSUN QQ-S platform orientation, contributed by RVillani +- Fix Kingroon printers from going outside the build-volume in the end-gcode, contributed by odaki +- Added Geetech Mizar_S, contributed by Geeetech3D +- Added Tank-M printer, contributed by KOONOVO3DPrinter +- Update Renkforce RF100XL definition, contributed by imakecodes +- Added VzBot profiles, contributed by ckvsoft +- Added (additional) mingda printers, contributed by jianshu-du +- Added Naxe machines, contributed by Naxecorp +- Added T-Rex 2+, T-Rex 3, contributed by jim-edwards +- Update FLsun SR, contributed xPakrikx +- Update Anycubic mega zero, contributed by NOVAXIM +- Added some Renkforce machines, contributed by goofoo3d * Community translations (pending): -- Updated the Brazilian Portuguese translation, contributed by Patola. -- Updated the Czech translation, contributed by sustmi. +- Updated the Brazilian Portuguese translation, contributed by Patola +- Updated the Czech translation, contributed by sustmi * Known critical issues: - While some small fixes have been made already, the placement of the seam is still more scattered than before 5.0. (Will try to fix in stable.) From 9a4500f8472a71febfe5f79ef1a5eefc247e906b Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 28 Sep 2022 10:37:08 +0200 Subject: [PATCH 08/52] Update SDK to 8.2.0 for release 5.2 --- cura/ApplicationMetadata.py | 2 +- resources/bundled_packages/cura.json | 214 +++++++++++++-------------- 2 files changed, 108 insertions(+), 108 deletions(-) diff --git a/cura/ApplicationMetadata.py b/cura/ApplicationMetadata.py index 4938d569e7..92d5eb6b64 100644 --- a/cura/ApplicationMetadata.py +++ b/cura/ApplicationMetadata.py @@ -14,7 +14,7 @@ DEFAULT_CURA_LATEST_URL = "https://software.ultimaker.com/latest.json" # 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 = "8.1.0" +CuraSDKVersion = "8.2.0" try: from cura.CuraVersion import CuraLatestURL diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index df89a0e2d1..6e28222597 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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -125,7 +125,7 @@ "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.1.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -533,7 +533,7 @@ "display_name": "Marketplace", "description": "Find, manage and install new Cura packages.", "package_version": "1.0.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -975,7 +975,7 @@ "display_name": "Version Upgrade 4.9 to 4.10", "description": "Upgrades configurations from Cura 4.9 to Cura 4.10", "package_version": "1.0.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -1010,7 +1010,7 @@ "display_name": "X3D Reader", "description": "Provides support for reading X3D files.", "package_version": "1.0.1", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com", "author": { "author_id": "SevaAlekseyev", @@ -1027,7 +1027,7 @@ "display_name": "XML Material Profiles", "description": "Provides capabilities to read and write XML-based material profiles.", "package_version": "1.0.1", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -1044,7 +1044,7 @@ "display_name": "X-Ray View", "description": "Provides the X-Ray view.", "package_version": "1.0.1", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -1061,7 +1061,7 @@ "display_name": "Generic ABS", "description": "The generic ABS profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1079,7 +1079,7 @@ "display_name": "Generic BAM", "description": "The generic BAM profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1097,7 +1097,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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1115,7 +1115,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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1133,7 +1133,7 @@ "display_name": "Generic CPE", "description": "The generic CPE profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1151,7 +1151,7 @@ "display_name": "Generic CPE+", "description": "The generic CPE+ profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1169,7 +1169,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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1187,7 +1187,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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1205,7 +1205,7 @@ "display_name": "Generic HIPS", "description": "The generic HIPS profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1223,7 +1223,7 @@ "display_name": "Generic Nylon", "description": "The generic Nylon profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1241,7 +1241,7 @@ "display_name": "Generic PC", "description": "The generic PC profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1259,7 +1259,7 @@ "display_name": "Generic PETG", "description": "The generic PETG profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1277,7 +1277,7 @@ "display_name": "Generic PLA", "description": "The generic PLA profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1295,7 +1295,7 @@ "display_name": "Generic PP", "description": "The generic PP profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1313,7 +1313,7 @@ "display_name": "Generic PVA", "description": "The generic PVA profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1331,7 +1331,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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1349,7 +1349,7 @@ "display_name": "Generic TPU", "description": "The generic TPU profile which other profiles can be based upon.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1367,7 +1367,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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://dagoma.fr/boutique/filaments.html", "author": { "author_id": "Dagoma", @@ -1384,7 +1384,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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=40", "author": { "author_id": "FABtotum", @@ -1401,7 +1401,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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=53", "author": { "author_id": "FABtotum", @@ -1418,7 +1418,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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=39", "author": { "author_id": "FABtotum", @@ -1435,7 +1435,7 @@ "display_name": "FABtotum TPU Shore 98A", "description": "", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=66", "author": { "author_id": "FABtotum", @@ -1452,7 +1452,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": "8.1.0", + "sdk_version": "8.2.0", "website": "http://fiberlogy.com/en/fiberlogy-filaments/filament-hd-pla/", "author": { "author_id": "Fiberlogy", @@ -1469,7 +1469,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": "8.1.0", + "sdk_version": "8.2.0", "website": "https://dagoma.fr", "author": { "author_id": "Dagoma", @@ -1486,7 +1486,7 @@ "display_name": "IMADE3D JellyBOX PETG", "description": "", "package_version": "1.0.1", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "http://shop.imade3d.com/filament.html", "author": { "author_id": "IMADE3D", @@ -1503,7 +1503,7 @@ "display_name": "IMADE3D JellyBOX PLA", "description": "", "package_version": "1.0.1", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "http://shop.imade3d.com/filament.html", "author": { "author_id": "IMADE3D", @@ -1520,7 +1520,7 @@ "display_name": "Octofiber PLA", "description": "PLA material from Octofiber.", "package_version": "1.0.1", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://nl.octofiber.com/3d-printing-filament/pla.html", "author": { "author_id": "Octofiber", @@ -1537,7 +1537,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": "8.1.0", + "sdk_version": "8.2.0", "website": "http://www.polymaker.com/shop/polyflex/", "author": { "author_id": "Polymaker", @@ -1554,7 +1554,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": "8.1.0", + "sdk_version": "8.2.0", "website": "http://www.polymaker.com/shop/polymax/", "author": { "author_id": "Polymaker", @@ -1571,7 +1571,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": "8.1.0", + "sdk_version": "8.2.0", "website": "http://www.polymaker.com/shop/polyplus-true-colour/", "author": { "author_id": "Polymaker", @@ -1588,7 +1588,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": "8.1.0", + "sdk_version": "8.2.0", "website": "http://www.polymaker.com/shop/polywood/", "author": { "author_id": "Polymaker", @@ -1605,7 +1605,7 @@ "display_name": "Ultimaker ABS", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", @@ -1624,7 +1624,7 @@ "display_name": "Ultimaker Breakaway", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/breakaway", "author": { "author_id": "UltimakerPackages", @@ -1643,7 +1643,7 @@ "display_name": "Ultimaker CPE", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", @@ -1662,7 +1662,7 @@ "display_name": "Ultimaker CPE+", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/cpe", "author": { "author_id": "UltimakerPackages", @@ -1681,7 +1681,7 @@ "display_name": "Ultimaker Nylon", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", @@ -1700,7 +1700,7 @@ "display_name": "Ultimaker PC", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/pc", "author": { "author_id": "UltimakerPackages", @@ -1719,7 +1719,7 @@ "display_name": "Ultimaker PLA", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", @@ -1738,7 +1738,7 @@ "display_name": "Ultimaker PP", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/pp", "author": { "author_id": "UltimakerPackages", @@ -1757,7 +1757,7 @@ "display_name": "Ultimaker PVA", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", @@ -1776,7 +1776,7 @@ "display_name": "Ultimaker TPU 95A", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/tpu-95a", "author": { "author_id": "UltimakerPackages", @@ -1795,7 +1795,7 @@ "display_name": "Ultimaker Tough PLA", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://ultimaker.com/products/materials/tough-pla", "author": { "author_id": "UltimakerPackages", @@ -1814,7 +1814,7 @@ "display_name": "Vertex Delta ABS", "description": "ABS material and quality files for the Delta Vertex K8800.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", @@ -1831,7 +1831,7 @@ "display_name": "Vertex Delta PET", "description": "ABS material and quality files for the Delta Vertex K8800.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", @@ -1848,7 +1848,7 @@ "display_name": "Vertex Delta PLA", "description": "ABS material and quality files for the Delta Vertex K8800.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", @@ -1865,7 +1865,7 @@ "display_name": "Vertex Delta TPU", "description": "ABS material and quality files for the Delta Vertex K8800.", "package_version": "1.4.0", - "sdk_version": "8.1.0", + "sdk_version": "8.2.0", "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", From aab4723fe0a33894009444cae2eedf2b009c5145 Mon Sep 17 00:00:00 2001 From: Remco Burema <41987080+rburema@users.noreply.github.com> Date: Wed, 28 Sep 2022 12:22:15 +0200 Subject: [PATCH 09/52] Changelog updates: suggestions from 'code' review. Co-authored-by: Joey de l'Arago --- resources/texts/change_log.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/texts/change_log.txt b/resources/texts/change_log.txt index d62c0c0a34..edbd7f1b91 100644 --- a/resources/texts/change_log.txt +++ b/resources/texts/change_log.txt @@ -1,10 +1,10 @@ [5.2-BETA] * Abstract Cloud Printer Type -For currently online cloud printers, they are collated by type, and you can slice on the ('abstract') printer-type, then choose the specific printer that matches the profiles afterwards. +Online cloud printers are now grouped by type. You can slice with the ('abstract') printer type, and afterwards choose a specific printer to print with. * Support For 'Guest'-Type Accounts (In Digital Factory) -Colleagues or students in a ‘Guest’ role can prepare print jobs in Ultimaker Cura and send them to the printers via Digital Factory. Print jobs prepared like this will not start immediately but wait for approval from a user with an 'Member' or 'Admin' role. +Users with the ‘Guest’ role can prepare print jobs in Ultimaker Cura and send them to the printers via Digital Factory. These print jobs will not start until they are approved by a user with an 'Member' or 'Admin' role. * More Control Over Initial Layer Flow Three new settings: 'Initial Layer Outer Wall Flow', 'Initial Layer Inner Wall Flow', 'Initial Layer Bottom Flow', to better counteract the 'elephants foot' phenomenon. From 17462d274bf1cd1ea904625513db481e11c0d9b3 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 28 Sep 2022 16:15:32 +0200 Subject: [PATCH 10/52] Upgrade SciPy to 1.9.1 This _should_ fix a bug where Cura crashes due to a username with non-latin characters in Windows. This is due to the creation and removal of temporary files by SciPy, which on Windows, happens in the users' folder. CURA-8416 --- requirements.txt | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/requirements.txt b/requirements.txt index 60dcb77bea..70a91f9a0e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -66,16 +66,30 @@ pyclipper==1.3.0.post2; \ --hash=sha256:5175ee50772a7dcc0feaab19ccf5b979b6066f4753edb330700231cf70d0c918 \ --hash=sha256:19a6809d9cbd535d0fe922e9315babb8d70b5c7dcd43e0f89740d09c406b40f8 \ --hash=sha256:5c5d50498e335d7f969ca5ad5886e77c40088521dcabab4feb2f93727140251e -scipy==1.8.1; \ - --hash=sha256:9e3fb1b0e896f14a85aa9a28d5f755daaeeb54c897b746df7a55ccb02b340f33 \ - --hash=sha256:4e53a55f6a4f22de01ffe1d2f016e30adedb67a699a310cdcac312806807ca81 \ - --hash=sha256:a0aa8220b89b2e3748a2836fbfa116194378910f1a6e78e4675a095bcd2c762d \ - --hash=sha256:02b567e722d62bddd4ac253dafb01ce7ed8742cf8031aea030a41414b86c1125 \ - --hash=sha256:65b77f20202599c51eb2771d11a6b899b97989159b7975e9b5259594f1d35ef4 \ - --hash=sha256:9dd4012ac599a1e7eb63c114d1eee1bcfc6dc75a29b589ff0ad0bb3d9412034f \ - --hash=sha256:70de2f11bf64ca9921fda018864c78af7147025e467ce9f4a11bc877266900a6 \ - --hash=sha256:83606129247e7610b58d0e1e93d2c5133959e9cf93555d3c27e536892f1ba1f2 \ - --hash=sha256:f3e7a8867f307e3359cc0ed2c63b61a1e33a19080f92fe377bc7d49f646f2ec1 +scipy==1.9.1 \ + --hash=sha256:c61b4a91a702e8e04aeb0bfc40460e1f17a640977c04dda8757efb0199c75332 \ + --hash=sha256:d79da472015d0120ba9b357b28a99146cd6c17b9609403164b1a8ed149b4dfc8 \ + --hash=sha256:825951b88f56765aeb6e5e38ac9d7d47407cfaaeb008d40aa1b45a2d7ea2731e \ + --hash=sha256:f950a04b33e17b38ff561d5a0951caf3f5b47caa841edd772ffb7959f20a6af0 \ + --hash=sha256:8cc81ac25659fec73599ccc52c989670e5ccd8974cf34bacd7b54a8d809aff1a \ + --hash=sha256:8d3faa40ac16c6357aaf7ea50394ea6f1e8e99d75e927a51102b1943b311b4d9 \ + --hash=sha256:7a412c476a91b080e456229e413792bbb5d6202865dae963d1e6e28c2bb58691 \ + --hash=sha256:eb954f5aca4d26f468bbebcdc5448348eb287f7bea536c6306f62ea062f63d9a \ + --hash=sha256:3c6f5d1d4b9a5e4fe5e14f26ffc9444fc59473bbf8d45dc4a9a15283b7063a72 \ + --hash=sha256:bc4e2c77d4cd015d739e75e74ebbafed59ba8497a7ed0fd400231ed7683497c4 \ + --hash=sha256:0419485dbcd0ed78c0d5bf234c5dd63e86065b39b4d669e45810d42199d49521 \ + --hash=sha256:34441dfbee5b002f9e15285014fd56e5e3372493c3e64ae297bae2c4b9659f5a \ + --hash=sha256:b97b479f39c7e4aaf807efd0424dec74bbb379108f7d22cf09323086afcd312c \ + --hash=sha256:e8fe305d9d67a81255e06203454729405706907dccbdfcc330b7b3482a6c371d \ + --hash=sha256:39ab9240cd215a9349c85ab908dda6d732f7d3b4b192fa05780812495536acc4 \ + --hash=sha256:71487c503e036740635f18324f62a11f283a632ace9d35933b2b0a04fd898c98 \ + --hash=sha256:3bc1ab68b9a096f368ba06c3a5e1d1d50957a86665fc929c4332d21355e7e8f4 \ + --hash=sha256:f7c39f7dbb57cce00c108d06d731f3b0e2a4d3a95c66d96bce697684876ce4d4 \ + --hash=sha256:47d1a95bd9d37302afcfe1b84c8011377c4f81e33649c5a5785db9ab827a6ade \ + --hash=sha256:96d7cf7b25c9f23c59a766385f6370dab0659741699ecc7a451f9b94604938ce \ + --hash=sha256:09412eb7fb60b8f00b328037fd814d25d261066ebc43a1e339cdce4f7502877e \ + --hash=sha256:90c805f30c46cf60f1e76e947574f02954d25e3bb1e97aa8a07bc53aa31cf7d1 \ + --hash=sha256:26d28c468900e6d5fdb37d2812ab46db0ccd22c63baa095057871faa3a498bc9 trimesh==3.9.36 \ --hash=sha256:f01e8edab14d1999700c980c21a1546f37417216ad915a53be649d263130181e \ --hash=sha256:8ac8bea693b3ee119f11b022fc9b9481c9f1af06cb38bc859bf5d16bbbe49b23 From 224f51bdab7c7df7c87a71d2e9088c90ff2824f7 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 28 Sep 2022 16:59:48 +0200 Subject: [PATCH 11/52] Put links in change-log for critical issues. --- resources/texts/change_log.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/texts/change_log.txt b/resources/texts/change_log.txt index edbd7f1b91..ac55eb1ecd 100644 --- a/resources/texts/change_log.txt +++ b/resources/texts/change_log.txt @@ -61,8 +61,10 @@ Three new settings: 'Initial Layer Outer Wall Flow', 'Initial Layer Inner Wall F * Known critical issues: - While some small fixes have been made already, the placement of the seam is still more scattered than before 5.0. (Will try to fix in stable.) -- Support is sometimes missing in detailed parts, where previous releases supported them properly (still). (Will probably not be fixed in stable. This is currently slated for 5.3) -- Multiple external monitors on Windows (especially if from the same brand) might be a problem under some circumstances. (Will probably not be fixed in stable.) +- Support is sometimes missing in detailed parts, where previous releases supported them properly (still). (Will probably not be fixed in stable. This is currently slated for 5.3) +- Multiple external monitors on Windows (especially if from the same brand) might be a problem under some circumstances. (Will probably not be fixed in stable.) + +* Does Cura (not) work on your OS (version)? See this article for clarification. [5.1.1] * New features: From 237b671e0c24d4ea5323dc66c80046a3931698a4 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 28 Sep 2022 17:21:31 +0200 Subject: [PATCH 12/52] Prevent building with prerelease-string if none present. --- conanfile.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 327a571e54..29cb38502a 100644 --- a/conanfile.py +++ b/conanfile.py @@ -157,7 +157,10 @@ class CuraConan(ConanFile): version.prerelease = self.options.extra_build_version if self.options.internal: version.prerelease = version.prerelease.replace('+', '+internal_') - cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease}" + if version.prerelease and version.prerelease != "": + cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease}" + else: + cura_version = f"{version.major}.{version.minor}.{version.patch}" with open(Path(location, "CuraVersion.py"), "w") as f: f.write(cura_version_py.render( From f1250514ef6ddb74014313567641e847423dd79e Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 28 Sep 2022 17:21:31 +0200 Subject: [PATCH 13/52] Prevent building with prerelease-string if none present. --- conanfile.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 327a571e54..29cb38502a 100644 --- a/conanfile.py +++ b/conanfile.py @@ -157,7 +157,10 @@ class CuraConan(ConanFile): version.prerelease = self.options.extra_build_version if self.options.internal: version.prerelease = version.prerelease.replace('+', '+internal_') - cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease}" + if version.prerelease and version.prerelease != "": + cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease}" + else: + cura_version = f"{version.major}.{version.minor}.{version.patch}" with open(Path(location, "CuraVersion.py"), "w") as f: f.write(cura_version_py.render( From 91c6f17bb31175d8654f94ee46f125d2642b6d8c Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 28 Sep 2022 17:40:47 +0200 Subject: [PATCH 14/52] Not building with prerelease-string if none present. --- conanfile.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/conanfile.py b/conanfile.py index 29cb38502a..c032d6d83f 100644 --- a/conanfile.py +++ b/conanfile.py @@ -153,12 +153,13 @@ class CuraConan(ConanFile): cura_version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) version = Version(cura_version) + prerelease = "" if self.options.extra_build_version != "": - version.prerelease = self.options.extra_build_version + prerelease = self.options.extra_build_version if self.options.internal: - version.prerelease = version.prerelease.replace('+', '+internal_') - if version.prerelease and version.prerelease != "": - cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease}" + prerelease = version.prerelease.replace('+', '+internal_') + if prerelease != "": + cura_version = f"{version.major}.{version.minor}.{version.patch}-{prerelease}" else: cura_version = f"{version.major}.{version.minor}.{version.patch}" From 6953ff9019f8d692a916e2e87eb3430fe160d983 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 28 Sep 2022 17:40:47 +0200 Subject: [PATCH 15/52] Not building with prerelease-string if none present. --- conanfile.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/conanfile.py b/conanfile.py index 29cb38502a..c032d6d83f 100644 --- a/conanfile.py +++ b/conanfile.py @@ -153,12 +153,13 @@ class CuraConan(ConanFile): cura_version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) version = Version(cura_version) + prerelease = "" if self.options.extra_build_version != "": - version.prerelease = self.options.extra_build_version + prerelease = self.options.extra_build_version if self.options.internal: - version.prerelease = version.prerelease.replace('+', '+internal_') - if version.prerelease and version.prerelease != "": - cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease}" + prerelease = version.prerelease.replace('+', '+internal_') + if prerelease != "": + cura_version = f"{version.major}.{version.minor}.{version.patch}-{prerelease}" else: cura_version = f"{version.major}.{version.minor}.{version.patch}" From cbadf50f4dc7358df32b8d64b94b56c13fec212c Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 29 Sep 2022 12:57:10 +0200 Subject: [PATCH 16/52] Add beta version --- conandata.yml | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/conandata.yml b/conandata.yml index 83f45a2056..cac360ac3f 100644 --- a/conandata.yml +++ b/conandata.yml @@ -10,6 +10,113 @@ # requirements (use the /(latest)@ultimaker/testing) # # Subject to change in the future! + +"5.2.0-beta": + requirements: + - "pyarcus/(latest)@ultimaker/stable" + - "curaengine/(latest)@ultimaker/stable" + - "pysavitar/(latest)@ultimaker/stable" + - "pynest2d/(latest)@ultimaker/stable" + - "uranium/(latest)@ultimaker/stable" + - "fdm_materials/(latest)@ultimaker/stable" + - "cura_binary_data/(latest)@ultimaker/stable" + - "cpython/3.10.4" + internal_requirements: + - "fdm_materials_private/(latest)@ultimaker/testing" + - "cura_private_data/(latest)@ultimaker/testing" + runinfo: + entrypoint: "cura_app.py" + pyinstaller: + datas: + cura_plugins: + package: "cura" + src: "plugins" + dst: "share/cura/plugins" + cura_resources: + package: "cura" + src: "resources" + dst: "share/cura/resources" + cura_private_data: + package: "cura_private_data" + src: "resources" + dst: "share/cura/resources" + internal: true + uranium_plugins: + package: "uranium" + src: "plugins" + dst: "share/uranium/plugins" + uranium_resources: + package: "uranium" + src: "resources" + dst: "share/uranium/resources" + uranium_um_qt_qml_um: + package: "uranium" + src: "site-packages/UM/Qt/qml/UM" + dst: "PyQt6/Qt6/qml/UM" + cura_binary_data: + package: "cura_binary_data" + src: "resources/cura/resources" + dst: "share/cura/resources" + uranium_binary_data: + package: "cura_binary_data" + src: "resources/uranium/resources" + dst: "share/uranium/resources" + windows_binary_data: + package: "cura_binary_data" + src: "windows" + dst: "share/windows" + fdm_materials: + package: "fdm_materials" + src: "materials" + dst: "share/cura/resources/materials" + fdm_materials_private: + package: "fdm_materials_private" + src: "resources/materials" + dst: "share/cura/resources/materials" + internal: true + tcl: + package: "tcl" + src: "lib/tcl8.6" + dst: "tcl" + tk: + package: "tk" + src: "lib/tk8.6" + dst: "tk" + binaries: + curaengine: + package: "curaengine" + src: "bin" + dst: "." + binary: "CuraEngine" + hiddenimports: + - "pySavitar" + - "pyArcus" + - "pynest2d" + - "PyQt6" + - "PyQt6.QtNetwork" + - "PyQt6.sip" + - "logging.handlers" + - "zeroconf" + - "fcntl" + - "stl" + - "serial" + collect_all: + - "cura" + - "UM" + - "serial" + - "Charon" + - "sqlite3" + - "trimesh" + - "win32ctypes" + - "PyQt6" + - "PyQt6.QtNetwork" + - "PyQt6.sip" + - "stl" + icon: + Windows: "./icons/Cura.ico" + Macos: "./icons/cura.icns" + Linux: "./icons/cura-128.png" + "5.2.0-alpha": requirements: - "pyarcus/(latest)@ultimaker/testing" From a2c85dced99c374772747e4a3a48e42477c68d12 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 29 Sep 2022 16:09:00 +0200 Subject: [PATCH 17/52] Revert "Enable zigzag instead of the lines paatern on the skin layers. This improves print speed and quality. I used to decrease bridging quality, but due to enabling experimental bridging in the print profiles this can now be used." This reverts commit 863e1ecbae19644384e484cf88a3b4e0ae4a86aa. --- resources/definitions/ultimaker.def.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index c63169fc3a..2e5a2d4f5d 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -292,9 +292,6 @@ }, "support_z_distance": { "value": "0" - }, - "top_bottom_pattern": { - "value": "'zigzag'" } } } From f769216340e775e4b167d925c9cc56a1a6a1f39e Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 30 Sep 2022 09:23:51 +0200 Subject: [PATCH 18/52] Update conandata.yml --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index cac360ac3f..f4ce31f655 100644 --- a/conandata.yml +++ b/conandata.yml @@ -11,7 +11,7 @@ # # Subject to change in the future! -"5.2.0-beta": +"5.2.0": requirements: - "pyarcus/(latest)@ultimaker/stable" - "curaengine/(latest)@ultimaker/stable" From 5eccf57c514c8cb5c6a6295b40c6097e49ba3a01 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 30 Sep 2022 10:05:15 +0200 Subject: [PATCH 19/52] Update conandata.yml --- conandata.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/conandata.yml b/conandata.yml index f4ce31f655..4c35a1957f 100644 --- a/conandata.yml +++ b/conandata.yml @@ -13,13 +13,13 @@ "5.2.0": requirements: - - "pyarcus/(latest)@ultimaker/stable" - - "curaengine/(latest)@ultimaker/stable" - - "pysavitar/(latest)@ultimaker/stable" - - "pynest2d/(latest)@ultimaker/stable" - - "uranium/(latest)@ultimaker/stable" - - "fdm_materials/(latest)@ultimaker/stable" - - "cura_binary_data/(latest)@ultimaker/stable" + - "pyarcus/(latest)@_/_" + - "curaengine/(latest)@_/_" + - "pysavitar/(latest)@_/_" + - "pynest2d/(latest)@_/_" + - "uranium/(latest)@_/_" + - "fdm_materials/(latest)@_/_" + - "cura_binary_data/(latest)@_/_" - "cpython/3.10.4" internal_requirements: - "fdm_materials_private/(latest)@ultimaker/testing" From c482cbddf34c58739f499fdfb9770271a1ef25fc Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 30 Sep 2022 10:25:44 +0200 Subject: [PATCH 20/52] Update conandata.yml --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index 4c35a1957f..a3b1e05e1b 100644 --- a/conandata.yml +++ b/conandata.yml @@ -119,7 +119,7 @@ "5.2.0-alpha": requirements: - - "pyarcus/(latest)@ultimaker/testing" + - "pyarcus/5.2@ultimaker/testing" - "curaengine/(latest)@ultimaker/testing" - "pysavitar/(latest)@ultimaker/testing" - "pynest2d/(latest)@ultimaker/testing" From 94d80ef71255ae514dcb8ff3fd00f6a524b1a1b5 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 30 Sep 2022 10:35:50 +0200 Subject: [PATCH 21/52] Update conandata.yml --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index a3b1e05e1b..8b113aaa8e 100644 --- a/conandata.yml +++ b/conandata.yml @@ -13,7 +13,7 @@ "5.2.0": requirements: - - "pyarcus/(latest)@_/_" + - "pyarcus/5.1.1-alpha+32@ultimaker/stable" - "curaengine/(latest)@_/_" - "pysavitar/(latest)@_/_" - "pynest2d/(latest)@_/_" From ff9fb445e0f50008c6bc7b654e749356c30985fe Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 30 Sep 2022 10:54:52 +0200 Subject: [PATCH 22/52] Update conandata.yml --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index 8b113aaa8e..3194079f7b 100644 --- a/conandata.yml +++ b/conandata.yml @@ -14,7 +14,7 @@ "5.2.0": requirements: - "pyarcus/5.1.1-alpha+32@ultimaker/stable" - - "curaengine/(latest)@_/_" + - "curaengine/5.2" - "pysavitar/(latest)@_/_" - "pynest2d/(latest)@_/_" - "uranium/(latest)@_/_" From 959e4bfadd606754c67cf574ddc5dda879acdf23 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 30 Sep 2022 11:07:10 +0200 Subject: [PATCH 23/52] Update conandata.yml --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index 3194079f7b..1feb4c9021 100644 --- a/conandata.yml +++ b/conandata.yml @@ -14,7 +14,7 @@ "5.2.0": requirements: - "pyarcus/5.1.1-alpha+32@ultimaker/stable" - - "curaengine/5.2" + - "curaengine/(latest)" - "pysavitar/(latest)@_/_" - "pynest2d/(latest)@_/_" - "uranium/(latest)@_/_" From b7ef3133757b00ff1063a60f18691f57ea3708f7 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 30 Sep 2022 13:19:47 +0200 Subject: [PATCH 24/52] Update conandata.yml --- conandata.yml | 107 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index 1feb4c9021..95b2d526b8 100644 --- a/conandata.yml +++ b/conandata.yml @@ -10,7 +10,112 @@ # requirements (use the /(latest)@ultimaker/testing) # # Subject to change in the future! - +"5.2.0-beta": + requirements: + - "pyarcus/5.1.1-alpha+32@ultimaker/stable" + - "curaengine/(latest)" + - "pysavitar/(latest)@_/_" + - "pynest2d/(latest)@_/_" + - "uranium/(latest)@_/_" + - "fdm_materials/(latest)@_/_" + - "cura_binary_data/(latest)@_/_" + - "cpython/3.10.4" + internal_requirements: + - "fdm_materials_private/(latest)@ultimaker/testing" + - "cura_private_data/(latest)@ultimaker/testing" + runinfo: + entrypoint: "cura_app.py" + pyinstaller: + datas: + cura_plugins: + package: "cura" + src: "plugins" + dst: "share/cura/plugins" + cura_resources: + package: "cura" + src: "resources" + dst: "share/cura/resources" + cura_private_data: + package: "cura_private_data" + src: "resources" + dst: "share/cura/resources" + internal: true + uranium_plugins: + package: "uranium" + src: "plugins" + dst: "share/uranium/plugins" + uranium_resources: + package: "uranium" + src: "resources" + dst: "share/uranium/resources" + uranium_um_qt_qml_um: + package: "uranium" + src: "site-packages/UM/Qt/qml/UM" + dst: "PyQt6/Qt6/qml/UM" + cura_binary_data: + package: "cura_binary_data" + src: "resources/cura/resources" + dst: "share/cura/resources" + uranium_binary_data: + package: "cura_binary_data" + src: "resources/uranium/resources" + dst: "share/uranium/resources" + windows_binary_data: + package: "cura_binary_data" + src: "windows" + dst: "share/windows" + fdm_materials: + package: "fdm_materials" + src: "materials" + dst: "share/cura/resources/materials" + fdm_materials_private: + package: "fdm_materials_private" + src: "resources/materials" + dst: "share/cura/resources/materials" + internal: true + tcl: + package: "tcl" + src: "lib/tcl8.6" + dst: "tcl" + tk: + package: "tk" + src: "lib/tk8.6" + dst: "tk" + binaries: + curaengine: + package: "curaengine" + src: "bin" + dst: "." + binary: "CuraEngine" + hiddenimports: + - "pySavitar" + - "pyArcus" + - "pynest2d" + - "PyQt6" + - "PyQt6.QtNetwork" + - "PyQt6.sip" + - "logging.handlers" + - "zeroconf" + - "fcntl" + - "stl" + - "serial" + collect_all: + - "cura" + - "UM" + - "serial" + - "Charon" + - "sqlite3" + - "trimesh" + - "win32ctypes" + - "PyQt6" + - "PyQt6.QtNetwork" + - "PyQt6.sip" + - "stl" + icon: + Windows: "./icons/Cura.ico" + Macos: "./icons/cura.icns" + Linux: "./icons/cura-128.png" + "5.2.0": requirements: - "pyarcus/5.1.1-alpha+32@ultimaker/stable" From c4f4900ccdab7ca2069cd6888ec17676ef38a239 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 30 Sep 2022 13:39:07 +0200 Subject: [PATCH 25/52] Revert Later This is a hack for beta release --- .github/workflows/conan-recipe-version.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 3ee67835f0..7d118d49f3 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -173,6 +173,14 @@ jobs: # FIXME: for external PR's actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}" + if is_tag: + print("THE TAG IS: ", ${{ github.ref_name }}) + if is_tag and ${{ github.ref_name }} == "5.2.0-beta: + actual_version = "5.2.0-beta" + is_release_branch = True + user = "_" + channel = "_" + # %% print to output cmd_name = ["echo", f"::set-output name=name::{project_name}"] subprocess.call(cmd_name) @@ -194,7 +202,7 @@ jobs: print(f"version = {actual_version}") print(f"user = {user}") print(f"channel = {channel}") - print(f"recipe_id_full = {project_name}/{actual_version}@{user}/{channel}") + print(f"= {project_name}/{actual_version}@{user}/{channel}") print(f"recipe_id_latest = {project_name}/latest@{user}/{channel}") print(f"semver_full = {actual_version}") print(f"is_release_branch = {str(is_release_branch).lower()}") From 75ca7babaf3cbb3c737576bfcf1aa848fcb2d05b Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 26 Sep 2022 11:23:17 +0200 Subject: [PATCH 26/52] Add a circle to the background of the refresh button Be more consistent with rest of UI. CURA-9677 --- resources/qml/Dialogs/ChoosePrinterDialog.qml | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/resources/qml/Dialogs/ChoosePrinterDialog.qml b/resources/qml/Dialogs/ChoosePrinterDialog.qml index 69d9fc44cc..b8ea98f7df 100644 --- a/resources/qml/Dialogs/ChoosePrinterDialog.qml +++ b/resources/qml/Dialogs/ChoosePrinterDialog.qml @@ -53,23 +53,39 @@ UM.Dialog anchors.left: parent.left text: catalog.i18nc("@title:label", "Compatible Printers") font: UM.Theme.getFont("large") + anchors.horizontalCenter: parent.horizontalCenter } - - UM.SimpleButton + TabButton { + id: refreshButton anchors.right: parent.right - - width: UM.Theme.getSize("small_button").width - height: UM.Theme.getSize("small_button").height - iconSource: UM.Theme.getIcon("ArrowDoubleCircleRight") - color: UM.Theme.getColor("text_link") - hoverColor: UM.Theme.getColor("text_scene_hover") + width: UM.Theme.getSize("button_icon").width + height: UM.Theme.getSize("button_icon").height + hoverEnabled: true onClicked: { manager.refresh() base.compatible_machine_model.forceUpdate() } + + background: Rectangle + { + width: UM.Theme.getSize("button_icon").width + height: UM.Theme.getSize("button_icon").height + color: refreshButton.hovered ? UM.Theme.getColor("toolbar_button_hover") : UM.Theme.getColor("toolbar_background") + radius: Math.round(refreshButton.width * 0.5) + } + + UM.ColorImage + { + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + color: UM.Theme.getColor("text_link") + source: UM.Theme.getIcon("ArrowDoubleCircleRight") + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + } } } From 6da52b1d5967d6673f5c7b8e0d918eff57291af6 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 30 Sep 2022 15:50:35 +0200 Subject: [PATCH 27/52] Update conandata.yml --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index 95b2d526b8..daceec0349 100644 --- a/conandata.yml +++ b/conandata.yml @@ -12,7 +12,7 @@ # Subject to change in the future! "5.2.0-beta": requirements: - - "pyarcus/5.1.1-alpha+32@ultimaker/stable" + - "pyarcus/(latest)@_/_" - "curaengine/(latest)" - "pysavitar/(latest)@_/_" - "pynest2d/(latest)@_/_" From b33cff33f5f18f7be23e6c0a86a302ea887a517c Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 3 Oct 2022 11:28:22 +0200 Subject: [PATCH 28/52] Disable "Remove Raft Inside Corners" setting by default --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index cc49213a6c..b8fd5fa79b 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -8072,7 +8072,7 @@ "label": "Remove Raft Inside Corners", "description": "Remove inside corners from the raft, causing the raft to become convex.", "type": "bool", - "default_value": true, + "default_value": false, "resolve": "any(extruderValues('raft_remove_inside_corners'))", "enabled": "resolveOrValue('adhesion_type') == 'raft'", "settable_per_mesh": false, From d0ddb5fafeef4592f838837dbd1da4ef2b1563f0 Mon Sep 17 00:00:00 2001 From: MariskaMaas <40423138+MariMakes@users.noreply.github.com> Date: Mon, 3 Oct 2022 14:26:19 +0200 Subject: [PATCH 29/52] [CURA-9688] Fix View Printers in Digital Factory Send the user to the welcome page instead of the printjobs page to get a more comprehensive overview coming from the monitor page. --- plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index e508f70cbb..33e8adf256 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -127,7 +127,7 @@ Component id: sendToFactoryButton anchors.horizontalCenter: parent.horizontalCenter text: catalog.i18nc("@button", "View printers in Digital Factory") - onClicked: Qt.openUrlExternally("https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=monitor-view-cloud-printer-type") + onClicked: Qt.openUrlExternally("https://digitalfactory.ultimaker.com/app/welcome?utm_source=cura&utm_medium=software&utm_campaign=monitor-view-cloud-printer-type") } } } From a1a2784ef9c998b0f88598e076cced3c575bc303 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 4 Oct 2022 11:47:53 +0200 Subject: [PATCH 30/52] Add intent and quality fields to slice metadata CURA-9719 --- plugins/UFPWriter/UFPWriter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index 49751e1a2a..53ee5ae1ff 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -213,6 +213,7 @@ class UFPWriter(MeshWriter): def _getSliceMetadata(self) -> Dict[str, Dict[str, Dict[str, str]]]: """Get all changed settings and all settings. For each extruder and the global stack""" print_information = CuraApplication.getInstance().getPrintInformation() + machine_manager = CuraApplication.getInstance().getMachineManager() settings = { "material": { "length": print_information.materialLengths, @@ -222,7 +223,9 @@ class UFPWriter(MeshWriter): "global": { "changes": {}, "all_settings": {}, - } + }, + "intent": machine_manager.activeIntentCategory, + "quality": machine_manager.activeQualityOrQualityChangesName, } global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack()) From ccea542280a341f6e78941cea5846f725a5d51fd Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 4 Oct 2022 14:40:13 +0200 Subject: [PATCH 31/52] Add spdlog to binaries list. Add warning for missing binary Update pattern matching for binaries glob in bin paths. It will now match .so.X files that it would not before. CURA-9711 --- conandata.yml | 5 +++++ conanfile.py | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index daceec0349..aca3d52105 100644 --- a/conandata.yml +++ b/conandata.yml @@ -87,6 +87,11 @@ src: "bin" dst: "." binary: "CuraEngine" + spdlog: + package: "spdlog" + src: "lib" + dst: "." + binary: "libspdlog" hiddenimports: - "pySavitar" - "pyArcus" diff --git a/conanfile.py b/conanfile.py index c032d6d83f..4334db0a9e 100644 --- a/conanfile.py +++ b/conanfile.py @@ -208,8 +208,10 @@ class CuraConan(ConanFile): else: continue if not src_path.exists(): + self.output.warning(f"Source path for binary {binary['binary']} does not exist") continue - for bin in src_path.glob(binary["binary"] + ".*[exe|dll|so|dylib]"): + + for bin in src_path.glob(binary["binary"] + "*[.exe|.dll|.so|.dylib|.so.]*"): binaries.append((str(bin), binary["dst"])) for bin in src_path.glob(binary["binary"]): binaries.append((str(bin), binary["dst"])) From 566cbba111eaff28fc79b785954a7a6e2fdb04e5 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Tue, 4 Oct 2022 15:23:58 +0200 Subject: [PATCH 32/52] Update conandata.yml --- conandata.yml | 241 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 226 insertions(+), 15 deletions(-) diff --git a/conandata.yml b/conandata.yml index daceec0349..199ea7a582 100644 --- a/conandata.yml +++ b/conandata.yml @@ -10,15 +10,226 @@ # requirements (use the /(latest)@ultimaker/testing) # # Subject to change in the future! -"5.2.0-beta": +"5.2.0-alpha": requirements: - - "pyarcus/(latest)@_/_" - - "curaengine/(latest)" - - "pysavitar/(latest)@_/_" - - "pynest2d/(latest)@_/_" - - "uranium/(latest)@_/_" - - "fdm_materials/(latest)@_/_" - - "cura_binary_data/(latest)@_/_" + - "pyarcus/(latest)@ultimaker/testing" + - "curaengine/(latest)@ultimaker/testing" + - "pysavitar/(latest)@ultimaker/testing" + - "pynest2d/(latest)@ultimaker/testing" + - "uranium/(latest)@ultimaker/testing" + - "fdm_materials/(latest)@ultimaker/testing" + - "cura_binary_data/(latest)@ultimaker/testing" + - "cpython/3.10.4" + internal_requirements: + - "fdm_materials_private/(latest)@ultimaker/testing" + - "cura_private_data/(latest)@ultimaker/testing" + runinfo: + entrypoint: "cura_app.py" + pyinstaller: + datas: + cura_plugins: + package: "cura" + src: "plugins" + dst: "share/cura/plugins" + cura_resources: + package: "cura" + src: "resources" + dst: "share/cura/resources" + cura_private_data: + package: "cura_private_data" + src: "resources" + dst: "share/cura/resources" + internal: true + uranium_plugins: + package: "uranium" + src: "plugins" + dst: "share/uranium/plugins" + uranium_resources: + package: "uranium" + src: "resources" + dst: "share/uranium/resources" + uranium_um_qt_qml_um: + package: "uranium" + src: "site-packages/UM/Qt/qml/UM" + dst: "PyQt6/Qt6/qml/UM" + cura_binary_data: + package: "cura_binary_data" + src: "resources/cura/resources" + dst: "share/cura/resources" + uranium_binary_data: + package: "cura_binary_data" + src: "resources/uranium/resources" + dst: "share/uranium/resources" + windows_binary_data: + package: "cura_binary_data" + src: "windows" + dst: "share/windows" + fdm_materials: + package: "fdm_materials" + src: "materials" + dst: "share/cura/resources/materials" + fdm_materials_private: + package: "fdm_materials_private" + src: "resources/materials" + dst: "share/cura/resources/materials" + internal: true + tcl: + package: "tcl" + src: "lib/tcl8.6" + dst: "tcl" + tk: + package: "tk" + src: "lib/tk8.6" + dst: "tk" + binaries: + curaengine: + package: "curaengine" + src: "bin" + dst: "." + binary: "CuraEngine" + hiddenimports: + - "pySavitar" + - "pyArcus" + - "pynest2d" + - "PyQt6" + - "PyQt6.QtNetwork" + - "PyQt6.sip" + - "logging.handlers" + - "zeroconf" + - "fcntl" + - "stl" + - "serial" + collect_all: + - "cura" + - "UM" + - "serial" + - "Charon" + - "sqlite3" + - "trimesh" + - "win32ctypes" + - "PyQt6" + - "PyQt6.QtNetwork" + - "PyQt6.sip" + - "stl" + icon: + Windows: "./icons/Cura.ico" + Macos: "./icons/cura.icns" + Linux: "./icons/cura-128.png" +"5.2.0-beta.2": + requirements: + - "pyarcus/(latest)@ultimaker/stable" + - "curaengine/(latest)@ultimaker/stable" + - "pysavitar/(latest)@ultimaker/stable" + - "pynest2d/(latest)@ultimaker/stable" + - "uranium/(latest)@ultimaker/stable" + - "fdm_materials/(latest)@ultimaker/stable" + - "cura_binary_data/(latest)@ultimaker/stable" + - "cpython/3.10.4" + internal_requirements: + - "fdm_materials_private/(latest)@ultimaker/testing" + - "cura_private_data/(latest)@ultimaker/testing" + runinfo: + entrypoint: "cura_app.py" + pyinstaller: + datas: + cura_plugins: + package: "cura" + src: "plugins" + dst: "share/cura/plugins" + cura_resources: + package: "cura" + src: "resources" + dst: "share/cura/resources" + cura_private_data: + package: "cura_private_data" + src: "resources" + dst: "share/cura/resources" + internal: true + uranium_plugins: + package: "uranium" + src: "plugins" + dst: "share/uranium/plugins" + uranium_resources: + package: "uranium" + src: "resources" + dst: "share/uranium/resources" + uranium_um_qt_qml_um: + package: "uranium" + src: "site-packages/UM/Qt/qml/UM" + dst: "PyQt6/Qt6/qml/UM" + cura_binary_data: + package: "cura_binary_data" + src: "resources/cura/resources" + dst: "share/cura/resources" + uranium_binary_data: + package: "cura_binary_data" + src: "resources/uranium/resources" + dst: "share/uranium/resources" + windows_binary_data: + package: "cura_binary_data" + src: "windows" + dst: "share/windows" + fdm_materials: + package: "fdm_materials" + src: "materials" + dst: "share/cura/resources/materials" + fdm_materials_private: + package: "fdm_materials_private" + src: "resources/materials" + dst: "share/cura/resources/materials" + internal: true + tcl: + package: "tcl" + src: "lib/tcl8.6" + dst: "tcl" + tk: + package: "tk" + src: "lib/tk8.6" + dst: "tk" + binaries: + curaengine: + package: "curaengine" + src: "bin" + dst: "." + binary: "CuraEngine" + hiddenimports: + - "pySavitar" + - "pyArcus" + - "pynest2d" + - "PyQt6" + - "PyQt6.QtNetwork" + - "PyQt6.sip" + - "logging.handlers" + - "zeroconf" + - "fcntl" + - "stl" + - "serial" + collect_all: + - "cura" + - "UM" + - "serial" + - "Charon" + - "sqlite3" + - "trimesh" + - "win32ctypes" + - "PyQt6" + - "PyQt6.QtNetwork" + - "PyQt6.sip" + - "stl" + icon: + Windows: "./icons/Cura.ico" + Macos: "./icons/cura.icns" + Linux: "./icons/cura-128.png" + +"5.2.0-beta.1": + requirements: + - "pyarcus/5.2.0-beta.1" + - "curaengine/5.2.0-beta.1" + - "pysavitar/5.2.0-beta.1" + - "pynest2d/5.2.0-beta.1" + - "uranium/5.2.0-beta.1" + - "fdm_materials/5.2.0-beta.1" + - "cura_binary_data/5.2.0-beta.1" - "cpython/3.10.4" internal_requirements: - "fdm_materials_private/(latest)@ultimaker/testing" @@ -118,13 +329,13 @@ "5.2.0": requirements: - - "pyarcus/5.1.1-alpha+32@ultimaker/stable" - - "curaengine/(latest)" - - "pysavitar/(latest)@_/_" - - "pynest2d/(latest)@_/_" - - "uranium/(latest)@_/_" - - "fdm_materials/(latest)@_/_" - - "cura_binary_data/(latest)@_/_" + - "pyarcus/5.2.0" + - "curaengine/5.2.0" + - "pysavitar/5.2.0" + - "pynest2d/5.2.0" + - "uranium/5.2.0" + - "fdm_materials/5.2.0" + - "cura_binary_data/5.2.0" - "cpython/3.10.4" internal_requirements: - "fdm_materials_private/(latest)@ultimaker/testing" From bef3eb8703e4f51da5a2e0cb3d173423cb3dfc9f Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Tue, 4 Oct 2022 15:27:41 +0200 Subject: [PATCH 33/52] Update conandata.yml --- conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conandata.yml b/conandata.yml index 199ea7a582..517efd9596 100644 --- a/conandata.yml +++ b/conandata.yml @@ -10,7 +10,7 @@ # requirements (use the /(latest)@ultimaker/testing) # # Subject to change in the future! -"5.2.0-alpha": +"5.3.0-alpha": requirements: - "pyarcus/(latest)@ultimaker/testing" - "curaengine/(latest)@ultimaker/testing" From 1287dffe22ddf27ba0304c8f1a1f5fedb320395b Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 4 Oct 2022 15:45:37 +0200 Subject: [PATCH 34/52] Add fmt binaries to list. CURA-9711 --- conandata.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/conandata.yml b/conandata.yml index aca3d52105..e3dc2eb1c8 100644 --- a/conandata.yml +++ b/conandata.yml @@ -92,6 +92,11 @@ src: "lib" dst: "." binary: "libspdlog" + fmt: + package: "fmt" + src: "lib" + dst: "." + binary: "libfmt" hiddenimports: - "pySavitar" - "pyArcus" From c00135bfac31738608df9b11a3649076126c3add Mon Sep 17 00:00:00 2001 From: jspijker Date: Tue, 4 Oct 2022 16:36:13 +0200 Subject: [PATCH 35/52] make sure prerelease tag triggers conan-package --- .github/workflows/conan-package.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conan-package.yml b/.github/workflows/conan-package.yml index d7f4557b81..f8fc6e900b 100644 --- a/.github/workflows/conan-package.yml +++ b/.github/workflows/conan-package.yml @@ -44,8 +44,9 @@ on: - '[1-9].[0-9]' - '[1-9].[0-9][0-9]' tags: - - '[1-9].[0-9].[0-9]+' - - '[1-9].[0-9][0-9].[0-9]+' + - '[1-9].[0-9].[0-9]*' + - '[1-9].[0-9].[0-9]' + - '[1-9].[0-9][0-9].[0-9]*' jobs: conan-recipe-version: From 4cdf4e607db8385f00ff5cae4b90b65b09911280 Mon Sep 17 00:00:00 2001 From: jspijker Date: Tue, 4 Oct 2022 16:38:01 +0200 Subject: [PATCH 36/52] update conandata.yml --- conandata.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/conandata.yml b/conandata.yml index 517efd9596..a531564622 100644 --- a/conandata.yml +++ b/conandata.yml @@ -326,7 +326,6 @@ Windows: "./icons/Cura.ico" Macos: "./icons/cura.icns" Linux: "./icons/cura-128.png" - "5.2.0": requirements: - "pyarcus/5.2.0" @@ -432,7 +431,6 @@ Windows: "./icons/Cura.ico" Macos: "./icons/cura.icns" Linux: "./icons/cura-128.png" - "5.2.0-alpha": requirements: - "pyarcus/5.2@ultimaker/testing" From 058824d2f4647aea6dbd7ad9bdb50aaca7d8859e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Kerbiriou?= Date: Mon, 19 Sep 2022 21:57:05 +0200 Subject: [PATCH 37/52] UFPWriter: fix settings serialization --- plugins/UFPWriter/UFPWriter.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index 49751e1a2a..aa63eb6d2e 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -230,11 +230,11 @@ class UFPWriter(MeshWriter): # Add global user or quality changes global_flattened_changes = InstanceContainer.createMergedInstanceContainer(global_stack.userChanges, global_stack.qualityChanges) for setting in global_flattened_changes.getAllKeys(): - settings["global"]["changes"][setting] = global_flattened_changes.getProperty(setting, "value") + settings["global"]["changes"][setting] = str(global_flattened_changes.getProperty(setting, "value")) # Get global all settings values without user or quality changes for setting in global_stack.getAllKeys(): - settings["global"]["all_settings"][setting] = global_stack.getProperty(setting, "value") + settings["global"]["all_settings"][setting] = str(global_stack.getProperty(setting, "value")) for i, extruder in enumerate(global_stack.extruderList): # Add extruder fields to settings dictionary @@ -246,10 +246,10 @@ class UFPWriter(MeshWriter): # Add extruder user or quality changes extruder_flattened_changes = InstanceContainer.createMergedInstanceContainer(extruder.userChanges, extruder.qualityChanges) for setting in extruder_flattened_changes.getAllKeys(): - settings[f"extruder_{i}"]["changes"][setting] = extruder_flattened_changes.getProperty(setting, "value") + settings[f"extruder_{i}"]["changes"][setting] = str(extruder_flattened_changes.getProperty(setting, "value")) # Get extruder all settings values without user or quality changes for setting in extruder.getAllKeys(): - settings[f"extruder_{i}"]["all_settings"][setting] = extruder.getProperty(setting, "value") + settings[f"extruder_{i}"]["all_settings"][setting] = str(extruder.getProperty(setting, "value")) return settings From 9bb1383da25cbd20d1d9118f06e8d271d277024e Mon Sep 17 00:00:00 2001 From: jspijker Date: Wed, 5 Oct 2022 09:34:11 +0200 Subject: [PATCH 38/52] revert changes to tag script --- scripts/rename_cura_1_tags.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 scripts/rename_cura_1_tags.sh diff --git a/scripts/rename_cura_1_tags.sh b/scripts/rename_cura_1_tags.sh old mode 100644 new mode 100755 index 8391ed08c2..624bd28d82 --- a/scripts/rename_cura_1_tags.sh +++ b/scripts/rename_cura_1_tags.sh @@ -11,4 +11,4 @@ do git tag -d $i; #Delete old tag. git push origin 1.$i :$i #Rename the tag remotely too. fi -done \ No newline at end of file +done From ca90ac7787587db9e90a15584854ea54bcbc45d8 Mon Sep 17 00:00:00 2001 From: jelle Spijker Date: Wed, 5 Oct 2022 10:47:34 +0200 Subject: [PATCH 39/52] Fix adding all shared libs managed by Conan to pyinstaller Closes #13422 Contributes to CURA-9711 --- conandata.yml | 11 ----------- conanfile.py | 15 +++++++++------ 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/conandata.yml b/conandata.yml index 377224053c..0da3e8bc1d 100644 --- a/conandata.yml +++ b/conandata.yml @@ -220,7 +220,6 @@ Windows: "./icons/Cura.ico" Macos: "./icons/cura.icns" Linux: "./icons/cura-128.png" - "5.2.0-beta.1": requirements: - "pyarcus/5.2.0-beta.1" @@ -298,16 +297,6 @@ src: "bin" dst: "." binary: "CuraEngine" - spdlog: - package: "spdlog" - src: "lib" - dst: "." - binary: "libspdlog" - fmt: - package: "fmt" - src: "lib" - dst: "." - binary: "libfmt" hiddenimports: - "pySavitar" - "pyArcus" diff --git a/conanfile.py b/conanfile.py index 4334db0a9e..f5c9fcd65f 100644 --- a/conanfile.py +++ b/conanfile.py @@ -216,14 +216,17 @@ class CuraConan(ConanFile): for bin in src_path.glob(binary["binary"]): binaries.append((str(bin), binary["dst"])) - for _, dependency in self.dependencies.items(): - for bin_paths in dependency.cpp_info.bindirs: - binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.dll")]) - binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.dylib")]) - binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.so")]) + # Make sure all Conan dependencies which are shared are added to the binary list for pyinstaller + for _, dependency in self.dependencies.host.items(): + if hasattr(dependency.options, "shared") and dependency.options.shared: + for bin_paths in dependency.cpp_info.bindirs: + binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*")]) + for lib_paths in dependency.cpp_info.libdirs: + binaries.extend([(f"{p}", ".") for p in Path(lib_paths).glob("**/*")]) # Copy dynamic libs from lib path - binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.dylib")]) + binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.dylib*")]) + binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.so*")]) # Collect all dll's from PyQt6 and place them in the root binaries.extend([(f"{p}", ".") for p in Path(self._site_packages, "PyQt6", "Qt6").glob("**/*.dll")]) From ad65ffa76c1197ef81bc9d8df9332400b0639868 Mon Sep 17 00:00:00 2001 From: jelle Spijker Date: Wed, 5 Oct 2022 10:56:53 +0200 Subject: [PATCH 40/52] Fix check if option exist Contributes to CURA-9711 --- conanfile.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index f5c9fcd65f..47ca0354e3 100644 --- a/conanfile.py +++ b/conanfile.py @@ -7,7 +7,7 @@ from conan import ConanFile from conan.tools.files import copy, rmdir, save from conan.tools.env import VirtualRunEnv, Environment from conan.tools.scm import Version -from conan.errors import ConanInvalidConfiguration +from conan.errors import ConanInvalidConfiguration, ConanException required_conan_version = ">=1.50.0" @@ -218,7 +218,11 @@ class CuraConan(ConanFile): # Make sure all Conan dependencies which are shared are added to the binary list for pyinstaller for _, dependency in self.dependencies.host.items(): - if hasattr(dependency.options, "shared") and dependency.options.shared: + try: + is_shared = dependency.options.shared + except ConanException: + is_shared = False + if is_shared: for bin_paths in dependency.cpp_info.bindirs: binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*")]) for lib_paths in dependency.cpp_info.libdirs: From e2cf889f7feaa4e93ce04171e917ee0ec28047e7 Mon Sep 17 00:00:00 2001 From: jelle Spijker Date: Wed, 5 Oct 2022 11:08:53 +0200 Subject: [PATCH 41/52] Don't check for shared Contributes to CURA-9711 --- conanfile.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/conanfile.py b/conanfile.py index 47ca0354e3..a932f0a232 100644 --- a/conanfile.py +++ b/conanfile.py @@ -218,15 +218,10 @@ class CuraConan(ConanFile): # Make sure all Conan dependencies which are shared are added to the binary list for pyinstaller for _, dependency in self.dependencies.host.items(): - try: - is_shared = dependency.options.shared - except ConanException: - is_shared = False - if is_shared: - for bin_paths in dependency.cpp_info.bindirs: - binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*")]) - for lib_paths in dependency.cpp_info.libdirs: - binaries.extend([(f"{p}", ".") for p in Path(lib_paths).glob("**/*")]) + for bin_paths in dependency.cpp_info.bindirs: + binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*")]) + for lib_paths in dependency.cpp_info.libdirs: + binaries.extend([(f"{p}", ".") for p in Path(lib_paths).glob("**/*")]) # Copy dynamic libs from lib path binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.dylib*")]) From 2079bd5a6e70c8b9882e41bf3983099623bb044b Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 5 Oct 2022 13:26:12 +0200 Subject: [PATCH 42/52] Sort "other printers" list CURA-9687 --- cura/Machines/Models/MachineListModel.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 4db1082863..df9ca7483f 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -86,6 +86,7 @@ class MachineListModel(ListModel): machines_manager = CuraApplication.getInstance().getMachineManager() other_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(type="machine") + other_machine_stacks.sort(key = lambda machine: machine.getName().upper()) abstract_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(is_abstract_machine = "True") abstract_machine_stacks.sort(key = lambda machine: machine.getName(), reverse = True) From 8cf475694fd6114a0ab5864db1fd51a090027e0a Mon Sep 17 00:00:00 2001 From: jelle spijker Date: Wed, 5 Oct 2022 13:47:09 +0200 Subject: [PATCH 43/52] Filter on specific extensions Contributes to CURA-9711 --- conanfile.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index a932f0a232..23c3f364ba 100644 --- a/conanfile.py +++ b/conanfile.py @@ -219,9 +219,10 @@ class CuraConan(ConanFile): # Make sure all Conan dependencies which are shared are added to the binary list for pyinstaller for _, dependency in self.dependencies.host.items(): for bin_paths in dependency.cpp_info.bindirs: - binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*")]) + binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.dll")]) for lib_paths in dependency.cpp_info.libdirs: - binaries.extend([(f"{p}", ".") for p in Path(lib_paths).glob("**/*")]) + binaries.extend([(f"{p}", ".") for p in Path(lib_paths).glob("**/*.so*")]) + binaries.extend([(f"{p}", ".") for p in Path(lib_paths).glob("**/*.dylib*")]) # Copy dynamic libs from lib path binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.dylib*")]) From 728daec6afdf143b823e1afbdf7ece49318e235a Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 5 Oct 2022 14:19:38 +0200 Subject: [PATCH 44/52] Wrap material name in Compatible Printer List CURA-9690 --- resources/qml/PrinterSelector/PrintSelectorCard.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/PrinterSelector/PrintSelectorCard.qml b/resources/qml/PrinterSelector/PrintSelectorCard.qml index 943ad8077c..a4cf423466 100644 --- a/resources/qml/PrinterSelector/PrintSelectorCard.qml +++ b/resources/qml/PrinterSelector/PrintSelectorCard.qml @@ -59,6 +59,7 @@ Rectangle Item { + Layout.preferredWidth: extruderInformation.width height: childrenRect.height Cura.ExtruderIcon @@ -84,6 +85,7 @@ Rectangle { id: singleMaterialText anchors.left: extruderCore.right + anchors.right: parent.right anchors.verticalCenter: extruderCore.verticalCenter anchors.leftMargin: UM.Theme.getSize("default_margin").width text: modelData.materials.length == 1 ? `${modelData.materials[0].brand} ${modelData.materials[0].name}` : "" From 67e99cd4ce04f82ae817876848cc3347bba0d290 Mon Sep 17 00:00:00 2001 From: jelle spijker Date: Wed, 5 Oct 2022 14:32:54 +0200 Subject: [PATCH 45/52] Set version number for CuraVersion.py If you want custom version use the Conan Configuration: `user.cura:version` Contributes to CURA-9711 --- conanfile.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/conanfile.py b/conanfile.py index 23c3f364ba..70ddaf0731 100644 --- a/conanfile.py +++ b/conanfile.py @@ -151,17 +151,12 @@ class CuraConan(ConanFile): with open(Path(__file__).parent.joinpath("CuraVersion.py.jinja"), "r") as f: cura_version_py = Template(f.read()) - cura_version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) - version = Version(cura_version) - prerelease = "" - if self.options.extra_build_version != "": - prerelease = self.options.extra_build_version - if self.options.internal: - prerelease = version.prerelease.replace('+', '+internal_') - if prerelease != "": - cura_version = f"{version.major}.{version.minor}.{version.patch}-{prerelease}" - else: - cura_version = f"{version.major}.{version.minor}.{version.patch}" + # If you want a specific Cura version to show up on the splash screen add the user configuration `user.cura:version=VERSION` + # the global.conf, profile, package_info (of dependency) or via the cmd line `-c user.cura:version=VERSION` + cura_version = Version(self.conf.get("user.cura:version", default = self.version, check_type = str)) + pre_tag = f"-{cura_version.pre}" if cura_version.pre else "" + build_tag = f"+internal_{cura_version.build}" if self.options.internal and cura_version.build else "" + cura_version = f"{cura_version.major}.{cura_version.minor}.{cura_version.patch}{pre_tag}{build_tag}" with open(Path(location, "CuraVersion.py"), "w") as f: f.write(cura_version_py.render( From 6ae88f1181332df9e8add81742b2479e251a768c Mon Sep 17 00:00:00 2001 From: jelle spijker Date: Wed, 5 Oct 2022 14:43:31 +0200 Subject: [PATCH 46/52] Also set build tag if not internal Contributes to CURA-9711 --- conanfile.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 70ddaf0731..a17f50f666 100644 --- a/conanfile.py +++ b/conanfile.py @@ -155,8 +155,9 @@ class CuraConan(ConanFile): # the global.conf, profile, package_info (of dependency) or via the cmd line `-c user.cura:version=VERSION` cura_version = Version(self.conf.get("user.cura:version", default = self.version, check_type = str)) pre_tag = f"-{cura_version.pre}" if cura_version.pre else "" - build_tag = f"+internal_{cura_version.build}" if self.options.internal and cura_version.build else "" - cura_version = f"{cura_version.major}.{cura_version.minor}.{cura_version.patch}{pre_tag}{build_tag}" + build_tag = f"+{cura_version.build}" if cura_version.build else "" + internal_tag = f"+internal" if self.options.internal else "" + cura_version = f"{cura_version.major}.{cura_version.minor}.{cura_version.patch}{pre_tag}{build_tag}{internal_tag}" with open(Path(location, "CuraVersion.py"), "w") as f: f.write(cura_version_py.render( From 8e566319725e4232bb8f7ccbbe10d2c655aa136d Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 5 Oct 2022 15:27:39 +0200 Subject: [PATCH 47/52] 3mf project files saved with an abstract printer would crash on loading when selecting a non abstract printer to load the project with. This was because the metadata "is_abstract_machine" was being loaded into the non abstract machine. This caused a crash in MachineListModel.py by trying to delete this non abstract machine from a list where it didn't exist. The solution is to ignore the "is_abstract_machine" metadata when loading settings from saved machines in 3mf files. CURA-9711 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 86be2f0380..bec50b5660 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -53,6 +53,7 @@ _ignored_machine_network_metadata = { "connection_type", "capabilities", "octoprint_api_key", + "is_abstract_machine" } # type: Set[str] From 8e883cf5466f47d1dd708e19646bd7f82aa2482b Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 6 Oct 2022 11:44:30 +0200 Subject: [PATCH 48/52] This fixes a crash when loading a 3mf with a printer that has no extruders while the current global stack also has no extruders. This was caused by trying to compare "extruders_enabled_count" which was None with an integer. CURA-9714 --- cura/Settings/MachineManager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 2051ce1b99..27d8fbbc78 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -904,6 +904,7 @@ class MachineManager(QObject): if self._global_container_stack is None \ or self._global_container_stack.getProperty(setting_key, "value") == new_value \ + or self._global_container_stack.definitionChanges.getProperty("extruders_enabled_count", "value") is None \ or self._global_container_stack.definitionChanges.getProperty("extruders_enabled_count", "value") < 2: return From e2e626f53008d64e3d92e4bf9ddc1c9d48128135 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 6 Oct 2022 12:46:56 +0200 Subject: [PATCH 49/52] Windows: Registry root should be the local machine one. So that uninstall is properly linked in the 'programs and features' again. CURA-9696 --- packaging/NSIS/Ultimaker-Cura.nsi.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/NSIS/Ultimaker-Cura.nsi.jinja b/packaging/NSIS/Ultimaker-Cura.nsi.jinja index 9a51b81110..9cc6b53bd6 100644 --- a/packaging/NSIS/Ultimaker-Cura.nsi.jinja +++ b/packaging/NSIS/Ultimaker-Cura.nsi.jinja @@ -12,7 +12,7 @@ !define INSTALLER_NAME "{{ destination }}" !define MAIN_APP_EXE "{{ main_app }}" !define INSTALL_TYPE "SetShellVarContext all" -!define REG_ROOT "HKCR" +!define REG_ROOT "HKLM" !define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${APP_NAME}" !define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}" From ccf9a47f085ac66bf57ec04e99a04bd984770641 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 6 Oct 2022 15:49:51 +0200 Subject: [PATCH 50/52] Flatten equation in UFP settings export --- plugins/UFPWriter/UFPWriter.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index 9c323964ed..6510a52a41 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -12,6 +12,7 @@ from PyQt6.QtCore import QBuffer from UM.Application import Application from UM.Logger import Logger +from UM.Settings.SettingFunction import SettingFunction from UM.Mesh.MeshWriter import MeshWriter # The writer we need to implement. from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType from UM.PluginRegistry import PluginRegistry # To get the g-code writer. @@ -233,11 +234,17 @@ class UFPWriter(MeshWriter): # Add global user or quality changes global_flattened_changes = InstanceContainer.createMergedInstanceContainer(global_stack.userChanges, global_stack.qualityChanges) for setting in global_flattened_changes.getAllKeys(): - settings["global"]["changes"][setting] = str(global_flattened_changes.getProperty(setting, "value")) + value = global_flattened_changes.getProperty(setting, "value") + if isinstance(property_value, SettingFunction): + property_value = property_value(value) + settings["global"]["changes"][setting] = value # Get global all settings values without user or quality changes for setting in global_stack.getAllKeys(): - settings["global"]["all_settings"][setting] = str(global_stack.getProperty(setting, "value")) + value = global_stack.getProperty(setting, "value") + if isinstance(property_value, SettingFunction): + property_value = property_value(value) + settings["global"]["all_settings"][setting] = value for i, extruder in enumerate(global_stack.extruderList): # Add extruder fields to settings dictionary @@ -249,10 +256,16 @@ class UFPWriter(MeshWriter): # Add extruder user or quality changes extruder_flattened_changes = InstanceContainer.createMergedInstanceContainer(extruder.userChanges, extruder.qualityChanges) for setting in extruder_flattened_changes.getAllKeys(): - settings[f"extruder_{i}"]["changes"][setting] = str(extruder_flattened_changes.getProperty(setting, "value")) + value = extruder_flattened_changes.getProperty(setting, "value") + if isinstance(property_value, SettingFunction): + property_value = property_value(value) + settings[f"extruder_{i}"]["changes"][setting] = value # Get extruder all settings values without user or quality changes for setting in extruder.getAllKeys(): - settings[f"extruder_{i}"]["all_settings"][setting] = str(extruder.getProperty(setting, "value")) + value = extruder.getProperty(setting, "value") + if isinstance(property_value, SettingFunction): + property_value = property_value(value) + settings[f"extruder_{i}"]["all_settings"][setting] = value return settings From 598e093b5e1dc30558db011e3c1f70158c411e2d Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 6 Oct 2022 16:05:53 +0200 Subject: [PATCH 51/52] Revert "Flatten equation in UFP settings export" This reverts commit ccf9a47f085ac66bf57ec04e99a04bd984770641. --- plugins/UFPWriter/UFPWriter.py | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index 6510a52a41..9c323964ed 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -12,7 +12,6 @@ from PyQt6.QtCore import QBuffer from UM.Application import Application from UM.Logger import Logger -from UM.Settings.SettingFunction import SettingFunction from UM.Mesh.MeshWriter import MeshWriter # The writer we need to implement. from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType from UM.PluginRegistry import PluginRegistry # To get the g-code writer. @@ -234,17 +233,11 @@ class UFPWriter(MeshWriter): # Add global user or quality changes global_flattened_changes = InstanceContainer.createMergedInstanceContainer(global_stack.userChanges, global_stack.qualityChanges) for setting in global_flattened_changes.getAllKeys(): - value = global_flattened_changes.getProperty(setting, "value") - if isinstance(property_value, SettingFunction): - property_value = property_value(value) - settings["global"]["changes"][setting] = value + settings["global"]["changes"][setting] = str(global_flattened_changes.getProperty(setting, "value")) # Get global all settings values without user or quality changes for setting in global_stack.getAllKeys(): - value = global_stack.getProperty(setting, "value") - if isinstance(property_value, SettingFunction): - property_value = property_value(value) - settings["global"]["all_settings"][setting] = value + settings["global"]["all_settings"][setting] = str(global_stack.getProperty(setting, "value")) for i, extruder in enumerate(global_stack.extruderList): # Add extruder fields to settings dictionary @@ -256,16 +249,10 @@ class UFPWriter(MeshWriter): # Add extruder user or quality changes extruder_flattened_changes = InstanceContainer.createMergedInstanceContainer(extruder.userChanges, extruder.qualityChanges) for setting in extruder_flattened_changes.getAllKeys(): - value = extruder_flattened_changes.getProperty(setting, "value") - if isinstance(property_value, SettingFunction): - property_value = property_value(value) - settings[f"extruder_{i}"]["changes"][setting] = value + settings[f"extruder_{i}"]["changes"][setting] = str(extruder_flattened_changes.getProperty(setting, "value")) # Get extruder all settings values without user or quality changes for setting in extruder.getAllKeys(): - value = extruder.getProperty(setting, "value") - if isinstance(property_value, SettingFunction): - property_value = property_value(value) - settings[f"extruder_{i}"]["all_settings"][setting] = value + settings[f"extruder_{i}"]["all_settings"][setting] = str(extruder.getProperty(setting, "value")) return settings From efe3014d5560089c7dce8a6a8d2cd60891a0c736 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 6 Oct 2022 16:05:59 +0200 Subject: [PATCH 52/52] Merge branch '5.2' of github.com:Ultimaker/Cura into 5.2 # Conflicts: # plugins/UFPWriter/UFPWriter.py --- plugins/UFPWriter/UFPWriter.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index 9c323964ed..d7671d02c8 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -12,6 +12,7 @@ from PyQt6.QtCore import QBuffer from UM.Application import Application from UM.Logger import Logger +from UM.Settings.SettingFunction import SettingFunction from UM.Mesh.MeshWriter import MeshWriter # The writer we need to implement. from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType from UM.PluginRegistry import PluginRegistry # To get the g-code writer. @@ -233,11 +234,17 @@ class UFPWriter(MeshWriter): # Add global user or quality changes global_flattened_changes = InstanceContainer.createMergedInstanceContainer(global_stack.userChanges, global_stack.qualityChanges) for setting in global_flattened_changes.getAllKeys(): - settings["global"]["changes"][setting] = str(global_flattened_changes.getProperty(setting, "value")) + value = global_flattened_changes.getProperty(setting, "value") + if isinstance(value, SettingFunction): + value = value(global_flattened_changes) + settings["global"]["changes"][setting] = value # Get global all settings values without user or quality changes for setting in global_stack.getAllKeys(): - settings["global"]["all_settings"][setting] = str(global_stack.getProperty(setting, "value")) + value = global_stack.getProperty(setting, "value") + if isinstance(value, SettingFunction): + value = value(global_stack) + settings["global"]["all_settings"][setting] = value for i, extruder in enumerate(global_stack.extruderList): # Add extruder fields to settings dictionary @@ -249,10 +256,16 @@ class UFPWriter(MeshWriter): # Add extruder user or quality changes extruder_flattened_changes = InstanceContainer.createMergedInstanceContainer(extruder.userChanges, extruder.qualityChanges) for setting in extruder_flattened_changes.getAllKeys(): - settings[f"extruder_{i}"]["changes"][setting] = str(extruder_flattened_changes.getProperty(setting, "value")) + value = extruder_flattened_changes.getProperty(setting, "value") + if isinstance(value, SettingFunction): + value = value(extruder_flattened_changes) + settings[f"extruder_{i}"]["changes"][setting] = value # Get extruder all settings values without user or quality changes for setting in extruder.getAllKeys(): - settings[f"extruder_{i}"]["all_settings"][setting] = str(extruder.getProperty(setting, "value")) + value = extruder.getProperty(setting, "value") + if isinstance(value, SettingFunction): + value = value(extruder) + settings[f"extruder_{i}"]["all_settings"][setting] = value return settings