数学

固件支持在 G-code 中使用用方括号括起的表达式进行广泛的数学运算 []。这些表达式可用于 G-code 参数以及使用 M118.1 P# 命令来计算并打印结果。注意所有使用字母的函数为小写且区分大小写。

基本算术运算

运算符

  • +: 加法

  • -: 减法

  • *: 乘法

  • /: 除法

  • ^: 幂运算(次方)

  • mod: 取模(余数)

示例

M118.1 P[1+1]        ; 返回结果 = 2.000
M118.1 P[5-3]        ; 返回结果 = 2.000
M118.1 P[4*3]        ; 返回结果 = 12.000
M118.1 P[10/2]       ; 返回结果 = 5.000
M118.1 P[2^3]        ; 返回结果 = 8.000
M118.1 P[7mod3]      ; 返回结果 = 1.000
G01 X[#103+2*#107]

数学函数

三角函数(角度以度为单位)

  • sin[x]: x 度的正弦

  • cos[x]: x 度的余弦

  • tan[x]: x 度的正切

  • asin[x]: x 的反正弦(返回度数)

  • acos[x]: x 的反余弦(返回度数)

  • atan[x]: x 的反正切(返回度数)

示例

其他数学函数

  • sqrt[x]: x 的平方根

  • abs[x]: x 的绝对值

  • round[x]: 将 x 四舍五入到最接近的整数

  • fix[x]: 向下取整函数(截断为整数)

  • fup[x]: 向上取整函数(向上舍入到整数)

  • ln[x]: x 的自然对数

  • exp[x]: 指数函数(e^x)

示例

比较运算符

可以使用布尔比较,结果将计算为 1(真)或 0(假):

布尔比较

  • eq: 相等(带公差)

  • ne: 不等

  • gt: 大于

  • ge: 大于或等于

  • lt: 小于

  • le: 小于或等于

示例

逻辑运算符

可以使用逻辑运算符,结果将计算为 1(真)或 0(假):

布尔逻辑

  • : 逻辑与(两个值都必须非零)

  • or: 逻辑或(至少一个值必须非零)

  • xor: 逻辑异或(恰好一个值为非零)

  • nor: 逻辑或非(两个值都必须为零)

示例

复杂表达式

可以使用复杂表达式,并将按常规 PEMDAS 运算顺序进行求值。

运算顺序(PEMDAS)

  1. 括号/方括号

  2. 幂运算

  3. 乘法/除法/取模

  4. 加法/减法

  5. 比较运算符

  6. 逻辑运算符

示例

错误处理

遇到错误时的预期行为如下:

  • 除以零:停止并报错

  • 模除以零:停止并报错

  • 未定义的函数:返回 nan

  • 无效的变量:停止并报错

  • 括号不匹配:停止并报错

进一步阅读

GCodeTutor.comarrow-up-right 有一篇很好的文章描述了如何在 GCode 中使用变量和数学。

最后更新于