Пример полной структуры обмена
Печатное представление структур обмена.
SCHEMA, CONSTANT, RULE и коментариев.
Отображение элемента EXPRESS для
Кодирование имен типов объектов.
Отображение инверсных (INVERSE) атрибутов.
Локальные правила объекта.
Локальные правила объекта являются правила WRITE и правила UNIQUE, которые не должны отображаться в структуру обмена.
Пример.
ENTITY widget;
a:REAL;
b:REAL;
c:REAL;
WRITE
a**2+b**2+c**2=3.0;
END_ENTITY;
В секции данных.
#2 = WIDGET(1.0,1.0,2.0);
Атрибуты, описанные в разделе INVERSE, не должны отображаться в структуру обмена.
Если документ, определяющий схему, экземпляры которой являются предметом секции данных, определяет также и набор сокращенных имен для каждого типа данных объекта в схеме, то эти сокращенные имена должны быть использованы при кодировании имен типов данных объекта. В другом случае имена типов данных объекта при кодировании будут сами имена типов данных объекта. В обоих случаях все строчные буквы должны быть преобразованы в прописные буквы, т.е. код не должен содержать никаких строчных букв.
Все эти объекты не должны отображаться в структуру обмена. Имя SCHEMA должно отображать в заголовочной секции, как определено в 3.2.3 в виде file_schema.
Для управления печатью структуры обмена используются комбинации графических символов
\N\ - новая строка
\F\ - перевод страницы.
Ниже представлена EXPRESS схема таблица сокращений имен и структура обмена.
Пример схемы
SCHEMA example_geometry;
TYPE length_measure=NUMBER;
End_TYPE;
ENTITY gejmetry;
SUPERTYPE OF (ONEOF(point));
END_ENTITY;
ENTITY point;
SUPERTYPE OF (ONEOF(cartesian_point));
SUBTYPEOF(geometry);
END_ENTITY;
ENTITY cartesian_point;
SUBTYPE OF(point);
x_coordinate:length_measure;
y_coordinate:length_measure;
z_coordinate:length_measure;
END_ENTITY;
TYPE edge_of_logical = SELECT(edge,EDGE_LOGICAL_STRUCTURE);
END_TYPE;
ENTITY topology;
SUPERTYPE OF (ONEOF(vertex,edge,loop));
END_ENTITY;
ENTITY vertex;
SUBTYPE OF(topology);
vertex_point:OPTINAL point;
END_ENTITY;
ENTITY edge;
SUBTYPE OF(topology);
edge_start:vertex;
edge_end:vertex;
END_ENTITY;
ENTITY edge_logical_structure;
edge_element:edge;
flag:BOOLEAN;
END_ENTITY;
ENTITY loop;
SUPERTYPE OF(ONEOF(edge_loop));
SUBTYPE OF(topology);
END_ENTITY;
ENTITY edge_loop;
SUBTYPE OF(loop);
loop_edges:LIST[1,?] OF edge_or_logical;
END_ENTITY;
Пример сокращенных имен вышеприведенной схемы:
Cartesian_point – crt, vertex – vx, edge – ed, edge_logical_structure – ed_strc, edge_loop – ed_loop.
Пример структуры обмена.
Ниже приведен пример полной структуры обмена.
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((‘THIS FILE CONTAINTS A SMALL SAMPLE STEP MODEL’),’2;1);
FILE_NAME(‘EXAMPLE STEP FILE #1);
‘1992-02-11T15:30-00’;
(‘JOHN DOF
‘ASME INC’,
‘METROPOLIS USA’)
(‘ASME INC. A SUBSIDIARY OF GIANT INDUSTRIES’,’METROPOLIS USA’),
‘CIM/STEP VERSION2’,
‘SUPER CIM SYSTEM RELEASE 4.0’,
‘APPROVED BY JOE BLOGGS’);
FILE_SCHEMA((‘EXAMPLE GEOMETRY’));
ENDSEC;
DATA;
/*
СЛЕДУЮЩИЕ 13 ОБЪЕКТОВ ПРЕДСТАВЛЯЮТ КОНТУР СТОРОН ТРЕУГОЛЬНИКА
*/
#1=CPT(0.0,0.0,0.0); /*ЭТОТ ОБЪЕКТ “ДЕКАРТОВА ТОЧКА”*/
#2=CPT(0.0,1.0,0.0);
#3=CPT(1.0,0.0,0.0);
#11=VX(#1); /*ЭТОТ ОБЪЕКТ ТИПА “ВЕРШИНА”*/
#12=VX(#2);
#13=VX(#3);
#16=ED(#11,#12); /*ЭТОТ ОБЪЕКТ ТИПА “СТОРОНА”*/
#17=ED(#11,#13);
#18=ED(#13,#12);
#21=ED_STRC(#17,.F.); /*ЭТОТ ОБЪЕКТ ТИПА “ЛОГИЧЕСКАЯ СТРУКТУРА СТОРОНЫ”/*
#22=ED_STRC(#18,.F.);
#23=ED_STRC(#19,.F.);
#24=ED_LOOP((#21,#22,#23)); /*ЭТОТ ОБЪЕКТ ТИПА КОНТУР СТОРОН”*/
/*ДАЛЕЕ СЛЕДУЕТ ДРУГОЙ СПОСОБ ПРЕДСТАВЛЕНИЯ ТОРОН ТРЕУГОЛЬНИКА*/
#100=CPT(0.0,0.0,0.0); /*ЭТОТ ОБЪЕКТ “ДЕКАРТОВА ТОЧКА”*/
#200=CPT(0.0,1.0,0.0);
#300=CPT(1.0,0.0,0.0);
#1100=VX(#100); /*ЭТОТ ОБЪЕКТ ТИПА “ВЕРШИНА”*/
#1200=VX(#200);
#1300=VX(#300);
#1600=ED(#1100,#1200); /*ЭТОТ ОБЪЕКТ ТИПА “СТОРОНА”*/
#1700=ED(#1100,#1300);
#1800=ED(#1300,#1200);
#400=&SCOPE
#2000=ED_STRC(#1700,.F.); /*ЭТОТ ОБЪЕКТ ТИПА
“ЛОГИЧЕСКАЯ СТРУКТУРА СТОРОНЫ”/*
#2100=ED_STRC(#1800,.F.);
#2200=ED_STRC(#1900,.F.);
END_SCOPE;
ED_LOOP((#2000,#2100,#2200));
/*ВОЗМОЖНЫ И ДРУГИЕ ФОРМЫ ПРЕДСТАВЛЕНИЯ ДАННЫХ*/
ENDSEC
END-ISO10303-21;