Contact me: hankecnc@gmail.com

G53 不适用于 G92 和坐标系旋转 #30

推推 grbl 3年前 (2023-01-29) 418次浏览
关闭
jepler 打开了这个问题 2016 年 1 月 23 日 · 5 条评论
关闭

G53 不适用于 G92 和坐标系旋转#30

jepler 打开了这个问题 2016 年 1 月 23 日 · 5 条评论

注释

G53 不适用于 G92 和坐标系旋转 #30
成员

在 2.6.11 中测试并使用 configs/sim/axis 掌握:

  1. 启动轴。打开。回家所有。通过菜单清除 G54、G92 偏置
  2. 录入:G54
  3. 录入:G0 G53 X0 Y0
  4. MDI: G92 X1 / G10 L2 P1 R45 / G0 G53 X0 Y0

预期行为:第 4 步没有运动,因为机器在第 3 步之后已经处于 G53 X0 Y0
实际行为:运动到机器坐标 (.2929, -.7071)

G53 不适用于 G92 和坐标系旋转 #30
成员作者

除了 G0 G53 X0 Y0,您还可以使用 G91 G0 X0 Y0,这不会引起运动,因为它处于增量距离模式且所有距离均为零。它会将您带到与 G0 G53 版本相同的机器位置。
G53 不适用于 G92 和坐标系旋转 #30

cradek 推送了引用此问题的提交 2016 年 5 月 14 日

G53 不适用于 G92 和坐标系旋转 #30 jepler 添加了 口译员 标签 2016 年 6 月 15 日
andypugh 推送了引用此问题的提交 2018 年 9 月 15 日

G53 不适用于 G92 和坐标系旋转 #30 robEllenberg 自己分配了这个 2019 年 6 月 14 日
G53 不适用于 G92 和坐标系旋转 #30
贡献者
债券 评论了 2021 年 10 月 10 日  

我有一个口译员的修复程序。find_ends() 中的 G53 代码无法正确处理 G92 偏移量。它应该在应用 G92 偏移之前进行旋转。

这是更改,对格式感到抱歉,必须有更好的方法来做到这一点。
`- double cx = s->current_x;’
‘- 双 cy = s->current_y;’
‘+ double cx = s->current_x + s->axis_offset_x;’
‘+ double cy = s->current_y + s->axis_offset_y;’
‘旋转(&cx,&cy,s->rotation_xy);’

‘ if(block->x_flag) {‘
‘- *px = block->x_number – s->origin_offset_x – s->axis_offset_x – s->tool_offset.tran.x;’
‘+ *px = block->x_number – s->origin_offset_x – s->tool_offset.tran.x;’
‘ } else {‘
‘ *px = cx;’

‘- *py = block->y_number – s->origin_offset_y – s->axis_offset_y – s->tool_offset.tran.y;’
‘+ *py = block->y_number – s->origin_offset_y – s->tool_offset.tran.y;’
‘ } else {‘
‘ *py = cy;’
‘ }’

‘ 旋转(px,py,-s->rotation_xy);’
‘+ *px -= s->axis_offset_x;’
‘+ *py -= s->axis_offset_y;’

G53 不适用于 G92 和坐标系旋转 #30
成员作者

谢谢!让 linuxcnc 接受更改的最佳方法是准备拉取请求。添加到问题的补丁很可能会丢失。

G53 不适用于 G92 和坐标系旋转 #30
贡献者

我正在处理这个问题和其他一些轮换问题的拉取请求。目前仍在检查和测试。

rgbond 将提交推送到引用此问题的 rgbond/linuxcnc 2021 年 10 月 11 日

G53 不适用于 G92 和坐标系旋转 #30
合作者

似乎由#1297修复