LinuxCNC 完全指南:G/M 代码、操作符、函数与常见错误详解
LinuxCNC 是用于铣床、车床等机床控制的免费开源软件系统,提供多种图形界面 (含触屏)。

G 代码表
| G 代码 | 功能描述 |
|---|---|
| G0 | 快速直线运动 |
| G1 | 线性进给 |
| G2 | 顺时针圆弧进给 |
| G3 | 逆时针圆弧进给 |
| G4 | 暂停 |
| G5.1 | 二次 B 样条 |
| G5.2 G5.3 | NURBS 块 |
| G7 | 直径模式 (车床) |
| G8 | 半径模式 (车床) |
| G10 L1 | 设置刀具表条目 |
| G10 L10 | 设置刀具表 (工件计算) |
| G10 L11 | 设置刀具表 (夹具计算) |
| G10 L2 | 坐标系原点设定 |
| G10 L20 | 坐标系原点设定 (计算) |
| G17 | XY 平面 |
| G18 | ZX 平面 |
| G19 | YZ 平面 |
| G17.1 | UV 平面 |
| G18.1 | WU 平面 |
| G19.1 | VW 平面 |
| G20 | 英制单位 |
| G21 | 公制单位 |
| G28 | 前往预定义位置 |
| G28.1 | 存储当前绝对位置供 G28 |
| G30 | 前往预定义位置 |
| G30.1 | 存储当前绝对位置供 G30 |
| G33 | 主轴同步运动 |
| G33.1 | 刚性攻丝 |
| G38.2–G38.5 | 探测/测量 |
| G38.2 | 向工件探测,接触停止,失败报错 |
| G38.3 | 向工件探测,接触停止 |
| G38.4 | 离工件探测,失联停止,失败报错 |
| G38.5 | 离工件探测,失联停止 |
| G40 | 刀具半径补偿取消 |
| G41 | 刀具半径补偿左 |
| G42 | 刀具半径补偿右 |
| G41.1 | 动态刀具半径补偿左 |
| G42.1 | 动态刀具半径补偿右 |
| G43 | 刀具长度偏移 |
| G43.1 | 动态刀具长度偏移 |
| G49 | 取消刀具长度偏移 |
| G53 | 机床坐标系运动 |
| G54–G59 | 选择坐标系 1-6 |
| G59.1–G59.3 | 选择坐标系 7-9 |
| G61 | 精确路径模式 |
| G61.1 | 精确路径模式 |
| G64 | 带可选公差的路径控制模式 |
| G73 | 断屑钻削循环 |
| G76 | 多道螺纹循环 (车床) |
| G80 | 取消固定循环 |
| G81 | 钻削循环 |
| G82 | 带停顿钻削循环 |
| G83 | 深孔啄钻循环 |
| G85 | 镗削循环 (进给退出) |
| G86 | 镗削循环 (停主轴快退) |
| G89 | 镗削循环 (停顿进给退出) |
| G90 | 绝对距离模式 |
| G91 | 增量距离模式 |
| G90.1 | 圆弧绝对距离模式 (I,J,K) |
| G91.1 | 圆弧增量距离模式 (I,J,K) |
| G92 | 坐标系偏移 |
| G92.1 | 取消坐标系偏移 |
| G92.2 | 取消坐标系偏移 |
| G92.3 | 恢复轴偏移 |
| G93 | 反时间进给模式 |
| G94 | 每分钟进给模式 |
| G95 | 每转进给模式 |
| G96 | 恒线速 |
| G97 | 转速模式 (RPM) |
| G98 | 固定循环退回起始平面 |
| G99 | 固定循环退回 R 平面 |
M 代码表
| M 代码 | 功能描述 |
|---|---|
| M0 M1 | 程序暂停 |
| M2 M30 | 程序结束 |
| M60 | 托盘交换暂停 |
| M3 M4 M5 | 主轴控制 |
| M6 | 换刀 |
| M7 M8 M9 | 冷却控制 |
| M48 M49 | 进给/主轴倍率启用/禁用 |
| M50 | 进给倍率控制 |
| M51 | 主轴倍率控制 |
| M52 | 自适应进给控制 |
| M53 | 进给停止控制 |
| M61 | 设置当前刀具号 |
| M62-M65 | 输出控制 |
| M66 | 输入控制 |
| M67 | 模拟输出控制 |
| M68 | 模拟输出控制 |
| M100-M199 | 用户自定义 M 代码 |
二元运算符
| 运算符 | 说明 |
|---|---|
| + | 加法 |
| - | 减法 |
| * | 乘法 |
| / | 除法 |
| OR | 非排他或 |
| XOR | 异或 |
| AND | 逻辑与 |
| MOD | 取模 |
| ** | 幂运算 |
| EQ | 等于 |
| NE | 不等于 |
| GT | 大于 |
| GE | 大于等于 |
| LT | 小于 |
| LE | 小于等于 |
常用函数
| 函数名 | 返回值 |
|---|---|
| ATAN[Y]/[X] | 四象限反正切 |
| ABS[arg] | 绝对值 |
| ACOS[arg] | 反余弦 |
| ASIN[arg] | 反正弦 |
| COS[arg] | 余弦 |
| EXP[arg] | e 的 arg 次方 |
| FIX[arg] | 向下取整 |
| FUP[arg] | 向上取整 |
| ROUND[arg] | 四舍五入 |
| LN[arg] | 自然对数 |
| SIN[arg] | 正弦 |
| SQRT[arg] | 平方根 |
| TAN[arg] | 正切 |
| EXISTS[arg] | 检查命名参数是否存在 |
地址字母含义
| 字母 | 含义 |
|---|---|
| A | A 轴 |
| B | B 轴 |
| C | C 轴 |
| D | 刀具半径补偿号 |
| F | 进给率 |
| G | 通用功能 (见模态组表) |
| H | 刀具长度偏移索引 |
| I | 圆弧 X 偏移 / G87 循环参数 |
| J | 圆弧 Y 偏移 / G87 循环参数 |
| K | 圆弧 Z 偏移 / G87 循环参数; G33 主轴-运动比 |
| M | 杂项功能 (见模态组表) |
| N | 行号 |
| P | 固定循环/G4 暂停时间; G10 关键字 |
| Q | G73/G83 进给增量 |
| R | 圆弧半径或固定循环平面 |
| S | 主轴转速 |
| T | 选刀 |
| U | U 轴 |
| V | V 轴 |
| W | W 轴 |
| X | X 轴 |
| Y | Y 轴 |
| Z | Z 轴 |
| / | 块删除 |
| () | 注释 |
| ; | 注释 |
| MSG, | 消息显示 |
常见错误信息
- G code out of range:G 代码超出 0-99 范围,非所有数字均为有效 G 代码。
- Unknown g code used:使用了 LinuxCNC 不支持的 G 代码。
- i,j,k word with no Gx to use it:I/J/K 必须与对应 G 代码同行。
- Cannot use axis values without a g code that uses them:轴值必须配合模态或当前行 G 代码使用。
- File ended with no percent sign or program end:程序必须以 M2/M30 结束或用 % 包裹。
数控机床