e1337e4016
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>
262 lines
8.5 KiB
Markdown
262 lines
8.5 KiB
Markdown
---
|
||
title: "Положение объекта (Интерфейсы ksPlacement, IPlacement)"
|
||
type: interface
|
||
api: [api7]
|
||
domain: [3d]
|
||
tags: [interface, api7, 3d, ksplacement]
|
||
sources:
|
||
- ksplacement.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D ) > Запрос к сиcтеме (Интерфейсы ksRequestInfo3D, IRequestInfo) *
|
||
|
||
|
||
## Положение объекта (Интерфейсы ksPlacement, IPlacement)
|
||
|
||
Интерфейс локальной системы координат (положение объекта).
|
||
| ksPlacement | - интерфейс Automation |
|
||
| --- | --- |
|
||
| IPlacement | - интерфейс COM |
|
||
Примечание:
|
||
Данный интерфейс может быть получен с использованием методов интерфейсов ksRequestInfo3D::GetPlacement, ksObject3DNotifyResult::GetPlacement, ksPlaneParam::GetPlacement, ksTorusParam::GetPlacement, ksEllipse3dParam::GetPlacement, ksCylinderParam::GetPlacement, ksArc3dParam::GetPlacement, ksConeParam::GetPlacement, ksDocument3D::DefaultPlacement, ksViewProjection::GetPlacement, ksCircle3dParam::GetPlacement, ksPart::GetPlacement, ksSphereParam::GetPlacement.
|
||
|
||
|
||
## GetAxis - Получить компоненты вектора направления оси OX, OY или OZ локальной системы координат
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetAxis (double* x,
|
||
double* y,
|
||
double* z,
|
||
long type);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetAxis (double *x,
|
||
double *y,
|
||
double *z,
|
||
long type);
|
||
Входной параметр:
|
||
type - тип оси: 0 – OX, 1– OY, >1– OZ.
|
||
Выходные параметры:
|
||
x, y, z - компоненты вектора направления оси.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения.
|
||
```
|
||
Примечание:
|
||
Положение начала локальной системы координат можно получить при помощи метода GetOrigin.
|
||
|
||
|
||
## GetMatrix - Получить суммарную матрицу преобразования координат
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
VARIANT GetMatrix();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
HRESULT GetMatrix( VARIANT * Result );
|
||
Возвращаемое значение:
|
||
- массив SafeAttray типа (VT_ARRAY VT_R8).
|
||
```
|
||
Примечание:
|
||
1. Элементы матрицы возвращаются в виде одномерного массива из 16 элементов.
|
||
2. Матрица имеет размер 4х4.
|
||
|
||
|
||
## GetOrigin - Получить координаты начала локальной системы координат
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetOrigin (double* x,
|
||
double* y,
|
||
double* z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetOrigin (double *x,
|
||
double *y,
|
||
double *z);
|
||
Выходные параметры:
|
||
x, y, z - координаты начала локальной системы координат в глобальной системе координат.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения.
|
||
```
|
||
Примечание:
|
||
Направление осей локальной системы координат можно получить при помощи метода GetAxis.
|
||
|
||
|
||
## GetVector - Получить вектор для указанной оси
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetVector( long type, double * X, double * Y, double * Z );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetVector( long type, double * X, double * Y, double * Z );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачи.
|
||
Входные параметры:
|
||
type - тип оси: 0 – OX, 1 – OY, >1 – OZ.
|
||
Выходные параметры:
|
||
X, Y, Z - компоненты вектора направления оси.
|
||
```
|
||
|
||
|
||
## InitByMatrix3D - Установить систему координат по матрице
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL InitByMatrix3D( VARIANT * mtr );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL InitByMatrix3D( VARIANT * mtr );
|
||
Входные параметры:
|
||
mtr - массив SafeAttray типа (VT_ARRAY VT_R8).
|
||
```
|
||
Примечание:
|
||
1. Элементы матрицы возвращаются в виде одномерного массива из 16 элементов.
|
||
2. Матрица имеет размер 4х4.
|
||
|
||
|
||
## PointProjection - Получить проекцию точки на плоскость XY
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL PointProjection (double XIn, double YIn, double ZIn, double * XOut, double * YOut);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL PointProjection (double XIn, double YIn, double ZIn, double * XOut, double * YOut);
|
||
Входные параметры:
|
||
XIn, YIn, ZIn - координаты исходной пространственной точки.
|
||
Выходные параметры:
|
||
XOut, YOut - координаты точки на плоскости XY.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
FALSE - в случае неудачи.
|
||
```
|
||
|
||
|
||
## Rotate - Получить последний объект в дереве
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Rotate( double X0, double Y0, double Z0, double AxisZX, double AxisZXY, double AxisZZ, double Angle );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL Rotate( double X0, double Y0, double Z0, double AxisZX, double AxisZXY, double AxisZZ, double Angle );
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения,
|
||
```
|
||
|
||
|
||
## SetAxes - Установить оси X и Y
|
||
|
||
Пример...
|
||
Синтаксис Automation:
|
||
```
|
||
VARIANT_BOOL SetAxes (double Xx,
|
||
double Xy,
|
||
double Xz,
|
||
double Yx,
|
||
double Yy,
|
||
double Yz );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL SetAxes (double Xx,
|
||
double Xy,
|
||
double Xz,
|
||
double Yx,
|
||
double Yy,
|
||
double Yz)
|
||
Входные параметры:
|
||
Xx, Xy, Xz - координаты точки на оси X,
|
||
Yx, Yy, Yz - координаты точки на оси Y.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения.
|
||
```
|
||
|
||
|
||
## SetAxis - Установить компоненты вектора направления оси OX, OY или OZ локальной системы координат
|
||
|
||
Пример...
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetAxis (double x,
|
||
double y,
|
||
double z,
|
||
long type);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL SetAxis (double x,
|
||
double y,
|
||
double z,
|
||
int type);
|
||
Входные параметры:
|
||
x, y, z - компоненты вектора направления оси,
|
||
type - тип оси: 0 – OX, >0 – OY.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения.
|
||
```
|
||
|
||
|
||
## SetOrigin - Изменить координаты начала локальной системы координат
|
||
|
||
Пример...
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetOrigin (double x,
|
||
double y,
|
||
double z);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL SetOrigin (double x,
|
||
double y,
|
||
double z);
|
||
Входные параметры:
|
||
x, y, z - координаты начала локальной системы координат в глобальной системе координат.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения.
|
||
```
|
||
|
||
|
||
## SetPlacement - Изменить локальную систему координат
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetPlacement (LPDISPATCH placement);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL SetPlacement (LPPLACEMENT placement);
|
||
Входной параметр:
|
||
placement - указатель на интерфейс ksPlacement или IPlacement.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения.
|
||
```
|
||
|
||
|
||
## SetVector - Задать вектор для указанной оси
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetVector( long type, double * X, double * Y, double * Z );
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL SetVector( long type, double * X, double * Y, double * Z );
|
||
Возвращаемое значение:
|
||
TRUE - в случае удачи.
|
||
Входные параметры:
|
||
type - тип оси: 0 – OX, 1 – OY, >1 – OZ.
|
||
Выходные параметры:
|
||
X, Y, Z - компоненты вектора направления оси.
|
||
```
|