Привет, ЛОР.
Так получилось, что я давно сюда ничего не писал, и уже начал немного скучать. Давай я расскажу тебе про свой 3d принтер.
На скриншоте запечатлен процесс изготовления пластиковой детали, состоящий из разработки трехмерной модели, преобразования модели в G-code и печати на 3d принтере.
Модель спроектирована во FreeCAD 0.16. Несколько лет назад FreeCAD у меня глючил, сегфолтился и не работал. Но в последней версии разработчики существенно подтянули стабильность, ну или я просто научился нормально его собирать в своей gentoo. Сейчас это вполне годная (и единственная?) свободная трехмерная САПР в GNU/Linux. Осваивал его по серии видеоуроков на youtube.
После создания модели её нужно преобразовать в G-code. Для этого существует ряд свободных и коммерческих программ, которые называются 3D printer slicing application, или просто слайсеры. Я использую Slic3r. Преобразование модели в G-code — это самый ответственный и сложный этап. Часть работы софт делает автоматически, но пользователю нужно самостоятельно подобрать ряд таких параметров, как скорость печати различных частей детали (внешних границ, заполнения, «мостов», верха, низа и т.д.), температуры сопла и стола, толщины слоев и т.д. От этих параметров зависит качество и время печати. Неправильно подобранные параметры могут привести к отклеиванию от стола, расслаиванию, расплавлению, ну или просто кривизне детали. В интернете есть множество дельных рекомендаций на этот счет, но все равно для качественной и относительно быстрой печати приходится подбирать эти параметры опытным путем для каждого бюджетного 3d принтера (не для конкретной модели, а для конкретного экземпляра с его перекосами, сделанными при сборке, криво выточенными китайскими осями и подшипниками, погрешностями термопар, которые делают обратную связь от нагревателей, красителя в пластике и т.п.).
Когда у вас есть готовый G-code, его нужно отправить на принтер. Сделать это можно массой способов, например, можно сохранить его в текстовый файл на sd карту и вставить её в принтер, или подключиться к принтеру через minicom и вбить команды через терминал. Я использую для этого хост из OctoPrint на raspberry pi. OctoPrint — это приложение с веб-интерфейсом, через который можно управлять принтером, следить за процессом печати через веб-камеру и визуализатор G-code'а. Еще у OctoPrint есть REST API, с которым умеет работать Slic3r, куча плагинов и возможность удобной интеграции своих скриптов в веб-интерфейс.
Сам принтер называется Anet A6 и представляет собой китайскую модификацию свободного принтера Prusa i3. Обошелся мне в 14к руб. с доставкой из Китая. По сути это простой ЧПУ станок с экструдером. Как и все 3d-принтеры из его ценового сегмента (до ~$500), он не умеет работать по принципу магического ящика, которому на входе дают пластик и модель, а на выходе получают деталь. С ним нужно разбираться. В нем нет защиты от дурака, а подготовленный человек вполне сможет буквально разломать его на части, имея лишь доступ к последовательной шине передачи данных. Но в этой простоте есть свои плюсы в виде широких возможностей модификации. Почти каждый владелец дешевого китайского 3d принтера рано или поздно начинает печатать на нем свой 3d принтер. Плата управления сделана на базе ATmega1284 и CH340. Для нее в данный момент есть две свободные альтернативные прошивки.
Сейчас я добился относительно приемлемого качества печати со средней скоростью до 100 мм/с. С большей скоростью акриловая рама начинает раскачиваться так, что печатать уже невозможно. На скриншоте печатается пинхол для байонета К со средней скоростью 30 мм/с. Печать шла около двух часов, вот так выглядит финальный результат. Можно было бы и лучше, но я плохо откалибровал стол перед печатью и получилось так, как получилось. Вот несколько фото, снятых на эту поделку: 1 2 3. А вот для сравнения резьба М39, которую я напечатал за 1.5 часа с нормально откалиброванным столом и правильно подобранными параметрами для пластика. Она идеально накручивается.
В целом, качество печати обратно пропорционально скорости печати. Скорее всего, я даже смогу на своем кривом дешевом принтере напечатать заднюю крышку смартфона, внешне неотличимую от качественного заводского литья/штамповки. Только одна печать при этом займет больше суток. И тут мы подходим к самой главной проблеме: я боюсь надолго оставлять работающий принтер без присмотра. Нагреватель в экструдере вполне может расплавить алюминиевый подшипник. В принципе, такого не должно произойти, т.к. в прошивке есть защита от перегрева и аварийное отключение при выходе термопары из строя. Но даже, если бы эту прошивку писал я сам, и был бы на 100% в ней уверен, управляющую плату, контроллер и прочие компоненты на плате делал всё равно не я. И я в любом случае могу только верить или не верить в надежность и безглючность платы, но не могу ничего гарантировать. Расплавленный подшипник я увидел на фото на одном из форумов по 3d печати. В гугле можно найти еще много фотографий, которые наводят на размышления. И если даже принтер не сгорит, всё равно нужно следить, чтобы деталь не развалилась и не отклеилась в процессе печати, а вероятность этого велика даже на топовых принтерах, особенно если ты в первый раз печатаешь что-то сложнее кирпича. После нескольких проб и ошибок, конечно, можно подобрать оптимальные параметры в слайсере для конкретной детали и запустить серийное производство.
А так подробно я расписал предыдущие три абзаца, потому что после покупки принтера часто слышу вопросы вроде: «Почему печать детали весом в 100 г. стоит в конторе n*x руб., если 100 г. пластика стоят x руб.?», — где n>1. Пластик — это ничто по сравнению с трудом, который нужно вложить в подготовку детали к печати, даже если у вас есть готовая модель, и в обучение 3d печати в целом. Но все равно, трехмерная печать — это безумно круто, за ней будущее, и GNU/Linux готов к этому будущему уже сейчас.
>>> Просмотр (3200x900, 1164 Kb)