Приручаем динозавров, или как я писал свой собственный 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 — мощная браузерная программа для САПР, которая предназначена для профессиональных пользователей. Софт позволяет организовать совместную работу над проектом и хранить данные в облаке.
Программа предоставляет всем членам команды мгновенный доступ к одной и той же рабочей области САПР и одним и тем же данным в облаке. Дополнительная возможность управления основным дизайном без необходимости сохранять копии и отслеживать разные версии файлов делает работу по-настоящему удобной.
Программа имеет бесплатную версию для студентов и преподавателей, а также пользователям, которые занимаются некоммерческими проектами.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Печать на 3D-принтере — процесс достаточно простой, если соблюдать правила работы с разными типами материалов и с конкретными моделями принтеров, но — со своими тонкостями. Чтобы избежать непредвиденных затруднений в процессе печати, следует тщательно проработать 3D-модель до загрузки файла на 3D-принтер.
Источник: greenbiz.com
Читайте нашу новую статью, чтобы узнать — как создать с нуля 3D-модель для 3D-принтера, и каких ошибок следует избегать.
Содержание
Какие файлы необходимы для 3D-принтера?
Большинство фотополимерных 3D-принтеров распознают STL-файлы. STL — это формат файла, изначально разработанный компанией 3D Systems для печати предметов методом стереолитографии. STL-файлы описывают только геометрию поверхности трехмерного объекта без какого-либо представления о цвете, текстуре или других атрибутах модели. Слайсеры различных моделей 3D-принтеров поддерживают файлы распространенных форматов OBJ, 3DS, а также проприетарные (FORM, PLG).
Создать STL-файл трехмерной модели можно в CAD-программе или при помощи 3D-сканеров RangeVision, ручных 3D-сканеров Einscan и т.д. Не следует путать файлы STL и Gcode. Файлы STL содержат 3D-объект, а Gcode-файл — это составленный слайсером код управления 3D-принтером. Многие производители 3D-принтеров предоставляют тестовый файл в формате .gcode, чтобы пользователь мог сразу испытать новое оборудование. Но как поступить, если необходимо создать проект для 3D-принтера с нуля? Рассмотрим популярные программы, которые дают возможность разработать сложные предметы для разных методов 3D-печати.
Программы для 3D-моделирования
Готовить модели для 3D-печати можно в различных программах, предназначенных для работы с трехмерными объектами. Хотя принцип моделирования объектов во всех программах схожий, существуют различия в подходе к решению задач. Можно использовать профессиональные приложения для отрисовки 3D-рендеров (The Brush, Autodesk Maya и 3ds Max и другие), приложения для инженеров (Fusion 360, Autodesk Solidworks Blender, Компас 3D), а также существуют программы, которые оптимизированы для работы с небольшими 3D-объектами (Sketchup). Выбор ПО зависит от привычек пользователя, поскольку от особенностей интерфейса зависит удобство использования программы. Рассмотрим часто встречающиеся примеры ПО для 3D-моделирования.
Видеоуроки по Fusion 360
Fusion 360 — это профессиональная многофункциональная программа, предназначенная в том числе для создания 3D-моделей для 3D-принтера. Несмотря на обширные возможности, интерфейс программы достаточно понятный. Более того, многие функции меню имеют визуальные подсказки, по которым легко ориентироваться. Программа Fusion 360 позволяет сразу конвертировать разработанную для 3D-печати модель в формат .STL, то есть получить готовый файл для печати. Одно из достоинств этого ПО — наличие условно-бесплатной версии.
На следующем видео показано, как в программе создать модель, на примере опоры-кронштейна для лампы:
В конце следующего длинного видеоролика показано, как на основе чертежа создать 3D-модель станины:
Пример того, как составить 3D-модель рукоятки ножа, используя обычную фотографию, можно увидеть в ролике:
Достаточно сложный пример: проектирование кулона в виде Ленты Мёбиуса, процесс пошагово показан в 14-минутном видео:
Автор канала Make Anything опубликовал получасовой ролик о создании в Fusion 360 квадратной тарелки и высокой вазы. Бонусом автор прикрепил в описании к видео ссылку на готовые stl-файлы этих предметов.
В следующем видео показано, как в Fusion 360 спроектировать составную деталь с шарниром, на примере зажима:
Adafruit Industries сделали 18-минутное видео, в котором показали, как в Fusion 360 наносить объемный рисунок на боковые стенки предметов. В примерах показаны как повторяющиеся симметричные паттерны, так и сложные асимметричные узоры:
Видеоуроки по SolidWorks
Программа SolidWorks имеет русифицированный интерфейс, что может быть удобно, в частности, при создании обучающих курсов по 3D-печати в школах. Меню программы не перегружено пунктами. Разобраться в приложении достаточно просто даже начинающему специалисту.
В следующем примере показано, как спроектировать в SolidWorks переходник для колков гитары:
На видео ниже показано, как спроектировать в SolidWorks изогнутую трубу с фланцами:
Моделирование опорной детали для различных инструментов — тема следующего ролика:
Чтобы смоделировать болт с правильной аккуратной резьбой, необходимо знать несколько трюков в SolidWorks. На канале My Digi Pro объяснили, как выполнить работу быстро:
Если вам необходимо строить объекты сложной формы, вам поможет разобраться в программе большой получасовой видеоурок:
Создайте шестеренку сложной формы. Сделать это вам поможет короткий видеоролик:
Видеоуроки по Компас 3D
Компас 3D — это профессиональная программа для создания 3D-объектов любой сложности. Вероятно, из-за ориентации на профессиональное CAD-моделирование, интерфейс программы получился довольно сложным: с большим количеством пунктов меню и обширными возможностями для настройки.
Если вы только начинаете осваивать Компас 3D, потренируйтесь на моделировании обычного ящичка:
Модель гайки представлена на следующем видео:
Порядок моделирования зубчатого колеса с использованием чертежа:
Подгонка и сборка шарнирного соединения на 3D-модели показана в следующем видео:
Пример сравнительно сложной детали, винта кулера, показан в этом ролике:
Видеоуроки по Blender
Blender — профессиональная программа, которая предназначена для создания сложных трехмерных объектов, в том числе анимированных. Интерфейс программы может показаться достаточно сложным для новичка, но в Интернете можно найти достаточно обучающих материалов по созданию 3D-моделей с ее помощью. Интерфейс программы русифицирован.
Начать освоение Blender можно с моделирования держателя полки (для фиксации на стене):
Поскольку Blender — это полноценный графический редактор, в программе можно создавать сложные арт-объекты. В туториале показано, как за час создать оригинальную модель, у которой будет фактурная поверхность и множество выразительных деталей:
Еще один арт-объект, но на этот раз — абстрактная модель ламы. Отрисовка такой модели занимает существенно меньше времени:
Головной убор для косплея:
Подготовка файла Blender для 3D-печати, пример — серьги-секиры:
Создание 3D-модели осевого держателя на основе чертежа:
Крючок с креплением для стенда с инструментами:
Создание модели сундучка с нуля:
Конвертация чертежей онлайн
В последние годы на рынке появляются и альтернативные методы 3D-моделирования. Например, немецкая компания CAD Schroer разработала комплекс из компьютерной программы MEDUSA4 Personal и онлайн-платформы CSG eSERVICES, которые позволяют превратить чертеж в трехмерный объект с сохранением в STL-файл. В десктопном ПО MEDUSA4 Personal пользователь открывает файл с двухмерным чертежом и запускает через пункт меню Model Reconstruct моделирование 3D-объекта. Сохраненный трехмерный объект в MOD-файле необходимо конвертировать онлайн в STL-файл. Единственным недостатком сервиса является оплата за каждую конверсию поштучно.
Ошибки, которые необходимо предотвратить при 3D-моделировании
Начинающие пользователи обычно приобретают FDM- или SLA/LCD-принтеры начального уровня. В FDM для печати используется пластиковый филамент. В SLA и LCD, фотополимерных технологиях печати — жидкая фотополимерная смола. FDM-принтеры доступнее, а фотополимерные принтеры позволяют создавать гораздо более сложные и детализированные объекты. Рассмотрим самые распространенные ошибки, совершаемые пользователями при подготовке модели к печати.
Добавление поддержки
При создании сложного объекта следует учесть, что участки модели, которые “висят в воздухе”, не могут быть напечатаны без создания поддержек. Поддержки — печатающиеся вместе с моделью опорные конструкции, которые удаляются после завершения печати. Во многих программах поддержки можно создавать автоматически и изменять вручную.
Фото: thingiverse.com
При использовании FDM-принтера с двумя экструдерами поддержки можно печатать из растворимого материала, например — поддержки из HIPS с деталью из ABS, поддержки из PVA с деталью из PLA. Такие поддержки легко удаляются с помощью растворителя, без риска повредить модель в процессе ее очистки от них.
Толщина стенок, диаметр отверстий
При создании легкого ажурного объекта пользователь может ошибиться и создать слишком маленькие отверстия, либо слишком тонкие стенки изделия, которые принтер не сможет воспроизвести корректно. Данная ошибка в большей степени характерна для FDM-моделей, однако и при работе с фотополимерными необходимо учитывать рекомендованные производителем параметры стенок и отверстий.
Мы рекомендуем моделировать стенки объектов с толщиной не менее двух диаметров сопла, для FDM-принтера, а для фотополимерных — не менее полмиллиметра.
Итоги
Как видно из приведенных примеров, процесс моделирования 3D-детали для печати на 3D-принтере легко освоить без прохождения длительных дорогостоящих курсов. В современной информационной среде достаточное количество бесплатных и, что важно — весьма содержательных и простых для понимания обучающих видео. Также в самообразовании может помочь чтение тематических форумов, участие в сообществах 3D-печатников, где принято помогать новичкам и объяснять неочевидные и сложные нюансы.
Узнайте больше о возможностях усовершенствовать ваше производство интеграцией нового оборудования:
Время на прочтение
15 мин
Количество просмотров 19K
В этой статье я хочу рассказать о своем опыте разработки свободного ПО для управления 3D принтерами на Qt5, проблемах и особенностях общения с RepRap’ами и прочим радостям.
Результатом этого опыта стал RepRaptor — минималистичный свободный host-controller для 3D принтеров.
Всех интересующихся приглашаю под кат.
Немного предыстории
За последний год я сильно заинтересовался 3D печатью, и не просто 3D печатью, а ее свободной составляющей — проектом RepRap. Руководство ВУЗа поддержало начинания, и в течении этого года моими и единомышленников усилиями в МГТУ МИРЭА открылась лаборатория 3D печати.
Очень скоро возникла проблема — существующее в экосистеме ПО имело недостатки, которые сильно мешали работе. Поэтому было решено эти проблемы ликвидировать, создав свое ПО.
Чтобы не обидеть ненароком авторов имеющегося ПО, не буду тыкать пальцем, тем более проблемы у целого ряда свободного ПО для 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 (сброс при подключении), обычно не используются, и это печально.
Вместо аппаратного контроля за передачей данных RepRap-совместимые принтеры используют очень простой протокол, организованный по принципу PingPong:
- Принтер сообщает о простое строчкой wait;
- Хост отправляет команду G-Code, кончающуюся переносом строки;
- Принтер подтверждает прием команды строчкой Ok <номер строки>.
Выглядит это примерно так:
wait
G1 X10 Y10 Z10
ok 0
G1 X20 Y5 Z3
ok 0
Обратили внимание на 0 после «ok»? Это — номер строчки. При желании можно использовать контрольную сумму и номер строки при
отправке команд на принтер:
N1 G1 X10 Y10 Z10 *cs
ok 1
N2 G1 X20 Y5 Z3 *cs
ok 2
Где cs — вычисленная контрольная для строки.
Как правило кодогенераторы, преобразующие 3D модели в G-Code для печати контрольных сумм не генерируют, а оставляют это на усмотрение хоста.
У принтера есть буффер, размер которого в большинстве случаев составляет 16 команд.
Реализация протокола
Qt имеет отличную функцию для облегчения жизни разработчику — сигналы и слоты.
Сигнал — это новое для C++ понятие. Сигнал объявляется в классе подобно слоту:
class Example : public QObject
{
Q_OBJECT
public:
Example();
signals:
void exampleSignal(int);
}
Сигнал не может ничего вернуть, поэтому всегда имеет тип void, а вместо аргумента указывается тип передаваемой сигналом переменной. Инициализировать его не требуется.
Вызывается сигнал из любого метода родительского класса, и очень просто:
emit exampleSignal(100);
После такого вызова все слоты, присоединённые к этому сигналу будут вызваны при первой возможности в порядке присоединения, и им передастся значение 100.
Что такое слот? Коротко — это самый обычный метод, объявленный слотом
class Example2 : public QObject
{
Q_OBJECT
public:
Example();
public slots:
void exampleSlot(int);
}
Соединяются сигнал со слотом тоже очень просто:
Example e1;
Example2 e2;
connect(&e1, SIGNAL(exampleSignal(int)), &e2, SLOT(exampleSlot(int)));
Есть и ограничение — у сигнала и слота обязательно должен совпадать передаваемый тип.
Учитывая сигналы и слоты можно очень легко написать асинхронный приемникпередатчик для связи по серийному порту.
Самая простая часть — чтение.
Для реализации связи по серийному порту используется упомянутый выше QSerialPort (экземпляр которого назовем «printer»), имеющий сигнал readyRead(), вызывающийся каждый раз, когда на порт приходит информация. Все что от нас требуется — это создать в своем классе слот, который мы и будем вызывать при появлении этого сигнала, соединить их, и ждать. Что же мы будем читать? Как уже описано выше, в первую очередь нас интересуют ответы ok и wait. Так как наш код исполняется асинхронно, а у принтера есть буфер — нам надо где-то сохранить колличество строчек ок, которые мы приняли, чтобы при отправлении знать, сколько мы можем отправить. Хранить их будет в переменной «readyRecieve».
Слот:
void MainWindow::readSerial()
{
if(printer.canReadLine()) //На всякий случай проверяем, есть ли линия в буффере
{
QByteArray data = printer.readLine(); //Читаем пришедшую строку
if(data.startsWith("ok")) readyRecieve++; //Можно отправить еще одну строчку
else if(data.startsWith("wait")) readyRecieve = 1; //А вот это значит, что принтер в простое - отправляем только 1 команду
printMsg(QString(data)); //Покажем пользователю, что мы получили от принтера
}
}
Отлично, с приемом разобрались. А что у нас с отправкой? Вот тут и видим дефект протокола. Никакой аппаратной команды для обозначения готовности к приему данных у нас нет, а значит нету и соответствующего сигнала у нашего QSerialPort. Значит отправлять будем по таймеру. Таймер в Qt работает до безобразия просто и удобно — мы создаем экземпляр класса QTimer, соединяем его сигнал timeout() с нашим слотом, который будет выполнятся по этому таймеру, а после этого запускаем его — timer.start(ms). В последствии было выяснено, что в зависимости от производительности ПК оптимальный промежуток находится от 1 до 5 мс. Кстати, если указать таймеру промежуток 0, то выполнятся он будет как только у Qt появится свободная минутка.
Еще стоит упомянуть, что отправляем мы либо команду от пользователя, либо файл. Так как разбор файла сводится к заурядной загрузки файла в массив, а так же фильтровании линий целиком из комментариев (чтобы не отправлять лишнее на принтер и не захламлять память), я решил опустить эту часть. Массив строк из файла называется gcode.
Реализация отправки:
void MainWindow::sendNext()
{
if(injectingCommand && printer.isWritable() && readyRecieve > 0) //Пытаемся вклинить команду от пользователя
{
sendLine(userCommand); //отправляем в порт (userCommand и флаг injectingCommand служат для вставки команды от пользователя)
readyRecieve--; //уменьшаем колличество строчек, которые принтер готов принять
injectingCommand=false; //уже вклинили команду, так что флаг стоит опустить
return; //обрываем наш отправщик
}
else if(sending && !paused && readyRecieve > 0 && !sdprinting && printer.isWritable()) //Проверяем, отправляем ли мы сейчас файл
{
if(currentLine >= gcode.size()) //Не кончился ли файл
{
sending = false; //Ну рас уж кончился - то мы его уже не отправляем
currentLine = 0; //Обнуляем счетчик отправленых из файла линий
ui->sendBtn->setText("Send"); //обновляем интерфейс
ui->pauseBtn->setDisabled("true"); //обновляем интерфейс
ui->filelines->setText(QString::number(gcode.size()) //обновляем интерфейс
+ QString("/")
+ QString::number(currentLine)
+ QString(" Lines"));
return; //обрываем функцию отправки
}
sendLine(gcode.at(currentLine)); //если файл не кончился - отправляем следующую линию
currentLine++; //Увеличиваем счетчик отправленых из файла линий
readyRecieve--; //Уменьшаем счетчик команд
ui->filelines->setText(QString::number(gcode.size()) //Обновляем счетчик линий в интерфейсе
+ QString("/")
+ QString::number(currentLine)
+ QString(" Lines"));
ui->progressBar->setValue(((float)currentLine/gcode.size()) * 100); //обновляем полоску
}
}
Ну вот, с серийным портом разобрались? Еще нет. Еще нам надо отловить ошибки. Для этого вновь прибегнем к сигналам и слотам, на этот раз будем слушать сигнал error(SerialPort::SerialPortError error) от нашего экземпляра QSerialPort:
void MainWindow::serialError(QSerialPort::SerialPortError error)
{
if(error == QSerialPort::NoError) return; //Нет ошибки - нет проблем
if(printer.isOpen()) printer.close(); //Ну а если сюда дело дошло - не плохо бы закрыть порт, если он еще открыт
if(sending) paused = true; //Если что-то отправляем на принтер - поставим на паузу отправку
ui->connectBtn->setText("Connect"); //Обновим интерфейс
ui->sendBtn->setDisabled(true); //Обновим интерфейс
ui->pauseBtn->setDisabled(true); //Обновим интерфейс
ui->controlBox->setDisabled(true); //Обновим интерфейс
ui->consoleGroup->setDisabled(true); //Обновим интерфейс
qDebug() << error; //На всякий случай отправим ошибку в консоль
QString errorMsg; //Переведем нашу ошибку на понятный язык
switch(error)
{
case QSerialPort::DeviceNotFoundError:
errorMsg = "Device not found";
break;
case QSerialPort::PermissionError:
errorMsg = "Insufficient permissionsnAlready opened?";
break;
case QSerialPort::OpenError:
errorMsg = "Cant open portnAlready opened?";
break;
case QSerialPort::TimeoutError:
errorMsg = "Serial connection timed out";
break;
case QSerialPort::WriteError:
case QSerialPort::ReadError:
errorMsg = "I/O Error";
break;
case QSerialPort::ResourceError:
errorMsg = "Disconnected";
break;
default:
errorMsg = "Unknown errornSomething went wrong";
break;
}
ErrorWindow errorwindow(this, errorMsg); //И покажем окошко с ошибкой
errorwindow.exec();
}
Неаккуратное обращение с принтером расстраивает динозаврика, %username%.
Делаем наш хост умнее
Выносим кнопки команд
Мы научились отправлять файл в серийный порт и правильно держать протокол, но для полноценного хоста этого мало. Помимо возможности отправлять файл построчно, необходимо еще дать пользователю возможность отправлять команды самому. Как вбитые руками, так и выведенные на кнопки в интерфейсе.
Какие команды стоит вывести? Мнения авторов разных, уже имеющихся программ расходятся, но я постарался вывести максимум:
Иконок пока нет, но они обязательно появятся в последующих релизах. Реализация большинства этих кнопок весьма простая:
void MainWindow::homeall()
{
injectCommand("G28");
}
Метод injectCommand, способ работы которого мы уже узнали ранее, в реализации отправщика кода тоже весьма прост:
void MainWindow::injectCommand(QString command)
{
injectingCommand = true; //Поставим флаг вставки команды
userCommand = command; //Запомним команду
}
Получаем дополнительные данные
RepRap — это суровый DIY. Настолько суровый, что случается всякое:
Далеко не всегда во время настройки можно быть уверенным, что принтер поведет себя так, как надо. Одним из очень важных значений является температура, и следить за ней жизненно необходимо. У некоторых людей на принтере есть дисплеи, отображающие оперативную информацию, но далеко не у всех. К тому же, можно физически находится от принтера далеко, или под неверным углом, и читать дисплей уже не выйдет. Именно поэтому требуется отображать температуру, и чем оперативнее — тем лучше.
Под температуру определим отдельную группу элементов
Как же ее узнать? Во время нагрева, принтер перестает принимать команды, и вместо ok или wait начинает присылать температуру. Строка температуры выглядит так:
T:196.94 /210 B:23.19 /0 B@:0 @:4
Читаемо для человека, но не очень удобно для разбора. В первых версиях я разбирал эту строку прямо в слоте, отвечающем за прием информации, но тесты показали, что разбор строки прямо в этом слоте слишком сильно замедляет работу программы. До последнего я пытался избежать работы с потоками, так как одна из главных причин, по которой RepRaptor был написан — быстродействие. Многопоточность отлично ускоряет работу софта на многоядерных системах, но у нас с железом было все не так радужно. Однако выбора не осталось — надо было перенести в отдельный поток либо разбор, либо само соединение. Было решено пойти на компромисс — перенести разбор в отдельный поток, и позволить пользователю отключить проверку температуры.
Как реализована многопоточность в Qt? Очень удобно. Есть несколько способов создать отдельный поток. Полноценный способ — создать поток с помощью QThread, но нам не нужен полноценный поток для простого разбора строки, так что будем использовать другой способ — передадим нашу функцию разбора вместе с аргументам объекту QFuture, и будем за ним следить. Делается это так — для начала нам необходимо создать экземпляр QFutureWatcher, класса, который следит за QFuture, и сообщает нам о его состоянии. Затем надо написать нашу функцию разбора. Так как функция может вернуть только одну переменную, я решил создать специальный тип для передачи температуры:
typedef struct
{
double e, b;
} TemperatureReadings;
И функция разбора:
TemperatureReadings MainWindow::parseStatus(QByteArray data)
{
QString extmp = ""; // Подготовим строку для температуры экструдера
QString btmp = ""; // Подготовим строку для температуры кровати
for(int i = 2; data.at(i) != '/'; i++) //Считываем температуру экструдера
{
extmp+=data.at(i);
}
for(int i = data.indexOf("B:")+2; data.at(i) != '/'; i++) //Считываем температуру кровати
{
btmp+=data.at(i);
}
TemperatureReadings t;
t.e = extmp.toDouble(); //Переводим строки в числа
t.b = btmp.toDouble();
return t; //Возвращаем температуру
}
Теперь осталось только отдать эту функцию потоку при удобном случае (вставляем дополнительную проверку в автомат функции приема):
//....
else if(checkingTemperature && data.startsWith("T:")) // Определяем, температура ли это
{
QFuture<TemperatureReadings> parseThread = QtConcurrent::run(this, &MainWindow::parseStatus, data); //Создаем объект QFuture (QtConcurrent::run создает экземпляр QFuture из метода parseStatus)
statusWatcher.setFuture(parseThread); //Передаем наш объект QFuture наблюдателю
ui->tempLine->setText(data); //Продублируем строку в интерфейсе
}
//...
Осталось только создать слот, чтобы подключить к нему сигнал, передающий из QFutureWatcher результаты выполнения функции:
void MainWindow::updateStatus()
{
TemperatureReadings r = statusWatcher.future().result(); //Получаем результат из потока
ui->extruderlcd->display(r.e); //Обновляем интерфейс
ui->bedlcd->display(r.b);
sinceLastTemp.restart(); //Перезапускам таймер последнего снятия температуры
}
Вот и все, теперь каждый раз, когда принтер сообщает нам о температуре — мы разбираем эту строку и красиво отображаем ее в интерфейсе.
Проблема в том, что сам принтер ее присылает только во время нагрева, но мы можем его попросить прислать нам ее в любое другое время, отправив команду для проверки температуры M105. Отправлять ее будем по таймеру, при выполнении нескольких условий. Так же, как и ранее для функции отправки создаем новый таймер, и новый слот для подключения к его сигналу. На этот раз таймеру ставим значение побольше, например 1500мс:
void MainWindow::checkStatus()
{
if(checkingTemperature && //Если проверяем температуру....
(sinceLastTemp.elapsed() > statusTimer.interval()) //И последний раз ее получили не раньше, чем задано
&& statusWatcher.isFinished()) injectCommand("M105"); //И если наш поток уже закончил, тогда отправляем команду M105
}
Кто-то возможно скажет, что эти проверки излишние, но когда ты управляешь принтером с Asus EEEPC 900AX, и хочешь одновременно читать хабр — это необходимость.
Печать с SD карты
Очень многие типовые платы для 3D принтеров имеют встроенный слот для SD карты, или способ такой слот подключить. Такой метод печати является предпочтительным, так как в любой момент можно отключится от принтера и уйти, однако каждый раз вытаскивать SD карту зачастую лень, особенно если печатаешь много мелких деталей. Конечно, можно передать файл через серийный порт, но передача файла таким способом занимает едва ли меньше времени, чем сама печать.
В любом случае, хост должен уметь работать с SD картой, а это значит:
- Получать список файлов
- Выбирать файл
- Поставить файл на печать
- Поставить печать на паузу
- Сообщать о прогрессе
А это значит — больше парсинга! Но на этот раз, опрашивая список файлов мы можем не волноваться о производительности — в этот момент она не важна. Для отображения списка файлов нам понадобится диалог. В диалог мы будем передавать массив строк с файлами, а он нам вернет один файл, а заодно скажет нашей программе, что она в режиме печати с SD.
Каждый раз когда на хост будет приходить строка, с которой начинается список файлов на SD — будем открывать диалог со списком файлов. Для этого еще раз изменим наш приемник:
//...
if(readingFiles) //Если читаем файлы
{
if(!data.contains("End file list")) sdFiles.append(data); //Если список не кончился - добавляем строчку в список файлов
else
{
readingFiles = false; //Если кончился список
emit sdReady(); //Отправим сигнал о готовности списка файлов
}
}
//...
else if(data.startsWith("Done")) sdprinting = false; //Если получили Done - печать с SD окончена
else if(data.startsWith("SD printing byte") && sdWatcher.isFinished()) //Разберем статус SD печати
{
QFuture<double> parseSDThread = QtConcurrent::run(this, &MainWindow::parseSDStatus, data); //Скормим строку потоку с парсером
sdWatcher.setFuture(parseSDThread); //Следим за потоком
}
else if(data.contains("Begin file list")) //Список файлов с SD карты
{
sdFiles.clear(); Очистим массив файлов
readingFiles = true; //Поставим флаг, идет получение файлов
}
//...
Флаг нужен, так как наш метод чтения вызывается для каждой строки.
За одно для открытия диалога будем посылать сигнал. Самому же себе. Да, соединять можно даже сигналы со слотами одного и того же объекта.
Слот, который мы подключаем к этому сигналу:
void MainWindow::initSDprinting()
{
SDWindow sdwindow(sdFiles, this);
connect(&sdwindow, SIGNAL(fileSelected(QString)), this, SLOT(selectSDfile(QString)));
sdwindow.exec();
}
После этого надо перевести интерфейс в режим печати. Я сделал это путем введения дополнительного флага 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 скрипт для сборки нужной мне версии пакетов:
#!/bin/bashcd
# $1 - первый аргумент командной строки после скрипта
mkdir repraptor-$1-1-i386
mkdir repraptor-$1-1-amd64
mkdir repraptor-$1-1-i386/DEBIAN/
mkdir repraptor-$1-1-i386/usr/
mkdir repraptor-$1-1-i386/usr/local/
mkdir repraptor-$1-1-i386/usr/local/bin
mkdir repraptor-$1-1-i386/usr/local/share
mkdir repraptor-$1-1-amd64/DEBIAN/
mkdir repraptor-$1-1-amd64/usr/
mkdir repraptor-$1-1-amd64/usr/local/
mkdir repraptor-$1-1-amd64/usr/local/bin
cp ../RepRaptor-linux32/RepRaptor repraptor-$1-1-i386/usr/local/bin/repraptor
cp ../RepRaptor-linux64/RepRaptor repraptor-$1-1-amd64/usr/local/bin/repraptor
cp share repraptor-$1-1-i386/usr/local/ -r
cp share repraptor-$1-1-amd64/usr/local/ -r
echo "Package: repraptor
Version: $1-1
Section: base
Priority: optional
Architecture: i386
Maintainer: [Hello Habr!]
Description: RepRaptor
A Qt RepRap gcode sender/host controller" > repraptor-$1-1-i386/DEBIAN/control
echo "Package: repraptor
Version: $1-1
Section: base
Priority: optional
Architecture: amd64
Maintainer: [Hello Habr!]
Description: RepRaptor
A Qt RepRap gcode sender/host controller" > repraptor-$1-1-amd64/DEBIAN/control
dpkg-deb --build repraptor-$1-1-i386
dpkg-deb --build repraptor-$1-1-amd64
Все, что он делает — это создает дерево каталогов, копирует иконки и .desktop файл, а после этого генерирует описание пакета для пакетного менеджера, вставляя нужную версию.
Windows и MXE
Одно дело — собирать пакеты под свою ОС, другое дело — под чужую. Тут необходим тулчеин — набор инструментов для сборки. Благо под Windows есть отличный MinGW, а для Linux есть не менее отличный MXE — менеджер окружения для кросс-компиляции с использованием свободных библиотек.
Установка до смешного простая — клонируем MXE и говорим ему, какие нам библиотеки нужны:
git clone https://github.com/mxe/mxe.git
cd mxe
make qtbase qtserialport
После этого можно смело идти пить кофе — сборка всего этого добра занимает приличное время.
После того, как сборка окончена — можно написать скрипт сборки проекта под Windows автоматически:
#!/bin/bash
#Добавим исполняемые файлы MXE в PATH
export PATH=/home/neothefox/src/mxe/usr/bin:$PATH
#Удаляем старый каталог
rm -rf RepRaptor-win32
#Клонируем свежую версию и переходим в ее папку
git clone https://github.com/NeoTheFox/RepRaptor RepRaptor-win32
cd RepRaptor-win32
#Генерируем Makefile из проекта QtCreator и собираем проект
/home/neothefox/src/mxe/usr/bin/i686-w64-mingw32.static-qmake-qt5 RepRaptor.pro
make
#Собираем ZIP архив с лицензией и исполняемым файлом
cp LICENCE release/
cd release
zip RepRaptor-$1-win32.zip RepRaptor.exe LICENCE
#Переносим его в каталог с остальными сборками
mv RepRaptor-$1-win32.zip ../../RepRaptor-$1-win32.zip
Просто и сердито. Работоспособность легко проверяется в Wine:
Выводы
Когда я это начинал — я надеялся написать простую отправлялку G-code файлов, которая ничего больше бы не делала, а справится планировал за вечер. Но, как это часто бывает — проект вышел за рамки изначального плана, и теперь представляет из себя нечто большее. Впереди еще много чего предстоит сделать — хотя бы тот же графический редактор EEPROM, которого так не хватает, а так же поддержка контрольных сумм.
Однако уже сейчас RepRaptor позволяет мне спокойно использовать свой ASUS EEEPC как стабильный хост для принтера, чего не мог достичь ни один другой хост из тех, что я пробовал. Ну и знания Qt у меня определенно улучшились, и все равно еще есть место для оптимизаций.
Эта статья так же приурочена к выходу первой стабильной версии, которую я сам теперь использую каждый день — 0.2.
Всем спасибо за внимание! Надеюсь мой опыт был вам полезен.
Напоследок — вот армия объектов, напечатанных во время тестов:
Ссылки
Первая стабильная версия
RepRap wiki
GitHub
Как подготовить 3D модель к печати или научиться создавать модели с нуля? Какое программное обеспечение лучше всего подходит для новичков? На все эти вопросы можно найти ответ в нашей статье. Представленные в обзоре приложения полностью бесплатны или имеют бесплатные версии для студентов, преподавателей и проектов с открытым исходным кодом.
Рабочий процесс 3D печати
Почему мы поместили этот раздел перед всеми остальными? Ответ очень прост. Зная весь процесс 3D печати можно лучше понять, как каждое ПО участвует в подготовке и печати трехмерных деталей.
Если вы стали счастливым обладателем 3D принтера, но совершенно не представляете, что с ним делать и как начать работу, тогда эта часть статьи для вас.
Для печати 3D моделей используются разные программы:
- ПО для трехмерного моделирования/дизайна/САПР;
- ПО для редактирования, просмотра и восстановления файлов STL;
- Программы-слайсеры;
- Хост 3D принтера.
Перед тем, как приступить к работе, необходимо создать 3D модель. Для этого можно использовать разные программы для моделирования. Подробно о бесплатных версиях ПО для 3D моделирования мы писали здесь.
Небольшой лайфхак для начинающих. Если вы не готовы создавать модель своими силами, выбрать и скачать подходящую можно с торговых площадок. В сообществах мейкеров есть также бесплатные ссылки для скачивания — иногда предложенные 3D модели могут быть не только интересны, но и полезны.
После создания 3D модели ее необходимо преобразовать в формат, подходящий для печати. Для настольных 3D принтеров это формат STL. Некоторые созданные или скачанные файлы имеют дефекты, которые ведут к сбоям во время печати. Именно для редактирования файлов STL есть специальной программное обеспечение, которое помогает подготовить модель к воспроизведению на принтере.
Программа слайсер помогает преобразовать STL файл в понятный для принтера G-код. Функционал таких программ позволяет разбить 3D модель на тысячи плоских 2D слоев, которые будут последовательно воспроизводиться на принтере.
И, наконец, хост 3D принтера обеспечивает связь между компьютером и принтером. Он позволяет получать информацию для печати, а также изменять параметры работы устройства в режиме реального времени через ПК. Часто Слайсер и хост объединены в одно ПО для 3D печати, которое поставляется производителем принтера.
Дорогие читатели портала 3DToday хотим вам сообщить, что у нас на сайте интернет-магазина LIDER-3D открылся новый раздел «База знаний». В данном разделе мы делимся совами, опытом, настройками и секретами мира аддитивных технологий, переходите в раздел по данной ссылке.
Примеры некоторых уже выложеных статей в разделе «База знаний»: Постобработка моделей после 3D-печати, 10 калибровочных моделей для вашего 3D-принтера, Как и чем печатают 3D-принтеры, Печать пластиком HIPS, Настройки печати ABS пластиком, Рекомендации по постобработке изделий из фотополимеров HARZ Labs, Лучшие бесплатные программы для 3D-моделирования для начинающих.
Лучшие слайсеры и хосты для 3D принтера
Cura
Одна из популярных программ-слайсеров, которая поставляется вместе со всеми принтерами Ultimaker. Однако ее функционал подходит для использования совместно с другими 3D принтерами. Поскольку это ПО является одним из самых популярный среди мейкеров, можно не тратить время на настройки профиля — для большинства принтеров их можно найти в самой программе.
Софт предназначен для изменения важных настроек печати. Начните с режима “Recommended”,чтобы выбрать улучшенные параметры качества для принтера и легко адаптироваться в работе с программой.
Более точный контроль всех параметров возможен в пользовательском режиме “Custom”. Перейдя в этот режим вы сможете управлять более 400 разными настройками.
Cura — это не только простой и понятный слайсер для домашних пользователей. Софт можно использовать в качестве главного программного обеспечения для вашего принтера, а также интегрировать с САПР, например с SolidWorks или Siemens NX.
Программа постоянно обновляется и дополняется, что позволяет сделать 3D печать на вашем принтере более качественной.
►►►Ссылка на оф. сайт Cura
PrusaSlicer
Это программное обеспечение основано на базе Slic3r и в отличие от прототипа завоевал большую популярность среди пользователей. Главным отличием является большой список настраиваемых параметров и дополнительные функции, делающие работу более удобной.
Удобный пользовательский интерфейс, встроенная поддержка принтеров Prusa и настройки для разных видов пластика помогают легко приступить к работе с 3D принтером. Также слайсер позволяет размещать дополнительные поддержки, работать с разными материалами и использовать плавные функции с переменной высотой слоя.
Слайсер PrusaSlicer можно использовать как для работы с FDM принтерами, так и с устройствами, печатающими смолами. Панели настроек для пользователей с разным опытом в 3D печати помогают значительно улучшить качество готовых моделей.
Отличный бонус для тех, кто до этого работал со Slic3r — PrusaSlicer поддерживает большинство исходных функций и принимает пакеты конфигурации Slic3r ри импорте профилей.
►►►Ссылка на оф. сайт PrusaSlicer
MatterControl 2.0
MatterControl — это CAD программа для моделирования,слайсер и одновременной хост для 3D принтера. Благодаря функциям хоста вы можете напрямую контролировать печать при подключении принтера через USB. Также программа позволяет нарезать файлы формата STL для экспорта на SD-карту для автономной печати и конечно же, создавать проекты в отдельном разделе программного обеспечения САПР.
Структурированный интерфейс позволяет легко создавать модели и подготавливать их к печати. Файловый браузер и библиотека геометрических примитивов помогают легко импортировать данные в печать. Геометрические фигуры можно использовать в качестве поддержек, что помогает добиться высокого качества печати сложных деталей.
Расширенные настройки печати и удобная программа для просмотра делают это ПО одним из лучших для комплексного контроля процесса 3D печати. Кроме функций хоста и слайсера, MatterControl имеет инструменты для дизайна,которые позволяют проектировать детали. Полученные 3D модели легко экспортировать в слайсер и распечатать. Таким образом, программа позволяет контролировать весь процесс — от создания модели, до ее нарезки и отправки в печать.
►►►Ссылка на оф. сайт PrusaSlicer
3DPinterOS
3DPrinterOS — облачная программа для управления 3D принтером. Она сочетает в себе функции слайсера, хоста и редактора файлов STL. В программе можно создавать очередь на печать, управлять принтером и системой подключаемых модулей на основе приложений для анализа и восстановления данных STL, а также выполнять облачную нарезку.
Бесплатный пакет Starter позволяет пользователям загружать G-коды и отправлять их в печать, удаленно контролировать процесс печати и получать поддержку на форуме единомышленников. За умеренную плату можно получить доступ к дополнительным функциям, включая возможность совместной работы над проектом.
По сути эта программа является универсальным средством конвертации файлов для печати в формат STL. Именно поэтому 3DPrinterOS подходит для небольшого бизнеса, обучения, производства и дизайна.
►►►Ссылка на оф. сайт 3DPinterOS
KISSlicer
Аббревиатура этого приложения “Keep It Simple Slicer” может смутить неопытных пользователей. На самом деле это довольно сложный инструмент для 3D печати. Противоречивые отзывы пользователей тем не менее позволяют сделать вывод о том, что программа популярна и имеет достаточный функционал для работы с 3D принтерами.
Бесплатная версия программы подходит для большинства пользователей, которые работают на принтерах с одним экструдером. KISSlicer помогает упростить некоторые аспекты нарезки с помощью Profile Wizards для настроек конкретного принтера и Tuning Wizards для оптимизации материалов. Платная версия программы позволяет работать с принтерами с 2 экструдерами.
Хотя настройки приложения довольно сложны, но усилия того стоят — слайсер позволяет обеспечить полный контроль над всем процессом печати.
►►►Ссылка на оф. сайт KISSlicer
Slic3r
Это программное обеспечение предназначено для слайсеров с открытым исходным кодом. Его главное отличие — передовые функции, которые не встречаются больше ни в одном приложении.
Несмотря на то, что Slic3r почти не выпускает обновлений для своей программы, она является базовой для многих других ПО с открытым исходным кодом. Например, во многих программах используется трехмерное сотовое заполнение полостей, что является особой заслугой разработчиков Slic3r.
В 2018 году вышла новая версия софта с новыми интегрированными функциями. Так, в этой версии есть новые шаблоны заполнения, экспериментальная поддержка принтеров SLA и DLP, формат 3MF, а также печать через USB.
На сайте ПО можно найти подробное руководство, которое дает представление обо всех функциях Slic3r. Отличным бонусом программы является прямая интеграция с OctoPrint для печати одним нажатием кнопки.
►►►Ссылка на оф. сайт Slic3r
SliceCrafter
Браузерный слайсер от разработчиков IceSL.С помощью программы можно быстро загрузить STL файлы, нарезать их, а затем подготовить G-код к печати. В браузерной программе можно воспользоваться практически всеми опциями, которые предлагает IceSL.
Несмотря на то, что многие пользователи считают эту версию менее мощной, она подходит для новичков, которые не хотят настраивать более сложные программы для 3D печати.
►►►Ссылка на оф. сайт SliceCrafter
IceSL
Программа IceSL — отличный инструмент для 3D моделирования и печати. Несколько рабочих окон позволяют редактировать модель напрямую через скрипт на языке Lua, выбирать разные настройки для нарезки модели, а также просматривать полученный результат в режиме реального времени. Несмотря на кажущуюся сложность работы с ПО, IceSL дает возможность изящного параметрического моделирования.
Меню настроек слайсера позволяет новичкам легко и быстро подготовить 3D модель к печати. В последней версии программы появилась возможность указывать разные значения настроек печати на определенной высоте слоя. Все это позволяет сделать плавные переходы от плотного к легкому заполнению и градацию толщины слоев от мелкого к крупному.
►►►Ссылка на оф. сайт IceSL
OctoPrint
Эта программа является хостом для 3D принтеров, который позволяет контролировать печать и менять настройки. ПО также дает возможность дистанционного управления принтером с помощью Wi-Fi модуля, подключенного к устройству.
OctoPrint принимает G-код практически от любого слайсера, при этом хост позволяет визуализировать полученные файлы до и во время печати. Кроме того, нарезку файлов можно осуществлять непосредственно в программе, используя ее в качестве слайсера.
OctoPrint предлагает не только широкий выбор инструментов для удаленного управления печатью, но и несколько способов отслеживания выполняемых задач. Вы можете настроить push-уведомления или отправку предупреждений через разные мессенджеры.
Программное обеспечение имеет открытый исходный код и активное сообщество пользователей, которое предлагает множество плагинов для расширения функционала программы. На странице сообщества можно найти множество надстроек, которые будут полезны при печати.
►►►Ссылка на оф. сайт OctoPrint
Repetier-Host
Любимый хост разработчиков Rep-Rap — Repetier является высокопроизводительным программным обеспечением для управления печатью и подготовки файлов.
Repetier-Host позиционируется как универсальное ПО, которое помогает управлять принтерами с большим количеством экструдеров (до 16 экструдеров), а также поддерживает практически любой 3D принтер, представленный на рынке.
Программа имеет функции удаленного доступа через Repetier Server, что позволяет управлять своим принтером через браузер на ПК, планшете или смартфоне.
►►►Ссылка на оф. сайт Repetier-Host
AstroPrint
Как и 3DPrinterOS эта программа является облачным решением для контроля и управления вашими 3D принтерами. Также, с помощью AstroPrint можно менять настройки слайсера, управлять профилями принтера и материала. Бесплатная учетная запись позволяет сохранять информацию для печати, а также иметь доступ ко всем настройкам через браузер или мобильное приложение AstroPrint.
Это ПО уникально тем, что оно совместимо с Thingiverse и MyMiniFactory, а также с бесплатными версиями CAD программ, например с 3D Slash и Leopoly. Также у приложения есть инструменты для нарезки 3D моделей с возможностью отправлять файлы в печать со смартфона.
Софт будет полезен тем, кто работает в крупномасштабных сетях, таких как 3D фермы, предприятия и университеты.
►►►Ссылка на оф. сайт AstroPrint
Лучшее программное обеспечение для редактирования и восстановления файлов STL
3D-Tool Free Viewer
3D-Tool Free Viewer предназначена для поверки структурной целостности файлов STL и возможности печати документа на вашем принтере. Дополнительные функции, например “Поперечное сечение”позволяют также заглянуть внутрь 3D модели и оценить некоторые параметры.
Эта программа может быть полезна, если вы хотите проверить свой STL файл на наличие ошибок. Удобный интерфейс программного обеспечения позволяет измерить размер, площадь поверхности и объем всех частей фигуры, а также изменить расстояние, углы и радиус одним нажатием кнопки.
Для тех, кто не обладает достаточными познаниями и опытом в САПР, программа предлагает быстрый способ проверки STL файла и подготовки его к 3D печати.
►►►Ссылка на оф. сайт 3D-Tool Free Viewer
MakePrintable
Этот полезный веб-сервис позволяет проверить файлы STL а наличие ошибок и исправить критические значения,которые могут повлиять на печать. В отличие от других бесплатных программ, MakePrintable дает возможность полного контроля процесса. Вы можете выбрать уровень качества печати, сделать сетку пустотелой, исправить количество полигонов и даже объединить несколько мишеней в одну.
Хотя программа больше не предлагает бесплатную версию с ограниченным функционалом, пользователи могут найти несколько вариантов использования программы. Программа имеет разные возможности оплаты — за единичную загрузку файла (около 2 долларов за файл) или пакет “Maker” с возможностью загружать до 30 файлов в месяц (ежемесячная цена около 15 долларов).
Преимуществом программы является совместимость плагинов с Blender и SketchUp.
►►►Ссылка на оф. сайт MakePrintable
Meshmixer
Программа Meshmixer — это супер современное и бесплатное программное обеспечение из семейства Autodesk для 3D печати для просмотра, проверки, редактирования и восстановления STL файлов. Эта программа помогает выявить потенциальные проблемы и автоматически устранить их. Например, программа идентифицирует недостаточную толщину стенок.
Программа позиционируется как универсальный инструмент для трехмерных сеток, предлагая множество инструментов для работы с сеткой, трехмерного моделирования, тиснения поверхности и других.
Пытаетесь ли вы исправить STL файл,подготовить модель к печати или сконструировать несколько объектов — Meshmixer идеально подходит для всех этих целей.
►►►Ссылка на оф. сайт Meshmixer
MeshLab
MeshLab — это приложение с открытым исходным кодом, которое позволяет редактировать файлы формата STL, а также имеет инструменты для работы с трехмерными треугольными сетками. Возможности софта помогают проверять, визуализировать, восстанавливать и преобразовывать сетки, и даже объединять модели в твердые тела и заделывать дыры.
Приложение отлично подходит для редактирования 3D моделей, созданных в САПР. Несмотря на то, что последняя версия была выпущена в 2016 году, программа по-прежнему пользуется популярностью у мейкеров.
►►►Ссылка на оф. сайт MeshLab
NetFabb
NetFabb — это программное обеспечение для нарезки, которое включает в себя дополнительные возможности анализа и восстановления файлов STL. Один из самых мощных инструментов NetFabb направлен на оптимизацию процесса для пользователей, предлагая возможность создания поддержек, восстановление сетки и широкий выбор инструментов генеративного дизайна.
Программа бесплатна для студентов,в рамках подписки Autodesk. Трехлетняя лицензия для учащихся позволяет выбрать одну из версий:
- NetFabb Standard позволяет быстро подготовить модель к печати;
- NetFabb Premium с расширенными возможностями для создания решеток, поддержек и автоматической упаковки деталей;
- NetFabb Ultimate позволяет вычислить сбои в сборке, предоставляет инструменты для моделирования, настраиваемые стратегии траектории инструмента, а также помогает автоматизировать процесс подготовки модели к 3D печати;
- NetFabb Simulation помогает моделировать определенные технологии печати металлом до начала производства.
►►►Ссылка на оф. сайт NetFabb
Лучшее бесплатное программное обеспечение для 3D моделирования и 3D печати
О программах для 3D моделирования, в которых разберется даже новичок, мы писали в этой статье. Здесь представлены не менее полезные, простые в использовании, а главное, бесплатные программы для трехмерного моделирования и 3D печати.
3D Builder
Приложение 3D Builder предлагает своим пользователям быстро визуализировать и редактировать 3D модели. Софт помогает создавать и импортировать файлы в форматах для трехмерной печати. Используя простые инструменты для редактирования, можно создавать трехмерные изображения даже пользователям начального уровня.
Приложение располагает собственной обширной библиотекой 3D моделей. Также можно загрузить внешний файл или использовать датчик Kinect V2 для сканирования и импорта нового 3D изображения. Присоединившись к сообществу 3D Builder и скачав SDK 3D Printing можно расширить возможности этой бесплатной программы.
►►►Ссылка на оф. сайт 3D Builder
Figuro
Этот браузерный софт для моделирования сочетает в себе доступность TinkerCAD и мощность более совершенных инструментов для 3D моделирования. Программа подойдет для тех, кто хочет улучшить свои навыки в проектировании, при этом не сильно углубляясь в детали.
Создание объектов в Figuro построено по принципу полигонального моделирования — вы генерируете многоугольники, изменяя их и объединяя друг с другом. Если вы пользуетесь программой впервые, рекомендуем использовать дополнительные инструменты проверки и восстановления файлов STL.
Программа имеет простой и приятный пользовательский интерфейс. Обширная галерея позволяет оценить возможности ПО и получить вдохновение на создание новых объектов.
►►►Ссылка на оф. сайт Figuro
Fusion 360
Fusion 360 — это профессиональная CAD программа для 3D моделирования. В отличие от других ПО, софт позволяет охватить весь процесс планирования, тестирования и трехмерного дизайна.
Программа имеет мощные инструменты для решения задач промышленного дизайна. Fusion 360 позволяет моделировать конструкцию проектируемых объектов а также нагрузки, с которыми они столкнутся после введения в эксплуатацию.
Возможность совместной работы над проектом, облачный обмен файлами и импорт/экспорт разных типов файлов САПР делает использование приложения комфортным.
Fusion 360 бесплатен для студентов, стартапов и любителей. При этом любительские проекты не должны быть коммерческими, доход стартапа не должен превышать 100000 долларов в год, а студенческая лицензия программы ограничена тремя годами.
►►►Ссылка на оф. сайт Fusion 360
FreeCAD
Многофункциональное программное обеспечение САПР позволяет отлично развить дизайнерские навыки. ПО для параметрического моделирования создает модели в соответствии с заданными параметрами. Большим преимуществом является возможность перетаскивания и управления объектами непосредственно с помощью мыши.
Особенность данной программы — возможность возвращаться в историю создания объекта и редактировать ее параметры. Несмотря на то, что софт бесплатен, он имеет все необходимые инструменты для полноценной работы.
FreeCAD позволяет пользователям рисовать 2D формы в качестве основы для создания дополнительных объектов. Программа подойдет для дизайна изделий, машиностроения, архитектуры и других областей.
►►►Ссылка на оф. сайт FreeCAD
OpenSCAD
В отличие от других представленных программ, OpenSCAD больше фокусируется на CAD аспекте 3D моделирования. Софт работает как 3D-камиллятор, который считывает файл сценария, описывающий 3D модель, а затем преобразует объект в 3D модель.
Программа с открытым исходным кодом постоянно обновляется, приобретая новые функции. Например, в последнем обновлении появилась новая панель Customiser. Получить поддержку и советы по использованию приложения и работе с обновлениями можно в сообществе пользователей.
ПО не имеет интерактивных компонентов, зато помогает лучше контролировать процесс моделирования и управлять настройками параметров конструкции. OpenSCAD считается идеальным инструментом для студентов.
►►►Ссылка на оф. сайт OpenSCAD
Blender
Популярная программа автоматизированного проектирования САПР с крутой кривой обучения. Этот софт — не лучший выбор для новичка, но идеальна для тех, кто знаком с концепциями 3D моделирования и хочет создавать более сложные модели.
Последняя версия программы является более доступной. Так пользовательский интерфейс стал более удобным, а также появилось трехмерное окно просмотра. Расширенные дополнения Eevee, средство визуализации в реальном времени и Grease Pencil для 2D рисования и анимации значительно расширяют возможности программы.
Программа с открытым исходным кодом постоянно пополняется новыми функциональными решениями для комфортной работы.
►►►Ссылка на оф. сайт Blender
OnShape
OnShape — мощная браузерная программа для САПР, которая предназначена для профессиональных пользователей. Софт позволяет организовать совместную работу над проектом и хранить данные в облаке.
Программа предоставляет всем членам команды мгновенный доступ к одной и той же рабочей области САПР и одним и тем же данным в облаке. Дополнительная возможность управления основным дизайном без необходимости сохранять копии и отслеживать разные версии файлов делает работу по-настоящему удобной.
Программа имеет бесплатную версию для студентов и преподавателей, а также пользователям, которые занимаются некоммерческими проектами.
►►►Ссылка на оф. сайт OnShape
Полученная программа выглядит вот так (это не вся программа, а только начальная часть, для примера, программа синем шрифтом, мои комментарии — черным):
Обычный заголовок:
(<alteration>)
(**** beginning of start.gcode ****)
(This file is for a MakerBot Thing-O-Matic)
(**** begin initialization commands ****)
G21 (set units to mm)
устанавливаем мм
G90 (set positioning to absolute)
Дальше идут команды которых нет в обычном MACH3, которые не входят в стандартный набор G-кодов.
Эти дополнительные коды описаны тут, на сайте программы ReplicatorG.
M108 R1.98 (set extruder speed)
M103 (Make sure extruder is off)
M104 S225 T0 (set extruder temperature)
M109 S125 T0 (set heated-build-platform temperature)
Установка скорости экструдера, включение-выключение подачи лески, установка температуры экструдера и платформы.
(**** end initialization commands ****)
Дальше идут команды поиска HOME станка:
(**** begin homing ****)
G162 Z F500 (home Z axis maximum)
G92 Z10 (set Z to 10)
G1 Z0.0 (move Z down 0)
G162 Z F100 (home Z axis maximum)
G161 X Y F2500 (home XY axes minimum)
M132 X Y Z A B (Recall stored home offsets for XYZAB axis)
(**** end homing ****)
Дальше — включение прогрева экструдера и выдавливание начальной нити:
(**** begin pre-wipe commands ****)
G1 X52.0 Y-57.0 Z10.0 F3300.0 (move to waiting position)
M6 T0 (wait for toolhead parts, nozzle, HBP, etc., to reach temperature)
M101 (Extruder on, forward)
G04 P5000 (Wait t/1000 seconds)
M103 (Extruder off)
(**** end pre-wipe commands ****)
(**** end of start.gcode ****)
Дальше идут не очень мне понятно зачем они нужны — комментарии (с параметрами станка):
(</alteration>)
(<creation> skeinforge </creation>)
(<version> 10.11.05 </version>)
(<extruderInitialization>)
(<craftTypeName> extrusion </craftTypeName>)
M105
(<bridgeWidthMultiplier> 1.0 </bridgeWidthMultiplier>)
(<decimalPlacesCarried> 3 </decimalPlacesCarried>)
(<layerThickness> 0.3 </layerThickness>)
(<threadSequenceString> loops perimeter infill </threadSequenceString>)
(<operatingFeedRatePerSecond> 30.0 </operatingFeedRatePerSecond>)
(<operatingFlowRate> 1.17935176361 </operatingFlowRate>)
(<orbitalFeedRatePerSecond> 15.0 </orbitalFeedRatePerSecond>)
(<travelFeedRatePerSecond> 40.0 </travelFeedRatePerSecond>)
(<perimeterWidth> 0.419 </perimeterWidth>)
(<profileName> ABS </profileName>)
(<procedureDone> carve,bottom </procedureDone>)
(<procedureDone> preface </procedureDone>)
(<procedureDone> inset </procedureDone>)
(<procedureDone> fill </procedureDone>)
(<procedureDone> speed </procedureDone>)
(<procedureDone> raft </procedureDone>)
(<procedureDone> comb </procedureDone>)
(<procedureDone> cool </procedureDone>)
(<procedureDone> outline </procedureDone>)
(<procedureDone> reversal </procedureDone>)
(<procedureDone> export </procedureDone>)
(</extruderInitialization>)
И вот начало работы:
(<extrusion>)
Что такое М113 не понятно. Но он закоментиован
;M113 S1.0
Включаем пскорость подачи 1,179 оборота в минуту:
M108 R1.179
Опять комментарии, видимо что собираемся делать:
(<layer> 0.45 )
(<surroundingLoop>)
(<boundaryPerimeter>)
(<boundaryPoint> X0.0 Y-2.5 Z0.45 </boundaryPoint>)
(<boundaryPoint> X10.0 Y-2.5 Z0.45 </boundaryPoint>)
(<boundaryPoint> X10.0 Y7.5 Z0.45 </boundaryPoint>)
(<boundaryPoint> X0.0 Y7.5 Z0.45 </boundaryPoint>)
(<loop> outer )
Так ничего еще и не сделав утанавливаем скорость поменьше:
M108 R0.8598
Идем в начальную точку
G1 X12.79 Y-5.29 Z0.45 F787.605
Включаем экструдер
M101
Рисуем прямоугольник ВОКРУГ предполагаемой детали (не понял зачем?):
G1 X-2.79 Y-5.29 Z0.45 F787.605
G1 X-2.79 Y10.29 Z0.45 F787.605
G1 X12.79 Y10.29 Z0.45 F787.605
G1 X12.79 Y-4.31 Z0.45 F787.605
Делаем скорость большую:
M108 R35.0
И всасываем леску немного назад, что бы прервать «соплю»:
M102
Это я вообще не понял зачем? пустой ход? засечка времени пока сопля убирается?
G1 X12.79 Y-5.29 Z0.45 F787.605
Устанавливаем маленькую скорость:
M108 R0.8598
Выключаем экструдер:
M103
И т.д.:
G1 X2.19 Y-0.68 Z0.45 F1312.674
M108 R35.0
M101
G1 X0.63 Y0.0 Z0.45 F1312.674
M108 R0.8598
Рисуем внутреннюю линию контура первого слоя детали:
G1 X0.63 Y-1.87 Z0.45 F984.506
G1 X9.37 Y-1.87 Z0.45 F984.506
G1 X9.37 Y6.87 Z0.45 F984.506
G1 X0.63 Y6.87 Z0.45 F984.506
G1 X0.63 Y0.0 Z0.45 F984.506
M103
(</loop>)
Рисуем наружную линию контура первого слоя детали:
(<perimeter> outer )
G1 X0.21 Y0.0 Z0.45 F1050.139
M101
G1 X0.21 Y-2.29 Z0.45 F787.605
G1 X9.79 Y-2.29 Z0.45 F787.605
G1 X9.79 Y7.29 Z0.45 F787.605
G1 X0.21 Y7.29 Z0.45 F787.605
G1 X0.21 Y0.98 Z0.45 F787.605
M108 R35.0
M102
G1 X0.21 Y0.0 Z0.45 F787.605
M108 R0.8598
M103
(</perimeter>)
(</boundaryPerimeter>)
Заполняем первый слой параллельным линиями.
G1 X0.32 Y-0.17 Z0.45 F1312.674
M108 R35.0
M101
G1 X1.26 Y-1.6 Z0.45 F1312.674
M108 R0.8598
G1 X1.26 Y6.6 Z0.45 F984.506
M103
G1 X1.68 Y6.6 Z0.45 F1312.674
M101
G1 X1.68 Y-1.6 Z0.45 F984.506
M103
G1 X2.09 Y-1.6 Z0.45 F1312.674
M101
————————- пропускаем кусок ——
Следующий уровень начинается опять с обильных комментариев:
(</layer>)
(<layer> 0.75 )
(<surroundingLoop>)
(<boundaryPerimeter>)
(<boundaryPoint> X0.0 Y-2.5 Z0.75 </boundaryPoint>)
(<boundaryPoint> X10.0 Y-2.5 Z0.75 </boundaryPoint>)
(<boundaryPoint> X10.0 Y7.5 Z0.75 </boundaryPoint>)
(<boundaryPoint> X0.0 Y7.5 Z0.75 </boundaryPoint>)
(<loop> outer )
M108 R0.6211
G1 X8.8 Y6.87 Z0.75 F1264.364
M101
G1 X0.63 Y6.87 Z0.75 F948.273
G1 X0.63 Y-1.87 Z0.75 F948.273
G1 X9.37 Y-1.87 Z0.75 F948.273
G1 X9.37 Y6.87 Z0.75 F948.273
G1 X8.8 Y6.87 Z0.75 F948.273
M103
(</loop>)
И так далее….
Содержание
- Способ 1: Blender
- Шаг 1: Подготовительные действия
- Шаг 2: Создание трехмерного объекта
- Шаг 3: Проверка проекта на соблюдение общих рекомендаций
- Шаг 4: Экспорт проекта
- Способ 2: Autodesk Fusion 360
- Шаг 1: Подготовительные действия
- Шаг 2: Разработка модели для печати
- Шаг 3: Подготовка к печати / Сохранение документа
- Способ 3: SketchUp
- Шаг 1: Первый запуск и работа с моделями
- Шаг 2: Загрузка готовой модели
- Шаг 3: Экспорт готового проекта
- Способ 4: Онлайн-сервисы
Принтеры для трехмерной печати становятся все доступнее, соответственно, их приобретают и обычные пользователи, желающие освоить эту технологию. Некоторых не устраивает печать уже готовых моделей, скачанных из интернета, поэтому они задаются вопросами о создании собственного проекта. Осуществляется поставленная задача при помощи специального программного обеспечения и требует поверхностных или углубленных знаний в функциональности такого софта, что зависит от требований юзера к модели.
Способ 1: Blender
Blender — первая программа, основное предназначение которой заключается в создании 3D-моделей для дальнейшего их анимирования или применения в разных сферах компьютерных технологий. Она распространяется бесплатно и подходит начинающим юзерам, кто впервые столкнулся с приложениями такого рода, поэтому и занимает эту позицию. Давайте вкратце рассмотрим процедуру подготовки модели для печати пошагово, начав с настройки самого инструмента.
Скачать Blender
Шаг 1: Подготовительные действия
Конечно, после запуска Blender можно сразу же приступать к ознакомлению с интерфейсом и разработке моделей, однако сначала лучше уделить внимание подготовительным действиям, чтобы настроить рабочую среду под макеты для 3D-принтеров. Эта операция не займет много времени и потребует активации всего нескольких параметров.
- Для начала в стартовом окне выберите параметры внешнего вида и расположение элементов, отталкиваясь от личных потребностей.
- В следующем разделе окна «Quick Setup» вы увидите разные шаблоны для начала работы и ссылки на источники со вспомогательной информацией, которая пригодится при освоении ПО. Закройте это окно, чтобы перейти к следующему этапу конфигурации.
- На панели справа отыщите значок «Scene» и нажмите по нему. Название кнопки появляется через несколько секунд после наведения на нее курсора.
- В появившейся категории разверните блок «Units».
- Установите метрическую систему измерений и задайте масштаб «1». Это необходимо для того, чтобы параметры сцены перенеслись на пространство 3D-принтера в должном виде.
- Теперь обратите внимание на верхнюю панель программы. Там наведите курсор на «Edit» и в появившемся всплывающем меню выберите «Preferences».
- В окне настроек переместитесь на «Add-ons».
- Отыщите и активируйте два пункта под названиями «Mesh: 3D-Print Toolbox» и «Mesh: LoopTools».
- Убедитесь в том, что галочки были успешно проставлены, а затем покиньте данное окно.
Дополнительно рекомендуем обратить внимание и на другие пункты конфигурации. Здесь вы можете настроить внешний вид программы, поменять расположение элементов интерфейса, трансформировать их или вовсе отключить. По завершении всех этих действий переходите к следующему шагу.
Шаг 2: Создание трехмерного объекта
Моделирование — основной процесс создания проекта для дальнейшей печати на соответствующем оборудовании. В этой теме предстоит разобраться каждому пользователю, желающему самостоятельно поработать над различными фигурами и объектами. Однако для этого придется изучить довольно большой пласт информации, ведь функциональность Blender настолько огромна, что интуитивно понять получится лишь самые азы. К сожалению, формат нашей сегодняшней статьи не позволит вместить даже малую часть всех сведений и инструкций, поэтому мы советуем обратиться к официальной документации на русском языке, где вся информация разделена по категориям и описана в подробном виде. Для этого просто кликните по следующей ссылке.
Перейти к официальной документации Blender
Шаг 3: Проверка проекта на соблюдение общих рекомендаций
Перед завершением работы над моделью мы советуем не упускать самые важные аспекты, которые следует выполнять для оптимизации проекта и обеспечения его корректной распечатки на принтере. Для начала убедитесь, что ни одна из поверхностей не накладывается друг на друга. Они должны лишь соприкасаться, образуя единый объект. Если где-то произойдет выход за рамки, вероятны проблемы с качеством самой фигуры, поскольку в неправильно оформленном месте произойдет небольшой сбой печати. Для удобства вы всегда можете включить отображение прозрачной сети, чтобы проверить каждую линию и поле.
Далее займитесь уменьшением количества полигонов, ведь большое количество этих элементов лишь искусственно усложняет саму фигуру и мешает оптимизации. Конечно, избегать лишних полигонов рекомендуется еще при создании самого объекта, но не всегда получается сделать это на текущем этапе. Вам доступны любые способы данной оптимизации, о чем тоже написано в документации и рассказывается в обучающих материалах от независимых пользователей.
Теперь хотим отметить и тонкие линии или какие-либо переходы. Как известно, само сопло имеет определенный размер, что зависит и от модели принтера, а пластик не является самым надежным материалом. Из-за этого лучше избегать наличия совсем тонких элементов, которые в теории могут вообще не получиться на печати или будут крайне хрупкими. Если такие моменты присутствуют в проекте, слегка увеличьте их, добавьте опору или по возможности избавьтесь.
Шаг 4: Экспорт проекта
Завершающий этап подготовки модели для печати — экспорт ее в подходящем формате STL. Именно этот тип данных поддерживается 3D-принтерами и будет корректно распознан. Никакого рендеринга или дополнительных обработок можно не осуществлять, если для проекта уже были назначены цвета либо какие-либо простые текстуры.
- Откройте меню «File» и наведите курсор на «Export».
- В появившемся всплывающем списке выберите «Stl (.stl)».
- Укажите место на съемном или локальном носителе, установите название для модели и нажмите на «Export STL».
Проект сразу же будет сохранен и доступен для выполнения других действий. Теперь вы можете вставить флешку в принтер или подключить его к компьютеру, чтобы запустить выполнение имеющегося задания. Советов по его настройке мы давать не будем, поскольку они сугубо индивидуальны для каждой модели устройств и четко прописаны в инструкциях и различных документациях.
Способ 2: Autodesk Fusion 360
Следующая программа под названием Autodesk Fusion 360 доступна для бесплатного частного использования на протяжении года, поэтому вполне подойдет для освоения и создания простых моделей, чтобы в будущем распечатать их на имеющемся оборудовании. Мы решили сделать принцип ознакомления с этим ПО так же, как с Blender, поэтому создали поэтапное разделение.
Скачать Autodesk Fusion 360 с официального сайта
Шаг 1: Подготовительные действия
В Autodesk Fusion 360 не придется самостоятельно активировать панели инструментов или выбирать какие-то необычные параметры. Пользователю лишь следует убедиться в корректной метрике проекта и по необходимости изменить свойства сторон вида, что происходит так:
- После загрузки и установки Autodesk Fusion 360 с официального сайта должен произойти первый запуск. Никаких начальных окон отображаться не будет, поэтому новый проект создастся автоматически. Обратите внимание на раздел «Browser», который находится слева под основными панелями. Здесь выберите «Document Settings», чтобы развернуть этот раздел.
- Перейдите к редактированию файла «Units», если стандартное значение в миллиметрах вас не устраивает.
- В отобразившемся справа блоке выберите оптимальную единицу измерения, которой вы и должны будете следовать на протяжении всего времени взаимодействия с проектом.
- После этого ознакомьтесь с разделом «Named Views» и «Origin». Здесь можно переименовать каждую сторону по личным предпочтениям и настроить отображение осей на рабочем пространстве.
- В завершение конфигурации убедитесь в том, что выбрано пространство «Design», ведь именно там происходит первичное создание всех объектов.
Шаг 2: Разработка модели для печати
Если вы столкнулись с надобностью ручной разработки модели через Autodesk Fusion 360, придется долго изучать эту программу или хотя бы ознакомиться с основами. Давайте для начала взглянем на простой пример добавления фигур и редактирование их размера.
- Откройте список «Create» и ознакомьтесь с доступными формами и объектами. Как видно, здесь присутствуют все основные фигуры. Просто нажмите по одной из них, чтобы перейти к добавлению.
- Дополнительно взгляните и на остальные элементы, находящиеся на верхней панели. Основное пространство здесь занимают модификаторы. По оформлению их значков как раз и понятно, за что они отвечают. Например, первый модификатор вытесняет стороны, второй округляет их, а третий создает вдавливание.
- После добавления форм объекта на рабочее пространство появятся рычаги, путем перемещения которых происходит настройка размеров каждой стороны.
- При регулировании посматривайте и на отдельное поле с размерами. Вы можете редактировать его самостоятельно, задавая необходимые величины.
Об основных особенностях, следовать которым нужно обязательно, мы уже говорили при рассмотрении Blender, поэтому еще раз останавливаться на этом не будем. Вместо этого предлагаем изучить остальные моменты взаимодействия с Autodesk Fusion 360, прочитав официальную документацию на сайте, чтобы освоить создание не только примитивов, но и объектов гораздо более высокого уровня сложности.
Перейти к чтению документации Autodesk Fusion 360
Шаг 3: Подготовка к печати / Сохранение документа
В рамках этого этапа расскажем про два разных действия, которые имеют прямое отношение к 3D-печати. Первое заключается в отправке задания сразу же через используемое программное обеспечение. Этот вариант подойдет только в тех ситуациях, когда сам принтер может быть подключен к компьютеру и поддерживает связь с таким софтом.
- В меню «File» активируйте пункт «3D Print».
- Справа появится блок с настройками. Здесь нужно лишь выбрать само устройство вывода, если нужно — включить предпросмотр и запустить выполнение задания.
Однако сейчас большинство стандартных печатающих устройств все еще поддерживают только флешки или же функционируют исключительно через фирменное ПО, поэтому надобность сохранить объект возникает гораздо чаще. Осуществляется это так:
- В том же всплывающем меню «File» нажмите по кнопке «Export».
- Разверните список «Type».
- Выберите пункт «OBJ Files (*obj)» или «STL Files (*.stl)».
- После этого задайте место для сохранения и щелкните по синей кнопке «Export».
- Ожидайте окончания сохранения. Это процесс займет буквально несколько минут.
Если же такой экспорт завершился ошибкой, потребуется повторно сохранить проект. Для этого кликните по специальной кнопке или используйте стандартную комбинацию клавиш Ctrl + S.
Способ 3: SketchUp
Многие пользователи знают SketchUp как средство для моделирования домов, однако функциональность этого программного обеспечения значительно шире, поэтому оно может использоваться в качестве средства для работы с моделями при подготовке к 3D-печати. SketchUp попала в наш сегодняшний список по причине легкого импорта уже готовых бесплатных моделей для редактирования и дальнейшего сохранения в нужный формат. Давайте по очереди разберемся со всеми аспектами управления данным ПО.
Скачать SketchUp
Шаг 1: Первый запуск и работа с моделями
Сначала предлагаем ознакомиться с основным принципом взаимодействия с SketchUp, чтобы понять, как именно осуществляется добавление и управление моделями. Далее мы оставим ссылку и на обучающие материалы, если вы захотите изучить это решение более детально.
- После установки и запуска SketchUp нужно нажать по кнопке «Войти», чтобы подключить учетную запись пользователя. Если вы начали знакомство с пробным периодом, то с этого момента начинается отсчет дней до его завершения.
- При появлении окна «Добро пожаловать в SketchUp» нажмите на «Простой», чтобы перейти к рабочему пространству.
- Рисование фигур в этом программе осуществляется точно так же, как и в других похожих решениях. Наведите курсор на раздел «Нарисовать» и выберите произвольную фигуру.
- После этого она помещается на рабочее пространство и одновременно редактируется ее размер.
- Остальные кнопки на верхних панелях выполняют опции модификаторов и отвечают за выполнение других действий.
Как мы и говорили раньше, разработчики SketchUp предоставляют множество самых разных обучающих материалов по взаимодействию с этим приложением не только в текстовом формате, но и в качестве видео на YouTube. Ознакомиться со всем это можно на официальном сайте, воспользовавшись ссылкой ниже.
Перейти к чтению документации SketchUp
Шаг 2: Загрузка готовой модели
Не все пользователи желают самостоятельно создавать модели, которые в будущем будут отправляться в печать. В таких случаях можно загрузить уже готовый проект, отредактировать его, а уже потом экспортировать в подходящем формате. Для этого используется официальный ресурс от разработчиков SketchUp.
Перейти к скачиванию моделей для SketchUp
- Воспользуйтесь ссылкой выше, чтобы попасть на главную страницу сайта для поиска моделей. Там подтвердите лицензионное соглашение для начала использования.
- Далее мы предлагаем задействовать встроенную функцию поиска по категориям, чтобы быстро отыскать подходящую модель.
- В списке отыщите вариант, а также обратите внимание на дополнительные фильтры.
- После выбора модели остается только нажать на «Download».
- Запустите полученный файл через SketchUp.
- Просмотрите модель и отредактируйте ее, если это нужно.
Шаг 3: Экспорт готового проекта
В завершение остается только экспортировать готовый проект для дальнейшей печати на имеющемся устройстве. Вы уже знаете, в каком именно формате нужно сохранять файл, а производится это так:
- Наведите курсор на раздел «Файл» — «Экспорт» и выберите «3D-модель».
- В появившемся окне Проводника вас интересует формат OBJ или STL.
- После выбора расположения и формата остается только нажать на «Экспорт».
- Начнется операция экспорта, за состоянием которой можно следить самостоятельно.
- Вы получите информацию о результатах процедуры и сможете переходить к выполнению задачи печати.
Только что вы узнали про три различные программы по 3D-моделированию, которые подойдут для того, чтобы самому создать любое задание для печати на трехмерном принтере. Существуют и другие похожие решения, позволяющие сохранять файлы в формате STL или OBJ. Мы рекомендуем ознакомиться с их списком в тех ситуациях, когда описанные выше решения вам по каким-либо причинам не подходят.
Подробнее: Программы для 3D-моделирования
Способ 4: Онлайн-сервисы
Нельзя обойти стороной и специализированные онлайн-сайты, которые позволяют без загрузки приложения на компьютер создать 3D-модель, сохранить ее в нужном формате или сразу же отправить в печать. Функциональность таких веб-сервисов значительно уступает полноценному ПО, поэтому подойдут они только начинающим пользователям. Давайте рассмотрим пример работы на таком сайте.
Перейти на сайт Tinkercad
- В качестве примера мы выбрали Tinkercad. Щелкните по ссылке выше, чтобы зайти на сайт, где нажмите по кнопке «Начать работу».
- Если учетная запись Autodesk отсутствует, ее придется создать, чтобы открыть доступ к личному кабинету.
- После этого приступайте к созданию нового проекта.
- В правой части рабочего пространства вы видите доступные фигуры и формы. Путем перетаскивания они добавляются на плоскость.
- Затем происходит редактирование размера тела и отверстия в соответствии с требованиями юзера.
- По окончании работы с проектом щелкните по «Экспорт».
- В отдельном окне отобразятся доступные форматы для 3D-печати.
- После его выбора начнется автоматическая загрузка.
- Если же вы не желаете скачивать файл и можете сразу же отправить задачу в печать, перейдите на вкладку «3D-печать» и выберите там принтер.
- Произойдет переход на внешний источник и далее запустится процесс подготовки и выполнения задания.
Мы не можем рассмотреть абсолютно все популярные веб-сервисы по 3D-моделированию, поэтому упомянули только один из лучших и оптимизированных под 3D-печать. Если вас заинтересовал такой метод, просто выполните поиск сайтов через браузер, чтобы подобрать оптимальный для себя вариант.
Это была вся информация о создании модели для печати на 3D-принтере, которую мы хотели рассказать в рамках одного руководства. Далее вам остается только загрузить файл с объектом в ПО для подготовки задания, подключить принтер и начать печать.
Читайте также: Программы для 3D-принтера
Ищете программу для 3D-печати? Мы собрали 20 лучших программных инструментов — для новичков и профессионалов. Большинство слайсеров бесплатны.
Слайсеры и программы для работы с моделями для 3D принтера
Что такоей слайсер? Это программа для подготовки цифровой модели к печати. Модели для 3D-печати обычно распространяются в файлах формата STL. Чтобы превратить STL-файл в G-код (язык, который понимает 3D-принтер), требуется программа-слайсер. Слайсером она называется потому, что нарезает (to slice — англ.) 3D-модель на множество плоских двумерных слоев, из которых 3D-принтер будет складывать физический объект.
Какой слайсер выбрать? В этой статье мы расскажем о том, какой слайсер лучше всего выбрать для 3D-печати под каждый из этапов вашей работы. Какой из них лучше для подготовки 3D-модели к печати? А что если надо создать 3D-модель с нуля? А если вы делаете в 3D лишь первые шаги?
Не бойтесь: мы ответили на все эти вопросы, указав требуемый уровень подготовки для работы с каждой из программ, а также то, где ее можно скачать. Самое замечательное — что большинство из этих программ полностью бесплатны и имеют открытый код.
- Cura
- CraftWare
- 123D Catch
- 3D Slash
- TinkerCAD
- 3DTin
- Sculptris
- ViewSTL
- Netfabb Basic
- Repetier
- FreeCAD
- SketchUp
- 3D-Tool
- Meshfix
- Simplify3D
- Slic3r
- Blender
- MeshLab
- Meshmixer
- OctoPrint
№1: Cura
Для начинающих, которым нужен слайсер, чтобы подготовить STL-файлы для 3D-печати
Cura — это стандартная программа-слайсер для всех 3D-принтеров Ultimaker, но ее можно использовать и с большинством других, включая RepRap, Makerbot, Printrbot, Lulzbot и Witbox. У программы полностью открытый исходный код, ее возможности можно расширять с помощью плагинов.
Эта программа очень легка в использовании и позволяет управлять самыми важными настройками 3D-печати через понятный интерфейс. Начните в режиме Basic — чтобы быстро войти в курс дела и изменить настройки качества печати. Если требуется более тонкий контроль, перейдите в режим Expert.
Программу Cura можно использовать и для прямого управления принтером, но тогда принтер и компьютер должны быть соединены друг с другом.
Загрузить: Cura
Цена: Бесплатно
Системы: PC, Mac, Linux
№2: CraftWare
Для начинающих, чтобы подготовить STL-файлы для 3D-печати
Другая программа-слайсер, разработанная производителем 3D-принтеров, венгерским стартапом CraftUnique, для поддержки своего краудфандингового аппарата CraftBot. Впрочем, программа работает и с другими принтерами.
Как и в Cura, в CraftWare можно переключиться с «легкого» на «экспертный» режим — в зависимости от того, насколько уверенно вы себя чувствуете. Это яркое приложение, отличающееся наглядной визуализацией G-кода, на которой каждая функция представлена своим цветом. Но самая выдающая особенность — индивидуальная служба поддержки. Насколько нам известно, подобное есть только у платной программы Simplify3D.
Обратите, однако, внимание, что эта программа еще бета, так что ошибки встречаться могут.
Загрузить: CraftWare
Цена: Бесплатно
Системы: PC, Mac
№3: 123D Catch
Для начинающих, которые хотят создавать 3D-модели для печати
123D Catch — это бесплатное приложение для настольных Windows-систем, смартфонов и планшетов, которое позволяет преобразовывать снимки объектов в 3D-модель. Снимки можно делать смартфоном/планшетом или цифровой камерой.
Требуется множество фотографий объекта с разных ракурсов — чем больше, тем лучше — после чего из них будет составлена 3D-модель.
123D Catch — в большей степени развлекательное приложение, чем профессиональный инструмент для 3D-печати, но после некоторых танцев с бубном можно добиться хороших результатов, особенно в паре с STL-редактором вроде MeshLab или Meshmixer.
Цена: Бесплатно
Системы: PC, Android, iOS, Windows Phone
№4: 3D Slash
Для начинающих, которые хотят создавать 3D-модели для печати
Это программа для 3D-печати, которая одновременно и удивительно проста, и освежающе нова. С помощью 3D Slash вы можете разрабатывать 3D-модели, пользуясь своими умениями игры в кубики.
Можно начать с большого блока и, подобно виртуальному скульптору, удалять из него маленькие кубки такими инструментами, как молоток или дрель, либо начать с пустого пространства и построить модель из кубиков и других форм. Можно раскрашивать цветами или использовать картинки-шаблоны.
В числе других особенностей стоит упомянуть инструменты для создания логотипов и 3D-текста. Лого-мастер импортирует картинку и создает 3D-модель, а текст-мастер позволяет ввести и отформатировать текст, после чего превратить его в трехмерный.
Рекомендуем!
Загрузить: 3dslash.net
Цена: Бесплатно
Системы: PC, Mac, Linux, браузер
№5: TinkerCAD
Для начинающих, которые хотят создавать 3D-модели для печати
TinkerCAD — это онлайн-система автоматизированного проектирования (CAD) для 3D-печати, которая является хорошей отправной точкой для начинающих. Поскольку ее возможности по сравнению с Blender, FreeCAD и SketchUp ограничены, многие пользователи через какое-то время переключаются на более мощные инструменты.
Как и в 3D Slash, здесь вы можете строить модели из базовых форм. При этом, в отличие от 3D Slash, TinkerCAD позволяет создавать векторные фигуры в 2D и преобразовывать их в трехмерные модели.
Заходите: Autodesk TinkerCAD
Цена: Бесплатно
Системы: Браузер
№6: 3DTin
Для начинающих, которые хотят создавать 3D-модели для печати
3DTin — другой простой и интуитивный онлайн-инструмент, великолепный выбор для совсем начинающих в деле 3D-моделирования. Все, что вам нужно, — это браузер Chrome или Firefox с включенной WebGL.
Выбираете из огромной библиотеки шаблонов 3D-форму и добавляете ее к своему эскизу. Все эскизы хранятся в облаке, доступ к ним свободен, если вы чтите лицензию Creative Commons. Всё может быть экспортировано в форматы STL или OBJ.
Заходите: 3DTin
Цена: Бесплатно
Системы: Браузер
№7: Sculptris
Для начинающих, которые хотят создавать 3D-модели для печати
Sculptris — виртуальный инструмент для ваяния, с фокусом на концепцию модельной глины. Это фантастическая программа 3D-моделирования, если ваша главная задача — создавать статуэтки. Например, вы можете изготовить бюст своего любимого персонажа из видеоигры или комикса. Программа Sculptris абсолютно бесплатна и позиционирует себя как ступень к более сложному (и дорогому) инструменту ZBrush.
Загрузить: Pixologic Sculptris
Цена: Бесплатно
Системы: PC, Mac
№8: ViewSTL
Для начинающих, которые хотят просматривать STL-файлы
Использовать ViewSTL — это самый легкий способ просматривать STL-файлы. Просто открываете интернет-страницу и перетаскиваете STL на поле в точечках.
Онлайн-просмотрщик STL позволяет отображать модель в одном их трех видов: плоское затенение (для быстрого просмотра), плавное затенение (для высококачественного изображения) и каркас.
Заходите: ViewSTL
Цена: Бесплатно
Системы: Браузер
№9: Netfabb Basic
Для продолжающих, чтобы подготовить STL-файлы для 3D-печати
Netfabb Basic — это слайсер для 3D-печати с некоторыми приятными особенностями, которые позволяют анализировать, «чинить» и редактировать STL-файлы до перехода на этап нарезки модели.
Хороший выбор, если требуется нечто большее, чем просто слайсер, и вы хотите иметь возможность быстро исправлять STL-файлы, не изучая таких программ, как MeshLab или Meshmixer.
И пусть слово «Basic» в названии вас не смущает: на самом деле Netfabb Basic — очень мощный инструмент для 3D-печати. Он «базовый» лишь в том смысле, что стоит не € 1500, как Netfabb Professional!
Загрузить: netfabb.de
Цена: Бесплатно
Системы: PC, Mac, Linux
№10: Repetier
Для продолжающих, чтобы подготовить STL-файлы для 3D-печати
Если вы готовы перейти на следующий уровень программ-слайсеров для 3D-принтеров, но хотите остаться в рамках открытого исходного кода, вам следует обратить внимание на Repetier. Это прадедушка программ для 3D-печати и фаворит сообщества RepRap.
На сегодняшний день программа семимильными шагами продвигается от уровня для продолжающих к продвинутым пользователям. Укомплектованная по схеме «всё в одном», она поддерживает до 16 экструдеров, мульти нарезку через плагины, а также практически все 3D-принтеры послойного наплавления, которые можно встретить на рынке. Будьте готовы поколдовать!
Более того, Repetier Host работает через Repetier Server удаленно, так что управление 3D-принтером возможно через браузер, планшет или смартфон.
Загрузить: Repetier
Цена: Бесплатно
Системы: PC, Mac, Linux
№11: FreeCAD
Для продолжающих, которые хотят создавать 3D-модели для печати
FreeCAD — это обладающая богатыми возможностями CAD-программа, отличный вариант для развития у себя дизайнерских способностей. Если говорить более технически, то эта программа параметрического 3D-моделирования позволяет с легкостью менять проект, откатываясь по истории модели и редактируя параметры.
Загрузить: freecadweb.org
Цена: Бесплатно
Системы: PC, Mac, Linux
№12: SketchUp
Для продолжающих, которые хотят создавать 3D-модели для печати
SketchUp — совершенная комбинация простоты и функциональности, с дружественным интерфейсом и относительно плоской кривой обучения (т.е. как растет опыт с потраченным временем), идеальный вариант программы для разработки трехмерных моделей.
Версия Make SketchUp бесплатна, и в ней будет все, что вам потребуется для 3D-моделирования, если вы вдобавок загрузите и установите бесплатный модуль для экспорта STL. Существует также профессиональное издание для архитекторов, дизайнеров по интерьеру и инженеров.
Загрузить: sketchup.com
Цена: Бесплатно (SketchUp Make), $695 (SketchUp Pro)
Системы: PC, Mac, Linux
№13: 3D-Tool Free Viewer
Для продолжающих, которые хотят просматривать и проверять STL-файлы
3D-Tool Free Viewer — навороченный инструмент, который в числе прочего позволяет проверять структурную целостность и печатаемость вашего файла. С помощью функции Cross-Section, например, вы можете посмотреть на модель изнутри и проверить толщину стенок. Очень полезно, если вы, прежде чем печатать, хотите проверить свой STL-файл на наличие убийственных ошибок.
Загрузить: 3D-Tool
Цена: Бесплатно
Системы: PC
№14: Meshfix
Для продолжающих, которые хотят проверять STL-файлы
Meshfix — онлайн-инструмент для 3D-печати, который проверит вашу модель на предмет ошибок.
Цена: Бесплатно
Системы: Браузер
№15: Simplify3D
Для профессионалов, чтобы подготовить STL-файлы для 3D-печати
Simplify3D — это не просто программа-слайсер, это настоящий швейцарский нож для 3D-печати. Гибкий алгоритм проверяет модель на наличие проблем, исправляет их, показывает превью процесса печати (идеально для выявления потенциальных проблем) и затем нарезает ее.
Этот слайсер предлагает лучшие среди конкурентов варианты шаблонов заполнения. Для моделей, в которых требуются поддержки, Simplify3D создаст соответствующие структуры самостоятельно и предоставит вам полный контроль за их размещением. Для принтеров с двойным экструдером, при печати разными материалами поможет мастер Dual Extrusion, в результате чего, например, удалить растворяемый филамент будет легче.
Программа Simplify3D поддерживает 90% имеющихся в продаже современных настольных 3D-принтеров и совместима с прошивками Marlin, Sprinter, Repetier, XYZprinting, FlashForge, Sailfish и MakerBot. Simplify3D можно использовать и для прямого управления принтером, но тогда принтер и компьютер должны быть соединены друг с другом.
Загрузить: simplify3d.com
Цена: $149
Системы: PC, Mac, Linux
№16: Slic3r
Для профессионалов, чтобы подготовить STL-файлы для 3D-печати
Slic3r — слайсер с открытым исходным кодом, обладающий репутацией носителя супер нового функционала, которого еще нигде не встретишь. Текущая версия программы умеет показывать модель с множества ракурсов, так что пользователь получает лучшие возможности предпросмотра.
Там также есть невероятное трехмерное сотовое заполнение — первый такого рода паттерн, который может распространяться на несколько слоев, а не повторяться, как штамп. Это существенно повышает прочность внутреннего заполнения модели и финальной распечатки.
Другая возможность — прямая интеграция с Octoprint. Когда файлы на десктопе пользователя нарезаны, они могут быть одним кликом напрямую загружены в Octoprint.
Загрузить: Slic3r
Цена: Бесплатно
Системы: PC, Mac, Linux
№17: Blender
Для профессионалов, которые хотят создавать 3D-модели для печати
Blender — популярная система автоматизированного проектирования (CAD) с крутой кривой обучения. Совсем не лучший выбор для новичков, зато то что надо, если вы вполне поднаторели и нуждаетесь в чем-то более сложном для моделирования и печати.
Если вкратце, Blender — один из самых мощных существующих инструментов. Его сообщество всегда готово прийти на помощь, существует масса обучающих материалов. А еще у него открытый код, так что энтузиасты часто пишут расширения, чтобы сделать его еще лучше и мощнее.
Загрузить: blender.org
Цена: Бесплатно
Системы: PC, Mac, Linux
№18: MeshLab
Для профессионалов, чтобы подготовить STL-файлы для 3D-печати
MeshLab — продвинутый STL-редактор. Он позволяет удалять части 3D-модели, сливать две модели в одну, залатывать дыры. Если вам нужна программа для модификации моделей для 3D-печати или каких-то «ремонтных» работ, MeshLab — правильный выбор.
Цена: Бесплатно
Системы: PC, Mac, Linux
№19: Meshmixer
Для профессионалов, чтобы подготовить STL-файлы для 3D-печати
Meshmixer — супер продвинутая программа 3D-печати для просмотра, проверки, редактирования и ремонтирования STL-файлов. Она особенно хороша для выявления потенциальных проблем и автоматического их исправления. Например, она покажет стенки толщиной в лист бумаги, которые могут привести к проблемам при 3D-печати. Meshmixer является частью семейства программного обеспечения 3D-принтеров Autodesk, поэтому должна хорошо работать в связке с инструментами вроде TinkerCAD.
Цена: Бесплатно
Системы: PC, Mac
№20: OctoPrint
Для профессионалов, которым требуется беспроводное управление 3D-принтером
Octoprint — это «просто» программа-хост для 3D-принтера, которая позволяет запускать, приостанавливать или прерывать задания на 3D-печать. В сочетании с устройствами, поддерживающими Wi-Fi, она служит отличным монитором для удаленного наблюдения за процессом 3D-печати.
Octoprint понимает G-коды практически всех 3D-принтеров и слайсеров и включает в себя gCodeVisualizer для визуализации этого кода перед печатью или во время нее.
Если вы хотите работать вдали от вашего 3D-принтера и управлять им дистанционно, Octoprint — это лучшее из того, что можно найти.
Загрузить: octoprint.org
Цена: Бесплатно
Системы: PC, Mac, Linux
Источник