Circles with 3 extra axes.
-
I have 6 axes in total: XYZ and ABC. I have it configured as follows:
; Drives M569 P0.0 S1 M569 P0.1 S0 M569 P0.2 S0 M569 P0.3 S1 M569 P0.4 S1 M569 P0.5 S0 M584 X0.0 Y0.1 Z0.2 ; set drive mapping XYZ M584 A0.3 B0.4 C0.5 ; set drive mapping ABC
When I try to do this gcode it works:
G0 X32.5 Y17.5 G3 X32.5 Y17.5 I0 J20
But when I try the exact same for ABC it doesn't move and instead the XYZ axes move.
G0 A32.5 B17.5 G3 A32.5 B17.5 I0 J20
I presume this is because I and J parameters are meant for XY, but as far as I am aware there are no parameters for added axes like mine.
Is it possible to change the configuration somehow or is it simply undoable?
Thanks!
-
@idcoilgroup There's no command like G17/18/19 (which map arcs to XY/XZ/YZ planes) that lets you map XY arcs to arbitrary axes.
However, you could try using M563 to map the A and B axes to X and Y. See https://docs.duet3d.com/en/User_manual/Reference/Gcodes#m563-define-or-remove-a-tool
Basically, make a new tool with M563, and use the X and Y parameters to map A and B. When you want to do arcs in A and B, change tool, then sending G2/3 with X, Y, I and J, should map to A and B.
For example, assuming you already have a tool 0:M563 P1 X4 Y5 ; define tool 1 with spindle 1
I don't know if this is a 3D printer or CNC machine, so you may have to add extruder drives (D#), heaters (H#), fans (F#), or spindles (R#) to complete the tool.
Note that:
X, Y The X and Y mapping option is used to create tools on machines with multiple independent X and/or Y carriages. The additional carriages are set up as axes U, V etc. (see M584) and the X mapping option in M563 defines which carriage or carriages are used. Axes are mapped in the order XYZUVWABC, where X=0, Y=1, Z=2, U=3 etc, not by driver number.
You have axes XYZABC, so A is the 4th and B is the 5th, hence X4 Y5 in the command above.
To use the tool, you should be able to send:
; Move XY T0 G0 X32.5 Y17.5 G3 X32.5 Y17.5 I0 J20 ; Move AB T1 G0 X32.5 Y17.5 G3 X32.5 Y17.5 I0 J20
Let me know if that works.
Ian
-
@idcoilgroup additionally to Ian's hints I would make clear that ABC are linear axes by specifying the M584 R parameters. ABCD are treated as rotary axes by default. Some calculations are different for linear and rotary axes.
-
@droftarts Thank you for your reply!
I have tried your solution and while I could not get just the A and B axes mapped, I did manage to do:
M563 P1 X0:3 Y1:4
Which made them move in sync and worked as expected.
M563 P1 X3 Y4
This did not work however. The AB axes would not move at all. Using X4 and Y5 also did not have any effect. The axes XYZABC would be numbered 012345 right?
Anyway, thanks for the reply!
-
-
@idcoilgroup you are correct, the axis number should be X0 Y1 Z2 A3 B4 C5, so
M563 P1 X3 Y4
should be correct.Did you change them to linear axes as @JoergS5 suggested, by adding
R0
to the M584 command that creates the ABC axes. Also make sure ABC are homed, and are at an axis position that means they don’t break axis limits set by M208.Ian