-
-
Notifications
You must be signed in to change notification settings - Fork 167
Description
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 :)