Топ питань
Часова шкала
Чат
Перспективи

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

формат файлу З Вікіпедії, вільної енциклопедії

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

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

Коротка інформація Розширення:, MIME-тип: ...
Remove ads

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». Файл завершується рядком:

Remove ads

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

Thumb
Тривимірна модель аероплана братів Райт у форматі 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
Remove ads

Кольори у двійковому 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) звіряють нормалі у файлі з розрахованими за правилом правої руки і попереджають про розбіжності. Інше програмне забезпечення може нехтувати це і використовувати лише правило правої руки.

Remove ads

Недоліки

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

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

Див. також

Примітки

Посилання

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads