*) |
ENTITY erroneous_b_spline_curve_definition |
SUBTYPE OF(erroneous_geometry); |
SELF\shape_data_quality_criterion.assessment_specification : |
shape_data_quality_assessment_by_logical_test; |
WHERE |
WR1 : validate_measured_data_type(SELF, |
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.BOOLEAN_VALUE'); |
WR2 : validate_inspected_elements_type(SELF, |
['GEOMETRY_SCHEMA.B_SPLINE_CURVE_WITH_KNOTS']); |
WR3 : validate_locations_of_extreme_value_type(SELF, |
[]); |
WR4 : validate_accuracy_types(SELF, |
[]); |
END_ENTITY; |
(* |
Определение атрибута
SELF\shape_data_quality_criterion.assessment_specification - объектshape_data_quality_assessment_by_logical_test, проверяющий, возвращает ли функцияconstraints_param_b_spline, определение которой дано в ИСО 10303-42, значение 'FALSE' (ложь) или не возвращает.
Формальные положения
WR1: Атрибут representative_measured_value объектаshape_data_quality_inspection_criterion_report, атрибут measured_value объектаshape_data_quality_inspection_instance_report_item и атрибуты measured_value всех объектов extreme_instance, на которые ссылается объектinstance_report_item_with_extreme_instances, во всех экземплярах, связанных с настоящим объектом, должны иметь значение типа boolean_value (булево значение).
WR2: Все объекты, играющие роль атрибута inspected_elements во всех экземплярах объекта shape_data_quality_inspection_instance_report_item, связанных с настоящим объектом, должны быть объектами типа b_spline_curve_with_knots.
WR3: Объект shape_data_quality_inspection_instance_report_item, соответствующий настоящему объекту, не должен быть объектом типаinstance_report_item_with_extreme_instances, поскольку указание в отчете о проверке выходящих за пределы значений не имеет смысла.
WR4: Настоящий объект не должен быть связан посредством объектовshape_data_quality_criterion_and_accuracy_association ни с какими элементами данных, задающими точность. Объект shape_data_quality_inspection_result, соответствующий настоящему объекту, также не должен быть связан посредством объектаshape_inspection_result_accuracy_association с какими-либо элементами данных, задающими точность.
7.4.21 Объект erroneous_b_spline_surface_definition
Объект erroneous_b_spline_surface_definition (ошибочное определение b-сплайновой поверхности) представляет утверждение, что для b-сплайновой поверхности, представленной объектом b_spline_surface_with_knots, имеется несогласованное соотношение между степенью кривой, числом значений узлов, кратностью узлов и числом управляющих точек. Эти значения проверяет определенная в ИСО 10303-42 функция constraints_param_b_spline. При оценке настоящего объекта должно проверяться, возвращает ли функцияconstraints_param_b_spline, определение которой дано в ИСО 10303-42, пункт 4.6.22, значение 'FALSE' (ложь) или не возвращает.
Примечание - Настоящий критерий соответствует нарушению правила WR1 или WR2 объекта b_spline_surface_with_knots, определение которого дано в ИСО 10303-42.
EXPRESS-спецификация:
*) |
ENTITY erroneous_b_spline_surface_definition |
SUBTYPE OF(erroneous_geometry); |
SELF\shape_data_quality_criterion.assessment_specification : |
shape_data_quality_assessment_by_logical_test; |
WHERE |
WR1 : validate_measured_data_type(SELF, |
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.BOOLEAN_VALUE'); |
WR2 : validate_inspected_elements_type(SELF, |
['GEOMETRY_SCHEMA.B_SPLINE_SURFACE_WITH_KNOTS']); |
WR3: validate_locations_of_extreme_value_type(SELF, |
[]); |
WR4 : validate_accuracy_types(SELF, |
[]); |
END_ENTITY; |
(* |
Определение атрибута
SELF\shape_data_quality_criterion.assessment_specification - объектshape_data_quality_assessment_by_logical_test, проверяющий, возвращает ли функцияconstraints_param_b_spline, определение которой дано в ИСО 10303-42, значение 'FALSE' (ложь) или не возвращает.
Формальные положения
WR1: Атрибут representative_measured_value объектаshape_data_quality_inspection_criterion_report, атрибут measured_value объектаshape_data_quality_inspection_instance_report_item и атрибуты measured_value всех объектов extreme_instance, на которые ссылается объектinstance_report_item_with_extreme_instances, во всех экземплярах, связанных с настоящим объектом, должны иметь значение типа boolean_value (булево значение).
WR2: Все объекты, играющие роль атрибута inspected_elements во всех экземплярах объекта shape_data_quality_inspection_instance_report_item, связанных с настоящим объектом, должны быть объектами типа b_spline_surface_with_knots.
WR3: Объект shape_data_quality_inspection_instance_report_item, соответствующий настоящему объекту, не должен быть объектом типаinstance_report_item_with_extreme_instances, поскольку указание в отчете о проверке выходящих за пределы значений не имеет смысла.
WR4: Настоящий объект не должен быть связан посредством объектовshape_data_quality_criterion_and_accuracy_association ни с какими элементами данных, задающими точность. Соответствующий настоящему объекту объектshape_data_quality_inspection_result также не должен быть связан посредством объектаshape_inspection_result_accuracy_association с какими-либо элементами данных, задающими точность.
7.4.22 Объект inconsistent_curve_transition_code
Объект inconsistent_curve_transition_code представляет утверждение, что в составной кривой, представленной объектом composite_curve, коды перехода между сегментами, представленными объектами composite_curve_segment, не согласованы с базовыми геометрическими объектами. Требование к измерению, соответствующее настоящему объекту, устанавливает, что для каждого входящего в представленную объектом composite_curveсоставную кривую сегмента составной кривой, представленного объектомcomposite_curve_segment, должно быть проверено, соответствует ли вычисленная геометрическая непрерывность между конечной точкой данного сегмента и начальной точкой следующего сегмента коду перехода в пределах заданного допуска. Если составная кривая, представленная объектом composite_curve, является замкнутой, то настоящий объект требует также проверки непрерывности между конечной точкой последнего сегмента и начальной точкой первого сегмента на соответствие коду перехода последнего сегмента.
_______________
"Геометрическая непрерывность нулевого порядка, обозначаемая - это то же самое, что непрерывность нулевого порядка по параметру. Следовательно, два последовательных участка кривой должны иметь одинаковые координаты в граничной точке.Геометрическая непрерывность первого порядка, или , означает, что первые производные по параметрам пропорциональны в точке пересечения двух последовательных участков. Если обозначить параметрическое положение на кривой как , то при непрерывности в последовательные участки кривой в их общей точке будут иметь равное направление касательного вектора , но не обязательно его модуль. Геометрическая непрерывность второго порядка, или непрерывность в , означает, что первая и вторая параметрические производные двух участков кривой пропорциональны на их границе. При непрерывности кривизны обоих участков кривой будут равными в точке соединения." Херн Д., Бейкер М.П. Компьютерная графика и стандарт OpenGL. Пер. с англ.; 3-е издание. - М.: Издательский дом "Вильямc", 2005. ISBN 5-8459-0772-1 (рус), с.599.
Если код перехода равен cont_same_gradient (непрерывный градиент), то угол между касательными векторами, один из которых строится в конце текущего сегмента, а другой строится в начале следующего сегмента, должен сравниваться со значением атрибутаangle_tolerance (угловой допуск).
Если код перехода имеет значение cont_same_gradient_same_curvature (непрерывный равный градиент и равная кривизна), то требуется также проверка направления главной нормали. Если код перехода имеет значение cont_same_gradient_same_curvature, то также требуется проверка двух значений кривизны, одного в конце текущего сегмента и второго - в начале следующего сегмента. Для проверки непрерывности радиуса кривизны предположим, что и - это значения радиусов кривизны. Тогда степень изменения радиуса кривизны определяется как . Если значение степени изменения больше, чем значение атрибута curvature_ratio_tolerance (допуск отношения кривизн), то непрерывности кривизны нет. Если код перехода не имеет значения discontinuous (разрыв), то расстояние между конечной точкой текущего сегмента и начальной точкой следующего сегмента должно сравниваться со значением атрибута distance_tolerance (допуск расстояния).
Геометрические объекты, имеющие непрерывность более высокую, чем та, которая задана кодом перехода, не должны обнаруживаться с помощью настоящего критерия, за исключением случаев, когда начальная точка первого сегмента и конечная точка последнего сегмента совпадают, хотя код перехода последнего сегмента задает наличие разрыва.
EXPRESS-спецификация:
*) |
ENTITY inconsistent_curve_transition_code |
SUBTYPE OF(erroneous_geometry); |
SELF\shape_data_quality_criterion.assessment_specification : |
shape_data_quality_assessment_by_logical_test; |
angle_tolerance : plane_angle_measure; |
curvature_ratio_tolerance : ratio_measure; |
distance_tolerance : length_measure; |
flat_curvature_radius_tolerance : length_measure; |
WHERE |
WR1 : validate_measured_data_type(SELF, |
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.BOOLEAN_VALUE'); |
WR2 : validate_inspected_elements_type (SELF, |
['GEOMETRY_SCHEMA.COMPOSITE_CURVE']); |
WR3 : validate_locations_of_extreme_value_type(SELF, |
['SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+ |
'COMPOSITE_CURVE_TRANSITION_LOCATOR']); |
WR4 : validate_accuracy_types(SELF, |
[]); |
END_ENTITY; |
(* |
Определения атрибутов
SELF\shape_data_quality_criterion.assessment_specification - объектshape_data_quality_assessment_by_logical_test, проверяющий существование несоответствия между кодами перехода и непрерывностью базовых геометрических объектов;
angle_tolerance - допуск, используемый при проверке параллельности направлений двух векторов;
curvature_ratio_tolerance - допуск, используемый при проверке равенства двух значений кривизны;
distance_tolerance - допуск, используемый при проверке совпадения двух точек;
flat_curvature_radius_tolerance - значение допуска для проверки плоскостности формы.
Примечание - Если значение радиуса кривизны больше, чем значение атрибута (допуск плоского радиуса кривизны), то значение кривизны не должно использоваться для проверки степени изменения кривизны. Если два радиуса кривизны больше этого значения, то следует понимать, что два сегмента непрерывны по . Если один из радиусов кривизны больше этого значения, а другой - меньше, то следует понимать, что между сегментами существует разрыв .
Формальные положения
WR1: Атрибут representative_measured_value объектаshape_data_quality_inspection_criterion_report, атрибут measured_value объектаshape_data_quality_inspection_instance_report_item и атрибуты measured_value всех объектов extreme_instance, на которые ссылается объектinstance_report_item_with_extreme_instances, во всех экземплярах, связанных с настоящим объектом, должны иметь значение типа boolean_value (булево значение).
WR2: Все объекты, играющие роль атрибута inspected_elements во всех экземплярах объекта shape_data_quality_inspection_instance_report_item, связанных с настоящим объектом, должны быть объектами типа composite_curve.
WR3: Во всех объектах instance_report_item_with_extreme_instances, связанных с настоящим объектом, во всех объектах типа extreme_instance, на которые ссылается объектinstance_report item_with_extreme_instances, объекты, на которые ссылается атрибутlocations_of_extreme_value, должны быть объектами типаcomposite_curve_transition_locator. Это значит, что код перехода обозначенного сегмента неверен относительно базовых геометрических объектов этого и последующего сегментов. Если обозначенный сегмент является последним сегментом составной кривой, представленной объектом composite_curve, то код перехода будет неверным по отношению к базовым геометрическим объектам последнего и первого сегментов.
WR4: Настоящий объект не должен быть связан посредством объектовshape_data_quality_criterion_and_accuracy_association ни с какими элементами данных, задающими точность. Объект shape_data_quality_inspection_result, соответствующий настоящему объекту, также не должен быть связан посредством объектаshape_inspection_result_accuracy_association с какими-либо элементами данных, задающими точность.
7.4.23 Объект inconsistent_surface_transition_code
Объект inconsistent_surface_transition_code представляет утверждение, что в составной прямоугольной поверхности, представленной объектом rectangular_composite_surface, коды перехода между лоскутами, представленными объектами surface_patch, не согласованы с их базовыми геометрическими объектами. Согласно требованию к измерению, соответствующему настоящему объекту, необходимо, чтобы для каждого входящего в представленную объектомrectangular_composite_surface составную прямоугольную поверхность лоскута поверхности, представленного объектом surface_patch, было проверено, соответствует ли вычисленная геометрическая непрерывность между конечной точкой данного сегмента и начальной точкой следующего сегмента коду перехода в пределах заданного допуска. Эта проверка должна выполняться как в направлении параметра , так и в направлении параметра . Если проверяемый лоскут поверхности, представленный объектом surface_patch, является последним лоскутом в направлении параметра , то требуется только проверка в направлении параметра , но если прямоугольная составная поверхность, представленная объектомrectangular_composite_surface, является замкнутой в направлении параметра , то требуется проверка и со смежным первым лоскутом в направлении параметра . Если проверяемый лоскут поверхности, представленный объектом surface_patch, является последним лоскутом в направлении параметра , то требуется только проверка в направлении параметра , но если прямоугольная составная поверхность, представленная объектомrectangular_composite_surface, является замкнутой в направлении параметра , то требуется проверка и со смежным первым лоскутом в направлении параметра . Если проверяемый лоскут является последним как в направлении параметра , так и в направлении параметра , то никакой проверки не требуется, но если прямоугольная составная поверхность является замкнутой, то применяются вышеописанные положения. Если код перехода не имеет значенияdiscontinuous (разрыв), то во всех точках общей границы вычисляется расстояние между двумя точками - точкой текущего лоскута и точкой следующего лоскута, - и значение полученного расстояния сравнивается со значением атрибута distance_tolerance.
Если код перехода равен cont_same_gradient (непрерывный одинаковый градиент), то во всех точках общей границы вычисляется угол между двумя касательными - одна в конце текущего лоскута, а другая в начале следующего лоскута, - и значение полученного угла сравнивается со значением атрибута angle_tolerance.
Если код перехода имеет значение cont_same_gradient_same_curvature (непрерывный равный градиент и равная кривизна), то требуется также проверка непрерывности значений кривизны и направлений главных нормалей для изопараметрических кривых в направлении, поперечном границе в описанных выше местах. Для проверки непрерывности значения кривизны предположим, что и - значения радиусов кривизны. Тогда степень изменения радиуса кривизны определяется как . Если значение степени изменения больше, чем значение атрибута curvature_ratio_tolerance (допуск отношения кривизн), то кривизна имеет разрыв. Разность направлений главных нормалей должна сравниваться со значением атрибута angle_tolerance (угловой допуск).
Геометрические объекты, имеющие непрерывность более высокую, чем та, которая задана кодом перехода, не должны обнаруживаться с помощью настоящего критерия, за исключением случаев, когда первый и последний лоскуты совместно используют общую граничную кривую лоскута, хотя код перехода последнего сегмента задает наличие разрыва.
EXPRESS-спецификация:
*) |
ENTITY inconsistent_surface_transition_code |
SUBTYPE OF(erroneous_geometry); |
SELF\shape_data_quality_criterion.assessment_specification : |
shape_data_quality_assessment_by_logical_test; |
angle_tolerance : plane_angle_measure; |
curvature_ratio_tolerance : ratio_measure; |
distance_tolerance : length_measure; |
flat_curvature_radius_tolerance : length_measure; |
WHERE |
WR1 : validate_measured_data_type(SELF, |
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.BOOLEAN_VALUE'); |
WR2 : validate_inspected_elements_type(SELF, |
['GEOMETRY_SCHEMA.RECTANGULAR_COMPOSITE_SURFACE']); |
WR3 : validate_locations_of_extreme_value_type(SELF, |
['SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+ |
'RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR']); |
WR4 : validate_accuracy_types(SELF, |
[]); |
END_ENTITY; |
(* |
Определения атрибутов
SELF\shape_data_quality_criterion.assessment_specification - объектshape_data_quality_assessment_by_logical_test, проверяющий существование несоответствия между кодами перехода и непрерывностью базовых геометрических объектов;