Files
AohDrllTools/StartupSelectionWindow.xaml
Mr.Xia fa697c9fd0 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
2026-06-27 16:24:45 +08:00

149 lines
7.5 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<Window x:Class="DrillTools.StartupSelectionWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="选择功能"
Width="680"
SizeToContent="Height"
ResizeMode="NoResize"
Topmost="True"
WindowStartupLocation="CenterScreen">
<Grid Margin="15">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- 基础信息 -->
<GroupBox Grid.Row="0" Header="基础信息" Margin="0,0,0,10">
<Grid Margin="1">
<Grid.RowDefinitions>
<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">
<TextBlock VerticalAlignment="Center" Text="文件名:" />
<TextBlock
Margin="0,0,10,5"
VerticalAlignment="Center"
FontWeight="Bold"
Text="{Binding FileName}" />
<TextBlock
Margin="10,0,0,5"
VerticalAlignment="Center"
Visibility="{Binding IsPpDrillTape, Converter={StaticResource BooleanToVisibilityConverter}}"
Text="{Binding PpXSpacing, StringFormat=X间距: {0:F3}}" />
<TextBlock
Margin="10,0,0,5"
VerticalAlignment="Center"
Visibility="{Binding IsPpDrillTape, Converter={StaticResource BooleanToVisibilityConverter}}"
Text="{Binding PpYSpacing, StringFormat=Y间距: {0:F3}}" />
</StackPanel>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="最小钻咀:" />
<TextBlock
Margin="5,0,0,0"
VerticalAlignment="Center"
Text="{Binding MinDrillDiameter, StringFormat=F3}" />
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="最小槽刀:" />
<TextBlock
Margin="5,0,0,0"
VerticalAlignment="Center"
Text="{Binding MinSlotDiameter, StringFormat=F3}" />
</StackPanel>
<StackPanel Grid.Column="2" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="最小EA刀" />
<TextBlock
Margin="5,0,0,0"
VerticalAlignment="Center"
Text="{Binding MinEADiameter, StringFormat=F3}" />
</StackPanel>
</Grid>
<StackPanel
Grid.Row="2"
Margin="0,5,0,0"
Orientation="Horizontal"
Visibility="{Binding HasOuter3175Spacing, Converter={StaticResource BooleanToVisibilityConverter}}">
<TextBlock VerticalAlignment="Center" Text="3.175外围孔 " />
<TextBlock
VerticalAlignment="Center"
Text="{Binding Outer3175XSpacing, StringFormat=X间距: {0:F3}}" />
<TextBlock
Margin="10,0,0,0"
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>
<TextBlock Grid.Row="1" Text="请选择要执行的功能:" Margin="0,0,0,15"/>
<StackPanel Grid.Row="2" HorizontalAlignment="Center" Orientation="Horizontal">
<Button Width="120" Height="30" Content="调整刀序" Margin="0,0,15,0" Click="AdjustToolOrder_Click"/>
<Button Width="120" Height="30" Content="导出孔数" Margin="0,0,15,0" Click="ExportHoleCount_Click"/>
<Button Name="ClearParametersButton" Width="120" Height="30" Content="清空参数" Margin="0,0,15,0" Click="ClearParameters_Click"/>
<Button Name="GeneratePpDrillTapeButton" Width="120" Height="30" Content="生成PP钻带" Margin="0,0,15,0" Click="GeneratePpDrillTape_Click"/>
<Button Name="ScaleDrillTapeButton" Width="120" Height="30" Content="二钻涨缩" Click="ScaleDrillTape_Click"/>
</StackPanel>
</Grid>
</Window>