diff options
author | Tiago Conceição <Tiago_caza@hotmail.com> | 2021-04-14 08:08:37 +0300 |
---|---|---|
committer | Tiago Conceição <Tiago_caza@hotmail.com> | 2021-04-14 08:08:37 +0300 |
commit | 4dae750e83987fde8b34087d26fc75407e88f55a (patch) | |
tree | 83abb7b90ea50e4402ba3b59955fa76f695d07cc /UVtools.WPF | |
parent | f914d77538c693155de9333d746d29d6c9958178 (diff) |
v2.9.0v2.9.0
* **File formats:**
* Add Voxeldance Tango (VDT)
* Add Makerbase MKS-DLP (MDLPv1)
* Add GR1 Workshop (GR1)
* Add Creality CXDLP (CXDLP)
* When decoding a file and have a empty resolution (Width: 0 or Height: 0) it will auto fix it by get and set the first layer image resolution to the file
* Fix when decoding a file it was already set to require a full encode, preventing fast saves on print parameters edits
* **GUI:**
* When file resolution dismatch from layer resolution, it is now possible to auto fix it by set the layer resolution to the file
* When loading a file with auto scan for issues disabled it will force auto scan for issues types that are instant to check (print height and empty layers), if any exists it will auto select issues tab
* **(Add) PrusaSlicer printers:**
* Creality HALOT-SKY CL-89
* Creality HALOT-SKY CL-60
* (Improvement) Tool - Adjust layer height: Improve the performance when multiplying layers / go with higher layer height
* (Fix) PrusaSlicer Printer - Wanhao D7: Change the auto convertion format from .zip to .xml.cws
Diffstat (limited to 'UVtools.WPF')
-rw-r--r-- | UVtools.WPF/MainWindow.Issues.cs | 39 | ||||
-rw-r--r-- | UVtools.WPF/MainWindow.axaml.cs | 31 | ||||
-rw-r--r-- | UVtools.WPF/UVtools.WPF.csproj | 2 |
3 files changed, 51 insertions, 21 deletions
diff --git a/UVtools.WPF/MainWindow.Issues.cs b/UVtools.WPF/MainWindow.Issues.cs index 31668ef..669b180 100644 --- a/UVtools.WPF/MainWindow.Issues.cs +++ b/UVtools.WPF/MainWindow.Issues.cs @@ -531,11 +531,12 @@ namespace UVtools.WPF } } - public IslandDetectionConfiguration GetIslandDetectionConfiguration() + + public IslandDetectionConfiguration GetIslandDetectionConfiguration(bool enable) { - return new IslandDetectionConfiguration + return new() { - Enabled = Settings.Issues.ComputeIslands, + Enabled = enable, EnhancedDetection = Settings.Issues.IslandEnhancedDetection, AllowDiagonalBonds = Settings.Issues.IslandAllowDiagonalBonds, BinaryThreshold = Settings.Issues.IslandBinaryThreshold, @@ -546,34 +547,38 @@ namespace UVtools.WPF RequiredPixelBrightnessToSupport = Settings.Issues.IslandRequiredPixelBrightnessToSupport }; } + public IslandDetectionConfiguration GetIslandDetectionConfiguration() => GetIslandDetectionConfiguration(Settings.Issues.ComputeIslands); - public OverhangDetectionConfiguration GetOverhangDetectionConfiguration() + public OverhangDetectionConfiguration GetOverhangDetectionConfiguration(bool enable) { - return new OverhangDetectionConfiguration + return new() { - Enabled = Settings.Issues.ComputeOverhangs, + Enabled = enable, IndependentFromIslands = Settings.Issues.OverhangIndependentFromIslands, ErodeIterations = Settings.Issues.OverhangErodeIterations, }; } + public OverhangDetectionConfiguration GetOverhangDetectionConfiguration() => GetOverhangDetectionConfiguration(Settings.Issues.ComputeOverhangs); + - public ResinTrapDetectionConfiguration GetResinTrapDetectionConfiguration() + public ResinTrapDetectionConfiguration GetResinTrapDetectionConfiguration(bool enable) { - return new ResinTrapDetectionConfiguration + return new() { - Enabled = Settings.Issues.ComputeResinTraps, + Enabled = enable, BinaryThreshold = Settings.Issues.ResinTrapBinaryThreshold, RequiredAreaToProcessCheck = Settings.Issues.ResinTrapRequiredAreaToProcessCheck, RequiredBlackPixelsToDrain = Settings.Issues.ResinTrapRequiredBlackPixelsToDrain, MaximumPixelBrightnessToDrain = Settings.Issues.ResinTrapMaximumPixelBrightnessToDrain }; } + public ResinTrapDetectionConfiguration GetResinTrapDetectionConfiguration() => GetResinTrapDetectionConfiguration(Settings.Issues.ComputeResinTraps); - public TouchingBoundDetectionConfiguration GetTouchingBoundsDetectionConfiguration() + public TouchingBoundDetectionConfiguration GetTouchingBoundsDetectionConfiguration(bool enable) { - return new TouchingBoundDetectionConfiguration + return new() { - Enabled = Settings.Issues.ComputeTouchingBounds, + Enabled = enable, MinimumPixelBrightness = UserSettings.Instance.Issues.TouchingBoundMinimumPixelBrightness, MarginLeft = UserSettings.Instance.Issues.TouchingBoundMarginLeft, MarginTop = UserSettings.Instance.Issues.TouchingBoundMarginTop, @@ -581,15 +586,19 @@ namespace UVtools.WPF MarginBottom = UserSettings.Instance.Issues.TouchingBoundMarginBottom, }; } + public TouchingBoundDetectionConfiguration GetTouchingBoundsDetectionConfiguration() => GetTouchingBoundsDetectionConfiguration(Settings.Issues.ComputeTouchingBounds); - public PrintHeightDetectionConfiguration GetPrintHeightDetectionConfiguration() + + public PrintHeightDetectionConfiguration GetPrintHeightDetectionConfiguration(bool enable) { - return new PrintHeightDetectionConfiguration + return new () { - Enabled = Settings.Issues.ComputePrintHeight, + Enabled = enable, Offset = (float) Settings.Issues.PrintHeightOffset }; } + public PrintHeightDetectionConfiguration GetPrintHeightDetectionConfiguration() => GetPrintHeightDetectionConfiguration(Settings.Issues.ComputePrintHeight); + #endregion } diff --git a/UVtools.WPF/MainWindow.axaml.cs b/UVtools.WPF/MainWindow.axaml.cs index 5e4b3d6..8ed3006 100644 --- a/UVtools.WPF/MainWindow.axaml.cs +++ b/UVtools.WPF/MainWindow.axaml.cs @@ -1140,11 +1140,18 @@ namespace UVtools.WPF if (mat.Size != SlicerFile.Resolution) { - await this.MessageBoxWaring($"Layer image resolution of {mat.Size} mismatch with printer resolution of {SlicerFile.Resolution}.\n" + - "Printing this file can lead to problems or malformed model, please verify your slicer printer settings;\n" + - "Processing this file with some of the tools can lead to program crash or misfunction;\n" + - "If you used PrusaSlicer to slice this file, you must use it with compatible UVtools printer profiles (Help - Install profiles into PrusaSlicer).", - "File and layer resolution mismatch!"); + var result = await this.MessageBoxWaring($"Layer image resolution of {mat.Size} mismatch with printer resolution of {SlicerFile.Resolution}.\n" + + "1) Printing this file can lead to problems or malformed model, please verify your slicer printer settings;\n" + + "2) Processing this file with some of the tools can lead to program crash or misfunction;\n" + + "3) If you used PrusaSlicer to slice this file, you must use it with compatible UVtools printer profiles (Help - Install profiles into PrusaSlicer).\n\n" + + "Click 'Yes' to auto fix and set the file resolution with the layer resolution, but only use this option if you are sure it's ok to!\n" + + "Click 'No' to continue as it is and ignore this warning, you can still repair issues and use some of the tools.", + "File and layer resolution mismatch!", ButtonEnum.YesNo); + if(result == ButtonResult.Yes) + { + SlicerFile.Resolution = mat.Size; + RaisePropertyChanged(nameof(LayerResolutionStr)); + } } if (Settings.Issues.ComputeIssuesOnLoad) @@ -1158,6 +1165,20 @@ namespace UVtools.WPF await RunOperation(ToolRepairLayersControl.GetOperationRepairLayers()); } } + else + { + await ComputeIssues( + GetIslandDetectionConfiguration(false), + GetOverhangDetectionConfiguration(false), + GetResinTrapDetectionConfiguration(false), + GetTouchingBoundsDetectionConfiguration(false), + GetPrintHeightDetectionConfiguration(true), + true); + if (Issues.Count > 0) + { + SelectedTabItem = TabIssues; + } + } } private async void ShowProgressWindow(string title) diff --git a/UVtools.WPF/UVtools.WPF.csproj b/UVtools.WPF/UVtools.WPF.csproj index 14e4907..524c96d 100644 --- a/UVtools.WPF/UVtools.WPF.csproj +++ b/UVtools.WPF/UVtools.WPF.csproj @@ -12,7 +12,7 @@ <PackageLicenseFile>LICENSE</PackageLicenseFile> <RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl> <RepositoryType>Git</RepositoryType> - <Version>2.8.4</Version> + <Version>2.9.0</Version> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> |