Проверяем «без поддержек» до печати: острова, вылеты и тонкие стенки по слоям
«No supports» в описании модели часто означает «у автора получилось». Покупатель узнаёт правду через три часа печати, когда над пустотой повисает спагетти. Мы делаем модели на продажу и хотели ловить такие места до публикации, а не по отзывам. Ниже наш порядок проверки: что считаем, какие пороги выбрали и на каких моделях это нас уже спасло.
Идея: нарезать модель самим
Слайсер умеет показать нависания, но его вывод неудобно проверять автоматически. Поэтому до слайсера мы режем STL на горизонтальные сечения с шагом слоя (0,2 мм) и сравниваем каждый слой с предыдущим как плоские многоугольники. Инструменты обычные для Python: trimesh для сечений, shapely для геометрии на плоскости. На модель средней сложности уходят секунды.
Всё, что описано ниже, считается по тому самому STL-файлу, который потом скачает покупатель (файл перечитывается с диска, отчёт привязан к его хешу). Так проверка не «врёт» из-за того, что проверяли одну версию, а выложили другую.
Проверка 1. Острова
Остров — это новый контур на слое, который вообще не касается слоя ниже. Он печатается в воздух. Размер не важен: тонкая висящая колонна так же портит печать, как большая полка. Любой остров (кроме первого слоя) — провал.
Проверка 2. Вылет за нижний слой
Для каждого участка слоя, который выходит за контур предыдущего, считаем, насколько далеко он торчит. Нормальный наклон даёт смещение 0,2 мм × tg(50°) ≈ 0,24 мм на слой — это проходит. Если материал выступает дальше 1,2 мм (примерно три ширины линии соплом 0,4) — это консоль, и мы считаем, что нужна поддержка. Для мостов, которые опираются с двух сторон, вылетом считается половина пролёта.
Почему не просто «угол больше 45°»: угол нормали к поверхности ничего не говорит о длинных тонких выступах и о мостах. Вылет по слоям ловит и то и другое.
Как это считается, по шагам:
- Берём часть слоя, которая выходит за контур слоя ниже (с допуском на нормальный наклон 0,24 мм).
- Для каждой такой части находим самую дальнюю от нижнего слоя точку — это и есть вылет.
- Если вылет больше 1,2 мм, а площадь части больше 1 мм² — помечаем слой как требующий поддержки.
Проверка 3. Площадь неподдержанного
Отдельно суммируем площадь неподдержанных участков шире ~1,2 мм. Допуск — 1 мм² на слой. Это страховка от «широкого, но короткого» нависания, которое вылет по точкам может недооценить.
Проверка 4. Тонкие стенки и перемычки
Делаем морфологическое «открытие» сечения на 0,8 мм (два периметра соплом 0,4): всё, что исчезло, тоньше двух линий. Если таких мест больше 2 % площади — провал. Хуже другое: тонкая перемычка, которая соединяет две толстые части. Если она держится пять слоёв подряд (1 мм высоты) в одном месте, это не кончик детали, а слабое место конструкции — тоже провал.
Проверка 5. Стол и тела
Каждое отдельное тело должно касаться стола минимум 12 мм² первого слоя. Проверяем число тел (лишний «мусорный» объём из CAD — частая ошибка) и зазор между телами не меньше 0,4 мм, если деталей в файле несколько. Плюс габариты: всё должно влезать на стол 180 × 180 мм, самый маленький из распространённых.
Потом — слайсер
Только после этого файл режется в PrusaSlicer из командной строки: общий профиль PLA, сопло 0,4, слой 0,2, поддержки выключены. Любое предупреждение слайсера — провал. Время печати и граммы в описании мы берём только отсюда.
Примеры, где это сработало
Конфетница-звезда с закруткой. Стенки расширяются кверху и закручены на 18°. На кончиках лучей наклон складывается из радиального (~29°) и касательного (~22°) — выходит около 36° от вертикали. Проверка по слоям подтверждает: вылет меньше порога на всей высоте, поддержки не нужны.

Башня для кубиков. Первая версия печаталась стоя, и наклонные пандусы внутри были мостами над пустотой — проверка вылета их сразу отбраковала. Решение — перевернуть идею: весь внутренний профиль (стенки, три пандуса, дно, лоток) рисуется в 2D и выдавливается поперёк, а корпус печатается лёжа на боку. Пандусы тогда растут вверх прямо от стола и нависаний нет вообще. Открытую сторону закрывает плоская панель на штырях.


Ёлочные игрушки. Здесь споткнулся не вылет, а стол: у подвесок маленькая площадь контакта. Мы расширили основание и указали в описании кайму 5 мм — и в проверке слайсером кайма теперь включается для таких моделей, чтобы проверялось ровно то, что мы советуем.
Чего такая проверка не видит
Это цифровая проверка геометрии, а не печать. Она ничего не знает о вашем охлаждении, пластике, короблении углов и о том, как ведёт себя конкретный принтер. Физически мы модели не печатаем, поэтому время и граммы — оценки слайсера на общем профиле. Задача у проверки узкая: не выпустить файл, в котором по геометрии есть места, требующие поддержек, тонкие стенки или слабый контакт со столом.
Если интересно, в следующих статьях разберём подробнее пороги (почему 1,2 мм, а не 2) и проверку зазоров для сборных моделей.
Модели и код проверки мы разрабатываем с помощью ИИ; изображения в статье — рендеры файлов.
Еще больше интересных статей
Насадка на фен.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Gridfinity 2x1 6u, подставка и держатель кабелей: комплект под FDM
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Поднимаем модель с изображения.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Часто натыкаясь в объявлениях о просьбе замоделить что-то простое...

Комментарии и вопросы
Вы пока таки и не поняли, что....
У меня K1C не было файла /etc/...
Не дождётесьпей свои запрещенн...
Приветствую! Приобрел себ...
постоянный засор сопла после з...
Добрый день.Подскажите в чем м...
Photon Mono 4 Ultra. Во время...