ИСО 10303-21
Расширение имени файла |
.stp, .step, .stpnc, .p21, .210 |
---|---|
Тип интернет-СМИ |
модель/шаг, модель/шаг+xml, модель/шаг+zip, модель/шаг-xml+zip |
Магическое число | ИСО-10303-21 |
Разработано | ИСО |
Первоначальный выпуск | 1994 |
Веб-сайт | Спецификация |
STEP-файл является широко используемым [1] форма обмена данными STEP . ISO 10303 может представлять 3D-объекты в системах автоматизированного проектирования (САПР) и связанную с ними информацию. Благодаря своей ASCII- структуре STEP-файл легко читается, обычно в каждой строке содержится один экземпляр. Формат STEP-файла определен в стандарте ISO 10303-21 « Кодирование структуры обмена открытым текстом» . [2]
ISO 10303-21 определяет механизм кодирования для представления данных, соответствующих определенной схеме, на языке моделирования данных EXPRESS , указанном в ISO 10303-11 . Файл STEP также называется файлом p21 и физическим файлом STEP . Расширения файлов .stp и .step указывают, что файл содержит данные, соответствующие протоколам приложений STEP, а расширение .p21 следует использовать для всех остальных целей. [3]
Использование ISO 10303-21 не ограничивается STEP. Классы Industry Foundation и более ранний стандарт интеграции CIMSteel (CIS/2) определяют схему EXPRESS для построения данных информационного моделирования и определяют ISO 10303-21 в качестве кодировки обмена .
История
[ редактировать ]Некоторые детали, на которые следует обратить внимание:
- В первом издании ISO 10303-21:1994 были некоторые ошибки, которые были исправлены техническим исправлением. Поэтому пользователям рекомендуется вместо этого изучить второе издание (см. ниже).
- Второе издание, ISO 10303-21:2002, включало исправления и расширения для нескольких разделов данных.
- В третье издание, ISO 10303-21:2016, добавлены разделы привязки, ссылки и подписи для поддержки внешних ссылок, поддержки сжатых структур обмена в ZIP-архиве, цифровых подписей и кодировки символов UTF-8. [4]
- Часть 21 определила два класса соответствия. Они отличаются только тем, как кодировать сложные экземпляры сущностей.
- Всегда используется класс соответствия 1, обеспечивающий так называемое внутреннее сопоставление , которое более компактно.
- Класс соответствия 2, который на практике не используется, всегда обеспечивает внешнее сопоставление . Теоретически это обеспечит лучшую совместимость точек доступа, поскольку постпроцессор может знать, как обрабатывать некоторые супертипы, но может не знать указанные подтипы.
- В 1-м издании части 21 предусмотрено использование так называемых коротких имен , которые во 2-м издании являются необязательными. Однако на практике короткие имена используются редко.
- Второе издание позволяет использовать несколько разделов данных. Однако на практике в большинстве реализаций используется только один раздел данных (кодировка 1-го издания).
Строительные блоки ISO 10303-21
[ редактировать ]Пример
[ редактировать ]Типичный пример выглядит так:
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(
/* description */ ('A minimal AP214 example with a single part'),
/* implementation_level */ '2;1');
FILE_NAME(
/* name */ 'demo',
/* time_stamp */ '2003-12-27T11:57:53',
/* author */ ('Lothar Klein'),
/* organization */ ('LKSoft'),
/* preprocessor_version */ ' ',
/* originating_system */ 'IDA-STEP',
/* authorization */ ' ');
FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 2 1 1}'));
ENDSEC;
DATA;
#10=ORGANIZATION('O0001','LKSoft','company');
#11=PRODUCT_DEFINITION_CONTEXT('part definition',#12,'manufacturing');
#12=APPLICATION_CONTEXT('mechanical design');
#13=APPLICATION_PROTOCOL_DEFINITION('','automotive_design',2003,#12);
#14=PRODUCT_DEFINITION('0',$,#15,#11);
#15=PRODUCT_DEFINITION_FORMATION('1',$,#16);
#16=PRODUCT('A0001','Test Part 1','',(#18));
#17=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#16));
#18=PRODUCT_CONTEXT('',#12,'');
#19=APPLIED_ORGANIZATION_ASSIGNMENT(#10,#20,(#16));
#20=ORGANIZATION_ROLE('id owner');
ENDSEC;
END-ISO-10303-21;
ЗАГОЛОВОК раздела
[ редактировать ]Как видно из приведенного выше примера, файл разделен на два раздела после начального ключевого слова ISO-10303-21; :
Раздел HEADER имеет фиксированную структуру, состоящую из 3-6 групп в заданном порядке. За исключением полей данных time_stamp и FILE_SCHEMA, все поля могут содержать пустые строки.
- ФАЙЛ_ОПИСАНИЕ
- описание
- уровень_реализации . Версия и параметр соответствия этого файла. Возможные версии: «1» для исходного стандарта 1994 года, «2» для технического исправления 1995 года и «3» для второго издания. Вариантом соответствия является либо «1» для внутреннего, либо «2» для внешнего сопоставления экземпляров сложных сущностей. Часто здесь можно встретить значение __'2;1'__. Значение «2;2», обеспечивающее внешнее сопоставление, также возможно, но используется очень редко. Значения «3;1» и «3;2» обозначают расширенные файлы STEP, определенные в стандарте 2001 года, с несколькими разделами DATA, несколькими схемами и поддержкой FILE_POPULATION.
- ИМЯ ФАЙЛА
- название этой структуры обмена. Оно может соответствовать имени файла в файловой системе или отражать данные в этом файле. Строгих правил использования этого поля не существует.
- time_stamp указывает время создания этого файла. Время указывается в международном формате времени ISO 8601 , например 2003-12-27T11:57:53 для 27 декабря 2003 года, без 2 минут до полудня.
- автор имя и почтовый адрес человека, создающего данную структуру обмена
- организация организация, к которой принадлежит лицо
- preprocessor_version — имя системы и ее версия, создающая этот STEP-файл.
- originating_system — имя системы и ее версия, которая изначально создала информацию, содержащуюся в этом STEP-файле.
- авторизация имя и почтовый адрес лица, авторизовавшего этот файл.
- ФАЙЛ_СХЕМА. Указывает одну или несколько экспресс- схем, управляющих информацией в разделах данных. Для файлов первого издания здесь может быть указана только одна схема EXPRESS вместе с необязательным идентификатором объекта ASN.1 версии схемы. В файлах второй редакции может быть указано несколько схем EXPRESS.
Последние три группы заголовков действительны только в файлах второго издания.
- FILE_POPULATION, указывающий на допустимую совокупность (набор экземпляров объектов), соответствующую схемам EXPRESS. Это делается путем сбора данных из нескольких data_sections и ссылочных экземпляров из других разделов данных.
- управляющая_схема — схема EXPRESS, к которой принадлежит указанная совокупность и с помощью которой она может быть проверена.
- define_method , чтобы выяснить, какие экземпляры принадлежат популяции. Предопределены три метода: SECTION_BOUNDARY, INCLUDE_ALL_COMPATIBLE и INCLUDE_REFERENCED.
- Governed_sections — разделы данных, экземпляры сущностей которых полностью принадлежат совокупности.
- Концепция FILE_POPULATION очень близка к Schema_instance SDAI. К сожалению, в процессе стандартизации не удалось прийти к соглашению об объединении этих понятий. Поэтому JSDAI добавляет к FILE_POPULATION дополнительные атрибуты в виде интеллектуальных комментариев, чтобы покрыть всю недостающую информацию из Schema_instance. Это поддерживается как для импорта, так и для экспорта.
- SECTION_LANGUAGE позволяет назначить язык по умолчанию для всех или для определенного раздела данных. Это необходимо для тех схем Express, которые не предоставляют возможности указать, на каком языке задаются строковые атрибуты сущностей, такие как имя и описание.
- SECTION_CONTEXT предоставляет возможность указать дополнительную контекстную информацию для всех или отдельных разделов данных. Это можно использовать, например, для STEP-AP, чтобы указать, какой класс соответствия охватывает конкретный раздел данных.
Раздел ДАННЫЕ
[ редактировать ]Раздел DATA содержит данные приложения в соответствии с одной конкретной экспресс-схемой. Кодирование этих данных следует некоторым простым принципам.
- Имя экземпляра: каждому экземпляру объекта в структуре обмена присваивается уникальное имя в формате «#1234». Имя экземпляра должно состоять из положительного числа (>0) и обычно меньше 2. 63 . Имя экземпляра действительно только локально в файле STEP. Если тот же контент снова экспортируется из системы, имена экземпляров могут быть разными для одних и тех же экземпляров. Имя экземпляра также используется для ссылки на другие экземпляры сущности через значения атрибутов или агрегатные элементы. Экземпляр, на который ссылаются, может быть определен до или после текущего экземпляра.
- Экземпляры типов данных одной сущности представляются путем написания имени сущности заглавными буквами, за которым следуют значения атрибутов в определенном порядке в круглых скобках. См., например, «#16=PRODUCT(...)» выше.
- Экземпляры типов данных сложных объектов представлены в файле STEP с использованием внутреннего или внешнего сопоставления.
- Внешнее сопоставление всегда следует использовать, если экземпляр сложного объекта состоит из более чем одного листового объекта. В этом случае все значения экземпляра одного объекта задаются независимо друг от друга в алфавитном порядке, как определено выше, при этом все значения объекта сгруппированы в круглых скобках.
- Внутреннее сопоставление используется по умолчанию для варианта соответствия 1, когда экземпляр сложного объекта состоит только из одного конечного объекта. Кодировка аналогична кодировке одного экземпляра сущности с дополнительным порядком, заданным определением подтипа.
- Сопоставление значений атрибутов:
- Сопоставляются только явные атрибуты. Обратные, производные и переобъявленные атрибуты не указаны, поскольку их значения можно вывести из других.
- Значения неустановленных атрибутов обозначаются как " $ ".
- Явные атрибуты, которые были повторно объявлены как производные в подтипе, кодируются как « * » в позиции атрибута супертипа.
- Сопоставление других типов данных:
- Перечисления, логические значения и логические значения задаются заглавными буквами с начальной и конечной точкой, например « .TRUE. ».
- Строковые значения приведены в [ нужны разъяснения ] . Для символов с кодом больше 126 используется специальная кодировка. Поддерживаются наборы символов, определенные в ISO 8859 и 10646. Обратите внимание, что типичные 8-битные (например, западноевропейские) или 16-битные (Юникод) наборы символов нельзя напрямую использовать для строк STEP-файла. Их приходится расшифровывать особым образом.
- Целые числа и действительные значения используются так же, как и в типичных языках программирования.
- Двоичные значения (последовательности битов) кодируются в шестнадцатеричном формате и заключаются в двойные кавычки, при этом первый символ указывает количество неиспользуемых битов (0, 1, 2 или 3), за которым следует шестнадцатеричное кодирование данных в верхнем регистре. Важно отметить, что все двоичное значение кодируется как одно шестнадцатеричное число с битами старшего порядка в первом шестнадцатеричном символе и битами младшего порядка в последнем.
- Элементы агрегатов (SET, BAG, LIST, ARRAY) даны в круглых скобках, разделенных знаком " , ".
- Необходимо проявлять осторожность при выборе типов данных на основе определенных типов данных. Здесь также отображается имя определенного типа данных.
- См. также «Сопоставление Express с Java» для получения более подробной информации. [ нужны разъяснения ]
Критика
[ редактировать ]Возможно, единственным преимуществом файлов STEP является то, что они широко используются во многих программах САПР. С другой стороны, его формат и особенно язык моделирования данных EXPRESS имеют несколько недостатков: [ мнение ]
- спецификация не находится в свободном доступе (за нее нужно платить)
- невозможно последовательно прочитать файл STEP. Сущности могут располагаться в любом порядке и могут ссылаться на другие сущности в файле вперед и назад (см. сущность № 14 в примере выше). Поэтому перед анализом весь файл необходимо прочитать в памяти и маркировать. [ нужна ссылка ]
- формат неэффективен для хранения. Например, для назначения цветового кода RGB краю требуется как минимум 6 других объектов, а для указания преобразования требуется как минимум 5 дополнительных объектов (PLANE, AXIS2_PLACEMENT_3D, CARTESIAN_POINT и 2 объекта DIRECTION). [ нужна ссылка ]
- формат не четко определен. Например, один и тот же треугольник может быть закодирован в файле STEP разными способами (с помощью FACET_BREP, ADVANCED_FACE, POLY_LOOP, EDGE_LOOP, как MANIFOLD_SOLID_REPRESENTATION или как SHELL_BASED_REPRESENTATION и т. д.). Импортеру необходимо распознавать все варианты, чтобы последовательно читать файл STEP. Большая часть программного обеспечения САПР не поддерживает полный набор записей STEP и поэтому ограничена определенным подмножеством объектов STEP. Например, база знаний Autodesk, список поддерживаемых объектов STEP . [ нужна ссылка ]
- В результате большинство программ САПР имеют своего рода функцию «восстановления геометрических данных после импорта», которая может работать, а может и не работать. [ нужна ссылка ]
См. также
[ редактировать ]- Классы отраслевого фундамента (IFC)
- Граничное представление
- ИГЕС
- STL (формат файла)
- DXF-формат
- Open CASCADE Technology — библиотека STEP с открытым исходным кодом, которая использовалась для создания FreeCAD.
Внешние ссылки
[ редактировать ]- ANSI ISO-10303-21 — Официальная спецификация ANSI.
- Анализатор и программа просмотра файлов STEP — анализ и просмотр файла STEP ISO 10303, часть 21.
- Онлайн-просмотрщик файлов STEP
- Программы просмотра файлов STEP
- STEPcode — преемник библиотеки классов STEP NIST, официальной библиотеки C++ для создания импортеров и экспортеров файлов STEP.
Ссылки
[ редактировать ]- ^ «STEP-файл, ISO 10303-21» . Библиотека Конгресса . 3 января 2017 г.
- ^ ISO 10303-21:2002 Системы промышленной автоматизации и интеграция. Представление данных о продукции и обмен ими. Часть 21. Методы реализации. Открытое текстовое кодирование структуры обмена.
- ^ Секретарь ISO TC184/SC4 «Совокупный список резолюций» Резолюция 583 (Штутгарт, Германия, – июнь 2003 г.) «Регистрация MIME-типов SC4», [1]
- ^ ИСО 10303-21:2016. Системы промышленной автоматизации и интеграция. Представление данных о продукции и обмен ими. Часть 21. Методы реализации. Открытое текстовое кодирование структуры обмена [2]