В настоящем подразделе установлены сущности дуг конических кривых интерфейса прикладного программирования, генерируемых с помощью функций интерфейса. Если функция, создающая дугу конической кривой, запущена, то кривая conic сначала создается как базовая кривая basis_curve дуги конической кривой, а затем указанная дуга конической кривой создается как подтип отрезка кривой trimmed_curve.
Сущности, определенные в настоящем разделе, задают диапазон значений некоторых функций интерфейса.
Примечание - Дуги конических кривых могут быть использованы как вычленения кривых trimmed_curve.
Если сущности конических кривых не существуют в целевых моделирующих системах, то моделирование выполняется интерфейсом. Настоящее моделирование производится для каждой сущности путем интерполяции. Для интерполяции в моделируемой сущности берутся две заданные конечные точки и некоторое количество внутренних точек, определенных в строке задания числа узлов интерполяции interpolation_nodes_number таблицы статуса интерфейса. Интерполирующие кривые должны быть непрерывными, с непрерывными касательными. Они должны сохранять касательные сущности в обеих конечных точках. Кривая, используемая для интерполяции, зависит от реализации. Это может быть, например, дуга окружности circular_arc. Тип кривой может быть определен внутри целевой моделирующей системы или интерфейса (например, кривые Безье). Выбор промежуточных точек интерполяции также зависит от реализации. Единственным требованием к промежуточным точкам является их равномерное (в некотором смысле) распределение.
Строка задания числа узлов интерполяции interpolation_nodes_number таблицы статуса интерфейса может запрашиваться прикладной программой. Число узлов интерполяции может быть меньше или равно некоторому максимальному значению max_interpolation_nodes_number, определенному в таблице описаний интерфейса. Указанное значение max_interpolation_nodes_number должно быть больше или равно 1.
6.1.13.1 Сущность api_elliptical_arc
Сущность api_elliptical_arc задает отрезок кривой trimmed_curve для сегмента эллипса ellipse. Определяется сущностью trimmed_cirve в совокупности с сущностью ellipse.
Спецификация на языке EXPRESS:
*)
ENTITY api_elliptical_arc
SUBTYPE OF (trimmed_curve);
WHERE
api_WR1 : 'API_ABSTRACT_SCHEMA.ELLIPSE' IN
TYPEOF (SELF\TRIMMED_CURVE.BASIS_CURVE);
END_ENTITY;
(*
Примечание 1 - Настоящая сущность интерфейса прикладного программирования задает диапазон значений некоторых функций интерфейса.
Примечание 2 - В контексте схемы api_abstract_schema главное представление master_representation должно зависеть от реализации.
Примечание 3 - Настоящая сущность может быть применена как сущность trimmed_curve.
Примечание 4 - Если начальная и конечная точки api_elliptical_arc совпадают, то сущность api_elliptical_arc задает эллипс целиком с положительным направлением обхода, соответствующим соглашению sense_agreement.
Определения атрибутов:
SELF\trimmed_curve.basis_curve: эллипс, в пределах которого вычленяется дуга;
SELF\trimmed_curve.trim_1: начальная точка отрезка, описываемая либо как декартова точка cartesian_point (point_1), либо действительным значением параметра (parameter_1=t), либо обоими способами;
SELF\trimmed_curve.trim_2: конечная точка отрезка, описываемая либо как декартова точка cartesian_point (point_2), либо как действительное значение параметра (parameter_2=t), либо обоими способами;
SELF\trimmed_curve.sense_agreement: флажок, указывающий, согласуется или нет направление обхода отрезка кривой с направлением обхода базовой кривой;
master_representation: главное представление, где и параметр, и точка, присутствующие на обоих концах кривой, указывают предпочтительную форму. Множественное представление позволяет устанавливать связь данных более чем одной формы, даже если эти данные могут оказаться геометрически идентичными.
Комментарий к спецификации:
api_WR1: базовой кривой для отрезка кривой должен быть эллипс.