Skip to content

G0 should find the shortest path on Rotary Axis (wrap-around coordinate system ?) #71

@henpemaz

Description

@henpemaz

Consider I'm on a XYZA machine with a rotary axis (A) that can spin without any limits on both directions. After doing a "spiral" operation, this A axis might be on some crazy high work coordinates like 36000 degrees (100 turns of that axis). Now we need to get it back to 0 somehow.

On this situation, a "G0 A0" command will spin the A axis 100 times to get it back to it's origin, which is "correct" but sometimes just a waste of time. A different approach would be to reset that axis using "G92 A0" if we're in fact at the origin (a multiple of 360 degrees), but if we're not, we'd need to do the math on how much we need to move before resetting that coordinate, or what's our "equivalent" current position and G92 to that.

Shouldn't GRBL in this situation (G0 on a rotary axis) be able to find out the shortest movement it can do to get that axis to an arbitrary position that's "equivalent" to the commanded position ? This might not we suitable for every machine, some have wires or other limitations, but for some others, it would make things a lot simpler.

I'm new to 4-axis and I'm writing my Gcode for testing by hand for now, so I might be missing on some clever tricks that might solve the problem. If so, please share them. BUT if that's not the case, then I think it should be a quite important option/feature for a 4-axis machine controller.

PS: Super merci pour ce firmware magnifique, ça a acceleré beaucoup mon project :)

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions