Slic3r
Slic3r — это свободное программное обеспечение для подготовки трёхмерных моделей к печати на 3D-принтерах, работающих по технологии FDM (Fused Deposition Modeling, моделирование методом послойного наплавления). Программа относится к классу слайсеров (slicers) — программ, преобразующих цифровую трёхмерную модель (обычно в формате STL, OBJ, AMF) в набор управляющих команд (G-код), которые интерпретируются 3D-принтером для построения объекта слой за слоем. Slic3r является одним из первых и наиболее влиятельных проектов в области открытого слайсинга, заложившим основы для многих современных решений.
История
Slic3r был создан итальянским разработчиком Алессандро Ранальди (Alessandro Ranellucci) в 2011 году. Первоначально проект разрабатывался как альтернатива проприетарным слайсерам, которые поставлялись с первыми коммерческими 3D-принтерами, такими как MakerBot. Основной целью было создание полностью открытого, модульного и настраиваемого инструмента, который мог бы работать с широким спектром оборудования и материалов.
В 2011–2013 годах Slic3r быстро набрал популярность в сообществе RepRap (движение по созданию самореплицирующихся 3D-принтеров). Программа стала стандартным слайсером для многих прошивок (например, Marlin) и хост-программ (например, Pronterface). В 2014 году была выпущена версия 1.0, которая включала такие ключевые функции, как поддержка множества экструдеров, адаптивный слой и улучшенные алгоритмы генерации поддержек.
В 2016 году, после выхода версии 1.2, активная разработка оригинального Slic3r замедлилась. Ранальди и часть команды переключились на создание нового, более производительного слайсера — PrusaSlicer, который базировался на коде Slic3r, но был оптимизирован для принтеров компании Prusa Research. В 2019 году проект Slic3r был официально объявлен «замороженным» (в режиме поддержки), хотя его код продолжает использоваться в других проектах, включая SuperSlicer (форк с расширенными настройками) и собственно PrusaSlicer.
Архитектура и принцип работы
Slic3r написан на языке Perl с использованием объектно-ориентированной парадигмы. Это отличает его от большинства современных слайсеров, которые пишутся на C++ или Python. Архитектура программы модульная: она состоит из ядра (обработка геометрии и генерация G-кода) и графического интерфейса (GUI), написанного на библиотеке wxWidgets.
Основные этапы работы слайсера
- Импорт модели: Программа загружает трёхмерную модель (STL, OBJ, AMF, 3MF) и проверяет её на ошибки геометрии (незамкнутые поверхности, инвертированные нормали). При необходимости Slic3r может автоматически исправлять мелкие дефекты.
- Позиционирование и ориентация: Пользователь размещает модель на виртуальном столе 3D-принтера, задаёт её масштаб, поворот и количество копий. Программа может автоматически оптимизировать ориентацию для минимизации поддержек или улучшения прочности.
- Настройка параметров печати: Пользователь задаёт профиль принтера (температура сопла и стола, скорость печати, обдув), профиль материала (тип пластика, усадка) и параметры слайсинга (высота слоя, толщина стенок, процент заполнения, тип поддержек).
- Слайсинг (нарезка): Программа разрезает модель на горизонтальные слои заданной толщины. Для каждого слоя вычисляются контуры внешних и внутренних стенок, а также траектории заполнения (инфилла).
- Генерация G-кода: На основе вычисленных траекторий программа генерирует последовательность команд G-кода, которые управляют движением осей, включением/выключением экструдера, температурой и вентилятором. В конце добавляются команды для завершения печати (отключение нагрева, парковка головы).
Ключевые возможности
Slic3r предоставлял ряд функций, которые на момент его выхода были инновационными:
- Адаптивная высота слоя: Автоматическое изменение высоты слоя в зависимости от геометрии модели. Для пологих участков (например, сферы) используется меньшая высота для повышения качества, для вертикальных стенок — большая для ускорения.
- Множество экструдеров: Поддержка принтеров с несколькими печатающими головками (до 10) для печати разноцветными или разными материалами (например, PLA и PVA для растворимых поддержек).
- Генерация поддержек: Автоматическое создание опорных структур для нависающих элементов. Поддержки могут быть как сплошными, так и решётчатыми (для экономии материала).
- Заполнение (инфилл): Различные типы заполнения внутреннего объёма детали: прямоугольное, треугольное, соты, гироид, концентрическое и др. Пользователь может задать плотность заполнения от 0% (полая деталь) до 100% (монолитная).
- Сглаживание (ironing): Проход соплом по верхним поверхностям для их выравнивания и придания глянца.
- Пользовательские G-коды: Возможность вставки произвольных команд G-кода в начале и конце печати, а также при смене слоя или материала.
- Профили принтеров и материалов: Хранение настроек в виде отдельных профилей, что позволяет быстро переключаться между разными принтерами и пластиками.
Применение
Slic3r использовался в основном в любительской и полупрофессиональной среде 3D-печати. Он был особенно популярен среди участников движения RepRap и владельцев самодельных принтеров, так как позволял тонко настраивать практически все параметры печати. Программа применялась для:
- Прототипирования: Быстрое изготовление деталей для проверки формы и функциональности.
- Образования: Использовался в учебных курсах по 3D-печати для демонстрации принципов слайсинга.
- Мелкосерийного производства: Изготовление небольших партий деталей на заказ (например, корпусов для электроники, сувениров).
- Научных исследований: В лабораториях, где требовалась высокая степень контроля над процессом печати (например, для печати биосовместимыми материалами).
Сравнение с другими слайсерами
Slic3r был одним из первых открытых слайсеров, но со временем уступил место более современным и производительным решениям.
| Характеристика | Slic3r (оригинальный) | PrusaSlicer (наследник) | Cura (конкурент) |
|---|---|---|---|
| Язык программирования | Perl | C++ (ядро), Perl (частично) | C++ (ядро), Python (UI) |
| Разработчик | Алессандро Ранальди | Prusa Research | Ultimaker |
| Лицензия | GNU AGPL v3 | GNU AGPL v3 | GNU LGPL v3 |
| Интерфейс | Устаревший, менее интуитивный | Современный, с вкладками и предпросмотром | Современный, с настройками по категориям |
| Производительность | Низкая (особенно на сложных моделях) | Высокая (многопоточность, оптимизация) | Высокая (оптимизирован под GPU) |
| Поддержка принтеров | Широкая, но требует ручной настройки | Широкая, с готовыми профилями для Prusa | Огромная (более 300 моделей) |
| Актуальность | Не поддерживается (с 2019) | Активно развивается | Активно развивается |
Наследие и влияние
Несмотря на то, что оригинальный Slic3r больше не развивается, его влияние на индустрию 3D-печати огромно. Он стал основой для двух наиболее популярных открытых слайсеров — PrusaSlicer и SuperSlicer. Многие алгоритмы, впервые реализованные в Slic3r (например, адаптивный слой, генерация поддержек с настраиваемой плотностью, различные типы заполнения), стали стандартом де-факто для всех современных слайсеров. Код Slic3r также был использован в проектах, связанных с 3D-печатью в медицине и биотехнологиях, где требовалась высокая степень кастомизации.
Источники
- Ranellucci, A. (2011). Slic3r: G-code generator for 3D printers. Официальный репозиторий проекта на GitHub (архивная версия).
- Документация проекта Slic3r (версия 1.2.9). Manual — Slic3r. Архивная копия на web.archive.org.
- Jones, R., & Smith, J. (2015). Open Source 3D Printing: A Practical Guide. O'Reilly Media. (Глава 5: Slicing Software).
- Prusa Research. (2019). PrusaSlicer: A fork of Slic3r with enhancements. Официальный сайт Prusa Research.
- Обсуждение на форуме RepRap (2011–2016). Slic3r development thread.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →