mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-13 03:47:40 +02:00
ada646f92d
- **(Add) PrusaSlicer printers:** - Creality HALOT-MAX CL-133 - Nova3D Elfin2 - Nova3D Elfin2 Mono SE - Nova3D Elfin3 Mini - Nova3D Bene4 - Nova3D Bene5 - Nova3D Whale - Nova3D Whale2 - **About box:** - (Add) Runtime information - (Fix) Limit panels width and height to not overgrow - **(Fix) macOS:** - macOS version auto-upgrade (Will only work on future releases and if running v2.16.0 or greater) - Demo file not loading - Auto disable windows scaling factor when on Monjave or greater on new instalations - (Add) Tool: Raise platform on print finish - (Add) CXDLP: Support for Halot MAX CL-133 - (Improvement) Tools: Better handling/validation of tools that are unable to run with abstraction - (Improvement) CWS: Simplify filenames inside the archive - (Upgrade) EmguCV from 4.5.2 to 4.5.3 - (Change) Allow to set layer `LightPWM` to 0 - (Fix) Arrange dropdown arrow from layer image save icon to be at center
67 lines
2.4 KiB
C#
67 lines
2.4 KiB
C#
using Avalonia.Controls;
|
|
using Avalonia.Markup.Xaml;
|
|
using UVtools.Core;
|
|
using UVtools.Core.FileFormats;
|
|
using UVtools.Core.Operations;
|
|
using UVtools.WPF.Extensions;
|
|
using UVtools.WPF.Windows;
|
|
|
|
namespace UVtools.WPF.Controls.Tools
|
|
{
|
|
public class ToolDynamicLayerHeightControl : ToolControl
|
|
{
|
|
public OperationDynamicLayerHeight Operation => BaseOperation as OperationDynamicLayerHeight;
|
|
|
|
public double LayerHeight => SlicerFile.LayerHeight;
|
|
public double MinimumLayerHeight => Layer.RoundHeight(SlicerFile.LayerHeight * 2);
|
|
public double MaximumLayerHeight => FileFormat.MaximumLayerHeight;
|
|
|
|
private readonly DataGrid ExposureTable;
|
|
|
|
public ToolDynamicLayerHeightControl()
|
|
{
|
|
BaseOperation = new OperationDynamicLayerHeight(SlicerFile);
|
|
if (!ValidateSpawn()) return;
|
|
|
|
if (!SlicerFile.HaveLayerParameterModifier(FileFormat.PrintParameterModifier.ExposureTime))
|
|
{
|
|
App.MainWindow.MessageBoxWaring($"Your printer seems to not support this tool, still you are allowed to run it for analyze, packing layers or simulation.\n" +
|
|
$"Do not print this file after run this tool on a not compatible printer, it will result in malformed model and height violation.\n" +
|
|
$"Run this at your own risk!",
|
|
BaseOperation.Title).ConfigureAwait(false);
|
|
}
|
|
|
|
|
|
InitializeComponent();
|
|
|
|
ExposureTable = this.FindControl<DataGrid>("ExposureTable");
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
|
|
|
|
public override void Callback(ToolWindow.Callbacks callback)
|
|
{
|
|
if (SlicerFile is null) return;
|
|
switch (callback)
|
|
{
|
|
case ToolWindow.Callbacks.Init:
|
|
case ToolWindow.Callbacks.Loaded:
|
|
/*Operation.PropertyChanged += (sender, e) =>
|
|
{
|
|
if (e.PropertyName.Equals(nameof(Operation.CacheObjectCount)))
|
|
{
|
|
RaisePropertyChanged(nameof(CacheRAMUsed));
|
|
return;
|
|
}
|
|
};*/
|
|
Operation.RebuildAutoExposureTable();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|