开源改变世界

人们用什么进行刀具半径补偿? #385

推推 grbl 3年前 (2023-01-21) 305次浏览

关闭
unicornswag 打开了这个问题 2014 年 4 月 2 日 · 8条评论
关闭

人们用什么进行刀具半径补偿?#385

unicornswag 打开了这个问题 2014 年 4 月 2 日 · 8条评论

注释

人们用什么进行刀具半径补偿? #385

正如标题所说,我很好奇人们如何(或是否)在使用 grbl 的工作中实施刀具半径补偿。由于目前不支持标准 G41/G42 代码,因此需要由凸轮软件或某种后处理器来处理,这些后处理器会更改每个坐标以匹配工具。大多数简单的 2.5D CAM 软件(例如 dxf2gcode)要么根本不进行偏移,要么使用 G41/42。我最终可能会编写一个 shell 脚本,该脚本可以将没有偏移的标准 g 代码转换为具有指定的左偏移或右偏移的工具特定代码。除非有更简单的方法?

人们用什么进行刀具半径补偿? #385
成员

@unicornswag:据我了解,刀具补偿通常用于在刀具磨损变小时调整刀具半径。在凸轮软件中,我想这会很容易,因为您只需要调整生成 g 代码时输入的刀具半径。如果您确实编写了某种脚本,请告诉我们,这样当 Grbl 在处理器中向上移动时,我们可以稍后再讨论这些概念。

人们用什么进行刀具半径补偿? #385
贡献者

Cutter comp 用于补偿刀具磨损。不要将工具
从与内部/外部轮廓等相关的线上偏移。

关于做一个 shell 脚本,看看你
想出什么会很有趣,因为那基本上是一个小的 CAM 程序。

-爱德华

在 2014 年 4 月 2 日星期三上午 9:19,Sonny Jeon notifications@github.com写道:

@unicornswag https://github.com/unicornswag:据我了解,
cutter comp 通常用于在工具
磨损变小时调整工具半径。对于后处理器,我认为这很
容易,因为您只需要调整
生成 g 代码时输入的工具半径。如果您确实编写了某种脚本,请告诉我们
,这样当 Grbl 在处理器中向上移动时,我们可以稍后再讨论这些概念。

直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ /issues/385 #issuecomment-39335527

人们用什么进行刀具半径补偿? #385

好的,很抱歉造成混淆,我指的是一般工具偏移。例如,我使用的是直径为 1/8 英寸的钻头,因此所有坐标都需要从中心线偏移 1/16 英寸才能解决这个问题。如果我写一个shell脚本来处理这个,我一定会在这里分享。

人们用什么进行刀具半径补偿? #385

该功能(在 G 代码标准中)支持类似 CAD 的编程,即让 G 代码完全相同地反映 CAD 文件中的几何形状,并让 CNC 控制在运行时使用先前存储的刀具参数计算出实际刀具路径.

这不是一件容易的事,因为它需要大量的数学知识,而且几乎没有犯错的余地(在大多数情况下,如果你做错了,你会毁掉工具或零件)。基于 PC 的 CNC 控制器可以做到这一点(LinuxCNC、Mach3 等),但不幸的是,我认为 Arduino 上没有足够的空间或数学能力。

如果您对所涉及的数学感兴趣(并且手边没有 Peter Smid 的书),请参阅此处此处

人们用什么进行刀具半径补偿? #385

@unicornswag所有 CAM 程序都应允许您输入刀具直径以在生成 G 代码时进行补偿。CNC 程序中的 Cutter Comp 用于补偿您的 .250″ 直径刀具实际上是 .245″ 的事实。

人们用什么进行刀具半径补偿? #385
成员

@csdexter: 你的 g 代码解析器做得很好!我正处于重写 Grbl 的阵痛中,我很高兴有一些东西可以参考,也许可以参考。有一些我无法追踪的未定义的东西,例如:

  • 从 G93 到 G94 的切换是否需要一个新的 F 字,因为它是未定义的,或者它是否恢复到最后一个 F 字或每个距离 F 字的最后一个单位?
  • 如果传递 XYZ 轴字,G28.1、G30.1 和 G92.1 应该出错,还是隐式使用轴字作为运动模式?(后者似乎是正确的但不直观)。
  • 零 F 字是有效的,但如何处理运动?
人们用什么进行刀具半径补偿? #385

我想当涉及到同时的 x 和 y 运动时,我可能对事物的数学方面有点不知所措。然而,直接的垂直和水平进给和弧形应该相当简单,只需从原始路径中添加或减去半径。

人们用什么进行刀具半径补偿? #385

@unicornswag“著名的遗言”:-) 我也在想同样的事情,在我意识到之前,我花了几周的时间才把它弄对“只是为了直线和弧线”:D

@chamnit谢谢你的称赞。我指出的代码库牺牲了标准覆盖率的智能。在这种情况下,这意味着将使用存储在 F 中的最后一个值,无论这是否有意义(类似于从英寸切换到毫米时发生的情况)。这与旧的(?)控制器正在做的是一致的,因为它们有物理寄存器来保存每个字母地址的数字。正常和谨慎的使用是在与 G93 到 G94 开关相同的行上有一个新的 F 字。

当轴字出现在同一行时,我不知道 G28.1/G30.1/G92.1 的行为。如果我是控制器制造商,我会抛硬币并通过让 .1 版本存储给定坐标而不是当前机器位置来扩展标准,或者出错并将其称为语法错误。

F 或零也是如此。我会在不移动(因此表现得像光速 G 代码解析检查模式)和向用户大喊 F0 不是一个好主意之间抛硬币 :-)

喜欢 (0)