Калибровка температуры 3d принтер. Калибровка стола

Перед началом работы с непрофессиональным или полу профессиональным 3D принтером, а также Kit-набором для самостоятельной сборки часто необходимо «залить» и настроить прошивку. Прошивка представляет собой программный код, основными задачами которого являются: считывание и воспроизведение G-code, управление принтером через различные интерфейсы, вывод информации о процессе печати. Другими словами, прошивка необходима, чтобы железо и набор электроники «ожили» и можно было ими управлять. Заливается прошивка на плату управления. У разных 3D принтеров различные платы управления, соответственно, прошивки тоже разные.

В наших 3D принтерах Prusa i3 Steel используется связка плат Arduino Mega 2560 и Ramps 1.4, поэтому в данной статье мы подробно рассмотрим и разберем настройки подходящей для них прошивки, Marlin.

Если вы еще не собрали электронику, то ознакомьтесь со статьей:

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

Где взять?

Последняя версия прошивки Marlin выложена на официальном сайте разработчика https://github.com/MarlinFirmware/Marlin . Скачать более ранее версии прошивки можно по ссылке . Также на сайте присутствуют много различных версий, но мы рекомендуем скачивать самую последнюю версию, помеченную как Latest release. На момент написания статьи, данной версией была 1.0.2-2

Под Downdloads нажмите на Source code (zip) и скачайте архив прошивки себе на компьютер. Далее извлеките содержимое архива в папку.

Установка Arduino IDE

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

Обратите внимание! Данная программа Arduino IDE регулярно обновляется и возможен такой вариант, что при заливки прошивки на плату, с новыми версиями Arduino IDE могут возникнуть проблемы, а именно будут вылазить ошибки, и вы не сможете записать прошивку в микроконтроллер. Поэтому, при возникновении проблем, попробуйте скачать более старую версию программы, например версию 1.6.0)

Для надежности можете сразу скачать проверенную версию 1.6.0


Нажмите на Windows Installer, и вас перекинут на другую страницу, где необходимо нажать на кнопку JUST DOWNLOAD, далее начнется скачивание файла. Установите программу и приступите к следующему шагу.

Редактирование прошивки Marlin

Вы скачали непосредственно саму прошивку Marlin и программу Arduino IDE, с помощью которой можно редактировать. Откройте папку с прошивкой "Marlin", найдите файл "Marlin" с расширением.ino


Откройте этот файл, откроется программа Arduino IDE


Вверху окна программы находиться много вкладок, в каждой из которых располагаются куски кода, от которых и зависит работа 3D принтера. Вам потребуется только несколько основных вкладок. Первая и основная вкладка это "Configuration.h"


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

Обратите внимание! Все изменения в прошивке проведите по порядку сверху вниз. Эти изменения затронут основные участки кода, и они необходимы для начального запуска вашего 3D принтера.

Устанавливаем необходимую скорость в бодах

Первое, что необходимо поменять - скорость в бодах. По умолчанию скорость стоит 250000 (47 строчка кода)

// This determines the communication speed of the printer #define BAUDRATE 250000


// This determines the communication speed of the printer #define BAUDRATE 115200

Если вы используете плату , то скорость должна быть 250000.

Выбираем управляющую плату

После установки скорости в бодах, необходимо указать используемую плату управления (55 строчка кода).

#ifndef MOTHERBOARD #define MOTHERBOARD BOARD_ULTIMAKER #endif


По умолчанию стоит плата 3D принтера Ultimaker - BOARD_ULTIMAKER, поэтому необходимо поменять плату. Весь список плат находится во вкладке "BOARDS_H"


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

#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)

#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)

#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)

#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)

Эти платы относятся к Arduino mega 2560 и Ramps 1.4. В зависимости от модификации вашего 3D принтера, необходимо выбрать соответствующую плату. Например, стандартная связка 1 экструдер + обдув рабочей области + нагревательный стол соответствует плате BOARD_RAMPS_13_EFB

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


Меняем название 3D принтера

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

Найдите строчки: (59 строчка)

// #define CUSTOM_MENDEL_NAME "This Mendel"

Перед #define стоят "//" - это означает, что данные строчки не используются в коде, а служат в качестве пояснений. Чтобы активировать данную строчку, необходимо раскомментировать строку, уберите // перед строчкой.

Измените название по умолчанию "This Mendel" на ваше название 3D принтера, например, "P3Steel". Получаем следующие:

Выбираем датчик температуры стола и экструдера

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

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

//// Temperature sensor settings: // -2 is thermocouple with MAX6675 (only for sensor 0) // -1 is thermocouple with AD595 // 0 is not used // 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup) // 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup) // 3 is Mendel-parts thermistor (4.7k pullup) // 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! // 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup) // 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup) // 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup) // 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup) // 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) // 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup) // 10 is 100k RS thermistor 198-961 (4.7k pullup) // 11 is 100k beta 3950 1% thermistor (4.7k pullup) // 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed) // 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE" // 20 is the PT100 circuit found in the Ultimainboard V2.x // 60 is 100k Maker"s Tool Works Kapton Bed Thermistor beta=3950 // // 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k // (but gives greater accuracy and more stable PID) // 51 is 100k thermistor - EPCOS (1k pullup) // 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup) // 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup) // // 1047 is Pt1000 with 4k7 pullup // 1010 is Pt1000 with 1k pullup (non standard) // 147 is Pt100 with 4k7 pullup // 110 is Pt100 with 1k pullup (non standard)

В списке найдите свой, запомните цифру слева. Как правило, многие используют китайский термистор 100 кОм, для него подходит термистор под номером "1".

// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)

Внесите изменения в нужном месте (строчки 115-118)

#define TEMP_SENSOR_0 -1 #define TEMP_SENSOR_1 -1 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_BED 0

По умолчанию в прошивке активированы два первых термистора:

TEMP_SENSOR_0 - отвечает за термистор первого экструдера

TEMP_SENSOR_1 - отвечает за термистор второго экструдера

TEMP_SENSOR_BED - отвечает за термистор стола

Поменяйте строчки и получите следующее:


TEMP_SENSOR_1 и TEMP_SENSOR_2 не используются, поэтому напротив них ставим "0" нули.

Ограничение максимальной температуры

Для ограничения максимальной температуры необходимы следующие строчки (140-143)

#define HEATER_0_MAXTEMP 275 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define BED_MAXTEMP 150

Числа стоящие справа, а именно 275 и 150 - это максимальные температуры экструдера и нагревательного стола соответственно.

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

Ограничение минимальной температуры

Также в прошивке по умолчанию стоит ограничение минимальной температуры экструдера в 170 градусов. Это означает что, если температура экструдера будет ниже 170 градусов, то двигатель экструдера не будет вращаться и пластик не будет подаваться. Защита от проталкивания не прогретого пластика (строчка 230).

#define EXTRUDE_MINTEMP 170

Если хотите отключить данную функцию, то перед строчкой поставьте "//"

Настройка концевых выключателей

Настройка логики работы концевиков

В первую очередь на что нужно обратить внимание - это какие концевики вы используете и какой у них принцип работы. В прошивке необходимо правильно указать логику работы концевиков. Найдите следующие строчки (301-306)

Const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.

Если у вас механические концевики, то при срабатывание цепь замыкается, напротив каждой строчки соответствующей оси поставьте значения "true". Если вы используете оптические концевики, то при срабатывании цепь размыкается, напротив каждой строчки соответствующей оси поставьте значения "false".

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

После настройки работу концевиков можно проверить командой M119 в консоли.
В ответ должен прийти текст:
x_min: open – концевик не сработал;
x_min: TRIGGERED – концевик сработал.

Установка положения "HOME" - дом

В прошивке поддерживаются 3 пары концевиков: для каждой оси X, Y и Z по два концевика min и max. Как правило, ставятся концевики только для минимального положения каждой оси, а максимальное задается в прошивке.

Положение дом (начальное положение), будет находиться в минимальных положениях концевиков и это задается в прошивке: (строчки 337-339)

#define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1

Изменения направления вращения двигателей

При сборке 3D принтера, а именно при подключение шаговых двигателей к плате, возможна такая ситуация: когда вы все настроили и подключили, при нажатии "home" (дом), каретка одной из осей едет в другую сторону (не к концевику), тогда необходимо перевернуть коннектор шагового двигателя на 180 градусов или поменять значения в прошивке:

#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true #define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false #define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true #define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false

Например, если у вас каретка оси Y в другую сторону, то необходимо найти строчку

#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false

и поменять "false" на "true". И так с каждой осью и экструдером.

Установка габаритов перемещения

Чтобы 3D принтер определял рабочую область, необходимо указать ее размеры в прошивке: (строчки 345-350)

#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

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

Настройка шагов перемещения по осям

Указание количества шагов шаговых двигателей - одна из главных настроек прошивки (строчка 490):

#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200.0*8/3,760*1.1} // default steps per unit for Ultimaker

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

Расчет осей X и Y (ремни)

По всем осям стоят шаговые двигатели 200 шагов на оборот, 16 микро-шагов на шаг (это устанавливается перемычками на плате).

По осям X и Y стоит приводной ремень GT2 с шагом 2 мм и шкивы с 20 зубьями.

Получается:

(200*16)/(2.0*20)=80

Столько шагов должен сделать шаговый двигатель, чтобы ось X и Y проехала ровно 1 мм.

Если у вас зубчатый шкив Gt2 с шагом 2 мм и с количеством зубьев 20, то формула такая:

(200*16)/(2.0*16)=100

Расчет оси Z (ходовой винт)

По оси Z могут стоять:

  • Шпилька М8 с шагом резьбы 1,25 мм, тогда формула: 200*16/1.25=2560
  • Шпилька M5 с шагом резьбы 0.8 мм, тогда формула: 200*16/0.8=4000
  • Трапецеидальный винт диаметром 8 мм с шагом 1 мм и заходностью 1, тогда формула: 200*16/1=3200
  • Трапецеидальный винт диаметром 8 мм с шагом 2 мм и заходностью 1, тогда формула: 200*16/2=1600
  • Трапецеидальный винт диаметром 8 мм с шагом 2 мм и заходностью 4, тогда формула: 200*16/2*4=400

В Pruse i3 Steel используются шпильки М5 , тогда получается число 4000.

Расчет экструдера

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

Открутите сопло и уменьшите ограничение минимальной температуры сопла до 5 градусов:

#define EXTRUDE_MINTEMP 5

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

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

#define EXTRUDE_MINTEMP 170

Ограничение максимальной скорости перемещения по осям

#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 25} // (mm/sec)

По умолчанию стоят скорости 500,500,5, 25 мм/c на оси X,Y,Z и экструдер соответственно. Рекомендуем понизить скорость с 500 до 200.

Настройка ускорения перемещений по осям

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

#define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot. #define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves #define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts

Для осей X и Y стоят ускорения 9000 мм/c^2 - это очень много.

Для первичной настройки установите не более 1000 и для DEFAULT_ACCELERATION поставьте 1500, вместо 3000.

Активация дисплея

Последние, что остается сделать - это активировать нужный вам дисплей. Один из самых популярных дисплеев, это . Найдите и раскомментируйте следующие строчки:

#define ULTRA_LCD #define SDSUPPORT #define ULTIPANEL #define REPRAP_DISCOUNT_SMART_CONTROLLER

Перед этими строчками, не должны стоять "//". Должно получиться следующее:


Заливка прошивки

После всех основных изменений прошивки, можно ее заливать. В программе Arduino IDE зайдите во вкладку "Инструменты" -> "Плата" и выберите "Arduino/Genuino Mega or Mega 2560"


И там же нужно выставить верный COM порт вашего 3D принтера. Для заливки прошивки нажимаем на круг со стрелкой.


Прогресс заливки прошивки отображается индикатором, а после успешного завершения на экране появятся подтверждающие сообщение.

​На что обратить внимание!

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

3 признака, что вам пора заново откалибровать стол.

1. Пластик не прилипает к поверхности.

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

2. Пробелы в первом слое или слишком тонкие линии.

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

3. Пластик скапливается вокруг сопла при печати первого слоя.

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


6 простых шагов к выравниванию стола 3D-принтера.

Для новичков, калибрующих стол 3D-принтера в первый раз, важно сделать так, чтобы сопло экструдера находилось на одинаковом расстоянии от стола принтера во всех его точках. Большинство plug’n’play принтеров имеют встроенный пошаговый мануал по автокалибровке стола, если же вы собирали принтер самостоятельно, то вам придется пройти шесть шагов прежде чем приступить к печати. Несмотря на индивидуальные особенности конструкции различных 3D-принтеров, общая методика калибровки стола одинакова для большинства из них.

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

Шаг 1 :

Возьмите обычный лист бумаги.

Шаг 2 :

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


Шаг 3 :

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

Шаг 4 :

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

Шаг 5 :

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


Шаг 6 :

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

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

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

Переведено с портала Ссылка

Успехов Вам в Вашем не легком 3D-деле!

Если вы один из тех, кого увлекло сумасшествие 3D-печати, вы, надо полагать, в курсе, что для получения оптимального результата здесь требуется немало танцев с бубнами. Мы покажем вам, как откалибровать экструдер, чтобы добиться наилучшего качества. Как видно по распечатанному столику, плохо откалиброванный экструдер может плохо отразиться на результате. Приводимые ниже простые инструкции — отличное подспорье для начинающих, потому что на все про все потребуется около 20 минут и несколько обычных инструментов. Данные инструкции касаются конкретно Solidoodle 2, но они справедливы и для любого RepRap-принтера и программы Repetier Host. Самое главное, что в дальнейшем значительных изменений в настройках не потребуется. Приступим!



Подготовьте следующее:

  1. отвертку
  2. штангенциркуль (линейка тоже подойдет)
  3. маркер
  4. карандаш и бумагу
  5. 3D-принтер
  6. компьютер

Измеряем

Отметьте на нити филамента 100 мм. Обратите внимание на то, чтобы расстояние между нижней и верхней отметками было правильным.



Выравниваем

Установите длину экструдирования в «1», нажмите и удерживайте указывающую вниз нижнюю стрелочку до тех пор, пока ваша нижняя отметка не окажется на уровне верхней части экструдера («верх» и «низ» здесь условны и зависят от того, как вы все это делаете). На этой картинке видно, что нижняя отметка находится на уровне экструдера.



Экструдируем

Установите длину экструдирования в «100» и нажмите стрелочку вниз. Если все идет по плану, верхняя часть нити, которая находилась на 100 мм над экструдером, должна оказаться точно на нем.

Измеряем

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


Нажмите Config, потом EEPROM Settings (это все наверху окна). Перед первой строкой написано Steps per mm. С самого правого края написано E: и какое-то число. Оно обозначает количество шагов, которые делает шаговый механизм вашего экструдера, чтобы выдавить 1 мм филамента.

Пропорция

Составьте пропорцию между требуемой длиной экструдирования (100 мм) и измеренной (в нашем случае 105,03 мм).

(требуемая длина) х (количество шагов) = (измеренная длина) х (новое количество шагов)

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

  1. Решаем пропорцию и в нашем случае получаем: (новое количество шагов) = (100 * 113,68) / 105,03
  2. Таким образом, (новое количество шагов) = 107,958
  3. Вводим новое значение в поле Steps per mm и жмем Save to EEPROM.


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

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

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

Каретка поехала вниз и начала давить стол, пока не уперлась в шкивы двигателей по оси 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

Распаковываем его в подготовленную папку.

Теперь скачиваем Arduino IDE для исправления и загрузки прошивки в 3D принтер. Ссылка . Давим на Windows Installer . Скачивается установщик arduino-1.6.5-r2-windows.exe . Запускаем его и устанавливаем среду Arduino IDE .

Переходим в папку с прошивкой и запускаем файл Marlin.ino .

Открывается среда Arduino IDE с прошивкой. Нам нужна вкладка Configuration.h .

В начале мы видим ссылки на калибровку 3D принтера. Пролистываем дальше и читаем: "Это конфигурационный файл с основными настройками. Выберите тип контроллера, тип температурного датчика, откалибруйте перемещения по осям и сконфигурируйте концевые выключатели ."

Начнём с выбора контроллера (MOTHERBOARD). Список контроллеров находится во вкладке boards.h . Давим на треугольник в правом верхнем углу и выбираем boards.h .

Теперь посмотрим на установленную электронику. Вот самые распространённые типы плат :

Melzi

Sanguinololu

RAMPS 1.4

У меня стоит RAMPS 1.4 .

Следующим выбираем датчик температуры - термистор , для хотэнда и стола. Видим большой список "//// Temperature sensor settings:". У меня стоит хотэнд E3D-v5 и китайский термистор на столе. Для E3D-v5 я выбираю "// 5 is 100K thermistor - ATC Semitec 104GT-2", для стола "// 1 is 100k thermistor - best choice for EPCOS 100k". Если тип термистора неизвестен можно выбрать 1, а если температура не понравится можно выбирать любой и тестировать. Меняю.

100K thermistor - ATC Semitec 104GT-2

Обычный китайский термистор 100К

У Ultimaker Original в хотэнде стоит термопара . При подключении термопары важно соблюдать полярность. Тип сенсора "-1".

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

Ограничение максимальной температуры хотэнда "#define HEATER_0_MAXTEMP 275".

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

Ограничение минимальной температуры хотэнда "#define EXTRUDE_MINTEMP 170".

Настройка концевых выключателей

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

Нам нужно узнать где они расположены. Как это узнать? Начало координат находится в ближнем левом углу на поверхности стола, если сопло вывести в эту точку, то сработали бы концевики MIN , если в правую дальнюю верхнюю - сработают MAX . У меня в положении HOME находятся три концевых выключателя MAX , поэтому мои установки

// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1

Команда M119 (например в ) показывает состояние концевых выключателей. У меня концевые выключатели стоят только в позиции HOME на MAX .

Так должно быть:

В положении HOME

В положении отличном от HOME по всем осям

Если у Вас не получилось как у меня, то состояние концевых выключателей по выбранной координате нужно инвертировать , это можно сделать в прошивке или перепаять провода. З начения false или true. Мне ничего менять не потребовалось.

const bool X_MIN_ENDSTOP_INVERTING = true;

const bool Y_MIN_ENDSTOP_INVERTING = true;

const bool Z_MIN_ENDSTOP_INVERTING = true;

const bool X_MAX_ENDSTOP_INVERTING = true;

const bool Y_MAX_ENDSTOP_INVERTING = true;

const bool Z_MAX_ENDSTOP_INVERTING = true;


Изменение направления вращения шаговых двигателей , значения false или true . Правильные перемещения сопла относительно стола:

  • По оси X - влево "-", вправо "+".

  • По Y - вперёд "+", назад "-".

  • По оси Z - сближение "-", удаление "+".

  • Экструдер. Extrude - выдавливание нити, Reverse (retract) - откат, втягивание нити.

#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR true

Установка габаритов перемещения , после инициализации в положении HOME . Здесь мы задаём габариты максимальных перемещений по осям X и Y, а также настройку сопла относительно стола.
Если при касании стола соплом срабатывает концевой выключатель (MIN ), как у Ultimaker Original, то поднастройка сопла относительно стола выполняется перемещением концевого выключателя, а в "#define Z_MAX_POS" записываем значение координаты при максимальном удалении сопла от стола. Координату можно узнать по команде М114 или посмотрев на экран дисплея.
Если концевой выключатель по Z срабатывает при максимальном удалении сопла от стола (MAX ), то нужно найти габарит по Z самостоятельно. Устанавливаем значение "#define Z_MAX_POS" изначально больше нормы, например 250 при габарите 200 мм. Опускаем сопло до касания стола и на дисплее (или по команде M114 ) видим координату больше нуля, теперь вычтем из установленного большого значения полученную координату и получим габарит по Z, который теперь запишем в "#define Z_MAX_POS". По итогам печати первого слоя можно будет подкорректировать это значение.

Можно подкорректировать скорость перемещения в положение HOME . Обычно занижают скорость по оси Z, если стоят кривые шпильки.

#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)

Переходим к самому важному. Настройка шагов перемещения по осям . Экструдер тоже ось. Мои настройки:

#define DEFAULT_AXIS_STEPS_PER_UNIT {(200*16)/(2.0*20),(200*16)/(2.0*20),200*1 6/1.25,(3200 * 39.0)/(11.0 * 6.75 * 3.45)}

Теперь посмотрим, как я их получил . По всем осям стоят шаговые двигатели 200 шагов на оборот, 16 микрошагов на шаг (устанавливается перемычками на плате), приводной ремень GT2 с шагом 2 мм, 20-ти зубые шкивы, итого получаем формулу (200*16)/(2.0*20). По оси Z стоят шпильки М8 с шагом резьбы 1,25 мм, итого формула 200*16/1.25.

Находим спецификации (даташит) на установленные шаговые двигатели . Видим, что за один шаг вал поворачивается на 1,8 градуса, а это значит 360/1,8=200 шагов на полный оборот. Этот параметр одинаковый у большинства шаговых двигателей устанавливаемых в домашние 3D принтеры.

Профили ремней, обычно используемых на 3D принтерах и их шаг. Оригинал , страница 61.

Шкив

Как померить шаг винта ? Замеряем участок винта и считаем на нём витки, затем длину участка в миллиметрах делим на количество витков 20/16=1.25 мм. Для более точного результата замеряем максимальный участок винта.

Настройка экструдера зависит от коэффициента редукции и диаметра подающей шестерни. Подберём экспериментально, после первой заливки прошивки в 3D принтер. Откручиваем сопло и уменьшаем ограничения минимальной температуры сопла до 5 градусов "#define EXTRUDE_MINTEMP 5". Теперь экструдер будет работать при холодном сопле , что нам и нужно. Пока не меняем настройки экструдера. Для настройки я использую программу . Для начала ставим 50 мм и скорость 100 мм/сек. 50 мм - это длина прутка, проходящего через экструдер. Измеряем длину прутка прошедшего через экструдер линейкой или штангенциркулем.

Подбирая настройку экструдера добиваемся точной цифры на разумной длине прутка, например 300 мм. После настройки вернём ограничения минимальной температуры "#define EXTRUDE_MINTEMP 170" .

Следующие цифры - это ограничение максимальной скорости перемещения по осям . На X и Y я ставлю 200 мм.

#define DEFAULT_MAX_FEEDRATE {200, 200, 5, 25}

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

#define DEFAULT_MAX_ACCELERATION {1000,1000,100,10000}
#define DEFAULT_ACCELERATION 1500

Осталось активировать LCD дисплей с SD картой . Свой дисплей я нашёл на RepRap.org и идентифицировал как RepRapDiscount Smart Controller .

Раскомментируем следующие строки. То есть убрать двойные слэши. Строка за "//" не используется и является только комментарием. Когда убираем слэши строка принимает участие в компиляции прошивки и задействует её функции.

#define ULTRA_LCD
#define SDSUPPORT
#define ULTIPANEL
#define REPRAP_DISCOUNT_SMART_CONTROLLER

Для подключения LCD к Ultimaker нужно раскомментировать только одну строку

#define ULTIMAKERCONTROLLER

Есть ещё один твик для повышения точности срабатывания некоторых концевых выключателей. При настройке нуля по Z столкнулся с тем, что после каждой инициализации HOME положение сопла над столом немного менялось. Порывшись в прошивке нашёл параметр отвечающий за длину отката при инициализации концевых выключателей. Переходим во вкладку



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: