ГОСТ Р ИСО 10303-59—2012
7.5.4 Функция validate_accuracy_typos
Функция validate_accuracy_types проверяет допустимость типов точности, связанных с экземпля
ром объекта shape_data_quality_criterion. Функция выполняется следующим образом:
1) собрать типы атрибутов range объектов shape_measuremont_accuracy. на которые ссылается
объект shape_data_quality_critorion_and_accuracy_association. ссылающийся на объект shape_data_
quality_criterion. заданный в качестве входного параметра настоящей функции;
2) проверить, точно ли соответствуют собранные типы именам типов изсписха типов,данного в каче
стве входного параметра настоящей функции;
3) собрать типы атрибутов range объектов shape_moasuroment_accuracy, на которые ссылается
объект shapo_inspection_result_accuracy_association. ссылающийся на объект shape_data_quality_
inspoction_result. связанный с объектом shape_data_quality_criterion.
П р и м е ч а н и е — Если список типов пуст и существует связанный с объектом shape_data_quality_criterion
объект shape_measurement_accuracy, то функция возвращает значение ’FALSE’.
EXPRESS-спеаиФикация:
•)
FUNCTION validate_accuracy_types
(ei:shape_data_quality_criterion;
typeJst;BAG OF STRING):LOGICAL:
LOCAL
sdqca; BAG OF
SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION;=[];
sma: BAG OF SHAPE_MEASUREMENT_ACCURACY:=[];
sdqir; SET OF
SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[];
scraa: BAG OF
SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION;=n;
t logic:BOOLEAN;
ENDJ.OCAL;
--STEP—1
- - collect types of range attribute of shape_measurement_accuracy
- - referred from shape_data_criterion_and_accuracy_assoaation
- - that refers to given shape_data_quality_criterion.
sdqca := USEDIN(ei,
’SHAPE_DATA_QUALITY_CRITERIA_SCHEMA>
■SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION>
‘SHAPE_DATA_QUALITY_CRITERION’);
IF(SIZEOF(sdqca) <> 0) THEN
REPEAT «:=1 TO SIZEOF(sdqca);
sma ;= sma + sdqca[i].required_specific_accuracy;
END REPEAT;
--STEP—2
- - check whether the collected types include all the type names
- - in the type list given as an input argument of this function
- - and they do not include any other type names.
IF(SIZEOF(type_list) < SIZEOF(sma)) THEN
RETURN(FALSE);
ENDJF;
REPEAT i;= 1 TO SIZEOF(sma);
tjog ic ;= FALSE;
REPEAT j;= 1 TO SIZEOF(typeJist);
IF(type_list[j] IN value_limit_type(sma[i).range))THEN
t_logic7=TRUE;
ESCAPE:
ENDJF;
143