开源改变世界

在更新 grbl 0.8 时,我看到了这个错误,如果是的话。 #563

推推 grbl 3年前 (2023-01-22) 63次浏览

关闭
cri-s 打开了这个问题 2015 年 1 月 3 日 · 1条评论
关闭

在更新 grbl 0.8 时,我看到了这个错误,如果是的话。#563

cri-s 打开了这个问题 2015 年 1 月 3 日 · 1条评论

注释

在更新 grbl 0.8 时,我看到了这个错误,如果是的话。 #563

void gc_set_current_position(int32_t x, int32_t y, int32_t z)
{
gc.position[X_AXIS] = x/settings.steps_per_mm[X_AXIS];
gc.position[Y_AXIS] = y/settings.steps_per_mm[Y_AXIS];
gc.position[Z_AXIS] = z/settings.steps_per_mm[Z_AXIS];
}

gc.position 是 float,mm 假设,x/y/z 是 steps 。

Theoreaof 应该是
gc.position[X_AXIS] = x_settings.steps_per_mm[X_AXIS];
gc.position[Y_AXIS] = y_settings.steps_per_mm[Y_AXIS];
gc.position[Z_AXIS] = z*settings.steps_per_mm[Z_AXIS];

即使它没有意义。
如果碰到限位开关通常意味着 CNC 失去了位置或
使用了错误的代码。不管怎样,如果机器有归位,则不应相信实际位置并且需要归位。
不使用步进位置到机器位置的另一个原因是间隙补偿。
如果做反向间隙补偿,那么步进位置基本上是错误的,因为添加了反向间隙。
相同的代码存在于名为 gc_sync_position() 的 0.9 版本中

在更新 grbl 0.8 时,我看到了这个错误,如果是的话。 #563
成员

@cri-s: 你确定?步数/(步数/mm)= mm

喜欢 (0)