注释
为什么不用Z来控制激光呢? |
多种软件解决方案将使用 M3、M5 和 S 代码为您生成正确的 gcode。这是您最好的选择。 您的解决方案不起作用的原因是您在命令解析器中执行激光功率的变化,而不是将其放入缓冲区以在机器到达该点时执行。一旦它读取命令,更改就会在以这种方式实现时输出到硬件。你会想做类似“gc_block.modal.spindle = SPINDLE_ENABLE_CW;”的事情 和“gc_block.modal.spindle = SPINDLE_DISABLE;” 将主轴更改放入缓冲区。你需要一个“values_words |= bit(MODAL_GROUP_M7);” 也在那里,所以缓冲区知道使用了 M 命令。 |
作者
作者
这就是我所做的 – 到目前为止看起来没问题,但我会进行更多测试。(第 190-193 行)
再次感谢! |
@ikalafat什么意思是使用“虚拟”Z 轴,查看 Z 位置变量并使用它在零以下/以上打开/关闭激光 |
作者
你好,
我有一个相当具体的问题。我在大学做硕士论文,我正在构建 2D(无 Z 轴)激光驱动的 PCB 光刻胶“雕刻机”。当解析器遇到 G00 … 命令时,我想实现激光关闭(M05 带 pwm 控制),并在 G01、G02、G03 上启用激光(M03)。
这就是我所做的
gcode.c(第 956 行及之后……)
(我在这里删除了不必要的代码部分以简化解释)
我注意到这种方法存在问题
当我发送 G0 X10 激光时关闭,这是好的,但是当我发送 G1 X100 并且机器仍在运动时我发送 G0 X0,激光在 G1 X100 执行之前关闭直到结束
谁能告诉我,有没有更好/更简单的方法来实现激光控制,而无需大量编辑 gcode 文件并在 G0、G1 等之前/之后添加 M03/M05 命令?
谢谢!
编辑:
到目前为止,这是我找到的最好的解决方案
http://qcgeek.com/laseroko/
完全满足我需要的 G 代码转换器