mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-15 02:37:49 -06:00
feat: model to mold (CURA-3512)
This commit is contained in:
parent
d7e35fa480
commit
914aa89711
2 changed files with 43 additions and 6 deletions
|
@ -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"}
|
||||
_influencing_settings = {"xy_offset", "mold_enabled", "mold_width"}
|
|
@ -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",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue