Технический форум по робототехнике.
Max999 » 24 июн 2015, 14:16
Здравствуйте! При сборке 3д принтера с системой coreXY, прошивка marlin столкнулся с проблемой зеркализации модели по оси Х. Как понял это из за размещения нуля принтера в ближнем правом углу, а не как у стандарта левой ближний. Как поменять направления оси Х на противоположное чтоб ноль принтера бил в левом ближнем угле?
П.С. С полярностью моторов игрался в результате просто изменяются оси местами, или меняется направления обоих Х и У, нужно только Х.
Scald » 24 июн 2015, 19:11
А в прошивке просто поменять?
porex » 24 июн 2015, 19:16
Тут без бубна не обойтись)) Сам несколько раз настраивал CoreXY с такой же проблемой. Четкой инструкции нет, все опытным путем. Необходимо инвертировать направление двигателей и менять их местами:)
Max999 » 24 июн 2015, 20:40
Scald писал(а):А в прошивке просто поменять?
Буду очень благодарен если покажете где в прошивке менять. Простой способ инвентирования осей меняет полярность моторов в следствии оси местами.
#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR true // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR false // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
Добавлено спустя 3 минуты 12 секунд:porex писал(а):Тут без бубна не обойтись)) Сам несколько раз настраивал CoreXY с такой же проблемой. Четкой инструкции нет, все опытным путем. Необходимо инвертировать направление двигателей и менять их местами:)
Да бубон бы пригодился) Но нужно розобатся, чисто с физической точки зрения не влезая в прошивку мне кажется поменять направления Х не трогая У невозможно.
porex » 25 июн 2015, 11:26
Невозможно, т.к. инвертирование одной оси влияет на перемещение по другой. Я сначала добился инвертированием осей движение головки в правый дальний угол, а затем поменял моторы местами.
setar » 25 июн 2015, 11:42
ну уж
просто это нужно глубоко в прошивке делать
всего лишь "-" на "+" поменять в рассчёте относительного изменения координаты
Добавлено спустя 5 минут 14 секунд:planner.cpp
- Код: Выделить всё • Развернуть
#ifdef COREXY
// corexy planning
// these equations follow the form of the dA and dB equations on http://www.corexy.com/theory.html
block->steps[A_AXIS] = labs(dx + dy);
block->steps[B_AXIS] = labs(dx - dy);
и
- Код: Выделить всё • Развернуть
#ifdef COREXY
float delta_mm[6];
delta_mm[X_HEAD] = dx / axis_steps_per_unit[A_AXIS];
delta_mm[Y_HEAD] = dy / axis_steps_per_unit[B_AXIS];
delta_mm[A_AXIS] = (dx + dy) / axis_steps_per_unit[A_AXIS];
delta_mm[B_AXIS] = (dx - dy) / axis_steps_per_unit[B_AXIS];
porex » 25 июн 2015, 14:59
Невозможно без ковыряния прошивки
setar » 25 июн 2015, 15:20
однозначно
Max999 » 26 июн 2015, 01:21
setar писал(а):ну уж
просто это нужно глубоко в прошивке делать
всего лишь "-" на "+" поменять в рассчёте относительного изменения координаты
Добавлено спустя 5 минут 14 секунд:planner.cpp
- Код: Выделить всё • Развернуть
#ifdef COREXY
// corexy planning
// these equations follow the form of the dA and dB equations on http://www.corexy.com/theory.html
block->steps[A_AXIS] = labs(dx + dy);
block->steps[B_AXIS] = labs(dx - dy);
и
- Код: Выделить всё • Развернуть
#ifdef COREXY
float delta_mm[6];
delta_mm[X_HEAD] = dx / axis_steps_per_unit[A_AXIS];
delta_mm[Y_HEAD] = dy / axis_steps_per_unit[B_AXIS];
delta_mm[A_AXIS] = (dx + dy) / axis_steps_per_unit[A_AXIS];
delta_mm[B_AXIS] = (dx - dy) / axis_steps_per_unit[B_AXIS];
Очень благодарен это и искал! Спасибо за помощь! Ближайши дни отпишу результат.
3DPrinter » 27 июн 2015, 02:21
Max999 писал(а):setar писал(а):ну уж
просто это нужно глубоко в прошивке делать
всего лишь "-" на "+" поменять в рассчёте относительного изменения координаты
Добавлено спустя 5 минут 14 секунд:planner.cpp
- Код: Выделить всё • Развернуть
#ifdef COREXY
// corexy planning
// these equations follow the form of the dA and dB equations on http://www.corexy.com/theory.html
block->steps[A_AXIS] = labs(dx + dy);
block->steps[B_AXIS] = labs(dx - dy);
и
- Код: Выделить всё • Развернуть
#ifdef COREXY
float delta_mm[6];
delta_mm[X_HEAD] = dx / axis_steps_per_unit[A_AXIS];
delta_mm[Y_HEAD] = dy / axis_steps_per_unit[B_AXIS];
delta_mm[A_AXIS] = (dx + dy) / axis_steps_per_unit[A_AXIS];
delta_mm[B_AXIS] = (dx - dy) / axis_steps_per_unit[B_AXIS];
Очень благодарен это и искал! Спасибо за помощь! Ближайши дни отпишу результат.
и как?
получилось?
Xsenus » 29 июн 2015, 18:47
у меня таж самая проблема(((( попробовал вышеописанный способ - не помогло(((
Valaskor » 30 июн 2015, 17:15
нужно поменять физически подключения моторов местами, а после этого донастроить в прошивке
Xsenus » 30 июн 2015, 20:48
Днем все таки добил, как раз поменяв движки местами
macar2005 » 22 ноя 2015, 10:32
Собрал я кинематику core XY.
Раскоментировал строку #define COREXY, скомпилировал, залил (Марлин 1.0.2).
Получил следующий эффект:
При движении вперёд по X или Y моторы вращаются с нормальным усилием, а при движении в обратную сторону моторы еле крутятся, усилие почти нулевое.
Проверил тоже самое без ремней - эффект тот же (драйвера и моторы точно исправные, если отключаю core XY то всё нормально и в перёд и назад).
Что может влиять на обратный ход?
druksel » 26 ноя 2015, 00:51
был такой косяк - правда на стандартной кинематике - я Сетара замучил вопросами, а оказалось - неправильно работали концевики.