Cleaning up default materials

This commit is contained in:
Lars Brubaker 2022-03-18 15:58:13 -07:00
parent a3f7c879bd
commit c3aaf505e1
14 changed files with 61 additions and 44 deletions

View file

@ -309,6 +309,9 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
SetValue(SettingsKey.active_material_key, value);
MaterialLayer = GetMaterialLayer(value);
// Deactivate conflicting user overrides by iterating the Material preset we've just switched to
this.DeactivateConflictingUserOverrides(this.MaterialLayer);
}
}
}
@ -324,6 +327,9 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
SetValue(SettingsKey.active_quality_key, value);
QualityLayer = GetQualityLayer(value);
// Deactivate conflicting user overrides by iterating the Quality preset we've just switched to
this.DeactivateConflictingUserOverrides(this.QualityLayer);
}
}
}

View file

@ -52,7 +52,7 @@ namespace MatterHackers.MatterControl.DesignTools
[HideMeterialAndColor]
[WebPageLink("Documentation", "Open", "https://www.matterhackers.com/support/mattercontrol-variable-support")]
[MarkDownDescription("[BETA] - Experimental support for variables and equations with a sheets like interface.")]
public class SheetObject3D : Object3D, IObject3DControlsProvider
public class SheetObject3D : Object3D, IObject3DControlsProvider, IStaticThumbnail
{
private SheetData _sheetData;
public SheetData SheetData
@ -84,6 +84,9 @@ namespace MatterHackers.MatterControl.DesignTools
return item;
}
public string ThumbnailName => "Sheet";
private static object loadLock = new object();
private static IObject3D sheetObject;

View file

@ -94,7 +94,7 @@ namespace MatterHackers.MatterControl.Library.Widgets
}
nextButton.Name = "Next Button";
nextButton.Click += (s, e) => UiThread.RunOnIdle(async () =>
nextButton.Click += (s, e) => UiThread.RunOnIdle(() =>
{
if (materialPanel.SelectedMaterial is AddMaterialWidget.MaterialInfo selectedMaterial)
{

View file

@ -244,14 +244,17 @@ namespace MatterHackers.MatterControl.Library.Widgets
printerDetails.AfterLoad += (s, e2) =>
{
printerDetails.ProductDataContainer.AddChild(new HorizontalLine(theme.TextColor)
if (printerDetails.ProductDataContainer.Children.Count > 0)
{
Margin = new BorderDouble(0, 7)
});
printerDetails.ProductDataContainer.AddChild(new HorizontalLine(theme.TextColor)
{
Margin = new BorderDouble(0, 7)
});
}
var settingsBackground = new GuiWidget()
{
Name = "Bacground",
Name = "Background",
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Fit
};

View file

@ -389,11 +389,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
return dropDownList;
}
private void CopyPlateToPrinter(object sceneContext, PrinterConfig printer)
{
throw new NotImplementedException();
}
private void MenuItem_Selected(object sender, EventArgs e)
{
// When a preset is selected store the current values of all known settings to compare against after applying the preset
@ -419,9 +414,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
activeSettings.RestoreConflictingUserOverrides(activeSettings.MaterialLayer);
activeSettings.ActiveMaterialKey = item.Value;
// Deactivate conflicting user overrides by iterating the Material preset we've just switched to
activeSettings.DeactivateConflictingUserOverrides(activeSettings.MaterialLayer);
}
}
else // set the temperature for the given extruder
@ -456,9 +448,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
activeSettings.ActiveQualityKey = item.Value;
nextSelection = activeSettings.QualityLayer;
// Deactivate conflicting user overrides by iterating the Quality preset we've just switched to
activeSettings.DeactivateConflictingUserOverrides(activeSettings.QualityLayer);
}
}
@ -492,9 +481,21 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
}
foreach (var keyName in settingsToUpdate)
{
printer.Settings.OnSettingChanged(keyName);
// we are about to change many settings only save on the last one
var updateList = settingsToUpdate.ToList();
ProfileManager.SaveOnSingleSettingChange = false;
for (int i=0; i< updateList.Count-1; i++)
{
printer.Settings.OnSettingChanged(updateList[i]);
}
ProfileManager.SaveOnSingleSettingChange = true;
printer.Settings.OnSettingChanged(updateList[updateList.Count-1]);
// update the style of every setting
var sliceSettingsWidget = this.Parents<SliceSettingsWidget>().FirstOrDefault();
if (sliceSettingsWidget != null)
{
sliceSettingsWidget.UpdateAllStyles();
}
});
@ -505,6 +506,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
pullDownContainer.CloseChildren();
pullDownContainer.AddChild(this.NewPulldownContainer());
var sliceSettingsWidget = this.Parents<SliceSettingsWidget>().FirstOrDefault();
if (sliceSettingsWidget != null)
{
sliceSettingsWidget.UpdateAllStyles();
}
}
private void SettingsLayers_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)

View file

@ -474,10 +474,13 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
return printerSettings;
}
public static bool SaveOnSingleSettingChange { get; set; } = true;
// Settings persistence moved from PrinterSettings into ProfileManager to break dependency around ProfileManager paths/MatterControl specific details
private static void PrinterSettings_SettingChanged(object sender, StringEventArgs e)
{
if (sender is PrinterSettings settings)
if (SaveOnSingleSettingChange
&& sender is PrinterSettings settings)
{
settings.Save();
}

View file

@ -112,7 +112,15 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
showControlBar = value;
}
}
}
public void UpdateAllStyles()
{
foreach(var child in this.Descendants<SliceSettingsRow>())
{
child.UpdateStyle();
}
}
}
public class SliceSettingsTabView : SimpleTabs
{

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View file

@ -14,14 +14,8 @@
"bridge_fan_speed": "50",
"merge_overlapping_lines": "1",
"enable_fan": "1",
"layer_etag": "",
"layer_source": "",
"min_fan_speed_layer_time": "8",
"max_fan_speed_layer_time": "8",
"create_skirt": "0",
"create_brim": "1",
"brims": "5mm",
"filament_cost": "19.99",
"bed_temperature_buildtak": "100",
"bed_temperature_garolite": "100",
"bed_temperature_glass": "100",

View file

@ -8,18 +8,13 @@
"layer_id": "b8e72ad6-9b04-4bbb-852f-4fec1bc4262b",
"temperature": "250",
"bed_temperature": "55",
"retract_restart_extra": "0",
"retract_restart_extra_time_to_apply": "0",
"filament_density": "1.1",
"filament_cost": "73.3",
"filament_density": "1.14",
"bed_temperature_buildtak": "55",
"bed_temperature_garolite": "70",
"bed_temperature_glass": "70",
"bed_temperature_kapton": "70",
"bed_temperature_pei": "70",
"bed_temperature_pp": "50",
"layer_etag": "",
"layer_source": "",
"material_sku": "3d-printer-filament/Nylon"
}
],

View file

@ -7,7 +7,7 @@
"layer_name": "PETg",
"layer_id": "dbef12f0-4197-41e8-b15e-85433d8e3fcc",
"temperature": "245",
"filament_density": "1.28",
"filament_density": "1.23",
"bed_temperature": "75",
"bridge_fan_speed": "25",
"max_fan_speed": "100",
@ -16,8 +16,6 @@
"max_fan_speed_layer_time": "10",
"layer_etag": "",
"layer_source": "",
"extrusion_multiplier": "0.95",
"filament_cost": "24.99",
"bed_temperature_buildtak": "55",
"bed_temperature_garolite": "75",
"bed_temperature_glass": "75",

View file

@ -12,13 +12,9 @@
"min_fan_speed": "70",
"max_fan_speed": "100",
"bridge_fan_speed": "100",
"layer_etag": "",
"layer_source": "",
"filament_cost": "19.99",
"min_fan_speed_layer_time": "180",
"max_fan_speed_layer_time": "60",
"extrusion_multiplier": "0.97",
"disable_fan_first_layers": "5",
"disable_fan_first_layers": "3",
"bed_temperature_buildtak": "50",
"bed_temperature_garolite": "75",
"bed_temperature_glass": "75",

@ -1 +1 @@
Subproject commit 8610fe4d31da3d08b3c06de89eae25db39f56838
Subproject commit 0511fb98bd18e41c90ad149e7c9d33bc3c1d7d9e

View file

@ -189,13 +189,17 @@ M300 S3000 P30 ; Resume Tone";
var files = directoryInfo.GetFiles("*.material", SearchOption.AllDirectories);
var profiles = files.Select(f => PrinterSettings.LoadFile(f.FullName)).ToList();
var allMaterialIds = new HashSet<string>();
foreach(var profile in profiles)
{
Assert.AreEqual(1, profile.MaterialLayers.Count, "Each material profile should have 1 material in it");
var material = profile.MaterialLayers[0];
profile.ActiveMaterialKey = material.LayerID;
Assert.IsTrue(!string.IsNullOrEmpty(profile.GetValue(SettingsKey.material_sku)));
}
Assert.IsTrue(!allMaterialIds.Contains(material.LayerID), "Every material needs a unique Id");
allMaterialIds.Add(material.LayerID);
}
}