Данная информация обеспечивает универсальную идентификацию категории представлений basic_geometry и определяет логическое имя ее представлений.
Примечание. Согласно D.3.3.4 и D.3.4.1 приложения D ИСО 13584-42 необходимо, чтобы код поставщика, установленный в ИСО 13584-26, использовался для обмена данными в ИСО 13584.
Функциональный класс представлений характеризуют с использованием управляющих переменных представлений, универсальная идентификация которых и соответствующие типы данных указаны в таблице 2 и на рисунке 1.
Таблица 2
Управляющие переменные представлений функционального класса
представлений basic_geometry
???????????????????????????????????????????????????????????????????????????
? Код ? Версия ? Значение ? Соответствующая метка ?
???????????????????????????????????????????????????????????????????????????
'geometry_level' '001' 1 '2D'
2
![]() ???????????????????????????????????????????????????????????????????????????
'detail_level' '001' 1 'simplified'
2
![]() ???????????????????????????????????????????????????????????????????????????
'side' '001' 0 'null'
1
2
3
???????????????????????????????????????????????????????????????????????????
'variant' '001' 0 'null'
1 'external_shape'
2 'section'
???????????????????????????????????????????????????????????????????????????
'unreg_variant' '001' 0 'null' в зависимости от поставщика
1 ... n данных
???????????????????????????????????????????????????????????????????????????
![]() представления стороны
В этом подразделе установлены концептуальные требования, которым должна соответствовать каждая форма, связанная с библиотечной деталью.
4.3.1. Уровни геометрии
Уровень геометрии 1 соответствует двумерному геометрическому представлению, которое может быть определено по API ИСО 13584-31. Данный уровень геометрии определяет форму двумерного представления, которая состоит из точек, линий, кривых и контуров, которые могут быть непрозрачными.
Уровень геометрии 2 соответствует трехмерному представлению каркаса, которое может быть определено по API ИСО 13584-31. Данный уровень геометрии определяет форму трехмерного представления, которая состоит из точек, линий и кривых, края которых устанавливают форму.
Уровень геометрии 3 соответствует трехмерному представлению, которое может быть определено по API ИСО 13584-31. Данная геометрия определяет представление формы, которая состоит из точек, линий, кривых и сплошных конструкций.
4.3.2. Уровни деталей
Уровень деталей 1 устанавливает, что представление должно включать в себя, как минимум, указание базовой системы координат библиотечной детали.
Уровень деталей 2 устанавливает, что представление должно включать в себя, как минимум, все геометрические элементы, необходимые для определения пространственной связи между библиотечной деталью и средой, в которой деталь должна быть установлена.
Уровень деталей 3 устанавливает, что представление должно включать в себя, как минимум, все его геометрические элементы, предусмотренные для обнаружения перекрытий (в двумерном представлении) или столкновений (в трехмерном представлении), и должно быть предусмотрено представление, которое используют при проектировании деталей соответствующего изделия.
4.3.3. Сторона
На рисунке 1 показано значение управляющей переменной представления стороны и ее связи с объектом geometric_representation_context библиотечной детали.
На этом рисунке показано, как определяется сторона в соответствии с базовой системой координат библиотечной детали.
Примечание. Значение управляющей переменной представления стороны (side) должно быть равно 0, если управляющая переменная уровня геометрии определяет трехмерное представление. Данное ограничение на соответствующие управляющие переменные view_control_variable_ranges формально представлено в объекте ISO 13584_101_side_and_geometry_level_compatibility_rule, включенном в схему на языке EXPRESS согласно 6.3.2.1.
4.3.4. Варианты
Вариант 0 устанавливает, что незарегистрированный вариант определен.
Примечание. Требования к незарегистрированному варианту приведены в 4.3.5.
Вариант 1 устанавливает, что представленная форма является внешней формой библиотечной детали.
Вариант 2 устанавливает, что представленная форма включает в себя, как минимум, поперечное сечение.
Варианты 3...n: устанавливают, что данные уровни варианта зарезервированы для использования в будущем.
Примечание. В разных классах соответствия, установленных в настоящем стандарте при определении сущности (объекта) view_control_variable_range варианта стандартизированного геометрического представления, вариант 1 является обязательным. Это ограничение формально установлено в сущности ISO13584_101_variant_and_unregistered_variant_compatibility_rule, включенной в схему на языке EXPRESS согласно 6.3.2.2.
Незарегистрированный вариант 0 устанавливает, что стандартизированный вариант определен.
Незарегистрированный вариант 1 устанавливает поставщика данных библиотеки в зависимости от уровня варианта.
Примечание. В разных классах соответствия, определенных в настоящем стандарте, вариант 0 и незарегистрированный вариант 0 являются взаимоисключающими вариантами. Это ограничение формально выражается на уровне соответствующей сущности view_control_variable_ranges в сущности ISO13584_101_variant_and_unregistered_variant_compatibility_rule, включенной в схему на языке EXPRESS согласно 6.3.2.2.
В этом разделе установлены требования к внешним файлам библиотеки, совместимым с классами соответствия 1, 2 и 3, соответствующим требованиям настоящего стандарта. Структуру и формат внешних файлов библиотеки, совместимых с классами соответствия 1E, 2E и 3E, устанавливают путем заключения соответствующего соглашения между отправителем и получателем. В соглашении должны быть установлены значения атрибутов экземпляра сущности program_protocol, которую используют для описания структуры и формата.
Программный блок (модуль) на языке FORTRAN должен быть подпрограммой.
Примечание. Программный блок на языке FORTRAN может не быть ПРОГРАММОЙ или ФУНКЦИЕЙ.
Имя программного блока на языке FORTRAN должно иметь следующую структуру:
'F' + encoded_supplier_code + '_' + <program_name>
Код encoded_supplier_code должен быть кодом поставщика данных библиотеки согласно ИСО 13584-26, к которому применяют функцию кодирования. Функция encode предназначена для замены каждого знака, который не разрешается использовать в именах на языке программирования FORTRAN, соответствующим кодированным знаком, который соответствует знаку "_" последовательности, за которым следует код знака (состоящий из двух знаков), в соответствии с набором знаков ИСО/МЭК 10646-1. Кроме того, если кодируемым знаком является знак "_", то и в результате будет "_".
encoded_supplier_code кодируется с использованием следующей функции кодирования:
*)
FUNCTION encode(s: STRING): STRING;
LOCAL
strtmp: STRING;
lower_cases: LIST OF STRING :=
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
upper_cases: LIST OF STRING :=
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
numerals: LIST OF STRING :=
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
underscore: STRING := '_';
allowed_characters: LIST OF STRING :=
lower_cases + upper_cases + numerals + underscore;
result: STRING := ";
END_LOCAL;
REPEAT i := 1 TO LENGTH(s);
IF NOT(s[i] IN allowed_characters)
THEN
strtmp := FORMAT(icode(s[i]), '02I');
result := result + '_' + strtmp;
ELSE
IF (s[i] = '_')
THEN
result := result + '_' + s[i];
ELSE
result := result + s[i];
END_IF;
END_IF;
END_REPEAT;
RETURN (result);
END_FUNCTION;
(*
Примечание 1. Функция icode возвращает код знаков по ИСО 10646-1, интерпретируемых как целое значение.
Примечание 2. Функция icode не установлена в языке EXPRESS, поскольку ограничения языка EXPRESS могут привести к тому, что такая функция будет очень длинной.
Пример - Код поставщика 0112/1///13584_101_1 кодируют как 0112_2F1_2F_2F_2F13584_101_1. '2F', и он соответствует коду знака 'f' в наборе знаков по ИСО/МЭК 10646-1.
Поставщик данных библиотеки должен использовать код поставщика, который отображается строкой длины, равной 31 знаку или меньше.
Примечание 3. Размер строки, получающийся в результате кодирования, может превышать допустимую длину строки для определения имени FORTRAN SUBROUTINE (ограниченную 31 знаком). Поэтому поставщик данных библиотеки должен зарегистрировать новый код поставщика для создания имени FORTRAN SUBROUTINE.
5.2.1. Исключенные операторы
На языке программирования FORTRAN не допускается использование следующих операторов:
- BACKSPACE,
- BLOCK DATA,
- CLOSE,
- COMMON,
- DATA,
- ENDFILE,
- ENTRY,
- EQUIVALENCE,
- FORMAT,
- INQUIRE,
- OPEN,
- PROGRAM,
- READ,
- REWIND,
- SAVE,
- STOP,
- WRITE.
Примечание. Программные блоки на языке FORTRAN в библиотеке деталей предназначены для прогона программ в разных средах с использованием разных систем CAD и разных операционных методов. Для обеспечения максимальной мобильности этих программ не допускается использовать вышеуказанные операторы.
Пример - Компиляция, привязка, интерпретация и трансляция являются операционными методами.
5.2.2. Устаревшие функции
Следующие функции языка программирования FORTRAN не допускается использовать при создании новых программ, так как они являются устаревшими:
- Arithmetic-IF,
- Alternate return from subroutine,
- ASSIGN,
- Assigned FORMAT specifier,
- Assigned GOTO,
- DO loop control variables that are not integers,
- DO loop not ending on CONTINUE,
- Branch to END IF from outside IF block,
- H edit descriptor,
- PAUSE.
Примечание. На настоящий момент эти функции используют, но в следующем издании ИСО 1539 они будут исключены.
5.2.3. Обмен программными блоками на языке программирования FORTRAN
В одном внешнем файле библиотеки должна содержаться только одна подпрограмма на языке программирования FORTRAN (FORTRAN SUBROUTINE), которую используют для создания представления библиотечной детали. Дополнительные подпрограммы, вызываемые из подпрограммы (SUBROUTINE), могут находиться в том же внешнем файле библиотеки.
5.2.4. Кодирование знаков
Внешний файл библиотеки должен содержать 26 прописных и строчных букв английского алфавита, 10 арабских цифр (0 - 9), символ подчеркивания "_" и специальные символы, указанные в таблице 3, закодированные в соответствии с требованиями ИСО 8859-1.
Таблица 3
Специальные знаки языка программирования FORTRAN
??????????????????????????????????????????????????????????????????
? Знак ? Название ?
??????????????????????????????????????????????????????????????????
? = ? Равно ?
? + ? Плюс ?
? - ? Дефис; минус ?
? * ? Звездочка ?
? / ? Косая черта ?
? ( ? Левая круглая скобка ?
? ) ? Правая круглая скобка ?
? , ? Запятая ?
? . ? Точка ?
? $ ? Доллар ?
? ' ? Апостроф ?
? : ? Двоеточие ?
? ? Пробел ?
? ! ? Восклицательный знак ?
? " ? Кавычки ?
? % ? Процент ?
? & ? Амперсанд ?
? ; ? Точка с запятой ?
? < ? Меньше чем ?
? > ? Больше чем ?
? ? ? Вопросительный знак ?
??????????????????????????????????????????????????????????????????
Подпрограмма на языке программирования FORTRAN должна быть в исходном или объектном коде, если соответствующий экземпляр типа данных сущности library является сущностью типа данных library_in_standard_format.
Примечание. library и library_in_standard_format определены в ИСО 13584-24.
Настоящий стандарт устанавливает шесть классов соответствия.
Для классов соответствия 1 - 3 формат внешних файлов должен соответствовать требованиям раздела 5. Для классов соответствия 1E - 3E формат внешних файлов устанавливают путем заключения отдельного соглашения между отправителем и получателем.
Реализация, подтверждающая соответствие классу соответствия по настоящему стандарту, должна поддерживать словарные статьи, указанные в разделе 4, а также должна идентифицировать любые данные, удовлетворяющие ограничениям, установленным в 6.3.
Реализация, подтверждающая соответствие классу соответствия 1, 2 или 3, также должна включать в себя ресурсы реализации, установленные в 6.1, и должна обрабатывать внешние файлы, совместимые с требованиями раздела 5.
Реализация, подтверждающая соответствие классу соответствия 1E, 2E или 3E, также должна обрабатывать внешние файлы, связанные с сущностью program_protocol, которая поддерживается реализацией.
Примечание. Требования к сущности program_protocol установлены в ИСО 13584-24.
Настоящий раздел устанавливает требования к приемной системе.
Примечание 1. Для классов соответствия 1, 2 и 3 формат файла является связующим звеном ИСО 13584-31 и языка программирования FORTRAN. Для классов соответствия 1E, 2E и 3E формат файла устанавливают путем заключения отдельного соглашения между отправителем и получателем.
Примечание 2. Отдельный интерфейс, используемый для обработки внешних файлов библиотеки, устанавливают в рамках файла доставки библиотеки, который ссылается на них, с помощью сущности external_file_protocol.
Используют следующие требования к ресурсам реализации:
- реализации, подтверждающие соответствие классу соответствия 1, должны поддерживать уровень 1 геометрического программного интерфейса API в соответствии с требованиями 6.1.1 ИСО 13584-31. Этот интерфейс соответствует созданию представления basic_geometry для уровня 1 сущности geometry_level;
- реализации, подтверждающие соответствие классу соответствия 2, должны поддерживать уровень 2 геометрического программного интерфейса API в соответствии с требованиями 6.1.1 ИСО 13584-31. Этот интерфейс соответствует созданию представления basic_geometry для уровней 1 и 2 сущности geometry_levels;
- реализации, подтверждающие соответствие классу соответствия 3, должны поддерживать уровень 3 геометрического программного интерфейса API в соответствии с требованиями 6.1.1 ИСО 13584-31. Этот интерфейс соответствует созданию представления basic_geometry для уровней 1, 2 и 3 сущности geometry_levels;
- для класса соответствия 1E необходима поддержка геометрического интерфейса, способного создать представление basic_geometry для уровня 1 сущности geometry_level;
- для класса соответствия 2E необходима поддержка геометрического интерфейса, способного создать представление basic_geometry для уровней 1 и 2 сущности geometry_levels;
- для класса соответствия 3E необходима поддержка геометрического интерфейса, способного создать представление basic_geometry для уровней 1, 2 и 3 сущности geometry_levels.
Примечание 3. Новые классы соответствия будут установлены в Изменении к настоящему стандарту, если будут определены новые APIs или взаимосвязи ИСО 13584-31 с новым языком.
Метод реализации файла доставки библиотечных данных, ссылающегося на внешние файлы библиотеки, совместимые с требованиями настоящего стандарта, следует устанавливать с использованием интегрированной информационной модели библиотеки, на которую ссылается файл доставки библиотечных данных.
Метод реализации внешних файлов библиотеки, совместимых с классами соответствия 1, 2 и 3 настоящего стандарта, установлен в разделе 5. Методы реализации внешних файлов библиотеки, совместимых с классами соответствия 1E, 2E и 3E, устанавливают путем заключения соответствующего отдельного соглашения между отправителем и получателем.
Примечание 1. Настоящий стандарт не распространяется на идентификацию файла доставки библиотечных данных и среду, используемую для этого файла, а также на внешние файлы библиотеки, на которые ссылается файл доставки библиотечных данных, требования к которым устанавливают путем заключения отдельного соглашения между отправителем и получателем.
6.3. Ограничения к файлу доставки библиотечных данных для связи с рассматриваемым протоколом обмена представлениями
В этом подразделе устанавливаются значения экземпляра view_exchange_protocol_identification, которые допускается использовать в файле доставки библиотечных данных для ссылки на протокол обмена представлениями, определенный в настоящем стандарте.
Примечание 1. Требования к сущности view_exchange_protocol_identification установлены в ИСО 13584-24.
Допустимые значения приведены в таблице 4 и в трех схемах на языке EXPRESS. В таблице 4 указаны допустимые значения сущности view_exchange_protocol_identification.name и сущности view_exchange_protocol_identification.application для каждого класса соответствия.
Схемы ISO13584_101_cc_1_or_2_or_3_schema и ISO13584_101_cc_1E_or_2E_or_3E_schema содержат общее правило, устанавливающее требования и определяющее допустимые значения для других атрибутов сущности view_exchange_protocol_identification, которую используют для ссылки на протокол обмена представлениями, определенный в настоящем стандарте.
Сущность ISO13584_101_vcv_range_constraints_schema содержит два правила, устанавливающие ограничения к сущности abstract_functional_model_class, которая ссылается на протокол обмена представлениями, установленный в настоящем стандарте.
Примечание 2. Требования к сущности abstract_functional_model_class установлены в ИСО 13584.
Вышеуказанные правила должны выполняться любым файлом доставки библиотечных данных, который ссылается на протокол обмена представлениями, установленный в настоящем стандарте в любом из его классов соответствия.
Если на протокол обмена представлениями, определенный в настоящем стандарте, ссылается файл доставки библиотечных данных, эти правила должны быть добавлены в схему на языке EXPRESS, устанавливающую требования к интегрированной информационной модели библиотеки (LIIM), на которые ссылается файл доставки библиотечных данных, использующий следующий процесс.
Предположим, что файл доставки библиотечных данных ссылается на интегрированную информационную модель библиотеки "L", требования к которой установлены в уникальной схеме без внешних ссылок, обозначенной "L_library_implicit_schema", и в протоколе обмена представлениями, определенном в настоящем стандарте.
Примечание 3. Схему на языке EXPRESS, устанавливающую требования без внешних ссылок, часто называют схемой длинных форм.
Пример 1 - Сущность ISO13584_f_m_iim_library_implicit_schema является схемой на языке EXPRESS, устанавливающей требование LIIM 24-2 с помощью одной схемы без внешних ссылок.
Примечание 4. Требования к сущности ISO13584_f_m_iim_library_implicit_schema приведены в приложении G ИСО 13584-24. Этот файл доставки библиотечных данных должен соответствовать требованиям схемы, определяемым следующим образом:
- Проверьте, что все объекты, на которые даны ссылки в схемах ISO13584_101_cc_1_or_2_or_3_schema, ISO13584_101_cc_1E_or_2E_or_3E_schema и ISO13584_101_vcv_range_constraints_schema, существуют в сущности L_library_implicit_schema, в противном случае ссылка на интегрированную информационную модель библиотеки "L" и протокол обмена представлениями в настоящем стандарте не допускаются.
Примечание 5. Информационная модель файла доставки библиотечных данных и сущности, входящие в нее, устанавливаются интегрированной информационной моделью библиотечных данных. В протокол обмена представлениями могут быть добавлены только ограничения.
Пример 2 - Протокол обмена представлениями, установленный в настоящем стандарте, ссылается на сущность abstract_functional_model_class. Этот протокол не может быть использован с сущностью ISO13584_g_m_iim_library_implicit_schema. Протокол устанавливает требование LIIM 24-1 и не ссылается на логическую структуру ресурсов на языке EXPRESS для моделирования функциональных моделей.
Примечание 6. Требования к сущности ISO13584_g_m_iim_library_implicit_schema приведены в приложении C ИСО 13584-24:
- Замените в схеме ISO13584_101_cc_1_or_2_or_3_schema и в схеме ISO13584_101_cc_1E_or_2E_or_3E_schema строку 'ISO13584_EXTERNAL_FILE_SCHEMA' строкой 'L_library_implicit_schema', набранную прописными буквами.
Пример 3 - Если интегрированная информационная модель библиотечных данных "L" является LIIM-24-2, определенной в ИСО 13584-24, следует заменить строку 'ISO13584_EXTERNAL_FILE_SCHEMA' на строку 'ISO13584_F_M_IIM_LIBRARY_IMPLICIT_SCHEMA'.
- Добавьте в сущность L_library_implicit_schema все функции и правила, установленные в схемах ISO13584_101_cc_1_or_2_or_3_schema, ISO13584_101_сс_1E_or_2E_or_3E_schema и ISO13584_101_vcv_range_constraints_schema.
Примечание 7. Результатом вышеуказанных действий является добавление правил ISO13584_101_side_and_geometry_level_compatibility_rule, ISO13584_101_variant_and_unregistered_variant_compatibility_rule, ISO13584_101_allowed_reference_to_conformance_class_1_2_and_3_rule и ISO13584_101_allowed_reference_to_conformance_class_1E_2E_and_3E_rule в схему L_library_implicit_schema вместе со всеми функциями, требуемыми для выполнения этих правил.
Примечание 8. Имена функций и правила, установленные в настоящем стандарте, должны быть в начале строки "ISO13584_101", чтобы избежать конфликтов при их совпадении, когда один и тот же файл доставки библиотечных данных ссылается на несколько протоколов обмена представлениями.
Примечание 9. Файл доставки библиотечных данных, ссылающийся на интегрированную информационную модель библиотеки "L'", требования которой устанавливаются в уникальной схеме без внешних ссылок, обозначенной "L_library_implicit_schema", и протоколе обмена представлениями, установленном в настоящем стандарте, могут также быть обменены с помощью сущности L_library_implicit_schema, установленной в стандарте комплекса ИСО 13584, который определяет требования к интегрированной информационной модели библиотечных данных "L" без любых последующих изменений. В этом случае требования, установленные в настоящем стандарте, не включают в схему обмена. Их проверяют перед обменом файла доставки библиотечных данных и по его завершении.
Данный листинг схем ISO13584_101_cc_1_or_2_or_3_schema, ISO13584_101_cc_1E_or_2E_or_3E_schema и ISO13584_101_vcv_range_constraints_schema в форме компьютерной интерпретации приведен в сети Интернет по адресу: /template/go.php?url=https://www.tc184-sc4.org/EXPRESS/
При возникновении каких-либо трудностей с доступом на сайт необходимо связаться с Центральным Секретариатом ИСО или секретариатом ИСО ТК 184/ПК4 по адресу: sc4sec@cme.nist.gov.
Примечание 10. Вышеуказанная информация, представленная в компьютерно-интерпретируемой форме, является нормативной ссылкой.
Примечание 11. Описания ошибок программного кода на языке EXPRESS, идентифицированных в процессе проведения голосования, и поправок к ним, рекомендуемых для реализаций PLIB, приведены в сети Интернет по адресу:
/template/go.php?url=https://www.lisi.ensma.fr/ftp/pub/PLIB_release_notes/Part101/Part101-IS/
Значения сущностей view_exchange_protocol_identification.name и view_exchange_protocol_identification.application, которые могут использоваться в сущности view_exchange_protocol_identification для ссылки на протокол обмена представлениями, определенный в настоящем стандарте, в любом из его классов соответствия, приведены в таблице 4.
Таблица 4
???????????????????????????????????????????????????????????????????????????
?Класс соответствия? Обязательное значение ? Обязательное значение ?
? ? view_exchange_protocol_ ? view_exchange_protocol_ ?
? ? identification.name ?identification.application?
???????????????????????????????????????????????????????????????????????????
? 1 ? 'ISO_13584_101' ? '1' ?
???????????????????????????????????????????????????????????????????????????
? 2 ? 'ISO_13584_101' ? '2' ?
? 3 ? 'ISO_13584_101' ? '3' ?
? 1E ? 'ISO_13584_101' ? '1E' ?
? 2E ? 'ISO_13584_101' ? '2E' ?
???????????????????????????????????????????????????????????????????????????
? 3E ? 'ISO_13584_101' ? '3E' ?
???????????????????????????????????????????????????????????????????????????
Значения экземпляра view_control_variable_range, допустимые для использования в файле доставки библиотечных данных для ссылки на функциональный класс представлений basic_geometry, определенный в настоящем стандарте, в любом из его классов соответствия должны учитывать ограничения, установленные в следующей схеме на языке EXPRESS.
Спецификация на языке EXPRESS:
*)
SCHEMA ISO13584_101_vcv_range_constraints_schema;
REFERENCE FROM ISO13584_extended_dictionary_schema(
abstract_functional_model_class,
view_control_variable_range);
(*
Примечание. Данная схема приведена в ISO13584_extended_dictionary_schema согласно ИСО 13584-24.
Правило ISO13584_101_side_and_geometry_level_compatibility_rule устанавливает требование, в соответствии с которым сущность abstract_functional_model_classes, ссылающаяся на категорию представления базовой геометрии с использованием атрибута created_view, всегда должна быть в диапазоне v_c_v_range, а именно:
- в случае двумерного геометрического представления в диапазоне, который содержит или нет нулевое значение для управляющей переменной представления сторон.
Примечание. Примером является двумерное изометрическое представление, управляющая переменная представления сторон которого имеет нулевое значение;
- в случае трехмерного геометрического представления в диапазоне, содержащем только нулевое значение для управляющей переменной представления сторон, и
- в случае двумерного или трехмерного геометрического представления предусматривают разрешенные значения сторон вместе с нулевым значением для управляющей переменной представления сторон.
Пример - Допускается применять следующие диапазоны view_control_variable_ranges уровня геометрии и сторон:
Не допускается применять следующие диапазоны view_control_variable_ranges уровня геометрии и сторон:
Спецификация на языке EXPRESS:
*)
RULE ISO13584_101_side_and_geometry_level_compatibility_rule FOR
(abstract_functional_model_class);
LOCAL
geometry_level_set: SET OF view_control_variable_range;
side_set: SET OF view_control_variable_range;
is_2D, is_2D_or_3D, is_3D: BOOLEAN;
no_side, with_side, side_or_no_side, res: BOOLEAN;
compatible_side_and_geometry_level: BOOLEAN := TRUE;
END_LOCAL;
REPEAT i := 1 TO SIZEOF(abstract_functional_model_class);
geometry_level_set := QUERY(vcvr <*
abstract_functional_model_class[i].v_c_v_range |
(vcvr.parameter_type.name_scope.code = 'basic_geometry')
AND (vcvr.parameter_type.name_scope.defined_by.code = '0112/1///13584_101_1')
AND (vcvr.parameter_type.code = 'geometry_level'));
side_set := QUERY(vcvr <*
abstract_functional_model_class[i].v_c_v_range |
(vcvr.parameter_type.name_scope.code = 'basic_geometry')
AND (vcvr.parameter_type.name_scope.defined_by.code = '0112/1///13584_101_1')
AND (vcvr.parameter_type.code = 'side'));
is_2D := (SIZEOF(QUERY(vcvr <* geometry_level_set |
((vcvr.range_lobound = 1) AND (vcvr.range_hibound = 1)))) = 1);
is_2D_or_3D := (SIZEOF(QUERY(vcvr <* geometry_level_set |
((vcvr.range_lobound = 1) AND (vcvr.range_hibound > 1)))) = 1);
is_3D := (SIZEOF(QUERY(vcvr <* geometry_level_set |
(vcvr.range_lobound > 1) AND (vcvr.range_hibound > 1))) = 1);
no_side := (SIZEOF(QUERY(vcvr <* side_set |
((vcvr.range_lobound = 0) AND (vcvr.range_hibound = 0)))) = 1);
side_or_no_side := (SIZEOF(QUERY(vcvr <* side_set |
((vcvr.range_lobound = 0) AND (vcvr.range_hibound >= 0)))) = 1);
IF is_2D OR ((NOT(is_2D_or_3D) OR
side_or_no_side) AND (NOT(is_3D) OR no_side))
THEN
res := TRUE;
ELSE
res := FALSE;
END_IF;
compatible_side_and_geometry_level :=
compatible_side_and_geometry_level AND res;
END_REPEAT;
WHERE
WR1: compatible_side_and_geometry_level;
END_RULE; -- ISO13584_101_side_and_geometry_level_compatibility_rule
(*
Формальные предложения
WR1: каждая сущность abstract_functional_model_class, ссылающаяся на категорию представлений basic_geometry, должна определять сущность view_control_variable, устанавливающую сторону геометрического представления, для которого значения сущности range_lobound и range_hibound равны 0 в случае трехмерного представления или для которого значение сущности range_lobound равно 0, а значение сущности range_hibound больше или равно 0 в случае двумерного и трехмерного геометрических представлений.
Неформальные предложения
IP1: метод каждой сущности abstract_functional_model_class, включенной в файл доставки библиотечных данных, не должен создавать представление, управляющая переменная представления стороны которого отличается от "null", а управляющая переменная представления уровня геометрии которого отличается от '2D'.
Правило ISO13584_101_variant_and_unregistered_variant_compatibility_rule устанавливает требование, в соответствии с которым сущность abstract_functional_model_classes, предоставляющая категорию представлений basic_geometry в разных вариантах variants или unreg_variants, должна обеспечивать:
- стандартизированное представление формы и/или поставщика данных библиотеки в зависимости от представления формы;
- в случае возможного стандартизированного представления формы, как минимум, значение variant'1', т.е. 'external shape', и
- в случае возможного поставщика данных библиотеки в зависимости от представления формы значение unreg_variant более 0.
Пример - Допускается применять следующие диапазоны варианта view_control_variable_ranges и незарегистрированного варианта:
Пример - Не допускается применять следующие диапазоны варианта view_control_variable_ranges и незарегистрированного варианта:
Спецификация на языке EXPRESS
*)
RULE ISO13584_101_variant_and_unregistered_variant_compatibility_rule
FOR
(abstract_functional_model_class);
LOCAL
variant_set: SET OF view_control_variable_range := [];
unreg_variant_set: SET OF view_control_variable_range := [];
is_variant, is_unreg_variant: BOOLEAN;
may_be_variant, may_be_unreg_variant: BOOLEAN;
variant_1_mandatory, unreg_variant_greater_than_0: BOOLEAN;
res, compatible_variant_and_unreg_variant: BOOLEAN := TRUE;
END_LOCAL;
REPEAT i := 1 TO SIZEOF(abstract_functional_model_class);
variant_set := QUERY(vcvr <*
abstract_functional_model_class[i].v_c_v_range |
(vcvr.parameter_type.name_scope.code = 'basic_geometry')
AND (vcvr.parameter_type.name_scope.defined_by.code = '0112/1///13584_101_1')
AND (vcvr.parameter_type.code = 'variant'));
unreg_variant_set := QUERY(vcvr <*
abstract_functional_model_class[i].v_c_v_range |
(vcvr.parameter_type.name_scope.code = 'basic_geometry')
AND (vcvr.parameter_type.name_scope.defined_by.code = '0112/1///13584_101_1')
AND (vcvr.parameter_type.code = 'unreg_variant'));
is_unreg_variant := (SIZEOF(QUERY(vcvr <* variant_set
|(vcvr.range_lobound = 0) AND (vcvr.range_hibound = 0))) = 1);
may_be_unreg_variant := (SIZEOF(QUERY(vcvr <* variant_set
|(vcvr.range_lobound = 0) AND (vcvr.range_hibound > 0))) = 1);
variant_1_mandatory := (SIZEOF(QUERY(vcvr <* variant_set
|(vcvr.range_lobound = 1))) = 1);
is_variant := (SIZEOF(QUERY(vcvr <* unreg_variant_set
|(vcvr.range_lobound = 0) AND (vcvr.range_hibound = 0))) = 1);
may_be_variant := (SIZEOF(QUERY(vcvr <* unreg_variant_set
|(vcvr.range_lobound = 0) AND (vcvr.range_hibound > 0))) = 1);
unreg_variant_greater_than_0 := (SIZEOF(QUERY(vcvr <*
unreg_variant_set|(vcvr.range_lobound >= 1))) = 1);
IF (is_variant AND variant_1_mandatory) OR (is_unreg_variant AND
unreg_variant_greater_than_0) OR (may_be_unreg_variant AND may_be_variant)
THEN
res := TRUE;
ELSE
res := FALSE;
END_IF;
compatible_variant_and_unreg_variant :=
compatible_variant_and_unreg_variant AND res;
variant_set := [];
unreg_variant_set := [];
END_REPEAT;
WHERE
WR1: compatible_variant_and_unreg_variant;
END_RULE;
ISO13584_101_variant_and_unregistered_variant_compatibility_rule
(*
Формальные предложения
WR1: каждая сущность abstract_functional_model_class, ссылающаяся на категорию представлений basic_geometry, должна определить две переменные view_control_variables, устанавливающие соответственно вариант и незарегистрированный вариант, значения которых совместимы: либо диапазон view_control_variable_range варианта ограничен значением 0, а диапазон view_control_variable_range незарегистрированного варианта является любым диапазоном, не содержащим значение 0, либо диапазон view_control_variable_range незарегистрированного варианта ограничен значением 0, а диапазон view_control_variable_range варианта принимает значения от 1 до любого значения, либо диапазон view_control_variable_range обоих вариантов и диапазоны view_control_variable_range незарегистрированного варианта устанавливают в диапазоне значений от 0 до любого значения, более или равного 1.
*)
END_SCHEMA; -- ISO13584_101_vcv_range_constraints_schema
(*
Значения экземпляра view_exchange_protocol_identification, допустимые для использования в файле доставки библиотечных данных для ссылки на протокол обмена представлениями, определенный в настоящем стандарте, в любом из его классов соответствия 1, 2, 3 должны удовлетворять ограничениям, установленным в следующей схеме на языке EXPRESS.
Спецификация на языке EXPRESS:
*)
SCHEMA ISO13584_101_cc_1_or_2_or_3_schema;
REFERENCE FROM ISO13584_IEC61360_dictionary_schema (item_names);
REFERENCE FROM ISO13584_extended_dictionary_schema (data_exchange_specification_identification,
view_exchange_protocol_identification);
REFERENCE FROM ISO13584_external_file_schema(external_file_protocol,
program_status,
simple_program_protocol,
standard_simple_program_protocol);
REFERENCE FROM person_organization_schema(organization);
(*
Примечание. Схемы, указанные выше, приведены в следующих документах:
ISO13584_IEC61360_dictionary_schema - приложение к ИСО 13584-42 и приложение к МЭК 61360-2;
ISO13584_extended_dictionary_schema - ИСО 13584-24;
ISO13584_external_file_schema - ИСО 13584-24;
person_organization_schema - ИСО 10303-41.
6.3.3.1. Правило ISO13584_101_allowed_reference_to_conformance_class_1_2_and_3_rule
Правило ISO13584_101_allowed_reference_to_conformance_class_rule устанавливает ограничения к сущности view_exchange_protocol_identifications, которые следует учитывать при ее использовании для ссылки на класс соответствия 1, 2 или 3 протокола обмена представлениями, установленного в настоящем стандарте. Сущность view_exchange_protocol_identification допускается использовать для ссылки на класс соответствия 1, 2 или 3 протокола обмена представлениями, установленного в настоящем стандарте, при выполнении следующих условий:
- атрибутом name сущности view_exchange_protocol_identification является 'ISO_13584_101';
- атрибут протоколов external_file_protocols сущности view_exchange_protocol_identification ссылается только на один протокол external_file_protocol;
- атрибут level ссылочной сущности external_file_protocol должен соответствовать атрибуту application сущности view_exchange_protocol_identification;
- атрибут status сущности view_exchange_protocol_identification должен быть либо 'WD', либо 'CD', либо 'DIS', либо 'FDIS', либо 'IS';
- атрибут application сущности view_exchange_protocol_identification должен иметь значения 1, 2 или 3 и
- протокол external_file_protocol, на который дается ссылка через атрибут external_file_protocols сущности view_exchange_protocol_identification, должен учитывать ограничения, установленные функцией ISO13584_101_protocol_compliant_to_cc_1_or_2_or_3, приведенной в 6.3.3.2.
Спецификация на языке EXPRESS:
*)
RULE ISO13584_101_allowed_reference_to_conformance_class_1_2_and_3_rule
FOR(
view_exchange_protocol_identification);
WHERE
WR1: QUERY(vep_id <* view_exchange_protocol_identification |
(vep_id\data_exchange_specification_identification.name = 'ISO_13584_101')
AND
(SIZEOF(vep_id\data_exchange_specification_identification.external_file_protocols) <> 1)) = [];
WR2: QUERY(vep_id <* view_exchange_protocol_identification|
(vep_id\data_exchange_specification_identification.name = 'ISO_13584_101')
AND
(QUERY(efp <* vep_id\data_exchange_specification_identification.
external_file_protocols | NOT(efp.level = vep_id.application)) <> [])) = [];
WR3: QUERY(vep_id <* view_exchange_protocol_identification |
((vep_id\data_exchange_specification_identification.status = 'WD')
OR (vep_id\data_exchange_specification_identification.status = 'CD')
OR (vep_id\data_exchange_specification_identification.status = 'DIS')
OR (vep_id\data_exchange_specification_identification.status = 'FDIS')
OR (vep_id\data_exchange_specification_identification.status = 'IS'))
AND
(vep_id\data_exchange_specification_identification.name = 'ISO_13584_101')
AND
((vep_id\data_exchange_specification_identification.application = '1')
OR (vep_id\data_exchange_specification_identification.application = '2')
OR (vep_id\data_exchange_specification_identification.application = '3'))
AND
(QUERY(efp <* vep_id\data_exchange_specification_identification.
external_file_protocols |
NOT(ISO13584_101_protocol_compliant_to_cc_1_or_2_or_3(efp))) = []))
= QUERY(vep_id <* view_exchange_protocol_identification |
(vep_id\data_exchange_specification_identification.name = 'ISO_13584_101')
AND
(vep_id\data_exchange_specification_identification.application LIKE '#'));
END_RULE;
ISO13584_101_allowed-reference_to_conformance_class_1_2_and_3_rule
(*
Формальные предложения
WR1: в сущности view_exchange_protocol_identifications, ссылающейся на класс соответствия 1, 2 или 3 протокола обмена представлениями, установленного в настоящем стандарте, ссылка должна быть только на одну сущность external_file_protocol.
WR2: атрибут level ссылочной сущности standard_program_protocol должен соответствовать атрибуту application сущности view_exchange_protocol_identifications, ссылающемуся на класс соответствия 1, 2 или 3 протокола обмена представлениями, установленного в настоящем стандарте.
WR3: при ссылке на протокол обмена представлениями, указанный в настоящем стандарте, сущность view_exchange_protocol_identification.name должна иметь значение ISO_13584_101; значение сущности view_exchange_protocol_identification.status должно соответствовать либо 'WD', либо 'CD', либо 'DIS', либо 'FDIS', либо 'IS'; значение сущности view_exchange_protocol_identification.application должно быть либо 1, либо 2, либо 3, а сущность view_exchange_protocol_identification.external_file_protocols должна учитывать ограничения, установленные функцией ISO13584_101_protocol_compliant_to_cc_1_or_2_or_3, приведенной в 6.3.3.2.
Функция ISO13584_101_protocol_compliant_to_cc_1_or_2_or_3 обеспечивает проверку того, может ли сущность view_exchange_protocol_identification, представляющая класс соответствия 1, 2 или 3 протокола обмена представлениями, установленного в настоящем стандарте, предоставить ссылку на сущность external_file_protocol. Эта функция возвращает логическое значение TRUE, если на сущность external_file_protocol может быть дана ссылка, в противном случае она возвращает логическое значение FALSE. Сущность view_exchange_protocol_identification, представляющая класс соответствия 1, 2 или 3 протокола обмена представлениями, установленного в настоящем стандарте, может ссылаться на сущность external_file_protocol при выполнении следующих условий:
- сущность external_file_protocol должна быть сущностью standard_simple_program_protocol, атрибутом language которого является "FORTRAN", атрибутом status - SOURCE или COMPILED;
- атрибут organization сущности external_file_protocol должен ссылаться на сущность organization, атрибутом id которой является 'ISO', а атрибутом name - 'International Organization for Standardization';
- атрибутом protocol_name сущности external_file_protocol должен быть 'ISO_13584_31';
- атрибут level сущности external_file_protocol, если он существует, должен иметь значения 1, 2 или 3;
- атрибут designation сущности external_file_protocol должен ссылаться на сущность item_names, для которой атрибутом preferred_name является 'ISO_13584_31', а атрибутом short_name - 'ISO_13584_31'.
Спецификация на языке EXPRESS:
*)
FUNCTION ISO13584_101_protocol_compliant_to_cc_1_or_2_or_3
(p: external_file_protocol): BOOLEAN;
IF (('ISO13584_EXTERNAL_FILE_SCHEMA'
+ '.STANDARD_SIMPLE_PROGRAM_PROTOCOL' IN TYPEOF(p))
AND
(ISO13584_101_organization_compliant_to_cc_1_or_2_or_3(p.organisation))
AND (p.protocol_name = 'ISO_13584_31')
AND (NOT EXISTS(p.level) OR ((p.level = '1') OR (p.level = '2') OR (p.level = '3')))
AND (ISO13584_101_item_names_compliant_to_cc_1_or_2_or_3(p.designation))
AND (p\simple_program_protocol.language = 'FORTRAN')
AND ((p\simple_program_protocol.status = SOURCE)
OR (p\simple_program_protocol.status = COMPILED)))
THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END_FUNCTION; -- ISO13584_101_protocol_compliant_to_cc_1_or_2_or_3
(*
6.3.3.3. Функция ISO13584_101_item_names_compliant_to_cc_1_or_2_or_3
Функция ISO13584_101_item_names_compliant_to_cc_1_or_2_or_3 обеспечивает проверку того, может ли на сущность item_names сослаться сущность external_file_protocol, на которую дает ссылку сущность view_exchange_protocol_identifications, представляющая класс соответствия 1, 2 или 3 протокола обмена представлениями, установленного в настоящем стандарте. Сущность external_file_рrotocol, на которую ссылается сущность view_exchange_protocol_identifications, представляющая класс соответствия 1, 2 или 3 правил обмена представлениями по настоящему стандарту, может ссылаться на сущность item_names при выполнении следующих условий:
- атрибутом preferred_name сущности item_names является 'ISO 13584_31';
- атрибутом short_name сущности item_names является 'ISO_13584_31'.
Функция ISO13584_101_item_names_compliant_to_cc_1_or_2_or_3 возвращает логическое значение TRUE, если заданная сущность item_names удовлетворяет этим ограничениям, в противном случае она возвращает логическое значение FALSE.
Спецификация на языке EXPRESS:
*)
FUNCTION ISO13584_101_item_names_compliant_to_cc_1_or_2_or_3(name: item_names): BOOLEAN;
IF ((name.preferred_name = 'ISO_13584_31')
AND (name.short_name = 'ISO_13584_31'))
THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END_FUNCTION; -- ISO13584_101_item_names_compliant_to_cc_1_or_2_or_3
(*
6.3.3.4. Функция ISO13584_101_organization_compliant_to_cc_1_or_2_or_3
Функция ISO13584_101_organization_compliant_to_cc_1_or_2_or_3 обеспечивает проверку того, может ли на сущность organization ссылаться сущность external_file_protocol, на которую дает ссылку сущность view_exchange_protocol_identifications, представляющая класс соответствия 1, 2 или 3. Сущность external_file_protocol, на которую ссылается сущность view_exchange_protocol_identification, представляющая класс соответствия 1, 2 или 3, может сослаться на сущность organization при выполнении следующих условий:
- атрибутом id объекта organization является 'ISO';
- атрибутом name объекта organization является 'International Organization for Standardization'.
Функция ISO13584_101_organization_compliant_to_cc_1_or_2_or_3 возвращает логическое значение TRUE, если заданная сущность organization удовлетворяет этим ограничениям, в противном случае она возвращает логическое значение FALSE.
Спецификация на языке EXPRESS:
*)
FUNCTION ISO13584_101_organization_compliant_to_cc_1_or_2_or_3
(org: organization): BOOLEAN;
IF ((org.id = 'ISO') AND (org.name =
'International Organization for Standardization'))
THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END_FUNCTION; -- ISO13584_101_organization_compliant_to_cc_1_or_2_or_3
END_SCHEMA; -- ISO13584_101_cc_1_or_2_or_3_schema
(*
6.3.4. Ограничения к файлу доставки библиотечных данных для ссылочных классов соответствия 1E, 2E и 3E
Значения экземпляра view_exchange_protocol_identification, разрешенные для использования в файле доставки библиотечных данных для ссылки на протокол обмена представлениями, определенный в настоящем стандарте, в любом из его классов соответствия 1E, 2E или 3E должны удовлетворять ограничениям, установленным в следующей схеме на языке EXPRESS:
Спецификация на языке EXPRESS:
*)
SCHEMA ISO13584_101_сс_1E_or_2E_or_3E_schema;
REFERENCE FROM ISO13584_extended_dictionary_schema(
data_exchange_specification_identification, view_exchange_protocol_identification);
REFERENCE FROM ISO13584_external_file_schema (external_file_protocol,
non_standard_ simple_program_protocol);
(*
Примечание. Схемы, указанные выше, приведены в следующих документах:
ISO13584_extended_dictionary_schema - ИСО 13584-24;
ISO13584_external_file_schema - ИСО 13584-24.
6.3.4.1. Правило ISO13584_101_allowed_reference_to_conformance_class_1E_2E_3E_rule
Правило ISO13584_101_allowed_reference_to_conformance_class_1E_2E_3E_rule устанавливает ограничения к сущности view_exchange_protocol_identification, которые следует учитывать при использовании данной сущности для ссылки на класс соответствия 1E, 2E или 3E протокола обмена представлениями, установленного в настоящем стандарте. Сущность view_exchange_protocol_identification может обеспечить ссылку на протокол обмена представлениями, установленный в настоящем стандарте, при выполнении следующих условий:
- атрибутом name сущности view_exchange_protocol_identification является 'ISO_13584_101;
- атрибут протоколов external_file_protocols сущности view_exchange_protocol_identification ссылается только на протокол external_file_protocol;
- атрибут status сущности view_exchange_protocol_identification должен быть либо 'WD', либо 'CD', либо 'DIS', либо 'FDIS', либо 'IS';
- значениями атрибута application сущности view_exchange_protocol_identification должны быть '1E', '2E' или '3E' и
- протокол external_file_рrotocol, на который ссылается атрибут external_file_protocols сущности view_exchange_protocol_identification, должен учитывать ограничения, установленные функцией ISO13584_101_protocol_compliant_to_cc_1E_or_2E_or_3E, приведенной в 6.3.4.2.
Спецификация на языке EXPRESS:
*)
RULE
ISO13584_101_allowed_reference_to_conformance_class_1E_2E_and_3E_rule
FOR (view_exchange_protocol_identification);
WHERE
WR1: QUERY(vep_id <* view_exchange_protocol_identification |
(vep_id\data_exchange_specification_identification.name = 'ISO_13584_101')
AND (SIZEOF(vep_id\data_exchange_specification_identification.external_file_protocols) <> 1)) = [];
WR2: QUERY(vep_id <* view_exchange_protocol_identification |(
(vep_id\data_exchange_specification_identification.status = 'WD')
OR (vep_id\data_exchange_specification_identification.status = 'CD')
OR (vep_id\data_exchange_specification_identification.status = 'DIS')
OR (vep_id\data_exchange_specification_identification.status = 'FDIS')
OR (vep_id\data_exchange_specification_identification.status = 'IS'))
AND
(vep_id\data_exchange_specification_identification.name = 'ISO_13584_101')
AND
((vep_id\data_exchange_specification_identification.application = '1E')
OR (vep_id\data_exchange_specification_identification.application = '2E')
OR (vep_id\data_exchange_specification_identification.application = '3E'))
AND
(QUERY(efp <* vep_id\data_exchange_specification_identification.external_file_protocols |
NOT (ISO13584_101_protocol_compliant_to_cc_1E_or_2E_or_3E(efp))) = []))
= QUERY(vep_id <* view_exchange_protocol_identification |
(vep_id\data_exchange_specification_identification.name = 'ISO_13584_101')
AND
(vep_id\data_exchange_specification_identification.application LIKE '#E'));
END_RULE;
ISO13584_101_allowed_reference_to_conformance_class_1E_2E_and_3E_rule
(*
Формальные предложения:
WR1: в сущности view_exchange_protocol_identifications, ссылающейся на класс соответствия 1E, 2E или 3E протокола обмена представлениями, установленного в настоящем стандарте, ссылка должна быть только на сущность external_file_protocol.
WR2: при ссылке на протокол обмена представлениями, установленный в настоящем стандарте, сущность view_exchange_protocol_identification.name должна иметь значение ИСО_13584_101; значением сущности view_exchange_protocol_identification.status должно быть либо 'WD', либо 'CD', либо 'DIS', либо 'FDIS', либо 'IS', значение сущности view_exchange_protocol_identification.application должно быть '1E', '2E' или '3E', а сущность view_exchange_protocol_identification.external_file_protocols должна учитывать ограничения, установленные функцией ISO13584_101_protocol_compliant_to_cc_1E_or_2E_or_3E, приведенной в 6.3.4.2.
Функция ISO13584_101_protocol_compliant_to_cc_1E_or_2E_or_3E обеспечивает проверку того, может ли на сущность external_file_protocol ссылаться сущность view_exchange_protocol_identifications, представляющая класс соответствия 1E, 2E или 3E. Сущность view_exchange_protocol_identification, представляющая класс соответствия 1E, 2E или 3E, может сослаться на сущность external_file_protocol при выполнении следующего условия:
- сущность external_file_protocol должна быть сущностью non_standard_simple_program_protocol.
Функция ISO13584_101_organization_compliant_to_cc_1E_or_2E_or_3E возвращает логическое значение TRUE, если заданная сущность external_file_protocol учитывает это ограничение, в противном случае функция возвращает логическое значение FALSE.
Спецификация на языке EXPRESS:
*)
FUNCTION ISO13584_101_protocol_compliant_to_cc_1E_or_2E_or_3E(
р: external_file_protocol): BOOLEAN;
IF (('ISO13584_EXTERNAL_FILE_SCHEMA'
+ '.NON_STANDARD_SIMPLE_PROGRAM_PROTOCOL' IN TYPEOF(p)))
THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END_FUNCTION; -- ISO13584_101_protocol_compliant_to_cc_1E_or_2E_or_3E
END_SCHEMA; -- ISO13584_101_cc_1E_or_2E_or_3E_schema
(*
(обязательное)
РЕГИСТРАЦИЯ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ
A.1. Идентификация документов
Для обеспечения однозначной идентификации информационных объектов в открытой системе настоящему стандарту присвоен следующий идентификатор объектов:
{ISO standard 13584 part (101) version (1)}
Данное значение определено в ИСО/МЭК 8824-1 и описано в ИСО 8824-1.
(справочное)
ПРИМЕР ФИЗИЧЕСКОГО ФАЙЛА
B.1. Пример физического файла, использующего протокол обмена представлениями ИСО 13584-101
*/
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('PLIB FUNCTIONAL MODEL EXAMPLE 1'), '1');
FILE_NAME('P24_fm_implicit_p101.spf,
'2000-06-05T02:38:14',
(")
('LISI/ENSMA'),
'ECCO RUNTIME SYSTEM BUILT-IN PREPROCESSOR V2.3.3',
'ECCO RUNTIME SYSTEM V2.3.3',
");
FILE_SCHEMA(('ISO13584_F_M_IIM_LIBRARY_IMPLICIT_SCHEMA'));
ENDSEC;
DATA;
/* Global library description */
#2=LIBRARY_IN _STANDARD_FORMAT($, $, $, $, (), #30, #11, (#7), (#12),
(#20, #30, #40), (#50, #60, #140, #130), (), #3, $, $, ());
#3=ITEM_NAMES(LABEL('Functional geometry model'), (), LABEL("), $, $);
#6=ORGANIZATION('ISO', 'International Organization for
Standardization',");
#7=STANDARD_SIMPLE_PROGRAM_PROTOCOL(#6, $, 'ISO_13584_31', '001', '1',
#8, $, 'FORTRAN', .SOURCE., $, $, $);
#8=ITEM_NAMES(LABEL('ISO_13584_31'), (), LABEL('ISO_13584_31'), $, $);
#11=LIBRARY_IIM_IDENTIFICATION($, 'IS', 'ISO_13584_24_2', 2001, '3', $, ());
#12=VIEW_EXCHANGE_PROTOCOL_IDENTIFICATION($, 'IS', 'ISO_13584_101',
2001, '1', '1',(#7), $);
#10=GLOBAL_LANGUAGE_ASSIGNMENT('en');
/* DICTIONARY DESCRIPTION */
/*BSU for supplier*/
#20=SUPPLIER_BSU('INA', *);/* INA code unknown */
#30=SUPPLIER_BSU('9/19860073600021', *);
/* LISI/ENSMA code in the coding scheme ICD=0009: SIRET number */
#40=SUPPLIER_BSU('0112/1///13584_101_1', *);
/* Identification of ISO 13584-101 according to ISO 13584-26 */
/* BSU for component_class */
#50=CLASS_BSU('Bearing', '001', #20);
#60=CLASS_BSU('PAW', '001', #20);
#130=CLASS_BSU('PAW_Geometry', '001', #30);
#140=CLASS_BSU('basic_geometry', '001', #40);
/* BSU for properties */
#90=PROPERTY_BSU('d_in', '001', #50);
#100=PROPERTY_BSU('d_out', '001', #50);
#110=PROPERTY_BSU('e', '001', #50);
#150=PROPERTY_BSU('geometry_level', '001', #140);
#160=PROPERTY_BSU('detail_level', '001', #140);
#170=PROPERTY_BSU('side', '001', #140);
#180=PROPERTY_BSU('prg', '001', #130);
#190=PROPERTY_BSU('required_side', '001', #130);
#200=PROPERTY_BSU('variant', '001', #140);
#210=PROPERTY_BSU('unreg_variant', '001', #140);
/* BSU for table */
#230=TABLE_BSU('T2', '001', #130);
/* v_c_v range */
#155=VIEW_CONTROL_VARIABLE_RANGE(#150, 1, 1);
#165=VIEW_CONTROL_VARIABLE_RANGE(#160, 2, 2);
#175=VIEW_CONTROL_VARIABLE_RANGE(#170, 1, 6);
#205=VIEW_CONTROL_VARIABLE_RANGE(#200, 1, 1);
#215=VIEW_CONTROL_VARIABLE_RANGE(#210, 0, 0);
/* supplier description */
#31=SUPPLIER_ELEMENT(#30, $, '001', #32, #33);
#32=ORGANIZATION('LISI/ENSMA', 'LISI/ENSMA', ");
#33=ADDRESS($, $, $, $, $, $, $, 'FRANCE', $, $, $, $);
/* Dictionary table description */
#231=TABLE_ELEMENT(#230, $, '001', #232, TEXT('Definition of the
geometry programs according to the side of the part'), $, $, *, (#196,
#186), (#196));
#232=ITEM_NAMES(LABEL('side/prg table'), (), LABEL("), $, $);
/* Dictionary properties description */
/* prg */
#91=REPRESENTATION_P_DET (#180, $, '001', #92, TEXT('variable used to
reference geometry programs'), $, $, $, $, (), $, 'A58', #93, $);
#92=ITEM_NAMES(LABEL('related program'), (), LABEL("), $, $);
#93=PROGRAM_REFERENCE_TYPE ((
'ISO13584_F_M_IIM_LIBRARY_IMPLICIT_SCHEMA.PROGRAM_REFERENCE'));
/* required side */
#101=REPRESENTATION_P_DET(#190, $, '001', #102, TEXT('property used
to store the required side'), $, $, $, $, (), $, 'A58', #103, $);
#102=ITEM_NAMES(LABEL('side to be represented'), (), LABEL("), $, $);
#103=INT_TYPE('N 1');
/* class - table relationship */
#1424=CLASS_TABLE_RELATIONSHIP(#71, (#230));
/* Dictionary class description */
/* Functional model class view_of definition */
#71=FM_CLASS_VIEW_OF(#130, $, '001', #72, TEXT('Functional model
class describing the 2d standard geometry of PAW'), $, $, $, $, (#180,
#190), (), *, *, *, *, *, #140, (#155, #165, #175, #205, #215), (#150,
#160, #170, #200, #210), (), (), (), (), (), (), (), (), #60, (#90,
#100, #110), (), (), ());
#72=ITEM_NAMES(LABEL('Functional model class of PAW'), (), LABEL('fm
class of PAW'), $, $);
/* Definition of the properties semantics */
#176=OPEN_VIEW_PROPERTY_VALUE_SEMANTICS(#170, $);
#186=SELF_PROPERTY_VALUE_SEMANTICS(#180, $);
#196=SELF_PROPERTY_VALUE_SEMANTICS(#190, $);
#206=COLUMN_TRAVERSAL_VARIABLE_SEMANTICS(#2407, #196);
#96=SELF_PROPERTY_VALUE_SEMANTICS(#90, $);
#106=SELF_PROPERTY_VALUE_SEMANTICS(#100, $);
#116=SELF_PROPERTY_VALUE_SEMANTICS(#110, $);
/* Properties syntax definition */
#177=INT_NUMERIC_VARIABLE();
#187=ENTITY_INSTANCE_VARIABLE((
'ISO13584_F_M_IIM_LIBRARY_IMPLICIT_SCHEMA.PROGRAM_REFERENCE'));
#197=INT_NUMERIC_VARIABLE();
#207=INT_NUMERIC_VARIABLE();
#97 =REAL_NUMERIC_VARIABLE();
#107=REAL_NUMERIC_VARIABLE();
#117=REAL_NUMERIC_VARIABLE();
/* Syntax/semantics association */
#178=ENVIRONMENT(#177, #176);
#188=ENVIRONMENT(#187, #186);
#198=ENVIRONMENT(#197, #196);
#208=ENVIRONMENT(#207, #206);
#98=ENVIRONMENT(#97, #96);
#108=ENVIRONMENT(#107, #106);
#118=ENVIRONMENT(#117, #116);
/* LIBRARY DESCRIPTION */
/* Extension of the table */
#2300=TABLE_CONTENT(#230, *, (#2301, #2302), '001', '1997-12-19');
#2301=INTEGER_COLUMN((1, 2, 3, 4, 5, 6),'NR1..1');
#2302=ENTITY_INSTANCE_COLUMN((#2303, #2304, #2305, #2306, #2307, #2308),
('ISO13584_F_M_IIM_LIBRARY_IMPLICIT_SCHEMA.PROGRAM_REFERENCE'));
#2303=PROGRAM_REFERENCE(#7, #2313, 'Add1_PAW', 'PAW_p1', (), (), ());
#2304=PROGRAM_REFERENCE(#7, #2314, 'Add2_PAW', 'PAW_p2', (), (), ());
#2305=PROGRAM_REFERENCE(#7, #2315, 'Add3_PAW', 'PAW_p3', (), (), ());
#2306=PROGRAM_REFERENCE(#7, #2316, 'Add4_PAW', 'PAW_p4', (), (), ());
#2307=PROGRAM_REFERENCE(#7, #2317, 'Add5_PAW', 'PAW_p5', (), (), ());
#2308=PROGRAM_REFERENCE(#7, #2318, 'Add6_PAW', 'PAW_p6', (), (), ());
#2313=NOT_TRANSLATABLE_EXTERNAL_CONTENT((#2323));
#2314=NOT_TRANSLATABLE_EXTERNAL_CONTENT((#2324));
#2315=NOT_TRANSLATABLE_EXTERNAL_CONTENT((#2325));
#2316=NOT_TRANSLATABLE_EXTERNAL_CONTENT((#2326));
#2317=NOT_TRANSLATABLE_EXTERNAL_CONTENT((#2327));
#2318=NOT_TRANSLATABLE_EXTERNAL_CONTENT((#2328));
#2323=LANGUAGE_SPECIFIC_CONTENT((#2333), #2333, $);
#2324=LANGUAGE_SPECIFIC_CONTENT((#2334), #2334, $);
#2325=LANGUAGE_SPECIFIC_CONTENT((#2335), #2335, $);
#2326=LANGUAGE_SPECIFIC_CONTENT((#2336), #2336, $);
#2327=LANGUAGE_SPECIFIC_CONTENT((#2337), #2337, $);
#2328=LANGUAGE_SPECIFIC_CONTENT((#2338), #2338, $);
#2333=EXTERNAL_FILE_UNIT('PAW_p1.for', '7bit');
#2334=EXTERNAL_FILE_UNIT('PAW_p1.for', '7bit');
#2335=EXTERNAL_FILE_UNIT('PAW_p1.for', '7bit');
#2336=EXTERNAL_FILE_UNIT('PAW_p1.for', '7bit');
#2337=EXTERNAL_FILE_UNIT('PAW_p1.for', '7bit');
#2338=EXTERNAL_FILE_UNIT('PAW_p1.for', '7bit');
/* Library definition of the properties */
#900=OPT_OR_MAND_PROPERTY_BSU(#90, .F., .T.);
#1000=OPT_OR_MAND_PROPERTY_BSU(#100, .F., .T.);
#1100=OPT_OR_MAND_PROPERTY_BSU(#110, .F., .T.);
#1700=OPT_OR_MAND_PROPERTY_BSU(#170, .F., .T.);
#1800=OPT_OR_MAND_PROPERTY_BSU(#180, .F., .F.);
#1900=OPT_OR_MAND_PROPERTY_BSU(#190, .F., .F.);
/* Functional model class extension */
#1300=FUNCTIONAL_MODEL_CLASS_EXTENSION(#130, (#2303, #2304, #2305,
#2306, #2307, #2308), (#7), (#12), '001', '001', (), (), *, *, *, (),
(), (), $, (#900, #1000, #1100), (), (), (#1700, #1800, #1900), (),
(#3000), $, $, (), $);
/* Definition of the derivation table that computes 'prg' from 'side' */
#2401=FUNCTIONAL_DOMAIN_RESTRICTION((#186), (#176, #196, #206),
(#2402), $);
#2402=GUARDED_FUNCTIONAL_DOMAIN(#2403, #2405);
#2403=OTHERS();
#2405=TABLE_DEFINED_VALUE(#2406);
#2406=SELECT_EXPRESSION((#2407, #2408));
#2407=TABLE_LITERAL(#230);
#2408=EQUALS_EXPRESSION((#207, #177));
/* Definition of the methods */
#3000=METHOD(#3001, #3002, #7);
#3001=METHOD_SPECIF(#140, (#155, #165, #175, #205, #215), (#90, #100,
#110),
());
#3002=METHOD_BODY((#97, #107, #117, #177, #187, #197, #207),
(#3019));
#3019=METHOD_STATEMENT((#3020));
#3020=GUARDED_STATEMENT(#3021, #3023);
#3021=BOOLEAN_LITERAL(.T.);
#3023=CALL_PROGRAM_STATEMENT(#187, #2401, (#97, #107, #117), (),
());
ENDSEC;
END-ISO-10303-21;
/*
Физический файл, совместимый с ИСО 10303-21, ассоциируется с внешними файлами, содержащими параметрические спецификации геометрии PAW для разных двумерных представлений сторон. Обмен параметрическими спецификациями аналогичен обмену параметрическими программами, соответствует требованиям ИСО 13584-31 и генерируется редактором параметрической геометрии.
Файл Add1_PAW является примером автоматически генерируемой параметрической программы. Данный файл был автоматически сгенерирован из системы EBP (программирование на базе примеров), разработанной для программного обеспечения генерации программ (в этом примере программой, генерирующей вид спереди, является PAW_p1) на основе существующего проекта.
SUBROUTINE PAW_p1 (d_out, d_int)
! implicit declarations
!
! entity types: (d)ir, (p)nt, (l)in, (c)ir,
! (g)rp, (s)et, (e)nt, (a)rc or (a)2p
IMPLICIT INTEGER(d, p, I, c, g, s, e, a, n)
!
!transfo_type(n) are strings that will contain
! "mirror", "shift", "rotation" or "homotetia"
IMPLICIT CHARACTER*(80) (t)
!
! prefix of D.P. var used: (r)adius, (v)al
IMPLICIT DOUBLE PRECISION(r, v)
!
! global constants
INTEGER TDB, CAD
DOUBLE PRECISION ZERO_VALUE
PARAMETER(TDB = 0, CAD = 1)
PARAMETER (ZERO_VALUE = 0.001)
INTEGER Istent (1000)
INTEGER FALSE, TRUE
!
! parameter declarations:
!
DOUBLE PRECISION d_out
DOUBLE PRECISION d_int
!
! include the types of the P31 and LIB functions
include 'P31_FUNCTIONS_TYPES'
include 'LIB_FUNCTIONS_TYPES'
!
! *** Program Body ***
!
! initialise some constant used entities
grpfix = CREATE_GRP ()
CALL CLOSE_GRP ()
a2p_ref = a2p_ref_sys (TDB)
dir_x = dir_a2p_x(a2p_ref, TDB)
dir_y = dir_a2p_y(a2p_ref, TDB)
pnt_origin = PNT_CARTESIAN_ABSOLUTE(0.0D0, 0.0D0, 0.0D0, TDB)
FALSE = 0
TRUE = 1
CALLINQ_GEOMETRICAL_POWER(POWER,ERR)
three_d = (POWER.GT. 1)
if three_d then
dir_z = dir_a2p_z(a2p_ref, TDB)
end if
!
! *** START OF THE RECORDING SESSION ***
!
! horizontal line of a given y value
pnt1 = PNT_CARTESIAN_ABSOLUTE(0.0D0, 0.0D0, 0.0D0, TDB)
lin1C1 = lib_lin_max(LIN_PNT_LENGTH_DIR(pnt1, 1.0D0, dir_x, TDB))
CALL ADD_ENT_GRP(grpfix, lin1C1)
!
! vertical line of a given x value
pnt1 = PNT_CARTESIAN_ABSOLUTE(0.0D0, 0.0D0, 0.0D0, TDB)
lin2C1 = lib_lin_max(LIN_PNT_LENGTH_DIR(pnt1, 1.0D0, dir_y, TDB))
CALL ADD_ENT_GRP(grpfix, lin2C1)
!
! intersection of 2 lines
pntnm1 = PNT_INTERSECTION_2_ENT(lin2C1, lin1C1, TDB)
!
! circle by its centre and its radius
cir3C1 = CIRCLE_RAD_A2P ((d_out)/(2.000D0), &
lib_a2p_pnt(pntnm1),false, TDB)
CALL ADD_ENT_GRP(grpfix, cir3C1)
!
! centre of a circle
pntnm2 = PNT_CENTRE_ARC(cir3C1, TDB)
! circle by its centre and its radius
cir4C1 = CIRCLE_RAD_A2P ((d_int)/(2.000D0), &
lib_a2p_pnt(pntnm2), false, TDB)
CALL ADD_ENT_GRP(grpfix, cir4C1)
!
! arc by a circle
arc5C1 = cir3C1
CALL ADD_ENT_GRP(grpfix, arc5C1)
!
! arc by a circle
arc6C1=cir4C1
CALL ADD_ENT_GRP(grpfix, arc6C1)
!
! *** FIX ENTITIES into CAD SYSTEM ***
!
Istent(1) = grpfix
CALL FIX_ENT (1, Istent)
RETURN
END
(справочное)
ССЫЛОЧНЫМ НАЦИОНАЛЬНЫМ СТАНДАРТАМ РОССИЙСКОЙ ФЕДЕРАЦИИ
Таблица ДА.1
[1] ИСО/МЭК 1539 Информационные технологии. Языки программирования.
(все части) Фортран
(ISO/IEC 1539 (Information technology - Programming languages -
(all parts)) Fortran)
[2] ИСО 10303-41:2000 Системы промышленной автоматизации и интеграция.
Представление данных о продукции и обмен данными.
Часть 41. Интегрированные родовые ресурсы. Основы
описания продукции и программного обеспечения
(ISO 10303-41:2000) (Industrial automation systems and integration -
Product data representation and exchange - Part
41: Integrated generic resource: Fundamentals of
product description and support)
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/gost-r_gosudarstvennyj-standart/43/gost_90445.html
На правах рекламы:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||