KREMEN Реклама
KREMEN Реклама

Индивидуальные длины тяг Anycubic Kossel Plus

DeCygnus
Идет загрузка
Загрузка
14.06.2019
1545
6
Вопросы и ответы
Всем привет.

На моем 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
Ответы на вопросы
Lider 3D Реклама
Lider 3D Реклама