mirror of
https://github.com/riegera2412/UVtools.git
synced 2026-07-12 03:22:32 +02:00
f914d77538
* (Improvement) Layers: "IsBottomLayer" property will now computing the value taking the height into consideration instead of it index, this allow to identify the real bottom layers when using multiple layers with same heights
* (Fix) GCode Builder: Finish print lift to top was setting the incorrect feedrate if the file format is not in mm/m speed units
* **Operations:**
* **Exposure time finder:**
* Add option to "Also set light-off delay to zero" when "Do not perform the lifting sequence for layers with same Z positioning" is enabled
* Layers heights with more than 3 decimals was limiting the layer generation to 2 decimals leading to wrong the layer thickness
* Allow set layer heights with 3 decimals
* **Elephant foot:**
* Bottom and normal layers count was showing with decimals
* Allow set layer heights with 3 decimals
* XYZ Accuracy: Allow set layer heights with 3 decimals
* Tolerance XYZ: Allow set layer heights with 3 decimals
* Grayscale: Allow set layer heights with 3 decimals
* Stress tower: Allow set layer heights with 3 decimals
* Calculator - Optimal model tilt: Allow layer heights with 3 decimals
167 lines
7.7 KiB
XML
167 lines
7.7 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.ToolDynamicLayerHeightControl">
|
|
|
|
<StackPanel Spacing="10">
|
|
|
|
<Grid RowDefinitions="Auto,0,Auto,10,Auto,10,Auto,10,Auto"
|
|
ColumnDefinitions="Auto,10,150,5,Auto,20,Auto,10,150,5,Auto">
|
|
|
|
<TextBlock Grid.Row="2" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
ToolTip.Tip="Never use less than this minimum layer height, layers will always stack at least to this height."
|
|
Text="Minimum layer height:"/>
|
|
|
|
<NumericUpDown Grid.Row="2" Grid.Column="2"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"
|
|
Minimum="{Binding SlicerFile.LayerHeight}"
|
|
Maximum="{Binding Operation.MaximumLayerHeight}"
|
|
Increment="0.01"
|
|
FormatString="F3"
|
|
Value="{Binding Operation.MinimumLayerHeight}"/>
|
|
<TextBlock Grid.Row="2" Grid.Column="4"
|
|
VerticalAlignment="Center"
|
|
Text="mm"/>
|
|
|
|
<TextBlock Grid.Row="2" Grid.Column="6"
|
|
VerticalAlignment="Center"
|
|
ToolTip.Tip="Allow to stack layers up to a maximum of this height"
|
|
Text="Maximum layer height:"/>
|
|
|
|
<NumericUpDown Grid.Row="2" Grid.Column="8"
|
|
Name="MaximumLayerHeight"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"
|
|
Minimum="{Binding MinimumLayerHeight}"
|
|
Maximum="{Binding MaximumLayerHeight}"
|
|
Increment="0.01"
|
|
FormatString="F3"
|
|
Value="{Binding Operation.MaximumLayerHeight}"/>
|
|
<TextBlock Grid.Row="2" Grid.Column="10"
|
|
VerticalAlignment="Center"
|
|
Text="mm"/>
|
|
|
|
<TextBlock Grid.Row="4" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
ToolTip.Tip="This operation needs to run sequentially, to boost speed up, a group of layers will be cached (decoded and transformed in parallel to latter use).
|
|

The more layers you can cache the faster it will run but more RAM is used.
|
|

As a rule of thumb, never use less layers than CPU core count x 2 and allow some free margin or SWAP will be used and slow down the operation.
|
|

When allocate more layers than the required, that memory will not be used and kept free."
|
|
Text="Cache RAM:"/>
|
|
|
|
<NumericUpDown Grid.Row="4" Grid.Column="2"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"
|
|
Minimum="0.5"
|
|
Maximum="128"
|
|
Increment="0.5"
|
|
FormatString="F2"
|
|
Value="{Binding Operation.CacheRAMSize}"/>
|
|
|
|
<TextBlock Grid.Row="4" Grid.Column="4"
|
|
VerticalAlignment="Center"
|
|
Text="GB"/>
|
|
|
|
<TextBlock Grid.Row="4" Grid.Column="6"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Center"
|
|
Text="Cache layers:"/>
|
|
|
|
<TextBlock Grid.Row="4" Grid.Column="8"
|
|
VerticalAlignment="Center"
|
|
Text="{Binding Operation.CacheObjectCount, StringFormat=±\{0\}}"/>
|
|
|
|
|
|
<TextBlock Grid.Row="6" Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
ToolTip.Tip="Linear: Current exposure + number of stacked layers * step.

|
|
Multiplier: Current exposure * layer height * number of stacked layers * step.

|
|
Manual: User defined exposure per layer height"
|
|
Text="Exposure set type:"/>
|
|
|
|
<ComboBox Grid.Row="6" Grid.Column="2"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"
|
|
Items="{Binding Operation.ExposureSetTypeItems}"
|
|
SelectedItem="{Binding Operation.ExposureSetType}"/>
|
|
|
|
<TextBlock Grid.Row="8" Grid.Column="0"
|
|
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
|
VerticalAlignment="Center"
|
|
ToolTip.Tip="Bottom exposure increment per layer height"
|
|
Text="Bottom exposure step:"/>
|
|
|
|
<NumericUpDown Grid.Row="8" Grid.Column="2"
|
|
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"
|
|
Minimum="0.01"
|
|
Maximum="100"
|
|
Increment="0.01"
|
|
FormatString="F2"
|
|
Value="{Binding Operation.BottomExposureStep}"/>
|
|
<TextBlock Grid.Row="8" Grid.Column="4"
|
|
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
|
VerticalAlignment="Center"
|
|
Text="s"/>
|
|
|
|
<TextBlock Grid.Row="8" Grid.Column="6"
|
|
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Center"
|
|
ToolTip.Tip="Exposure increment per layer height"
|
|
Text="Exposure step:"/>
|
|
|
|
<NumericUpDown Grid.Row="8" Grid.Column="8"
|
|
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"
|
|
Minimum="0.01"
|
|
Maximum="100"
|
|
Increment="0.01"
|
|
FormatString="F2"
|
|
Value="{Binding Operation.ExposureStep}"/>
|
|
|
|
<TextBlock Grid.Row="8" Grid.Column="10"
|
|
IsVisible="{Binding !Operation.IsExposureSetTypeManual}"
|
|
VerticalAlignment="Center"
|
|
Text="s"/>
|
|
|
|
</Grid>
|
|
|
|
<TextBlock Text="Exposure Table:"
|
|
HorizontalAlignment="Center"
|
|
FontWeight="Bold" />
|
|
|
|
<DataGrid
|
|
Name="ExposureTable"
|
|
CanUserReorderColumns="True"
|
|
CanUserResizeColumns="True"
|
|
CanUserSortColumns="True"
|
|
GridLinesVisibility="Horizontal"
|
|
IsReadOnly="False"
|
|
ClipboardCopyMode="IncludeHeader"
|
|
MinHeight="200"
|
|
Items="{Binding Operation.ExposureTable}">
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn Header="Layer height (mm)"
|
|
Binding="{Binding LayerHeight}"
|
|
IsReadOnly="True"
|
|
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>
|
|
</UserControl>
|