---
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    - компоненты вектора направления оси.
```
