Browse Source

Set visibility of shrinkage settings to true. Enable visibility in advanced (xyz shrinkage only) and the expert display mode.
New calculations to determine the average shrinkage when two materials are used. By default the material shrinkage is set to null (None). In that case the shrinkage of that material is not taken into account in the new averaging formula. Support materials such as PVA, BAM, Aquasys etc. should keep this setting to null. When two materials are used with a shrinkage percentage the average of these two materials will be used.

Relates to PP-77

p.kuiper 2 years ago
parent
commit
d6d4644a31

+ 9 - 9
resources/definitions/fdmprinter.def.json

@@ -2533,14 +2533,14 @@
                     "description": "To compensate for the shrinkage of the material as it cools down, the model will be scaled with this factor.",
                     "unit": "%",
                     "type": "float",
-                    "default_value": 100.0,
-                    "enabled": false,
+                    "default_value": null,
+                    "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\")) / len(extruderValues(\"material_shrinkage_percentage\"))",
+                    "resolve": "100 if sum(1 if s != None else 0 for s in extruderValues('material_shrinkage_percentage')) == 0 else sum(s if s != None else 0 for s in extruderValues('material_shrinkage_percentage'))/sum(1 if s != None else 0 for s in extruderValues('material_shrinkage_percentage'))",
                     "children":
                     {
                         "material_shrinkage_percentage_xy":
@@ -2549,14 +2549,14 @@
                             "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).",
                             "unit": "%",
                             "type": "float",
-                            "default_value": 100.0,
-                            "enabled": false,
+                            "default_value": null,
+                            "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_xy\")) / len(extruderValues(\"material_shrinkage_percentage_xy\"))",
+                            "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'))",
                             "value": "material_shrinkage_percentage"
                         },
                         "material_shrinkage_percentage_z":
@@ -2565,14 +2565,14 @@
                             "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": false,
+                            "default_value": null,
+                            "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\"))",
+                            "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'))",
                             "value": "material_shrinkage_percentage"
                         }
                     }

+ 1 - 0
resources/setting_visibility/advanced.cfg

@@ -57,6 +57,7 @@ retract_at_layer_change
 retraction_amount
 retraction_speed
 material_standby_temperature
+material_shrinkage_percentage
 
 [speed]
 speed_print

+ 3 - 0
resources/setting_visibility/expert.cfg

@@ -133,6 +133,9 @@ prime_tower_flow
 material_flow_layer_0
 material_standby_temperature
 material_alternate_walls
+material_shrinkage_percentage
+material_shrinkage_percentage_xy
+material_shrinkage_percentage_z
 
 [speed]
 speed_print