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

本次提交主要内容如下:

- 新增“排序功能”菜单,支持重排刀序、生成/应用排序种子、按参考钻带重排等多种排序方式,提升刀具顺序管理灵活性。
- 支持用户选择参考钻带文件或排序种子文件,自动重排当前刀具顺序,并提供详细的匹配校验、警告提示和重排前后对比确认。
- 新增生成通用排序种子文件(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

@@ -0,0 +1,97 @@
# 使用指定钻带的刀序功能说明
## 功能概述
"使用指定钻带的刀序"功能允许用户选择一个之前排序好的钻带文件,直接读取其刀序到内存中进行重排操作,而不需要生成本地排序种子文件。
## 使用步骤
1. **加载当前钻带文件**
- 点击"加载钻带文件"按钮或直接拖拽钻带文件到窗口
- 系统会解析并显示当前钻带的刀具信息
2. **选择参考钻带文件**
- 点击菜单栏中的"排序功能" → "使用指定钻带的刀序"
- 在弹出的文件选择对话框中选择一个之前排序好的钻带文件
3. **系统验证**
- 系统会自动验证当前钻带与参考钻带的刀具数量和直径是否匹配
- 如果不匹配,会显示详细的错误信息并中止操作
- 如果机台码刀具位置不一致,会显示警告信息
4. **确认重排**
- 验证通过后,系统会显示重排前后的对比窗口
- 用户可以查看刀具顺序的变化情况
- 点击"确认"执行重排,点击"取消"保持原顺序
5. **完成重排**
- 系统会按照参考钻带的刀序重新排列当前刀具
- 自动重新编号T01, T02, T03...
- 更新钻带内容并显示成功信息
## 验证规则
### 严格匹配原则
- **刀具数量必须一致**:当前钻带和参考钻带的刀具数量必须完全相同
- **刀具直径必须匹配**:所有刀具的直径都必须在两个钻带中存在(考虑浮点数精度)
- **机台码位置检查**:检查机台码刀具位置是否一致,不一致时给出警告
### 错误处理
- 文件不存在:提示文件不存在错误
- 文件内容为空:提示文件内容为空错误
- 格式错误:提示刀具定义格式错误
- 数量不匹配:显示具体的数量差异
- 直径不匹配:显示哪些刀具在其中一个钻带中但不在另一个中
## 技术特点
### 内存操作
- 所有排序操作都在内存中完成
- 不生成本地排序种子文件
- 直接从参考钻带文件读取刀序
### 复用现有基础设施
- 使用现有的刀具排序算法
- 使用现有的重排确认窗口
- 使用现有的重新编号机制
### 用户友好
- 异步处理避免界面冻结
- 详细的进度提示
- 清晰的错误和警告信息
- 直观的重排前后对比
## 注意事项
1. **文件格式要求**参考钻带文件必须是标准的钻带格式包含TxxCxxx格式的刀具定义
2. **刀具匹配**:只有当两个钻带的刀具完全匹配时才能进行重排
3. **机台码处理**:机台码刀具会保持原始编号,不会重新编号
4. **备份机制**:重排操作会自动创建原文件的备份
## 与现有功能的关系
- **互补功能**:本功能与现有的"生成排序种子"功能互为补充
- **保留原功能**:原有的基于种子文件的排序功能完全保留
- **使用场景**
- 生成排序种子:用于长期保存和重复使用排序方案
- 使用指定钻带的刀序:用于一次性快速应用另一个钻带的排序
## 示例场景
### 场景1相似产品快速重排
- 有多个相似产品的钻带文件
- 其中一个已经完成了刀具排序优化
- 使用该功能可以快速将优化后的刀序应用到其他相似产品
### 场景2临时排序需求
- 不需要长期保存排序方案
- 只是想临时参考另一个钻带的刀序
- 使用该功能可以避免创建额外的种子文件
## 测试功能
开发人员可以使用"测试参考钻带功能"按钮来测试新功能的正确性:
- 自动加载示例数据
- 创建模拟参考钻带文件
- 执行完整的重排流程
- 在调试输出中显示测试结果