aspose.info
UK

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

Оновлено

Що таке файл STL?

STL, абревіатура стереолітрографії, є взаємозамінним форматом файлу, який представляє тривимірну геометрію поверхні. Формат файлів знаходить своє використання в кількох сферах, таких як швидке створення прототипів, 3D-друк і автоматизоване виробництво. Він представляє поверхню як серію невеликих трикутників, відомих як грані, де кожна грань описується перпендикулярним напрямком і трьома точками, що представляють вершини трикутника. Отримані дані використовуються програмами для визначення поперечного перерізу 3D-форми, яку має створити фаббер. У форматі файлу STL немає інформації для представлення кольору, текстури чи інших поширених атрибутів моделі CAD.

Коротка історія

Розробка формату файлу STL почалася в 1987 році. Він був розроблений 3D Systems для використання в комерційних 3D-принтерах. Переглянуту версію формату файлу STL, відому як STL 2.0, було запропоновано в 2009 році з оновленнями формату файлу.

Специфікації формату файлу

Файл STL представляє геометрію поверхні за допомогою фасетів. Грані визначають поверхню тривимірного об’єкта та однозначно ідентифікуються одиничною нормаллю, яка є лінією, перпендикулярною до трикутника довжиною 1,0, і трьома вершинами. Загалом існує 12 чисел, які зберігаються для кожного фасета як нормалі, і кожна вершина визначається трьома координатами кожна. Файл StL не містить інформації про масштаб; координати в довільних одиницях.

Специфікації формату файлу STL можна розглянути з наступних двох аспектів.

Орієнтація граней

Орієнтація грані визначається напрямком одиничної нормалі та порядком переліку вершин. Орієнтація граней визначається двома способами:

  • Напрямок нормалі назовні
  • Вершини перераховані в порядку проти годинникової стрілки ззовні, згідно з правилом правої руки.

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

Згідно з цим правилом, кожен трикутник має дві спільні вершини з кожним із сусідніх трикутників. Отже, вершина одного трикутника не може лежати на стороні іншого трикутника.

Формати файлів

STL доступний у форматі ASCII, а також у двійковому форматі для компактного формату файлу.

Формат STL ASCII

Версія ASCII формату файлу STL записана у звичайному ASCII. Однак через великий розмір цей формат файлу не вибрано як кращий для використання. Синтаксис файлу ASCII STL такий:

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

Слова, виділені жирним шрифтом, представляють ключові слова, які завжди мають бути малими. Символи, виділені курсивом, — це змінні, які потрібно замінити значеннями, визначеними користувачем. Числові дані в рядках нормалі грані та вершини є числами з плаваючою точністю одинарної точності, наприклад, 1,23456E+789. Координата нормальної грані може мати початковий знак мінус; координата вершини може не бути.

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

Двійковий формат використовує ціле число IEEE і числове представлення з плаваючою комою. Формат файлу представлений таким чином:

ПолеВідомості
Заголовок80 символів
Кількість трикутників4-байтове ціле беззнакове число
Дані для кожного трикутника12 32-розрядних чисел з плаваючою комою

Більш докладний вигляд формату файлу наведено нижче.

UINT8[80] – Header
UINT32 – Number of triangles


foreach triangle
REAL32[3] – Normal vector
REAL32[3] – Vertex 1
REAL32[3] – Vertex 2
REAL32[3] – Vertex 3
UINT16 – Attribute byte count
end

Посилання

Див. також