ГОСТ Р ИСО 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 являются двумерными или трехмерными.