新增钻带刀序多种排序功能及相关文档

本次提交主要内容如下:

- 新增“排序功能”菜单,支持重排刀序、生成/应用排序种子、按参考钻带重排等多种排序方式,提升刀具顺序管理灵活性。
- 支持用户选择参考钻带文件或排序种子文件,自动重排当前刀具顺序,并提供详细的匹配校验、警告提示和重排前后对比确认。
- 新增生成通用排序种子文件(General_sort.txt)功能,便于批量产品排序。
- 优化界面布局,提升信息展示美观性和空间利用率。
- 增加异常处理和详细注释,提升健壮性和可维护性。
- 新增多个文档,详细说明“使用指定钻带的刀序”功能的实现、使用方法、演示流程及开发过程中的问题修复,便于开发和用户理解。
- 新增两个排序种子文件示例(General_sort.txt、s40024079g0-a2-cs-jp-sort.txt),用于刀具顺序自动重排。
- 其他无实际代码变更的文件未影响功能。

本次改动极大提升了钻带刀具顺序管理的自动化、灵活性和用户体验,适用于多样化的生产场景。
This commit is contained in:
2025-12-28 13:16:41 +08:00
parent 0eab0f42ee
commit 837cf6fb12
12 changed files with 1875 additions and 10264 deletions

View File

@@ -34,9 +34,31 @@
Click="LoadDrillTapeButton_Click"
Content="加载钻带文件" />
<Button
Name="ReorderToolsButton"
Click="ReorderToolsButton_Click"
Content="重排刀序" />
Name="TestReferenceDrillTapeButton"
Click="TestReferenceDrillTapeButton_Click"
Content="测试参考钻带功能" />
<Menu>
<MenuItem Header="排序功能">
<MenuItem
Name="ReorderToolsMenuItem"
Click="ReorderToolsButton_Click"
Header="重排刀序" />
<MenuItem
Name="GenerateSortSeedMenuItem"
Click="GenerateSortSeedButton_Click"
Header="生成排序种子"
IsEnabled="{Binding HasOriginalFile}" />
<Separator />
<MenuItem
Name="UseReferenceDrillTapeMenuItem"
Click="UseReferenceDrillTapeButton_Click"
Header="使用指定钻带的刀序" />
<MenuItem
Name="UseSortSeedMenuItem"
Click="UseSortSeedButton_Click"
Header="使用指定种子的刀序" />
</MenuItem>
</Menu>
<Button
Name="ApplyOrderButton"
Click="ApplyOrderButton_Click"
@@ -55,7 +77,7 @@
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="120" />
<RowDefinition Height="100" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
@@ -154,41 +176,53 @@
Grid.Row="0"
Grid.Column="1"
Header="基础信息">
<Grid Margin="10">
<Grid Margin="1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- 文件名单独一行 -->
<TextBlock
Grid.Row="0"
Text="{Binding FileNameWithoutExtension}"
VerticalAlignment="Center"
Margin="0,0,0,5"
FontWeight="Bold" />
<!-- 三个最小直径信息在同一行 -->
<!-- 文件名单独一行 -->
<StackPanel Grid.Column="0" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="文件名:" />
<TextBlock
Margin="0,0,0,5"
VerticalAlignment="Center"
FontWeight="Bold"
Text="{Binding FileNameWithoutExtension}" />
</StackPanel>
<!-- 三个最小直径信息在同一行 -->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal">
<TextBlock Text="最小钻咀:" VerticalAlignment="Center" />
<TextBlock Text="{Binding MinDrillDiameter, StringFormat=F3}" VerticalAlignment="Center" Margin="5,0,0,0" />
<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 Text="最小槽刀:" VerticalAlignment="Center" />
<TextBlock Text="{Binding MinSlotDiameter, StringFormat=F3}" VerticalAlignment="Center" Margin="5,0,0,0" />
<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 Text="最小EA刀" VerticalAlignment="Center" />
<TextBlock Text="{Binding MinEADiameter, StringFormat=F3}" VerticalAlignment="Center" Margin="5,0,0,0" />
<TextBlock VerticalAlignment="Center" Text="最小EA刀" />
<TextBlock
Margin="5,0,0,0"
VerticalAlignment="Center"
Text="{Binding MinEADiameter, StringFormat=F3}" />
</StackPanel>
</Grid>
</Grid>