ГОСТ Р ИСО 10303-509-2009
Группа П87
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Системы автоматизации производства и их интеграция
ПРЕДСТАВЛЕНИЕ ДАННЫХ ОБ ИЗДЕЛИИ И ОБМЕН ЭТИМИ ДАННЫМИ
Часть 509
Прикладные интерпретированные конструкции. Односвязные поверхности
Industrial automation systems and integration. Product data representation and exchange. Part 509. Application interpreted construct. Manifold surface
ОКС 25.040.40
ОКСТУ 4002
Дата введения 2010-07-01
Предисловие
Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ "О техническом регулировании", а правила применения национальных стандартов Российской Федерации - ГОСТ Р 1.0-2004 "Стандартизация в Российской Федерации. Основные положения"
Сведения о стандарте
1 ПОДГОТОВЛЕН на основе аутентичного перевода на русский язык стандарта, указанного в пункте 4, который выполнен Государственным научным учреждением "Центральный научно-исследовательский и опытно-конструкторский институт робототехники и технической кибернетики"
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 459 "Информационная поддержка жизненного цикла изделий"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 14 сентября 2009 г. N 363-ст
4 Настоящий стандарт идентичен международному стандарту ИСО 10303-509:2001 "Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 509. Прикладные интерпретированные конструкции. Односвязные поверхности" (ISO 10303-509:2001 "Industrial automation systems and integration - Product data representation and exchange - Part 509: Application interpreted construct: Manifold surface").
При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном приложении ДА
5 ВВЕДЕН ВПЕРВЫЕ
Информация об изменениях к настоящему стандарту публикуется в ежегодно издаваемом информационном указателе "Национальные стандарты", а текст изменений и поправок - в ежемесячно издаваемых информационных указателях "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет
Введение
Стандарты комплекса ИСО 10303 распространяются на компьютерное представление информации об изделиях и обмен данными об изделиях. Их целью является обеспечение нейтрального механизма, способного описывать изделия на всем протяжении их жизненного цикла. Этот механизм применим не только для обмена файлами в нейтральном формате, но является также основой для реализации и совместного доступа к базам данных об изделиях и организации архивирования.
Стандарты комплекса ИСО 10303 представляют собой набор отдельно издаваемых стандартов (частей). Стандарты данного комплекса относятся к одной из следующих тематических групп: "Методы описания", "Методы реализации", "Методология и основы аттестационного тестирования", "Интегрированные обобщенные ресурсы", "Интегрированные прикладные ресурсы", "Прикладные протоколы", "Комплекты абстрактных тестов", "Прикладные интерпретированные конструкции" и "Прикладные модули". Настоящий стандарт входит в группу "Прикладные интерпретированные конструкции".
Прикладная интерпретированная конструкция (ПИК) обеспечивает логическую группировку интерпретированных конструкций, поддерживающих конкретную функциональность для использования данных об изделии в разнообразных прикладных контекстах. Интерпретированная конструкция представляет собой обычную интерпретацию интегрированных ресурсов, поддерживающую требования совместного использования информации прикладными протоколами.
Настоящий стандарт определяет прикладную интерпретированную конструкцию для описания геометрических форм посредством моделей односвязных поверхностей и содержит геометрические и топологические средства для определения двусвязных форм, которые могут состоять из элементарных и пространственных кривых и поверхностей.
1 Область применения
Настоящий стандарт определяет интерпретацию интегрированных ресурсов, обеспечивающую соответствие требованиям к описанию геометрических форм посредством моделей односвязных поверхностей.
Требования настоящего стандарта распространяются на:
- точки в трехмерном пространстве;
- точки, определенные в параметрическом пространстве кривых или поверхностей;
- кривые в трехмерном пространстве;
- кривые, определенные в параметрическом пространстве поверхностей.
Примечание - Такие кривые называются также параметризованными кривыми (pcurve) и кривыми на поверхности (cons);
- элементарные кривые: линию, окружность, эллипс, параболу и гиперболу;
- кривые пересечений;
- полилинии, состоящие, по крайней мере, из трех точек;
- элементарные поверхности: плоскость, цилиндр, конус, тор и сферу;
- изогнутые поверхности, полученные вращением или линейной экструзией кривой;
- рельефные кривые и поверхности;
- обрезание кривых и поверхностей с использованием топологических объектов;
- композицию кривых и поверхностей с использованием топологических объектов;
- копирование кривых, поверхностей и моделей поверхностей;
- трехмерные смещения кривых и поверхностей;
- двусвязные формы.
Требования настоящего стандарта не распространяются на:
- неограниченную геометрию;
- геометрию самопересечений;
- геометрию в двумерном декартовом координатном пространстве;
- копирование точек;
- топологические объекты, не связанные с определенной геометрической областью;
- многосвязные формы.
2 Нормативные ссылки
В настоящем стандарте использованы ссылки на следующие международные стандарты*:
_______________
* Таблицу соответствия национальных стандартов международным см по ссылке. - .
ИСО/МЭК 8824-1:1998* Информационные технологии. Взаимосвязь открытых систем. Абстрактная синтаксическая нотация версии 1 (АСН.1). Спецификация основной нотации (ISO/IEC 8824-1:1998, Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation)
_______________
* Заменен. Действует ИСО/МЭК 8824-1:2002.
ИСО 10303-1:1994* Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 1. Общие представления и основополагающие принципы (ISO 10303-1:1994, Industrial automation systems and integration - Product data representation and exchange - Part 1: Overview and fundamental principles)
ИСО 10303-11:1994 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS (ISO 10303-11:2004, Industrial automation systems and integration - 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 and integration - Product data representation and exchange - Part 41: Integrated generic resource: Fundamentals of product description and support)
ИСО 10303-42:1994 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 42. Интегрированные обобщенные ресурсы. Геометрическое и топологическое представление (ISO 10303-42:2003, Industrial automation systems and integration - Product data representation and exchange - Part 42: Integrated generic resource: Geometric and topological representation)
ИСО 10303-43:1994 Системы автоматизации промышленного производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 43. Интегрированные обобщенные ресурсы. Структуры представлений (ISO 10303-43:1994, Industrial automation systems and integration - Product data representation and exchange - Part 43: Integrated generic resources: Representation structures)
ИСО 10303-202:1996 Системы автоматизации промышленного производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 202. Прикладные протоколы. Ассоциативные чертежи (ISO 10303-202:1996, Industrial automation systems and integration - Product data representation and exchange - Part 202: Application protocol: Associative draughting)
Примечание - Нормативная ссылка на ИСО 10303-202 приведена только для определения термина "прикладная интерпретированная конструкция (ПИК)".
ИСО 10303-511:2001 Системы автоматизации промышленного производства и интеграция. Представление данных об изделии и обмен этими данными. Часть 511. Прикладные интерпретированные конструкции. Топологически ограниченная поверхность (ISO 10303-511:2001, Industrial automation systems and integration - Product data representation and exchange - Part 511: Application interpreted construct: Topologically bounded surface)
3 Термины и определения
3.1 Термины, определенные в ИСО 10303-1
В настоящем стандарте применены следующие термины:
- комплект абстрактных тестов; КАТ (abstract test suite; ATS);
- приложение (application);
- прикладной контекст (application context);
- прикладной протокол; ПП (application protocol; АР);
- данные (data);
- обмен данными (data exchange);
- обобщенный ресурс (generic resource);
- метод реализации (implementation method);
- информация (information);
- интегрированный ресурс (integrated resource);
- интерпретация (interpretation);
- модель (model);
- изделие (product);
- данные об изделии (product data);
- структура (structure).
3.2 Термины, определенные в ИСО 10303-42
В настоящем стандарте применены следующие термины:
- граница (boundary);
- пространственная модель граничного представления; В-rep модель (boundary representation solid model; B-rep);
- соединенный (connected);
- координатное пространство (coordinate space);
- кривая (curve);
- размерность (dimensionality);
- область (domain);
- параметрическое пространство (parameter space);
- самопересечение (self-intersect);
- поверхность (surface).
3.3 Термин, определенный в ИСО 10303-202
В настоящем стандарте применен следующий термин:
прикладная интерпретированная конструкция; ПИК (application interpreted construct; AIC): Логическая группировка интерпретируемых конструкций, которая поддерживает определенную функцию для использования данных об изделии в различных прикладных контекстах.
3.4 Термины, определенные в ИСО 10303-511
В настоящем стандарте также применены следующие термины:
- расширенная грань (advanced face);
- рельефная поверхность (sculptured surface);
- изогнутая поверхность (swert surface).
3.5 Другие термины и определения
В настоящем стандарте применены также следующие термины с соответствующими определениями:
3.5.1 двусвязная форма (2-manifold): Форма, у которой в любой точке на ее границе можно создать достаточно маленькую сферу таким образом, что внутренняя часть этой сферы делится данной границей точно на две части. Как правило, границу образуют ребра и грани.
Примечание - Данное определение исключает самопересечение поверхностей, взаимные пересечения поверхностей, не проходящие вдоль ребер, и ребра, образованные тремя или более гранями.
3.5.2 многосвязная форма (non-manifold): Модель поверхности, в которой для определения ее границ и связности используются топологические конструкции и которая содержит либо, по крайней мере, два объекта connected_face_set, имеющих общую грань (объект face), либо более двух объектов face, имеющих общее ребро (объект edge).
4 Сокращенный листинг на языке EXPRESS
В настоящем разделе определена EXPRESS-схема, в которой используются элементы интегрированных ресурсов и содержатся типы, конкретизации объектов и функции, относящиеся к настоящему стандарту.
Примечание - В интегрированных ресурсах допускается существование подтипов и элементов списков выбора, не импортированных в данную ПИК. Такие конструкции исключают из дерева подтипов или из списка выбора посредством правил неявного интерфейса, определенных в ИСО 10303-11. Ссылки на исключенные конструкции находятся вне области применения данной ПИК. В некоторых случаях исключаются все элементы списка выбора. Поскольку ПИК предназначены для реализации в контексте прикладного протокола, элементы списка выбора будут определяться областью применения прикладного протокола.
Данная прикладная интерпретированная конструкция предоставляет непротиворечивое множество геометрических и топологических объектов для определения представлений односвязной поверхности, состоящих из элементарных и рельефных кривых и поверхностей. Объектом самого высокого уровня в настоящем стандарте является manifold_surface_shape_representation. Данный объект ограничен. Ограничение геометрической формы осуществляется посредством топологических объектов, таких как vertex, edge и face.
Топологические объекты не должны существовать вне связи с соответствующей геометрической областью.
Примечание - В настоящем стандарте используются все объекты и типы по ИСО 10303-511.
EXPRESS-спецификация:
*) | |||
SCHEMA aic_manifold_surface; | |||
USE FROM aic_topologicaly_bounded_surface; | -- ISO 10303-511 | ||
USE FROM geometric_model_schema ( | -- ISO 10303-42 | ||
shell_based_surface_model); | |||
USE FROM geometry schema ( | -- ISO 10303-42 | ||
b_spline_curve, | |||
b_spline_surface, | |||
bounded_pcurve, | |||
bounded_surface_curve, | |||
cartesian_transformation_operator_3d, | |||
curve, | |||
curve_replica, | |||
degenerate_pcurve, | |||
evaluated_degenerate_pcurve, | |||
intersection_curve, | |||
offset_curve_3d, | |||
offset_surface, | |||
point_on_curve, | |||
point_on_surface, | |||
seam_curve, | |||
surface, | |||
surface_replica); | |||
USE FROM product_property_representation_schema ( | -- ISO 10303-41 | ||
shape_representation); | |||
USE FROM representation_schema ( | -- ISO 10303-43 | ||
mapped_item, | |||
representation, | |||
representation_item, | |||
representation_map); | |||
USE FROM topology_schema ( | -- ISO 10303-42 | ||
closed_shell, | |||
connected_face_set, | |||
face, | |||
open_shell, | |||
oriented_closed_shell); | |||
(* |
Примечание - Схемы, ссылки на которые даны выше, можно найти в следующих стандартах комплекса ИСО 10303:
aic_ topologicaly _bounded_surface | - ИСО 10303-511; |
geometric_model_schema | - ИСО 10303-42; |
geometry_schema | - ИСО 10303-42; |
product_property_representation_schema | - ИСО 10303-41; |
representation_schema | - ИСО 10303-43; |
topology_schema | - ИСО 10303-42. |
4.1 Основные понятия и допущения
Для независимой реализации в схемах прикладных протоколов, в которых используется данная ПИК, предназначен объект manifold_surface_shape_representation.
4.2 Определение объекта manifold_surface_shape_representation схемы aic_manifold_surface
Объект manifold_surface_shape_representation описывает форму или часть формы объекта product посредством ограниченных двусвязных форм.
Примечания
1 Двусвязные формы топологически ограничены таким образом, что делает их пригодными для включения в представления сплошных тел. Например, в двусвязной форме максимум две грани (объекты face) могут иметь общее ребро (объект edge).
2 Объект product не рассматривается в настоящем стандарте.
Объект manifold_surface_shape_representation является подтипом объекта shape_representation, определенного в 10303-41, который состоит из одного или нескольких объектов shell_based_surface_model. Каждый объект shell_based_surface_model построен из объектов open_shell и closed_shell, которые являются совокупностями объектов face. Объект connected_face_set, являющийся супертипом объектов open_shell и closed_shell, не должен быть реализован. Объекты face используют объекты edge и vertex; все они должны ссылаться на геометрические объекты, такие как point, curve и surface. Связь между топологией и геометрией может быть установлена посредством объекта face_surface либо объекта advanced_face в соответствии с ИСО 10303-511. Эти два варианта отличаются выбором допустимых подтипов объектов point, curve и surface, а также ограничениями на ссылки на их базовые геометрические объекты.
Примечание - Представление объектов face_surface как объектов advanced_face рекомендуется для моделей односвязных поверхностей, предназначенных для применения совместно с твердотельными моделями граничного представления. Интеграция такой модели односвязной поверхности, например, в модель расширенного граничного представления, определенную в ИСО 10303-514 [1], будет проще.
Все геометрические объекты должны быть определены как трехмерные, за исключением объектов двухмерной геометрии, используемых для определения объектов pcurve. Использование одномерных объектов cartesian_point не допускается.
Неограниченные геометрические объекты должны быть обрезаны посредством топологических конструкций.
Элементы item объекта manifold_surface_shape_representation также могут быть объектами типа mapped_item, определенными в ИСО 10303-43, или axis2_placement_3d. Они используются для объединения одного или нескольких объектов manifold_surface_shape_representation в один новый объект manifold_surface_shape_representation.
Правила WHERE в данном объекте ограничивают использование типов данных для объектов, импортированных из ИСО 10303-42 и ИСО 10303-43 в соответствии с приведенными выше утверждениями. Некоторые проверки типа объектов и ограничений определены в следующих двух функциях:
- msf_curve_check;
- msf_surface_check.
В формальных утверждениях WR6 и WR10, приведенных ниже, эти функции проверяют объекты curve и surface всех объектов edge и faces, входящих в область определения объекта manifold_surface_shape_representation, за исключением тех, которые содержатся в дереве ссылок объекта advanced_face; геометрия объекта advanced_face проверяется отдельным набором правил. Функции автоматически оценивают все базовые геометрические объекты, для чего они вызываются рекурсивно.
Пример - Объект pcurve может ссылаться как на объект curve, так и на объект surface. Функция msf_curve_check проверяет не только объект pcurve, но также его базовые геометрические объекты. Поэтому данная функция будет вызывать не только себя, но и функцию msf_surface_check.
Примечания
1 В настоящий стандарт не включена функция проверки объектов point и их базовых объектов curve и surface. Это объясняется тем, что на все объекты curve и surface из manifold_surface_shape_representation ссылаются объекты edge и face, поэтому их проверка осуществляется двумя уже существующими функциями.
2 Прикладной протокол, использующий настоящий стандарт, должен явным образом разрешить, чтобы объект shape_representation мог быть реализован как объект manifold_surface_shape_representation.
EXPRESS-спецификация:
*) | |||
ENTITY manifold_surface_shape_representation | |||
SUBTYPE OF (shape_representation); | |||
WHERE | |||
WR1: SIZEOF (QUERY (it <* SELF.items | | |||
NOT (SIZEOF (['AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL', | |||
'AIC_MANIFOLD_SURFACE.MAPPED_ITEM', | |||
'AIC_MANIFOLD_SURFACE.AXIS2_PLACEMENT_3D'] * TYPEOF (it)) = 1))) = 0; | |||
WR2: SIZEOF (QUERY (it <* SELF.items | | |||
SIZEOF (['AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL', | |||
'AIC_MANIFOLD_SURFACE.MAPPED_ITEM'] * TYPEOF (it)) = 1)) > 0; | |||
WR3: SIZEOF (QUERY (mi <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.MAPPED_ITEM' IN TYPEOF (it)) | | |||
NOT (('AIC_MANIFOLD_SURFACE.MANIFOLD_SURFACE_SHAPE_REPRESENTATION' | |||
IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) | |||
AND | |||
(SIZEOF(QUERY(mr_it<* | |||
mi\mapped_item.mapping_source.mapped_representation.items | | |||
('AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' | |||
IN TYPEOF (mr_it)))) > 0 )))) = 0; | |||
WR4: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (sh <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (['AIC_MANIFOLD_SURFACE.OPEN_SHELL', | |||
'AIC_MANIFOLD_SURFACE.ORIENTED_CLOSED_SHELL', | |||
'AIC_MANIFOLD_SURFACE.CLOSED_SHELL'] | |||
* TYPEOF (sh)) = 1))) = 0))) = 0; | |||
WR5: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (cfs <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | | |||
NOT ('AIC_MANIFOLD_SURFACE.FACE_SURFACE' IN TYPEOF (fa)))) = 0))) | |||
= 0))) = 0; | |||
WR6: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (cfs <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | | |||
NOT (('AIC_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa)) | |||
OR | |||
(msf_surface_check(fa\face_surface.face_geometry))))) = 0))) | |||
= 0))) = 0; | |||
WR7: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (cfs <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | | |||
NOT (('AIC_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa)) | |||
OR | |||
(SIZEOF (QUERY (bnds <*fa.bounds | | |||
NOT (SIZEOF (['AIC_MANIFOLD_SURFACE.EDGE_LOOP', | |||
'AIC_MANIFOLD_SURFACE.VERTEX_LOOP'] | |||
* TYPEOF (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; | |||
WR8: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items| | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (cfs <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | | |||
NOT (('AIC_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa)) | |||
OR | |||
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | | |||
'AIC_MANIFOLD_SURFACE.EDGE_LOOP' IN TYPEOF (bnds.bound)) | | |||
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | | |||
NOT ('AIC_MANIFOLD_SURFACE.EDGE_CURVE' IN TYPEOF | |||
oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0; | |||
WR9: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (cfs <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | | |||
NOT (('AIC_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa)) | |||
OR | |||
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | | |||
'AIC_MANIFOLD_SURFACE.EDGE_LOOP' IN TYPEOF (bnds.bound)) | | |||
NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <* | |||
elp_fbnds\path.edge_list | | |||
'AIC_MANIFOLD_SURFACE.EDGE_CURVE' IN TYPEOF (oe.edge_element)) | | |||
NOT (SIZEOF (['AIC_MANIFOLD_SURFACE.B_SPLINE_CURVE', | |||
'AIC_MANIFOLD_SURFACE.CONIC', | |||
'AIC_MANIFOLD_SURFACE.CURVE_REPLICA', | |||
'AIC_MANIFOLD_SURFACE.LINE', | |||
'AIC_MANIFOLD_SURFACE.OFFSET_CURVE_3D', | |||
'AIC_MANIFOLD_SURFACE.PCURVE', | |||
'AIC_MANIFOLD_SURFACE.POLYLINE', | |||
'AIC_MANIFOLD_SURFACE.SURFACE_CURVE']* | |||
TYPEOF (oe_cv.edge_element\edge_curve.edge_geometry)) | |||
= 1))) = 0))) = 0)))) = 0))) = 0))) = 0; | |||
WR10: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (cfs <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | | |||
NOT (('AIC_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa)) | |||
OR | |||
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <*fa.bounds | | |||
'AIC_MANIFOLD_SURFACE.EDGE_LOOP' IN TYPEOF (bnds.bound)) | | |||
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | | |||
NOT (msf_curve_check (oe.edge_element\edge_curve.edge_geometry)))) | |||
= 0))) = 0)))) = 0))) = 0))) = 0; | |||
WR11: SIZEOF (QUERY(sbsm <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (cfs <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | | |||
NOT (('AIC_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa)) | |||
OR | |||
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds | | |||
'AIC_MANIFOLD_SURFACE.EDGE_LOOP' IN TYPEOF (bnds.bound)) | | |||
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | | |||
NOT (('AIC_MANIFOLD_SURFACE.VERTEX_POINT' IN TYPEOF | |||
(oe.edge_element.edge_start)) | |||
AND | |||
('AIC_MANIFOLD_SURFACE.VERTEX_POINT'IN | |||
TYPEOF (oe.edge_element.edge_end))))) | |||
= 0))) = 0)))) = 0))) = 0))) = 0; | |||
WR12: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (cfs <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | | |||
NOT (('AIC_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa)) | |||
OR | |||
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <*fa.bounds | | |||
'AIC_MANIFOLD_SURFACE.EDGE_LOOP' IN TYPEOF (bnds.bound)) | | |||
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list | | |||
NOT ((SIZEOF (['AIC_MANIFOLD_SURFACE.CARTESIAN_POINT', | |||
'AIC_MANIFOLD_SURFACE.DEGENERATE_PCURVE', | |||
'AIC_MANIFOLD_SURFACE.POINT_ON_CURVE', | |||
'AIC_MANIFOLD_SURFACE.POINT_ON_SURFACE'] * TYPEOF | |||
(oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1) | |||
AND | |||
(SIZEOF (['AIC_MANIFOLD_SURFACE.CARTESIAN_POINT', | |||
'AIC_MANIFOLD_SURFACE.DEGENERATE_PCURVE', | |||
'AIC_MANIFOLD_SURFACE.POINT_ON_CURVE', | |||
'AIC_MANIFOLD_SURFACE.POINT_ON_SURFACE'] * TYPEOF | |||
(oe.edge_element.edge_end\vertex_point.vertex_geometry)) = 1 | |||
)))) = 0))) = 0)))) = 0))) = 0))) = 0; | |||
WR13: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (cfs <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | | |||
NOT (('AIC_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa)) | |||
OR | |||
(SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | | |||
'AIC_MANIFOLD_SURFACE.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | | |||
NOT ('AIC_MANIFOLD_SURFACE.VERTEX_POINT' IN TYPEOF | |||
(vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0))) | |||
= 0))) = 0; | |||
WR14: SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items | | |||
'AIC_MANIFOLD_SURFACE.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) | | |||
NOT (SIZEOF (QUERY (cfs <* | |||
sbsm\shell_based_surface_model.sbsm_boundary | | |||
NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces | | |||
NOT (('AIC_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa)) | |||
OR | |||
(SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds | | |||
'AIC_MANIFOLD_SURFACE.VERTEX_LOOP' IN TYPEOF (bnds.bound)) | | |||
NOT (SIZEOF (['AIC_MANIFOLD_SURFACE.CARTESIAN_POINT', | |||
'AIC_MANIFOLD_SURFACE.DEGENERATE_PCURVE', | |||
'AIC_MANIFOLD_SURFACE.POINT_ON_CURVE', | |||
'AIC_MANIFOLD_SURFACE.POINT_ON_SURFACE'] * TYPEOF | |||
(vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry)) | |||
= 1))) = 0)))) = 0))) = 0))) = 0; | |||
END_ENTITY; | |||
(* |
Формальные утверждения
WR1 - элементы item в manifold_surface_shape_representation должны быть объектами shell_based_surface_model, mapped_item или axis2_placement_3d.
Примечание - Объект axis2_placement_3d является допустимым объектом mapped_item.mapping_target. Чтобы добавить объект presentation в список элементов item объекта manifold_surface_shape_representation (см. WR3 относительно допустимых объектов mapped_item), объект mapped_item.mapping_source.mapping_origin может быть любым объектом, который геометрически определен в geometric_representation_context объекта mapped_representation. Если данный объект является объектом axis2_placement_3d, то оператор, отображающий объект mapped_representation в объект manifold_surface_shape_representation, соответствует матрице преобразования, в которой разрешены только поступательные перемещения и вращения. Если объект cartesian_transformation_operator_3d используется в качестве объекта mарping_origin, то допускаются масштабирование и зеркалирование.
WR2 - по крайней мере, один из элементов item объекта manifold_surface_shape_representation должен быть объектом based_surface_model либо объектом mapped_item.
WR3 - если объект manifold_surface_shape_representation содержит объект mapped_item, то объект mapped_representation из mapping_source должен также быть объектом manifold_surface_shape_representation.
WR4 - граница объекта shell_based_surface_model, то есть его атрибут sbsm_boundary, должна быть определена только посредством объектов open_shell, closed_shell или oriented_closed_shell; использование объектов oriented_open_shell не допускается.
WR5 - объект face должен быть реализован как объект face_surface, включая подтип advanced_face. Объект oriented_face является недопустимой реализацией объекта face.
WR6 - все базовые геометрические объекты, на которые ссылаются объекты surface, должны присутствовать в дереве ссылок объекта advanced_face либо быть допустимыми объектами curve и surface.
Объект basis_surface из offset_surface должен быть объектом elementary_surface, b_spline_surface, offset_surface, swept_surface или surface_replica.
Объект parent_surface из surface_replica должен быть объектом elementary_surface, b_spline_surface, offset_surface, swept_surface или surface_replica.
Объект swept_curve из swept_surface должен быть объектом line, conic, pcurve, surface_curve, offset_curve_3d, b_spline_curve, polyline или curve_replica.
Атрибут self_intersect для объектов b_spline_surface и offset-surface должен иметь значение FALSE или UNKNOWN.
Примечание - Объект surface проверяется функцией msf_surface_check на соответствие данным ограничениям.
WR7 - объект bound из face_bound, на который ссылается объект face, должен присутствовать в дереве ссылок объекта advanced_face либо быть объектом edge_loop или vertex_loop.
WR8 - геометрические объекты ограничивающего объекта edge, то есть объекты edge_element из oriented_edge, должны присутствовать в дереве ссылок объекта advanced_face либо быть объектом edge_curve.
WR9 - объект curve, используемый для определения геометрии объекта edge, который является объектом edge_geometry из edge_curve объекта edge, должен быть объектом b_spline_curve, conic, curve_replica, line, offset_curve_3d, pcurve, polyline, surface_curve или curve в дереве ссылок объекта advanced_face.
WR10 - все базовые геометрические объекты, на которые ссылаются объекты curve, должны присутствовать в дереве ссылок объекта advanced_face либо являться допустимыми объектами curve и surface.
Объект parent_curve из curve_replica должен быть объектом line, conic, pcurve, surface_curve, offset_curve_3d, b_spline_curve, polyline или curve_replica.
Объект basis_curve из offset_curve_3d должен быть объектом line, conic, pcurve, surface_curve, offset_curve_3d, bspline_curve, polyline или curve_replica.
Объект curve_3d из surface_curve должен быть объектом line, conic, offset_curve_3d, bspline_curve, polyline или curve_replica.
Объект basis_surface из surface_curve должен быть объектом b_spline_surface, elementary_surface, offset_surface, surface_replica или swept_surface.
Объекты polyline должны содержать, по крайней мере, три объекта cartesian_point.
Атрибут self_intersect для объектов b_spline_curve и offset_curve_3d должен иметь значение FALSE или UNKNOWN.
Примечание - Объект curve проверяется функцией msf_curve_check на соответствие данным ограничениям.
WR11 - объекты edge_start и edge_end из edge должны присутствовать в дереве ссылок объекта advanced_face либо быть объектами vertex_point.
WR12 - объект vertex_geometry из vertex, являющийся частью объекта edge_loop, должен присутствовать в дереве ссылок объекта advanced_face либо быть объектом cartesian_point, point_on_curve, point_on_surface или degenerate_pcurve.
WR13 - объект loop_vertex из vertex_loop должен присутствовать в дереве ссылок объекта advanced_face либо быть объектом vertex_point.
WR14 - объект vertex_geometry из vertex, являющийся частью объекта vertex_loop, должен присутствовать в дереве ссылок объекта advanced_face либо быть объектом cartesian_point, point_on_curve, point_on_surface, или degenerate_pcurve.
Неформальные утверждения
IP1 - часть объекта b_spline_curve, входящая в топологическую область определения объекта manifold_surface_shape_representation, не должна самопересекаться.
IP2 - часть объекта b_spline_surface, входящая в топологическую область определения объекта manifold_surface_shape_representation, не должна самопересекаться.
IP3 - часть объекта offset_curve_3d, входящая в топологическую область определения объекта manifold_surface_shape_representation, не должна самопересекаться.
IP4 - часть объекта offset_surface, входящая в топологическую область определения объекта manifold_surface_shape_representation, не должна самопересекаться.
IP5 - если объект face имеет только одну связанную внешнюю границу, то соответствующий объект loop должен быть представлен как объект face_outer_bound. Если наружная граница не является связанной, то не допускается использование объекта face_outer_bound.
4.3 Определения функций схемы aic_manifold_surface
В данном разделе описаны функции, необходимые для формулирования ограничений для схемы aic_manifold_surface. Данные функции используются при конкретизации объекта manifold_surface_shape_representation.
4.3.1 Функция msf_curve_check
Функция nmsf_curve_check проверяет экземпляр объекта curve на допустимость в контексте manifold_surface_shape_representation. Также проверяются все геометрические объекты, на которые ссылается данный экземпляр объекта curve, такие как другие объекты curve и surface.
Пример - Одним из ограничений, проверяемых данной функцией, является проверка, установлен ли флаг самопересечения экземпляра объекта b_spline_curve на значение TRUE, FALSE или UNKNOWN; допустимыми являются только значения FALSE и UNKNOWN.
По необходимости проверяемый экземпляр исследуется рекурсивно. Это означает, что если объект curve ссылается на другой объект curve как на базовую или порождающую кривую, то вновь вызывается функция msf_curve_check. Если имеется ссылка на объект surface, то вызывается функция msf_surface_check. Рекурсивный процесс завершается на таких типах объектов, которые не ссылаются на какие-либо объекты curve или surface.
Следующие типы кривых и их подтипы относятся к области определения объекта manifold_surface_shape_representation и являются, таким образом, допустимыми входными аргументами данной функции:
- b_spline_curve;
- conic;
- curve_replica;
- line;
- offset_curve_3d;
- pcurve;
- polyline;
- surface_curve.
Четыре из указанных типов объекта curve ссылаются на базовые или порождающие объекты curve. В приведенном ниже списке указаны допустимые ссылки.
Примечание - Данная функция применяется рекурсивно к типам объектов, помеченных соответствующим образом в приведенных ниже списках, чтобы проверить их ссылки на допустимые реализации.
Объект parent_curve из curve_replica и объект basis_curve из offset_curve_3d должны быть одного из следующих типов:
- b_spline_curve;
- conic;
- curve_replica (рекурсивно);
- line;
- offset_curve_3d (рекурсивно);
- pcurve (рекурсивно);
- polyline;
- surface_curve (рекурсивно).
Один экземпляр в множестве элементов item из definitional_representation, на который ссылается объект p_curve через reference_to_curve, должен быть одного из следующих типов:
- b_spline_curve;
- conic;
- curve_replica (рекурсивно);
- line;
- polyline.
Объект curve_3d из surface_curve должен быть одного из следующих типов:
- b_spline_curve;
- conic;
- curve_replica (рекурсивно);
- line;
- offset_curve_3d (рекурсивно);
- polyline;
- surface_curve (рекурсивно).
Объекты pcurve и surface_curve ссылаются на объекты surface. Функция msf_surface_check вызывается для проверки допустимости этих объектов surface. Объект manifold_surface_shape_representation требует таких же ограничений на допустимые ссылки на объект surface для объектов pcurve и surface_curve, которые определены в ИСО 10303-42.
Допустимый объект polyline должен содержать, по крайней мере, три объекта cartesian_point.
Атрибут self_intersect для би-сплайновых и смещенных геометрических объектов должен иметь значение FALSE или UNKNOWN.
Данная функция возвращает значение TRUE, если типы всех ссылочных геометрических объектов принадлежат к области определения объекта manifold_surface_shape_representation, а также если все ограничения выполнены, в противном случае функция возвращает значение FALSE.
Примечание - Данная функция не проверяет правильность ссылок относительно требований, установленных в ИСО 10303-42. Проверяются только дополнительные требования, относящиеся к области определения объекта manifold_surface_shape_representation.
EXPRESS-спецификация:
*) | |||||||||||||||
FUNCTION msf_curve_check(cv: representation_item): BOOLEAN; | |||||||||||||||
(* | Данная функция проверяет допустимость кривой в контексте модели односвязной поверхности. Объекты representation_item являются допустимым входным аргументом данной функции, однако предполагается, что они являются объектами типа curve; в противном случае данная функция возвращает значение "FALSE. | ||||||||||||||
*) | |||||||||||||||
(* | сложные подтипы объекта curve, которые одновременно являются и объектом bounded_curve и одним из объектов conic, curve_replica, line или offset_curve_3d, являются недопустимыми | ||||||||||||||
*) | |||||||||||||||
IF | SIZEOF (['AIC_MANIFOLD_SURFACE.BOUNDED_CURVE', | ||||||||||||||
'AIC_MANIFOLD_SURFACE.CONIC', | |||||||||||||||
'AIC_MANIFOLD_SURFACE.CURVE_REPLICA','AIC_MANIFOLD_SURFACE.LINE', | |||||||||||||||
'AIC_MANIFOLD_SURFACE.OFFSET_CURVE_3D']*TYPEOF(cv))> 1 THEN | |||||||||||||||
RETURN(FALSE); | |||||||||||||||
END_IF; | |||||||||||||||
(* | объекты b_spline_curve не должны самопересекаться | ||||||||||||||
*) | |||||||||||||||
IF | (('AIC_MANIFOLD_SURFACE.B_SPLINE_CURVE' IN TYPEOF (cv)) AND | ||||||||||||||
(cv\b_spline_curve.self_intersect = FALSE)OR | |||||||||||||||
(cv\b_spline_curve.self_intersect = UNKNOWN)) THEN | |||||||||||||||
RETURN (TRUE); | |||||||||||||||
ELSE | |||||||||||||||
(* conic и line являются допустимыми типами объекта curve | |||||||||||||||
*) | |||||||||||||||
IF SIZEOF (['AIC_MANIFOLD_SURFACE.CONIC', 'AIC_MANIFOLD_SURFACE.LINE'] | |||||||||||||||
* TYPEOF (cv)) = 1 THEN | |||||||||||||||
RETURN(TRUE); | |||||||||||||||
ELSE | |||||||||||||||
(* объект curve_replica должен ссылаться на допустимый объект curve | |||||||||||||||
*) | |||||||||||||||
IF 'AIC_MANIFOLD_SURFACE.CURVE_REPLICA' IN TYPEOF (cv) THEN | |||||||||||||||
RETURN (msf_curve_check(cv\curve_replica.parent_curve)); | |||||||||||||||
ELSE | |||||||||||||||
(* объект offset_curve_3d не должен самопересекаться и должен ссылаться на допустимый объект curve; объект polyline не является допустимым типом объекта basis_curve | |||||||||||||||
*) | |||||||||||||||
IF (('AIC_MANIFOLD_SURFACE.OFFSET_CURVE_3D' IN TYPEOF (cv)) | |||||||||||||||
AND | |||||||||||||||
((cv\offset_curve_3d.self_intersect = FALSE) OR | |||||||||||||||
(cv\offset_curve_3d.self_intersect = UNKNOWN)) | |||||||||||||||
AND | |||||||||||||||
(NOT ('AIC_MANIFOLD_SURFACE.POLYLINE' IN TYPEOF | |||||||||||||||
(cv\offset_curve_3d.basis_curve))))THEN | |||||||||||||||
RETURN (msf_curve_check (cv\offset_curve_3d.basis_curve)); | |||||||||||||||
ELSE | |||||||||||||||
(* объект p_curve должен ссылаться на допустимые объекты curve и basis_surface | |||||||||||||||
*) | |||||||||||||||
IF 'AIC_MANIFOLD_SURFACE.PCURVE' IN TYPEOF (cv) THEN | |||||||||||||||
RETURN ((msf_curve_check | |||||||||||||||
(cv\pcurve.reference_to_curve\representation.items [1])) AND | |||||||||||||||
msf_surface_check(cv\pcurve.basis_surface))); | |||||||||||||||
ELSE | |||||||||||||||
(* объект surface_curve ссылается на объект curve_3d и на один или два объекта pcurve, или на один или два объекта surface, или на один из них; все ссылки должны быть допустимыми | |||||||||||||||
*) | |||||||||||||||
IF 'AIC_MANIFOLD_SURFACE.SURFACE_CURVE' IN TYPEOF (cv) THEN | |||||||||||||||
(* если ссылка на объект curve является правильной, | |||||||||||||||
то проверяются также остальные | |||||||||||||||
*) | |||||||||||||||
IF msf_curve_check(cv\surface_curve.curve_3d) THEN | |||||||||||||||
REPEAT i : = 1 TO SIZEOF | |||||||||||||||
(cv\surface_curve.associated_geometry); | |||||||||||||||
(* выполняется для одного или двух объектов associated_geometry: | |||||||||||||||
*) | |||||||||||||||
IF 'AIC_MANIFOLD_SURFACE.SURFACE' IN | |||||||||||||||
TYPEOF (cv\surface_curve.associated_geometry [i]) THEN | |||||||||||||||
IF NOT msf_surface_check | |||||||||||||||
(cv\surface_curve.associated_geometry [i]) THEN | |||||||||||||||
RETURN (FALSE); | |||||||||||||||
END_IF; | |||||||||||||||
ELSE | |||||||||||||||
IF 'AIC_MANIFOLD_SURFACE.PCURVE' IN TYPEOF | |||||||||||||||
(cv\surface_curve.associated_geometry [i]) THEN | |||||||||||||||
IF NOT msf_curve_check | |||||||||||||||
(cv\surface_curve.associated_geometry [i]) THEN | |||||||||||||||
RETURN (FALSE); | |||||||||||||||
END_IF; | |||||||||||||||
END_IF; | |||||||||||||||
END_IF; | |||||||||||||||
END_REPEAT; | |||||||||||||||
RETURN (TRUE); | |||||||||||||||
END_IF; | |||||||||||||||
ELSE | |||||||||||||||
(* объект polyline должен содержать, по крайней мере, три объекта point | |||||||||||||||
*) | |||||||||||||||
IF 'AIC_MANIFOLD_SURFACE.POLYLINE' IN TYPEOF (cv) THEN | |||||||||||||||
IF (SIZEOF (cv\polyline.points) > = 3) THEN RETURN (TRUE); | |||||||||||||||
END_IF; | |||||||||||||||
END_IF; | |||||||||||||||
END_IF; | |||||||||||||||
END_IF; | |||||||||||||||
END_IF; | |||||||||||||||
END_IF; | |||||||||||||||
END_IF; | |||||||||||||||
END_IF; | |||||||||||||||
(* значение FALSE возвращается, если аргумент cv не является допустимым объектом curve | |||||||||||||||
*) | |||||||||||||||
RETURN (FALSE); | |||||||||||||||
END_FUNCTION; | |||||||||||||||
(* |
Определения аргументов
cv (входной параметр) - объект representation_item, который по предположению является объектом curve, проверяемый на допустимость в контексте объекта manifold_surface_shape_representation.
BOOLEAN (выходной параметр) - имеет значение TRUE, если объект representation_item является допустимым объектом curve; в противном случае имеет значение FALSE.
4.3.2 Функция msf_surface_check
Функция msf_surface_check проверяет экземпляр объекта surface на допустимость в контексте объекта manifold_surface_shape_representation. Также проверяются все геометрические объекты, на которые ссылается данный экземпляр объекта surface, такие как другие объекты curve и surface.
Пример - Одним из ограничений, проверяемых данной функцией, является проверка, установлен ли флаг самопересечения экземпляра объекта b_spline_surface на значение TRUE, FALSE или UNKNOWN; допустимыми являются только значения FALSE и UNKNOWN.
При необходимости проверяемый экземпляр объекта исследуется рекурсивно. Это означает, что если объект surface ссылается на другой объект surface как на базовую или порождающую поверхность, то вновь вызывается функция msf_surface_check. Если имеется ссылка на объект curve, то вызывается функция msf_curve_check. Рекурсивный процесс завершается на таких типах объектов, которые не ссылаются на какие-либо объекты curve или surface.
Следующие типы поверхностей и их подтипы относятся к области определения объекта manifold_surface_shape_representation и являются, таким образом, допустимыми входными аргументами данной функции:
- b_spline_surface;
- elementary_surface;
- offset_surface;
- surface_replica;
- swept_surface.
Два из этих типов объекта surface ссылаются на базовые или порождающие объекты surface. Объект parent_surface из surface_replica и объект basis_surface из offset_surface должны быть одного из следующих типов:
- b_spline_surface;
- elementary_surface;
- offset_surface (рекурсивно);
- surface_replica (рекурсивно);
- swept_surface.
Примечание - Данная функция применяется рекурсивно к типам объектов, помеченных соответствующим образом в приведенном выше списке, чтобы проверить их ссылки на допустимые реализации.
Объекты swept_surface ссылается на объекты curve. Функция msf_curve_check вызывается для проверки допустимости этих объектов curve. Объект manifold_surface_shape_representation требует таких же ограничений на допустимые ссылки на изогнутые кривые, которые определены в ИСО 10303-42. Все объекты curve, относящиеся к области определения объекта manifold_surface_shape_representation, допустимы как объекты swept_surface.swept_curve.
Атрибут self_intersect для би-сплайновых и смещенных геометрических объектов должен иметь значение FALSE или UNKNOWN.
Данная функция возвращает значение TRUE, если типы всех ссылочных геометрических объектов принадлежат к области определения объекта manifold_surface_shape_representation и все ограничения выполнены, в противном случае функция возвращает значение FALSE.
Примечание - Данная функция не проверяет правильность ссылок с учетом требований ИСО 10303-42. Проверяются только дополнительные требования, которые предъявляются в области применения объекта manifold_surface_shape_representation.
EXPRESS-спецификация
*) | ||||||||||
FUNCTION msf_surface_check (surf: surface): BOOLEAN; | ||||||||||
(* Данная функция проверяет допустимость объекта surface в контексте модели односвязной поверхности. | ||||||||||
*) | ||||||||||
(* объекты elementary_surface являются допустимыми типами объекта surface | ||||||||||
*) | ||||||||||
IF 'AIC_MANIFOLD_SURFACE.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN | ||||||||||
RETURN (TRUE); | ||||||||||
ELSE | ||||||||||
(* объект swept_surface должен иметь допустимую изогнутую кривую | ||||||||||
*) | ||||||||||
IF 'AIC_MANIFOLD_SURFACE.SWEPT_SURFACE' IN TYPEOF (surf) THEN | ||||||||||
RETURN (msf_curve_check(surf\swept_surface.swept_curve)); | ||||||||||
ELSE | ||||||||||
(* объект offset_surface не должен самопересекаться и должен ссылаться на допустимый объект surface | ||||||||||
*) | ||||||||||
IF (("AIC_MANIFOLD_SURFACE.OFFSET_SURFACE" IN TYPEOF (surf)) AND | ||||||||||
(surf\offset_surface.self_intersect = FALSE) OR | ||||||||||
(surf\offset_surface.self_intersect = UNKNOWN)) THEN | ||||||||||
RETURN (msf_surface_check (surf\offset_surface.basis_surface)); | ||||||||||
ELSE | ||||||||||
(* объект surface_replica должен иметь допустимый порождающий объект surface | ||||||||||
*) | ||||||||||
IF 'AIC_MANIFOLD_SURFACE.SURFACE_REPLICA IN TYPEOF (surf) THEN | ||||||||||
RETURN (msf_surface_check (surf\surface_replica.parent_surface)); | ||||||||||
ELSE | ||||||||||
(* объект b_spline_surface не должен самопересекаться | ||||||||||
*) | ||||||||||
IF (('AIC_MANIFOLD_SURFACE.B_SPLINE_SURFACE' IN TYPEOF (surf)) AND | ||||||||||
(surf\b_spline_surface.self_intersect = FALSE) OR | ||||||||||
(surf\b_spline_surface.self_intersect = UNKNOWN)) THEN | ||||||||||
RETURN (TRUE); | ||||||||||
END_IF; | ||||||||||
END_IF; | ||||||||||
END_IF; | ||||||||||
END_IF; | ||||||||||
END_IF; | ||||||||||
RETURN (FALSE); | ||||||||||
END_FUNCTION; | ||||||||||
(* |
Определения аргументов
surf (входной параметр) - объект surface, который проверяется на допустимость в контексте объекта manifold_surface_shape_representation.
BOOLEAN (выходной параметр) - имеет значение TRUE, если объект surface является допустимым; в противном случае имеет значение FALSE.
*) | |
END_SCHEMA; - - aic_manifold_surface | |
(* |
Приложение А
(обязательное)
Сокращенное наименование объекта
Сокращенное наименование объекта, установленного в настоящем стандарте, приведено в таблице А.1. Требования к использованию сокращенных наименований объектов содержатся в методах реализации, описанных в соответствующих стандартах комплекса ИСО 10303.
Таблица А.1 - Сокращенное наименование объекта
Наименование объекта | Сокращенное наименование |
MANIFOLD_SURFACE_SHAPE_REPRESENTATION | MSSR |
Приложение В
(обязательное)
Регистрация информационного объекта
В.1 Обозначение документа
Для обеспечения однозначного обозначения информационного объекта в открытой системе настоящему стандарту присвоен следующий идентификатор объекта:
{iso standard 10303 part (509) version (1)}
Смысл данного обозначения установлен в ИСО/МЭК 8824-1 и описан в ИСО 10303-1.
В.2 Обозначение схемы
Для обеспечения однозначного обозначения в открытой информационной системе схеме aic_manifold_surface (см. раздел 4) присвоен следующий идентификатор объекта:
{ iso standard 10303 part (509) version (1) object (1) aic-manifold-surface (1)}
Смысл данного обозначения установлен в ИСО/МЭК 8824-1 и описан в ИСО 10303-1.
Приложение С
(справочное)
EXPRESS-G диаграммы
Диаграммы, приведенные на рисунках С.1 и С.2, получены из сокращенного листинга ПЭМ на языке EXPRESS, определенного в разделе 4. В диаграммах использована графическая нотация EXPRESS-G языка EXPRESS. Описание EXPRESS-G установлено в ИСО 10303-11, приложение D.
Примечания
1 Приведенные ниже выбранные типы импортируются в расширенный листинг ПИК в соответствии с правилами неявных интерфейсов по ИСО 10303-11. В настоящем стандарте эти выбранные типы в других объектах не используются:
- curve_on_surface;
- founded_item_select;
- geometric_set_select;
- measure_value;
- reversible_topology;
- reversible_topology_item;
- surface_model;
- transformation;
- trimming_select;
- vector_or_direction.
2 Приведенные ниже выбранные типы импортируются в расширенный листинг ПИК в соответствии с правилами неявных интерфейсов по ИСО 10303-11. В настоящем стандарте эти выбранные типы в других объектах не используются и не предназначены для независимой реализации:
- composite_curve;
- composite_curve_on_surface;
- composite_curve_segment;
- oriented_face;
- oriented_open_shell.
Рисунок С.1 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 1 из 22)
Рисунок С.2 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 2 из 22)
Рисунок С.3 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 3 из 22)
Рисунок С.4 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 4 из 22)
Рисунок С.5 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 5 из 22)
Рисунок С.6 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 6 из 22)
Рисунок С.7 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 7 из 22)
Рисунок С.8 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 8 из 22)
Рисунок С.9 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 9 из 22)
Рисунок С.10 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 10 из 22)
Рисунок С.11 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 11 из 22)
Рисунок С.12 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 12 из 22)
Рисунок С.13 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 13 из 22)
Рисунок С.14 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 14 из 22)
Рисунок С. 15 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 15 из 22)
Рисунок С.16 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 16 из 22)
Рисунок С.17 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 17 из 22)
Рисунок С.18 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 18 из 22)
Рисунок С.19 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 19 из 22)
Рисунок С.20 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 20 из 22)
Рисунок С.21 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 21 из 22)
Рисунок С.22 - ПИК manifold_surface_shape_representation в формате EXPRESS-G (диаграмма 22 из 22)
Приложение D
(справочное)
Машинно-интерпретируемые листинги
В данном приложении приведены ссылки на сайты, на которых находятся листинги наименований объектов на языке EXPRESS и соответствующих сокращенных наименований, установленных в настоящем стандарте. На этих же сайтах находятся листинги всех EXPRESS-схем, установленных или на которые даются ссылки в настоящем стандарте, без комментариев и другого поясняющего текста. Эти листинги доступны в машинно-интерпретируемой форме и могут быть получены по следующим адресам URL:
сокращенные наименования: http://www.mel.nist.gov/div826/subject/apde/snr/
EXPRESS: http://www.mel.nist.gov/step/parts/part509/IS/
При невозможности доступа к этим сайтам необходимо обратиться в центральный секретариат ИСО или непосредственно в секретариат ИСО ТК184/ПК4 по адресу электронной почты: sc4sec@cme.nist.gov.
Примечание - Информация, представленная в машинно-интерпретированном виде по указанным выше адресам URL, является справочной. Обязательным является текст настоящего стандарта.
Приложение ДА
(справочное)
Сведения о соответствии ссылочных международных стандартов ссылочным национальным стандартам Российской Федерации
Таблица ДА.1
Обозначение ссылочного международного стандарта | Степень соответствия | Обозначение и наименование соответствующего национального стандарта |
ИСО/МЭК 8824-1:1998 | IDT | ГОСТ Р ИСО/МЭК 8824-1-2001 Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 1. Спецификация основной нотации |
ИСО 10303-1:1994 | IDT | ГОСТ Р ИСО 10303-1-99 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 1. Общие представления и основополагающие принципы |
ИСО 10303-11:1994 | IDT | ГОСТ Р ИСО 10303-11-2000* Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS |
________________ * На территории Российской Федерации документ не действует. Действует ГОСТ Р ИСО 10303-11-2009. - . | ||
ИСО 10303-41:1994 | IDT | ГОСТ Р ИСО 10303-41-99 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 41. Интегрированные обобщенные ресурсы. Основы описания и поддержки изделий |
ИСО 10303-42:1994 | - | * |
ИСО 10303-43:1994 | IDT | ГОСТ Р ИСО 10303-43-2002 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 43. Интегрированные обобщенные ресурсы. Структуры представлений |
ИСО 10303-202:1996** | - | * |
________________ ** Доступ к международному документу, можно получить, перейдя по ссылке. - . | ||
ИСО 10303-511:2001 | IDT | ГОСТ Р ИСО 10303-511-2006 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 511. Прикладные интерпретированные конструкции. Топологически ограниченная поверхность |
* Соответствующий национальный стандарт отсутствует. До его утверждения рекомендуется использовать перевод на русский язык данного международного стандарта. Перевод данного международного стандарта находится в Федеральном информационном фонде технических регламентов и стандартов. Примечание - В настоящей таблице использовано следующее условное обозначение степени соответствия стандартов: - IDТ - идентичные стандарты. |
Библиография
[1] ISО 10303-514:1999 | Industrial automation systems and integration - Product data representation and exchange - Part 514: Application interpreted construct: Advanced boundary representation |
Электронный текст документа
и сверен по:
, 2010