mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-08 17:42:31 +02:00
Layout & Overlap resin trap
This commit is contained in:
@@ -1228,9 +1228,9 @@ namespace UVtools.Core
|
||||
{
|
||||
matCache[i] = this[i].LayerMat;
|
||||
matTargetCache[i] = new Mat(matCache[i], BoundingRectangle);
|
||||
if (resinTrapConfig.BinaryThreshold > 0)
|
||||
if (resinTrapConfig.MaximumPixelBrightnessToDrain > 0)
|
||||
{
|
||||
CvInvoke.Threshold(matTargetCache[i], matTargetCache[i], resinTrapConfig.BinaryThreshold, byte.MaxValue, ThresholdType.Binary);
|
||||
CvInvoke.Threshold(matTargetCache[i], matTargetCache[i], resinTrapConfig.MaximumPixelBrightnessToDrain, byte.MaxValue, ThresholdType.Binary);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1349,7 +1349,7 @@ namespace UVtools.Core
|
||||
currentAirMap = null;
|
||||
}
|
||||
|
||||
for (var layerIndex = resinTraps.Length - 1; layerIndex >= resinTrapConfig.StartLayerIndex; layerIndex--)
|
||||
for (int layerIndex = (int)(LayerCount - 1); layerIndex >= resinTrapConfig.StartLayerIndex; layerIndex--)
|
||||
{
|
||||
if (progress.Token.IsCancellationRequested) return result.OrderBy(issue => issue.Type).ThenBy(issue => issue.LayerIndex).ThenBy(issue => issue.Area).ToList();
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@ using Emgu.CV.CvEnum;
|
||||
using Emgu.CV.Structure;
|
||||
using UVtools.Core.Extensions;
|
||||
using UVtools.Core.FileFormats;
|
||||
using UVtools.Core.Objects;
|
||||
|
||||
namespace UVtools.Core.Operations
|
||||
{
|
||||
|
||||
@@ -20,6 +20,13 @@ namespace UVtools.Core.Operations
|
||||
public sealed class OperationDynamicLifts : Operation
|
||||
{
|
||||
#region Enums
|
||||
|
||||
public enum DynamicLiftsSetMethod : byte
|
||||
{
|
||||
Traditional,
|
||||
FullRange
|
||||
}
|
||||
|
||||
public enum DynamicLiftsLightOffDelaySetMode : byte
|
||||
{
|
||||
[Description("Set the light-off with an extra delay")]
|
||||
@@ -34,6 +41,8 @@ namespace UVtools.Core.Operations
|
||||
#endregion
|
||||
|
||||
#region Members
|
||||
|
||||
private DynamicLiftsSetMethod _setMethod;
|
||||
private float _minBottomLiftHeight;
|
||||
private float _maxBottomLiftHeight;
|
||||
private float _minLiftHeight;
|
||||
@@ -115,7 +124,8 @@ namespace UVtools.Core.Operations
|
||||
public override string ToString()
|
||||
{
|
||||
var result =
|
||||
$"[Bottom height: {_minBottomLiftHeight}/{_maxBottomLiftHeight}mm]" +
|
||||
$"[Method: {_setMethod}]" +
|
||||
$" [Bottom height: {_minBottomLiftHeight}/{_maxBottomLiftHeight}mm]" +
|
||||
$" [Bottom speed: {_minBottomLiftSpeed}/{_maxBottomLiftSpeed}mm/min]" +
|
||||
$" [Height: {_minLiftHeight}/{_maxLiftHeight}mm]" +
|
||||
$" [Speed: {_minLiftSpeed}/{_maxLiftSpeed}mm/min]" +
|
||||
@@ -129,6 +139,12 @@ namespace UVtools.Core.Operations
|
||||
|
||||
#region Properties
|
||||
|
||||
public DynamicLiftsSetMethod SetMethod
|
||||
{
|
||||
get => _setMethod;
|
||||
set => RaiseAndSetIfChanged(ref _setMethod, value);
|
||||
}
|
||||
|
||||
public float MinBottomLiftHeight
|
||||
{
|
||||
get => _minBottomLiftHeight;
|
||||
@@ -296,10 +312,10 @@ namespace UVtools.Core.Operations
|
||||
{
|
||||
}
|
||||
|
||||
float liftHeight;
|
||||
float liftSpeed;
|
||||
float liftHeight = 0;
|
||||
float liftSpeed = 0;
|
||||
|
||||
uint max = (from layer in SlicerFile where !layer.IsBottomLayer where !layer.IsEmpty where layer.Index >= LayerIndexStart where layer.Index <= LayerIndexEnd select layer).Aggregate<Layer, uint>(0, (current, layer) => Math.Max(layer.NonZeroPixelCount, current));
|
||||
//uint max = (from layer in SlicerFile where !layer.IsBottomLayer where !layer.IsEmpty where layer.Index >= LayerIndexStart where layer.Index <= LayerIndexEnd select layer).Aggregate<Layer, uint>(0, (current, layer) => Math.Max(layer.NonZeroPixelCount, current));
|
||||
|
||||
for (uint layerIndex = LayerIndexStart; layerIndex <= LayerIndexEnd; layerIndex++)
|
||||
{
|
||||
@@ -316,13 +332,34 @@ namespace UVtools.Core.Operations
|
||||
|
||||
if (layer.IsBottomLayer)
|
||||
{
|
||||
liftHeight = (_maxBottomLiftHeight * layer.NonZeroPixelCount / maxBottomPixels).Clamp(_minBottomLiftHeight, _maxBottomLiftHeight);
|
||||
liftSpeed = (_maxBottomLiftSpeed - (_maxBottomLiftSpeed * layer.NonZeroPixelCount / maxNormalPixels)).Clamp(_minBottomLiftSpeed, _maxBottomLiftSpeed);
|
||||
switch (_setMethod)
|
||||
{
|
||||
case DynamicLiftsSetMethod.Traditional:
|
||||
liftHeight = (_maxBottomLiftHeight * layer.NonZeroPixelCount / maxBottomPixels).Clamp(_minBottomLiftHeight, _maxBottomLiftHeight);
|
||||
liftSpeed = (_maxBottomLiftSpeed - (_maxBottomLiftSpeed * layer.NonZeroPixelCount / maxBottomPixels)).Clamp(_minBottomLiftSpeed, _maxBottomLiftSpeed);
|
||||
break;
|
||||
case DynamicLiftsSetMethod.FullRange:
|
||||
var pixelRatio = (layer.NonZeroPixelCount - minBottomPixels) / (float)(maxBottomPixels - minBottomPixels); // pixel_ratio is between 0 and 1
|
||||
liftHeight = (_minBottomLiftHeight + ((_maxBottomLiftHeight - _minBottomLiftHeight) * pixelRatio)).Clamp(_minBottomLiftHeight, _maxBottomLiftHeight);
|
||||
liftSpeed = (_maxBottomLiftSpeed - ((_maxBottomLiftSpeed - _minBottomLiftSpeed) * pixelRatio)).Clamp(_minBottomLiftSpeed, _maxBottomLiftSpeed);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
liftHeight = (_maxLiftHeight * layer.NonZeroPixelCount / maxNormalPixels).Clamp(_minLiftHeight, _maxLiftHeight);
|
||||
liftSpeed = (_maxLiftSpeed - (_maxLiftSpeed * layer.NonZeroPixelCount / maxNormalPixels)).Clamp(_minLiftSpeed, _maxLiftSpeed);
|
||||
switch (_setMethod)
|
||||
{
|
||||
case DynamicLiftsSetMethod.Traditional:
|
||||
liftHeight = (_maxLiftHeight * layer.NonZeroPixelCount / maxNormalPixels).Clamp(_minLiftHeight, _maxLiftHeight);
|
||||
liftSpeed = (_maxLiftSpeed - (_maxLiftSpeed * layer.NonZeroPixelCount / maxNormalPixels)).Clamp(_minLiftSpeed, _maxLiftSpeed);
|
||||
break;
|
||||
case DynamicLiftsSetMethod.FullRange:
|
||||
var pixelRatio = (layer.NonZeroPixelCount - minNormalPixels) / (float)(maxNormalPixels - minNormalPixels); // pixel_ratio is between 0 and 1
|
||||
liftHeight = (_minLiftHeight + ((_maxLiftHeight - _minLiftHeight) * pixelRatio)).Clamp(_minLiftHeight, _maxLiftHeight);
|
||||
liftSpeed = (_maxLiftSpeed - ((_maxLiftSpeed - _minLiftSpeed) * pixelRatio)).Clamp(_minLiftSpeed, _maxLiftSpeed);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
layer.RetractHeight2 = 0;
|
||||
@@ -365,9 +402,10 @@ namespace UVtools.Core.Operations
|
||||
|
||||
#region Equality
|
||||
|
||||
|
||||
private bool Equals(OperationDynamicLifts other)
|
||||
{
|
||||
return _minBottomLiftHeight.Equals(other._minBottomLiftHeight) && _maxBottomLiftHeight.Equals(other._maxBottomLiftHeight) && _minLiftHeight.Equals(other._minLiftHeight) && _maxLiftHeight.Equals(other._maxLiftHeight) && _minBottomLiftSpeed.Equals(other._minBottomLiftSpeed) && _maxBottomLiftSpeed.Equals(other._maxBottomLiftSpeed) && _minLiftSpeed.Equals(other._minLiftSpeed) && _maxLiftSpeed.Equals(other._maxLiftSpeed) && _lightOffDelayBottomExtraTime.Equals(other._lightOffDelayBottomExtraTime) && _lightOffDelayExtraTime.Equals(other._lightOffDelayExtraTime) && _lightOffDelaySetMode == other._lightOffDelaySetMode;
|
||||
return _setMethod == other._setMethod && _minBottomLiftHeight.Equals(other._minBottomLiftHeight) && _maxBottomLiftHeight.Equals(other._maxBottomLiftHeight) && _minLiftHeight.Equals(other._minLiftHeight) && _maxLiftHeight.Equals(other._maxLiftHeight) && _minBottomLiftSpeed.Equals(other._minBottomLiftSpeed) && _maxBottomLiftSpeed.Equals(other._maxBottomLiftSpeed) && _minLiftSpeed.Equals(other._minLiftSpeed) && _maxLiftSpeed.Equals(other._maxLiftSpeed) && _lightOffDelayBottomExtraTime.Equals(other._lightOffDelayBottomExtraTime) && _lightOffDelayExtraTime.Equals(other._lightOffDelayExtraTime) && _lightOffDelaySetMode == other._lightOffDelaySetMode;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
@@ -378,6 +416,7 @@ namespace UVtools.Core.Operations
|
||||
public override int GetHashCode()
|
||||
{
|
||||
var hashCode = new HashCode();
|
||||
hashCode.Add((int)_setMethod);
|
||||
hashCode.Add(_minBottomLiftHeight);
|
||||
hashCode.Add(_maxBottomLiftHeight);
|
||||
hashCode.Add(_minLiftHeight);
|
||||
@@ -388,7 +427,7 @@ namespace UVtools.Core.Operations
|
||||
hashCode.Add(_maxLiftSpeed);
|
||||
hashCode.Add(_lightOffDelayBottomExtraTime);
|
||||
hashCode.Add(_lightOffDelayExtraTime);
|
||||
hashCode.Add((int) _lightOffDelaySetMode);
|
||||
hashCode.Add((int)_lightOffDelaySetMode);
|
||||
return hashCode.ToHashCode();
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ namespace UVtools.Core.Operations
|
||||
private ushort _removeIslandsBelowEqualPixelCount = 5;
|
||||
private ushort _removeIslandsRecursiveIterations = 4;
|
||||
private ushort _attachIslandsBelowLayers = 2;
|
||||
private byte _resinTrapsOverlapBy = 5;
|
||||
private uint _gapClosingIterations = 1;
|
||||
private uint _noiseRemovalIterations;
|
||||
|
||||
@@ -111,6 +112,12 @@ namespace UVtools.Core.Operations
|
||||
set => RaiseAndSetIfChanged(ref _attachIslandsBelowLayers, value);
|
||||
}
|
||||
|
||||
public byte ResinTrapsOverlapBy
|
||||
{
|
||||
get => _resinTrapsOverlapBy;
|
||||
set => RaiseAndSetIfChanged(ref _resinTrapsOverlapBy, value);
|
||||
}
|
||||
|
||||
public uint GapClosingIterations
|
||||
{
|
||||
get => _gapClosingIterations;
|
||||
@@ -360,6 +367,10 @@ namespace UVtools.Core.Operations
|
||||
initImage();
|
||||
using var vec = new VectorOfVectorOfPoint(issue.Contours);
|
||||
CvInvoke.DrawContours(image, vec, -1, EmguExtensions.WhiteColor, -1);
|
||||
if (_resinTrapsOverlapBy > 0)
|
||||
{
|
||||
CvInvoke.DrawContours(image, vec, -1, EmguExtensions.WhiteColor, _resinTrapsOverlapBy * 2 + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
|
||||
<PackageProjectUrl>https://github.com/sn4k3/UVtools</PackageProjectUrl>
|
||||
<Description>MSLA/DLP, file analysis, calibration, repair, conversion and manipulation</Description>
|
||||
<Version>2.21.2</Version>
|
||||
<Version>2.22.0</Version>
|
||||
<Copyright>Copyright © 2020 PTRTECH</Copyright>
|
||||
<PackageIcon>UVtools.png</PackageIcon>
|
||||
<Platforms>AnyCPU;x64</Platforms>
|
||||
|
||||
@@ -29,14 +29,165 @@
|
||||
<Setter Property="AcceptsTab" Value="True" />
|
||||
</Style>
|
||||
|
||||
<Style Selector="TextBox.NumericUpDownValueLabel">
|
||||
|
||||
<Setter Property="IsEnabled" Value="False" />
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="CaretBrush" Value="Transparent" />
|
||||
<Setter Property="BorderBrush" Value="Transparent" />
|
||||
<Setter Property="IsReadOnly" Value="True" />
|
||||
<Setter Property="MinWidth" Value="40" />
|
||||
|
||||
<Setter Property="CornerRadius" Value="0" />
|
||||
|
||||
<Setter Property="VerticalAlignment" Value="Stretch" />
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch" />
|
||||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||||
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
||||
<Setter Property="Padding" Value="5,0" />
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_percent /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="%" ToolTip.Tip="Percent" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_deg /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="º" ToolTip.Tip="Degree(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_s /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="s" ToolTip.Tip="Second(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_mm /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="mm" ToolTip.Tip="Millimeter(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_mm2 /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="mm²" ToolTip.Tip="Square Millimeter(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_mm3 /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="mm³" ToolTip.Tip="Cubic Millimeter(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_mmmin /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="mm/min" ToolTip.Tip="Millimeters per minute" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_px /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="px" ToolTip.Tip="Pixel(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_px2 /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="px²" ToolTip.Tip="Squared Pixel(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_px3 /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="px³" ToolTip.Tip="Cubic Pixel(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_sun /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="☀" ToolTip.Tip="Brightness" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_GB /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="GB" ToolTip.Tip="Gigabyte(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_g /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="g" ToolTip.Tip="Gram(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_gml /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="g/ml" ToolTip.Tip="Grams per milliliter" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel_ml /template/ TextBox">
|
||||
<Setter Property="InnerRightContent">
|
||||
<Template>
|
||||
<TextBox Classes="NumericUpDownValueLabel" Text="ml" ToolTip.Tip="Milliliter(s)" />
|
||||
</Template>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
|
||||
<Style Selector="NumericUpDown">
|
||||
<Setter Property="MinWidth" Value="130"></Setter>
|
||||
<Setter Property="ClipValueToMinMax" Value="True"></Setter>
|
||||
<Setter Property="MinWidth" Value="130"/>
|
||||
<Setter Property="ClipValueToMinMax" Value="True"/>
|
||||
</Style>
|
||||
|
||||
<Style Selector="NumericUpDown.ValueLabel">
|
||||
<Setter Property="MinWidth" Value="180"/>
|
||||
</Style>
|
||||
|
||||
<Style Selector="TabControl">
|
||||
<Setter Property="Padding" Value="0"></Setter>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
</Style>
|
||||
|
||||
<Style Selector="Expander /template/ ToggleButton">
|
||||
|
||||
@@ -8,23 +8,19 @@
|
||||
<StackPanel Spacing="10">
|
||||
<Grid
|
||||
RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,150,5,Auto,20,Auto,10,150,5,Auto"
|
||||
ColumnDefinitions="Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto"
|
||||
>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Layer height:"/>
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="0.01"
|
||||
Minimum="0.01"
|
||||
Maximum="0.30"
|
||||
FormatString="F3"
|
||||
Value="{Binding Operation.LayerHeight}"
|
||||
/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
Value="{Binding Operation.LayerHeight}"/>
|
||||
|
||||
<StackPanel Grid.Row="0" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
@@ -59,8 +55,7 @@
|
||||
Increment="1"
|
||||
Minimum="1"
|
||||
Maximum="1000"
|
||||
Value="{Binding Operation.BottomLayers}"
|
||||
/>
|
||||
Value="{Binding Operation.BottomLayers}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="{Binding Operation.BottomHeight, StringFormat=\{0:F3\}mm}"/>
|
||||
@@ -70,7 +65,6 @@
|
||||
ToolTip.Tip="Number of layers at normal exposure between bottom and normal layers"
|
||||
Text="Interface layers:"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="8"
|
||||
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="1000"
|
||||
@@ -83,7 +77,6 @@
|
||||
VerticalAlignment="Center"
|
||||
Text="Normal layers:"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
|
||||
Increment="1"
|
||||
Minimum="1"
|
||||
Maximum="1000"
|
||||
@@ -96,56 +89,43 @@
|
||||
VerticalAlignment="Center"
|
||||
Text="Bottom exposure:"/>
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Increment="0.5"
|
||||
Minimum="0.1"
|
||||
Maximum="200"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.BottomExposure}"/>
|
||||
<TextBlock Grid.Row="6" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Normal exposure:"/>
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="8"
|
||||
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Increment="0.5"
|
||||
Minimum="0.1"
|
||||
Maximum="200"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.NormalExposure}"/>
|
||||
<TextBlock Grid.Row="6" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Outer margin:"/>
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="10000"
|
||||
Value="{Binding Operation.OuterMargin}"/>
|
||||
<TextBlock Grid.Row="8" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Inner margin:"/>
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="8"
|
||||
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="10000"
|
||||
Value="{Binding Operation.InnerMargin}"/>
|
||||
<TextBlock Grid.Row="8" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
|
||||
<CheckBox Grid.Row="10" Grid.Column="2" Grid.ColumnSpan="4"
|
||||
VerticalAlignment="Center"
|
||||
@@ -175,14 +155,14 @@
|
||||
<Grid
|
||||
Margin="0,10,0,0"
|
||||
RowDefinitions="Auto,0,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,Auto,5,Auto,5,Auto,5,Auto,20,Auto,10,Auto">
|
||||
ColumnDefinitions="Auto,10,Auto,5,Auto,5,Auto,10,Auto,10,Auto">
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Brightness range:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Increment="1"
|
||||
Minimum="1"
|
||||
Maximum="254"
|
||||
@@ -195,18 +175,18 @@
|
||||
Text="-"/>
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="6"
|
||||
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Increment="1"
|
||||
Minimum="2"
|
||||
Maximum="255"
|
||||
Value="{Binding Operation.EndBrightness}"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="10"
|
||||
<TextBlock Grid.Row="0" Grid.Column="8"
|
||||
VerticalAlignment="Center"
|
||||
Text="Step increment(s):"/>
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="12"
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="10"
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Increment="1"
|
||||
Minimum="2"
|
||||
Maximum="254"
|
||||
@@ -228,72 +208,64 @@
|
||||
Text="Center hole diameter:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Increment="1"
|
||||
Minimum="2"
|
||||
Maximum="10000"
|
||||
IsEnabled="{Binding Operation.EnableCenterHoleRelief}"
|
||||
Value="{Binding Operation.CenterHoleDiameter}"/>
|
||||
|
||||
<CheckBox Grid.Row="4" Grid.Column="6" Grid.ColumnSpan="7"
|
||||
<CheckBox Grid.Row="4" Grid.Column="6" Grid.ColumnSpan="5"
|
||||
VerticalAlignment="Center"
|
||||
Margin="10,0,0,0"
|
||||
Content="Enable center hole relief"
|
||||
IsChecked="{Binding Operation.EnableCenterHoleRelief}"/>
|
||||
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
<StackPanel Grid.Row="6" Grid.Column="2" Grid.ColumnSpan="9"
|
||||
Orientation="Horizontal" Spacing="20">
|
||||
<CheckBox VerticalAlignment="Center"
|
||||
ToolTip.Tip="Convert the raw brightness text value to exposure time in seconds and intrude on divisions"
|
||||
Content="Convert brightness to exposure time"
|
||||
IsChecked="{Binding Operation.ConvertBrightnessToExposureTime}"/>
|
||||
|
||||
<CheckBox VerticalAlignment="Center"
|
||||
Content="Enable division lines"
|
||||
IsChecked="{Binding Operation.EnableLineDivisions}"/>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
<CheckBox Grid.Row="6" Grid.Column="2" Grid.ColumnSpan="6"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Convert the raw brightness text value to exposure time in seconds and intrude on divisions"
|
||||
Content="Convert brightness to exposure time"
|
||||
IsChecked="{Binding Operation.ConvertBrightnessToExposureTime}"/>
|
||||
|
||||
<CheckBox Grid.Row="6" Grid.Column="10" Grid.ColumnSpan="3"
|
||||
VerticalAlignment="Center"
|
||||
Content="Enable division lines"
|
||||
IsChecked="{Binding Operation.EnableLineDivisions}"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
||||
Text="Division thickness:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
||||
Value="{Binding Operation.LineDivisionThickness}"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
||||
Text="px"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right"
|
||||
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
||||
Text="Div. brightness:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="9"
|
||||
Grid.ColumnSpan="2"
|
||||
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
<StackPanel Grid.Row="8" Grid.Column="6" Grid.ColumnSpan="5"
|
||||
Spacing="10" Orientation="Horizontal">
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
||||
Value="{Binding Operation.LineDivisionBrightness}"/>
|
||||
Text="Div. brightness:"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="12"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
||||
Text="{Binding Operation.LineDivisionBrightnessPercent, StringFormat=(\{0\}%)}"/>
|
||||
<NumericUpDown Classes="ValueLabel ValueLabel_sun"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
||||
Value="{Binding Operation.LineDivisionBrightness}"/>
|
||||
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
||||
Text="{Binding Operation.LineDivisionBrightnessPercent, StringFormat=(\{0\}%)}"/>
|
||||
</StackPanel>
|
||||
|
||||
<TextBlock Grid.Row="10" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
@@ -301,15 +273,12 @@
|
||||
Text="X text offset:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="10" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Increment="1"
|
||||
Minimum="-10000"
|
||||
Maximum="10000"
|
||||
Value="{Binding Operation.TextXOffset}"/>
|
||||
|
||||
<TextBlock Grid.Row="10" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
</Grid>
|
||||
</Expander>
|
||||
|
||||
|
||||
@@ -6,23 +6,19 @@
|
||||
x:Class="UVtools.WPF.Controls.Calibrators.CalibrateLiftHeightControl">
|
||||
<Grid ColumnDefinitions="Auto,10,350">
|
||||
<StackPanel Spacing="10">
|
||||
<Grid
|
||||
RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,150,5,Auto,20,Auto,10,150,5,Auto"
|
||||
>
|
||||
<Grid RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,200,5,Auto,20,Auto,10,200,5,Auto">
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Layer height:"/>
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="0.01"
|
||||
Minimum="0.01"
|
||||
Maximum="0.30"
|
||||
FormatString="F3"
|
||||
Value="{Binding Operation.LayerHeight}"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="6"
|
||||
@@ -72,119 +68,99 @@
|
||||
VerticalAlignment="Center"
|
||||
Text="Bottom exposure:"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Increment="0.5"
|
||||
Minimum="0.1"
|
||||
Maximum="200"
|
||||
Value="{Binding Operation.BottomExposure}"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Normal exposure:"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="8"
|
||||
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Increment="0.5"
|
||||
Minimum="0.1"
|
||||
Maximum="200"
|
||||
Value="{Binding Operation.NormalExposure}"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Bottom lift height:"/>
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="0.5"
|
||||
Minimum="0.5"
|
||||
Maximum="50"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.BottomLiftHeight}"/>
|
||||
<TextBlock Grid.Row="6" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Normal lift height:"/>
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="8"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="0.5"
|
||||
Minimum="0.5"
|
||||
Maximum="50"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.LiftHeight}"/>
|
||||
<TextBlock Grid.Row="6" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Bottom lift speed:"/>
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mmmin"
|
||||
Increment="0.5"
|
||||
Minimum="0.5"
|
||||
Maximum="1000"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.BottomLiftSpeed}"/>
|
||||
<TextBlock Grid.Row="8" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm/min"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Normal lift speed:"/>
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="8"
|
||||
Classes="ValueLabel ValueLabel_mmmin"
|
||||
Increment="0.5"
|
||||
Minimum="0.5"
|
||||
Maximum="1000"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.LiftSpeed}"/>
|
||||
<TextBlock Grid.Row="8" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm/min"/>
|
||||
|
||||
|
||||
<TextBlock Grid.Row="10" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Retract speed:"/>
|
||||
<NumericUpDown Grid.Row="10" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mmmin"
|
||||
Increment="0.5"
|
||||
Minimum="0.5"
|
||||
Maximum="1000"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.RetractSpeed}"/>
|
||||
<TextBlock Grid.Row="10" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm/min"/>
|
||||
|
||||
<TextBlock Grid.Row="12" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Left/right margin:"/>
|
||||
<NumericUpDown Grid.Row="12" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Increment="5"
|
||||
Minimum="0"
|
||||
Maximum="{Binding Operation.MaxLeftRightMargin}"
|
||||
Value="{Binding Operation.LeftRightMargin}"/>
|
||||
<TextBlock Grid.Row="12" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
|
||||
<TextBlock Grid.Row="12" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Top/right margin:"/>
|
||||
<NumericUpDown Grid.Row="12" Grid.Column="8"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Increment="5"
|
||||
Minimum="0"
|
||||
Maximum="{Binding Operation.MaxTopBottomMargin}"
|
||||
Value="{Binding Operation.TopBottomMargin}"/>
|
||||
<TextBlock Grid.Row="12" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
|
||||
<CheckBox Grid.Row="14" Grid.Column="2"
|
||||
Grid.ColumnSpan="9"
|
||||
@@ -196,15 +172,12 @@
|
||||
VerticalAlignment="Center"
|
||||
Text="Decreasing factor:"/>
|
||||
<NumericUpDown Grid.Row="16" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_percent"
|
||||
IsEnabled="{Binding Operation.DecreaseImage}"
|
||||
Increment="1"
|
||||
Minimum="1"
|
||||
Maximum="99"
|
||||
Value="{Binding Operation.DecreaseImageFactor}"/>
|
||||
<TextBlock Grid.Row="16" Grid.Column="4"
|
||||
IsEnabled="{Binding Operation.DecreaseImage}"
|
||||
VerticalAlignment="Center"
|
||||
Text="%"/>
|
||||
|
||||
<TextBlock Grid.Row="16" Grid.Column="6"
|
||||
IsEnabled="{Binding Operation.DecreaseImage}"
|
||||
@@ -212,16 +185,12 @@
|
||||
HorizontalAlignment="Right"
|
||||
Text="Decrease down to:"/>
|
||||
<NumericUpDown Grid.Row="16" Grid.Column="8"
|
||||
Classes="ValueLabel ValueLabel_percent"
|
||||
IsEnabled="{Binding Operation.DecreaseImage}"
|
||||
Increment="1"
|
||||
Minimum="1"
|
||||
Maximum="99"
|
||||
Value="{Binding Operation.MinimumImageFactor}"/>
|
||||
<TextBlock Grid.Row="16" Grid.Column="10"
|
||||
IsEnabled="{Binding Operation.DecreaseImage}"
|
||||
VerticalAlignment="Center"
|
||||
Text="%"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
<Grid
|
||||
RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,170,5,Auto,20,Auto,10,170,5,Auto">
|
||||
ColumnDefinitions="Auto,10,Auto,20,Auto,10,Auto">
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="0" Grid.Column="0"
|
||||
@@ -21,145 +21,112 @@
|
||||
ToolTip.Tip="The printer display width. Required to calculate the pixels per mm."
|
||||
Text="Display width:"/>
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="0.1"
|
||||
Minimum="0"
|
||||
Maximum="10000"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.DisplayWidth}"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="6"
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="The printer display height. Required to calculate the pixels per mm."
|
||||
Text="Display height:"/>
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="8"
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="0.1"
|
||||
Minimum="0"
|
||||
Maximum="10000"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.DisplayHeight}"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Layer height:"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="0.01"
|
||||
Minimum="0.01"
|
||||
Maximum="0.30"
|
||||
FormatString="F3"
|
||||
Value="{Binding Operation.LayerHeight}"
|
||||
/>
|
||||
Value="{Binding Operation.LayerHeight}"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Bottom layers:"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="8"
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="6"
|
||||
Increment="1"
|
||||
Minimum="1"
|
||||
Maximum="1000"
|
||||
Value="{Binding Operation.BottomLayers}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="8"
|
||||
VerticalAlignment="Center"
|
||||
Text="{Binding Operation.BottomHeight, StringFormat=\{0:F3\}mm}"/>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Bottom exposure:"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Increment="0.5"
|
||||
Minimum="0.1"
|
||||
Maximum="200"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.BottomExposure}"/>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Normal exposure:"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="8"
|
||||
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Increment="0.5"
|
||||
Minimum="0.1"
|
||||
Maximum="200"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.NormalExposure}"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Base height:"/>
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="100"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.BaseHeight}"/>
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Base diameter:"/>
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="8"
|
||||
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="1"
|
||||
Minimum="1"
|
||||
Maximum="10000"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.BaseDiameter}"/>
|
||||
<TextBlock Grid.Row="6" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Ceil height:"/>
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="100"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.CeilHeight}"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Body height:"/>
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="8"
|
||||
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="10000"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.BodyHeight}"/>
|
||||
<TextBlock Grid.Row="8" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
<StackPanel Grid.Row="10" Grid.Column="6"
|
||||
<StackPanel Grid.Row="10" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Spacing="0">
|
||||
<TextBlock
|
||||
@@ -170,7 +137,7 @@
|
||||
Text="Total height:"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="10" Grid.Column="8"
|
||||
<StackPanel Grid.Row="10" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Spacing="0">
|
||||
<TextBlock
|
||||
@@ -203,7 +170,7 @@
|
||||
IsChecked="{Binding Operation.EnableAntiAliasing}"
|
||||
Content="Enable Anti-Aliasing"/>
|
||||
|
||||
<CheckBox Grid.Row="12" Grid.Column="8"
|
||||
<CheckBox Grid.Row="12" Grid.Column="4"
|
||||
Grid.ColumnSpan="3"
|
||||
ToolTip.Tip="Most of the printers requires a mirror output to print with the correct orientation"
|
||||
IsChecked="{Binding Operation.MirrorOutput}"
|
||||
@@ -217,7 +184,7 @@
|
||||
IsExpanded="True">
|
||||
|
||||
<Grid RowDefinitions="Auto,5,Auto"
|
||||
ColumnDefinitions="Auto,10,170,5,Auto,20,Auto,10,170,5,Auto">
|
||||
ColumnDefinitions="Auto,10,Auto,20,Auto,10,Auto,5,Auto">
|
||||
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
@@ -230,13 +197,13 @@
|
||||
Maximum="10"
|
||||
Value="{Binding Operation.Spirals}"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="6"
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Clockwise: All spirals turn clockwise.
|
||||

Alternate: Each spiral turn into opposite direction.
|
||||

Both: Each spiral will turn in both directions, clockwise and counter-clockwise."
|
||||
Text="Spiral direction:"/>
|
||||
<ComboBox Grid.Row="0" Grid.Column="8"
|
||||
<ComboBox Grid.Row="0" Grid.Column="6"
|
||||
Items="{Binding Operation.SpiralDirectionsItems}"
|
||||
SelectedItem="{Binding Operation.SpiralDirection}"
|
||||
HorizontalAlignment="Stretch"/>
|
||||
@@ -245,29 +212,26 @@
|
||||
Text="Spiral diameter:"
|
||||
VerticalAlignment="Center"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="1"
|
||||
Minimum="0.1"
|
||||
Maximum="10000"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.SpiralDiameter}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
Text="mm"
|
||||
VerticalAlignment="Center"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="6"
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
Text="Step angle:"
|
||||
ToolTip.Tip="Spirals will turn this angle per layer."
|
||||
VerticalAlignment="Center"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="8"
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_deg"
|
||||
Increment="1"
|
||||
Minimum="0.01"
|
||||
Maximum="359.99"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.SpiralAngleStepPerLayer}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="10"
|
||||
Text="º/layer"
|
||||
<TextBlock Grid.Row="2" Grid.Column="8"
|
||||
Text="/layer"
|
||||
VerticalAlignment="Center"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
x:Class="UVtools.WPF.Controls.Tools.ToolDoubleExposureControl">
|
||||
<StackPanel Spacing="10">
|
||||
<Grid RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,Auto,5,Auto,40,Auto,5,Auto">
|
||||
ColumnDefinitions="Auto,10,Auto,40,Auto">
|
||||
<TextBlock Grid.Row="0" Grid.Column="2"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
Text="Bottom layers"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="6"
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
@@ -24,121 +24,89 @@
|
||||
VerticalAlignment="Center"
|
||||
Text="1º exposure:"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="2" Grid.Column="2"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0.01"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.FirstBottomExposure}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
Text="s"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0.01"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.FirstBottomExposure}"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="2" Grid.Column="6"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0.01"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.FirstNormalExposure}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="8"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
Text="s"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="4"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0.01"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.FirstNormalExposure}"/>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="1º erode iterations:"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="4" Grid.Column="2"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.FirstBottomErodeIterations}"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
Text="px"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.FirstBottomErodeIterations}"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="4" Grid.Column="6"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.FirstNormalErodeIterations}"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="8"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
Text="px"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="4"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.FirstNormalErodeIterations}"/>
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="2º exposure:"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="6" Grid.Column="2"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0.01"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.SecondBottomExposure}"/>
|
||||
<TextBlock Grid.Row="6" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
Text="s"/>
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0.01"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.SecondBottomExposure}"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="6" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
Minimum="0.01"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.SecondNormalExposure}"/>
|
||||
<TextBlock Grid.Row="6" Grid.Column="8"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
Text="s"/>
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="4"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
Minimum="0.01"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.SecondNormalExposure}"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="2º erode iterations:"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="8" Grid.Column="2"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.SecondBottomErodeIterations}"/>
|
||||
<TextBlock Grid.Row="8" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
Text="px"/>
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.SecondBottomErodeIterations}"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="8" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.SecondNormalErodeIterations}"/>
|
||||
<TextBlock Grid.Row="8" Grid.Column="8"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
Text="px"/>
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="4"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.SecondNormalErodeIterations}"/>
|
||||
</Grid>
|
||||
|
||||
<ToggleSwitch
|
||||
@@ -147,25 +115,21 @@
|
||||
IsChecked="{Binding Operation.SecondLayerDifference}"/>
|
||||
|
||||
<Grid RowDefinitions="Auto"
|
||||
ColumnDefinitions="Auto,10,Auto,5,Auto">
|
||||
ColumnDefinitions="Auto,10,Auto">
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.SecondLayerDifference}"
|
||||
ToolTip.Tip="When the 'Exposure the difference between first and second layer for the second layer' is active,
|
||||
this setting will further erode the layer producing a overlap of n pixel perimeters over the previous layer"
|
||||
Text="Difference overlap by:"/>
|
||||
<NumericUpDown
|
||||
Grid.Row="0" Grid.Column="2"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.SecondLayerDifference}"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.SecondLayerDifferenceOverlapErodeIterations}"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.SecondLayerDifference}"
|
||||
Text="px"/>
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.SecondLayerDifference}"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.SecondLayerDifferenceOverlapErodeIterations}"/>
|
||||
</Grid>
|
||||
|
||||
|
||||
@@ -174,7 +138,8 @@ this setting will further erode the layer producing a overlap of n pixel perimet
|
||||
Content="Use different settings for the second layer:"
|
||||
IsChecked="{Binding Operation.DifferentSettingsForSecondLayer}"/>
|
||||
|
||||
<Grid RowDefinitions="Auto,10,Auto" ColumnDefinitions="Auto,10,Auto,5,Auto" IsEnabled="{Binding Operation.DifferentSettingsForSecondLayer}">
|
||||
<Grid RowDefinitions="Auto,10,Auto" ColumnDefinitions="Auto,10,Auto"
|
||||
IsEnabled="{Binding Operation.DifferentSettingsForSecondLayer}">
|
||||
<CheckBox Grid.Row="0" Grid.Column="0"
|
||||
ToolTip.Tip="Use a low value to speed up layers with same Z position, lift is not really required here.
|
||||

Set no lift height (0mm) will not work on most of the printers, so far, only gcode printers are known/able to use no lifts.
|
||||
@@ -184,6 +149,7 @@ this setting will further erode the layer producing a overlap of n pixel perimet
|
||||
IsChecked="{Binding Operation.SecondLayerLiftHeightEnabled}"
|
||||
VerticalAlignment="Center"/>
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Increment="0.5"
|
||||
Minimum="0"
|
||||
Maximum="1000"
|
||||
@@ -191,10 +157,6 @@ this setting will further erode the layer producing a overlap of n pixel perimet
|
||||
IsVisible="{Binding SlicerFile.CanUseLayerLiftHeight}"
|
||||
IsEnabled="{Binding Operation.SecondLayerLiftHeightEnabled}"
|
||||
Value="{Binding Operation.SecondLayerLiftHeight}"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
Text="mm"
|
||||
IsVisible="{Binding SlicerFile.CanUseLayerLiftHeight}"
|
||||
VerticalAlignment="Center"/>
|
||||
|
||||
<CheckBox Grid.Row="2" Grid.Column="0"
|
||||
ToolTip.Tip="Use a low value to speed up layers with same Z position, a delay is not really required here.
|
||||
@@ -210,6 +172,7 @@ this setting will further erode the layer producing a overlap of n pixel perimet
|
||||
</CheckBox.IsVisible>
|
||||
</CheckBox>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Increment="0.5"
|
||||
Minimum="0"
|
||||
Maximum="1000"
|
||||
@@ -223,16 +186,6 @@ this setting will further erode the layer producing a overlap of n pixel perimet
|
||||
</MultiBinding>
|
||||
</NumericUpDown.IsVisible>
|
||||
</NumericUpDown>
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
Text="s"
|
||||
VerticalAlignment="Center">
|
||||
<TextBlock.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.Or}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="SlicerFile.CanUseLayerWaitTimeBeforeCure"/>
|
||||
</MultiBinding>
|
||||
</TextBlock.IsVisible>
|
||||
</TextBlock>
|
||||
|
||||
</Grid>
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<StackPanel Spacing="10">
|
||||
|
||||
<Grid RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,150,5,Auto,20,Auto,10,150,5,Auto">
|
||||
ColumnDefinitions="Auto,10,Auto,20,Auto,10,Auto">
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
@@ -19,6 +19,7 @@
|
||||
Text="Cache RAM:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_GB"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Stretch"
|
||||
Minimum="0.5"
|
||||
@@ -28,15 +29,11 @@
|
||||
Value="{Binding Operation.CacheRAMSize}"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="GB"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="6"
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"
|
||||
Text="Cache layers:"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="8"
|
||||
<TextBlock Grid.Row="0" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="{Binding Operation.CacheObjectCount, StringFormat=±\{0\}}"/>
|
||||
|
||||
@@ -46,6 +43,7 @@
|
||||
Text="Minimum layer height:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Stretch"
|
||||
Minimum="{Binding SlicerFile.LayerHeight}"
|
||||
@@ -53,16 +51,14 @@
|
||||
Increment="0.01"
|
||||
FormatString="F3"
|
||||
Value="{Binding Operation.MinimumLayerHeight}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="6"
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Allow to stack layers up to a maximum of this height"
|
||||
Text="Maximum layer height:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="8"
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Name="MaximumLayerHeight"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -71,9 +67,6 @@
|
||||
Increment="0.01"
|
||||
FormatString="F3"
|
||||
Value="{Binding Operation.MaximumLayerHeight}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
<CheckBox Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="3"
|
||||
VerticalAlignment="Center"
|
||||
@@ -81,7 +74,7 @@
|
||||
Content="Strip anti-aliasing"
|
||||
IsChecked="{Binding Operation.StripAntiAliasing}"/>
|
||||
|
||||
<CheckBox Grid.Row="4" Grid.Column="6" Grid.ColumnSpan="3"
|
||||
<CheckBox Grid.Row="4" Grid.Column="4" Grid.ColumnSpan="3"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Use this option with 'Strip anti-aliasing' to reconstruct the layer anti-aliasing via an gaussian blur."
|
||||
Content="Reconstruct anti-aliasing"
|
||||
@@ -95,15 +88,13 @@
|
||||

n = Stack equal layers or with a n perimeter of difference between the sum of the stack."
|
||||
Text="Maximum wide difference:"/>
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Stretch"
|
||||
Minimum="0"
|
||||
Maximum="30"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.MaximumErodes}"/>
|
||||
<TextBlock Grid.Row="6" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
@@ -118,7 +109,7 @@ Manual: User defined exposure per layer height"
|
||||
Items="{Binding Operation.ExposureSetTypeItems}"
|
||||
SelectedItem="{Binding Operation.ExposureSetType}"/>
|
||||
|
||||
<ToggleSwitch Grid.Row="8" Grid.Column="6" Grid.ColumnSpan="5"
|
||||
<ToggleSwitch Grid.Row="8" Grid.Column="4" Grid.ColumnSpan="3"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
OffContent="Set the same base time for all bottoms"
|
||||
OnContent="Calculate and iterate bottom exposures"
|
||||
@@ -130,6 +121,7 @@ Manual: User defined exposure per layer height"
|
||||
Text="Bottom exposure:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="10" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -138,18 +130,15 @@ Manual: User defined exposure per layer height"
|
||||
Maximum="200"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.BottomExposureTime}"/>
|
||||
<TextBlock Grid.Row="10" Grid.Column="4"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
|
||||
<TextBlock Grid.Row="10" Grid.Column="6"
|
||||
<TextBlock Grid.Row="10" Grid.Column="4"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Right"
|
||||
Text="Normal exposure:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="10" Grid.Column="8"
|
||||
<NumericUpDown Grid.Row="10" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -158,10 +147,6 @@ Manual: User defined exposure per layer height"
|
||||
Maximum="200"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.ExposureTime}"/>
|
||||
<TextBlock Grid.Row="10" Grid.Column="10"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
|
||||
<TextBlock Grid.Row="12" Grid.Column="0"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
@@ -170,6 +155,7 @@ Manual: User defined exposure per layer height"
|
||||
Text="Bottom exposure step:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="12" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -178,19 +164,16 @@ Manual: User defined exposure per layer height"
|
||||
Increment="0.01"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.BottomExposureStep}"/>
|
||||
<TextBlock Grid.Row="12" Grid.Column="4"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
|
||||
<TextBlock Grid.Row="12" Grid.Column="6"
|
||||
<TextBlock Grid.Row="12" Grid.Column="4"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Exposure increment per layer height"
|
||||
Text="Exposure step:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="12" Grid.Column="8"
|
||||
<NumericUpDown Grid.Row="12" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -200,12 +183,7 @@ Manual: User defined exposure per layer height"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.ExposureStep}"/>
|
||||
|
||||
<TextBlock Grid.Row="12" Grid.Column="10"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
|
||||
<Button Grid.Row="14" Grid.Column="2" Grid.ColumnSpan="7"
|
||||
<Button Grid.Row="14" Grid.Column="2" Grid.ColumnSpan="5"
|
||||
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Stretch"
|
||||
|
||||
@@ -6,115 +6,74 @@
|
||||
x:Class="UVtools.WPF.Controls.Tools.ToolDynamicLiftsControl">
|
||||
<StackPanel Spacing="10">
|
||||
|
||||
<!--
|
||||
<Grid RowDefinitions="Auto,5,Auto"
|
||||
ColumnDefinitions="Auto,5,Auto,5,Auto"
|
||||
HorizontalAlignment="Center">
|
||||
|
||||
<Grid RowDefinitions="Auto,20,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,5,Auto"
|
||||
ColumnDefinitions="Auto,10,180,Auto,210,10,Auto">
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="View smallest:"/>
|
||||
Text="Set method:"/>
|
||||
|
||||
<ComboBox Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="5"
|
||||
HorizontalAlignment="Stretch"
|
||||
Items="{Binding Operation.SetMethod, Converter={StaticResource EnumToCollectionConverter}, Mode=OneTime}"
|
||||
SelectedItem="{Binding Operation.SetMethod, Converter={StaticResource FromValueDescriptionToEnumConverter}}"/>
|
||||
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="View largest:"/>
|
||||
Text="Property"/>
|
||||
|
||||
|
||||
<Button Grid.Row="0" Grid.Column="2"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalAlignment="Stretch"
|
||||
HorizontalContentAlignment="Center"
|
||||
Content="Bottom"/>
|
||||
|
||||
<Button Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalAlignment="Stretch"
|
||||
HorizontalContentAlignment="Center"
|
||||
Content="Normal"/>
|
||||
|
||||
<Button Grid.Row="2" Grid.Column="2"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalAlignment="Stretch"
|
||||
HorizontalContentAlignment="Center"
|
||||
Content="Bottom"/>
|
||||
|
||||
<Button Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalAlignment="Stretch"
|
||||
HorizontalContentAlignment="Center"
|
||||
Content="Normal"/>
|
||||
|
||||
</Grid>
|
||||
-->
|
||||
<Grid RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,5,Auto"
|
||||
ColumnDefinitions="Auto,10,150,20,150,5,Auto,10,Auto">
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
<TextBlock Grid.Row="2" Grid.Column="2"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="Property"/>
|
||||
Text="Height"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="2"
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="Minimum"/>
|
||||
Text="Speed"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="Maximum"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="Unit"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="8"
|
||||
<TextBlock Grid.Row="2" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="View"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="0"
|
||||
<TextBlock Grid.Row="4" Grid.Column="0"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Text="Bottom lift height:"/>
|
||||
Text="Minimum bottom lift:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="1"
|
||||
Maximum="100"
|
||||
Increment="0.5"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.MinBottomLiftHeight}"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="3"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
Text="/"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="4"
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="1"
|
||||
Maximum="100"
|
||||
Increment="0.5"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.MaxBottomLiftHeight}"/>
|
||||
Value="{Binding Operation.MinBottomLiftHeight}"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="6"
|
||||
<TextBlock Grid.Row="4" Grid.Column="3"
|
||||
Margin="5,0"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
Text="@"/>
|
||||
|
||||
<Button Grid.Row="2" Grid.Column="8"
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="4"
|
||||
Classes="ValueLabel ValueLabel_mmmin"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="5"
|
||||
Maximum="1000"
|
||||
Increment="1"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.MaxBottomLiftSpeed}"/>
|
||||
|
||||
<Button Grid.Row="4" Grid.Column="6"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -124,12 +83,29 @@
|
||||
CommandParameter="True"
|
||||
Content="Smallest"/>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="0"
|
||||
<TextBlock Grid.Row="6" Grid.Column="0"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Text="Bottom lift speed:"/>
|
||||
Text="Maximum bottom lift:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="1"
|
||||
Maximum="100"
|
||||
Increment="0.5"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.MaxBottomLiftHeight}"/>
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="3"
|
||||
Margin="5,0"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Text="@"/>
|
||||
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="4"
|
||||
Classes="ValueLabel ValueLabel_mmmin"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="5"
|
||||
@@ -138,27 +114,7 @@
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.MinBottomLiftSpeed}"/>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="3"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
Text="/"/>
|
||||
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="4"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="5"
|
||||
Maximum="1000"
|
||||
Increment="1"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.MaxBottomLiftSpeed}"/>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="6"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm/min"/>
|
||||
|
||||
<Button Grid.Row="4" Grid.Column="8"
|
||||
<Button Grid.Row="6" Grid.Column="6"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -168,13 +124,13 @@
|
||||
ToolTip.Tip="View the largest bottom layer for the selected layer range"
|
||||
Content="Largest"/>
|
||||
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="0"
|
||||
<TextBlock Grid.Row="8" Grid.Column="0"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Text="Lift height:"/>
|
||||
Text="Minimum lift:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="1"
|
||||
@@ -183,27 +139,23 @@
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.MinLiftHeight}"/>
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="3"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
<TextBlock Grid.Row="8" Grid.Column="3"
|
||||
Margin="5,0"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
Text="/"/>
|
||||
Text="@"/>
|
||||
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="4"
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="4"
|
||||
Classes="ValueLabel ValueLabel_mmmin"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="1"
|
||||
Maximum="100"
|
||||
Increment="0.5"
|
||||
Minimum="5"
|
||||
Maximum="1000"
|
||||
Increment="1"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.MaxLiftHeight}"/>
|
||||
Value="{Binding Operation.MinLiftSpeed}"/>
|
||||
|
||||
<TextBlock Grid.Row="6" Grid.Column="6"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"/>
|
||||
|
||||
<Button Grid.Row="6" Grid.Column="8"
|
||||
<Button Grid.Row="8" Grid.Column="6"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -213,27 +165,29 @@
|
||||
ToolTip.Tip="View the smallest normal layer for the selected layer range"
|
||||
Content="Smallest"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="0"
|
||||
<TextBlock Grid.Row="10" Grid.Column="0"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Text="Lift speed:"/>
|
||||
Text="Maximum lift:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
||||
<NumericUpDown Grid.Row="10" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="5"
|
||||
Maximum="1000"
|
||||
Increment="1"
|
||||
Minimum="1"
|
||||
Maximum="100"
|
||||
Increment="0.5"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.MinLiftSpeed}"/>
|
||||
Value="{Binding Operation.MaxLiftHeight}"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="3"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
<TextBlock Grid.Row="10" Grid.Column="3"
|
||||
Margin="5,0"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveBottoms}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
Text="/"/>
|
||||
Text="@"/>
|
||||
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="4"
|
||||
<NumericUpDown Grid.Row="10" Grid.Column="4"
|
||||
Classes="ValueLabel ValueLabel_mmmin"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="5"
|
||||
@@ -242,12 +196,7 @@
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.MaxLiftSpeed}"/>
|
||||
|
||||
<TextBlock Grid.Row="8" Grid.Column="6"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm/min"/>
|
||||
|
||||
<Button Grid.Row="8" Grid.Column="8"
|
||||
<Button Grid.Row="10" Grid.Column="6"
|
||||
IsEnabled="{Binding Operation.LayerRangeHaveNormals}"
|
||||
VerticalAlignment="Stretch"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -257,59 +206,59 @@
|
||||
ToolTip.Tip="View the largest normal layer for the selected layer range"
|
||||
Content="Largest"/>
|
||||
|
||||
<TextBlock Grid.Row="10" Grid.Column="0"
|
||||
IsVisible="{Binding SlicerFile.CanUseLayerLightOffDelay}"
|
||||
VerticalAlignment="Center"
|
||||
Text="Light-off mode:"/>
|
||||
<TextBlock Grid.Row="12" Grid.Column="0"
|
||||
IsVisible="{Binding SlicerFile.CanUseLayerLightOffDelay}"
|
||||
VerticalAlignment="Center"
|
||||
Text="Light-off mode:"/>
|
||||
|
||||
<ComboBox Grid.Row="10" Grid.Column="2"
|
||||
Grid.ColumnSpan="3"
|
||||
IsVisible="{Binding SlicerFile.CanUseLayerLightOffDelay}"
|
||||
HorizontalAlignment="Stretch"
|
||||
Items="{Binding Operation.LightOffDelaySetMode, Converter={StaticResource EnumToCollectionConverter}, Mode=OneTime}"
|
||||
SelectedItem="{Binding Operation.LightOffDelaySetMode, Converter={StaticResource FromValueDescriptionToEnumConverter}}"/>
|
||||
<ComboBox Grid.Row="12" Grid.Column="2" Grid.ColumnSpan="3"
|
||||
IsVisible="{Binding SlicerFile.CanUseLayerLightOffDelay}"
|
||||
HorizontalAlignment="Stretch"
|
||||
Items="{Binding Operation.LightOffDelaySetMode, Converter={StaticResource EnumToCollectionConverter}, Mode=OneTime}"
|
||||
SelectedItem="{Binding Operation.LightOffDelaySetMode, Converter={StaticResource FromValueDescriptionToEnumConverter}}"/>
|
||||
|
||||
<TextBlock Grid.Row="12" Grid.Column="2"
|
||||
IsEnabled="{Binding !Operation.LightOffDelaySetMode}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="Bottom extra time">
|
||||
<TextBlock.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</TextBlock.IsVisible>
|
||||
<TextBlock Grid.Row="14" Grid.Column="2"
|
||||
IsEnabled="{Binding !Operation.LightOffDelaySetMode}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="Bottom extra time">
|
||||
<TextBlock.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</TextBlock.IsVisible>
|
||||
</TextBlock>
|
||||
|
||||
<TextBlock Grid.Row="14" Grid.Column="4"
|
||||
IsEnabled="{Binding !Operation.LightOffDelaySetMode}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="Normal extra time">
|
||||
<TextBlock.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</TextBlock.IsVisible>
|
||||
</TextBlock>
|
||||
|
||||
<TextBlock Grid.Row="16" Grid.Column="0"
|
||||
IsEnabled="{Binding !Operation.LightOffDelaySetMode}"
|
||||
VerticalAlignment="Center"
|
||||
Text="Light-off delay:">
|
||||
<TextBlock.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</TextBlock.IsVisible>
|
||||
</TextBlock>
|
||||
|
||||
<TextBlock Grid.Row="12" Grid.Column="4"
|
||||
IsEnabled="{Binding !Operation.LightOffDelaySetMode}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="Normal extra time">
|
||||
<TextBlock.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</TextBlock.IsVisible>
|
||||
</TextBlock>
|
||||
|
||||
<TextBlock Grid.Row="14" Grid.Column="0"
|
||||
IsEnabled="{Binding !Operation.LightOffDelaySetMode}"
|
||||
VerticalAlignment="Center"
|
||||
Text="Light-off delay:">
|
||||
<TextBlock.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</TextBlock.IsVisible>
|
||||
</TextBlock>
|
||||
|
||||
<NumericUpDown Grid.Row="14" Grid.Column="2"
|
||||
<NumericUpDown Grid.Row="16" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
IsEnabled="{Binding !Operation.LightOffDelaySetMode}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0"
|
||||
@@ -317,29 +266,30 @@
|
||||
Increment="1"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.LightOffDelayBottomExtraTime}">
|
||||
<NumericUpDown.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</NumericUpDown.IsVisible>
|
||||
<NumericUpDown.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</NumericUpDown.IsVisible>
|
||||
</NumericUpDown>
|
||||
|
||||
<TextBlock Grid.Row="14" Grid.Column="3"
|
||||
<TextBlock Grid.Row="16" Grid.Column="3"
|
||||
IsEnabled="{Binding !Operation.LightOffDelaySetMode}"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
Text="/">
|
||||
<TextBlock.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</TextBlock.IsVisible>
|
||||
<TextBlock.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</TextBlock.IsVisible>
|
||||
</TextBlock>
|
||||
|
||||
<NumericUpDown Grid.Row="14" Grid.Column="4"
|
||||
<NumericUpDown Grid.Row="16" Grid.Column="4"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
IsEnabled="{Binding !Operation.LightOffDelaySetMode}"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0"
|
||||
@@ -347,26 +297,14 @@
|
||||
Increment="1"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.LightOffDelayExtraTime}">
|
||||
<NumericUpDown.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</NumericUpDown.IsVisible>
|
||||
<NumericUpDown.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</NumericUpDown.IsVisible>
|
||||
</NumericUpDown>
|
||||
|
||||
<TextBlock Grid.Row="14" Grid.Column="6"
|
||||
IsEnabled="{Binding !Operation.LightOffDelaySetMode}"
|
||||
VerticalAlignment="Center"
|
||||
Text="s">
|
||||
<TextBlock.IsVisible>
|
||||
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||
<Binding Path="SlicerFile.CanUseLayerLightOffDelay"/>
|
||||
<Binding Path="!Operation.LightOffDelaySetMode"/>
|
||||
</MultiBinding>
|
||||
</TextBlock.IsVisible>
|
||||
</TextBlock>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
</StackPanel>
|
||||
</UserControl>
|
||||
|
||||
@@ -20,37 +20,35 @@
|
||||
<TextBlock Grid.Row="2" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Exposure time:"/>
|
||||
<NumericUpDown
|
||||
Grid.Row="2" Grid.Column="2"
|
||||
Minimum="0.1"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.FromExposureTime}"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Minimum="0.1"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.FromExposureTime}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="->"/>
|
||||
<NumericUpDown
|
||||
Grid.Row="2" Grid.Column="6"
|
||||
Minimum="0.1"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.ToExposureTime}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="8"
|
||||
VerticalAlignment="Center"
|
||||
Text="s"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Minimum="0.1"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.ToExposureTime}"/>
|
||||
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Time increment:"/>
|
||||
<NumericUpDown
|
||||
Grid.Row="4" Grid.Column="2"
|
||||
IsReadOnly="True"
|
||||
ShowButtonSpinner="False"
|
||||
AllowSpin="False"
|
||||
Value="{Binding Operation.IncrementValue}"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
IsReadOnly="True"
|
||||
ShowButtonSpinner="False"
|
||||
AllowSpin="False"
|
||||
Value="{Binding Operation.IncrementValue}"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="4" Grid.ColumnSpan="5"
|
||||
VerticalAlignment="Center"
|
||||
Text="s / per layer"/>
|
||||
Text="/ per layer"/>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
@@ -15,8 +15,7 @@
|
||||
Text="Pattern:"
|
||||
/>
|
||||
|
||||
<ComboBox
|
||||
Grid.Column="2"
|
||||
<ComboBox Grid.Row="0" Grid.Column="2"
|
||||
Items="{Binding Operation.InfillAlgorithmTypes}"
|
||||
SelectedItem="{Binding Operation.InfillType}"
|
||||
HorizontalAlignment="Stretch"
|
||||
@@ -30,91 +29,50 @@
|
||||
Text="Wall thickness:"
|
||||
/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="2"
|
||||
Grid.Column="2"
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="0"
|
||||
Maximum="65535"
|
||||
Increment="1"
|
||||
|
||||
Value="{Binding Operation.WallThickness}"
|
||||
/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"
|
||||
/>
|
||||
Value="{Binding Operation.WallThickness}"/>
|
||||
|
||||
<!--Infill brightness-->
|
||||
<TextBlock
|
||||
Grid.Row="4"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Infill brightness:"
|
||||
/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Infill brightness:"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="4"
|
||||
Grid.Column="2"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
|
||||
Value="{Binding Operation.InfillBrightness}"
|
||||
/>
|
||||
Value="{Binding Operation.InfillBrightness}"/>
|
||||
|
||||
<!--Infill thickness-->
|
||||
<TextBlock
|
||||
Grid.Row="6"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Infill thickness:"
|
||||
/>
|
||||
<TextBlock Grid.Row="6" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Infill thickness:"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="6"
|
||||
Grid.Column="2"
|
||||
Name="InfillThickness"
|
||||
Minimum="0"
|
||||
Maximum="65535"
|
||||
Increment="1"
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Name="InfillThickness"
|
||||
Minimum="0"
|
||||
Maximum="65535"
|
||||
Increment="1"
|
||||
|
||||
Value="{Binding Operation.InfillThickness}"
|
||||
/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="6"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"
|
||||
/>
|
||||
Value="{Binding Operation.InfillThickness}"/>
|
||||
|
||||
<!--Infill spacing-->
|
||||
<TextBlock
|
||||
Grid.Row="8"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Infill spacing:"
|
||||
/>
|
||||
<TextBlock Grid.Row="8" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Infill spacing:"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="8"
|
||||
Grid.Column="2"
|
||||
Minimum="{Binding #InfillThickness.Value}"
|
||||
Maximum="65535"
|
||||
Increment="1"
|
||||
|
||||
Value="{Binding Operation.InfillSpacing}"
|
||||
/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="8"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"
|
||||
/>
|
||||
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="{Binding #InfillThickness.Value}"
|
||||
Maximum="65535"
|
||||
Increment="1"
|
||||
Value="{Binding Operation.InfillSpacing}"/>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
@@ -10,40 +10,42 @@
|
||||
<TextBlock VerticalAlignment="Center" Text="{Binding CurrentLayers}"/>
|
||||
|
||||
<Grid RowDefinitions="Auto,10,Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto">
|
||||
ColumnDefinitions="Auto,10,Auto,20,Auto,10,Auto">
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Text="Modifier:"/>
|
||||
<ComboBox
|
||||
Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="9"
|
||||
Width="430"
|
||||
Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="5"
|
||||
Width="505"
|
||||
SelectedItem="{Binding Operation.SelectedItem}"
|
||||
Items="{Binding Operation.Presets}"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" Text="Anti-Aliasing:"/>
|
||||
<ComboBox Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="9"
|
||||
Width="430"
|
||||
<ComboBox Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="5"
|
||||
Width="505"
|
||||
IsEnabled="{Binding Operation.CanAntiAliasing}"
|
||||
Items="{Binding Operation.AntiAliasingType, Converter={StaticResource EnumToCollectionConverter}, Mode=OneTime}"
|
||||
SelectedItem="{Binding Operation.AntiAliasingType, Converter={StaticResource FromValueDescriptionToEnumConverter}}">
|
||||
</ComboBox>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="0" VerticalAlignment="Center" Text="Bottom exposure:"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Bottom exposure:"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0.01"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.BottomExposure}"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="4" VerticalAlignment="Center" Text="s"/>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="6" VerticalAlignment="Center" Text="Normal exposure:"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="8"
|
||||
<TextBlock Grid.Row="4" Grid.Column="4" VerticalAlignment="Center" Text="Normal exposure:"/>
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
VerticalAlignment="Center"
|
||||
Minimum="0.01"
|
||||
Maximum="1000"
|
||||
Increment="0.5"
|
||||
Value="{Binding Operation.NormalExposure}"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="10" VerticalAlignment="Center" Text="s"/>
|
||||
</Grid>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
@@ -38,44 +38,33 @@
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
Text="Minimum brightness:"/>
|
||||
<NumericUpDown
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Value="{Binding GenMinimumBrightness}"
|
||||
/>
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
Text="(0-255)"/>
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Maximum brightness:"
|
||||
/>
|
||||
<NumericUpDown
|
||||
Grid.Row="0"
|
||||
Grid.Column="8"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Value="{Binding GenMaximumBrightness}"
|
||||
/>
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Value="{Binding GenMinimumBrightness}"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Center"
|
||||
Text="(0-255)"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
Text="Maximum brightness:"/>
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="8"
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Value="{Binding GenMaximumBrightness}"
|
||||
/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
VerticalAlignment="Center"
|
||||
Text="Diameter in pixels:"/>
|
||||
<NumericUpDown
|
||||
Grid.Row="2"
|
||||
Grid.Column="2"
|
||||
Minimum="0"
|
||||
Maximum="10000"
|
||||
Value="{Binding GenDiameter}"
|
||||
/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Diameter in pixels:"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="0"
|
||||
Maximum="10000"
|
||||
Value="{Binding GenDiameter}"/>
|
||||
<Button
|
||||
Grid.Row="2"
|
||||
Grid.Column="4"
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
FontWeight="Bold"
|
||||
Text="Left"/>
|
||||
<NumericUpDown
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
VerticalAlignment="Center"
|
||||
ButtonSpinnerLocation="Left"
|
||||
Width="150"
|
||||
@@ -57,7 +58,8 @@
|
||||
FontWeight="Bold"
|
||||
Margin="0,0,0,5"
|
||||
Text="Top"/>
|
||||
<NumericUpDown
|
||||
<NumericUpDown
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
VerticalAlignment="Center"
|
||||
Width="150"
|
||||
Minimum="-100000"
|
||||
@@ -70,6 +72,7 @@
|
||||
VerticalAlignment="Center"
|
||||
Spacing="5">
|
||||
<NumericUpDown
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
VerticalAlignment="Center"
|
||||
Width="150"
|
||||
Minimum="-100000"
|
||||
@@ -82,7 +85,8 @@
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="2" Grid.Column="1">
|
||||
<NumericUpDown
|
||||
<NumericUpDown
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
VerticalAlignment="Center"
|
||||
Width="150"
|
||||
Minimum="-100000"
|
||||
|
||||
@@ -81,8 +81,9 @@
|
||||
Orientation="Horizontal" Spacing="5"
|
||||
IsVisible="{Binding Operation.ValueEnabled}"
|
||||
IsEnabled="{Binding Operation.ValueEnabled}">
|
||||
|
||||
<NumericUpDown
|
||||
|
||||
<NumericUpDown
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
IsEnabled="{Binding !Operation.UsePattern}"
|
||||
@@ -370,30 +371,24 @@
|
||||
Text="Warning: This function can generate a large number of resin traps. (Use with caution)"/>
|
||||
|
||||
<Grid RowDefinitions="Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,150,5,Auto">
|
||||
ColumnDefinitions="Auto,10,180">
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
Text="Thickness:"/>
|
||||
<NumericUpDown
|
||||
Grid.Row="0" Grid.Column="2"
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="5"
|
||||
Maximum="10000"
|
||||
Value="{Binding Operation.PatternGenInfillThickness}"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Spacing:"/>
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="5"
|
||||
Maximum="10000"
|
||||
Value="{Binding Operation.PatternGenInfillSpacing}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Spacing="10">
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
|
||||
<Grid
|
||||
ColumnDefinitions="Auto,10,150,5,Auto"
|
||||
ColumnDefinitions="Auto,10,200,5,Auto"
|
||||
RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
|
||||
>
|
||||
|
||||
@@ -60,6 +60,7 @@ you must manually input the layer index of the last raft where it ends and suppo
|
||||
Text="Pixel brightness:" VerticalAlignment="Center"/>
|
||||
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
IsVisible="{Binding !Operation.IsDecimate}"
|
||||
@@ -72,73 +73,61 @@ you must manually input the layer index of the last raft where it ends and suppo
|
||||
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="8"
|
||||
Grid.Row="8" Grid.Column="0"
|
||||
IsVisible="{Binding !Operation.IsDecimate}"
|
||||
Text="Supports margin:" VerticalAlignment="Center"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="8"
|
||||
Grid.Row="8" Grid.Column="0"
|
||||
IsVisible="{Binding Operation.IsDecimate}"
|
||||
ToolTip.Tip="Raft will be replaced by the present supports and then dilated by this value to thicken the supports and increase the adhesion.
|
||||

Use large numbers with tiny supports for best adhesion."
|
||||
Text="Dilate supports by:" VerticalAlignment="Center"/>
|
||||
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Value="{Binding Operation.DilateIterations}"/>
|
||||
<TextBlock
|
||||
Grid.Row="8" Grid.Column="4"
|
||||
Text="px" VerticalAlignment="Center"/>
|
||||
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="10"
|
||||
Grid.Row="10" Grid.Column="0"
|
||||
Text="Wall margin:" VerticalAlignment="Center"
|
||||
IsVisible="{Binding !Operation.IsDecimate}"
|
||||
/>
|
||||
|
||||
<NumericUpDown Grid.Row="10" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
Value="{Binding Operation.WallMargin}"
|
||||
IsVisible="{Binding !Operation.IsDecimate}"/>
|
||||
<TextBlock
|
||||
Grid.Row="10" Grid.Column="4"
|
||||
Text="px" VerticalAlignment="Center"
|
||||
IsVisible="{Binding !Operation.IsDecimate}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="12"
|
||||
Text="Hole diameter:" VerticalAlignment="Center"
|
||||
IsVisible="{Binding Operation.IsRelief}"
|
||||
/>
|
||||
IsVisible="{Binding Operation.IsRelief}"/>
|
||||
|
||||
<NumericUpDown Grid.Row="12" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="10"
|
||||
Maximum="255"
|
||||
Value="{Binding Operation.HoleDiameter}"
|
||||
IsVisible="{Binding Operation.IsRelief}"/>
|
||||
<TextBlock
|
||||
Grid.Row="12" Grid.Column="4"
|
||||
Text="px" VerticalAlignment="Center"
|
||||
IsVisible="{Binding Operation.IsRelief}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="14"
|
||||
Grid.Row="14" Grid.Column="0"
|
||||
Text="Hole spacing:" VerticalAlignment="Center"
|
||||
IsVisible="{Binding Operation.IsRelief}"
|
||||
/>
|
||||
|
||||
<NumericUpDown Grid.Row="14" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="10"
|
||||
Maximum="255"
|
||||
Value="{Binding Operation.HoleSpacing}"
|
||||
IsVisible="{Binding Operation.IsRelief}"/>
|
||||
<TextBlock
|
||||
Grid.Row="14" Grid.Column="4"
|
||||
Text="px" VerticalAlignment="Center"
|
||||
IsVisible="{Binding Operation.IsRelief}"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
|
||||
@@ -7,32 +7,26 @@
|
||||
x:Class="UVtools.WPF.Controls.Tools.ToolRaiseOnPrintFinishControl">
|
||||
|
||||
<Grid RowDefinitions="Auto"
|
||||
ColumnDefinitions="Auto,10,200,5,Auto,20,Auto">
|
||||
ColumnDefinitions="Auto,10,200,20,Auto">
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Raise to:"
|
||||
/>
|
||||
Text="Raise to:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
VerticalAlignment="Center"
|
||||
Increment="1"
|
||||
Minimum="{Binding Operation.MinimumPositionZ}"
|
||||
Maximum="1000"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.PositionZ}"
|
||||
/>
|
||||
Value="{Binding Operation.PositionZ}"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="mm"
|
||||
/>
|
||||
|
||||
<CheckBox Grid.Row="0" Grid.Column="6"
|
||||
<CheckBox Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="If enabled, output a dummy pixel inside the layer bound to prevent a empty image and to ensure the correct handle by the firmware. This will also prevent layer being removed by auto-fix issues (Empty Layers)."
|
||||
Content="Output a dummy pixel"
|
||||
IsChecked="{Binding Operation.OutputDummyPixel}"
|
||||
/>
|
||||
IsChecked="{Binding Operation.OutputDummyPixel}"/>
|
||||
</Grid>
|
||||
|
||||
</UserControl>
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
|
||||
<StackPanel Grid.Row="4" Grid.Column="2" Orientation="Horizontal" Spacing="5">
|
||||
<NumericUpDown
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="1"
|
||||
|
||||
@@ -34,109 +34,108 @@
|
||||
/>
|
||||
</StackPanel>
|
||||
|
||||
<Grid ColumnDefinitions="Auto,10,150,5,Auto"
|
||||
RowDefinitions="Auto,10,Auto,10,Auto">
|
||||
<Grid ColumnDefinitions="Auto,10,Auto,5,Auto"
|
||||
RowDefinitions="Auto,10,Auto,10,Auto,10,Auto">
|
||||
|
||||
<!-- Remove islands equal or smaller than -->
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
ToolTip.Tip="The pixel area threshold above which islands will not be removed by this repair.
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
ToolTip.Tip="The pixel area threshold above which islands will not be removed by this repair.
|
||||

Islands remaining after repair will require supports to be added manually.
|
||||

NOTE: This repair method requires the issues to be manually computed before hand."
|
||||
Text="Remove islands equal or smaller than:"/>
|
||||
Text="Remove islands equal or smaller than:"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="65535"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="65535"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
|
||||
ToolTip.Tip="The pixel area threshold above which islands will not be removed by this repair.
|
||||
ToolTip.Tip="The pixel area threshold above which islands will not be removed by this repair.
|
||||

Islands remaining after repair will require supports to be added manually.
|
||||

NOTE: This repair method requires the issues to be manually computed before hand."
|
||||
Value="{Binding Operation.RemoveIslandsBelowEqualPixelCount}"
|
||||
/>
|
||||
Value="{Binding Operation.RemoveIslandsBelowEqualPixelCount}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
Text="px"/>
|
||||
|
||||
|
||||
|
||||
<!-- Recursively remove islands for up to -->
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
ToolTip.Tip="If the removal of an island in the current layer results in a new island being introduce in the layer above, the island in the layer above will also be automatically removed.
|
||||
<TextBlock Grid.Row="2" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
ToolTip.Tip="If the removal of an island in the current layer results in a new island being introduce in the layer above, the island in the layer above will also be automatically removed.
|
||||

This process will repeat for up to the number of layers specified. Set to 0 to repeat until there are no more valid islands to remove.
|
||||

NOTE: Use with caution as this can remove large portions of your model if proper supports have not been added beforehand.
|
||||

This repair method requires the issues to be manually computed before hand.
|
||||

Using this function with high values can be extremely slow depending on resolution and issue count."
|
||||
Text="Recursively remove islands for up to:"/>
|
||||
Text="Recursively remove islands for up to:"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="2"
|
||||
Grid.Column="2"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="65535"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
ToolTip.Tip="If the removal of an island in the current layer results in a new island being introduce in the layer above, the island in the layer above will also be automatically removed.
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="65535"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
ToolTip.Tip="If the removal of an island in the current layer results in a new island being introduce in the layer above, the island in the layer above will also be automatically removed.
|
||||

This process will repeat for up to the number of layers specified. Set to 0 to repeat until there are no more valid islands to remove.
|
||||

NOTE: Use with caution as this can remove large portions of your model if proper supports have not been added beforehand.
|
||||

This repair method requires the issues to be manually computed before hand.
|
||||

Using this function with high values can be extremely slow depending on resolution and issue count."
|
||||
Value="{Binding Operation.RemoveIslandsRecursiveIterations}"
|
||||
/>
|
||||
Value="{Binding Operation.RemoveIslandsRecursiveIterations}"
|
||||
/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
Text="layers"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
Text="layers"/>
|
||||
|
||||
|
||||
<!-- Attempt to attach islands below -->
|
||||
<TextBlock
|
||||
Grid.Row="4"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
ToolTip.Tip="Attempt to attach the islands down to n layers when found a safe mass below to support it.
|
||||
<TextBlock Grid.Row="4" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
ToolTip.Tip="Attempt to attach the islands down to n layers when found a safe mass below to support it.
|
||||

NOTE: Use with caution and with a low value, this can mostly be used when there are some missed support layers in between as observed from the issues.
|
||||

This repair method requires the issues to be manually computed before hand.
|
||||

Use 0 to disable this repair method."
|
||||
Text="Attempt to attach islands down to:"/>
|
||||
Text="Attempt to attach islands down to:"/>
|
||||
|
||||
<NumericUpDown
|
||||
Grid.Row="4"
|
||||
Grid.Column="2"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="65535"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
ToolTip.Tip="Attempt to attach the islands down to n layers when found a safe mass below to support it.
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="65535"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
ToolTip.Tip="Attempt to attach the islands down to n layers when found a safe mass below to support it.
|
||||

NOTE: Use with caution and with a low value, this can mostly be used when there are some missed support layers in between as observed from the issues.
|
||||

This repair method requires the issues to be manually computed before hand.
|
||||

Use 0 to disable this repair method."
|
||||
Value="{Binding Operation.AttachIslandsBelowLayers}"/>
|
||||
Value="{Binding Operation.AttachIslandsBelowLayers}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="4"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
Text="layers"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairIslands}"
|
||||
Text="layers"/>
|
||||
|
||||
<!-- Overlap resin traps -->
|
||||
<TextBlock Grid.Row="6" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
IsEnabled="{Binding Operation.RepairResinTraps}"
|
||||
ToolTip.Tip="Overlap and expand resin trap area by this value.
|
||||

Use this field when you have aggressive blur on model and a visible margin between white pixels and the resin trap highlight area.
|
||||

(0 = Fill the found area without overlap nearby pixels)"
|
||||
Text="Overlap and expand resin traps by:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Increment="1"
|
||||
Minimum="0"
|
||||
Maximum="65535"
|
||||
IsEnabled="{Binding Operation.RepairResinTraps}"
|
||||
ToolTip.Tip="Overlap and expand resin trap area by this value.
|
||||

Use this field when you have aggressive blur on model and a visible margin between white pixels and the resin trap highlight area.
|
||||

(0 = Fill the found area without overlap nearby pixels)"
|
||||
Value="{Binding Operation.ResinTrapsOverlapBy}"/>
|
||||
</Grid>
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ namespace UVtools.WPF.Controls.Tools
|
||||
RemoveIslandsBelowEqualPixelCount = UserSettings.Instance.LayerRepair.RemoveIslandsBelowEqualPixels,
|
||||
RemoveIslandsRecursiveIterations = UserSettings.Instance.LayerRepair.RemoveIslandsRecursiveIterations,
|
||||
AttachIslandsBelowLayers = UserSettings.Instance.LayerRepair.AttachIslandsBelowLayers,
|
||||
ResinTrapsOverlapBy = UserSettings.Instance.LayerRepair.ResinTrapsOverlapBy,
|
||||
GapClosingIterations = UserSettings.Instance.LayerRepair.ClosingIterations,
|
||||
NoiseRemovalIterations = UserSettings.Instance.LayerRepair.OpeningIterations,
|
||||
};
|
||||
@@ -40,6 +41,7 @@ namespace UVtools.WPF.Controls.Tools
|
||||
Operation.RemoveIslandsBelowEqualPixelCount = UserSettings.Instance.LayerRepair.RemoveIslandsBelowEqualPixels;
|
||||
Operation.RemoveIslandsRecursiveIterations = UserSettings.Instance.LayerRepair.RemoveIslandsRecursiveIterations;
|
||||
Operation.AttachIslandsBelowLayers = UserSettings.Instance.LayerRepair.AttachIslandsBelowLayers;
|
||||
Operation.ResinTrapsOverlapBy = UserSettings.Instance.LayerRepair.ResinTrapsOverlapBy;
|
||||
Operation.GapClosingIterations = UserSettings.Instance.LayerRepair.ClosingIterations;
|
||||
Operation.NoiseRemovalIterations = UserSettings.Instance.LayerRepair.OpeningIterations;
|
||||
}
|
||||
|
||||
@@ -9,11 +9,12 @@
|
||||
<StackPanel Orientation="Horizontal" Spacing="10">
|
||||
<TextBlock VerticalAlignment="Center" Text="X:"/>
|
||||
<NumericUpDown
|
||||
Width="150"
|
||||
Classes="ValueLabel ValueLabel_percent"
|
||||
Width="180"
|
||||
Minimum="1"
|
||||
Maximum="10000"
|
||||
Increment="0.1"
|
||||
FormatString="{}{0:F2} %"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.X}"/>
|
||||
|
||||
<TextBlock
|
||||
@@ -22,11 +23,12 @@
|
||||
Text="Y:"
|
||||
IsEnabled="{Binding !#ConstrainXY.IsChecked}"/>
|
||||
<NumericUpDown
|
||||
Width="150"
|
||||
Classes="ValueLabel ValueLabel_percent"
|
||||
Width="180"
|
||||
Minimum="1"
|
||||
Maximum="10000"
|
||||
Increment="0.1"
|
||||
FormatString="{}{0:F2} %"
|
||||
FormatString="F2"
|
||||
Value="{Binding Operation.Y}"
|
||||
IsEnabled="{Binding !#ConstrainXY.IsChecked}"
|
||||
/>
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
<StackPanel Orientation="Horizontal" Spacing="10">
|
||||
<TextBlock VerticalAlignment="Center" Text="Rotation angle:"/>
|
||||
<NumericUpDown
|
||||
Width="150"
|
||||
Classes="ValueLabel ValueLabel_deg"
|
||||
Width="180"
|
||||
Minimum="-359.99"
|
||||
Maximum="359.99"
|
||||
Increment="1.0"
|
||||
|
||||
@@ -20,13 +20,10 @@
|
||||
VerticalAlignment="Center" />
|
||||
|
||||
<NumericUpDown
|
||||
Width="200"
|
||||
Classes="ValueLabel ValueLabel_px2"
|
||||
Width="200"
|
||||
Minimum="1"
|
||||
Maximum="4294967295"
|
||||
Value="{Binding Operation.MinimumArea}"
|
||||
/>
|
||||
<TextBlock
|
||||
Text="px²"
|
||||
VerticalAlignment="Center" />
|
||||
Value="{Binding Operation.MinimumArea}"/>
|
||||
</StackPanel>
|
||||
</UserControl>
|
||||
|
||||
@@ -148,6 +148,10 @@ namespace UVtools.WPF
|
||||
{
|
||||
using var contours = new VectorOfVectorOfPoint(issue.Contours);
|
||||
CvInvoke.DrawContours(image, contours, -1, EmguExtensions.WhiteColor, -1);
|
||||
if (Settings.LayerRepair.ResinTrapsOverlapBy > 0)
|
||||
{
|
||||
CvInvoke.DrawContours(image, contours, -1, EmguExtensions.WhiteColor, Settings.LayerRepair.ResinTrapsOverlapBy * 2 + 1);
|
||||
}
|
||||
edited = true;
|
||||
}
|
||||
|
||||
|
||||
+78
-144
@@ -946,75 +946,44 @@
|
||||
Items="{Binding DrawingPixelDrawing.BrushShapeTypes}"
|
||||
SelectedItem="{Binding DrawingPixelDrawing.BrushShape}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="4"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Rotation angle:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="4"
|
||||
Grid.Column="2"
|
||||
FormatString="F2"
|
||||
Minimum="-360"
|
||||
Maximum="360"
|
||||
Value="{Binding DrawingPixelDrawing.RotationAngle}"/>
|
||||
<TextBlock
|
||||
Grid.Row="4"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="º" />
|
||||
<TextBlock Grid.Row="4" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Rotation angle:" />
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="3"
|
||||
Classes="ValueLabel ValueLabel_deg"
|
||||
FormatString="F2"
|
||||
Minimum="-360"
|
||||
Maximum="360"
|
||||
Value="{Binding DrawingPixelDrawing.RotationAngle}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="6"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Brush diameter:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="6"
|
||||
Grid.Column="2"
|
||||
Minimum="1"
|
||||
Maximum="4000"
|
||||
|
||||
HorizontalAlignment="Stretch"
|
||||
Value="{Binding DrawingPixelDrawing.BrushSize}"/>
|
||||
<TextBlock
|
||||
Grid.Row="6"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px" />
|
||||
<TextBlock Grid.Row="6" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Brush diameter:" />
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2" Grid.ColumnSpan="3"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="1"
|
||||
Maximum="4000"
|
||||
HorizontalAlignment="Stretch"
|
||||
Value="{Binding DrawingPixelDrawing.BrushSize}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="8"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Thickness:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="8"
|
||||
Grid.Column="2"
|
||||
Minimum="-1"
|
||||
Maximum="255"
|
||||
|
||||
HorizontalAlignment="Stretch"
|
||||
Value="{Binding DrawingPixelDrawing.Thickness}"/>
|
||||
<TextBlock
|
||||
Grid.Row="8"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px" />
|
||||
<TextBlock Grid.Row="8" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Thickness:" />
|
||||
<NumericUpDown Grid.Row="8" Grid.Column="2" Grid.ColumnSpan="3"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="-1"
|
||||
Maximum="255"
|
||||
HorizontalAlignment="Stretch"
|
||||
Value="{Binding DrawingPixelDrawing.Thickness}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="10"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Remove pixel brightness:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="10"
|
||||
Grid.Column="2"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
|
||||
HorizontalAlignment="Stretch"
|
||||
Value="{Binding DrawingPixelDrawing.RemovePixelBrightness}"/>
|
||||
<TextBlock Grid.Row="10" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Remove pixel brightness:" />
|
||||
<NumericUpDown Grid.Row="10" Grid.Column="2"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
HorizontalAlignment="Stretch"
|
||||
Value="{Binding DrawingPixelDrawing.RemovePixelBrightness}"/>
|
||||
<TextBlock
|
||||
Grid.Row="10"
|
||||
Grid.Column="4"
|
||||
@@ -1144,14 +1113,12 @@
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Thickness:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="6"
|
||||
Grid.Column="2"
|
||||
Grid.ColumnSpan="3"
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
|
||||
Value="{Binding DrawingPixelText.Thickness}"/>
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Grid.ColumnSpan="3"
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
Value="{Binding DrawingPixelText.Thickness}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="8"
|
||||
@@ -1191,18 +1158,12 @@
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Rotation angle:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="14"
|
||||
Grid.Column="2"
|
||||
FormatString="F2"
|
||||
Minimum="-360"
|
||||
Maximum="360"
|
||||
Value="{Binding DrawingPixelText.Angle}"/>
|
||||
<TextBlock
|
||||
Grid.Row="14"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="º" />
|
||||
<NumericUpDown Grid.Row="14" Grid.Column="2" Grid.ColumnSpan="3"
|
||||
Classes="ValueLabel ValueLabel_deg"
|
||||
FormatString="F2"
|
||||
Minimum="-360"
|
||||
Maximum="360"
|
||||
Value="{Binding DrawingPixelText.Angle}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="16"
|
||||
@@ -1301,13 +1262,12 @@
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Pixel brightness:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
|
||||
Value="{Binding DrawingPixelEraser.PixelBrightness}"/>
|
||||
Value="{Binding DrawingPixelEraser.PixelBrightness}"/>
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.Column="4"
|
||||
@@ -1374,64 +1334,45 @@
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Tip diameter:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
Value="{Binding DrawingPixelSupport.TipDiameter}"/>
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px" />
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="3"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
Value="{Binding DrawingPixelSupport.TipDiameter}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Pillar diameter:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="2"
|
||||
Grid.Column="2"
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
Value="{Binding DrawingPixelSupport.PillarDiameter}"/>
|
||||
<TextBlock
|
||||
Grid.Row="2"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px" />
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="3"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
Value="{Binding DrawingPixelSupport.PillarDiameter}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="4"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Base diameter:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="4"
|
||||
Grid.Column="2"
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
Value="{Binding DrawingPixelSupport.BaseDiameter}"/>
|
||||
<TextBlock
|
||||
Grid.Row="4"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px" />
|
||||
<NumericUpDown Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="3"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
Value="{Binding DrawingPixelSupport.BaseDiameter}"/>
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="6"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Pixel brightness:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="6"
|
||||
Grid.Column="2"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_sun"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
|
||||
Value="{Binding DrawingPixelSupport.PixelBrightness}"/>
|
||||
Value="{Binding DrawingPixelSupport.PixelBrightness}"/>
|
||||
<TextBlock
|
||||
Grid.Row="6"
|
||||
Grid.Column="4"
|
||||
@@ -1464,24 +1405,17 @@
|
||||
</Border>
|
||||
<Grid
|
||||
RowDefinitions="Auto"
|
||||
ColumnDefinitions="Auto,10,*,5,Auto">
|
||||
ColumnDefinitions="Auto,10,*">
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Hole diameter:" />
|
||||
<NumericUpDown
|
||||
Grid.Row="0"
|
||||
Grid.Column="2"
|
||||
Minimum="20"
|
||||
Maximum="255"
|
||||
Value="{Binding DrawingPixelDrainHole.Diameter}"/>
|
||||
<TextBlock
|
||||
Grid.Row="0"
|
||||
Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px" />
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Minimum="20"
|
||||
Maximum="255"
|
||||
Value="{Binding DrawingPixelDrainHole.Diameter}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
||||
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
|
||||
<RepositoryType>Git</RepositoryType>
|
||||
<Version>2.21.2</Version>
|
||||
<Version>2.22.0</Version>
|
||||
<Platforms>AnyCPU;x64</Platforms>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -1216,6 +1216,7 @@ namespace UVtools.WPF
|
||||
private ushort _removeIslandsBelowEqualPixels = 5;
|
||||
private ushort _removeIslandsRecursiveIterations = 4;
|
||||
private ushort _attachIslandsBelowLayers = 2;
|
||||
private byte _resinTrapsOverlapBy = 5;
|
||||
private byte _closingIterations = 2;
|
||||
private byte _openingIterations = 0;
|
||||
|
||||
@@ -1255,6 +1256,12 @@ namespace UVtools.WPF
|
||||
set => RaiseAndSetIfChanged(ref _attachIslandsBelowLayers, value);
|
||||
}
|
||||
|
||||
public byte ResinTrapsOverlapBy
|
||||
{
|
||||
get => _resinTrapsOverlapBy;
|
||||
set => RaiseAndSetIfChanged(ref _resinTrapsOverlapBy, value);
|
||||
}
|
||||
|
||||
public byte ClosingIterations
|
||||
{
|
||||
get => _closingIterations;
|
||||
|
||||
@@ -76,23 +76,23 @@
|
||||
|
||||
<Expander Grid.Row="1"
|
||||
Header="Add new material"
|
||||
IsExpanded="False">
|
||||
IsExpanded="True">
|
||||
|
||||
<Grid
|
||||
RowDefinitions="Auto,10,Auto,10,Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,150,5,Auto,20,Auto,10,Auto,5,Auto,20,Auto,10,150,5,Auto,20,Auto,10,Auto,5,Auto">
|
||||
ColumnDefinitions="Auto,10,Auto,20,Auto,10,Auto,20,Auto,10,Auto,20,Auto,10,Auto,5,Auto">
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Text="Name:"/>
|
||||
|
||||
<TextBox Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="17"
|
||||
<TextBox Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="11"
|
||||
HorizontalAlignment="Stretch"
|
||||
Watermark="A descriptive material name, eg: Epax Hard Grey"
|
||||
Text="{Binding Material.Name}"/>
|
||||
|
||||
<Button
|
||||
Grid.Row="0" Grid.Column="20" Grid.ColumnSpan="3"
|
||||
Grid.Row="0" Grid.Column="14" Grid.ColumnSpan="3"
|
||||
VerticalContentAlignment="Center"
|
||||
HorizontalContentAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
@@ -111,54 +111,47 @@
|
||||
Text="Volume:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_ml"
|
||||
Minimum="100"
|
||||
Maximum="100000"
|
||||
Increment="100"
|
||||
Value="{Binding Material.BottleVolume}"
|
||||
/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="ml"/>
|
||||
Value="{Binding Material.BottleVolume}"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="6"
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Used to calculate weight and cost"
|
||||
Text="Density:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="8"
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_gml"
|
||||
Minimum="0.1"
|
||||
Maximum="10"
|
||||
Increment="0.1"
|
||||
Value="{Binding Material.Density}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="g/ml"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="12"
|
||||
<TextBlock Grid.Row="2" Grid.Column="8"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="One bottle unit cost"
|
||||
Text="Cost:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="10"
|
||||
Minimum="1"
|
||||
Maximum="100000"
|
||||
Increment="1"
|
||||
Value="{Binding Material.BottleCost}"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="12"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Number of bottles in stock"
|
||||
Text="Stock:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="14"
|
||||
Minimum="1"
|
||||
Maximum="100000"
|
||||
Increment="1"
|
||||
Value="{Binding Material.BottleCost}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="16"
|
||||
VerticalAlignment="Center"
|
||||
Text=""/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="18"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Number of bottles in stock"
|
||||
Text="Stock:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="20"
|
||||
Minimum="1"
|
||||
Maximum="100000"
|
||||
Increment="1"
|
||||
Value="{Binding Material.BottlesInStock}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="22"
|
||||
<TextBlock Grid.Row="2" Grid.Column="16"
|
||||
VerticalAlignment="Center"
|
||||
Text="units"/>
|
||||
</Grid>
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
|
||||
|
||||
<Grid RowDefinitions="Auto,10,Auto"
|
||||
ColumnDefinitions="Auto,10,150,5,Auto">
|
||||
ColumnDefinitions="Auto,10,Auto">
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
@@ -144,16 +144,13 @@
|
||||
Text="Horizontal limiting margin:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Limits the windows and dialogs maximum width to the screen resolution less this margin"
|
||||
|
||||
Minimum="0"
|
||||
Maximum="1000"
|
||||
Increment="1"
|
||||
Value="{Binding Settings.General.WindowsHorizontalMargin}"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
@@ -161,18 +158,13 @@
|
||||
Text="Vertical limiting margin:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Limits windows and dialogs maximum height to the screen resolution less this margin"
|
||||
|
||||
Minimum="0"
|
||||
Maximum="1000"
|
||||
Increment="1"
|
||||
Value="{Binding Settings.General.WindowsVerticalMargin}"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
<CheckBox IsChecked="{Binding Settings.General.ExpandDescriptions}"
|
||||
@@ -879,33 +871,24 @@
|
||||
|
||||
<StackPanel Orientation="Vertical">
|
||||
<TextBlock Padding="10" Background="LightBlue" FontWeight="Bold" Text="Crosshairs"/>
|
||||
<Grid Margin="10" RowDefinitions="Auto,10,Auto" ColumnDefinitions="Auto,150,*,Auto,Auto">
|
||||
<Grid Margin="10" RowDefinitions="Auto,10,Auto" ColumnDefinitions="Auto,150,*,Auto">
|
||||
<CheckBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
|
||||
VerticalAlignment="Center"
|
||||
Content="Show crosshairs for selected issues only"
|
||||
IsChecked="{Binding Settings.LayerPreview.CrosshairShowOnlyOnSelectedIssues}"
|
||||
/>
|
||||
IsChecked="{Binding Settings.LayerPreview.CrosshairShowOnlyOnSelectedIssues}"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="2"
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"
|
||||
Text="Crosshair size:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="3"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Margin="10,0,0,0"
|
||||
VerticalAlignment="Center"
|
||||
|
||||
Minimum="1"
|
||||
Maximum="1000000"
|
||||
Width="70"
|
||||
Value="{Binding Settings.LayerPreview.CrosshairLength}"
|
||||
/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
Margin="5,0,0,0"
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
|
||||
Value="{Binding Settings.LayerPreview.CrosshairLength}"/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
@@ -914,28 +897,20 @@
|
||||
VerticalAlignment="Center"
|
||||
Margin="10,0,0,0"
|
||||
Items="{Binding ZoomRanges}"
|
||||
SelectedIndex="{Binding Settings.LayerPreview.CrosshairFadeLevelIndex}"
|
||||
/>
|
||||
SelectedIndex="{Binding Settings.LayerPreview.CrosshairFadeLevelIndex}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="2"
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"
|
||||
Text="Crosshair margin:"/>
|
||||
|
||||
<NumericUpDown Grid.Row="2" Grid.Column="3"
|
||||
Classes="ValueLabel ValueLabel_px"
|
||||
Margin="10,0,0,0"
|
||||
VerticalAlignment="Center"
|
||||
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
Width="70"
|
||||
Value="{Binding Settings.LayerPreview.CrosshairMargin}"
|
||||
/>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="4"
|
||||
Margin="5,0,0,0"
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center"
|
||||
Text="px"/>
|
||||
Value="{Binding Settings.LayerPreview.CrosshairMargin}"/>
|
||||
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
@@ -1226,10 +1201,9 @@
|
||||
<StackPanel Orientation="Horizontal" Margin="10" Spacing="10">
|
||||
<NumericUpDown Width="60"
|
||||
|
||||
Minimum="1"
|
||||
Minimum="0"
|
||||
Maximum="254"
|
||||
Value="{Binding Settings.Issues.ResinTrapBinaryThreshold}"
|
||||
/>
|
||||
Value="{Binding Settings.Issues.ResinTrapBinaryThreshold}"/>
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
Text="Pixel intensity threshold for resin trap detection"
|
||||
@@ -1294,7 +1268,7 @@
|
||||
<StackPanel Orientation="Horizontal" Margin="10" Spacing="10">
|
||||
<NumericUpDown Width="60"
|
||||
Minimum="1"
|
||||
Maximum="255"
|
||||
Maximum="4294967295"
|
||||
Value="{Binding Settings.Issues.SuctionCupRequiredAreaToConsider}"/>
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
@@ -1455,6 +1429,7 @@
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="10" Spacing="10">
|
||||
<NumericUpDown Width="60"
|
||||
Classes="ValueLabel ValueLabel_mm"
|
||||
Minimum="-50"
|
||||
Maximum="50"
|
||||
Increment="0.1"
|
||||
@@ -1633,7 +1608,7 @@
|
||||
|
||||
Minimum="0"
|
||||
Maximum="255"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="Default maximum pixel area for Island removal (0 = disable)"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="Islands: Maximum pixel area for Island removal (0 = disable)"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="10,0" Spacing="10">
|
||||
@@ -1643,7 +1618,7 @@
|
||||
|
||||
Minimum="0"
|
||||
Maximum="65535"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="Default maximum layers for recursive island removal (0 = All)"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="Islands: Maximum layers for recursive island removal (0 = All)"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="10,0" Spacing="10">
|
||||
@@ -1652,7 +1627,16 @@
|
||||
Width="70"
|
||||
Minimum="0"
|
||||
Maximum="65535"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="Attempt to attach islands down to this layers (0 = Disabled)"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="Islands: Attempt to attach islands down to this layers (0 = Disabled)"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="10,0" Spacing="10">
|
||||
<NumericUpDown
|
||||
Value="{Binding Settings.LayerRepair.ResinTrapsOverlapBy}"
|
||||
Width="70"
|
||||
Minimum="0"
|
||||
Maximum="255"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="Resin traps: Overlap and expand resin trap area by this value in pixels (0 = Disabled)"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="10,0" Spacing="10">
|
||||
@@ -1662,7 +1646,7 @@
|
||||
|
||||
Minimum="0"
|
||||
Maximum="255"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="Default 'Gap Closing' iterations"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="'Gap Closing' iterations"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="10,0,10,10" Spacing="10">
|
||||
@@ -1672,7 +1656,7 @@
|
||||
|
||||
Minimum="0"
|
||||
Maximum="255"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="Default 'Noise Removal' iterations"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="'Noise Removal' iterations"/>
|
||||
</StackPanel>
|
||||
|
||||
</StackPanel>
|
||||
@@ -1772,7 +1756,7 @@
|
||||
<Grid Margin="10,0,10,10"
|
||||
IsVisible="{Binding Settings.Automations.LightOffDelayExtraTimeVisible}"
|
||||
RowDefinitions="Auto"
|
||||
ColumnDefinitions="Auto,10,150,5,Auto,30,Auto,10,150,5,Auto">
|
||||
ColumnDefinitions="Auto,10,Auto,30,Auto,10,Auto">
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
@@ -1780,31 +1764,24 @@
|
||||
Text="Light-off delay:" />
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
||||
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="0.5"
|
||||
FormatString="F2"
|
||||
Value="{Binding Settings.Automations.LightOffDelay}"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="4"
|
||||
VerticalAlignment="Center"
|
||||
Text="s" />
|
||||
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="6"
|
||||
VerticalAlignment="Center"
|
||||
ToolTip.Tip="Auto set the extra 'bottom light-off delay' based on bottom lift height and speed."
|
||||
Text="Bottom light-off delay:" />
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="8"
|
||||
|
||||
<NumericUpDown Grid.Row="0" Grid.Column="6"
|
||||
Classes="ValueLabel ValueLabel_s"
|
||||
Minimum="0"
|
||||
Maximum="255"
|
||||
Increment="0.5"
|
||||
FormatString="F2"
|
||||
Value="{Binding Settings.Automations.BottomLightOffDelay}"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="10"
|
||||
VerticalAlignment="Center"
|
||||
Text="s" />
|
||||
|
||||
</Grid>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user