STL (формат файлу)

STL
Розширення файлу:.stl
MIME-тип:application/sla [1]
Рік випуску:1987[2]
Тип формату:3д-модели
Стандарт(и):"StereoLithography Interface Specification"

STL (від англ. stereolithography) — формат файлу, який широко[3][4] застосовують для зберігання тривимірних моделей об'єктів для використання в адитивних технологіях. Інформація про об'єкт зберігається як список трикутних граней, які описують його поверхню, та їхніх нормалей. STL-файл може бути текстовим (ASCII) або двійковим. Свою назву отримав від скорочення терміну «Stereolithography», оскільки спочатку застосовувався саме в цій технології тривимірного друку.

ASCII STL

Файл типу ASCII STL починається з рядка:

solid name

де name — необов'язковий рядок (але якщо name опущено, після solid все одно має бути пропуск). Файл продовжується довільним числом описів трикутників такого вигляду:

facet normal ni nj nk
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet

де кожне n і v — число з рухомою комою у форматі: знак, мантиса, «e», знак, порядок, наприклад «-2.648000e-002». Файл завершується рядком:

Двійковий формат

Тривимірна модель аероплана братів Райт у форматі STL

Оскільки файл ASCII STL може бути великим, існує двійкова версія цього формату. Файл починається із заголовка з 80 символів (який зазвичай нехтується, але не може починатися зі 'solid', оскільки з цієї послідовності починається файл ASCII STL). Після заголовка йде 4-байтове беззнакове ціле число (little-endian), що вказує на кількість трикутних граней у файлі. Після цього йдуть дані, що характеризують кожен із трикутників.

Кожен трикутник описують дванадцятьма 32-бітовими числами з рухомою комою: 3 числа для нормалі та по 3 числа на кожну з трьох вершин для координат X/Y/Z. Далі йдуть 2 байти беззнакового 'short', яке називається 'attribute byte count'. У звичайному файлі має дорівнювати нулю, оскільки більшість програм не розуміє інших значень[5].

Числа з рухомою комою подають у вигляді числа IEEE з рухомою комою та мають зворотний порядок байтів, хоча цього не зазначено в документації.

UINT8[80] – заголовок
UINT32 – число трикутників

для кожного з трикутників
REAL32[3] – вектор нормалі
REAL32[3] – вершина 1
REAL32[3] – вершина 2
REAL32[3] – вершина 3
UINT16 – attribute byte count
end

Кольори у двійковому STL

Існує принаймні 2 способи додавання інформації про колір:

  • VisCAM і SolidView використовують 2 байти 'attribute byte count' у кінці опису кожного трикутника для зберігання 15 бітів кольору RGB:
    • біти від 0 до 4 — рівень інтенсивності для синього (від 0 до 31)
    • біти від 5 до 9 — рівень інтенсивності для зеленого (від 0 до 31)
    • біти від 10 до 14 — рівень інтенсивності для червоного (від 0 до 31)
      • якщо біт 15 дорівнює 1, колір використовується
      • якщо біт 15 дорівнює 0, колір не використовується (для сумісності зі стандартним STL)
  • Materialise Magics працює інакше. Він використовує 80 байтів заголовка для подання загального кольору. Також там може міститись інформація про матеріал. Колір кожної грані описують у 'attribute byte count' як:
    • біти від 0 до 4 — рівень інтенсивності для червоного (від 0 до 31)
    • біти від 5 до 9 — рівень інтенсивності для зеленого (від 0 до 31)
    • біти від 10 до 14 — рівень інтенсивності для синього (від 0 до 31)
      • якщо біт 15 дорівнює 0, то грань має свій колір
      • якщо біт 15 дорівнює 1, то використовується загальний колір.

Нормалі граней

У двійковій та ASCII-версіях STL нормаль грані має бути одиничним вектором, спрямованим від об'єкта. У більшості програм її можна встановити в (0,0,0), і програма автоматично розрахує нормаль на основі порядку вершин трикутника, використовуючи правило правої руки. Деякі завантажувачі STL (наприклад, STL плагін для Art of Illusion) звіряють нормалі у файлі з розрахованими за правилом правої руки і попереджають про розбіжності. Інше програмне забезпечення може нехтувати це і використовувати лише правило правої руки.

Недоліки

  • Невисока точність геометрії[6] (у версії ASCII можна задавати довільну точність).
  • Великий обсяг файлу для складних моделей[6].

Підтримка в застосунках

Див. також

Примітки

  1. STL (.stl) — Wolfram Mathematica 8 Documentation. Архів оригіналу за 20 жовтня 2011. Процитовано 22 жовтня 2011.
  2. Wohlers Associates. Архів оригіналу за 30 квітня 2012. Процитовано 22 жовтня 2011. [Архівовано 2012-04-30 у Wayback Machine.]
  3. Mechanisms and Mechanical Devices. Архів оригіналу за 26 вересня 2014. Процитовано 2 жовтня 2017.
  4. STL file has been widely accepted as a de facto standard file format for the rapid prototyping industry[недоступне посилання]
  5. Burns, Marshall. Automated Fabrication. — Prentice Hall, 1993. — ISBN 978-0-13-119462-5.
  6. а б https://webspace.utexas.edu/reyesr/titanium/stl/stlmarch17.htm [Архівовано 2014-05-15 у Wayback Machine.] This conversion usually creates a much larger file with less accuracy than the original 3D model.
  7. KOMPAS-3D Home. ascon.net. Архів оригіналу за 26 вересня 2019. Процитовано 27 вересня 2019.

Посилання

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!