Ищете программное обеспечение для 3D-принтеров? Ознакомьтесь с нашим руководством. В обзоре мы собрали лучшие программные инструменты для 3D-печати.
Из статьи вы узнаете, какая программа больше всего подходит для каждого этапа 3D печати — какое ПО требуется для проектирования 3D-моделей с нуля, для подготовки моделей, печати и калибровки 3D принтера.
Также мы отметили, какие программы больше подойдут новичкам, а какие профессионалам, какое ПО доступно на русском языке, а какое только на английском, привели ссылки для скачивания.
Большинство приведенных в статье программ бесплатны для всех, некоторые — для студентов, преподавателей и проектов Open Source.
Содержание:
Рабочий процесс 3D-печати | Утилита калибровки 3D принтеров | Vectary |
Моделирование | 3D-Tool Free Viewer | Figuro |
Редактирование | MakePrintable | SketchUp Free |
Нарезка на слои | Meshmixer | Fusion 360 |
Калибровка | MeshLab | FreeCAD |
Печать | Netfabb | Blender |
ПО | TinkerCAD | OnShape |
Cura | 3D Slash | Компас |
Repetier-Host | Sculptris | В заключение |
Рабочий процесс 3D-печати
Если вы новичок в 3D-печати, вам интересно будет узнать, зачем существует так много разных программ в этой сфере и чем они отличаются. В этой статье мы рассказываем о разных типах ПО для 3D-принтера и даем ссылки для скачивания.
В 3D-печати используется четыре основных типа программного обеспечения, которые выполняют свои функции последовательно.
Моделирование
Программное обеспечение для 3D-моделирования позволяет создавать 3D-модели на компьютере. Вы можете спроектировать что угодно, от отвертки до модели автомобиля.
Конечно, если вы не хотите создавать собственную 3D-модель, вы можете скачать 3D-модели сделанные другими — их много на таких сайтах, как 3DToday и Thingiverse.
Редактирование
Просмотр, редактирование и ремонт моделей для печати в формате STL. Независимо от того, создаете ли вы свою собственную 3D-модель или загружаете ее из интернета, чаще всего вы получаете STL-файл. Однако не все файлы STL идеальны, а некоторые могут иметь и явные недостатки. Дефекты моделей приводят к браку или сбоям при печати.
Программное обеспечение просмотра, редактирования и ремонта файлов STL позволяет визуализировать, изменять и исправлять файлы STL, чтобы гарантировать, что они готовы к 3D-печати. Обычно такое ПО совмещено со следующей разновидностью программ для 3D-печати — слайсерами.
Нарезка на слои
Слайсер преобразует STL-файл в G-код — управляющий код для принтера, содержащий команды для печати каждого слоя модели и последовательность их применения. Зачастую слайсер содержит в себе функции диагностики и ремонта или автоисправления моделей.
Читать: Лучшие слайсеры для 3D-печати
Калибровка
Программа для калибровки помогает откалибровать принтер и упрощает подбор параметров для оптимальной печати. Она нужна как при первоначальной настройке принтера, так и в процессе использования — для определения параметров печати конкретного пластика.
Печать
Хост — программа для печати, она отвечает за передачу G-кода на принтер, позволяет отслеживать процесс печати и изменять настройки в режиме реального времени, если принтер подключен к компьютеру. Многие принтеры имеют встроенное ПО, печатающее модели с флешки или карты памяти.
Часто функционал слайсера и хоста объединен в одной программе.
Эти четыре типа программного обеспечения для трехмерной печати позволяют воплотить цифровую 3D-модель в физический 3D-объект.
ПО
Характеристики:
-
Название: Cura
-
Функции Slicer, 3D Printer Host
-
Уровень: Начальный
-
Язык: Английский, Русский
-
Цена: Бесплатно
-
ОС: Windows, Mac, Linux
-
Скачать: Cura
Cura — программное обеспечение для 3D-принтеров Ultimaker, также его можно использовать с большинством других 3D-принтеров. Его исходный код открыт, а функционал может быть расширен через систему плагинов
Это простое в использовании ПО позволяет управлять основными параметрами 3D-печати через простой интерфейс. Начните в режиме «Основной», где можно выбрать настройки качества печати. Если нужно более точное управление настройками качества печати, перейдите в режим «Эксперт».
Cura может непосредственно управлять 3D-принтером, для он должен быть подключен к ПК в течение всего времени печати.
Полная интеграция с CAD-софтом, подобным Solid-Works и Siemens NX, показывает применимость данного ПО в профессиональной деятельности, но для подавляющего большинства домашних пользователей, Cura — это простой и доступный слайсер для 3D-печати.
Бесплатное программное обеспечение для слайсинга и 3D-печатиRepetier-Host
Характеристики:
-
Название: Repetier-Host
-
Функции Slicer, 3D Printer Host
-
Уровень: средний
-
Язык: Английский, Русский
-
Цена: Бесплатно
-
ОС: Windows, Mac, Linux
-
Скачать: Repetier
Repetier — опенсорсная программа для управления 3D-принтером и слайсерами.
С Repetier возможна печать несколькими экструдерами, их может быть до 16. Программа работает с разными слайсерами и поддерживает большинство существующих 3D-принтеров. Количество возможных настроек порадует любителей детально контролировать каждый нюанс.
Одна из особенностей Repetier — возможность удаленного доступа через сервер, — можно контролировать печать по сети, откуда угодно.
Бесплатное программное обеспечение для слайсинга и 3D-печатиУтилита калибровки 3D принтеров
Характеристики:
-
Название: утилита для калибровки принтеров
-
Функции калибровка принтеров
-
Уровень: Средний
-
Язык: Русский
-
Цена: Бесплатно
-
ОС: Windows
-
Скачать/посетить: Утилита для калибровки принтеров
Утилита для калибровки принтеров — это простая программа, которая позволяет произвести первоначальную настройку принтера, а в дальнейшем настраивать принтер под конкретный пластик. Со слов автора: “Писал я её изначально для себя, но сейчас решил всё таки выложить для всеобщего доступа, возможно кому-то она будет полезна.” Описание программы можно прочитать на сайте 3DToday, продолжение, окончание.
Бесплатное программное обеспечение для калибровки принтера3D-Tool Free Viewer
Характеристики:
-
Название: 3D-Tool Free Viewer
-
Функции STL анализирование
-
Уровень: Средний
-
Язык: Английский
-
Цена: Бесплатно
-
ОС: Windows
-
Скачать/посетить: 3d-Tool Viewer
3D-Tool Free Viewer — это продвинутый просмотрщик STL, который также позволяет проверять структурную целостность и пригодность файла для печати. Например, функция «поперечное сечение» позволяет взглянуть внутрь модели и проверить толщину стенки.
Это может быть полезно, когда есть необходимость проверить STL-файл на наличие ошибок перед тем, как начать 3D-печать, либо надо просмотреть большое количество моделей — в такой программе это намного быстрее и удобней, чем в слайсере.
Бесплатное программное обеспечение для просмотра 3D-моделей
MakePrintable
Характеристики:
-
Название: MakePrintable
-
Функции STL редактор, STL восстановление
-
Уровень: Средний
-
Язык: Английский
-
Цена: Бесплатно
-
ОС: Браузер
-
Скачать/посетить: MakePrintable
В этом веб-сервисе можно проверить файлы моделей на наличие ошибок и исправить их. Сервис “понимает” и распознает более 15 форматов входящих файлов и обрабатывает файлы размером до 200 мегабайт, а также может напрямую подключаться к Sketchup, Blender и аккаунту на Thingiverse, и импортировать файлы оттуда. Загруженные файлы анализируются на наличие ошибок, проблем с поддержками и толщиной стенок, а затем автоматически исправляются с сохранением качества. Параметры исправления и исходящей детализации можно задавать вручную, либо выбрать один из основных режимов..
“Лечение” происходит в облачном сервисе, мощности которого позволяют провести процесс точно и быстро.
Файлы можно выводить в разных форматах и печатать прямо из сервиса, на выбор.
Бесплатное программное обеспечение для редактирования и восстановления STL-файлов для 3D-печати
Meshmixer
Характеристики:
-
Название: Meshmixer
-
Функции STL редактор, STL восстановление
-
Уровень: Средний
-
Язык: Английский
-
Цена: Бесплатно
-
ОС: Windows, Mac
-
Скачать/посетить: Meshmixer
Meshmixer — продвинутое программное обеспечение для просмотра, проверки, редактирования и исправления STL файлов. Оно особенно хорошо для выявления потенциальных проблем и их автоматического восстановления. Это часть семейства программного обеспечения для 3D-печати Autodesk.
Бесплатное программное обеспечение для редактирования и восстановления STL-файлов для 3D-печати
MeshLab
Характеристики:
-
Название: MeshLab
-
Функции: STL редактор, STL восстановление
-
Уровень: Профессионал
-
Язык: Английский
-
Цена: Бесплатно
-
ОС: Windows, Mac, Linux
-
Скачать/посетить: MeshLab
MeshLab — это усовершенствованное программное обеспечение для редактирования STL, которое позволяет вам исправлять и редактировать поверхности, объединять объекты и повышать качество моделей для печати. ПО работает не только с готовыми STL-файлами, но может и конвертировать в них облако точек полученное от 3D-сканера.
Включены такие функции, как устранение шума.
Заполнение “дыр” в моделях.
Оптимизация модели.
Упрощение, для уменьшения размера файла и более быстрой печати.
Бесплатно для студентов, программное обеспечение для редактирования и восстановления STL-файлов для 3D-печати, для конвертации облака точек в STL
Netfabb
Характеристики:
-
Название: Netfabb
-
Функции: STL Восстановление, Слайсер
-
Уровень: профессионал
-
Язык: Английский
-
Цена: Бесплатно для студентов
-
ОС: Windows
-
Скачать/посетить: Netfabb
Netfabb — это программное обеспечение для слайсинга, которое предлагает расширенные функции анализа и редактирования STL, позволяя вам исправить модель до нарезки.
Компания предлагает бесплатную трехлетнюю лицензию Netfabb для студентов.
Бесплатно для студентов, программное обеспечение для редактирования и восстановления STL-файлов для 3D-печати, для конвертации облака точек в STL
TinkerCAD
Характеристики:
-
Название: TinkerCAD
-
Функции Дизайн
-
Уровень Начальный
-
Язык: Английский, Русский
-
Цена: Бесплатно
-
ОС: Браузер
-
Скачать/посетить :TinkerCAD
TinkerCAD — браузерное приложение для автоматизированного проектирования (CAD), которое послужит хорошей отправной точкой для начинающих.
Похожее на 3D Slash, это приложение может использоваться для 3D-печати и создания 3D-моделей из шаблонов простых форм. TinkerCAD также позволяет создавать геометрические фигуры в 2D и преобразовывать их в 3D-модели.
Однако набор функций TinkerCAD несколько ограничен по сравнению с такими, как Blender, FreeCAD и SketchUp, поэтому для сложных проектов пользователям лучше переключаться на более мощный инструмент.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати
3D Slash
Характеристики:
-
Название: 3D Slash
-
Назначение: Дизайн
-
Уровень: Начальный
-
Язык: Английский
-
Цена: Бесплатно
-
ОС: Браузер
-
Скачать/посетить: 3D Slash
3D Slash — принципиально упрощенное для начинающих ПО для моделирования, в котором модели можно собирать по принципу блочного конструктора (типа LEGO).
Просто соединяйте “кирпичики”, либо отделяйте их от начального большого блока с помощью таких инструментов, как “молоток” или “дрель”. Также можно использовать разные цвета и текстуры из изображений, или загрузить текст или лого в плоском векторном изображении и сделать его объемным.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати, первый 3D-редактор для начинающего.
Sculptris
Характеристики:
-
Название: Sculptris
-
Назначение: Дизайн
-
Уровень: Начальный
-
Язык: Английский
-
Цена: Бесплатно
-
ОС: Windows, Mac
-
Скачать/посетить: Sculptris
Sculptris — это инструмент для виртуальной скульптуры, с функциональностью сравнимой с физической модельной глиной. Это фантастический инструмент для моделирования, если ваша основная цель — создавать статуи или статуэтки в классической манере. Идеально для желающих научиться скульптуре и студентов художественных вузов.
Sculptris совершенно бесплатен. Он позиционируется как ступень к более сложному и функциональному приложению ZBrush.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати, лучший 3D-редактор для скульптуры.
Vectary
Характеристики:
-
Название: Vectary
-
Назначение: Дизайн
-
Уровень: средний
-
Язык: Английский
-
ОС: Браузер
-
Скачать/посетить: Vectary
Vectary — это мощное веб-приложение для 3D-дизайна, которое предлагает один из самых простых интерфейсов для быстрого и удобного 3D-моделирования. Интеграция с различными библиотеками активов, включая Sketchfab, позволяет импортировать модели и собирать их из готовых элементов, а расширенные инструменты моделирования — создавать свои собственные модели с нуля.
Встроенный экспорт в OBJ делает Vectary подходящим вариантом для 3D-печати. Приложение доступно как веб-сервис, через браузер.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати, первый 3D-редактор для начинающего.
Figuro
Характеристики:
-
Название: Figuro
-
Назначение: Дизайн
-
Уровень Средний
-
Язык: Английский
-
ОС: Браузер
-
Скачать/посетить: :Figuro
Figuro сочетает в себе доступность TinkerCAD с мощностью более продвинутых инструментов 3D-моделирования. Для тех, кто хочет развивать свои навыки 3D-моделирования без глубокого погружения.
Figuro позволяет создавать объемные модели из элементарных геометрических фигур, перемещая их, поворачивая и соединяя вместе. Это не очень эффективно при создании моделей для 3D-печати, возможны ошибки в файлах при экспорте в STL, которые можно устранить в программах для редактирования.
Несомненный плюс Figuro — это приятный и удобный интерфейс.
Приложение доступно в браузерном режиме.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати, первый 3D-редактор для начинающего.
SketchUp Free
Характеристики:
-
Название: SketchUp Free
-
Назначение: Дизайн
-
Уровень: Средний
-
Язык: Английский, Русский
-
Цена: Бесплатно
-
ОС: Браузер
-
Скачать/посетить: SketchUp
SketchUp, как набор программного обеспечения для 3D-моделирования, предлагает сочетание простоты и функциональности с удобным интерфейсом и относительно простой формой обучения, привлекающей новичков. Опытных мастеров приложение привлекает усовершенствованными инструментами рисования. Это делает SketchUp одной из самых популярных программ 3D-моделирования.
SketchUp Make и SketchUp Free — бесплатные браузерные версии. Платный SketchUp Pro доступен для установки на компьютер.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати.Fusion 360
Характеристики:
-
Название: Fusion 360
-
Назначение: Дизайн
-
Уровень Средний
-
Язык: Английский
-
Цена: Бесплатно
-
ОС: Windows, Mac
-
Скачать/посетить: Fusion 360
Fusion 360 — профессиональный программный инструмент 3D CAD, созданный пионерами программного обеспечения в Autodesk. В отличие от других профессиональных 3D-инструментов, эта программа исключительно удобна и проста в использовании и охватывает весь процесс планирования, тестирования и выполнения 3D-дизайна.
Это ПО обладает мощными параметрическими инструментами и аналитическими функциями, которые хорошо подходят для решения большинства задач связанных с промышленным дизайном. В программе доступно моделирование нагрузок и напряжений готовой конструкции для расчета прочностных характеристик.
Fusion 360 также отличается уникальными возможностями совместной работы. Он поддерживает совместное использование файлов через облачные сервисы и импорт/экспорт общих типов файлов CAD.
Если вы любитель, студент или стартап, то Fusion 360 абсолютно бесплатен для вас. Условия: использование любителем должно быть некоммерческим, в качестве стартапа вы должны иметь прибыль менее 100 000 долларов в год, а образовательная лицензия ограничена тремя годами.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати. Бесплатно для студентов. Бесплатно для любителей. Бесплатно для стартапов.
FreeCAD
Характеристики:
-
Название: FreeCAD
-
Назначение: Дизайн
-
Уровень: Средний
-
Язык: Английский
-
Цена: Бесплатно
-
ОС: Windows, Mac, Linux
-
Скачать/посетить: FreeCAD
FreeCAD — многофункциональное программное обеспечение CAD и отличный инструмент совершенствования дизайнерских навыков. 3D-модель создается в FreeCAD заданием параметров, а не как перетаскиванием объектов и манипулированием ими с помощью мыши.
Доступна история действий — в любой момент можно вернуться на несколько шагов назад и внести изменения.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати.Blender
Характеристики:
-
Название: Blender
-
Назначение: Дизайн
-
Уровень Профессионал
-
Язык: Английский, Русский
-
Цена: Бесплатно
-
ОС: Windows, Mac, Linux
-
Скачать/посетить: Blender
Blender это популярное программное обеспечение для автоматизированного проектирования (CAD). Это, возможно, не самый лучший выбор для начинающего, который только учится 3D-моделированию, но он идеален для тех, кто хочет развивать свои навыки и создавать сложные 3D-модели.
Blender — один из самых мощных инструментов моделирования для 3D-печати, который вы можете использовать. Благодаря широкой популярности, у программы большое и полезное сообщество, по работе с ней огромное количество материалов в сети. Это Open Source-проект, так что к Blender часто пишут расширения, что увеличивает его функциональность.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати. Бесплатно для студентов. Бесплатно для любителей. Бесплатно для стартапов. Бесплатно для всех.
OnShape
Характеристики:
-
Название: OnShape
-
Назначение: Дизайн
-
Уровень: Профессионал
-
Язык: Английский
-
Цена:: Бесплатно (Образовательная лицензия для студентов)
-
ОС: Браузер
-
Скачать/посетить: OnShape
OnShape — мощный программный комплекс САD корпоративного уровня работающий в браузере. Предназначен для профессиональных пользователей, которым требуется управление удаленными проектами и возможность совместной работы. Обеспечивает параметрическое 3D-моделирование без сохранения локальных файлов, проекты доступны в облаке. В отличие от установленных на локальную машину САD и PDM, OnShape дает всем в команде мгновенный доступ рабочему пространству, где коллеги могут работать над проектом сообща, находясь при этом где угодно.
Еще одна полезная функция — возможность управлять мастер-дизайном без необходимости сохранять копии или отслеживать множество различных версий файлов.
Обычно нужно платить за доступ к OnShape, но педагогам и учащимся предоставляется бесплатное пользование.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати. Бесплатно для студентов. Бесплатно для образования.
Компас
Характеристики:
-
Название: Компас
-
Назначение: САПР
-
Уровень: Профессионал
-
Язык: Русский
-
Цена:: Бесплатно (Учебная версия)
-
ОС: Windows
-
Скачать/посетить: Компас
Компас — мощный программный комплекс САПР, написанный с учетом требований Российских ГОСТов к проектной документации. Может создавать эскизы, трехмерные детали, сборки. Выпускается в архитектурной и машиностроительной конфигурации. В машиностроительной содержит большое количество библиотек различных элементов. Наиболее применяемой в 3D-печати является библиотека шестеренок, которая позволяет автоматически генерировать шестерни по заданным параметрам.
Смоделированные детали объединяются в сборки, в которых можно посмотреть насколько точно эти детали подходят друг к другу. Последние версии Компаса умеют загружать файлы формата STL для дальнейшей обработки.
По готовым моделям можно создавать чертежи полностью соответствующие стандарту ЕСКД.
Для домашнего использования есть дешевая версия, но учащимся предоставляется бесплатное пользование.
Бесплатное программное обеспечение для моделирования и редактирования моделей для 3D-печати. Бесплатно для учащихся.
В заключение
Мы представили самые популярные программы для 3D-печати, в основном бесплатные, либо бесплатные для учащихся и педагогов. При внимательном и тщательном освоении они с лихвой покрывают потребности, которые могут возникнуть в любительской и образовательной 3D-печати, а также в малом бизнесе.
Для серьезной работы могут понадобиться более мощные программные инструменты, которые можно приобрести у официального дистрибьютора крупнейших разработчиков — в Top 3D Shop.
Все изображения принадлежат их владельцам.
Узнайте больше о возможностях усовершенствовать ваше производство интеграцией нового оборудования:
Как подготовить 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
Приручаем динозавров, или как я писал свой собственный 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 — мощная браузерная программа для САПР, которая предназначена для профессиональных пользователей. Софт позволяет организовать совместную работу над проектом и хранить данные в облаке.
Программа предоставляет всем членам команды мгновенный доступ к одной и той же рабочей области САПР и одним и тем же данным в облаке. Дополнительная возможность управления основным дизайном без необходимости сохранять копии и отслеживать разные версии файлов делает работу по-настоящему удобной.
Программа имеет бесплатную версию для студентов и преподавателей, а также пользователям, которые занимаются некоммерческими проектами.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Время на прочтение
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
Содержание
- Способ 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-принтера
Полученная программа выглядит вот так (это не вся программа, а только начальная часть, для примера, программа синем шрифтом, мои комментарии — черным):
Обычный заголовок:
(<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>)
И так далее….
3D-печать — это многоэтапный процесс, ведь сначала необходимо спроектировать 3D-модель, проверить ее на ошибки, преобразовать в машинный код, и только потом в дело идет 3D-принтер. В этой статье мы поделимся примерами программ, способных помочь на каждом этапе подготовительной работы и непосредственно во время 3D-печати.
Содержание:
1. Программы для 3D-моделирования:
- Tinkercad
- ZBrushCoreMini
- 3D Builder
- SketchUp Free
- Fusion 360
- FreeCAD
- Blender
2. Редактирование и ремонт STL-файлов:
- Meshmixer
- MeshLab
3. Cлайсеры:
- Cura
- PrusaSlicer
- ideaMaker
- ChiTuBox Basic
- Lychee Slicer
- Kiri:Moto
- IceSL
4. Управляющие программы:
- OctoPrint
- MatterControl 2.0
- AstroPrint
5. Программы для визуализации G-кода
- UVTools
- WebPrinter
- Gcode Analyzer
- Design Software
1. Программы для 3D-моделирования
Если вы готовы творить с нуля, придется осваивать специальные программы для 3D-моделирования. Многие из них, особенно профессиональные системы автоматизированного проектирования, могут быть дорогими вложениями, но с другой стороны на рынке предостаточно вполне способных и при этом бесплатных предложений.
Tinkercad
Tinkercad — это браузерное приложение от Autodesk, ввиду свой простоты отлично подходящее для пользователей с нулевым опытом, даже для детей. В этой программе 3D-модели строятся на основе базовых блоков — простых геометрических фигур, соединяемых вместе, а затем «обрабатываемых напильником» до готового вида. Также можно преобразовывать в 3D-модели двухмерные векторные изображения. Само собой, за простоту необходимо платить — в случае с Tinkercad довольно примитивным функционалом, мешающим создавать по-настоящему комплексные модели. Но такая задача и не стоит: получив базовые навыки на Tinkercad всегда можно перейти на более сложные и более способные программы в нашем списке.
Официальный сайт
ZBrushCoreMini
ZBrushCoreMini — в первую очередь инструмент для 3D-скульптинга, особенно популярный среди тех, кто занимается созданием фигурок людей и животных, персонажей компьютерных игр и комиксов, и тому подобного. Это программное обеспечение в основном ориентировано на новичков и пользователей с умеренным опытом, но в то же время полно впечатляющих функций, облегчающих работу. Например, алгоритмы динамической тесселяции постоянно анализируют поверхность рабочей модели и автоматически добавляют полигоны так, чтобы не нарушалась детализация.
ZbrushCoreMini предлагается на бесплатной основе и позиционируется как программа входного уровня для обучения и постепенного перехода на более способные и сложные варианты — ZBrush и ZbrushCore.
Официальный сайт
3D Builder
Эта программа разработана корпорацией Microsoft и какое-то время предлагалась в комплекте с Windows 10, хотя нынче ее необходимо скачивать и устанавливать отдельно. 3D Builder позволяет редактировать модели в форматах STL, OBJ, and 3MF, а также создавать модели с нуля. В этом плане программа достаточно примитивна, зато проста и понятна даже начинающим моделерам.
Одна из интересных особенностей 3D Builder состоит в способности упрощать меши, снижая количество полигонов, вес файлов и время обработки в слайсере — удобно в тех случаях, когда оригинальный дизайнер явно переборщил с полигонами. Дополнительно можно импортировать модели из библиотеки и даже использовать сенсоры Kinect для 3D-сканирования и импорта моделей физических объектов.
Официальный сайт
SketchUp
SketchUp — веб-приложение с отличным сочетанием простоты и функциональности. Удобный интерфейс интуитивно понятен и значительно облегчает обучение, а набор инструментов достаточно разнообразен даже для продвинутых пользователей — отсюда и широкая популярность этой программы.
Бесплатный вариант ранее назывался SketchUp Make, а теперь именуется просто SketchUp Free. В него входит все необходимое для 3D-моделирования под 3D-печать, только не забудьте скачать модуль для экспорта STL-файлов — он тоже бесплатный. В комплекте идут 10 Гб на хранение проектов в облаке и доступ к 3D Warehouse — репозиторию с опенсорсным пользовательским контентом.
Официальный сайт
Fusion 360
Профессиональная САПР, разработанная компанией Autodesk и славящаяся удобством пользования и продвинутым функционалом. Сюда входят параметрическое моделирование и инструменты анализа мешей и распределения нагрузок, в тем числе за счет генеративного дизайна с топологической оптимизацией. Программа отлично подходит для тех, кто занимается 3D-печатью функциональных изделий, например для промышленного применения.
Некоторые версии Fusion 360, например хоббийные и студенческие, даже доступны на бесплатной основе.
Официальный сайт
FreeCAD
Опенсорсная программа с богатым функционалом, хорошо подходящая для тех, кто уже освоил азы и готов поднять навыки на новый уровень. Программа полагается на параметрический подход: в любой момент историю можно прокрутить назад и внести изменения в параметры. Программа даже включает анализ методом конечных элементов и симулятор робототехнических систем.
Официальный сайт
Blender
Одна из самых популярных программ для 3D-моделирования, но довольно сложная в освоении. Не лучший выбор для начинающего дизайнера, но отличный инструмент для тех, кто уже успел набить руку на более простых редакторах. К счастью, популярность Blender привела к появлению огромного количества руководств, уроков и наглядных примеров, публикуемых опытными пользователями для начинающих коллег.
Разработчики пытаются сделать программу более удобной без ущерба функциональности: в последнее время обновился интерфейс, усовершенствован рендеринг, расширены возможности 3D-дизайна и анимации. И да, это опенсорсная и бесплатная программа, так что вы ничем не рискуете.
Официальный сайт
2. Редактирование и ремонт STL-файлов
Если вы нашли на просторах интернета занимательную 3D-модель, это еще не означает, что ее можно сразу отправлять на 3D-принтер. Многие модели создаются совсем для других нужд, например анимаций или видеоигр, и в принципе не предназначены для 3D-печати. Но решение есть: перед переработкой таких моделей в G-код их необходимо сначала починить так, чтобы слайсер сумел качественно сделать свою работу. Справиться с ремонтом помогут следующие программы в нашем списке.
Meshmixer
Meshmixer — продвинутая и к тому же бесплатная программа от Autodesk, позволяющая просматривать и проверять 3D-модели на наличие ошибок в полигональных сетках, способных испортить 3D-печать. В случае выявления таких проблем программа умеет автоматически ремонтировать меши. Один из примеров применения — доводка 3D-сканов до состояния, пригодного для 3D-печати.
Дополнительный функционал включает смешивание мешей, 3D-скульптинг, нанесение надписей на поверхности, создание полостей, разветвление опорных структур, сглаживание мешей, и многое другое.
Официальный сайт
MeshLab
MeshLab — еще одна опенсорсная программа для редактирования полигональных сеток. MeshLab обладает необходимыми инструментами для редактирования, проверки, чистки и конвертации мешей с возможностью объединения сеток в одну модель и латания дыр, способных привести к некорректной переработке моделей в G-код.
Официальный сайт
3. Слайсеры
Получив 3D-модель, ее необходимо преобразовать в машинный код — серию команд, понятных станкам с ЧПУ, в том числе 3D-принтерам. За выполнение этой задачи отвечают слайсеры — программы, принимающие цифровые модели (как правило, в виде файлов с расширениями STL, OBJ или 3MF), анализирующие их структуру, а затем составляющие для 3D-принтеров списки действий, называемые G-кодом (Gcode). Такие списки содержат всю необходимую оборудованию информацию: до какой температуры прогревать экструдеры и столики, использовать ли обдув, по какой траектории и с каким темпом укладывать пластик.
Cura
Cura — слайсер нидерландской компании Ultimaker, созданный в первую очередь для фирменных 3D-принтеров, но при этом опенсорсный и совместимый с большинством других FDM/FFF-систем. Программа легко надстраивается с помощью всевозможных плагинов. Так как это очень популярная программа, шансы таковы, что в ней уже есть профиль с оптимальными настройками для вашего 3D-принтера. Если нет, то ничто не мешает создать профиль вручную или использовать профили, подготовленные другими пользователями.
Программа имеет несколько уровней сложности в зависимости от уровня подготовки — базовый, продвинутый, экспертный и полный. Чем выше уровень, тем шире доступ к настраиваемым параметрам. На базовом уровне программа берет основную часть работы на себя, помогая неопытным пользователям.
Сura постоянно развивается и совершенствуется через регулярные обновления, к тому же предлагается на бесплатной основе, хотя профессиональным пользователям доступна платная версия Cura Enterprise с лицензированными плагинами с площадки Ultimaker Marketplace, технической поддержкой и дополнительными мерами безопасности.
Помимо преобразования 3D-моделей в G-код Сura также может взять на себя роль управляющей программы, но для этого потребуется постоянное соединение 3D-принтера с компьютером на всем протяжении 3D-печати. Профессионалы ценят еще одну особенность Cura — бесшовную интеграцию с такими профессиональными системами автоматизированного проектирования, как SolidWorks и Siemens NX.
В целом же, Сura подходит даже начинающим пользователям, тем более что для этой программы доступно огромное количество обучающих видео и пошаговых руководств как от разработчиков, так и энтузиастов.
Официальный сайт
PrusaSlicer
Компания-производитель 3D-принтеров Prusa Research под руководством легендарного чешского инженера Йозефа Пруши, чьи дизайны копируются и дорабатываются по всему миру, разработала собственное опенсорсное программное обеспечение на основе слайсера Slic3r. PrusaSlicer быстро завоевал популярность, так как в нем не только сохранены обширные настройки оригинальной программы, но и добавлен ряд полезных функций, отсутствующих в Slic3r.
Переделанный интерфейс, поддержка фирменных 3D-принтеров под брендом Original Prusa и профили с настройками для работы многими распространенными полимерами — лишь часть улучшений. Дополнительно усовершенствованы алгоритмы генерации опорных структур, добавлены поддержка мультиматериальной 3D-печати и возможность динамической регулировки толщины слоя.
PrusaSlicer умеет обрабатывать модели не только для FDM 3D-принтеров, но и стереолитографических систем, печатающих фотополимерами. Как и в случае с Cura, пользователь может выбрать уровень сложности с соответствующим доступом к тонким настройкам.
Официальный сайт
ideaMaker
Слайсер компании Raise3D оптимизирован под фирменное аддитивное оборудование точно так же, как PrusaSlicer оптимизирован под 3D-принтеры Original Prusa, а Cura — под 3D-принтеры Ultimaker, но это не означает, что его нельзя использовать с системами от сторонних производителей. Организация рабочих процессов и интерфейс несколько сложнее, чем в Cura и PrusaSlicer, но с другой стороны ideaMaker дает возможность настройки индивидуальных слоев и нанесения текстур для кастомизации изделий.
Пользователи ideaMaker могут подключаться к облачной платформе и получать доступ к сотням профилей 3D-принтеров и материалов, созданных другими операторами, либо составлять собственную библиотеку настроек.
Добавьте сюда возможность кастомизации опорных структур, деления моделей для более эффективной 3D-печати больших изделий, интегрированные инструменты ремонта полигональных сеток и совместимость с OctoPrint, и получается гибкая, универсальная программа, подходящая для нужд большинства 3D-печатников.
Официальный сайт
ChiTuBox Basic
Это специализированный слайсер для тех, кто использует стереолитографические 3D-принтеры, печатающие фотополимерными смолами. Большинство бюджетных ЖК-масочных стереолитографических (MSLA) 3D-принтеров полагается на материнские платы и прошивки от компании ChiTu Systems, она же разработала и это программное обеспечение.
Пользователи получают контроль над специфичными для этой технологии параметрами, например продолжительностью засветки слоя, а также доступ к заранее подготовленным профилям с настройками для многих популярных 3D-принтеров. Слайсер учитывает такие моменты, как ориентация модели и автоматическое построение опорных структур с возможностью ручной оптимизации.
Официальный сайт
Lychee Slicer
Программа от независимой франко-бельгийской команды Mango 3D, не связанной с производителями 3D-принтеров, но с поддержкой многих популярных стереолитографических 3D-принтеров, в том числе от Elegoo, Anycubic, Phrozen и Creality.
Одна из особенной этой это программы — высокий уровень автоматизации. При желании можно просто нажать на «волшебную» кнопку (она так и называется — Magic), и слайсер сделает все сам: сориентирует модель на платформе, сгенерирует поддержки и так далее. Хотя, тут как повезет: результаты не всегда оптимальны, но обычно адекватны для относительно простых моделей. В противном случае все можно настроить вручную.
Программа предлагается в бесплатном и платном вариантах. Функционал бесплатной версии немного урезан, но все необходимое в ней есть.
Официальный сайт
Kiri:Moto
Браузерное решение для тех, кому не хватает вычислительных мощностей. Kiri:Moto может подготовить 3D-модели как под 3D-печать, так и под лазерное гравирование или фрезерование. Настройки несколько более примитивны, чем в локально установленных слайсерах, но вполне достаточны для большинства пользователей.
Официальный сайт
IceSL
IceSL — это комбинированное программное обеспечение, сочетающее слайсинг с 3D-моделированием. В левом окне можно редактировать 3D-модели посредством скриптов на языке Lua, что дает возможность параметрического моделирования. С правой стороны отображаются настройки 3D-печати. Новичкам доступны предварительно подготовленные настройки, а опытные пользователи могут воспользоваться такими функциями, как специфичная настройка параметров для отдельных слоев с автоматической градацией промежуточных участков. Например, это позволяет постепенно снижать или, наоборот, повышать плотность заполнения изделия по мере построения, либо постепенно менять толщину слоев.
Официальный сайт
4. Управляющие программы
Управляющие программы предназначены именно для этого — управления рабочими процессами во время 3D-печати. Хотя в практически любой 3D-принтер можно вставить накопитель с G-кодом и нажать на кнопку запуска, это не всегда удобно, особенно когда приходится работать с несколькими 3D-принтерами одновременно, а тем более делать это удаленно. Здесь на помощь и приходят управляющие программы. К тому же, некоторые из них предлагают дополнительный функционал, включая слайсинг и даже редактирование 3D-моделей.
OctoPrint
Программно-аппаратный комплекс с веб-интерфейсом, требующий подключения к 3D-принтеру через микрокомпьютер вроде Raspberry Pi, оснащенный модулем Wi-Fi. Эта система позволяет управлять 3D-принтерами удаленно. OctoPrint принимает G-код практически с любого слайсера и предоставляет возможность визуализации — просмотра файлов до и во время 3D-печати. Как вариант, можно загружать и обрабатывать STL-файлы прямо в OctoPrint.
OctoPrint не только предоставляет все необходимые инструменты для удаленного управления, но и позволяет отслеживать выполняемую работу с помощью уведомлений через различные мессенджеры.
Это полностью бесплатная, опенсорсная программа с множеством плагинов, созданных энтузиастами и доступных на официальном сайте.
Официальный сайт
MatterControl
MatterHackers предлагает свою собственную управляющую программу, слайсер и 3D-редактор в одной упаковке. MatterControl позволяет напрямую управлять и наблюдать за 3D-печатью, слайсить, экспортировать G-код на SD-карты для автономной печати и даже создавать 3D-модели с нуля. Для работы под управлением MatterControl 3D-принтеру потребуется подключение через Wi-Fi или USB.
Интерфейс хорошо структурирован: c левой стороны расположены браузер файлов и библиотека простых геометрических фигур. Что интересно, эти фигуры можно перетащить в 3D-модель и использовать в качестве опорных структур.
Основной функционал доступен в бесплатной базовой версии, продвинутые пользователи могут заплатить за апгрейд до MatterControl Pro.
Официальный сайт
AstroPrint
AstroPrint — это облачная управляющая платформа, позволяющая удаленно мониторить и управлять несколькими 3D-принтерами одновременно, хранить файлы, преобразовывать 3D-модели в G-код и отслеживать статистику рабочих процессов. Функционал варьируется от базового в бесплатной версии до продвинутого с разными уровнями платных подписок.
Для полноценной работы с AstroPrint 3D-принтеру потребуется модуль Wi-Fi. В связке с Raspberry Pi система похожа по функциональности на OctoPrint: можно обрабатывать модели и посылать готовый код на 3D-принтер через веб-интерфейс без необходимости в дополнительном программном обеспечении. Еще один плюс — интеграция с популярными репозиториями 3D-моделей Thingiverse и MyMiniFactory, а также 3D-редакторами 3D Slash и Leopoly.
Официальный сайт
5. Программы для визуализации G-кода
Как быть, если вы нашли у себя старый файл с G-кодом, но понятия не имеете что это и зачем — может быть мусор, а может быть отличная, но давно позабытая модель без понятной маркировки в названии файла? Просмотреть содержимое таких файлов в наглядном виде помогут программы в этом разделе.
UVTools
Это программа сочетает возможность просмотра файлов с редактированием слоев и даже ремонтом моделей для стереолитографической 3D-печати. Программа также может использоваться как плагин для PrusaSlicer, добавляя поддержку фотополимерных 3D-принтеров от сторонних производителей — хотя PrusaSlicer и опенсорсный, поддержка стереолитографических систем пока ограничена фирменным оборудованием. Заодно UVTools позволяет печатать калибровочные образцы для проверки времени засветки и других параметров, что может быть полезно, например, при работе с новыми, еще не опробованными фотополимерами.
Официальный сайт
WebPrinter
Простой браузерный инструмент для быстрого предварительного просмотра G-кода, разработанный той же командой, что создала слайсер и 3D-редактор IceSL. Работает приложение очень просто: переходите по ссылке, заливаете файл с G-кодом и смотрите, как 3D-принтер будет выращивать модель по предоставленным командам. К сожалению, функционал ограничен: например, приложение не предоставляет информацию о настройках температуры. С другой стороны, можно быстро разобраться что это за модель спряталась в файле с непонятным названием.
Официальный сайт
Gcode Analyzer
Cтарое, но все еще очень способное и популярное веб-приложение для анализа G-кода. 3D-симуляция работает не очень хорошо, зато просмотр 2D и G-кода работают на ура. В режиме 2D можно с удобством просматривать отдельные слои, переходя со слоя на слой и отслеживая траекторию построения шаг за шагом с помощью двух слайдеров. Просмотр G-кода выводит на экран полный список команд, позволяя смотреть что делает та или иная строка кода.
Официальный сайт
Адаптированный перевод статьи The Best Free 3D Printing Software of 2022. Оригинал размещен на сайте All3DP.com.