I've been reviewing the interpreter code in some detail with respect to xy rotations specified via G10 R parameters. I think there may be a few problems. The code in some cases appears to assume that the results of an translation followed by a rotation about the translated Z axis is the same as a rotation about the current Z axis followed by a translation. In other cases the (g28, g30) the code doesn't take the rotations into account.
The purpose of this note is to tie down the semantics. Here's what I think they are, using the G5x code as a "gold standard". 1) Tool x, y offsets are relative to the machine coordinate system. 2) G10 xy rotations should be around the G5x translated axis. Ie, first you translate then you rotate. 3) G92, G52 offsets are relative to the current G5x coordinate system To make this a bit more concrete, here's how G28.1 convert_savehome() should work when it reduces current_x, current_y to an absolute point: 1) Add the G92 offset 2) Unrotate 3) Add the G5x offset 4) Add the tool offset Comments please. I'm deep enough into this now that I can probably come up with a set of proposed patches for people to play with. There are dragons out there though given that persistent parameters (g28 saved positions, for example) may be interpreted differently after the changes. Bob Bond _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers