From 914aa89711bde3eede586dbcad11879ba28fdab3 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 13 Mar 2017 17:19:29 +0100 Subject: [PATCH 1/7] feat: model to mold (CURA-3512) --- cura/ConvexHullDecorator.py | 16 ++++++----- resources/definitions/fdmprinter.def.json | 33 +++++++++++++++++++++++ 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/cura/ConvexHullDecorator.py b/cura/ConvexHullDecorator.py index 7065b71735..da72ffdbe3 100644 --- a/cura/ConvexHullDecorator.py +++ b/cura/ConvexHullDecorator.py @@ -258,12 +258,16 @@ class ConvexHullDecorator(SceneNodeDecorator): # influences the collision area. def _offsetHull(self, convex_hull): horizontal_expansion = self._getSettingProperty("xy_offset", "value") - if horizontal_expansion != 0: + mold_width = 0 + if self._getSettingProperty("mold_enabled", "value"): + mold_width = self._getSettingProperty("mold_width", "value") + hull_offset = horizontal_expansion + mold_width + if hull_offset != 0: expansion_polygon = Polygon(numpy.array([ - [-horizontal_expansion, -horizontal_expansion], - [-horizontal_expansion, horizontal_expansion], - [horizontal_expansion, horizontal_expansion], - [horizontal_expansion, -horizontal_expansion] + [-hull_offset, -hull_offset], + [-hull_offset, hull_offset], + [hull_offset, hull_offset], + [hull_offset, -hull_offset] ], numpy.float32)) return convex_hull.getMinkowskiHull(expansion_polygon) else: @@ -331,4 +335,4 @@ class ConvexHullDecorator(SceneNodeDecorator): ## Settings that change the convex hull. # # If these settings change, the convex hull should be recalculated. - _influencing_settings = {"xy_offset"} \ No newline at end of file + _influencing_settings = {"xy_offset", "mold_enabled", "mold_width"} \ No newline at end of file diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 93ef1f439b..999184a76d 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4111,6 +4111,39 @@ "settable_per_meshgroup": false, "settable_globally": false }, + "mold_enabled": + { + "label": "Mold", + "description": "Print models as a mold, which can be cast in order to get a model which resembles the models on the build plate.", + "type": "bool", + "default_value": false, + "settable_per_mesh": true + }, + "mold_width": + { + "label": "Minmal Mold Width", + "description": "The minimal distance between the ouside of the mold and the outside of the model.", + "unit": "mm", + "type": "float", + "minimum_value_warning": "wall_line_width_0 * 2", + "maximum_value_warning": "100", + "default_value": 0, + "settable_per_mesh": true, + "enabled": "mold_enabled" + }, + "mold_angle": + { + "label": "Mold Angle", + "description": "The angle of overhang of the outer walls created for the mold. 0° will make the outer shell of the mold vertical, while 90° will make the outside of the model follow the contour of the model.", + "unit": "°", + "type": "float", + "minimum_value": "0", + "minimum_value_warning": "0", + "maximum_value": "89", + "default_value": 50, + "settable_per_mesh": true, + "enabled": "mold_enabled" + }, "infill_mesh_order": { "label": "Infill Mesh Order", From 4294a162e656fbcac0cb2bb4b89b430c6113ab85 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 13 Mar 2017 17:39:04 +0100 Subject: [PATCH 2/7] lil typo fix (CURA-3512) --- 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 999184a76d..9579a29bb3 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4121,7 +4121,7 @@ }, "mold_width": { - "label": "Minmal Mold Width", + "label": "Minimal Mold Width", "description": "The minimal distance between the ouside of the mold and the outside of the model.", "unit": "mm", "type": "float", From 85356d621c8caa41a512ab7d18a632e09e2ab548 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 13 Mar 2017 18:00:51 +0100 Subject: [PATCH 3/7] lil default (CURA-3512) --- 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 9579a29bb3..7e57c4a129 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4140,7 +4140,7 @@ "minimum_value": "0", "minimum_value_warning": "0", "maximum_value": "89", - "default_value": 50, + "default_value": 40, "settable_per_mesh": true, "enabled": "mold_enabled" }, From a46e84939bd99547c11a1bc8d356a058db73b368 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 13 Mar 2017 18:07:31 +0100 Subject: [PATCH 4/7] JSON fix: better mold angle warning (CURA-3512) --- 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 7e57c4a129..da278625a0 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4138,7 +4138,7 @@ "unit": "°", "type": "float", "minimum_value": "0", - "minimum_value_warning": "0", + "maximum_value_warning": "support_angle", "maximum_value": "89", "default_value": 40, "settable_per_mesh": true, From 09855bc21c91b5aebb597f07b7e6ab79281119a9 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Wed, 15 Mar 2017 15:12:08 +0100 Subject: [PATCH 5/7] fix: 90 mold angle now possible (CURA-3512) --- 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 da278625a0..b6391cb19c 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4139,7 +4139,7 @@ "type": "float", "minimum_value": "0", "maximum_value_warning": "support_angle", - "maximum_value": "89", + "maximum_value": "90", "default_value": 40, "settable_per_mesh": true, "enabled": "mold_enabled" From 999e59be66b79037374e84dd37a871181ef3d95d Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Wed, 15 Mar 2017 16:21:42 +0100 Subject: [PATCH 6/7] fix: can now insert negative mold angle values (CURA-3512) --- resources/definitions/fdmprinter.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b6391cb19c..a951d6aca6 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4137,7 +4137,8 @@ "description": "The angle of overhang of the outer walls created for the mold. 0° will make the outer shell of the mold vertical, while 90° will make the outside of the model follow the contour of the model.", "unit": "°", "type": "float", - "minimum_value": "0", + "minimum_value": "-89", + "minimum_value_warning": "0", "maximum_value_warning": "support_angle", "maximum_value": "90", "default_value": 40, From e4a1d4dce2e34ff2feacd7ef7ac47fc88ea81f40 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 30 Mar 2017 11:17:52 +0200 Subject: [PATCH 7/7] JSON fix: default mold width: 5mm (CURA-3512) --- 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 6fe9910537..6134a2fcb4 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4138,7 +4138,7 @@ "type": "float", "minimum_value_warning": "wall_line_width_0 * 2", "maximum_value_warning": "100", - "default_value": 0, + "default_value": 5, "settable_per_mesh": true, "enabled": "mold_enabled" },