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