添加项目文件。

This commit is contained in:
2025-12-07 20:25:27 +08:00
parent 52ad3bd1e4
commit b866365968
31 changed files with 16642 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
# 刀具列表拖动排序功能说明
## 功能概述
本功能为 DrillTools 应用程序添加了一个可拖动排序的刀具列表控件,允许用户通过直观的拖放操作调整刀具的处理顺序,并将新顺序应用到钻带输出中。
## 主要特性
### 1. 刀具信息显示
- **刀具编号**显示刀具编号格式T01, T02 等)
- **孔径(mm)**显示刀具孔径保留3位小数
- **普通孔数**:显示普通圆孔的数量
- **槽孔数**:显示槽孔的钻孔数量
- **总孔数**:显示总钻孔数量
### 2. 拖放排序
- 点击并拖动刀具项到新位置
- 释放鼠标完成排序
- 支持视觉反馈,拖动时显示目标位置
### 3. 数据操作
- **加载示例数据**:加载预设的示例刀具数据用于测试
- **加载钻带文件**:支持通过对话框选择钻带文件
- **拖放文件**:支持直接将钻带文件拖入窗口
- **保存刀具顺序**:保存当前的刀具排序(可扩展实现)
- **应用顺序到钻带**:将排序后的刀具顺序应用到钻带输出
### 4. 撤销/重做
- **撤销**:撤销上一次排序操作
- **重做**:重做已撤销的操作
## 使用方法
### 1. 启动应用程序
运行 DrillTools 应用程序,主窗口将显示刀具列表和钻带内容区域。
### 2. 加载数据
- 点击"加载示例数据"按钮加载测试数据
- 或点击"加载钻带文件"按钮选择钻带文件
- 或直接将钻带文件拖入窗口
### 3. 排序刀具
- 在刀具列表中,点击要移动的刀具项
- 按住鼠标左键,拖动到目标位置
- 释放鼠标完成排序
### 4. 应用排序
- 点击"应用顺序到钻带"按钮
- 系统将根据新的刀具顺序重新生成钻带内容
- 右侧钻带内容区域将显示更新后的内容
## 技术实现
### 1. 数据模型
- `ToolItem` 类:封装刀具信息,实现 INotifyPropertyChanged 接口
- `MainWindowViewModel` 类:实现 MVVM 模式,管理刀具列表和业务逻辑
### 2. 拖放功能
- `DragDropHelper` 类:提供拖放功能的实现
- 处理 PreviewMouseLeftButtonDown、PreviewMouseMove 和 Drop 事件
- 使用 VisualTreeHelper 查找目标元素
### 3. 钻带处理
- 扩展 `DrillTapeProcessor` 类,添加重新排序功能
- 解析原始钻带,按新顺序重新生成钻带内容
### 4. 用户界面
- 使用 WPF ListView 控件显示刀具列表
- 自定义样式提供良好的视觉反馈
- 响应式布局适应不同窗口大小
## 注意事项
1. **文件格式**:支持 .txt 和 .dr2 格式的钻带文件
2. **加密文件**:使用 cmd 命令读取加密钻带文件内容
3. **数据完整性**:排序操作不会修改原始钻带数据,只影响输出顺序
4. **性能考虑**:大量刀具时可能需要优化拖放性能
## 扩展功能建议
1. **保存/加载排序方案**:针对不同料号保存和加载排序方案
2. **批量操作**:支持多选和批量排序操作
3. **排序规则**:添加自动排序规则(如按孔径大小排序)
4. **导入/导出**:支持导入/导出刀具排序配置
5. **预览功能**:在应用排序前预览钻带输出变化