Rename converter types and methods to match behavior

This commit is contained in:
jlewin 2019-07-02 14:26:07 -07:00
parent 8f5a6531b1
commit 8e930f28ce
19 changed files with 147 additions and 146 deletions

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -29,16 +29,16 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class AsCountOrDistance : MappedSetting
public class AsCountOrDistance : ValueConverter
{
private string keyToUseAsDenominatorForCount;
private readonly string keyToUseAsDenominatorForCount;
public AsCountOrDistance(string keyToUseAsDenominatorForCount)
{
this.keyToUseAsDenominatorForCount = keyToUseAsDenominatorForCount;
}
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
// When the state is store in mm, determine and use the value in (counted) units i.e. round distance up to layer count
if (value.Contains("mm"))

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -29,10 +29,10 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class AsPercentOfReferenceOrDirect : MappedSetting
public class AsPercentOfReferenceOrDirect : ValueConverter
{
private bool change0ToReference;
private double scale;
private readonly bool change0ToReference;
private readonly double scale;
public AsPercentOfReferenceOrDirect(string referencedSetting, double scale = 1, bool change0ToReference = true)
{
@ -43,7 +43,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
public string ReferencedSetting { get; }
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
double finalValue = 0;

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -29,9 +29,9 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class AsPercentOrDirect : MappedSetting
public class AsPercentOrDirect : ValueConverter
{
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
double finalValue = 0;

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -31,11 +31,11 @@ namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class AsPercentOrDirectFirst : MapFirstValue
{
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
double ratio = 0;
value = base.Resolve(value, settings);
value = base.Convert(value, settings);
if (value.Contains("%"))
{

View file

@ -29,24 +29,24 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class ConditionalField : MappedSetting
public class ConditionalField : ValueConverter
{
private string defaultValue;
private string enableOnKey;
private MappedSetting sourceField;
private readonly string defaultValue;
private readonly string enableOnKey;
private ValueConverter sourceField;
public ConditionalField(string enableOnKey, MappedSetting sourceField, string defaultValue = "0")
public ConditionalField(string enableOnKey, ValueConverter sourceField, string defaultValue = "0")
{
this.defaultValue = defaultValue;
this.enableOnKey = enableOnKey;
this.sourceField = sourceField;
}
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
if (settings.GetValue<bool>(enableOnKey))
{
return sourceField.Resolve(value, settings);
return sourceField.Convert(value, settings);
}
return defaultValue;

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -29,9 +29,9 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class GCodeMapping : MappedSetting
public class GCodeMapping : ValueConverter
{
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
// Unescape newlines
value = value.Replace("\\n", "\n");

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -29,9 +29,9 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class InfillTranslator : MappedSetting
public class InfillTranslator : ValueConverter
{
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
double infillRatio0To1 = ParseDouble(value);
// 400 = solid (extruder width)

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -29,9 +29,9 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class MapFirstValue : MappedSetting
public class MapFirstValue : ValueConverter
{
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
return value.Contains(",") ? value.Split(',')[0] : value;
}

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -29,9 +29,9 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class MapLayerChangeGCode : MappedSetting
public class MapLayerChangeGCode : ValueConverter
{
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
// Unescape newlines
value = value.Replace("\\n", "\n");
@ -39,7 +39,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
if (!value.Contains("; LAYER:")
&& !value.Contains(";LAYER:"))
{
if(value.Length > 0)
if (value.Length > 0)
{
value += "\n";
}

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -29,9 +29,9 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class MappedToBoolString : MappedSetting
public class MappedToBoolString : ValueConverter
{
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
return value == "1" ? "True" : "False";
}

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -36,7 +36,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
}
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
if (settings.GetValue<bool>(SettingsKey.sla_printer))
{
@ -54,7 +54,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
}
else
{
return base.Resolve(value, settings);
return base.Convert(value, settings);
}
}
}

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -31,9 +31,9 @@ using MatterHackers.VectorMath;
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class SkirtLengthMapping : MappedSetting
public class SkirtLengthMapping : ValueConverter
{
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
double lengthToExtrudeMm = ParseDouble(value);

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -27,14 +27,14 @@ of the authors and should not be interpreted as representing official policies,
either expressed or implied, of the FreeBSD Project.
*/
using MatterHackers.VectorMath;
using System;
using MatterHackers.VectorMath;
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class Slice3rBedShape : MappedSetting
public class Slice3rBedShape : ValueConverter
{
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
Vector2 printCenter = settings.GetValue<Vector2>(SettingsKey.print_center);
Vector2 bedSize = settings.GetValue<Vector2>(SettingsKey.bed_size);
@ -53,19 +53,22 @@ namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
bedString += ",";
}
double x = Math.Cos(angle * i);
double y = Math.Sin(angle * i);
bedString += $"{printCenter.X + x * bedSize.X / 2:0.####}x{printCenter.Y + y * bedSize.Y / 2:0.####}";
first = false;
}
return bedString;
}
//bed_shape = 99.4522x10.4528,97.8148x20.7912,95.1057x30.9017,91.3545x40.6737,86.6025x50,80.9017x58.7785,74.3145x66.9131,66.9131x74.3145,58.7785x80.9017,50x86.6025,40.6737x91.3545,30.9017x95.1057,20.7912x97.8148,10.4528x99.4522,0x100,-10.4528x99.4522,-20.7912x97.8148,-30.9017x95.1057,-40.6737x91.3545,-50x86.6025,-58.7785x80.9017,-66.9131x74.3145,-74.3145x66.9131,-80.9017x58.7785,-86.6025x50,-91.3545x40.6737,-95.1057x30.9017,-97.8148x20.7912,-99.4522x10.4528,-100x0,-99.4522x - 10.4528,-97.8148x - 20.7912,-95.1057x - 30.9017,-91.3545x - 40.6737,-86.6025x - 50,-80.9017x - 58.7785,-74.3145x - 66.9131,-66.9131x - 74.3145,-58.7785x - 80.9017,-50x - 86.6025,-40.6737x - 91.3545,-30.9017x - 95.1057,-20.7912x - 97.8148,-10.4528x - 99.4522,0x - 100,10.4528x - 99.4522,20.7912x - 97.8148,30.9017x - 95.1057,40.6737x - 91.3545,50x - 86.6025,58.7785x - 80.9017,66.9131x - 74.3145,74.3145x - 66.9131,80.9017x - 58.7785,86.6025x - 50,91.3545x - 40.6737,95.1057x - 30.9017,97.8148x - 20.7912,99.4522x - 10.4528,100x0
// bed_shape = 99.4522x10.4528,97.8148x20.7912,95.1057x30.9017,91.3545x40.6737,86.6025x50,80.9017x58.7785,74.3145x66.9131,66.9131x74.3145,58.7785x80.9017,50x86.6025,40.6737x91.3545,30.9017x95.1057,20.7912x97.8148,10.4528x99.4522,0x100,-10.4528x99.4522,-20.7912x97.8148,-30.9017x95.1057,-40.6737x91.3545,-50x86.6025,-58.7785x80.9017,-66.9131x74.3145,-74.3145x66.9131,-80.9017x58.7785,-86.6025x50,-91.3545x40.6737,-95.1057x30.9017,-97.8148x20.7912,-99.4522x10.4528,-100x0,-99.4522x - 10.4528,-97.8148x - 20.7912,-95.1057x - 30.9017,-91.3545x - 40.6737,-86.6025x - 50,-80.9017x - 58.7785,-74.3145x - 66.9131,-66.9131x - 74.3145,-58.7785x - 80.9017,-50x - 86.6025,-40.6737x - 91.3545,-30.9017x - 95.1057,-20.7912x - 97.8148,-10.4528x - 99.4522,0x - 100,10.4528x - 99.4522,20.7912x - 97.8148,30.9017x - 95.1057,40.6737x - 91.3545,50x - 86.6025,58.7785x - 80.9017,66.9131x - 74.3145,74.3145x - 66.9131,80.9017x - 58.7785,86.6025x - 50,91.3545x - 40.6737,95.1057x - 30.9017,97.8148x - 20.7912,99.4522x - 10.4528,100x0
case BedShape.Rectangular:
default:
{
//bed_shape = 0x0,200x0,200x200,0x200
// bed_shape = 0x0,200x0,200x200,0x200
string bedString = $"{printCenter.X - bedSize.X / 2}x{printCenter.Y - bedSize.Y / 2}";
bedString += $",{printCenter.X + bedSize.X / 2}x{printCenter.Y - bedSize.Y / 2}";
bedString += $",{printCenter.X + bedSize.X / 2}x{printCenter.Y + bedSize.Y / 2}";

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -29,9 +29,9 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class MappedSetting
public class ValueConverter
{
public virtual string Resolve(string value, PrinterSettings settings)
public virtual string Convert(string value, PrinterSettings settings)
{
return value;
}

View file

@ -1,5 +1,5 @@
/*
Copyright (c) 2016, Lars Brubaker
Copyright (c) 2019, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -29,16 +29,16 @@ either expressed or implied, of the FreeBSD Project.
namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses
{
public class ValuePlusConstant : MappedSetting
public class ValuePlusConstant : ValueConverter
{
private double constant;
private readonly double constant;
public ValuePlusConstant(double constant)
{
this.constant = constant;
}
public override string Resolve(string value, PrinterSettings settings)
public override string Convert(string value, PrinterSettings settings)
{
return $"{ParseDouble(value) + constant}";
}

View file

@ -148,7 +148,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
SettingsKey.selector_ip_address,
SettingsKey.solid_shell,
SettingsKey.z_homes_to_max,
// TODO: merge the items below into the list above after some validation - setting that weren't previously mapped to Cura but probably should be.
SettingsKey.auto_connect,
SettingsKey.auto_release_motors,
SettingsKey.backup_firmware_before_update,
@ -1007,13 +1006,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
string value = this.GetValue(settingsKey);
if (SettingsData.TryGetValue(settingsKey, out SliceSettingData settingsData)
&& settingsData.Resolver is MappedSetting resolver)
&& settingsData.Converter is ValueConverter resolver)
{
return resolver.Resolve(value, this);
return resolver.Convert(value, this);
}
// TODO: Consider if acceptable - should we throw when no resolver exists?
return value;
}

View file

@ -77,6 +77,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public SettingsLayout.SubGroup OrganizerSubGroup { get; set; }
public MappedSetting Resolver { get; set; }
public ValueConverter Converter { get; set; }
}
}

View file

@ -73,7 +73,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.CHECK_BOX,
ShowIfSet = "!sla_printer",
DefaultValue = "1",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -236,7 +236,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.INT_OR_MM,
Units = "count or mm".Localize(),
DefaultValue = "1mm",
Resolver = new AsCountOrDistance(SettingsKey.layer_height),
Converter = new AsCountOrDistance(SettingsKey.layer_height),
},
new SliceSettingData()
{
@ -257,7 +257,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm/s".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "20",
Resolver = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
Converter = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
},
new SliceSettingData()
{
@ -268,7 +268,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm/s".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "15",
Resolver = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
Converter = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
},
new SliceSettingData()
{
@ -279,7 +279,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm/s or %".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "0",
Resolver = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
Converter = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
},
new SliceSettingData()
{
@ -346,7 +346,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "NEVER_SHOW",
DefaultValue = "0",
ReloadUiWhenChanged = true,
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -358,7 +358,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
EnableIfSet = "create_raft",
DefaultValue = "5",
Resolver = new AsCountOrDistance(SettingsKey.nozzle_diameter),
Converter = new AsCountOrDistance(SettingsKey.nozzle_diameter),
},
new SliceSettingData()
{
@ -370,7 +370,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
EnableIfSet = "create_raft",
DefaultValue = ".2",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -381,7 +381,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm/s or %".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "100%",
Resolver = new AsPercentOfReferenceOrDirect(SettingsKey.infill_speed),
Converter = new AsPercentOfReferenceOrDirect(SettingsKey.infill_speed),
},
new SliceSettingData()
{
@ -390,7 +390,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
HelpText = "G-Code to be run at the end of all automatic output (the very end of the G-Code commands).".Localize(),
DataEditType = DataEditTypes.MULTI_LINE_TEXT,
DefaultValue = "M104 S0 ; turn off temperature\\nG28 X0 ; home X axis\\nM84 ; disable motors",
Resolver = new GCodeMapping(),
Converter = new GCodeMapping(),
},
new SliceSettingData()
{
@ -401,7 +401,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
Units = "mm/s or %".Localize(),
DefaultValue = "70%",
Resolver = new OverrideSpeedOnSlaPrinters(SettingsKey.perimeter_speed),
Converter = new OverrideSpeedOnSlaPrinters(SettingsKey.perimeter_speed),
},
new SliceSettingData()
{
@ -411,7 +411,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.CHECK_BOX,
ShowIfSet = "!sla_printer",
DefaultValue = "0",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -422,7 +422,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DefaultValue = "1",
ShowIfSet = "!sla_printer",
ReloadUiWhenChanged = true,
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -472,7 +472,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.CHECK_BOX,
ShowIfSet = "!sla_printer",
DefaultValue = "1",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -482,7 +482,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.CHECK_BOX,
ShowIfSet = "!sla_printer",
DefaultValue = "1",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -493,7 +493,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "Ratio or %".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "100%",
Resolver = new AsPercentOrDirect(),
Converter = new AsPercentOrDirect(),
},
new SliceSettingData()
{
@ -525,7 +525,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
Units = "mm".Localize(),
DefaultValue = "3",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -535,7 +535,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "°".Localize(),
DefaultValue = "45",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -545,7 +545,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
HelpText = "The amount of infill material to generate, expressed as a ratio or a percentage.".Localize(),
DataEditType = DataEditTypes.DOUBLE_OR_PERCENT,
DefaultValue = "0.4",
Resolver = new AsPercentOrDirectFirst(),
Converter = new AsPercentOrDirectFirst(),
},
new SliceSettingData()
{
@ -564,7 +564,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.CHECK_BOX,
ShowIfSet = "!sla_printer",
DefaultValue = "1",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -575,7 +575,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm or %".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "100%",
Resolver = new AsPercentOfReferenceOrDirect(SettingsKey.nozzle_diameter),
Converter = new AsPercentOfReferenceOrDirect(SettingsKey.nozzle_diameter),
},
new SliceSettingData()
{
@ -585,7 +585,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.DOUBLE_OR_PERCENT,
Units = "mm or %".Localize(),
DefaultValue = "0.3",
Resolver = new AsPercentOfReferenceOrDirect(SettingsKey.layer_height),
Converter = new AsPercentOfReferenceOrDirect(SettingsKey.layer_height),
},
new SliceSettingData()
{
@ -595,7 +595,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.DOUBLE_OR_PERCENT,
Units = "mm/s or %".Localize(),
DefaultValue = "30%",
Resolver = new AsPercentOfReferenceOrDirect(SettingsKey.infill_speed),
Converter = new AsPercentOfReferenceOrDirect(SettingsKey.infill_speed),
},
new SliceSettingData()
{
@ -606,7 +606,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "layers or mm".Localize(),
ShowIfSet = "sla_printer",
DefaultValue = "1",
Resolver = new AsCountOrDistance(SettingsKey.layer_height),
Converter = new AsCountOrDistance(SettingsKey.layer_height),
},
new SliceSettingData()
{
@ -828,7 +828,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.DOUBLE_OR_PERCENT,
Units = "mm or %".Localize(),
DefaultValue = "25%",
Resolver = new AsPercentOfReferenceOrDirect(SettingsKey.nozzle_diameter, change0ToReference: false),
Converter = new AsPercentOfReferenceOrDirect(SettingsKey.nozzle_diameter, change0ToReference: false),
QuickMenuSettings = { { "Light", "20%" }, { "Standard", "35%" }, { "Heavy", "75%" } }
},
new SliceSettingData()
@ -860,7 +860,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
Units = "mm/s".Localize(),
DefaultValue = "60",
Resolver = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
Converter = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
},
new SliceSettingData()
{
@ -871,7 +871,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
ListValues = "GRID,TRIANGLES,HEXAGON,LINES,CONCENTRIC",
DefaultValue = "TRIANGLES",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1054,7 +1054,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
HelpText = "G-Code to be run after the change in Z height for the next layer.".Localize(),
DataEditType = DataEditTypes.MULTI_LINE_TEXT,
DefaultValue = "; LAYER:[layer_num]",
Resolver = new MapLayerChangeGCode(),
Converter = new MapLayerChangeGCode(),
},
new SliceSettingData()
{
@ -1065,7 +1065,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "mm".Localize(),
DefaultValue = "0.4",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1105,7 +1105,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
EnableIfSet = SettingsKey.enable_retractions,
ShowIfSet = "!sla_printer",
DefaultValue = ".1",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1137,7 +1137,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "has_fan",
EnableIfSet = SettingsKey.enable_fan,
DefaultValue = "60",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1149,7 +1149,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "has_fan",
EnableIfSet = SettingsKey.enable_fan,
DefaultValue = "30",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1161,7 +1161,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "has_fan",
EnableIfSet = SettingsKey.enable_fan,
DefaultValue = "35",
Resolver = new ConditionalField(SettingsKey.enable_fan, new MappedSetting()),
Converter = new ConditionalField(SettingsKey.enable_fan, new ValueConverter()),
},
new SliceSettingData()
{
@ -1173,7 +1173,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "has_fan",
EnableIfSet = SettingsKey.enable_fan,
DefaultValue = "100",
Resolver = new ConditionalField(SettingsKey.enable_fan, new MappedSetting()),
Converter = new ConditionalField(SettingsKey.enable_fan, new ValueConverter()),
},
new SliceSettingData()
{
@ -1185,7 +1185,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "has_fan",
EnableIfSet = SettingsKey.enable_fan,
DefaultValue = "100",
Resolver = new ConditionalField(SettingsKey.enable_fan, new MappedSetting()),
Converter = new ConditionalField(SettingsKey.enable_fan, new ValueConverter()),
},
new SliceSettingData()
{
@ -1197,7 +1197,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "has_fan",
EnableIfSet = SettingsKey.enable_fan,
DefaultValue = "1",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1208,7 +1208,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm/s".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "10",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1220,7 +1220,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
EnableIfSet = SettingsKey.create_skirt,
Units = "mm".Localize(),
DefaultValue = "0",
Resolver = new SkirtLengthMapping(),
Converter = new SkirtLengthMapping(),
},
new SliceSettingData()
{
@ -1230,7 +1230,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "mm".Localize(),
DefaultValue = "0.5",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1272,7 +1272,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.CHECK_BOX,
ShowIfSet = "!sla_printer",
DefaultValue = "0",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -1302,7 +1302,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm or %".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "100%",
Resolver = new AsPercentOfReferenceOrDirect(SettingsKey.nozzle_diameter),
Converter = new AsPercentOfReferenceOrDirect(SettingsKey.nozzle_diameter),
},
new SliceSettingData()
{
@ -1313,7 +1313,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
Units = "mm/s".Localize(),
DefaultValue = "30",
Resolver = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
Converter = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
},
new SliceSettingData()
{
@ -1323,7 +1323,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "%".Localize(),
DefaultValue = "90",
Resolver = new AsPercentOrDirect(),
Converter = new AsPercentOrDirect(),
QuickMenuSettings = { { "Light", "20" }, { "Standard", "80" }, { "Heavy", "100" } }
},
new SliceSettingData()
@ -1334,7 +1334,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.INT_OR_MM,
Units = "count or mm".Localize(),
DefaultValue = "3",
Resolver = new AsCountOrDistance(SettingsKey.nozzle_diameter),
Converter = new AsCountOrDistance(SettingsKey.nozzle_diameter),
},
new SliceSettingData()
{
@ -1382,7 +1382,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
EnableIfSet = SettingsKey.enable_retractions,
DefaultValue = "20",
Resolver = new MapFirstValue(),
Converter = new MapFirstValue(),
},
new SliceSettingData()
{
@ -1393,7 +1393,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "3",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1415,7 +1415,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DefaultValue = "1",
ShowIfSet = "!sla_printer",
EnableIfSet = SettingsKey.enable_retractions,
Resolver = new ConditionalField(SettingsKey.enable_retractions, new MappedSetting())
Converter = new ConditionalField(SettingsKey.enable_retractions, new ValueConverter())
},
new SliceSettingData()
{
@ -1427,7 +1427,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm".Localize(),
EnableIfSet = SettingsKey.enable_retractions,
DefaultValue = "10",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1438,7 +1438,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
EnableIfSet = SettingsKey.enable_retractions,
DefaultValue = "1",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -1450,7 +1450,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
EnableIfSet = SettingsKey.enable_retractions,
DefaultValue = "0",
Resolver = new MapFirstValue(),
Converter = new MapFirstValue(),
},
new SliceSettingData()
{
@ -1462,7 +1462,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
EnableIfSet = SettingsKey.enable_retractions,
Units = "mm zero to disable".Localize(),
DefaultValue = "0",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1472,7 +1472,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.CHECK_BOX,
ShowIfSet = "!sla_printer",
DefaultValue = "1",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -1493,7 +1493,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
EnableIfSet = SettingsKey.enable_retractions,
DefaultValue = "0",
Resolver = new MapFirstValue(),
Converter = new MapFirstValue(),
},
new SliceSettingData()
{
@ -1505,7 +1505,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
EnableIfSet = SettingsKey.enable_retractions,
DefaultValue = "0",
Resolver = new MapFirstValue(),
Converter = new MapFirstValue(),
},
new SliceSettingData()
{
@ -1517,7 +1517,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
EnableIfSet = SettingsKey.enable_retractions,
DefaultValue = "30",
Resolver = new MapFirstValue(),
Converter = new MapFirstValue(),
},
new SliceSettingData()
{
@ -1555,7 +1555,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
EnableIfSet = SettingsKey.create_skirt,
Units = "mm".Localize(),
DefaultValue = "6",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1576,7 +1576,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
EnableIfSet = SettingsKey.create_skirt,
Units = "count or mm".Localize(),
DefaultValue = "1",
Resolver = new ConditionalField(SettingsKey.create_skirt, new AsCountOrDistance(SettingsKey.nozzle_diameter)),
Converter = new ConditionalField(SettingsKey.create_skirt, new AsCountOrDistance(SettingsKey.nozzle_diameter)),
},
new SliceSettingData()
{
@ -1587,7 +1587,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
EnableIfSet = SettingsKey.create_brim,
Units = "count or mm".Localize(),
DefaultValue = "8mm",
Resolver = new ConditionalField(SettingsKey.create_brim, new AsCountOrDistance(SettingsKey.nozzle_diameter))
Converter = new ConditionalField(SettingsKey.create_brim, new AsCountOrDistance(SettingsKey.nozzle_diameter))
},
new SliceSettingData()
{
@ -1598,7 +1598,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "seconds".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "30",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1645,7 +1645,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
ResetAtEndOfPrint = true,
DefaultValue = "0",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -1663,7 +1663,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
HelpText = "G-Code to be run immediately following the temperature setting commands. Including commands to set temperature in this section will cause them not be generated outside of this section. Will accept Custom G-Code variables.".Localize(),
DataEditType = DataEditTypes.MULTI_LINE_TEXT,
DefaultValue = "G28 ; home all axes\\nG1 Z5 F5000 ; lift nozzle",
Resolver = new GCodeMapping(),
Converter = new GCodeMapping(),
},
new SliceSettingData()
{
@ -1714,7 +1714,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
Units = "mm".Localize(),
DefaultValue = ".3",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1725,7 +1725,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
Units = "°".Localize(),
DefaultValue = "45",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1735,7 +1735,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
DataEditType = DataEditTypes.CHECK_BOX,
DefaultValue = "1",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -1745,7 +1745,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
HelpText = "The index of the extruder to use for printing support material. Applicable only when Extruder Count is set to a value more than 1.".Localize(),
DataEditType = DataEditTypes.INT,
DefaultValue = "1",
Resolver = new ValuePlusConstant(-1),
Converter = new ValuePlusConstant(-1),
},
new SliceSettingData()
{
@ -1756,7 +1756,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
EnableIfSet = "create_raft",
DataEditType = DataEditTypes.INT,
DefaultValue = "0",
Resolver = new ValuePlusConstant(-1),
Converter = new ValuePlusConstant(-1),
},
new SliceSettingData()
{
@ -1766,7 +1766,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer&extruder_count>1",
DataEditType = DataEditTypes.INT,
DefaultValue = "1",
Resolver = new ValuePlusConstant(-1),
Converter = new ValuePlusConstant(-1),
},
new SliceSettingData()
{
@ -1777,7 +1777,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
Units = "layers or mm".Localize(),
DefaultValue = ".9mm",
Resolver = new AsCountOrDistance(SettingsKey.layer_height),
Converter = new AsCountOrDistance(SettingsKey.layer_height),
},
new SliceSettingData()
{
@ -1788,7 +1788,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "2.5",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1799,7 +1799,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
Units = "mm/s".Localize(),
DefaultValue = "60",
Resolver = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
Converter = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
},
new SliceSettingData()
{
@ -1810,7 +1810,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
Units = "mm/s".Localize(),
DefaultValue = "60",
Resolver = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
Converter = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
},
new SliceSettingData()
{
@ -1821,7 +1821,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
Units = "mm".Localize(),
DefaultValue = "0.7",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1832,7 +1832,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer",
ListValues = "GRID,LINES",
DefaultValue = "LINES",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -1993,7 +1993,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm/s or %".Localize(),
ShowIfSet = "!sla_printer",
DefaultValue = "50",
Resolver = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
Converter = new OverrideSpeedOnSlaPrinters(SettingsKey.infill_speed),
},
new SliceSettingData()
{
@ -2003,7 +2003,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.INT_OR_MM,
Units = "count or mm".Localize(),
DefaultValue = "1mm",
Resolver = new AsCountOrDistance(SettingsKey.layer_height),
Converter = new AsCountOrDistance(SettingsKey.layer_height),
},
new SliceSettingData()
{
@ -2013,7 +2013,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "mm/s".Localize(),
DefaultValue = "130",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -2030,7 +2030,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
HelpText = "Make the first layer on top of partial infill use the speed and fan for bridging.".Localize(),
DataEditType = DataEditTypes.CHECK_BOX,
DefaultValue = "0",
Resolver = new MappedToBoolString(),
Converter = new MappedToBoolString(),
},
new SliceSettingData()
{
@ -2102,7 +2102,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
ShowIfSet = "!sla_printer&extruder_count>1",
Units = "mm".Localize(),
DefaultValue = "0",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -2113,7 +2113,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
Units = "mm".Localize(),
ShowIfSet = "!sla_printer&extruder_count>1",
DefaultValue = "0",
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -2253,7 +2253,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
DefaultValue = "1000",
Units = "mm/s²".Localize(),
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -2263,7 +2263,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
DefaultValue = "500",
Units = "mm/s".Localize(),
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -2273,7 +2273,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
DefaultValue = "8",
Units = "mm/s".Localize(),
Resolver = new MappedSetting(),
Converter = new ValueConverter(),
},
new SliceSettingData()
{
@ -2283,7 +2283,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "%".Localize(),
DefaultValue = "100",
Resolver = new AsPercentOrDirect(),
Converter = new AsPercentOrDirect(),
},
new SliceSettingData()
{

View file

@ -273,7 +273,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
var settings = printer.Settings;
if (settingData.Resolver is MappedSetting mappedSetting
if (settingData.Converter is ValueConverter mappedSetting
&& mappedSetting is AsPercentOfReferenceOrDirect percentReference)
{
string settingValue = settings.GetValue(settingData.SlicerConfigName);