CAL-печать без лаборатории: открытый слайсер SpinSlicer
Шаг «Модель» в SpinSlicer: Benchy внутри банки, слева конус лучей проектора
Пока вы читаете этот абзац, классический FDM-принтер успеет положить от силы пару линий пластика, а фотополимерник оторвёт от плёнки один 50-микронный слой. А теперь представьте принципиально иной процесс: стеклянная банка с прозрачной жидкостью вращается на платформе, в неё бьёт луч проектора с меняющимся узором, и через несколько десятков секунд прямо в толще смолы возникает готовая монолитная деталь.
В ней нет ступенек по высоте, нет межслойных дефектов и нет леса поддержек, который потом приходится часами срезать ножом. Вы просто извлекаете готовое изделие пинцетом и промываете в изопропиловом спирте.
Это не рендер из фантастического кино, а технология Computed Axial Lithography (CAL) — объёмная томографическая печать. Научные основы метода описаны в журналах Science и Nature Communications командами из Беркли и Федеральной политехнической школы Лозанны ещё в 2019–2020 годах. Физический принцип давно доказан и многократно воспроизведён в лабораториях, но за их пределами технология до сих пор остаётся экзотикой: открытый проект OpenCAL существует, однако собрать по нему принтер дорого и непросто.
Мы с другом решили разобраться, почему вокруг столь многообещающего метода нет доступной открытой экосистемы, и начали делать собственный слайсер с открытым исходным кодом — SpinSlicer.
Коротко, о чём статья:
- как устроена объёмная печать и почему ей не нужны слои;
- из чего состоит CAL-стенд и где в нём подводные камни;
- что умеет бесплатный слайсер SpinSlicer и как он показал себя в сравнении с научным алгоритмом;
- почему главная проблема — смола;
- что конкретно мы предлагаем тем, кто хочет присоединиться.
Томография наоборот
Принцип работы CAL проще всего объяснить через медицинскую томографию, только запущенную в обратном направлении. В компьютерном томографе рентгеновская трубка делает серию теневых снимков под разными углами, а алгоритм по ним восстанавливает трёхмерную картину.
В объёмной печати мы идём от обратного: берём 3D-модель и считаем такие кадры для всех углов от 0 до 360°, чтобы их сумма дала нужную дозу света внутри банки. Проектор показывает эти кадры синхронно с вращением, и каждый луч проходит через весь объём насквозь.
Один кадр отдаёт смоле лишь малую долю энергии и ничего не отверждает. Но там, где сходятся лучи со всех сторон, суммарная доза превышает порог, и деталь формируется целиком, сразу во всём объёме.
Наша симуляция на срезе гайки: чем больше углов, тем чётче доза собирается в форму детали
Важная подробность: кадры нельзя просто «вычесть» из модели. Свет не бывает отрицательным, поэтому кадры подбирают оптимизацией — так, чтобы внутри детали доза была выше порога, а снаружи заметно ниже. Именно здесь решается, будет ли печать чёткой или превратится в кашу. Подробно метод описан в работе Kelly et al., Science 2019.
Железо: проще, чем кажется
При знакомстве с академическими установками вроде OpenCAL мейкера первым делом отпугивает смета: по нашим подсчётам, она уходит за полторы тысячи долларов. Дело не в сложности устройства, а в академической привычке собирать всё из каталогов лабораторной оптики, где даже простой крепёж стоит десятки долларов.
Механика CAL-принтера проще любого настольного принтера:
- нет осей X и Y, ремней, кареток и концевиков — вся кинематика это один поворотный стол;
- вращение — шаговый двигатель NEMA 17 с тихим драйвером TMC2209;
- корпус — печатается на домашнем принтере;
- оптика — проектор и иммерсионная ванна.
Условная схема CAL-стенда: проектор, кювета с глицерином, банка со смолой на поворотном столе
Зачем ванна. Круглая банка в воздухе работает как цилиндрическая линза и собирает пучок. Поэтому её ставят в прямоугольную стеклянную кювету с глицерином или другой жидкостью, чей показатель преломления близок к стеклу и смоле. Тогда лучи идут почти прямо.
Ход лучей через банку в воздухе и в ванне. Наш расчёт по закону Снеллиуса
При сборке придётся повозиться с юстировкой оптики и радиальным биением банки, но, по нашим прикидкам, бюджет такого стенда укладывается в 20–35 тысяч рублей.
Самое тонкое место — синхронизация кадров с вращением. Если просто проиграть видео и надеяться, что мотор крутится с той же скоростью, ошибка копится с каждым оборотом, и кадры уезжают относительно банки. Поэтому в SpinSlicer кадр на проекторе выбирается по часам, а не по счётчику показанных кадров: вывод не накапливает отставания, а когда расчётная доза набрана, проектор гаснет сам.
Софт: SpinSlicer и движок FastCAL
Обычные слайсеры вроде PrusaSlicer или Chitubox здесь неприменимы: они режут модель на плоские слои, а CAL нужно решить обратную задачу — подобрать свет для всех углов сразу. Для этого мы делаем SpinSlicer: бесплатный слайсер под лицензией MIT, с готовыми установщиками для Windows и Linux. Актуальная версия — 0.8.0, интерфейс на русском и английском.
Работа идёт в три шага:
- Модель — загрузить STL, повернуть и вписать в банку.
- Свет — рассчитать кадры и сразу посмотреть, что затвердеет.
- Печать — вывести на проектор, сохранить видео MP4 или отдельные кадры PNG.
Шаг «Свет»: виртуальная печать. Бежевое затвердеет как задумано, красное — лишняя смола, синее — недосвет
В первых версиях мы считали кадры классическим методом SIRT, теперь у SpinSlicer свой движок FastCAL. Идея в том, что в круглой банке все углы оптически одинаковы. Лучи достаточно проследить для одного угла, а большая задача после преобразования Фурье по углу распадается на много маленьких независимых.
В оптической модели учтены:
- преломление на границах сред (закон Снеллиуса) и потери Френеля;
- затухание света в глубине смолы (закон Бугера–Ламберта–Бера);
- профиль пикселя и конус лучей проектора;
- поворот банки за время показа одного кадра.
Расчёт идёт на обычном процессоре, без видеокарты, и занимает от 160 до 768 МБ памяти в зависимости от свободной оперативки.
Мы сравнили FastCAL с алгоритмом OSMO из научных работ на одних и тех же моделях. Сравнивали две вещи: насколько затвердевшее совпало с моделью (IoU, 1 = идеально) и сколько длился расчёт.
FastCAL точнее на всех трёх моделях и считает в 15–19 раз быстрее. Все цифры — в симуляции
Кадры проектора для Benchy под тремя углами: сверху OSMO, снизу FastCAL
Подробная методика и остальные результаты — в репозитории.
Кроме расчёта кадров, в SpinSlicer есть:
- виртуальная печать: кадры в том виде, как их покажет проектор, превращаются обратно в дозу, и затвердевшая деталь показывается в 3D рядом с моделью;
- план печати: время и число оборотов из свойств смолы и проектора, плюс калибровочная печать для новой смолы;
- вывод на проектор: кадры 1:1 на родном разрешении и автоостановка, когда доза набрана.
Шаг «Печать»: экран проектора, скорость вращения и доза в среднем слое детали
Честно о границах: все цифры выше получены в симуляции. Математика сходится, но алгоритму ещё предстоит калибровка под искажения настоящих объективов и проверка живой печатью.
Смола — главный барьер
Именно смола, а не железо и не софт, чаще всего останавливает открытые проекты. Если залить в банку обычную смолу для LCD- или DLP-принтера, эксперимент, скорее всего, провалится: она либо останется жидкой, либо застынет целиком.
Чем CAL-смола отличается от обычной:
- Прозрачность. Обычные смолы сделаны для слоёв в десятки микрон, поэтому в них нарочно добавляют поглотители света. В CAL луч должен пройти банку диаметром в несколько сантиметров почти без потерь, иначе края пересветятся, а сердцевина не наберёт дозу.
- Резкий порог. Фонового света в CAL много. Если смола застывает постепенно, весь объём превратится в студень раньше, чем появится деталь. Помогает растворённый кислород: на малых дозах он перехватывает радикалы и держит мономер жидким, а затвердевание начинается только там, где кислород выработался. Этот механизм описан ещё в первой работе по CAL.
- Вязкость. Поддержек нет, поэтому смола должна быть густой, как мёд: иначе застывающий фрагмент утонет прямо во время экспозиции.
Специальная смола для OpenCAL продаётся за рубежом, и с доставкой в Россию она становится почти золотой. При этом рецептуры таких составов не секретны и опубликованы в научных статьях:
- основа: вязкие мономеры, например диакрилаты полиэтиленгликоля (PEGDA) и уретанакрилаты;
- фотоинициаторы в микродозах: TPO для 405 нм или камфорхинон с амином для синего света;
- ингибитор: TEMPO, чтобы порог был резким и стабильным.
По нашим данным, эти вещества можно купить в России у поставщиков, работающих с производителями клеёв, композитов и лаков. Изобретать их не нужно: нужно рассчитать концентрации, измерить поглощение на рабочей длине волны и подобрать баланс ингибирования.
Безопасность: акрилатные мономеры вызывают аллергию при контакте с кожей, поэтому работайте в нитриловых перчатках, очках и с вентиляцией.
Что мы предлагаем и кого ищем
Сразу о том, чего нет: мы не продаём и не раздаём принтеры, готового набора тоже нет. Инструкцию по сборке стенда мы выложим в открытый доступ, когда сами проверим её живой печатью. Публиковать непроверенную схему не хотим.
Что есть уже сейчас и бесплатно:
- SpinSlicer — готовые установщики для Windows и Linux на странице релизов. Лицензия MIT: можно пользоваться, менять код и встраивать в свои проекты.
- Помощь с настройкой. Если у вас есть CAL-установка или вы её собираете, поможем настроить SpinSlicer под вашу банку, проектор и смолу.
- Открытые результаты. Методика сравнения, замеры и код лежат в репозитории, их можно проверить и повторить.
Кого ищем и что конкретно нужно:
- Владельцев CAL-установок (OpenCAL или самодельных). Напечатайте по кадрам SpinSlicer тестовую гайку или Benchy и пришлите фото и параметры печати. Это сейчас самая ценная помощь: так мы проверим расчёт на настоящем железе.
- Мейкеров и инженеров — довести поворотный стенд и оптику: юстировка, биение банки, выбор проектора на 405 нм.
- Химиков и материаловедов — подобрать и проверить открытую рецептуру смолы. Результат выложим вместе, под открытой лицензией и с указанием авторов.
- Программистов на Python — ускорение расчёта, поддержка новых проекторов, тесты.
Как присоединиться:
- Скачайте SpinSlicer со страницы релизов и попробуйте посчитать свою модель.
- Напишите, что у вас есть и чем хотите помочь: в Issues на GitHub, в комментариях к статье или в Telegram @Schiaparellli.
- Мы ответим и вместе решим, с чего начать.
Давайте объединим усилия и покажем, что передовую аддитивную технологию вполне реально поднять своими руками.
Еще больше интересных статей
Петербургские политехники освоили технологию 3D-печати металлами без плавления
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
ЦКБ «Лазурит» протестирует цифровую платформу судостроения от «Аскон»
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
#3Dврачам: поможем бороться с пандемией. Приглашаем присоединиться к движению «Мейкеры против COVID-19»
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
3D-печатники, мейкеры и просто неравнодушные люди в России подключа...









Комментарии и вопросы
🤣👍
Графомания в чистом виде. Ниче...
Нуу... Если бы они написали, ч...
Покупаете ли вы готовые STL-ки...
Добрый день! Прочитал правила,...
Ребята приветствую! Прошу, пож...
Подскажите, есть ли смысл в не...