Removed the rather hacky implementation of the shrinkage factor averaging. Issues with dual extrusion were the second extruder is not used should solved in a different way.

Relates to PP-77
This commit is contained in:
p.kuiper 2022-04-06 13:28:55 +02:00
parent 733447a2dd
commit 0a8ef5162e
4 changed files with 43 additions and 22 deletions

View file

@ -383,7 +383,7 @@ class ConvexHullDecorator(SceneNodeDecorator):
# Shrinkage compensation. # Shrinkage compensation.
if not self._global_stack: # Should never happen. if not self._global_stack: # Should never happen.
return convex_hull return convex_hull
scale_factor = self._global_stack.getProperty("material_shrinkage_percentage_xy", "value") / 100.0 scale_factor = self._global_stack.getProperty("material_shrinkage_percentage", "value") / 100.0
result = convex_hull result = convex_hull
if scale_factor != 1.0 and not self.getNode().callDecoration("isGroup"): if scale_factor != 1.0 and not self.getNode().callDecoration("isGroup"):
center = None center = None

View file

@ -139,4 +139,4 @@ class ModelChecker(QObject, Extension):
global_container_stack = Application.getInstance().getGlobalContainerStack() global_container_stack = Application.getInstance().getGlobalContainerStack()
if global_container_stack is None: if global_container_stack is None:
return 100 return 100
return max(global_container_stack.getProperty("material_shrinkage_percentage_xy", "value"), global_container_stack.getProperty("material_shrinkage_percentage_z", "value")) return global_container_stack.getProperty("material_shrinkage_percentage", "value")

View file

@ -2527,35 +2527,55 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"material_shrinkage_percentage_xy": "material_shrinkage_percentage":
{ {
"label": "Horizontal Scaling Factor Shrinkage Compensation", "label": "Scaling Factor Shrinkage Compensation",
"description": "To compensate for the shrinkage of the material as it cools down, the model will be scaled with this factor in the XY-direction (horizontally).", "description": "To compensate for the shrinkage of the material as it cools down, the model will be scaled with this factor.",
"unit": "%", "unit": "%",
"type": "float", "type": "float",
"default_value": null, "default_value": 100.0,
"enabled": true, "enabled": true,
"minimum_value": "0.001", "minimum_value": "0.001",
"minimum_value_warning": "100", "minimum_value_warning": "100",
"maximum_value_warning": "120", "maximum_value_warning": "120",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false, "settable_per_extruder": false,
"resolve": "100 if sum(1 if s != None else 0 for s in extruderValues('material_shrinkage_percentage_xy')) == 0 else sum(s if s != None else 0 for s in extruderValues('material_shrinkage_percentage_xy'))/sum(1 if s != None else 0 for s in extruderValues('material_shrinkage_percentage_xy'))" "resolve": "sum(extruderValues(\"material_shrinkage_percentage\")) / len(extruderValues(\"material_shrinkage_percentage\"))",
}, "children":
"material_shrinkage_percentage_z": {
{ "material_shrinkage_percentage_xy":
"label": "Vertical Scaling Factor Shrinkage Compensation", {
"description": "To compensate for the shrinkage of the material as it cools down, the model will be scaled with this factor in the Z-direction (vertically).", "label": "Horizontal Scaling Factor Shrinkage Compensation",
"unit": "%", "description": "To compensate for the shrinkage of the material as it cools down, the model will be scaled with this factor in the XY-direction (horizontally).",
"type": "float", "unit": "%",
"default_value": null, "type": "float",
"enabled": true, "default_value": 100.0,
"minimum_value": "0.001", "enabled": true,
"minimum_value_warning": "100", "minimum_value": "0.001",
"maximum_value_warning": "120", "minimum_value_warning": "100",
"settable_per_mesh": false, "maximum_value_warning": "120",
"settable_per_extruder": false, "settable_per_mesh": false,
"resolve": "100 if sum(1 if s != None else 0 for s in extruderValues('material_shrinkage_percentage_z')) == 0 else sum(s if s != None else 0 for s in extruderValues('material_shrinkage_percentage_z'))/sum(1 if s != None else 0 for s in extruderValues('material_shrinkage_percentage_z'))" "settable_per_extruder": false,
"resolve": "sum(extruderValues(\"material_shrinkage_percentage_xy\")) / len(extruderValues(\"material_shrinkage_percentage_xy\"))",
"value": "material_shrinkage_percentage"
},
"material_shrinkage_percentage_z":
{
"label": "Vertical Scaling Factor Shrinkage Compensation",
"description": "To compensate for the shrinkage of the material as it cools down, the model will be scaled with this factor in the Z-direction (vertically).",
"unit": "%",
"type": "float",
"default_value": 100.0,
"enabled": true,
"minimum_value": "0.001",
"minimum_value_warning": "100",
"maximum_value_warning": "120",
"settable_per_mesh": false,
"settable_per_extruder": false,
"resolve": "sum(extruderValues(\"material_shrinkage_percentage_z\")) / len(extruderValues(\"material_shrinkage_percentage_z\"))",
"value": "material_shrinkage_percentage"
}
}
}, },
"material_crystallinity": "material_crystallinity":
{ {

View file

@ -117,6 +117,7 @@ material_bed_temperature
material_bed_temperature_layer_0 material_bed_temperature_layer_0
material_adhesion_tendency material_adhesion_tendency
material_surface_energy material_surface_energy
material_shrinkage_percentage
material_shrinkage_percentage_xy material_shrinkage_percentage_xy
material_shrinkage_percentage_z material_shrinkage_percentage_z
material_flow material_flow