feat: 基础信息叠板计算功能

- 新增 StackCountCalculator: 数字化规则表(短槽刀/EA刀10×4、槽刀10×4、钻针10×6),公开Calculate方法,输入校验,查表逻辑,16oz铜厚递减
- 新增 StartupSelectionViewModel: 替换匿名DataContext,保留所有显示属性,新增板厚/铜厚输入、计算结果/明细、CanCalculate
- 新增 NonEmptyToVisibilityConverter
- 修改 StartupSelectionWindow.xaml: 增宽680px,新增3行(输入+结果+明细),计算按钮在基础信息内部
- 修改 StartupSelectionWindow.xaml.cs: 构造函数接收ViewModel,新增计算按钮事件
- 修改 App.xaml.cs: 构建ViewModel实例,CalculateStackMinDiameters独立遍历Tools(含0.749mm,排除机台码)
- 修改 App.xaml: 注册NonEmptyToVisibilityConverter
This commit is contained in:
2026-06-27 16:24:45 +08:00
parent e27636dd93
commit fa697c9fd0
7 changed files with 919 additions and 31 deletions

View File

@@ -2,7 +2,7 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="选择功能"
Width="570"
Width="680"
SizeToContent="Height"
ResizeMode="NoResize"
Topmost="True"
@@ -21,6 +21,9 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal">
@@ -88,6 +91,47 @@
VerticalAlignment="Center"
Text="{Binding Outer3175YSpacing, StringFormat=Y间距: {0:F3}}" />
</StackPanel>
<!-- 叠板计算输入行 -->
<Grid Grid.Row="3" Margin="0,8,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="80" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="60" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" VerticalAlignment="Center" Text="板厚(mm)" />
<TextBox Grid.Column="1"
VerticalAlignment="Center"
VerticalContentAlignment="Center"
Text="{Binding BoardThicknessInput, UpdateSourceTrigger=PropertyChanged}" />
<TextBlock Grid.Column="2" Margin="15,0,0,0" VerticalAlignment="Center" Text="单张总铜厚(oz)" />
<TextBox Grid.Column="3"
Width="60"
VerticalAlignment="Center"
VerticalContentAlignment="Center"
Text="{Binding CopperThicknessInput, UpdateSourceTrigger=PropertyChanged}" />
<Button Grid.Column="4" Margin="10,0,0,0"
Width="75" Height="25"
Content="计算叠板"
IsEnabled="{Binding CanCalculate}"
Click="CalculateStackCount_Click" />
</Grid>
<!-- 叠板计算结果行 -->
<TextBlock Grid.Row="4" Margin="0,5,0,0"
VerticalAlignment="Center"
FontWeight="Bold"
Text="{Binding StackCountResult}" />
<!-- 叠板计算明细行 -->
<TextBlock Grid.Row="5" Margin="0,2,0,0"
Text="{Binding StackCountDetail}"
TextWrapping="Wrap"
Visibility="{Binding StackCountDetail, Converter={StaticResource NonEmptyToVisibilityConverter}}" />
</Grid>
</GroupBox>