19 октября 2013 г.

3D принтер RepRap. Часть 5 - прошивка, калибровка, печать




Наконец, после большого технического перерыва, я дописал заключительную статью моего небольшого цикла о RepRap. Она посвящена прошивке контроллера принтера, начальной калибровке и настройке параметров печати, программному обеспечению для 3D печати, а также некоторым возможностям по улучшению качества печати.


Прежде всего следует взглянуть на процес 3D печати "свысока". Он состоит из нескольких этапов и на каждом этапе используются свои инструменты.

Процесс создания модели

Создание и подготовка модели

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

С созданием модели все понятно - оно представляет из себя просто процесс конструирования 3D модели объекта в каком-то из 3D редакторов или CAD-систем.

Под подготовкой модели я понимаю два этапа. Первый этап, это набор неких преобразований над моделью, с целью упрощения её печати на FDM принтере. Как я писал в первой статье - не все модели могут быть напечатаны на 3D принтере, иногда модель приходится разбивать на несколько частей, добавлять поддерживающие структуры, или просто размещать особым образом, что бы минимизировать количество свесов и мостов.

Второй этап, это экспорт модели в формат пригодный для дальнейшей обработки. Исторически так сложилось, что для 3D принтеров таким форматом является STL.

Слайсинг

С технической точки зрения это, наверное, самая сложная часть всего процесса 3D печати на FDM принтерах. Суть её в следующем: сначала модель объекта нарезается на тонкие слои (отсюда и название - slicing). Высота слоя, как и огромное количество других параметров, указывается в настройках программы выполняющей слайсинг (слайсера). Затем каждый слой анализируется, и для него генерируется маршрут по которому будет перемещаться сопло экструдера выдавливая пластик. И наконец, на основе информации обо всех маршрутах генерируется код программы на специальном языке - G-code, который, собственно, и описывает необходимые перемещения каретки, экструдера, температуры стола и экструдера и т.п. То есть на вход программе-слайсеру подается модель объекта в формате STL, а на выходе мы получаем программу на языке G-code, выполнив которую принтер должен напечатать этот самый объект.

Например, вот как выглядит STL модель куба-компаньона из игры Portal:
Куб-компаньон, модель в формате STL
Если пропустить её через слайсер, и попробовать визуализировать сгенерированный G-code (я для этих целей воспользовался программой Repetier), то получится что-то типа такого:
Визуализация G-code
Хорошо видны отдельные слои, и окантовка вокруг объекта, служащая для очистки сопла перед печатью. Можно визуализировать не все слои, а только часть:
Частичная визуализация G-code
Здесь видны внутренности слоя - сплошной периметр, и полое заполнение в форме сот.

Как я уже говорил, процесс этот очень сложный, весьма не быстрый (по крайней мере для некоторых слайсеров), и оказывает существенное влияние на качество напечатанного объекта. Большая часть рекомендаций по улучшению качества печати связана именно с поиском оптимальных параметров для слайсера (зачастую - методом проб и ошибок).

Печать

Последний этап, собственно печать, состоит в загрузке G-code в принтер, и его интерпретации прошивкой принтера.

Загрузка G-code в принтер может быть осуществлена двумя способами. Первый способ состоит в подключении принтера к компьютеру, и использовании специальной программы (host software) для работы с принтером и загрузке G-code. Второй способ состоит в загрузке G-code на карту памяти, с которой его будет читать принтер. Т.к. я использую первый способ, то далее речь пойдет только о нем.

Интерпретация и выполнение G-code выполняется прошивкой (firmware) принтера, которая загружена в память микроконтроллера (во флеш AVR, в случае RAMPS).

Теперь, приступим к детальному рассмотрению всех этапов, по принципу "снизу-вверх" и начнем с последнего, прошивки.

Прошивка

Первым делом, необходимо загрузить в контроллер принтера прошивку. Это позволит проверить работоспособность электронных компонентов, правильность подключения шаговых двигателей, откалибровать перемещение каретки и подачу прутка, и т.п.

Прошивок для RepRap существует несколько, список можно посмотреть здесь. На момент когда я собирал свой принтер, очень распространенной (и самой богатой по возможностям) была прошивка Marlin, поэтому далее речь пойдет о ней.

Исходные коды, а также описание и инструкция по сборке находятся здесь. Перепечатывать сюда инструкцию, думаю, не имеет смысла, поэтому опишу процесс вкратце. Для начала, нужно скачать и установить среду разработки для Arduino. Потом скачать исходные коды Marlin, открыть их в Arduino IDE, внести необходимые изменения для работы на вашем контроллере, откомпилировать, и загрузить в Arduino.

А вот вносимые изменения, я думаю, следует рассмотреть более подробно. Правда сразу оговорюсь - Marlin, это весьма активно развивающийся проект, поэтому к тому моменту, когда вы будете читать этот текст, все написанное ниже может устареть и оказаться неверным, будьте внимательны.

Сначала займемся файлом Configuration.h. Первый параметр заслуживающий внимания:
#define BAUDRATE 250000
Это скорость COM-порта. Обратите внимание, что значение по умолчанию в 250000 бод является нестандартным, и при использовании Linux с ним возникнут проблемы. Т.к. в качестве OS у меня установлен Arch Linux, то пришлось понизить скорость COM порта до стандартных - 115200 бод.

Далее необходимо выбрать тип платы, на которой будет запущен Marlin, с помощью задания соответствующего значения константе MOTHERBOARD. Список допустимых значений указан там же, в комментариях (для RAMPS v1.4 это 34).
#ifndef MOTHERBOARD
#define MOTHERBOARD 34
#endif
Тип платы определяет какие пины микроконтроллера подключены к каким устройствам (шаговым двигателям, термисторам, нагревателям и т.д.).

Следующая важная группа констант относится к выбору типа температурного сенсора (в моем случае это 100k thermistor для термисторов хотэнда и стола):
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1

Следующая интересная константа:
#define PREVENT_DANGEROUS_EXTRUDE
Суть её в следующем - если она определена, то принтер будет игнорировать команды на подачу прутка, если температура экструдера ниже той, что определена константой EXTRUDE_MINTEMP. Возможность это, конечно, полезная, т.к. случайная подача прутка в холодный хотэнд ни к чему хорошему не приведет. Но для первоначальной калибровки экструдера нам будет необходимо подавать пруток без предварительного нагревания хотэнда, поэтому эту константу нужно закомментировать (и не забыть убрать комментарий, когда калибровка будет выполнена).

Если вы используете такие же концевики как и я, то включенное по умолчанию инвертирование концевиков нужно отключить:
const bool X_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
const bool Y_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
Также, если используется только три минимальных концевика, то стоит включить
#define DISABLE_MAX_ENDSTOPS

Поскольку для оси Z используется червячная передача, для сохранения положения по оси Z не требуется удержания роторов шаговых двигателей, и при простое их можно отключать, что бы зря не греть ни драйвер ни сами двигатели. Для этого нужно включить:
#define DISABLE_Z true

Размеры рабочей области, в миллиметрах:
#define X_MAX_POS 200
#define X_MIN_POS 0
#define Y_MAX_POS 200
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0

Последнее, на что нужно обратить внимание в этом файле, это константа, задающая количество шагов (на самом деле - микро-шагов) которое нужно совершить шаговому двигателю, для перемещения по оси на 1 мм. Это массив с четырьмя элементами, которые задают количество шагов на миллиметр по осям X, Y, Z и E (экструдер) соответственно. У меня он выглядит так:
#define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402, 78.7402, 200*16/1.25, 638.23}
Значения для осей X и Y обычно стандартные, и не нуждаются в изменении (формулы для расчета этих значений можно найти здесь). Значение для оси Z зависит от резьбы на червяках для оси Z, и может нуждаться в корректировке. Значение для экструдера, помимо всего остального, также зависит от диаметра зубчатой части болта, поэтому его придется корректировать экспериментально (об этом позже).

На этом с файлом Configuration.h пока все, перейдем к файлу pins.h. Этот файл отвечает за назначение пинов микроконтроллера конкретным устройствам принтера. Нас интересует часть относящаяся к RAMPS v1.4, а начинается она вот с такого участка:
#if MOTHERBOARD == 33 || MOTHERBOARD == 34
Если вы используете схему подключения, описанную в предыдущей статье, то нужно внести пару изменений - отключить неиспользуемые нагреватели и датчики (это больше косметическое изменение), и поменять номер пина температурного датчика для стола. Вот как у меня выглядит этот участок со внесенными изменениями:
#define HEATER_0_PIN       10   // EXTRUDER 1
#if MOTHERBOARD == 33
#define HEATER_1_PIN       -1
#else

#define HEATER_1_PIN       -1    // EXTRUDER 2 (FAN On Sprinter)
#endif
#define HEATER_2_PIN       -1  
#define TEMP_0_PIN         13   // ANALOG NUMBERING
#define TEMP_1_PIN         -1   // ANALOG NUMBERING
#define TEMP_2_PIN         -1   // ANALOG NUMBERING
#define HEATER_BED_PIN     8    // BED
#define TEMP_BED_PIN       15   // ANALOG NUMBERING

На этом пока все, можно компилировать Marlin и загружать его в контроллер.

Начальная калибровка

На этом этапе нужно добиться правильного и точного выполнения команд на перемещение каретки и подачу прутка, корректной обработки значений концевиков, установки и поддержания заданной температуры хотэнда и стола. Фактически, после выполнения начальной калибровки принтер сможет напечатать первый объект.

Для выполнения калибровки нам придется "общаться" с принтером, посылая ему на выполнение команды G-code, и читая его ответы на них. Для этих целей удобно воспользоваться специализированным ПО (host software). Здесь мой выбор пал на Printrun - набор утилит, из которых я пользуюсь только Pronterface - собственно программой для общения с принтером. Основными критериями для выбора послужили функциональность, бесплатность и кроссплатформенность (как минимум - работа в Linux).

Pronterface

Рассмотрим вкратце основные возможности Pronterface.
Интерфейс Pronterface
Его интерфейс разбит на несколько групп (на рисунке они пронумерованы цифрами). Элементы первой группы отвечают за подключение к принтеру и управление процессом печати (а также загрузку файлов для печати). Элементы второй и третей групп позволяют в ручном режиме управлять положением каретки, устанавливать нежную температуру экструдера и стола для печати, подавать пруток в экструдер, а также отключить моторы (не дожидаясь пока они отключатся автоматически, спустя какое-то время бездействия). Под номером четыре находится окно терминала, в который выводится все что нам сообщает принтер (а иногда и сам Printrun). Именно сюда будут выводиться ответы принтера на посылаемые ему команды. Ну а поле для ввода и кнопка Send обозначенные номером пять, собственно, и позволяют посылать принтеру любые команды на выполнение.
Клетчатое поле по центру представляет собой модель области для печати. Здесь будет схематически визуализироваться процесс печати объекта.

В целом интерфейс простой и интуитивно понятный (при этом может быть расширен с помощью макросов и добавления собственных кнопок). Для печати файла достаточно загрузить G-code файл (с помощью кнопки Load file) и нажать Print.

Также Pronterface имеет возможность самостоятельно вызывать слайсер для генерации G-code из STL модели, но я предпочитаю не пользоваться этой возможность, а генерировать G-code самостоятельно.

Калибровка срабатывания концевиков

Калибровку начнем с концевиков, так как. в случае их неправильной работы команды на перемещение каретки могут выполняться некорректно (или игнорироваться).

Итак, прежде всего подключимся к принтеру с помощью Pronterface. Для этого достаточно указать верные номер COM-порта, его скорость (baud rate) и нажать кнопку Connect. Если все сделано верно, принтер ответит чем-то похожим на это:

echo: External Reset
Marlin 1.0.0
echo: Last Updated: 2012-11-09 | Author: alik
echo: Free Memory: 5528  PlannerBufferBytes: 1232

Теперь нужно руками передвинуть каретку принтера в такое положение, что бы ни один из концевиков не был активирован. После этого отправим принтеру команду M119, в ответ на которую он должен сообщить нам состояние концевиков (помните, что вывод может немного отличаться в зависимости от версии Marlin, но суть от этого не меняется):

SENDING:M119
Reporting endstop status
x_min: open
y_min: open
z_min: open

Итак, принтер нам сообщает что все три концевика "открыты", то есть не активированы. Если же вместо этого принтер ответил что состояние всех коцевиков - TRIGGERED, то есть "активированы" - значит в файле Configuration.h нужно поменять значения констант X_ENDSTOPS_INVERTING, Y_ENDSTOPS_INVERTING, Z_ENDSTOPS_INVERTING на противоположное, и повторить эксперимент.

В случае если для части концевиков считанное состояние оказалось open, а для остальных - TRIGGERED - скорее всего проблема в самих концевиках или неправильном подключении (конечно при условии что используются одинаковые концевики, в противном случае нужно будет корректировать значения вышеупомянутых констант по отдельности).

Теперь нужно проверить срабатывание каждого концевика. Переместите каретку руками по одной из осей (например X) до срабатывания концевика, и снова отправьте принтеру команду M119. На этот раз ответ должен быть таким:

SENDING:M119
Reporting endstop status
x_min: TRIGGERED
y_min: open
z_min: open

Если концевик остался в состоянии open - скорее всего он неисправен, или неправильно подключен. Эту процедуру нужно повторить по очереди для каждого из концевиков.

Регулировка тока шаговых двигателей

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

Ток настраивается с помощью маленького подстроечного резистора на самом драйвере. О процедуре настройки можно прочитать здесь или здесь. В целом она достаточно проста: что бы рассчитать насколько нужно повернуть подстроечный резистор для Pololu A4988 сначала рассчитаем значение Vref воспользовавшись следующей формулой: Vref = Ток * 0,4, где Ток - значение тока указанное в даташите к двигателю. Теперь поворачивая резистор нужно добиться того, что бы напряжение между пинами GND и REF драйвера соответствовало рассчитанному значению Vref. Что бы добраться до пина REF щупом мультиметра, на плате Pololu предусмотрен специальный пятачок с отверстием, который обведен на обратной стороне драйвера: 
Доступ к пину REF
Ну а сверху он находится вот здесь:
Доступ к пину REF

Калибровка перемещения каретки

Следующий этап в калибровке - добиться точного позиционирования каретки по всем осям.

Начнем с оси X (для остальных осей процедура аналогична). Прежде всего нужно убедиться что мотор вращается, и вращается в нужном направлении. Для этого руками переместим каретку на примерно середину оси X, установим режим относительного позиционирования отправив принтеру команду G91, и отправим команду на перемещение каретки по оси X в сторону увеличения координат (то есть в сторону от концевика) на 2 сантиметра: G1 X20. Результаты могут быть разные:
  • Каретка переместилась в нужном направлении. 
  • Каретка переместилась в противоположном направлении. Эту проблему проще всего решить изменив значение константы INVERT_X_DIR на противоположное.
  • Ничего не произошло или мотор начал вибрировать. Скорее всего мотор подключен неправильно, можно попробовать поменять местами два любых его провода и попробовать снова. Если перепробовали все комбинации но мотор так и не начал вращаться - возможно ему не хватает тока, в этом случае можно попробовать заново отрегулировать ток с помощью подстроечного резистора на драйвере шагового двигателя. Если и это не помогло, можно попробовать подключить другой двигатель (в случае если текущий неисправен). Если другой двигатель также вибрирует - скорее всего проблема в драйвере, можно попробовать использовать другой (кстати не такая большая редкость - один из пяти моих драйверов оказался неисправен, и как раз приводил к вибрации мотора).
Теперь, когда мотор вращается в нужном направлении, нужно откалибровать точность его перемещения. Для этого сначала вернем каретку в её начальное положение с помощью команды G28 X, включим абсолютное позиционирование - G90, и переместим каретку на 10см - G1 X100. Осталось измерить насколько реально переместилась каретка (я это делал с помощью штангенциркуля), и если оно отлично от 10см - скорректировать первый элемент массива DEFAULT_AXIS_STEPS_PER_UNIT в противоположную сторону (т.е. если получилось больше 10см - уменьшить, если меньше - увеличить). Обычно значения по умолчанию дают точное позиционирование для осей X и Y, а вот с осью Z возможно придется немного повозиться, т.к. значение зависит от резьбы на червяках оси Z.

Калибровка подачи прутка

На этом этапе нужно добиться точной подачи пластикового прутка, то есть что бы при выполнении команды "подать Nмм прутка" экструдер подавал ровно Nмм. Для выполнения этой операции хотэнд не должен быть установлен - пруток должен свободно выходить с нижней стороны экструдера. Напомню, что для выполнения этого этапа калибровки нужно закомментировать строку #define PREVENT_DANGEROUS_EXTRUDE, в противном случае команды на подачу прутка при холодном хотэнде будут игнорироваться.

В целом процедура аналогична калибровке позиционирования каретки. Сперва нужно выяснить вращается ли мотор в нужном направлении. Для этого нужно запустить подачу прутка нажатием кнопки Extrude в Pronterface (в поле рядом с ней указывается сколько миллиметров прутка нужно подать). Вращается ли мотор в правильном направлении или нет можно легко понять по направлению вращения болта с засечками. Ну и если направление неправильное - достаточно поменять значение константы INVERT_E0_DIR, которая определена в файле Configuration.h, на противоположное.

Точность подачи прутка я проверял следующим образом: "зарядил" в экструдер кусок прутка длиной около 20см. Нанес отметку на пруток, которая будет служить точкой отсчета:
Нанесение отметки на пруток при калибровке экструдера
Затем отправил принтеру команду на подачу 10см прутка, и снова нанес отметку на пруток. Теперь что бы узнать сколько миллиметров прутка реально подал экструдер нужно извлечь этот кусок прутка и измерить расстояние между двумя отметками. Если оно получилось больше 10см, значит нужно немного уменьшить последний элемент массива DEFAULT_AXIS_STEPS_PER_UNIT, если меньше - увеличить.

Повторять эту процедуру нужно до тех пор пока экструдер не начнет подавать ровно 10см прутка. По завершении калибровки хотэнд можно установить на место.

Калибровка температуры

Следующий важный этап это калибровка установки и удержания целевой температуры хотэндом и столом с подогревом.

Вначале немного о том как происходит установка температуры в Marlin. Когда принтер получает команду на установку заданной температуры хотэнда (например команду M109) он блокирует выполнение остальной части G-code пока хотэнд не достигнут целевой температуры. Как определить что температура достигнута? Самый простой способ - просто дождаться когда температура, которую сообщает термистор, будет равна целевой. Но у такого способа есть большой недостаток, а именно - возможность войти в бесконечные автоколебания, вызванная тем что замеры температуры производятся не непрерывно, а через некоторые промежутки времени. Например, при целевой температуре в 180С, реальные замеры могут бесконечно колебаться в виде последовательности: 179С, 182С, 178С, 181С, 179С и т.д., так и не попав в желаемые 180С. Для противодействия этому в Marlin предусмотрен простой механизм, который работает следующим образом. Как только при очередном замере температура оказалась в пределах TEMP_WINDOW градусов от целевой, запускается таймер на TEMP_RESIDENCY_TIME секунд. Если в течении этого времени отклонения от целевой температуры не выходили за пределы TEMP_HYSTERESIS, то целевая температура считается достигнутой. Константы TEMP_WINDOW, TEMP_RESIDENCY_TIME и TEMP_HYSTERESIS находятся в файле Configuration.h. Эти параметры подбираются исходя из соображений чем меньше разброс - тем лучше, но что бы при этом "устаканивание" колебаний температуры не занимало слишком много времени (у меня они следующие: TEMP_RESIDENCY_TIME = 10, TEMP_HYSTERESIS = 3, TEMP_WINDOW = 1).

Теперь о том как происходит управление температурой хотэнда в Marlin. Основная задача состоит в том что бы подобрать такой ток через нагревательный элемент, что бы температура достигла заданной, а затем удерживать её максимально близко к заданной температуре. Для этих целей используется ПИД-регулятор (пропорционально-интегрально-дифференциальный регулятор). ПИД-регулятор, по сути, это просто способ расчета управляющего воздействия (в нашем случае - тока через резистор) на основе обратной связи (данные с термистора). Называется он так потому что управляющее воздействие формируется исходя из трех составляющих:

  • Пропорциональной. Эта составляющая пропорциональна ошибке (отклонению от целевой температуры), то есть чем больше ошибка - тем сильнее нужно греть (в случае если целевая температура выше текущей) нагревательный элемент.
  • Интегральной. В нашем случае она пропорциональна сумме ошибок, рассчитанных при каждом замере температуры. Эта составляющая позволяет подобрать оптимальное управляющее воздействие, когда вклады других составляющих несущественны. Например в случае когда текущая температура равна целевой, пропорциональная и дифференциальные составляющие будут равны нулю, а это привело бы к отключению нагревательного элемента и падению температуры, затем снова к его включению, опять отключению и т.д., то есть к автоколебаниям. Проблема в том, что даже когда хотенд нагрелся до целевой температуры, через нагревательный элемент всё равно должен течь небольшой ток, для поддержания его температуры. Именно в этом и заключается суть интегральной составляющей - накапливая ошибку, со временем она приобретает значение которое позволяет температуре стабилизироваться.
  • Дифференциальной. Эта часть пропорциональна скорости изменения ошибки. Она помогает не проскочить целевую температуру, уменьшая ток через нагревательный элемент если температура растет слишком быстро. Также она помогает компенсировать возмущения вблизи целевой температуры, когда вклад пропорциональной составляющей уже очень мал.
Управляющее воздействие рассчитывается как сумма всех трех составляющих, где каждая составляющая умножена на свой коэффициент: DEFAULT_Kp для пропорциональной, DEFAULT_Ki для интегральной и DEFAULT_Kd для дифференциальной (определения этих констант находятся все в том же файле Configuration.h). Собственно главная проблема заключается в подборе оптимальных значений этих констант. Делается это экспериментальным путем - из Pronterface устанавливаем желаемую температуру хотенда, скажем, в 180C, и следим за графиком изменения температуры (не забудьте включить флажок Watch). Если возникают какие-то проблемы, то в зависимости от их характера меняем соответствующие коэффициенты ПИД-регулатора (например если наблюдается сильное колебание температуры вблизи целевой - можно попробовать увеличть интегральную составляющую, и немного уменьшить пропорциональную и дифференциальную). 

Marlin умеет выполнять автоматический подбор коэффициентов ПИД-регулятора, для его запуска нужно отправить принтеру команду M303(по умолчанию автоподбор происходит при температуре хотенда в 150C). Через какое-то время подбор завершится, и в конце ответа от принтера будет что-то на подобие:
Clasic PID
Kp: 45.48
Ki: 5.83
Kd: 88.67
PID Autotune finished ! Place the Kp, Ki and Kd constants in the configuration.h

Полученные значения можно прописать в файл Configuration.h и использовать их в качестве "базы" для дальнейшей калибровки.

Со столом все проще (сказывается его большая инертность, а также то что отклонения от целевой температуры для стола не критичны) - там нет никакого ПИД-регулятора, вся регулировка происходит включением нагревательного элемента, если температура ниже целевой, и отключением если выше. Для настройки доступны только две константы, смысл которых, думаю, понятен из названия: BED_MINTEMP и BED_MAXTEMP.

Покрытие для стола

Перед тем как перейти к следующему этапу нужно выбрать и нанести покрытие для стола на котором осуществляется печать. Покрытие необходимо поскольку пластик (ABS, PLA) плохо пристает к материалам из которых обычно изготовлен стол (стекло, алюминий).

Для печати PLA в качестве покрытия лучше всего подходит синий малярный скотч (его можно найти в строительных супермаркетах):
Синий малярный скотч
Клеится очень легко, без пузырей (клеить нужно встык), и так же легко снимается. Такого покрытия обычно хватает на две-три печати, после чего его нужно обновить.

Для ABS обычно используют полиимидную ленту, больше известную под названием Kapton tape:
Полиимидная лента
Купить можно в интернет магазинах (список некоторых из них есть здесь), я покупал на DealExtreme. Стоит существенно дороже малярного скотча, но и хватает её на дольше.

Есть и более экзотические варианты, например использование матового стекла, или нанесение лака для волос на стол перед печатью. К сожалению об их эффективности ничего не могу сказать, т.к. сам пользуюсь только малярным скотчем.

Регулировка зазора по оси Z

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

Вся регулировка производится при рабочей температуре хотэнда и стола (обычно это где-то 180-200C для хотэнда и 60-80С для стола). Это связано с тем что при нагревании зазор уменьшается, из-за расширения материалов стола и хотэнда.

Первое что нужно сделать это отрегулировать положение концевика оси Z так, что бы в "домашнем" положении по оси Z (Z координата равна нулю) зазор между соплом и столом составлял где-то 0,5-1мм.

Дальнейшая регулировка осуществляется с помощью четырех болтов, удерживающих стол на пружинах. Сначала стол и каретка перемещаются так, что бы сопло было в одном из углов стола. Затем, вращением болтов нужно добиться того, что бы в щель между соплом и столом проходил лист бумаги. При этом лист должен ходить не свободно, а с небольшим усилием. Эту процедуру нужно повторять для каждого из углов до тех пор, пока зазоры везде не станут одинаковыми (т.е. лист бумаги будет проходить примерно с одинаковым усилием). Использование листа бумаги помогает выставить везде одинаковый маленький зазор примерно в толщину листа (около 0,1мм).

Параметры слайсера

Что бы напечатать первый объект нам нужен G-code для этого объекта. Проблема в том, что G-code содержит слишком много параметров специфичных как для принтера, так и для материала которым он будет печататься. Поэтому обычно модели распространяются в виде *.STL файлов, а G-code из них генерируется непосредственно перед печатью. Так что перед тем как напечатать первый объект - рассмотрим основные настройки слайсера, и процедуру генерации G-code.

Выбор программ-слайсеров достаточно богат, из наиболее популярных: Slic3r, Skeinforge, RepSnapper, KISSlicer. Я пользуюсь программой Slic3r, поэтому оставшаяся часть этого раздела будет в основном посвящена ей (хотя большинство описываемых здесь параметров есть во всех слайсерах). Среди преимуществ Slic3r: простота и аккуратность интерфейса, высокая скорость слайсинга, хорошее качество генерируемого G-code, ну и проект этот достаточно быстро развивается. Есть конечно и недостатки, например сборка и работа со Slic3r под Linux это сущий ад, но они не столь существенны

В главном окне Slic3r можно добавить модели объектов которые вы хотите напечатать, разместить их на виртуальном столе для печати, и сгенерировать G-code нажатием кнопки Export G-code.
Slic3r
Теперь перейдем к рассмотрению настроек слайсинга. Я не буду описывать все параметры (благо для этого у Slic3r есть замечательные описания каждого параметра во всплывающих подсказках, которые появляются при наведении на значение параметра), а лишь опишу наиболее, на мой взгляд, важные из них - оказывающие существенное влияние на качество печати, или те что обязательно нужно установить в корректные значения перед началом печати.

Начнем с вкладки Print settings. Первая категория - Layers and Perimeters:
Layers and Perimeters
Здесь нас больше всего интересует первый параметр - высота слоя (Layer height).
Большая высота слоя - слева, меньшая - справа
Интуитивно кажется что чем меньше высота слоя - тем лучше, но в реальности не все так однозначно. Рассмотрим основные плюсы и минусы меньшей высоты слоя.
Плюсы:

  • Большее разрешение по оси Z (можно передать больше деталей)
  • Более гладкая вертикальная поверхность (на вид и на ощупь)
  • Лучшее сцепление между слоями
Минусы:
  • Увеличивается время печати
  • Из-за большей степени "расплющивания" пластика модель становится более подвержена заворачивающимся углам (подробнее об этом ниже)
Вот как разная высота слоя влияет на внешний вид модели (нижняя модель напечатана с высотой 0,25мм, верхняя - 0,18мм):

Разная высота слоя
Разница, конечно, видна, но нельзя сказать что она существенна. Поэтому не всегда стоит стремиться к минимальной высоте слоя - для некоторых моделей разницу разглядеть не удастся, а вот печататься модель будет существенно дольше.Обычно оптимальные значения для высоты слоя находятся в диапазоне (0.5 - 0.8) * диаметр сопла. Выход из этого диапазона чреват сильным ухудшением качества.

В группах Vertical shells и Horizontal shells задается число слоев для вертикальных и горизонтальных оболочек. Обычно значений указанных на скриншоте вполне достаточно.
Структура печатаемого объекта
Перейдем к разделу Infill:
Infill
Два основных параметра здесь это Fill density и Fill pattern. Fill density (плотность заполнения), указывает насколько плотно должны заполняться внутренние полости объектов (значение в диапазоне 0 - 1). Большие значения соответствуют более плотному заполнению, меньшие - менее. Fill pattern (шаблон заполнения) задает способ заполнения внутренних полостей (я предпочитаю прямолинейное заполнение).

Следующий раздел - Speed:
Speed
Основной принцип здесь: чем большую скорость удастся установить - тем лучше. Помимо очевидного выигрыша в скорости печати, увеличение скорости может немного улучшить качество, за счет того что горячее сопло быстрее покидает область на которую только что был выдавлен пластик, и дает ему возможность быстрее застыть. Основные ограничивающие факторы для повышения скорости это мощность двигателей (могут начать пропускать шаги, особенно двигатель экструдера), жесткость конструкции (может возникнуть сильная вибрация), и мощность нагревательного элемента хотэнда (может не справляться с большим объемом пластика). Можно начать со значений по умолчанию, а если возникнут какие-то проблемы - попробовать немного уменьшить скорость.

Skirt and brim:
Skirt and brim
Окантовка (skirt) представляет собой замкнутую полосу опоясывающую все печатаемые объекты. Она всегда печатается до начала печати самих объектов, и основное её предназначение - прочистка сопла. Параметр Loops определяет ширину окантовки в слоях (3-4 будет достаточно), а Skirt height - высоту (обычно один слой). Параметр Distance from object задает минимальное расстояние до объектов. С помощью параметра Minimum extrusion length можно задать минимальное количество пластика, которое необходимо использовать на окантовку, прежде чем начинать печатать объекты (соответственно ширина окантовки может быть увеличена).

Поля (brim) представляют собой поля высотой в один слой, которые будут добавлены вокруг объекта. Параметр Brim width задает ширину полей. Поля удобно использовать при печати высоких объектов с небольшим основанием - они хорошо удерживают объект и не дают ему завалиться при перемещениях стола по оси Y.
Остальные разделы на вкладке Print Settings нас пока не интересуют (можно смело оставлять значения по умолчанию). Единственное на что следует обратить внимание это параметр Threads в разделе Advanced - он задает число потоков в которых будет выполняться слайсинг. Я бы советовал установить его на единицу больше числа ядер вашего процессора.

Рассмотрим раздел Filament вкладки Filament Settings:
Filament settings
Параметр Diameter задает диаметр прутка, причем здесь должен быть указан фактический диаметр. То есть если при измерении диаметр прутка оказался равным 2.8мм вместо 3мм, то нужно указывать именно 2.8мм, поскольку на основании этого значения рассчитывается объем выдавливаемого пластика.

Extrusion multiplier это синтетический параметр, который нужен как раз для коррекции объема выдавливаемого пластика (при его значении больше единицы - пластика будет выдавливаться больше, меньше единицы - меньше). При правильной калибровке других параметров (подача прутка, диаметр прутка) использовать его нет необходимости.

Параметры в группе Temperature задают температуру хотэнда и стола для первого и остальных слоев. На скриншоте выше температуры указаны для PLA.

В разделе Cooling настраивается охлаждение, пока там можно оставить настройки по умолчанию.

Последняя вкладка с настройками - Printer Settings. В разделе General нужно установить размер стола для печати (Bed size), его центр (Print center) и базовое смещение по оси Z (Z offset). Последний параметр определяет расстояние между соплом и столом в домашнем (Z = 0) положении. Также нужно убедиться что параметр G-code flavor установлен в RepRap (Marlin/Sprinter/Repetier).
Printer Settings - General
Раздел Custom G-code позволяет задать свой G-code который будет выполняться перед началом печати, после окончания, и на каждом слое. Пока там можно оставить значения по умолчанию.

И последний раздел - настройки для нашего единственного экструдера, Extruder 1:
Extruder 1 settings
Первое что нужно установить это диаметр сопла (Nozzle diameter).

Группы Position и Retraction when tool is disabled нас не интересуют, т.к. относятся к принтерам с несколькими экструдерами.

Группа Retraction включает настройки втягивания пластика при переносе сопла между разными участками модели:

Втягивание пластика (retraction)
Втягивание пластика необходимо для предотвращения вытекания пластика в процессе переноса сопла. Помимо просто втягивания, можно также поднимать экструдер вверх (параметр Lift Z), но на RepRap Prusa Mendel пользоваться этой возможностью не стоит, поскольку конструкция червячной передачи оси Z слишком медленная для таких маневров.

Основной параметр втягивания это Length - то есть на сколько миллиметров втягивать пруток назад. Чем он меньше - тем лучше. Настраивать его лучше экспериментально, уменьшая его до тех пор, пока при переносе сопла не начнут появляться тонкие нити протекшего пластика, а затем немного увеличить (до их исчезновения).

Этих настроек слайсера должно быть достаточно для начала печати.

Первая печать

Теперь все готово для печати первого объекта. Но не стоит начинать с чего-нибудь типа бюста магистра Йоды. В качестве первого объекта для печати я бы рекомендовал вот этот. Он представляет собой полый параллелепипед со стенками толщиной в один слой. Этот "кубик" очень быстро печатается, на него уходит совсем чуть-чуть материала, а главное - на нем хорошо видны все проблемы принтера и калибровки.

Первый объект для калибровки

Затем для проверки качества заполнения можно напечатать вот этот объект, представляющий собой обычный параллелепипед.

Продолжить калибровку можно на этом объекте. На нем присутствуют отверстия различной формы, и свесы (overhang) под разными углами.
Объект для калибровки с отверстиями и свесами
Ну и для тестирования печати "мостов" можно воспользоваться вот этим объектом. Он поможет оценить насколько длинные мосты сможет печатать принтер.
Объект для проверки качества "мостов"
Итак, если с печатью этих объектов у вас проблем не возникло - значит ваш принтер готов к работе, и можно напечатать что-нибудь интересное. Что делать если возникли проблемы? К сожалению, ответить на такой вопрос в рамках этой статьи не получится, т.к. диагностика проблем печати это очень обширная тема. Но я, все же, постараюсь дать пару советов по наиболее распространенным проблемам:

  • Первый слой не пристает к столу и тянется за соплом. В этом случае нужно проверить зазор между соплом и столом (возможно он слишком велик), температуру стола и хотэнда (возможно слишком низкие). Иногда помогает протирание стола спиртом для удаления жира и пыли.
  • Слои "сваливаются" с предыдущего слоя. Возможно слишком высокая температура хотэнда, высокая скорость печати, слишком большая высота слоя.
  • В стенках объекта виднеются щели или мелкие отверстия, или заполнение не "держится" за стенки объекта. Скорее всего выдавливается недостаточный объем пластика (можно проверить увеличив Extrusion multiplier).
  • На стенках виден регулярный "волнообразный" узор. Может быть вызвано недостаточным натяжением ремней или некачественными шпульками осей X и Y.

Более подробно о диагностике и устранении проблем печати можно почитать здесь.

Советы по улучшению качества

Направлений для улучшения качества печати много, некоторые из них: модернизация конструкции принтера, использование более качественного прутка, более тонкая настройка параметров слайсера и прошивки (или использование более продвинутого слайсера). Но это все, по большей части, индивидуально, зависит от принтера, а результат часто оказывается плохо воспроизводим. Здесь я хотел бы рассказать о том что лично мне помогло существенно повысить качество печати, а именно - использование охлаждения. Также я постараюсь дать несколько простых советов по созданию моделей, следование которым поможет скрыть основные проблемы FDM технологии и RepRap Prusa Mendel в частности.

Охлаждение

Сначала немного о том для чего нужно охлаждение и что, собственно, необходимо охлаждать. При печати на FDM принтере материал после выдавливания из сопла еще какое-то время остается мягким (поскольку он еще не успел остыть и отвердеть), а следовательно - подвержен деформациям. Деформации эти бывают разные, например провисание "мостов", "заваливание" свесов (либо их закручивание), заворачивающиеся углы (curling corners). Чем дольше пластик остается мягким - тем сильнее модель успевает деформироваться.

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

Конечно, не стоит ожидать что установка вентилятора сразу значительно повысит качество печати. Если модель хорошо подходит для FDM печати и не содержит "проблемных мест" (о которых речь пойдет в следующем разделе) - разница "с охлаждением" и "без" будет минимальна. С другой стороны, для плохо подходящих моделей (которых, к сожалению, большинство) разница будет существенна.

Например, эти два объекта были напечатаны с идентичными параметрами, только левый печатался без использования охлаждения, а правый - с охлаждением:
Левый - без охлаждения. Правый - с охлаждением.
А вот аналогичный пример для углового свеса:
Левый - без охлаждения. Правый - с охлаждением.
В общем, можно сказать что использование охлаждения всегда положительно влияет на качество объекта (по крайней мере, пока я не встречал противоположных результатов).

Что бы установить охлаждение на RepRap Prusa Mendel сперва нужно выбрать вентилятор. Главные критерии выбора тут это максимальная производительность, минимальная вибрация и шум, подходящий размер (4x4 или 5x5 сантиметров), питание 12В.

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

Подключается вентилятор в разъем для второго хотэнда - D9. Включение, выключение и управление скоростью вращения вентилятор настраивается в Slic3r на вкладке Filement Settings в разделе Cooling. У меня вентилятор включен всегда на максимальной скорости, кроме печати первого слоя (для моего вентилятора эти настройки оказались оптимальны).

Я использую два вентилятора для охлаждения. Основной: 4x4см, установленный на каретку с помощью такого крепления, подключен в разъем D9:
Основной вентилятор

Основной вентилятор
Второй вентилятор (5x5см) установлен на таком шарнирном креплении. Его я использую в случаях когда необходимо дополнительное охлаждение модели с другой стороны (т.е. с противоположной той на которой установлен основной вентилятор). Включается, при необходимости, ручным подключением к блоку питания.
Дополнительный вентилятор

Общие советы

У FDM технологии печати (и у конструкции RepRap Prusa Mendel в частности) есть несколько слабых мест, которые проявляются при печати некоторых частей объекта, таких как мосты, свесы, острые углы и т.п. Поэтому если при создании модели объекта и подготовки её для печати придерживаться некоторых правил (преимущественно направленных на минимизацию количества проблемных мест) - это может положительно сказаться на качестве напечатанного объекта. Ниже речь пойдет об этих "проблемных местах", а также о том как их избегать.

Избегайте мостов и свесов
Наверное, самый очевидный пункт. Мосты и свесы не имеют под собой опоры, поэтому деформируются под действием силы тяжести. Чем больше расстояние между "опорами" моста - тем сильнее он деформируется. Для свесов деформация увеличивается при уменьшении угла между свесом и плоскостью стола для печати.

Избегайте острых углов
Этот пункт, пожалуй, нуждается в небольшом дополнительном пояснении. Что бы понять суть проблемы взглянем на картинку:
Изгиб материала
При печати углов и дуг выдавленная нить пластикового прутка изгибается. В месте изгиба внутренняя сторона "нити" проходит по меньшему радиусу (R1) чем внешняя (R2). Таким образом, внутренняя сторона сжимается, а внешняя - растягивается. Проблема возникает потому, что, на самом деле, выдавленный пластик имеет форму скорее расплющенной ленты, а не нити. Внешняя, растягиваемая сторона ленты стремится сжаться и начинает деформироваться. Эти деформации известны как заворачивающиеся углы (curling corners):
Заворачивающийся угол
Больше всего эта проблема проявляется в местах где угол находится на свесе. У внешнего края ленты нет контакта с предыдущем слоем, и он может свободно подниматься вверх вызывая тем самым сворачивание:
Заворачивание угла на свесе
Очевидно, что сила с которой пластиковая лента стремится деформироваться зависит от того, насколько сильно отличаются радиусы R1 и R2. Причем важна относительная разница, а не абсолютная (абсолютная всегда будет равна ширине пластиковой ленты). Если считать что ширина пластиковой ленты одинакова, то сила деформации зависит от радиуса кривизны: чем он больше - тем для нас лучше.
Слева - меньший радиус кривизны. Справа - больший.
Как следствие этого, при создании моделей следует избегать частей с маленьким радиусом кривизны, а именно: острых углов, маленьких отверстий в объекте или щелей. Все "острые" части следует делать максимально гладкими и скругленными.

Используйте поля (brim) при печати высоких объектов
При печати высоких объектов с небольшим основанием в конце печати они нередко сильно раскачиваются из-за движений стола. Как следствие этого, качество печати падает к по мере увеличения высоты, а в худшем случае объект может просто упасть. К счастью, это легко предотвратить, всего-лишь добавив поля (brim) перед печатью объекта.

Печатайте высокие объекты с уменьшенной скоростью заполнения (infill)
Опять же, ввиду того что в конструкции принтера стол для печати является подвижным - при печати высоких (особенно тонких) объектов возникающая вибрация при заполнении полостей может отрицательно сказаться на качестве печати. Уменьшение скорости печати заполнения (infill) может помочь справиться с этой проблемой, хотя и ценой увеличения времени печати.

Печатайте тонкие объекты в нескольких экземплярах
Здесь под тонкими объектами я понимаю объекты, у которых площадь занимаемая ими в плоскости X-Y достаточно маленькая (меньше 1см^2), типичный пример - болт. При печати таких объектов возникает следующая проблема: поскольку площадь каждого слоя маленькая - он печатается очень быстро, и следующий слой начинает печататься до того как предыдущий успевает хотя бы немного остыть и отвердеть, а это приводит к деформации и снижению качества печати. У Slic3r есть свой вариант решения этой проблемы - принудительное увеличение времени печати (путем снижения скорости печати) для таких объектов (настройки находятся в разделе Cooling). К сожалению, это плохое решение, т.к. при увеличенном времени печати горячее сопло находится в длительном контакте с верхним слоем, и тоже не дает материалу остыть. Очень простое и действенное решение заключается в том что бы печатать такие объекты в сразу нескольких экземплярах, размещая их на некотором расстоянии друг от друга. Тогда слои будут печататься по очереди, и пока один объект печатается - остальные остывают:
Печать двух болтов одновременно

Программы для создания моделей

Последнее о чем я вкратце хотел бы рассказать это программы для создания 3D моделей подходящих для 3D печати. Весьма исчерпывающий список можно найти здесь, а я лишь расскажу о тех которыми пользовался сам. Как и обычно, основными критериями были бесплатность и кроссплатформенность (или, хотя бы, доступность для Linux).

Blender

Blender - очень мощная программа для 3D моделирования и анимации. Больше всего подходит для создания "органических" моделек, вроде моделей архитектурных сооружений или персонажей. К сожалению, для нормальной работы в Blender требуются задатки художника, а ввиду отсутствия у меня последних - я им почти не пользуюсь.
Blender

FreeCAD

FreeCAD - открытая САПР, поэтому больше всего подходит для проектирования всевозможных деталек. Для создания моделей во FreeCAD используется параметрическое моделирование, то есть всю модель легко и быстро изменять управляя несколькими параметрами. Кроме того, у FreeCAD, на мой взгляд, замечательный и интуитивно понятный интерфейс для создания моделей и чертежей (скетчей). Единственная проблема - очень низкая стабильность работы. Из-за постоянных вылетов, зависаний и глюков работать во FreeCAD практически невозможно (и речь даже не о ночных сборках, а о релизных версиях).
FreeCAD

OpenSCAD

OpenSCAD - программа для неинтерактивного 3D моделирования. В отличие от других 3D редакторов, где создание модели производится "мышкой" - здесь модель генерируется по её текстовому описанию на очень простом языке. Вкратце суть можно описать так: есть несколько базовых объектов (сфера, параллелепипед, цилиндр, полигон и т.п.) и базовых операций над объектами (объединение, пересечение, разность, выдавливание и т.п.). Собственно OpenSCAD модель это код, описывающий какую последовательность операций над какими объектами нужно выполнить что бы получить желаемую модель.

Поначалу может показаться что это слишком сложно и ненаглядно, но, на самом деле, процесс этот намного проще и удобнее чем кажется. Такой подход позволяет очень просто создавать параметрические модели. Кроме того, текст OpenSCAD модели представляет собой полное её описание (как исходный текст программы), что повышает возможность повторного использования как самой модели, так и её составных частей. В последнее время я делаю все модели исключительно в OpenSCAD. Конечно, есть и минусы - неудобный интерфейс, отсутствие подсветки синтаксиса, сложность "отладки модели" (понять почему модель не хочет собираться в STL), но плюсы, пожалуй, их перевешивают.
OpenSCAD

Netfabb

Netfabb Basic не является полноценной программой для 3D моделирования, а служит, в основном, для работы с STL файлами. Однако она содержит очень полезную возможность исправления моделей, что очень помогает при восстановлении моделей которые Slic3r отказывается обрабатывать.
Netfabb Basic

Заключение

На этом все. Понимаю, что многое осталось за кадром, но этот маленький цикл статей изначально ни в коей мере не претендовал на полноту.

Если какой-то момент оказался совсем непонятен, или нуждается в дополнительном освещении - пишите об этом в комментариях, постараюсь написать более детально.

Надеюсь эти статьи окажутся кому-нибудь полезными.

257 комментариев:

1 – 200 из 257   Новые›   Самые новые»
Алексей Харченко комментирует...

Спасибо огромное автору за то, что таки дописал до конца! А я боялся, что не увижу финала (давно не было постов). Каркас давно собран, а сегодня как раз получу посылку со всем остальным (электроника, направляющие, моторы, экструдер) и - за работу!

Alik комментирует...

К сожалению, в последнее время на тему 3D печати катастрофически не хватает времени, поэтому такая задержка.
Удачи Вам со сборкой принтера.

Vitalii Peterbok комментирует...

Хорошая статья!

Руководство по Slic3r на русском можно почитать здесь http://lugrap.blogspot.com/2013/09/rus-manual-slic3r.html

Serg Kafizov комментирует...

Спасибо за статью. После Вашей статьи понял суть 3d технологии печати. Буду собирать, главное появилось понятие.

Шамиль Сагитович комментирует...

Спасибо за статью, очень интересно

Анонимный комментирует...

спасибо!

Анонимный комментирует...

Спасибо огромное за статью. Возникла проблема когда печатает второй-третий слой, деталь изгибает и она отлепляеться от стола.

Alik комментирует...

Каким пластиком печатаете (ABS/PLA)? Какая поверхность стола? Стол с подогревом?

Анонимный комментирует...

ABS пластиком, стол с подогревом (варьировал температурой) обклеен полиамидной пленкой. Со слайсером менял шаг, непомогает. более-менее не изгебает при отключеном внешнем вентиляторе.

Alik комментирует...

Я перед печатью протираю поверхность стола денатуратом что бы избавиться от следов жира и пыли - помогает улучшить адгезию. Некоторые для этих целей пользуются лаком для волос, но я не пробовал, так что насчет эффективности этого средства сказать ничего не могу.
Еще можно попробовать увеличить температуру стола, увеличить температуру сопла при печати первого слоя, уменшить скорость печати первого слоя, уменьшить зазор между соплом и стлом (всё это есть в настройках слайсера).
Вентилятор обычно отключен при печати нескольких первых слоев (тоже настраивается в слайсере).
Вообще, ABS более склонен к таким деформациям чем PLA.

Анонимный комментирует...

В маем арсенале нашлось : растворитель 649 , ацетон, TOP.10 обезжириватель, этиловый спирт 96%.(пробывал все комбинации. адгезия увеличилась, прилипает хорошо, но все ровно изгибает начинает с третьего потом поднимает следующие, что в свою очередь уменьшает площадь контакта со столом) добавил дополнительные поля по 0.5 мм. увеличивал, уменьшал шаг. может дело в пластике?

Alik комментирует...

Как я писал, любой ABS имеет тенденцию к деформациям. Есть ли разница в степени деформации между более качественным и менее качественным ABS я не знаю. Вот здесь есть несколько советов как с этим бороться http://www.makerbot.com/blog/2011/06/23/12-ways-to-fight-warping-and-curling/

Анонимный комментирует...

Большое спасибо за помощь. ваша статья бесподобна )))

семен головнин комментирует...

Здрвствуйте. вы несталкивались с проблемой- слайсер криво режит- сама геометрию отверстий меняет, несуществующие элименты приклеивает. а в просмотрщике всё нормально.

Alik комментирует...

Нет, не сталкивался. Попробуйте обновить слайсер до последнией версии. Возможно дело в модели, можно открыть её в Netfabb и проверить там на наличие проблем.

семен головнин комментирует...

дорогой он ваш Netfabb мне его многие советуют я модель заново перерисовал, помогло. я в компасе привык рисовать, может там есть подвох какойто )

Alik комментирует...

Netfabb basic доступен бесплатно.

анастас карагадаев комментирует...

Попробуйте изпользовать другую программу. У меня с компасом были такие же проблемы.

Анонимный комментирует...

огромное спасибо!!! очень полезные статьи, прочитал с большим интересом. Жду свои комплектующие для сборки. буду заглядывать сюда при сборке

Alik комментирует...

Спасибо на добром слове :)

Анонимный комментирует...

Спасибо большое.

alex kostyuhin комментирует...

Подскажите, прошился Марлином для Пруши 3. Моторы Х и У хорошо работают, а Z шумят но не крутят .. .иногда поддергивает. Где в прошивке искать эту проблему?

Alik комментирует...

alex kostyuhin, возможно проблема с подключением мотора, либо им не хватает тока, либо проблема с драйвером для оси Z или его калибровкой.
Попробуйте подключать моторы Z по подному а не оба сразу. Еще можно попробовать подключить их к драйверу осей X или Y. Я не думаю что проблема с конфигурацией Марлина.

Анонимный комментирует...

Приветствую, подскажите:
1. насколько важно место установки принтера?
2. Влияет ли вибрация на качество печати?
3. Можно ли печатать в шкафу?
4. Насколько сильно воняет пластик?
P.S. Замечательные статьи, спасибо!

Alik комментирует...

1. Подальше от детей, домашних животных и сквозняков.
2. Влияет, особенно при печати высоких объектов.
3. С соблюдением техники безопасности - можно.
4. PLA не воняет вообще, и при этом вполне безопасен (конечно, если продавец не использовал какую-нибудь токсичную краску). ABS воняет и очень токсичен для человека - печатать можно или в очень хорошо проветриваемом помещении, или в помещении где нет людей.

Анонимный комментирует...

Как я понял вы печатаете в основном PLA как у него с прочностью и долговечностью?

Alik комментирует...

Да, печатаю только PLA. По прочности примерно такой же как и ABS. По долговечности, наверное, хуже. Ну и в отличие от ABS он легкоплавкий, при 60-70 градусах размягчается.

3Dplast. Net комментирует...

http://3Dplast.net (facebook.com/3dplastua) - украинский производитель расходных материалов для 3D принтеров. Промышленное производство.

Почему с ними стоит работать:

1. Качество пластика без компромиссов: http://3dplast.net/articles/raznitsa1
2. При регистрации в магазине и подписке на новости - сразу скидка минус 60 грн.
3. В магазине доступны к заказу только те позиции, которые реально есть на складе.
4. Лучшие в Украине условия оптовым покупателям.
5. Нашли цены лучше чем у них, торгуйтесь, сделают еще дешевле!
6. Оплата LiqPay, карточка ПБ, наличными курьеру.
7. Доставка по Украине в течении суток, бесплатно от 2 кг.
8. Лабораториям, студиям 3D печати есть интересные предложения о сотрудничестве.

Регистрируйтесь в магазине, делайте заказы, зарабатывайте скидки и бонусы!

Денис комментирует...

Здравствуйте,спасибо большое за статью!!! Прошу помочь советом. Приобрёл 3d принтер prusa mendel, и столкнулся с такой проблемой:после нажатия кнопки пуск в программе repetier принтер начинает печатать, но автоматически проволоку через экструдер не подает, двигатель подачи проволоки работает только в ручном режиме управления. Вопрос: как сделать так, чтобы проволока подавалась автоматически (может настройка какая для этого есть)???? Моя эл почта 1m1d@bk.ru Спасибо заранее за ответ. Денис

Alik комментирует...

Денис, я правильно понимаю что каретка двигается, но пруток вообще не подается в экструдер? Посмотрите на сгенерированный G-code, какая там команда используется для подачи прутка?

Денис комментирует...

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

Alik комментирует...

Подача прутка осуществляется той же командой которая используется для перемещения каретки, с той лишь разницей что в качестве оси указывается 'E'. Например команда 'G1 E10' должна подать 10мм прутка. Попробуйте послать эту команду руками.
Подробнее можно почитать здесь: http://reprap.org/wiki/G-code

Анонимный комментирует...

Спасибо очень полезная статья. Подскажите: калебрую оси, x в нуле, у в нуле, а z поднял наверх. Выключил и теперь х работает, у работает, а z идет только вверх, а вниз не идет. Как объяснить принтеру что z не в нуле.

Анонимный комментирует...

Ваши статьи очень помогли! Спасибо огромное.

Анонимный комментирует...

Если подскажете, как, постараюсь отблагодарить материально:)

Илья Столяров комментирует...

А помогли вот с этим: http://www.youtube.com/playlist?list=PLc4XhpVochLa1zX4OTD23HSb-yGIkegBq Без Вас было бы, я подозреваю, намного дольше и проблематичней. Искренне спасибо!!

Alik комментирует...

Рад что статьи приносят пользу.

Насчет калибровки оси Z я не совсем понял вопрос. Проблема в том, что ось перемещается в противоположном направлении? Или что не срабатывает концевик? Описанные симптомы похожи на то что либо перемещение оси Z либо значение концевика инвертированы.

Alex efremov комментирует...

на счет Z проверяйте скорость G91 потом g1 z20 f180 или z-20 (f это скорость мм/мин) в прошивки мм/с, то есть при F180 в #define DEFAULT_MAX_FEEDRATE {500, 500, 3, 45} будет 3

Анонимный комментирует...

Здраствуйте, возникла проблема: при подключении мотора и подаче команд, он начинает свистеть, шуметь или вибрировать, иногда немного проворачивается. Драйвер - Stepstick

Alik комментирует...

Я знаю три возможные причины. Первая - неправильное подключение мотора. Проверить просто - достаточно перебрать все комбинации (попарно менять местами провода идущие от мотора к драйверу), если не поможет - значит дело не в этом. Вторая - мотору недостаточно тока (как регулировать ток я описал в этой статье). И третья - брак Stepstick. У меня со Stepstick была именно такая проблема - мотор сильно вибрировал, чип грелся. Бракованными оказались, если не ошибаюсь, два драйвера из пяти. Попробуйте использовать другой драйвер.

Анонимный комментирует...

Как соединять если в даташите к мотору a+ a- b+ b-, а на ramps 1a 1b 2a 2b ?

Alik комментирует...

Я же писал об этом в предыдущей статье: померять сопротивление между обмтоками, или методом перебора. Я бы предположил что a+ a- это одна обмотка, а b+ b- другая.

Роберт Андреев комментирует...

Собираю принтер сам. Купил Rams1.4+ Arduino Mega 2560 Прошивку поставил Marlin v1.3.
Стал тестировать в программе Pronterface. Ось Z - все нормально. А оси X и Y работают вместе. Нажимаю на ось Х - работают два мотора X и Y. Нажимаю на ось Y - тоже работают два мотора. Прозвонил платы (Rams и Mega) - коротыша нет. В прошивке тоже указаны разные пины:
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38

#define Y_STEP_PIN 60
#define Y_DIR_PIN 61
#define Y_ENABLE_PIN 56

На сайте http://reprap.org/wiki/File:RAMPS14_test.zip#file есть программа тестирования Rams1.4 - при запуске вращаются все моторы. Я отключал программно (закрывал коментами) оси X и Y по очереди- все в порядке. Значит не в платах дело. Либо марлин, либо Pronterface. Куда копать не подскажете??? Заранее спасибо. А статья очень интересная и для моего самодельного принтера очень нужная, тк с англ - туго:))))

Alik комментирует...

Да, похоже на проблему с прошивкой. Пробовали посылать принтеру команды на перемещение по одной из осей, например "G1 X10" и "G1 Y10"? Моторы включаются и выключаются одновременно?

Роберт Андреев комментирует...

Я и не знал что так можно:)) Это в Pronterface посылать? Сегодня попробую вечером. Спасибо

Alik комментирует...

Да, из Pronterface можно посылать руками любые команды G-code, и смотреть как принтер на них реагирует.

Роберт Андреев комментирует...

Разобрался - закоментировал строку #define COREXY и все стало двигаться по отдельности:)) Буду изучать дальше. Спасибо.

Анонимный комментирует...

Здраствуйте, начал тестировать принтер в pronterface. Когда отдаю команду G1 X1 Каретка сдвигается не на 1 мм, а примерно на 10 см. Значения кол. шагов на мм. - 80 В чем может быть проблема?

Alik комментирует...

А вы не забыли перейти в режим относительного позиционирования, с помощью G91? И какая версия Марлина?

Анонимный комментирует...

Оказалось забыл перемычки поставить на рампсе под драйверами, и был включен полный шаг

Анонимный комментирует...

Здравствуйте, нужна помощь с прошивкой, в файле pins.h не могу найти эту строчку #if MOTHERBOARD == 33 || MOTHERBOARD == 34, заранее спасибо.

Анонимный комментирует...

В pronterface при нажатии кнопки домой картетка доходит до концевика, затем немного отъезжает назад на пару мм, возвращается на прежнее место и замирает. Тоесть, как бы, отскакивает, хотя ничего не касается. Такая проблема на оси X и Y, Z еще не пробовал. Так и должно быть? Или это неисправность?

Alik комментирует...

Эта статья была написана больше года назад, Marlin с тех пор существенно обновили.
Насколько я понял, сперва следует заглянуть в файл boards.h, где перечислены поддерживаемые платы, найти там вашу плату, и поправить в Configuration.h значение переменной MOTHERBOARD, например так:
#define MOTHERBOARD BOARD_RAMPS_13_EFB

В файле Pins.h назначения пинов для RAMPS находятся внутри секции #if IS_RAMPS .... . Только теперь все немного сложнее, по сравнению с предыдущей версией (слишком много они туда засунули директив условной компиляции, для разных конфигураций RAMPS).

Иван Якк комментирует...

Господа включайте обдув на все 100 % без авто регулировки.

Анонимный комментирует...

Подскажите . двигатели вибрируют, не крутятся. драйвер 8825 , напряжение на
драйвере 0.7 вольт,выставлял разный шаг и менял значения,ничего не помогает. ардуино 2560 + плата 1.4 + нема 17 + др8825 . где искать причину ?
спасибо

Alik комментирует...

Я не знаю что это за драйвер - 8825. Но по симптомам скорее всего либо неправильно подключен мотор, либо ему не хватает тока.

Анонимный комментирует...

Обмотки двигателя прозванивал. драйвер 8825 1\32шага. ток добавлял-больше вибрация. где-то читал,что нужно поднять время шага.подскажите где эта настройка в мерлине версия 1.0.0 спасибо

Alik комментирует...

Я не знаю что вы понимаете под "временем шага". Настройки для двигателей находятся в файле Configuration_adv.h, непример MAX_STEP_FREQUENCY. Но я бы сначала проверил все наиболее вероятные проблемы, а именно - неправильное подключение, неправильная конфигурация (например неправильно выставлен микрошаг), нехватка тока, бракованный драйвер.
Еще обратите внимание, что установка режима микрошага отличается от A4988. В стандартном Pololu A4988 микрошагу 1/16 соответствуют уровни high, high, high, в то время как у 8825 это low, low, high.

Анонимный комментирует...

подскажите пожалуйста программу для управления 3D принтером. программа которя шла спринтером иногда глючит

Alik комментирует...

Вы вообще статью читали? В ней как раз и написано какое ПО используется на каждом этапе 3D печати.

Анонимный комментирует...

Уважаемый, Alik, прошу совета. прошу совета. Собрал кит Huxley, на Melzi 1284, прошита продавцом. Отказывается работать X-мотор. Команды идут, мотор молчит, питание не подается. Мотор исправен - проверил на Y-разъеме. Полагаю, что интегрированный драйвер для Х накрылся. Никаких опасных манипуляций с материнкой не делал, визуально все ок. Может быть проблема еще в каком месте?

Alik комментирует...

Думаю, скорее всего проблема в драйвере. Если он съемный, можно попробовать поменять его местами с заведомо исправным (например, с оси Y). Но, наверное, лучше связаться с продавцом.

Анонимный комментирует...

В том и дело что драйверы в Melzi - интегрированные...Продавец подтверждает мои опасения по поводу драйвера.

Alik комментирует...

Ну тогда только отправить продавцу на замену

Анонимный комментирует...

Да тут инфы больше чем надо. Автору респект. Спасибо за статейки. ;)

Анонимный комментирует...

Не работает мотор. Температура работает, концевики реагируют, даже хотенд нагреваться, а с мотором траблы. Подключение все перепробовал, никак не реагирует, даже не вибрирует. Подключил даже драйвер запасной (думал может эти перегорели). В чем может быть еще проблема?
И ещё вопрос. Я проводки замкнул между собой по парно (синий+жёлтый и красный+зеленый) и начал крутить вал на моторе и он двигается рывками, что это значит, что синий и жёлтый это одна катушка, а красный и зеленый вторая?

Анонимный комментирует...

Скажите, никто не сталкивался с такой проблемой: при подключении принтера к компу не распознается девайс. Ставлю дрова от ардуино - не распознает. Тыкаю руками нужные дрова - ошибка: невозможно запустить устройство(код 10). Ставлю дрова FTDI - воткнулось, но как ftdi порт. Назначаю com, стартую прошивку - ошибка: ser_open: can't open device, access denied. Пробовал менять com на всех номерах та же фигня, только номер порта меняется.

Alik комментирует...

По поводу неработающих моторов - попробуйте загрузить тестовую прошивку отсюда (http://reprap.org/wiki/RAMPS_1.4#Firmware_and_Pin_Assignments), раздел "RAMPS 1.4 test code", она просто крутит моторами. Еще стоит перепроверить правильность установки микрошагового режима джамперами. Насчет замыкания проводов - если замкнуть все 4 провода попарно одновременно, то в любом случае мотор будет крутить тяжело, т.к. образуется или одна замкнутая цепь, или две. Чтобы выяснить какие провода соответствуют катушке - замыкайте только по два провода одновременно.

По поводу проблемы с Ардуиной - о какой ОС речь? Ардуина оригинальная или китайский клон?

Анонимный комментирует...

Тестовую прошивку загрузил, моторы не пашут, хотя все остальное вроде реагирует. Джампера все три установил. Я выяснил что Синий+Жёлтый и Красный+Зелёный, значит С+Ж всовывать в 1а и 1б например, а К+З в 2. Хотя я все варианты перебрал нечего не реагирует(

Alik комментирует...

RAMPS запитан правильно? Ток для двигателей отрегулировали?
Чтобы проверить работоспособность самих моторов можно просто два мотора соединить друг с другом (катушками), тогда если руками вращать вал одного - вал второго тоже будет поворачиваться.

Анонимный комментирует...

Да вроде правильно, хотенд нагревается. Резистор крутил, уже все варианты перепробовал. Подсоединил два мотора, крутятся оба.

Alik комментирует...

А когда резистор крутили ток мультиметром проверяли? Возможно проблма где-то в цепи питания RAMPS.

Анонимный комментирует...

У меня нет мультиметра. А как проверить ток в цепи питания РАМС?

Alik комментирует...

Проверить напряжение Vref и VCC на драйвере, но для этого нужен мультиметр.

Анонимный комментирует...

Алик спасибо за помощь, проблема оказалось в том что я подключил 5В и 12В к РАМСУ, а надо было оба 12В подключать) Терь моторчики работают

Анонимный комментирует...

Проблемы с прошивкой: win 7 pro x64, вероятно китайский клон, написано ардуино мега 2560, по внешнему виду 1 в 1, брал комплектом с рампс с алиэкспресса

Alik комментирует...

Эту инструкцию пробовали - http://arduino.cc/en/guide/windows#toc4 ? Больше не знаю что посоветовать

Анонимный комментирует...

Благодарю автора! очень полезная статья!

Анонимный комментирует...

день добрый, появилась проблема с осью Z. Если не давать задание на печать то паркуется нормально http://www.youtube.com/watch?v=NvIAIGZE7YM&feature=youtu.be , но если дать задание на печать то после прогрева оси начинают парковатся то с Z происходит такая проблема на видео http://www.youtube.com/watch?v=vWzQ9yRZPXo&feature=youtu.be . Программа Repetier-Host v1.0.6 Насколько я понимаю проблема где то в настройках слайсера или я ошибаюсь ?

Анонимный комментирует...

Подскажите пожалуйста как принтер определяет при старте где именно находится начало (X0,Y0), и не едет там правее или левее. Он должен автоматом занимать это положение перед началом печати каждый раз. Должно быть не просто указание начала координат в задании, а привязка этих координат к столу каким то образом. Может я невнимательно читал, но не нашел ответа и в других авторов тоже.

Alik комментирует...

Первому анониму: звук очень похож на то что каретка во что-то упирается. Раз такая проблема происходит только при печати, значит, скорее всего, после парковки приходят еще какие-то команды на перемещение (например для корректировки z-offset), стоит посмотреть G-code. Еще это может быть вызвано расширением металлов при нагревании, именно поэтому стоит калибровать с прогретым столом и экструдером. Проверьте внимательно что экструдер и каретка ни во что не упираются.

Второму анониму: принтер не знает где находится коретка, поэтому перед началом печати он "паркует" её в точку (0, 0, 0). Для этого каретка перемещается по каждой оси в сторону уменьшения координат до тех пор пока не сработают концевики. Точка срабатывания всех концевиков считается началом координат, и от неё уже ведется отсчет.

Анонимный комментирует...

Проблему нашел в G-коде было "25 G1 Z5 F5000" стало "25 G1 Z0 F150"

А вот как теперь это прописать что б не вносить каждый раз ?

Alik комментирует...

Не знаю, я Repetier-Host не пользовался. Покопайтесь в настройках, думаю там должно быть что-то вроде стартового G-code.

Анонимный комментирует...

Тогда точка срабатывания трех других концевиков считается окончанием координат, и расстояние между ними есть длины осей Х,Y.Z- я правильно понял?

Alik комментирует...

Обычно обходятся тремя концевиками, для определения точки (0, 0, 0), а размеры рабочей облати просто указываются в параметрах прошивки. Расстояние отсчитывается от начальной точки по количеству шагов двигателя.

Анонимный комментирует...

#define X_MAX_POS 205
#define X_MIN_POS 0
#define Y_MAX_POS 205
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0
Если это оно то тут вроде как в мм а не в шагах?

Alik комментирует...

Для перевода в шаги используется массив DEFAULT_AXIS_STEPS_PER_UNIT. Это же все описано в статье.

yvd230670 комментирует...

А концевики служат только для определения начала координат или функцию аварийного останова тоже выполняют?

Анонимный комментирует...

Регулировка тока драйвера оси Z будет отличаться от X и Y—там же 2 движка? На 2 множить это все не надо? Vref=ток*0,4*2 ?

Анонимный комментирует...

Если попались дрова без пятачка REF то по схеме можно сделать замер прямо с колеса переменника (PIN 17) и GND ?

yvd230670 комментирует...

Подскажите еще 1) если на радиаторах которые идут в комплекте с драйверами есть двухсторонний скотч – просто им клеить или недоверять ему, отодрать и на терм оклей?
2) У меня концевики имеют в комплекте уже подключенный 3 пиновый провод. Там на платке напаяны резаки , кондер и светодиод. Выдернуть средний или так тремя и подключать ведь на рампсе 3 пина для каждого концевика?
3) Контакты концевиков должны быть OPEN( это КЗ или ХХ)?
4) Измерять Vref при подключенных двигателях или без них?
5) зачем на рампсе указана полярность для хотенда и подогреваемого стола?(D8.D9.D10)?

Alik комментирует...

Концевики служат только для определения достижения кареткой начальной точки, они не играют роль отбойников.

На этот вопрос я уже неоднократно отвечал - двум моторам подключенным параллельно нужно в два раза больше тока. Как определить ток по напряжению на Vref в статье описано.

Да, можно мерять с колеса переменного резистора, я именно так и делал.

1. Я бы скотчу не доверял, субъективно мне кажется теплопроводный клей надежнее.
2. Странный вопрос, зачем что-то выдергивать? Посмотрите схему RAMPS, у каждого концевика 3 пина: +, - и сигнал.
3. Это настраивается в прошивке. Если мне не изменяет память, по умолчанию OPEN - ХХ, TRIGGERED - КЗ.
4. Не имеет значения.
5. Просто нанесена маркировка, для тех кто будет туда подключать, например, вентилятор.

yvd230670 комментирует...

Благодарю за ответы, есть правда еще парочка:
1) В прошивке правильней будет выбрать источник питания АТХ если используется обычный БП на 12В?
2)В прошивке помимо мин. и мах. температуры для стола есть и ПИД настройки-- закоментировать их за небольшой надобностью ?
3) Еще не могу догнать что значить эти 2 строки:
а) PREVENT_ LENGTHY_EXTRUDE
б) DISABLE_MAX_ENDSTOPS

Alik комментирует...

1. Насколько я понимаю, это только для управления включением блока питания из Marlin. Если БП включен всегда - не имеет значения.
2. Если не определен PIDTEMPBED то они и так не используются
3. a. Не знаю, в версии Marlin 1.0.2 я её не нашел
б. Об этом написано в статье.

yvd230670 комментирует...

Подскажите пожалуйста исходя из Вашего опыта такую вещь: при посыле команды G91 а потом G1 X..., Z....., E......, двигатель вращается и в право и в лево. Y же молчит как рыба. Чтобы сократить вероятность ошибки двигатель взял один и драйвер один. Потом просто драйвера повставлял в другие гнезда и еще раз поперепроверял. Неужели РАМПС бракованный попался? Кстати как Вы в статье и писали один драйвер из четырех брачной!

Alik комментирует...

Как я уже кому-то советовал в комментариях - попробуйте загрузить тестовую прошивку отсюда (http://reprap.org/wiki/RAMPS_1.4#RAMPS_1.4_test_code), раздел "RAMPS 1.4 test code", она просто крутит моторами.

yvd230670 комментирует...

Спасибо огромное, попробую

yvd230670 комментирует...

Помогла прозвонка а в последующем протирка спиртом контактов. Не звонился контакт А2 Ардуины на Y-EN драйвера. Ножка рампса была в чем то типа лака. Но самое главное спасибо за (http://reprap.org/wiki/RAMPS_1.4#RAMPS_1.4_test_code), это существенно сузило круг поиска до железа.

Анонимный комментирует...

Подскажите по драйверам: при регулировке Vref для оси Z выходит несколько нестыковок
1)Vref регулируется плавно ровно до 1,23В, потом резкий скачек до 2,57 и дальше до 3,13. Причем я их все местами менял, но результат одинаковый. А у меня два движка с током 1,8А. Получается надо 1,8А*0,4=0,72В и умножаем на два двигателя = 1,44В. Но 1,44 нельзя поймать, я оставил 1,23В.
2) Теперь при первой команде G90, потом G1 Z10 ,бешенный визг одного из моторов так как один движек пробуксовывает либо не крутится а другой как ракета. Если бы шпильки подсоединил принтер уже был бы сломан. Но при подаче 2-й и последующих команд все нормально словно ничего небыло. Отключаем потом снова включаем опять первая команда визг одного и тормозняк другого двигателя, а со 2-й команды крути сколько хочеш будет все нормально. Интересно является ли 2-е следствием первого? Толи движки немного разные и надо подбирать им подходящие пары?
3) Как правильно дать команду на движение в обратную сторону? Я даю допустим G90, потом G1 X40- едет на 4см вправо. Потом тоже самое только Х-10, или -Х10 а оно едет в обратную сторону на 30мм, типа как 40-10=30. Как правильно давать команду на движение обратно?

Alik комментирует...

1. Максимальный ток для A4988 - 2A, что соответствует Vref=0.8V. Двум моторам этого должно быть достаточно, т.к. нагрузку они делят пополам и она для оси Z не большая.
2. Не сталкивался с таким. Попробуйте тестовую прошивку загрузить, которую я советовал в комменатриях выше. Драйвера у вас случайно не StepStick?
3. G90 это режим абсолютного позиционирования, т.е. X10 означает "переместиться по оси X к точке 10". После этой команды принтер будет считать что по оси X каретка находится в точке 10, поэтому последующие команды G1 X10 будут игнорироваться. Используйте G91 если нужно относительное позиционирование.

Анонимный комментирует...

Спасибо попробую

Nikita Goncharov комментирует...

Большое спасибо автору за данную статью! Вот собственно темой дипломной работы стала проектирование и разработка рабочей конструкции 3д принтера.
Можно ли вопрос, а нужно ли будет исправлять прошивку, если у принтера по оси Z движется стол, а не головка ?

Alik комментирует...

Думаю нет, это чисто механика, для прошивки большого значения не имеет.

Анонимный комментирует...

Замучился уже с этой осью Z. Все 5 движков меняя местами ставил в пары, все драйвера местами поменял 100 раз, ток крутил и по науке и без от мало до велика а движки только воют как бешенные и то по очереди крутятся, то временами чуть прокрутятся и опять воют, то один стоит а другой маслает как ракета. Нету у них согласованности как-то. Движки NEMA17HS8401 c током 1,8А. По формуле если умножить на 0,4 получится 0,72В. На все оси поставил 0,72В а на Z 0.8В так как больше 2А нельзя для дров. Но даже когда в прошлый раз ставил 1,23В всеровно один крутил другой выл. Там в коментах к статье по электронике hatuul писал про последовательное включение, но связи с ним нет. Я последовательно включал как рекомендуют на сайте ПОЛОЛУ(Ваша ссылка) включать 4 обмотки униполярника но МАРЛИН ругается. Не встречали где нибудь инфу про последовательное включение?

Alik комментирует...

Вот первая попавшаяся ссылка по запросу "reprap motor serial wiring" - http://forums.reprap.org/file.php?151,file=5418,filename=zseries.png

Анонимный комментирует...

За ссылку большое спасибо, по ней проверил свое подключение-все ОК. И весь ужас ситуации в том что намеренно опускаю Vref до 0,4В, или ставлю 0,6; 0,8; 1; 1,23 движкам все равно(один крутит - другой воет). Заметил правда такой факт что если сначала дать оси Z совсем маленькую дистанцию, например 0,1 на панели управления, то они как бы дернутся чуть и при этом синхронизируются. После этого крутятся вместе как близнецы уже на любые расстояния при любой Vref. А если сразу нажать HOME или Z50 либо Z100 будут либо оба либо один вибрировать и визжать.

Alik комментирует...

Попробуйте спросить на форуме RepRap, возможно там кто-то сталкивался с подобным.

Анонимный комментирует...

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

Анонимный комментирует...

Проблемка нарисовалась с регулировкой подачи прутка.
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,600} - последнюю цифру менял от 760 до 100, а вместо 30 мм как вылазило 35 мм прутка так и вылазит. Первые три позиции при регулировке X,Y,Z давали результат, а эта не здаётся. Может там надо еще чего подкоректировать?

Alik комментирует...

Да нет, этого должно быть достаточно. Уверены что загружаете перекомпилированную прошивку? Еще можно попробовать послать принтеру команду M83 Set extruder to relative mode.

yvd230670 комментирует...

Интересно а есть разница какой стороной нагревательный стол цеплять? На нем с одной стороны типа дорожек токопроводящих просматривается, а на другой светодиоды есть. Я думаю что светодиодами как раз наверх, они судя по всему для сигнализации о том что стол греется. И еще, термистор просто снизу каптоном приклеить? Там по ходу еще посредине отверстие есть но оно больше чем термистор раза в два.

Анонимный комментирует...

Купил вентиляторы 3-х пиновые комповые на 12В, а как включать недопру. Походу им управляющий сигнал необходим, или как то можно их просто к 12В приделать?

Alik комментирует...

yvd230670, посмотрите здесь http://reprap.org/wiki/PCB_Heatbed может найдете свой стол. Но я тоже склоняюсь к тому что светодиодами вверх. А термистор я клеил снизу теплопроводным клеем.

Анонимному: я об этом писал в статье. Можно подключить или напрямую к блоку питания, или к RAMPSу, например к выходу D9.

yvd230670 комментирует...

Заметил еще один малоприятный момент - небольшой радиус, то есть не идеальная ровность самой платы стола. Получается что по средине не будет приставать где то на пол миллиметра. Это критично? Поверх стола использовать стекло? Каленку так запроста не найдеш нужного размера, обычное кто то пробовал?

Alik комментирует...

Многие используют зеркало, т.к. в отличие от обычного стекла у него более ровная поверхность.

Анонимный комментирует...

Приветствую! Вопрос по вентилятору который охлаждает радиатор хотенда. Он должен постоянно работать с момента включения питания принтера или включаться после того как наберется температура на хотенде? Регулировку ПИД проводить когда этот вентилятор работает или когда нет? На плате РАМПС есть выход 12В, туда можно вентилятор 40х40 включить?

Alik комментирует...

Все зависит от хотенда. Но я думаю что его лучше всегда держать включенным, и ПИД регулировать, соответственно, с включенным вентилятором. О каком выходе 12В речь?

Анонимный комментирует...

На плате рампса рядом с предохранителями и диодом Д2, т.к. в разъем D9 надо включать вентилятор программно управляемый для охлаждения деталей.

Alik комментирует...

Да, можно подключить к 12V AUX.

yvd230670 комментирует...

Подскажите как правильно действовать. Экструдер работал с небольшими отклонениями по графику, после ПИД регулировки по команде М303 стал работать вроде как по линии ( там на 1 градус выше иногда пробегает пунктирная линия, я полагаю что это дискретная поддержка заданной температуры). При этом полевики почти холодные. Температура экструдера набирается быстро, где то пару минут и все. А вот стол догревать до заветных 110 градусов не рискнул т.к. полевик греется здорово, а температура растет с нормальноЙ скоростью до 50 градусов с последующим сильным замедлением. В общем догревал я ее до 80 градусов минут 5 и выключил. Думаю лучше переспросить чем что нибудь спалить. Стол МК2В, плата расширения РАМПС 1,4. Спасибо.

Alik комментирует...

Транзистор греется пропорционально проходящему через него току. Нагреть стол существенно тяжелее чем экструдер, поэтому полевик греется сильнее.

По времени, в среднем стол до 100 градусов прогревается около 10 минут. Из-за теплопотерь с ростом температуры скорость прогревания падает, поэтому иногда полезно накрыть стол чем-нибудь не легковоспламеняющимся пока он греется. Я для этого использовал кусок толстого гофрокартона.

Анонимный комментирует...

Может подскажите из-за чего может сбиваться калибровка стола?

Анонимный комментирует...

Подскажите пожалуйста почему после прогрева до нужных температур, принтер через минуту после того как начал печать останавливается и выдает такое сообщение: [ERROR] Error:Thermal Runaway, system stopped! Heater_ID: 9

Alik комментирует...

Первому анониму: даже не знаю что сказать. Недостаточно надежно закреплен стол?

Второму анониму: почитайте в файле Configuration.h описание работы Thermal Runaway Protection (просто поищите эти слова, там описание в комментарии). И там же посмотрите его конфигурацию. По вашему описанию похоже на то что при начале печати температура хотэнда падает на достаточно длительный период для того чтобы ошибочно сработала защита Thermal Runaway Protection.

Анонимный комментирует...

Огромное спасибо за помощь. Как раз защита Thermal Runaway Protection и была расскоментированая и останавливала процесс. На достаточно длительный период падает немного ниже температура стола из за вентилятора хотенда.

Анонимный комментирует...

Не могу никак разобраться с Slic3r в той его части что какую бы версию не скачать открываются какие то черно-белые упрощенные настройки. Такие настройки как показаны у Вас в статье идут например в комплекте с РЕПЕТИРОМ и они там отдельно обозначаются как версия № с припиской or higher. Подскажите пожалуйста где надо что переключить чтобы вид окон стал иметь расширенные настройки как у Вас в статье?

Володя Кипятков комментирует...

Столкнулся с проблемой. 3 месяца мой принтер печатал нормально, теперь все детали выходят кривыми - слои смещаются относительно друг друга. Сначала смещение пошло только по оси Х. Я пробовал менять местами драйвера, регулировать ток - не помогло. Потом поменял местами двигатели - проблемный поставил на ось Z, а двигатель оси Z перенес на Х. Снова не помогло. Потом внезапно получилась одна хорошая деталь, а после неё почему-то поехала уже ось Y. И последняя деталь получилась совсем кривобокой - слои смещаются относительно друг друга и по оси Х, и по оси Y., причем смещение происходит в сторону начала координат. Подскажите пожалуйста, в чем может быть причина? Не могут же у меня быть неисправны все двигатели? А драйверы вроде исправны, пробовал уже заменить все старые на новые. И ведь хорошие детали иногда ещё получаются... Что это может быть?

Alik комментирует...

Анониму: Выберите в меню File->Preferences, и в появившемся диалоге установите Mode в Expert.

Володе: Судя по вашему описанию, похоже что проблема в пропуске шагов двигателями. Тут две основные причины - недостаток тока (неправильная регулировка драйверов, слабый блок питания) и механическая проблема (недостаток смазки подшипников скольжения, не параллельные направляющие осей X и Y и т.п.).

Анонимный комментирует...

Здраствуйте. Пытаюсь увеличить скорость печати, но ничего не меняется. Slis3r/ pronterface

Анонимный комментирует...

Еще один вопрос по поводу скоростей. Определил скорость печати для получения наилучшего качества, и в настройках SLIC3r её не меняю. Меняю только заполнение.... и т.д. И вдруг принтер словно взбесился где то на втором или на третьем слое погнал что шатл, и так до конца печати. Деталь естественно оказалась испорченной. На что следует обратить внимание? Где в G-коде смотреть чтобы предупреждать такие вещи?

Анонимный комментирует...

Подскажите как питается графический смарт контролер если ардуина питается по USB. Спрашиваю потому что один стабилизатор на ардуине уже сгорел, и перепаяв его я также отключил диод Д1 что бы не использовать этот стабилизатор для запитки самой ардуины и 5В разных устройств. Теперь получается что этот дисплей тоже 5В будет брать от USB?

Alik комментирует...

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

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

leon Pilayev комментирует...

Володя проверь оконечники по Х и У . Была такая проблема -смещение слоев при печати - заменил провода и проблема решилась ..)

Анонимный комментирует...

Подскажите такой момент! Давая команду абсолютного позиционирования G90 X.... принтер передвигает голову точно. Печатаю тестовую деталь 20х20х10 а она 22,7х22,7х10. Настройки слайсера сто раз перепроверил. На что обратить внимание? Как это дело проверить в самом Г-коде?

Анонимный комментирует...

Здравствуйте. Такая вот проблема : в Repetiere гружу модель-пропускаю через слайсер -вручную через программу отключаю нагрев стола и хотенда-запускаю печать. Итого просто происходит сброс осей в домашние позиции ,головка поднимается по оси Z и останавливается.Дальше тишина. В проге пишет : ETA 32 MIN.Но дальше никаких действий. Что это может быть?

Alik комментирует...

Первому анониму: очень странно, если перемещения каретки откалиброваны - то деталь должна получаться нужных размеров. Попробуйте напечатать какую-нибудь калибровочну модель, например параллелепипед 5x1x0.5 см. Судя по тому что одно из измерений (10) у вас напечаталось верно, я бы сказал что проблема или в модели, или в калибровке осей X,Y.

Второму анониму: я не знаю что вы имеете ввиду под "отключаю нагрев стола и хотенда". Возможно принтер застреёт на команде ожидания нагрева хотенда.

Анонимный комментирует...

Не могу найти что надо переключить в SLIC3r или в PRONTERFACE чтобы деталь получалась не зеркально. И там и там картинка правильного вида, а печатает левую сторону детали справа а правую слева.

Alik комментирует...

Похоже, что у вас одна из горизонтальных осей (X или Y) установлена неправильно, поэтому принты получаются зеркальными. Посмотрите этот топик, может окажется полезным - http://forums.reprap.org/read.php?1,148577

Анонимный комментирует...

Ось Y не в ту сторону ездила. Все решилось, спасибо.

Volkov Dmitriy комментирует...

Здравствуйте. Сделал свой нагревательный стол. Как отключить нагревательный стол который прописан в прошивке? ( прошивка марлин)

Alik комментирует...

Дмитрий, не совсем понимаю что вы имеете ввиду под "отключить нагревательный стол который прописан в прошивке". Вы можете, например, в файле Configuration.h установить TEMP_SENSOR_BED в 0 (Not used) и в настройках вашего слайсера отключить использование heated bed (если стол который вы сделали управляется не из Marlin). Marlin ведь просто исполняет G-code, так что если ему не будут приходить команды относящиеся к столу (вроде M140) - то он с ним делать ничего не будет.

Анонимный комментирует...

Добрый день. Печатаю белым PLA, на хотэнде с боков собирается коричневая жидкость и капает на модель. Что может быть китайский, некачественный PLA?

Alik комментирует...

Честно говоря, не слышал о такой проблеме. Но судя по описанию скорее всего вы правы - наверное, некачественный PLA.

Дмитрий Федотов комментирует...

Здравствуйте! Я собрал немного переделанный ультимайкер, использовал РАМС 1.4. Прошивку взял отсюда https://github.com/Ultimaker/Marlin.
В основном все работает, но не могу запустить вентилятор обдува модели.
Плату прописал 34. На 8 пин у меня автоохлаждение головки экструдера.
А на 9 должно быть охлаждение модели. Но вот например из репитерхоста ее включение не включает вентилятор. Я даже напряжение мерял на клеммах. Подскажите где искать?

Alik комментирует...

Посмотрите в файле pins.h, правильно ли устанавливается значение FAN_PIN. Насколько я помню, для платы 34 оно будет -1.

Анонимный комментирует...

Добрый вечер!Подскажите, в чем может быть проблема: принтер во время печати останавливается и сбрасывает параметры печати на экране-выводит главное меню.Похоже на перезагрузку,ранее такого не было.Печать с карты памяти.Провода проверял-нигде ничего не отходит+вырубает его даже при простое когда идет набор температуры.

Alik комментирует...

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

Анонимный комментирует...

Спасибо за ответ!По перезагрузке:принтер prusa i3 hephestos. В том то и вопрос,ранее ведь такого не было,с чего вдруг напряжению проседать?Износ оборудования?На софт думал,наверное стоит попробовать перепрошить.

Alik комментирует...

Да, если есть возможность - попробуйте перепрошить на более новую версию. И напряжение я бы тоже померял.

Maxik комментирует...

добрый всем день! подскажите, куда смотреть? на марлине настроил оси, концевики. все ездит, куда надо. НО! печатает зеркально...где прохват?

Alik комментирует...

Скорее всего неправильно установили одну из осей. Можно это исправить переставив концевик и переподключив мотор проблемной оси так чтобы он вращался в другую сторону (в случае если у вас ось физически установлена неправильно), либо можно поменять значение константы INVERT_X_DIR/INVERT_Y_DIR на противоположное.

Анонимный комментирует...

Добрый день! У меня проблема с нагревом. Если вручную дать команду (М303) нагрев есть, а по умолчанию (М104). Как исправить ?

Alik комментирует...

Посмотрите значения этих кодов - http://reprap.org/wiki/G-code. M303 это настройка коэффициентов ПИД-регулятора, а M104 как раз и есть установка температуры экструдера.

Unknown комментирует...

Экструдер перемещается как положено , как бы печатает весь цикл только без нагрева. И стол так же не греется.Помогите если можете.

Alik комментирует...

А если послать принтеру М104 что происходит? Температура меняется? Воможно датчик температуры не исправен? Какая прошивка принтера?

Анонимный комментирует...

На М104 не реагирует. Тип устройства Mendel
Прошивка_0.91
Адрес прошивки https://github.com/repetier/Repetier-Firmware/

Alik комментирует...

К сожалению, с Repetier-Firmware дела не имел, так что вряд ли смогу помочь. Но если вы говорите что при М303 есть нагрев а при М104 - нет, значит скорее всего-дело в конфигурации прошивки (может быть коэффициенты ПИД регулятора настроены неправильно). Я бы поспрашивал на форумах по Repetier-Firmware, или на форуме RepRap.

Игорь Д комментирует...

Спасибо. А самому можно прошивку поменять?

Alik комментирует...

Зависит от железа, в большинстве случаев - можно. Но я бы все-таки разобрался где проблема у Repetier-Firmware.

Игорь Д комментирует...

Будем пробовать, но знаний ноль, к сожалению.

Анонимный комментирует...

Большое спасибо за статью!
Помимо того, что она очень информативна, она еще и нормальным русским языком написана, что в последнее время в рунете редкость :)

Анонимный комментирует...

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

Alik комментирует...

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

Unknown комментирует...

Подскажите пожалуйста как привязать лсд экран и сд карту, а то ардуино прошивается а экран просто светится синим и никаких надписей

Alik комментирует...

Если у вас RAMPS и Marlin то вам сюда http://reprap.org/wiki/RAMPS_LCD#Adjust_Marlin_configuration

Анонимный комментирует...

Подскажите куда можно отдать на прошивку принтер если( Repetier-Firmware.) Тип устройства Mendel
Прошивка_0.91
К знающим людям. Спасибо!

Alik комментирует...

Честно говоря, не знаю. Попробуйте поспрашивать на форуме RepRap в user group для вашей страны: http://forums.reprap.org/index.php?19

руслан коханов комментирует...

Здравствуйте, нужно ли ставить джамперы на шд экструдера?

руслан коханов комментирует...

Начал печатать деталь, принтер печатает подложку ровно и красиво, первый слой печати нормально а все остальное пеньками какими-то

Анонимный комментирует...

Добрый день! Подскажите, какую прошивку по Вашему мнению, лучше или целесообразней ставить.

Alik комментирует...

Руслан, можете выложить фотографии? По вашему описанию похоже на проблем укоторая возникает из-за пропуска шагов.

Анониму: я бы ставил Marlin

руслан коханов комментирует...

Я уже решил эту проблему просто увеличив подачу прутка, теперь ломаю голову как окалибровать стол нормально, а то все время 3 угла нормально а 4 сильно низко, выраыниваю его - остальные сбываются, наверное что-то с основанием, а как добавить сюда фото?

Alik комментирует...

Фото можно залить на любой хостинг а здесь разместить ссылку. Но раз вы проблему уже решили то необходимости в фото нет.

Стол удобно калибровать просунув лист бумаги между столом и соплом. Нужно добиться того чтобы бумага "вытаскивалась" с одинаковым усилием в разных точках стола. Про выравнивание стола еще можно почитать здесь http://reprap.org/wiki/Leveling_the_Print_Bed

руслан коханов комментирует...

Добрый вечер . Мо я проблема вернуласьhttps://yadi.sk/i/E0hr9FOojvkPw
https://yadi.sk/i/91k74YCrjvkCY

руслан коханов комментирует...

Gcode делал с помощью cura, может надо было ставить 100% заполнение? Пропуска шагов вроде нет, что делать не знаю

Alik комментирует...

В качестве слайсера я всегда использовал Slic3r, так что насчет Cura ничего не знаю.

Может быть недостаточно пластика? Пробовали поэкспериментировать с extrusion multiplier (наверняка что-то подобное есть и в Cura)?

руслан коханов комментирует...

Хорошо попробую потом отпишусь

руслан коханов комментирует...

Все, я понял у меня prusa i3 с редукторной подачей прутка, а настройки в прошивке для прямой подачи. Не подскажете какие настройки и как поменять под редуктор?

руслан коханов комментирует...

Я имею в виду на какие параметры под редуктор

Alik комментирует...

Если используете Marlin то в этой статье всё описано. Нужно поменять последний элемент массива DEFAULT_AXIS_STEPS_PER_UNIT

руслан коханов комментирует...

Спасибо за помощь, буду пробовать. Спасибо за блог очень много подсказок и полезной информации

руслан коханов комментирует...

Вот настроил принтер начал более менее печать только не знаю что делать дальше с качеством вот фотоhttps://yadi.sk/i/diUiNt8sjxLdW

Zver комментирует...

Alik, продолжите свой писать блог. Интересно нам

Alik комментирует...

Руслан, на качество влияет много параметров: температура, скорость, высота слоя, качество пластика и т.п. Тяжело сходу угадать вашу проблему, нужно эксперементировать, менять разные параметры и смотреть как это отражается на качестве печати. Судя по послденему фото у вас слишком перегрет пластик. Но ,опять же, это только мои догадки.

Анонимный комментирует...

Добрый день! Выставляю параметр заполнения 100%, но заполнение идет всё равно с пробелами. Помогите.

Анонимный комментирует...

Подскажите как настроить принтер под прут 2мм, если по умолчанию 1.75мм. Как сам экструдер настроить? Прижимной ролик как отрегулировать? Спасибо !!!

Alik комментирует...

Первому анониму: экспериментируйте с параметрами слайсера. Возможно следует увеличить объем пластика.

Второму анониму: не факт что у вас получится использовать 2мм пруток на 1.75мм экструдере. Всё, конечно, зависит от модели экструдера, но обычно диаметр отверстия в хотенде подгоняют под диаметр прутка, т.е. 2мм пруток туда может просто не влезть.

Анонимный комментирует...

Здравствуйте! Подскажите почему деталь после слайсинга соответствует оригиналу, но печатает вытянутую по оси Z ?

Анонимный комментирует...

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

Alik комментирует...

Насчет оси Z - вам нужно отрегулировать третий элемент массива DEFAULT_AXIS_STEPS_PER_UNIT. Как посчитать правильное значение написано тут http://reprap.org/wiki/Prusa_Build_Manual#Firmware_Calibration

Второму анониму: неправильно подключен стол/температурный датчик? Не сконфигурирована прошивка для работы со столом? В сгенерированном G-code нет команд на нагрев стола?

Анонимный комментирует...

Во всех настройках стол отключен!

Alik комментирует...

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

> При отправке на печать, прогревается только экструдер
Так в чем заключается проблема? В том что он прогревается, а не должен? Или недостаточно прогревается? Или прогревается _только_ экструдер а стол нет?

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

руслан коханов комментирует...

Здравствуйте, у меня возникли у проблемы, 1я- шд оси z начали пропускать шаги во время печати, при том что регулятор на драйвере установлен на максимум, если управлять с жк экрана только осью z то в все нормально, но как дело доходит до печати когда задействованы все три оси одновременно z пропускает шаги и 2я проблема - принтер начинает печатать деталь ровно а потом начинает косить в левую сторону, вот фото https://yadi.sk/i/H8ts6o20k6VmV

Alik комментирует...

Руслан, я думаю наклон модели вызван тоже пропуском шагов. Так что скорее всего основная причина тут одна - у двигателей не хватает мощности и они начинают пропускать шаги.
Причин для этого может быть несколько. Либо просто стоят маломощные двигатели (с низким моментом удержания). Либо им не хватает тока (например маломощный источник питания, или слишком прожерливые двигатели, или драйвер не дает достаточно тока). Либо проблема чисто механическая (не параллельные направляющие, не хватает смазки).

руслан коханов комментирует...

Спасибо, решил проблему поставив автомобильное реле на нагревательный стол(питание непосредственно с блока питания) и все наладилось

Анонимный комментирует...

Подскажите пожалуйста , как подключить принтер к ноутбуку, если в нем нет СОМ4 ?

Alik комментирует...

COM4 это просто номер виртуального COM-порта, а сам принтер подключается через USB. Если у вас не появляется виртуальный COM порт при подключении принтера, убедитесь что установили драйвера для него (в случае с RAMPS - драйвера Ардуино).

Анонимный комментирует...

( RepetierHost ) Установили на ноутбук. В настройках есть СОМ3. Ноутбук не видит принтер. Это из за драйверов как Вы писали?

Alik комментирует...

В каких настройках есть COM3? И как ноутбук должен "видеть" принтер? Если вы используете Pronterface то достаточно просто выбрать номер ком порта и нажать Connect.

Анонимный комментирует...

Добрый день! Подскажите пожалуйста, какие настройки стоят у Вас, для того что бы не было нитей при переходах. Не получается подобрать параметры, всё равно видна "паутина".

«Самые старые ‹Старые   1 – 200 из 257   Новые› Самые новые»

Отправить комментарий