Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

STL - это формат файла, свойственный программному обеспечению стереолитографии САПР, созданному компанией 3D Systems . [1] [2] [3] STL имеет несколько базовых имен, таких как «Стандартный язык треугольников» и «Стандартный язык тесселяции ». [4] Этот формат файла поддерживается многими другими программными пакетами; он широко используется для быстрого прототипирования , 3D-печати и автоматизированного производства . [5]Файлы STL описывают только геометрию поверхности трехмерного объекта без какого-либо представления цвета, текстуры или других общих атрибутов модели САПР. Формат STL определяет как ASCII, так и двоичное представление. Двоичные файлы встречаются чаще, поскольку они более компактны. [6]

Файл STL описывает неструктурированную триангулированную поверхность с помощью единичной нормали и вершин (упорядоченных по правилу правой руки ) треугольников с использованием трехмерной декартовой системы координат . В исходной спецификации все координаты STL должны были быть положительными числами, но это ограничение больше не применяется, и сегодня в файлах STL обычно встречаются отрицательные координаты. Файлы STL не содержат информации о масштабе, и единицы измерения являются произвольными. [7]

ASCII STL [ править ]

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

твердое имя

где имя - это необязательная строка (хотя, если имя не указано, после сплошной буквы все равно должен стоять пробел). Файл продолжается с любым количеством треугольников, каждый из которых представлен следующим образом:

фасет нормальный n i n j n k внешний цикл вершина v 1 x  v 1 y  v 1 z вершина v 2 x  v 2 y  v 2 z вершина v 3 x  v 3 y  v 3 z конец петликонец

где каждый n или v является числом с плавающей запятой в формате знак мантисса - знак «e» - показатель степени , например, «2.648000e-002». Файл заканчивается

Endolid имя
Пример ASCII STL из sphericon

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

Пробелы (пробелы, табуляторы, символы новой строки) могут использоваться в любом месте файла, кроме чисел или слов. Пробелы между «фасетом» и «нормальным» и между «внешним» и «петлевым» обязательны. [6]

Двоичный STL [ править ]

Поскольку файлы ASCII STL могут становиться очень большими, существует двоичная версия STL. Двоичный файл STL имеет 80-символьный заголовок (который обычно игнорируется, но никогда не должен начинаться со слова «сплошной», потому что это может привести к тому, что некоторые программы будут считать, что это файл ASCII STL). За заголовком следует 4-байтовое целое число без знака с прямым порядком байтов, указывающее количество треугольных фасетов в файле. Далее следуют данные, описывающие каждый треугольник по очереди. Файл просто заканчивается после последнего треугольника.

Каждый треугольник описывается двенадцатью 32-битными числами с плавающей запятой: три для нормали, а затем три для координаты X / Y / Z каждой вершины - так же, как в ASCII-версии STL. После них следует 2-байтовое («короткое») целое число без знака, которое является «счетчиком байтов атрибута» - в стандартном формате оно должно быть равно нулю, потому что большая часть программного обеспечения не понимает ничего другого. [6]

Числа с плавающей запятой представлены как числа с плавающей запятой IEEE и считаются с прямым порядком байтов , хотя в документации это не указано.

UINT8 [80] - заголовок - 80 байт UINT32 - количество треугольников - 4 байтакаждый треугольник - 50 байт: REAL32 [3] - Нормальный вектор - 12 байт REAL32 [3] - вершина 1 - 12 байтов REAL32 [3] - вершина 2 - 12 байтов REAL32 [3] - вершина 3 - 12 байт UINT16 - количество байтов атрибута - 2 байтаконец

Цвет в двоичном STL [ править ]

Существует как минимум два нестандартных варианта двоичного формата STL для добавления информации о цвете:

  • Пакеты программного обеспечения VisCAM и SolidView используют два байта «счетчика байтов атрибута» в конце каждого треугольника для хранения 15-битного цвета RGB :
    • биты от 0 до 4 - это уровень интенсивности синего (от 0 до 31),
    • биты с 5 по 9 - это уровень яркости зеленого (от 0 до 31),
    • биты с 10 по 14 - это уровень яркости красного (от 0 до 31),
    • бит 15 равен 1, если цвет допустим, или 0, если цвет недопустим (как с обычными файлами STL).
  • Программное обеспечение Materialize Magics использует 80-байтовый заголовок в верхней части файла для представления общего цвета всей части. Если используется цвет, то где-то в заголовке должна быть строка ASCII «COLOR =», за которой следуют четыре байта, представляющие красный, зеленый, синий и альфа-канал (прозрачность) в диапазоне 0–255. Это цвет всего объекта, если он не переопределен для каждого аспекта. Магия также распознает материальное описание; более подробная характеристика поверхности. Сразу после спецификации «COLOR = RGBA» должна быть другая строка ASCII «, MATERIAL =», за которой следуют три цвета (3 × 4 байта): первый - цвет диффузного отражения , второй - цвет зеркального отражения , а третий - окружающий свет. свет. Параметры материала предпочтительнее цвета. Цвет каждого фасета представлен двумя байтами «счетчика байтов атрибута» следующим образом:
    • биты от 0 до 4 - это уровень яркости красного (от 0 до 31),
    • биты с 5 по 9 - это уровень яркости зеленого (от 0 до 31),
    • биты с 10 по 14 - это уровень интенсивности синего (от 0 до 31),
    • бит 15 равен 0, если этот фасет имеет свой собственный уникальный цвет, или 1, если должен использоваться цвет для каждого объекта.

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

Фасет нормальный [ править ]

Как в ASCII, так и в двоичной версии STL нормаль фасета должна быть единичным вектором, направленным наружу от твердого объекта. [8] В большинстве программ это может быть установлено в (0,0,0), и программа автоматически вычислит нормаль на основе порядка вершин треугольника, используя « правило правой руки».". Некоторые загрузчики STL (например, плагин STL для Art of Illusion) проверяют, соответствует ли норма в файле нормальному значению, которое они вычисляют с использованием правила правой руки, и предупреждают пользователя, когда это не так. Другое программное обеспечение может игнорировать нормальный аспект полностью и использовать только правило правой руки.Хотя редко можно указать нормаль, которая не может быть вычислена с помощью правила правой руки, для того, чтобы быть полностью переносимым, файл должен и обеспечивать нормаль фасета, и соответствующим образом упорядочивать вершины. Заметным исключением является SolidWorks , в котором для эффектов затенения используется нормаль .

Использование в 3D-печати [ править ]

Логотип Википедии

3D-принтеры создают объекты путем затвердевания (SLA, SLS, SHS, DMLS, EBM, DLP) или печати (3DP, MJM, FDM, FFF, PJP, MJS) [9] по одному слою за раз. Для этого требуется серия замкнутых 2D-контуров (горизонтальных слоев), которые заполняются затвердевшим материалом по мере слияния слоев. Естественным форматом файла для такой машины была бы серия замкнутых многоугольников (слоев или срезов), соответствующих различным Z-значениям. Однако, поскольку можно изменять толщину слоев для более быстрого, но менее точного построения, было проще определить модель, которую нужно построить, как замкнутый многогранник.которые можно разрезать на необходимых горизонтальных уровнях. Неправильная нормаль фасета может повлиять на то, как файл нарезается и заполняется. Можно выбрать срез с другим значением Z, чтобы пропустить плохой аспект, или файл необходимо вернуть в программу CAD, чтобы внести исправления, а затем повторно создать файл STL.

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

Чтобы правильно сформировать трехмерный объем, поверхность, представленная любыми файлами STL, должна быть закрыта (без отверстий или перевернутой векторной нормали) и соединена, где каждое ребро является частью ровно двух треугольников, а не самопересекающимся. Поскольку синтаксис STL не применяет это свойство, его можно игнорировать для приложений, в которых значение void не имеет значения. Отсутствующая поверхность имеет значение только постольку, поскольку программное обеспечение, разрезающее треугольники, требует, чтобы она обеспечивала замкнутость результирующих 2D полигонов. Иногда такое программное обеспечение может быть написано для устранения небольших несоответствий, перемещая вершины, которые расположены близко друг к другу, так, чтобы они совпадали. Результаты непредсказуемы, возможно, поверхность потребуется отремонтировать с помощью другой программы. Для векторных 3D-принтеров требуется чистый файл .STL, а при печати файла с плохими данными печать не будет заполнена, либо печать может прекратиться.

Используйте в других полях [ править ]

STL-модель чайника из Юты в расширении MediaWiki 3D

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

Для многих автоматизированных производственных систем требуются триангулированные модели. Формат STL не является наиболее эффективным с точки зрения памяти и вычислений методом передачи этих данных, но STL часто используется для импорта триангулированной геометрии в систему CAM . Формат общедоступен, поэтому система CAM будет его использовать. Чтобы использовать данные, системе CAM, возможно, придется восстановить связь. Поскольку файлы STL не сохраняют физический размер единицы, система CAM запросит это. Стандартные единицы измерения - мм и дюйм.

STL также можно использовать для обмена данными между системами CAD / CAM и вычислительными средами, такими как Mathematica .

Изображение криволинейных поверхностей [ править ]

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

История [ править ]

STL был изобретен консалтинговой группой Albert Consulting Group для 3D-систем в 1987 году. [10] Формат был разработан для первых коммерческих 3D-принтеров 3D Systems. С момента первого выпуска формат оставался относительно неизменным в течение 22 лет. [11]

В 2009 году было предложено обновление формата, получившее название STL 2.0. Он превратился в формат файлов аддитивного производства . [11] [12]

См. Также [ править ]

  • 3D Manufacturing Format (3MF), стандарт для производства 3D-файлов
  • Формат файлов аддитивного производства (AMF), стандарт с поддержкой цвета, нескольких материалов и комбинаций
  • PLY (формат файла) , альтернативный формат файла
  • Воксель
  • Файл Wavefront .obj , формат файла определения трехмерной геометрии с расширением .obj.
  • X3D , бесплатный стандарт ISO для компьютерной 3D-графики

Ссылки [ править ]

  1. ^ Спецификация интерфейса стереолитографии , 3D Systems, Inc., июль 1988 г.
  2. ^ Спецификация интерфейса стереолитографии , 3D Systems, Inc., октябрь 1989 г.
  3. ^ Спецификация файла SLC , 3D Systems, Inc., 1994
  4. ^ Гримм, Тодд (2004), Руководство пользователя по быстрому созданию прототипов , Общество инженеров-производителей , стр. 55, ISBN 0-87263-697-6. Для формата используется множество названий: например, «стандартный язык треугольников», «язык стереолитографии» и «язык тесселяции стереолитографии». На странице 55 говорится: « Чак Халл , изобретатель стереолитографии и основатель 3D Systems, сообщает, что расширение файла предназначено для стереолитографии».
  5. ^ Чуа, К. К.; Леонг, KF; Лим, CS (2003), Быстрое прототипирование: принципы и приложения (2-е изд.), World Scientific Publishing Co, ISBN 981-238-117-1Глава 6, Форматы быстрого прототипирования. Страница 237, «Файл STL (STeroLithography), как стандарт де-факто, использовался во многих, если не во всех, системах быстрого прототипирования». Раздел 6.2 Проблемы с файлом STL. Раздел 6.4 Восстановление файла STL.
  6. ^ a b c Бернс, Маршалл (1993). Автоматизированное производство . Прентис Холл. ISBN 978-0-13-119462-5.
  7. ^ fabbers.com Исторический ресурс по 3D-печати, The StL Format: Standard Data Format for Fabbers, перепечатано из Marshall Burns, Automated Fabrication, http://www.ennex.com/~fabbers/StL.asp с заявлением: «Представленный объект должны быть расположены в полностью положительном октанте. Другими словами, все координаты вершин должны быть положительно определенными (неотрицательными и ненулевыми) числами. Файл StL не содержит никакой информации о масштабе; координаты даны в произвольных единицах ".
  8. ^ Педди, Джон. (2013). История визуальной магии в компьютерах: как создаются красивые изображения в CAD, 3D, VR и AR . Лондон: Спрингер. С. 54–57. ISBN 978-1-4471-4932-3. OCLC  849634980 .
  9. ^ Barnatt, Christopher, 1967- (2013). 3D-печать: следующая промышленная революция . [Ноттингем, Англия?]: ExplainingTheFuture.com. С. 26–71. ISBN 978-1-4841-8176-8. OCLC  854672031 .CS1 maint: несколько имен: список авторов ( ссылка )
  10. ^ «Формат файла STL для 3D-печати - Простыми словами» . All3DP . 17 ноября 2016 . Дата обращения 5 мая 2017 .
  11. ^ a b «STL 2.0 может заменить старый ограниченный формат файла» . RapidToday . Дата обращения 5 мая 2017 .
  12. ^ Хиллер, Джонатан Д .; Липсон, Ход (2009). STL 2.0: Предложение по универсальному формату файлов для аддитивного производства из различных материалов (PDF) . Симпозиум по изготовлению твердых тел произвольной формы (SFF'09). Остин, Техас, США: Корнельский университет. Архивировано из оригинального (PDF) на 2020-06-11 . Дата обращения 5 мая 2017 .

Внешние ссылки [ править ]

  • Формат STL - стандартный формат данных для Fabbers