1
Доступно поисковых запросов: 1 из 2
Следующий пробный период начнётся: 03 октября 2022 в 00:25
Снять ограничение

ГОСТ Р ИСО 13584-31-2010

Системы промышленной автоматизации и интеграция. Библиотека деталей. Часть 31. Ресурсы реализации. Интерфейс геометрического программирования
Действующий стандарт
Проверено:  25.09.2022

Информация

Название Системы промышленной автоматизации и интеграция. Библиотека деталей. Часть 31. Ресурсы реализации. Интерфейс геометрического программирования
Название английское Industrial automation systems and integration. Parts library. Part 31. Implementation resources. Geometric programming interface
Дата актуализации текста 07.08.2016
Дата актуализации описания 01.01.2021
Дата издания 25.02.2016
Дата введения в действие 01.09.2011
Область и условия применения Настоящий стандарт устанавливает интерфейс прикладного программирования, с помощью которого прикладная программа генерирует геометрические модели независимо от целевой пользовательской системы. Данный интерфейс обеспечивает мобильность прикладных программ, описывающих представления параметрических форм семейств деталей в соответствии с комплексом стандартов ИСО 13584. Настоящий стандарт распространяется на: - программы, генерирующие геометрические представления внутри моделирующих систем, не зависящих от целевых систем; - программы, описывающие геометрические представления, созданные посредством геометрических определений с учетом ограничений; - программы, структурирующие геометрические представления, созданные независимо от целевой системы; - программы, описывающие атрибуты стиля воспроизведения для символической визуализации созданных представлений; - программы, поддерживающие стандарты технического черчения для представления форм, включая 2D-механизм для невидимых линий. Настоящий стандарт не распространяется на: - точное управление изображением на мониторе приемного устройства; - точное определение данных, создаваемых приемной системой; - хранение параметрической модели в приемной системе
Опубликован Официальное издание. М.: Стандартинформ, 2016 год
Утверждён в Росстандарт

     
     ГОСТ Р ИСО 13584-31-2010

     
Группа Т58


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

Системы промышленной автоматизации и интеграция

БИБЛИОТЕКА ДЕТАЛЕЙ

Часть 31

Ресурсы реализации

Интерфейс геометрического программирования

Industrial automation systems and integration. Parts library. Part 31. Implementation resources. Geometric programming interface



ОКС 25.040.40

Дата введения 2011-09-01

     

Предисловие


Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ "О техническом регулировании", а правила применения национальных стандартов Российской Федерации - ГОСТ Р 1.0-2004 "Стандартизация в Российской Федерации. Основные положения"

Сведения о стандарте

1 ПОДГОТОВЛЕН Научно-техническим центром ИНТЕК на основе собственного аутентичного перевода на русский язык стандарта, указанного в пункте 4

2 ВНЕСЕН Техническим комитетом по стандартизации ТК 100 "Стратегический и инновационный менеджмент"

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 21 декабря 2010 г. N 874-ст

4 Настоящий стандарт идентичен международному стандарту ИСО 13584-31:1999* "Системы промышленной автоматизации и интеграция. Библиотека деталей. Часть 31. Ресурсы реализации. Интерфейс геометрического программирования" (ISO 13584-31:1999 "Industrial automation systems and integration - Parts library - Part 31: Implementation resources: Geometric programming interface").

________________

* Доступ к международным и зарубежным документам, упомянутым в тексте, можно получить, обратившись в Службу поддержки пользователей. - Примечание изготовителя базы данных.


При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложении ДА

5 ВВЕДЕН ВПЕРВЫЕ


Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)

Введение


Целью комплекса стандартов ИСО 13584 является создание эффективного механизма передачи данных библиотеки деталей вне зависимости от выбора компьютерного приложения, использующего указанную библиотеку. Установленные стандартом описания облегчают обмен файлами деталей, создают основу для последующего применения данных библиотеки деталей и их совместного использования.

ИСО 13584 включает в себя: основные описания, логический ресурс, используемые данные, описания методологии, протоколы обмена видами, словари ссылок. Описания частей приведены в ГОСТ Р ИСО 13584-1-2006 "Системы промышленной автоматизации и интеграция. Библиотека деталей. Часть 1. Обзор и основные принципы". В настоящем стандарте рассмотрены ресурсы реализации.

В настоящем стандарте представлено описание интерфейса, позволяющего создавать модели продуктов внутри пользовательской системы с помощью прикладных программ, независимых от целевой пользовательской системы. Интерфейс может быть использован вне контекста стандартных данных библиотек деталей. Он позволяет разрабатывать прикладные программы, не зависящие от целевых CAD. В контексте ИСО 10303 настоящий интерфейс может быть применен на верхнем уровне стандартного интерфейса доступа к данным (SDAI) для геометрических построений с учетом имеющихся ограничений. Процесс создания данных модели продукта представляет собой прикладную программу (предлагаемую поставщиком библиотеки деталей), создающую геометрическую модель внутрь пользовательской системы. Данный интерфейс гарантирует ее независимость от целевой пользовательской системы.

ИСО 13584 разработан Техническим комитетом ИСО/ТК 184 "Системы автоматизации производства и их интеграция" и подкомитетом ПК 4 "Технические данные и языки программирования глобального производства".

ИСО 13584 состоит из следующих частей:

- часть 1. Обзор и основные принципы;

- часть 10. Общее описание. Концептуальная модель библиотеки деталей;

- часть 20. Логический ресурс. Логическая модель выражений;

- часть 24. Логический ресурс. Логическая модель библиотеки поставщика;

- часть 26. Логический ресурс. Идентификация поставщика информации;

- часть 31. Ресурсы реализации. Интерфейс геометрического программирования;

- часть 42. Методология описания. Методология структурирования семейства деталей;

- часть 101. Протокол обмена видами. Геометрический протокол обмена видами в параметрической программе;

- часть 102. Протокол обмена видами. Протокол обмена видами в спецификации соответствия ИСО 10303.

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


Настоящий стандарт устанавливает интерфейс прикладного программирования, с помощью которого прикладная программа генерирует геометрические модели независимо от целевой пользовательской системы. Данный интерфейс обеспечивает мобильность прикладных программ, описывающих представления параметрических форм семейств деталей в соответствии с комплексом стандартов ИСО 13584.

Настоящий стандарт распространяется на:

- программы, генерирующие геометрические представления внутри моделирующих систем, не зависящих от целевых систем;

- программы, описывающие геометрические представления, созданные посредством геометрических определений с учетом ограничений;

- программы, структурирующие геометрические представления, созданные независимо от целевой системы;

- программы, описывающие атрибуты стиля воспроизведения для символической визуализации созданных представлений;

- программы, поддерживающие стандарты технического черчения для представления форм, включая 2D-механизм для невидимых линий;

Настоящий стандарт не распространяется на:

- точное управление изображением на мониторе приемного устройства;

- точное определение данных, создаваемых приемной системой;

- хранение параметрической модели в приемной системе.

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


В настоящем стандарте использованы нормативные ссылки на следующие стандарты*, которые необходимо учитывать при использовании настоящего стандарта. В случае ссылок на документы, у которых указана дата утверждения, необходимо пользоваться только указанной редакцией. В случае когда дата утверждения не приведена, следует пользоваться последней редакцией ссылочных документов, включая любые поправки и изменения к ним:

_______________

* Таблицу соответствия национальных стандартов международным см. по ссылке. - Примечание изготовителя базы данных.     


ИСО 128:1982 Технические чертежи. Общие принципы воспроизведения (ISO 128:1982, Technical drawings - General principles of presentation)

ИСО 1539:1991 Информационные технологии. Языки программирования. FORTRAN (ISO 1539:1991, Information technology - Programming languages - FORTRAN)

ИСО/МЭК 8824-1 Информационные технологии. Абстрактная синтаксическая нотация версии один (ASN. 1). Часть 1. Спецификация базовой нотации (ISO/IEC 8824-1, Information technology - Abstract Syntax Notation One (ASN. 1) - Part 1: Specification of basic notation)

ИСО 10303-11:1994 Системы промышленной автоматизации и их интеграция. Представление данных о продукции и обмен данными. Часть 11. Методы описания: справочное руководство по языку EXPRESS (ISO 10303-11:1994, Industrial automation systems - Product data representation and exchange - Part 11: Description methods: The EXPRESS language reference manual)

ИСО 10303-41:1994 Системы промышленной автоматизации и их интеграция. Представление данных о продукции и обмен данными. Часть 41. Основные понятия описания и поддержки продукта (ISO 10303-41:1994, Industrial automation systems - Product data representation and exchange - Part 41: Fundamentals of product description and support)

ИСО 10303-42:1994 Системы промышленной автоматизации и их интеграция. Представление данных о продукции и обмен данными. Часть 42. Интегрированный ресурс: геометрические и топологические представления (ISO 10303-42:1994, Industrial automation systems - Product data representation and exchange - Part 42: Integrated resources: Geometric and topological representation)

ИСО 10303-43:1994 Системы промышленной автоматизации и их интеграция. Представление данных о продукции и обмен данными. Часть 43. Интегрированный ресурс: структуры представлений (ISO 10303-43:1994, Industrial automation systems - Product data representation and exchange - Part 43: Integrated resources: Representation structures)

ИСО 10303-46:1994 Системы промышленной автоматизации и их интеграция. Представление данных о продукции и обмен данными. Часть 46. Интегрированный групповой ресурс: визуальное представление (ISO 10303-46:1994, Industrial automation systems - Product data representation and exchange - Part 46: Integrated generic resources: Visual presentation)

     3 Термины, определения, обозначения и сокращения

     3.1 Термины и определения


В настоящем стандарте использованы термины по ИСО 13584-10:

- абстрактная деталь (abstract part);

- система автоматизированного проектирования (computer aided design system);

- язык EXPRESS;

- функциональный вид (functional view);

- система управления библиотекой (library management system, LMS);

- поставщик библиотеки (library supplier);

- деталь (part);

- библиотека деталей (parts library);

- поставщик деталей (parts supplier);

- продукт (product);

- данные продукта (product data);

- программа (program);

- представление детали (representation of a part);

- поставщик (supplier);

- деталь поставщика (supplier part);

- библиотека поставщика (supplier library);

- структура (structure);

- пользователь (user);

- пользователь библиотеки (user library);

- вид (view);

- переменная управления видом (view control variable);

- протокол обмена видами (view exchange protocol).

     3.2 Прочие термины и определения


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

3.2.1 интерфейс прикладного программирования (Application Programming Interface; API): Множество функций, запускаемых из одной программы с помощью заданного синтаксиса, определенного в одной привязке.

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

3.2.3 локальная координатная система (Local Coordinate System; LCS): Ортогональная правосторонняя координатная система, используемая для ориентации и расположения в пространстве геометрических сущностей. Локальная координатная система моделируется сущностью axis2_placement.

3.2.4 параметр (parameter): Переменная с описанными именем и типом значений.

3.2.5 параметрическая модель формы [parametric (shape) model]: Выражение параметрической формы посредством модели данных.

3.2.6 параметрическая программа формы [parametric (shape) program]: Выражение параметрической формы посредством программы, ссылающейся на API (интерфейс прикладного программирования).

3.2.7 параметрическая форма (parametric shape): Общее описание семейства родственных форм и множества параметров. Параметрическая форма дает описание особой функции, действующей из области параметров на множество форм.

3.2.8 временная база данных (temporary database): Механизм, позволяющий хранить данные о конструкции или промежуточные данные перед передачей их в соответствующую систему CAD.

     3.3 Сокращения


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

2D - двухмерный (two Dimensional);

3D - трехмерный (three Dimensional);

API - интерфейс прикладного программирования (Application Programming Interface);

CAD - автоматизированное проектирование (Computer Aided Design);

EPS - допуск на значение величины (Epsilon), см. 4.6;

HLI - включение невидимых линий (Hidden Line Involved), см. 5.3.5;

LCS - локальная координатная система (Local Coordinate System);

LMS - система управления библиотекой (Library Management System);

MAX - максимальное значение величины (Maximal value), см. 4.6;

OVC - координатная система вида объекта (Object View Coordinate system), см. 5.3.1;

SDAI - стандартный интерфейс доступа к данным (Standard Data Access Interface);

TDB - временная база данных (Temporary Data Base), см. 5.3.4.

     4 Основные положения

     4.1 Требования к параметрическим описаниям

1) ИСО 13584 устанавливает механизм глобального описания форм различных деталей, принадлежащих одному семейству деталей библиотеки.

Пример 1 - В ИСО 4014 [1] приведены описания тысяч различных видов болтов. Описание формы каждого вида болта в отдельности нецелесообразно.

2) Каждое глобальное описание формы должно быть ассоциировано со множеством численных, строчных или булевых параметров, область значений которых характеризует каждую деталь рассматриваемого семейства. Механизм генерации каждой заданной формы (вне ее глобального описания с помощью особого множества v-значений параметров) должен быть детерминированным. Он определяет частную функцию f, действующую из области значений параметров D на множество форм S:

.

Данное описание называется параметрической формой.

Пример 2 - Глобальное описание двухмерного изображения сверху различных видов болтов, соответствующих требованиям ИСО 4014, зависит от двух действительных параметров L и D. Для каждой пары допустимых значений (l, d) параметров L и D рассматриваемый механизм генерирует детерминированную уникальную форму.

3) Параметрическая форма описывается графическими взаимосвязями пользователя. Иначе говоря, рассматриваемый механизм дает описания геометрии с учетом ограничений. Вычислитель ограничений является частью данного механизма.

     4.2 Формат обмена параметрических описаний формы

1. Программа, ссылающаяся на интерфейс прикладного программирования, может быть использована для обмена глобальных описаний формы, удовлетворяющих требованиям раздела 4.1. Интерфейс прикладного программирования описывает геометрические функции с учетом ограничений. Структура программного управления описывает глобальную функцию. Интерфейс прикладного программирования приемной системы представляет собой вычислитель геометрических функций с учетом ограничений. Указанная программа называется параметрической.

2. Допущение: используемая технология автоматизированного проектирования предусматривает генерацию параметрических форм в терминах параметрических программ, основанных на использовании интерфейса прикладного программирования с учетом стандартных ограничений на основе описания рассматриваемого семейства форм в диалоговом режиме с учетом особенностей системы.

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

     4.3 Внутреннее представление данных, созданных в приемной системе CAD


Спецификация интерфейса должна:

- быть достаточно точной для описания формы деталей их поставщиком;

- исключать какие-либо спецификации реализаций для обеспечения мобильности устройства моделирования системы CAD.

В настоящем стандарте эти две цели достигаются путем описания логической модели целевой моделирующей системы. Настоящая логическая модель определена как информационная модель на языке EXPRESS. Каждая функция интерфейса описана путем ссылки на эту логическую модель.

     4.4 Библиотека поставщика и ответственность пользователя LMS

1. Если деталь использована в некотором продукте, то представление формы детали и воспроизведение данной формы должны быть выполнены LMS и направлены в геометрическую моделирующую систему.

Пример - Если винт выбирается из LMS пользователем для вставки в чертеж при работе в системе CAD, то чертеж данного винта должен иметь на экране заданный цвет и заданную толщину линий в соответствии с выбранным представлением.

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

- посредством некоторого нестандартного процесса инициализации интерфейса пользователь LMS может создавать полное описание всего аспекта воспроизведения (например, толщины линий, их типа и цвета), соответствующего каждому логически определенному стилю;

- форма, генерируемая LMS, представляется на экране в соответствии с текущей визуализацией моделирующей системы.

     4.5 Совместимость

1. Элементы представления, созданные внутри модели данных продукта с помощью интерфейса, описанного в настоящем стандарте, подлежат обмену с помощью файла обмена, удовлетворяющего требованиям ИСО 10303. Все атрибуты сущности, которые не могут быть описаны поставщиком библиотеки, должны быть ограничены данной сущностью с помощью интерфейса. При этом учитывается процесс инициализации интерфейса, выполняемый пользователем библиотеки.

2. Если геометрическая моделирующая система поддерживает интерфейс SDAI [2], удовлетворяющий требованиям ИСО 10303-22, то интерфейс, описанный в настоящем стандарте, должен быть использован как аппликативный слой на верхнем уровне интерфейса SDAI.

Аппликативный слой содержит:

- решающую программу (далее - решатель) для вычисления геометрических сущностей с учетом ограничений;

- таблицу значений по умолчанию для атрибутов, установленных пользователем LMS, которая должна быть ограничена для каждой сущности, созданной с помощью SDAI.

Пример - Если дуга заданного радиуса стиля plain_solid_line должна касаться двух линий, то аппликативный слой содержит решатель, который вычисляет касательную окружность, ее параметры настройки и таблицы, содержащие точные значения толщины и цвета соответствующей плоской сплошной линии.

     4.6 Точность геометрических построений


Различные моделирующие системы обеспечивают различную числовую точность построений. Необходимо:

1) гарантировать, чтобы поставщик программ действовал надлежащим образом при каждой "корректной" реализации интерфейса;

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

В настоящем стандарте вышеуказанные цели достигаются путем определения ссылочных числовых границ различных мер, включенных в геометрические определения сущностей.

Определяют три ссылочные числовые границы:

1) EPS - это минимальное значение меры, включенной в меру геометрической сущностью.

Пример 1 - Прикладная программа не может задавать отрезок длиной меньше EPS.

2) MAX - максимальное значение меры, включенной в меру геометрической сущностью.

Пример 2 - Прикладная программа не может задавать дугу окружности радиусом более MAX.

3) ZERO_value (нулевое значение) - максимальное значение (математически вычисленного) расстояния между двумя точками, которые считаются совпадающими.

Пример 3 - Прикладная программа не может задавать контур (то есть замкнутую комбинированную кривую composite_curve), для которого расстояние между конечной точкой предшествующего сегмента данной комбинированной кривой composite_curve_segment и начальной точкой последующего сегмента данной кривой превышает нулевое значение ZERO_value.

Все указанные ссылочные числовые границы созданного геометрического представления масштабируют:

1) единицы длины вида view_length_unit масштабируют с помощью масштабного фактора view_length_scale_factor меры длины length_measure;

2) единицы угла вида view_angle_unit масштабируют с помощью меры плоского угла plane_angle_measure.

В настоящем стандарте для ссылочных числовых границ установлены следующие значения:

1) EPS = 10;

2) MAX = 10;

3) ZERO_value = 10.

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

     5 Интерфейс

     5.1 Спецификация и соответствие

     5.1.1 Допустимые уровни реализации


В настоящем стандарте приведено описание трех уровней реализации в соответствии с установленной геометрической мощностью интерфейса, имеющей значения: 2D-, 3D-кривая, тело. Значения мощности нумеруются: 1,2 и 3. Любой интерфейс i-го уровня мощности должен содержать все функции j-го уровня мощности для j<i. Таким образом, он может создавать виды j-го уровня геометрической мощности geometrical_power_level, если указанный уровень мощности установлен посредством инициализации вида. Для любой геометрической мощности интерфейса вид может быть также создан для уровня геометрической мощности geometrical_power_level, равного 0.

Определены три уровня реализации интерфейса (от 1 до 3). Все функции классифицированы в соответствии с данными уровнями. Рассматриваемая реализация должна обеспечивать (для выбранного приложения) все функции уровня, которому она принадлежит. Доступ к уровню интерфейса обеспечивается с помощью функции запроса.

     5.1.2 Моделирование отсутствующих сущностей


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

     5.2 Таблицы интерфейса


Текущие характеристики интерфейса хранятся в таблицах интерфейса. Значения указанных элементов таблиц запрашиваются прикладными программами с помощью функций запроса, описанных в настоящем стандарте, содержащем две таблицы:

1) таблица описаний интерфейса представляет все постоянные характеристики интерфейса (например, уровень интерфейса interface_level, характеристики невидимых линий hidden_line_capability и т.д.). Указанные значения запрашиваются прикладной программой, но не могут быть ею изменены. Эти значения зависят от реализации;

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

Примечание - В первой версии настоящего стандарта уровень 3 соответствует созданию тел с неявной топологией (сущности твердого тела, очерчивание, булевы операции). Он известен как уровень "конструктивной блочной геометрии". В более поздних версиях создание явных топологических элементов (вершин, кромок, граней и т.д.) может быть представлено как уровень 4. Он известен как уровень "B-Rep" (уровень представления границ).


Описание содержимого таблиц интерфейса приведено в разделе 8.

     5.3 Создание данных модели продукта


В настоящем подразделе приведена концепция создания геометрической модели внутри геометрической моделирующей системы с помощью прикладного программирования. В контексте библиотек деталей, соответствующих требованиям ИСО 13584, данный подраздел предназначен для разработчиков программного обеспечения библиотек деталей, создающих данные модели детали внутри некоторой системы CAD.

Если функциональный вид выбирается в LMS, то рассматривают программу поставщика детали. Данный функциональный вид связан с экземпляром детали (объекта), описание которого должно быть предоставлено поставщиком детали.

Программа поставщика детали строит заданный функциональный вид с помощью функций интерфейса.

     5.3.1 Ссылочные координатные системы видов (OVC)


Функциональный вид, созданный с помощью функций интерфейса, состоит из элементов геометрического представления geometric_representation_items. Каждый вид создается с помощью прикладного программирования внутри собственного контекста геометрического представления geometric_representation_context. Данный контекст называется координатной системой вида объекта object_view_modelling_coordinate_system (OVC). Прикладная программа не зависит от относительного расположения OVC в координатной системе CAD. Система управления библиотекой (LMS) отвечает за инициализацию вида. Считается, что после выполнения функции инициализации вида все элементы геометрического представления geometric_representation_items, посылаемые в CAD в их собственной OVC, точно позиционируются и/или преобразуются.

Функция инициализации вида View_lnitialisation должна, следовательно, активизировать некоторый неописанный процесс позиционирования. На практике (в соответствии с особой философией CAD) процесс позиционирования может, например:

1) определять новые локальные координатные системы, если CAD использует механизм создания экземпляров;

2) подключать OVC к курсору для последующего позиционирования;

3) организовывать некоторые взаимосвязи с пользователем CAD, необходимые для запроса текущего положения и инициализации матрицы преобразования интерфейса;

4) вычислять правильное положение, если оно определяется положением экземпляра объекта, и инициализировать матрицу преобразования интерфейса;

5) выполнять пустую операцию, если вид создан в начале глобальной координатной системы и позиционируется впоследствии пользователем CAD.

Если вид инициализирован как двухмерный, то 2D-пространство является плоскостью координат х, у. В данном случае использование координаты z не имеет смысла для геометрических сущностей. Для них координата z равна 0.

Если данные библиотеки деталей удовлетворяют требованиям комплекса стандартов ИСО 13584 и несколько программ поставщика детали ссылаются на различные функциональные виды одной детали, то OVC, используемые в данных программах, зависят друг от друга. Абсолютная координатная система ассоциируется с деталью с помощью поставщика. Все программы поставщика детали, создающие функциональные 3D-виды настоящей детали, должны использовать данную абсолютную координатную систему как их собственную OVC. Все программы поставщика детали, создающие функциональные 2D-виды настоящей детали, должны:

1) давать описание функционального 2D-вида, созданного каждой программой поставщика детали, в соответствии со стандартом ИСО 128 (см. рисунок 1);

2) выбирать в качестве OVC (для каждой программы поставщика детали) координатную систему, полученную из абсолютной координатной системы детали и из спецификации созданного функционального 2D-вида (см. рисунок 1).

     
Bottom - вид снизу; right side - вид справа; left side - вид слева; front - вид спереди; back - вид сзади; top - вид сверху

Рисунок 1 - Абсолютная координатная система детали (определяется поставщиком)

     5.3.2 Геометрические единицы OVC


Используемые в OVC единицы длины и единицы плоского угла определяются тремя записями таблицы статуса интерфейса: единицы длины вида view_length_unit, масштабный фактор длины вида view_length_scale_factor и единицы угла вида view_angle_unit. Запись view_length_unit определяет базовую единицу длины вида. Это может быть метр (metre) или дюйм (inch). Запись view_length_scale_factor определяет мультипликативный масштабный фактор, на который умножается базовая единица длины. Запись view_angle_unit определяет единицу плоского угла вида. Это может быть радиан (rad), градус (deg) или град (grad). В настоящем стандарте термин "единица OVC" означает либо единицу длины вида view_length_unit, масштабированную с помощью множителя view_length_scale_factor (единицу длины координатной системы OVC_length_unit), либо единицу угла вида view_angle_unit (единицу угла координатной системы OVC_angle_unif).

Значения единиц измерения OVC представлены в разделе 8.2 настоящего стандарта. Данные значения по умолчанию могут быть переопределены поставщиком детали (вне используемой программы). Новые значения единиц составляют часть функциональной модели программы поставщика детали. Значения по умолчанию единиц измерения устанавливаются в процессе инициализации вида. Они могут запрашиваться, но не могут быть изменены прикладной программой. Все геометрические размеры, которые могут задаваться (вычисляться) прикладными программами, описаны как текущие единицы измерения OVC.

Интерфейс гарантирует правильное масштабирование при переходе из единиц OVC в единицы моделирующего пространства CAD. Указанное масштабирование называется "преобразование OVC - CAD". Оно применяется для всех элементов геометрических представлений, созданных с помощью функций интерфейса.

     5.3.3 Содержимое вида


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

     5.3.4 Временная база данных


Временные базы данных (TDB) используются для промежуточных геометрических построений. Функции интерфейса позволяют создавать геометрические сущности либо во временной базе данных, либо в данных CAD. Сущности с временными данными могут быть ссылочными, их можно редактировать, использовать при геометрических построениях или направлять в CAD. Сущности внутри CAD уже не являются ссылочными. Если сущность временной базы данных направляется в CAD, то к временным данным она уже не относится.

Для геометрических сущностей с одинаковыми типами визуализации атрибуты могут быть созданы как сущности временной базы данных, так и в CAD.

Атрибуты визуализации прикрепляются к данным сущностям, если они созданы на модальной основе. Это может иметь место как в TDB, так и в CAD. В TDB атрибуты сущности могут быть изменены. Если сущность посылается из TDB в CAD, то атрибуты визуализации данной сущности сохраняют свои текущие значения в TDB.

Сущности с временными данными могут быть геометрически сдвинуты или дублированы. Эти геометрические манипуляции не изменяют атрибуты визуализации: модифицированные (дублированные) сущности сохраняют атрибуты визуализации исходных сущностей.

В TDB и CAD имеются различные структурные соотношения. Сущности, посылаемые в CAD, структурированы с помощью комплектов. Комплекты - это объекты, постоянно присутствующие в базе данных CAD. Используется иерархическая структура комплектов. Для структур элементов TDB используются временные групповые структуры. Групповые структуры могут быть использованы для создания геометрических элементов. Данные групповые структуры также являются иерархическими. Максимальное количество сущностей, допускаемое в TDB при реализации интерфейса, должно быть не менее количества, установленного в разделе 9 настоящего стандарта.

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

     5.3.5 Процесс удаления невидимых линий


В настоящем разделе дано описание концепции невидимых линий 2D-видов, созданных интерфейсом.

1. В дополнение к имеющимся сущностям кривых 2D-интерфейсы могут создавать "непрозрачные" заполненные области.

2. Запись таблицы статуса интерфейса, называемая включенной невидимой линией hidden_line_involved (HLI), указывает, включена или нет сущность кривой или сущность заполненной области (созданной интерфейсом) в процесс удаления невидимых линий. Если значение HLI "true", то каждая сущность кривой или сущность заполненной области (созданная функцией интерфейса) должна быть включена в процесс удаления невидимых линий и может подключаться к предварительно определенному стилю затенения изображения api_predefined_occlusion_style интерфейса прикладного программирования. Api_predefined_occlusion_style должен содержать атрибут view_level (представляющий действительное значение высоты сущности в некотором виртуальном 3D-пространстве), а также атрибут имени name, дающий описание того, как следует изменить сущность, если она становится невидимой. Непрозрачная заполненная область скрывает полностью или часть сущности кривой находящегося внутри области и имеющего меньшее значение уровня вида. Заполненная область не должна скрывать сущности кривых с тем же значением уровня вида.

3. Если значение HLI "false", то созданные сущности кривой и заполненной области можно направлять в CAD, если прикладная программа запрашивает выполнение указанной передачи с помощью функции Fix_Ent (функция фиксирования сущности в CAD) или запрашивает их непосредственное создание в CAD в процессе построения вида. Если значение HLI "true", то сущность кривой и сущность заполненной области остаются в интерфейсе до окончания процесса удаления невидимых линий.

4. Если прикладная программа запрашивает передачу в CAD сущности, включенной в процесс удаления невидимых линий, то либо с помощью функции Fix_Ent, либо путем запроса на непосредственное его создание в CAD данная сущность подключается к предварительно определенному виртуальному стилю интерфейса прикладного программирования api_predefined_vitually_sent_style, то есть отправляется виртуально. Если сущность отправлятся виртуально, то указанный виртуальный стиль api_predefined_vitually_sent_style должен содержать атрибут задания имени интерфейса прикладного программирования api_set_name, определяющий (в формате строки) уникальное имя текущего открытого множества.

5. Процесс удаления выполняется после завершения построения вида. В данный процесс включаются только сущности, отправленные виртуально. Сущности временной базы данных не включаются.

6. Если отправленная виртуально сущность кривой частично скрыта заполненной областью, то ее видимая часть имеет текущий стиль кривой. Части виртуально отправленной сущности невидимой кривой обрабатываются в соответствии с атрибутом name и требованиями предварительно определенного стиля затенения визуализации интерфейса прикладного программирования api_predefined_occlusion_style.

Значения атрибута:

Сущности кривой и заполненной области:

no_change

отправляются без каких-либо изменений;

dashed (штриховая линия)

отправляются как невидимые линии, если данное свойство существует в используемой системе CAD. В противном случае сущности кривой, границы заполненной области и штриховка отправляются как штриховые линии;

invisible (невидимая линия)

отправляются как невидимые линии, если настоящее свойство существует в используемой системе CAD. В противном случае отправка не производится.


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

Включение точек в настоящем стандарте не рассматривается.

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

Процесс удаления невидимых линий может быть активизирован только для 2D-видов.

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

     5.3.6 Процесс представления


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

Указанные цели достигаются нижеследующим способом (см. подразделы 6.2.4 и 6.2.5):

1) все стили воспроизведения определяются либо как предварительно определенные стили, либо как внешне определенные стили;

2) предварительно определенные стили соответствуют настоящему стандарту. Внешне определенные стили соответствуют как настоящему стандарту, так и любому другому стандарту серии, распространяющейся на обмен данными о деталях;

3) предварительно определенные стили или внешне определенные стили описывают визуализацию соответствующего стиля только частично. В соответствии с определенными требованиями они могут устанавливать режим задания цвета, например, как зависящий от реализации;

4) интерфейс - это инструмент пользователя CAD для задания точных значений всех атрибутов изображений, зависящих от реализации для каждого предварительно определенного или внешне определенного стиля;

5) если протокол обмена видами (на который производится ссылка в прикладной программе) не поддерживается данной реализацией интерфейса, то первый стиль, определенный для текущего элемента представления в настоящем стандарте, должен быть использован вместо неизвестного стиля. При этом сообщение об ошибке не возникает.

     5.4 Структура сущностей

     5.4.1 Структура группы в TDB


В используемых TDB сущности объединяются в группы, определяемые сущностью entity_structured. Если функция предназначена для выполнения операций в группе, то она выполняет эти операции в режиме повторения (рекурсивно) для каждой соответствующей сущности группы. Если данная функция является функцией дублирования, то ее результатом также является группа. Указанная группа принадлежит текущей открытой группе, она имеет такую же групповую структуру, как и исходная функция. Дубликат открытой группы является замкнутой группой. Если данная функция является функцией модификации, то она сохраняет групповую структуру существующих сущностей, находящихся внутри модифицированной группы.

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

TDB сама является группой. Она называется корневой группой root_group. Данная группа открыта и не должна закрываться, если интерфейс инициализирован. Таким образом, всегда должна существовать открытая группа.

За исключением корневой группы каждая сущность (геометрическая или структурированная) должна принадлежать только одной группе (которая может быть корневой группой). Группы структурируются в соответствии с иерархической структурой дерева. Корнем дерева является корневая группа.

Группы могут быть:

- созданными: они принадлежат текущей открытой группе или становятся текущей открытой группой;

- открытыми повторно: все сущности, созданные в TDB после повторного открытия группы, принадлежат данной группе до ее закрытия;

- закрытыми.

Сущности, направляемые (созданные) в CAD, удаляются из групповой структуры.

Для формирования иерархической групповой структуры открытые группы управляются с помощью стека. Верхним уровнем стека является текущая открытая группа.

Если интерфейс инициализирован, то корневая группа помещается в стек. Никакая функция не может закрыть данную группу, поэтому она всегда должна оставаться в стеке.

Если группа является созданной, то: 1) она принадлежит текущей открытой группе; 2) она помещается на вершину стека. Таким образом, она становится текущей открытой группой.

Только группы, находящиеся на вершине стека, могут быть закрытыми. В настоящем случае группа удаляется из стека, и на вершине стека размещается следующая открытая группа.

Если группа открыта повторно, то она помещается на вершине стека. Это не изменяет свойства группы, которой принадлежит группа, открытая повторно.

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

Функция Remove_Ent_Grp удаляет сущности (геометрические или структурированные) из группы. По окончании выполнения функции сущность должна принадлежать корневой группе.

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

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

Группы являются локальными по отношению к TDB. Группы облегчают геометрические построения. Максимальное количество групп, допускаемых реализацией интерфейса, должно быть не менее, чем количество, установленное в разделе 9 настоящего стандарта.

     5.4.2 Структура сущностей, направляемых в CAD


Принято, что данные, хранящиеся в базе данных CAD, разделены на подмножества. Концептуально все данные принадлежат видам. Внутри некоторого вида геометрические данные структурированы в множества и подмножества в соответствии с иерархической структурой дерева. Структура, придаваемая данным, отправляемым используемой прикладной программой, описывается CAD следующим образом:

1) перед отправкой любых данных LMS инициализирует вид. Все данные, направляемые в CAD в промежуток времени между указанной инициализацией и окончанием работы прикладного программирования, должны принадлежать виду. Рассматривамый вид не должен содержать других видов;

2) функция Open_Set открывает множество. Имя множества размещается на вершине заданного стека. Все геометрические сущности, направляемые в CAD, должны принадлежать настоящему множеству. Множество является подмножеством имеющегося содержимого вершины заданного стека или, если данный стек пуст, подмножеством вида.

Функция закрытия множества Close_Set применяется только для множества, которое уже находится на вершине данного стека. При вызове данной функции множество закрывается и его имя удаляется из стека. Если стек заполнен, то вершина стека содержит текущее открытое множество. Если стек пуст, то открытого множества нет. Закрытое множество не подлежит повторному открытию. Имя каждого множества должно быть уникальным внутри вида. Максимальный размер стека множества, допускаемый для TDB реализацией интерфейса, должен быть не менее, чем размер, установленный в разделе 9 настоящего стандарта.

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

     5.5 Имя геометрической или структурированной сущности

       

   Для ссылки на любую сущность, созданную в TDB, все сущности, созданные функцией интерфейса, именуются значениями, принадлежащими некоторому абстрактному типу данных entity_name_type.  Значение указанного абстрактного типа данных либо равно 0, либо неизвестно. Если функция интерфейса не срабатывает и не позволяет создать некоторую сущность, то возвращаемое значение равно 0. Если сущность отправляется в CAD и доступ к сущности уже невозможен, то ее имя становится неизвестным. Неизвестное значение, как правило, возвращается функциями интерфейса, если сущность создана непосредственно в базе данных CAD. Если для функции интерфейса в качестве значений аргументов выбирается 0 или "неизвестное значение", то возвращаемое значение равно 0.

Все значения, не являющиеся нулевыми или неизвестными значениями имени сущности и возвращенные функцией интерфейса в одном сеансе, то есть с момента запуска LMS прикладной программой и до момента возвращения значения данной программой, должны быть уникальными. Имя сущности не может быть использовано повторно, даже если она направлена в CAD.

Примечание - На языке FORTRAN тип имени сущности entity_name_type представляется целым числом INTEGER. Нулевое значение отображается на 0. Неизвестное значение отображается на отрицательное целое. Таким образом, доступное имя сущности может отображаться только на положительное целое.

     5.6 Координатная система и ее преобразование


Интерфейс имеет функции, которые могут изменять ссылочную координатную систему пространства с заданной OVC. Прикладные программы могут использовать такие четыре функции: Ref_Sys_3_Pnt, Ref_Sys_2_Dir, Ref_Sys_Position_Relative и Ref_Sys_A2p. После изменения координатной системы (либо в TDB, либо в базе данных CAD) все сущности определяются в новой ссылочной координатной системе.

Для сохранения предшествующей ссылочной координатной системы функция Ref_Sys_A2p создает локальную координатную систему (сущность axis2_placement) из текущей ссылочной координатной системы вида объекта (OVC). Указанная замена ссылочной координатной системы на данную LCS производится так, что позволяет вернуться к исходной OVC.

     5.7 Состояние ошибки интерфейса


Глобальная переменная ошибки error_variable задается, если идентифицируется состояние ошибки в процессе выполнения функции интерфейса. Эта переменная принимает целочисленное значение из таблицы статуса интерфейса. Оно совпадает с номером ошибки, определяемым функцией спецификации. При этом в таблицу статуса интерфейса вносится запись "error_origin" с указанием имени функции, где произошла ошибка. Запись "error_text" содержит сообщение, ассоциированное с номером ошибки. Именем функции должно быть синтаксическое имя на текущем используемом языке программирования (например, на языке FORTRAN). Сообщение должно быть переводом описания ошибки (см. подраздел 5.8.1). Указанные переменные ошибки могут запрашиваться и задаваться повторно с помощью прикладных программ.

Если переменная ошибки error_variable определена, значит, интерфейс находится в состоянии ошибки (error_state = true). В указанном состоянии ошибки могут работать только нижеследующие функции интерфейса, установленные в приложении А настоящего стандарта:

1) функции запроса;

2) функции перезагрузки из состояния ошибки Reset_Error_State.

Все прочие функции интерфейса являются допустимыми, но изменить что-либо они не могут. Они возвращаются к вызывающей прикладной программе. Если прикладная программа возвращается, когда интерфейс находится в состоянии ошибки, то LMS должна:

1) закрыть все открытые множества;

2) закрыть открытый вид со значением error_state = true;

3) сделать записи в файле ошибок: error_variable, error_origin, error_text;

4) закрыть интерфейс.

     5.8 Исправление ошибок

     5.8.1 Методология исправления ошибок

Для каждой функции интерфейса имеется описание конечного количества состояний ошибки, при котором переменным ошибки присваиваются некоторые значения. Каждая реализация интерфейса должна поддерживать режим проверки ошибки. Переменные ошибки обеспечивают связь между прикладной программой и стандартным интерфейсом. Прикладная программа запрашивает значение ошибки, интерпретирует информацию об ошибке и заново устанавливает значение переменной ошибки error_variable = zero, чтобы восстановить интерфейс в состоянии "отсутствие ошибки" (error_state = false). Выбираемая стратегия исправления ошибок интерфейса соответствует нижеследующей классификации ошибок:

- класс I - ошибки, приводящие к заранее известной реакции системы;

- класс II - ошибки, связанные с попыткой сохранить результаты или предшествующие операции;

- класс III - ошибки, приводящие к непредсказуемым результатам, включая разрушение CAD.

Интерфейс распознает три ситуации выявления ошибки:

- ситуация А - ошибка в функции интерфейса;

- ситуация Б - ошибка в функции, вызываемой из интерфейса (функции CAD, функции операционной системы и т.д.);

- ситуация В - ошибка вне интерфейса.

Если ошибки выявлены вне интерфейса (ситуация В), то либо прикладная программа принимает на себя управление выполнением операций, либо выполнение программы заканчивается ненормально. В последнем случае результаты являются непредсказуемыми (класс III), это может привести к разрушению CAD. Если тем не менее прикладная программа принимает на себя управление, то она может попытаться вернуться в LMS, чтобы попробовать закрыть интерфейс надлежащим образом (см. раздел 5.7). Операции, определенные в разделе 5.7, могут быть также выполнены самим интерфейсом. Это стандартная реакция на ошибки класса II.

Все ошибки, явно представленные в перечне как часть определения функции интерфейса, принадлежат к классу I. Они либо возникают внутри самого интерфейса (ситуация A), либо возникают, когда функция, вызванная из интерфейса, передает управление обратно некоторой функции интерфейса вместе с соответствующей информацией об ошибке (ситуация Б). Во всех случаях выявления ошибок класса I интерфейс задает значения переменным ошибки error_variable, error_origin и error_text. Если в процессе создания функции сущности имеет место сбой и сущность не может быть создана, то имя сущности, вычисленное функцией, устанавливается равным 0. Если функция интерфейса активизируется с более чем одним состоянием ошибки, то любой из соответствующих номеров ошибки может быть присвоен переменной ошибки.

Функция запроса lnq_Error_State позволяет исправлять ошибки с помощью прикладного программирования. Функция Reset_Error_State выводит интерфейс из состояния ошибки. Закрытие открытого вида при значении переменной error_state = true позволяет LMS заранее предупредить CAD о том, что вид является неправильным.

При наступлении состояния ошибки функции запроса действуют в соответствии с их функциональным описанием (см. приложение A), их действия не должны генерировать новых ошибок. Поэтому для функций запроса описаний ошибок не существует. Для сообщений о возможных трудностях в процессе выполнения функций используется особый выходной параметр: error_indicator (индикатор ошибок).

Каждая ошибка имеет свой индивидуальный номер:

1) номера менее 1001 не используются. Они зарезервированы для последующих обновлений стандарта;

2) номера ошибок от 1000 до 2000 зарезервированы для привязок языка программирования.

     5.8.2 Сообщения об ошибках



Таблица 1 - Сообщения об ошибках входа

Номер ошибки

Описание ошибки

1

Имя сущности не определено (значение равно 0, значение неизвестно)

2

Недопустимый тип сущности

3

Значение меры длины находится вне допустимого диапазона

4

Значение меры плоского угла находится вне допустимого диапазона

5

Целочисленное значение находится вне допустимого диапазона

6

Значение строки находится вне допустимого диапазона

7

Действительное значение находится вне допустимого диапазона



Таблица 2 - Сообщения об ошибках геометрии

Номер ошибки

Описание ошибки

101

Попытка создания вырожденной сущности

102

Модуль вектора направления лежит вне установленного диапазона [EPS, MAX]

103

Расстояние между двумя точками лежит вне установленного диапазона [EPS, MAX]

104

Расстояние между двумя контурами менее EPS

105

Попытка создания вырожденного направления в процессе создания сущности

106

Попытка создания вырожденной оси axis2_placement в процессе создания сущности

107

Попытка создания вырожденной оси axis1_placement в процессе создания сущности

108

Попытка создания вырожденной базовой кривой в процессе создания сущности

109

Попытка создания вырожденного твердого тела в процессе создания сущности

110

Попытка создания точки вне параметрического диапазона сущности кривой

111

Попытка создания линии длиной вне установленного диапазона [EPS, MAX]

112

Попытка создания дуги длиной менее EPS

113

Попытка создания самопересекающейся сущности контура

114

Попытка создания твердого тела с перекрытием

115

Заданные сущности являются идентичными

116

Заданные точки линейно зависимы

117

Заданные направления параллельны

118

Заданные сущности кривой параллельны (концентрические)

119

Заданные сущности не лежат в одной плоскости

120

Заданный отрезок слишком длинный

121

Слишком большой (маленький) радиус

122

Пересечение заданных сущностей кривой отсутствует

123

Выявлено пересечение заданных контуров

124

Выявлено пересечение осей поверхности

125

Выявлено перекрытие заданных контуров

126

Ось поворота не лежит на плоской поверхности

127

Геометрическое построение нецелесообразно

128

Неустойчивый процесс вычисления конической дуги

129

Сбой процесса аппроксимации замыкания контура

130

Сбой булевой операции



Таблица 3 - Сообщения об ошибках системы

Номер ошибки

Описание ошибки

201

Переполнение временной базы данных

202

Ошибка при отправке сущности в CAD

203

Функция несовместима с текущим уровнем интерфейса

204

Функция несовместима с текущим уровнем мощности

205

Превышено максимально допустимое число точек по линии

206

Превышено максимально допустимое число сущностей контура

207

Превышено максимально допустимое число внутренних границ

208

Превышено максимально допустимое число групп

209

Превышено максимально допустимое число символов строки

210

Переполнение стека группы

211

Переполнение заданного стека

212

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



Таблица 4 - Сообщения об ошибках структуры сущностей

Номер ошибки

Описание ошибки

301

Попытка закрыть корневую группу

302

Попытка повторно открыть открытую группу

303

Сущность является членом корневой группы

304

Сущность содержит текущую открытую группу

305

Попытка создания цикличной групповой структуры

306

Имя множества не является уникальным

307

Попытка закрыть корневое множество



Таблица 5 - Сообщения об ошибках стиля воспроизведения

Номер ошибки

Описание ошибки

401

Источник протокола обмена неизвестен

402

Идентификатор внешнего стиля неизвестен

403

Сбой при назначении стиля штриховки

404

Стиль затенения невидимых линий не подключен



Таблица 6 - Сообщения об ошибках привязки языка программирования

Номер ошибки

Описание ошибки

1001

Порядковый номер находится вне установленного диапазона

1002

Несоответствие порядкового номера и длины перечня

1003

Неправильно задана длина строки

     

     6 Логическая модель целевой моделирующей системы

     6.1 Элемент геометрического представления


Функции интерфейса создают элементы представления либо в TDB, либо в базе данных CAD.

Существует три вида элементов представления:

- элементы геометрического представления: геометрические сущности или сущности комментариев, используемые для описания формы, созданной с помощью интерфейса;

- стили: сущности, используемые для описания характеристик визуализации элементов геометрического представления;

- структурированные сущности: используются для структурирования элементов геометрического представления либо в TDB, либо в базе данных CAD.

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

Graphical element - графический элемент; mathematical - математические представления; point - точка; curves - кривые; fill_area - заполненная область; surface - поверхность; geometric solid - геометрическое тело; cartesian_point - декартова точка; annotation_fill_area - заполненная область комментариев; api_planar_surface - плоская поверхность интерфейса прикладного программирования; fill_area_style_hatching - штриховка заполненной области; basic - базовый; conic_arc - коническая дуга; general - основной; solid model - твердотельная модель; half_space_solid - тело в полупространстве; api_line - линия интерфейса прикладного программирования; api_elliptical_arc - дуга эллипса интерфейса прикладного программирования; polyline - полилиния; CSG - конструктивная блочная геометрия; sweep - тело, построенное очерчиванием контура; api_circular_arc - дуга окружности интерфейса прикладного программирования; api_hyperbolic_arc - дуга гиперболы интерфейса прикладного программирования; api_contour - контур интерфейса прикладного программирования; primitive - примитив; boolean - булев; extruded_area_solid - тело, полученное вытягиванием; api_parabolic_arc - дуга параболы интерфейса прикладного программирования; sphere - сфера; boolean_result - булев результат; revolved_area_solid - тело, полученное вращением; right_circular_cone - прямой круговой конус; hidden line involvement in 2D - включение невидимых линий в 2D-вид; direction - направление; right_circular_cylinder - прямой круговой цилиндр; axis1_placement - размещение оси 1; torus - тор; axis2_placement (LCS: local coordinate system) - размещение оси 2 (локальная координатная система); block - блок; right_angular_wedge - прямой клин

Рисунок 2 - Элементы геометрического представления, определяемые в интерфейсе


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

Реализация элементов геометрического представления внутри TDB или внутри CAD не является стандартной. Тем не менее модель указанной реализации установлена в настоящем стандарте для описания геометрического поведения каждой сущности в процессе манипуляции с ней. Настоящая модель определена с помощью абстрактной модели данных на языке EXPRESS. Данная абстрактная модель схемы api_abstract_schema использует подмножество групповых ресурсов, определенных в ИСО 10303 (части 41, 42, 43 и 46), содержащих описание данных модели продукта. Указанные ресурсы называются групповыми ресурсами ИСО 10303. Настоящая абстрактная модель данных не обязательна для применения в TDB или CAD.

Все сущности, созданные с помощью интерфейса, должны вести себя в соответствии с указанной абстрактной моделью данных.

Если реализация интерфейса создает сущности, удовлетворяющие требованиям некоторого протокола приложения, соответствующего ИСО 10303, описывающего групповой ресурс, то данное описание применяется для подмножества указанных ресурсов, используемых схемой api_abstract_schema. Любая дополнительная информация генерируется интерфейсом.

Типы и сущности схемы api_abstract_schema, определенные в групповом ресурсе, удовлетворяющем требованиям ИСО 10303, сохраняют свои имена, установленные указанным стандартом, даже если в их определении содержатся некоторые дополнительные ограничения допустимых подтипов. Указанные ограничения проверяются интерфейсом. Если они удовлетворяются, то созданные сущности должны соответствовать определению, данному ИСО 10303. Дополнительные правила типа "Где?" (WHERE RULES) (выражающие специфические ограничения схемы api_abstract_schema) идентифицируются именем с приставкой "api_".

Некоторые сущности также определяются с помощью сущностей явного выделения подтипов, определенных интегрированным ресурсом ИСО 10303. Выделение подтипов используется для описания диапазонов значений некоторых функций интерфейса. Имена таких сущностей имеют приставку "api_". Выделение подтипов в общем случае состоит в задании ограничений для сущностей, определенных интегрированным ресурсом ИСО 10303. Указанная сущность может быть применена как экземпляр их супертипа или как экземпляр специализации указанных супертипов, определенных в некотором протоколе приложений, удовлетворяющем требованиям ИСО 10303.

Таким образом, некоторые сущности получаются путем обобщения сущностей, определенных в групповых ресурсах ИСО 10303, путем добавления новых атрибутов. Указанные сущности используются главным образом для определения структур и их визуализации. Если целевая CAD представляет собой архив (соответствующий протоколу приложений, удовлетворяющему требованиям ИСО 10303), то интерфейс должен гарантировать отображение этих сущностей на ресурс, доступный внутри указанного протокола приложений. Для отображения дается текстовое описание в определении сущности, работающей в интерфейсе прикладного программирования.

Если некоторые дополнительные ограничения налагаются групповым ресурсом ИСО 10303, представленным на языке EXPRESS, то указанные ограничения фиксируются в особом примечании. Если ограничения не зафиксированы, то определение ресурса соответствует определению группового ресурса ИСО 10303.

В интегрированных ресурсах комплекса стандартов ИСО 10303 некоторые групповые ресурсы явно ссылаются на другие групповые ресурсы, которые не активизируются и не используются для ссылок схемой api_abstract_schema. Их экземпляр не может появиться в совокупности, удовлетворяющей требованиям схемы api_abstract_schema. На эти ресурсы производятся ссылки из соответствующей схемы (представленной на языке EXPRESS) интегрированного ресурса ИСО 10303. Это необходимо для сохранения структуры данных групповых ресурсов [особенно существующих правил типа "Где?" (WHERE RULES)] при условии сохранения корректности используемой схемы. На указанные сущности ссылаются в соответствии с правилами типа "Где?" (WHERE RULES), дублированными из групповых ресурсов ИСО 10303, но не из сущностей, принадлежащих схеме api_abstract_schema. Таким образом, данная ссылка является только формальной.

Сущности, созданные интерфейсом, не могут быть вырожденными. Понятие вырождения не должно зависеть от какой-либо реализации интерфейса. В настоящем стандарте ограничения определены для каждой сущности, создаваемой интерфейсом. Сущность, не удовлетворяющую этим ограничениям, называют вырожденной. Если функция пытается создать вырожденную сущность, то возникает ошибка. Такая сущность не должна быть создана, формирование сообщения об ошибке обязательно.

Вырождение сущности определяется путем ссылки на абсолютное минимально допустимое значение EPS, выраженное через (текущую) единицу длины view_length_unit и масштабный фактор view_scale_factor.

.      

Если некоторая реализация интерфейса не может создавать сущности с характерным размером EPS для заданной единицы длины view_length_unit с помощью прикладного программирования, то при осуществлении функции set_OVC_length_unit, запущеннной LMS, должна возникать ошибка.

Константа ZERO_value определяет действительное значение, идентифицирующее нуль с помощью интерфейса на любой стадии его реализации. Если расстояние между двумя точками меньше величины ZERO_value, то эти две точки считаются совпадающими в данном интерфейсе.

Например, если расстояние между двумя точками composite_curve_segment, принадлежащими одной комбинированной кривой composite_curve, меньше ZERO_value, то интерфейс должен обеспечивать непрерывность данной комбинированной кривой composite_curve вне зависимости от требуемой точности целевой CAD. Величина ZERO_value выражается через (текущую) единицу длины view_length_unit и масштабный фактор view_scale_factor.

.

Примечание - Определение этих двух значений указывает на нецелесообразность точных действительных вычислений, результаты которых могут быть неоднозначными. Полученное решение, часто используемое на практике, состоит в определении диапазона [ZERO_value, EPS] запрещенных действительных значений.

     6.1.1 Схема API_ABSTRACT_SCHEMA

В настоящем подразделе установлены требования к схеме api_abstract_schema. Нижеследующая спецификация на языке EXPRESS представляет блок схемы api_abstract_schema и ее ссылки на внешние ресурсы, необходимые для обеспечения соответствия с определением группового ресурса, приведенные в ИСО 10303. Экземпляры указанных ссылочных сущностей не должны составлять совокупность, созданную с помощью функции интерфейса.

Спецификация на языке EXPRESS:

*)

SCHEMA api_abstract_schema;

REFERENCE FROM geometry_schema

(pcurve);

REFERENCE FROM measure_schema

(measure_with_unit,

descriptive_measure);

REFERENCE FROM presentation_appearance_schema

(surface_style_usage,

presentation_style_by_context,

fill_area_style_colour,

fill_area_style_tiles,

pre_defined_hatch_style,

pre_defined_presentation_style,

pre_defined_tile_style,

externally_defined_hatch_style,

externally_defined_curve_font,

externally_defined_tile_style,

curve_style_font,

curve_style_font_and_scaling,

text_style,

point_style,

symbol_style,

approximation_tolerance);

(*

Примечание - Вышеуказанные ссылочные схемы определены в следующих частях ИСО 10303:

geometry_schema - в ИСО 10303-42;

measure_schema - в ИСО 10303-41;

presentation_appearance_schema - в ИСО 10303-46.

6.1.1.1 Определение констант схемы API_ABSTRACT_SCHEMA: точность геометрических представлений

В настоящем подразделе установлены поименованные константы, используемые схемой api_abstract_schema как ссылочные числовые границы для обеспечения точности геометрических представлений.

Спецификация на языке EXPRESS:

*)

CONSTANT

EPS : REAL := 1.E-3;

ZERO_VALUE : REAL := 1.E-6;

MAX : REAL := 1.E+4;

END_CONSTANT;

(*

Примечание - В контексте схемы api_abstract_schema значения EPS, ZERO_value и MAX выражают с помощью единиц длины view_length_unit и масштабного фактора view_length_scale_factor для меры длины length_measure, а также с помощью угловых единиц view_angle_unit для plane_angle_measure.

     6.1.2 Определения типов схемы API_ABSTRACT_SCHEMA: основные понятия описания продукта и его поддержки


Настоящий подраздел устанавливает ресурсы группового типа (определенные в ИСО 10303-41), являющиеся частью схемы api_abstract_schema, соответствующей требованиям настоящего стандарта.

6.1.2.1 Идентификатор

Идентификатор (identifier) - это буквенно-цифровая строка для индивидуальной идентификации. Идентификатор может не иметь языкового значения.

Пример - Идентификатором может быть номер детали.

Спецификация на языке EXPRESS:

*)

TYPE identifier = STRING;

END_TYPE;

(*

6.1.2.2 Метка

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

Пример - "Smith", "Widget Inc." и "Materials Test Laboratory" - типовые метки.

Спецификация на языке EXPRESS:

*)

TYPE label = STRING;

END_TYPE;

(*

6.1.2.3 Текст

Текст (text) - это буквенно-цифровая строка символов, предназначенных для чтения и восприятия человеком. Текст предназначен только для передачи информации.

Спецификация на языке EXPRESS:

*)

TYPE text = STRING;

END_TYPE;

(*

6.1.2.4 Сущность length_measure

Сущность length_measure устанавливает расстояния.

Спецификация на языке EXPRESS:

*)

TYPE length_measure = REAL;

END_TYPE;

(*

Примечание - В контексте схемы api_abstract_schema сущность length_measure выражается через единицы длины view_length_unit и масштабный фактор view_length_scale_factor.

6.1.2.5 Сущность plane_angle_measure

Сущность plane_angle_measure задает плоский угол.

Спецификация на языке EXPRESS:

*)

TYPE plane_angle_measure = REAL;

END_TYPE;

(*

Примечание - В контексте схемы api_abstract_schema плоский угол plane_angle_measure выражается с помощью угловых единиц view_angle_unit.

6.1.2.6 Сущность positive_length_measure

Сущность positive_length_measure задает положительную меру длины length_measure.

Спецификация на языке EXPRESS:

*)

TYPE positive_length_measure = length_measure;

WHERE

WR1: SELF > 0;

END_TYPE;

(*

Комментарий к спецификации:

WR1: значение должно быть положительным.

6.1.2.7 Сущность positive_plane_angle_measure

Сущность positive_plane_angle_measure задает положительный плоский угол plane_angle_measure.

Спецификация на языке EXPRESS:

*)

TYPE positive_plane_angle_measure = plane_angle_measure;

WHERE

WR1: SELF > 0;

END_TYPE;

(*

Комментарий к спецификации:

WR1: значение должно быть положительным.

6.1.2.8 Сущность parameter_value

Сущность parameter_value задает значение параметра в некоторой его области.

Спецификация на языке EXPRESS:

*)

TYPE parameter_value = REAL;

END_TYPE;

(*

6.1.2.9 Сущность message

Сущность message задает коммуникацию, адресованную системе для активизации некоторого действия. Результатом указанного действия является внешне определенный элемент externally_defined_item.

Примечание - Нормативные значения сообщений описаны внутри моделей соответствующих приложений.


Спецификация на языке EXPRESS:

*)

TYPE message = STRING;

END_TYPE;

(*

6.1.2.10 Ссылка

Ссылка (reference) обеспечивает идентификацию и запрос внешне определенного элемента externally_defined_item.

Спецификация на языке EXPRESS:

*)

TYPE source_item = SELECT (identifier, message);

END_TYPE;

(*

     6.1.3 Определения типов схемы API_ABSTRACT_SCHEMA: геометрические и топологические представления


В настоящем подразделе установлены ресурсы группового типа, определенные в ИСО 10303-42, являющиеся частью схемы api_abstract_schema.

6.1.3.1 Сущность dimension_count

Сущность dimension_count задает положительное целое, равное размерности координатного пространства в контексте геометрического представления geometric_representation_context.

Спецификация на языке EXPRESS:

*)

TYPE dimension_count = INTEGER;

WHERE

WR1: SELF > 0;

END_TYPE;

(*

Комментарий к спецификации:

WR1: целое dimension_count должно быть положительным.

6.1.3.2 Сущность transition_code

Сущность transition_code задает свойства непрерывности комбинированной кривой или поверхности. Рассматриваемая непрерывность является геометрической, а не параметрической.

Спецификация на языке EXPRESS:

*)

TYPE transition_code = ENUMERATION OF

(discontinuous,

continuous,

cont_same_gradient,

cont_same_gradient_same_curvature);

END_TYPE;

(*

Определения элементов перечислимого типа:

discontinuous: сегменты (вставки) не соединяются. Это возможно только на границе кривой (поверхности), чтобы обозначить ее незамкнутость;

continuous: сегменты (вставки) соединяются, условия на касательные к сегменту не налагаются;

cont_same_gradient: сегменты (вставки) соединяются, их касательные векторы (плоскости) параллельны и одинаково направлены в точке стыка; равенства производных не требуется;

cont_same_gradient_same_curvature: для кривых: сегменты соединены, их касательные векторы параллельны, имеют одно направление, в месте стыка кривизны равны, равенства производных не требуется. Для поверхностей: главные кривизны равны, главные направления совпадают вдоль общей границы.

Примечание - В контексте схемы api_abstract_schema существуют только комбинированные кривые.

6.1.3.3 Сущность preferred_surface_curve_representation

Сущность preferred_surface_curve_representation используется для указания предпочтительной формы представления кривой на поверхности. Кривая может быть задана в геометрическом пространстве или в параметрическом пространстве базовой поверхности.

Спецификация на языке EXPRESS:

*)

TYPE preferred_surface_curve_representation = ENUMERATION OF

(curve_3d,

pcurve_s1,

pcurve_s2);

END_TYPE;

(*

Определения элементов перечислимого типа:

curve_3d: предпочтительной является кривая curve в трехмерном пространстве;

pcurve_s1: предпочтительной является первая pcurve;

pcurve_s2: предпочтительной является вторая pcurve.

6.1.3.4 Сущность trimming_preference

Сущность trimming_preference используется для указания предпочтительного способа вычленения параметрической кривой, если отрезок определяется повторно.

Спецификация на языке EXPRESS:

*)

TYPE trimming_preference = ENUMERATION OF

(cartesian, parameter,

unspecified);

END_TYPE;

(*

Примечание - В контексте схемы api_abstract_schema предпочтения вычленения кривой trimming_preference зависят от реализации.


Определения атрибутов:

cartesian: указывает, что предпочтительной является настройка по декартовой точке;

parameter: указывает, что предпочтительным является значение параметра;

unspecified: указывает, что предпочтение не задано.

6.1.3.5 Сущность axis2_placement

Сущность axis2_placement имеет тип select. Используется как в двумерном, так и в трехмерном декартовом пространстве. Это позволяет ссылаться на сущности, использующие указанную информацию, без определения размерности пространства.

Спецификация на языке EXPRESS:

*)

TYPE axis2_placement = SELECT

(axis2_placement_2d,

axis2_placement_3d);

END_TYPE;

(*

6.1.3.6 Сущность curve_on_surface

Сущность curve_on_surface задает одну из кривых на параметрической поверхности:

- pcurve;

- surface_curve, включая такие особые ее подтипы, как intersection_curve и seam_curve;

- composite_curve_on_surface.

Сущность curve_on_surface задается для кривых типа select и позволяет пользоваться ими.

Спецификация на языке EXPRESS:

*)

TYPE curve_on_surfасе = SELECT

(pcurve,

surface_curve,

composite_curve_on_surface);

END TYPE;

(*

6.1.3.7 Сущность pcurve_or_surface

Сущность pcurve_or_surface имеет тип select. Позволяет идентифицировать associated surface или pcurve как атрибут composite curve_on_surface.

Спецификация на языке EXPRESS:

*)

TYPE pcurve_or_surface = SELECT

(pcurve,

surface);

END_TYPE;

(*

6.1.3.8 Сущность trimming_select

Сущность trimming_select имеет тип select. Идентифицирует два способа вычленения параметрической кривой: 1) путем задания декартовой точки на кривой; 2) путем задания действительного значения параметра в заданном диапазоне.

Спецификация на языке EXPRESS:

*)

TYPE trimming_select = SELECT

(cartesian_point,

parameter_value);

END_TYPE;

(*

6.1.3.9 Сущность vector_or_direction

Сущность vector_or_direction используется для идентификации типа сущности, применяемой для векторных вычислений.

Спецификация на языке EXPRESS:

*)

TYPE vector_or_direction = SELECT

(vector,

direction);

END_TYPE;

(*

     6.1.4 Определения типов схемы API_ABSTRACT_SCHEMA: геометрические модели


В настоящем подразделе установлены ресурсы группового типа для построения геометрических моделей, определенных в ИСО 10303-42. Данные ресурсы являются частью схемы api_abstract_schema.

6.1.4.1 Сущность boolean_operand

Сущность boolean_operand имеет тип select. Идентифицирует все типы сущностей, используемых в булевых операциях создания тел конструктивной блочной геометрии.

Спецификация на языке EXPRESS:

*)

TYPE boolean_operand = SELECT

(solid_model,

half_space_solid,

csg_primitive,

boolean_result);

END_TYPE;

(*

6.1.4.2 Сущность boolean_operator

Сущность boolean_operator задает три булевых оператора для определения тел конструктивной блочной геометрии.

Спецификация на языке EXPRESS:

*)

TYPE boolean_operator = ENUMERATION OF

(union,

intersection,

difference);

END_TYPE;

(*

Определения атрибутов:

union: операция построения заданного регуляризованного теоретического объединения объемов, определенных двумя телами;

intersection: операция построения заданного регуляризованного теоретического пересечения объемов, определенных двумя телами;

difference: операция построения заданной регуляризованной теоретической разности объемов, определенных двумя телами.

6.1.4.3 Сущность csg_primitive

Сущность csg_primitive имеет тип select. Определяет набор сущностей конструктивной блочной геометрии (CSG), используемых в булевых операциях: сфера, прямой круговой конус, прямой круговой цилиндр, тор, блок, прямой клин.

Спецификация на языке EXPRESS:

*)

TYPE csg_primitive = SELECT

(sphere,

block,

right_angular_wedge,

torus,

right_circular_cone,

right_circular_cylinder);

END_TYPE;

(*

6.1.4.4 Сущность csg_select

Сущность csg_select идентифицирует типы сущностей, выбираемых в качестве корня дерева конструктивной блочной геометрии (CSG). В частном случае это может быть отдельная сущность конструктивной блочной геометрии.

Спецификация на языке EXPRESS:

*)

TYPE csg_select = SELECT

(boolean_result,

csg_primitive);

END_TYPE;

(*

6.1.4.5 Сущность geometric_set_select

Сущность geometric_set_select имеет тип select. Идентифицирует типы геометрических сущностей.

Спецификация на языке EXPRESS:

*)

TYPE geometric_set_select = SELECT

(point,

curve,

surface);

END_TYPE;

(*

     6.1.5 Определения типов схемы API_ABSTRACT_SCHEMA: особые типы структурирования интерфейса прикладного программирования


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

6.1.5.1 Сущность api_grouped_item

Сущность api_grouped_item задает описания объектов, которые могут быть элементом группы.

Спецификация на языке EXPRESS:

*)

TYPE api_grouped_item = SELECT

(direction,

vector,

placement,

annotation_fill_area,

fill_area_style_hatching,

geometric_set_select,

solid_model,

half_space_solid,

csg_select,

api_group);

END_TYPE;

(*

6.1.5.2 Сущность api_set_item

Сущность api_set_item задает описания объектов, которые могут быть частью множества api_set.

Спецификация на языке EXPRESS:

*)

TYPE api_set_item = SELECT

(direction,

vector,

placement,

annotation_fill_area,

geometric_set_select,

solid_model,

half_space_solid,

csg_select,

api_set);

END_TYPE;

(*

     6.1.6 Определения сущностей схемы API_ABSTRACT_SCHEMA: основные понятия описания и поддержки продукта


В настоящем подразделе установлены ресурсы групповых сущностей, определенные в ИСО 10303-41. Указанные ресурсы являются частью схемы api_abstract_schema.

6.1.6.1 Сущность shape_representation

Сущность shape_representation - особый вид представления, определяющего геометрическую форму.

Примечание 1 - В контексте схемы api_abstract_schema существует только одно представление формы shape_representation. Оно соответствует форме продукта, созданного с помощью интерфейса базы данных CAD. Это установлено особыми глобальными правилами, ассоциированными с интерфейсом прикладного программирования.

Примечание 2 - В контексте схемы api_abstract_schema контекстом изделий context_of_item должен быть контекст геометрического представления geometric_representation_context. Это установлено правилами типа "Где?" (WHERE RULES) интерфейса прикладного программирования.


Спецификация на языке EXPRESS:

*)

ENTITY shape_representation

SUBTYPE OF (representation);

WHERE

api_WR1: 'API_ABSTRACT_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN

TYPEOF (SELF\representation.context_of_items);

END_ENTITY;

(*

Определения атрибутов:

SELF\representation.item: множество representation_item, представляющих форму продукта;

SELF\representation.context_of_item: representation_context в координатной системе OVC, в которой элементы связаны с формой продукта.

Комментарии к спецификации:

api_WR1: элемент контекста context_of_item представления формы shape_representation должен быть контекстом геометрического представления geometric_representation_context.

Ассоциированное глобальное правило: следующее глобальное правило ассоциировано с настоящей сущностью. Оно ограничивает область применения сущности или ее соотношения с другими сущностями:

unique_shape_representation: правило представления уникальной формы unique_shape_representation требует существования уникальной сущности shape_representation в совокупности сущностей схемы api_abstract_schema. Данная сущность соответствует форме продукта, созданного с помощью интерфейса базы данных CAD.

6.1.6.2 Сущность group

Сущность group идентифицирует набор элементов.

Спецификация на языке EXPRESS:

*)

ENTITY group;

name : label;

description : text;

END_ENTITY;

(*

Определения атрибутов:

name: слово или группа слов, с помощью которых производится ссылка на группу;

description: текст, поясняющий природу группы.

6.1.6.3 Сущность group_assignment

Сущность group_assignment устанавливает связь группы с данными продукта.

Спецификация на языке EXPRESS:

*)

ENTITY group_assignment

ABSTRACT SUPERTYPE;

assigned_group : group;

END_ENTITY;

(*

Определение атрибута:

assigned_group: группа, ассоциированная с данными продукта.

6.1.6.4 Сущность external_source

Сущность external_source идентифицирует источник данных продукта, не являющийся протоколом приложений, по которому производится обмен.

Примечание - В контексте схемы api_abstract_schema внешние источники external_source представляют собой внешне определенные стили externally_defined_style элементов геометрического представления.


Спецификация на языке EXPRESS:

*)

ENTITY external_source;

source_id : source_item;

END_ENTITY;

(*

Определение атрибута:

source_id: идентификация внешнего источника external_source.

6.1.6.5 Сущность pre_defined_item

Сущность pre_defined_item идентифицирует информацию, не представленную явно в заданном обмене, но определенную в протоколе приложений, по которому производится обмен.

Примечание - В контексте схемы api_abstract_schema некоторые особые стили сущностей определяются как предварительно определенные элементы pre_defined_item.


Спецификация на языке EXPRESS:

*)

ENTITY pre_defined_item;

name : label;

END_ENTITY;

(*

Определение атрибута:

name: слово или группа слов, с помощью которых производится ссылка на предварительно определенные элементы pre_defined_item.

6.1.6.6 Сущность externally_defined_item

Сущность externally_defined_item идентифицирует информацию, не представленную явно в заданном обмене и не определенную в протоколе приложений, по которому производится обмен.

Примечание - В контексте схемы api_abstract_schema стили сущностей определены как внешне определенные элементы externally_defined_item.


Спецификация на языке EXPRESS:

*)

ENTITY externally_defined_item;

item id : source_item;

source : external_source;

END_ENTITY;

(*

Определения атрибутов:

item_id: идентификатор элемента, на который производится ссылка;

source: внешний источник external_source, содержащий элемент, на который производится ссылка.

     6.1.7 Определения сущностей схемы API_ABSTRACT_SCHEMA: структуры представлений


В настоящем подразделе установлены ресурсы групповых сущностей, определенные в ИСО 10303-43. Указанные ресурсы являются частью схемы api_abstract_schema.

6.1.7.1 Сущность representation_context

Сущность representation_context задает контекст, в котором устанавливается связь между элементами представления representation_items.

Два некоторых контекста представления representation_context определяются отдельно, если обратное не установлено особым соотношением.

Спецификация на языке EXPRESS:

*)

ENTITY representation_context;

context_identifier : identifier;

context_type : text;

INVERSE

representations_in_context : SET [1:?] OF representation

FOR context_of_items;

END_ENTITY;

(*

Определения атрибутов:

context_identifier: идентификатор контекста представления representation_context;

context_type: описание типа контекста представления representation_context;

representations_in_context: по крайней мере одно представление должно быть ассоциировано с каждым контекстом представления representation_context.

6.1.7.2 Сущность representation_item

Сущность representation_item - это элемент данных продукта. Он является частью одного и более представлений или дополняет определения других элементов представления representation_items.

Сущность representation_item дополняет определения другого элемента представления representation_item, если на него производится ссылка этим элементом.

Спецификация на языке EXPRESS:

*)

ENTITY representation_item;

name : label;

WHERE

WR1 : SIZEOF (using_representations (SELF)) > 0;

api WR2: SIZEOF (using_representations (SELF)) = 1;

END_ENTITY;

(*

Примечание - В контексте схемы api_abstract_schema каждый элемент представления representation_item должен быть ассоциирован только с одним контекстом представления representation_context. Это устанавливается сущностью api_WR2.


Определение атрибута:

name: идентификатор элемента представления representation_item.

Комментарии к спецификации:

WR1: каждый элемент представления representation_item должен быть ассоциирован по крайней мере с одним контекстом представления representation_context;

api_WR2: на элемент представления representation_item производится ссылка только одним контекстом представления representation_context.

6.1.7.3 Сущность representation

Задает набор из одного или нескольких элементов представления representation_items в некотором контексте представления representation_context. Порядок использования представления в ИСО 10303 не рассматривается.

Соотношение между элементами представления representation_items и контекстом представления representation_context дает основу для выделения связанных сущностей из полного набора сущностей representation_item.

Примечание 1 - Рассмотрим контекст, в котором множество элементов геометрического представления geometric_representation_items используется для представления некоторой формы. Используются только элементы данного контекста. Все прочие элементы геометрического представления не включены. Это составляет основу для выделения требуемых элементов геометрического представления на множестве элементов представления. В противном случае указанный признак не включается в спецификацию элементов представления.


Элементы множества изделий и все элементы представления, на которые косвенно производится ссылка из указанного множества, связаны с элементом контекста context_of_item через сущность представления. Косвенная ссылка на элементы представления имеет место, если она производится с помощью нескольких промежуточных сущностей, каждая из которых имеет тип элемента представления.

Примечание 2 - Представление связывает контекст представления representation_context с деревом элементов представления representation_items. При этом каждое дерево имеет корень на одном элементе множества. Элементы представления создают узлы на дереве, а ссылка одного элемента на другой создает ветвь дерева.


Множество представлений, на которые непосредственно производится ссылка как на изделие (связанные с контекстом context_of_item), является представлением. Элементы представления representation_item, на которые косвенно производится ссылка, поддерживают определения изделий и связаны с тем же контекстом представления representation_context.

Примечание 3 - В представлении формы куба с помощью множества линий указанное множество линий является единственным элементом представления формы. Сущности lines, в свою очередь, ссылаются на сущности декартовых точек cartesian_point и сущности направления direction (поддерживающие определения линий и связанные друг с другом), а также на определения сущности lines в ссылочном контексте геометрического представления geometric_representation_context. Указанная форма вместе с тем не может быть представлена с помощью сущностей декартовых точек и направления.


Представление должно соответствовать приложению. Часто представление является неполным и не моделирует исчерпывающим образом рассматриваемое понятие.

Примечание 4 - Рассмотрим набор двумерных элементов геометрических представлений geometric_representation_items, используемых для представления формы обрабатываемой детали. Описание ее формы является неполным, но пригодным для некоторых приложений, например, автоматизированного черчения.


Один элемент представления representation_item может быть связан с несколькими контекстами представления representation_context. Два представления не могут быть связаны, потому что на один и тот же элемент представления производится ссылка (прямо или косвенно) из соответствующих множеств элементов.

Примечание 5 - Рассмотрим поверхность surface, используемую в представлении representation геометрической формы литьевой пресс-формы, а также геометрической формы отливаемой в ней детали. Поверхность геометрически представляется двумя отличными контекстами geometric_representation_contexts, одним для пресс-формы и одним для детали. Вместе с тем данные представления не связаны. Наоборот, каждое из них по отдельности задает общую поверхность. В данном случае два несвязанных представления просто делят общий элемент представления representation_item.


Один и тот же элемент представления representation_item может быть многократно связан с одним контекстом представления representation_contex, используемым прямо или косвенно в нескольких представлениях, каждое их которых ссылается на один и тот же контекст представления. Это не означает, что каждое представление создает новый экземпляр того же элемента представления representation_item в том же контексте representation_context. Скорее, каждое представление подтверждает наличие одного экземпляра элемента представления в заданном контексте представления для различных целей.

Примечание 6 - Рассмотрим два представления с одинаковыми элементами контекста context_of_items. Одно является представлением формы "куб", оно косвенно ссылается на сущность line при задании ребер. Второе просто ссылается на сущность line как на элемент представления. Но это не означает наличия двух вхождений в сущность line и ее дерева ссылочных элементов геометрических представлений geometric_representation_items в рассматриваемом контексте геометрического представления geometric_representation_context. Скорее, однократное использование сущности line в данном контексте подтверждается дважды, по одному разу в каждом представлении. Причем первое может определять форму куба в целом. Второе может определять ребро того же куба.


Спецификация на языке EXPRESS:

*)

ENTITY representation;

name : label;

items : SET [1:?] OF representation_item;

context_of_items : representation_context;

END_ENTITY;

(*

Определения атрибутов:

name: идентификатор представления representation;

item: множество элементов представления representation_item, связанных в контексте context_of_item;

context_of_item: контекст представления representation_context, в котором элементы связываются для формирования представления некоторого понятия.

Примечание 7 - В контексте схемы api_abstract_schema все элементы геометрического представления, созданные с помощью функции интерфейса, закладываются вместе с OVC в контекст изделия.

6.1.7.4 Сущность representation_map

Сущность representation_map идентифицирует представление representation и элемент представления representation_item в нем для целей отображения. Элемент представления определяет начало координат отображения. Карта представления representation_map используется как источник отображения с помощью элемента отображения mapped_item.

Примечание 1 - Определение отображения, используемое для описания нового элемента представления representation_item, содержит сущность отображения представления representation_map и сущность элемента отображения mapped_item. Без данных сущностей отображение получается неполным. Они дают возможность по одному исходному представлению representation_map.mapped_representation получить отображение нескольких новых представлений mapped_item.


Спецификация на языке EXPRESS:

*)

ENTITY representation_map;

mapping_origin : representation_item;

mapped_representation : representation;

INVERSE

map_usage : SET [1:?] OF mapped_item FOR mapping_source;

WHERE

WR1: item_in_context (SELF.mapping_origin,

SELF.mapped_representation.context_of_items);

END_ENTITY;

(*

Определения атрибутов:

mapping_origin: элемент представления representation_item, для которого производится отображение представления mapped_representation.

Примечание 2 - Рассмотрим декартово отображение одного геометрического представления на другое. Источником отображения mapping_origin может быть локальная координатная система axis2_placement в контексте отображения представления mapped_representation, определяющего положение отображения;


mapped_representation: представление, отображаемое по крайней мере на один элемент отображения mapped_item;

map_usage: множество одного и более элементов отображения mapped_item, на которые производится отображение представления representation_map.

Комментарий к спецификации:

WR1: источник отображения mapping_origin должен содержаться в контексте representation_context отображения представления mapped_representation.

6.1.7.5 Сущность mapped_item

Сущность mapped_item использует представление mapping_source.mapped_representation при участии в отображении представления representation_map в качестве элемента представления representation_item.

Примечание 1 - Элемент отображения mapped_item является подтипом элемента представления representation_item. Он активизирует некоторое представление в виде элемента представления representation_item одного или нескольких других представлений. Элемент отображения определяет представление с помощью других представлений.


Отображение достигается посредством оператора, неявно определенного атрибутами mapping_source.mapping_origin и mapping_target. Отображение описывается с помощью преобразования item_defined_transformation (дополнительно см. ИСО 10303-43, пункт 4.4.7).

Спецификация на языке EXPRESS:

*)

ENTITY mapped_item

SUBTYPE OF (representation_item);

mapping_source : representation_map;

mapping target : representation_item;

WHERE

WR1: acyclic_mapped_representation (using_representations (SELF) , [SELF]);

END_ENTITY;

(*

Определения атрибутов:

mapping_source: отображение представления representation_map, которое является источником элемента отображения mapped_item;

mapping_target: элемент преставления representation_item, который является целью для источника отображения mapping_source.

Комментарий к спецификации:

WR1: источник отображения mapped_item не должен самоопределяться путем участия в определении отображения представления.

Примечание 2 - Подробности процедуры отображения определяются сущностями mapped_item и representation_map.

Пример - Рассмотрим декартово отображение одного геометрического представления на другое. Источником отображения mapping_source может быть отображение представления representation_map, ссылающееся на представление representation и размещение axis_placement, заложенное в контекст геометрического представления geometric_representation_context ссылочного представления. Элемент отображения mapped_item может ссылаться на данное отображение representation_map и на второе размещение axis_placement. В этом случае элемент mapped_item может стать элементом представления representation_item, являющимся отображением, на который производится ссылка представлением, так что источник отображения representation_map.mapping_origin налагается на цель отображения mapped_item.mapping_target.

     6.1.8 Определения сущностей схемы API_ABSTRACT_SCHEMA: структуры геометрических представлений


В настоящем подразделе установлены ресурсы групповых сущностей, определенные в ИСО 10303-42 для структур геометрических представлений, являющихся частью схемы api_abstract_schema.

6.1.8.1 Сущность geometric_representation_context

Сущность geometric_representation_context является контекстом представления representation_context, в который геометрически закладываются элементы геометрического представления geometric_representation_item.

Контекст геометрического представления geometric_representation_contexti - это особое координатное пространство, не связанное с прочими координатными пространствами, за исключением тех координатных пространств, для которых применяются особые преобразования.

Спецификация на языке EXPRESS:

*)

ENTITY geometric_representation_context

SUBTYPE OF (representation_context);

coordinate_space_dimension : dimension_count;

END_ENTITY;

(*

Определение атрибута:

coordinate_space_dimension: целочисленный счетчик dimension_count размерности пространства.

Примечание - В контексте схемы api_abstract_schema OVC составляет контекст геометрического представления geometric_representation_context, в котором заложены все элементы геометрического представления. Размерность пространства dimension_count может быть равна 2 или 3 в соответствии с уровнем геометрической мощности geometrical_power_level текущего открытого вида.

6.1.8.2 Сущность geometric_representation_item

Сущность geometric_representation_item - это элемент представления representation_item, приобретающий особый смысл в результате добавления понятий геометрического положения и/или ориентации. Указанный смысл приобретается в результате:

- использования понятия декартовой точки cartesian_point или направления direction;

- прямой ссылки на декартову точку cartesian_point или направление direction;

- косвенной ссылки на декартову точку cartesian_point или направление direction.

Примечание 1 - Косвенная ссылка на декартову точку или направление означает, что заданный элемент геометрического представления geometric_representation_item ссылается на декартову точку или направление посредством одного или более промежуточных атрибутов. В большинстве случаев данная информация задается в форме размещения axis2_placement.


Пример 1 - Рассмотрим окружность. Она принимает свое геометрическое положение и ориентацию путем ссылки на размещение axis2_placement, которое, в свою очередь, ссылается на декартову точку и несколько направлений.

Пример 2 - Множественное целостное контурное представление manifold_solid_brep является элементом геометрического представления geometric_representation_item, который (посредством нескольких слоев элементов топологических представлений topological_representation_items) ссылается на кривые, поверхности и точки. С помощью дополнительных промежуточных сущностей кривые и поверхности ссылаются на декартовы точки и направления. Определения сущностей manifold_solid_geometry, topological_representation_item и surface (на языке EXPRESS) приведены в ИСО 10303-42.

Примечание 2 - Промежуточные сущности (тип representation_item) не обязаны иметь подтип geometric_representation_item. Возьмем рассмотренный выше пример с сущностью manifold_solid_brep. Промежуточным уровнем элемента представления representation_item может быть крупный план замкнутой оболочки close_shell. Данный элемент топологического представления topological_representation_item не требует задания контекста геометрического представления geometric_representation_context. Если же сущность close_shell - часть сущности manifold_solid_brep, являющейся, в свою очередь, элементом геометрического представления geometric_representation_item, то она закладывается в контекст геометрического представления. Определение сущности close_shell (на языке EXPRESS) приведено в ИСО 10303-42.

Примечание 3 - Сущность geometric_representation_item наследует необходимость связанности с контекстом представления representation_context. Правило совместимой размерности compatible_dimension гарантирует, что контекст представления representation_context является контекстом геометрического представления geometric_representation_context. В данном контексте настоящее соотношение геометрически закладывает элементы геометрического представления geometric_representation_items. Определение термина "геометрически закладывает" приведено в ИСО 10303-42.

Спецификация на языке EXPRESS:

*)

ENTITY geometric_representation_item

SUPERTYPE OF (ONEOF (point, direction, vector, placement, curve,

annotation_fill_area, surface, solid_model,

boolean_result, sphere, right_circular_cone,

right_circular_cylinder, torus, block,

right_angular_wedge, half_space_solid,

fill_area_style_hatching,

one_direction_repeat_factor))

SUBTYPE OF (representation_item);

DERIVE

dim : dimension_count := dimension_of (SELF);

WHERE

api_WR1: SIZEOF (QUERY (using_rep <* using_representations (SELF) |

NOT ('API_ABSTARCT_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN

TYPEOF (using_rep.context_of_items)))) = 0;

END_ENTITY;

(*

Определение атрибута:

dim: счетчик координат dimension_count элемента геометрического представления geometric_representation_item.

Примечание 4 - Атрибут dim вычисляется сущностью coordinate_space_dimension для контекста геометрического представления geometric_representation_context, в котором геометрически закладывается элемент геометрического представления geometric_representation_item.

Примечание 5 - Элементы геометрического представления геометрически закладываются в один и более контекст геометрического представления с одинаковой размерностью пространства coordinate_space_dimension (правило совместимой размерности compatible_dimension приведено в ИСО 10303-42).

Примечание 6 - В контексте схемы api_abstract_schema все элементы геометрического представления являются подтипами элемента геометрического представления.

Примечание 7 - В контексте схемы api_abstract_schema интерфейсом создаются только точки, направления, векторы, размещения, кривые, заполненные области комментариев, поверхности, твердотельные модели, сферы, результаты булевых операций, прямые круговые конусы, прямые круговые цилиндры, торы, блоки, прямые клинья, тела в полупространстве, заполненные области штриховки и факторы повтора в одном направлении. Поэтому необходима модификация супертипа.

Комментарий к спецификации:

api_WR1: в контексте схемы api_abstract_schema любое представление, ссылающееся на элемент geometric_representation_item, должно иметь тип контекста геометрического представления geometric_representation_context.

     6.1.9 Определения сущностей схемы API_ABSTRACT_SCHEMA: геометрические математические сущности


В настоящем подразделе установлены ресурсы групповых сущностей, определенные в ИСО 10303-42. Указанные ресурсы являются частью схемы api_abstract_schema.


6.1.9.1 Сущность point

Сущность point задает точку в некотором действительном декартовом координатном пространстве R, где т = 1, 2 или 3.


Спецификация на языке EXPRESS:

*)

ENTITY point

ABSTRACT SUPERTYPE OF (ONEOF (cartesian_point))

SUBTYPE OF (geometric_representation_item);

END_ENTITY;

(*

Примечание - В контексте схемы api_abstract_schema существуют только декартовы точки cartesian_point. Сущность point определяется как абстрактный супертип, все прочие подтипы, определенные в ИСО 10303-42, удаляются.

6.1.9.2 Сущность cartesian_point

Сущность cartesian_point задает точку координатами в прямоугольной декартовой координатной системе или в параметрическом пространстве. Сущность определяется в одномерном, двумерном или трехмерном пространстве в соответствии с количеством координат, указанным в перечне.

Примечание - В схеме api_abstract_schema используются только двумерные и трехмерные точки. Сущность cartesian_point всегда определяется в декартовой координатной системе.


Спецификация на языке EXPRESS:

*)

ENTITY cartesian_point

SUBTYPE OF (point);

coordinates : LIST [1:3] OF length_measure;

END_ENTITY;

(*

Определения атрибутов:

coordinates [1]: первая координата точки;

coordinates [2]: вторая координата точки (не существует в одномерном пространстве);

coordinates [3]: третья координата точки (не существует в одномерном и двумерном пространстве);

SELF\geometric_representation_item.dim: размерность пространства, в котором задана сущность point. Настоящий производный атрибут унаследован из супертипа элемента геометрического представления. Для декартовой точки он определен по числу координат в перечне.

6.1.9.3 Сущность direction

Сущность direction определяет общее направление вектора в двумерном или трехмерном пространстве. Фактические величины компонентов не оказывают влияния на заданное направление: важными являются только отношения х : у: z или х : у.

Примечание 1 - Компоненты данной сущности не нормированы. Если требуется задание единичного вектора, то он нормируется перед использованием.

Спецификация на языке EXPRESS:

*)

ENTITY direction

SUBTYPE OF (geometric_representation_item);

direction_ratios : LIST [2:3] OF REAL;

WHERE

WR1 : SIZEOF (QUERY (tmp <* direction_ratios | tmp <> 0.0)) > 0;

api_WR2: NOT ( (ABS (direction_ratios [lj) < EPS) AND

(ABS (direction_ratios [2]) < EPS) AND

(ABS (direction_ratios [3]) < EPS));

api_WR3: NOT ( ( (direction_ratios [1] < EPS) AND

(direction_ratios [1] > ZERO VALUE)) OR

( (direction_ratios [2] < EPS) AND

(direction_ratios [2] > ZERO_VALUE)) OR

( (direction_ratios [3] < EPS) AND

(direction_ratios [3] > ZERO_VALUE)));

END_ENTITY;

(*

Примечание 2 - В контексте схемы api_abstract_schema вырождение направления устанавливается дополнительными правилами типа "Где?" (WHERE RULES).


Определения атрибутов:

direction_ratio [1]: компонент по оси X;

direction_ratio [2]: компонент по оси Y;

direction_ratio [3]: компонент по оси Z (отсутствует в двумерном координатном пространстве);

SELF\geometric_representation_item.dim: размерность направления координатного пространства. Является наследованным атрибутом супертипа элемента геометрического представления geometric_representation_item; для настоящей сущности определяется количеством соотношений направления direction_ratio в перечне.

Комментарии к спецификации:

WR1: модуль вектора направления должен быть больше 0;

api_WR2: модуль вектора направления должен быть не меньше допуска EPS;

api_WR3: значения direction_ratio не могут лежать между допуском EPS и нулем ZERO_value.

6.1.9.4 Сущность vector

Сущность vector определяет вектор через его направление и модуль. Значения атрибута magnitude задают модуль вектора.

Примечание 1 - Модуль вектора не должен вычисляться по компонентам атрибута orientation. Данная форма представления вектора устраняет проблемы при вычислениях.


Пример - Вектор с модулем 2,0 мм, равнонаклоненный к координатным осям, может быть представлен атрибутом направления со значениями (1.0, 1.0, 1.0).

Спецификация на языке EXPRESS:

*)

ENTITY vector

SUBTYPE OF (geometric_representation_item);

orientation : direction;

magnitude : length_measure;

WHERE

WR1 : magnitude >= 0.0;

api_WR2 : MAX >= magnitude;

api_WR3 : magnitude >= EPS;

END_ENTITY;

(*

Примечание 2 - В контексте схемы api_abstract_schema факт вырождения сущности vector устанавливается дополнительным правилом "Где?" (WHERE RULES).


Определения атрибутов:

orientation: направление вектора;

magnitude: модуль вектора. Все векторы с модулем, равным 0.0, считаются равными вне зависимости от значения атрибута orientation',

SELF\geometric_representation_item.dim: размерность пространства, в котором определена сущность vector.

Комментарии к спецификации:

WR1: модуль должен быть положительным или равным 0;

api_WR2: модуль не может превышать значение МАХ;

api_WR3: модуль не может быть меньше допуска EPS.

6.1.9.5 Сущность placement

Сущность placement задает расположение геометрического элемента с учетом координатной системы его геометрического контекста. Данная сущность задает расположение элемента и его ориентацию (в случае использования подтипов размещения оси).

Спецификация на языке EXPRESS:

*)

ENTITY placement

SUPERTYPE OF (ONEOF (axis1_placement,

axis2_placement_2d,

axis2_placement_3d))

SUBTYPE OF (geometric_representation_item);

location : cartesian_point;

END_ENTITY;

(*

Определение атрибута:

location: геометрическое положение ссылочной точки (например, центр окружности) рассматриваемого геометрического элемента.

6.1.9.6 Сущность axis1_placement

Сущность axis1_placement определяет направление и расположение в трехмерном пространстве одной оси. Сущность axis1_placement определяется положением точки (наследованной из размещения супертипа) и направлением оси. Это либо задаваемое направление для атрибута axis, либо направление (0.0, 0.0, 1.0) по умолчанию. Фактическое направление оси задается производным атрибутом z.

Примечание - В контексте схемы api_abstract_schema направление оси определяется числом.


Спецификация на языке EXPRESS:

*)

ENTITY_axis1_placement

SUBTYPE OF (placement);

axis : OPTIONAL direction;

DERIVE

z : direction := NVL (normalise (axis), direction ( [0. 0, 0. 0, 1. 0 ])) ;

WHERE

WR1 : SELF\geometric_representation_item.dim =3;

api_WR2 : EXISTS (SELF.axis) ;

END_ENTITY;

(*

Определения атрибутов:

SELF\placement.location: ссылочная точка на оси;

axis: направление локальной оси Z;

z: стандартное направление локальной оси Z;

SELF\geometric_representation_item.dim: размерность пространства сущности axis1_placement (определяемая по расположению) всегда равна 3.

Комментарии к спецификации:

WR1: размерность координатного пространства равна 3;

api_WR2: должно быть задано направление оси axis.

6.1.9.7 Сущность axis2_placement_2d

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

Примечание - В контексте схемы api_abstract_schema задается значение для ссылочного направления ref_direction.


Спецификация на языке EXPRESS:

*)

ENTITY axis2_placement_2d

SUBTYPE OF (placement);

ref_direction : OPTIONAL direction;

DERIVE

p : LIST [2:2] OF direction := build_2axes (ref_direction);

WHERE

WR1 : SELF\geometric_representation_item.dim = 2;

api_WR2: EXISTS (SELF.ref_direction);

END_ENTITY;

(*

Определения атрибутов:

SELF\placement.location: пространственное положение ссылочной точки, определяющей начало координат ассоциированной локальной координатной системы;

ref_direction: направление, используемое для определения направления локальной оси X. Если атрибут ref_direction опущен, то данное направление берется из геометрической координатной системы;

р: набор осей локальной координатной системы;

р [1]: стандартное направление оси X. Задается как (1.0, 0.0), если атрибут ref_direction опущен;

р [2]: стандартное направление оси Y. Задается ортогонально оси р [1].

Комментарии к спецификации:

WR1: размерность пространства axis2_piacement_2d равна 2;

api_WR2: должно существовать значение ref_direction.

6.1.9.8 Сущность axis2_placement_3d

Сущность axis2_placement_3d задает расположение и ориентацию в трехмерном пространстве двух взаимно перпендикулярных осей. Сущность axis2_placement_3d определена в терминах точки (наследованной из размещения супертипа) и двух ортогональных осей. Данная сущность может использоваться для позиционирования и ориентации неосесимметричных объектов в пространстве и для определения локальной координатной системы. Сущность включает точку, задающую начало координатной системы. Для завершения размещения координатной системы необходимы два направляющих вектора. Атрибут axis задает направление оси Z, атрибут ref_direction аппроксимирует направление оси X.

Примечание 1 - Пусть атрибут z задает направление оси Z, а сущность а аппроксимирует направление оси Х. Существует два метода (математически идентичных, но различных в вычислительном отношении) для расчета направлений осей Х и Y:

a) вектор а проектируется на плоскость, определенную начальной точкой Р и вектором z. Если указанный вектор задает направление оси X по формуле х=<а-z)z>, то направление оси Y задается формулой y=<zх>;

b) если направление оси Y вычисляется по формуле y=<zа>, то направление оси X задается формулой х=<уz>.

Расчеты показывают, что первый метод более устойчив к вычислениям, чем второй. Поэтому он используется в настоящем стандарте.

Для конических кривых и элементарных поверхностей локальная координатная система, на которую производится ссылка с помощью параметрических уравнений, вычисляется по данным сущности axis2_piacement_3d.

Примечание 2 - В контексте схемы api_abstract_schema значения задаются для атрибутов axis и ref_direction.


Спецификация на языке EXPRESS:

*)

ENTITY axis2_placement_3d

SUBTYPE OF (placement);

axis : OPTIONAL direction;

ref_direction : OPTIONAL direction;

DERIVE

p : LIST [3:3] OF direction := build_axes (axis,ref_direction);

WHERE

WR1 : SELF\placement.location.dim =3;

WR2 : (NOT (EXISTS (axis))) OR (axis.dim =3);

WR3 : (NOT (EXISTS (ref_direction))) OR (ref_direction.dim =3);

WR4 : (NOT (EXISTS (axis))) OR (NOT (EXISTS 7ref_direction))) OR

(cross product (axis,ref_direction).magnitude > 0.0);

api_WR5: EXISTS (axis) AND EXISTS (ref_direction);

api_WR6: cross_product (axis, ref_direction).magnitude >= EPS;

END_ENTITY;

(*

Примечание 3 - В контексте схемы api_abstract_schema сущность api_WR6 устанавливает вырожденный случай для сущности axis2_placement_3d.


Определения атрибутов:

SELF\placement.location: пространственное положение опорной точки и начала координат ассоциированной локальной координатной системы;

axis: точное направление локальной оси Z;

ref_direction: направление, задаваемое для локальной оси Х. При необходимости для поддержания ортогональности соответствующей оси Y выполняется ее корректировка. Если атрибут axis и/или атрибут ref_direction опущены, то указанные направления берутся из геометрической координатной системы;

р: оси локальной координатной системы. При необходимости направления этих осей задаются атрибутами с соответствующими значениями по умолчанию;

р [1]: стандартное направление локальной оси X;

р [2]: стандартное направление локальной оси Y;

р [3]: стандартное направление локальной оси Z.

Примечание 4 - Интерпретация атрибутов представлена на рисунке 3.


Комментарии к спецификации:

WR1: размерность пространства атрибута SELF\placement.location равна 3;

WR2: размерность пространства атрибута axis равна 3;

WR3: размерность пространства атрибута ref_direction равна 3;

WR4: оси, задавамые атрибутами axis и ref_direction, не могут быть параллельными или непараллельными (требование функции build_axes);

api_WR5: оси axis и ref_direction должны существовать;

api_WR6: модуль векторного произведения векторов axis и direction не превышает МАХ;

api_WR7: модуль векторного произведения векторов axis и direction не может быть меньше EPS.

     
Axis - ось; location - размещение (начало координат); ref_direction - ссылочное направление; project onto plane normal to axis - проекция на плоскость, перпендикулярную оси

Рисунок 3 - Сущность axis2_placement_3D

     6.1.10 Определения сущностей схемы API_ABSTRACT_SCHEMA: сущности геометрических кривых


В настоящем подразделе установлены ресурсы групповых сущностей для кривых, определенных в ИСО 10303-42 и являющихся частью схемы api_abstract_schema. Данные сущности, за исключением сущности line, не могут быть созданы непосредственно с помощью функций интерфейса. Они могут быть созданы только косвенно для представления особых сущностей интерфейса.

Сущность line может быть создана непосредственно для задания описаний других сущностей с учетом ограничений. Тем не менее сущность line рассматривается как математическая сущность, она ассоциирована со стилем null_style.

6.1.10.1 Сущность curve

Сущность curve интерпретируется как след точки в координатном пространстве.

Спецификация на языке EXPRESS:

*)

ENTITY curve

SUPERTYPE OF (ONEOF (line, conic, surface curve))

SUBTYPE OF (geometric_representation_item);

END_ENTITY;

(*

Примечание - В контексте схемы api_abstract_schema интерфейсом создаются только линии, конические линии и линии поверхности кривой. Таким образом, супертип оказывается отсеченным.


Дополнительные комментарии:

IP1: кривые соединяются как дуги;

IP2: длина дуги больше 0;

арi_IРЗ: длина дуги больше EPS.

6.1.10.2 Сущность line

Сущность line задает бесконечную кривую с постоянным направлением касательной. Линия определяется точкой и направлением. Положительным направлением линии является направление вектора dir.

Кривые параметризуются следующим образом:

Р=pnt,

V=dir,

     
.


Параметрический диапазон: .

Примечание - В контексте схемы api_abstract_schema линии могут создаваться непосредственно для задания определений других сущностей с учетом ограничений. Они могут создаваться неявно как базовые кривые basis_curve из отрезков кривых trimmed_curve для построения сущностей api_line в интерфейсе прикладного программирования.


Спецификация на языке EXPRESS:

*)

ENTITY line

SUBTYPE OF (curve);

pnt : cartesian_point;

dir : vector;

WHERE

WR1 : dir.dim = pnt.dim;

END_ENTITY;

(*

Определения атрибутов:

pnt: расположение линии;

dir: направление линии. Модуль и единицы измерения длины вектора dir оказывают влияние на параметризацию линии;

SELF\geometric_representation_item.dim: размерность координатного пространства для линии. Наследованный атрибут для супертипа элемента геометрического представления.

Комментарий к спецификации:

WR1: Сущности pnt и dir являются двумерными или трехмерными.

6.1.10.3 Сущность bounded_curve

Сущность bounded_curve задает кривую конечной длины с неидентифицируемыми конечными точками.

Примечание - В контексте схемы api_abstract_schema интерфейсом создаются только полилинии, отрезанные кривые, конечные кривые на поверхности и комбинированные кривые. Таким образом, супертипы отсекаются.


Спецификация на языке EXPRESS:

*)

ENTITY bounded_curve

SUPERTYPE OF (ONEOF (polyline, trimmed_curve, bounded_surface_curve,

composite_curve))

SUBTYPE OF (curve);

END_ENTITY;

(*

6.1.10.4 Сущность trimmed_curve

Сущность trimmed_curve определяет конечную кривую путем выбора сегмента, расположенного между двумя заданными точками ассоциированной базовой кривой. Сама базовая кривая остается неизменной. На одну базовую кривую может ссылаться несколько отрезков кривых trimmed_curve. Точки вычленения кривой определяются:

- по значению параметра;

- по геометрическому положению;

- обоими способами.

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

Пример 1 - Угол 370° эквивалентен углу 10° (за счет периода, равного 360°).

Сущность отрезка кривой trimmed_curve имеет режим параметризации, наследованный из режима параметризации заданной ссылочной базовой кривой. Более точно значения параметра s отрезка кривой trimmed_curve получаются из параметра t базовой кривой следующим образом:

если значение атрибута sense равно "true", то ;

если значение атрибута sense равно "false", то .

Здесь t - это значение, заданное параметром trim_1 или значением параметра, соответствующим точке point_1, a t - это значение, заданное параметром trim_2 или значением параметра, соответствующим точке point_2. Результирующий отрезок кривой имеет значение параметра s в диапазоне от 0 (для первой точки вычленения) до (для второй точки вычленения).

Примечание 1 - Если базовая кривая замкнута, то может оказаться необходимым дать приращения величинам t и t за счет параметрической длины для обеспечения соответствия значению флажка направления обхода кривой.


Пример 2 - Если значение sense_agreement "true" и то t увеличивают на период.

Пример 3 - Если значение sense_agreement "false" u , mo t увеличивают на период.

Спецификация на языке EXPRESS:

*)

ENTITY trimmed_curve

SUPERTYPE OF (ONEOF (api_line, api_circular_arc, api_elliptical_arc,

api_hyperbolic_arc, api_parabolic_arc))

SUBTYPE OF (bounded_curve);

basis curve : curve;

trim_1 : SET [1:2] OF trimming_select;

trim_2 : SET [1:2] OF trimming_select;

sense_agreement : BOOLEAN;

master_representation : trimming_preference;

WHERE

WR1: (HIINDEX (trim_1) = 1) XOR (TYPEOF (trim_1 [1]) <> TYPEOF (trim_1 [2]));

WR2: (HIINDEX (trim_2) = 1) XOR (TYPEOF (trim_2 [1]) <> TYPEOF (trim_2 [2]));

END_ENTITY;

(*

Примечание 2 - В контексте схемы api_abstract_schema определяются особые подтипы для спецификации диапазонов значений или целей некоторых функций интерфейса.

Примечание 3 - В контексте схемы api_abstract_schema главное представление master_representation должно зависеть от реализации.

Примечание 4 - В контексте схемы api_abstract_schema, если базовая кривая basis_curve замкнута, то замкнутый отрезок кривой trimmed_curve (соответствующая полной базовой кривой) представляется с помощью параметра идентификации точек вычленения.


Пример 4 - Дуга окружности, заданная значениями атрибутов sense_agreement = false, trim_1 = 450 и trim_2 = 90, является замкнутой дугой окружности, направленной по часовой стрелке. Точки ее вычленения заданы пересечением базовой кривой basis_curve окружности circle и осью Y, определенной сущностью axis2_placement.

Определения атрибутов:

basis_curve: отрезок кривой. Для кривых с многократным представлением любое значение параметров, заданное точками вычленения trim_1 или trim_2, ссылается только на главное представление базовой кривой basis_curve;

trim_1: первая точка вычленения, которая может быть описана либо как декартова точка (point_1), либо как действительное значение параметра (parameter_1=t), либо обоими способами;

trim_2: вторая точка вычленения, которая может быть описана либо как декартова точка (point_2), либо как действительное значение параметра (parameter_2=t), либо обоими способами;

sense_agreement: флажок, указывающий, совпадает направление отрезка кривой trimmed_curve с заданным направлением базовой кривой basis_curve или нет.

Атрибут sense_agreement равен "true", если обход кривой производится в направлении увеличения значения параметра;

атрибут sense_agreement в противном случае равен "false".

Для открытой кривой атрибут sense_agreement равен "false", если . Если то атрибут sense_agreement равен "true". В данном случае информация о знаке направления обхода является избыточной (она существенна только для замкнутой кривой);

master_representation: используется, если параметр и точка присутствуют либо в начале, либо в конце кривой, - это указывает на предпочтительность формы. Множественное представление обеспечивает связь данных более чем одной формы, при этом данные могут быть геометрически идентичными.

Примечание 5 - Атрибут главного представления master_representation не гарантирует, что множественные формы действительно идентичны, он указывает предпочтительную форму. Это реализуется разработчиком данных. Все характеристики (например, параметризация, области и результаты вычислений для сущностей, имеющих множественные представления) являются производными главного представления. Использование прочих представлений - это компромисс для практических приложений.


Комментарии к спецификации:

WR1: задается одно значение точки вычленения trim_1 или задаются две настройки различного типа (точка и параметр);

WR2: задается одно значение точки вычленения trim_2 или задаются две настройки различного типа (точка и параметр).

Дополнительные комментарии:

IP1: если значение параметра и десятичная точка cartesian_point существуют для атрибутов trim_1 или trim_2, то они должны быть совместимыми, то есть базовая кривая basis_curve, вычисленная для указанного значения параметра, должна совпадать с заданной точкой;

IP2: если десятичная точка cartesian_point задана атрибутом trim_1 или атрибутом trim_2, то она должна лежать на базовой кривой basis_curve;

IP3: в случае замкнутой базовой кривой basis_curve, когда оба значения parameter_1 и parameter_2 существуют, они должны быть совместимы со значением флажка направления обхода кривой, то есть sense = (parameter_1 < parameter_2);

IP4: если оба значения parameter_1 и parameter_2 существуют, то parameter_1 <> parameter_2;

IP5: если значения параметра описаны атрибутами trim_1 или trim_2, то указанные значения должны находиться внутри параметрического диапазона базовой кривой basis_curve.

6.1.10.5 Сущность composite_curve

Сущность composite_curve задает комбинацию различных кривых, соединенных последовательно. Отдельные сегменты такой комбинированной кривой curve сами могут быть комбинированными composite_curve_segment. Параметризация комбинированной кривой состоит в аккумулировании параметрических диапазонов сегментов ограниченной кривой bounded_curve. Первый сегмент параметризуется в интервале от 0 до , а для i 3 2 соответственно i-й сегмент параметризуется в интервале:

от до ,


где - параметрическая длина (то есть разность между максимальным и минимальным значением параметра) k-го сегмента кривой.

Примечание 1 - В контексте схемы api_abstract_schema комбинированная кривая composite_curve используется либо для представления интерфейса сущности контура api_contour, либо для представления граничной кривой boundary_curve ограниченной поверхности curve_bounded_surface. Оба варианта кривой должны быть плоскими, замкнутыми и несамопересекающимися self_intersecting.


Спецификация на языке EXPRESS:

*)

ENTITY composite_curve

SUBTYPE OF (bounded_curve);

segments : LIST [1:?] OF composite_curve_segment;

self_intersect : LOGICAL;

DERIVE

n_segments : INTEGER := SIZEOF (segments);

closed_curve : BOOLEAN

:= segments [n_segments].transition <> discontinuous;

WHERE

WR1 : ( (NOT closed_curve) AND (SIZEOF (QUERY (temp <* segments |

temp.transition = discontinuous)) = 1)) OR

( (closed_curve) AND (SIZEOF (QUERY (temp <* segments |

temp.transition = discontinuous)) =0));

api WR2: closed_curve ;

api_WR3: NOT self_intersect ;

END_ENTITY;

(*

Примечание 2 - В контексте схемы api_abstract_schema дополнительное правило "Где?" (WHERE RULES) устанавливает требования к замкнутой комбинированной кривой composite_curve, созданной интерфейсом.


Определения атрибутов:

n_segment: число компонентов комбинированной кривой;

segments: конечные кривые сегментов, их переходы и флажки.

Атрибут перехода для последнего сегмента определяет переход от конца последнего сегмента к началу первого. Атрибут перехода может принимать значение "discontinuous", если кривая не замкнута (см. раздел 6.1.3.2);

self_intersect: указывает, является ли кривая самопересекающейся (справочно);

dim: размерность координатного пространства комбинированной кривой. Это наследуемый атрибут супертипа элемента геометрического представления;

closed_curve: указывает, является ли данная кривая замкнутой. Это определяется по коду перехода на последний сегмент.

Примечание 3 - Дополнительная информация об указанных атрибутах приведена на рисунке 4.


Discontinuous - разрывный; continuous - непрерывный; cont_same_gradient - стыковка сегментов с сохранением направления касательной; cont_same_gradient_same_curvature - стыковка сегментов с сохранением направления касательной и значения кривизны

Рисунок 4 - Комбинированная кривая

Комментарии к спецификации:

WR1: код перехода может быть разрывным только для последнего сегмента открытой кривой;

api_WR2: комбинированная кривая composite_curve должна быть замкнутой;

api_WR3: комбинированная кривая composite_curve не должна быть самопересекающейся.

Дополнительные комментарии:

IP1: атрибут same_sense для каждого сегмента описывает соответствие положительных направлений обхода. При переходе в направлении, указанном атрибутом same_sense, сегменты должны присоединяться концом к концу;

api_IP2: комбинированная кривая composite_curve должна быть плоской.

6.1.10.6 Сущность composite_curve_segment

Сущность composite_curve_segment задает конечную кривую вместе с информацией о переходе, используемой при создании комбинированной кривой composite_curve.

Примечание - В контексте схемы api_abstract_schema сегменты комбинированной кривой composite_curve_segment автоматически вычисляются интерфейсом при создании контура api_contour или плоской поверхности api_planar_surface. Поэтому переход не должен быть разрывным.


Спецификация на языке EXPRESS:

*)

ENTITY composite_curve_segment;

transition : transition_code;

same_sense : BOOLEAN;

parent_curve : curve;

INVERSE

using_curves : BAG [1:?] OF composite_curve FOR segments;

WHERE

WR1 : ('API_ABSTRACT_SCHEMA.BOUNDED_CURVE' IN TYPEOF (parent_curve));

api_WR2: (transition = continuous) OR (transition = cont_same_gradient);

END_ENTITY;

(*

Определения атрибутов:

transition: состояние перехода (то есть свойство геометрической непрерывности перехода из конечной точки предшествующего сегмента в начальную точку последующего сегмента) для комбинированной кривой composite_curve;

same_sense: индикатор, показывающий, согласуется ли направление обхода сегмента с направлением обхода первичной кривой parent_curve. Если значение атрибута same_sense "false", то точка с наивысшим значением параметра есть начальная точка сегмента;

parent_curve: конечная кривая bounded_curve, определяющая геометрический сегмент;

using_curve: множество комбинированных кривых composite_curve, использующих данный сегмент composite_curve_segment. Данное множество не должно быть пустым.

Комментарии к спецификации:

WR1: первичная кривая parent_curve должна быть ограниченной кривой bounded_curve;

api_WR2: переход transition может быть либо непрерывным, либо иметь дополнительно непрерывную касательную cont_same_gradient.

6.1.10.7 Сущность surface_curve

Сущность surface_curve задает кривую на поверхности. Рассматриваемая кривая является кривой в трехмерном пространстве curve_3d. Она может соответствовать кривой pcurve в двумерном параметрическом пространстве на поверхности. Способность данной кривой ссылаться на одну или две кривые на поверхности pcurve_or_surface позволяет настоящей сущности определять либо кривую на одной поверхности, либо кривую пересечения двух ассоциированных поверхностей. "Шов" на замкнутой поверхности также может быть представлен настоящей сущностью. В данном случае каждая ассоциированная геометрия associated_geometry представляет собой pcurve, лежащую на одной поверхности. Каждая pcurve (если таковая существует) параметризуется по направлению обхода, соответствующему кривой curve_3d. Кривая на поверхности параметризуется непосредственно либо как curve_3d, либо как pcurve в соответствии с атрибутом master_representation.

Примечание 1 - В контексте схемы api_abstract_schema surface_curve, автоматически вычисленные интерфейсом, при создании плоской поверхности api_planar_surface ссылаются на сущность плоскости.


Спецификация на языке EXPRESS:

*)

ENTITY surface_curve

SUPERTYPE OF (bounded_surface_curve)

SUBTYPE OF (curve);

curve_3d : curve;

associated_geometry : LIST [1:2] OF pcurve_or_surface;

master_representation : preferred_surface_curve_representation;

DERIVE

basis_surface : SET [1:2] OF surface

:= get_basis_surface (SELF) ;

WHERE

WR1 : curve_3d.dim =3;

WR2 : ('GEOMETRY_SCHEMA.PCURVE' IN TYPEOF (associated_geometry [1])) OR

(master_representation <> pcurve_s1);

WR3 : (' GEOMETRY_SCHEMA.PCURVE' IN TYPEOF (associated_geometry [2])) OR

(master_representation <> pcurve_s2);

WR4 : NOT ('GEOMETRY_SCHEMA.PCURVE' IN TYPEOF (curve_3d));

api_WR5 : master_representation = curve_3D;

api_WR6 : SIZEOF (SELF.associated_geometry) = 1;

api_WR7 : 'API_ABSRACT_SCHEMA.PLANE' IN

TYPE OF (SELF.associated_geometry [1]);

api_WR8 : SELF.associated_geometry [1] :=: SELF.basis_surface;

END_ENTITY;

(*

Определения атрибутов:

curve_3d: кривая, являющаяся трехмерным представлением кривой на поверхности surface_curve;

associated_geometry: перечень одной или двух pcurve (поверхностей), определяющих поверхности, ассоциированные с кривой на поверхности. Два элемента данного перечня указывают, что кривая имеет связь с двумя поверхностями, которые могут быть не разделены. Если кривая выбрана, то она идентифицирует поверхность и связанную с ней базовую кривую в параметрическом пространстве данной поверхности.

Примечание 2 - В контексте схемы api_abstract_schema ассоциированная геометрия associated_geometry ссылается на сущность plane при создании плоской поверхности api_planar_surface интерфейса прикладного программирования;


master_representation: указание на главное представление. Оно задает кривую, определяющую уникальную параметризацию кривой на поверхности.

Главное представление использует одно из значений атрибутов curve_3d, pcurve_s1 или рсиrvе_s2. Таким образом, можно указать предпочтительность 3D-curve, первой pcurve или второй рсиrvе в ассоциированном геометрическом перечне соответственно. Множественные представления способствуют установлению связи данных нескольких форм, даже если указанные данные могут быть геометрически идентичными.

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

Примечание 4 - В контексте схемы api_abstract_schema главным представлением master_representation должна быть curve_3d;


basis_surface: поверхность, на которой лежит surface_curve. Она задается первым элементом перечня associated_geometry.

Примечание 5 - В контексте схемы api_abstract_schema данной поверхностью является плоскость plane для плоской поверхности api_planar_surface интерфейса прикладного программирования.


Комментарии к спецификации:

WR1: curve_3d определяется в трехмерном пространстве;

WR2: pcurve_s1 является главным представлением, если первый элемент перечня associated_geometry является pcurve;

WR3: pcurve_s2 является главным представлением, если второй элемент перечня associated_geometry является pcurve. При этом кривая pcurve_s2 не должна рассматриваться, если перечень associated_geometry содержит только один элемент;

WR4: curve_3d не должна быть pcurve;

api_WR5: главное представление master_representation должно быть curve_3D;

api_WR6: перечень associated_geometry должен содержать только один элемент;

api_WR7: если перечень associated_geometry содержит уникальный элемент, то он должен быть сущностью plane;

api_WR8: производная сущности basis_surface должна быть той же сущностью, что и уникальная сущность, содержащаяся в перечне associated_geometry.

Дополнительные комментарии:

IP1: если curve_3d и pcurve существуют, то они должны представлять одно и то же множество математических точек (то есть они должны совпадать геометрически, но могут отличаться способом параметризации);

IP2: curve_3d и любая ассоциированная с ней pcurve должны быть согласованы с учетом положительного направления их обхода.

6.1.10.8 Сущность composite_curve_on_surface

Сущность composite_curve_on_surface задает набор сегментов кривых на поверхности. Каждый сегмент должен лежать на базовой поверхности. Это может быть:

- surface_curve;

- pcurve;

- composite_curve_on_surface.

Примечание 1 - Комбинированная кривая на поверхности composite_curve_on_surface может быть включена как атрибут parent_curve сегмента комбинированной кривой composite_curve_segment, который является подтипом ограниченной кривой bounded_curve.

Примечание 2 - В контексте схемы api_abstract_schema каждый сегмент должен быть кривой на поверхности surface_curve.


Необходимо обеспечить по крайней мере непрерывность взаимного положения примыкающих сегментов. Комбинированные кривые composite_curve параметризуются путем объединения параметрических диапазонов сегментов. Диапазон значений параметра первого сегмента от 0 до , и, соответственно, диапазон значений параметра i-го сегмента:

от до ,

где - параметрическая длина (то есть разность между максимальным и минимальным значением параметра) k-го сегмента кривой.

Спецификация на языке EXPRESS:

*)

ENTITY composite_curve_on_surface

SUPERTYPE OF (boundary_curve)

SUBTYPE OF (composite_curve) ;

DERIVE

basis_surface : SET [0:2] OF surface := get_basis_surface (SELF);

WHERE

WR1 : SIZEOF (basis_surface) > 0;

WR2 : constraints_composite_curve_on_surface (SELF);

api_WR3: SIZEOF (QUERY (temp<*SELF\composite_curve.segments |

'GEOMETRY_SCHEMA.PCURVE' IN TYPEOF (temp.parent_curve)

) -- end of query

) = 0;

END_ENTITY;

(*

Определения атрибутов:

basis_surface: поверхность, на которой определена рассматриваемая комбинированная кривая;

SELF\composite_curve.n_segment: число сегментов комбинированной кривой;

SELF\composite_curve.segments: конечные кривые сегментов, их сопряжения и положительные направления обхода. Сопряжение последнего сегмента комбинированной кривой задает порядок перехода от конца последнего сегмента к началу первого. Настоящий элемент может принимать значение "discontinuous", что указывает на разрывность кривой.

Примечание 3 - В контексте схемы api_abstract_schema наследованное правило "Где?" (WHERE RULES) используемого интерфейса прикладного программирования гарантирует, что сопряжение (переход) не является разрывным;


SELF\composite_curve.self_intersect: указывает, является ли кривая самопересекающейся;

SELF\composite_curve.dim: размерность координатного пространства комбинированной кривой composite_curve;

SELF\composite_curve.closed_curve: указывает, является ли кривая замкнутой.

Комментарии к спецификации:

WR1: множество basis_surface должно содержать по крайней мере одну поверхность. Это гарантирует, что все сегменты относятся к кривой на одной и той же поверхности;

WR2: каждый рассматриваемый сегмент должен относиться к pcurve или к surface_curve либо к сегменту composite_curve_on_surface;

api_WR3: никакой из сегментов не может относиться к pcurve.

Дополнительный комментарий:

IP1: каждая первичная кривая parent_curve, на которую производится ссылка сегментом composite_curve_on_surface, должна быть комбинированной кривой на поверхности curve_on_surface и ограниченной кривой bounded_curve.

6.1.10.9 Сущность bounded_surface_curve

Сущность bounded_surface_curve задает особый подтип кривой поверхности surface_curve, имеющей свойства ограниченной кривой bounded_curve.

Спецификация на языке EXPRESS:

*)

ENTITY bounded_surface_curve

SUBTYPE OF (surface_curve, bounded_curve);

WHERE

api_WR1 : ('API_ABSTRACT_SCHEMA.BOUNDED_CURVE' IN

TYPEOF (SELF\surface_curve.curve_3d);

END_ENTITY;

(*

Комментарий к программе:

api_WR1: атрибут curve_3d супертипа surface_curve должен быть bounded_curve.

     6.1.11 Определения сущностей схемы API_ABSTRACT_SCHEMA: геометрические конические сущности


В настоящем подразделе установлен групповой ресурс сущностей для curves, определенных в ИСО 10303-42 и являющихся частью схемы api_abstract_schema. Рассматриваемые сущности не могут быть созданы непосредственно с помощью функций интерфейса. Они могут быть созданы только косвенно и представляют собой особые сущности интерфейса.

6.1.11.1 Сущность conic

Сущность conic задает плоскую кривую пересечения плоскости с конусом.

Коническая кривая определяется в терминах ее внутренних геометрических свойств.

Сущность conic всегда имеет локальную координатную систему placement, определенную сущностью axis2_placement. Параметрическое представление сущности установлено в терминах настоящей локальной координатной системы placement.

Примечание - В контексте схемы api_abstract_schema конические кривые создаются только как базовые кривые для api_circular_arc, api_elliptical_arc, api_hyperbolic_arc и api_parabolic_arc в интерфейсе прикладного программирования.


Спецификация на языке EXPRESS:

*)

ENTITY conic

ABSTRACT SUPERTYPE OF (ONEOF (circle, ellipse, hyperbola, parabola))

SUBTYPE OF (curve) ;

position: axis2_placement;

WHERE

api_WR1: SIZEOF ( USEDIN (SELF,

'API_ABSTRACT_SCHEMA.TRIMMED_CURVE.BASIS_CURVE') ) = 1;

END_ENTITY;

(*

Определение атрибута:

position: расположение и ориентация конических кривых. Дальнейшие подробности интерпретации настоящего атрибута заданы для индивидуальных подтипов.

Комментарий к спецификации:

api_WR1: каждая коническая кривая используется как basis_curve одной сущностью отрезка кривой trimmed_curve.

6.1.11.2 Сущность circle

Сущность circle задает окружность по радиусу, центру и заданному положительному направлению обхода:

С = position.location;

х = position.p [1];

у = position.p[2];

z = position.p[3];

R = радиус.

Окружность задается параметром и по формуле:

.


Диапазон параметризации: .

В локальной координатной системе placement, определенной выше, уравнение окружности имеет вид С=0, где:

.


Положительное направление обхода окружности задается сущностью circle в любой ее точке в направлении вектора касательной Т к окружности:

.


Примечание 1 - Дуга окружности определяется сущностью trimmed_cirve в совокупности с сущностью circle.

Примечание 2 - В контексте схемы api_abstract_schema дуга окружности circular_arc определяется api_circular_arc.

Примечание 3 - В контексте схемы api_abstract_schema окружность создается только интерфейсом прикладного программирования как сущность basis_curve для api_circular_arc.


Спецификация на языке EXPRESS:

*)

ENTITY circle

SUBTYPE OF (conic);

radius : positive_lenght_measure;

END_ENTITY;

(*


Ref_direction - ссылочное направление; axis - ось

Рисунок 5 - Окружность


Определения атрибутов:

SELF\conic.position.location: настоящий унаследованный атрибут определяет центр окружности;

radius: радиус окружности должен быть положительным.

Примечание 4 - Интерпретация атрибутов приведена на рисунке 5.

6.1.11.3 Сущность ellipse

Сущность ellipse задает коническую кривую, определенную двумя (большой и малой) полуосями эллипса, положением эллипса (центром или серединой отрезка, соединяющего фокусы эллипса) и ориентацией эллипса. Данные эллипса:

С = position.location;

х = position.p [1];

у = position. p[2];

z = position.p[3];

R = semi_axis_1;

R = semi_axis_2.

Эллипс задается параметром и по формуле:

.


Диапазон параметризации: .

В локальной координатной системе placement, определенной выше, уравнение эллипса имеет вид С = 0, где:

.


Положительное направление обхода эллипса в любой его точке задается касательным вектором .

Примечание 1 - В контексте схемы api_abstract_schema эллипс может быть создан интерфейсом прикладного программирования только как базовая кривая для api_elliptical_arc.


Axis - ось; ref_direction - ссылочное направление; location - центр эллипса

Рисунок 6 - Эллипс


Спецификация на языке EXPRESS:

*)

ENTITY ellipse

SUBTYPE OF (conic);

semi_axis_1 : positive_length_measure;

semi_axis_2 : positive_length_measure;

END_ENTITY;

(*

Определения атрибутов:

SELF\conic.position: атрибут conic.position.location задает центр эллипса, атрибут conic.position.p[1] задает направление первой полуоси эллипса semi_axis_1;

semi_axis_1: первая полуось эллипса, должна быть положительной;

semi_axis_2: вторая полуось эллипса, должна быть положительной.

Примечание 2 - Интерпретация атрибутов указана на рисунке 6.

6.1.11.4 Сущность hyperbola

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

С = position.location;

х = position. p[1];

у = position. p[2];

z = position.p[3];

R = semi_axis;

R = semi_imag_axis.

Гипербола задается параметром и по формуле:

.


Диапазон параметризации: .

В локальной координатной системе placement, определенной выше, гипербола представляется уравнением С = 0, где:

.


Положительное направление обхода гиперболы в любой ее точке определяется вектором касательной Т:

.

На рисунке 7 изображена только одна ветвь гиперболы для положительных значений координаты х.

Примечание 1 - В контексте схемы api_abstract_schema в интерфейсе прикладного программирования гипербола может быть создана только как базовая кривая для api_hyperbolic_arc.


Спецификация на языке EXPRESS:

*)

ENTITY hyperbola

SUBTYPE OF (conic);

semi_axis : positive_length_measure;

semi_imag axis : positive_length_measure;

END_ENTITY;

(*


Semi_imag_axis - мнимая полуось гиперболы; semi_axis - действительная полуось гиперболы; ref_direction - ссылочное направление

Рисунок 7 - Гипербола


Определения атрибутов:

SELF\conic.position: расположение и ориентация конической кривой. Атрибут conic.position.location задает центр гиперболы, атрибут conic.position.p[1] задает направление действительной полуоси гиперболы. Указана только одна ветвь гиперболы для положительных значений координаты position.р [1];

semi_axis: длина действительной полуоси гиперболы. Она положительна и равна половине минимального расстояния между ветвями гиперболы;

semi_imag_axis: длина мнимой полуоси гиперболы, показана для положительных значений координаты у.
    

Примечание 2 - Атрибуты гиперболы указаны на рисунке 7.


Комментарии к спецификации:

WR1: длина действительной полуоси semi_axis, должна быть больше нуля.

WR2: длина мнимой полуоси semi_imag_axis, должна быть больше нуля.

6.1.11.5 Сущность parabola

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

Данные параболы:

С = position.location;

х = position.p[1];

у = position.p[2];

z = position.p[3];

F = focal_dist.

Парабола задается параметром и по формуле:

.


Диапазон параметризации: .

В локальной координатной системе, определенной выше, парабола представлена уравнением С=0, где:

.


Положительное направление обхода кривой в любой ее точке задается вектором касательной Т:

.


Примечание 1 - В контексте схемы api_abstract_schema в интерфейсе прикладного программирования парабола может быть создана только как базовая кривая для parabolics_arc.


Ref_direction - ссылочное направление; location - вершина параболы

Рисунок 8 - Парабола


Спецификация на языке EXPRESS:

*)

ENTITY parabola

SUBTYPE OF (conic);

focal_dist : lengt_measure;

WHERE

WR1: focal_dist <> 0.0;

END_ENTITY

(*

Определения атрибутов:

SELF\conic.position: расположение и ориентация кривой. Атрибут conic.position.location задает вершину параболы, атрибут conic.position.p [1] задает ось симметрии параболы;

focal_dist: расстояние фокуса от вершины параболы.

Примечание 2 - Атрибуты параболы представлены на рисунке 8.


Комментарий к спецификации:

WR1: фокусное расстояние не должно быть равно нулю.

     6.1.12 Определение сущностей схемы API_ABSTRACT_SCHEMA: базовые кривые интерфейса прикладного программирования


В настоящем подразделе установлены сущности кривых интерфейса прикладного программирования, вычисляемых и генерируемых интерфейсом посредством спецификаций с учетом ограничений. Интерфейс имеет утилиты для определения характеристик указанных сущностей. Задание ориентации рассматриваемых сущностей (с помощью точек вычленения trim_1 и trim_2 в соответствии с соглашением о задании положительного направления обхода кривой sense_agreement) устраняет неоднозначность геометрических построений. Указанные сущности должны существовать в целевой моделирующей системе. Поэтому процесс моделирования для их реализации не определяется.

6.1.12.1 Сущность api_line

Сущность api_line задает отрезок кривой trimmed_curve линейного сегмента. Определяется сущностью trimmed_cirve в совокупности с сущностью line.

Спецификация на языке EXPRESS:

*)

ENTITY api_line

SUBTYPE OF (trimmed_curve) ;

WHERE

api_WR1 : 'API_ABSTRACT_SCHEMA.LINE' IN

TYPEOF (SELF\TRIMMED_CURVE.BASIS_CURVE);

END_ENTITY;

(*

Примечание 1 - Данная сущность интерфейса прикладного программирования позволяет задать диапазон значений некоторых функций интерфейса.

Примечание 2 - В контексте схемы api_abstract_schema главное представление master_representation должно зависеть от реализации.

Примечание 3 - Данная сущность может быть использована как trimmed_curve.


Определения атрибутов:

SELF\trimmed_curve.basis_curve: линия, в пределах которой берется отрезок;

SELF\trimmed_curve.trim_1: первая точка вычленения, описываемая либо как декартова точка cartesian_point (point_1), либо действительным значением параметра (parameter_1=t), либо обоими способами;

SELF\trimmed_curve.trim_2: вторая точка вычленения, описываемая либо как декартова точка cartesian_point (point_2), либо как действительное значение параметра (parameter_2=t), либо обоими способами;

SELF\trimmed_curve.sense_agreement: флажок, указывающий, согласуется или нет направление обхода отрезка кривой с направлением обхода базовой кривой;

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

Комментарий к спецификации:

api_WR1: basis_curve для кривой trimmed_curve должна быть линия.

Дополнительный комментарий:

api_IP1: api_line должна быть не меньше допуска EPS и не больше установленного максимального значения МАХ.

6.1.12.2 Сущность api_circular_arc

Сущность api_circular_arc задает отрезок кривой trimmed_curve для одного сегмента окружности. Определяется с помощью сущности trimmed_cirve в совокупности с сущностью circle.

Спецификация на языке EXPRESS:

*)

ENTITY api_circular_arc

SUBTYPE OF (trimmed_curve) ;

WHERE

api_WR1 : 'API_ABSTRACT_SCHEMA.CIRCLE' IN

TYPEOF (SELF\TRIMMED_CURVE.BASIS_CURVE);

END_ENTITY;

(*

Примечание 1 - Данная сущность интерфейса прикладного программирования задает диапазон значений некоторых функций интерфейса.

Примечание 2 - В контексте схемы api_abstract_schema главное представление master_representation должно зависеть от реализации.

Примечание 3 - Данная сущность может быть применена как сущность trimmed_curve.

Примечание 4 - Если начальная и конечная точки отрезка дуги окружности api_circular_arc совпадают, то сущность api_circular_arc задает окружность с указанием положительного направления ее обхода в соответствии с соглашением sense_agreement.


Определения атрибутов:

SELF\trimmed_curve.basis_curve: окружность, из которой вычленяется дуга;

SELF\trimmed_curve.trim_1: начальная точка отрезка, описываемая либо как декартова точка cartesian_point (point_1), либо действительным значением параметра (parameter_1 = t), либо обоими способами;

SELF\trimmed_curve.trim_2: конечная точка отрезка, описываемая либо как декартова точка cartesian_point (point_2), либо как действительное значение параметра (parameter_2 = t), либо обоими способами;

SELF\trimmed_curve.sense_agreement: флажок, указывающий, согласуется или нет направление обхода отрезка кривой с направлением обхода базовой кривой;

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

Комментарий к спецификации:

api_WR1: базовой кривой для отрезка кривой должна быть окружность.

Дополнительный комментарий:

api_IP1: длина дуги окружности api_circular_arc должна быть не меньше допуска EPS.

     6.1.13 Определения сущностей схемы API_ABSTRACT_SCHEMA: дуги конических кривых интерфейса прикладного программирования


В настоящем подразделе установлены сущности дуг конических кривых интерфейса прикладного программирования, генерируемых с помощью функций интерфейса. Если функция, создающая дугу конической кривой, запущена, то кривая conic сначала создается как базовая кривая basis_curve дуги конической кривой, а затем указанная дуга конической кривой создается как подтип отрезка кривой trimmed_curve.

Сущности, определенные в настоящем разделе, задают диапазон значений некоторых функций интерфейса.

Примечание - Дуги конических кривых могут быть использованы как вычленения кривых trimmed_curve.


Если сущности конических кривых не существуют в целевых моделирующих системах, то моделирование выполняется интерфейсом. Настоящее моделирование производится для каждой сущности путем интерполяции. Для интерполяции в моделируемой сущности берутся две заданные конечные точки и некоторое количество внутренних точек, определенных в строке задания числа узлов интерполяции interpolation_nodes_number таблицы статуса интерфейса. Интерполирующие кривые должны быть непрерывными, с непрерывными касательными. Они должны сохранять касательные сущности в обеих конечных точках. Кривая, используемая для интерполяции, зависит от реализации. Это может быть, например, дуга окружности circular_arc. Тип кривой может быть определен внутри целевой моделирующей системы или интерфейса (например, кривые Безье). Выбор промежуточных точек интерполяции также зависит от реализации. Единственным требованием к промежуточным точкам является их равномерное (в некотором смысле) распределение.

Строка задания числа узлов интерполяции interpolation_nodes_number таблицы статуса интерфейса может запрашиваться прикладной программой. Число узлов интерполяции может быть меньше или равно некоторому максимальному значению max_interpolation_nodes_number, определенному в таблице описаний интерфейса. Указанное значение max_interpolation_nodes_number должно быть больше или равно 1.

6.1.13.1 Сущность api_elliptical_arc

Сущность api_elliptical_arc задает отрезок кривой trimmed_curve для сегмента эллипса ellipse. Определяется сущностью trimmed_cirve в совокупности с сущностью ellipse.

Спецификация на языке EXPRESS:

*)

ENTITY api_elliptical_arc

SUBTYPE OF (trimmed_curve);

WHERE

api_WR1 : 'API_ABSTRACT_SCHEMA.ELLIPSE' IN

TYPEOF (SELF\TRIMMED_CURVE.BASIS_CURVE);

END_ENTITY;

(*

Примечание 1 - Настоящая сущность интерфейса прикладного программирования задает диапазон значений некоторых функций интерфейса.

Примечание 2 - В контексте схемы api_abstract_schema главное представление master_representation должно зависеть от реализации.

Примечание 3 - Настоящая сущность может быть применена как сущность trimmed_curve.

Примечание 4 - Если начальная и конечная точки api_elliptical_arc совпадают, то сущность api_elliptical_arc задает эллипс целиком с положительным направлением обхода, соответствующим соглашению sense_agreement.


Определения атрибутов:

SELF\trimmed_curve.basis_curve: эллипс, в пределах которого вычленяется дуга;

SELF\trimmed_curve.trim_1: начальная точка отрезка, описываемая либо как декартова точка cartesian_point (point_1), либо действительным значением параметра (parameter_1=t), либо обоими способами;

SELF\trimmed_curve.trim_2: конечная точка отрезка, описываемая либо как декартова точка cartesian_point (point_2), либо как действительное значение параметра (parameter_2=t), либо обоими способами;

SELF\trimmed_curve.sense_agreement: флажок, указывающий, согласуется или нет направление обхода отрезка кривой с направлением обхода базовой кривой;

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

Комментарий к спецификации:

api_WR1: базовой кривой для отрезка кривой должен быть эллипс.

Дополнительный комментарий:

IP1: длина дуги эллипса api_elliptical_arc должна быть не меньше допуска EPS.

6.1.13.2 Сущность api_hyperbolic_arc

Сущность api_hyperbolic_arc задает отрезок кривой trimmed_curve сегмента гиперболы. Определяется сущностью trimmed_cirve в совокупности с сущностью hyperbola.

Спецификация на языке EXPRESS:

*)

ENTITY api_hyperbolic_arc

SUBTYPE OF (trimmed_curve);

WHERE

api_WR1 : 'API_ABSTRACT_SCHEMA.HYPERBOLA' IN

TYPEOFF (SELF\TRIMMED_CURVE.BASIS_CURVE);

END_ENTITY;

(*

Примечание 1 - Настоящая сущность интерфейса прикладного программирования задает диапазон значений некоторой функции интерфейса.

Примечание 2 - В контексте схемы api_abstract_schema главное представление master_representation должно зависеть от реализации.

Примечание 3 - Настоящая сущность может быть применена как сущность trimmed_curve.

Определения атрибутов:


SELF\trimmed_curve.basis_curve: гипербола, в пределах которой вычленяется сегмент;

SELF\trimmed_curve.trim_1: начальная точка отрезка, описываемая либо как декартова точка cartesian_point (point_1), либо действительным значением параметра (parameter_1=t), либо обоими способами;

SELF\trimmed_curve.trim_2: конечная точка отрезка, описываемая либо как декартова точка cartesian_point (point_2), либо как действительное значение параметра (parameter_2=t), либо обоими способами;

SELF\trimmed_curve.sense_agreement: флажок, указывающий, согласуется или нет направление обхода отрезка кривой с направлением обхода базовой кривой;

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

Комментарий к спецификации:

api_WR1: базовая кривая для отрезка кривой должна быть гиперболой.

Дополнительный комментарий:

api_IP1: длина дуги гиперболы api_hyperbolic_arc должна быть не меньше допуска EPS.

6.1.13.3 Сущность api_parabolic_arc

Сущность api_parabolic_arc задает отрезок кривой trimmed_curve сегмента параболы. Определяется сущностью trimmed_cirve в совокупности с сущностью parabola.

Спецификация на языке EXPRESS:

*)

ENTITY api_parabolic_arc

SUBTYPE OF (trimmed_curve);

WHERE

api_WR1 : 'API_ABSTRACT_SCHEMA.PARABOLA' IN

TYPEOF (SELF\TRIMMED_CURVE.BASIS_CURVE);

END_ENTITY;

(*

Примечание 1 - Настоящая сущность интерфейса прикладного программирования задает диапазон значений некоторой функции интерфейса.

Примечание 2 - В контексте схемы api_abstract_schema главное представление master_representation должно зависеть от реализации.

Примечание 3 - Настоящая сущность может быть применена как сущность trimmed_curve.


Определения атрибутов:

SELF\trimmed_curve.basis_curve: парабола, в пределах которой вычленяется сегмент;

SELF\trimmed_curve.trim_1: начальная точка отрезка, описываемая либо как декартова точка cartesian_point (point_1), либо действительным значением параметра (parameter_1=t), либо обоими способами;

SELF\trimmed_curve.trim_2: конечная точка отрезка, описываемая либо как декартова точка cartesian_point (point_2), либо как действительное значение параметра (parameter_2=t), либо обоими способами;

SELF\trimmed_curve.sense_agreement: флажок, указывающий, согласуется или нет направление обхода отрезка кривой с направлением обхода базовой кривой;

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

Комментарий к спецификации:

api_WR1: базовая кривая для отрезка кривой должна быть параболой.

Дополнительный комментарий:

IP1: длина дуги параболы api_parabolic_arc должна быть не меньше допуска EPS.

     6.1.14 Определения сущностей схемы API_ABSTRACT_SCHEMA: сущности кривых


Настоящий подраздел устанавливает две сущности кривых, создаваемых с помощью функций интерфейса: сущность polyline (групповой ресурс сущностей, определенный стандартом ИСО 10303-42 и являющийся частью схемы api_abstract_schema) и сущность api_contour интерфейса прикладного программирования.

6.1.14.1 Сущность polyline

Сущность polyline создает ограниченную кривую bounded_curve, состоящую из n-1 линейных сегментов, определенных n точками Р, Р,..., Р.

При этом i-й сегмент кривой параметризуется следующим образом:

, для ,


где - параметрический диапазон целочисленного параметра .

Примечание 1 - Если сущность polyline не существует в CAD, то она должна моделироваться посредством соединения линий. Максимальное количество узлов полилинии, допустимое в данной реализации интерфейса, не меньше величины, установленной в разделе 9.

Примечание 2 - В контексте схемы api_abstract_schema длина каждого линейного сегмента не должна быть меньше EPS или больше МАХ.


Спецификация на языке EXPRESS:

*)

ENTITY polyline

SUBTYPE OF (bounded curve) ;

points : LIST [2:?] OF cartesian_point;

END_ENTITY;

(*

Определение атрибута:

points: узлы, задающие полилинии.

Дополнительный комментарий:

api_IP1: длина каждого линейного сегмента не должна быть меньше EPS или больше МАХ.

6.1.14.2 Сущность api_contour

Сущность api_contour задает несамопересекающуюся ориентированную плоскую замкнутую комбинированную кривую composite_curve, построенную интерфейсом из базовых сущностей, дуг конических кривых и/или полилиний. Контур api_contour разрезает плоскость на два подмножества. Ограниченное подмножество является внутренним. Интерфейс должен гарантировать замкнутость контура. При этом сущности, получающиеся в результате геометрического преобразования контура с помощью интерфейса, остаются замкнутыми.

Сущность api_contour определена прикладной программой как неупорядоченный перечень сущностей кривых. Любые базовые сущности (линии api_line, дуги окружности api_circular_arc), конические дуги и сущности polyline могут быть использованы для определения контура api_contour в интерфейсе прикладного программирования при условии:

1) для любой крайней точки одной сущности существует только одна крайняя точка другой сущности в окрестности нулевого радиуса ZERO_vaiue;

2) кривая, полученная путем соединения соседних крайних точек, заданных сущностью, должна быть плоской, замкнутой и несамопересекающейся.

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

Если оба условия выполнены, то контур api_contour вычисляется интерфейсом. Данный процесс выполняется в два этапа: 1) моделирование некоторых сущностей; 2) результирующая сущность корректируется, чтобы гарантировать замыкание контура api_contour.

1. Контуры api_contour определяются для построения заполненных областей комментариев annotation_fill_area, плоских поверхностей api_planar_surface и твердых тел solid bodies. Таким образом, некоторые сущности не могут быть использованы для представлений контура (например, когда они не поддерживаются CAD). Только сущности базовых кривых (например, вычленения прямых api_line, дуги окружностей api_circular_arc) допускаются любым интерфейсом для представления контура. Если какие-либо сущности кривых, используемые функциями генерации контура, не допускаются интерфейсом для представления контура, то указанные сущности моделируются особой установленной процедурой.

Примечание 1 - Сущности, допустимые для представления контура, определены записями contour_entities таблицы описаний интерфейса (см. раздел 8.1). Максимальное количество сущностей на каждый контур api_contour для заданной реализации интерфейса должно быть не меньше величины, описанной в разделе 9.

2. Замкнутый контур api_contour конструируется в следующем порядке:

1) первая кривая переупорядоченного перечня дублируется вместе с базовой кривой при условии, что это отрезок кривой;

2) первый сегмент комбинированной кривой composite_curve_segment строится с помощью указанной дублированной кривой как parent_curve. При этом значение атрибута направления обхода кривой same_sense равно "true";

3) вычисляется направление direction касательного вектора текущего сегмента комбинированной кривой composite_curve_segment в его конечной точке. Вычисляется также направление касательного вектора последующего сегмента кривой (в переупорядоченном перечне кривых) в его начальной точке в окрестности конечной точки предшествующего сегмента комбинированной кривой composite_curve_segment. Таким образом, последующая кривая для последней кривой (переупорядоченного перечня кривых) оказывается первой кривой;

4) если оба направления direction параллельны, то переход transition текущего сегмента комбинированной кривой composite_curve_segment на последующий сегмент устанавливается из условия сохранения касательной сущностью cont_same_gradient, в противном случае она устанавливается из условия обеспечения непрерывности кривой сущностью continuous;

5) вплоть до окончания перечня кривых каждый composite_curve_segment вычисляется аналогично:

a) кривая дублируется базовой кривой при условии, что это отрезок кривой;

b) сегмент комбинированной кривой composite_curve_segment строится с помощью данной дублированной кривой как сущность parent_curve. Указанный сегмент composite_curve_segment называется текущим composite_curve_segmenf;

c) если первая крайняя точка дублированной кривой находится в окрестности крайней точки предшествующего сегмента комбинированной кривой composite_curve_segment, то значение атрибута направления обхода кривой same_sense текущего сегмента composite_curve_segment равно "true". В противном случае его значение равно "false". Данный атрибут определяет ориентацию текущего сегмента composite_curve_segment, а также его начало и конец;

d) если начальная точка текущего сегмента composite_curve_segment не совпадает с конечной точкой предшествующего сегмента composite_curve_segment, то basis_curve для указанного сегмента composite_curve_segment преобразуется и обеспечивает замыкание контура api_contour,

е) вычисляются направления касательных векторов текущего сегмента комбинированной кривой composite_curve_segment в его конечной точке и последующей кривой (в переупорядоченном перечне кривых) в ее конечной точке, находящейся в окрестности указанной конечной точки текущего сегмента composite_curve_segment. Если оба направления параллельны, то сопряжение текущего сегмента composite_curve_segment с последующим устанавливается сущностью cont_same_gradient. В противном случае сопряжение должно быть непрерывным. Таким образом, последующей для последней кривой (переупорядоченного перечня кривых) является первая кривая;

6) если конечная точка последнего сегмента комбинированной кривой composite_curve_segment и начальная точка первого сегмента composite_curve_segment совпадают, то создается контур api_contour, состоящий из упорядоченного перечня вычисленных сегментов composite_curve_segment. Если указанные две точки не совпадают и если оба кода перехода двух последних composite_curve_segment являются непрерывными, то последний сегмент комбинированной кривой composite_curve_segment корректируется, чтобы обеспечить замыкание контура. Если контур незамкнутый и код перехода для двух последних сегментов composite_curve_segment определен сущностью cont_same_gradient, то интерфейс аппроксимирует последний сегмент комбинированной кривой composite_curve_segment одним или двумя сегментами composite_curve_segment. Процесс аппроксимации, зависящий от реализации, должен гарантировать:

- замыкание контура;

- корректировку кода перехода transition предшествующего сегмента composite_curve_segment,

- равенство значения кода перехода transition аппроксимирующей сущности и значения кода перехода аппроксимируемого сегмента комбинированной кривой composite_curve_segment,

- увеличение аппроксимируемой сущности больше EPS.

Если интерфейс не может выполнять указанную аппроксимацию, то последняя сущность немного перемещается, чтобы обеспечить замыкание контура. При этом коды перехода двух последних сегментов комбинированной кривой composite_curve_segment изменяются соответственно. Таким образом, зацикливание переупорядоченного перечня кривых всегда предполагает следующее: предшествующей сущностью для первой сущности является последняя сущность.

Примечание 2 - Для прикладных программ можно избежать модификации какой-либо сущности в процессе построения контура. Для этого указанные программы должны использовать только допустимые сущности контура (минимально это вычленения прямых api_line и дуги окружности api_circular_arc) и гарантировать замыкание контура.


Спецификация на языке EXPRESS:

*)

ENTITY api_contour

SUBTYPE OF (composite_curve) ;

END_ENTITY;

(*

Примечание 3 - Указанная сущность интерфейса прикладного программирования используется для задания диапазона некоторых функций интерфейса.

Примечание 4 - Указанная сущность может быть применена как сущность composite_curve.


Определения атрибутов:

SELF\composite_curve. segments: упорядоченный перечень composite_curve_segment, вычисленных интерфейсом и составляющих контур api_contour интерфейса прикладного программирования;

SELF\composite_curve.self_intersect: атрибут типа LOGICAL, имеющий значение "false" и указывающий на то, что контур api_contour - несамопересекающийся;

SELF\composite_curve.n_segment: количество сущностей, равное значению, установленному прикладной программой, и плюс один, если процесс вычислений, определенный выше, требует дополнительный сегмент composite_curve_segment для обеспечения замыкания контура api_contour интерфейсом прикладного программирования;

SELF\composite_curve.closed_curve: булев атрибут, имеющий значение "true" и указывающий на замыкание контура api_contour.

Дополнительный комментарий:

api_IP1: внутри контура должна помещаться окружность диаметром EPS.

     6.1.15 Определения сущностей схемы API_ABSTRACT_SCHEMA: заполненные области


Настоящий подраздел объявляет групповые ресурсы сущностей заполненной области, определенные стандартом ИСО 10303-46 и являющиеся частью схемы api_abstract_schema. Заполненные области моделируются посредством сущности заполненных областей комментариев annotation_fill_area. В контексте схемы api_abstract_schema данная сущность допустима только для 2D-видов, то есть если интерфейс открыт с уровнем геометрической мощности geometrical_power_level, равным 1. Сущность annotation_fill_area представляет собой плоскую многосвязную фигуру, внешние и внутренние границы которой являются контурами api_contour интерфейса прикладного программирования. Максимальное число внутренних границ, допустимое заданной реализацией интерфейса, должно быть не меньше величины, определенной в разделе 9 настоящего стандарта. Все контуры должны лежать в одной плоскости и не должны пересекаться. Все контуры внутренних границ заполненной области должны лежать внутри внешнего контура границ и не должны пересекаться. В контексте схемы api_abstract_schema и annotation_fill_area не содержат комментариев. Они играют две вспомогательные роли:

1) область может быть заштрихована. При этом штриховка определяется сущностью annotation_fill_area_occurrence, задающей стиль штриховки fill_area_style_hatching элемента представления annotation_fill_area;

2) область может быть просто закрашена. Область имеет фоновый цвет, который затеняет прочие сущности. При этом глобальные значения записей таблицы статуса интерфейса равны: "оn" - для записи hidden_line, "true" -для записи hidden_line_involved.

6.1.15.1 Сущность annotation_fill_area

Сущность annotation_fill_area задает множество замкнутых кривых со штриховкой, затенением, закрашиванием или клеточным заполнением. Данная сущность задается границами, представленными непересекающимися и несамопересекающимися замкнутыми кривыми curve. Указанные границы задают плоские области, заполненные в соответствии со стилем annotation_fill_area. Правила заполнения области:

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

Примечание 1 - См. рисунок 9 а);


- кривая (кривая 2 на рисунке) окружает незаполненную область, если она окружена другой кривой (кривая 1 на рисунке), заполненной изнутри.

Примечание 2 - См. рисунок 9 б);


- если кривая 3 (кривая 3 на рисунке 9 а) размещается внутри кривой 2, то данная кривая окружает заполненную область.

Примечание 3 - См. рисунок 9 в);


- для каждой дополнительной кривой используется аналогичная процедура.


Filled - заполненная область; curve - кривая; unfilled - незаполненная область

Рисунок 9 - Заполнение области сущностью annotation_fiIl_aгеа


Спецификация на языке EXPRESS:

*)

ENTITY annotation_fill_area

SUBTYPE OF (geometric_representation_item);

boundaries : SET [1:?] OF curve;

WHERE

api_WR1: SIZEOF (QUERY ( temp <* SELF.boundaries |

'API_ABSTRACT_SCHEMA.API_CONTOUR' IN TYPEOF (SELF) )

) = SIZEOF (SELF.boundaries) ;

END_ENTITY;

(*

Определение атрибута:

boundaries: множество кривых curve, определяющих границы заполненной области.

Комментарий к спецификации:

api_WR1: все границы должны быть контурами api_contour.

Дополнительные комментарии:

IP1: все кривые множества SELF.boundaries должны быть замкнутыми и плоскими;

IP2: если на множестве SELF.boundaries существует две и более кривых, то все эти кривые должны лежать в одной плоскости и не пересекаться;

IP3: оси X и Y локальной координатной системы SELF.filling_position должны лежать в одной плоскости с кривыми множества SELF.boundaries [1];

арi_IРЗ: если на множестве SELF.boundaries существует два и более контура api_contour, то расстояние между двумя контурами api_contour интерфейса прикладного программирования должно быть не меньше допуска EPS.

     6.1.16 Определения сущностей схемы API_ABSTRACT_SCHEMA: сущности геометрических поверхностей


Настоящий подраздел устанавливает групповой ресурс сущностей поверхностей surface, определенных стандартом ИСО 10303-42 и являющихся частью схемы api_abstract_schema. Указанные сущности не могут быть созданы непосредственно с помощью функций интерфейса. Они могут быть созданы только косвенно и представляют особые сущности интерфейса.

6.1.16.1 Сущность surface

Сущность surface задает множество соединенных точек в трехмерном пространстве. Локально поверхность всегда является двумерной и односвязной. Поверхность не должна вырождаться в точку или (как частично, так и полностью) в кривую.

Примечание 1 - См. раздел 3.1 и подраздел 4.4.48 ИСО 10303-42.


Спецификация на языке EXPRESS:

*)

ENTITY surface

SUPERTYPE OF (ONEOF (elementary_surface, bounded_surface))

SUBTYPE OF (geometric_representation_item);

END_ENTITY;

(*

Примечание 2 - В контексте схемы api_abstract_schema допустимы только плоскости plane и плоские поверхности api_planar_surface. Таким образом, супертипы оказываются отсеченными.


Дополнительные комментарии:

IP1: площадь поверхности не может быть равна нулю;

IP2: поверхности соединяются по дугам.

6.1.16.2 Сущность elementary_surface

Сущность elementary_surface задает простую аналитическую поверхность с определенным параметрическим представлением.

Спецификация на языке EXPRESS:

*)

ENTITY elementary_surface

SUPERTYPE OF (ONEOF (plane))

SUBTYPE OF (surface);

position : axis2_placement_3d;

END_ENTITY;

(*

Примечание - В контексте схемы api_abstract_schema элементарными поверхностями etementary_surface могут быть только плоскости plane. Таким образом, супертипы оказываются отсеченными.


Определение атрибута:

position: положение и ориентированность поверхности. Используется при параметризации поверхности.

6.1.16.3 Сущность plane

Сущность plane задает бесконечную поверхность с постоянной нормалью (плоскость). Поверхность определяется точкой на плоскости и направлением нормали к плоскости:

С = position.location;

х = position. p[1];

у = position. p[2];

z = position.p[3] = перпендикуляр к плоскости.

Поверхность задается параметрами и, v по формуле:


с диапазоном параметризации , . В вышеуказанной параметризации единицы длины для ортов х и y зависят от контекста плоскости.

Спецификация на языке EXPRESS:

*)

ENTITY plane

SUBTYPE OF (elementary_surface);

END_ENTITY;

(*

Определения атрибутов:

SELF\elementary_surface.position: расположение и ориентация поверхности. Атрибут унаследован из супертипа eiementary_surface;

position.location: точка на плоскости;

position.р[3]: направление, задаваемое атрибутом position.axis, определяет перпендикуляр к плоскости.

6.1.16.4 Сущность bounded_surface

Сущность bounded_surface задает поверхность конечной площади с идентифицируемыми границами.

Спецификация на языке EXPRESS:

*)

ENTITY bounded_surface

SUPERTYPE OF (ONEOF (curve_bounded_surface))

SUBTYPE OF (surface);

END_ENTITY;

(*

Примечание - В контексте схемы api_abstract_schema сущность bounded_surface может быть создана только сущностью curve_bounded_surface. Таким образом, супертипы оказываются отсеченными.


Дополнительные комментарии:

IP1: ограниченная поверхность bounded_surface имеет конечную ненулевую площадь;

IP2: ограниченная поверхность bounded_surface имеет граничные кривые.

6.1.16.5 Сущность curve_bounded_surface

Сущность curve_bounded_surface задает параметрическую поверхность, ограниченную одной или несколькими граничными кривыми. Одна из них может быть наружной границей. Количество внутренних границ не ограничено. Наружная граница может быть определена неявно, как естественная граница поверхности. При этом значение флажка implicit_outer равно "true". В этом случае по крайней мере одна внутренняя граница должна быть определена. Для некоторых типов замкнутых поверхностей (например, для цилиндра) может оказаться невозможным идентифицировать какую-либо заданную границу как наружную. На базовой поверхности basis_surface поверхность, ограниченная кривыми curve_bounded_surface, представляет собой выделенный сегмент в направлении N T из любой точки на границе, где N - нормаль к поверхности, а T - касательный вектор к граничной кривой в данной точке. Указанный сегмент выделяется дугами.

Примечание 1 - В контексте схемы api_abstract_schema сущность curve_bounded_surface может быть создана только как подтип api_planar_surface.


Спецификация на языке EXPRESS:

*)

ENTITY curve_bounded_surface

SUBTYPE OF (bounded surface) ;

basis_surface : surface;

boundaries : SET [1:?] OF boundary curve;

implicit_outer : BOOLEAN;

WHERE

WR1: NOT (implicit_outer AND

('API_ABSTRACT_SCHEMA.OUTER_BOUNDARY_CURVE' IN

TYPEOF (boundaries)));

WR2: (NOT (implicit_outer)) OR

('API_ABSTRACT_SCHEMA.BOUNDED_SURFACE' IN TYPEOF (basis_surface));

WR3: SIZEOF (QUERY (temp <* boundaries |

'API_ABSTRACT_SCHEMA.OUTER_BOUNDARY_CURVE' IN

TYPEOF (temp) ) ) <= 1;

WR4: SIZEOF (QUERY ( temp <* boundaries |

(temp\composite_curve_on_surface.basis_surface [1] :<>:

SELF.basis surface))) = 0;

END_ENTITY;

(*


Boundary_curve - ограниченная кривая; basis_surface - базовая поверхность

Рисунок 10 - Поверхность, ограниченная кривыми


Определения атрибутов:

basis_surface: базовая поверхность, на которой выделяется ограниченная поверхность;

boundaries: граничные кривые на поверхности, отличные от неявных наружных границ (если таковые имеются). С помощью сущности outer_boundary_curve не более одной кривой можно идентифицировать как наружную границу;

implicit_outer: если значение логического флажка равно "true", то естественная граница поверхности используется как наружная граница.

Примечание 2 - Интерпретация указанных атрибутов представлена на рисунке 10.


Комментарии к спецификации:

WR1: если значение атрибута implicit_outer равно "true", то явных наружных границ нет;

WR2: наружная граница должна быть определена неявно, если базовая поверхность basis_surface ограничена;

WR3: перечень границ включает не более одной наружной граничной кривой;

WR4: каждая ограниченная кривая boundary_curve должна лежать на базовой поверхности basis_surface. Это подтверждается атрибутом basis_surface супертипа комбинированной кривой на поверхности composite_curve_on_surface для каждого элемента перечня границ boundaries.

Дополнительные комментарии:

IP1: каждая кривая множества границ boundaries должна быть замкнута;

IP2: никакие две кривые из множества границ boundaries не могут пересекаться;

IP3: не более чем одна ограниченная кривая может включать любую другую ограниченную кривую. Если наружная ограниченная кривая outer_boundary_curve указана, то только она может включать в себя любую другую ограниченную кривую.

6.1.16.6 Сущность boundary_curve

Сущность boundary_curve задает тип ограниченной кривой для определения границы поверхности.

Спецификация на языке EXPRESS:

*)

ENTITY boundary_curve

SUBTYPE OF (composite_curve_on_surface) ;

WHERE

WR1: SELF\composite_curve.closed_curve;

END_ENTITY;

(*

Комментарий к программе:

WR1: значение производного атрибута замкнутой кривой closed_curve супертипа composite_curve должно быть равно "true".

6.1.16.7 Сущность outer_boundary_curve

Сущность outer_boundary_curve задает подтип сущности boundary_curve, имеющий дополнительную семантику для определения наружной границы поверхности. Не более одной такой кривой должно быть включено в множество границ поверхности, ограниченной кривыми curve_bounded_surface.

Спецификация на языке EXPRESS:

*)

ENTITY outer_boundary_curve

SUBTYPE OF (boundary_curve);

END_ENTITY;

(*

     6.1.17 Определения сущностей схемы API_ABSTRACT_SCHEMA: сущности поверхностей интерфейса прикладного программирования


Настоящий подраздел описывает только сущности поверхностей, создаваемые непосредственно с помощью функций интерфейса прикладного программирования.

6.1.17.1 Сущность api_planar_surface

Сущность api_planar_surface задает только поверхности, создаваемые интерфейсом. Сущность api_planar_surface описывается сущностью api_contour, соответствующей внешней границе поверхности, а также перечнем контуров api_contour, соответствующих (возможным) внутренним границам поверхности. Максимальное количество внутренних границ определяется реализацией интерфейса. Оно должно быть не меньше величины, установленной в разделе 9. Все указанные контуры должны лежать в одной плоскости и не должны пересекаться. Все контуры, соответствующие внутренним границам, должны принадлежать ограниченной поверхности, определенной контуром api_contour, соответствующим внешней границе. Ни один из указанных контуров не должен принадлежать ограниченной поверхности, определенной другим контуром api_contour. Это означает, что плоская поверхность api_planar_surface образуется дугами. Если данное условие выполняется, то плоская поверхность api_planar_surface вычисляется интерфейсом прикладного программирования следующим образом:

1) плоскость поверхности вычисляется по ее положению. Атрибут position.location задает первую точку первого сегмента комбинированной кривой composite_curve_segment контура api_contour, соответствующего внешней границе. Ось Х, задаваемая ортогональным направлением position.р [1], касается данного сегмента комбинированной кривой composite_curve_segment. Положительное направление обхода контура определено атрибутом same_sense. Ось Z, задаваемая ортогональным направлением position.p [3], должна быть ортогональна плоскости, содержащей указанный контур api_contour, соответствующий внешней границе. Положительным направлением обхода контура api_contour является его обход против часовой стрелки по отношению к указанной ориентированной оси;

2) для каждого контура api_contour, определяющего плоскую поверхность api_planar_surface, создается экземпляр ограниченной кривой bounded_surface_curve. При этом каждый из них ссылается на контур api_contour как на кривую curve_3d. Атрибут associated_geometry указанной поверхности кривой surface_curve содержит только один элемент, который является плоскостью для поверхности api_planar_surface, описанной на этапе 1. Значение атрибута главного представления master_representation для поверхности кривой равно значению атрибута curve_3d;

3) для каждой вычисленной поверхности кривой создается экземпляр сегмента замкнутой комбинированной кривой composite_curve_segment. Данный сегмент:

- ссылается на поверхность кривой, которой он соответствует, как на первичную кривую parent_curve;

- содержит значение переменной перехода (для последнего сегмента комбинированной кривой composite_curve_segment контура api_contour, который описывается атрибутом curve_3d для соответствующей ЗD-кривой на поверхности кривой) как значение атрибута transition;

- содержит атрибут same_sense, значение которого равно "true" для composite_curve_segment, соответствующего внешней границе. Данное значение гарантирует, что все прочие сегменты замкнутой кривой composite_curve_segment ориентированы по часовой стрелке относительно оси Z плоскости для поверхности api_planar_surface (то есть относительно ортогонального направления position.р [3], см. этап 1);

4) создается экземпляр наружной ограниченной кривой outer_boundary_curve, сегменты которой содержат только один элемент composite_curve_segment, первичная кривая parent_curve которого ссылается (как на атрибут curve_3d) на контур api_contour, соответствующий внешней границе плоской поверхности api_planar_surface, создаваемой интерфейсом прикладного программирования;

5) для всех прочих сегментов замкнутой кривой создается экземпляр ограниченной кривой, сегменты которого содержат только указанные сегменты;

6) окончательно создается экземпляр поверхности api_planar_surface. Его базовой поверхностью basis_surface является поверхность api_planar_surface. Ее границами могут быть ограниченные кривые и наружная ограниченная кривая, вычисленная на этапах 4 и 5. Значение атрибута implicit_outer равно "false".

Спецификация на языке EXPRESS:

*)

ENTITY api_planar_surface

SUBTYPE OF (curve_bounded_surface) ;

WHERE

api_WR1: 'API_ABSTRACT_SCHEMA.PLANE' IN TYPEOF (SELF.basis_surface);

api_WR2: SIZEOF (QUERY ( temp <* SELF.boundaries |

'API_ABSTRACT_SCHEMA.OUTER_BOUNDARY_CURVE' IN

TYPEOF (temp) )) =1;

api_WR3: QUERY (temp <* SELF.boundaries | SIZEOF (temp.segments) <> 1) = [];

api_WR4: SELF.implicit outer = false;

END_ENTITY;

(*

Примечание 1 - Настоящая сущность интерфейса прикладного программирования задает диапазон значений некоторых функций интерфейса.

Примечание 2 - Настоящая сущность может быть применена как супертип curve_bounded_surface.


Определения атрибутов:

SELF\curve_bounded_surface.basis_surface: поверхность api_p!anar_surface;

SELF\curve_bounded_surface.boundaries: ограниченные кривые, соответствующие различным контурам api_contour, ограничивающим поверхности api_planar_surface, создаваемые интерфейсом прикладного программирования;

SELF\curve_bounded_surface.implicit_outer: значение "false", для которого наружная граница явно определена на множестве границ SELF\curve_bounded_surface.boundaries.

Комментарии к спецификации:

api_WR1: api_planar_surface должна лежать на плоскости;

api_WR2: существует только одна наружная ограниченная кривая на множестве границ SELF, boundaries;

api_WR3: каждая граница ссылается только на один элемент composite_curve_segment.

Дополнительный комментарий:

api_IP1: если существует несколько контуров api_contour в спецификации поверхности api_planar_surface, то расстояние между двумя указанными контурами api_contour должно быть не меньше допуска EPS.

     6.1.18 Определения сущностей API_ABSTRACT_SCHEMA: сущности геометрических тел


Настоящий подраздел описывает групповой ресурс сущностей для булевых результатов boolean_result и трехмерных моделей, являющихся частью схемы api_abstract_schema и определенных стандартом ИСО 10303-42.

6.1.18.1 Сущность solid_model

Сущность solid_model задает полное представление номинальной формы продукта. При этом соединяются все точки внутри тела. Все точки подразделяются на находящиеся внутри тела, вне тела или на его границе.

Существует несколько различных типов представления твердотельной модели.

Спецификация на языке EXPRESS:

*)

ENTITY solid_model

SUPERTYPE OF (ONEOF ( csg_solid, swept_area_solid))

SUBTYPE OF (geometric_representation_item);

END_ENTITY;

(*

Примечание - В контексте схемы api_abstract_schema могут существовать только сущности csg_solid и swep_area_solid. Таким образом, супертипы оказываются модифицированными.

6.1.18.2 Сущность csg_solid

Сущность csg_solid - тело, представленое моделью конструктивной блочной геометрии (CSG), составлено из простейших тел, объединенных с помощью регуляризованных булевых операций. Допустимыми булевыми операциями являются пересечение, объединение и вычитание. В частном случае CSG-тело может состоять из одной простейшей CSG-сущности.

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

Полное определение CSG-тела требует наличия геометрической и структурной информации.

Геометрическая информация задается твердотельной моделью. Как правило, это простейшие тела, например цилиндры, клинья, и экструдированные тела. Твердотельная модель может быть также копией тела solid_replica (преобразованным телом) или телом в полупространстве half_space_solid.

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

Примечание - В контексте схемы api_abstract_schema функции интерфейса позволяют построить тело конструктивной блочной геометрии csg_solid с помощью булевых результатов. Сущность csg_solid соединяется дугами, однако дуги не могут использоваться для получения булева результата.


Спецификация на языке EXPRESS:

*)

ENTITY csg_solid

SUBTYPE OF (solid_model);

tree_root_expression : csg_select;

END_ENTITY;

(*

Определение атрибута:

tree_root_expression: булево выражение для сущностей и регуляризованных операторов, описывающих тело. Корень дерева булевых выражений представлен здесь как сущность boolean_result или сущность csg_primitive.

6.1.18.3 Сущность boolean_result

Сущность boolean_result определяет результат регуляризованной операции создания нового тела из двух заданных тел. Такими операциями являются регуляризованное объединение, регуляризованное пересечение и регуляризованное вычитание. При выполнении булевых операций тело рассматривается как регуляризованное множество точек.

Окончательный булев результат зависит от операции и двух операндов. При вычитании важным является порядок следования операндов. Оператор может быть либо объединением, либо пересечением, либо вычитанием.

Объединением двух тел является новое тело, содержащее все точки, принадлежащие первому операнду first_operand, второму операнду second_operand или сразу обоим операндам.

Пересечением двух тел является новое тело, которое представляет собой регуляризованное множество всех точек, принадлежащих одновременно первому и второму операндам.

Разностью двух тел является регуляризованное множество всех точек, содержащихся в первом операнде, но отсутствующих во втором операнде.

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

Спецификация на языке EXPRESS:

*)

ENTITY boolean_resuit

SUBTYPE OF (geometric_representation_item);

operator : boolean_operator;

first_operand : boolean_operand;

second_operand : boolean_operand;

END_ENTITY;

(*

Определения атрибутов:

operator: булев оператор, используемый в операции для получения результата;

first_operand: первый операнд, используемый для выполнения булевой операции;

second_operand: второй операнд, используемый для выполнения булевой операции.

6.1.18.4 Сущность csg_primitive

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

6.1.18.4.1 Сущность sphere

Сущность sphere задает сущность конструктивной блочной геометрии сферической формы, определенную положением центра сферы и радиусом сферы.

Спецификация на языке EXPRESS:

*)

ENTITY sphere

SUBTYPE OF (geometric_representation_item);

radius : positive_lengt_measure;

centre : point;

END_ENTITY;

(*

Определения атрибутов:

radius: радиус сферы;

centre: центр сферы.

6.1.18.4.2 Сущность right_circular_cone

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

Спецификация на языке EXPRESS:

*)

ENTITY right_circular_cone

SUBTYPE OF (geometric_representation_item);

position : axis1_placement;

height : positive_lengt_measure;

radius : lengt_measure;

semi_angle : plane_angle_measure;

WHERE

WR1: radius >= 0.0;

END_ENTITY;

(*

Определения атрибутов:

position: положение точки на оси конуса, направление оси;

position.location: точка на оси конуса, точка на одном из плоских круговых оснований или, если радиус равен нулю, точка в вершине конуса;

position.axis: направление центральной оси симметрии конуса;

height: расстояние между плоскими круговыми основаниями конуса (если их радиус больше нуля); расстояние от основания до вершины, если радиус равен нулю;

radius: радиус конуса в точке на оси конуса (position.location). Если радиус равен нулю, то конус имеет вершину в данной точке. Если радиус больше нуля, то конус является усеченным;

semi_angle: угол полураствора конуса. Это угол между осью и образующей конической поверхностью.

Комментарий к спецификации:

WR1: радиус не может быть отрицательным.

Дополнительный комментарий:

IP1: угол полураствора конуса semi_angle, лежит в интервале между 0° и 90°.

6.1.18.4.3 Сущность right_circular_cylinder

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

Спецификация на языке EXPRESS:

*)

ENTITY right_circular_cylinder

SUBTYPE OF (geometric_representation_item);

position : axis1_placement;

height : positive_length_measure;

radius : positive_length_measure;

END_ENTITY;

(*

Определения атрибутов:

position: положение точки на оси цилиндра, направление оси;

position.location: точка на оси цилиндра, находящаяся в центре одной плоской круговой грани;

position.axis: направление центральной оси симметрии цилиндра;

height: расстояние между плоскими круговыми гранями цилиндра;

radius: радиус цилиндра.

6.1.18.4.4 Сущность torus

Сущность torus в конструктивной блочной геометрии задает тело, построенное путем движения одной окружности (образующей) вдоль другой окружности (направляющей) большего радиуса. Направляющая задается расположением и направлением (см. сущность axis1_placement).

Спецификация на языке EXPRESS:

*)

ENTITY torus

SUBTYPE OF (geometric_representation_item);

position : axis1 placement;

major_radius : positive_length_measure;

minor_radius : positive_length_measure;

WHERE

WR1: major_radius > minor_radius;

END_ENTITY;

(*

Определения атрибутов:

position: расположение центральной точки на оси, направление оси. Задает положение центра и ориентацию плоскости направляющей;

major_radius: большой радиус направляющей;

minor_radius: малый радиус направляющей.

Комментарий к программе:

WR1: major_radius должен быть больше minor_radius.

6.1.18.4.5 Сущность block

Сущность block задает прямоугольный параллелепипед, определенный расположением и локальной координатной системой. Блок задается положительными отрезками х, y и z, отложенными вдоль осей локальной координатной системы. Блок имеет вершину в начале локальной координатной системы.

Спецификация на языке EXPRESS:

*)

ENTITY block

SUBTYPE OF (geometric_representation_item);

position : axis2_placement_3d;

x : positive_lenght_measure;

у : positive_length_measure;

z : positive_length_measure;

END_ENTITY;

(*

Определения атрибутов:

position: расположение и ориентация системы осей сущности. Блок имеет вершину в заданном положении position.location, его кромки расположены вдоль локальных осей и имеют положительное направление;

х: размер блока вдоль локальной оси X (position.р[1]);

у: размер блока вдоль локальной оси Y (position.р[2]);

z: размер блока вдоль локальной оси Z (position.р[3]).

6.1.18.4.6 Сущность right_angular_wedge

Сущность right_angular_wedge получается в результате пересечения блока с плоскостью, перпендикулярной одной из его граней. Прямой клин определяется своим расположением и локальной координатной системой. Его треугольная/трапецеидальная грань лежит в плоскости, определенной локальными осями X и Y. Данная грань определена положительными отрезками X и Y (отложенными вдоль локальных осей X и Y), отрезком LTX (не равным нулю, параллельным оси X и находящимся на расстоянии Y от начала локальной координатной системы) и отрезком, соединяющим концы сегментов Х и LTX. Оставшаяся часть клина задается положительным отрезком Z, отложенным вдоль локальной оси Z, определяющим расстояние, на которое производится экструдирование трапеции или треугольника. Если LTX равно 0, то клин имеет пять граней. В противном случае клин имеет шесть граней (см. рисунок 11).

Спецификация на языке EXPRESS:

*)

ENTITY right_angular_wedge

SUBTYPE OF (geometric_representation_item);

position : axis2 placement 3d;

x : positive_length_measure;

у : positive_length_measure;

z : positive_length_measure;

ltx : lengt_measure;

WHERE

WR1: ( (0.0 <= ltx) AND (ltx < x) ) ;

END_ENTITY;

(*


Location - начало локальной координатной системы; position attributes - атрибуты положения

Рисунок 11 - Прямой клин right_angular_wedge и его атрибуты


Определения атрибутов:

position: расположение и ориентация локальной системы осей сущности. Клин имеет одну вершину, определяемую сущностью position.location, ребра клина направлены вдоль осей локальной координатной системы в положительном направлении;

х: размер клина вдоль локальной оси X;

у: размер клина вдоль локальной оси Y;

z: размер клина вдоль локальной оси Z;

Itx: отрезок, отложенный в положительном направлении по оси X меньшей грани клина.

Комментарий к программе:

WR1: отрезок Itx должен быть неотрицательным и меньше х.

6.1.18.5 Сущность swept_area_solid

Сущность swept_area_solid формирует тело путем очерчивания плоской ограниченной поверхности по некоторой траектории. Положение в пространстве тела, полученного очерчиванием, зависит от исходного положения очерченной области swept_area, являющейся гранью результирующего тела swept_area_solid. Исключение составляет частный случай, когда очерчивание производится по замкнутой окружности на угол, равный 360°. Такое тело определяется сущностью revolved_area_solid.

Спецификация на языке EXPRESS:

*)

ENTITY swept_area_solid

SUPERTYPE OF (ONEOF (revolved_area_solid, extruded_area_solid))

SUBTYPE OF (solid_model);

swept_area : curve_bounded_surface;

WHERE

api_WR1: 'API_ABSTRACT_SCHEMA.PLANE' IN

TYPEOF (swept_area.basis_surface);

END_ENTITY;

(*

Определение атрибута:

swept_area: поверхность, ограниченная кривой curve_bounded_surface и определяющая очерченную область. Конфигурация данной области задается атрибутом boundaries для ссылочной поверхности, ограниченной кривой curve_bounded_surface.

Комментарий к программе:

api_WR1: очерченная область swept_area должна быть плоской. Атрибутом базовой поверхности для поверхности, ограниченной кривой, является плоскость.

6.1.18.6 Сущность extruded_area_solid

Сущность extruded_area_solid задает тело, полученное путем очерчивания (вытягиванием, экструдированием) ограниченной плоской поверхности вдоль прямой. Направление поступательного движения очерченной области задается вектором направления. Глубина переноса вдоль прямой задается атрибутом depth. Плоская очерченная область может иметь пустоты, которые преобразуются в объемные отверстия.

Спецификация на языке EXPRESS:

*)

ENTITY extruded_area_solid

SUBTYPE OF (swept_area_solid);

extruded_direction : direction;

depth : positive_lengt_measure;

WHERE

WR1: dot_product (

(SELF\swept_area_solid.swept_area.basis_surface\

elementary_surface.position.p [3]), extruded_direction) <> 0.0;

END_ENTITY;

(*

Определения атрибутов:

SELF\swept_area_solid.swept_area: ограниченная поверхность, очерчивающая экструдированное тело;

extruded_direction: направление очерчивания;

depth: глубина очерчивания.

Комментарий к программе:

WR1: направление экструдирования не может быть перпендикулярно очерченной плоскости.

6.1.18.7 Сущность revolved_area_solid

Сущность revolved_area_solid задает тело путем очерчивания (вращением) плоской ограниченной поверхности вокруг оси (рисунок 12). Данная ось лежит в плоскости очерченной поверхности. Ось не должна пересекать внутренность данной поверхности. Ограниченная поверхность может иметь пустоты, которые преобразуются в объемные отверстия. Вращение производится по часовой стрелке, если смотреть на него вдоль оси в положительном направлении. В частности, если точка А лежит на оси, d - направление оси и С - дуга на результирующей поверхностu [полученная очерчиванием произвольной точки р, лежащей на границе очерченной области (грани)], то данная дуга С является следом точки р, остающимся в направлении вектора d (р - А) в результате вращения области.

Спецификация на языке EXPRESS:

*)

ENTITY revolved_area_solid

SUBTYPE OF (swept_area_solid) ;

axis : axis1_placement;

angle : plane_angle_measure;

DERIVE  

axis_line : line := line (axis.location, axis.z);

END_ENTITY;

(*


Angle - угол поворота; swept_area - очерченная область; axis - ось

Рисунок 12 - Тело, полученное вращением области


Определения атрибутов:

SELF\swept_area_solid.swept_area: поверхность, ограниченная кривой curve_bounded_surface, очерчивающая тело в результате вращения;

axis: ось вращения;

angle: угол поворота. Измеряется от исходного положения очерчивающей плоскости;

axis_line: линия оси вращения.

Дополнительные комментарии:

IP1: линия оси вращения axis_line должна лежать в очерченной плоскости атрибута swept_face супертипа swept_face_soiid;

IP2: линия оси вращения не должна пересекать внутренность очерченной области;

IP3: угол поворота должен лежать между 0° и 360°.

6.1.18.8 Сущность half_space_solid

Сущность half_space_solid задает тело в полупространстве, которое является регулярным подмножеством области, лежащей с одной стороны неограниченной поверхности. Часть поверхности, находящаяся в указанном полупространстве, определяется перпендикуляром к поверхности и значением флажка перпендикуляра (соглашением о выборе требуемой половины пространства по направлению перпендикуляра). Если значение флажка "true", то выбирается полупространство с перпендикуляром, направленным наружу. Если значение флажка "false", то выбирается полупространство с перпендикуляром, направленным внутрь.

Для корректно заданного тела в полупространстве half_space_solid указанная поверхность делит пространство на два полупространства. Поверхность разделения может быть многосвязной. В этом случае перпендикуляры всех частей поверхности разделения должны быть направлены в одну сторону.

Примечание 1 - Тело в полупространстве half_space_solid не является подтипом сущности твердотельной модели solid_model. Сущность half_space_solid используется только как операнд булева выражения boolean_expression.

Примечание 2 - В контексте схемы api_abstract_schema допустимы только тела в полупространстве с плоскостью в качестве базовой поверхности.

Спецификация на языке EXPRESS:

*)

ENTITY half_space_solid

SUBTYPE OF (geometric_representation_item);

base_surface : surface;

agreement_flag : BOOLEAN;

WHERE

api_WR1: 'API_ABSTRACT_SCHEMA.PLANE' IN TYPEOF (base_surface);

END_ENTITY;

(*

Определения атрибутов:

base_surface: поверхность, разделяющая пространство на два полупространства;

agreement_flag: значение флажка перпендикуляра равно "true", если перпендикуляр к базовой поверхности направлен от рассматриваемого тела в полупространстве.

Комментарий к спецификации:

api_WR1: поверхность, определяющая тело в полупространстве, должна быть плоскостью.

     6.1.19 Определения сущностей схемы API_ABSTRACT_SCHEMA: сущности структурирования интерфейса прикладного программирования


Настоящий подраздел описывает ресурсы структурирования элементов геометрических представлений с помощью функций интерфейса прикладного программирования.

Спецификации и поведение структурированных сущностей, а также структурирование геометрических данных для получения указанных множеств описаны в разделе 5.4 настоящего стандарта.

6.1.19.1 Сущность api_group

Сущность api_group формирует группу, создаваемую в TDB.

Спецификация на языке EXPRESS:

*)

ENTITY api_group

SUBTYPE OF (group) ;

WHERE

api_WR1: ( (SELF\group.name = 'TDB') AND (USEDIN (SELF,'') = []) )

OR

((LENGTH (SELF\group.name) = 0 ) AND

(SIZEOF (USEDIN (SELF,'API_ABSTRACT_SCHEMA'+

'API_GROUP_ASSIGNMENT.ITEMS')

) = 1)

) ;

api_WR2: tree_api_group_structure (SELF);

END_ENTITY;

(*

Комментарии к спецификации:

api_WR1: сущности api_group присвоено имя "TDB", и ссылки других сущностей на него нет, либо именем сущности является пустая строка, и она принадлежит только одной группе api_group;

api_WR2: группы api_groups структурированы в дерево.

6.1.19.2 Сущность api_group_assignment

Сущность api_group_assignment назначает точки, кривые, поверхности, векторы, направления, локальные координатные системы, заполненные области, тела и группы для некоторой группы api_group.

Спецификация на языке EXPRESS:

*)

ENTITY api_group_assignment

SUBTYPE OF (group_assignment);

items : SET [0:?] OF api_grouped_item;

WHERE

api_WR1: 'API_ABSTRACT_SCHEMA.API_GROUP' IN

TYPEOF (SELF\ group_assignment.assigned_group);

END_ENTITY;

(*

Определение атрибута:

item: элементы api_grouped_item, назначенные для некоторой группы api_group.

Комментарий к спецификации:

api_WR1: сущность api_group_assignment производит назначения для группы api_group интерфейса прикладного программирования.

6.1.19.3 Сущность api_set

Сущность api_set создает группу для базы данных CAD.

Спецификация на языке EXPRESS:

*)

ENTITY api_set

SUBTYPE OF (group);

WHERE

api_WR1: ( (SELF\group.name = 'VIEW') AND (USEDIN (SELF,'') = []) )

OR

((SELF\group.name <> 'VIEW') AND

(SIZEOF (USEDIN (SELF,'API_ABSTRACT_SCHEMA'+

'API_GROUP_ASSIGNMENT.ITEMS')

) = 1)

) ;

api_WR2: tree_api_set_structure (SELF) ;

END_ENTITY;

(*

Комментарии к спецификации:

api_WR1: либо сущности api_set присвоено имя "VIEW" и никакие другие сущности на него не ссылаются, либо ее имя отлично от "VIEW" и она принадлежит только одной сущности api_set;

api_WR2: сущности api_set структурированы в дерево.

6.1.19.4 Сущность api_set_assignment

Сущность api_set_assignment назначает направления, векторы, локальные координатные системы, точки, кривые, поверхности, заполненные области, тела в полупространстве, результаты булевых операций, тела и множества интерфейса прикладного программирования api_set для сущности api_set.

Спецификация на языке EXPRESS:

*)

ENTITY api_set_assignment

SUBTYPE OF (group_assignment);

items : SET [0:?] OF api_set_item;

WHERE

api_WR1: 'API_ABSTRACT_SCHEMA.API_SET' IN

TYPEOF (SELF\group_assignment.assigned_group);

END_ENTITY;

(*

Определение атрибута:

item: элементы множества интерфейса прикладного программирования api_set_item, назначенные для сущности api_set.

Комментарии к спецификации:

api_WR1: назначения api_set_assignment используются только сущностью api_set.

     6.2 Визуализация элементов геометрического представления


Все элементы представления representation_items, явно созданные с помощью интерфейса (как в TDB, так и в базе данных CAD), задают стиль воспроизведения. Математическим сущностям назначается нулевой стиль null_style. Воспроизведение элементов представления зависит от реализации. Если создание одного элемента представления требует неявного создания другого элемента представления (например, если кривая неявно создана как базовая кривая basis_curve для отрезка кривой trimmed_curve), то указанная сущность также ассоциируется с null_style.

Назначение стиля производится интерфейсом в процессе создания каждого representation_item. Назначение стиля производится путем создания экземпляра стилизованного элемента styled_item (для каждого representation_item), ссылающегося на данный representation_item вместе с сущностью назначения стиля presentation_style_assignment. Сущность presentation_style_assignment задает набор различных стилей воспроизведения (например, стиль точки, стиль кривой, стиль текста). Стилизация нестилизованных representation_items позволяет получить новые representation_items с заданным стилем воспроизведения. Presentation_style_assignment стилизованных элементов styled_items оказывает влияние на изображение ссылочных representation_items так же, как и на изображения всех representation_items, на которые прямо или косвенно производится ссылка указанным элементом. Изменениям подвержены только нестилизованные representation_items. Это означает, что стилизация ранее стилизованного representation_item не имеет смысла. Стилизация частично стилизованного representation_item изменяет только изображения его нестилизованных частей. Стилизация произвольного representation_item изменяет его изображение целиком. Могут быть представлены только стилизованные representation_items. Фактическое представление элементов зависит от удаления невидимых линий (см. пример визуализации трубопровода в среде CAD в 5.3.5).

В контексте схемы api_abstract_schema стилизованный элемент styled_item должен ссылаться только на одно назначение стиля представления presentation_style_assignment. В среде CAD сущность назначения стиля представления presentation_style_assignment должна содержать (для всех сущностей, кроме сущности заполнения области комментариев annotation_fill_area) только один стиль presentation_style. Таким стилем является текущее значение сущности presentation_style, соответствующее созданному representation_item в таблице статуса интерфейса.

Presentation_style_assignment для заполненной области комментариев annotation_fill_area всегда содержит одну сущность presentation_style_select, указывающую на необходимость заполнения определенной области цветом фона. Настоящий стиль определен сущностью api_externally_defined_fill_area_style интерфейса прикладного программирования. Presentation_style_assignment заполненной области комментариев annotation_fill_area может содержать любое количество стилей fill_area_style, причем каждый из них делает ссылку на сущность стиля штриховки fill_area_style_hatching.

Если текущий вид является двумерным и процесс удаления невидимых линий активизирован, то сущность presentation_style_assignment (соответствующая точкам кривых и заполненным областям fill_area) может также содержать два других стиля в интерфейсе прикладного программирования. Сущность api_pre_defined_occlusion_style используется для удаления невидимых линий вместе с его виртуальной высотой в виртуальном 3D-пространстве. Сущность api_pre_defined_virtual_sent_style описывает средства, используемые TDB для удаления невидимых линий.

Именем сущности, возвращаемой функцией интерфейса (создающей элемент представления), является имя стилизованного элемента styled_item, который ссылается на указанный элемент представления. Если сущность остается в TDB, то стиль воспроизведения может быть изменен впоследствии с помощью функции внесения изменений Chg_... (см. приложение А, раздел А.10.3).

Поставщик детали может осуществлять только логическое управление визуализацией representation_item, созданного с помощью функции интерфейса. Поэтому все стили, кроме стилей штриховки заполненных областей fill_area_style_hatching, определяются сущностью внешне определенных стилей externally_defined_style. Указанные externally_defined_style определены в настоящем стандарте, а также в других частях рассматриваемой серии стандартов, описывающих протоколы обмена видами. Часть стандарта, содержащая описания внешне определенного стиля externally_defined_style, определяет внешний источник для данного внешне определенного элемента externally_defined_item. Если некоторая реализация интерфейса использует протокол обмена видами (на который производится ссылка из программы поставщика детали для описания внешне определенного стиля externally_ defined_style, используемого для некоторого элемента представления representation_item), то первый стиль, определенный для настоящего элемента представления representation_item в настоящем стандарте, используется вместо неизвестного стиля. Сообщение об ошибке при этом не формируется.

     6.2.1 Определения типов схемы API_ABSTRACT_SCHEMA: визуальное представление

Настоящий подраздел описывает ресурс группового типа, определенный стандартом ИСО 10303-46 и являющийся частью схемы api_abstract_schema.

6.2.1.1 Сущность presentation_style_select

Сущность presentation_style_select используется сущностью presentation_style_assignment, чтобы ассоциировать стиль с элементом представления representation_item. Для каждого вида стилизуемых элементов представления предусмотрен свой стиль.

Спецификация на языке EXPRESS:

*)

TYPE presentation_style_select = SELECT

(pre_defined_presentation_style,

point_style,

curve_style,

surface_style_usage,

symbol_style,

fill_area_style,

text_style,

approximation_tolerance,

externally_defined_style,

null_style);

END_TYPE;

(*

6.2.1.2 Сущность null_style

Сущность null_style указывает, что рассматриваемому элементу никакой стиль не назначен (нулевой стиль). Стили элемента представления описаны внутри его определения. Если определение элемента не содержит каких-либо описаний стиля, данный элемент не может иметь представления.

Примечание 1 - В контексте схемы api_abstract_schema сущность null_style назначается для всех элементов представления, неявно созданных с помощью интерфейса прикладного программирования, чтобы обеспечить представление явно созданных сущностей.

Пример 1 - При создании отрезка кривой (например, дуги окружности api_circular_arc) интерфейсом прикладного программирования ее базовая кривая (например, окружность) является неявно созданной.

Спецификация на языке EXPRESS:

*)

TYPE null_style = ENUMERATION OF

(null);

END_TYPE;

(*

Определение элементов перечислимого типа:

null: элемент представления, стиль которого представляется с помощью стилей, содержащихся в его определении (если таковые существуют).

Примечание 2 - В контексте схемы api_abstract_schema сущность null_style назначается для всех representation_items, неявно созданных с помощью интерфейса и позволяющих представить явно созданную сущность.

Пример 2 - При создании отрезка кривой (например, дуги окружности api_circular_arc) интерфейсом прикладного программирования ее базовая кривая (например, окружность) является неявно созданной.

6.2.1.3 Сущность size_select

Сущность size_select используется для описания размера маркеров и толщины кривых.

Спецификация на языке EXPRESS:

*)

TYPE size_select = SELECT

(positive_length_measure,

measure_with_unit,

descriptive_measure,

pre_defined_size);

END_TYPE;

(*

6.2.1.4 Сущность curve_font_or_scaled_curve_font_select

Сущность curve_font_or_scaled_curve_font_select использует сущность curve_style_font_selector, определяющую выбор типа линии для описания кривой и его масштабирования curve_style_font_and_scaling.

Спецификация на языке EXPRESS:

*)

TYPE curve_font_or_scaled_curve_font_select = SELECT

(curve_style_font_select,

curve_style_font_and_scaling);

END_TYPE;

(*

6.2.1.5 Сущность curve_style_font_select

Сущность curve_style_font_select использует сущность curve_style_font для предварительного определения типа линии pre_defined_curve_font или сущность externally_defined_curve_font для внешнего определения типа линии. Используется при описании немасштабируемых типов представления линий.

Спецификация на языке EXPRESS:

*)

TYPE curve_style_font_select = SELECT

(curve_style_font,

pre_defined_curve_font,

externally_defined_curve_font);

END_TYPE;

(*

6.2.1.6 Сущность fill_style_select

Сущность fill_style_select выбирает стиль заполнения области.

Спецификация на языке EXPRESS:

*)

TYPE fill_style_select = SELECT

(fill_area_style_colour,

pre_defined_tile_style,

externally_defined_tile_style,

fill_area_style_tiles,

pre_defined_hatch_style,

externally_defined_hatch_style,

fill_area_style_hatching);

END_TYPE;

(*

     6.2.2 Определения типов схемы API_ABSTRACT_SCHEMA: типы визуального представления интерфейса прикладного программирования


Настоящий подраздел объявляет типы визуального представления схемы api_abstract_schema в интерфейсе прикладного программирования.

6.2.2.1 Сущность virtual_height_ratio

Сущность virtual_height_ratio задает действительное значение, определяющее виртуальную высоту элемента геометрического представления geometric_representation_item, который геометрически закладывается в двумерный контекст геометрического представления geometric_representation_context. Сущность virtual_height_ratio используется для предварительного затенения и удаления невидимых линий.

Спецификация на языке EXPRESS:

*)

TYPE virtual_height_ratio = REAL;

END_TYPE;

(*

     6.2.3 Определения сущностей схемы API_ABSTRACT_SCHEMA: визуальное представление


Настоящий подраздел объявляет групповой ресурс сущностей, определенных ИСО 10303-46 и являющихся частью схемы api_abstract_schema.

6.2.3.1 Сущность styled_item

Сущность styled_item задает элемент представления representation_item с ассоциированным стилем воспроизведения.

Спецификация на языке EXPRESS:

*)

ENTITY styled_item

SUBTYPE OF (representation_item);

styles : SET [1:?] OF presentation_style_assignment;

item : representation_item;

WHERE

WR1 : (SIZEOF (SELF.styles) = 1)

XOR

(SIZEOF (QUERY ( pres_style <* SELF.styles |

NOT ('PRESENTATION_APPEARANCE_SCHEMA.' +

'PRESENTATION_STYLE_BY_CONTEXT' IN

TYPEOF (pres_style))

)) = 0) ;

api_WR2: api_legal_style_number (SELF) ;

END_ENTITY;

(*

Определения атрибутов:

styles: стили, назначенные для элемента представления;

item: элемент представления, для которого назначен стиль.

Комментарии к спецификации:

WR1: множество стилей должно поддерживать только один стиль. В противном случае все члены указанного множества должны быть сущностями presentation_style_by_context.

Примечание - Сущность гарантирует отсутствие конфликта стилей. Описание более одного стиля возможно, если задан контекст для применения каждого стиля;


api_WR2: функция apilegal_style_number проверяет количество стилей, косвенно назначенных для элемента представления.

6.2.3.2 Сущность presentation_style_assignment

Сущность presentation_style_assignment задает множество стилей, назначенных для элемента представления representation_item.

Спецификация на языке EXPRESS:

*)

ENTITY presentation_style_assignment;

styles : SET [1:?] OF presentation_style select;

WHERE

WR1: SIZEOF (QUERY (style1 <* SELF.styles |

NOT (SIZEOF (QUERY (style2 <* (SELF.styles - style1) |

NOT ( (TYPEOF (style1) <> TYPEOF (style2)) OR

(SIZEOF ( ['PRESENTATION_APPEARANCE_SCHEMA.'+

'SURFACE_STYLE_USAGE',

'API_ABSTRACT_SCHEMA.'+

'EXTERNALLY_DEFINED_STYLE'] *

TYPEOF (style1l)) =1)))) =0 ))) =0;

WR2: SIZEOF (QUERY (style1 <* SELF.styles |

'PRESENTATION_APPEARANCE_SCHEMA.SURFACE_STYLE_USAGE' IN

TYPEOF (stylel))) <= 2;

END_ENTITY;

(*

Определение атрибута:

styles: множество стилей воспроизведения, назначенных для элемента представления.

Комментарии к спецификации:

WR1: один и тот же стиль не должен появиться больше одного раза в заданном множестве стилей за исключением внешне определенного стиля externally_defined_style или в случае использования стиля поверхности surface_style_usage;

WR1: сущность surface_style_usage не должна использоваться чаще, чем дважды в множестве стилей.

Дополнительные комментарии:

IP1: внешне определенные стили не должны конфликтовать с прочими стилями в одной сущности presentation_style_assignment, включая прочие внешне определенные стили.

Примечание - Один стиль конфликтует с другим, если они различны, но относятся к одной и той же характеристике, например, к цвету или толщине линий. Например, один стиль может задать голубой цвет, а другой - зеленый, причем оба применены к одной и той же сущности;


IP2: каждый тип стиля должен быть уникальным.

Пример - Если для сущности line задан стиль кривой, то он должен проявиться. Если для сущности line заданы сразу стиль кривой и стиль точки, то могут проявиться и кривая, и соответствующие декартовы точки.

IP3: если существуют два экземпляра стиля поверхности surface_style_usage, то каждый должен задавать описание стиля для противоположной стороны стилизуемой поверхности.

6.2.3.3 Сущность externally_defined_style

Сущность externally_defined_style задает внешнюю ссылку на стиль воспроизведения.

Примечание - В контексте схемы api_abstract_schema внешний источник external_source должен быть частью ИСО 13584.


Спецификация на языке EXPRESS:

*)

ENTITY externally_defined_style

SUBTYPE OF (externally_defined_item);

WHERE

api_WR1 : (SELF\externally_defined_item.source.source_id LIKE

'ISO_l3584_31' )

OR

(SELF\externally_defined_item.source.source_id LIKE

'ISO_13584'+'-1'+'##');

END_ENTITY;

(*

Определения атрибутов:

SELF\externally_defined_item.source: название части ИСО 13854, содержащей определение стиля;

SELF\externally_defined_item.item_id: используемый идентификатор стиля.

Комментарий к спецификации:

api_WR1: источником внешне определенного стиля externally_defined_style должен быть либо настоящий стандарт, либо части данного стандарта с описаниями протоколов обмена видами.

6.2.3.4 Сущность curve_style

Сущность curve_style описывает визуализацию кривой.

Примечание - В контексте схемы api_abstract_schema сущность curve_style используется только для задания стиля линий штриховки. Данный стиль кривой использует предварительно заданный тип описания кривой pre_defined_curve_font, предварительно заданный размер pre_defined_size и цвет colour (цвет кривой curve_colour зависит от реализации и определяется приложением).


Спецификация на языке EXPRESS:

*)

ENTITY curve_style;

name : label;

curve_font : curve_font_or_scaled_curve_font_select;

curve_width : size_select;

curve_colour : colour;

WHERE

api_WR1 : USEDIN (SELF,'API_ABSTRACT_SCHEMA.'+

'FILL_AREA_STYLE_HATCHING.'+

'HATCH_LINE_APPEARANCE') <> [];

END_ENTITY;

(*

Определения атрибутов:

name: слово или группа слов, с помощью которых производится ссылка на стиль кривой;

curve_font: для представления типов линии используются следующие сущности: тип стиля кривой curve_style_font, масштабированный тип стиля кривой curve_style_font, предварительно определенный тип кривой pre_defined_curve_font, масштабированный предварительно определенный тип кривой pre_defined_curve_font, внешне определенный тип кривой externally_defined_curve_font или масштабированный внешне определенный тип кривой externally_defined_curve_font,

curve_width: толщина видимой части представленной кривой в единицах площади;

curve_colour: цвет видимой части кривой.

Комментарий к спецификации:

api_WR1: сущность curve_style используется для определения типа линий hatch_line_appearance штриховки заполненной области fill_area_style_hatching.

6.2.3.5 Сущность fill_area_style

Сущность fill_area_style заполняет видимые сегменты кривой, области комментариев, поверхности с мозаикой и штриховкой.

Примечание - В контексте схемы api_abstract_schema сущность fill_area_style используется для штриховки заполненной области.


Спецификация на языке EXPRESS:

*)

ENTITY fill_area_style;

name : label;

fill_styles : SET [1:?] OF fill_style_select;

WHERE

WR1 : SIZEOF (QUERY (fill_style <* SELF.fill_styles |

'PRESENTATION_APPEARANCE_SCHEMA.'+

'FILL_AREA_STYLE_COLOUR' IN

TYPEOF (fill_style)

)) <= l;

api_WR2: QUERY (fill_style <* SELF.fill_styles |

NOT ( 'API_ABSTRACT_SCHEMA.FILL_AREA_STYLE_HATCHING' IN

TYPEOF (fill_style)) ) = [];

END_ENTITY;

(*

Определения атрибутов:

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

fill_styles: множество стилей заполненной области, используемых для представления видимых сегментов кривых, представления областей комментариев и представления поверхностей.

Комментарии к спецификации:

WR1: на множестве стилей fill_style существует не больше одного цвета заполнения fill_area_style_colour,

api_WR2: fill_style_select должен быть стилем штриховки fill_area_style_hatching.

6.2.3.6 Сущность fill_area_style_hatching

Сущность fill_area_style_hatching задает стилизованный шаблон кривой для штриховки видимого сегмента кривой, заполненной области комментариев и поверхности.

Примечание 1 - В контексте схемы api_abstract_schema сущность fill_area_style_hatching используется только для стилизации заполненной области.

Примечание 2 - В контексте схемы api_abstract_schema сущность hatch_line_appearance задается предварительно определенными элементами.


Reference hatch line - ссылочная линия штриховки; hatch_line_angle - угол штриховки; point_of_reference_hatch_line - точка ссылочной линии штриховки; start_of_next_hatch_line - начало следующей линии штриховки; curve_font_pattern - шаблон типа кривой; pattern_start - начало шаблона

Рисунок 13 - Стиль штриховки заполненной области


Спецификация на языке EXPRESS:

*)

ENTITY fill_area_style_hatching

SUBTYPE OF (geometric_representation_item);

hatch_line_appearance : curve_style;

start_of_next_hatch_line : one_direction_repeat_factor;

point_of_reference_hatch_line : cartesian_point;

pattern_start : cartesian_point;

hatch_line_angle : plane_angle_measure;

WHERE

api_WR1: 'API_ABSTRACT_SCHEMA.'+

'API_PRE_DEFINED_HATCH_CURVE_FONT' IN

TYPEOF (SELF.HATCH_LINE_APPEARANСE.CURVE_FONT) ;

api_WR2: 'API_ABSTRACT_SCHEMA.'+

'API_PRE_DEFINED_HATCH_WIDTH' IN

TYPEOF (SELF.HATCH_LINE_APPEARANCE.CURVE_WIDTH);

api_WR3: 'API_ABSTRACT_SCHEMA.'+

'API_PRE_DEFINED_HATCH_COLOUR' IN

TYPEOF (SELF.HATCH_LINE_APPEARANCE.CURVE_COLOUR);

END_ENTITY;

(*

Определения атрибутов:

hatch_line_appearance: стиль линий штриховки. Любой шаблон стиля кривой должен строиться от начала каждой линии штриховки. Начало ссылочной линии штриховки задается сущностью pattern_start. Начало любой другой линии штриховки задается многократным использованием сущности start_of_next_hatching_line для начала шаблона;

start_of_next_hatching_line: вектор смещения для соседних линий штриховки;

point_of_reference_hatching_line: начальная точка отображения стиля штриховки fill_area_style_hatching на кривую, заполненную область комментариев или поверхность;

pattern_start: начальная точка для задания стиля кривой ссылочной линии штриховки reference_hatching_line;

hatch_line_angle: угол штриховки.

Примечание 3 - На рисунке 13 представлен стиль штриховки области fill_area_style_hatching.


Комментарии к спецификации:

api_WR1: тип линий внешней штриховки hatch_line_appearance предварительно определяется сущностью api_pre_defined_hatch_curve_font интерфейса прикладного программирования;

api_WR2: толщина линий внешней штриховки hatch_line_appearance предварительно определяется сущностью api_pre_defined_hatching_curve_width интерфейса прикладного программирования;

api_WR3: цвет линий внешней штриховки hatch_line_appearance предварительно определяется сущностью api_pre_defined_hatching_colour интерфейса прикладного программирования.

6.2.3.7 Сущность one_direction_repeat_factor

Сущность one_direction_repeat_factor задает однонаправленный вектор повторения, используемый сущностью fill_area_style_hatching для повторного задания начальной точки последующей линии штриховки относительно предыдущей линии штриховки. Если задано начальное положение / какой-либо линии штриховки, то однонаправленный вектор повторения R, заданный сущностью one_direction_repeat_factor, определяет два новых положения в соответствии с выражением:

l+kR, где k= -1, 1.


Примечание - На рисунке 14 представлены положения вектора, определенные сущностью one_direction_repeat_factor.


Initial position - начальное положение; Repeat factor - фактор повторения

Рисунок 14 - Однонаправленный вектор повторения


Спецификация на языке EXPRESS:

*)

ENTITY one_direction_repeat_factor

SUBTYPE OF (geometric_representation_item);

repeat_factor : vector;

END_ENTITY;

(*

Определение атрибута:

repeat_factor: вектор повторения, определяющий взаимное положение линий штриховки.

6.2.3.8 Сущность colour

Сущность colour задает базовое свойство изображения элемента по закону отражения света.

Спецификация на языке EXPRESS:

*)

ENTITY colour;

END_ENTITY;

(*

6.2.3.9 Сущность pre_defined_size

Сущность pre_defined_size определяет размеры маркеров приложения.

Примечание 1 - Описание порядка использования настоящей сущности содержится в ресурсах приложения или в протоколах приложения.

Примечание 2 - В контексте схемы api_abstract_schema сущность pre_defined_size определяет толщину линий штриховки.


Спецификация на языке EXPRESS:

*)

ENTITY pre_defined_size

SUBTYPE OF (pre_defined_item);

END_ENTITY;

(*

6.2.3.10 Сущность pre_defined_curve_font

Сущность pre_defined_curve_font определяет типы кривой curve_fonts для заданного приложения.

Примечание 1 - Описание порядка использования настоящей сущности см. в ресурсах приложения или протоколах приложения.

Примечание 2 - В контексте схемы api_abstract_schema сущность pre_defined_curve_font предварительно задает тип линий штриховки.


Спецификация на языке EXPRESS:

*)

ENTITY pre_defined_curve_font

SUBTYPE OF (pre_defined_item);

END_ENTITY;

(*

6.2.3.11 Сущность pre_defined_colour

Сущность pre_defined_colour определяет цвет для заданного приложения.

Примечание 1 - Описание порядка использования настоящей сущности содержится в ресурсах приложения или протоколах приложения. Сущность pre_defined_colour позволяет ресурсам или протоколам приложения задавать значения цвета или значения компонентов цвета.

Примечание 2 - В контексте схемы api_abstract_schema сущность pre_defined_colour используется для предварительного определения цвета линий штриховки.


Спецификация на языке EXPRESS:

*)

ENTITY pre_defined_colour

SUBTYPE OF (pre_defined_item, colour) ;

END_ENTITY;

(*

6.2.3.12 Сущность annotation_occurrence

Сущность annotation_occurrence задает экземпляры комментариев путем объединения двумерной геометрии (элементов комментариев) со стилем ее воспроизведения. При этом используются следующие сущности: area_dependent_annotation_representation, view_dependent_annotation_representation, curve_style_curve_pattern, fill_area_style_tile_curve_with_style и fill_area_style_tile_coloured_region. Дополнительную информацию об указанных сущностях см. в ИСО 10303-46.

Примечание 1 - В контексте схемы api_abstract_schema сущность annotation_occurrence используется только для воспроизведения области комментариев annotatiоn_fiIl_area, для которой назначен стиль штриховки fiIl_area_styIe_hatching.

Примечание 2 - В контексте схемы api_abstract_schema интерфейсом наследуется только экземпляр заполненной области комментариев annotation_fill_area_occurrence. Таким образом, супертип оказывается отсеченным.


Спецификация на языке EXPRESS:

*)

ENTITY annotation_occurrence

SUPERTYPE OF (annotation_fill_area_occurrence)

SUBTYPE OF (styled_item);

WHERE

WR1: 'API_ABSTRACT_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN

TYPEOF (SELF);

END_ENTITY;

(*

Комментарий к спецификации:

WR1: экземпляр комментариев annotation_occurrence должен быть элементом геометрического представления geometric_representation_item.

6.2.3.13 Сущность annotation_fill_area_occurrence

Сущность annotation_fill_area_occurrence назначает стиль заполнения области комментариев annotation_fill_area, включая спецификацию точки, используемой в качестве начальной для рассматриваемой области заполнения.

Примечание 1 - В контексте схемы api_abstract_schema annotation_fill_area_occurrence используется для назначения стиля штриховки fill_area_style_hatching указанной области annotation_fill_area. При этом для указанного назначения исходная точка fill_area_style_hatching.point_of_reference_hatching_line преобразуется в целевую точку fill_style_target.

Примечание 2 - В контексте схемы api_abstract_schema (где annotation_fill_area и fill_area_style_hatching могут быть определены только в двумерном контексте геометрического представления geometric_representation_context) ось Х контекста геометрического представления стиля штриховки области fill_area_style_hatching должна быть неявно отображена на оси X в контексте геометрического представления, которому принадлежит целевая точка.


Спецификация на языке EXPRESS:

*)

ENTITY annotation_fill_area_occurrence

SUBTYPE OF (annotation_occurrence) ;

fill_style_target : point;

WHERE

WR1 : 'API_ABSTRACT_SCHEMA.ANNOTATION_FILL_AREA' IN

TYPEOF (SELF.item);

api_WR2 : SIZEOF (QUERY (psa <*

SELF\annotation_occurrence\styled_item.styles |

SIZEOF (QUERY (pss <* psa.styles |

(NOT ('API_ABSTRACT_SCHEMA.FILL_AREA_STYLE' IN

TYPEOF (pss)))

AND

(SIZEOF (QUERY (fss <* pss.fill_styles |

(NOT ('API_ABSTRACT_SCHEMA.FILL_AREA_STYLE_HATCHING)

) ) ) =0) ) ) =0) = 0) ) =0;

api_WR3 : SIZEOF (QUERY (psa <*

SELF\annotation_occurrence\styled_item.styles |

SIZEOF (QUERY (pss <* psa.styles | _

NOT pss.point_of_reference_hatch_line =

SELF.fill_style_target))= 0)) =0;

END_ENTITY;

(*

Определение атрибута:

fill_style_target: точка отсчета для расположения элементов стиля области fill_area_style, назначенных для заполненной области комментариев.

Комментарии к спецификации:

WR1: стилизованным элементом должна быть заполненная область комментариев;

api_WR2: типом сущности fill_style на множестве fill_style_select (в процессе заполнения области комментариев) может быть только тип, определяемый сущностью fill_area_style_hatching;

api_WR3: fiIl_styIe_target должна ссылаться на точку ссылочной линии штриховки point_of_reference_hatching_line при заданном стиле штриховки fill_area_style_hatching на множестве fill_style, назначенном для элемента представления annotation_fill_area.

     6.2.4 Определения сущностей схемы API_ABSTRACT_SCHEMA: внешне определенные стили визуального представления


Данный подраздел описывает внешне определенные стили, представленные в настоящем стандарте. На указанные стили можно ссылаться согласно прикладной программе при определении логики визуализации геометрических сущностей и комментариев.

Указанные стили определены только логически. Это облегчает настройку интерфейса его конечным пользователем.

Указанные стили определяются как внешне определенные стили externally_defined_style. Это позволяет расширить множество доступных стилей в соответствии с протоколами обмена видами, определенными в ИСО 13584.

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

6.2.4.1 Сущность api_externally_defined_point_style

Сущность api_externally_defined_point_style задает визуальное представление точек.

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

Примечание 1 - Прочие внешне назначенные стили точек api_externally_defined_point_style могут быть определены протоколом обмена видами в соответствии с ИСО 13584. Если какая-либо реализация интерфейса не поддерживается указанным протоколом обмена видами, то используется первый по порядку стиль, определенный в настоящем стандарте. При этом сообщение об ошибке не формируется.


Таблица 7 - Внешне определенные стили точек

Название элемента item_id

Геометрическая форма

Цвет, размер

asterisk_point

Таблица 8, стиль 1

Зависит от реализации

circle_point

Таблица 8, стиль 2

Зависит от реализации

dot_point

Таблица 8, стиль 3

Зависит от реализации

plus_point

Таблица 8, стиль 4

Зависит от реализации

square_point

Таблица 8, стиль 5

Зависит от реализации

triangle_point

Таблица 8, стиль 6

Зависит от реализации

x_point

Таблица 8, стиль 7

Зависит от реализации

virtual_point

Не определена

Не определены



Таблица 8 - Внешне определенные стили точек


Shape - стиль


Спецификация на языке EXPRESS:

*)

ENTITY api_externally_defined_point_style

SUBTYPE OF (externally_defined_style);

END_ENTITY;

(*

Примечание 2 - Настоящая сущность может быть применена как внешне определенный стиль externally_defined_style.


Определения атрибутов:

SELF\externally_defined_item.source: название части настоящего стандарта, содержащей определение стиля;

SELF_externally_defined_item.item_id: идентификатор стиля.

6.2.4.2 Сущность api_externally_defined_curve_style

Сущность api_externally_defined_curve_style задает визуальное представление кривой.

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

Примечание 1 - Прочие внешне определенные стили кривых api_externally_defined_curve_style могут быть определены протоколом обмена видами в соответствии с настоящим стандартом. Если какая-либо реализация интерфейса не поддерживает указанный протокол обмена видами, то используется первый по порядку стиль, определенный в настоящем стандарте. При этом сообщение об ошибке не формируется.


Таблица 9 - Внешне определенные стили кривых

Название элемента item_id

Описание

Вид на чертеже

Цвет, толщина линий и шаблон

plain_solid_line_thick

Сплошная толстая

Зависит от реализации

plain_solid_line_middle

Сплошная средней толщины

Зависит от реализации

plain_solid_line_thin

Сплошная тонкая

Зависит от реализации

plain_dashed_line_thick

Штриховая толстая

Зависит от реализации

plain_dashed_line_thin

Штриховая тонкая

Зависит от реализации

alternate_long_dash_dot_line_thick

Штрихпунктирная толстая

Зависит от реализации

alternate_long_dash_dot_line_thin

Штрихпунктирная тонкая

Зависит от реализации

alternate_long_dash_double_dot_line_thin

Штрихпунктирная (с двумя точками) тонкая

Зависит от реализации

alternate_long_dash_dot_line_
thin_thicken_parts

Штрихпунктирная тонкая со сплошными толстыми участками в начале, в конце и при изменении направления

Зависит от реализации

virtual_line

Для вспомогательных построений

Не определен

Не определены


Спецификация на языке EXPRESS:

*)

ENTITY api_externally_defined_curve_style

SUBTYPE OF (externally_defined_style);

END_ENTITY;

(*

Примечание 2 - Настоящая сущность может быть использована как внешне определенный стиль externally_defined_style.


Определения атрибутов:

SELF\externally_defined_item.source: название части настоящего стандарта, содержащей определение указанного стиля;

SELF\externally_defined_item.item_id: идентификатор используемого стиля.

6.2.4.3 Сущность api_externally_defined_fill_area_style

Сущность api_externally_defined_fill_area_style задает визуальное представление заполненной области. Нижеследующие стили заполнения области определены в настоящем стандарте. Цвет непрозрачного заполнения области opaque_fill_area зависит от реализации. Он должен соответствовать цвету фона.

Примечание 1 - Прочие внешне определенные стили заполнения области api_externally_defined_fill_area_style могут быть определены протоколом обмена видами в соответствии с настоящим стандартом. Если какая-либо реализация интерфейса не поддерживается настоящим протоколом обмена видами, то используется первый по порядку стиль, определенный в настоящем стандарте. При этом сообщение об ошибке не формируется.


Таблица 10 - Внешне определенные стили заполненной области

Название item_id

Описание

Цвет

оpaque_fiIl_area

Область заполняется цветом фона. Она может загораживать (затирать) другие сущности. Область может быть заштрихована

Зависит от реализации

еmpty_fill_area

Область бесцветная. Она не может загораживать (затирать) другие сущности. Область может быть заштрихована

Бесцветный


Спецификация на языке EXPRESS:

*)

ENTITY api_externally_defined_fill_area_style

SUBTYPE OF (externally_defined_style) ;

END_ENTITY;

(*

Примечание 2 - Настоящая сущность может быть применена как внешне определенный стиль externally_defined_style.


Определения атрибутов:

SELF\externally_defined_item.source: название части настоящего стандарта, содержащей определение рассматриваемого стиля;

SELF\externally_defined_item.item_id: идентификатор используемого стиля.

6.2.4.4 Сущность api_externally_defined_surface_style

Сущность api_externally_defined_surface_style задает визуальное представление поверхности.

Нижеследующие стили поверхностей определены в настоящем стандарте. Все визуальные представления поверхностей зависят от реализации. Значения по умолчанию должны быть обеспечены интерфейсом пользователя. Также должна быть обеспечена возможность настройки интерфейса конечным пользователем.

Примечание 1 - Прочие внешне определенные стили поверхностей api_externally_defined_surface_style для интерфейса прикладного программирования могут быть определены протоколом обмена видами в соответствии с настоящим стандартом. Если какая-либо реализация интерфейса не поддерживается настоящим протоколом обмена видами, то используется первый по порядку стиль, определенный в настоящем стандарте. При этом сообщение об ошибке не формируется.


Таблица 11 - Внешне определенные стили поверхности

Название item_id

Описание

Изображение

solid_surface

Представляется на экране монитора в текущем стиле, определенном приемной системой для визуализации поверхности

Зависит от реализации


Спецификация на языке EXPRESS:

*)

ENTITY api_externally_defined_surface_style

SUBTYPE OF (externally_defined_style);

END_ENTITY;

(*

Примечание 2 - Настоящая сущность может быть применена как внешне определенный стиль externally_defined_style.


Определения атрибутов:

SELF\externally_defined_item.source: название части настоящего стандарта, содержащей определение рассматриваемого стиля;

SELF\externally_defined_item.item_id: идентификатор используемого стиля.

     6.2.5 Определения сущностей схемы API_ABSTRACT_SCHEMA: предварительно определенные стили визуального представления


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

6.2.5.1 Сущность api_pre_defined_hatching_width

Сущность api_pre_defined_hatching_width задает описание логической толщины линий штриховки.

Толщина линий предварительно определена в настоящем стандарте. Конкретная толщина линии зависит от применения. Значение по умолчанию обеспечивается интерфейсом пользователя. Необходимо обеспечить возможность настройки интерфейса конечного пользователя.


Таблица 12 - Предварительно определенная толщина линий штриховки

Название

Описание

Толщина линии

thin_hatching_line

Тонкие линии. Используются для штриховки областей проекта изделия из металла

Зависит от реализации

middle_thick_hatching_line

Линии средней толщины. Используются для особых целей

Зависит от реализации

thick_hatching_line

Толстые линии. Используются для особых целей

Зависит от реализации


Спецификация на языке EXPRESS:

*)

ENTITY api_pre_defined_hatch_width

SUBTYPE OF (pre_defined_size);

WHERE

api_WR1: SELF\pre_defined_item.name IN ['thin_hatch_line',

'middle_thick_hatch_line',

'thick_hatch_line'];

END_ENTITY;

(*

Примечание - Если штриховка создана в базе данных CAD, то толщина линий штриховки может быть представлена положительной мерой длины positive_length_measure в соответствии со значением, генерируемым реализацией интерфейса.


Определение атрибута:

SELF\pre_defined_item.name: метка используемой толщины линии штриховки.

Комментарий к спецификации:

api_WR1: имя определено в настоящем стандарте.

6.2.5.2 Сущность api_pre_defined_hatch_curve_font

Сущность api_pre_defined_hatch_curve_font задает описание типов линий штриховки.

Нижеследующие типы предварительно определены в настоящем стандарте.


Таблица 13 - Сегменты линий и отступы для предварительно определенных типов штриховки

Название

Сегмент
(мм)

Отступ
(мм)

Сегмент
(мм)

Отступ
(мм)

Сегмент
(мм)

Отступ
(мм)

continuous

dashed

4.0

1.5

1.0

1.0

chain

7.0

1.0

1.0

1.0

1.0

1.0

chain_double_dash

7.0

1.0

dotted

1.0

1.0


Спецификация на языке EXPRESS:

*)

ENTITY api_pre_defined_hatsh_curve_font

SUBTYPE OF (pre_defined_hatsh_curve_font) ;

WHERE

api_WR1: SELF\pre_defined_item, name IN ['continious',

'dashed',

'chain',

'chain_double_dash',

'dotted'];

END_ENTITY;

(*

Определение атрибута:

SELF\pre_defined_item.name: метка используемого типа линии штриховки.

Комментарий к спецификации:

api_WR1: имя определено в настоящем стандарте.

6.2.5.3 Сущность api_pre_defined_hatch_colour

Сущность api_pre_defined_hatch_coloиг задает логический цвет линии штриховки.

Цвет предварительно определен в настоящем стандарте. Конкретное значение цвета зависит от реализации. Значение по умолчанию обеспечивается интерфейсом пользователя. Должна быть обеспечена возможность настройки интерфейса конечным пользователем.


Таблица 14 - Предварительно определенный цвет штриховки

Название

Описание

Цвет

hateh_line_colour

Цвет штриховки

Зависит от реализации


Спецификация на языке EXPRESS:

*)

ENTITY api_pre_defined_hatch_colour

SUBTYPE OF (pre_defined_colour);

WHERE

api_WR1: SELF\pre_defined_item.name ='hatch_line colour';

END_ENTITY;

(*

Примечание - Если штриховка создана в базе данных CAD, то цвет штриховки может быть определен значением цвета в соответствии с настройкой реализации интерфейса.


Определение атрибута:

SELF\pre_defined_item.имя: метка используемого цвета.

Комментарий к спецификации:

api_WR1: имя определено в настоящем стандарте.

6.2.5.4 Сущность api_pre_defined_occlusion_style

Сущность api_pre_defined_occlusion_style указывает, что стилизованный элемент styled_item должен быть включен в глобальный процесс удаления невидимых линий. Сущность определяет виртуальную высоту styled_item в виртуальном 3D-пространстве.

Примечание 1 - Если виртуальная высота не ассоциирована с текущим стилем, то он не включен в процесс удаления невидимых линий.

Примечание 2 - Если CAD обеспечивает ресурсы предварительного затенения в 2D-пространстве, то настоящий стиль должен отображаться на указанные ресурсы и процесс удаления невидимых линий реализуется CAD.

Примечание 3 - Если представление формы shape_representation создано в репозитории (соответствующем ИСО 10303 и требованиям прикладной программы, обеспечивающей выполнение соотношений предварительного затенения), то процесс удаления невидимых линий должен отображать настоящий стиль поверх предварительного затенения. Если прикладная программа, удовлетворяющая требованиям ИСО 10303, не обеспечивает выполнения соотношений предварительного затенения, то невидимые линии должны быть вычислены интерфейсом. При этом только видимые сущности (на языке EXPRESS) должны быть созданы в репозитории в соответствии с ИСО 10303 и требованиями прикладной программы.


Таблица 15 - Предварительно определенный стиль невидимых линий

Название

Описание

Цвет

hidden_line_no_changed

Невидимая линия не изменяется

Зависит от реализации

hidden_line_dashed

Невидимая линия является штриховой

Зависит от реализации

hidden_line_invisible

Линия невидима

Зависит от реализации


Спецификация на языке EXPRESS:

*)

ENTITY api_pre_defined_occlusion_style

SUBTYPE OF (pre_defined_presentation_style);

view_level: virtual_height_ratio;

WHERE

api_WR1: SELF\pre_defined_item.name IN ['hidden_line_no_changed',

'hidden_line_dashed',

'hidden_line_invisible'];

END_ENTITY;

(*

Определения атрибутов:

SELF\pre_defined_item.имя: метка используемого стиля невидимых линий;

view_level: виртуальная высота стилизованного элемента styled_item в виртуальном 3D-пространстве.

Комментарий к спецификации:

api_WR1: предварительно определенное имя настоящего стиля выбирается из списка атрибутов: hidden_line_no_changed, hidden_line_dashed или hidden_line_invisible.

6.2.5.5 Сущность api_pre_defined_vitually_sent_style

Сущность api_pre_defined_vitually_sent_style указывает, что стилизованный элемент styled_item (остающийся в TDB для реализации глобального процесса удаления невидимых линий) теперь недоступен для прикладной программы. По окончании процесса удаления невидимых линий данный элемент отправляется в CAD.

Примечание 1 - Предварительно определенный стиль представления pre_defined_presentation_style может быть использован только для сущностей, находящихся в TDB.

Примечание 2 - Если сущность отправлена виртуально, то она должна быть удалена из структуры api_group. Она должна принадлежать корневой группе, которая не может использоваться какой-либо функцией управления группой.


Спецификация на языке EXPRESS:

*)

ENTITY api_pre_defined_virtually_sent_style

SUBTYPE OF (pre_defined_presentation_style);

api_set_name: STRING;

WHERE

api_WR1: SELF\pre_defined_item.name ='virtually_sent';

END_ENTITY;

(*

Определение атрибута:

api_set_name: имя множества api_set интерфейса прикладного программирования, которое было открытым во время виртуальной отправки сущности.

Комментарий к спецификации:

api_WR1: предварительно определенное имя стиля, отправляемого виртуально.

Дополнительные комментарии:

api_IP1: данный стиль назначается только сущностям, содержащимся в TDB;

api_IP2: сущность api_set_name должна соответствовать имени множества api_set интерфейса прикладного программирования.

     6.3 Определения функций схемы API_ABSTRACT_SCHEMA

     6.3.1 Определения функций схемы API_ABSTRACT_SCHEMA: геометрические и топологические представления


Настоящий подраздел объявляет функции, определенные ИСО 10303-42 и являющиеся частью схемы api_abstract_schema.

6.3.1.1 Функция dimension_of

Функция dimension_of отражает целочисленное значение размерности dimension_count контекста геометрического представления geometric_representation_context, в котором геометрически закладываются входные элементы геометрического представления geometric_representation_items.

С учетом ограничений, налагаемых глобальным правилом совместимости размерностей compatible_dimension, данное значение равно размерности координатного пространства coordinate_space_dimension для входных элементов геометрического представления. Правило совместимости размерностей установлено ИСО 10303-42, раздел 4.5.1.

Спецификация на языке EXPRESS:

*)

FUNCTION dimension_of (item : geometric_representation_item) :

dimension_count;

LOCAL

x : SET OF representation;

Закупки не найдены
Свободные
Р
Заблокированные
Р
Роль в компании Пользователь

Для продолжения необходимо войти в систему

После входа Вам также будет доступно:
  • Автоматическая проверка недействующих стандартов в закупке
  • Создание шаблона поиска
  • Добавление закупок в Избранное