Марлин Регулировка подачи

9

Я использую прошивку Marlin (1.1.0-RC7 - 31 июля 2016 г.) для 3d-принтера. В настоящее время печать не идеальна из-за незначительных неточностей в движениях по осям X и Y. Я пытаюсь изменить скорость подачи по оси XY во время работы принтера, чтобы убедиться, что принтер останавливается вовремя и печатает точно.

У меня есть некоторый код для управления подачей, но проблема в том, что я не уверен, где я должен делать эти корректировки. В файле configuration.h я вижу этот код: (строки 742 и 753)

/*line 742*/ #define HOMING_FEEDRATE_XY (50*60) 
/*line 753*/ #define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25}  // (mm/sec)

Я, вероятно, что-то неправильно понимаю, но кажется, что это устанавливает скорость подачи на значение по умолчанию, которое совпадает с максимальным.

Если скорость подачи изменяется во время печати, я предполагаю, что это будет сделано в Marlin_main.cpp, но я не уверен, какая часть на самом деле изменяется. Может ли кто-нибудь указать мне правильное направление здесь?

Сделай это
источник
Скорость подачи задается с помощью предоставленного вами g-кода. Почему бы просто не установить скорость подачи печати ниже? Единственное, что вы собираетесь изменить в прошивке, не изменяя ее, это максимальная и исходная скорости подачи.
tjb1

Ответы:

3

Вы можете изменить максимально допустимую скорость подачи в Configuration.h, но фактическая скорость подачи не определяется вашей микропрограммой. Скорость подачи указана в файле G-Code. Команда как

G0 X10.0 Y15.0 Z3.0 F9000

указывает на движение к (10,15,3) при скорости подачи 9000 мм / мин. Если F не указан, используется последняя использованная скорость подачи.

Вам просто нужно предоставить соответствующие команды G-кода с нужной вам скоростью подачи. Нет причин изменять прошивку, чтобы получить другую скорость подачи.

Том ван дер Занден
источник
Итак, будет ли скорость подачи одинаковой для всех осей x, y и z? Также вы знакомы с тем, какая часть Marlin_main.cpp отвечает за чтение команд из файла G-Code?
сделать это
Нет, скорость подачи для отдельных осей рассчитывается таким образом, чтобы общая скорость подачи составляла 9000 мм / с (например, евклидово расстояние между точками, деленное на время перемещения, равно скорости подачи). Если вы перейдете от 0,0 до 2,1, скорость подачи для X будет в два раза выше, чем скорость подачи для Y. Я не уверен, чего вы пытаетесь достичь, но смена прошивки, вероятно, не правильный вариант , Если вы настаиваете, вы, вероятно, должны смотреть на prepare_moveфункцию.
Том ван дер Занден
Вы не можете установить подачу для осей независимо, потому что тогда одна ось может достичь своего назначения раньше, чем другая. Вы хотите, чтобы переход от X, Y к X ', Y' приводил к прямой линии. Поэтому скорости подачи зависят друг от друга.
Том ван дер Занден
2

Кажется, что вы, возможно, захотите посмотреть на шаги на линию мм.

#define DEFAULT_AXIS_STEPS_PER_UNIT

В этой строке вы калибруете количество шагов на мм. Для калибровки отметьте точку вдоль оси, затем переместите эту ось примерно на 100 мм. Если он не сдвинулся точно на 100 мм, внесите изменения

(how far it moved)       (how far it should have moved)
------------------   =   ------------------------------
(current steps/mm)         (new steps/mm) --> find this
Курт Хейс
источник
1

У вас есть линии для регулировки скорости подачи. Первый (строка 742) относится к максимальной скорости подачи XY при возврате (не во время печати). Я думаю, что это не проблема в вашем конкретном случае, и вы можете оставить все как есть.

Второй (строка 753) - это скорость подачи при печати для XY. В частности, цифры в скобках относятся к (X, Y, Z, E). Если ваш принтер движется, это может повлиять на XY больше, чем на Z и E. Поэтому вы можете попробовать отрегулировать первые два числа.

Из-за очень специфической ситуации невозможно дать вам скорость подачи на основе расчетов, потому что вы имеете дело с внешними ускорениями, вызванными мобильной ситуацией. Вам нужно будет попробовать и настроить его, пока не получите права.

Другой настройкой, которая также может помочь вам компенсировать внешнее ускорение, если оно есть, является ускорение этих двух осей. Вы должны найти две строки, подобные этим:

#define DEFAULT_MAX_ACCELERATION {1500,1500,50,250}    
#define DEFAULT_ACCELERATION 1500 // Максимальное ускорение X, Y, Z и E в мм / с ^ 2 для печатных ходов

Однако ускорение осей может повлиять на качество печати.

FeliceM
источник