mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-06-11 14:33:04 +00:00
7.2 KiB
7.2 KiB
G-code边界超限检查工具 - 使用说明
📋 工具简介
这是一个带有图形界面的G-code边界检查工具,可以帮助你:
✅ 检测Travel移动超限 - 发现可能导致打印头撞机的Travel移动 ✅ 检测Extrude移动超限 - 发现挤出路径超出边界 ✅ 支持多种床类型 - 矩形床、圆形床(Delta打印机) ✅ 详细报告 - 提供超限位置、类型、距离等详细信息 ✅ 快速预设 - 常见打印机尺寸一键设置
🚀 快速开始
方法1: 双击启动(推荐)
- 双击
run_gcode_checker.bat启动程序 - 如果提示"未找到Python",需要先安装Python(见下方)
方法2: 命令行启动
python gcode_boundary_checker_gui.py
💻 系统要求
- Python 3.7+(必需)
- tkinter(Python标准库,通常自带)
- 支持 Windows / macOS / Linux
安装Python
如果系统没有Python,请访问:https://www.python.org/downloads/
Windows用户注意:安装时勾选 "Add Python to PATH"
验证安装:
python --version
# 应显示: Python 3.x.x
📖 使用教程
步骤1: 选择G-code文件
点击"浏览..."按钮,选择要检查的.gcode文件
步骤2: 配置床参数
矩形床(常见3D打印机)
- 选择"矩形床"
- 输入尺寸:
- X: 床宽度(mm)
- Y: 床深度(mm)
- Z: 最大打印高度(mm)
- 原点通常保持 (0, 0)
快速预设(点击即可应用):
200×200×250- Ender 3, CR-10等220×220×250- Prusa i3 MK3等250×250×300- CR-10S等300×300×400- CR-10 Max等
圆形床(Delta打印机)
- 选择"圆形床 (Delta)"
- 输入:
- 半径: 床半径(mm)
- Z高度: 最大打印高度(mm)
步骤3: 开始分析
- 点击"开始分析"按钮
- 等待进度条完成(大文件可能需要几秒钟)
- 查看结果报告
步骤4: 查看结果
✅ 正常情况
✅ 所有移动都在边界内!
⚠️ 发现超限
报告会显示:
- 总超限数量
- Travel/Extrude超限分类
- 超限类型统计
- 详细超限列表(前100个)
每个超限包含:
- 行号: G-code文件中的行数
- 类型: Travel或Extrude
- 位置: X, Y, Z坐标
- 超限类型: X/Y/Z超限方向
- 超出距离: 超出边界多少mm
- 原始代码: 超限的G-code命令
步骤5: 保存报告
点击"保存报告"按钮,将完整报告保存为.txt文件
📊 报告示例
======================================================================
G-code边界超限分析报告
======================================================================
床类型: 矩形
床边界: X[0.0, 200.0] Y[0.0, 200.0] Z[0, 250.0]
总行数: 45823
总移动数: 12456
- Travel移动: 3421
- Extrude移动: 9035
发现超限: 5 处
- Travel超限: 3
- Extrude超限: 2
超限类型统计:
X > 最大值: 3 次
Y > 最大值: 2 次
======================================================================
详细超限列表 (前100个):
======================================================================
[1] 行 1234: Travel - X > 最大值
位置: X=205.340 Y=100.000 Z=50.000 E=123.456
超出: 5.340 mm
代码: G0 X205.34 Y100 F7200
[2] 行 2345: Extrude - Y > 最大值
位置: X=150.000 Y=203.120 Z=50.000 E=150.234
超出: 3.120 mm
代码: G1 X150 Y203.12 E150.234
🔍 常见问题
Q1: 为什么会检测出Travel超限?
原因:
- OrcaSlicer原有代码只检查Extrude移动,忽略了Travel移动
- Travel移动如果超限,可能导致打印头撞击边界
如何修复:
- 调整模型位置,远离床边缘
- 减小Skirt/Brim距离
- 检查擦料塔位置
- 调整打印顺序
Q2: 显示"✅ 所有移动都在边界内",但切片软件仍报错?
可能原因:
- 切片软件使用了更严格的边界检查
- 考虑了挤出线宽(本工具只检查路径中心线)
- 其他非边界问题(如对象冲突)
Q3: 超限距离很小(如0.1mm),需要担心吗?
一般情况:
- <0.5mm:通常是浮点误差,可能安全
- 0.5-2mm:建议修复,有撞机风险
-
2mm:必须修复
Q4: 如何处理大量超限?
排查步骤:
- 检查床尺寸设置是否正确
- 检查模型是否整体偏移
- 检查切片配置(Skirt/Brim/Wipe Tower)
- 使用切片软件自动排版
Q5: 程序运行很慢
优化建议:
- 大文件(>100MB)可能需要1-2分钟
- 关闭其他程序释放内存
- Python版本建议3.9+(性能更好)
🛠️ 高级用法
命令行版本
如果需要批量处理或集成到脚本,可以使用命令行版本:
python analyze_gcode_bounds.py output.gcode --bed-size 200 200 250
详细选项:
# 矩形床
python analyze_gcode_bounds.py file.gcode --bed-size 200 200 250
# 矩形床 + 自定义原点
python analyze_gcode_bounds.py file.gcode --bed-size 200 200 250 --bed-origin 10 10
# 圆形床
python analyze_gcode_bounds.py file.gcode --bed-type circle --radius 100 --max-z 250
🐛 故障排除
错误: "未找到Python"
解决方法:
- 安装Python 3.7+
- 确保安装时勾选"Add to PATH"
- 重启命令提示符/终端
错误: "No module named 'tkinter'"
Windows:重新安装Python,勾选"tcl/tk and IDLE"
Linux:sudo apt-get install python3-tk
macOS:通常自带,如缺失重新安装Python
界面显示乱码
修改系统区域设置为中文,或使用命令行版本
程序崩溃或卡死
- 检查G-code文件是否损坏
- 尝试用文本编辑器打开G-code
- 更新Python到最新版本
📝 技术细节
检测算法
- 矩形床:检查每个移动点是否在
[x_min, x_max] × [y_min, y_max] × [0, z_max]内 - 圆形床:检查每个移动点到中心的距离是否 ≤ 半径
- 容差:默认允许 0.01mm 误差(浮点精度)
移动分类
- Travel: G0命令 或 G1命令且E值不变
- Extrude: G1/G2/G3命令且E值增加
- Retract: E值减少(不检查)
性能
- 解析速度:约 50,000 行/秒(Python 3.9)
- 内存占用:约为文件大小的 2-3倍
- 大文件(1GB+)建议使用命令行版本
📄 文件说明
| 文件 | 说明 |
|---|---|
gcode_boundary_checker_gui.py |
GUI版本(推荐) |
analyze_gcode_bounds.py |
命令行版本 |
run_gcode_checker.bat |
Windows启动脚本 |
README_gcode_checker.md |
本说明文档 |
🔗 相关资源
- OrcaSlicer修复文档:
docs/gcode_boundary_optimization_implementation.md - 技术方案:
docs/gcode_boundary_checking_optimization.md - 问题反馈: https://github.com/Snapmaker/OrcaSlicer/issues
📜 更新日志
v1.0 (2026-01-19)
- ✅ 初始版本
- ✅ 支持矩形床和圆形床
- ✅ GUI界面
- ✅ 详细报告生成
- ✅ Travel/Extrude移动分类检测
🙏 致谢
本工具是OrcaSlicer边界检查优化项目的一部分,旨在帮助用户诊断和修复边界超限问题。
项目编号: ORCA-2026-001 创建日期: 2026-01-19 作者: Claude Code
祝你打印顺利! 🎉