docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
22 KiB
title, type, api, domain, tags, sources
| title | type | api | domain | tags | sources | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Математическая кривая в трехмерном пространстве (Интерфейсы ksCurve3D, ICurve3D) | interface |
|
|
|
|
*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D ) > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart *
Математическая кривая в трехмерном пространстве (Интерфейсы ksCurve3D, ICurve3D)
Интерфейс математической кривой в трехмерном пространстве.
| ksCurve3D | - интерфейс Automation |
|---|---|
| ICurve3D | - интерфейс COM |
| Примечание: | |
| Данный интерфейс может быть получен с использованием метода интерфейсов ksAxisConefaceDefinition::GetCurve3D, IDefaultObject::GetCurve3D, ksAxisEdgeDefinition::GetCurve3D, ksAxis2PlanesDefinition::GetCurve3D, ksAxisOperationsDefinition::GetCurve3D, ksAxis2PointsDefinition::GetCurve3D, ksEdgeDefinition::GetCurve3D. | |
| Параметры отрезка (Интерфейсы ksLineSeg3dParam,ILineSeg3dParam) | |
| Параметры окружности (Интерфейсы ksCircle3dParam,ICircle3dParam) | |
| Параметры эллипса (Интерфейсы ksEllipse3dParam, IEllipse3dParam) | |
| Параметры трехмерной дуги(Интерфейсы ksArc3dParam,IArc3dParam) | |
| Параметры трехмерных NURBS (Интерфейсы ksNurbs3dParam,INurbs3dParam) |
CalculatePolygon - Рассчитать полигон
Синтаксис Automation:
VARIANT CalculatePolygon( double step );
Синтаксис COM:
BOOL CalculatePolygon( VARIANT * points,
double step );
Входные параметры:
step - шаг для расчета полигона.
Возвращаемое значение:
- массив SafeArray координат точек на кривой, полученных с шагом step.
Примечание:
- Если шаг задан равным 0, то используется шаг применяемый в системе КОМПАС, который рассчитывается с учетом габаритов детали.
- Если шаг задан -1, то используется шаг применяемый в системе КОМПАС при отрисовке кривых. Он рассчитывается с учетом следующих параметров: •габариты детали и масштаба отображения модели. •тип возвращаемого массива VT_ARRAY | VT_R8 •значения координат в массиве лежат в последовательности x1, y1, z1, x2, y2, z2 ... xn, yn, zn.
GetCurveParam - Получить параметры линии, окружности, эллипса, NURBS или NULL
Синтаксис Automation:
LPDISPATCH GetCurveParam();
Синтаксис COM:
LPUNKNOWN GetCurveParam();
Возвращаемое значение:
- указатель на интерфейс параметра кривой.
Примечание: В соответствии с типом объекта метод вернет указатель на интерфейс параметра:
| - отрезка | ksILineSeg3dParam или ILineSeg3dParam, |
|---|---|
| - дуги окружности | ksArc3dParam или IArc3dParam, |
| - окружности | ks ICircle3dParam или ICircle3dParam, |
| - эллипса | ksEllipse3dParam или IEllipse3dParam, |
| - NURBS | kIsNurbs3dParam или INurbs3dParam. |
| Зная тип объекта, можно базовый интерфейс привести к конечному (IDispatch или IUnknown). Для определения типа объекта можно воспользоваться методами IsLineSeg, IsArc, IsCircle, IsEllipse, IsNurbs. |
GetDerivativeT - Получить первую производную по T
Синтаксис Automation:
BOOL GetDerivativeT (double paramT, double * x, double *y, double *z);
Синтаксис COM:
BOOL GetDerivativeT (double paramT, double * x, double *y, double *z);
Входной параметр:
paramT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
x, y, z - первая производная по T.
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Примечание: Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координата точки возвращается в координатах компонента.
GetDerivativeTT - Получить вторую производную по T
Синтаксис Automation:
BOOL GetDerivativeTT (double paramT, double * x, double *y, double *z);
Синтаксис COM:
BOOL GetDerivativeTT (double paramT, double * x, double *y, double *z);
Входной параметр:
paramT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
x, y, z - вторая производная по T.
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Примечание: Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координата точки возвращается в координатах компонента.
GetDerivativeTTT - Получить третью производную по T
Синтаксис Automation:
BOOL GetDerivativeTTT (double paramT, double * x, double *y, double *z);
Синтаксис COM:
BOOL GetDerivativeTTT (double paramT, double * x, double *y, double *z);
Входной параметр:
paramT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
x, y, z - третья производная по T.
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Примечание: Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координата точки возвращается в координатах компонента.
GetGabarit - Получить габаритный параллелепипед кривой
Синтаксис Automation:
BOOL GetGabarit (double * x1,
double *y1,
double *z1,
double * x2,
double *y2,
double *z2);
Синтаксис COM:
BOOL GetGabarit (double * x1,
double *y1,
double *z1,
double * x2,
double *y2,
double *z2);
Выходные параметры:
x1, y1, z1, x2, y2, z2 - координаты вершин габаритного параллелепипеда.
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Примечание: Координаты вершин параллелепипеда возвращаются в системе координат компонента.
GetLength - Получить длину кривой
Синтаксис Automation:
double GetLength (unsigned long bitVector);
Синтаксис COM:
double GetLength (unsigned long bitVector);
Входные параметры:
bitVector - единицы измерения в интервале [ST_MIX_MM..ST_MIX_M].
Возвращаемое значение:
длина кривой - в случае успешного завершения,
0 - в случае неудачи.
GetMetricLength - Получить метрическую длину кривой
Синтаксис Automation:
double GetMetricLength (double startParam, double endParam);
Синтаксис COM:
double GetMetricLength (double startParam, double endParam);
Входные параметры:
startParam - начальное значение параметра T в параметрическом представлении кривой,
endParam - конечное значение параметра T в параметрическом представлении кривой.
Возвращаемое значение:
метрическая длина кривой - в случае успешного завершения,
0 - в случае неудачи.
Примечание: Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax.
GetNormal - Получить направление нормали
Синтаксис Automation:
BOOL GetNormal (double paramT, double * x, double *y, double *z);
Синтаксис COM:
BOOL GetNormal (double paramT, double * x, double *y, double *z);
Входной параметр:
paramT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
x, y, z - вектор нормали.
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Примечание: Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координата точки возвращается в координатах компонента.
GetNurbs3dParam - Получить NURBS-представление кривой
Синтаксис Automation:
LPDISPATCH GetNurbs3dParam();
Синтаксис COM:
LPNURBS3DPARAM GetNurbs3dParam();
Возвращаемое значение:
- указатель на интерфейс ksNurbs3dParam/INurbs3dParam.
Примечание: Метод позволяет получить параметры кривой в NURBS-представлении. Для получения параметров кривой в NURBS-представлении создается математическая NURBS-кривая, аналогичная заданной. Если заданная кривая является NURBS-кривой, то возвращаются ее параметры без создания NURBS-представления.
GetParamMax - Получить конечное значение параметра T в параметрическом представлении кривой
Синтаксис Automation:
double GetParamMax();
Синтаксис COM:
double GetParamMax();
Возвращаемое значение:
Значение параметра T - в случае успеха,
0 - в случае неудачи.
GetParamMin - Получить начальное значение параметра T в параметрическом представлении кривой
Синтаксис Automation:
double GetParamMin();
Синтаксис COM:
double GetParamMin();
Возвращаемое значение:
Значение параметра T - в случае успеха,
0 - в случае неудачи.
GetPoint - Получить координаты точки на кривой
Синтаксис Automation:
BOOL GetPoint (double paramT, double * x, double *y, double *z);
Синтаксис COM:
BOOL GetPoint (double paramT, double * x, double *y, double *z);
Входной параметр:
paramT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
x, y, z - координаты точки на кривой.
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Примечание: Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координаты точки возвращаются в системе координат компонента.
GetTangentVector - Получить направление касательного вектора
Синтаксис Automation:
BOOL GetTangentVector (double paramT, double * x, double *y, double *z);
Синтаксис COM:
BOOL GetTangentVector (double paramT, double * x, double *y, double *z);
Входной параметр:
paramT - значение параметра T в параметрическом представлении кривой.
Выходные параметры:
x, y, z - касательный вектор.
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Примечание: Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координата точки возвращается в координатах компонента.
IsArc - Определить, является ли кривая дугой окружности
Синтаксис Automation:
BOOL IsArc();
Синтаксис COM:
BOOL IsArc();
Возвращаемое значение:
TRUE - кривая является дугой окружности,
FALSE - кривая не является дугой окружности.
Примечание: Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра дуги окружности ksArc3dParam или IArc3dParam.
IsCircle - Определить, является ли кривая окружностью
Синтаксис Automation:
BOOL IsCircle();
Синтаксис COM:
BOOL IsCircle();
Возвращаемое значение:
TRUE - кривая является окружностью,
FALSE - кривая не является окружностью.
Примечание: Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра окружности ksCircle3dParam или ICircle3dParam.
IsClosed - Определить, является ли кривая замкнутой
Синтаксис Automation:
BOOL IsClosed();
Синтаксис COM:
BOOL IsClosed();
Возвращаемое значение:
TRUE - кривая замкнута,
FALSE - кривая разомкнута.
IsDegenerate - Определить, является ли кривая вырожденной
Синтаксис Automation:
BOOL IsDegenerate();
Синтаксис COM:
BOOL IsDegenerate();
Возвращаемое значение:
TRUE - кривая вырожденная,
FALSE - кривая невырожденная.
IsEllipse - Определить, является ли кривая эллипсом
Синтаксис Automation:
BOOL IsEllipse();
Синтаксис COM:
BOOL IsEllipse();
Возвращаемое значение:
TRUE - кривая является эллипсом,
FALSE - кривая не является эллипсом.
Примечание: Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра эллипса ksEllipse3dParam или IEllipse3dParam.
IsEllipseArc - Является ли кривая дугой эллипса
Синтаксис Automation:
BOOL IsEllipseArc();
Синтаксис COM:
BOOL IsEllipseArc();
Возвращаемое значение:
TRUE - кривая является дугой эллипса,
FALSE - кривая не является дугой эллипса.
Версия КОМПАС v22
IsLineSeg - Определить, является ли кривая отрезком
Синтаксис Automation:
BOOL IsLineSeg();
Синтаксис COM:
BOOL IsLineSeg();
Возвращаемое значение:
TRUE - кривая является отрезком,
FALSE - кривая не является отрезком.
Примечание: Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра отрезка ksLineSeg3dParam или ILineSeg3dParam.
IsNurbs - Определить, является ли кривая NURBS
Синтаксис Automation:
BOOL IsNurbs();
Синтаксис COM:
BOOL IsNurbs();
Возвращаемое значение:
TRUE - кривая является NURBS,
FALSE - кривая не является NURBS.
Примечание: Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта, можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра NURBS ksNurbs3dParam или INurbs3dParam.
IsPeriodic - Определить, является ли замкнутая кривая периодической
Синтаксис Automation:
BOOL IsPeriodic();
Синтаксис COM:
BOOL IsPeriodic();
Возвращаемое значение:
TRUE - кривая периодична,
FALSE - кривая не периодична.
IsPlanar - Определить, является ли кривая плоской
Синтаксис Automation:
BOOL IsPlanar();
Синтаксис COM:
BOOL IsPlanar();
Возвращаемое значение:
TRUE - кривая плоская,
FALSE - кривая неплоская.
IsStraight - Является ли кривая прямолинейной
Синтаксис Automation:
BOOL IsStraight();
Синтаксис COM:
BOOL IsStraight();
Возвращаемое значение:
TRUE - кривая является прямолинейной,
FALSE - кривая не является прямолинейной.
Версия КОМПАС v22
NearPointProjection - Получить ближайшую проекцию точки на поверхность
Синтаксис Automation:
BOOL NearPointProjection (double x, double y, double z, double * t, BOOL ext);
Синтаксис COM:
BOOL NearPointProjection (double x, double y, double z, double * t, BOOL ext);
Входные параметры:
x, y, z - координаты исходной пространственной точки,
ext - если проекция точки вне кривой: - TRUE проецировать на продолжение кривой, - FALSE найти ближайшую граничную точку кривой. Если проекция точки внутри кривой, значение этого параметра не учитывается.
Выходные параметры:
t - параметрические координаты точки на кривой.
Возвращаемое значение:
TRUE - если проекция точки попала на саму кривую или если ext равен TRUE,
FALSE - если проекция точки не попала на саму кривую.