diff --git a/MatterControl.Printing/Settings/SliceSettingsFields.cs b/MatterControl.Printing/Settings/SliceSettingsFields.cs index daa2c77e3..a8570b72b 100644 --- a/MatterControl.Printing/Settings/SliceSettingsFields.cs +++ b/MatterControl.Printing/Settings/SliceSettingsFields.cs @@ -463,9 +463,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration SlicerConfigName = SettingsKey.extrusion_multiplier, PresentationName = "Extrusion Multiplier".Localize(), HelpText = "All extrusions are multiplied by this value. Increasing it above 1 will increase the amount of filament being extruded (1.1 is a good max value); decreasing it will decrease the amount being extruded (.9 is a good minimum value).".Localize(), - DataEditType = DataEditTypes.POSITIVE_DOUBLE, + DataEditType = DataEditTypes.DOUBLE_OR_PERCENT, + Units = "Ratio or %", ShowIfSet = "!sla_printer", - DefaultValue = "1" + DefaultValue = "100%" }, new SliceSettingData() { diff --git a/MatterControlLib/SlicerConfiguration/EngineMappingMatterSlice.cs b/MatterControlLib/SlicerConfiguration/EngineMappingMatterSlice.cs index 6ab08401c..bb8f69bc6 100644 --- a/MatterControlLib/SlicerConfiguration/EngineMappingMatterSlice.cs +++ b/MatterControlLib/SlicerConfiguration/EngineMappingMatterSlice.cs @@ -177,7 +177,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration new OverrideSpeedOnSlaPrinters(printer, SettingsKey.air_gap_speed, "airGapSpeed", SettingsKey.infill_speed), new OverrideSpeedOnSlaPrinters(printer, SettingsKey.bottom_infill_speed, "bottomInfillSpeed", SettingsKey.infill_speed), new MappedToBoolString(printer, SettingsKey.bridge_over_infill, "bridgeOverInfill"), - new MappedSetting(printer, SettingsKey.extrusion_multiplier, "extrusionMultiplier"), + new AsPercentOrDirect(printer, SettingsKey.extrusion_multiplier, "extrusionMultiplier"), new MappedSetting(printer, SettingsKey.fill_angle, "infillStartingAngle"), new AsPercentOfReferenceOrDirect(printer, SettingsKey.infill_overlap_perimeter, "infillExtendIntoPerimeter", SettingsKey.nozzle_diameter, change0ToReference: false), new OverrideSpeedOnSlaPrinters(printer, SettingsKey.infill_speed, "infillSpeed", SettingsKey.infill_speed), diff --git a/MatterControlLib/SlicerConfiguration/MappingClasses/AsPercentOrDirect.cs b/MatterControlLib/SlicerConfiguration/MappingClasses/AsPercentOrDirect.cs new file mode 100644 index 000000000..be4ede055 --- /dev/null +++ b/MatterControlLib/SlicerConfiguration/MappingClasses/AsPercentOrDirect.cs @@ -0,0 +1,58 @@ +/* +Copyright (c) 2016, Lars Brubaker +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation are those +of the authors and should not be interpreted as representing official policies, +either expressed or implied, of the FreeBSD Project. +*/ + +namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses +{ + public class AsPercentOrDirect : MappedSetting + { + public AsPercentOrDirect(PrinterConfig printer, string canonicalSettingsName, string exportedName) + : base(printer, canonicalSettingsName, exportedName) + { + } + + public override string Value + { + get + { + double finalValue = 0; + if (base.Value.Contains("%")) + { + string withoutPercent = base.Value.Replace("%", ""); + finalValue = ParseDouble(withoutPercent) / 100.0; + } + else + { + finalValue = ParseDouble(base.Value); + } + + return finalValue.ToString(); + } + } + } +} \ No newline at end of file diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 1177a0b85..14f4fb447 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 1177a0b85bf5f3057547de13bd4e500640fa8c7c +Subproject commit 14f4fb447f973f2f52fd787e014757ca6d06820e