Приручаем динозавров, или как я писал свой собственный host controller для лаборатории 3D-печати

В этой статье я хочу рассказать о своем опыте разработки свободного ПО для управления 3D принтерами на Qt5, проблемах и особенностях общения с RepRap’ами и прочим радостям.
Результатом этого опыта стал RepRaptor — минималистичный свободный host-controller для 3D принтеров.

Всех интересующихся приглашаю под кат.
Немного предыстории
За последний год я сильно заинтересовался 3D печатью, и не просто 3D печатью, а ее свободной составляющей — проектом RepRap. Руководство ВУЗа поддержало начинания, и в течении этого года моими и единомышленников усилиями в МГТУ МИРЭА открылась лаборатория 3D печати.
Очень скоро возникла проблема — существующее в экосистеме ПО имело недостатки, которые сильно мешали работе. Поэтому было решено эти проблемы ликвидировать, создав свое ПО.
- Они все написаны на интерпретируемых языках, открытие и разбор файлов занимают на слабом железе иногда и по 10 минут;
- Те из них, что написаны на Mono еще и периодически падают, и обрекают кучу пластика на безвременную кончину (Виновато тут, скорее всего, не само Mono, а минимальное внимание к сборкам на ней от авторов);
- В интерфейс вынесено мало кодов, зато встречается совсем уж избыточный функционал (прошу прощение за свой минимализм);
Почему Qt?

Как это все исправить? Довольно просто — написать хост на языке, который будет работать быстрее, и сделать его максимально простым. Сказано — сделано. Для разработки был выбран Qt, и не случайно. Этот замечательный фреймворк не только распространяется свободно, но и позволяет писать кроссплатформеные приложения без сопровождающей мультиплатформу в C++ боли, а так же не так давно периодически используемый мной QSerialPort стал официальной частью фреймворка.
Кроме того, я не знаю ни одной IDE, такой же быстрой и удобной для меня, как QtCreator.
Так как все окна, да и сам Ui в целом делался с помощью .ui файлов в WSIWYG редакторе Qt — я опущу все, связанное непосредственно с интерфейсом. Смотреть будем «под капот».
С чего начать, или как разговаривают принтеры
Общаться необходимо работать с целым зоопарком разнообразных плат (Melzi, RAMPS 1.4, Teensylu, Gen7 1.5.1 и т.д.), благо сообщество проекта RepRap уже давно определилось с протоколом и списком команд. Для общения с любой платой используется серийный порт и протокол G-code.
В своей лаборатории 3D печати мы с товарищами используем прошивку Repetier, которая, на ряду с прошивками Marlin и Teacup поддерживает большинство стандартных кодов.
Первое разочарование — протокол
Спецификация серийных портов RS-232 обширна и интересна, но, к сожалению редко где используется на полную. При эмуляции серийного порта по USB, очень часто к микроконтроллеру подключаются только линии TX и RX, отвечающие за передачу данных. Линии, такие как DTR (сброс при подключении), обычно не используются, и это печально.
- Принтер сообщает о простое строчкой wait;
- Хост отправляет команду G-Code, кончающуюся переносом строки;
- Принтер подтверждает прием команды строчкой Ok <номер строки>.
Выглядит это примерно так:
Где cs — вычисленная контрольная для строки.
Как правило кодогенераторы, преобразующие 3D модели в G-Code для печати контрольных сумм не генерируют, а оставляют это на усмотрение хоста.
У принтера есть буффер, размер которого в большинстве случаев составляет 16 команд.
Реализация протокола
Qt имеет отличную функцию для облегчения жизни разработчику — сигналы и слоты.
Сигнал — это новое для C++ понятие. Сигнал объявляется в классе подобно слоту:
Сигнал не может ничего вернуть, поэтому всегда имеет тип void, а вместо аргумента указывается тип передаваемой сигналом переменной. Инициализировать его не требуется.
Вызывается сигнал из любого метода родительского класса, и очень просто:
После такого вызова все слоты, присоединённые к этому сигналу будут вызваны при первой возможности в порядке присоединения, и им передастся значение 100.
Что такое слот? Коротко — это самый обычный метод, объявленный слотом
Соединяются сигнал со слотом тоже очень просто:
Есть и ограничение — у сигнала и слота обязательно должен совпадать передаваемый тип.
Учитывая сигналы и слоты можно очень легко написать асинхронный приемник\передатчик для связи по серийному порту.
Самая простая часть — чтение.
Для реализации связи по серийному порту используется упомянутый выше QSerialPort (экземпляр которого назовем «printer»), имеющий сигнал readyRead(), вызывающийся каждый раз, когда на порт приходит информация. Все что от нас требуется — это создать в своем классе слот, который мы и будем вызывать при появлении этого сигнала, соединить их, и ждать. Что же мы будем читать? Как уже описано выше, в первую очередь нас интересуют ответы ok и wait. Так как наш код исполняется асинхронно, а у принтера есть буфер — нам надо где-то сохранить колличество строчек ок, которые мы приняли, чтобы при отправлении знать, сколько мы можем отправить. Хранить их будет в переменной «readyRecieve».
Отлично, с приемом разобрались. А что у нас с отправкой? Вот тут и видим дефект протокола. Никакой аппаратной команды для обозначения готовности к приему данных у нас нет, а значит нету и соответствующего сигнала у нашего QSerialPort. Значит отправлять будем по таймеру. Таймер в Qt работает до безобразия просто и удобно — мы создаем экземпляр класса QTimer, соединяем его сигнал timeout() с нашим слотом, который будет выполнятся по этому таймеру, а после этого запускаем его — timer.start(ms). В последствии было выяснено, что в зависимости от производительности ПК оптимальный промежуток находится от 1 до 5 мс. Кстати, если указать таймеру промежуток 0, то выполнятся он будет как только у Qt появится свободная минутка.
Еще стоит упомянуть, что отправляем мы либо команду от пользователя, либо файл. Так как разбор файла сводится к заурядной загрузки файла в массив, а так же фильтровании линий целиком из комментариев (чтобы не отправлять лишнее на принтер и не захламлять память), я решил опустить эту часть. Массив строк из файла называется gcode.
Ну вот, с серийным портом разобрались? Еще нет. Еще нам надо отловить ошибки. Для этого вновь прибегнем к сигналам и слотам, на этот раз будем слушать сигнал error(SerialPort::SerialPortError error) от нашего экземпляра QSerialPort:

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

Иконок пока нет, но они обязательно появятся в последующих релизах. Реализация большинства этих кнопок весьма простая:
Метод injectCommand, способ работы которого мы уже узнали ранее, в реализации отправщика кода тоже весьма прост:
Получаем дополнительные данные
RepRap — это суровый DIY. Настолько суровый, что случается всякое:

Далеко не всегда во время настройки можно быть уверенным, что принтер поведет себя так, как надо. Одним из очень важных значений является температура, и следить за ней жизненно необходимо. У некоторых людей на принтере есть дисплеи, отображающие оперативную информацию, но далеко не у всех. К тому же, можно физически находится от принтера далеко, или под неверным углом, и читать дисплей уже не выйдет. Именно поэтому требуется отображать температуру, и чем оперативнее — тем лучше.
Под температуру определим отдельную группу элементов
Как же ее узнать? Во время нагрева, принтер перестает принимать команды, и вместо ok или wait начинает присылать температуру. Строка температуры выглядит так:
Читаемо для человека, но не очень удобно для разбора. В первых версиях я разбирал эту строку прямо в слоте, отвечающем за прием информации, но тесты показали, что разбор строки прямо в этом слоте слишком сильно замедляет работу программы. До последнего я пытался избежать работы с потоками, так как одна из главных причин, по которой RepRaptor был написан — быстродействие. Многопоточность отлично ускоряет работу софта на многоядерных системах, но у нас с железом было все не так радужно. Однако выбора не осталось — надо было перенести в отдельный поток либо разбор, либо само соединение. Было решено пойти на компромисс — перенести разбор в отдельный поток, и позволить пользователю отключить проверку температуры.
Как реализована многопоточность в Qt? Очень удобно. Есть несколько способов создать отдельный поток. Полноценный способ — создать поток с помощью QThread, но нам не нужен полноценный поток для простого разбора строки, так что будем использовать другой способ — передадим нашу функцию разбора вместе с аргументам объекту QFuture, и будем за ним следить. Делается это так — для начала нам необходимо создать экземпляр QFutureWatcher, класса, который следит за QFuture, и сообщает нам о его состоянии. Затем надо написать нашу функцию разбора. Так как функция может вернуть только одну переменную, я решил создать специальный тип для передачи температуры:
И функция разбора:
Теперь осталось только отдать эту функцию потоку при удобном случае (вставляем дополнительную проверку в автомат функции приема):
Осталось только создать слот, чтобы подключить к нему сигнал, передающий из QFutureWatcher результаты выполнения функции:
Вот и все, теперь каждый раз, когда принтер сообщает нам о температуре — мы разбираем эту строку и красиво отображаем ее в интерфейсе.
Проблема в том, что сам принтер ее присылает только во время нагрева, но мы можем его попросить прислать нам ее в любое другое время, отправив команду для проверки температуры M105. Отправлять ее будем по таймеру, при выполнении нескольких условий. Так же, как и ранее для функции отправки создаем новый таймер, и новый слот для подключения к его сигналу. На этот раз таймеру ставим значение побольше, например 1500мс:
Кто-то возможно скажет, что эти проверки излишние, но когда ты управляешь принтером с Asus EEEPC 900AX, и хочешь одновременно читать хабр — это необходимость.
Печать с SD карты

Очень многие типовые платы для 3D принтеров имеют встроенный слот для SD карты, или способ такой слот подключить. Такой метод печати является предпочтительным, так как в любой момент можно отключится от принтера и уйти, однако каждый раз вытаскивать SD карту зачастую лень, особенно если печатаешь много мелких деталей. Конечно, можно передать файл через серийный порт, но передача файла таким способом занимает едва ли меньше времени, чем сама печать.
- Получать список файлов
- Выбирать файл
- Поставить файл на печать
- Поставить печать на паузу
- Сообщать о прогрессе
Каждый раз когда на хост будет приходить строка, с которой начинается список файлов на SD — будем открывать диалог со списком файлов. Для этого еще раз изменим наш приемник:
Флаг нужен, так как наш метод чтения вызывается для каждой строки.
За одно для открытия диалога будем посылать сигнал. Самому же себе. Да, соединять можно даже сигналы со слотами одного и того же объекта.
Слот, который мы подключаем к этому сигналу:
После этого надо перевести интерфейс в режим печати. Я сделал это путем введения дополнительного флага sdprinting. Статус печати с SD карты проверяется в схожей манере с температурой.
Софт — в массы
Как бы сильно я не любил GitHub — далеко не все любят собирать софт сами. Не смотря на кроссплатформенность Qt — это фреймворк, а не среда для кросс-компиляции. А это значит, помимо бинариков под платформу Linux-amd64 нужны еще бинарики под Linux-i386, Windows 32 и OSX 64. Что ж, с первыми двумя все просто — достаточно добавить нужные наборы в QtCreator. А как быть с Windows 32 и OSX 64? С последней — никак. Я пытался, но я умываю руки. Единственный способ собрать что-то под OSX — делать это на OSX. К сожалению, легально это сделать не возможно.
Debian и его пакеты
Очень хотелось собрать пакет под любимый Linux Mint, на котором и ведется разработка. По началу я хотел собрать пакеты для PPA, но в итоге пришел к тому, что собирать надо со статическими библиотеками Qt, а потому пакеты на первое время собирать пришлось руками. Почему статическая линковка? Все очень просто — даже в Ubuntu 14.04, на которой основан Mint в источниках имеется только Qt 5.2.1. В ходе тестов первых двух релизов на разных системах выявились баги QSerialPort, исправленные в новых версиях, а потому было принято решение поставлять все с последними версиями. К тому же, вики Qt говорит, что статически линкованые библиотеки несколько быстрее работают.
Руками пакет собирается весьма просто — он должен содержать дерево каталогов файловой системы Debian, в котором размещены все файлы, которые мы собираемся установить. Написав .desktop файл для того, чтобы получить пункт в меню на конечной системе, я написал небольшой bash скрипт для сборки нужной мне версии пакетов:
Все, что он делает — это создает дерево каталогов, копирует иконки и .desktop файл, а после этого генерирует описание пакета для пакетного менеджера, вставляя нужную версию.
Windows и MXE
Одно дело — собирать пакеты под свою ОС, другое дело — под чужую. Тут необходим тулчеин — набор инструментов для сборки. Благо под Windows есть отличный MinGW, а для Linux есть не менее отличный MXE — менеджер окружения для кросс-компиляции с использованием свободных библиотек.
Установка до смешного простая — клонируем MXE и говорим ему, какие нам библиотеки нужны:
После этого можно смело идти пить кофе — сборка всего этого добра занимает приличное время.
После того, как сборка окончена — можно написать скрипт сборки проекта под Windows автоматически:
Просто и сердито. Работоспособность легко проверяется в Wine:

Выводы
Когда я это начинал — я надеялся написать простую отправлялку G-code файлов, которая ничего больше бы не делала, а справится планировал за вечер. Но, как это часто бывает — проект вышел за рамки изначального плана, и теперь представляет из себя нечто большее. Впереди еще много чего предстоит сделать — хотя бы тот же графический редактор EEPROM, которого так не хватает, а так же поддержка контрольных сумм.
Однако уже сейчас RepRaptor позволяет мне спокойно использовать свой ASUS EEEPC как стабильный хост для принтера, чего не мог достичь ни один другой хост из тех, что я пробовал. Ну и знания Qt у меня определенно улучшились, и все равно еще есть место для оптимизаций.
Эта статья так же приурочена к выходу первой стабильной версии, которую я сам теперь использую каждый день — 0.2.
Программы для 3D печати и 3D принтера
Для того, чтобы получить любое изделие в 3 D нужно решить две задачи:
- Создать математическое описание объекта – объёмную модель;
- Объяснить устройству, как её печатать – в какой момент времени в какую точку добавить материал и как его отвердить.
Виды 3-х мерных объектов
- Твердотельные;
- Поверхностные – сеть.
Что такое слайсеры и зачем нужны?
Слайсеры и программы для работы с моделями для 3D принтера
Kissslicer

Одно из самых популярных средств для работы с печатью моделей. Есть платная и бесплатная версии. Платная отличается поддержкой нескольких сопел, облачным сервисом, библиотеками, большим количеством настроек, инструментов. Почти все платные опции нужны для аппаратов с несколькими соплами и построения сложных объектов. Нет больших возможностей по редактированию. Зато реализована функция непосредственного редактирования G-кода, что позволяет напрямую управлять всеми органами устройства. Бесплатная версия для любой операционной системы. На этой же странице можно перейти к платной профессиональной версии. Скачать Kissslicer (Бесплатная)

Одно из самых удобных и интуитивно понятных приложений от производителя 3D принтеров Ultimaker. Получила самое большое распространение – это самый популярный слайсер для 3D принтера. Кроме инструментов редактирования, настроек материала, опций печати, включён ряд удобных функций по расчёту количества материала и его стоимости, веса изделия. Имеет открытый код. Полностью бесплатная, обновляемая утилита. Скачать Cura (Бесплатная)
Slic3r

Один из наиболее универсальных и проработанных продуктов с точки зрения построения и редактирования G-кода для принтера. Есть настройки практически всех функций непосредственной печати, поддержку нескольких сопел и нескольких типов применяемых материалов. Реализована возможность редактирования G-кода пользователем. Скачать Slic3r (Бесплатная)
CraftWare

- Работа с моделью;
- Работа с поддержками и заполнением пустот;
- Слайсер – нарезка модели для печати.
123D Catch

Это инструмент от Autodesk, который позволяет создать 3D объект из снимков камеры. Существует версия и для Android, позволяющая сделать из смартфона 3D сканер. В результате обработки снимков с различных ракурсов строится поверхностный объёмный объект в нескольких распространённых форматах 3D графики. Все операции проводятся в облачном сервисе с использованием электронной почты для получения конечного файла. Визуализация изделия происходит непосредственно в среде утилиты. Распространяется и поддерживается бесплатно. Скачать 123D Catch (Бесплатная)
3D Slash

Очень мощная облачная программа, позволяющая создавать, редактировать и печатать 3D объекты. Интуитивно понятный, интерактивный интерфейс хорошо воспринимается для использования всех функций. Кроме загрузки, создания, редактирования объектов реализованы все функции слайсера и управления печатью. Пожалуй, самая простая и универсальная программа для 3d принтера, позволяющая создавать и печатать различные предметы. Скачать 3D Slash (Бесплатная)
TinkerCAD

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

Онлайн редактор для построения и редактирования сетевых 3D моделей. Очень простой, быстрый и интуитивно понятный. Не требует начальных навыков. Работает только в облаке. Позволяет создавать простые предметы с последующей их конвертацией в stl – файлы. Сервис представляет собой одну из свободно распространяемых CAD tools, работа с которыми возможна только после регистрации на https://www.tinkercad.com/ или сервере инструментов Autedesk http://formit360.autodesk.com/.
Blender 3D

Интересный трёхмерный редактор. Очень прост, но довольно функционален для построения различных изделий из большой библиотеки примитивов. Для редактирования есть набор удобных инструментов. Сохраняет файлы в большинстве используемых форматов, поэтому его часто используют в качестве конвертора. Изначально утилита была написана для объёмной анимации, но постоянные доработки и расширения сделали её вполне пригодной для конструирования деталей. Инструмент распространяется бесплатно, имеет открытый код. Скачать Blender 3D (Бесплатная)
Подведем итоги:
Перечень представленных инструментов совсем не полный – их уже существует намного больше. Появляются новые, а существующие очень быстро совершенствуются. Появляются интуитивно понятные возможности редактирования G -кода, простые способы редактирования поверхностных объектов, инструменты наглядного управления непосредственными функциями печати. Мы стоим на пороге технологического взлёта этой новой отрасли, внося свой посильный пользовательский вклад в её становление и совершенствование.
Топ бесплатных программ для 3D печати в 2021 году
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.

Как подготовить 3D модель к печати или научиться создавать модели с нуля? Какое программное обеспечение лучше всего подходит для новичков? На все эти вопросы можно найти ответ в нашей статье. Представленные в обзоре приложения полностью бесплатны или имеют бесплатные версии для студентов, преподавателей и проектов с открытым исходным кодом.
Рабочий процесс 3D печати
Если вы стали счастливым обладателем 3D принтера, но совершенно не представляете, что с ним делать и как начать работу, тогда эта часть статьи для вас.
Для печати 3D моделей используются разные программы:
- ПО для трехмерного моделирования/дизайна/САПР;
- ПО для редактирования, просмотра и восстановления файлов STL;
- Программы-слайсеры;
- Хост 3D принтера.
Перед тем, как приступить к работе, необходимо создать 3D модель. Для этого можно использовать разные программы для моделирования. Подробно о бесплатных версиях ПО для 3D моделирования мы писали здесь.
Небольшой лайфхак для начинающих. Если вы не готовы создавать модель своими силами, выбрать и скачать подходящую можно с торговых площадок. В сообществах мейкеров есть также бесплатные ссылки для скачивания — иногда предложенные 3D модели могут быть не только интересны, но и полезны.
После создания 3D модели ее необходимо преобразовать в формат, подходящий для печати. Для настольных 3D принтеров это формат STL. Некоторые созданные или скачанные файлы имеют дефекты, которые ведут к сбоям во время печати. Именно для редактирования файлов STL есть специальной программное обеспечение, которое помогает подготовить модель к воспроизведению на принтере.
Программа слайсер помогает преобразовать STL файл в понятный для принтера G-код. Функционал таких программ позволяет разбить 3D модель на тысячи плоских 2D слоев, которые будут последовательно воспроизводиться на принтере.
И, наконец, хост 3D принтера обеспечивает связь между компьютером и принтером. Он позволяет получать информацию для печати, а также изменять параметры работы устройства в режиме реального времени через ПК. Часто Слайсер и хост объединены в одно ПО для 3D печати, которое поставляется производителем принтера.
Дорогие читатели портала 3DToday хотим вам сообщить, что у нас на сайте интернет-магазина LIDER-3D открылся новый раздел «База знаний». В данном разделе мы делимся совами, опытом, настройками и секретами мира аддитивных технологий, переходите в раздел по данной ссылке.
Лучшие слайсеры и хосты для 3D принтера
Одна из популярных программ-слайсеров, которая поставляется вместе со всеми принтерами Ultimaker. Однако ее функционал подходит для использования совместно с другими 3D принтерами. Поскольку это ПО является одним из самых популярный среди мейкеров, можно не тратить время на настройки профиля — для большинства принтеров их можно найти в самой программе.
Софт предназначен для изменения важных настроек печати. Начните с режима “Recommended”,чтобы выбрать улучшенные параметры качества для принтера и легко адаптироваться в работе с программой.
Более точный контроль всех параметров возможен в пользовательском режиме “Custom”. Перейдя в этот режим вы сможете управлять более 400 разными настройками.
Cura — это не только простой и понятный слайсер для домашних пользователей. Софт можно использовать в качестве главного программного обеспечения для вашего принтера, а также интегрировать с САПР, например с SolidWorks или Siemens NX.
Программа постоянно обновляется и дополняется, что позволяет сделать 3D печать на вашем принтере более качественной.
PrusaSlicer
Это программное обеспечение основано на базе Slic3r и в отличие от прототипа завоевал большую популярность среди пользователей. Главным отличием является большой список настраиваемых параметров и дополнительные функции, делающие работу более удобной.
Удобный пользовательский интерфейс, встроенная поддержка принтеров Prusa и настройки для разных видов пластика помогают легко приступить к работе с 3D принтером. Также слайсер позволяет размещать дополнительные поддержки, работать с разными материалами и использовать плавные функции с переменной высотой слоя.
Слайсер PrusaSlicer можно использовать как для работы с FDM принтерами, так и с устройствами, печатающими смолами. Панели настроек для пользователей с разным опытом в 3D печати помогают значительно улучшить качество готовых моделей.
Отличный бонус для тех, кто до этого работал со Slic3r — PrusaSlicer поддерживает большинство исходных функций и принимает пакеты конфигурации Slic3r ри импорте профилей.
MatterControl 2.0
MatterControl — это CAD программа для моделирования,слайсер и одновременной хост для 3D принтера. Благодаря функциям хоста вы можете напрямую контролировать печать при подключении принтера через USB. Также программа позволяет нарезать файлы формата STL для экспорта на SD-карту для автономной печати и конечно же, создавать проекты в отдельном разделе программного обеспечения САПР.
Структурированный интерфейс позволяет легко создавать модели и подготавливать их к печати. Файловый браузер и библиотека геометрических примитивов помогают легко импортировать данные в печать. Геометрические фигуры можно использовать в качестве поддержек, что помогает добиться высокого качества печати сложных деталей.
Расширенные настройки печати и удобная программа для просмотра делают это ПО одним из лучших для комплексного контроля процесса 3D печати. Кроме функций хоста и слайсера, MatterControl имеет инструменты для дизайна,которые позволяют проектировать детали. Полученные 3D модели легко экспортировать в слайсер и распечатать. Таким образом, программа позволяет контролировать весь процесс — от создания модели, до ее нарезки и отправки в печать.
3DPinterOS
3DPrinterOS — облачная программа для управления 3D принтером. Она сочетает в себе функции слайсера, хоста и редактора файлов STL. В программе можно создавать очередь на печать, управлять принтером и системой подключаемых модулей на основе приложений для анализа и восстановления данных STL, а также выполнять облачную нарезку.
Бесплатный пакет Starter позволяет пользователям загружать G-коды и отправлять их в печать, удаленно контролировать процесс печати и получать поддержку на форуме единомышленников. За умеренную плату можно получить доступ к дополнительным функциям, включая возможность совместной работы над проектом.
По сути эта программа является универсальным средством конвертации файлов для печати в формат STL. Именно поэтому 3DPrinterOS подходит для небольшого бизнеса, обучения, производства и дизайна.
KISSlicer
Аббревиатура этого приложения “Keep It Simple Slicer” может смутить неопытных пользователей. На самом деле это довольно сложный инструмент для 3D печати. Противоречивые отзывы пользователей тем не менее позволяют сделать вывод о том, что программа популярна и имеет достаточный функционал для работы с 3D принтерами.
Бесплатная версия программы подходит для большинства пользователей, которые работают на принтерах с одним экструдером. KISSlicer помогает упростить некоторые аспекты нарезки с помощью Profile Wizards для настроек конкретного принтера и Tuning Wizards для оптимизации материалов. Платная версия программы позволяет работать с принтерами с 2 экструдерами.
Хотя настройки приложения довольно сложны, но усилия того стоят — слайсер позволяет обеспечить полный контроль над всем процессом печати.
Slic3r
Это программное обеспечение предназначено для слайсеров с открытым исходным кодом. Его главное отличие — передовые функции, которые не встречаются больше ни в одном приложении.
Несмотря на то, что Slic3r почти не выпускает обновлений для своей программы, она является базовой для многих других ПО с открытым исходным кодом. Например, во многих программах используется трехмерное сотовое заполнение полостей, что является особой заслугой разработчиков Slic3r.
В 2018 году вышла новая версия софта с новыми интегрированными функциями. Так, в этой версии есть новые шаблоны заполнения, экспериментальная поддержка принтеров SLA и DLP, формат 3MF, а также печать через USB.
На сайте ПО можно найти подробное руководство, которое дает представление обо всех функциях Slic3r. Отличным бонусом программы является прямая интеграция с OctoPrint для печати одним нажатием кнопки.
SliceCrafter
Браузерный слайсер от разработчиков IceSL.С помощью программы можно быстро загрузить STL файлы, нарезать их, а затем подготовить G-код к печати. В браузерной программе можно воспользоваться практически всеми опциями, которые предлагает IceSL.
Несмотря на то, что многие пользователи считают эту версию менее мощной, она подходит для новичков, которые не хотят настраивать более сложные программы для 3D печати.
IceSL
Программа IceSL — отличный инструмент для 3D моделирования и печати. Несколько рабочих окон позволяют редактировать модель напрямую через скрипт на языке Lua, выбирать разные настройки для нарезки модели, а также просматривать полученный результат в режиме реального времени. Несмотря на кажущуюся сложность работы с ПО, IceSL дает возможность изящного параметрического моделирования.
Меню настроек слайсера позволяет новичкам легко и быстро подготовить 3D модель к печати. В последней версии программы появилась возможность указывать разные значения настроек печати на определенной высоте слоя. Все это позволяет сделать плавные переходы от плотного к легкому заполнению и градацию толщины слоев от мелкого к крупному.
OctoPrint
Эта программа является хостом для 3D принтеров, который позволяет контролировать печать и менять настройки. ПО также дает возможность дистанционного управления принтером с помощью Wi-Fi модуля, подключенного к устройству.
OctoPrint принимает G-код практически от любого слайсера, при этом хост позволяет визуализировать полученные файлы до и во время печати. Кроме того, нарезку файлов можно осуществлять непосредственно в программе, используя ее в качестве слайсера.
OctoPrint предлагает не только широкий выбор инструментов для удаленного управления печатью, но и несколько способов отслеживания выполняемых задач. Вы можете настроить push-уведомления или отправку предупреждений через разные мессенджеры.
Программное обеспечение имеет открытый исходный код и активное сообщество пользователей, которое предлагает множество плагинов для расширения функционала программы. На странице сообщества можно найти множество надстроек, которые будут полезны при печати.
Repetier-Host
Любимый хост разработчиков Rep-Rap — Repetier является высокопроизводительным программным обеспечением для управления печатью и подготовки файлов.
Repetier-Host позиционируется как универсальное ПО, которое помогает управлять принтерами с большим количеством экструдеров (до 16 экструдеров), а также поддерживает практически любой 3D принтер, представленный на рынке.
Программа имеет функции удаленного доступа через Repetier Server, что позволяет управлять своим принтером через браузер на ПК, планшете или смартфоне.
AstroPrint
Как и 3DPrinterOS эта программа является облачным решением для контроля и управления вашими 3D принтерами. Также, с помощью AstroPrint можно менять настройки слайсера, управлять профилями принтера и материала. Бесплатная учетная запись позволяет сохранять информацию для печати, а также иметь доступ ко всем настройкам через браузер или мобильное приложение AstroPrint.
Это ПО уникально тем, что оно совместимо с Thingiverse и MyMiniFactory, а также с бесплатными версиями CAD программ, например с 3D Slash и Leopoly. Также у приложения есть инструменты для нарезки 3D моделей с возможностью отправлять файлы в печать со смартфона.
Софт будет полезен тем, кто работает в крупномасштабных сетях, таких как 3D фермы, предприятия и университеты.
Лучшее программное обеспечение для редактирования и восстановления файлов STL
3D-Tool Free Viewer
3D-Tool Free Viewer предназначена для поверки структурной целостности файлов STL и возможности печати документа на вашем принтере. Дополнительные функции, например “Поперечное сечение”позволяют также заглянуть внутрь 3D модели и оценить некоторые параметры.
Эта программа может быть полезна, если вы хотите проверить свой STL файл на наличие ошибок. Удобный интерфейс программного обеспечения позволяет измерить размер, площадь поверхности и объем всех частей фигуры, а также изменить расстояние, углы и радиус одним нажатием кнопки.
Для тех, кто не обладает достаточными познаниями и опытом в САПР, программа предлагает быстрый способ проверки STL файла и подготовки его к 3D печати.
MakePrintable
Этот полезный веб-сервис позволяет проверить файлы STL а наличие ошибок и исправить критические значения,которые могут повлиять на печать. В отличие от других бесплатных программ, MakePrintable дает возможность полного контроля процесса. Вы можете выбрать уровень качества печати, сделать сетку пустотелой, исправить количество полигонов и даже объединить несколько мишеней в одну.
Хотя программа больше не предлагает бесплатную версию с ограниченным функционалом, пользователи могут найти несколько вариантов использования программы. Программа имеет разные возможности оплаты — за единичную загрузку файла (около 2 долларов за файл) или пакет “Maker” с возможностью загружать до 30 файлов в месяц (ежемесячная цена около 15 долларов).
Преимуществом программы является совместимость плагинов с Blender и SketchUp.
Meshmixer
Программа Meshmixer — это супер современное и бесплатное программное обеспечение из семейства Autodesk для 3D печати для просмотра, проверки, редактирования и восстановления STL файлов. Эта программа помогает выявить потенциальные проблемы и автоматически устранить их. Например, программа идентифицирует недостаточную толщину стенок.
Программа позиционируется как универсальный инструмент для трехмерных сеток, предлагая множество инструментов для работы с сеткой, трехмерного моделирования, тиснения поверхности и других.
Пытаетесь ли вы исправить STL файл,подготовить модель к печати или сконструировать несколько объектов — Meshmixer идеально подходит для всех этих целей.
MeshLab
MeshLab — это приложение с открытым исходным кодом, которое позволяет редактировать файлы формата STL, а также имеет инструменты для работы с трехмерными треугольными сетками. Возможности софта помогают проверять, визуализировать, восстанавливать и преобразовывать сетки, и даже объединять модели в твердые тела и заделывать дыры.
Приложение отлично подходит для редактирования 3D моделей, созданных в САПР. Несмотря на то, что последняя версия была выпущена в 2016 году, программа по-прежнему пользуется популярностью у мейкеров.
NetFabb
NetFabb — это программное обеспечение для нарезки, которое включает в себя дополнительные возможности анализа и восстановления файлов STL. Один из самых мощных инструментов NetFabb направлен на оптимизацию процесса для пользователей, предлагая возможность создания поддержек, восстановление сетки и широкий выбор инструментов генеративного дизайна.
Программа бесплатна для студентов,в рамках подписки Autodesk. Трехлетняя лицензия для учащихся позволяет выбрать одну из версий:
- NetFabb Standard позволяет быстро подготовить модель к печати;
- NetFabb Premium с расширенными возможностями для создания решеток, поддержек и автоматической упаковки деталей;
- NetFabb Ultimate позволяет вычислить сбои в сборке, предоставляет инструменты для моделирования, настраиваемые стратегии траектории инструмента, а также помогает автоматизировать процесс подготовки модели к 3D печати;
- NetFabb Simulation помогает моделировать определенные технологии печати металлом до начала производства.
Лучшее бесплатное программное обеспечение для 3D моделирования и 3D печати
О программах для 3D моделирования, в которых разберется даже новичок, мы писали в этой статье. Здесь представлены не менее полезные, простые в использовании, а главное, бесплатные программы для трехмерного моделирования и 3D печати.
3D Builder
Приложение 3D Builder предлагает своим пользователям быстро визуализировать и редактировать 3D модели. Софт помогает создавать и импортировать файлы в форматах для трехмерной печати. Используя простые инструменты для редактирования, можно создавать трехмерные изображения даже пользователям начального уровня.
Приложение располагает собственной обширной библиотекой 3D моделей. Также можно загрузить внешний файл или использовать датчик Kinect V2 для сканирования и импорта нового 3D изображения. Присоединившись к сообществу 3D Builder и скачав SDK 3D Printing можно расширить возможности этой бесплатной программы.
Figuro
Этот браузерный софт для моделирования сочетает в себе доступность TinkerCAD и мощность более совершенных инструментов для 3D моделирования. Программа подойдет для тех, кто хочет улучшить свои навыки в проектировании, при этом не сильно углубляясь в детали.
Создание объектов в Figuro построено по принципу полигонального моделирования — вы генерируете многоугольники, изменяя их и объединяя друг с другом. Если вы пользуетесь программой впервые, рекомендуем использовать дополнительные инструменты проверки и восстановления файлов STL.
Программа имеет простой и приятный пользовательский интерфейс. Обширная галерея позволяет оценить возможности ПО и получить вдохновение на создание новых объектов.
Fusion 360
Fusion 360 — это профессиональная CAD программа для 3D моделирования. В отличие от других ПО, софт позволяет охватить весь процесс планирования, тестирования и трехмерного дизайна.
Программа имеет мощные инструменты для решения задач промышленного дизайна. Fusion 360 позволяет моделировать конструкцию проектируемых объектов а также нагрузки, с которыми они столкнутся после введения в эксплуатацию.
Возможность совместной работы над проектом, облачный обмен файлами и импорт/экспорт разных типов файлов САПР делает использование приложения комфортным.
Fusion 360 бесплатен для студентов, стартапов и любителей. При этом любительские проекты не должны быть коммерческими, доход стартапа не должен превышать 100000 долларов в год, а студенческая лицензия программы ограничена тремя годами.
FreeCAD
Многофункциональное программное обеспечение САПР позволяет отлично развить дизайнерские навыки. ПО для параметрического моделирования создает модели в соответствии с заданными параметрами. Большим преимуществом является возможность перетаскивания и управления объектами непосредственно с помощью мыши.
Особенность данной программы — возможность возвращаться в историю создания объекта и редактировать ее параметры. Несмотря на то, что софт бесплатен, он имеет все необходимые инструменты для полноценной работы.
FreeCAD позволяет пользователям рисовать 2D формы в качестве основы для создания дополнительных объектов. Программа подойдет для дизайна изделий, машиностроения, архитектуры и других областей.
OpenSCAD
В отличие от других представленных программ, OpenSCAD больше фокусируется на CAD аспекте 3D моделирования. Софт работает как 3D-камиллятор, который считывает файл сценария, описывающий 3D модель, а затем преобразует объект в 3D модель.
Программа с открытым исходным кодом постоянно обновляется, приобретая новые функции. Например, в последнем обновлении появилась новая панель Customiser. Получить поддержку и советы по использованию приложения и работе с обновлениями можно в сообществе пользователей.
ПО не имеет интерактивных компонентов, зато помогает лучше контролировать процесс моделирования и управлять настройками параметров конструкции. OpenSCAD считается идеальным инструментом для студентов.
Blender

Популярная программа автоматизированного проектирования САПР с крутой кривой обучения. Этот софт — не лучший выбор для новичка, но идеальна для тех, кто знаком с концепциями 3D моделирования и хочет создавать более сложные модели.
Последняя версия программы является более доступной. Так пользовательский интерфейс стал более удобным, а также появилось трехмерное окно просмотра. Расширенные дополнения Eevee, средство визуализации в реальном времени и Grease Pencil для 2D рисования и анимации значительно расширяют возможности программы.
Программа с открытым исходным кодом постоянно пополняется новыми функциональными решениями для комфортной работы.
OnShape
OnShape — мощная браузерная программа для САПР, которая предназначена для профессиональных пользователей. Софт позволяет организовать совместную работу над проектом и хранить данные в облаке.
Программа предоставляет всем членам команды мгновенный доступ к одной и той же рабочей области САПР и одним и тем же данным в облаке. Дополнительная возможность управления основным дизайном без необходимости сохранять копии и отслеживать разные версии файлов делает работу по-настоящему удобной.
Программа имеет бесплатную версию для студентов и преподавателей, а также пользователям, которые занимаются некоммерческими проектами.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.