Skip to content

Marlin2ForPipetBot: five axis CNC

DerAndere edited this page Jan 5, 2024 · 10 revisions

Marlin for five axis CNC

Copyright 2022 - 2024 DerAndere

The Marlin2ForPipetBot branch adds support for true simultaneous 5 axis machining with rotational tool centerpoint control (TCPC) for multi axis CNC machines. It adds the G-code G43.4 which is a command to control the tool centerpoint (TCP) relative to the part during multi axis machining. To set up Marlin2ForPipetBot for a 5 axis CNC machine, follow these instructions.

PENTA_AXIS_TRT

several settings must be configured correctly to make G43.4 (TCPC) work, as described below. To set the correct kinematics for this machine geometry, enable this option in Configuration.h:

#define PENTA_AXIS_TRT

DEFAULT_MRZP_OFFSET_X, DEFAULT_MRZP_OFFSET_Y, DEFAULT_MRZP_OFFSET_Z:

For machines with a tilting rotating table (XYZAC or XYZBC) the MRZP offset is the position of the center of rotation (P) in machine coordinates. The center of rotation is usually the center of the top surface of the tilting rotating table when all axes are at position 0 (in machine coordinates). The offsets are equal to the distance along the respective axis (X, Y, Z) from the origin O(0,0,0) to the center of the top surface of the tilting rotating table when all axes are at position 0.

PAX_XYZAC_TRT_MRZP_offsets Figure 1: MRZP offsets of a CNC machine with five axes (XYZAC), featuring a tilting rotating table. Note that the image shows the machine in a state where all axes are at position 0 (in machine coordinates) so that the tilting rotating table is oriented horizontally. For the depicted machine, the MRZP Z offset would be -217.00. Copyright 2024 DerAndere. This image is licensed under the Creative Commons Attribution 4.0 International license (CC BY 4.0).

The machine in figure 1 would thus have the following settings defined in Configuration.h:

#define DEFAULT_MRZP_OFFSET_X  280.83
#define DEFAULT_MRZP_OFFSET_Y  185.25
#define DEFAULT_MRZP_OFFSET_Z -217.00

DEFAULT_ROTATIONAL_JOINT_OFFSET_X, DEFAULT_ROTATIONAL_JOINT_OFFSET_Y, DEFAULT_ROTATIONAL_JOINT_OFFSET_Z

PAX_XYZAC_TRT_ROTATIONAL_JOINT_OFFSET_Z_edited Figure 2: Rotational joint Z offset of a CNC machine with five axes (XYZAC) with a tilting rotating table. Note that the image shows the machine in a state where all axes are at position 0 (in machine coordinates) so that the tilting rotating table is oriented horizontally. The rotational joint Z offset is represented as distance dz.

For the machine depicted in figure 2, rotational joint offsets would be set as follows in Configuration.h:

#define DEFAULT_ROTATIONAL_JOINT_OFFSET_X  0.00
#define DEFAULT_ROTATIONAL_JOINT_OFFSET_Y  0.00
#define DEFAULT_ROTATIONAL_JOINT_OFFSET_Z 50.00

Clone this wiki locally