ГОСТ Р ИСО 13584-31—2010
Сущность api_contour определена прикладной программой как неупорядоченный перечень сущ
ностей кривых. Любые базовые сущности (линии apijine. дуги окружности api_circular_arc), конические
дуги и сущности polyline могут быть использованы для определения контура api_contour в интерфейсе
прикладного программирования при условии:
1) для любой крайней точки одной сущности существует только одна крайняя точка другой сущ
ности в окрестности нулевого радиуса ZERO_value.
2) кривая, полученная путем соединения соседних крайних точек, заданных сущностью, должна
быть плоской, замкнутой и несамопересекающейся.
Указанные положения прежде всего проверяются интерфейсом. При этом перечень сущностей,
определенный прикладной программой, логически переупорядочивается внутри интерфейса. Первой
из переупорядоченных сущностей является первая сущность исходного перечня. Второй является сущ
ность. содержащая только одну крайнюю точку в окрестности крайней точки первого сущности, и т. д.
Начальными точками первой сущности могут быть начальная и конечная точки контура.
Если оба условия выполнены, то контур api_contour вычисляется интерфейсом. Данный процесс
выполняется в два этапа: 1) моделирование некоторых сущностей: 2) результирующая сущность кор
ректируется. чтобы гарантировать замыкание контура api_contour.
1. Контуры api_contour определяются для построения заполненных областей комментариев
annotation_Ш_агва, плоских поверхностей api_planar_surfaco и твердых тел solid bodies. Таким образом,
некоторые сущности не могут быть использованы для представлений контура (например, когда они не
поддерживаются CAD). Только сущности базовых кривых (например, вычленения прямых apijine.дуги
окружностей api_circular_arc) допускаются любым интерфейсом для представления контура. Если ка
кие-либо сущности кривых, используемые функциями генерации контура, не допускаются интерфейсом
для представления контура, то указанные сущности моделируются особой установленной процедурой.
П ри м е ча н и е 1 — Сущности, допустимые для представления контура, определены записями
contour^
entities таблицы описаний интерфейса (см. раздел 8.1). Максимальное количество сущностей на каждый контур
api_contourдля заданной реализации интерфейса должно быть не меньше величины, описанной в разделе 9.
2. Замкнутый контур api_contour конструируется в следующем порядке:
1) первая кривая переупорядоченного перечня дублируется вместе с базовой кривой при условии,
что это отрезок кривой;
2) первый сегмент комбинированной кривой composite_curve_segment строится с помощью ука
занной дублированной кривой как parent_curvo. При этом значение атрибута направления обхода кри
вой same_sense равно «true»:
3) вычисляется направление direction касательного вектора текущего сегмента комбинированной
кривой composite_curve_segmont в его конечной точке. Вычисляется также направление касательного
вектора последующего сегмента кривой (в переупорядоченном перечне кривых) в его начальной точке в
окрестности конечной точки предшествующего сегмента комбинированной кривой composite_curve_
segment. Таким образом, последующая кривая для последней кривой (переупорядоченного перечня
кривых) оказывается первой кривой:
4) если оба направления direction параллельны, то переход transition текущего сегмента комби
нированной кривой composite_curve_segment на последующий сегмент устанавливается из условия
сохранения касательной сущностью cont_same_gradient. в противном случае она устанавливается из
условия обеспечения непрерывности кривой сущностью continuous’,
5) вплоть до окончания перечня кривых каждый composite_curve_segmentвычисляется аналогично:
a) кривая дублируется базовой кривой при условии, что это отрезок кривой:
b
) сегмент комбинированной кривой composite_curve_segmontстроится с помощью данной дубли
рованной кривой как сущность parent_curve. Указанный сегмент composite_curve_segment называется
текущим composite_curve_segment;
c) если первая крайняя точка дублированной кривой находится в окрестности крайней точки пред
шествующего сегмента комбинированной кривой composito_curve_segment. то значение атрибута на
правления обхода кривой same_senseтекущего сегмента composite_curve_segment равно «true». В про
тивном случае его значение равно «false». Данный атрибут определяет ориентацию текущего сегмента
composite_curve_segment, а также его начало и конец:
d) если начальная точка текущего сегмента composite_curve_segment не совпадает с конечной
точкой предшествующего сегмента composite_curve_segment. то basis_curve для указанного сегмента
composito_curve_segment преобразуется и обеспечивает замыкание контура api_contour.
56