Marlin Регулировка скорости подачи

Я использую прошивку Marlin (1.1.0-RC7 - 31 июля 2016) для 3D-принтера. В настоящее время печать не идеальна из-за небольших неточностей в перемещениях по осям x и y. Я пытаюсь изменить скорость подачи вдоль оси xy во время работы принтера, чтобы убедиться, что принтер останавливается вовремя и печатает точно.

У меня есть некоторый код для управления скоростью подачи, но проблема в том, что я не уверен, где я должен делать эти корректировки. В конфигурации.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 но я не уверен, какую часть это действительно меняет. Может ли кто-нибудь указать мне правильное направление?

, 👍11

Обсуждение

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


3 ответа


Лучший ответ:

3

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

G0 X10.0 Y15.0 Z3.0 F9000

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

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


,

Итак,должна ли скорость подачи быть одинаковой для всех осей x, y и z? Кроме того, вы знакомы с тем, какая часть Marlin_main.cpp отвечает за чтение команд из файла G-кода?, @make it happen

Нет, скорость подачи для отдельных осей рассчитывается так, чтобы общая скорость подачи составляла 9000 мм/с (например, евклидово расстояние между точками, деленное на время перемещения, равно скорости подачи). Если вы перейдете от 0,0 к 2,1, то скорость подачи для X будет в два раза выше, чем скорость подачи для Y. Я не уверен, чего вы пытаетесь достичь, но изменение прошивки, вероятно, не является правильным вариантом. Если вы настаиваете, вам, вероятно, следует посмотреть на функцию prepare_move., @Tom van der Zanden

Вы не можете установить скорость подачи для осей независимо друг от друга, потому что тогда одна ось может достичь места назначения раньше другой. Вы хотите,чтобы перемещение от X,Y к X', Y' привело к прямой линии. Поэтому скорости подачи зависят друг от друга., @Tom van der Zanden


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 для печати перемещений

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

,

2

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

#define DEFAULT_AXIS_STEPS_PER_UNIT

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

(как далеко он продвинулся)  (как далеко он должен был продвинуться)
------------------       =   ------------------------------
(текущие шаги/мм)            (новые шаги/мм) --> найти это
,