评论
|
我不认为 CNCjs 是做这件事的合适地方。CNCjs 是机器控制软件(例如 GRBL、TinyG、Smoothieware 等)的用户界面。机器控制软件又在嵌入式板上运行,通常是 Arduino。机器控制软件对低级机器状态有足够的了解——以及足够的实时能力——来进行反向间隙补偿,而 CNCjs 则没有。CNCjs 不知道机器参数——每毫米步数和速度等。 另一种分工方式是,CNCjs 负责向控制器发送 GCode 命令,而控制器负责解释那些 GCode 命令来移动机器。齿隙补偿处于“移动机器”级别。 Mach3 在同一个软件包中包含了机器控制功能和用户界面功能。它的反向间隙补偿几乎肯定是在代码的机器控制部分完成的;类似于 GRBL 或 TinyG 的部分。 虽然 CNCjs 肯定有可能“即时编辑 GCode”以期修复反弹,但这增加了一定程度的复杂性,我个人认为这不是一个好主意。让它正确并在面对 CNCjs 支持的所有不同机器类型时保持它的工作将是非常困难的。 反向间隙补偿不仅仅是摆弄 GCode 坐标那么简单。对于圆/圆弧,在单个 G2 或 G3 命令期间,方向可以在不同轴上多次更改。还有其他并发症。如果更改 G1 移动中的坐标,然后是 G2 圆弧,则可能会弄乱圆弧的起点并使半径无效。 现在,既然机器控制软件是进行反向间隙补偿的“正确位置”,您可能会问当前机器控制软件中该功能的状态。事实证明,尽管提出了许多建议,但 GRBL、TinyG、Marlin 或 Smoothieware 都不支持它。这些开发人员之间的共识是,即使在具有实时运动状态详细知识的低级固件的情况下,它也可能导致比解决的问题更多的问题。 |
|
对于G2/G3弧线,需要实现一个预处理器将一个弧线扩展为多条G1线,避免将弧线分割开来。反向间隙补偿超出了当前开发计划的范围,我将在通用 G 代码发送器 (UGS) 中添加时返回检查。 |


描述
我希望在 Cncjs 中看到一些基本的反冲补偿。除非有人有动力去实现它,否则我愿意尝试一下,尽管我不确定我的编程技能是否能胜任这项任务。
基本上所有的机器都有一定的反冲。每当机器改变方向时,在机器开始向相反方向移动之前,都会有一定的游隙(需要的步数)。我认为实现可以像在正方向变化时增加几步,在负方向变化时减去几步一样简单。这些步骤需要控制速度。这些附加步骤不应改变工作位置/机器位置。
当然,必须为每个轴的反冲量添加一些新的配置值。
Mach3 中的间隙补偿示例
https://www.youtube.com/watch?v=A27nOkTFYDY
版本
你如何安装CNCjs?
数控系统
硬件
操作系统