From d42d0fd1404c6a64c1af77d8a5e56080c99f807c Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Wed, 24 Oct 2018 18:08:41 -0700 Subject: [PATCH 1/2] Making sure we clear settings that should not be set when importing or creating a new printer --- .../Classic/ClassicSqlitePrinterProfiles.cs | 2 +- .../View3D/PrinterBar/PrinterActionsBar.cs | 2 +- .../Settings/PrinterSettings.cs | 22 +++++++++++++++++-- .../Settings/ProfileManager.cs | 7 +++--- Submodules/agg-sharp | 2 +- 5 files changed, 27 insertions(+), 8 deletions(-) diff --git a/MatterControlLib/DataStorage/Classic/ClassicSqlitePrinterProfiles.cs b/MatterControlLib/DataStorage/Classic/ClassicSqlitePrinterProfiles.cs index 0e75ab30f..b5375eeb2 100644 --- a/MatterControlLib/DataStorage/Classic/ClassicSqlitePrinterProfiles.cs +++ b/MatterControlLib/DataStorage/Classic/ClassicSqlitePrinterProfiles.cs @@ -138,7 +138,7 @@ namespace MatterHackers.MatterControl.DataStorage.ClassicDB printerSettings.Helpers.SetComPort(printer.ComPort); - printerSettings.Save(); + printerSettings.Save(clearBlackListSettings: true); } private static void LoadMaterialSettings(PrinterSettings layeredProfile, Printer printer) diff --git a/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrinterActionsBar.cs b/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrinterActionsBar.cs index 423cdf846..a114c3a59 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrinterActionsBar.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrinterActionsBar.cs @@ -333,7 +333,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } printer.Settings.ClearUserOverrides(); - printer.Settings.Save(); + printer.Settings.Save(clearBlackListSettings: true); if (onlyReloadSliceSettings) { diff --git a/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs b/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs index 291ea7f91..330479de4 100644 --- a/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs +++ b/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs @@ -218,7 +218,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration } } - if(orResult == false) + if (orResult == false) { return false; } @@ -381,7 +381,17 @@ namespace MatterHackers.MatterControl.SlicerConfiguration [JsonIgnore] public bool AutoSave { get; set; } = true; - public void Save() + Dictionary blackListSettings = new Dictionary() + { + ["spiral_vase"] = "0", + ["bottom_clip_amount"] = "0", + ["layer_to_pause"] = "", + ["print_leveling_data"] = "", + ["print_leveling_enabled"] = "0", + ["probe_has_been_calibrated"] = "0" + }; + + public void Save(bool clearBlackListSettings = false) { // Skip save operation if on the EmptyProfile if (!this.PrinterSelected || !this.AutoSave) @@ -389,6 +399,14 @@ namespace MatterHackers.MatterControl.SlicerConfiguration return; } + if(clearBlackListSettings) + { + foreach(var vkp in blackListSettings) + { + SetValue(vkp.Key, vkp.Value); + } + } + Save(DocumentPath); } diff --git a/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs b/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs index a910ac9c3..9d0f34972 100644 --- a/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs +++ b/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs @@ -459,7 +459,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration printerInfo.Model = printerSettings.OemLayer[SettingsKey.model] ?? "Other"; } - printerSettings.Save(); + printerSettings.Save(clearBlackListSettings: true); importSuccessful = true; } break; @@ -508,12 +508,13 @@ namespace MatterHackers.MatterControl.SlicerConfiguration printerSettings.Helpers.SetName(printerInfo.Name); - printerSettings.Save(); + printerSettings.Save(clearBlackListSettings: true); importSuccessful = true; } } break; } + return importSuccessful; } @@ -548,7 +549,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration }); // Persist changes to PrinterSettings - must come after adding to Profiles above - printerSettings.Save(); + printerSettings.Save(clearBlackListSettings: true); // Set as active profile ProfileManager.Instance.LastProfileID = guid; diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 2ee11e09e..baad05282 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 2ee11e09eeaf6fb5c62a70cbb6bd0ad7cfaa1c68 +Subproject commit baad05282aaa163abd4375b563952b698bb5c8ed From 5bee4a584f615032798bdf7f918ae384ddd21a9e Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Wed, 24 Oct 2018 18:43:27 -0700 Subject: [PATCH 2/2] Better logic of when to run probe calibration --- .../PrintLeveling/ProbeCalibrationWizard.cs | 11 ++++++++++- .../SlicerConfiguration/Settings/PrinterSettings.cs | 8 ++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/MatterControlLib/ConfigurationPage/PrintLeveling/ProbeCalibrationWizard.cs b/MatterControlLib/ConfigurationPage/PrintLeveling/ProbeCalibrationWizard.cs index fe48c23c0..dad690f4c 100644 --- a/MatterControlLib/ConfigurationPage/PrintLeveling/ProbeCalibrationWizard.cs +++ b/MatterControlLib/ConfigurationPage/PrintLeveling/ProbeCalibrationWizard.cs @@ -44,8 +44,17 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling public static bool UsingZProbe(PrinterConfig printer) { + PrintLevelingData levelingData = printer.Settings.Helpers.GetPrintLevelingData(); + + var required = printer.Settings.GetValue(SettingsKey.print_leveling_required_to_print); + if (required && levelingData == null) + { + // need but don't have data + return true; + } + // we have a probe that we are using and we have not done leveling yet - return printer.Settings.GetValue(SettingsKey.print_leveling_enabled) + return (required || printer.Settings.GetValue(SettingsKey.print_leveling_enabled)) && printer.Settings.GetValue(SettingsKey.has_z_probe) && printer.Settings.GetValue(SettingsKey.use_z_probe); } diff --git a/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs b/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs index 330479de4..a5e907d6f 100644 --- a/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs +++ b/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs @@ -401,9 +401,13 @@ namespace MatterHackers.MatterControl.SlicerConfiguration if(clearBlackListSettings) { - foreach(var vkp in blackListSettings) + foreach(var kvp in blackListSettings) { - SetValue(vkp.Key, vkp.Value); + if (UserLayer.ContainsKey(kvp.Key)) + { + UserLayer.Remove(kvp.Key); + } + OemLayer[kvp.Key] = kvp.Value; } }