Hello!
My multi-extruder printer can switch complete toolheads automaticly. They are clipped on with magnets and can be interchanged by moving to a certain position.
That way, the height of the hotends is not autimaticly equal, therefore I need offsets between the tools.
If I got it right, there are two functions that can do this in theory.
1. M206 sets global offsets, which I could change on every tool change with simplify3d. Thats the solution I had for the last 2 months, but now I want to be able to use M206 in post processing, so it doesn't work out anymore.
2. M218 sets individual toolhead offsets, but i can only get x and y working.
Now, that I already invested a full day into troubleshooting, I decided to ask here.
How do i get z-Offset in M218 to work without activating "Dual_x_Carriage" or "Switching_Extruder"?
This is the original code from the current release concerning M218 (found in marlin_main.cpp)
My first instinct was to delete two occurrences of " #ifdef DUAL_X_CARRIAGE" and the following "#endif".
But it doesn't change the behaviour.
I validate if it worked by sending "M218 X10 Y10 Z10" followed by "T0" or "T1". Only X and Y move that way (with the carriage beeing in a positinon where movement in every direction is possible).
I also searched for the offset variables and looked for differences between X, Y and Z, but I just can't figure out the solution.
Maybe someone of you has already encountered this or a similar problem.
Thanks in advance!
Leo
My multi-extruder printer can switch complete toolheads automaticly. They are clipped on with magnets and can be interchanged by moving to a certain position.
That way, the height of the hotends is not autimaticly equal, therefore I need offsets between the tools.
If I got it right, there are two functions that can do this in theory.
1. M206 sets global offsets, which I could change on every tool change with simplify3d. Thats the solution I had for the last 2 months, but now I want to be able to use M206 in post processing, so it doesn't work out anymore.
2. M218 sets individual toolhead offsets, but i can only get x and y working.
Now, that I already invested a full day into troubleshooting, I decided to ask here.
How do i get z-Offset in M218 to work without activating "Dual_x_Carriage" or "Switching_Extruder"?
This is the original code from the current release concerning M218 (found in marlin_main.cpp)
#if EXTRUDERS > 1
case 218: // M218 - set hotend offset (in mm), T X Y
{
if(setTargetedHotend(218)){
break;
}
if(code_seen('X'))
{
extruder_offset[X_AXIS][tmp_extruder] = code_value();
}
if(code_seen('Y'))
{
extruder_offset[Y_AXIS][tmp_extruder] = code_value();
}
#ifdef DUAL_X_CARRIAGE
if(code_seen('Z'))
{
extruder_offset[Z_AXIS][tmp_extruder] = code_value();
}
#endif
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_HOTEND_OFFSET);
for(tmp_extruder = 0; tmp_extruder < EXTRUDERS; tmp_extruder++)
{
SERIAL_ECHO(" ");
SERIAL_ECHO(extruder_offset[X_AXIS][tmp_extruder]);
SERIAL_ECHO(",");
SERIAL_ECHO(extruder_offset[Y_AXIS][tmp_extruder]);
#ifdef DUAL_X_CARRIAGE
SERIAL_ECHO(",");
SERIAL_ECHO(extruder_offset[Z_AXIS][tmp_extruder]);
#endif
}
SERIAL_ECHOLN("");
}break;
#endif
My first instinct was to delete two occurrences of " #ifdef DUAL_X_CARRIAGE" and the following "#endif".
But it doesn't change the behaviour.
I validate if it worked by sending "M218 X10 Y10 Z10" followed by "T0" or "T1". Only X and Y move that way (with the carriage beeing in a positinon where movement in every direction is possible).
I also searched for the offset variables and looked for differences between X, Y and Z, but I just can't figure out the solution.
Maybe someone of you has already encountered this or a similar problem.
Thanks in advance!
Leo