Files
AohDrllTools/Docs/刀具列表拖动排序功能说明.md
2025-12-07 20:25:27 +08:00

85 lines
3.1 KiB
Markdown
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.

# 刀具列表拖动排序功能说明
## 功能概述
本功能为 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. **预览功能**:在应用排序前预览钻带输出变化