B_SPLINE_CURVE (2, (#20, #30, #40, #50, #60, #70, #80, #90, #100, #110, #120, #130, #140), .UNSPECIFIED.,
.F., .F.)
B_SPLINE_CURVE_WITH_KNOTS ((3, 2, 2, 2, 2, 2, 3), (0., 0.166666666666667, 0.333333333333333, 0.5,
0.666666666666667, 0.833333333333333, 1.), .UNSPECIFIED.)
CURVE ()
GEOMETRIC_REPRESENTATION_ITEM ()
RATIONAL_B_SPLINE_CURVE ((1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.))
REPRESENTATION_ITEM ('') );
...
#16520 = LENGTH_MEASURE_WITH_UNIT (LENGTH_MEASURE (2.54), #16540);
#16530 = DIMENSIONAL_EXPONENTS (1., 0., 0., 0., 0., 0., 0.);
#16540 = (LENGTH_UNIT ()
NAMED_UNIT (*)
SI_UNIT (.CENTI., .METRE.) );
ENDSEC;
END-ISO-10303-21;
В этом примере экземпляры объектов #10 и #16540 являются составными (complex), т.е. это объекты тех типов, для которых определен сложный вид отношений подтип/супертип. Экземпляры таких объектов представлены в обменном файле как набор экземпляров входящих подтипов. Набор экземпляров имеет единый идентификатор.
Экземпляр объекта #16520 имеет первый атрибут выбираемого (select) типа. Приведем определение объекта
length_measure_with_unit:
ENTITY measure_with_unit
SUPERTYPE OF (ONEOF ( length_measure_with_unit,
mass_measure_with_unit,
time_measure_with_unit,
electric_current_measure_with_unit,
thermodynamic_temperature_measure_with_unit,
amount_of_substance_measure_with_unit,
luminous_intensity_measure_with_unit,
plane_angle_measure_with_unit,
solid_angle_measure_with_unit,
area_measure_with_unit,
volume_measure_with_unit,
ratio_measure_with_unit ));
value_component : measure_value;
unit_component : unit;
WHERE
WR1: valid_units (SELF);
END_ENTITY;
ENTITY length_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
WR1: 'MEASURE_SCHEMA.LENGTH_UNIT' IN TYPEOF
(SELF\measure_with_unit.unit_component);
END_ENTITY;
TYPE measure_value = SELECT
(length_measure,
mass_measure,
time_measure,
electric_current_measure,
thermodynamic_temperature_measure,
amount_of_substance_measure,
luminous_intensity_measure,
plane_angle_measure,
solid_angle_measure,
area_measure,
volume_measure,
ratio_measure,
parameter_value,
numeric_measure,
context_dependent_measure,
descriptive_measure,
positive_length_measure,
positive_plane_angle_measure,
positive_ratio_measure,
count_measure);
END_TYPE;
TYPE length_measure = REAL;
END_TYPE;
TYPE mass_measure = REAL;
END_TYPE;
TYPE time_measure = REAL;
END_TYPE;
... и т.д. ...
Из приведенного фрагмента определения видно, что атрибут value_component может иметь значения различных типов, причем тип значения никак не может быть определен на основе того, как значение представлено в обменном файле. Поэтому тип конкретного значения (length_measure) указан явно. А вот если бы выбор был возможен из числа экземпляров объектов, явного указания типа не потребовалось, так как тип может быть определен по описанию указанного экземпляра объекта.
#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(#1600,.T.);
ENDSCOPE
ED_LOOP((#2000,#2100,#2200));
В этом примере показано, каким образом может быть отображена в обменном файле структура модели (о предоставляемых стандартом средствах структурирования модели см. ниже). Все те экземпляры объектов, которые заключены между кодами &SCOPE
и ENDSCOPE входят в область видимости (SCOPE) того экземпляра объекта, которому принадлежит область видимости (в данном примере владельцем области видимости является экземпляр объекта с идентификатором #400 типа ED_LOOP). Область видимости имеет свою систему идентификации экземпляров объектов.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.