Введение
Формат файла для приложений стереолитографии.
STL – это формат файла, изначально разработанный для программного обеспечения САПР стереолитографии, созданного компанией 3D Systems. Чак Халл, изобретатель стереолитографии и основатель 3D Systems, утверждает, что расширение файла является аббревиатурой от "стереолитография". Файл STL описывает необработанную, неструктурированную треугольную поверхность, определяя нормали единичных векторов и вершины (в порядке, соответствующем правилу правой руки). В первоначальной спецификации все координаты STL должны были быть положительными числами, однако это ограничение больше не действует, и отрицательные координаты часто встречаются в современных STL-файлах. Файлы STL не содержат информации о масштабе, а единицы измерения являются произвольными. Файлы STL описывают исключительно геометрию поверхности трехмерного объекта, не содержа информацию о цвете, текстуре или других стандартных атрибутах CAD-модели. Формат STL предусматривает как ASCII, так и бинарное представление. Бинарные файлы более распространены, поскольку они более компактны. STL широко используется в быстром прототипировании, 3D-печати и автоматизированном производстве, а также поддерживается многими другими программными пакетами.
История
STL был изобретен Albert Consulting Group для 3D Systems в 1987 году. Формат был разработан для первых коммерческих 3D-принтеров компании 3D Systems. С момента своего появления формат оставался практически неизменным на протяжении 22 лет.
Характеристики
Невозможно идеально представить изогнутые поверхности с помощью треугольников. Чтобы компенсировать это, пользователи часто сохраняют очень большие STL-файлы для снижения погрешности. Однако, собственные форматы, используемые многими приложениями для 3D-дизайна, применяют математические поверхности для сохранения деталей без потерь в файлах небольшого размера. Например, Rhino 3D и Blender используют NURBS для создания настоящих криволинейных поверхностей и хранения их в своих собственных форматах файлов, но при экспорте модели в формат STL им необходимо генерировать треугольную сетку.
3D печать
3D-принтеры создают объекты путем затвердевания (SLA, SLS, SHS, DMLS, EBM, DLP) или печати (3DP, MJM, FDM, FFF, PJP, MJS) по одному слою за раз. Для этого требуется серия замкнутых 2D контуров (горизонтальных слоев), которые заполняются затвердевшим материалом по мере соединения слоев. Естественным форматом файла для такой машины была бы серия замкнутых многоугольников (слоев или срезов), соответствующих различным значениям Z. Однако, поскольку можно изменять толщину слоев для более быстрой, хотя и менее точной печати, оказалось проще определить модель для печати как замкнутый многогранник, который можно нарезать на необходимых горизонтальных уровнях. Неправильная нормаль грани может повлиять на способ нарезки и заполнения файла. Можно выбрать срез с другим значением Z, чтобы избежать проблемной грани, или файл необходимо вернуть в CAD-программу для исправления и последующего повторного создания STL-файла. Для правильного формирования 3D-объема поверхность, представленная любым STL-файлом, должна быть замкнутой (без отверстий и с правильно ориентированными векторами нормалей) и связной, где каждая ребро принадлежит ровно двум треугольникам и не происходит самопересечений. Поскольку синтаксис STL не гарантирует соблюдения этих требований, ими можно пренебречь в приложениях, где наличие пустот не критично. Отсутствующая поверхность имеет значение только в той степени, в какой программное обеспечение для нарезки треугольников требует ее для обеспечения замкнутости результирующих 2D-полигонов. Иногда такое программное обеспечение может быть разработано для устранения незначительных неточностей путем перемещения близко расположенных вершин, чтобы они совпали. Результаты непредсказуемы и могут потребовать исправления с помощью другой программы. Векторные 3D-принтеры требуют корректного STL-файла, и печать поврежденного файла данных либо не начнется, либо остановится в процессе печати.
Другие области
STL прост в создании и выводе. Следовательно, многие системы автоматизированного проектирования (САПР) могут выводить файлы в формате STL. Хотя создание вывода просто, информация о связности сетки отбрасывается, поскольку теряется информация об общих вершинах. Многие системы автоматизированного производства (САМ) требуют треугольные модели. Формат STL не является самым эффективным с точки зрения использования памяти и вычислительных ресурсов для передачи этих данных, но STL часто используется для импорта треугольной геометрии в САМ-систему. Формат широко распространен, поэтому САМ-система обычно использует его. Для работы с данными САМ-системе может потребоваться восстановить связность. Поскольку файлы STL не сохраняют физические размеры единицы измерения, САМ-система запросит эту информацию. Типичные единицы измерения – миллиметры и дюймы. STL также может использоваться для обмена данными между САПР/САМ-системами и вычислительными средами, такими как Mathematica.