行号栏里的用时
跑完一遍,每一行都显示它用了几秒。各行加起来正好等于总运行时间,各行去除的体积加起来也正好等于总量。
基于 Scintilla(Notepad++ 和 SciTE 用的编辑组件),G 代码着色,行号栏由孪生来填。
跑完一遍,每一行都显示它用了几秒。各行加起来正好等于总运行时间,各行去除的体积加起来也正好等于总量。
停止输入 0.4 秒后,grblHAL 的检查模式和十二条静态规则把程序过一遍。发现的问题标在行号栏里;Ctrl+. 采用建议的改法。
状态栏显示执行完光标所在行之后控制器的模态:单位、平面、绝对/增量、坐标系、进给、主轴、冷却、刀具。
停在某一行,或在切削力、主轴负载、跟随误差、颤振裕度越过上限时停,或在第一刀、险些碰撞、快移切料、碰撞、报警时停。虚拟时间冻结,运动本身不受影响。
Studio 为任意一行写出起始段:刀具、坐标系、主轴、冷却和安全的接近路径。示例 02 从第 460 行重新开始,加工出的工件与一次跑完完全相同。
载入或改动过的每个程序都存成一个版本,记着是谁、为什么改的;你自己的文件从不被覆盖。Ctrl+D 把两个版本并排对比,并写出各自的运行时间。
检查模式找出 grblHAL 会拒绝的行。这些规则找出它照样会执行的问题——以及这台控制器根本不支持的写法。
S01 | 警告 | 第一条移动之前没有安全起始段(单位、绝对/增量、平面、坐标系):程序依赖控制器当时的状态。 |
S02 | 警告 | 结尾没有 M2/M30:控制器保留它的模态、主轴和冷却。 |
S03 | 提示 | 换刀(M6)时刀在 Z0 以下:先抬刀。 |
S04 | 错误 | 第一条切削移动之前没有 F:grblHAL 拒绝(error:22),或沿用之前留下的进给。 |
S05 | 警告 | 主轴启动时没有 S,或 S 超出主轴的转速范围。 |
S06 | 提示 | F 超过这个方向上轴的最高速度:规划器会按它限速。 |
S07 | 错误 | 这台 grblHAL 构建不支持的代码:表达式、O 字流程控制、子程序、刀具半径补偿 G41/G42、旋转 G68。 |
S08 | 提示 | 很短的线段太密:规划器队列里的路程不够从 F 刹停,实际进给上不去。 |
S09 | 提示 | 直上直下的深插铣:考虑斜线或螺旋下刀,并用能中心切削的刀。 |
S10 | 警告 | Z0 以下、比程序已经切过的还深的快移:快移切进材料会断刀。 |
S11 | 错误 | 控制器会拒绝的圆弧(error:33):半径与终点对不上。 |
S12 | 警告 | 水冷主轴在切削移动时转着,却没开冷却水(M8)。 |
Studio 为每一行记下编程的进给有没有达到;没达到的,写出是什么拖住了它——用的是 grblHAL 自己的拐角与制动算法,不是估计。

优化器改的是数,不是路径。每个候选结果都在一台全新的孪生上完整跑一遍,只有什么都没变差才被接受。

| 示例 | 优化前 | 优化后 | 变化 |
|---|---|---|---|
| 精度试件 | 18:37 | 17:38 | -5.3 % |
| 型腔与岛屿 | 10:20 | 9:33 | -7.7 % |
| 三维曲面浮雕 | 17:43 | 16:47 | -5.2 % |
| 黄铜渐开线直齿轮 | 21:06 | 19:46 | -6.3 % |
| 孔系与螺纹铣削 | 15:42 | 15:22 | -2.2 % |
| POM 雕刻与倒角 | 2:28 | 2:28 | -0.2 % |
| 黄铜微流道模具 | 5:11 | 5:02 | -3.0 % |
| 摆线铣与常规开槽对比 | 5:58 | 5:45 | -3.5 % |
| T 形槽与燕尾槽 | 5:51 | 5:42 | -2.4 % |
| 薄片散热器 | 17:22 | 17:11 | -1.1 % |
| 槽轮机构(日内瓦机构) | 13:54 | 13:11 | -5.2 % |
| 带拔模的模具型腔 | 12:58 | 11:55 | -8.1 % |
| 钟表轮(模数 0.3) | 20:28 | 19:19 | -5.6 % |
| 蜂窝减重板 | 18:09 | 17:57 | -1.1 % |
| 离心叶轮 | 20:40 | 20:27 | -1.1 % |
| 十五个合计 | 3:26:26 | 3:18:02 | -4.1 % |
孪生里的加工时间(Linux 版,2026-09-29)。每个结果都被接受;最大切削力只有示例 05 由 7.0 N 变为 7.1 N,颤振裕度的变化不超过 0.009,有设计零件的 14 个前后都 100 % 合格。在机床标定之前模型参数都是名义值,所以这些是仿真出来的节省。
描述特征,而不是一行行写代码:生成器按台上的毛坯写出程序,在一台后台孪生上试运行;刀会颤振的地方,换到稳定的主轴转速重写,或把那一层改浅。

编辑器全程可以用键盘操作;F1–F12 始终作用于机床。
| Ctrl+E | 打开或离开编辑器 |
| Ctrl+K | 载入机床并检查 |
| Ctrl+S | 存一个版本 |
| Ctrl+D | 与上一个版本对比(再按:更早的版本) |
| Ctrl+B | 在这一行设断点;Ctrl+Shift+B:条件暂停 |
| Ctrl+. | 采用建议的改法 |
| Alt+↓ / Alt+↑ | 下一处 / 上一处问题或差异 |
| Ctrl+Shift+O | 优化(再按:停止) |
| Ctrl+Shift+G | 按特征生成程序 |
| F5 | 循环启动,或暂停后继续 |
不会。结果作为一次可撤销的编辑放进编辑器,与优化之前的版本并排;两个都存成版本。你自己的文件从不被覆盖。
能。打开任何 G 代码文件;检查和规则会告诉你哪些行这台控制器会拒绝,或者执行起来和你想的不一样。
不是。它覆盖的是手工编程的那些简单特征。自由曲面和多特征的零件请用 CAM。
是孪生用名义的机床与切削参数算出来的。等 MC-1 样机和孪生对照标定之后,它们才会变成实测的数字。