13.06.2019 в 22:18   3dmodeller

Что такое файл STL

STL является наиболее часто используемым форматом файлов для 3D-печати, но давайте посмотрим, как он на самом деле работает. В этой статье мы расскажем вам о файлах STL. Какие преимущества и недостатки? Как его создать и как им пользоваться в дальнейшем? Как отправить на печать? и т.д.

Что такое формат файла STL?

Если вы хотите использовать 3D печать для вашего проекта, вам нужно будет получить файл вашей модели в правильном формате и STL безусловно, самый популярный и удобный. 

Что означает «STL» ? Наиболее распространенное объяснение состоит в том, что это сокращение от слова Stereolithography, данного 3D Systems, хотя иногда его называют  «стандартным языком треугольников» или «стандартным языком тесселяции». Никто на самом деле точного ответа не знает, но самое главное не происхождение названия STL, а то какие возможности он дает.

Еще в 1987 году Чак Халл только что изобрел первый стереолитографический 3D-принтер, The Albert Consulting Group 3D-systems пытались найти способ передачи информации о 3D-моделях на 3D-принтер. Они поняли, что могут использовать тесселяции поверхности 3D-модели для шифрования этой информации.

Файл STL хранит информацию о вашей 3D-модели. Формат представляет необработанную поверхность модели состоящую из маленьких треугольников. Чем сложнее и детальнее структура, тем больше треугольников будет использовано для представления модели. Но почему именно этот формат файла полезен?

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

Давайте рассмотрим несколько примеров, чтобы понять, как это работает. Например, если у вас есть простой 3D-куб, он может быть покрыт 12 треугольниками, как показано на рисунке ниже. Как видите, на лице есть два треугольника. Поскольку куб имеет шесть граней, он добавляет до 12 треугольников.

Если у вас есть 3D-модель сферы, то она может быть покрыта множеством маленьких треугольников, также показанных на том же изображении.

Тесселяции куба и шара

Вот еще один пример очень сложной трехмерной фигуры, которая была пересечена треугольниками.

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

После того, как ваша модель создана, вам нужно перевести ее на язык, который поймет ваш 3D-принтер. Информация о файле STL описывает только геометрию модели, нет спецификаций о текстуре, цвете или материале вашей модели. Он содержит всю информацию о поверхности объекта, в точности то, что должен напечатать 3D-принтер.

Как создать файл STL?

Сегодня почти все программное обеспечение САПР / CAD способно генерировать файл STL из вашей 3D-модели. При сохранении файла вам нужно выбрать формат STL. Когда у вас уже есть файл STL, но вам нужно оптимизировать его или увеличить разрешение вашей модели, чтобы получить отличный результат 3D-печати - наилучшее разрешение для вашего файла STL 

Как файл STL хранит информацию о фасетах?

Формат файла STL обеспечивает два разных способа хранения информации о треугольных гранях, которые описывают поверхность объекта. Они называются кодировкой ASCII и двоичным кодированиемВ обоих форматах хранится следующая информация о каждом треугольнике:

  1. Координаты вершин.
  2. Компоненты единичного вектора нормали к треугольнику. Вектор нормали должен указывать наружу относительно трехмерной модели.


Формат файла ASCII STL

Файл ASCII STL начинается с обязательной строки:

  • solid <name>

где < name> — это название 3D-модели. Имя можно оставить пустым, но в этом случае после слова solid должен быть пробел.

Файл продолжается информацией о покрывающих треугольниках. Информация о вершинах и векторе нормали представлена следующим образом:

  • facet normal nx ny nz
  • outer loop
  • vertex v1x v1y v1z
  • vertex v2x v2y v2z
  • vertex v3x v3y v3z
  • endloop
  • endfacet

Здесь n — нормаль к треугольнику, а v1, v2 и v3 — вершины треугольника. Значения координат представлены в виде числа с плавающей запятой в формате знак-мантисса-э-знак-экспонента, например, «3.245000e-002».

Файл заканчивается обязательной строкой:

  • endsolid <name>

Бинарный формат файла STL

Если в тесселяции много маленьких треугольников, файл ASCII STL может стать огромным. Вот почему существует более компактная двоичная версия.

Двоичный файл STL начинается с 80-символьного заголовка. Это обычно игнорируется большинством программ чтения файлов STL, за некоторыми заметными исключениями, о которых мы поговорим позже. После заголовка общее количество треугольников указывается с использованием 4-байтового целого числа без знака.

  • UINT8[80] – Заголовок
  • UINT32 – Количество треугольников

Информация о треугольниках последует позже. Файл просто заканчивается после последнего треугольника.

Каждый треугольник представлен двенадцатью 32-битными числами с плавающей запятой. Как и в файле ASCII STL, 3 числа относятся к трехмерным декартовым координатам нормали к треугольнику. Остальные 9 чисел предназначены для координат вершин (по три в каждой). Вот как это выглядит:

  • foreach triangle
  • REAL32[3] – Нормальный вектор
  • REAL32[3] – Вершина 1
  • REAL32[3] – Вершина 2
  • REAL32[3] – Вершина 3
  • UINT16 – конец подсчета байтов аттрибута

Обратите внимание, что после каждого треугольника есть 2-байтовая последовательность, называемая «счетчиком байтов атрибута». В большинстве случаев это значение равно нулю и действует как разделитель между двумя треугольниками. Но некоторые программы также используют эти 2 байта для кодирования дополнительной информации о треугольнике. Мы увидим такой пример позже, где эти байты будут использоваться для хранения информации о цвете.

Специальные правила для формата STL

Спецификация STL имеет некоторые специальные правила для тесселяции и для хранения информации.

Правило вершин

Правило вершин гласит, что каждый треугольник должен иметь две вершины с соседними треугольниками.

Это правило должно соблюдаться при проверке поверхности трехмерного объекта.

Вот пример действительного и недействительного тесселяции, согласно этому правилу. Цифра слева нарушает это правило и является недействительной тесселяцией, тогда как цифра справа соответствует и является действительной тесселяцией.

Правило вершин для файлов STL: рисунок слева является недопустимым тесселяцией, тогда как рисунок справа приемлем.
5.2 Правило ориентации
Правило ориентации гласит, что ориентация фасета . Е. Какой путь находится «внутри» трехмерного объекта и какой путь «наружу») должна быть указана двумя способами.


Во-первых, направление нормали должно указывать наружу. Во-вторых, вершины перечислены в порядке против часовой стрелки, если смотреть на объект снаружи (правило правой руки).

Ориентация каждой грани задается двумя способами: направлением вектора нормали и упорядочением вершин.
Эта избыточность существует по причине. Это помогает обеспечить согласованность данных и выявлять поврежденные данные. Программное обеспечение может, например, рассчитать ориентацию по нормали, а затем по вершинам и проверить, совпадают ли они. Если это не так, то он может объявить файл STL поврежденным!

5.3 Правило всех положительных октантов
Правило всех положительных октантов гласит, что координаты вершин треугольника должны быть положительными.


Это подразумевает, что трехмерный объект живет в полностью положительном октанте трехмерной декартовой системы координат , следовательно, имени).

Основанием для этого правила является экономия места. Если бы трехмерному объекту было позволено жить где-либо в координатном пространстве, нам пришлось бы иметь дело с отрицательными координатами. Для хранения отрицательных координат необходимо использовать числа с плавающей запятой со знаком. Числа с плавающей запятой со знаком требуют один дополнительный бит для хранения знака (+/-). Гарантируя, что все координаты положительны, это правило гарантирует, что мы можем использовать числа без знака для координат и сохранять бит для каждого значения координаты, которое мы храним.

Октант I (красный) — полностью положительный октант
5.4 Правило сортировки треугольников
Правило сортировки треугольников рекомендует, чтобы треугольники появлялись в порядке возрастания z-значений.


Это помогает слайсерам разрезать 3D-модели быстрее. Однако это правило не строго соблюдается.

6. Как печатается файл STL 3D?

Для 3D-печати файл STL должен быть открыт в выделенном слайсере. Что такое слайсер? Это программное обеспечение для 3D-печати, которое преобразует цифровые 3D-модели в инструкции по печати для вашего 3D-принтера для создания объекта.

Слайсер разбивает ваш файл STL на сотни (иногда тысячи) плоских горизонтальных слоев на основе выбранных вами настроек и рассчитывает, сколько материала понадобится вашему принтеру для прессования и сколько времени потребуется, чтобы это сделать.

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

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

Подробнее о настройках самого популярного слайсера для 3D печати — Cura

Можно ли печатать каждый файл STL 3D?

К сожалению нет. Только 3D-дизайн, специально предназначенный для 3D-печати, пригоден для 3D-печати. Файл STL — это просто контейнер для данных, а не гарантия того, что что-то можно распечатать.

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

Есть также рассмотрение нависающих элементов на модели. Посмотрите на логотип ALL3DP на картинке выше; если модель напечатана в вертикальном положении, то для нависающих элементов с углом более 45 градусов потребуются опоры (которые вы видите зеленым цветом).

При загрузке файла STL, который вы не создали самостоятельно, стоит потратить время на то, чтобы убедиться, что это действительно 3D-печать. Это сэкономит вам много времени и разочарований потраченных впустую накаливания).

Учебное пособие по MeshMixer для начинающих 3D-печати и 9 важных принципов 3D-печати, которые должен знать каждый

Оптимизация файла STL для лучшей производительности 3D-печати

Формат файла STL аппроксимирует поверхность модели CAD треугольниками. Аппроксимация никогда не бывает идеальной, а грани вносят грубость в модель.

Идеальная сферическая поверхность слева аппроксимируется тесселяциями. На рисунке справа используются большие треугольники, в результате чего получается грубая модель. На рисунке в центре используются меньшие треугольники и достигается более плавное приближение (источник: i.materialize)

3D-принтер напечатает объект с той же грубостью, которая указана в файле STL. Конечно, делая треугольники все меньше и меньше, можно сделать аппроксимацию лучше и лучше, что приводит к получению отпечатков хорошего качества. Однако по мере уменьшения размера треугольника количество треугольников, необходимых для покрытия поверхности, также увеличивается. Это приводит к гигантскому файлу STL, который не могут обрабатывать 3D-принтеры. Также очень тяжело делиться или загружать такие огромные файлы.

Поэтому очень важно найти правильный баланс между размером файла и качеством печати. Не имеет смысла уменьшать размер треугольников до бесконечности, потому что в какой-то момент ваш глаз не сможет различить качество печати.

Большинство программ САПР предлагают несколько настроек при экспорте файлов STL. Эти параметры определяют размер граней и, следовательно, качество печати и размер файла. Давайте углубимся в самые важные настройки и выясним их оптимальные значения.

8.1 Высота аккорда или допуск

Большинство программ САПР позволяет вам выбрать параметр, называемый высотой аккорда или допуском. Высота хорды — это максимальное расстояние от поверхности оригинального дизайна и сетки STL. Если вы выберете правильный допуск, ваши отпечатки будут выглядеть гладкими, а не пиксельными. Совершенно очевидно, что чем меньше высота хорды, тем точнее грани представляют фактическую поверхность модели.

Высота хорды — это высота между сеткой STL и фактической поверхностью (источник: www.3dhubs.com)

Рекомендуется установить допуск от 0,01 до 0,001 мм. Это обычно приводит к хорошим качественным отпечаткам. Нет смысла уменьшать это дальше, поскольку 3D-принтеры не могут печатать с таким уровнем детализации.

8.2 Угловое отклонение или угловой допуск

Угловой допуск ограничивает угол между нормалями соседних треугольников. Угол по умолчанию обычно устанавливается в 15 градусов. Уменьшение допуска (которое может варьироваться от 0 до 1) улучшает разрешение печати.

Угловой допуск — это угол между нормалями соседних треугольников (источник: www.3dhubs.com)
Рекомендуемая настройка для этого параметра — 0.

8.3 Бинарный или ASCII?
Наконец, у вас есть выбор экспорта файла STL в двоичном формате или в формате ASCII. Бинарный формат всегда рекомендуется для 3D-печати, поскольку он приводит к уменьшению размера файла. Однако, если вы хотите вручную проверить файл STL на предмет отладки, тогда ASCII предпочтительнее, поскольку его легче читать.

9. Есть ли альтернативы формату файла STL?

3MF сетка
Формат файла STL — не единственный формат, используемый в 3D-печати. Существует более 30 форматов файлов для 3D-печати. Наиболее важным является формат файла OBJ, в котором можно хранить цветовые и текстурные профили. Другой вариант — это формат файла Polygon (PLY), который изначально использовался для хранения 3D-отсканированных объектов.

Совсем недавно были предприняты попытки запустить новый тип файлов консорциумом 3MF http://3mf.io/, который предлагает новый формат файлов 3D-печати под названием 3MF. Они утверждают, что это упростит и улучшит процесс 3D-печати.

Для его реализации Microsoft заключила партнерские соглашения с такими компаниями, как Autodesk, HP и Shapeways, чтобы воплотить их мечту в жизнь. Более подробную информацию о Консорциуме 3MF можно прочитать на их веб-сайте вместе с предварительной документацией о типе файла 3MF на их странице GitHub https://github.com/3mfconsortium. Однако еще слишком рано говорить о том, станет ли это широко распространенным.

10. Преимущества и недостатки использования формата файлов STL перед другими форматами файлов
Поскольку существует много форматов файлов 3D-печати, очевидный вопрос: какой из них вы должны использовать для своих отпечатков? Ответ, как оказалось, во многом зависит от вашего варианта использования.

10.1 Когда не следует использовать файл STL
Как мы видели ранее, формат файла STL не может хранить дополнительную информацию, такую как цвет, материал и т. Д. Граней или треугольников. Он хранит только информацию о вершинах и векторе нормали. Это означает, что если вы хотите использовать несколько цветов или несколько материалов для ваших отпечатков, то формат файла STL не является правильным выбором. Формат OBJ — это популярный формат с хорошей поддержкой, в котором можно указать цвет, материал и т. Д. Таким образом, это правильный выбор для этой задачи.

10.2 Когда использовать файл STL
С другой стороны, если вы хотите печатать одним цветом или материалом, что чаще всего имеет место, тогда STL лучше, чем OBJ, так как он проще, что приводит к меньшим размерам файлов и более быстрой обработке.

10.3 Другие преимущества формата файлов STL
Универсальность: еще одно большое преимущество формата файлов STL заключается в том, что он универсален и поддерживается почти всеми 3D-принтерами. Этого нельзя сказать о формате OBJ, хотя он также пользуется разумным одобрением и поддержкой. В настоящее время форматы VRML, AMF и 3MF широко не поддерживаются.

Зрелая экосистема: большинство 3D-моделей для печати, которые вы можете найти в Интернете, имеют формат файла STL. Существование этой экосистемы в сочетании с инвестициями в программное обеспечение на основе STL, сделанными производителями 3D-принтеров, привело к большой базе пользователей, которая вложила значительные средства в этот формат. Это означает, что существует множество сторонних программ, работающих с файлами STL, что не относится к другим форматам файлов.

10.4 Некоторые недостатки формата файла STL
Существуют и явные недостатки использования STL. Поскольку точность печати включает в себя разрешение в микронном масштабе, количество треугольников, необходимое для описания гладких изогнутых поверхностей, может привести к огромным размерам файлов. Также невозможно включить метаданные (такие как информация об авторстве и авторских правах) в файл STL.

10.5 Вердикт
Если ваши потребности в 3D-печати просты, то, возможно, нет причин отходить от формата файлов STL. Однако для более сложных отпечатков с использованием нескольких материалов и цветов, возможно, стоит попробовать OBJ или другие доступные форматы.

11. Цвет в формате файла STL

В последнем разделе мы говорили, что формат файла STL не может работать с многоцветными моделями. Причина, по которой формат файла STL не содержит информацию о цвете, проста. Когда быстрое прототипирование развилось в 1980-х, никто не задумывался о цветной печати. В настоящее время материалы и процессы 3D-печати быстро развиваются. Некоторые позволяют печатать в полном цвете — просто представьте себе 3D-селфи из песчаника, как показано выше.
Однако не совсем справедливо утверждать, что STL не может обрабатывать цвета. Оказывается, существуют нестандартные версии формата STL, которые действительно способны передавать информацию о цвете.

Например, программные пакеты VisCAM и Solidview используют «число байтов атрибута» в конце каждого треугольника для хранения 15-битного цвета RGB с использованием следующей системы:

биты от 0 до 4 для синего (от 0 до 31),
биты с 5 по 9 для зеленого (от 0 до 31),
биты с 10 по 14 для красного (от 0 до 31),
бит 15 равен 1, если цвет действителен, или 0, если цвет не действителен (как с обычными файлами STL).
Программное обеспечение Materialise Magics, с другой стороны, использует 80-байтовый заголовок в двоичном формате для представления общего цвета трехмерного объекта. Цвет задается включением строки ASCII «COLOR =», за которой следуют четыре байта, представляющие красный, зеленый, синий и альфа-канал (прозрачность) в диапазоне 0–255. Этот базовый цвет также может быть переопределен на каждом фасете с помощью байтов «количество байтов атрибута».

12. STL файловые ресурсы
Если вы уже прочитали, поздравляю! Теперь вы знаете немного о STL и, несомненно, можете быть экспертом в формате файлов STL.

В этом последнем разделе мы расскажем о замечательном программном обеспечении и ресурсах, которые вы можете использовать для загрузки, просмотра, редактирования и восстановления файлов STL.

12.1 Загрузка файлов STL

В Интернете существует множество репозиториев, торговых площадок и поисковых систем, содержащих буквально миллионы бесплатных файлов STL. Вы можете обратиться к нашему регулярно обновляемому списку -  2019 лучших сайтов для бесплатных файлов STL и моделей 3D-принтеров   — или вы можете выбрать одну из этих моделей для начала работы: 50 интересных вещей для 3D-печати в августе 2019 года

2.2 Открытие и просмотр файла STL

К счастью, открыть файл STL не так уж сложно. Для этого есть несколько бесплатных программ просмотра файлов STL, которые вы можете использовать онлайн или в качестве настольного приложения. Обратитесь к нашему специальному руководству здесь: 2019 Лучшие бесплатные инструменты для просмотра файлов STL

12.3 Редактирование и преобразование файла STL

Да, можно полностью отредактировать файл STL и преобразовать файл STL в другой формат файла. Поскольку формат является открытым, ничто не мешает вам изменить содержимое файла. На самом деле, процесс редактирования довольно прост. У нас есть  специальная статья на эту тему: 7 бесплатных редакторов STL + Как редактировать и восстанавливать файлы STL 

12.4 Восстановление файла STL

Помните раздел, где мы обсуждали правила, которым должны удовлетворять STL-файлы? Например, смежные треугольники должны иметь две общие вершины, а правило правой руки, применяемое к вершинам, должно иметь ту же ориентацию, что и вектор нормали. Если эти условия нарушаются в файле STL, то он поврежден или поврежден.

Есть несколько программ, которые могут помочь с восстановлением поврежденного файла STL. Например, Netfabb Basic — отличный инструмент для исправления наиболее распространенных проблем с файлами STL. Вы найдете больше информации об этих программах в нашей статье: 2019 Лучшие инструменты для 3D-печати (все бесплатно)

13. Вывод

В заключение мы узнали о том, как формат файла STL кодирует макет 3D-моделей. Мы обсудили, как оптимизировать файлы STL для наилучшего качества 3D-печати. Мы говорили о том, как формат файла STL сравнивается с другим популярным форматом файла 3D-печати. OBJ и когда использовать каждый из этих форматов. Наконец, мы поделились некоторыми ресурсами, с помощью которых вы можете загружать, просматривать, редактировать и восстанавливать STL-файлы.

Мы надеемся, что глубокое понимание формата файлов STL поможет вам стать более осведомленным пользователем вашего 3D-принтера. Если вы нашли эту статью полезной, поделитесь ею с другими энтузиастами 3D-печати и распространите информацию. У вас есть вопросы или замечания? Дайте нам знать в комментариях ниже.

Комментарии: