Главная // Актуальные документы // ГОСТ Р (Государственный стандарт)СПРАВКА
Источник публикации
М.: Стандартинформ, 2010
Примечание к документу
Документ
введен в действие с 01.07.2010.
Название документа
"ГОСТ Р ИСО 10303-508-2009. Национальный стандарт Российской Федерации. Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 508. Прикладные интерпретированные конструкции. Многосвязные поверхности"
(утв. и введен в действие Приказом Ростехрегулирования от 14.09.2009 N 362-ст)
"ГОСТ Р ИСО 10303-508-2009. Национальный стандарт Российской Федерации. Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 508. Прикладные интерпретированные конструкции. Многосвязные поверхности"
(утв. и введен в действие Приказом Ростехрегулирования от 14.09.2009 N 362-ст)
Утвержден и введен в действие
агентства по техническому
регулированию и метрологии
от 14 сентября 2009 г. N 362-ст
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
СИСТЕМЫ АВТОМАТИЗАЦИИ ПРОИЗВОДСТВА И ИХ ИНТЕГРАЦИЯ
ПРЕДСТАВЛЕНИЕ ДАННЫХ ОБ ИЗДЕЛИИ И ОБМЕН ЭТИМИ ДАННЫМИ
ЧАСТЬ 508
ПРИКЛАДНЫЕ ИНТЕРПРЕТИРОВАННЫЕ КОНСТРУКЦИИ.
МНОГОСВЯЗНЫЕ ПОВЕРХНОСТИ
Industrial automation systems and integration. Product data
representation and exchange. Part 508. Application
interpreted construct. Non-manifold surface
ИСО 10303-508:2001
Industrial automation systems and integration - Product data
representation and exchange - Part 508: Application
interpreted construct: Non-manifold surface
(IDT)
ГОСТ Р ИСО 10303-508-2009
Дата введения
1 июля 2010 года
Цели и принципы стандартизации в Российской Федерации установлены Федеральным
законом от 27 декабря 2002 г. N 184-ФЗ "О техническом регулировании", а правила применения национальных стандартов Российской Федерации -
ГОСТ Р 1.0-2004 "Стандартизация в Российской Федерации. Основные положения"
1 ПОДГОТОВЛЕН на основе собственного перевода на русский язык стандарта, указанного в
пункте 4, который выполнен Государственным научным учреждением "Центральный научно-исследовательский и опытно-конструкторский институт робототехники и технической кибернетики"
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 459 "Информационная поддержка жизненного цикла изделий"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ
Приказом Федерального агентства по техническому регулированию и метрологии от 14 сентября 2009 г. N 362-ст
4 Настоящий стандарт идентичен международному стандарту ИСО 10303-508:1999 "Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 508. Прикладные интерпретированные конструкции. Многосвязные поверхности" (ISO 10303-508:2001 "Industrial automation systems and integration - Product data representation and exchange - Part 508: Non-manifold surface").
При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты Российской Федерации, сведения о которых приведены в дополнительном
приложении ДА
5 ВВЕДЕН ВПЕРВЫЕ
Информация об изменениях к настоящему стандарту публикуется в ежегодно издаваемом информационном указателе "Национальные стандарты", а текст изменений и поправок - в ежемесячно издаваемых информационных указателях "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет
Стандарты комплекса ИСО 10303 распространяются на компьютерное представление информации об изделиях и обмен данными об изделиях. Их целью является обеспечение нейтрального механизма, способного описывать изделия на всем протяжении их жизненного цикла. Этот механизм применим не только для обмена файлами в нейтральном формате, но является также основой для реализации и совместного доступа к базам данных об изделиях и организации архивирования.
Стандарты комплекса ИСО 10303 представляют собой набор отдельно издаваемых стандартов (частей). Стандарты данного комплекса относятся к одной из следующих тематических групп: "Методы описания", "Методы реализации", "Методология и основы аттестационного тестирования", "Интегрированные обобщенные ресурсы", "Интегрированные прикладные ресурсы", "Прикладные протоколы", "Комплекты абстрактных тестов", "Прикладные интерпретированные конструкции" и "Прикладные модули". Настоящий стандарт входит в группу "Прикладные интерпретированные конструкции".
Прикладная интерпретированная конструкция (ПИК) обеспечивает логическую группировку интерпретированных конструкций, поддерживающих конкретную функциональность для использования данных об изделии в разнообразных прикладных контекстах. Интерпретированная конструкция представляет собой обычную интерпретацию интегрированных ресурсов, поддерживающую требования совместного использования информации прикладными протоколами.
Настоящий стандарт определяет прикладную интерпретированную конструкцию для представления геометрических форм посредством моделей многосвязных поверхностей. В нем используются геометрические и топологические средства для определения многосвязных объектов, состоящих из элементарных и рельефных кривых и поверхностей.
Настоящий стандарт определяет интерпретацию интегрированных ресурсов, обеспечивающую соответствие требованиям к представлению геометрических форм посредством моделей многосвязных поверхностей.
Требования настоящего стандарта распространяются на:
- трехмерные точки;
- точки, определенные в параметрическом пространстве кривых или поверхностей;
- трехмерные кривые;
- кривые, определенные в параметрическом пространстве поверхностей.
Примечание - Такие кривые называются также параметризованными кривыми (pcurve) и кривыми на поверхности (cons);
- элементарные кривые: линию, окружность, эллипс, параболу, гиперболу;
- кривые пересечений;
- полилинии, состоящие, по крайней мере, из трех точек;
- поверхности;
- элементарные поверхности: плоскость, цилиндр, конус, тор, сферу;
- криволинейные поверхности, полученные вращением или линейной экструзией кривой;
- рельефные кривые и поверхности;
- обрезание кривых и поверхностей с использованием топологических объектов;
- композицию кривых и поверхностей с использованием топологических объектов;
- копирование кривых, поверхностей и моделей поверхностей;
- трехмерные смещения кривых и поверхностей;
- многосвязные объекты.
Требования настоящего стандарта не распространяются на:
- неограниченную геометрию;
- самопересекающуюся геометрию;
- геометрию в двумерном пространстве декартовых координат;
- копирование точек;
- топологию без привязки к соответствующей геометрической области.
В настоящем стандарте использованы ссылки на следующие международные стандарты:
ИСО/МЭК 8824-1:1998
<*> Информационные технологии. Взаимосвязь открытых систем. Абстрактная синтаксическая нотация версии 1 (ASN.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:1994, 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.1 Термины, определенные в ИСО 10303-1
В настоящем стандарте применены следующие термины:
- комплект абстрактных тестов; КАТ (abstract test suite; ATS);
- приложение (application);
- прикладной контекст (application context);
- прикладной протокол; ПП (application protocol; AP);
- данные (data);
- обмен данными (data exchange);
- обобщенный ресурс (generic resource);
- метод реализации (implementation method);
- информация (information);
- интегрированный ресурс (integrated resource);
- интерпретация (interpretation);
- модель (model);
- изделие (product);
- данные об изделии (product data);
- структура (structure).
3.2 Термины, определенные в ИСО 10303-42
В настоящем стандарте применены следующие термины:
- граница (boundary);
- твердотельная модель граничного представления (boundary representation solid model);
- соединенный (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);
- изогнутая поверхность (swept surface).
3.5 Другие термины и определения
В настоящем стандарте применены также следующие термины с соответствующими определениями:
3.5.1 двусвязная форма (2-manifold): Форма, в любой точке на границе которой можно создать достаточно маленькую сферу так, чтобы внутренняя часть этой сферы делилась данной границей точно на две части. Как правило, границу образуют ребра и грани.
Примечание - Данное определение исключает самопересечение поверхностей, взаимные пересечения поверхностей, не проходящие вдоль ребер, и ребра, образованные тремя или более гранями.
3.5.2 многосвязная форма (non-manifold): Модель поверхности, для определения границ и связности которой используются топологические конструкции, содержащая, по крайней мере, два объекта connected_face_set, имеющих общую грань (объект face), либо более двух объектов face, имеющих общее ребро (объект edge).
4 Сокращенный листинг на языке EXPRESS
В настоящем разделе определена EXPRESS-схема, в которой используются элементы интегрированных ресурсов и содержатся типы, конкретизации объектов и функции, относящиеся к настоящему стандарту.
Примечание - В интегрированных ресурсах допускается существование подтипов и элементов списков выбора, не импортированных в данную ПИК. Такие конструкции исключают из дерева подтипов или из списка выбора посредством правил неявного интерфейса, определенных в ИСО 10303-11. Ссылки на исключенные конструкции находятся вне области применения данной ПИК. В некоторых случаях исключаются все элементы списка выбора. Поскольку ПИК предназначены для реализации в контексте прикладного протокола, элементы списка выбора будут определяться областью применения прикладного протокола.
Данная прикладная интерпретированная конструкция представляет непротиворечивое множество геометрических и топологических объектов для определения представлений многосвязных поверхностей, состоящих из элементарных или рельефных кривых и поверхностей. Объектом самого верхнего уровня в настоящем стандарте является non_manifold_surface_shape_representation. Данный объект ограничен. Ограничение геометрической формы осуществляется посредством топологических объектов, таких как vertex, edge и face.
Топологические объекты не должны существовать вне связи с соответствующей геометрической областью.
Примечание - В настоящем стандарте используются все объекты и типы из ИСО 10303-511.
EXPRESS-спецификация:
*)
SCHEMA aic_non_manifold_surface;
USE FROM aic_topologically_bounded_surface; -- ISO 10303-511
USE FROM geometric_model_schema( -- ISO 10303-42
face_based_surface_model);
USE FROM geometry_schema ( -- ISO 10303-42
b_spline_curve,
b_spline_surface,
bounded_p_curve,
bounded_surface_curve,
cartesian_transformation_operator_3d,
curve,
curve_replica,
degenerate_p_curve,
evaluated_degenerate_p_curve,
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_face);
(*
Примечание - Схемы, ссылки на которые даны выше, можно найти в следующих стандартах комплекса ИСО 10303:
aic_topologically_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 Основные понятия и допущения
Для независимой реализации в схемах прикладных протоколов, в которых используется данная ПИК, предназначен объект non_manifold_surface_shape_representation.
4.2 Определение объекта non_manifold_surface_shape_representation схемы aic_non_manifold_surface
Объект non_manifold_surface_representation описывает форму или части формы объекта product посредством многосвязных объектов с ограничениями.
Примечания
1 Многосвязные объекты топологически менее ограничены, чем односвязные. Например, на эти объекты не налагается следующее ограничение: только две грани (объекты face) могут иметь общее ребро (объект edge). Поэтому они не всегда подходят для построения твердотельных моделей. Однако они часто встречаются в приложениях, поддерживающих метод анализа конечных элементов.
2 Объект non_manifold_surface_representation может содержать модель односвязной поверхности, но не наоборот.
3 Объект product в настоящем стандарте не рассматривается.
Объект non_manifold_surface_shape_representation является подтипом объекта shape_representation, определенного в ИСО 10303-41, который состоит из одного или нескольких объектов face_based_surface_model. Каждый объект face_based_surface_model построен из объектов connected_face_set, которые в контексте требований настоящего стандарта могут быть реализованы как объекты connected_face_set или как один из его подтипов - open_shell или closed_shel. Объекты connected_face_set состоят из объектов face, в которых используются объекты edge и vertex. Последние три типа объектов должны ссылаться на геометрические объекты, такие как point, curve и surface. Связь между топологией и геометрией может быть установлена посредством объекта face_surface либо объекта advanced_face в соответствии с ИСО 10303-511. Эти варианты отличаются выбором допустимых подтипов объектов point, curve и surface, а также ограничениями на ссылки на их базовые геометрические объекты.
Примечание - Представление объектов face_surface как объектов advanced_face рекомендуется для моделей многосвязных поверхностей, предназначенных для применения совместно с твердотельными моделями граничного представления. Интеграция такой модели многосвязной поверхности, например, в модель расширенного граничного представления, определенную в ИСО 10303-514, будет проще.
Все геометрические объекты должны быть определены как трехмерные, за исключением объектов двухмерной геометрии, используемых для определения объектов pcurve. Использование одномерных объектов cartesian_point не допускается.
Неограниченные геометрические объекты должны быть обрезаны посредством топологических конструкций.
Элементы item объекта non_manifold_surface_shape_representation также могут быть объектами типа mapped_item, определенными в ИСО 10303-43, или axis2_placement_3d. Они используются для объединения одного или нескольких объектов non_manifold_surface_shape_representation в один новый объект non_manifold_surface_shape_representation.
Правила WHERE в данном объекте ограничивают использование типов данных для объектов, импортированных из ИСО 10303-42 и ИСО 10303-43 в соответствии с приведенными выше утверждениями. Некоторые проверки типа объектов и ограничений определены в следующих двух функциях:
- nmsf_curve_check;
- nmsf_surface_check.
В
формальных утверждениях WR5,
WR6 и
WR10, приведенных ниже, эти функции проверяют объекты
curve и
surface всех объектов
edge и
face, входящих в область определения объекта
non_manifold_surface_shape_representation, за исключением тех, которые содержатся в дереве ссылок объекта
advanced_face; геометрия объекта
advanced_face проверяется отдельным набором правил. Функции автоматически оценивают все базовые геометрические объекты, для чего они вызываются рекурсивно.
Пример - Объект pcurve может ссылаться как на объект curve, так и на объект surface. Функция nmsf_curve_check проверяет не только объект pcurve, но также его базовые геометрические объекты. Поэтому данная функция будет вызывать не только себя, но и функцию nmsf_surface_check.
Примечания
1 В настоящий стандарт не включена функция для проверки объектов point и их базовых объектов curve и surface. Это объясняется тем, что на все объекты curve и surface из non_manifold_surface_shape_representation ссылаются объекты edge и face, поэтому их проверка осуществляется двумя уже существующими функциями.
2 Прикладной протокол, использующий настоящий стандарт, должен явным образом разрешить возможность реализации объекта shape_representation как объекта non_manifold_surface_shape_representation.
EXPRESS-спецификация:
*)
ENTITY non_manifold_surface_shape_representation
SUBTYPE OF (shape_representation); WHERE
WR1: SIZEOF (QUERY (it <* SELF.items |
NOT (SIZEOF (['AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL',
'AIC_NON_MANIFOLD_SURFACE.MAPPED_ITEM',
'AIC_NON_MANIFOLD_SURFACE.AXIS2_PLACEMENT_3D'] *TYPEOF (it)) = 1)))
= 0;
WR2: SIZEOF (QUERY (it <* SELF.items |
SIZEOF (['AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL',
AIC_NON_MANIFOLD_SURFACE.MAPPED_ITEM'] *TYPEOF (it)) = 1)) > 0;
WR3: SIZEOF (QUERY (mi <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.MAPPED_ITEM' IN TYPEOF (it)) |
NOT (('AIC_NON_MANIFOLD_SURFACE. '+
'NON_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_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL'
IN TYPEOF (mr_it)))) > 0)))) = 0;
WR4: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it))|
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (SIZEOF (['AIC_NON_MANIFOLD_SURFACE.FACE_SURFACE',
'AIC_NON_MANIFOLD_SURFACE.ORIENTED_FACE'] * TYPEOF (fa)) =1)))
= 0))) = 0))) = 0;
WR5: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (f_sf <* QUERY (fa <* cfs.cfs_faces |
('AIC_NON_MANIFOLD_SURFACE.FACE_SURFACE' IN TYPEOF (fa))) |
NOT (('AIC_NON_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (f_sf))
OR
(nmsf_surface_check(f_sf\face_surface.face_geometry))))) = 0)))
= 0))) = 0;
WR6: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it))|
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (o_fa <* QUERY (fa <* cfs.cfs_faces |
('AIC_NON_MANIFOLD_SURFACE.ORIENTED_FACE' IN TYPEOF (fa))) |
NOT (('AIC_NON_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF
(o_fa\oriented_face.face_element))
OR
(nmsf_surface_check
(o_fa\oriented_face.face_element\face_surface.face_geometry)))))
= 0))) = 0))) = 0;
WR7: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it))|
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AIC_NON_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (bnds <* fa.bounds |
NOT (SIZEOF (['AIC_NON_MANIFOLD_SURFACE.EDGE_LOOP',
'IC_NON_MANIFOLD_SURFACE.VERTEX_LOOP']
* TYPEOF (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0;
WR8: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items|
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it))|
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT(('AIC_NON_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AIC_NON_MANIFOLD_SURFACE.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
NOT('AIC_NON_MANIFOLD_SURFACE.EDGE_CURVE' IN TYPEOF
(oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0;
WR9: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT(('AIC_NON_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AIC_NON_MANIFOLD_SURFACE.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <*
elp_fbnds\path.edge_list |
'AIC_NON_MANIFOLD_SURFACE.EDGE_CURVE' IN TYPEOF (oe.edge_element)) |
NOT (SIZEOF (['AIC_NON_MANIFOLD_SURFACE.B_SPLINE_CURVE',
'AIC_NON_MANIFOLD_SURFACE.CONIC',
'AIC_NON_MANIFOLD_SURFACE.CURVE_REPLICA',
'AIC_NON_MANIFOLD_SURFACE.LINE',
'AIC_NON_MANIFOLD_SURFACE.OFFSET_CURVE_3D',
'AIC_NON_MANIFOLD_SURFACE.PCURVE',
'AIC_NON_MANIFOLD_SURFACE.POLYLINE',
'AIC_NON_MANIFOLD_SURFACE.SURFACE_CURVE']*
TYPEOF (oe_cv.edge_element\edge_curve.edge_geometry))
= 1))) = 0))) = 0)))) = 0))) = 0))) = 0;
WR10: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AIC_NON_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AIC_NON_MANIFOLD_SURFACE.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
NOT (nmsf_curve_check(oe.edge_element\edge_curve.edge_geometry))))
= 0))) = 0)))) = 0))) = 0))) = 0;
WR11: SIZEOF (QUERY(fbsm <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AIC_NON_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AIC_NON_MANIFOLD_SURFACE.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
NOT (('AIC_NON_MANIFOLD_SURFACE.VERTEX_POINT' IN TYPEOF
(oe.edge_element.edge_start))
AND
('AIC_NON_MANIFOLD_SURFACE.VERTEX_POINT' IN
TYPEOF (oe.edge_element.edge_end)))))
= 0))) = 0)))) = 0))) = 0))) = 0;
WR12: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AIC_NON_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
'AIC_NON_MANIFOLD_SURFACE.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
NOT ((SIZEOF (['AIC_NON_MANIFOLD_SURFACE.CARTESIAN_POINT',
'AIC_NON_MANIFOLD_SURFACE.DEGENERATE_PCURVE',
'AIC_NON_MANIFOLD_SURFACE.POINT_ON_CURVE',
'AIC_NON_MANIFOLD_SURFACE.POINT_ON_SURFACE'] * TYPEOF
(oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1)
AND
(SIZEOF (['AIC_NON_MANIFOLD_SURFACE.CARTESIAN_POINT',
'AIC_NON_MANIFOLD_SURFACE.DEGENERATE_PCURVE',
'AIC_NON_MANIFOLD_SURFACE.POINT_ON_CURVE',
'AIC_NON_MANIFOLD_SURFACE.POINT_ON_SURFACE'] * TYPEOF
(oe.edge_element.edge_end\vertex_point.vertex_geometry)) = 1
)))) = 0))) = 0)))) = 0))) = 0))) = 0;
WR13: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AIC_NON_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds |
'AIC_NON_MANIFOLD_SURFACE.VERTEX_LOOP' IN TYPEOF (bnds.bound)) |
NOT ('AIC_NON_MANIFOLD_SURFACE.VERTEX_POINT' IN TYPEOF
(vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0)))
= 0))) = 0;
WR14: SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
'AIC_NON_MANIFOLD_SURFACE.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
NOT (SIZEOF (QUERY (cfs <*
fbsm\face_based_surface_model.fbsm_faces |
NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
NOT (('AIC_NON_MANIFOLD_SURFACE.ADVANCED_FACE' IN TYPEOF (fa))
OR
(SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds |
'AIC_NON_MANIFOLD_SURFACE.VERTEX_LOOP' IN TYPEOF (bnds.bound)) |
NOT (SIZEOF (['AIC_NON_MANIFOLD_SURFACE.CARTESIAN_POINT',
'AIC_NON_MANIFOLD_SURFACE.DEGENERATE_PCURVE',
'AIC_NON_MANIFOLD_SURFACE.POINT_ON_CURVE',
'AIC_NON_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 в
non_manifold_surface_shape_representation должны быть объектами
face_based_surface_model, mapped_item или
axis2_placement_3d.
Примечание - Объект
axis2_placement_3d является допустимым объектом
mapped_item.mapping_target. Чтобы добавить другой объект
presentation в список элементов
item объекта
non_manifold_surface_shape_representation (см.
WR3 относительно допустимых объектов
mapped_item), объект
mapped_item.mapping_source.mapping_origin может быть любым объектом, который геометрически определен в
geometric_representation_context объекта
mapped_representation. Если данный объект является объектом
axis2_placement_3d, то оператор, отображающий объект
mapped_representation в объект
non_manifold_surface_shape_representation, соответствует матрице преобразования, в которой разрешены только поступательные перемещения и вращения. Если объект
cartesian_transformation_operator_3d используется в качестве объекта
mapping_origin, то допускаются масштабирование и зеркалирование.
WR2 - по крайней мере, один из элементов
item объекта
non_manifold_surface_shape_representation должен быть либо объектом
face_based_surface_model, либо объектом
mapped_item.
WR3 - если объект
non_manifold_surface_shape_representation содержит объект
mapped_item, то объект
mapped_representation из
mapping_source должен быть объектом
non_manifold_surface_shape_representation. Такой объект
shape_representation должен содержать, по крайней мере, один объект
face_based_surface_model.
WR4 - объект
face должен быть реализован как объект
face_surface, его подтип
advanced_face либо как объект
oriented_face.
WR5 - все базовые геометрические объекты, на которые ссылаются объекты
surface посредством объекта
face_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 проверяется функцией nmsf_surface_check на соответствие данным ограничениям.
WR6 - все базовые геометрические объекты, на которые имеются ссылки через объект
oriented_face.
face_element, должны присутствовать в дереве ссылок объекта
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 проверяется функцией nmsf_surface_check на соответствие данным ограничениям.
WR7 - объект
bound из
face_bound, на который ссылается объект
face, на который, в свою очередь, имеются ссылки непосредственно от объекта
connected_face_set либо через объект
oriented_face, должен присутствовать в дереве ссылок объекта
advanced_face либо быть объектом
edge_loop или
vertex_loop.
WR8 - геометрические объекты ограничивающего объекта
edge, то есть объекты
edge_element из
oriented_edge, на который ссылается объект
face, на который, в свою очередь, имеются ссылки непосредственно от объекта
connected_face_set либо через объект
oriented_face, должны присутствовать в дереве ссылок объекта
advanced_face либо быть объектом
edge_curve.
WR9 - объект
curve, используемый для определения геометрии объекта
edge, который является объектом
edge_geometry из
edge_curve объекта
edge, на который ссылается объект
face, на который, в свою очередь, имеются ссылки непосредственно от объекта
connected_face_set либо через объект
oriented_face, должен быть объектом
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, b_spline_curve или curve_replica.
Объект curve_3d из surface_curve должен быть объектом line, conic, offset_curve_3d, b_spline_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 проверяется функцией nmsf_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, входящая в топологическую область определения объекта non_manifold_surface_shape_representation, не должна самопересекаться.
IP2 - часть объекта b_spline_surface, входящая в топологическую область определения объекта non_manifold_surface_shape_representation, не должна самопересекаться.
IP3 - часть объекта offset_curve_3d, входящая в топологическую область определения объекта non_manifold_surface_shape_representation, не должна самопересекаться.
IP4 - часть объекта offset_surface, входящая в топологическую область определения объекта non_manifold_surface_shape_representation, не должна самопересекаться.
IP5 - если объект face имеет только одну связанную внешнюю границу, то соответствующий объект loop должен быть представлен как объект face_outer_bound. Если наружная граница не является связанной, то не допускается использование объекта face_outer_bound.
4.3 Определение функций схемы aic_non_manifold_surface
В данном разделе описаны функции, необходимые для формулировки ограничений для схемы aic_non_manifold_surface. Данные функции используются при конкретизации объекта non_manifold_surface_shape_representation.
4.3.1 Функция nmsf_curve_check
Функция nmsf_curve_check проверяет экземпляр объекта curve на допустимость в контексте non_manifold_surface_shape_representation. Также проверяются все геометрические объекты, на которые ссылается данный экземпляр объекта curve, такие как другие объекты curve и surface.
Пример - Одним из ограничений, проверяемых данной функцией, является проверка, установлен ли флаг самопересечения экземпляра объекта b_spline_curve на значение TRUE, FALSE или UNKNOWN; допустимыми являются только значения FALSE и UNKNOWN.
При необходимости проверяемый экземпляр исследуется рекурсивно. Это означает, что если объект curve ссылается на другой объект curve как на базовую или порождающую кривую, то вновь вызывается функция nmsf_curve_check. Если имеется ссылка на объект surface, то вызывается функция nmsf_surface_check. Рекурсивный процесс завершается на таких типах объектов, которые не ссылаются на какие-либо объекты curve или surface.
Следующие типы кривых и их подтипы относятся к области определения объекта non_manifold_surface_shape_representation и являются, таким образом, допустимыми входными аргументами данной функции:
- b_spline_curve;
- conic;
- curve_replica;
- line;
- offset_curve_3d;
- pcurve;
- polyline;
- surface_curve.
Четыре из указанных типов объекта curve ссылаются на базовые или порождающие объекты curve. В приведенном ниже списке указаны допустимые ссылки.
Примечание - Данная функция применяется рекурсивно к типам объектов, помеченных соответствующим образом в приведенных ниже списках, чтобы проверить их ссылки на допустимые реализации.
Объект parent_curve из curve_replica должен быть одного из следующих типов:
- b_spline_curve;
- conic;
- curve_replica (рекурсивно);
- line;
- offset_curve_3d (рекурсивно);
- pcurve (рекурсивно);
- polyline;
- surface_curve (рекурсивно).
Объект basis_curve из offset_curve_3d должен быть одного из следующих типов:
- b_spline_curve;
- conic;
- curve_replica (рекурсивно);
- line;
- offset_curve_3d (рекурсивно);
- pcurve (рекурсивно);
- 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. Функция nmsf_surface_check вызывается для проверки допустимости этих объектов surface. Объект non_manifold_surface_shape_representation требует таких же ограничений на допустимые ссылки на объект surface для объектов pcurve и surface_curve, которые определены в ИСО 10303-42.
Допустимый объект polyline должен содержать, по крайней мере, три объекта cartesian_point.
Атрибут self_intersect для би-сплайновых и смещенных геометрических объектов должен иметь значение FALSE или UNKNOWN.
Данная функция возвращает значение TRUE, если типы всех ссылочных геометрических объектов принадлежат к области определения объекта non_manifold_surface_shape_representation и если все ограничения выполнены, в противном случае функция возвращает значение FALSE.
Примечание - Данная функция не проверяет правильность ссылок относительно требований, установленных в ИСО 10303-42. Проверяются только дополнительные требования, относящиеся к области определения объекта non_manifold_surface_shape_representation.
EXPRESS-спецификация:
*)
FUNCTION nmsf_curve_check (cv : representation_item) : BOOLEAN;
(* Данная функция проверяет допустимость кривой в контексте модели
многосвязной поверхности. Объекты representation_item являются
допустимым входным аргументом, однако предполагается, что они являются
объектами типа curve; в противном случае, данная функция возвращает
значение FALSE.
*)
(* сложные подтипы объекта curve, которые одновременно являются и объектом
bounded_curve и одним из объектов conic, curve_replica, line или
offset_curve_3d, являются недопустимыми
*)
IF SIZEOF (['AIC_NON_MANIFOLD_SURFACE.BOUNDED_CURVE',
' AIC_NON_MANIFOLD_SURFACE.CONIC',
' AIC_NON_MANIFOLD_SURFACE.CURVE_REPLICA',
' AIC_NON_MANIFOLD_SURFACE.LINE',
' AIC_NON_MANIFOLD_SURFACE.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1
THEN RETURN(FALSE);
ELSE
(* объекты b_spline_curve не должны самопересекаться
*)
IF (('AIC_NON_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_NON_MANIFOLD_SURFACE.CONIC',
'AIC_NON_MANIFOLD_SURFACE.LINE'] * TYPEOF (cv)) = 1 THEN
RETURN (TRUE);
ELSE
(* объект curve_replica должен ссылаться на допустимый объект curve
*)
IF'AIC_NON_MANIFOLD_SURFACE.CURVE_REPLICA' IN TYPEOF(cv) THEN
RETURN (nmsf_curve_check(cv\curve_replica.parent_curve));
ELSE
(* объект offset_curve_3d не должен самопересекаться и должен ссылаться
на допустимые объекты curve; объект polyline не является допустимым
объектом basis_curve
*)
IF (('AIC_NON_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_NON_MANIFOLD_SURFACE.POLYLINE' IN TYPEOF
(cv\offset_curve_3d.basis_curve)))) THEN
RETURN (nmsf_curve_check(cv\offset_curve_3d.basis_curve));
ELSE
(* объект pcurve должен ссылаться на допустимые объекты curve и basis_surface
*)
IF 'AIC_NON_MANIFOLD_SURFACE.PCURVE' IN TYPEOF(cv) THEN
RETURN ((nmsf_curve_check
(cv\pcurve.reference_to_curve\representation.items[1]))
AND
(nmsf_surface_check(cv\pcurve.basis_surface)));
ELSE
(* объект surface_curve ссылается на объект curve_3d и на один или два
объекта pcurve, или на один или два объекта surface, или на один из
них; все ссылки должны быть допустимыми
*)
IF 'AIC_NON_MANIFOLD_SURFACE.SURFACE_CURVE' IN TYPEOF(cv) THEN
(* если ссылка на объект curve правильна, то проверяются также
остальные
*)
IF nmsf_curve_check(cv\surface_curve.curve_3d) THEN
REPEAT i := 1 TO SIZEOF
(cv\surface_curve.associated_geometry);
(* выполняется для одного или двух объектов
associated_geometry:
*)
IF 'AIC_NON_MANIFOLD_SURFACE.SURFACE' IN
TYPEOF (cv\surface_curve.associated_geometry[i]) THEN
IF NOT nmsf_surface_check
(cv\surface_curve.associated_geometry[i]) THEN
RETURN(FALSE);
END_IF;
ELSE
IF 'AIC_NON_MANIFOLD_SURFACE.PCURVE' IN TYPEOF
(cv\surface_curve.associated_geometry[i]) THEN
IF NOT nmsf_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_NON_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;
END_IF;
(* значение FALSE возвращается, если аргумент cv не является допустимым объектом curve.
*)
RETURN (FALSE);
END_FUNCTION;
(*
Определения аргументов
cv (входной параметр) - объект representation_item, который, по предположению, является объектом curve, проверяемый на допустимость в контексте объекта non_manifold_surface_shape_representation.
BOOLEAN (выходной параметр) - имеет значение TRUE, если объект representation_item является допустимым объектом curve; в противном случае имеет значение FALSE.
4.3.2 Функция nmsf_surface_check
Функция nmsf_surface_check проверяет экземпляр объекта surface на допустимость в контексте объекта non-manifold_surface_shape_representation. Также проверяются все геометрические объекты, на которые ссылается данный экземпляр объекта surface, например, другие объекты curve и surface.
Пример - Одним из ограничений, проверяемых данной функцией, является проверка, установлен ли флаг самопересечения экземпляра объекта b_spline_surface на значение TRUE, FALSE или UNKNOWN; допустимыми являются только значения FALSE и UNKNOWN.
При необходимости проверяемый экземпляр исследуется рекурсивно. Это означает, что если объект surface ссылается на другой объект surface как на базовую или порождающую поверхность, то вновь вызывается функция nmsf_surface_check. Если имеется ссылка на объект curve, то вызывается функция nmsf_curve_check. Рекурсивный процесс завершается на таких типах объектов, которые не ссылаются на какие-либо объекты curve или surface.
Следующие типы поверхностей и их подтипы относятся к области определения объекта non_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. Функция nmsf_curve_check вызывается для проверки допустимости этих объектов curve. Объект non_manifold_surface_shape_representation требует таких же ограничений на допустимые ссылки на изогнутые кривые, которые определены в ИСО 10303-42. Все объекты curve, относящиеся к области определения объекта non_manifold_surface_shape_representation, допустимы как объекты swept_surface.swept_curve.
Атрибут self_intersect для би-сплайновых и смещенных геометрических объектов должен иметь значение FALSE или UNKNOWN.
Данная функция возвращает значение TRUE, если типы всех ссылочных геометрических объектов принадлежат к области определения объекта non_manifold_surface_shape_representation и если все ограничения выполнены, в противном случае функция возвращает значение FALSE.
Примечание - Данная функция не проверяет правильность ссылок относительно требований, установленных в ИСО 10303-42. Проверяются только дополнительные требования, относящиеся к области определения объекта non_manifold_surface_shape_representation.
EXPRESS-спецификация:
*)
FUNCTION nmsf_surface_check (surf : surface) : BOOLEAN;
(* Данная функция проверяет допустимость объекта surface в контексте
модели многосвязной поверхности.
*)
(* объекты elementary_surface являются допустимыми типами объекта surface
*)
IF 'AIC_NON_MANIFOLD_SURFACE.ELEMENTARY_SURFACE' IN TYPEOF (surf) THEN
RETURN(TRUE);
ELSE
(* объект swept_surface должен иметь допустимую изогнутую кривую
*)
IF 'AIC_NON_MANIFOLD_SURFACE.SWEPT_SURFACE' IN TYPEOF (surf) THEN
RETURN (nmsf_curve_check(surf\swept_surface.swept_curve));
ELSE
(* объект offset_surface не должен самопересекаться и должен ссылаться
на допустимый объект surface
*)
IF (('AIC_NON_MANIFOLD_SURFACE.OFFSET_SURFACE' IN TYPEOF (surf)) AND
(surf\offset_surface.self_intersect = FALSE) OR
(surf\offset_surface.self_intersect = UNKNOWN)) THEN
RETURN (nmsf_surface_check(surf\offset_surface.basis_surface));
ELSE
(* объект surface_replica должен иметь допустимый порождающий объект surface
*)
IF 'AIC_NON_MANIFOLD_SURFACE.SURFACE_REPLICA' IN TYPEOF (surf) THEN
RETURN(nmsf_surface_check(surf\surface_replica.parent_surface));
ELSE
(* объект b_spline_surface не должен самопересекаться
*)
IF (('AIC_NON_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, который проверяется на допустимость в контексте объекта non_manifold_surface_shape_representation.
BOOLEAN (выходной параметр) имеет значение TRUE, если объект surface является допустимым; в противном случае имеет значение FALSE.
*)
END_SCHEMA; --aic_non_manifold_surface
(*
(обязательное)
СОКРАЩЕННОЕ НАИМЕНОВАНИЕ ОБЪЕКТА
Сокращенное наименование объекта, установленного в настоящем стандарте, приведено в
таблице A.1. Требования к использованию сокращенных наименований объектов содержатся в стандартах тематической группы "Методы реализации" комплекса ИСО 10303.
Таблица A.1
Сокращенное наименование объекта
Наименование объекта | Сокращенное наименование |
NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION | NMSSR |
(обязательное)
РЕГИСТРАЦИЯ ИНФОРМАЦИОННОГО ОБЪЕКТА
B.1 Обозначение документа
Для обеспечения однозначного обозначения информационного объекта в открытой системе настоящему стандарту присвоен следующий идентификатор объекта:
{ iso standard 10303 part(508) version(1) }
Смысл данного обозначения установлен в ИСО/МЭК 8824-1 и описан в ИСО 10303-1.
B.2 Обозначение схемы
Для обеспечения однозначного обозначения в открытой информационной системе схеме
aic_non_manifold_surface (см.
раздел 4) присвоен следующий идентификатор объекта:
{ iso standard 10303 part(508) version (1) object (1) aic-non-manifold-surface(1) }
Смысл данного обозначения установлен в ИСО/МЭК 8824-1 и описан в ИСО 10303-1.
(справочное)
EXPRESS-G ДИАГРАММЫ
EXPRESS-G диаграммы, представленные на
рисунках C.1 -
C.22, получены из сокращенного листинга, представленного в
разделе 4, с использованием спецификаций интерфейса стандарта ИСО 10303-11. В диаграммах использована графическая нотация 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;
- shell;
- surface_model;
- transformation;
- trimming_select;
- vector_or_direction.
2 Приведенные ниже выбранные типы импортируются в расширенный листинг ПИК в соответствии с правилами неявных интерфейсов по ИСО 10303-11. В настоящем стандарте эти выбранные типы в других объектах не используются и не предназначены для независимой реализации:
- composite_curve;
- composite_curve_on_surface;
- composite_curve_segment;
- oriented_closed_shell;
- oriented_open_shell.
Рисунок C.1 - ПИК
non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 1 из 22)
Рисунок C.2 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 2 из 22)
Рисунок C.3 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 3 из 22)
Рисунок C.4 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 4 из 22)
Рисунок C.5 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 5 из 22)
Рисунок C.6 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 6 из 22)
Рисунок C.7 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 7 из 22)
Рисунок C.8 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 8 из 22)
Рисунок C.9 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 9 из 22)
Рисунок C.10 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 10 из 22)
Рисунок C.11 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 11 из 22)
Рисунок C.12 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 12 из 22)
Рисунок C.13 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 13 из 22)
Рисунок C.14 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 14 из 22)
Рисунок C.15 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 15 из 22)
Рисунок C.16 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 16 из 22)
Рисунок C.17 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 17 из 22)
Рисунок C.18 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 18 из 22)
Рисунок C.19 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (19 из 22)
Рисунок C.20 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 20 из 22)
Рисунок C.21 - ПИК non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 21 из 22)
Рисунок C.22 - ПИК
non_manifold_surface_shape_representation
в формате EXPRESS-G (диаграмма 22 из 22)
(справочное)
МАШИННО-ИНТЕРПРЕТИРУЕМЫЕ ЛИСТИНГИ
В данном приложении приведены ссылки на сайты, на которых находятся листинги наименований объектов на языке EXPRESS и соответствующих сокращенных наименований, установленных или на которые даются ссылки в настоящем стандарте. На этих же сайтах находятся листинги всех EXPRESS-схем, установленных в настоящем стандарте, без комментариев и другого поясняющего текста. Эти листинги доступны в машинно-интерпретируемой форме и могут быть получены по следующим адресам URL:
сокращенные наименования: http://www.mel.nist.gov/div826/subject/apde/snr/
EXPRESS: http://www.mel.nist.gov/step/parts/part508/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-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. Прикладные интерпретированные конструкции. Топологически ограниченная поверхность |
<*> Соответствующий национальный стандарт отсутствует. До его утверждения рекомендуется использовать перевод на русский язык данного международного стандарта. Перевод данного международного стандарта находится в Федеральном информационном фонде технических регламентов и стандартов. Примечание - В настоящей таблице использовано следующее условное обозначение степени соответствия стандартов: - IDT - идентичные стандарты. |
УДК 656.072:681.3:006.354 | | | |
Ключевые слова: автоматизация производства, средства автоматизации, интеграция систем автоматизации, промышленные изделия, представление данных, обмен данными, прикладные интерпретированные конструкции, многосвязные поверхности |