Correctly upgrade the ironing_inset based on the ironing_pattern used

Previously, the ironing_inset was changed in the profiles to reflect
the changes made in the CuraEngine. This inset though was not taking
into account the ironing_pattern (in the CuraEngine, the inset is
compensated differently depending on the pattern).

This commit fixes that in the version upgrader and the printer
definitions in order to maintain the same behavior for the old
profiles.

CURA-7318
This commit is contained in:
Kostas Karmas 2020-05-20 13:56:24 +02:00
parent 81ec7d6582
commit 503d5d2a35
4 changed files with 8 additions and 4 deletions

View file

@ -64,7 +64,11 @@ class VersionUpgrade462to47(VersionUpgrade):
ironing_inset = parser["values"]["ironing_inset"]
if ironing_inset.startswith("="):
ironing_inset = ironing_inset[1:]
ironing_inset = "=(" + ironing_inset + ") + skin_line_width * (1.0 - ironing_flow) / 2"
if "ironing_pattern" in parser["values"] and parser["values"]["ironing_pattern"] == "concentric":
correction = " + ironing_line_spacing - skin_line_width * (1.0 + ironing_flow / 100) / 2"
else: # If ironing_pattern doesn't exist, it means the default (zigzag) is selected
correction = " + skin_line_width * (1.0 - ironing_flow / 100) / 2"
ironing_inset = "=(" + ironing_inset + ")" + correction
parser["values"]["ironing_inset"] = ironing_inset
result = io.StringIO()