Как настроить стол 3d принтера. Калибровка стола. Ограничение максимальной скорости перемещения по осям

я упоминал, что установка на экструдер драйвера, дающего микрошаг 1/32 - вполне себе полезная вещь (хоть польза и выявляется прибором, который не имеет отметки о поверке в отделе метрологии, иными словами ногтём!). Однако, после этого может возникнуть желание заменить все драйверы на аналогичные. На многих форумах я читал, что это делает звук двигателей более музыкальным. Хочется сказать: Всё хорошо в меру. Не то, чтобы это было совсем плохо, но давайте я опишу аргументы, которые появились после копания в недрах прошивки Marlin, ведь именно она используется в качестве базовой во многих 3D-принтерах.

С чего начать? Сначала я расскажу про ускорения. Они нам пригодятся, а в текст их никуда не вставить, везде повествование будет разорвано. Так что пусть это будет как введение. Если головку рвануть резко, то будет масса проблем. Начиная от уже набивших оскомину в прошлых статьях НЧ-шумов печати, и заканчивая тем, что двигатель может при резком старте пропустить несколько шагов. Во избежание всего этого, головку разгоняют плавно. Ну, и тормозят - тоже, там это уже нужно именно для уменьшения шумов. Прошивка Marlin работает в режиме трапециевидного графика скорости.

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

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


Только надо выключить надоедливые сообщения о температуре. Вот эту галочку снимаем:



Возвращаемся на вкладку Communication, теперь надписи не мельтешат (старые, правда, остались на месте, но это не беда). Говорим принтеру M503 и нажимаем SEND



Принтер вывел много чего, причём на человеческом языке. Нас интересует вот эта строчка:

RECEIVED: echo:Steps per unit:

Steps per unit:

RECEIVED: echo: M92 X100.00 Y100.00 Z1600.00 E100.00

M92 X100.00 Y100.00 Z1600.00 E100.00

Получается, что у моего по осям X и Y на один миллиметр приходится 100 шагов. Ну, если точнее, то микрошагов.

Чудненько. Что это значит? А значит это, что для перемещения головки на 1 миллиметр, двигатели X и Y должны сделать по 100 шагов. Вообще, там выдалось намного больше информации, почитайте, это очень забавная вещь. Параметры вполне можно поменять и сохранить в EEPROM, но об этом как-нибудь в другой раз.

Пусть головка идёт со скоростью 100 мм/с. Тогда она должна за секунду делать 100*100 =10.000 шагов. То есть, двигатель работает с частотой 10 килогерц. 150 мм/c - 15 килогерц и т.п. Цифры могут быть чуть иными, они зависят от того, какие зубчатые колёса стоят на двигателях.

Из текста прошивки я узнал, что в теории бывают принтеры MZ3D-256A и MZ3D-256B, у них число шагов другое. Но давайте рассмотрим в качестве другого примера не гипотетические A и B, а реальный принтер MakerGear M2, у него прописано 88.8 шагов на миллиметр, тогда 100 мм/с будет 8.88 килогерц, 150 мм/c - примерно 13 килогерц. В общем, спросите у своего принтера, он Вам ответит, какие лично у него параметры.

Собственно, если я увеличу микрошаг двигателя с 16 до 32 шагов, то у моего принтера частоты возрастут до 20 и 30 килогерц, а у M2 (с его 88.8) - до 17 и 26 килогерц соответственно. Много это или мало? Обратимся к прошивке.

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

unsigned short calc_timer(unsigned short step_rate) {

Как видим, в неё как раз передаётся частота работы двигателя. И что мы наблюдаем на входе? Уууу! Сначала нам встречается безобидное

if(step_rate > MAX_STEP_FREQUENCY) step_rate = MAX_STEP_FREQUENCY;

Ну, тут проверяется, что частота не выше 40 КГц (для моего принтера в родном варианте это 400 мм/с, но если я сделаю микрошаг 1/32, то всего 200 мм/с). Дальше - больше

if( step_rate > 20000 ) { // If steprate > 20kHz >> step 4 times

Step_rate = (step_rate >> 2)&0x3fff;

Step_loops = 4;

Else if(step_rate > 10000 ) { // If steprate > 10kHz >> step 2 times

Step_rate = (step_rate >> 1)&0x7fff;

Step_loops = 2;

Else {

Step_loops = 1;

Перевожу на русский: Производительности процессора AtMega не хватит для того, чтобы обслуживать прерывание таймера на частоте выше 10 КГц. Поэтому если двигатель работает на скорости до 10 КГц - на одно прерывание будет один шаг. От 10 до 20 ГКц - на одно прерывание будет два шага. И от 20 до 40 КГц - четыре шага.

Собственно, вывод статьи как раз заключается в том, что всё, что ниже 10 КГц (100 мм/с для моего принтера), в прошивке Marlin, работающей на контроллере AtMega (стоящем в Arduino) будет обрабатываться равномерно. Выше - шаги будут неравномерными. Два шага, пауза, снова два шага, снова пауза. Или даже четыре шага, пауза, снова четыре шага, снова пауза.

For(int8_t i=0; i < step_loops; i++) { // Take multiple steps per interrupt (For high speed moves)

If (counter_x > 0) {

#ifdef DUAL_X_CARRIAGE

If (extruder_duplication_enabled){

Else {

If (current_block->active_extruder != 0)

WRITE(X2_STEP_PIN, !INVERT_X_STEP_PIN);

Else

WRITE(X_STEP_PIN, !INVERT_X_STEP_PIN);

#else

WRITE(X_STEP_PIN, !INVERT_X_STEP_PIN);

#endif

Counter_x -= current_block->step_event_count;

Count_position+=count_direction;

delayMicroseconds (2);

// Аналогично для Y, Z и экструдера

В общем, на микрошаге 1/32 двигатели становятся более музыкальными, но работают явно рывками.

Можно ли сделать равномерность? На Arduino - не уверен. Можно перетянуть это всё на ARM, там и сам процессор быстрее, и умножение/деление аппаратно выполняются, поэтому работает быстрее (а попутно можно выкинуть ассемблерные вставки и часть табличных вычислений - это в AVR без них никак, у ARMа уже компилятор преобразует сишный код к приемлемым ассемблерным командам без нашей помощи). А часть Cortexов ещё и плавающую арифметику аппаратно поддерживает (прошивка такими вычислениями просто изобилует). Лично у меня получилось это сделать начерно ровно за неделю, так что всё реально (начисто - ещё пилить и пилить, разумеется). Только не надо думать, что вот сейчас мы переделаем эти сравнения, и всё заработает! Ха! Там проверка на проверке и проверкой погоняет. Скажем, вот концовка той функции calc_timer:

if(timer < 100) { timer = 100; MYSERIAL.print(MSG_STEPPER_TOO_HIGH); MYSERIAL.println(step_rate); }//(20kHz this should never happen)

Return timer;

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

void calculate_trapezoid_for_block(block_t *block, float entry_factor, float exit_factor) {

Unsigned long initial_rate = ceil(block->nominal_rate*entry_factor); // (step/min)

Unsigned long final_rate = ceil(block->nominal_rate*exit_factor); // (step/min)

// Limit minimal step rate (Otherwise the timer will overflow.)

If(initial_rate <120) {

Initial_rate=120;

If(final_rate < 120) {

Final_rate=120;

Правда, здесь идёт минимальная скорость, чтобы 16 битный таймер не переполнился. Тем не менее, это показывает, что проверки могут быть спрятаны где угодно в коде. Не так-то просто обеспечить музыкальность двигателей! Однако, в принципе, всё реально. Но не так, что купили новые драйверы, поправили пару констант и всё. Та музыкальность - красивая, но обманчивая.

Заключение

В статье показано, что не факт, что имеет смысл заменять драйверы ходовых двигателей X и Y на прддерживающие микрошаг 1/32. При использовании Arduino (с контроллером на базе AVR), частота шагов может оказаться не совсем честной, если она превышает 10 килогерц. Проверка честности шагов для процессора ARM пока находится в активной фазе, но уже точно известно, что как минимум, снимать или изменять ограничения в прошивке - точно придётся.

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

Для начала отмечу, что своё мастерство я оттачивал на принтере SmartCore Aluminium , приобретённом .

Установка нагревательной платформы

Нагревательную (или не нагревательную, зависит от принтера) платформу для начала надо выставить по высоте. Для этого существует концевик для оси Z.

Из википедии:

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

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

Для дальнейшей калибровки будем использовать Pronterface из пакета ПО Printrun .

Преимуществом этого пакета вижу наглядное и удобное управление соплом и платформой принтера, но если кому-то удобнее использовать Repsnapper , он тоже вполне подойдёт. Cura не подойдёт для калибровки, за неимением необходимого для этого функционала.

Для продолжения давайте убедимся, что при нажатии на кнопку «Калибровка» («Home», изображен белый домик), платформа поднимается и упирается вплотную, но не пытается двигаться дальше, к соплу.
Так-как на моём принтере прошивка взята с напрямую с репозитория SmartCore Aluminium (пусть и не напрямую с Marlin), сопло выезжает на середину платформы. Если у вас это не так, и сопло остаётся в углу по нулевых координатах - ничего страшного, для дальнейшей калибровки это не принципиально.

Калибровка

Следующие действия надо поочерёдно провести на центре, по углам и по контрольному кругу:

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

Проверка

Для проверки я использую простую модель , нарисованную в FreeCAD и cгенерированный gcode в Cura. Пластик чем точнее диаметром, тем лучше - я беру из-за заявленной точности и разнообразия цветов. Впрочем, для проверки будем использовать натуральный цвет ABS-пластика.
Смысл простой маленькой проверочной модели, наверное, ясен - экономия средств и времени.

Именно в такой последовательности есть смысл проверять. Впрочем, если вы уверены в своей калибровке, то можете сразу начать с шага 2. Ну если у вас уже есть опыт и вы абсолютно уверены в своей калибровке, то можете сразу перейти к шагу 3 - распечатывать 5pad.gcode.
Разница в количестве и расположении изделий.
Я же опишу проверку первого шага, поскольку остальные аналогичны.
Предположим, одна сторона платформы слишком высоко откалибрована. Это очень легко обнаружить в результате:

Вид сверху:


И что важнее сейчас для нас - вид снизу:

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

Рассмотрим обратную ситуацию - если сопло слишком прижато к платформе:



Как видим, здесь тоже не всё гладко, пластик, стремясь заполнить доступное пространство, налазит на соседние линии, а на следующем слое повторно цепляется сопло, вмазывается вновь по доступному пространству. Впрочем, надо отметить, что прилипает в таком случае модель очень хорошо, а дефект калибровки не виден на следующих слоях. Более того, может быть даже не заметен вовсе, если вы выберете в Cura подложку для прилипания модели к столу.

Наконец, желаемый и правильный результат:



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

Нормальная ситуация, если такой результат получен на стекле при температуре 100 градусов. При этом, если стекло обезжирено и ровное, то после окончания калибровки, отлипать в процессе печати не будет. Вы можете попробовать отодрать деталь от нагретой платформы после печати. Пока не остынет до 90-80 градусов, у вас это может, даже и не получится, без повреждения стекла. Также, может быть важным отсутствие сквозняка, который влияет на не менее важную равномерность прогрева поверхности платформы.

Вот общие фото для удобства сравнения:

Вид сверху:

Вид снизу:

Дальнейшая проверка аналогична по своей сути, но распечатать следует 4pad.gcode - охватывает немного большую центральную область. И 5pad.gcode - покажет качество калибровки по углам.

Всем удачной калибровки!

На завершение развлекательное видео, на котором отображено наслаждение результатом:


Как видно, печатаю я не на стекле, но об этом в следующей статье.

Всем привет! С пятницей! Вот и появилось у меня время на вторую часть гайда(делал неделю по вечерам), ссылка на первую будет под катом.
Вы заказали принтер, подождали месяц, притащили в дом десятикилограммовую коробку, разобрались с инструкцией и все собрали правильно. Я в вас верю. Можно ли сразу после подключения и установки программы пускать тестовую модель? Какие существуют нюансы работы с разными видами пластика? Какие типичные проблемы могут возникнуть на первых шагах? Давайте разберемся под катом.
В данной части могут проскакивать фото с модификациями, но их разбирать пока не будем, т.к. любой принтер может печатать из коробки с приемлемым качеством и минимальными затратами времени на его настройку.
Так же гайд получился не таким полным как хотелось из за поломки блока питания. Причина установлена, но пока нет возможности устранить, извиняйте.

Предыдущие работы:

Итак, все собрано, включено в сеть, модель выбрана, мы нажимаем печать и ужасаемся от того что:

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


Рычаг сделали довольно гибким и кнопка может просто не отжаться во время поиска нуля по оси Z если каретка была слишком низко опущена. Так же у меня комплектная Cura по окончании печати парковала каретку в нулях по всем осям, что приводило к аналогичной проблеме во время последующей печати. В Simplify3D можно задать не полную парковку и частично исправить ситуацию.
Но данный изъян конструкции дарит еще одну проблему - плавают данные о нулевой точке по оси Z и можно бесконечно калибровать стол, проклиная всех.
Быстрое решение - подогнуть рычаг от места контакта с кнопкой немного вверх, тем самым сделав конструкцию жестче.


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

С одной «железкой» разобрались, осталась еще одна - сам стол.
Для нормальной работы нужно настроить его высоту так, чтобы в низшей точке сопло касалось рабочей поверхности в любой области без нажима на нее, иначе во время печати можем получить толщину первого слоя от 0мм до 2 см с забитием экструдера, либо построением в воздухе.
Существует несколько подходов к ручной калибровке стола. Кто-то опускает каретку в нулевую точку, выключает двигатели и, перемещаясь по осям X и Y, подкручивает высоту до исчезновения просвета между соплом и столом. Я вижу несколько недостатков данного метода - если изначально перепады большие, можно повредить покрытие при перемещении каретки. Ну и на глаз довольно трудно понять насколько маленький получился зазор и нет ли давления на поверхность.
Второй подход - приподнять сопло на определенное расстояние над нулевой точкой, например на 0,1мм(лист бумаги А4) или на любое другое и использовать, например, щуп для регулировки клапанов в автомобиле.

Ручная калибровка стола

Есть несколько способов выставления нуля по Z:
Через меню принтера возвращаем каретку «домой»

После выключаем двигатели и можем двигать стол по Y, а каретку по X в нужные нам координаты, сопло должно плотно прилегать к поверхности, но не давить на нее.
Для калибровки по листу бумаги через меню поднимаем сопло на 0,1 мм, кладем на стол бумажку и поднимаем края стола таким образом, чтобы по всей поверхности лист проходил слегка касаясь сопла, без особого усилия.

Все то же самое можно сделать с помощью программы. Открываем панель управления, переходим во вкладку Jog Controls и жмем кнопку Home Z


После чего выключаем двигатели кнопкой Disable Motors и двигаем каретку куда надо.


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


Так же есть отдельный мастер калибровки стола, который запускается через меню Tools-Bed Leveling Wizard


По умолчанию после нахождения нулевой точки и нажатия кнопки Next сопло будет перемещаться по углам с отступом** 10 мм от края стола и 0,1 мм от поверхности* . Получается стандартная калибровка в симплифай заточена под лист бумаги, но никто не запрещает менять значения по своему усмотрению. Вроде все удобно, но есть минус для меня, как для владельца A6 - это необходимость крутить болты сверху для регулировки высоты, то есть нельзя подстроить поверхность пока сопло находится в нужной точке, поэтому приходится запускать калибровку несколько раз.


Настройка принтера окончена, можно отложить отвертку и немного отдохнуть. Далее переходим к настройке программы. Использовать буду, как и ранее, Simplify3d.
У разных производителей пластика свойства прутка могут значительно отличаться. Я буду показывать примеры настроек для филамента от FDplast, они же Sopytka. Ссылки в обзоре давать не буду дабы не сочли за рекламу =)

Настройка профиля печати

Если Вы купили программу, при первом запуске выбираем свою модель и настройки подтянутся сами, если же решили сначала попробовать «триальную» версию, то вписываем настройки своего принтера в меню "Tools-Option-Machine "

Выбираем тип и размеры стола.
В строке Flip build table axis ставим галочку на оси Y если по этой оси перемещается стол, иначе построение будет происходить зеркально.

Перетаскиваем модель в рабочую область и дважды нажимаем на текущий процесс, либо кнопку "Edit Process Settings "

Если список процессов пуст, добавляем его вручную

Настройки при этом откроются автоматически.

Extruder



Выбираем порядковый номер(если один, то оставляем Tool 0 )
Nozzle Diameter(Диаметр сопла) - смотрим спецификацию и вносим правильное значение.
Extrusion Multiplier(Коэффициент подачи прутка) - для ABS я ничего не меняю, а вот PLA и SBS опытным путем довел до 0,98. Если оставить единицу, пластик выдавливается с небольшим избытком. Параметр можно подгонять в режиме реального времени во врем печати, позже покажу как.
Extrusion Width(Ширина печати) - рекомендую оставить авто . Сейчас постараюсь объяснить почему.
В прошлый раз у нас возник спор с по поводу данного параметра, о его предназначении, и смысле выставления диаметра сопла.
Даже пришлось подкинуть плюсиков на его комментарии, видимо некоторые пользователи подумали, что он не прав. Но это не совсем так, мы оба в какой-то степени были правы.
Дело в том, что если не выставлять автоматическую подгонку ширины слоя, можно выставить любое его значение и высоту, лишь бы они не противоречили друг другу(множитель ширины 1.2). Диаметр сопла при этом игнорируется.
Но правильно ли это?
В какой-то степени нам дается больше свободы. Вдруг мы изобрели новый пруток, который выдавливается как вода и настолько быстро застывает при охлаждении, что можно положить слой 1x0.5 мм соплом 0,4мм без растекания и зажевывания филамента.
Так же писал, что занижением ширины слоя боролся с незакрытыми крышками модели. И он тоже прав - мы заставляем слайсер думать, что у нас тонкое сопло, вместо 30 линий перекрытия накладывается 40 и «дыра» закрыта, при этом подается меньше пластика и вроде все хорошо, но из за пониженной подачи межслойная адгезия может быть хуже, ведь пятно контакта слоев уменьшается. Так же могут возникать «разрывы» нити на высоких скоростях печати.
Но как же тогда бороться с пропусками? Если процесс печати настроен правильно, нам не нужно обманывать слайсер.
Когда мы выставляем автоширину , симплифай сам выбирает оптимальное значение, исходя из указанного диаметра сопла и изменять этот параметр стоит только в отдельных случаях, например если Вам нужно больше деталей на небольшой модели или получить проход линии в том месте, которое слайсер изначально посчитал слишком тонким(хотя для этого случая есть настройка динамической ширины тонких стенок, помните?), но нужно будет так же регулировать подачу прутка во время печати(Extrusion Multiplier), иначе можно потерять детализацию из за выступающих излишков пластика, либо получить плохую межслойную адгезию.
Надеюсь достаточно подробно раскрыл данные пункты и у нас не будет больше разногласий на этот счет =)

Retraction - во время печати есть моменты, когда соплу необходимо перейти к следующей вершине детали без выдавливания пластика. Двигатель экструдера перестает подавать пруток, но под действием гравитации и остаточного давления, пластик продолжает выдавливаться и мы видим результат в виде паутинок, соединяющих соседние стенки нашей модели.
Тут нам на помощь приходит ретракт. Перед «холостым» перемещением экструдер втягивает определенное количество прутка(Retraction Distance ), в моем случае 4 мм со скоростью(Retraction Speed ) 50 мм/с. После достижения нужной точки, экструдер с той же скоростью и в том же количестве возвращает филамент обратно и печать продолжается.
Опция очень полезная, но настроить идеальную печать довольно проблематично. Во время ретракта пластиковая масса нагревается больше чем обычно, соответственно расширяется и при возврате прутка может выдавить больше материала, чем необходимо. Поэтому в местах начала печати нового слоя могут скапливаться избытки пластика. Параметр Extra Distance призван бороться с таким поведением, тут мы можем указать сколько прутка нужно вернуть после перемещения, вбив положительные или отрицательные значения. Но мало кто им пользуется, т.к. при правильно настроенном ретракте нет нужды в дополнительной подстройке.

Многие наверное замечали небольшие капельки пластика на внешних стенках модели. Вот такие(подкрасил чтобы было лучше видно):


Они появляются из за того, что ретракт очищает только отверстие сопла, но на его рабочей поверхности остается немного материала, который и соскабливается о периметр детали, усугубляет ситуацию неправильно настроенный ретракт. Для исправления ситуации в симплифай есть опция Vertical lift , которая приподнимает сопло на указанное расстояние от модели во время перемещения между вершинами. Время печати несколько увеличивается
Чистку сопла и разглаживание после ретракта(Coast at End , Wipe nozzle ) я не включаю, в комментариях к прошлому посту так же отписывались о возможных проблемах, возникающих при их использовании.

Layer(Слой)



Primary Extruder не трогаем если он у нас один.
Primary Layer Height отвечает за высоту слоя, для сопла 0,4 мм и принтера Anet A6 она может составлять от 0,05 до 0,3 мм. Да, я участвовал в холиварах по поводу соблюдения кратности относительно минимального шага двигателя, но поверьте на слово - вам это не надо, не лезьте в эти дебри)) Ну и по поводу слишком высокого слоя - да, при 0,3 мм могут уже возникнуть проблемы с адгезией, т.к. площадь соприкосновения с нижним будет меньше, чем при высоте 0,2 мм.


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


Сейчас на стоковых настройках сложно это повторить, потому что Outline Overlap(наложение на внутреннюю стенку) имеет значение выше нуля и уменьшено минимальное расстояние заполнения. Но все же по привычке я использую три Top Solid Layers , данная опция отвечает за количество финальных слоев со 100% заполнением(крышки модели). Дополнительно выставлено 3 угла построения, 50 процентов перекрытия и 1 мм минимальной дистанции(Вкладка Infill).


Что это дает? За счет наложения слоев(Top Solid Layers ) под тремя разными углами, совершается проход по всей поверхности детали и закрываются огрехи предыдущих, благодаря маленькому минимальному расстоянию(Minimum Infil Lenght ) заполнения строятся между периметрами даже в местах довольно острых углов, а наложение на внутренний периметрOutline Overlap минимизирует проявление зазоров между стенкой и крышкой модели. Пришлось повозиться чтобы показать пример:


Bottom solid Layers - для дна можно сделать меньше слоев, т.к. поверхность стола ровная и проблем быть не должно, но для симметрии выставляю аналогичное значение.
Outline/Perimeter Shells - количество слоев боковых стенок. Двойной периметр считаю универсальным значением, если поставить меньше, начнет проявляться заполнение и при резком расширении детали слой может начать печататься в воздухе. Тройной уже можно назвать пустой тратой пластика:


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


Outline Directions не трогаем. Рекомендуется использовать первый параметр при котором сначала печатается внутренний периметр, потом внешний. Аналогично можно привести две последних картинки. При резком расширении внешний периметр будет печататься в воздухе, а значит нужно печатать поддержки.
Параметры печати первого слоя довольно сильно влияют на весь процесс печати. Обычно я выставляю First Layer Height таким образом, чтобы толщина первого слоя получилась около 0.1 мм. Соответственно при слое 0.1 - 100% / 0.2 - 50% / 0,3 - 70%.
First Layer Width оставляю как есть, т.к. при увеличении или уменьшении значения не меняется количество проходов, как в случае с Extrusion Width , а только корректируется коэффициент подачи прутка. Первый слой печатается с меньшей скоростью, поэтому хватает стандартного значения.
Скорость печати первого слоя(First Layer Speed ) зависит от выставленной общей скорости печати. У меня это 60 мм/с, поэтому 50%(30 мм/с) вполне хватает для хорошей адгезии.
Ну и стартовые точки(Start Points ) оставляю на усмотрение программы(Optimize start points).

Дополнения(Additions ) были разобраны в первой части, поэтому прикреплю одну картинку чтобы напомнить что где:




Prime Pillar и Use Ooze Shield я не пользуюсь. Башенкой потому что сопло одно и дополнительным «коконом» потому что при наличии сквозняков он первый претендент на отлипание, заваливание на модель и нарушение процесса печати в целом.
В комментариях разгорался небольшой спор насчет «юбки»(Skirt/brim ). Во многих слайсерах ранее юбка использовалась для «прочистки» сопла перед печатью основного слоя, который проходил аккурат по ее границам. При плохой адгезии немного спасала от отлипания, но крупные детали во время усадки либо поднимали ее целиком, либо отрывали уголки, в то время как юбка оставалась на столе. Поэтому я начал пользоваться рафтом(Raft ). Считаю оптимальным использовать по 2 базовых(Base Layer ) и 2 верхних(Top layer ) слоя. Выступ за внешние периметры(Offset from Part ) зависит от размера самой модели и назначения подложки.
Отступ от основного слоя(Separation distance ) настраивается индивидуально под каждый тип пластика и деталь таким образом, чтобы модель не отлипала от рафта во время печати, и без особого труда отделялясь подручными средствами после окончания. Например, для моделей с мелкими элементами у основания можно уменьшить отступ, если же площадь соприкосновения большая - увеличить.
Если просто лень выставлять в идеал калибровку стола , можно настроить рафт следующим образом:
Топовый слой - 1
Базовый слой - 1
Выступ - 0
Отступ - 50% высоты основного слоя
Плотность верхнего слоя(Raft Top Infill ) - 50%, так легче отделять модель.
Скорость - 40%.
Если нужна хорошая адгезия со столом , то:
Топовый слой - 2
Базовый слой - 2
Выступ - 20% длины/ширины модели
Отступ - 20-50% высоты основного слоя
Плотность верхнего слоя(Raft Top Infill ) - 50%
Скорость - 30%.
Высота слоя рафта не меняется и зависит от указанного диаметра сопла(поправьте если я не прав):
Первый базовый слой - 0,25 мм
Второй базовый слой(если есть) - 0,5 мм
Топовые слои - 0,22 мм
Мажет жирно, думаю настолько, насколько это возможно))
Хорошая адгезия со столом обеспечивается за счет низкого процента заполнения и толстых слоев. Когда модель частично остывает и начинается усадка, топовые слои рафта за счет своей эластичности снижают натяжение и подложку не отрывает от стола.
Насчет настроек заполнения(Infill ) говорили выше, в большинстве случаев оптимальны значения:


Тип рисунка не трогаем, 30% внутреннего заполнения хватит с головой, 50% наложения на периметр тоже и минимальный проход 1 мм. За углы говорил, вместо 0 можно добавить 90 градусов.
С настройками поддержки(Support ) особо не возился, потому что и по умолчанию они нормально себе печатаются.


В зависимости от размеров свисающих частей той или иной модели меняю только плотность(Support Infil Percentage) , выступ(Extra inflation Distance) и минимальный размер линий поддержки(Support Pillar Resolution) . Если свисающая деталь маленькая, при низком проценте заполнения ее основание может лечь между линий поддержки, выступ делаю больше чтобы сама конструкция не была слишком тонкой, и не отвалилась во время построения если наша деталь высоко. Пример:
Extra inflation Distance = 0 мм


Extra inflation Distance = 2 мм


Все параметры логичны, если возникнут вопросы - задавайте их в комментариях, я обновлю информацию.
По поводу вкладки Температура тоже общих рекомендаций дать невозможно, т.к. у разных производителей «прыгает» температура плавления/прилипания к столу.
Первое что нужно сделать во время первого запуска - добавить два контроллера температуры


Нажимаем кнопку Add Temperature Controller , обзываем его как угодно

В правой части выбираем тип контроллера, экструдер(Extruder) или стол(Heated build platform) , желательно чтобы выбор был логичным и назвав контроллер Экструдером, выбрать соответствующий тип, дабы потом не путаться. Далее вносим изменения в температуру первого слоя и нажимаем кнопку Add Setpoint , в окне Per-Layer Temperature Setpoints появляется наше значение - готово. Можно добавлять множество температурных точек, например первые слои сделать горячее для лучшей адгезии, а последующие с обычной температурой.


Аналогично добавляем второй контроллер, но уже выбрав второй тип и точно так же добавляем точку первого слоя.
Для используемого мной PLA вполне хватает 200 градусов экструдера и 60 градусов стола .
При 70-80 градусах стола PLA неплохо липнет даже к чистому, обезжиренному столу/стеклу.
Малярный скотч, который приклеен изначально отдирать не нужно - для небольших моделей из PLA его хватит надолго.
Охлаждение(Cooling) в основном используется при печати легкоплавкими пластиками, например PLA и SBS. Для тонких, но длинных деталей ABS я иногда вручную включаю обдув на низких оборотах. Приведу пример настроек, которые идентичны для PLA и SBS:


Добавил несколько точек для того чтобы не обдувать стол на первых слоях и ограничился 80% скорости вентилятора, потому что ее вполне хватает.
Так как первое значение всего 20%, активировал опцию Bip fan full power when increasing from idle , которая на секунду подает нормальное напряжение при раскручивая лопасти на старте.
Мосты у нас всегда печатаются на 100% обдуве(Bridging fan speed override )
В G-Code ничего больше не трогаем если не менялось покрытие стола или принтер.


В скриптах(Scripts ) для удобства можно немного подправить команды на старте печати и по ее окончании.
Стартовый скрипт:


G28; home all axes
G1 X0 Y20 Z0.2 F3000; get ready to prime
G92 E0; reset extrusion distance
G1 X200 E20 F600; prime nozzle
- Поиск нулевых точек
- Переместить сопло в координаты X=0, Y=20, Z=0,2 мм
- Обнулить счетчик выдавленного пластика
- Переместить сопло по указанным координатам, попутно выдавливая пластик. Чертит линию вдоль оси X с отступом 20 мм от нижнего края, тем самым вытесняя воздух и старый пластик.
Финальный скрипт:


M104 S0; turn off extruder
M140 S0; turn off bed
G1 E-1 F300; retract the filament a bit
G1 X0 Y200; home X axis and push Y forward
M84; disable motors
M107; shut off fan
- Выключить нагрев экструдера
- Выключить подогрев стола
- Небольшой ретракт чтобы не тянуть волос от вершины детали
- Переместить сопло в ноль по координатам X и выдвинуть стол вперед
- Отключить моторы
- Выключить обдув если включен
В поле Additional terminal commands for post processing можно добавить строки:
{REPLACE "; layer" «M117 Layer»}
{REPLACE " Z = " " Z="}
- Отобразить номер текущего слоя
- Отобразить текущие координаты по оси Z(высоту)

Скорость печати(Speeds ) зависит как от принтера, так и от используемого прутка.


Для Anet A6 и филамента от Фдпласт считаю оптимальной скоростью печати(Default Printing Speed ) 60 мм/с. Это касается всех типов пластика(ABS, PLA SBS, HIPS), хотя нет предела совершенству и можно подобрать свой идеал под каждый. На данной скорости будут печататься внутренние периметры и внутреннее заполнение модели.
Для внешнего периметра выделил 50% скорости, то есть 30 мм/с. Данное ограничение необходимо для получения ровных, гладких стен и хорошей спекаемости внешнего слоя.
Для внешнего заполнения(дно и крышка) и для слоев поддержки выставил 80%, то есть около 50 мм/с.
«Холостые» перемещения - 80мм/с. Вот вроде такой незначительный параметр, а вкупе с ретрактом может влиять на качество работы.
По оси Z хватает 8 мм/с.
Так же настроил снижение скорости печати до 20% при времени печати слоя меньше 10 секунд. Считается весь текущий слой со всеми вершинами, заполнением и т.д. Так что ограничение срабатывает в основном в конце печати, когда остается несколько небольших вершин, спасает от загибов и оплавлений, аккуратно допечатывая модель.
Переходим во вкладку "Другое(Other) ", настраиваем мосты и параметры филамента(диаметр, цена и плотность) для правильного подсчета расходов до печати.


Минимальная площадь для построения(Unsupported area threshold ) у меня 40 квадратных миллиметров(представьте квадрат чуть больше 6x6 мм), все, что меньше будет перекрываться обычным заполнением.
Крепления «моста»(Extra inflation distance ) на 0,1 мм периметра вполне достаточно, это обеспечивает лучшее крепление продольной линии, заодно обвел на скриншоте новую опцию в версии 4.0 - применить параметры моста к периметрам(Apply bridging setting to perimeters ). Огромное спасибо разработчикам. Периметр печатается раньше, чем основа, поэтому раньше первые слои боковой стенки часто провисали, сейчас же стало намного лучше.


Коррекцию усадки(Horizontal Size Compensation ) нужно подбирать долго и нудно, но в конечном итоге можно получить идеальные пропорции модели и ее внутренних деталей без сплавления между собой или наоборот больших промежутков. Очень полезная опция для тех, кому нужна довольно высокая точность размеров, но нужно будет настраивать практически под каждый цвет пластика, т.к. будет разброс усадки.
Настройки смены экструдера(Tool Change Retraction ) нужны людям, у которых принтеры поддерживают печать несколькими прутками.

Наконец, настраиваем последнюю вкладку "Дополнительно(Advanced) "


Layer modifications пока не трогаем
Настройку тонких стенок проходили, напомню эффект при использовании разных параметров:

Perimeter Overlap


Минимальная длина(Minimum Extrusion Lenght) - 0.5 мм, по сути в таких местах будет просто ставиться жирная точка, а при меньшей длине эту область покроют излишки внутреннего периметра.
Минимальная ширина слоя(Minimum Printing Width) - 50%, то есть 0,24 мм в моем случае.
Минимальная ширина слоя(Maximum Printing Width) - 200% или 0,96мм. Все что шире будет заполняться стандартно. Можно уменьшить параметр, т.к. иногда ретракт не отрабатывает нормально после широкого заполнения из за избытка пластика в экструдере, но тут уже кому как понравится.
Наложение на внутренний периметр(Endpoint Extension Distances) - 20% достаточно, иначе может быть «перелив».
Остальные функции выставляем как на скриншоте. Кому интересно описание - загляните в первую часть.


Определились с настройками PLA пластика, выдыхаем.
Сохраняем профиль настроек


И профиль материала


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

Только в этом случае можно будет одним нажатием сменить все настройки, а не только базовые.
С другой стороны, я зачастую подкручиваю настройки даже при печати одним и тем же типом и цветом в зависимости от самой модели, поэтому не так критично.
У кого остался только ABS/SBS/HIPS, в конце мануала будет ссылка на мой профиль с настройками под пластик, которым пользуюсь я. Мне не платили за рекламу, но прутки действительно отличные по соотношению цена/качество. Правда производитель отечественный и говорят стоимость доставки за пределы России дикая.

Коротко о используемом пластике

PLA - можно печатать на холодном или теплом столе, самый легкоплавкий, поэтому не может быть использован в местах с повышенной температурой, например салон автомобиля летом. Сопротивляется изгибу больше остальных, при критичной нагрузке ломается. Усаживается слабо, не боится сквозняков. Механическая обработка - то еще удовольствие.
ABS - нужен хороший подогрев стола, самая высокая температура плавления, поэтому не боится нагрева. При критичной нагрузке немного изгибается, после чего ломается. Боится сквозняков, из за резкой усадки отлипает от стола или трескается. Самый удобный для обработки материал, как химической, так и механической.
SBS - как и PLA можно печатать на теплом столе, температура печати от 220 градусов и выше(меняется текучесть), но не любит повышенных температур. Не плавится, но становится очень гибким. При комнатной температуре практически невозможно сломать изгибом. В плане механической обработки немного проще пла, неплохо растворяется копеечным сольвентом. Есть прозрачный тип данного пластика, из которого получаются довольно чистые модели при 100% заполнении, либо при печати периметра в один слой с последующей обработкой сольвентом. Если сравнивать с вещами обихода, похож на стержень пластиковой ручки, вот если напечатать из него трубку, будет вести себя практически так же.


Базовые знания получены, настройки произведены, можно пускать в работу первую модель =)

Давайте напечатаем пробный кубик что-нибудь интересное, например пробную лесенку из кубиков с отверстиями в стенке?
Вот такую

Закидываем модель в рабочую область


Нажимаем Prepare To Print проверяем нарезанную модель на отсутствие разрывов, правильно ли выстроилась поддержка.
Так же в левом верхнем углу видим, что печать займет около 28 минут, израсходуется 1144 мм прутка, что эквивалентно 3.5 граммам, которые стоят 2.3 рубля.


И если все нормально, нажимаем на Begin Printing Over USB если принтер подключен к компьютеру, либо сохраняем файл на флешку и запускаем печать из меню принтера.


Неплохой результат, но даже на ускоренном воспроизведении видно, что верхние слои начали печататься гораздо медленнее. Догадались почему? Верно, из за того что мы оставили галочку на пункте Adjust printing speed for layers below , который снизил скорость печати на 80%? т.к. время печати одного слоя стало меньше 10 секунд. Выключим данную опцию и посмотрим что получится.
В окне предпросмотра время печати значительно сократилось.


Вот «раскраска» по скоростям с включенным ограничением


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


Можно заметить горизонтальные(небольшие «скачки» ширины слоя) и вертикальные полосы
Появляться они могут из за различных факторов, таких как:
- Неправильно настроенный ретракт. Если в начале печати внутреннего периметра есть избыток пластика, внешний так же немного выдавит наружу. А так как точки ретракта у нас разные, то и ширина периода от слоя к слою будет разной в одном и том же месте, отсюда получаем «лесенку»
- Слишком большое значение внутреннего заполнения + большое наложение. Аналогично первому фактору, в местах наложения заполнения на внутренний периметр у нас скапливается избыток пластика и слой периметра может плавать по ширине. По этой же причине проявляются и вертикальные полосы - можно заметить, что зачастую они соответствуют точкам наложения заполнения.
- Скачки температуры экструдера из за которых пластик периодически становится жиже/гуще. При включении подогрева стола такие скачки будут заметнее.
- Ну или банальный воблинг(колебания) во время перемещения по осям, в том числе и колебания покрытия стола(стекло). При чем многие сразу же начинают с него, хотя причину изначально стоит искать в настройках. Для уменьшения колебаний применяют натяжители ремней, делают корпус более жестким, лучше крепят покрытие. Думаю это стоит разбирать отдельным постом.
Так же для понимания путей решения проблем, возникающих на старте полезно воспользоваться . Я собирался сделать несколько запусков с «кривыми» настройками после съемки основного материала, но у принтера были другие планы =)
Отдельно напечатал куб, дабы посмотреть на ситуацию с разных сторон. Обозначения не указывают на рассматриваемые колебания по соответствующей оси, а лишь дают нам ориентир расположения на столе для дальнейшего анализа. Многие начинают искать проблему не там где нужно. Так, например, колебания по оси X будут портить грань Y, а Z может исказить все стенки. Качество конечно не идеальное, но меня вполне устраивает.


Вот еще один образец


Для масштаба. Котяру не запугивали - уши такие от рождения =)




Чтобы не сильно менять настройки печати, поменял пруток на SBS и напечатал кирпичики.
Все параметры аналогичны PLA кроме температуры экструдера, ее поднимаем до 235, как средняя температура печати ABS.
Интересный материал, чем больше мы его греем, тем более жидким он становится. Есть как плюсы в этой особенности, так и минусы. Например ретракт нужно подстраивать после каждого изменения температуры сопла, как и обдув со скоростью печати. Зато это один из самых мягких материалов, которым можно печатать на подвижном столе(дрыгостоле) с сохранением геометрии.


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

Судя по результату, настройки особо крутить не нужно.




Устанавливаем катушку ABS и печатаем кирпичики.
Покрытие стола - ABS+ацетон, напыленный аэрографом. Да, мсье знает толк в извращениях.
Коэффициент подачи: 1
Температура стола/экструдера: 100/235
Замедление печати выключено.


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


Запустил печать линейного подшипника, но включил

Adjust printing speed for layers below
аналогично PLA - при слоях, печатающихся быстрее 10 секунд.
Нашел другую модель, мне кажется она более износостойкая.



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

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


Хотелось бы затронуть тему покрытия стола, но на момент создания обзора полтора килограмма БФ-2 и спец стекло еще не доехали, поэтому перенесем эту тему в 3 и заключительную(скорее всего) часть гайда под названием «модификации».
Единственное, я попробовал то что было в наличии и хотел немного пояснить на практике по поводу юбки и рафта.
Покрытие стола - сок ABS(брак+ацетон). Покрывал специально особо не заморачиваясь - не было цели обеспечить максимальное прилипание. К тому же выбрал деталь с маленькой площадью контакта. Модели снимал как только начинал задираться хотя бы один край от стола.

Результат с использованием юбки/рафта:

Так же решил поэкспериментировать и покрыть слой тонким слоем SBS, растворенного в сольвенте. И знаете, неплохо все смотрелось, PLA и SBS прилипали к практически холодному столу и с небольшим усилием отделялись не повреждая покрытие. Но радость была недолгой и ABS разрушил надежды на идеальный и очень дешевый вариант. Печатал при температуре стола 60 градусов чтобы покрытие из SBS не поплыло.


Хоть модель и была зафиксирована до конца печати, но покрытие испорчено =)


Дело в том, что при нагреве и охлаждении слой SBS без особых усилий отделяется от стекла по всей поверхности. Все ведь в детстве мазали ладонь «моментом» и после остывания снимали «искусственную кожу»? Очень похоже.

Снова нормально нанес ABS сок и напечатал модель интереснее кубика.


Плюс небольшую .


Результат:




Кстати, модель колец не ахти - слишком маленькие фиксаторы колец и углубления, из за небольшой усадки они либо не держатся, либо вылетают, даже до печати видно, что и без учета усадки держаться все будет на соплях, но на то и был расчет, потому что хотел продемонстрировать работу пункта "Horizontal Size Compensation " во вкладке "Other "


Меняем значения и смотрим на ожидаемый результат на срезе одного из соединений:


И срез сверху:


Видно, что при значении 0,2 происходит слипание двух точек разных частей модели. Ставлю 1,5 и печатаю - уже лучше
В итоге получаем нормальное сцепление всех колец и они весело вращаются.


Оригинальная модель вращается не так весело.


Еще один способ. Делим модель на составляющие

Срезаем половину высоты по оси Z


И меняем размеры каждого кольца по осям X и Y


Пока не доведем до минимума зазоры точек стыковки


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

Ну и напоследок - печать температурного столбика велась с изменением температуры экструдера, таким образом можно подбирать оптимальные значения нагрева для разного типа/цвета пластика.
Повторить сможет каждый, при чем есть 2 способа:

1. Через разделение процессов, для примера взял модель крупнее для наглядности


Высота каждой секции 15мм, ее можно узнать, сделав срез по оси Z либо перебором параметра высоты разделения, место отсечения выделяется плоскостью.


Наш процесс разбивается на выбранное нами количество зон

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


И так для каждого процесса.

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


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

Заходим во вкладку «Температура», делим высоту блока на высоту нашего слоя и узнаем необходимое количество для покрытия нужного расстояния, после чего меняем температуру на каждый новый диапазон слоев. В моем случае высота слоя 0,2мм, это 50 слоев на 10мм.


Готово. Главное не смотреть на цифры и помнить чего мы там вбивали для каждого пролета, напоминаю - от 245 до 220 градусов с отсчетом от стола.



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


Но не прошло и получаса, как печать остановилась. Процесс ускорен.


Думал совсем все плохо, т.к. признаков жизни не было, но на следующий день и блок и принтер заработали. Хотя сложно назвать это работой - при включенном нагреве стола, все вырубалось через 15-20 минут работы. Думаю проблема в блоке питания, но корень проблемы в нагревательной платформе. Не знаю кто додумался использовать такие убогие коннекторы для подключения 100 Вт нагрузки


Со временем пластик оплавляется, а контакты обугливаются. Да, нужно было запаять все намертво при первом же замеченном перемигивании лампочки нагрева стола(под платформой), но я заказал грелку на 220 Вольт, 200 Вт и планировал во время переделки вообще не подводить стоковый нагрев стола, оставив только датчик температуры.
Так что поломка предсказуема. Учитывая потребление в 10 Ампер, которое могло возникать и исчезать много раз за короткий интервал времени во время движения стола, блок решил, что больше так жить нельзя несмотря на установленное дополнительно активное охлаждение.
Пробовал печатать PLA на холодном столе - за час не было выключений, но все же отдам питальник в ремонт, а если не получится починить - поставлю ATX.
При чем я не сказал бы что сама модель оказалась не надежной. До поломки отпечатано 7 кг пластика, 3 катушки не дотянул до 10 =)


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


В данный момент уже часть необходимых посылок, к установке готов боуден, несколько сопел разного диаметра, охлаждение питания и платы, так же будем тестировать несколько вариантов универсальных покрытий стола. Модификации установлю позже - жду комплект для обогрева стола и закину уже все сразу чтобы не разбирать повторно.
Жаль, что не успел проверить SBS Glass «янтарь». Ранее работал с прозрачным SBS и после обработки сольвентом выглядело просто шикарно. Ну ничего, в любом случае придется снова печатать кучу пробников для сравнения, так что все впереди.

Если что-то написал не правильно или забыл добавить - поправляйте меня, я изменю/дополню обзор.

Как всегда готов к спорам в комментариях о том какой я балбес =)

Всем добра, кот был выше.
UPD
Оказывается, максимальная скорость ретракта в Anet A6 на стоковой прошивке не может превышать 20 мм/с, так что на результат при изменении параметров ретракта влияла только дистанция. За поправку спасибо пользователю
И все молчат о том, что я забыл приложить свой профиль настроек =) Добавить в избранное Понравилось +55 +109

Итак, вы собрали принтер, спаяли электронику, все включили, что делать дальше?

Первое, что необходимо сделать — скачать и залить необходимую прошивку. К разным типам плат подходят разные прошивки. Т.к. у меня плата Ramps 1.25 на базе Arduino Mega 2560, я выбрал наиболее подходящую и одобряемую людьми прошивку . В чем её преимущество: управление 2 экструдерами, чтение файлов с SD-карт и работа в автономном режиме, возможность подключения ЖК-экранчика.

Скачиваем IDE Arduino, в ней находятся все необходимые драйвера и если плата сразу не определилась, то устанавливаем драйвер arduino из папки «arduino\drivers\».

Само приложение выглядит следующим образом (установка не требуется, надо только распаковать архив):

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

Хоть плата и подключена к USB, но определяется как com-порт.

Надеюсь вы уже скачали прошивку . Архив надо распаковать. В IDE Arduino открываем файл marlin.pde.. Вы должны увидеть следующую картину:

Среди закладок видно все файлы, которые входят в проект. Просто так заливать прошивку бессмысленно, в ней надо указать тип нашей платы. Так, переходим в закладках в файл configuration.h и на 10 строчке видим все типы плат, которые поддерживаются прошивкой:

Выбираем тип платы. Если у вас плата , то в поле #define MOTHERBOARD вписываем цифру 3, если у вас на плате 3 транзистора: 1-ый на , 2-ой на , 3-ий для fan (кулера), то пишем в этом поле 33, если вы собираетесь подключить второй экструдер, то пишите 34.

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

Уже достаточно давно (примерно пол года) пользуюсь прошивкой Marlin Kimbra (MagoKimbra/MK4duo).

это переработанная прошивка Marlin итальянским RepRap сообществом. Прошивка интересна тем, что ее можно запустить как на 8 битных мозгах, так и на 32х битных мозгах на плате Arduino DUE в связке с низкобюджетным RAMPS4Due.

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

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

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

Если есть желание сменить прошивку — попробуйте. Думаю вам понравится.

После смены прошивки с Marlin-а на MagoKimbra, первым делом надо очистить EEPROM по команде

M502 — Revert to the default «factory settings». You still need to store them in EEPROM afterwards if you want to.

M500 — Store parameters in EEPROM

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

Кратко расскажу как настроить прошивку на примере своего принтера, мозгов типа бутерброд arduino mega + ramps и кинематики Cartesian (Prusa i3). Активирую минимально-необходимое для работы количество фич.

В настройке прошивки особо сложного ничего нет, все интуитивно понятно.

Так же уделю внимание РОДНЫМ МОЗГАМ Prusa i3 от flsun3d . Изначально принтер идет с единой материнской платой RAMPS 1.4 Plus

Если пролить в нее прошивку отличную от той что прислал китаец (Marlin 1.0.0), у принтера автоматически перестанет работать дисплей и экструдер с E0 переедет на E1. Я столкнулся с такой проблемой, посидел вечер поковырялся и нашел решение. В конце статьи расскажу как это исправить.

Прошивка без проблем собирается в последней среде Arduino (1.8.1).

Открываем файл MK4duo.ino с помощью среды Arduino и начинаем настраивать.

Начинаем со вкладки Configuration_Basic.h

Тут мы настроим

* — Тип серийных коммуникаций

* — Материнскую плату

* — Тип механики (Cartesian для Prusa I3)

* — Количество экструдеров

С ходу правим

#define BAUDRATE 250000

Если охота в терминале (или Pronterface) видеть кто конфигурил прошивку

#define STRING_CONFIG_H_AUTHOR «(Mef73, custom config)»

А можно и не трогать.

Больше в этой вкладке делать нечего, поскольку по умолчанию уже включено

#define MOTHERBOARD BOARD_RAMPS_13_HFB

#define MECHANISM MECH_CARTESIAN

А так же установлен один экструдер и один драйвер для экструдера.

Переходим ко вкладке Configuration_Cartesian.h

Начну с изменения имени принтера, хотя это и не обязательно

#define CUSTOM_MACHINE_NAME «Prusa I3 flsun»

#define INVERT_E0_DIR true

Именно мой штатный экструдер принтера Prusa i3 от flsun3d такой, инвертный. Можно перевернуть разъем шагового двигателя (ШД), но не хочу. Чтоб когда буду менять принтеру мозги, не греть голову на счет разворота разъема двигателя.

Опять же, для мого принтера с drv8825 и микрошагом 32

#define DEFAULT_AXIS_STEPS_PER_UNIT {200, 200, 800, 310, 310, 310, 310} //drv8825

Для моего принтера с a4988 и микрошагом 16

#define DEFAULT_AXIS_STEPS_PER_UNIT {100, 100, 400, 155, 155, 155, 155} //a4988

Надо прописать только ОДНУ строчку. Для одного или для другого драйвера ШД.

Для остального правлю

#define DEFAULT_MAX_FEEDRATE {200, 200, 2, 100, 100, 100, 100}

#define DEFAULT_MAX_ACCELERATION {1500, 1500, 50, 1000, 1000, 1000, 1000}

#define DEFAULT_ACCELERATION 1500

#define DEFAULT_XJERK 30.0

#define DEFAULT_YJERK 30.0

#define DEFAULT_ZJERK 0.4

Эти значения можете так же поставить свои. На этом с вкладкой Configuration_Cartesian.h заканчиваем.

Переходим к вкладке Configuration_Feature.h

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

В общем поехали…

Убираем // c

#define HOME_Y_BEFORE_X

Первой паркуем ось Y. У меня зеркало на зажимах, если первой парковать ось X при малой высоте Z соплом снесу зажимы.

#define FORCE_HOME_XY_BEFORE_Z

ось Z паркую последней

Теперь спускаемся до

//============================= ADDON FEATURES ==============================

Раскомментируем

#define EEPROM_SETTINGS

#define EEPROM_CHITCHAT

#define SDSUPPORT

#define SD_SETTINGS

активируя EEPROM и поддержку карты SD

Дисплей у меня символьный, 2004, reprap discount smart controller

#define ULTRA_LCD

#define ENCODER_PULSES_PER_STEP 4

#define ENCODER_STEPS_PER_MENU_ITEM 1

#define REVERSE_ENCODER_DIRECTION

#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 40

#define LCD_FEEDBACK_FREQUENCY_HZ 2000

С такими параметрами у меня хорошо работают оба китайских reprap discount smart controller-а.

#define LCD_INFO_MENU

#define REPRAP_DISCOUNT_SMART_CONTROLLER

Если у вас Arduino DUE обратите внимание сюда:

//============================= ADVANCED FEATURES ===========================

//===========================================================================

/****************************************************************************************

************************************** Buffer stuff ************************************

****************************************************************************************/

// The number of linear motions that can be in the plan at any give time.

// THE BLOCK BUFFER SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.

// For Arduino DUE setting BLOCK BUFFER SIZE to 32

#define BLOCK_BUFFER_SIZE 16

// The ASCII buffer for receiving from the serial:

#define MAX_CMD_SIZE 96

// For Arduino DUE setting to 8

#define BUFSIZE 4

В общем то это и все настройки что разнятся у Mega и DUE, других не нашел.

Переходим ко вкладке Configuration_Temperature.h

#define TEMP_SENSOR_BED 1

Стол то у нас с подогревом, а по умолчанию в прошивке терморезистор подогрева отключен

Идем в ********************** PID Settings — HOTEND **************************

#define DEFAULT_Kp {14.17, 40, 40, 40} // Kp for H0, H1, H2, H3

#define DEFAULT_Ki {01.55, 07, 07, 07} // Ki for H0, H1, H2, H3

#define DEFAULT_Kd {32.29, 60, 60, 60} // Kd for H0, H1, H2, H3

После перепрошивки я обязательно перекалибрую Kp Ki Kd по команде

M303 H0 C8 S240 U

Спускаемся к ************************ PID Settings — BED ***************************

Стол у меня так же регулируется по PID. Bang Bang проще, но не так точен. Поэтому раскомментируем

#define PIDTEMPBED

#define DEFAULT_bedKp 88.21

#define DEFAULT_bedKi 12.77

#define DEFAULT_bedKd 152.28

Это настройки когда-то полученные экспериментально для моего принтера.

После перепрошивки я обязательно перекалибрую Kp Ki Kd стола по команде

M303 H-1 C8 S100 U

В Pronterface или даже не заморачиваясь, в терминале Octoprint. Ключ U сразу же применит результат.

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

После чего надо выполнить команду

Для защиты от перегрева хотэнда и стола раскомментирую

#define THERMAL_PROTECTION_HOTENDS

#define THERMAL_PROTECTION_BED

На этом вроде и все.

У меня на плате установлен самодельный Fan Extender, на 1 канал, и живет он на 11 пине. На него я подключил вентилятор обдува термобарьера.

Во вкладке Configuration_Feature.h

Убираем // с

#define HOTEND_AUTO_FAN

#define HOTEND_AUTO_FAN_TEMPERATURE 45

Ставлю температуру срабатывания на 45 градусов

Для того чтоб фича заработала, во вкладке Configuration_Pins.h

#if ENABLED(HOTEND_AUTO_FAN)

#define H0_AUTO_FAN_PIN 11

Указываю что управление вентилятором живет на 11 порту.

Теперь расскажу про замечательную плату RAMPS 1.4 Plus . Плата поставляется в комплекте с принтером Prusa I3 Flsun3d.

Пины на плате не совпадают с оригинальным бутербродным RAMPS 1.4. !!!

Я порылся в прошивке от китайцев и нашел различия в пинах.

Кладем его в папку

MK4duo-masterMK4duosrcboards

заменяя оригинальный файл 99.h.

И теперь во вкладке Configuration_Basic.h

ставим // перед MOTHERBOARD BOARD_RAMPS_13_HFB

//#define MOTHERBOARD BOARD_RAMPS_13_HFB

#define MOTHERBOARD BOARD_99

Наша плата RAMPS 1.4 Plus теперь BOARD_99

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

После этого на RAMPS 1.4 Plus жизнь налаживается. Начинает работать дисплей и все остальное так, как надо.

По аналогии с настройками в файле, можно сконфигурировать плату в классическом Marlin-е. У меня это тоже получилось.

Прошивка MagoKimbra/MK4duo, настройки прошивки для Prusa i3 для бутерброда RAMPS 1.4 и для платы RAMPS 1.4 Plus