From 932fb75145eeebbdea1e3389ad9f2cbb8355c819 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 12 Apr 2019 18:40:22 +0200 Subject: [PATCH 1/7] Add maximum deviation setting This setting allows tweaking the deviation from the norm separately from the length of line segments. Implements CURA-6458. --- resources/definitions/fdmprinter.def.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 8ce0246a93..11da222833 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -5875,6 +5875,19 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "meshfix_maximum_deviation": + { + "label": "Maximum Deviation", + "description": "The maximum deviation allowed when reducing the resolution for the Maximum Resolution setting. If you increase this, the print will be less accurate, but the g-code will be smaller.", + "type": "float", + "unit": "mm", + "default_value": 0.005, + "value": "meshfix_maximum_resolution / 2", + "minimum_value": "0.001", + "minimum_value_warning": "0.003", + "maximum_value_warning": "0.1", + "settable_per_mesh": true + }, "support_skip_some_zags": { "label": "Break Up Support In Chunks", From 60777b72fcd3c7dea7511bd7c24da194abfd5478 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 16 Apr 2019 11:27:29 +0200 Subject: [PATCH 2/7] Increase defaults for Maximum Resolution significantly We want to limit it mostly to the Maximum Deviation now. So also don't increase the Maximum Deviation along this time. Contributes to issue CURA-6458. --- resources/definitions/fdmprinter.def.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 11da222833..15e3209e49 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -5855,7 +5855,7 @@ "description": "The minimum size of a line segment after slicing. If you increase this, the mesh will have a lower resolution. This may allow the printer to keep up with the speed it has to process g-code and will increase slice speed by removing details of the mesh that it can't process anyway.", "type": "float", "unit": "mm", - "default_value": 0.01, + "default_value": 0.25, "minimum_value": "0.001", "minimum_value_warning": "0.005", "maximum_value_warning": "0.1", @@ -5867,7 +5867,7 @@ "description": "The minimum size of a travel line segment after slicing. If you increase this, the travel moves will have less smooth corners. This may allow the printer to keep up with the speed it has to process g-code, but it may cause model avoidance to become less accurate.", "type": "float", "unit": "mm", - "default_value": 0.02, + "default_value": 0.5, "value": "meshfix_maximum_resolution * speed_travel / speed_print", "minimum_value": "0.001", "minimum_value_warning": "0.005", @@ -5882,7 +5882,6 @@ "type": "float", "unit": "mm", "default_value": 0.005, - "value": "meshfix_maximum_resolution / 2", "minimum_value": "0.001", "minimum_value_warning": "0.003", "maximum_value_warning": "0.1", From 6325a5f1c24ad218beccfbcf2ee925f496172327 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 16 Apr 2019 11:36:07 +0200 Subject: [PATCH 3/7] Change setting value defaults for maximum resolution to use deviation All profiles that use maximum resolution should use maximum deviation instead, and halve it. Contributes to issue CURA-6458. --- .../VersionUpgrade40to41/VersionUpgrade40to41.py | 11 ++++++++++- resources/definitions/peopoly_moai.def.json | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py b/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py index d80e0007aa..f79ec66e5a 100644 --- a/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py +++ b/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2019 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import configparser @@ -49,6 +49,15 @@ class VersionUpgrade40to41(VersionUpgrade): parser["general"]["version"] = "4" parser["metadata"]["setting_version"] = "7" + # Limit Maximum Deviation instead of Maximum Resolution. This should have approximately the same effect as before the algorithm change, only more consistent. + if "meshfix_maximum_resolution" in parser["values"]: + resolution = parser["values"]["meshfix_maximum_resolution"] + if resolution.startswith("="): + resolution = resolution[1:] + resolution = "=(" + resolution + ") / 2" + parser["values"]["meshfix_maximum_deviation"] = resolution + del parser["values"]["meshfix_maximum_resolution"] + result = io.StringIO() parser.write(result) return [filename], [result.getvalue()] diff --git a/resources/definitions/peopoly_moai.def.json b/resources/definitions/peopoly_moai.def.json index a578cc4240..177a6a801e 100644 --- a/resources/definitions/peopoly_moai.def.json +++ b/resources/definitions/peopoly_moai.def.json @@ -173,8 +173,8 @@ "minimum_polygon_circumference": { "value": "0.1" }, - "meshfix_maximum_resolution": { - "value": "0.005" + "meshfix_maximum_deviation": { + "value": "0.003" }, "skin_outline_count": { "value": 0 From 3b184a5a9a05969eb8368aa498ddbb8d9c4c2c01 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 16 Apr 2019 11:36:59 +0200 Subject: [PATCH 4/7] Add maximum deviation to expert settings Contributes to issue CURA-6458. --- resources/setting_visibility/expert.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index 7754555ba7..0765c51749 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -347,6 +347,7 @@ infill_enable_travel_optimization material_flow_dependent_temperature material_flow_temp_graph meshfix_maximum_resolution +meshfix_maximum_deviation support_skip_some_zags support_skip_zag_per_mm support_zag_skip_count From eb3e343be5dd6f7b2a53a88edaf36ad75ab798ac Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 16 Apr 2019 12:04:34 +0200 Subject: [PATCH 5/7] Rename variable Even if we could reuse the other, it make sense to call it 'deviation' Contributes to CURA-6458. --- .../VersionUpgrade40to41/VersionUpgrade40to41.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py b/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py index f79ec66e5a..db7d3c75da 100644 --- a/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py +++ b/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py @@ -54,8 +54,8 @@ class VersionUpgrade40to41(VersionUpgrade): resolution = parser["values"]["meshfix_maximum_resolution"] if resolution.startswith("="): resolution = resolution[1:] - resolution = "=(" + resolution + ") / 2" - parser["values"]["meshfix_maximum_deviation"] = resolution + deviation = "=(" + resolution + ") / 2" + parser["values"]["meshfix_maximum_deviation"] = deviation del parser["values"]["meshfix_maximum_resolution"] result = io.StringIO() From 3771040c04a280077c02dd299bf0877cb2745ff0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 16 Apr 2019 12:58:47 +0200 Subject: [PATCH 6/7] Adjust warning values for maximum resolution Due to the change in tactics to limit resolution by deviation, this can be increased quite a lot (as long as you don't increase deviation too much). --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 15e3209e49..e903dceb0c 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -5857,8 +5857,8 @@ "unit": "mm", "default_value": 0.25, "minimum_value": "0.001", - "minimum_value_warning": "0.005", - "maximum_value_warning": "0.1", + "minimum_value_warning": "0.02", + "maximum_value_warning": "2", "settable_per_mesh": true }, "meshfix_maximum_travel_resolution": From 96abaf23767899fd622753e22a85f270b0ed854a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 16 Apr 2019 12:59:45 +0200 Subject: [PATCH 7/7] Adjust warning values for maximum travel resolution Due to the change in tactics to limit resolution by deviation, this can be increased quite a lot (as long as you don't increase deviation too much). --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index e903dceb0c..5e5c34338b 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -5870,8 +5870,8 @@ "default_value": 0.5, "value": "meshfix_maximum_resolution * speed_travel / speed_print", "minimum_value": "0.001", - "minimum_value_warning": "0.005", - "maximum_value_warning": "1", + "minimum_value_warning": "0.05", + "maximum_value_warning": "10", "settable_per_mesh": false, "settable_per_extruder": true },