添加项目文件。
This commit is contained in:
85
Docs/刀具列表拖动排序功能说明.md
Normal file
85
Docs/刀具列表拖动排序功能说明.md
Normal 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. **预览功能**:在应用排序前预览钻带输出变化
|
||||
Reference in New Issue
Block a user