--- title: "Интерфейс IMathCurve3D" type: interface api: [api7] domain: [3d] tags: [interface, api7, 3d, imathcurve3d] sources: - imathcurve3d.html --- *API интерфейсов. Версия 7 > Документ 3D  > Вспомогательные объекты, 3D-кривые и элементы тела  > 3D-кривые и элементы тела  > Интерфейс IModelCurve3D * ## Интерфейс IMathCurve3D Интерфейс математической кривой в трехмерном пространстве. Иерархия: IDispatch IKompasAPIObject IMathCurve3D ## BaseCurve2DType - Тип базовой 2D кривой Тип данных: из перечисления ksMathCurve2DTypeEnum Синтаксис Automation: ``` BaseCurve2DType = Object.BaseCurve2DType; Получить свойство (* ) BaseCurve2DType = Object.GetBaseCurve2DType(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_BaseCurve2DType( &BaseCurve2DType ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## BaseCurveType - Тип базовой 3D кривой Тип данных: из перечисления ksMathCurve3DTypeEnum Синтаксис Automation: ``` BaseCurveType = Object.BaseCurveType; Получить свойство (* ) BaseCurveType = Object.GetBaseCurveType(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_BaseCurveType( &BaseCurveType ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## CalculatePolygon - Получить полигон точек на кривой Синтаксис Automation: ``` VARIANT CalculatePolygon( double Step ); ``` Синтаксис COM: ``` HRESULT CalculatePolygon( double Step, VARIANT * Result ); Возвращаемое значение: - массив VT_ARRAY VT_R8 координат точек на кривой. Входные параметры: Step - шаг для расчета полигона. ``` Примечание: 1. Если шаг задан равным 0, то применяется шаг, используемый в системе КОМПАС, который рассчитывается с учетом габаритов детали. 2. Если шаг задан -1, то применяется шаг, используемый в системе КОМПАС при отрисовке кривых. Он рассчитывается с учетом следующих параметров: •габариты детали и масштаба отображения модели, •тип возвращаемого массива VT_ARRAY | VT_R8, •значения координат в массиве лежат в последовательности x1, y1, z1, x2, y2, z2 ... xn, yn, zn. ## Closed - Замкнутость кривой Тип данных: BOOL Синтаксис Automation: ``` Closed = Object.Closed; Получить свойство (* ) Closed = Object.GetClosed(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_Closed( &Closed ) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## CurveType - Получить тип кривой Тип данных: из перечисления ksMathCurve3DTypeEnum Синтаксис Automation: ``` CurveType = Object.CurveType; Получить свойство (* ) CurveType = Object.GetCurveType(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_CurveType( &CurveType ) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## Degenerate - Проверка вырожденности кривой Тип данных: BOOL Синтаксис Automation: ``` Degenerate = Object.Degenerate; Получить свойство (* ) Degenerate = Object.GetDegenerate(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_Degenerate( &Degenerate ) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## GetCentre - Получить центр кривой Синтаксис Automation: ``` BOOL GetCentre( double * X, double * Y, double * Z ); ``` Синтаксис COM: ``` HRESULT GetCentre( double * X, double * Y, double * Z, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Выходные параметры: X, Y, Z - координаты центра кривой. ``` ## GetDerivativeT - Получить первую производную по T Синтаксис Automation: ``` BOOL GetDerivativeT( double ParamT, double * X, double * Y, double * Z ); ``` Синтаксис COM: ``` HRESULT GetDerivativeT( double ParamT, double * X, double * Y, double * Z, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: ParamT - значение параметра T в параметрическом представлении кривой. Выходные параметры: X, Y, Z - первая производная по T. ``` ## GetDerivativeTT - Получить вторую производную по T Синтаксис Automation: ``` BOOL GetDerivativeTT( double ParamT, double * X, double * Y, double * Z ); ``` Синтаксис COM: ``` HRESULT GetDerivativeTT( double ParamT, double * X, double * Y, double * Z, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: ParamT - значение параметра T в параметрическом представлении кривой. Выходные параметры: X, Y, Z - вторая производная по T. ``` ## GetDerivativeTTT - Получить третью производную по T Синтаксис Automation: ``` BOOL GetDerivativeTTT( double ParamT, double * X, double * Y, double * Z ); ``` Синтаксис COM: ``` HRESULT GetDerivativeTTT( double ParamT, double * X, double * Y, double * Z, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: ParamT - значение параметра T в параметрическом представлении кривой. Выходные параметры: X, Y, Z - третья производная по T. ``` ## GetDistanceToPoint - Функция возвращает расстояние между точкой и проекцией точки на грань Синтаксис Automation: ``` double GetDistanceToPoint( double X, double Y, double Z ); ``` Синтаксис COM: ``` HRESULT GetDistanceToPoint( double X, double Y, double Z, double * Result ); Возвращаемое значение: - Расcтояние от кривой до точки. Входные параметры: X, Y, Z - координаты точки. КOMPAS v24 ``` ## GetEllipseParam - Параметры эллипса Синтаксис Automation: ``` BOOL GetEllipseParam( double * MajorRadius, double * MinorRadius, double * Angle ) ; ``` Синтаксис COM: ``` HRESULT GetEllipseParam( double * MajorRadius, double * MinorRadius, double * Angle, BOOL * Result ) ; Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Выходные параметры: Angle - Угол раствора, MajorRadius - Большой радиус эллипса, MinorRadius - Малый радиус эллипса. Версия КОМПАС v22 ``` ## GetGabarit - Выдать габарит кривой Синтаксис Automation: ``` BOOL GetGabarit( double * X1, double * Y1, double * Z1, double * X2, double * Y2, double * Z2 ) ; ``` Синтаксис COM: ``` HRESULT GetGabarit( double * X1, double * Y1, double * Z1, double * X2, double * Y2, double * Z2, BOOL * Result ) ; Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: X1, Y1, Z1, X2, Y2, Z2 - координаты вершин габаритного параллелепипеда. ``` Примечание: Координаты вершин параллелепипеда возвращаются в системе координат компонента. ## GetLength - Получить длину кривой (ST_MIX_MM..ST_MIX_M единицы измерения) Синтаксис Automation: ``` double GetLength( ksLengthUnitEnum BitVector ) ; ``` Синтаксис COM: ``` HRESULT GetLength( ksLengthUnitEnum BitVector, double * Result ) ; Возвращаемое значение: - длина кривой. Входные параметры: BitVector - единица измерения. ``` ## GetMetricLength - Метрическая длина кривой Синтаксис Automation: ``` double GetMetricLength( double StartParam, double EndParam ); ``` Синтаксис COM: ``` HRESULT GetMetricLength( double StartParam, double EndParam, double * Result ) ; Возвращаемое значение: - длина кривой. Входные параметры: StartParam - начальное значение параметра T в параметрическом представлении кривой, EndParam - конечное значение параметра T в параметрическом представлении кривой. ``` ## GetNormal - Получить нормаль Синтаксис Automation: ``` BOOL GetNormal( double ParamT, double * X, double * Y, double * Z) ; ``` Синтаксис COM: ``` HRESULT GetNormal( double ParamT, double * X, double * Y, double * Z, BOOL * Result ) ; Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: ParamT - значение параметра T в параметрическом представлении кривой. Выходные параметры: X, Y, Z - вектор нормали. ``` ## GetNurbs3DParams - Параметры Nurbs-представления кривой Синтаксис Automation: ``` BOOL GetNurbs3DParams( BOOL Closed, long * Degree, double * ParamMin, double * ParamMax, VARIANT * Points, VARIANT * Weights, VARIANT * Knots ) ; ``` Синтаксис COM: ``` HRESULT GetNurbs3DParams( BOOL Closed, long * Degree, double * ParamMin, double * ParamMax, VARIANT * Points, VARIANT * Weights, VARIANT * Knots, BOOL * Result ) ; Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: Closed - TRUE - Вернуть параметры для замкнутого представления - FALSE - Вернуть параметры для разомкнутого представления. Выходные параметры: Degree - порядок сплайна (степень + 1), ParamMin - минимальный параметр кривой, ParamMax - максимальный параметр кривой, Points - координаты точек в виде массива VT_ARRAY VT_R8, Weights - веса в точках в виде массива VT_ARRAY VT_R8, Knots - массив VT_ARRAY VT_R8 узлов сплайна. В англоязычной специализированной литературе, документациях и различных API для систем автоматизированного проектирования (САПР) можно встретить использование термина degree для обозначения степени сплайна, а термина order — для обозначения порядка сплайна. Соответственно, order = degree + 1. Обратите внимание на то, что в интерфейсах КОМПАС-3D API термин degree используется для обозначения порядка сплайна (степень + 1). Версия КОМПАС v22 ``` ## GetPoint - Получить точку на кривой Синтаксис Automation: ``` BOOL GetPoint( double ParamT, double * X, double * Y, double * Z ); ``` Синтаксис COM: ``` HRESULT GetPoint( double ParamT, double * X, double * Y, double * Z, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: ParamT - значение параметра T в параметрическом представлении кривой. Выходные параметры: X, Y, Z - координаты точки на кривой. ``` ## GetTangentVector - Получить тангенциальный вектор (нормализованный) Синтаксис Automation: ``` BOOL GetTangentVector( double ParamT, double * X, double * Y, double * Z ); ``` Синтаксис COM: ``` HRESULT GetTangentVector( double ParamT, double * X, double * Y, double * Z, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: ParamT - значение параметра T в параметрическом представлении кривой. Выходные параметры: X, Y, Z - касательный вектор. ``` ## GetWeightCentre - Получить центр тяжести кривой Синтаксис Automation: ``` BOOL GetWeightCentre( double * X, double * Y, double * Z ); ``` Синтаксис COM: ``` HRESULT GetWeightCentre( double * X, double * Y, double * Z, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Выходные параметры: X, Y, Z - координаты центра тяжести кривой. ``` ## IsArc - Является ли кривая дугой окружности Тип данных: BOOL Синтаксис Automation: ``` IsArc = Object.IsArc; Получить свойство (* ) IsArc = Object.GetIsArc(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_IsArc( &IsArc ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## IsCircle - Является ли кривая окружностью Тип данных: BOOL Синтаксис Automation: ``` IsCircle = Object.IsCircle; Получить свойство (* ) IsCircle = Object.GetIsCircle(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_IsCircle( &IsCircle ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## IsEllipse - Является ли кривая эллипсом Тип данных: BOOL Синтаксис Automation: ``` IsEllipse = Object.IsEllipse; Получить свойство (* ) IsEllipse = Object.GetIsEllipse(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_IsEllipse( &IsEllipse ) Получить свойство ``` Примечание: Свойство доступно только для чтения Версия КОМПАС v22. ## IsEllipseArc - Является ли кривая дугой эллипса Тип данных: BOOL Синтаксис Automation: ``` IsEllipseArc = Object.IsEllipseArc; Получить свойство (* ) IsEllipseArc = Object.GetIsEllipseArc(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_IsEllipseArc( &IsEllipseArc ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## IsLineSeg - Является ли кривая отрезком Тип данных: BOOL Синтаксис Automation: ``` IsLineSeg = Object.IsLineSeg; Получить свойство (* ) IsLineSeg = Object.GetIsLineSeg(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_IsLineSeg( &IsLineSeg ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## IsNurbs - Определить, является ли кривая NURBS Тип данных: BOOL Синтаксис Automation: ``` IsNurbs = Object.IsNurbs; Получить свойство (* ) IsNurbs = Object.GetIsNurbs(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_IsNurbs( &IsNurbs ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 (отсутствуют). ## IsPlanar - Является ли кривая плоской Тип данных: BOOL Синтаксис Automation: ``` IsPlanar = Object.IsPlanar; Получить свойство (* ) IsPlanar = Object.GetIsPlanar(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_IsPlanar( &IsPlanar ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## IsStraight - Является ли кривая прямолинейной Тип данных: BOOL Синтаксис Automation: ``` IsStraight = Object.IsStraight; Получить свойство (* ) IsStraight = Object.GetIsStraight(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_IsStraight( &IsStraight ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## NearPointProjection - Получить ближайшую проекцию точки на кривую Синтаксис Automation: ``` BOOL NearPointProjection( double X, double Y, double Z, double * T, BOOL Ext ); ``` Синтаксис COM: ``` HRESULT NearPointProjection( double X, double Y, double Z, double * T, BOOL Ext, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: X, Y, Z - координаты исходной пространственной точки, Ext - если проекция точки вне кривой, TRUE - проецировать на продолжение кривой, FALSE - найти ближайшую граничную точку кривой. Если проекция точки внутри кривой, значение этого параметра не учитывается. Выходные параметры: T - параметрические координаты точки на кривой. ``` ## ParamMax - Получить значение параметра конечное Тип данных: double Синтаксис Automation: ``` ParamMax = Object.ParamMax; Получить свойство (* ) ParamMax = Object.GetParamMax(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_ParamMax( &ParamMax) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## ParamMin - Получить значение параметра начальное Тип данных: double Синтаксис Automation: ``` ParamMin = Object.ParamMin; Получить свойство (* ) ParamMin = Object.GetParamMin(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_ParamMin( &ParamMin ) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## Periodic - Периодичность замкнутой кривой Тип данных:BOOL Синтаксис Automation: ``` Periodic = Object.Periodic; Получить свойство (* ) Periodic = Object.GetPeriodic(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_Periodic( &Periodic ) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## Placement - Интерфейс локальной системы координат (положение объекта) Тип данных: Указатель на интерфейс IPlacement3D Синтаксис Automation: ``` Placement = Object.Placement; Получить свойство (* ) Placement = Object.GetPlacement(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_Placement( &Placement ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## Radius - Радиус кривой Тип данных: double Синтаксис Automation: ``` Radius = Object.Radius; Получить свойство (* ) Radius = Object.GetRadius(); Получить свойство (**) ``` Синтаксис COM: ``` Object.get_Radius( &Radius ) Получить свойство ``` Примечание: Свойство доступно только для чтения.