Индивидуальные длины тяг 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
Популярные вопросы
Fusion 360
Со вчерашнего дня fusion не хочет подключаться к серверам, хотя интернет стабильный. Никакие впны не помогают, пишет что-то вроде "не удалось проверит...
Flow calibration для принтеров с разным сочетанием Extruder+Hotend
Всем привет.
Хотел бы узнать мнение людей, которые имеют несколько принтеров с разными сочетаниями Extruder+Hotend. Речь идет не о пр...
Хотел бы узнать мнение людей, которые имеют несколько принтеров с разными сочетаниями Extruder+Hotend. Речь идет не о пр...
Волнистые стенки.
С того момента как я собрал принтер Ultimaker уважаемого Plastmaski, не могу избавиться от одной проблемы. Уже почти 2 кг пластика перевел на тесты. М...

Комментарии и вопросы
Респект автору!Вставлю свои 5....
Это показалось. Это совсем дру...
Рама, что-то сильно знакомая
Здравствуйте, подскажите что с...
Всем привет. Имеется ender-3 н...
Вопрос к уважаемы...
День добрый . Имеется принтер...