STL формат (моделирование в блокнот)
Этот формат был разработан достаточно давно, специально для создания моделей с последующим выводом их, на аппаратуру ЧПУ. Не будем углубляться в историю, так как этот сайт не википедия. Тем более классический синтаксис со временем претерпел изменения. Разные программы по разному справляются с ними. Некоторые, например Netfabb, не понимают не классический синтаксис.А другие, например Blender3D, читают без проблем. Модели в этом формате состоят из треугольников. В прошлом было ограничение на их количество. Из-за чего было ограничение на детализацию модели. Наверное это было связано с мощностями оборудования. Также координаты модели не могли иметь отрицательные значения. Теперь этих ограничений нет. Во всяком случае я с ними не сталкивался. И скорее всего любой принтер справится с любым весом файла модели.
Файл STL содержит описание модели, которое состоит из набора координат трех точек по трем осям. Каждая группа из трех точек образует полигон, в этом формате он называется фасет.
Файл STL может быть текстовым или бинарным. Бинарный файл может нести в себе информацию о цвете модели. Текстовый файл не может этого. Также текстовый файл отличается от бинарного по размеру в большую сторону. Конечно же текстовый файл можно конвертировать в бинарный. Один из самых простых способов сделать это, открыть текстовый файл в любой (подходящей) 3D программе и экспортировать или сохранить его в STL формат. Получившийся файл будет бинарным.
Для того чтобы построить модель, в этом формате, нам нужны координаты ключевых точек. Допусти нам нужен треугольник - фасет с координатами :
v 1 1 0
v 1 -1 0
v -1 -1 0 Порядок описания вершин важен, Так как от этого зависит ориентация нормали. Нумерация выполняется по правилу правой руки.Поднятый большой палец определяет направление нормали, а согнутые четыре пальца, направление нумерации и порядок описания вершин. Иными словами, если мы хотим чтобы фасет был обращен к нам, описывать его вершины нужно против часовой стрелки.Так как STL достаточно серьезный формат, в нем естественно есть компонент отвечающий за ориентацию нормалей - facet normal n1 n2 n3. Но так как подавляющее большинство использует только правило правой руки, его параметры обычно ровняются нулю (facet normal 0 0 0 ). А для некоторых программ, его наличие вовсе необязательно.
Для демонстрации построим октаэдр. точнее фигуру напоминающую его, потому что не все его ребра будут одинаковой длинны. Октаэдр это две пирамиды соединенные по основанию. Поэтому и моделировать его будем из двух пирамид. Пирамида, если смотреть на нее сверху вниз, представляет из себя четыре прямоугольника вершины которых соединены в одной точке.Соблюдая правило правой правой руки, моделируем пирамиду начиная с красного треугольника.Результат получаем следующий.Получился квадрат. Потому что центральная точка имеет такую же координату Z как и другие, исправим это. Ниже правильный листинг файла:
solid Octahedron_Created_by_Prototyre3D
facet normal 0 0 0
outer loop
vertex 0 0 -1
vertex 1 1 0
vertex 1 -1 0
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0 0 -1
vertex 1 -1 0
vertex -1 -1 0
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0 0 -1
vertex -1 -1 0
vertex -1 1 0
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0 0 -1
vertex -1 1 0
vertex 1 1 0
endloop
endfacet
endsolid Octahedron_Created_by_Prototyre3DПостроим нижнюю часть. Если мы просто перепишем все и изменим Z на противоположное значение у нас получится фигура, но нормали нижней части будут перевернуты. Поэтому для нижней части мы описываем треугольники почасовой стрелке.
Файл целиком:
solid Octahedron_Created_by_Prototyre3D
facet normal 0 0 0
outer loop
vertex 0 0 -1
vertex 1 1 0
vertex 1 -1 0
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0 0 -1
vertex 1 -1 0
vertex -1 -1 0
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0 0 -1
vertex -1 -1 0
vertex -1 1 0
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0 0 -1
vertex -1 1 0
vertex 1 1 0
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0 0 1
vertex 1 -1 0
vertex 1 1 0
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0 0 1
vertex -1 -1 0
vertex 1 -1 0
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0 0 1
vertex -1 1 0
vertex -1 -1 0
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0 0 1
vertex 1 1 0
vertex -1 1 0
endloop
endfacet
endsolid Octahedron_Created_by_Prototyre3DЛистинг приведен в классическом синтаксисе. Также он может выглядеть несколько иначе, но не все программы понимают такое написание.
Не классический синтаксис STL:
vertex 0 0 -1
vertex 1 1 0
vertex 1 -1 0
vertex 0 0 -1
vertex 1 -1 0
vertex -1 -1 0
vertex 0 0 -1
vertex -1 -1 0
vertex -1 1 0
vertex 0 0 -1
vertex -1 1 0
vertex 1 1 0
vertex 0 0 1
vertex 1 -1 0
vertex 1 1 0
vertex 0 0 1
vertex -1 -1 0
vertex 1 -1 0
vertex 0 0 1
vertex -1 1 0
vertex -1 -1 0
vertex 0 0 1
vertex 1 1 0
vertex -1 1 0
Так же если мы конвертируем его в бинарный формат, то увидим следующее: И если сравним размер текстового и бинарного файла то увидим такую картину:
Текстовый файлБинарный файл.Разница практически в два раза. На этом буду заканчивать. Спасибо за внимание. Спасибо за отзывы.
подготовлено специально для Вас.
Еще больше интересных статей
Проектирование плафона светильника в форме Шуховской башни в SolidWorks
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Исходные требования:Высо...
3D-модели для 3D-печати и не только: тoп сайтов
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Доктор Ливси из Острова сокровищ
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Как большой (заядлый) любитель мультфильма "Остров сокровищ", давно хо...
Комментарии и вопросы
Благодарю большое, под заваляв...
Все же смущает меня пластина с...
ПЕТГ более склонен к ползучест...
В общем проблема в чём возникл...
Подскажите почему такой 1-ый в...
Поменяла нагревательную часть...
Нужно ли брать защитную пленку...