НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

АДДИТИВНЫЕ ТЕХНОЛОГИЧЕСКИЕ ПРОЦЕССЫ.
БАЗОВЫЕ ПРИНЦИПЫ — часть 4

Обработка данных

Дата введения — 2017—12—01

  • Область применения

Настоящий стандарт содержит требования к формату файлов для аддитивного производства (АМР), которые используются для коммуникационной (для обмена данных) электронной геометрической модели аддитивного производства, включающей в себя пространственное описание геометрии поверхности, со встроенной поддержкой для цвета, материалов, сеток координат, групп элементов и метаданных.

Для поддержки совместимости со стандартами аддитивного производства файлы АМР могут  быть использованы только при условии соблюдения настоящего стандарта и при условии использования расширяемого языка разметки (XML).

Объединение XML и АМР возможно в соответствии со стандартами ISO и ASTM. Руководство по осуществлению такого объединения представлено в приложении А.

Настоящий стандарт не устанавливает каких-либо четких механизмов обеспечения целостности данных, электронных подписей и шифрования.

  • Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие документы:

ГОСТ Р 57558 Аддитивные технологические процессы. Базовые принципы. Часть 1. Термины и определения.

ГОСТ 2.511 Единая система конструкторской документации (ЕСКД). Правила передачи электронных конструкторских документов. Общие положения.

ГОСТ 20886 Организация данных в системах обработки данных. Термины и определения.

  • Термины, определения и сокращения
    • Термины и определения

В настоящем стандарте применены следующие термины с соответствующими определениями:

  • потребитель АМР: Программное обеспечение для чтения файлов аддитивного производства (AMF), используемых для изготовления, визуализации или анализа.

Примечание — AMF-файлы также используются для просмотра, анализа и верификации программного обеспечения.

  • редактор AMF: Программное обеспечение для считывания и перезаписи файлов аддитивного производства (AMF) при их преобразовании.

Издание официальное

Примечание —Редактор AMF используется для преобразования AMF из одной формы в другую {например, когда необходимо преобразовать все изогнутые треугольники в плоские треугольники).

  • производитель AMF: Файл программного обеспечения для записи (генерации) файла аддитивного производства (AMF) по исходным геометрическим данным.

Примечание —AMF-файлы обычно экспортируются автоматически из программного обеспечения для проектирования (САПР), сканирования или непосредственно из алгоритмов вычислительной геометрии.

  • атрибут: Характеристика данных, представляющих собой один или более аспектов или дескрипторов данных в элементе.
  • редактор: Все элементы текста, связанные с файлами аддитивного производства (AMF).

Примечание —AMF-файлы обычно экспортируются автоматически из программного обеспечения для проектирования (САПР), сканирования или непосредственно из алгоритмов вычислительной геометрии.

  • элемент: Информация в XML-документе. состоящая из открывающего тега, конца тега, содержимого между тегами и атрибутами;
  • расширяемый язык разметки, XML; extensible Markup Language. Рекомендован Консорциумом Всемирной паутины (W3C): Стандарт Консорциума Всемирной паутины, разработанный для пометки информации, содержащейся в документах, предлагающий средства для предоставления содержимого в одинаково хорошо удобном формате для чтения человеком и компьютерными программами.

Примечание — Благодаря использованию настраиваемого стиля таблиц и схем, информация может быть представлена унифицированным способом, позволяющим обмен как информацией (данными), так и форматом (метаданными).

  • Сокращения

AMF — формат компьютерных данных, альтернативный формату Stl, применяемому с 1987 г.

в качестве базового для передачи данных компьютерной ЗО-модели в аддитивную машину для построения физической модели. AMF базируется на языке EML (Extensible Markup Language — расширяемый язык разметки) и поддерживает размерность, цвет, текстуру, триангуляцию, сетчатые структуры, которые Stt-формат не поддерживает; более компактный, чем Stl-файл;

XML — текстовый файл, содержащий список элементов и атрибутов;

Бит — Единица измерения информации в двоичной системе счисления;

ID — уникальный признак объекта, позволяющий отличать его от других объектов;

RGBA — изображение цвета материала (красный/зеленый/синий) с техникой создания эффекта полупрозрачное™ альфа-композитинг (англ. Alpha compositing);

SRGB — стандарт представления цветового спектра с использованием модели RGB;

RGB — аддитивная цветовая модель, описывающая способ кодирования цвета для цветовоспроизведения,

2D       — двухмерное проектирование:

3D       — трехмерное проектирование:

ZIP — формат архивации файлов и сжатия данных без потерь;

PRSM — код для псевдослучайной пространственной карты;

STL — формат файлов, применяемый с 1987 г. в качестве базового для передачи данных компьютерной ЗD-модели в аддитивную машину для построения физической модели.

  • Общие положения
    • Принципы форматирования
      • Существует естественный компромисс между форматом файла и его полезностью для определенных целей. Функции, предназначенные для удовлетворения одних целей, могут помешать достижению других. Требования к файлам описанные в настоящем стандарте, предназначены для решения задач, указанных в 4.1.2—4.1.7.
      • Технология независимости

AMF описывает объект таким образом, чтобы любая машина могла построить его в соответствии со своими характеристиками. Разрешение и толщина слоя построения независимы и не содержат информацию. относящуюся к какому-либо конкретному производственному процессу или методу. Это не отменяет функций, которые поддерживаются оборудованием (например, цвет, материалы и т. д.). Эти функции определены таким образом, чтобы избежать исключительности.

  • Доступность

AMF легко распознать и понять. Файлы можно читать и отлаживать в простом текстовом редакторе. Идентичная информация не хранится в нескольких местах.

  • Масштабируемость

Размер файла и время обработки хорошо масштабируются с увеличением сложности конфигурации детали и улучшением разрешающей способности, а также точности производственного оборудования. На случай, когда необходимо производство с очень высоким разрешением, предусмотрена возможность обработки больших массивов однотипных объектов (например, сеток и решеток) и криволинейных поверхностей, в том случае, когда необходимо производство с очень высоким разрешением.

  • Производительность

AMF обеспечивает разумный срок для чтения и записи, а также разумный размер файла для крупных объектов. Характеристики представлены в приложении Б.

  • Обратная совместимость

Любой существующий файл STL может быть преобразован непосредственно в файл AMF без потери информации и необходимости добавления какой-либо дополнительной информации. AMF-файлы можно легко конвертировать обратно в формат STL для использования на устаревших системах, при этом дополнительные функции будут потеряны. Этот формат поддерживает треугольную сетку геометрии поверхности.

  • Перспективы совместимости

Чтобы оставаться актуальным в быстро меняющейся отрасли, этот формат является легко расширяемым, при этом сохраняется совместимость с предыдущими версиями.

  • Рекомендации для включения новых элементов
    • Любой новый предложенный элемент должен применяться во всех аппаратных платформах и технологиях, которые могут быть использованы для достижения желаемого результата.
    • Новые элементы, предложенные в настоящем стандарте, описываются объектами, а не способами их построения. Например, в будущем элемент <hotlow> может быть использован в виде пустого объема, если это возможно. Однако элемент <objectLayerFillPath>. в котором описывается создание полого объема, не предполагает особый процесс изготовления.
  • Структура данной спецификации
    • Формат

Информация, указанная в спецификации, сохраняется в формате XML 1.0. XML — это текстовый файл, содержащий список элементов и атрибутов. Применяя этот широко принятый формат данных, возможно использовать множество инструментов для создания, просмотра, манипулирования, обработки и хранения AMF-файлов. XML является удобочитаемым для человека. XML может быть сжат или зашифрован с использованием стандартных процедур.

  • Гибкость

Еще одним существенным преимуществом XML являются его гибкость. Отсутствие какого-либо параметра или дополнительный параметр не являются проблемой для синтаксического анализатора при условии, что документ соответствует стандарту XML. Использование имен XML позволяет добавлять — например, в устаревшее программное обеспечение — новые возможности без разрушения старой версии синтаксического анализатора.

  • Точность

Этот формат файла не учитывает точность представления числовых значений. Он несет ответственность за программу, генерирующую написание такого количества цифр, которое необходимо для правильного представления целевого объекта. Однако потребитель АМР должен прочитать и обработать числа двойной точности (64 бит).

  • Будущие изменения и дополнения

В то время как дополнительные элементы XML могут быть предварительно добавлены к любому файлу AMF для внутренних целей, такие добавки не должны рассматриваться как часть данной спецификации. Неофициальный элемент AMF может быть проигнорирован любым потребителем AMF и не может быть сохранен или воспроизведен приложением редактора. Элемент становится официальным только тогда, когда он принят в данной спецификации.

  • Общая структура
    • Файл AMF должен начинаться с объявления XML с указанием версии XML и кодировки, например:

<?xmlversion=”1.0* encoding=”UTF-8”?>

По умолчанию XML-версия должна быть 1.0. Необходимо указывать только utf-8 и utf-16. Нераспознанная кодировка должна вызывать сбой файла загрузки.

  • Пробелы и XML-стандарты могут быть внедрены в файл и должны игнорироваться любым интерпретатором:

<!- ignorethiscomment ->

  • Оставшаяся часть файла должна быть заключена между началом «/amf> и концом «/ amf> тегов. Элемент указывает на тип файла и выполняет требование о том. чтобы все XML-файлы имели один корневой элемент. Атрибут версии файла должен быть совместим с версией стандарта. Также можно использовать стандартные атрибуты XML. Размеры изделия определяют в миллиметрах, дюймах, футах, метрах и микронах. По умолчанию размеры изделия определяют в миллиметрах, например:

<amfu п it=“ m il ti meter’ version=“1.0″ xml:lang=*en“ xmins:amf=“www.astm.org/Standards/F2915-14″»

  • Стартовый элемент и закрывающие теги заключены в «amf/». Есть пять элементов верхнего
    уровня:
  • элемент <оbjeсt>определяет объем или объемы материала;
  • элемент «material» определяет один материал для изготовления. Этот материал должен быть идентифицирован. Идентификатор должен быть уникальным и не равняться 0:
  • элемент «texture» — необязательный элемент текстуры. Определяет одно изображение или текстуру для цвета. Текстура имеет свой идентификатор. Идентификатор текстуры должен быть уникальным:
  • элемент «constellation» — необязательный элемент созвездия. Иерархически объединяет объекты и другие созвездия в шаблон для печати. Элемент созвездия может содержать идентификатор объекта, который должен быть уникальным. Если не указан элемент созвездия, каждый элемент объекта должен быть импортирован. Потребительское программное обеспечение может определять относительное расположение объектов, если е файле указано более одного объекта;
  • элемент «metadata» — необязательный элемент метаданных. Указывает дополнительные сведения об объектах и элементах, содержащихся в файле.
    • Для полнофункционального файла АМРнеобходим только один элемент.
  • Характеристики геометрии
    • Общие
      • Элемент верхнего уровня «object» объявляет уникальный идентификатор и должен содержать один дочерний элемент <mesh>. Элемент «mesh» содержит два дочерних элемента: «vertices» и «volume». Элемент «object» необязательно может ссылаться на материал.
      • Элемент «vertices» описывает асе вершины треугольников, которые используют при построении объекта. Каждой вершине треугольника присваивается идентификационный номер в виде целого числа в том порядке, в котором он объявлен, начиная с нуля. Требуемый дочерний элемент «coordinates» дает позицию в трехмерном (3D) пространстве, используя дочерние элементы <х> <у> и <z>.
      • По крайней мере один элемент «volume» должен быть включен после получения информации о вершине треугольника. Каждый «volume» содержится в замкнутом объеме объекта. Несколько элементов «volume» могут быть включены в один объект. Не должно быть перекрытых элементов.
      • в процессе тесселяции поверхности объема в пределах каждого элемента «volume» несколько элементов «triangle» будут использованы для определения треугольников. Каждый элемент
        «triangle» должен иметь три вершины. Индексы трех вершин треугольника должны быть указаны с использованием элементов <v1», «v2» и <v3». Вершины должны быть упорядочены в соответствии с правилом правой руки (вершины перечисляются в порядке обхода против часовой стрелки). Каждому треугольнику присваивается идентификационный номер в виде целого числа в том порядке, в котором он был объявлен, начиная с нуля.
      • Геометрия не может быть использована для описания структуры поддержки. Должна быть описана только конечная целевая структура.

 

Примечание — На рисунке 1 показан базовый AMF-файл. содержащий только список вершин треуголь-
ников. Эта структура совместима со стандартом STL.

  • Сглаженная геометрия
    • По умолчанию все треугольники должны быть плоскими. В случае наличия изогнутых треу-
      гольников необходимо уменьшить количество сетчатых элементов, необходимых для описания криво-
      линейной поверхности. Некоторое программное обеспечение (см. раздел 14) может проигнорировать
      информацию о кривизне треугольников.
    • В процессе преобразования изогнутый треугольник должен быть рекурсивно разделен на
      четыре треугольника, чтобы сформировать окончательный временный набор плоских треугольников.
      Глубина рекурсии должна равняться пяти.
    • Создаваемое программное обеспечение, которое генерирует геометрию объектов, должно
      автоматически определять число криволинейных треугольников. Создаваемое программное обеспече-
      ние должно генерировать целевую геометрию объекта, заменяя изогнутые треугольники на плоские.
    • Вершина изогнутого треугольника может содержать дочерний элемент <погта1>, который
      указывает нормаль к поверхности в этой вершине. Нормаль должна быть единичной длины, направле-
      на наружу и расположена перпендикулярно к вершинам треугольника.
    • Если вершина треугольника ссылается на два элемента «volume*. нормаль является тожде-
      ственной для каждого элемента «volume*.
    • Элемент <edge> используют для определения кривизны одного нелинейною края, соеди-
      няющего две вершины треугольников. Кривизна задается касательными векторами, направленными от
      начала к концу кромки.
    • Нормали не определяют для вершин плоских треугольников. Боковые элементы не опреде-
      ляются для хромок плоских треугольников.
    • При интерпретации нормалей и касательных необходимо использовать Эрмитову интерпо-
      ляцию второй степени. Формулы для проведения интерполяции указаны в пункте А.З (приложения А).
  • Ограничения в геометрии

При построении геометрии объекта следует соблюдать следующие ограничения:

  • каждый треугольник должен иметь ровно три различные неколлинеарные вершины:
  • треугольники не должны пересекаться. Треугольники могут соприкасаться только в их общих
    ребрах или общих вершинах:
  • объемы должны быть описаны в виде непрерывного пространства;
  • объемы не должны перекрываться;
  • каждая вершина должна иметь ссылку не менее чем на три треугольника;
  • каждая пара вершин должна ссылаться либо на ноль, либо на два треугольника в одном элемен-
    те <votume>;
  • любые две вершины не должны иметь одинаковые координаты. Может быть использован допуск
    8—10 единиц;
  • внешнее направление треугольников с общим ребром е объеме должно быть последователь-
    ным. Внешнее направление определяет порядком вершин.
  • Характеристики материала
    • Общие
      • Материалы вводятся с помощью дополнительного элемента «material*. Каждый материал
        может быть определен только с помощью одною элемента «material*. Каждому материалу присваива-
        ют уникальный идентификатор. Материал может указываться через значение атрибута Ю в элементе
        «volume*. ID “0” материала зарезервирован для представления пустот в объеме изделия (рисунок 2).

Характеристики материала содержатся внутри каждою элемента «material*. Дочерний элемент
«colour* используют для указания цвета материала (красный/зеленый/синий/альфа (RGBA)) (пункт 9).
Дополнительные свойства материала могут быть определены с помощью элемента «metadata*. Описание элементов АМР содержится в пункте А.1(приложения А).

Примечание — На рисунке показан AMF-файл. содержащий пять материалов. Материал 3 — это однородная смесь первых двух материалов в соотношении 40/60 %. Материал 4 — вертикально-градиентный материал. Материал 5 — каркас со структурой шахматной доски.

8.2 Смешанные и градиентные материалы и субконструкции.

  • Новые материалы можно определять как композиции из других материалов. Элемент «сотровйе»использует для указания пропорций композиции как константа или формула ее зависимости от координат х. у и г. Постоянная пропорция смешивания приведет к получению однородного материала. Изменение состава в зависимости от координат приводит к градиентному составу материала. Более сложные координатно-зависимые пропорции могут приводить к получению нелинейных градиентных материалов. Формула удельного веса может также обращаться к функции текстур tex (textursid.x.y.z) описание приведено в А.1 (приложение А).
  • В композите может быть использовано любое количество материалов.
  • Любое отрицательное значение доли материала должно быть интерпретировано как нулевая пропорция. Сумма долей различных материалов должна быть равна 1.
  • Пористые материалы
  • Ссылка на функцию materialid *0* (пусто) используется для определения пористой структуры. Доля пустоты должна быть или 0 или 1. Любое другое число будет толковаться как 1.
  • Элемент «composite» теоретически может быть использован для полного описания геометрии объекта, как отдельная функция или как текстура со ссылкой на пустоту. Целевое использование
    элемента «composite» со ссылкой на пустоту необходимо для описания клеточных меэоструктур.
  • Стохастические материалы
  • Ссылка на rand-функцию (х. у. г) может быть использована для определения псевдослучайных материалов. Например, композитный материал может объединить два базовых материала в случайных пропорциях, в которых точная пропорция может зависеть от координат различными способами. Rand-функция (х. у. г) генерирует случайную точку в диапазоне (0.1]. которая сохраняется на протяжении всех вызовов функции, см. А.4 (приложения А).
  • Характеристики цвета
    • Общие
      • Цвета могут быть введены с использованием элемента «соlоur»и указанием формата. По умолчанию цветовое пространство должно быть SRGB, но альтернативные профили могут быть установлены с помощью тега метаданных в корневой «amf» элемент см. А.1 (приложение А). Элемент «colour» может быть связан с элементом «material». Чтобы связать цвет и материал, используется элемент «object»; чтобы покрасить весь объект, используется элемент «volume». Элемент «triangle» используется для покраски треугольника. Элемент «vertex» служит для связи цвета с определенной вершиной треугольника (см. рисунок 3).
      • Если цвет не указан, то по умолчанию используют белый цвет.
      • Цвет объекта может быть определен цветом материала спецификации. Цвет перекрывает объем объекта.

 

Примечание — Сплошной цвет может быть связан с материалом томаса или вершины. Вершина может
быть также связана с координатой в файле цвета текстуры.

  • Градации цвета и отображение текстур
    • Цвет может также быть определен со ссылкой на формулы, которые могут использовать различные функции, включая функцию карты текстуры.
    • При обращении к формуле элемент <colour> указывает цвет, который зависит от координаты. В файлах могут быть использованы любые математические выражения, которые сочетают в себе функции, описанные в А.2 (приложения А). Например, использование rand-функции (функции случайных значений) допускается для псевдослучайных цветовых схем. Тех-функция допускает зависимость цвета от карты текстуры или изображения. Чтобы задать полноцветное изображение, как правило, требуется три текстуры — по одной на каждый цветовой канал. Чтобы создать монохромное изображение, обычно достаточно одной текстуры.
    • Когда вершины одного треугольника имеют разные цвета, внутренний цвет треугольника будет линейной интерполяцией между этими цветами, если цвет треугольника не был указан явно (цвет
      треугольника имеет приоритет над цветом вершины). Если все три вершины треугольника содержат отображение одной и той же ID-текстуры для любого канала (г. Ь или а), то цвет этого канала треугольника должен быть извлечен из текстурной карты, отменяя при этом цвет треугольника.
  • Прозрачность

Создание видимости частичной прозрачности может быть выполнено через канал прозрачности «а» альфа-композитингом путем объединения цвета переднего плана с цветом фока. Значение “О* указывает нулевую прозрачность, то есть ситуацию, когда используется только цвет переднего плана. Значение “Г указывает полную прозрачность, то есть ситуацию, когда используется только цвет фона. Промежуточные значения линейно интерполируются между цветом фона и цветом переднего плана. Отрицательные значения округлены до 0. а значения больше единицы — до 1. Цвет фона треугольника должен соответствовать цвету вершины. Цвет фона вершины должен соответствовать цвету объема, затем — цвету объекта и затем — цвету материала (в порядке убывания приоритета).

  • Характеристики текстур
    • Элемент <texture> используется для связывания textureid (текстурирования) с определенными текстурными данными. Размер текстурной карты должен быть указан. Поддерживаются двумерные
      (20) и трехмерные (30) текстуры. Данные должны быть представлены в виде ряда значений градаций серого в диапазоне [0—255]. Каждое значение хранится в одном байте и кодируется.
    • Упорядочение данных должно начинаться с левого верхнего угла и идти слева направо и сверху вниз. 3D текстура будет указывать сначала на первоначальный слой, а затем повторяться для
      всех последующих слоев в соответствии с правилом правой руки. Данные будут оптимизированы или добавлены с нулевыми значениями в соответствии с указанным размером текстуры.
    • Для наложения текстуры на треугольник используется элемент «texmap», определяющий U-. V- (опционально) и W-координаты для каждой вершины этого треугольника. Если текстура имеет
      свойство ‘’черепица” и соответствует значению True, то любые значения V. W, не попадающие в диапазон [0.1 ]. будут определяться по модулю 1. Если текстура имеет свойство “черепица* и соответствует значению false, то значения, которые не попадают в пределы диапазона [0.1]. будут соответствовать 0 (прозрачный). Текстуры должны быть линейно интерполированы для каждого треугольника. Треугольник должен включать только один элемент <texmap>. Перекрывающиеся текстуры должны быть объединены в единую текстуру, прежде чем накладываться на сетку.
  • Элементы группирования (созвездия)
    • Несколько объектов могут быть размещены вместе с помощью элемента «constellation» (см. рисунок 4). Элемент «constellation» может определить положение и ориентацию объектов для повышения эффективности упаковки и описать большие массивы одинаковых предметов. Элемент «instance» определяет перемещение и вращение объекта в процессе преобразования. Смещение и вращение должны быть определены по отношению к исходной позиции и ориентации объекта, определенным первоначально. Углы поворота должны быть указаны в градусах. Сначала применяются вращения вокруг оси х и оси у. а затем — вокруг оси г.
    • Элемент «constellation» может включать в себя другие элементы «constellation» с несколькими уровнями иерархии. Однако циклические определения элементов «constellation» использоваться
      не должны.
    • При наличии нескольких объектов и элементов «constellation», определенных в одном файле. доступны для печати только объекты и элементы «constellation» верхнего уровня.
    • В элементе «constellation» ориентация печати будет указана по умолчанию.

Примечание — Элементы <consteilabon> могут включать в себя несколько объектов вместе.

  • Метаданные

Элемент <metadata> необязательно может использоваться для указания дополнительной информации об определенных объектах, геометрии и материалах (см. рисунок 5). С помощью этого элемента могут указываться имя. текстовое описание, авторство, информация об авторских правах и специальные инструкции. Элемент «metadata» может быть включен в качестве дочернего элемента в <amf> с целью указания атрибутов всею файла или в качестве дочернею элемента объектов, объемов и материалов. Зарезервированные типы метаданных и их значения перечислены в А.1 (приложение А).

 

Примечание —Дополнительные сведения об объекте могут храниться с помощью элемента метаданных.
Модифицированные типы метаданных должны использовать другое имя. например:
<xamf:metadata type=’myattribute”>mydata</xamf:metadata>

  • Архивирование
    • AMF должен храниться либо в виде простого текста, либо в сжатом виде. Сжатие должно
      быть выполнено в формате ZIP-архива [3] и может быть сделано пользователем во время записи с по-
      мощью приложения и нескольких открытых библиотек сжатия, таких как Reference (4).
    • Обе версии файла — сжатая и несжатая — будут иметь расширение Используемое
      программное обеспечение должно определить, является ли файл архивным или нет. Если файл за-
      архивирован. то необходимо выполнить его декомпрессию во время чтения. Любой файл, который не
      начинается с тега <?xml>. должен быть интерпретирован как сжатый файл xml.
    • Кроме того, другие файлы — например, электронные подписи — могут быть включены в ар-
      хив Тем не менее только AMF-файл с тем же именем, что и файл архива, будет проанализирован
      программным обеспечением. Отсутствие файла с таким именем вызовет ошибку.
  • Минимальные требования для реализации
    • Минимальный AMF производителя должен генерировать сжатый файл с одного объекта.
      Один объект будет содержал» сетку, включающую только один том.
    • Минимальный AMF потребителя должен разархивировать файл с одного объекта и игнори-
      ровать любые цвет, материал, текстуру, элемент «constellation» или метаданные.

Приложение А (справочное)

Руководство по внедрению схемы AMF XML

А.1 Элементы AMF

Перечень элементов AMF представлен в таблице А.1.

Таблица А.1 —Перечень элементов AM F

Элемент

Родительский

элемент

(элементы)

Атрибут Разрешено
ли несколько
элементов?
Описание

<пх>.

<пу>,

<nz>

<normal> Нет Нормализованные х-. у-или z-компонвнты нор-
мали к поверхности в вершине.
<volume> <mesh> Да Определяет объем от установленного списка
вершин.
materialid Идентификатор материала, применяемый к
этому объему.
<lriangle> <voluTT>e> Да Определяет треугольник из грех вершин е 3D.
8 соответствии с правилом правой руки (против
часовой стрелки).

<v1>.

<v2>.

<v3>

<triangle>

<edge>

Индекс вершин, определяющих треугольник
или трать.
<texture> Да Указывает данные текстуры, которая будет ис-
пользоваться. с помощью tex-функции в формуле.
Содержит последовательность Base64 с закоди-
рованными значениями и с указанием значения
пикселей текстуры.
id Назначает для новой текстуры уникэльныйЮ.
width Ширина (размер по горизонтали, х) текстуры в
пикселях.
height Высота (боковой размер, у) текстуры в пиксе-
лях.
depth Глубина (вертикальный размер, z) текстуры в
пикселях.
Определяет, может ли текстура быть плиточной.
Значение true означает “отточная*. Любое другое
значение не подразумевает птгху. Любая тексту-
ра. отображенная за пределами задатого диапа-
зона. должна возвращать к нулевому значению.
type Кодирование данных в текстуре. В настоящее
время должны быть “оттенки серого”. В режиме
градаций серого каждый пиксель представлен од-
ним байтом в диапазоне (0—255]. Когда текстура
задается с помощью tex-функции. эти значения
преобразуются в одну точку е диапазоне [0—1]
(см А.2). Полноцветное изображение, как прави-
ло. требует три текстуры — по одному для каж-
дого из цветовых каналов. Графическое отобра-
жение прозрачности может потребовать наличия
четвертого канала.

 

Продолжение таблицы А. 1

Элемент

Родительский

эленект

(элементы)

Атрибут Разрешено
ли несколько
элементов?
Описание
<texmapi> «triangle» Her Карта вершин этого треугольника (u.v.w) с ко-
ординатами заданной текстуры. Если параметр
не ух азан, координата w должна быть равна нулю.
rtexid ID текстуры красного канала.
gtexid ID текстуры зеленого канала.
btexid Ю текстуры голубого канала.
atexid ID текстуры альфа-канала.

<utext1>.

<utex2>.

<utex3>

«texmap» Her Описание: координаты и. v и w {опционально)
вершин треугольника 1.2 и 3.

<ytext1>.

<ylex2>.

<ytex3>

<wtexl1>.

<wlex2>.

<wtex3>,

< material» «amf» Да Досгутшй материал.
id Унтесальный ID материала. Значение *0’ ID ма-
териала зарезервировано для обозначения пу-
стот или расходуемого мат-па.
«composite» «material» Да Композитный материал. Значение числовой
константы или математические функции коорди-
нат х. у. z. определяющее соотношение матери-
алов (materialid). Если значение отрицательное,
оно считается равным нулю. Дробное значение
числа должно быть округлено до 1. Если оно
равно нулю, то материал отсутствует (пустота).
Пустоты материалов не должны быть смешаны.
См. в п. А. 2 список допустимых математических
функций.
materialid Ссылка на существующий материал. Ссылка
не должна быть рекурсивной или циклической.
«constellation» «amf» Да Совокупность объектов с конкретным местопо-
ложением.
id Определяет ID нового созвездия.
«instance» «constellation» Да Совокупность объектов для печати.
objectid Ссылка на ID существующего или создаваемо-
го объекта или созвездия. Рекурсивные или ци-
клические ссылки не должны использоваться.

«dellax».

<dettay>.

«deltaz»

«instance» Нет Расстояние переноса в х-. у- или z-нвправлении,
соответственно, в системе координат объекта для
создания экземпляра объекта в текущем созвездии.

«ГХ»,

«iy>,

<rz>

«instance» Her Поворот объекта в градусах вокруг его х-. у- и
z-осей. соответственно, для создания экземпляра
объекта в текущем созвездии. Повороты должны
быть выполнены в порядке х. а затем у и г.

 

Окончание таблицы А. 1

Элемент

Родительский

элемент

(элементы}

Атрибут Разрешено
ли несколько
элементов?
Описание
<metadala> <amf>.
<object>,
<volume>.
<maleria!>,
<vertex>
Указывает дополнительную информацию об
объекте.
type Тип атрибута. Значения должны быть одним из
следующих:пате — буквенно-цифровая метка объекта, ко-
торая может быть использована интерпретатором
при взаимодействии с пользователем;
description — описание сущности;
url — ссылка на внешний источник, относящий-
ся к объекту;author — задает имя(имена) автора(ов);
company — определяет компанию, генерирую-
щий объект:producer — задает имя исходного программно-
го обеспечения и версии;revision — определяет пересмотр сущности:
tolerance — задает необходимый производ-
ственный допуск объекта в системе предприятия^
подразделения:volume — определяет общий объем объекта
е единице системы субъекта, который будет ис-
пользоваться для проверки (применяется только к
объекту и объему);

etasticmoduius — задает модуль упругости объ-
екта. в единицах СИ (только для материала);

poissonratio — определяет коэффициент Пуас-
сона материала, в единицах СИ (только для ма-
териала);

cokxjrprofile — цвет ICC пространства, исполь-
зуемый для интерпретации трех цветовых кана-
лов <г>, <д> и <Ь>. Может быть один из 9sRGB9.
9AdobeRGB9. 9WIDE-Gamut-RGB9. 9CIERGB9.
9CIELAB9 или 9CIEXYZ9 (верхний уровень только
<AML>)

А.2 Математические операции и функции

Перечень математических операций и функций представлен в таблице А.2.

Формулы, содержащие символы, которые ограничены е XML. такие как “<” и *>’. должны содержаться в пункте СОАТА (т.е. начинаться с “[CDATAJ* и заканчиваться “]]>■).

Таблица А.2 — Перечень математических операций и функций

Старшинство Оператор Определение
1 0 Скобки блока
2 А Степень
3 Умножение
3 / Деление
Логические операторы возвращают логическое значение 1 или 0. представляющий TRUE и FALSE, соответ-
ственно. Нулевое значение представляет FALSE и ненулевое значение представляет TRUE.

 

Окончание таблицы А.2

Старшиною Оператор Определение
4 + Добавить
4 Вычитание
5 = Равно
5 <. < = Меньше. чем(или равно)
5 >, >= Больше. чем(или равно)
6 and Точка пересечения (логическое И)
6 Of Союз (логическое ИЛИ)
6 хот Разница (исключающее ИЛИ)
6 1 Отрицание (логическое НЕ)
6 mod(a.b) Модуль, в том «меле частичный. Возвращает остаток от деления а на Ь.
6 sin(x) Синус, радианы
6 cos(x) Косинусы, радианы
6 tan(x) Тангенс, радианы
6 asin(x) Арксинус, радианы
6 acos(x) Арккосинус, радианы
6 atan(x) Арктангенс, радианы
6 fioor(x) Округлить до ближайшего целого
6 ced(x) Округлить до ближайшего целого
6 sqrt(x) Квадратный корень
6 ln(x) Натуральный логарифм
6 Iog10(x) Базовый десятичный логарифм
6 exp(x) Экспонента
6 abs{x) Абсолютное значение
6 max(x.y) Максимальное значение
6 min(x,y) Минимальное значение
6 rand(x.y) 2D или 3D координаты интервале [0.1] (без учета 1). Возвращаемое чис-
ло должно быть стойким (тот же номер должен воегда быть возвращен на
те же координаты). См. пример реализации в пункте А.4.
6 tex (textured.u.v.w)
tex(textureid.u.v)
Возвращает скалярное значение с плавающей запятой в диапазоне
[0.1], что интерполирует текстуру с texture«d в начало координат (и, v. w) для
ЗО-текстур и (u. v) для 20-гекстур. Если текстура имеет тип «градации се-
рого*. диапазон [0,1] соответствует диапазону [0—255] в данных текстурах.
Целые значения координат относятся к центру текстуры с первого пикселя,
имеющего индекс 1. Если значения дробное, необходимо испогъзовать ме-
тод линейной интерполяция. Если координаты выходят за пределы не пли-
точной текстуры, нулевое значение должно быть возвращено. Если тексту-
ра 2D и z координат задана, координата z должна быть проигнорирована.
Логические операторы возвращают логическое значение 1 или 0. представляющий FALSE и TRUE, соответ-
ственно. Нулевое значение представляет FALSE и ненулевое значение представляет TRUE.

 

А.З Формулы для перехода от криволинейных треугольников к прямолинейным

А.3.1 Нелинейные треугольные участки с установленными нормалями поверхности или краями касательных должны быть интерполированы из их трех вершин и шести касательных векторов и/или трех нормалей поверхности с использованием кривых интерполяции Эрмита второго порядка, как описано в пунктах А.3.2—А.3.4.

А.3.2 Для каждого из трех ребер треугольника (см. рисунок А.1 (а)) выполните шаги, описанные в пунктах А.3.2.1—А.3.2.6.

а) — обозначения, используемые для разбиения кривой:
б) — треугольники разделены рекурсивно в глубину до пяти

А.3.2.1 Если нормаль л0 в точке не была установлена явно с помощью элемента <normal>, вычислить нормаль Лф можно путем вычисления декартова произведения между двумя краевыми касательными, сходящимися в этой точке. Для этого вычисления используют краевые касательные, указанные элементом <edge>. если таковые имеются, от А.3.2.6. выполненные в предшествующем уровне рекурсии или. если ни один из этих вариантов не доступен. используют прямые линии, соединяющие конечные точки.

А.3.2.2 Повторяют действия пункта А.3.2.1 для нормали п,в точке

А.3.2.3 Если тангенс не указан явно в элементе <edge> или предыдущей рекурсии, вычисляют касательный вектор таким образом, чтобы он был перпендикулярен к нормали л0 и находился в плоскости, определяемой нормалью и вектором, соединяющим две вершины v0 и к,. Для расчета Jq используется формула (А.1), при этом

А.3.2.4 Повторяют действия пункта А.3.2.1 для тангенса (, в точке V,.

А.3.2.5 Центральную точку k0i = рассчитывают с помощью интерполяционной кривой Эрмита второго порядка, в соответствии с формулой (А.2):

fo(s) = (2s3 – 3s2 + 1)v0 + (s3 – 2s*+ sKo + (-2s3* Зв2)»/,* (s3 – s2)!,.                                                                                                                  (A.2)

А.3.2.6 Центральную касательную Iq, = рассчитывают с помощью интерполяции кривой Эрмита второго порядка, в соответствии с формулой (А.З):

Us) = (6s2 – 6s)v0 + (3s3-4s2+ Щ + (-6s2+6s)v,+ (3s2 – 2s)tf                                                                                                                      (A.3)

A.3.3 Используя полученные три новых вершины и нормали, делят треугольник на четьфв подгруппы треугольников.

А.3.4 Повторяют рекурсивно действия пункта А.3.3 для каждого треугольника на глубину до пяти (см. рисунок А.1 (б)).

А.4 Код для псевдослучайной пространственной карты (PRSM)

Цель функции случайных значений (rand) — построить псевдослучайные текстуры, которые будут использоваться в построении объекта. Случайные (х. у), случайные (х. у. z) и случайные (х. у. z. (с) возвращают постоянное случайное число в зависимости от установленной координаты. Эти функции позволяют получать 2D- или ЗD-координаты в интервале [0.1] (без учета 1). Возвращаемое число должно быть все время постоянным. Если к – 1. то второй номер может быть возвращен для этой координаты. Третий номер может быть возвращен для координаты с к » 2 и так далее.

Приложение Б (справочное)

Данные о производительности и будущие возможности

Целью данной спецификации является определение требований к AMF в части оптимального времени чтения и анализа файлов, а также его размеров в зависимости от объема содержащихся данных. В таблице Б.1 приведены статистические данные по эффективному размеру файлов в зависимости от количества треугольников, описывающих объект. Время обработки файла определяется как время, которое необходимо на чтение и анализ данных, содержащихся в файле.

Примечание — Время, необходимое на чтение и анализ файла, невелико по сравнению с общим временем, необходимым для обработки файла в процессе изготовления объекта.

Таблица Б.1 —Размер файлов

Количество

треугольников

Двоичный Формат STL
(несжатый}
Двоичный Форыаг STL
(сжатый}
AMF (несжатый) AMF (сжатый)
1 016386 49.6МЬ 25.3МЬ 205.9Mb 12.2Mb
100536 4.9МЬ 2.3 Mb 20.1Mb 1.2Mb
10592 518 К 249К 2.1Mb 129K
1036 51 К 20К 203K 12K

 

Таблица Б.2—Время записи (всекундах)

Количество

треугольников

Двоичный Формат STL
(несжатый}
Двоичный Формат STL
(сжатый)
AMF (несжатый) AMF (сжатый)
1016 388 0.372 -3.4 6.8 15.5
100 536 0.038 0.038 0.79 1.78
10 592 0.005 0.005 0.11 0,21
1 036 0.001 0.001 0.06 0.06

 

Таблица Б.З — Время чтения и анализа (в секундах)

Количество

треугольников

Двоичный Формат STL
(несжатый)
Двоичный Формат STL
(сжатый)
AMF (несжатый) AMF (сжатый)
1 016386 0.364 -1.3 6.447 6.447
100536 0.043 0.043 0.669 0.687
10592 0.005 0.005 0.107 0.107
1036 0.001 0.001 0.056 0.056

 

Таблица Б.4 — Точность (погрешность вычисляется на единичной сфере)

Количество треугольников STL AMF (с нормаляыи)
20 0.102673 0.006777
80 0.032914 0.000786

 

Окончание таблицы Б.4

Количество треугольников STL AMF {с нормалями!
320 0.008877 8.28Е-05
1280 0,001693 1.01Е-05
5120 0.000455 1.95Е-06
20480 1.13Е-04 4.51Е-07
81920 2.81 Е’05 1.11Е*07
327680 7,ОЗЕ’ов 2,75Е*0в
1 310 720 1>76Е-0в б^Е*09

УДК 774:002:006.354

ОКС 71.020

71.100.01

77.160

Ключевые слова: аддитивные технологии, аддитивные технологические процессы, базовые принципы

 

Издано и отпечатано во ФГУП «СТАНДАРТИНФОРМ». 123001 Москва. Гранатный лер.. 4.