Найти тему

Все о представлении 3D-объектов в stl-формате

В статье - ответы на вопросы "что такое stl-файл?", в чем его особенности, недостатки, и почему он на долгие годы стал стандартом в 3D-печати.

3D-печать имеет давнюю историю. Первая технология 3D-печати - стереолитография появилась в далеких 80-х годах, когда программы трехмерного проектирования были еще экзотикой, и для работы SLA-принтеров нужен был простой, понятный, не требующий больших вычислительных мощностей формат представления трехмерного объекта. И такой формат был предложен – stl, разработан фирмой «3D Systems, ink» для своих 3D-принтеров, и фактически стал стандартом отрасли на долгие годы. Трехмерный «округлый» объект в нем апроксимируется с необходимой точностью треугольными гранями, объект с плоскими гранями может быть представлен точно.

Рисунки, поясняющий принципы апроксимации поверхности треугольниками:

В Stl-файле даются координаты треугольников, составляющих объект. Направление «внутрь-наружу» определяется по правилу правой руки и называется нормалью. При перечислении вершин треугольника по часовой стрелке от зрителя нормаль направлена от зрителя, при перечислении вершин против часовой стрелки – нормаль направлена к зрителю.

Рисунок, поясняющий правила топологии stl-формата:

Вверху - принцип направления нормали, внизу принципы построения - все нормали должны иметь одно направление. все треугольники должны иметь общую вершину, два соседних треугольника должны иметь общую грань
Вверху - принцип направления нормали, внизу принципы построения - все нормали должны иметь одно направление. все треугольники должны иметь общую вершину, два соседних треугольника должны иметь общую грань

Очевидно, что «правильный» объект должен быть описан так, чтобы:
1) Внутри объекта не было «лишних» треугольников
2) Все нормали были направлены наружу объекта, или внутрь полости объекта
3) Вся поверхность была занята треугольниками (не было пропусков в поверхности)
4) Все соседние треугольники сходились в одной вершине
5) Два соседних треугольника имели общую грань
6) Отсутствие внутренних стенок и поверхностей в модели

Любое нарушение вышеуказанных правил делает модель топологически неправильной, «битой». Разные программы по-разному воспринимают «битые» модели, есть программы которые могут «вылечить» простые и очевидные проблемы.

Рисунки, показывающие основные «неправильности»:

Основными ошибками являются:
1) Висящие в «пустоте» треугольники
2) Неправильное направление нормалей
3) Отсутствие треугольников на поверхности
4) Торчащие в бок или внутрь отдельные треугольники (пересечение треугольников)
5) Смещенные треугольники, которые находятся под углом к поверхности и торчат «в обе стороны»

Кроме них могут быть ошибки, вызванные низкой точностью вычислений при конвертации или создания модели:
1) Несовпадение вершин. Одна или несколько вершин треугольников находятся рядом, но не в одной точке.
2) Несовпадение граней. Грани двух соседних треугольников находятся рядом, но не совпадают
3) Вырожденные треугольники (кода происходит совпадение двух или более вершин – треугольник вырождается в точку или линию)

Несовпадение вершин или граней приводят к появлению двойных поверхностей (когда смещение происходит с «наползанием» треугольников), или, наоборот, к появлению щелей и зазоров (когда смещение происходит с «разрывом»).

Кроме этих ошибок есть одна группа «особенностей», характерная для программ «художественного» моделирования – «скульптинга»:
1) Незамкнутые поверхности
2) Взаимопересекающиеся поверхности
3) Крупные треугольники

Это связано с тем, что художественное моделирование «затачивалось» для рендеров модели в дизайнерских или игровых целях, там эти «особенности» не критичны и не являются ошибками, но вот напечатать на 3D-принтере такие «дизайнерские» модели невозможно.

Подробно об этом в этой статье:

Отдельно следует сказать, что координаты вершин треугольников могут быть заданы в тестовом виде или в бинарном. При задании в бинарном виде объем файла уменьшается примерно в 6 раз.

Путеводитель по каналу: