Files
UVtools/UVtools.WPF/Controls/Calibrators/CalibrateExposureFinderControl.axaml
T
Tiago Conceição ac51b7c4e0 v2.14.0
- **File Formats:**
   - (Add) SL1S: Prusa SL1S Speed
   - (Add) CTB v4 support (318570758)
   - (Improvement) PHOTON, CBDDLP, CTB v2, PHZ: Disallow per layer settings, beside the format support, printers never use it
   - (Improvement) Longer Orange format with new found keys
   - (Improvement) CXDLP: Fix the resolution from CL-60 and trigger an error when a invalid resolution was set and unable to detect the printer model
- **Prusa Slicer:**
   - (Add) UVtools Prusa SL1S SPEED
   - (Add) Longer Orange 120
   - (Fix) Creality HALOT-ONE CL-60: Flip resolution & display and remove mirror
   - (Fix) Creality HALOT-SKY CL-89: Remove mirror
   - (Improvement) Longer Orange printers with better default settings
- (Add) Button on `Help - Sponsor`: Open github sponsor webpage
2021-07-03 01:16:17 +01:00

1125 lines
53 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="UVtools.WPF.Controls.Calibrators.CalibrateExposureFinderControl">
<Grid ColumnDefinitions="Auto,10,380">
<StackPanel Spacing="10">
<Border BorderBrush="Black" BorderThickness="1" Padding="5">
<Expander IsExpanded="True">
<Expander.Header>
<TextBlock Text="Common properties"
FontWeight="Bold"
Cursor="Hand"/>
</Expander.Header>
<Grid
RowDefinitions="Auto,10,Auto,10,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">
<TextBlock
Grid.Row="0" Grid.Column="0"
VerticalAlignment="Center"
ToolTip.Tip="The printer display width. Required to calculate the pixels per mm."
Text="Display width:"/>
<NumericUpDown Grid.Row="0" Grid.Column="2"
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"
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"
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"
IsEnabled="{Binding !Operation.PatternModel}"
VerticalAlignment="Center"
Text="Layer height:"/>
<NumericUpDown Grid.Row="2" Grid.Column="2"
IsEnabled="{Binding !Operation.PatternModel}"
Increment="0.01"
Minimum="0.01"
Maximum="0.30"
FormatString="F3"
Value="{Binding Operation.LayerHeight}"/>
<TextBlock Grid.Row="2" Grid.Column="4"
IsEnabled="{Binding !Operation.PatternModel}"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="2" Grid.Column="6"
VerticalAlignment="Center"
Text="Bottom layers:"/>
<NumericUpDown Grid.Row="2" Grid.Column="8"
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"
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"
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="Top/bottom margin:"/>
<NumericUpDown Grid.Row="6" Grid.Column="2"
Increment="0.5"
Minimum="0"
Maximum="1000"
Value="{Binding Operation.TopBottomMargin}"/>
<TextBlock Grid.Row="6" Grid.Column="4"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="6" Grid.Column="6"
VerticalAlignment="Center"
Text="Left/right margin:"/>
<NumericUpDown Grid.Row="6" Grid.Column="8"
Increment="0.5"
Minimum="0"
Maximum="1000"
Value="{Binding Operation.LeftRightMargin}"/>
<TextBlock Grid.Row="6" Grid.Column="10"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="8" Grid.Column="0"
VerticalAlignment="Center"
Text="Part margin:"/>
<NumericUpDown Grid.Row="8" Grid.Column="2"
Increment="1"
Minimum="0"
Maximum="10000"
Value="{Binding Operation.PartMargin}"/>
<TextBlock Grid.Row="8" Grid.Column="4"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="10" Grid.Column="0"
VerticalAlignment="Center"
ToolTip.Tip="Chamfer the bottom and top layers"
Text="Chamfer layers:"/>
<NumericUpDown Grid.Row="10" Grid.Column="2"
Increment="1"
Minimum="0"
Maximum="255"
IsEnabled="{Binding Operation.ChamferModel}"
Value="{Binding Operation.ChamferLayers}"/>
<TextBlock Grid.Row="10" Grid.Column="6"
VerticalAlignment="Center"
ToolTip.Tip="Erode bottom iterations to counter the elephant foot"
Text="Erode bottom iter.:"/>
<NumericUpDown Grid.Row="10" Grid.Column="8"
Increment="1"
Minimum="0"
Maximum="255"
Value="{Binding Operation.ErodeBottomIterations}"/>
<CheckBox Grid.Row="12" Grid.Column="2" Grid.ColumnSpan="5"
VerticalAlignment="Center"
IsEnabled="{Binding !Operation.PatternModel}"
IsChecked="{Binding Operation.EnableAntiAliasing}"
Content="Enable Anti-Aliasing"/>
<CheckBox Grid.Row="12" Grid.Column="8"
Grid.ColumnSpan="3"
IsEnabled="{Binding !Operation.PatternModel}"
ToolTip.Tip="Most of the printers requires a mirror output to print with the correct orientation"
IsChecked="{Binding Operation.MirrorOutput}"
Content="Mirror output" />
</Grid>
</Expander>
</Border>
<Border BorderBrush="Black" BorderThickness="1" Padding="5"
IsVisible="{Binding !Operation.PatternModel}">
<Expander IsExpanded="True">
<Expander.Header>
<TextBlock Text="Object configuration"
FontWeight="Bold"
Cursor="Hand"/>
</Expander.Header>
<Grid RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
ColumnDefinitions="Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto">
<TextBlock Grid.Row="0" Grid.Column="0"
Text="Base height:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="2"
Increment="0.5"
Minimum="0.3"
Maximum="100"
FormatString="F2"
Value="{Binding Operation.BaseHeight}"/>
<TextBlock Grid.Row="0" Grid.Column="4"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="0" Grid.Column="6"
Text="Features height:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="8"
Increment="0.5"
Minimum="0.5"
Maximum="100"
FormatString="F2"
Value="{Binding Operation.FeaturesHeight}"/>
<TextBlock Grid.Row="0" Grid.Column="10"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="0" Grid.Column="12"
Text="Features margin:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="14"
Increment="0.5"
Minimum="0"
Maximum="100"
FormatString="F2"
Value="{Binding Operation.FeaturesMargin}"/>
<TextBlock Grid.Row="0" Grid.Column="16"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="2" Grid.Column="0"
ToolTip.Tip="Creates an incremental stair at top from left to right that goes up to the top layer"
Text="Staircase:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="2" Grid.Column="2"
Increment="1"
Minimum="0"
Maximum="65535"
Value="{Binding Operation.StaircaseThickness}"/>
<TextBlock Grid.Row="2" Grid.Column="4"
VerticalAlignment="Center"
Text="px"/>
<CheckBox Grid.Row="4" Grid.Column="0"
Grid.ColumnSpan="17"
FontWeight="Bold"
Content="Pin (positive) / holes (negative):"
VerticalAlignment="Center"
IsChecked="{Binding Operation.HolesEnabled}"/>
<TextBlock Grid.Row="6" Grid.Column="0"
IsEnabled="{Binding Operation.HolesEnabled}"
Text="Shape:"
VerticalAlignment="Center"/>
<ComboBox Grid.Row="6" Grid.Column="2"
IsEnabled="{Binding Operation.HolesEnabled}"
HorizontalAlignment="Stretch"
Items="{Binding Operation.ShapesItems}"
SelectedItem="{Binding Operation.HoleShape}"/>
<TextBlock Grid.Row="6" Grid.Column="6"
Text="Unit of measure:"
VerticalAlignment="Center"/>
<ComboBox Grid.Row="6" Grid.Column="8"
HorizontalAlignment="Stretch"
Items="{Binding Operation.MeasuresItems}"
SelectedItem="{Binding Operation.UnitOfMeasure}"/>
<TextBlock Grid.Row="8" Grid.Column="0"
IsEnabled="{Binding Operation.HolesEnabled}"
Text="Diameters:"
ToolTip.Tip="Diameters separated by a comma (,).
&#x0a;Order doesn't matter.
&#x0a;Values are pixel square, eg: 3 = 3x3 = 9 pixel hole"
VerticalAlignment="Center"/>
<TextBox Grid.Row="8" Grid.Column="2"
Grid.ColumnSpan="13"
IsEnabled="{Binding Operation.HolesEnabled}"
IsVisible="{Binding Operation.IsUnitOfMeasureMm}"
Text="{Binding Operation.HoleDiametersMm}"/>
<TextBox Grid.Row="8" Grid.Column="2"
Grid.ColumnSpan="13"
IsEnabled="{Binding Operation.HolesEnabled}"
IsVisible="{Binding !Operation.IsUnitOfMeasureMm}"
Text="{Binding Operation.HoleDiametersPx}"/>
<TextBlock Grid.Row="8" Grid.Column="16"
IsEnabled="{Binding Operation.HolesEnabled}"
IsVisible="{Binding Operation.IsUnitOfMeasureMm}"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="8" Grid.Column="16"
IsEnabled="{Binding Operation.HolesEnabled}"
IsVisible="{Binding !Operation.IsUnitOfMeasureMm}"
VerticalAlignment="Center"
Text="px"/>
<CheckBox Grid.Row="10" Grid.Column="0"
Grid.ColumnSpan="17"
FontWeight="Bold"
Content="Zebra bars:"
VerticalAlignment="Center"
IsChecked="{Binding Operation.BarsEnabled}"/>
<TextBlock Grid.Row="12" Grid.Column="0"
IsEnabled="{Binding Operation.BarsEnabled}"
Text="Bar spacing:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="12" Grid.Column="2"
IsEnabled="{Binding Operation.BarsEnabled}"
Increment="0.5"
Minimum="0.01"
Maximum="100"
FormatString="F2"
Value="{Binding Operation.BarSpacing}"/>
<TextBlock Grid.Row="12" Grid.Column="4"
IsEnabled="{Binding Operation.BarsEnabled}"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="12" Grid.Column="6"
IsEnabled="{Binding Operation.BarsEnabled}"
Text="Bar length:"
HorizontalAlignment="Right"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="12" Grid.Column="8"
IsEnabled="{Binding Operation.BarsEnabled}"
Increment="0.5"
Minimum="0.01"
Maximum="100"
FormatString="F2"
Value="{Binding Operation.BarLength}"/>
<TextBlock Grid.Row="12" Grid.Column="10"
IsEnabled="{Binding Operation.BarsEnabled}"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="12" Grid.Column="12"
IsEnabled="{Binding Operation.BarsEnabled}"
Text="Vertical splitter:"
HorizontalAlignment="Right"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="12" Grid.Column="14"
IsEnabled="{Binding Operation.BarsEnabled}"
Increment="1"
Minimum="-128"
Maximum="127"
Value="{Binding Operation.BarVerticalSplitter}"/>
<TextBlock Grid.Row="10" Grid.Column="16"
IsEnabled="{Binding Operation.BarsEnabled}"
VerticalAlignment="Center"
Text="px"/>
<TextBlock Grid.Row="14" Grid.Column="0"
IsEnabled="{Binding Operation.BarsEnabled}"
Text="Fence thick:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="14" Grid.Column="2"
IsEnabled="{Binding Operation.BarsEnabled}"
Increment="2"
Minimum="0"
Maximum="255"
Value="{Binding Operation.BarFenceThickness}"/>
<TextBlock Grid.Row="14" Grid.Column="4"
IsEnabled="{Binding Operation.BarsEnabled}"
VerticalAlignment="Center"
Text="px"/>
<TextBlock Grid.Row="14" Grid.Column="6"
IsEnabled="{Binding Operation.BarsEnabled}"
Text="Fence offset:"
HorizontalAlignment="Right"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="14" Grid.Column="8"
IsEnabled="{Binding Operation.BarsEnabled}"
Increment="1"
Minimum="-128"
Maximum="127"
Value="{Binding Operation.BarFenceOffset}"/>
<TextBlock Grid.Row="14" Grid.Column="10"
IsEnabled="{Binding Operation.BarsEnabled}"
VerticalAlignment="Center"
Text="px"/>
<TextBlock Grid.Row="16" Grid.Column="0"
IsEnabled="{Binding Operation.BarsEnabled}"
Text="Thicknesses:"
VerticalAlignment="Center"/>
<TextBox Grid.Row="16" Grid.Column="2"
Grid.ColumnSpan="13"
IsEnabled="{Binding Operation.BarsEnabled}"
IsVisible="{Binding Operation.IsUnitOfMeasureMm}"
Text="{Binding Operation.BarThicknessesMm}"/>
<TextBox Grid.Row="16" Grid.Column="2"
Grid.ColumnSpan="13"
IsEnabled="{Binding Operation.BarsEnabled}"
IsVisible="{Binding !Operation.IsUnitOfMeasureMm}"
Text="{Binding Operation.BarThicknessesPx}"/>
<TextBlock Grid.Row="16" Grid.Column="16"
IsEnabled="{Binding Operation.BarsEnabled}"
IsVisible="{Binding Operation.IsUnitOfMeasureMm}"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="16" Grid.Column="16"
IsEnabled="{Binding Operation.BarsEnabled}"
IsVisible="{Binding !Operation.IsUnitOfMeasureMm}"
VerticalAlignment="Center"
Text="px"/>
<CheckBox Grid.Row="18" Grid.Column="0"
Grid.ColumnSpan="17"
FontWeight="Bold"
Content="Text:"
VerticalAlignment="Center"
IsChecked="{Binding Operation.TextEnabled}"/>
<TextBlock Grid.Row="20" Grid.Column="0"
IsEnabled="{Binding Operation.TextEnabled}"
Text="Font:"
VerticalAlignment="Center"/>
<ComboBox Grid.Row="20" Grid.Column="2"
IsEnabled="{Binding Operation.TextEnabled}"
Grid.ColumnSpan="3"
VerticalAlignment="Center"
HorizontalAlignment="Stretch"
Items="{Binding Operation.TextFonts}"
SelectedItem="{Binding Operation.TextFont}"/>
<TextBlock Grid.Row="20" Grid.Column="6"
IsEnabled="{Binding Operation.TextEnabled}"
Text="Text scale:"
HorizontalAlignment="Right"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="20" Grid.Column="8"
IsEnabled="{Binding Operation.TextEnabled}"
Increment="0.5"
Minimum="0.1"
Maximum="100"
FormatString="F2"
Value="{Binding Operation.TextScale}"/>
<TextBlock Grid.Row="20" Grid.Column="10"
IsEnabled="{Binding Operation.TextEnabled}"
VerticalAlignment="Center"
Text="x"/>
<TextBlock Grid.Row="20" Grid.Column="12"
IsEnabled="{Binding Operation.TextEnabled}"
Text="Text thickness:"
HorizontalAlignment="Right"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="20" Grid.Column="14"
IsEnabled="{Binding Operation.TextEnabled}"
Increment="1"
Minimum="1"
Maximum="255"
Value="{Binding Operation.TextThickness}"/>
<TextBlock Grid.Row="20" Grid.Column="16"
IsEnabled="{Binding Operation.TextEnabled}"
VerticalAlignment="Center"
Text="px"/>
<TextBlock Grid.Row="22" Grid.Column="0"
IsEnabled="{Binding Operation.TextEnabled}"
Text="Text:"
VerticalAlignment="Center"/>
<TextBox Grid.Row="22" Grid.Column="2"
IsEnabled="{Binding Operation.TextEnabled}"
Grid.ColumnSpan="13"
Text="{Binding Operation.Text}"/>
<CheckBox Grid.Row="24" Grid.Column="0"
Grid.ColumnSpan="17"
FontWeight="Bold"
Content="Bullseye:"
VerticalAlignment="Center"
IsChecked="{Binding Operation.BullsEyeEnabled}"/>
<TextBlock Grid.Row="26" Grid.Column="0"
Text="Configuration:"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
ToolTip.Tip="Diameter:Thickness, ..."
VerticalAlignment="Center"/>
<TextBox Grid.Row="26" Grid.Column="2"
Grid.ColumnSpan="13"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
IsVisible="{Binding Operation.IsUnitOfMeasureMm}"
Text="{Binding Operation.BullsEyeConfigurationMm}"/>
<TextBox Grid.Row="26" Grid.Column="2"
Grid.ColumnSpan="13"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
IsVisible="{Binding !Operation.IsUnitOfMeasureMm}"
Text="{Binding Operation.BullsEyeConfigurationPx}"/>
<TextBlock Grid.Row="26" Grid.Column="16"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
IsVisible="{Binding Operation.IsUnitOfMeasureMm}"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="26" Grid.Column="16"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
IsVisible="{Binding !Operation.IsUnitOfMeasureMm}"
VerticalAlignment="Center"
Text="px"/>
<TextBlock Grid.Row="28" Grid.Column="0"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
Text="Fence thick:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="28" Grid.Column="2"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
Increment="2"
Minimum="0"
Maximum="255"
Value="{Binding Operation.BullsEyeFenceThickness}"/>
<TextBlock Grid.Row="28" Grid.Column="4"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
VerticalAlignment="Center"
Text="px"/>
<TextBlock Grid.Row="28" Grid.Column="6"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
Text="Fence offset:"
HorizontalAlignment="Right"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="28" Grid.Column="8"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
Increment="1"
Minimum="-128"
Maximum="127"
Value="{Binding Operation.BullsEyeFenceOffset}"/>
<TextBlock Grid.Row="28" Grid.Column="10"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
VerticalAlignment="Center"
Text="px"/>
<CheckBox Grid.Row="28" Grid.Column="12"
Grid.ColumnSpan="5"
Content="Invert quadrants"
VerticalAlignment="Center"
IsEnabled="{Binding Operation.BullsEyeEnabled}"
IsChecked="{Binding Operation.BullsEyeInvertQuadrants}"/>
<CheckBox Grid.Row="30" Grid.Column="0"
Grid.ColumnSpan="17"
FontWeight="Bold"
Content="Counter triangles:"
VerticalAlignment="Center"
IsChecked="{Binding Operation.CounterTrianglesEnabled}"/>
<TextBlock Grid.Row="32" Grid.Column="0"
Text="Tip Offset:"
IsEnabled="{Binding Operation.CounterTrianglesEnabled}"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="32" Grid.Column="2"
IsEnabled="{Binding Operation.CounterTrianglesEnabled}"
Increment="1"
Minimum="-128"
Maximum="127"
Value="{Binding Operation.CounterTrianglesTipOffset}"/>
<TextBlock Grid.Row="32" Grid.Column="4"
IsEnabled="{Binding Operation.CounterTrianglesEnabled}"
VerticalAlignment="Center"
Text="px"/>
<CheckBox Grid.Row="32" Grid.Column="6"
Grid.ColumnSpan="5"
IsEnabled="{Binding Operation.CounterTrianglesEnabled}"
Content="Fence the triangles"
VerticalAlignment="Center"
IsChecked="{Binding Operation.CounterTrianglesFence}"/>
</Grid>
</Expander>
</Border>
<Border BorderBrush="Black"
BorderThickness="1"
Padding="5">
<Expander IsExpanded="False">
<Expander.Header>
<TextBlock Text="Multiple brightness"
FontWeight="Bold"
Cursor="Hand"/>
</Expander.Header>
<StackPanel Spacing="10">
<TextBlock Text="Only printers able to do Anti-Aliasing and enabled on file can support this, make sure your is supported or else it can print a full white or full black model.
&#x0a;Also take into consideration some printers/formats have fixed usable AA levels and all in between will be threshold, study this first.
&#x0a;If your printer is able to do 'Multiple exposures times per layer', please use that method instead of this (More accurate and AA threshold free)."/>
<CheckBox
Content="Enable - For advanced users only!"
IsChecked="{Binding Operation.MultipleBrightness}"/>
<Grid RowDefinitions="Auto,10,Auto,10,Auto,10,Auto"
ColumnDefinitions="Auto,10,200,5,Auto,20,Auto,10,Auto,5,Auto,5,Auto"
IsEnabled="{Binding Operation.MultipleBrightness}">
<TextBlock Grid.Row="0" Grid.Column="0"
ToolTip.Tip="Do not change brightness from the selected layers. Full brightness of 255 is applied to the skip layers."
Text="Exclude from:"
VerticalAlignment="Center"/>
<ComboBox Grid.Row="0" Grid.Column="2"
VerticalAlignment="Center"
HorizontalAlignment="Stretch"
Items="{Binding Operation.MultipleBrightnessExcludeFromItems}"
SelectedItem="{Binding Operation.MultipleBrightnessExcludeFrom}"/>
<TextBlock Grid.Row="0" Grid.Column="4"
Text="layers"
VerticalAlignment="Center"/>
<TextBlock Grid.Row="0" Grid.Column="6"
ToolTip.Tip="Append a brightness level to the list by giving a desired exposure time. Supplied time must be lower than the common exposure time or you need to increase it on the common 'Normal Exposure'."
Text="Generate by exposure time:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="8"
Increment="0.10"
Minimum="0.10"
Maximum="{Binding Operation.NormalExposure}"
FormatString="F2"
Value="{Binding Operation.MultipleBrightnessGenExposureTime}"/>
<TextBlock Grid.Row="0" Grid.Column="10"
Text="s"
VerticalAlignment="Center"/>
<Button
Grid.Row="0" Grid.Column="12" VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
VerticalAlignment="Stretch"
Command="{Binding BrightnessExposureGenAdd}">
<StackPanel Orientation="Horizontal" Spacing="10">
<Image Source="/Assets/Icons/plus-16x16.png"/>
<TextBlock
VerticalAlignment="Center"
Text="Add"/>
</StackPanel>
</Button>
<TextBlock Grid.Row="2" Grid.Column="0"
Text="Brightnesses:"
ToolTip.Tip="From 1-255, where 1 is almost black and 255 is full white. No half numbers are allowed."
VerticalAlignment="Center"/>
<TextBox Grid.Row="2" Grid.Column="2"
Grid.ColumnSpan="11"
Text="{Binding Operation.MultipleBrightnessValues}"/>
</Grid>
<DataGrid
Name="BrightnessTable"
CanUserReorderColumns="True"
CanUserResizeColumns="True"
CanUserSortColumns="True"
GridLinesVisibility="Horizontal"
IsReadOnly="True"
ClipboardCopyMode="IncludeHeader"
VerticalAlignment="Stretch"
Margin="0,-10,0,0"
IsEnabled="{Binding Operation.MultipleBrightness}"
Items="{Binding Operation.MultipleBrightnessTable}">
<DataGrid.Columns>
<DataGridTextColumn Header="Brightness"
Binding="{Binding Brightness}"
Width="Auto" />
<DataGridTextColumn Header="Percent (%)"
Binding="{Binding BrightnessPercent}"
Width="Auto" />
<DataGridTextColumn Header="Bottom exposure (s)"
Binding="{Binding BottomExposure}"
Width="Auto" />
<DataGridTextColumn Header="Exposure (s)"
Binding="{Binding Exposure}"
Width="Auto" />
</DataGrid.Columns>
</DataGrid>
</StackPanel>
</Expander>
</Border>
<Border BorderBrush="Black"
BorderThickness="1"
Padding="5">
<Border.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.And}">
<Binding Path="CanSupportPerLayerSettings"/>
<Binding Path="!Operation.PatternModel"/>
</MultiBinding>
</Border.IsVisible>
<Expander IsExpanded="False">
<Expander.Header>
<TextBlock Text="Multiple layer height"
FontWeight="Bold"
Cursor="Hand"/>
</Expander.Header>
<StackPanel Spacing="10">
<TextBlock Text="Only few printers support this, make sure your is supported or else it will print a malformed model.
&#x0a;After this, do not apply any modification which reconstruct the z positions of the layers."/>
<CheckBox
Content="Enable - For advanced users only!"
IsChecked="{Binding Operation.MultipleLayerHeight}"/>
<Grid RowDefinitions="Auto"
ColumnDefinitions="Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto"
IsEnabled="{Binding Operation.MultipleLayerHeight}">
<TextBlock Grid.Row="0" Grid.Column="0"
Text="Start layer height:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="2"
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"
Text="Increment step:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="8"
Increment="0.01"
Minimum="0.01"
Maximum="0.1"
FormatString="F3"
Value="{Binding Operation.MultipleLayerHeightStep}"/>
<TextBlock Grid.Row="0" Grid.Column="10"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="0" Grid.Column="12"
Text="Maximum layer height:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="14"
Increment="0.01"
Minimum="{Binding Operation.LayerHeight}"
Maximum="0.3"
FormatString="F3"
Value="{Binding Operation.MultipleLayerHeightMaximum}"/>
<TextBlock Grid.Row="0" Grid.Column="16"
VerticalAlignment="Center"
Text="mm"/>
</Grid>
</StackPanel>
</Expander>
</Border>
<Border BorderBrush="Black"
BorderThickness="1"
Padding="5"
IsVisible="{Binding CanSupportPerLayerSettings}">
<Expander IsExpanded="True">
<Expander.Header>
<TextBlock Text="Multiple exposures"
FontWeight="Bold"
Cursor="Hand"/>
</Expander.Header>
<StackPanel Spacing="10">
<TextBlock Text="Only few printers support this, make sure your is supported or else it will print a malformed model.
&#x0a;After this, do not apply any modification which reconstruct the z positions of the layers."/>
<CheckBox
Content="Enable - For advanced users only!"
IsChecked="{Binding Operation.MultipleExposures}"/>
<StackPanel Orientation="Horizontal" Spacing="20"
IsVisible="{Binding SlicerFile.CanUseLayerLiftHeight}">
<CheckBox
ToolTip.Tip="The lift height will be set to 0 for sequential layers that share same z position, saving moves and time.
&#x0a;Some printers may not support this and always require a lift after each layer, in that case turning this on will not affect the print."
Content="Do not perform the lifting sequence for layers with same Z positioning"
IsEnabled="{Binding Operation.MultipleExposures}"
IsChecked="{Binding Operation.DontLiftSamePositionedLayers}"/>
<CheckBox
ToolTip.Tip="Sets the light-off delay to zero for each sequential layers with no lift's to save that additional time.
&#x0a;Note that without a lift and a delay the UV LED and LCD will be almost always ON, that can lead to overheat and wear the LCD faster."
Content="Also set light-off delay to zero"
IsEnabled="{Binding Operation.DontLiftSamePositionedLayers}"
IsChecked="{Binding Operation.ZeroLightOffSamePositionedLayers}"/>
</StackPanel>
<TextBlock Text="Automatic exposure generation:"
IsEnabled="{Binding Operation.MultipleExposures}"
FontWeight="Bold"/>
<Grid RowDefinitions="Auto,10,Auto"
ColumnDefinitions="Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto"
IsEnabled="{Binding Operation.MultipleExposures}">
<TextBlock Grid.Row="0" Grid.Column="0"
ToolTip.Tip="Linear: Current exposure + step * test number.
&#x0a;Multiplier: Current exposure * layer height * step * test number."
Text="Generation type:"
VerticalAlignment="Center"/>
<ComboBox Grid.Row="0" Grid.Column="2"
VerticalAlignment="Center"
HorizontalAlignment="Stretch"
Items="{Binding Operation.ExposureGenTypeItems}"
SelectedItem="{Binding Operation.ExposureGenType}"/>
<CheckBox Grid.Row="0" Grid.Column="6" Grid.ColumnSpan="5"
VerticalAlignment="Center"
Content="Ignore global exposures"
IsChecked="{Binding Operation.ExposureGenIgnoreBaseExposure}"/>
<Button Grid.Row="0" Grid.Column="12" Grid.ColumnSpan="5"
Content="Generate exposure table"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Command="{Binding GenerateExposureTable}"/>
<TextBlock Grid.Row="2" Grid.Column="0"
ToolTip.Tip="Bottom exposure step"
Text="Bottom step:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="2" Grid.Column="2"
Increment="0.01"
Minimum="0"
Maximum="1000"
FormatString="F2"
Value="{Binding Operation.ExposureGenBottomStep}"/>
<TextBlock Grid.Row="2" Grid.Column="4"
VerticalAlignment="Center"
Text="s"/>
<TextBlock Grid.Row="2" Grid.Column="6"
ToolTip.Tip="Normal exposure step"
Text="Normal step:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="2" Grid.Column="8"
Increment="0.01"
Minimum="0.01"
Maximum="1000"
FormatString="F2"
Value="{Binding Operation.ExposureGenNormalStep}"/>
<TextBlock Grid.Row="2" Grid.Column="10"
VerticalAlignment="Center"
Text="s"/>
<TextBlock Grid.Row="2" Grid.Column="12"
ToolTip.Tip="Maximum of generations per layer height"
Text="Maximum generations:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="2" Grid.Column="14"
Increment="1"
Minimum="1"
Maximum="255"
Value="{Binding Operation.ExposureGenTests}"/>
<TextBlock Grid.Row="2" Grid.Column="16"
VerticalAlignment="Center"
Text="tests"/>
</Grid>
<TextBlock Text="Manual exposure entry:"
IsEnabled="{Binding Operation.MultipleExposures}"
FontWeight="Bold"/>
<Grid RowDefinitions="Auto,10,Auto"
ColumnDefinitions="Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto,10,Auto"
IsEnabled="{Binding Operation.MultipleExposures}">
<TextBlock Grid.Row="0" Grid.Column="0"
Text="Layer height:"
VerticalAlignment="Center"/>
<ComboBox Grid.Row="0" Grid.Column="2"
VerticalAlignment="Center"
HorizontalAlignment="Stretch"
MinWidth="100"
Items="{Binding Operation.AvailableLayerHeights}"
SelectedItem="{Binding Operation.ExposureGenManualLayerHeight}"/>
<TextBlock Grid.Row="0" Grid.Column="4"
Text="mm"
VerticalAlignment="Center"/>
<TextBlock Grid.Row="0" Grid.Column="6"
Text="Bottom exposure:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="8"
Increment="0.1"
Minimum="0.5"
Maximum="1000"
FormatString="F2"
Value="{Binding Operation.ExposureGenManualBottom}"/>
<TextBlock Grid.Row="0" Grid.Column="10"
VerticalAlignment="Center"
Text="s"/>
<TextBlock Grid.Row="0" Grid.Column="12"
Text="Normal exposure:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="14"
Increment="0.1"
Minimum="0.1"
Maximum="1000"
FormatString="F2"
Value="{Binding Operation.ExposureGenManualNormal}"/>
<TextBlock Grid.Row="0" Grid.Column="16"
VerticalAlignment="Center"
Text="s"/>
<Button
Grid.Row="0" Grid.Column="18" VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
VerticalAlignment="Stretch"
IsEnabled="{Binding Operation.ExposureGenManualLayerHeight}"
Command="{Binding ExposureTableAddManual}">
<StackPanel Orientation="Horizontal" Spacing="10">
<Image Source="/Assets/Icons/plus-16x16.png"/>
<TextBlock
VerticalAlignment="Center"
Text="Add"/>
</StackPanel>
</Button>
</Grid>
<Grid RowDefinitions="Auto" ColumnDefinitions="Auto,*,Auto"
IsEnabled="{Binding Operation.MultipleExposures}"
Margin="0,10,0,0">
<TextBlock Text="{Binding Operation.ExposureTable.Count, StringFormat=Exposure table: {0} entries}" FontWeight="Bold"/>
<Button
Grid.Column="1" VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
HorizontalAlignment="Right"
IsEnabled="{Binding #ExposureTable.SelectedItem, Converter={x:Static ObjectConverters.IsNotNull}}"
Command="{Binding ExposureTableRemoveSelectedEntries}">
<StackPanel Orientation="Horizontal" Spacing="10">
<Image Source="/Assets/Icons/trash-16x16.png"/>
<TextBlock
VerticalAlignment="Center"
Text="Remove selected entries"/>
</StackPanel>
</Button>
<Button
Grid.Column="2" VerticalContentAlignment="Center"
Margin="10,0,0,0"
HorizontalContentAlignment="Center"
HorizontalAlignment="Right"
IsEnabled="{Binding Operation.ExposureTable.Count}"
Command="{Binding ExposureTableClearEntries}">
<StackPanel Orientation="Horizontal" Spacing="10">
<Image Source="/Assets/Icons/delete-16x16.png"/>
<TextBlock
VerticalAlignment="Center"
Text="{Binding Operation.ExposureTable.Count, StringFormat=Clear {0} entries}"/>
</StackPanel>
</Button>
</Grid>
<DataGrid
Name="ExposureTable"
CanUserReorderColumns="True"
CanUserResizeColumns="True"
CanUserSortColumns="True"
GridLinesVisibility="Horizontal"
IsReadOnly="False"
ClipboardCopyMode="IncludeHeader"
VerticalAlignment="Stretch"
MinHeight="100"
Margin="0,-10,0,0"
IsEnabled="{Binding Operation.MultipleExposures}"
Items="{Binding Operation.ExposureTable}">
<DataGrid.Columns>
<DataGridTextColumn Header="Layer height (mm)"
Binding="{Binding LayerHeight}"
Width="Auto" />
<DataGridTextColumn Header="Bottom exposure (s)"
Binding="{Binding BottomExposure}"
Width="Auto" />
<DataGridTextColumn Header="Exposure (s)"
Binding="{Binding Exposure}"
Width="Auto" />
</DataGrid.Columns>
</DataGrid>
</StackPanel>
</Expander>
</Border>
<Border BorderBrush="Black"
BorderThickness="1"
Padding="5"
IsVisible="{Binding Operation.CanPatternModel}">
<Expander IsExpanded="False">
<Expander.Header>
<TextBlock Text="Pattern loaded model"
FontWeight="Bold"
Cursor="Hand"/>
</Expander.Header>
<StackPanel Spacing="10">
<TextBlock Text="This option will pattern the current loaded model and generate multiple exposure tests with it.
&#x0a;Only few printers support this, make sure your is supported or else it will print a malformed model.
&#x0a;After this, do not apply any modification which reconstruct the z positions of the layers."/>
<CheckBox
Content="Enable - For advanced users only!"
IsChecked="{Binding Operation.PatternModel}"/>
<CheckBox
Content="Glue bottom layers to merge the model into one piece"
ToolTip.Tip="If enabled, it will turn the bottom layers within the model area with solid white to merge all clones into one merged piece.
&#x0a;Requires 'Part margin = 0' for effectively merge the models"
IsEnabled="{Binding Operation.PatternModel}"
IsChecked="{Binding Operation.PatternModelGlueBottomLayers}"/>
<!--
<Grid RowDefinitions="Auto"
ColumnDefinitions="Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto,20,Auto,10,Auto,5,Auto"
IsEnabled="{Binding Operation.MultipleLayerHeight}">
<TextBlock Grid.Row="0" Grid.Column="0"
Text="Start layer height:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="2"
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"
Text="Increment step:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="8"
Increment="0.01"
Minimum="0.01"
Maximum="0.1"
FormatString="F3"
Value="{Binding Operation.MultipleLayerHeightStep}"/>
<TextBlock Grid.Row="0" Grid.Column="10"
VerticalAlignment="Center"
Text="mm"/>
<TextBlock Grid.Row="0" Grid.Column="12"
Text="Maximum layer height:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="14"
Increment="0.01"
Minimum="{Binding Operation.LayerHeight}"
Maximum="0.3"
FormatString="F3"
Value="{Binding Operation.MultipleLayerHeightMaximum}"/>
<TextBlock Grid.Row="0" Grid.Column="16"
VerticalAlignment="Center"
Text="mm"/>
</Grid>
!-->
</StackPanel>
</Expander>
</Border>
</StackPanel>
<Image Grid.Column="2"
HorizontalAlignment="Center"
VerticalAlignment="Top"
MaxHeight="600"
Stretch="Uniform"
Source="{Binding PreviewImage}"/>
</Grid>
</UserControl>