Формат файлов аддитивного производства ( AMF ) - это открытый стандарт описания объектов для процессов аддитивного производства, таких как 3D-печать . Официальный ISO / ASTM 52915: 2016 [1] [2] стандарт является XML , основанное формат , разработанный , чтобы позволить любому автоматизированного проектирования программного обеспечения для описания формы и композиции любого 3D объекта , чтобы быть изготовлена на любом 3D - принтер через компьютер программное обеспечение для автоматизированного производства . В отличие от своего предшественника формата STL, AMF имеет встроенную поддержку цвета, материалов, решеток и созвездий.
Расширение имени файла | .amf |
---|---|
Тип интернет-СМИ | приложение / x-amf |
Разработано | ASTM / ISO |
Первый выпуск | 2 мая 2011 г. |
Последний релиз | 1.2 |
Стандарт | ISO / ASTM52915 - 16 [1] |
Состав
AMF может представлять один объект или несколько объектов, собранных в созвездие. Каждый объект описывается как набор неперекрывающихся томов. Каждый объем описывается треугольной сеткой, которая ссылается на набор точек (вершин). Эти вершины могут быть разделены между объемами, принадлежащими одному объекту. В файле AMF также можно указать материал и цвет каждого объема, а также цвет каждого треугольника в сетке. Файл AMF сжимается с использованием формата сжатия zip, но расширение файла «.amf» сохраняется. Реализация минимального средства чтения AMF должна иметь возможность распаковывать файл AMF и импортировать хотя бы геометрическую информацию (игнорируя кривизну).
Базовая файловая структура
Файл AMF начинается со строки объявления XML, в которой указывается версия и кодировка XML. Остальная часть файла заключена между открывающим
и закрывающим элементами. Также можно указать систему единиц (миллиметр, дюйм, фут, метр или микрометр). При отсутствии спецификации единиц измерения принимаются миллиметры.
В скобках AMF находятся пять элементов верхнего уровня. Для полнофункционального файла AMF требуется только один элемент объекта.
Элемент объекта определяет объем или объемы материала, каждый из которых связан с идентификатором материала для печати. В файле должен присутствовать хотя бы один элемент объекта. Дополнительные объекты необязательны.
Необязательный элемент материала определяет один или несколько материалов для печати с соответствующим идентификатором материала. Если элемент материала не включен, используется единственный материал по умолчанию.
Необязательный элемент текстуры определяет одно или несколько изображений или текстур для отображения цвета или текстуры, каждое из которых имеет связанный идентификатор текстуры.
Необязательный элемент созвездия иерархически объединяет объекты и другие созвездия в относительный образец для печати.
Необязательный элемент метаданных определяет дополнительную информацию об объекте (ах) и элементах, содержащихся в файле.
Спецификация геометрии
Формат использует макет полигональной сетки Face-vertex . Каждый элемент верхнего уровня определяет уникальный
id
. В элементе также можно указать материал. Вся геометрия сетки содержится в одном
mesh
элементе. Сетка определяется с использованием одного
элемента и одного или нескольких
элементов. В обязательном
элементе перечислены все вершины, которые используются в этом объекте. Каждой вершине неявно присваивается номер в том порядке, в котором она была объявлена, начиная с нуля. Требуемый дочерний элемент
задает положение точки в трехмерном пространстве с помощью элементов
,
и
. После информации о вершине
должен быть включен хотя бы один элемент. Каждый том инкапсулирует замкнутый объем объекта. В одном объекте можно указать несколько томов. Тома могут иметь общие вершины на интерфейсах, но не могут иметь перекрывающийся объем. В каждом томе дочерний элемент
используется для определения треугольников, образующих мозаику на поверхности объема. Каждый
элемент будет перечислять три вершины из набора индексов ранее определенных вершин, заданных в
элементе. Индексы трех вершин треугольников задаются с помощью элементов
,
и
. Порядок вершин должен соответствовать правилу правой руки, чтобы вершины указывались в порядке против часовой стрелки, если смотреть снаружи. Каждому треугольнику неявно присваивается номер в том порядке, в котором он был объявлен, начиная с нуля.
Спецификация цвета
Цвета вводятся с помощью
элемента путем указания красного, зеленого, синего и альфа ( прозрачности ) каналов в цветовом пространстве sRGB в виде чисел в диапазоне от 0 до 1. Элемент может быть вставлен в материал, объект, объем, вершину, или уровни треугольника, и имеет приоритет в обратном порядке (цвет треугольника имеет наивысший приоритет). Канал прозрачности указывает, в какой степени смешивается цвет нижнего уровня. По умолчанию все значения установлены на ноль.
Цвет также можно указать, обратившись к формуле, которая может использовать различные функции, зависящие от координат.
Карты текстур
Карты текстур позволяют назначать цвет или материал поверхности или объему, заимствуя идею отображения текстуры в графике.
Элемент сначала используется для связывания texture-id
с определенными текстурными данными. Данные могут быть представлены в виде двухмерного или трехмерного массива, в зависимости от того, нужно ли сопоставить цвет или материал поверхности или объема. Данные представлены в виде строки байтов в кодировке Base64 , один байт на пиксель, определяющий уровень градаций серого в диапазоне 0–255.
После назначения идентификатора текстуры на данные текстуры можно ссылаться в формуле цвета, как в примере ниже.
Однако обычно скоординированные не используются напрямую, как показано выше, а сначала преобразуются, чтобы перевести их из координат объекта в координаты текстуры. Например, tex(1,f1(x,y,z),f2(x,y,z),f3(x,y,z))
где f1(), f2(), f3()
находятся некоторые функции, обычно линейные.
Спецификация материалов
Материалы вводятся с помощью элемента
Смешанные, градуированные, решетчатые и случайные материалы
Новые материалы можно определить как композиции из других материалов. Элемент
используется для указания пропорций композиции в виде константы или формулы в зависимости от координат x, y и z. Постоянная пропорция смешивания приведет к однородному материалу. Композиция, зависящая от координат, может привести к дифференцированному материалу. Более сложные пропорции, зависящие от координат, могут привести к нелинейным градиентам материала, а также к периодическим и непериодическим субструктурам. Формула пропорции может также относиться к карте текстуры с помощью tex(textureid,x,y,z)
функции. Ссылка на идентификатор материала "0" (пусто) зарезервирована и может использоваться для определения пористых структур. Ссылка на rand(x,y,z)
функцию может использоваться для указания псевдослучайных материалов. rand(x,y,z)
Функция возвращает случайное число в диапазоне от 0 до 1 , которое является стойким к этой координате.
Распечатать созвездия
С помощью
элемента можно расположить несколько объектов вместе . Созвездие может определять положение и ориентацию объектов для повышения эффективности упаковки и описания больших массивов идентичных объектов.
Элемент определяет перемещение и вращение существующего объекта потребности пройти , чтобы прибыть в его положение в созвездии. Смещение и поворот всегда определяются относительно исходного положения и ориентации, в которых был определен объект. Созвездие может относиться к другому созвездию, если избегаются циклические ссылки.
Если указано несколько созвездий верхнего уровня или если указано несколько объектов без созвездий, каждый из них будет импортирован без данных относительного положения. Затем программа импорта может свободно определять относительное позиционирование.
Метаданные
Элемент необязательно может быть использован для указания дополнительной информации об объектах, геометрии и материалов , которые определены. Например, в этой информации можно указать имя, текстовое описание, авторство, информацию об авторских правах и специальные инструкции.
Элемент может быть включен на уровне верхнего , чтобы определить атрибуты всего файла, или в пределах объектов, объемов и материалов , чтобы указать атрибуты , локальные для этого объекта.
Дополнительные изогнутые треугольники
Для улучшения геометрической точности формат позволяет изгибать участки треугольника. По умолчанию все треугольники считаются плоскими, а все ребра треугольников - прямыми линиями, соединяющими их две вершины. Тем не менее, изогнутые треугольники и изогнутые кромки могут быть дополнительно указаны, чтобы уменьшить количество элементов сетки, необходимых для описания изогнутой поверхности. Было показано, что информация о кривизне снижает погрешность сферической поверхности в 1000 раз по сравнению с поверхностью, описываемой таким же количеством плоских треугольников. [1] Кривизна не должна создавать отклонение от плоскости плоского треугольника, превышающее 50% наибольшего размера треугольника.
Чтобы указать кривизну, вершина может дополнительно содержать дочерний элемент,
чтобы указать желаемую нормаль к поверхности в месте расположения вершины. Нормаль должна быть единичной длины и направлена наружу. Если указана эта нормаль, все ребра треугольника, пересекающиеся в этой вершине, изогнуты так, что они перпендикулярны этой нормали и находятся в плоскости, определяемой нормалью и исходной прямой кромкой. Когда кривизна поверхности в вершине не определена (например, в выступе, углу или ребре),
элемент может использоваться для определения кривизны единственного нелинейного ребра, соединяющего две вершины. Кривизна задается с помощью векторов касательного направления в начале и конце этого ребра.
Элемент будет иметь приоритет в случае конфликта с кривизной , подразумеваемой в
элементе.
Если задана кривизна, треугольник рекурсивно разбивается на четыре подтреугольника. Рекурсия должна выполняться на глубину пяти уровней, чтобы исходный изогнутый треугольник в конечном итоге был заменен 1024 плоскими треугольниками. Эти 1024 треугольника генерируются «на лету» и временно сохраняются только в то время, когда слои, пересекающие этот треугольник, обрабатываются для изготовления.
Формулы
Как в элементах, так
и в
элементах вместо констант можно использовать формулы, зависящие от координат. Эти формулы могут использовать различные стандартные алгебраические и математические операторы и выражения.
Сжатие
AMF может храниться как в виде обычного текста, так и в виде сжатого текста. Если сжат, то сжатие происходит в формате архива ZIP . Размер сжатого файла AMF обычно составляет примерно половину размера эквивалентного сжатого двоичного файла STL. [3] : 275 Сжатие может выполняться вручную с помощью программного обеспечения сжатия или автоматически с помощью программного обеспечения экспорта во время записи. И сжатые, и несжатые файлы имеют .amf
расширение, и программа синтаксического анализа должна определить, сжат файл или нет, и, если да, выполнить распаковку во время импорта.
Соображения по дизайну
Когда подкомитет ASTM Design начал разработку спецификаций AMF [ когда? ] , опрос заинтересованных сторон [4] показал, что ключевым приоритетом для нового стандарта было требование непатентованного формата. Проблемы с модулями и сборкой возникли из-за проблем с форматом STL. Другими ключевыми требованиями были возможность указывать геометрию с высокой точностью и небольшими размерами файлов, несколько материалов, цвета и микроструктуры. Чтобы добиться успеха в области аддитивного производства, этот формат файла был разработан для решения следующих проблем:
- Независимость от технологии : формат файла должен описывать объект в общем виде, чтобы любая машина могла построить его в меру своих возможностей. Он не зависит от разрешения и толщины слоя и не содержит информации, относящейся к какому-либо производственному процессу или технологии. Это не отменяет включение свойств, поддерживаемых только некоторыми передовыми машинами (например, цвет, несколько материалов и т. Д.), Но они определены таким образом, чтобы избежать исключительности.
- Простота : формат файла должен быть простым для реализации и понимания. Формат должен быть читаемым и редактируемым в простой программе просмотра текста, чтобы способствовать пониманию и принятию. Не следует хранить идентичную информацию в нескольких местах.
- Масштабируемость : формат файла должен хорошо масштабироваться с увеличением сложности и размера детали, а также с улучшением разрешения и точности производственного оборудования. Это включает в себя возможность обрабатывать большие массивы идентичных объектов, сложные повторяющиеся внутренние элементы (например, сетки), гладкие изогнутые поверхности с высоким разрешением печати и множественные компоненты, расположенные в оптимальной упаковке для печати.
- Производительность : формат файла должен обеспечивать разумную продолжительность (интерактивное время) для операций чтения и записи и разумные размеры файла для типичного большого объекта.
- Обратная совместимость : любой существующий файл STL должен быть преобразован непосредственно в действительный файл AMF без потери информации и без необходимости в какой-либо дополнительной информации. Файлы AMF также легко конвертируются обратно в STL для использования в устаревших системах, хотя расширенные функции будут потеряны.
- Совместимость в будущем : чтобы оставаться полезным в быстро меняющейся отрасли, этот формат файла должен легко расширяться, оставаясь при этом совместимым с более ранними версиями и технологиями. Это позволяет добавлять новые функции по мере того, как того требуют достижения в области технологий, при этом безупречно работая с простой однородной геометрией на самом старом оборудовании.
История
С середины 1980-х годов формат файла STL был де-факто отраслевым стандартом для передачи информации между программами проектирования и оборудованием для аддитивного производства. Формат STL содержал только информацию о поверхностной сетке и не имел условий для представления цвета, текстуры, материала, субструктуры и других свойств изготовленного целевого объекта. По мере того как технология аддитивного производства эволюционировала от производства однородных форм в основном из одного материала к созданию полноцветных геометрических форм из нескольких материалов с функционально дифференцированными материалами и микроструктурами, возникла растущая потребность в стандартном формате файла обмена, который мог бы поддерживать эти функции. Вторым фактором, положившим начало разработке стандарта, было улучшение разрешающей способности технологий аддитивного производства. Поскольку точность печати приближалась к разрешению в микронном масштабе, количество треугольников, необходимое для описания гладких изогнутых поверхностей, приводило к неприемлемо большим размерам файлов. [4]
В течение 1990-х и 2000-х годов различные компании использовали ряд проприетарных форматов файлов для поддержки определенных функций своего производственного оборудования, но отсутствие общеотраслевого соглашения препятствовало широкому распространению какого-либо единого формата. В 2006 году Джонатан Д. Хиллер и Ход Липсон представили первоначальную версию AMF, получившую название «STL 2.0». [3] В январе 2009 года был учрежден новый комитет ASTM F42 по технологиям аддитивного производства, и был сформирован подкомитет по дизайну для разработки нового стандарта. В конце 2009 г. был проведен опрос [4], в результате которого новый стандарт обсуждался более года. Получившаяся первая редакция стандарта AMF стала официальной 2 мая 2011 г. [5]
Во время июльских 2013 г. встреч ASTM F42 и ISO TC261 в Ноттингеме (Великобритания) был одобрен Совместный план по разработке стандартов аддитивного производства. С тех пор стандартом AMF совместно управляют ISO и ASTM.
Образец файла
Ниже приведен простой файл AMF, описывающий пирамиду из двух материалов, адаптированный из учебника AMF [6] (сжато 548 байт). Чтобы создать этот файл AMF, скопируйте и вставьте текст под текстом в текстовый редактор или редактор xml и сохраните файл как «pyramid.amf». Затем сожмите файл с помощью ZIP и переименуйте расширение файла с «.zip» на «.zip.amf».
xml version = "1.0" encoding = "utf-8"?> unit = "inch" version = "1.1" > type = "name" > Разделенная пирамида type = "author " > Джон Смит id = " 1 " > 0 0 0 1 0 0 0 1 0 1 1 0 0,5 0,5 1 materialid = "2" > type = "name" > Жесткая сторона 2 < v2> 1 0 0 1 4 4 1 2 0 4 2 materialid = "3" > type = "name" > Мягкая сторона 2 3 1 1 3 4 4 3 2 4 2 1 id = "2" > type = "name" > Жесткий материал 0,1 0,1 0,1 id = "3" > <метаданные type = "name" > Мягкий материал 0 0,9 0,9 0,5
Смотрите также
Заметки
- ^ a b c Спецификация формата обмена данными для аддитивного производства
- ^ Спецификация AMF на веб-странице ISO
- ^ a b Хиллер, Джонатан Д .; Липсон, Ход (2009). STL 2.0: Предложение по универсальному формату файлов для аддитивного производства из нескольких материалов (PDF) . Симпозиум по изготовлению твердых тел произвольной формы (SFF'09). Остин, Техас, США: Корнельский университет. Архивировано из оригинального (PDF) на 2020-06-11 . Дата обращения 5 мая 2017 .
- ^ a b c STL 2.0 может быстро заменить старые файлы ограниченного формата сегодня, октябрь 2009 г.
- ^ Новая спецификация ASTM по аддитивному производству отвечает на потребность в стандартном формате файла обмена ASTM, 20 июля 2011 г.
- ^ Учебник AMF: Основы (Часть 1)
Внешние ссылки
- AMF Wiki : репозиторий ресурсов AMF, файлов примеров и исходного кода.
- Страница AMF Джона Хиллера