Индивидуальные длины тяг Anycubic Kossel Plus
Всем привет.
На моем Anycubic Kossel Plus окружности печатаются эллипсами с отклонением 0,4 мм, что иногда весьма критично. Прошивка Marlin 1.1.9 https://www.thingiverse.com/thing:3094837
По методике https://www.thingiverse.com/thing:1274733 вычислил длины тяг, по этой https://www.thingiverse.com/thing:745523 понял, что углы между башнями по 120 град. Но вопрос - как теперь ввести длины тяг для каждой из башен? Видимо в Marlin 1.1.9 другая методика расчета, чем представленная авторами по ссылкам выше.
В Configuration.h прописал переменные
// Center-to-center distance of the holes in the diagonal push rods.
#define DELTA_DIAGONAL_ROD_A 267.116
#define DELTA_DIAGONAL_ROD_B 266.522
#define DELTA_DIAGONAL_ROD_C 267.577
В Marlin_main.cpp
#if ENABLED(DELTA)
/**
* Recalculate factors used for delta kinematics whenever
* settings have been changed (e.g., by M665).
*/
void recalc_delta_settings() {
const float trt[ABC] = DELTA_RADIUS_TRIM_TOWER,
drt[ABC] = DELTA_DIAGONAL_ROD_TRIM_TOWER;
delta_tower[A_AXIS][X_AXIS] = cos(RADIANS(210 + delta_tower_angle_trim[A_AXIS])) * (delta_radius + trt[A_AXIS]); // front left tower
delta_tower[A_AXIS][Y_AXIS] = sin(RADIANS(210 + delta_tower_angle_trim[A_AXIS])) * (delta_radius + trt[A_AXIS]);
delta_tower[B_AXIS][X_AXIS] = cos(RADIANS(330 + delta_tower_angle_trim[B_AXIS])) * (delta_radius + trt[B_AXIS]); // front right tower
delta_tower[B_AXIS][Y_AXIS] = sin(RADIANS(330 + delta_tower_angle_trim[B_AXIS])) * (delta_radius + trt[B_AXIS]);
delta_tower[C_AXIS][X_AXIS] = cos(RADIANS( 90 + delta_tower_angle_trim[C_AXIS])) * (delta_radius + trt[C_AXIS]); // back middle tower
delta_tower[C_AXIS][Y_AXIS] = sin(RADIANS( 90 + delta_tower_angle_trim[C_AXIS])) * (delta_radius + trt[C_AXIS]);
delta_diagonal_rod_2_tower[A_AXIS] = sq(delta_diagonal_rod_A + drt[A_AXIS]);
delta_diagonal_rod_2_tower[B_AXIS] = sq(delta_diagonal_rod_B + drt[B_AXIS]);
delta_diagonal_rod_2_tower[C_AXIS] = sq(delta_diagonal_rod_C + drt[C_AXIS]);
update_software_endstops(Z_AXIS);
axis_homed = 0;
}
Но сборка не компилируется. Не могу понять что я упустил, или вообще калибровка в принципе не так работает.
Буду благодарен за подсказки. Архив с прошивкой https://yadi.sk/d/eOkZdPZoByrN2g
На моем Anycubic Kossel Plus окружности печатаются эллипсами с отклонением 0,4 мм, что иногда весьма критично. Прошивка Marlin 1.1.9 https://www.thingiverse.com/thing:3094837
По методике https://www.thingiverse.com/thing:1274733 вычислил длины тяг, по этой https://www.thingiverse.com/thing:745523 понял, что углы между башнями по 120 град. Но вопрос - как теперь ввести длины тяг для каждой из башен? Видимо в Marlin 1.1.9 другая методика расчета, чем представленная авторами по ссылкам выше.
В Configuration.h прописал переменные
// Center-to-center distance of the holes in the diagonal push rods.
#define DELTA_DIAGONAL_ROD_A 267.116
#define DELTA_DIAGONAL_ROD_B 266.522
#define DELTA_DIAGONAL_ROD_C 267.577
В Marlin_main.cpp
#if ENABLED(DELTA)
/**
* Recalculate factors used for delta kinematics whenever
* settings have been changed (e.g., by M665).
*/
void recalc_delta_settings() {
const float trt[ABC] = DELTA_RADIUS_TRIM_TOWER,
drt[ABC] = DELTA_DIAGONAL_ROD_TRIM_TOWER;
delta_tower[A_AXIS][X_AXIS] = cos(RADIANS(210 + delta_tower_angle_trim[A_AXIS])) * (delta_radius + trt[A_AXIS]); // front left tower
delta_tower[A_AXIS][Y_AXIS] = sin(RADIANS(210 + delta_tower_angle_trim[A_AXIS])) * (delta_radius + trt[A_AXIS]);
delta_tower[B_AXIS][X_AXIS] = cos(RADIANS(330 + delta_tower_angle_trim[B_AXIS])) * (delta_radius + trt[B_AXIS]); // front right tower
delta_tower[B_AXIS][Y_AXIS] = sin(RADIANS(330 + delta_tower_angle_trim[B_AXIS])) * (delta_radius + trt[B_AXIS]);
delta_tower[C_AXIS][X_AXIS] = cos(RADIANS( 90 + delta_tower_angle_trim[C_AXIS])) * (delta_radius + trt[C_AXIS]); // back middle tower
delta_tower[C_AXIS][Y_AXIS] = sin(RADIANS( 90 + delta_tower_angle_trim[C_AXIS])) * (delta_radius + trt[C_AXIS]);
delta_diagonal_rod_2_tower[A_AXIS] = sq(delta_diagonal_rod_A + drt[A_AXIS]);
delta_diagonal_rod_2_tower[B_AXIS] = sq(delta_diagonal_rod_B + drt[B_AXIS]);
delta_diagonal_rod_2_tower[C_AXIS] = sq(delta_diagonal_rod_C + drt[C_AXIS]);
update_software_endstops(Z_AXIS);
axis_homed = 0;
}
Но сборка не компилируется. Не могу понять что я упустил, или вообще калибровка в принципе не так работает.
Буду благодарен за подсказки. Архив с прошивкой https://yadi.sk/d/eOkZdPZoByrN2g
Популярные вопросы
Пластик подаётся к соплу не вовремя.
Здравствуйте, коллеги.
Принтер Anуcubic Mega X, пластик PETG.
Как разобраться со странным поведением принтера: пласт...
Принтер Anуcubic Mega X, пластик PETG.
Как разобраться со странным поведением принтера: пласт...
После включения принтера, сразу нагревается хотенд
Добрый день. Принтер flying bear s1.
После прочистки сопла и затягивания его на горячую, замкнул полосками провода нагревательного бл...
После прочистки сопла и затягивания его на горячую, замкнул полосками провода нагревательного бл...
Глючит WI-fi подключение Bambu lab x1 carbon
Bambu Lab X1 Сarbon работал нормально, но в какой-то момент начало глючить подключение по Wi-fi.
Причем он и теперь подключается к ли...
Причем он и теперь подключается к ли...
Комментарии и вопросы
На 3D today нужно завести отд...
Заходите на https://www.thingi...
если GD какой брать?
Как вы думаете, п...
Здравствуйте,поменял хотенд на...
Я спрашиваю о том что не прост...
Приветствую.Ender3Software 2.0...