Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sn4k3/UVtools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'UVtools.WPF')
-rw-r--r--UVtools.WPF/App.axaml.cs19
-rw-r--r--UVtools.WPF/Assets/Icons/folder-open-16x16.pngbin0 -> 156 bytes
-rw-r--r--UVtools.WPF/Controls/Calibrators/CalibrateElephantFootControl.axaml317
-rw-r--r--UVtools.WPF/Controls/Calibrators/CalibrateExposureFinderControl.axaml1516
-rw-r--r--UVtools.WPF/Controls/Calibrators/CalibrateExternalTestsControl.axaml4
-rw-r--r--UVtools.WPF/Controls/Calibrators/CalibrateGrayscaleControl.axaml25
-rw-r--r--UVtools.WPF/Controls/Calibrators/CalibrateStressTowerControl.axaml486
-rw-r--r--UVtools.WPF/Controls/Calibrators/CalibrateToleranceControl.axaml279
-rw-r--r--UVtools.WPF/Controls/Calibrators/CalibrateXYZAccuracyControl.axaml44
-rw-r--r--UVtools.WPF/Controls/Helpers.cs3
-rw-r--r--UVtools.WPF/Controls/Tools/ToolMorphControl.axaml26
-rw-r--r--UVtools.WPF/Controls/Tools/ToolPixelArithmeticControl.axaml353
-rw-r--r--UVtools.WPF/Controls/Tools/ToolPixelArithmeticControl.axaml.cs15
-rw-r--r--UVtools.WPF/MainWindow.Information.cs67
-rw-r--r--UVtools.WPF/MainWindow.axaml16
-rw-r--r--UVtools.WPF/MainWindow.axaml.cs34
-rw-r--r--UVtools.WPF/UVtools.WPF.csproj10
-rw-r--r--UVtools.WPF/Windows/MaterialManagerWindow.axaml4
-rw-r--r--UVtools.WPF/Windows/SettingsWindow.axaml.cs2
-rw-r--r--UVtools.WPF/Windows/ToolWindow.axaml.cs2
20 files changed, 1790 insertions, 1432 deletions
diff --git a/UVtools.WPF/App.axaml.cs b/UVtools.WPF/App.axaml.cs
index c5199fe..badd7bf 100644
--- a/UVtools.WPF/App.axaml.cs
+++ b/UVtools.WPF/App.axaml.cs
@@ -127,6 +127,25 @@ namespace UVtools.WPF
}
}
+ public static bool SelectFileOnExplorer(string filePath)
+ {
+ if (!File.Exists(filePath))
+ {
+ return false;
+ }
+
+ if (OperatingSystem.IsWindows())
+ {
+ StartProcess("explorer.exe", $"/select,\"{filePath}\"");
+ }
+ else
+ {
+ StartProcess(Path.GetDirectoryName(filePath));
+ }
+
+ return true;
+ }
+
public static void OpenBrowser(string url)
{
try
diff --git a/UVtools.WPF/Assets/Icons/folder-open-16x16.png b/UVtools.WPF/Assets/Icons/folder-open-16x16.png
new file mode 100644
index 0000000..f47b011
--- /dev/null
+++ b/UVtools.WPF/Assets/Icons/folder-open-16x16.png
Binary files differ
diff --git a/UVtools.WPF/Controls/Calibrators/CalibrateElephantFootControl.axaml b/UVtools.WPF/Controls/Calibrators/CalibrateElephantFootControl.axaml
index 82863cf..885987f 100644
--- a/UVtools.WPF/Controls/Calibrators/CalibrateElephantFootControl.axaml
+++ b/UVtools.WPF/Controls/Calibrators/CalibrateElephantFootControl.axaml
@@ -190,178 +190,175 @@
</Grid>
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
- <Expander IsExpanded="True">
- <Expander.Header>
- <TextBlock Text="{Binding Operation.ErodeObjects, StringFormat=Morph - Erode [\{0\} objects]}"
- FontWeight="Bold"
- Cursor="Hand"/>
- </Expander.Header>
-
- <StackPanel>
- <Grid
- Margin="0,10,0,0"
- RowDefinitions="Auto,10,Auto"
- ColumnDefinitions="Auto,10,Auto,5,Auto,5,Auto,5,Auto,30,Auto,10,Auto"
- >
-
- <CheckBox Grid.Row="0" Grid.Column="2"
- VerticalAlignment="Center"
- IsChecked="{Binding Operation.IsErodeEnabled}"
- Content="Enable"/>
-
-
- <TextBlock Grid.Row="2" Grid.Column="0"
- VerticalAlignment="Center"
- Text="Iterations range:"/>
-
- <NumericUpDown Grid.Row="2" Grid.Column="2"
-
- IsEnabled="{Binding Operation.IsErodeEnabled}"
- Increment="1"
- Minimum="1"
- Maximum="30"
- Value="{Binding Operation.ErodeStartIteration}"/>
-
-
- <TextBlock Grid.Row="2" Grid.Column="4"
- VerticalAlignment="Center"
- Text="-"/>
-
- <NumericUpDown Grid.Row="2" Grid.Column="6"
-
- IsEnabled="{Binding Operation.IsErodeEnabled}"
- Increment="1"
- Minimum="1"
- Maximum="30"
- Value="{Binding Operation.ErodeEndIteration}"/>
-
- <TextBlock Grid.Row="2" Grid.Column="8"
- VerticalAlignment="Center"
- Text="px"/>
-
- <TextBlock Grid.Row="2" Grid.Column="10"
- VerticalAlignment="Center"
- Text="Step increment(s):"/>
-
- <NumericUpDown Grid.Row="2" Grid.Column="12"
-
- IsEnabled="{Binding Operation.IsErodeEnabled}"
- Increment="1"
- Minimum="1"
- Maximum="20"
- Value="{Binding Operation.ErodeIterationSteps}"/>
-
- </Grid>
-
- <Border
- Margin="0,10,0,0">
- <Expander>
- <Expander.Header>
- <TextBlock Text="Kernel - Advanced options (Click to expand)"
- FontWeight="Bold"
- Cursor="Hand"
- />
- </Expander.Header>
- <controls:KernelControl
- Name="KernelCtrl"
- Margin="0,10,0,0"
- />
- </Expander>
- </Border>
-
- </StackPanel>
-
- </Expander>
- </Border>
-
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
- <Expander IsExpanded="True">
- <Expander.Header>
- <TextBlock Text="{Binding Operation.DimmingObjects, StringFormat=Wall dimming [\{0\} objects]}"
- FontWeight="Bold"
- Cursor="Hand"/>
- </Expander.Header>
-
- <Grid
- Margin="0,10,0,0"
- RowDefinitions="Auto,10,Auto,10,Auto,5,Auto"
- ColumnDefinitions="Auto,10,Auto,5,Auto,5,Auto,5,Auto,20,Auto,10,Auto"
- >
-
- <CheckBox Grid.Row="0" Grid.Column="2"
- Grid.ColumnSpan="11"
+
+ <Expander IsExpanded="True">
+ <Expander.Header>
+ <TextBlock Text="{Binding Operation.ErodeObjects, StringFormat=Morph - Erode [\{0\} objects]}"
+ FontWeight="Bold"
+ Cursor="Hand"/>
+ </Expander.Header>
+
+ <StackPanel>
+ <Grid
+
+ RowDefinitions="Auto,10,Auto"
+ ColumnDefinitions="Auto,10,Auto,5,Auto,5,Auto,5,Auto,30,Auto,10,Auto"
+ >
+
+ <CheckBox Grid.Row="0" Grid.Column="2"
+ VerticalAlignment="Center"
+ IsChecked="{Binding Operation.IsErodeEnabled}"
+ Content="Enable"/>
+
+
+ <TextBlock Grid.Row="2" Grid.Column="0"
VerticalAlignment="Center"
- IsChecked="{Binding Operation.IsDimmingEnabled}"
- Content="Enable - Requires a compatible anti-aliased file format and printer"/>
+ Text="Iterations range:"/>
+
+ <NumericUpDown Grid.Row="2" Grid.Column="2"
+
+ IsEnabled="{Binding Operation.IsErodeEnabled}"
+ Increment="1"
+ Minimum="1"
+ Maximum="30"
+ Value="{Binding Operation.ErodeStartIteration}"/>
+
+
+ <TextBlock Grid.Row="2" Grid.Column="4"
+ VerticalAlignment="Center"
+ Text="-"/>
+
+ <NumericUpDown Grid.Row="2" Grid.Column="6"
+
+ IsEnabled="{Binding Operation.IsErodeEnabled}"
+ Increment="1"
+ Minimum="1"
+ Maximum="30"
+ Value="{Binding Operation.ErodeEndIteration}"/>
+
+ <TextBlock Grid.Row="2" Grid.Column="8"
+ VerticalAlignment="Center"
+ Text="px"/>
+
+ <TextBlock Grid.Row="2" Grid.Column="10"
+ VerticalAlignment="Center"
+ Text="Step increment(s):"/>
+
+ <NumericUpDown Grid.Row="2" Grid.Column="12"
+
+ IsEnabled="{Binding Operation.IsErodeEnabled}"
+ Increment="1"
+ Minimum="1"
+ Maximum="20"
+ Value="{Binding Operation.ErodeIterationSteps}"/>
+
+ </Grid>
+
+ <Border
+ Margin="0,10,0,0">
+ <Expander>
+ <Expander.Header>
+ <TextBlock Text="Kernel - Advanced options (Click to expand)"
+ FontWeight="Bold"
+ Cursor="Hand"
+ />
+ </Expander.Header>
+ <controls:KernelControl
+ Name="KernelCtrl"
+ Margin="0,10,0,0"
+ />
+ </Expander>
+ </Border>
- <TextBlock Grid.Row="2" Grid.Column="0"
- VerticalAlignment="Center"
- Text="Wall thickness:"/>
+ </StackPanel>
- <NumericUpDown Grid.Row="2" Grid.Column="2"
-
- IsEnabled="{Binding Operation.IsDimmingEnabled}"
- Increment="1"
- Minimum="1"
- Maximum="255"
- Value="{Binding Operation.DimmingWallThickness}"/>
+ </Expander>
- <TextBlock Grid.Row="2" Grid.Column="4"
- VerticalAlignment="Center"
- Text="px"/>
+
+ <Expander IsExpanded="True">
+ <Expander.Header>
+ <TextBlock Text="{Binding Operation.DimmingObjects, StringFormat=Wall dimming [\{0\} objects]}"
+ FontWeight="Bold"
+ Cursor="Hand"/>
+ </Expander.Header>
+ <Grid
+ RowDefinitions="Auto,10,Auto,10,Auto,5,Auto"
+ ColumnDefinitions="Auto,10,Auto,5,Auto,5,Auto,5,Auto,20,Auto,10,Auto"
+ >
- <TextBlock Grid.Row="4" Grid.Column="0"
- VerticalAlignment="Center"
- Text="Brightness range:"/>
+ <CheckBox Grid.Row="0" Grid.Column="2"
+ Grid.ColumnSpan="11"
+ VerticalAlignment="Center"
+ IsChecked="{Binding Operation.IsDimmingEnabled}"
+ Content="Enable - Requires a compatible anti-aliased file format and printer"/>
- <NumericUpDown Grid.Row="4" Grid.Column="2"
-
- IsEnabled="{Binding Operation.IsDimmingEnabled}"
- Increment="1"
- Minimum="1"
- Maximum="254"
- Value="{Binding Operation.DimmingStartBrightness}"/>
+ <TextBlock Grid.Row="2" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Wall thickness:"/>
+ <NumericUpDown Grid.Row="2" Grid.Column="2"
+
+ IsEnabled="{Binding Operation.IsDimmingEnabled}"
+ Increment="1"
+ Minimum="1"
+ Maximum="255"
+ Value="{Binding Operation.DimmingWallThickness}"/>
- <TextBlock Grid.Row="4" Grid.Column="4"
- VerticalAlignment="Center"
- HorizontalAlignment="Center"
- Text="-"/>
-
- <NumericUpDown Grid.Row="4" Grid.Column="6"
-
- IsEnabled="{Binding Operation.IsDimmingEnabled}"
- Increment="1"
- Minimum="2"
- Maximum="254"
- Value="{Binding Operation.DimmingEndBrightness}"/>
-
- <TextBlock Grid.Row="4" Grid.Column="10"
- VerticalAlignment="Center"
- Text="Step increment(s):"/>
+ <TextBlock Grid.Row="2" Grid.Column="4"
+ VerticalAlignment="Center"
+ Text="px"/>
- <NumericUpDown Grid.Row="4" Grid.Column="12"
-
- IsEnabled="{Binding Operation.IsDimmingEnabled}"
- Increment="1"
- Minimum="2"
- Maximum="254"
- Value="{Binding Operation.DimmingBrightnessSteps}"/>
- <TextBlock Grid.Row="6" Grid.Column="2"
- VerticalAlignment="Center"
- HorizontalAlignment="Center"
- Text="{Binding Operation.DimmingStartBrightnessPercent, StringFormat=(\{0\}%)}"/>
- <TextBlock Grid.Row="6" Grid.Column="6"
- VerticalAlignment="Center"
- HorizontalAlignment="Center"
- Text="{Binding Operation.DimmingEndBrightnessPercent, StringFormat=(\{0\}%)}"/>
- </Grid>
+ <TextBlock Grid.Row="4" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Brightness range:"/>
+
+ <NumericUpDown Grid.Row="4" Grid.Column="2"
+
+ IsEnabled="{Binding Operation.IsDimmingEnabled}"
+ Increment="1"
+ Minimum="1"
+ Maximum="254"
+ Value="{Binding Operation.DimmingStartBrightness}"/>
+
+
+ <TextBlock Grid.Row="4" Grid.Column="4"
+ VerticalAlignment="Center"
+ HorizontalAlignment="Center"
+ Text="-"/>
+
+ <NumericUpDown Grid.Row="4" Grid.Column="6"
+
+ IsEnabled="{Binding Operation.IsDimmingEnabled}"
+ Increment="1"
+ Minimum="2"
+ Maximum="254"
+ Value="{Binding Operation.DimmingEndBrightness}"/>
+
+ <TextBlock Grid.Row="4" Grid.Column="10"
+ VerticalAlignment="Center"
+ Text="Step increment(s):"/>
+
+ <NumericUpDown Grid.Row="4" Grid.Column="12"
+
+ IsEnabled="{Binding Operation.IsDimmingEnabled}"
+ Increment="1"
+ Minimum="2"
+ Maximum="254"
+ Value="{Binding Operation.DimmingBrightnessSteps}"/>
+
+ <TextBlock Grid.Row="6" Grid.Column="2"
+ VerticalAlignment="Center"
+ HorizontalAlignment="Center"
+ Text="{Binding Operation.DimmingStartBrightnessPercent, StringFormat=(\{0\}%)}"/>
+ <TextBlock Grid.Row="6" Grid.Column="6"
+ VerticalAlignment="Center"
+ HorizontalAlignment="Center"
+ Text="{Binding Operation.DimmingEndBrightnessPercent, StringFormat=(\{0\}%)}"/>
+ </Grid>
- </Expander>
- </Border>
+ </Expander>
</StackPanel>
diff --git a/UVtools.WPF/Controls/Calibrators/CalibrateExposureFinderControl.axaml b/UVtools.WPF/Controls/Calibrators/CalibrateExposureFinderControl.axaml
index 2ffeb4b..7061e5d 100644
--- a/UVtools.WPF/Controls/Calibrators/CalibrateExposureFinderControl.axaml
+++ b/UVtools.WPF/Controls/Calibrators/CalibrateExposureFinderControl.axaml
@@ -7,811 +7,812 @@
<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"
+ <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"
+ 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}"
- 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 (,).
+ 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>
+
+ <Expander IsExpanded="True" IsVisible="{Binding !Operation.PatternModel}">
+ <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"
+ IsVisible="{Binding !Operation.IsUnitOfMeasureMm}"
+ Increment="1"
+ Minimum="0"
+ Maximum="65535"
+ Value="{Binding Operation.StaircaseThicknessPx}"/>
+ <NumericUpDown Grid.Row="2" Grid.Column="2"
+ IsVisible="{Binding Operation.IsUnitOfMeasureMm}"
+ Increment="1"
+ Minimum="0"
+ Maximum="500"
+ Value="{Binding Operation.StaircaseThicknessMm}"/>
+
+ <TextBlock Grid.Row="2" Grid.Column="4"
+ VerticalAlignment="Center"
+ IsVisible="{Binding !Operation.IsUnitOfMeasureMm}"
+ Text="px"/>
+ <TextBlock Grid.Row="2" Grid.Column="4"
+ VerticalAlignment="Center"
+ IsVisible="{Binding Operation.IsUnitOfMeasureMm}"
+ Text="mm"/>
+
+ <TextBlock Grid.Row="2" Grid.Column="6"
+ Text="Unit of measure:"
+ VerticalAlignment="Center"/>
+
+ <ComboBox Grid.Row="2" Grid.Column="8"
+ HorizontalAlignment="Stretch"
+ Items="{Binding Operation.MeasuresItems}"
+ SelectedItem="{Binding Operation.UnitOfMeasure}"/>
+
+ <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="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"
+ 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}"
- 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"
+ 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}"
- VerticalAlignment="Center"
- Text="mm"/>
-
- <TextBlock Grid.Row="12" Grid.Column="12"
+ 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}"
- 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"
+ 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}"
- 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"
+ 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}"
- 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"
+ 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}"
- 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"
+ 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}"
- 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:"
+ 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}"
- 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"
+ 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}"
- 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:"
+ 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}"
- VerticalAlignment="Center"/>
+ Increment="1"
+ Minimum="-128"
+ Maximum="127"
+ Value="{Binding Operation.CounterTrianglesTipOffset}"/>
- <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"/>
- <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}"/>
- <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>
- </Grid>
+ </Expander>
- </Expander>
- </Border>
-
- <Border BorderBrush="Black"
- BorderThickness="1"
- Padding="5">
- <Expander IsExpanded="False">
- <Expander.Header>
- <StackPanel Orientation="Horizontal" Cursor="Hand">
- <TextBlock Text="Multiple brightness"
- IsVisible="{Binding !SlicerFile.IsAntiAliasingEmulated}"
- FontWeight="Bold"/>
- <TextBlock Text="Multiple brightness/exposures with emulated AntiAliasing and time fractions"
- IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
- FontWeight="Bold"/>
- </StackPanel>
- </Expander.Header>
+ <Expander IsExpanded="False">
+ <Expander.Header>
+ <StackPanel Orientation="Horizontal" Cursor="Hand">
+ <TextBlock Text="Multiple brightness"
+ IsVisible="{Binding !SlicerFile.IsAntiAliasingEmulated}"
+ FontWeight="Bold"/>
+ <TextBlock Text="Multiple brightness/exposures with emulated AntiAliasing and time fractions"
+ IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
+ FontWeight="Bold"/>
+ </StackPanel>
- <StackPanel Spacing="10">
+ </Expander.Header>
+
+ <StackPanel Spacing="10">
- <TextBlock
- Text="Only printers able to do Anti-Aliasing and enabled on file can support this.
+ <TextBlock
+ Text="Only printers able to do Anti-Aliasing and enabled on file can support this.
&#x0a;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;When using this section, always set the exposure time to the highest time you want to test.
&#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)."/>
- <TextBlock
- IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
- TextWrapping="Wrap"
- FontWeight="Bold"
- Text="Note: This file format uses time fractions to emulate AntiAliasing.
+ <TextBlock
+ IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
+ TextWrapping="Wrap"
+ FontWeight="Bold"
+ Text="Note: This file format uses time fractions to emulate AntiAliasing.
&#x0a;This can be used to replace the 'Multiple exposures' sections and print multiple models at once at different timings.
&#x0a;However you can't set the object time, instead fractions of the main exposure must be used.
&#x0a;The brightness table will tell you the expected exposure time of each object."/>
- <CheckBox
- Content="Enable - For advanced users only!"
- IsChecked="{Binding Operation.MultipleBrightness}"/>
+ <CheckBox
+ Content="Enable - For advanced users only!"
+ IsChecked="{Binding Operation.MultipleBrightness}"/>
- <Grid RowDefinitions="Auto,10,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}">
+ <Grid RowDefinitions="Auto,10,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="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"
+ IsVisible="{Binding !SlicerFile.IsAntiAliasingEmulated}"
+ 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"/>
- <TextBlock Grid.Row="0" Grid.Column="6"
+ <NumericUpDown Grid.Row="0" Grid.Column="8"
IsVisible="{Binding !SlicerFile.IsAntiAliasingEmulated}"
- 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"/>
+ Increment="0.10"
+ Minimum="0.10"
+ Maximum="{Binding Operation.NormalExposure}"
+ FormatString="F2"
+ Value="{Binding Operation.MultipleBrightnessGenExposureTime}"/>
- <NumericUpDown Grid.Row="0" Grid.Column="8"
- IsVisible="{Binding !SlicerFile.IsAntiAliasingEmulated}"
- Increment="0.10"
- Minimum="0.10"
- Maximum="{Binding Operation.NormalExposure}"
- FormatString="F2"
- Value="{Binding Operation.MultipleBrightnessGenExposureTime}"/>
+ <TextBlock Grid.Row="0" Grid.Column="10"
+ IsVisible="{Binding !SlicerFile.IsAntiAliasingEmulated}"
+ Text="s"
+ VerticalAlignment="Center"/>
- <TextBlock Grid.Row="0" Grid.Column="10"
- IsVisible="{Binding !SlicerFile.IsAntiAliasingEmulated}"
- Text="s"
- VerticalAlignment="Center"/>
+ <Button
+ Grid.Row="0" Grid.Column="12" VerticalContentAlignment="Center"
+ IsVisible="{Binding !SlicerFile.IsAntiAliasingEmulated}"
+ 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>
- <Button
- Grid.Row="0" Grid.Column="12" VerticalContentAlignment="Center"
- IsVisible="{Binding !SlicerFile.IsAntiAliasingEmulated}"
- 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"/>
+ <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}"/>
+ <TextBox Grid.Row="2" Grid.Column="2"
+ Grid.ColumnSpan="11"
+ Text="{Binding Operation.MultipleBrightnessValues}"/>
- <!--
- <TextBlock Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3"
+ <!--
+ <TextBlock Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3"
+ IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
+ FontWeight="Bold"
+ Text="Emulated AntiAliasing with time fractions"
+ VerticalAlignment="Center"/>
+ !-->
+
+ <TextBlock Grid.Row="4" Grid.Column="0"
IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
- FontWeight="Bold"
- Text="Emulated AntiAliasing with time fractions"
+ ToolTip.Tip="AntiAliasing level to set on file.
+&#x0a;This value is used to set the maximum available time fractions on the next field.
+&#x0a;Lower levels have larger time windows, while higher levels allow lower time windows (Recommended)."
+ Text="AntiAliasing:"
VerticalAlignment="Center"/>
- !-->
- <TextBlock Grid.Row="4" Grid.Column="0"
+ <NumericUpDown Grid.Row="4" Grid.Column="2"
IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
- ToolTip.Tip="AntiAliasing level to set on file.
-&#x0a;This value is used to set the maximum available time fractions on the next field.
-&#x0a;Lower levels have larger time windows, while higher levels allow lower time windows (Recommended)."
- Text="AntiAliasing:"
- VerticalAlignment="Center"/>
+ Increment="2"
+ Minimum="2"
+ Maximum="{Binding Operation.MaximumAntiAliasing}"
+ Value="{Binding Operation.MultipleBrightnessGenEmulatedAALevel}"/>
+
+ <TextBlock Grid.Row="4" Grid.Column="4"
+ IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
+ Text="x"
+ VerticalAlignment="Center"/>
- <NumericUpDown Grid.Row="4" Grid.Column="2"
- IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
- Increment="2"
- Minimum="2"
- Maximum="{Binding Operation.MaximumAntiAliasing}"
- Value="{Binding Operation.MultipleBrightnessGenEmulatedAALevel}"/>
- <TextBlock Grid.Row="4" Grid.Column="4"
- IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
- Text="x"
- VerticalAlignment="Center"/>
+ <TextBlock Grid.Row="4" Grid.Column="6"
+ IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
+ ToolTip.Tip="Amount of fractions from the main exposure: 2 to 16"
+ Text="Generate by time fractions:"
+ VerticalAlignment="Center"/>
+
+ <NumericUpDown Grid.Row="4" Grid.Column="8"
+ IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
+ Increment="1"
+ Minimum="2"
+ Maximum="{Binding Operation.MultipleBrightnessGenEmulatedAALevel}"
+ Value="{Binding Operation.MultipleBrightnessGenExposureFractions}"/>
- <TextBlock Grid.Row="4" Grid.Column="6"
+ <TextBlock Grid.Row="4" Grid.Column="10"
IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
- ToolTip.Tip="Amount of fractions from the main exposure: 2 to 16"
- Text="Generate by time fractions:"
+ Text="÷"
VerticalAlignment="Center"/>
-
- <NumericUpDown Grid.Row="4" Grid.Column="8"
- IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
- Increment="1"
- Minimum="2"
- Maximum="{Binding Operation.MultipleBrightnessGenEmulatedAALevel}"
- Value="{Binding Operation.MultipleBrightnessGenExposureFractions}"/>
+ <!--<Button
+ IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
+ Grid.Row="4" Grid.Column="12" VerticalContentAlignment="Center"
+ HorizontalContentAlignment="Center"
+ VerticalAlignment="Stretch"
+ Command="{Binding Operation.GenerateBrightnessExposureFractions}">
+ <StackPanel Orientation="Horizontal" Spacing="10">
+ <Image Source="/Assets/Icons/refresh-16x16.png"/>
+ <TextBlock
+ VerticalAlignment="Center"
+ Text="Gen"/>
+ </StackPanel>
+ </Button>
+ !-->
+ </Grid>
- <TextBlock Grid.Row="4" Grid.Column="10"
- IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
- Text="÷"
- VerticalAlignment="Center"/>
+
+ <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>
- <!--<Button
- IsVisible="{Binding SlicerFile.IsAntiAliasingEmulated}"
- Grid.Row="4" Grid.Column="12" VerticalContentAlignment="Center"
- HorizontalContentAlignment="Center"
- VerticalAlignment="Stretch"
- Command="{Binding Operation.GenerateBrightnessExposureFractions}">
- <StackPanel Orientation="Horizontal" Spacing="10">
- <Image Source="/Assets/Icons/refresh-16x16.png"/>
- <TextBlock
- VerticalAlignment="Center"
- Text="Gen"/>
- </StackPanel>
- </Button>
- !-->
- </Grid>
+ </DataGrid>
+
+
+
+ </StackPanel>
+ </Expander>
-
- <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>
+ <Expander.IsVisible>
+ <MultiBinding Converter="{x:Static BoolConverters.And}">
+ <Binding Path="CanSupportPerLayerSettings"/>
+ <Binding Path="!Operation.PatternModel"/>
+ </MultiBinding>
+ </Expander.IsVisible>
+ <Expander.Header>
<TextBlock Text="Multiple layer height"
FontWeight="Bold"
Cursor="Hand"/>
@@ -821,7 +822,7 @@
<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."/>
+ &#x0a;After this, do not apply any modification which reconstruct the z positions of the layers."/>
<CheckBox
Content="Enable - For advanced users only!"
@@ -873,13 +874,8 @@
</StackPanel>
</Expander>
- </Border>
- <Border BorderBrush="Black"
- BorderThickness="1"
- Padding="5"
- IsVisible="{Binding CanSupportPerLayerSettings}">
- <Expander IsExpanded="True">
+ <Expander IsExpanded="True" IsVisible="{Binding CanSupportPerLayerSettings}">
<Expander.Header>
<TextBlock Text="Multiple exposures"
FontWeight="Bold"
@@ -1208,13 +1204,8 @@
</StackPanel>
</Expander>
- </Border>
- <Border BorderBrush="Black"
- BorderThickness="1"
- Padding="5"
- IsVisible="{Binding Operation.CanPatternModel}">
- <Expander IsExpanded="False">
+ <Expander IsExpanded="False" IsVisible="{Binding Operation.CanPatternModel}">
<Expander.Header>
<TextBlock Text="Pattern loaded model"
FontWeight="Bold"
@@ -1286,7 +1277,6 @@
</StackPanel>
</Expander>
- </Border>
</StackPanel>
diff --git a/UVtools.WPF/Controls/Calibrators/CalibrateExternalTestsControl.axaml b/UVtools.WPF/Controls/Calibrators/CalibrateExternalTestsControl.axaml
index 64dd735..ef5ecdd 100644
--- a/UVtools.WPF/Controls/Calibrators/CalibrateExternalTestsControl.axaml
+++ b/UVtools.WPF/Controls/Calibrators/CalibrateExternalTestsControl.axaml
@@ -2,11 +2,11 @@
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"
+ mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" Width="500"
x:Class="UVtools.WPF.Controls.Calibrators.CalibrateExternalTestsControl">
<Grid
RowDefinitions="Auto,Auto,Auto"
- ColumnDefinitions="400">
+ ColumnDefinitions="*">
<Button Grid.Row="0"
Padding="5"
diff --git a/UVtools.WPF/Controls/Calibrators/CalibrateGrayscaleControl.axaml b/UVtools.WPF/Controls/Calibrators/CalibrateGrayscaleControl.axaml
index a8de317..f97755e 100644
--- a/UVtools.WPF/Controls/Calibrators/CalibrateGrayscaleControl.axaml
+++ b/UVtools.WPF/Controls/Calibrators/CalibrateGrayscaleControl.axaml
@@ -160,16 +160,17 @@
</Grid>
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
- <StackPanel>
- <TextBlock FontWeight="Bold">
- <TextBlock.Text>
- <MultiBinding StringFormat="Pie settings [{0} divisions with {1:F2}º steps]">
- <Binding Path="Operation.Divisions"/>
- <Binding Path="Operation.AngleStep"/>
- </MultiBinding>
- </TextBlock.Text>
- </TextBlock>
+ <Expander IsExpanded="True">
+ <Expander.Header>
+ <TextBlock FontWeight="Bold">
+ <TextBlock.Text>
+ <MultiBinding StringFormat="Pie settings [{0} divisions with {1:F2}º steps]">
+ <Binding Path="Operation.Divisions"/>
+ <Binding Path="Operation.AngleStep"/>
+ </MultiBinding>
+ </TextBlock.Text>
+ </TextBlock>
+ </Expander.Header>
<Grid
Margin="0,10,0,0"
@@ -236,6 +237,7 @@
<CheckBox Grid.Row="4" Grid.Column="6" Grid.ColumnSpan="7"
VerticalAlignment="Center"
+ Margin="10,0,0,0"
Content="Enable center hole relief"
IsChecked="{Binding Operation.EnableCenterHoleRelief}"/>
@@ -309,8 +311,7 @@
VerticalAlignment="Center"
Text="px"/>
</Grid>
- </StackPanel>
- </Border>
+ </Expander>
</StackPanel>
diff --git a/UVtools.WPF/Controls/Calibrators/CalibrateStressTowerControl.axaml b/UVtools.WPF/Controls/Calibrators/CalibrateStressTowerControl.axaml
index d93cbf8..ac36835 100644
--- a/UVtools.WPF/Controls/Calibrators/CalibrateStressTowerControl.axaml
+++ b/UVtools.WPF/Controls/Calibrators/CalibrateStressTowerControl.axaml
@@ -7,281 +7,277 @@
<StackPanel Spacing="10">
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
- <Expander IsExpanded="True">
- <Expander.Header>
- <TextBlock Text="Step 1 - Common properties"
- FontWeight="Bold"
- Cursor="Hand"/>
- </Expander.Header>
+ <Expander IsExpanded="True">
+ <Expander.Header>
+ <TextBlock Text="Step 1 - 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">
+ <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">
- <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="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="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"
- VerticalAlignment="Center"
- Text="Layer height:"/>
- <NumericUpDown Grid.Row="2" Grid.Column="2"
-
- Increment="0.01"
- Minimum="0.01"
- Maximum="0.30"
- FormatString="F3"
- Value="{Binding Operation.LayerHeight}"
- />
- <TextBlock Grid.Row="2" Grid.Column="4"
- VerticalAlignment="Center"
- Text="mm"/>
+ <TextBlock Grid.Row="2" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Layer height:"/>
+ <NumericUpDown Grid.Row="2" Grid.Column="2"
+
+ Increment="0.01"
+ Minimum="0.01"
+ Maximum="0.30"
+ FormatString="F3"
+ 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"
-
- 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="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="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="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="Base height:"/>
- <NumericUpDown Grid.Row="6" Grid.Column="2"
-
- 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="0"
+ VerticalAlignment="Center"
+ Text="Base height:"/>
+ <NumericUpDown Grid.Row="6" Grid.Column="2"
+
+ 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"
-
- 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="6" Grid.Column="6"
+ VerticalAlignment="Center"
+ Text="Base diameter:"/>
+ <NumericUpDown Grid.Row="6" Grid.Column="8"
+
+ 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"
-
- 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"
-
- Increment="1"
- Minimum="0"
- Maximum="10000"
- FormatString="F2"
- Value="{Binding Operation.BodyHeight}"/>
- <TextBlock Grid.Row="8" 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"
+
+ 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"
+
+ 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"
- VerticalAlignment="Center"
- Spacing="0">
- <TextBlock
- FontWeight="Bold"
- Text="Total layers:"/>
- <TextBlock
- FontWeight="Bold"
- Text="Total height:"/>
- </StackPanel>
+ <StackPanel Grid.Row="10" Grid.Column="6"
+ VerticalAlignment="Center"
+ Spacing="0">
+ <TextBlock
+ FontWeight="Bold"
+ Text="Total layers:"/>
+ <TextBlock
+ FontWeight="Bold"
+ Text="Total height:"/>
+ </StackPanel>
- <StackPanel Grid.Row="10" Grid.Column="8"
- VerticalAlignment="Center"
- Spacing="0">
- <TextBlock
- FontWeight="Bold"
- Text="{Binding Operation.LayerCount}"/>
+ <StackPanel Grid.Row="10" Grid.Column="8"
+ VerticalAlignment="Center"
+ Spacing="0">
+ <TextBlock
+ FontWeight="Bold"
+ Text="{Binding Operation.LayerCount}"/>
- <TextBlock
- FontWeight="Bold"
- Text="{Binding Operation.TotalHeight, StringFormat=\{0:F3\}mm}"/>
+ <TextBlock
+ FontWeight="Bold"
+ Text="{Binding Operation.TotalHeight, StringFormat=\{0:F3\}mm}"/>
- </StackPanel>
+ </StackPanel>
-
+
- <TextBlock Grid.Row="10" Grid.Column="0"
- VerticalAlignment="Center"
- ToolTip.Tip="Chamfer the bottom 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="0"
+ VerticalAlignment="Center"
+ ToolTip.Tip="Chamfer the bottom 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}"/>
- <CheckBox Grid.Row="12" Grid.Column="2" Grid.ColumnSpan="5"
- VerticalAlignment="Center"
- IsChecked="{Binding Operation.EnableAntiAliasing}"
- Content="Enable Anti-Aliasing"/>
+ <CheckBox Grid.Row="12" Grid.Column="2" Grid.ColumnSpan="5"
+ VerticalAlignment="Center"
+ IsChecked="{Binding Operation.EnableAntiAliasing}"
+ Content="Enable Anti-Aliasing"/>
- <CheckBox Grid.Row="12" Grid.Column="8"
- Grid.ColumnSpan="3"
- ToolTip.Tip="Most of the printers requires a mirror output to print with the correct orientation"
- IsChecked="{Binding Operation.MirrorOutput}"
- Content="Mirror output" />
+ <CheckBox Grid.Row="12" Grid.Column="8"
+ Grid.ColumnSpan="3"
+ 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>
+ </Grid>
+ </Expander>
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
- <Expander IsExpanded="True">
- <Expander.Header>
- <TextBlock Text="Outer Spirals"
- FontWeight="Bold"
- Cursor="Hand"/>
+ <Expander IsExpanded="True">
+ <Expander.Header>
+ <TextBlock Text="Outer Spirals"
+ FontWeight="Bold"
+ Cursor="Hand"/>
- </Expander.Header>
+ </Expander.Header>
- <Grid RowDefinitions="Auto,5,Auto"
- ColumnDefinitions="Auto,10,170,5,Auto,20,Auto,10,170,5,Auto">
+ <Grid RowDefinitions="Auto,5,Auto"
+ ColumnDefinitions="Auto,10,170,5,Auto,20,Auto,10,170,5,Auto">
- <TextBlock Grid.Row="0" Grid.Column="0"
- Text="Number of spirals:"
- VerticalAlignment="Center"/>
- <NumericUpDown Grid.Row="0" Grid.Column="2"
-
- Increment="1"
- Minimum="1"
- Maximum="10"
- Value="{Binding Operation.Spirals}"/>
+ <TextBlock Grid.Row="0" Grid.Column="0"
+ Text="Number of spirals:"
+ VerticalAlignment="Center"/>
+ <NumericUpDown Grid.Row="0" Grid.Column="2"
+
+ Increment="1"
+ Minimum="1"
+ Maximum="10"
+ Value="{Binding Operation.Spirals}"/>
- <TextBlock Grid.Row="0" Grid.Column="6"
- VerticalAlignment="Center"
- ToolTip.Tip="Clockwise: All spirals turn clockwise.
+ <TextBlock Grid.Row="0" Grid.Column="6"
+ VerticalAlignment="Center"
+ ToolTip.Tip="Clockwise: All spirals turn clockwise.
&#x0a;Alternate: Each spiral turn into opposite direction.
&#x0a;Both: Each spiral will turn in both directions, clockwise and counter-clockwise."
- Text="Spiral direction:"/>
- <ComboBox Grid.Row="0" Grid.Column="8"
- Items="{Binding Operation.SpiralDirectionsItems}"
- SelectedItem="{Binding Operation.SpiralDirection}"
- HorizontalAlignment="Stretch"/>
+ Text="Spiral direction:"/>
+ <ComboBox Grid.Row="0" Grid.Column="8"
+ Items="{Binding Operation.SpiralDirectionsItems}"
+ SelectedItem="{Binding Operation.SpiralDirection}"
+ HorizontalAlignment="Stretch"/>
- <TextBlock Grid.Row="2" Grid.Column="0"
- Text="Spiral diameter:"
- VerticalAlignment="Center"/>
- <NumericUpDown Grid.Row="2" Grid.Column="2"
-
- 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="0"
+ Text="Spiral diameter:"
+ VerticalAlignment="Center"/>
+ <NumericUpDown Grid.Row="2" Grid.Column="2"
+
+ 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"
- Text="Step angle:"
- ToolTip.Tip="Spirals will turn this angle per layer."
- VerticalAlignment="Center"/>
- <NumericUpDown Grid.Row="2" Grid.Column="8"
-
- Increment="1"
- Minimum="0.01"
- Maximum="359.99"
- FormatString="F2"
- Value="{Binding Operation.SpiralAngleStepPerLayer}"/>
- <TextBlock Grid.Row="2" Grid.Column="10"
- Text="º/layer"
- VerticalAlignment="Center"/>
+ <TextBlock Grid.Row="2" Grid.Column="6"
+ Text="Step angle:"
+ ToolTip.Tip="Spirals will turn this angle per layer."
+ VerticalAlignment="Center"/>
+ <NumericUpDown Grid.Row="2" Grid.Column="8"
+
+ Increment="1"
+ Minimum="0.01"
+ Maximum="359.99"
+ FormatString="F2"
+ Value="{Binding Operation.SpiralAngleStepPerLayer}"/>
+ <TextBlock Grid.Row="2" Grid.Column="10"
+ Text="º/layer"
+ VerticalAlignment="Center"/>
- </Grid>
- </Expander>
- </Border>
+ </Grid>
+ </Expander>
</StackPanel>
</UserControl>
diff --git a/UVtools.WPF/Controls/Calibrators/CalibrateToleranceControl.axaml b/UVtools.WPF/Controls/Calibrators/CalibrateToleranceControl.axaml
index 7e0c6ef..22516d2 100644
--- a/UVtools.WPF/Controls/Calibrators/CalibrateToleranceControl.axaml
+++ b/UVtools.WPF/Controls/Calibrators/CalibrateToleranceControl.axaml
@@ -7,7 +7,6 @@
<Grid ColumnDefinitions="Auto,10,380">
<StackPanel Spacing="10">
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
<Expander IsExpanded="True">
<Expander.Header>
<TextBlock Text="Step 1 - Common properties"
@@ -241,174 +240,164 @@
</Grid>
</Expander>
- </Border>
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
- <Expander IsExpanded="True">
- <Expander.Header>
- <TextBlock Text="Step 2 - Female part"
- FontWeight="Bold"
- Cursor="Hand"/>
+ <Expander IsExpanded="True">
+ <Expander.Header>
+ <TextBlock Text="Step 2 - Female part"
+ FontWeight="Bold"
+ Cursor="Hand"/>
+
+ </Expander.Header>
+
+ <Grid RowDefinitions="Auto,5,Auto"
+ ColumnDefinitions="Auto,10,170,5,Auto,20,Auto,10,170,5,Auto">
+
+
+ <TextBlock Grid.Row="0" Grid.Column="0"
+ Text="Diameter:"
+ VerticalAlignment="Center"/>
+ <NumericUpDown Grid.Row="0" Grid.Column="2"
+
+ Increment="1.0"
+ Minimum="2"
+ Maximum="1000"
+ FormatString="F2"
+ Value="{Binding Operation.FemaleDiameter}"/>
+ <TextBlock Grid.Row="0" Grid.Column="4"
+ VerticalAlignment="Center"
+ Text="mm"/>
+
+ <TextBlock Grid.Row="0" Grid.Column="6"
+ Text="Hole diameter:"
+ VerticalAlignment="Center"/>
+ <NumericUpDown Grid.Row="0" Grid.Column="8"
+
+ Increment="1.0"
+ Minimum="2"
+ Maximum="1000"
+ FormatString="F2"
+ Value="{Binding Operation.FemaleHoleDiameter}"/>
+ <TextBlock Grid.Row="0" Grid.Column="10"
+ VerticalAlignment="Center"
+ Text="mm"/>
- </Expander.Header>
+ <TextBlock Grid.Row="2" Grid.Column="0"
+ Text="Expected:"
+ FontWeight="Bold"
+ VerticalAlignment="Center"/>
- <Grid RowDefinitions="Auto,5,Auto"
- ColumnDefinitions="Auto,10,170,5,Auto,20,Auto,10,170,5,Auto">
+ <TextBlock Grid.Row="2" Grid.Column="2"
+ Text="{Binding Operation.FemaleDiameterRealXSize, StringFormat=\{0:F2\}mm}"
+ FontWeight="Bold"
+ HorizontalAlignment="Center"
+ VerticalAlignment="Center"/>
+
+ <TextBlock Grid.Row="2" Grid.Column="8"
+ Text="{Binding Operation.FemaleHoleDiameterRealXSize, StringFormat=\{0:F2\}mm}"
+ FontWeight="Bold"
+ HorizontalAlignment="Center"
+ VerticalAlignment="Center"/>
+ </Grid>
+
+ </Expander>
+
+ <Expander IsExpanded="True">
+ <Expander.Header>
+ <TextBlock Text="Step 3 - Male parts"
+ FontWeight="Bold"
+ Cursor="Hand"/>
+
+ </Expander.Header>
+
+ <Grid RowDefinitions="Auto,10,Auto"
+ ColumnDefinitions="Auto,10,Auto,5,Auto,20,Auto,10,150,5,Auto,20,Auto,10,150,5,Auto">
<TextBlock Grid.Row="0" Grid.Column="0"
- Text="Diameter:"
+ Text="Thinner models:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="2"
-
- Increment="1.0"
- Minimum="2"
- Maximum="1000"
- FormatString="F2"
- Value="{Binding Operation.FemaleDiameter}"/>
- <TextBlock Grid.Row="0" Grid.Column="4"
- VerticalAlignment="Center"
- Text="mm"/>
-
+
+ Increment="1"
+ Minimum="0"
+ Maximum="1000"
+ Value="{Binding Operation.MaleThinnerModels}"/>
<TextBlock Grid.Row="0" Grid.Column="6"
- Text="Hole diameter:"
+ Text="-Offset:"
VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="0" Grid.Column="8"
- Increment="1.0"
- Minimum="2"
- Maximum="1000"
+ Increment="0.01"
+ Minimum="-1000"
+ Maximum="0"
FormatString="F2"
- Value="{Binding Operation.FemaleHoleDiameter}"/>
+ Value="{Binding Operation.MaleThinnerOffset}"/>
<TextBlock Grid.Row="0" Grid.Column="10"
VerticalAlignment="Center"
Text="mm"/>
- <TextBlock Grid.Row="2" Grid.Column="0"
- Text="Expected:"
- FontWeight="Bold"
+ <TextBlock Grid.Row="0" Grid.Column="12"
+ Text="-Step:"
VerticalAlignment="Center"/>
+ <NumericUpDown Grid.Row="0" Grid.Column="14"
+
+ Increment="0.01"
+ Minimum="-1000"
+ Maximum="-0.01"
+ FormatString="F2"
+ Value="{Binding Operation.MaleThinnerStep}"/>
+ <TextBlock Grid.Row="0" Grid.Column="16"
+ VerticalAlignment="Center"
+ Text="mm"/>
- <TextBlock Grid.Row="2" Grid.Column="2"
- Text="{Binding Operation.FemaleDiameterRealXSize, StringFormat=\{0:F2\}mm}"
- FontWeight="Bold"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"/>
- <TextBlock Grid.Row="2" Grid.Column="8"
- Text="{Binding Operation.FemaleHoleDiameterRealXSize, StringFormat=\{0:F2\}mm}"
- FontWeight="Bold"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"/>
- </Grid>
-
- </Expander>
- </Border>
-
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
- <Expander IsExpanded="True">
- <Expander.Header>
- <TextBlock Text="Step 3 - Male parts"
- FontWeight="Bold"
- Cursor="Hand"/>
-
- </Expander.Header>
-
- <Grid RowDefinitions="Auto,10,Auto"
- ColumnDefinitions="Auto,10,Auto,5,Auto,20,Auto,10,150,5,Auto,20,Auto,10,150,5,Auto">
-
-
- <TextBlock Grid.Row="0" Grid.Column="0"
- Text="Thinner models:"
- VerticalAlignment="Center"/>
- <NumericUpDown Grid.Row="0" Grid.Column="2"
-
- Increment="1"
- Minimum="0"
- Maximum="1000"
- Value="{Binding Operation.MaleThinnerModels}"/>
- <TextBlock Grid.Row="0" Grid.Column="6"
- Text="-Offset:"
- VerticalAlignment="Center"/>
- <NumericUpDown Grid.Row="0" Grid.Column="8"
-
- Increment="0.01"
- Minimum="-1000"
- Maximum="0"
- FormatString="F2"
- Value="{Binding Operation.MaleThinnerOffset}"/>
- <TextBlock Grid.Row="0" Grid.Column="10"
- VerticalAlignment="Center"
- Text="mm"/>
-
- <TextBlock Grid.Row="0" Grid.Column="12"
- Text="-Step:"
- VerticalAlignment="Center"/>
- <NumericUpDown Grid.Row="0" Grid.Column="14"
-
- Increment="0.01"
- Minimum="-1000"
- Maximum="-0.01"
- FormatString="F2"
- Value="{Binding Operation.MaleThinnerStep}"/>
- <TextBlock Grid.Row="0" Grid.Column="16"
- VerticalAlignment="Center"
- Text="mm"/>
-
-
- <TextBlock Grid.Row="2" Grid.Column="0"
- Text="Thicker models:"
- IsEnabled="{Binding !Operation.FuseParts}"
- VerticalAlignment="Center"/>
- <NumericUpDown Grid.Row="2" Grid.Column="2"
-
- Increment="1"
- Minimum="0"
- Maximum="1000"
- IsEnabled="{Binding !Operation.FuseParts}"
- Value="{Binding Operation.MaleThickerModels}"/>
- <TextBlock Grid.Row="2" Grid.Column="6"
- Text="+Offset:"
+ <TextBlock Grid.Row="2" Grid.Column="0"
+ Text="Thicker models:"
+ IsEnabled="{Binding !Operation.FuseParts}"
+ VerticalAlignment="Center"/>
+ <NumericUpDown Grid.Row="2" Grid.Column="2"
+
+ Increment="1"
+ Minimum="0"
+ Maximum="1000"
IsEnabled="{Binding !Operation.FuseParts}"
- VerticalAlignment="Center"/>
- <NumericUpDown Grid.Row="2" Grid.Column="8"
-
- Increment="0.01"
- Minimum="0"
- Maximum="1000"
- FormatString="F2"
- IsEnabled="{Binding !Operation.FuseParts}"
- Value="{Binding Operation.MaleThickerOffset}"/>
- <TextBlock Grid.Row="2" Grid.Column="10"
- VerticalAlignment="Center"
+ Value="{Binding Operation.MaleThickerModels}"/>
+ <TextBlock Grid.Row="2" Grid.Column="6"
+ Text="+Offset:"
+ IsEnabled="{Binding !Operation.FuseParts}"
+ VerticalAlignment="Center"/>
+ <NumericUpDown Grid.Row="2" Grid.Column="8"
+
+ Increment="0.01"
+ Minimum="0"
+ Maximum="1000"
+ FormatString="F2"
IsEnabled="{Binding !Operation.FuseParts}"
- Text="mm"/>
-
- <TextBlock Grid.Row="2" Grid.Column="12"
- Text="+Step:"
- IsEnabled="{Binding !Operation.FuseParts}"
- VerticalAlignment="Center"/>
- <NumericUpDown Grid.Row="2" Grid.Column="14"
-
- Increment="0.01"
- Minimum="0.01"
- Maximum="1000"
- IsEnabled="{Binding !Operation.FuseParts}"
- FormatString="F2"
- Value="{Binding Operation.MaleThickerStep}"/>
- <TextBlock Grid.Row="2" Grid.Column="16"
- VerticalAlignment="Center"
+ Value="{Binding Operation.MaleThickerOffset}"/>
+ <TextBlock Grid.Row="2" Grid.Column="10"
+ VerticalAlignment="Center"
+ IsEnabled="{Binding !Operation.FuseParts}"
+ Text="mm"/>
+
+ <TextBlock Grid.Row="2" Grid.Column="12"
+ Text="+Step:"
+ IsEnabled="{Binding !Operation.FuseParts}"
+ VerticalAlignment="Center"/>
+ <NumericUpDown Grid.Row="2" Grid.Column="14"
+
+ Increment="0.01"
+ Minimum="0.01"
+ Maximum="1000"
IsEnabled="{Binding !Operation.FuseParts}"
- Text="mm"/>
-
-
-
-
- </Grid>
-
- </Expander>
- </Border>
+ FormatString="F2"
+ Value="{Binding Operation.MaleThickerStep}"/>
+ <TextBlock Grid.Row="2" Grid.Column="16"
+ VerticalAlignment="Center"
+ IsEnabled="{Binding !Operation.FuseParts}"
+ Text="mm"/>
+ </Grid>
+ </Expander>
</StackPanel>
diff --git a/UVtools.WPF/Controls/Calibrators/CalibrateXYZAccuracyControl.axaml b/UVtools.WPF/Controls/Calibrators/CalibrateXYZAccuracyControl.axaml
index d95b166..c2ddb1a 100644
--- a/UVtools.WPF/Controls/Calibrators/CalibrateXYZAccuracyControl.axaml
+++ b/UVtools.WPF/Controls/Calibrators/CalibrateXYZAccuracyControl.axaml
@@ -7,13 +7,12 @@
<Grid ColumnDefinitions="Auto,10,380">
<StackPanel Spacing="10">
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
- <Expander IsExpanded="True">
- <Expander.Header>
- <TextBlock Text="Step 1: Generate and print test model"
- FontWeight="Bold"
- Cursor="Hand"/>
- </Expander.Header>
+ <Expander IsExpanded="True">
+ <Expander.Header>
+ <TextBlock Text="Step 1: Generate and print test model"
+ 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"
@@ -376,15 +375,13 @@
</Grid>
</Expander>
- </Border>
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
- <Expander IsExpanded="True">
- <Expander.Header>
- <TextBlock Text="Step 2: Validate the printed model with your measures"
- FontWeight="Bold"
- Cursor="Hand"/>
- </Expander.Header>
+ <Expander IsExpanded="True">
+ <Expander.Header>
+ <TextBlock Text="Step 2: Validate the printed model with your measures"
+ FontWeight="Bold"
+ Cursor="Hand"/>
+ </Expander.Header>
<StackPanel Spacing="10">
@@ -482,17 +479,15 @@
</StackPanel>
</Expander>
- </Border>
- <Border BorderBrush="Black" BorderThickness="1" Padding="5">
- <Expander IsExpanded="True">
- <Expander.Header>
- <TextBlock Text="Step 3: Save a resize profile with the results"
- FontWeight="Bold"
- Cursor="Hand"/>
- </Expander.Header>
+ <Expander IsExpanded="True">
+ <Expander.Header>
+ <TextBlock Text="Step 3: Save a resize profile with the results"
+ FontWeight="Bold"
+ Cursor="Hand"/>
+ </Expander.Header>
- <Grid ColumnDefinitions="Auto,10,*,5,Auto,5,Auto">
+ <Grid ColumnDefinitions="Auto,10,440,5,Auto,5,Auto">
<TextBlock VerticalAlignment="Center"
Text="Profile name:"/>
<TextBox Grid.Column="2" VerticalAlignment="Center"
@@ -511,7 +506,6 @@
</Button>
</Grid>
</Expander>
- </Border>
</StackPanel>
diff --git a/UVtools.WPF/Controls/Helpers.cs b/UVtools.WPF/Controls/Helpers.cs
index ed5d288..bcf5973 100644
--- a/UVtools.WPF/Controls/Helpers.cs
+++ b/UVtools.WPF/Controls/Helpers.cs
@@ -24,8 +24,11 @@ namespace UVtools.WPF.Controls
"bmp",
"jpeg",
"jpg",
+ "jp2",
"tif",
"tiff",
+ "sr",
+ "ras",
}
},
};
diff --git a/UVtools.WPF/Controls/Tools/ToolMorphControl.axaml b/UVtools.WPF/Controls/Tools/ToolMorphControl.axaml
index 868a47c..683b3f9 100644
--- a/UVtools.WPF/Controls/Tools/ToolMorphControl.axaml
+++ b/UVtools.WPF/Controls/Tools/ToolMorphControl.axaml
@@ -62,20 +62,18 @@
</Grid>
- <Border
- Margin="0,10,0,0" >
- <Expander>
- <Expander.Header>
- <TextBlock Text="Kernel - Advanced options (Click to expand)"
- FontWeight="Bold"
- Cursor="Hand"/>
- </Expander.Header>
- <uc:KernelControl
- Name="KernelCtrl"
- Margin="0,10,0,0"
- />
- </Expander>
- </Border>
+
+ <Expander Margin="0,10,0,0">
+ <Expander.Header>
+ <TextBlock Text="Kernel - Advanced options (Click to expand)"
+ FontWeight="Bold"
+ Cursor="Hand"/>
+ </Expander.Header>
+ <uc:KernelControl
+ Name="KernelCtrl"
+ Margin="0,10,0,0"
+ />
+ </Expander>
</StackPanel>
diff --git a/UVtools.WPF/Controls/Tools/ToolPixelArithmeticControl.axaml b/UVtools.WPF/Controls/Tools/ToolPixelArithmeticControl.axaml
index c4ca28e..40788d1 100644
--- a/UVtools.WPF/Controls/Tools/ToolPixelArithmeticControl.axaml
+++ b/UVtools.WPF/Controls/Tools/ToolPixelArithmeticControl.axaml
@@ -6,7 +6,7 @@
x:Class="UVtools.WPF.Controls.Tools.ToolPixelArithmeticControl">
<StackPanel Spacing="10">
- <Grid RowDefinitions="Auto,10,Auto,10,Auto,10,Auto"
+ <Grid RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto"
ColumnDefinitions="Auto,10,Auto,20,Auto,10,Auto,20,Auto,10,Auto">
<TextBlock Grid.Row="0" Grid.Column="0"
@@ -21,11 +21,62 @@
<TextBlock Grid.Row="2" Grid.Column="0"
VerticalAlignment="Center"
+ IsEnabled="{Binding Operation.IsApplyMethodEnabled}"
+ Text="Apply to:"/>
+
+ <ComboBox Grid.Row="2" Grid.Column="2"
+ Grid.ColumnSpan="9"
+ Width="610"
+ IsEnabled="{Binding Operation.IsApplyMethodEnabled}"
+ Items="{Binding Operation.ApplyMethod, Converter={StaticResource EnumToCollectionConverter}, Mode=OneTime}"
+ SelectedItem="{Binding Operation.ApplyMethod, Converter={StaticResource FromValueDescriptionToEnumConverter}}"/>
+
+ <TextBlock Grid.Row="4" Grid.Column="0"
+ VerticalAlignment="Center"
+ IsVisible="{Binding Operation.IsWallSettingVisible}"
+ Text="Wall thickness:"/>
+
+
+ <StackPanel Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="9"
+ IsVisible="{Binding Operation.IsWallSettingVisible}"
+ Spacing="10" Orientation="Horizontal">
+ <NumericUpDown
+ Minimum="0"
+ Maximum="1000"
+ Width="80"
+ Value="{Binding Operation.WallThicknessStart}"/>
+
+ <TextBlock
+ VerticalAlignment="Center"
+ Text="To:"
+ IsEnabled="{Binding Operation.WallChamfer}"/>
+
+ <NumericUpDown
+ Minimum="0"
+ Maximum="1000"
+ Width="80"
+ Value="{Binding Operation.WallThicknessEnd}"
+ IsEnabled="{Binding Operation.WallChamfer}"/>
+
+ <TextBlock
+ VerticalAlignment="Center"
+ Text="px"
+ IsEnabled="{Binding Operation.WallChamfer}"/>
+
+ <CheckBox
+ Margin="10,0,0,0"
+ Content="Chamfer walls"
+ ToolTip.Tip="Allow the number of walls pixels to be gradually varied as the operation progresses from the starting layer to the ending layer."
+ IsChecked="{Binding Operation.WallChamfer}"/>
+ </StackPanel>
+
+ <TextBlock Grid.Row="6" Grid.Column="0"
+ VerticalAlignment="Center"
IsVisible="{Binding Operation.ValueEnabled}"
IsEnabled="{Binding Operation.ValueEnabled}"
Text="Brightness:"/>
- <StackPanel Grid.Row="2" Grid.Column="2"
+ <StackPanel Grid.Row="6" Grid.Column="2"
VerticalAlignment="Center"
Orientation="Horizontal" Spacing="5"
IsVisible="{Binding Operation.ValueEnabled}"
@@ -34,40 +85,43 @@
<NumericUpDown
Minimum="0"
Maximum="255"
+ IsEnabled="{Binding !Operation.UsePattern}"
Value="{Binding Operation.Value}"/>
<TextBlock VerticalAlignment="Center"
+ IsEnabled="{Binding !Operation.UsePattern}"
Text="{Binding Operation.ValuePercent, StringFormat={}{0}%}"/>
- </StackPanel>
+ <CheckBox
+ Margin="20,0,0,0"
+ IsVisible="{Binding Operation.IsUsePatternVisible}"
+ IsChecked="{Binding Operation.UsePattern}"
+ Content="Use a pattern instead of fixed brightness"/>
- <CheckBox Grid.Row="2" Grid.Column="4"
- Content="Affect empty/black pixels"
- IsVisible="{Binding Operation.AffectBackPixelsEnabled}"
- IsChecked="{Binding Operation.AffectBackPixels}"/>
+ </StackPanel>
- <TextBlock Grid.Row="2" Grid.Column="4"
+ <TextBlock Grid.Row="6" Grid.Column="4"
VerticalAlignment="Center"
HorizontalAlignment="Right"
IsVisible="{Binding Operation.ThresholdEnabled}"
IsEnabled="{Binding Operation.ThresholdEnabled}"
Text="Max.:"/>
- <NumericUpDown Grid.Row="2" Grid.Column="6"
+ <NumericUpDown Grid.Row="6" Grid.Column="6"
Minimum="0"
Maximum="255"
IsVisible="{Binding Operation.ThresholdEnabled}"
IsEnabled="{Binding Operation.ThresholdEnabled}"
Value="{Binding Operation.ThresholdMaxValue}"/>
- <TextBlock Grid.Row="2" Grid.Column="8"
+ <TextBlock Grid.Row="6" Grid.Column="8"
VerticalAlignment="Center"
HorizontalAlignment="Right"
IsVisible="{Binding Operation.ThresholdEnabled}"
IsEnabled="{Binding Operation.ThresholdEnabled}"
Text="Threshold:"/>
- <ComboBox Grid.Row="2" Grid.Column="10"
+ <ComboBox Grid.Row="6" Grid.Column="10"
Width="130"
IsVisible="{Binding Operation.ThresholdEnabled}"
IsEnabled="{Binding Operation.ThresholdEnabled}"
@@ -75,14 +129,22 @@
SelectedItem="{Binding Operation.ThresholdType, Converter={StaticResource FromValueDescriptionToEnumConverter}}"/>
- <TextBlock Grid.Row="4" Grid.Column="0"
+ <TextBlock Grid.Row="8" Grid.Column="0"
VerticalAlignment="Center"
Text="Presets:"/>
- <StackPanel Grid.Row="4" Grid.Column="2"
+ <StackPanel Grid.Row="8" Grid.Column="2"
Grid.ColumnSpan="9"
VerticalAlignment="Center"
Orientation="Horizontal" Spacing="5">
+ <Button
+ Command="{Binding Operation.PresetPixelDimming}"
+ Content="Pixel dimming"/>
+
+ <Button
+ Command="{Binding Operation.PresetPixelLightening}"
+ Content="Pixel lightening"/>
+
<Button
Command="{Binding Operation.PresetStripAntiAliasing}"
Content="Strip anti-aliasing"/>
@@ -94,6 +156,271 @@
</StackPanel>
</Grid>
+
+ <Border>
+ <Border.IsVisible>
+ <MultiBinding Converter="{x:Static BoolConverters.And}">
+ <Binding Path="Operation.IsUsePatternVisible" />
+ <Binding Path="Operation.UsePattern"/>
+ </MultiBinding>
+ </Border.IsVisible>
+
+ <StackPanel Spacing="10">
+
+ <TextBlock Text="Pattern:" FontWeight="Bold"/>
+
+ <StackPanel Orientation="Horizontal" Spacing="10">
+ <TextBlock
+ VerticalAlignment="Center"
+ Text="Alternate the pattern every:"/>
+ <NumericUpDown
+ Minimum="1"
+ Maximum="65535"
+ Width="150"
+ Value="{Binding Operation.PatternAlternatePerLayersNumber}"/>
+ <TextBlock
+ VerticalAlignment="Center"
+ Text="layers"/>
+
+ <CheckBox
+ Margin="20,0,0,0"
+ IsChecked="{Binding Operation.PatternInvert}"
+ ToolTip.Tip="If enabled, it will invert the pattern before apply, that is: 255 - {value}"
+ Content="Invert the pattern when processing the pixels"/>
+ </StackPanel>
+
+
+ <Grid
+ RowDefinitions="Auto,200,10,Auto"
+ ColumnDefinitions="450,10,450">
+
+ <Button Grid.Row="0" Grid.Column="0"
+ Content="Load pattern from image"
+ HorizontalContentAlignment="Center"
+ VerticalAlignment="Stretch"
+ HorizontalAlignment="Stretch"
+ Command="{Binding LoadPatternFromImage}"
+ CommandParameter="False"/>
+
+ <TextBox
+ Grid.Row="1" Grid.Column="0"
+ AcceptsReturn="True"
+ Watermark="Pattern"
+ UseFloatingWatermark="True"
+ TextWrapping="NoWrap"
+ Text="{Binding Operation.PatternText}"/>
+
+ <Button Grid.Row="0" Grid.Column="2"
+ Content="Load alternate pattern from image"
+ HorizontalContentAlignment="Center"
+ VerticalAlignment="Stretch"
+ HorizontalAlignment="Stretch"
+ Command="{Binding LoadPatternFromImage}"
+ CommandParameter="True"/>
+ <TextBox
+ Grid.Row="1" Grid.Column="2"
+ AcceptsReturn="True"
+ Watermark="Alternate pattern (Optional)"
+ UseFloatingWatermark="True"
+ TextWrapping="NoWrap"
+ Text="{Binding Operation.PatternTextAlternate}"/>
+
+ <Border
+ Grid.Row="3" Grid.Column="0"
+ BorderBrush="LightGray"
+ BorderThickness="1"
+ Padding="5">
+
+ <StackPanel Spacing="10">
+ <TextBlock FontWeight="Bold" Text="Pattern generator"/>
+
+ <StackPanel Orientation="Horizontal" Spacing="10">
+ <TextBlock
+ VerticalAlignment="Center"
+ Text="Brightness:"/>
+
+ <NumericUpDown
+ Minimum="0"
+ Maximum="255"
+ Value="{Binding Operation.PatternGenMinBrightness}"/>
+
+ <TextBlock
+ VerticalAlignment="Center"
+ Text="-"/>
+
+ <NumericUpDown
+ Minimum="0"
+ Maximum="255"
+ Value="{Binding Operation.PatternGenBrightness}"/>
+
+ <TextBlock
+ VerticalAlignment="Center"
+ Text="{Binding Operation.PatternGenBrightnessPercent, StringFormat=(\{0\}%)}"/>
+ </StackPanel>
+
+ <StackPanel Orientation="Horizontal" Spacing="10">
+ <Button
+ Padding="10"
+ Content="Chessboard"
+ Width="100"
+ Command="{Binding Operation.GeneratePattern}"
+ CommandParameter="Chessboard"
+ />
+ <Button
+ Padding="10"
+ Content="Sparse"
+ Width="100"
+ Command="{Binding Operation.GeneratePattern}"
+ CommandParameter="Sparse"
+ />
+ <Button
+ Padding="10"
+ Content="Crosses"
+ Width="100"
+ Command="{Binding Operation.GeneratePattern}"
+ CommandParameter="Crosses"
+ />
+ <Button
+ Padding="10"
+ Content="Strips"
+ Width="100"
+ Command="{Binding Operation.GeneratePattern}"
+ CommandParameter="Strips"
+ />
+ </StackPanel>
+
+ <StackPanel Orientation="Horizontal" Spacing="10">
+ <Button
+ Padding="10"
+ Content="Pyramid"
+ Width="100"
+ Command="{Binding Operation.GeneratePattern}"
+ CommandParameter="Pyramid"
+ />
+
+ <Button
+ Padding="10"
+ Content="Rhombus"
+ Width="100"
+ Command="{Binding Operation.GeneratePattern}"
+ CommandParameter="Rhombus"
+ />
+ <Button
+ Padding="10"
+ Content="Waves"
+ Width="100"
+ Command="{Binding Operation.GeneratePattern}"
+ CommandParameter="Waves"
+ />
+ <Button
+ Padding="10"
+ Content="Slashes"
+ Width="100"
+ Command="{Binding Operation.GeneratePattern}"
+ CommandParameter="Slashes"
+ />
+ </StackPanel>
+
+ <StackPanel Orientation="Horizontal" Spacing="10">
+ <Button
+ Padding="10"
+ Content="Hearts"
+ Width="100"
+ Command="{Binding Operation.GeneratePattern}"
+ CommandParameter="Hearts"
+ />
+ <Button
+ Padding="10"
+ Content="Solid"
+ Width="100"
+ Command="{Binding Operation.GeneratePattern}"
+ CommandParameter="Solid"
+ />
+ </StackPanel>
+
+ </StackPanel>
+ </Border>
+
+ <Border
+ Grid.Row="3"
+ Grid.Column="2"
+ BorderBrush="LightGray"
+ BorderThickness="1"
+ Padding="5"
+ >
+
+ <StackPanel Spacing="10">
+ <TextBlock FontWeight="Bold" Text="Infill generator"/>
+
+ <TextBlock
+ TextWrapping="Wrap"
+ 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">
+ <TextBlock
+ VerticalAlignment="Center"
+ Text="Thickness:"/>
+ <NumericUpDown
+ Grid.Row="0" Grid.Column="2"
+ 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"
+ 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">
+ <Button
+ Padding="10"
+ Content="Rectilinear"
+ Width="100"
+ Command="{Binding Operation.GenerateInfill}"
+ CommandParameter="Rectilinear"
+ />
+ <Button
+ Padding="10"
+ Content="Square grid"
+ Width="100"
+ Command="{Binding Operation.GenerateInfill}"
+ CommandParameter="Square grid"
+ />
+ <Button
+ Padding="10"
+ Content="Waves"
+ Width="100"
+ Command="{Binding Operation.GenerateInfill}"
+ CommandParameter="Waves"
+ />
+ <Button
+ Padding="10"
+ Content="Lattice"
+ Width="100"
+ Command="{Binding Operation.GenerateInfill}"
+ CommandParameter="Lattice"
+ />
+ </StackPanel>
+ </StackPanel>
+ </Border>
+
+ </Grid>
+
+ </StackPanel>
+ </Border>
+
</StackPanel>
</UserControl>
diff --git a/UVtools.WPF/Controls/Tools/ToolPixelArithmeticControl.axaml.cs b/UVtools.WPF/Controls/Tools/ToolPixelArithmeticControl.axaml.cs
index bc151a4..84e1f68 100644
--- a/UVtools.WPF/Controls/Tools/ToolPixelArithmeticControl.axaml.cs
+++ b/UVtools.WPF/Controls/Tools/ToolPixelArithmeticControl.axaml.cs
@@ -1,3 +1,4 @@
+using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using UVtools.Core.Operations;
@@ -11,11 +12,25 @@ namespace UVtools.WPF.Controls.Tools
BaseOperation = new OperationPixelArithmetic(SlicerFile);
if (!ValidateSpawn()) return;
InitializeComponent();
+
+ Operation.GeneratePattern("Chessboard");
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
+
+ public async void LoadPatternFromImage(bool isAlternatePattern = false)
+ {
+ var dialog = new OpenFileDialog
+ {
+ AllowMultiple = false,
+ Filters = Helpers.ImagesFileFilter,
+ };
+ var files = await dialog.ShowAsync(ParentWindow);
+ if (files is null || files.Length == 0) return;
+ Operation.LoadPatternFromImage(files[0], isAlternatePattern);
+ }
}
}
diff --git a/UVtools.WPF/MainWindow.Information.cs b/UVtools.WPF/MainWindow.Information.cs
index 60563ce..8082ea0 100644
--- a/UVtools.WPF/MainWindow.Information.cs
+++ b/UVtools.WPF/MainWindow.Information.cs
@@ -7,12 +7,9 @@
*/
using System;
using System.Collections;
-using System.Collections.Generic;
using System.Collections.ObjectModel;
-using System.Diagnostics;
using System.Globalization;
using System.IO;
-using System.Linq;
using System.Reflection;
using System.Text;
using Avalonia;
@@ -20,7 +17,6 @@ using Avalonia.Controls;
using Avalonia.Input;
using MessageBox.Avalonia.Enums;
using UVtools.Core;
-using UVtools.Core.FileFormats;
using UVtools.Core.Objects;
using UVtools.WPF.Extensions;
using UVtools.WPF.Structures;
@@ -137,8 +133,8 @@ namespace UVtools.WPF
}
}
- public bool ThumbnailCanGoPrevious => SlicerFile is { } && _visibleThumbnailIndex > 1;
- public bool ThumbnailCanGoNext => SlicerFile is { } && _visibleThumbnailIndex < SlicerFile.CreatedThumbnailsCount;
+ public bool ThumbnailCanGoPrevious => SlicerFile is not null && _visibleThumbnailIndex > 1;
+ public bool ThumbnailCanGoNext => SlicerFile is not null && _visibleThumbnailIndex < SlicerFile.CreatedThumbnailsCount;
public void ThumbnailGoPrevious()
{
@@ -167,7 +163,7 @@ namespace UVtools.WPF
public async void OnClickThumbnailSave()
{
if (SlicerFile is null) return;
- if (ReferenceEquals(SlicerFile.Thumbnails[_visibleThumbnailIndex - 1], null))
+ if (SlicerFile.Thumbnails[_visibleThumbnailIndex - 1] is null)
{
return; // This should never happen!
}
@@ -189,7 +185,7 @@ namespace UVtools.WPF
public async void OnClickThumbnailImport()
{
if (_visibleThumbnailIndex <= 0) return;
- if (ReferenceEquals(SlicerFile.Thumbnails[_visibleThumbnailIndex - 1], null))
+ if (SlicerFile.Thumbnails[_visibleThumbnailIndex - 1] is null)
{
return; // This should never happen!
}
@@ -203,8 +199,21 @@ namespace UVtools.WPF
var filepath = await dialog.ShowAsync(this);
if (filepath is null || filepath.Length <= 0) return;
- int i = (int)(_visibleThumbnailIndex - 1);
- SlicerFile.SetThumbnail(i, filepath[0]);
+ uint i = _visibleThumbnailIndex - 1;
+ SlicerFile.SetThumbnail((int)i, filepath[0]);
+ //VisibleThumbnailImage = SlicerFile.Thumbnails[i].ToBitmap();
+ SlicerFile.RequireFullEncode = true;
+ CanSave = true;
+ }
+
+ public void RefreshThumbnail()
+ {
+ if (_visibleThumbnailIndex <= 0) return;
+ uint i = _visibleThumbnailIndex - 1;
+ if (SlicerFile.Thumbnails?[i] is null)
+ {
+ return;
+ }
VisibleThumbnailImage = SlicerFile.Thumbnails[i].ToBitmap();
}
#endregion
@@ -228,32 +237,30 @@ namespace UVtools.WPF
try
{
- using (TextWriter tw = new StreamWriter(file))
+ using TextWriter tw = new StreamWriter(file);
+ foreach (var config in SlicerFile.Configs)
{
- foreach (var config in SlicerFile.Configs)
+ var type = config.GetType();
+ tw.WriteLine($"[{type.Name}]");
+ foreach (var property in type.GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
- var type = config.GetType();
- tw.WriteLine($"[{type.Name}]");
- foreach (var property in type.GetProperties(BindingFlags.Public | BindingFlags.Instance))
+ if (property.Name.Equals("Item")) continue;
+ var value = property.GetValue(config);
+ switch (value)
{
- if (property.Name.Equals("Item")) continue;
- var value = property.GetValue(config);
- switch (value)
- {
- case null:
- continue;
- case IList list:
- tw.WriteLine($"{property.Name} = {list.Count}");
- break;
- default:
- tw.WriteLine($"{property.Name} = {value}");
- break;
- }
+ case null:
+ continue;
+ case IList list:
+ tw.WriteLine($"{property.Name} = {list.Count}");
+ break;
+ default:
+ tw.WriteLine($"{property.Name} = {value}");
+ break;
}
- tw.WriteLine();
}
- tw.Close();
+ tw.WriteLine();
}
+ tw.Close();
}
catch (Exception e)
{
diff --git a/UVtools.WPF/MainWindow.axaml b/UVtools.WPF/MainWindow.axaml
index e078ba6..0dadac8 100644
--- a/UVtools.WPF/MainWindow.axaml
+++ b/UVtools.WPF/MainWindow.axaml
@@ -22,12 +22,12 @@
HotKey="Ctrl+O" InputGesture="Ctrl+O"
Command="{Binding MenuFileOpenClicked}">
<MenuItem.Icon>
- <Image Source="\Assets\Icons\open-16x16.png"/>
+ <Image Source="\Assets\Icons\file-import-16x16.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Name="MainMenu.File.OpenNewWindow" Header="Open in _new window" HotKey="Ctrl+Shift+O" InputGesture="Ctrl+Shift+O" Command="{Binding MenuFileOpenNewWindowClicked}">
<MenuItem.Icon>
- <Image Source="\Assets\Icons\open-16x16.png"/>
+ <Image Source="\Assets\Icons\file-import-16x16.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem
@@ -82,10 +82,16 @@
<Image Source="\Assets\Icons\flask-16x16.png"/>
</MenuItem.Icon>
</MenuItem>
-
+
+ <MenuItem Name="MainMenu.File.OpenCurrentFileFolder" Header="Open current file fo_lder" HotKey="Ctrl+Shift+L" InputGesture="Ctrl+Shift+L" IsEnabled="{Binding IsFileLoaded}" Command="{Binding MenuFileOpenCurrentFileFolderClicked}">
+ <MenuItem.Icon>
+ <Image Source="\Assets\Icons\folder-open-16x16.png"/>
+ </MenuItem.Icon>
+ </MenuItem>
+
<MenuItem
Name="MainMenu.File.Extract"
- Header="_Extract" HotKey="Ctrl+E" InputGesture="Ctrl+E"
+ Header="_Extract file contents" HotKey="Ctrl+E" InputGesture="Ctrl+E"
IsEnabled="{Binding IsFileLoaded}"
Command="{Binding ExtractFile}">
<MenuItem.Icon>
@@ -103,7 +109,7 @@
<Image Source="\Assets\Icons\convert-16x16.png"/>
</MenuItem.Icon>
</MenuItem>
-
+
<Separator/>
<MenuItem
diff --git a/UVtools.WPF/MainWindow.axaml.cs b/UVtools.WPF/MainWindow.axaml.cs
index e83107a..d195a4a 100644
--- a/UVtools.WPF/MainWindow.axaml.cs
+++ b/UVtools.WPF/MainWindow.axaml.cs
@@ -155,7 +155,7 @@ namespace UVtools.WPF
Tag = new OperationPixelArithmetic(),
Icon = new Avalonia.Controls.Image
{
- Source = new Bitmap(App.GetAsset("/Assets/Icons/square-root-16x16.png"))
+ Source = new Bitmap(App.GetAsset("/Assets/Icons/pixel-16x16.png"))
}
},
new()
@@ -166,14 +166,14 @@ namespace UVtools.WPF
Source = new Bitmap(App.GetAsset("/Assets/Icons/mask-16x16.png"))
}
},
- new()
+ /*new()
{
Tag = new OperationPixelDimming(),
Icon = new Avalonia.Controls.Image
{
Source = new Bitmap(App.GetAsset("/Assets/Icons/pixel-16x16.png"))
}
- },
+ },*/
new()
{
Tag = new OperationLightBleedCompensation(),
@@ -745,6 +745,12 @@ namespace UVtools.WPF
public void MenuFileOpenClicked() => OpenFile();
public void MenuFileOpenNewWindowClicked() => OpenFile(true);
+ public void MenuFileOpenCurrentFileFolderClicked()
+ {
+ if (!IsFileLoaded) return;
+ App.SelectFileOnExplorer(SlicerFile.FileFullPath);
+ }
+
public async void MenuFileSaveClicked()
{
if (!CanSave) return;
@@ -1148,9 +1154,8 @@ namespace UVtools.WPF
SlicerFile.CanUseBottomLightOffDelay &&
(Settings.Automations.ChangeOnlyLightOffDelayIfZero && SlicerFile.BottomLightOffDelay == 0 || !Settings.Automations.ChangeOnlyLightOffDelayIfZero))
{
- if (SlicerFile is ChituboxFile chituboxFile &&
- chituboxFile.HeaderSettings.Version >= 4 &&
- (chituboxFile.WaitTimeBeforeCure > 0 || chituboxFile.WaitTimeAfterCure > 0 || chituboxFile.WaitTimeAfterLift > 0))
+ if ((SlicerFile.CanUseAnyWaitTimeBeforeCure || SlicerFile.CanUseAnyWaitTimeAfterCure || SlicerFile.CanUseAnyWaitTimeAfterLift) &&
+ (SlicerFile.BottomWaitTimeBeforeCure > 0 || SlicerFile.BottomWaitTimeAfterCure > 0 || SlicerFile.BottomWaitTimeAfterLift > 0))
{
// Ignore this automation
}
@@ -1175,9 +1180,8 @@ namespace UVtools.WPF
SlicerFile.CanUseLightOffDelay &&
(Settings.Automations.ChangeOnlyLightOffDelayIfZero && SlicerFile.LightOffDelay == 0 || !Settings.Automations.ChangeOnlyLightOffDelayIfZero))
{
- if (SlicerFile is ChituboxFile chituboxFile &&
- chituboxFile.HeaderSettings.Version >= 4 &&
- (chituboxFile.WaitTimeBeforeCure > 0 || chituboxFile.WaitTimeAfterCure > 0 || chituboxFile.WaitTimeAfterLift > 0))
+ if ((SlicerFile.CanUseAnyWaitTimeBeforeCure || SlicerFile.CanUseAnyWaitTimeAfterCure || SlicerFile.CanUseAnyWaitTimeAfterLift) &&
+ (SlicerFile.WaitTimeBeforeCure > 0 || SlicerFile.WaitTimeAfterCure > 0 || SlicerFile.WaitTimeAfterLift > 0))
{
// Ignore this automation
}
@@ -1218,6 +1222,8 @@ namespace UVtools.WPF
if(fileFormat is ImageFile) continue;
foreach (var fileExtension in fileFormat.FileExtensions)
{
+ if(!fileExtension.IsVisibleOnConvertMenu) continue;
+
var menuItem = new MenuItem
{
Header = fileExtension.Description,
@@ -1315,6 +1321,16 @@ namespace UVtools.WPF
SelectedTabItem = TabIssues;
}
}
+
+ SlicerFile.PropertyChanged += SlicerFileOnPropertyChanged;
+ }
+
+ private void SlicerFileOnPropertyChanged(object? sender, PropertyChangedEventArgs e)
+ {
+ if (e.PropertyName == nameof(SlicerFile.Thumbnails))
+ {
+ RefreshThumbnail();
+ }
}
private async void ShowProgressWindow(string title, bool canCancel = true)
diff --git a/UVtools.WPF/UVtools.WPF.csproj b/UVtools.WPF/UVtools.WPF.csproj
index dc8e4e7..6d6bc26 100644
--- a/UVtools.WPF/UVtools.WPF.csproj
+++ b/UVtools.WPF/UVtools.WPF.csproj
@@ -12,7 +12,7 @@
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<RepositoryUrl>https://github.com/sn4k3/UVtools</RepositoryUrl>
<RepositoryType>Git</RepositoryType>
- <Version>2.18.1</Version>
+ <Version>2.19.0</Version>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -24,11 +24,11 @@
<NoWarn>1701;1702;</NoWarn>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Avalonia" Version="0.10.6" />
+ <PackageReference Include="Avalonia" Version="0.10.7" />
<PackageReference Include="Avalonia.Angle.Windows.Natives" Version="2.1.0.2020091801" />
- <PackageReference Include="Avalonia.Controls.DataGrid" Version="0.10.6" />
- <PackageReference Include="Avalonia.Desktop" Version="0.10.6" />
- <PackageReference Include="Avalonia.Diagnostics" Version="0.10.6" />
+ <PackageReference Include="Avalonia.Controls.DataGrid" Version="0.10.7" />
+ <PackageReference Include="Avalonia.Desktop" Version="0.10.7" />
+ <PackageReference Include="Avalonia.Diagnostics" Version="0.10.7" />
<PackageReference Include="Emgu.CV.runtime.windows" Version="4.5.3.4721" />
<PackageReference Include="MessageBox.Avalonia" Version="1.5.1" />
<PackageReference Include="ThemeEditor.Controls.ColorPicker" Version="0.10.6" />
diff --git a/UVtools.WPF/Windows/MaterialManagerWindow.axaml b/UVtools.WPF/Windows/MaterialManagerWindow.axaml
index 52908af..30873e4 100644
--- a/UVtools.WPF/Windows/MaterialManagerWindow.axaml
+++ b/UVtools.WPF/Windows/MaterialManagerWindow.axaml
@@ -77,8 +77,7 @@
</Border>
- <Border Grid.Row="1" BorderBrush="Black" BorderThickness="1" Padding="5">
- <Expander IsExpanded="False">
+ <Expander Grid.Row="1" IsExpanded="False">
<Expander.Header>
<TextBlock Text="Add new material"
FontWeight="Bold"
@@ -170,7 +169,6 @@
Text="units"/>
</Grid>
</Expander>
- </Border>
<TextBlock Grid.Row="2"
VerticalAlignment="Center" FontWeight="Bold"
diff --git a/UVtools.WPF/Windows/SettingsWindow.axaml.cs b/UVtools.WPF/Windows/SettingsWindow.axaml.cs
index 80d1a66..b63f068 100644
--- a/UVtools.WPF/Windows/SettingsWindow.axaml.cs
+++ b/UVtools.WPF/Windows/SettingsWindow.axaml.cs
@@ -63,7 +63,7 @@ namespace UVtools.WPF.Windows
{
FileFormat.AllSlicerFiles.Replace("*", string.Empty)
};
- fileFormats.AddRange(from format in FileFormat.AvailableFormats from extension in format.FileExtensions select $"{extension.Description} (.{extension.Extension})");
+ fileFormats.AddRange(from format in FileFormat.AvailableFormats from extension in format.FileExtensions where extension.IsVisibleOnFileFilters select $"{extension.Description} (.{extension.Extension})");
FileOpenDialogFilters = fileFormats.ToArray();
diff --git a/UVtools.WPF/Windows/ToolWindow.axaml.cs b/UVtools.WPF/Windows/ToolWindow.axaml.cs
index f7ffdfa..5d2438f 100644
--- a/UVtools.WPF/Windows/ToolWindow.axaml.cs
+++ b/UVtools.WPF/Windows/ToolWindow.axaml.cs
@@ -725,6 +725,8 @@ namespace UVtools.WPF.Windows
}, TimeSpan.FromMilliseconds(1));
}
+
+
public void FitToSize()
{
SizeToContent = SizeToContent.Manual;