Що таке файл 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