mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-14 12:26:19 +02:00
- **Tools:**
- **PCB Exposure:**
- (Add) Allow to scale the drawing sizes per gerber file
- (Add) Allow to invert the drawing polarity per gerber file (#592)
- (Add) Allow to drag and drop files into "Add files" button and grid header
- (Improvement) Do not add empty layers when usable to draw or when draw a all black image
- (Improvement) "Merge all gerbers into one layer" will now draw all gerber into one image instead of perform the Max(of all gerbers pixels), allowing to subtract areas as they are on gerbers
- **Import layers:** Fix error when trying to insert layers
- **Export layers images:** Better compression of contours for SVG export, resulting in smooth curves, better visuals and lower file size
- (Add) Outline: Triangulate
- (Remove) Avalonia.Diagnostics dependency in release mode
297 lines
13 KiB
XML
297 lines
13 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="800"
|
|
x:Class="UVtools.WPF.Controls.Calibrators.CalibrateGrayscaleControl">
|
|
<Grid ColumnDefinitions="Auto,10,350">
|
|
<StackPanel Spacing="10">
|
|
<Grid
|
|
RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
|
|
ColumnDefinitions="Auto,10,190,5,Auto,20,Auto,10,190,5,Auto">
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
Text="Layer height:"/>
|
|
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
|
Classes="ValueLabel ValueLabel_mm"
|
|
Increment="0.01"
|
|
Minimum="0.01"
|
|
Maximum="0.30"
|
|
FormatString="F3"
|
|
Value="{Binding Operation.LayerHeight}"/>
|
|
|
|
<StackPanel Grid.Row="0" Grid.Column="6"
|
|
VerticalAlignment="Center"
|
|
Spacing="0">
|
|
<TextBlock
|
|
FontWeight="Bold"
|
|
Text="Total layers:"/>
|
|
<TextBlock
|
|
FontWeight="Bold"
|
|
Text="Total height:"/>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Row="0" 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}"/>
|
|
|
|
|
|
</StackPanel>
|
|
|
|
<TextBlock Grid.Row="2" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
Text="Bottom layers:"/>
|
|
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
|
Classes="ValueLabel ValueLabel_layers"
|
|
Increment="1"
|
|
Minimum="1"
|
|
Maximum="1000"
|
|
Value="{Binding Operation.BottomLayers}"/>
|
|
<TextBlock Grid.Row="2" Grid.Column="4"
|
|
VerticalAlignment="Center"
|
|
Text="{Binding Operation.BottomHeight, StringFormat={}{0:F3}mm}"/>
|
|
|
|
<TextBlock Grid.Row="2" Grid.Column="6"
|
|
VerticalAlignment="Center"
|
|
ToolTip.Tip="Number of layers at normal exposure between bottom and normal layers"
|
|
Text="Interface layers:"/>
|
|
<NumericUpDown Grid.Row="2" Grid.Column="8"
|
|
Classes="ValueLabel ValueLabel_layers"
|
|
Increment="1"
|
|
Minimum="0"
|
|
Maximum="1000"
|
|
Value="{Binding Operation.InterfaceLayers}"/>
|
|
<TextBlock Grid.Row="2" Grid.Column="10"
|
|
VerticalAlignment="Center"
|
|
Text="{Binding Operation.InterfaceHeight, StringFormat={}{0:F3}mm}"/>
|
|
|
|
<TextBlock Grid.Row="4" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
Text="Normal layers:"/>
|
|
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
|
Classes="ValueLabel ValueLabel_layers"
|
|
Increment="1"
|
|
Minimum="1"
|
|
Maximum="1000"
|
|
Value="{Binding Operation.NormalLayers}"/>
|
|
<TextBlock Grid.Row="4" Grid.Column="4"
|
|
VerticalAlignment="Center"
|
|
Text="{Binding Operation.NormalHeight, StringFormat={}{0:F3}mm}"/>
|
|
|
|
<TextBlock Grid.Row="6" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
Text="Bottom exposure:"/>
|
|
<NumericUpDown Grid.Row="6" Grid.Column="2"
|
|
Classes="ValueLabel ValueLabel_s"
|
|
Increment="0.5"
|
|
Minimum="0.1"
|
|
Maximum="200"
|
|
FormatString="F2"
|
|
Value="{Binding Operation.BottomExposure}"/>
|
|
<TextBlock Grid.Row="6" Grid.Column="6"
|
|
VerticalAlignment="Center"
|
|
Text="Normal exposure:"/>
|
|
<NumericUpDown Grid.Row="6" Grid.Column="8"
|
|
Classes="ValueLabel ValueLabel_s"
|
|
Increment="0.5"
|
|
Minimum="0.1"
|
|
Maximum="200"
|
|
FormatString="F2"
|
|
Value="{Binding Operation.NormalExposure}"/>
|
|
|
|
|
|
<TextBlock Grid.Row="8" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
Text="Outer margin:"/>
|
|
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
|
Classes="ValueLabel ValueLabel_px"
|
|
Increment="1"
|
|
Minimum="0"
|
|
Maximum="10000"
|
|
Value="{Binding Operation.OuterMargin}"/>
|
|
|
|
<TextBlock Grid.Row="8" Grid.Column="6"
|
|
VerticalAlignment="Center"
|
|
Text="Inner margin:"/>
|
|
<NumericUpDown Grid.Row="8" Grid.Column="8"
|
|
Classes="ValueLabel ValueLabel_px"
|
|
Increment="1"
|
|
Minimum="0"
|
|
Maximum="10000"
|
|
Value="{Binding Operation.InnerMargin}"/>
|
|
|
|
<CheckBox Grid.Row="10" Grid.Column="2" Grid.ColumnSpan="4"
|
|
VerticalAlignment="Center"
|
|
Content="Enable Anti-Aliasing"
|
|
IsChecked="{Binding Operation.EnableAntiAliasing}"/>
|
|
|
|
<CheckBox Grid.Row="10" 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 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"
|
|
RowDefinitions="Auto,0,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
|
|
ColumnDefinitions="Auto,10,190,5,Auto,5,190,10,Auto,10,190">
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
Text="Brightness range:"/>
|
|
|
|
<NumericUpDown Grid.Row="0" Grid.Column="2"
|
|
Classes="ValueLabel ValueLabel_sun"
|
|
Increment="1"
|
|
Minimum="1"
|
|
Maximum="254"
|
|
Value="{Binding Operation.StartBrightness}"/>
|
|
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="4"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Center"
|
|
Text="-"/>
|
|
|
|
<NumericUpDown Grid.Row="0" Grid.Column="6"
|
|
Classes="ValueLabel ValueLabel_sun"
|
|
Increment="1"
|
|
Minimum="2"
|
|
Maximum="255"
|
|
Value="{Binding Operation.EndBrightness}"/>
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="8"
|
|
VerticalAlignment="Center"
|
|
Text="Step increment(s):"/>
|
|
|
|
<NumericUpDown Grid.Row="0" Grid.Column="10"
|
|
Classes="ValueLabel ValueLabel_sun"
|
|
Increment="1"
|
|
Minimum="2"
|
|
Maximum="254"
|
|
Value="{Binding Operation.BrightnessSteps}"/>
|
|
|
|
<TextBlock Grid.Row="2" Grid.Column="2"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Center"
|
|
Text="{Binding Operation.StartBrightnessPercent, StringFormat=({0}%)}"/>
|
|
<TextBlock Grid.Row="2" Grid.Column="6"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Center"
|
|
Text="{Binding Operation.EndBrightnessPercent, StringFormat=({0}%)}"/>
|
|
|
|
|
|
<TextBlock Grid.Row="4" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
IsEnabled="{Binding Operation.EnableCenterHoleRelief}"
|
|
Text="Center hole diameter:"/>
|
|
|
|
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
|
Classes="ValueLabel ValueLabel_px"
|
|
Increment="1"
|
|
Minimum="2"
|
|
Maximum="10000"
|
|
IsEnabled="{Binding Operation.EnableCenterHoleRelief}"
|
|
Value="{Binding Operation.CenterHoleDiameter}"/>
|
|
|
|
<CheckBox Grid.Row="4" Grid.Column="6" Grid.ColumnSpan="5"
|
|
VerticalAlignment="Center"
|
|
Content="Enable center hole relief"
|
|
IsChecked="{Binding Operation.EnableCenterHoleRelief}"/>
|
|
|
|
|
|
<StackPanel Grid.Row="6" Grid.Column="2" Grid.ColumnSpan="9" Orientation="Horizontal" Spacing="20">
|
|
<CheckBox VerticalAlignment="Center"
|
|
ToolTip.Tip="Show divisions text"
|
|
Content="Enable text"
|
|
IsChecked="{Binding Operation.TextEnabled}"/>
|
|
|
|
<CheckBox VerticalAlignment="Center"
|
|
ToolTip.Tip="Convert the raw brightness text value to exposure time in seconds and intrude on divisions"
|
|
Content="Convert brightness to exposure time"
|
|
IsChecked="{Binding Operation.ConvertBrightnessToExposureTime}"/>
|
|
|
|
<CheckBox VerticalAlignment="Center"
|
|
Content="Enable division lines"
|
|
IsChecked="{Binding Operation.EnableLineDivisions}"/>
|
|
</StackPanel>
|
|
|
|
|
|
<TextBlock Grid.Row="8" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
|
Text="Division thickness:"/>
|
|
|
|
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
|
Classes="ValueLabel ValueLabel_px"
|
|
Increment="1"
|
|
Minimum="0"
|
|
Maximum="255"
|
|
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
|
Value="{Binding Operation.LineDivisionThickness}"/>
|
|
|
|
<StackPanel Grid.Row="8" Grid.Column="6" Grid.ColumnSpan="5"
|
|
Spacing="10" Orientation="Horizontal">
|
|
<TextBlock
|
|
VerticalAlignment="Center"
|
|
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
|
Text="Div. brightness:"/>
|
|
|
|
<NumericUpDown Classes="ValueLabel ValueLabel_sun"
|
|
Increment="1"
|
|
Minimum="0"
|
|
Maximum="255"
|
|
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
|
Value="{Binding Operation.LineDivisionBrightness}"/>
|
|
|
|
<TextBlock
|
|
VerticalAlignment="Center"
|
|
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
|
Text="{Binding Operation.LineDivisionBrightnessPercent, StringFormat=({0}%)}"/>
|
|
</StackPanel>
|
|
|
|
<TextBlock Grid.Row="10" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
IsEnabled="{Binding Operation.EnableLineDivisions}"
|
|
Text="X text offset:"/>
|
|
|
|
<NumericUpDown Grid.Row="10" Grid.Column="2"
|
|
Classes="ValueLabel ValueLabel_px"
|
|
Increment="1"
|
|
Minimum="-10000"
|
|
Maximum="10000"
|
|
Value="{Binding Operation.TextXOffset}"/>
|
|
|
|
</Grid>
|
|
</Expander>
|
|
|
|
</StackPanel>
|
|
|
|
<Image Grid.Column="2"
|
|
Stretch="Uniform"
|
|
Source="{Binding PreviewImage}"/>
|
|
</Grid>
|
|
</UserControl>
|