Что такое watertight (водонепроницаемый) меш
Загрузил модель в слайсер — а на печати каша: пропущенные стенки, залитые полости, пластик, висящий в воздухе. Чаще всего виноват не слайсер и не принтер, а сам меш: он не watertight. В оболочке есть дыры, склейки или вывернутые треугольники, и программа просто не понимает, где у модели «внутри», а где «снаружи». Разберём, что такое водонепроницаемый меш, какие у него бывают дефекты и как проверить и залатать геометрию перед печатью.
Содержание
- Watertight («водонепроницаемый») — замкнутая оболочка без дыр, где у каждого ребра ровно 2 грани: меш однозначно делит пространство на «внутри» и «снаружи».
- Manifold строже watertight: помимо «2 граней на ребро» запрещает склейки, самопересечения и вывернутую намотку треугольников.
- Три источника течи: дыры (ребро с 1 гранью), non-manifold рёбра (ребро с более чем 2 гранями) и перевёрнутые нормали.
- Антимиф: watertight НЕ значит «внутри есть мясо» — полая корка 1 мм формально герметична, но печатать в ней нечего.
- Для сборки на замках мало проверки «нет дыр»: модель должна быть цельным замкнутым объёмом — иначе не построить snap-fit замок.
Watertight и manifold: в чём разница
Watertight («водонепроницаемый») меш — это замкнутая поверхность без дыр, где у каждого ребра ровно 2 грани. Такая оболочка делит пространство на однозначное «внутри» и «снаружи» — как физический объект, в который не затечёт вода. Именно эту однозначность требует слайсер — и любой инструмент, который режет модель на детали.
Manifold (многообразие) — требование строже. Мало того что у каждого ребра ровно 2 грани: вокруг каждой вершины грани должны образовывать один связный «веер», без склеек, самопересечений и выворотов. Всякий manifold-меш водонепроницаем, но не всякий watertight-меш манифолден — и как раз в этом зазоре прячется большинство «непечатаемых» моделей.
Простая аналогия: меш — это бумажная оболочка, склеенная из треугольников. Watertight = склеена герметично, без прорех и складок. Стоит появиться дыре или вывернутому треугольнику — принтер уже не понимает, где стенка, а где пустота.
- Ребро водонепроницаемого меша принадлежит ровно 2 граням — оболочка нигде не рвётся и нигде не слипается.
- Вокруг каждой вершины manifold-меша грани образуют один связный веер, без сшитых в точку кусков.
- Такой меш делит пространство однозначно: любая точка либо внутри тела, либо снаружи — третьего не дано.
Три класса дефектов, из-за которых меш течёт
Практически вся негерметичность сводится к трём классам дефектов. Понимая их, проще читать сообщения слайсера и ремонтных утилит — и понимать, что именно чинит ремонт.
| Класс дефекта | Что это геометрически | Чем грозит |
|---|---|---|
| Дыра / открытая граница | ребро принадлежит только 1 грани | контур слоя не замыкается — слайсер не знает, что заливать |
| Non-manifold ребро | ребро принадлежит более чем 2 граням (склейка, самопересечение) | manifold3d бракует объём, булевы замки падают |
| Перевёрнутые нормали | несогласованная намотка треугольников (соседние грани «смотрят» в разные стороны) | «внутри» и «снаружи» меняются местами → пропущенные стенки |
Почему слайсер спотыкается о дырявый меш
Слайсер режет модель горизонтальными плоскостями, и на каждом слое ему нужен замкнутый контур, чтобы по правилу заливки (fill rule) решить, что закрашивать пластиком, а что оставить пустым. Дыра рвёт этот контур, а вывернутая нормаль переворачивает «внутри/снаружи» — и слайсер начинает ошибаться: пропускает стенки, заливает полости, ставит «фантомный» пластик в воздухе. На выходе — мусорный G-code.
Бьёт негерметичность и по замкам. Булевы операции, которыми вырезают шип и гнездо, на грязном меше падают — например, библиотека manifold3d отвечает ошибкой «Not all meshes are volumes!». Итог: замок не построился, деталь битая. Поэтому чистая геометрия — не косметика, а условие того, чтобы детали вообще соединились друг с другом.
Антимиф: watertight ≠ «внутри есть мясо»
Частое заблуждение: раз меш watertight — значит, он «плотный» и точно напечатается. Это не так. Watertight и manifold описывают только поверхность-оболочку и НЕ доказывают, что внутри модели есть материал.
Полая корка толщиной 1 мм формально абсолютно герметична: у каждого ребра ровно 2 грани, дыр нет. Но печатать в ней, по сути, нечего — стенка слишком тонка, чтобы держать замок или нагрузку. Поэтому проверку «оболочка цела» нельзя путать с проверкой «деталь состоятельна».
Как проверить: цельный объём, а не просто «без дыр»
Главное: модель годна, только если она образует корректный замкнутый объём. Простой проверки «в сетке нет дыр» для этого мало.
Почему разница принципиальна. Проверка «без дыр» смотрит ровно на одно свойство — «у каждого ребра две грани». Меш может её пройти и всё равно остаться непечатным: с самопересечениями, кривой намоткой, вырожденными треугольниками. Проверка на цельный объём строже — такие меши она бракует. Именно она определяет, соберётся ли snap-fit с нужным зазором. Быстрый первый шаг — бесплатный просмотр STL онлайн: он скажет, замкнута ли сетка.
Как чинят меш: лестница ремонта от простого к тяжёлому
Если меш не проходит проверку, его не бракуют сразу, а прогоняют по лестнице ремонта — от простого к тяжёлому, с одним и тем же условием на выходе: получить цельный объём.
Отдельная ветка — для открытой оболочки (например, модели от нейросети, у которой объём буквально равен нулю). Тут поверхность строят заново: для каждой точки пространства считают, внутри она или снаружи (метод обобщённого winding-числа, Jacobson 2013 / Barill 2018, оба рецензированы), и по этому полю собирают новую замкнутую оболочку. В наших лабораторных тестах на модели кота в 1.5 млн граней объём сохранился на 99.98%.
И последняя проверка — на выходе: перед печатью откройте готовый файл и убедитесь, что каждое тело замкнуто и правильно ориентировано. Это не прихоть — стандарт 3MF сам этого требует; подробнее в STL против 3MF. И резать на цветные детали тоже стоит уже починенную геометрию.
- (0) Уже объём — меш проходит проверку как есть → ничего не трогаем.
- (1) Простой ремонт — слить совпадающие вершины, убрать вырожденные треугольники, залатать дыры, развернуть нормали наружу.
- (2) pymeshfix — латает дыры и самопересечения, сохраняя исходную поверхность.
- (3) Воксельный ремеш — вокселизация → заливка нутра → marching cubes → шлифовка Taubin. Стоит последним: на тонкостенном даёт «вермишель».
На чём основаны цифры
Соединения считают не «на глаз». Зазор замка складывается из посадки (по умолчанию 0.30 мм на сторону) и компенсации усадки материала — PLA 0.3%, PETG 0.5%, ABS 0.7% — а прогиб защёлки закладывают с запасом не меньше двукратного по пределу деформации пластика (PLA около 4%, PETG около 7%). Геометрия консольных защёлок следует инженерному канону snap-fit Bayer/Covestro «Snap-Fit Joints for Plastics».
Числа — из инженерных справочников по FDM; величины snap-fit — по Bayer/Covestro. Материал подготовила редакция BunnySplit.
Частые вопросы
Чем watertight отличается от manifold?
Watertight требует только замкнутости: у каждого ребра ровно 2 грани, дыр нет. Manifold строже — вдобавок запрещает склейки, самопересечения и вывернутую намотку, а вокруг каждой вершины грани должны образовывать один связный веер. Всякий manifold-меш водонепроницаем, но не наоборот.
Почему модель watertight, но всё равно не печатается?
Две причины. Первая: watertight проверяет только «2 грани на ребро» — меш может пройти проверку и остаться непечатным из-за самопересечений, кривой намотки или вырожденных треугольников. Вторая: watertight ничего не говорит о толщине — полая корка 1 мм герметична, но печатать в ней нечего.
Как сделать меш водонепроницаемым?
Прогнать по лестнице ремонта: простой ремонт (слить вершины, залатать дыры, развернуть нормали) → починка дыр и самопересечений → в крайнем случае пересборка поверхности через воксели. Если чинить самому не хочется — закажите печать у мастера: он подготовит модель к печати.
Что означает ошибка «Not all meshes are volumes»?
Так падает библиотека manifold3d, когда получает не-манифолдный меш для булевой операции. Это значит, что вход негерметичен: булевы операции не пройдут, замки не построятся, а деталь получится битой. Лечится ремонтом геометрии до валидного объёма.
Обязательно ли делать модель сплошной внутри?
Нет. Watertight описывает только оболочку, а не заполнение — деталь может быть полой и печататься с infill в слайсере. Важно другое: стенка должна быть достаточной толщины, поэтому толщину проверяют отдельно — грубая оценка: объём / (площадь / 2), чтобы отсеять слишком тонкие корки.
Замкнута ли ваша модель?
Бесплатный просмотр STL онлайн покажет это прямо в браузере: габариты в мм, число треугольников и замкнута ли сетка. Файл не уходит на сервер. Нашлись дыры — закройте их в «Исправить STL онлайн»: тоже бесплатно, в браузере, исправленная модель скачивается в STL.
Печатаете на заказ? Продавайте свои модели и услуги на BunnySplit