Files
UVtools/UVtools.WPF/Controls/Tools/ToolRaftReliefControl.axaml
Tiago Conceição e727a097b3 v3.8.1
- **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
2022-11-02 23:39:21 +00:00

239 lines
9.6 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="UVtools.WPF.Controls.Tools.ToolRaftReliefControl">
<Grid
ColumnDefinitions="Auto,10,200,5,Auto"
RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto">
<TextBlock Text="Relief type:" VerticalAlignment="Center"/>
<ComboBox Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="3"
Width="458"
HorizontalAlignment="Left"
Items="{Binding Operation.ReliefType, Converter={StaticResource EnumToCollectionConverter}, Mode=OneTime}"
SelectedItem="{Binding Operation.ReliefType, Converter={StaticResource FromValueDescriptionToEnumConverter}}"/>
<TextBlock
Grid.Row="2"
Grid.Column="0"
ToolTip.Tip="Defines the mask layer to use and ignore it white blobs on the raft.
&#x0a;Often this is the first layer where raft ends and supports starts.
&#x0a;Use '0' to auto detect the mask layer, otherwise if it fails or if you have multiple rafts with different heights
you must manually input the layer index of the last raft where it ends and supports starts."
Text="Mask layer index:" VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="2" Grid.Column="2"
Classes="ValueLabel ValueLabel_layers"
Minimum="0"
Maximum="{Binding SlicerFile.LastLayerIndex}"
Increment="1"
Value="{Binding Operation.MaskLayerIndex}"/>
<StackPanel Grid.Row="2" Grid.Column="4"
Orientation="Horizontal" Spacing="5">
<Button Content="Use current layer" Command="{Binding UseCurrentLayerAsMask}" />
<TextBlock VerticalAlignment="Center"
Text="(0 = Auto detect)" />
</StackPanel>
<TextBlock
Grid.Row="4"
Grid.Column="0"
Text="Ignore first:" VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="4" Grid.Column="2"
Classes="ValueLabel ValueLabel_layers"
Minimum="0"
Maximum="255"
Increment="1"
Value="{Binding Operation.IgnoreFirstLayers}"/>
<TextBlock
Grid.Row="4" Grid.Column="4"
Text="layer(s)" VerticalAlignment="Center"/>
<TextBlock
Grid.Row="6"
Grid.Column="0"
IsVisible="{Binding !Operation.IsDecimate}"
Text="Pixel brightness:" VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="6" Grid.Column="2"
Classes="ValueLabel ValueLabel_sun"
Minimum="0"
Maximum="255"
Increment="1"
Value="{Binding Operation.LowBrightness}">
<NumericUpDown.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.Or}">
<Binding Path="Operation.IsRelief"/>
<Binding Path="Operation.IsDimming"/>
</MultiBinding>
</NumericUpDown.IsVisible>
</NumericUpDown>
<NumericUpDown Grid.Row="6" Grid.Column="2"
Classes="ValueLabel ValueLabel_sun"
Minimum="0"
Maximum="255"
Increment="1"
Value="{Binding Operation.HighBrightness}">
<NumericUpDown.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.Or}">
<Binding Path="Operation.IsLinkedLines"/>
<Binding Path="Operation.IsTabs"/>
</MultiBinding>
</NumericUpDown.IsVisible>
</NumericUpDown>
<TextBlock Grid.Row="6" Grid.Column="4"
IsVisible="{Binding !Operation.IsDecimate}"
Text="{Binding Operation.BrightnessPercent, StringFormat={}{0:F2}%}" VerticalAlignment="Center"/>
<TextBlock Grid.Row="8" Grid.Column="0"
Text="Supports margin:" VerticalAlignment="Center">
<TextBlock.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.Or}">
<Binding Path="Operation.IsRelief"/>
<Binding Path="Operation.IsDimming"/>
</MultiBinding>
</TextBlock.IsVisible>
</TextBlock>
<TextBlock Grid.Row="8" Grid.Column="0"
ToolTip.Tip="Raft will be replaced by the present supports and then dilated by this value to thicken the supports and increase the adhesion.
&#x0a;Use large numbers with tiny supports for best adhesion."
Text="Dilate supports by:" VerticalAlignment="Center">
<TextBlock.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.Or}">
<Binding Path="Operation.IsLinkedLines"/>
<Binding Path="Operation.IsDecimate"/>
</MultiBinding>
</TextBlock.IsVisible>
</TextBlock>
<TextBlock Grid.Row="8" Grid.Column="0"
IsVisible="{Binding Operation.IsTabs}"
Text="Tab triangle base:" VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="8" Grid.Column="2"
Classes="ValueLabel ValueLabel_px"
Minimum="0"
Maximum="255"
Increment="1"
IsVisible="{Binding !Operation.IsTabs}"
Value="{Binding Operation.DilateIterations}"/>
<NumericUpDown Grid.Row="8" Grid.Column="2"
Classes="ValueLabel ValueLabel_px"
Minimum="5"
Maximum="65535"
Increment="1"
IsVisible="{Binding Operation.IsTabs}"
Value="{Binding Operation.TabTriangleBase}"/>
<TextBlock Grid.Row="10" Grid.Column="0"
Text="Wall margin:" VerticalAlignment="Center">
<TextBlock.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.Or}">
<Binding Path="Operation.IsRelief"/>
<Binding Path="Operation.IsDimming"/>
</MultiBinding>
</TextBlock.IsVisible>
</TextBlock>
<TextBlock Grid.Row="10" Grid.Column="0"
IsVisible="{Binding Operation.IsLinkedLines}"
ToolTip.Tip="Each support will be linked to the nearby neighbours at least the defined times."
Text="Minimum links:" VerticalAlignment="Center"/>
<TextBlock Grid.Row="10" Grid.Column="0"
IsVisible="{Binding Operation.IsTabs}"
Text="Tab triangle height:" VerticalAlignment="Center"/>
<NumericUpDown Grid.Row="10" Grid.Column="2"
Classes="ValueLabel ValueLabel_px"
Minimum="1"
Maximum="255"
Increment="1"
Value="{Binding Operation.WallMargin}">
<NumericUpDown.IsVisible>
<MultiBinding Converter="{x:Static BoolConverters.Or}">
<Binding Path="Operation.IsRelief"/>
<Binding Path="Operation.IsDimming"/>
</MultiBinding>
</NumericUpDown.IsVisible>
</NumericUpDown>
<NumericUpDown Grid.Row="10" Grid.Column="2"
Classes="ValueLabel ValueLabel_times"
Minimum="0"
Maximum="255"
Increment="1"
IsVisible="{Binding Operation.IsLinkedLines}"
Value="{Binding Operation.LinkedMinimumLinks}"/>
<CheckBox Grid.Row="10" Grid.Column="4"
VerticalAlignment="Center"
Content="Links outer-most supports"
ToolTip.Tip="Links outer-most supports all together, creating a perimeter around inner supports."
IsVisible="{Binding Operation.IsLinkedLines}"
IsChecked="{Binding Operation.LinkedExternalSupports}"/>
<NumericUpDown Grid.Row="10" Grid.Column="2"
Classes="ValueLabel ValueLabel_px"
Minimum="5"
Maximum="65535"
Increment="1"
IsVisible="{Binding Operation.IsTabs}"
Value="{Binding Operation.TabTriangleHeight}"/>
<TextBlock Grid.Row="12" Grid.Column="0"
Text="Hole diameter:" VerticalAlignment="Center"
IsVisible="{Binding Operation.IsRelief}"/>
<TextBlock Grid.Row="12" Grid.Column="0"
Text="Line thickness:" VerticalAlignment="Center"
IsVisible="{Binding Operation.IsLinkedLines}"/>
<NumericUpDown Grid.Row="12" Grid.Column="2"
Classes="ValueLabel ValueLabel_px"
Minimum="10"
Maximum="255"
Increment="1"
Value="{Binding Operation.HoleDiameter}"
IsVisible="{Binding Operation.IsRelief}"/>
<NumericUpDown Grid.Row="12" Grid.Column="2"
Classes="ValueLabel ValueLabel_px"
Minimum="4"
Maximum="255"
Increment="1"
IsVisible="{Binding Operation.IsLinkedLines}"
Value="{Binding Operation.LinkedLineThickness}"/>
<TextBlock
Grid.Row="14" Grid.Column="0"
Text="Hole spacing:" VerticalAlignment="Center"
IsVisible="{Binding Operation.IsRelief}"/>
<NumericUpDown Grid.Row="14" Grid.Column="2"
Classes="ValueLabel ValueLabel_px"
Minimum="10"
Maximum="255"
Increment="1"
Value="{Binding Operation.HoleSpacing}"
IsVisible="{Binding Operation.IsRelief}"/>
</Grid>
</UserControl>