ГОСТ Р ИСО 13584-31—2010
пусть G = F. В противном случав F является прямой линией apijine. Если ее начало не принадлежит базовой кри вой
L сущности basis_cur/e. то пусть точка Р является начальной для сущности F. В противном случае Р является его
крайней точкой.
Тогда R = L.dir.orientation, a Z = L.dir.ortentaUon * OP (где * — символ векторного произведения). Пусть S —
множество дуг окружностей А для сущности api_circular_arc:
- если сущность Е1 является декартовой точкой, то р1 — ее дубликат. В противном случав р1 есть точка ка
сания сущности А и базовой кривой для сущности Е J;
- если сущность Е2 является декартовой точкой, то р2 — ее дубликат. В противном случав р2 есть точка ка
сания сущности А и базовой кривой для сущности Е2;
- точки р1, р2 вычисляются интерфейсом и имеют нулевой стиль null_styie:
- для каждого / в диапазоне [1...2]: если сущность Е, является дугой окружности api_circuSar_arc. то элемент
А находится внутри Е, (если значение параметра IN, равно «true»); в противном случае (если значение параметра
IN- равно «false») элемент А находится вне £ . Если сущность Е- не является дугой окружности api_circu!ar_arc. то
параметр IN, не используется для определения элемента Л;
- точка р1 является начальной точкой отрезка (элементом АЛпт_ 7[1]).
а
точка р2 является концом точки от
резка (элементом А.Тлт_2(1]);
- изложенные далее постулаты используются для формального задания интуитивно воспринимаемых ус
ловий «правила полиспаста» для ориентированных дуг. касательных к сущностям Е1 и £2 (касательные векторы
должны быть когерентными).
Условие A.sense_agreement:
- пусть ВА является базовой кривой для элемента А;
- пусть BE, является базовой кривой для сущности £,. если данная сущность не является декартовой точкой
cartesianjjoint,
- пусть Р,• является точкой касания кривых ВА и BE,;
- пусть Vat является вектором касания кривой ВА в точке Pt
- пусть вектор VA,равен вектору Var если значение атрибута направления обхода контура A.sense_agreement
равно «tme». в противном случае пусть он будет равен Va-,
- пусть Ve, является вектором касания кривой В£, в точке Р,;
- пусть вектор VE, равен вектору Ver если значение атрибута обхода контура £rsense_agreement равно
«true», и в противном случае равен вектору-Уе^
Тогда для каждого /. для которого сущность Е, не является декартовой точкой, векторы VA, и VE, имеют оди
наковые направления.
Множество S содержит не более двух элементов. Если множество S содержит только один элемент, то пусть
этим элементом будет сущность NAME. В противном случае если множество S содержит два элемента, то (если
параметр MINLEN равен «true») сущность NAME из них та. которая имеет меньшуюдугу. В противном случае (если
параметр MINLEN равен «false») сущностью NAME является оставшаяся сущность.
Далее создается экземпляр сущности NAME с точкой вычленения trim_1, точкой вычленения thm_2, значе
нием атрибута направления обхода кривой sense_agreernenf и заданным положением базовой кривой basis^curve.
position.location. При этом ссылочное направление для базовой кривой basis_curve.position,redirection равно R.
и (при необходимости для ЗО-вида) заданное направление оси базовой кривой basis_curve.position.axis, равное Z.
Если геометрическое построение нецелесообразно, то возникает ошибка.
Сущность NAME.master_representation зависит от реализации.
Созданная дуга охружности api_circu)ar_arc имеет текущую запись curve_style в таблице статуса интер
фейса. В случае открытого 20-вида (если значение записи hiddenjine равно «оп» (включено) и значение записи
hiddenJineJnvoived равно «true») полученная сущность приобретает предварительно установленный стиль за
тенения api_pre_der>ned_occJusion_style с текущими значениями записей уровня вида viewjevel и аспекта невиди
мых линий hiddenJine_aspect таблицы статуса интерфейса. Функция возвращает имя полученной дуги окружности
api_circular_arc интерфейса прикладного программирования.
При возникновении ошибки сущность не создается, значение ее имени равно 0.
П ри м ечания
1 Если решения нет (принимая во внимание значение параметра IN,), то возникает ошибка.
2 Параметр IN, игнорируется, если соответствующие параметры ENTNM, не являются дугами окружностей
api_circular_arc.
3 Параметр MINLEN игнорируется, если существует только одна дуга окружности api_circular_arc. вычислен
ная по заданному алгоритму.
4 Сущность api_circular_arc создается, еслидлина дуги, идущей из точки trim_1в точку trim_2 и совместимой
со значением атрибута sense_agreement. не меньше допуска EPS. В противном случав возникает ошибка.
5 Если текущий открытый вид определен как ЗО-вид (значение записи geometricaljxiwerjevel в таблице
статуса интерфейса не менее 2). то сущности Е1 и Е2должны лежать в одной плоскости.
194