---
title: "Интерфейс IBody7"
type: interface
api: [api7]
domain: [3d]
tags: [interface, api7, 3d, ibody7]
sources:
  - ibody7.html
---

*API интерфейсов. Версия 7 > Документ 3D  > Твердое тело *


## Интерфейс IBody7

Интерфейс твердого тела.
Иерархия:
IDispatch
IKompasAPIObject
IBody7
IMassInertiaParam7
IPropertyKeeper
Описание:
Позволяет получить интерфейс твердого тела. Тело является результатом выполнения операций (например, операции выдавливания). Представляет собой область, ограниченную замкнутой поверхностью.
Примечание:
1. Интерфейс можно получить у интерфейса дерева с помощью метода IFeature7::ResultBodies.
2. Интерфейс можно получить у интерфейса области применения для тел документа в операции с помощью метода IChooseBodies7::Bodies.
3. Имеет дополнительные интерфейсы IMassInertiaParam7, IColorParam7, IFeature7, IPropertyKeeper, которые можно получить с помощью метода IUnknown::QueryInterface.


## BeginBodyId - Идентификатор начального тела

Тип данных: long
Синтаксис Automation:
```
BeginBodyId = Object. BeginBodyId    Получить свойство (* )
BeginBodyId = Object.GetBeginBodyId()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_BeginBodyId( &BeginBodyId )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## BodyId - Идентификатор тела

Тип данных: long
Синтаксис Automation:
```
BodyId = Object. BodyId    Получить свойство (* )
BodyId = Object.GetBodyId()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_BodyId( &BodyId )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## CheckIntersectionWithBody - Проверка наличия пересечений с другим телом

Синтаксис Automation:
```
VARIANT CheckIntersectionWithBody( IBody7 * OtherBody, BOOL checkTangent );
```
Синтаксис COM:
```
HRESULT CheckIntersectionWithBody( IBody7 * OtherBody, BOOL checkTangent, VARIANT * Result );
Возвращаемое значение:
- массив результатов пересечения из пересечения Intersection_Type.
Входные параметры:
OtherBody    - тело, с которым проверяется пересечение,
checkTangent    - считать касания пересечениями.
Версия Компас v23
```


## CheckIntersectionWithBodyEx - Проверка наличия пересечений с другим телом

Синтаксис Automation:
```
BOOL CheckIntersectionWithBodyEx( IBody7 * OtherBody, VARIANT * IntersectionFaces1, VARIANT * IntersectionFaces2, VARIANT * ConnectedFaces1, VARIANT * ConnectedFaces2 );
```
Синтаксис COM:
```
HRESULT CheckIntersectionWithBodyEx( IBody7 * OtherBody, VARIANT * IntersectionFaces1, VARIANT * IntersectionFaces2, VARIANT * ConnectedFaces1, VARIANT * ConnectedFaces2, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
OtherBody    - второе тело.
Выходные параметры:
IntersectionFaces1    - пересекаемые грани первого тела,
IntersectionFaces2    - пересекаемые грани второго тела,
ConnectedFaces1    - совпадающие грани первого тела,
ConnectedFaces2    - совпадающие грани второго тела.
```
Примечание:
Пересекаемые и совпадающие грани возвращаются в VARIANT-е следующим образом:
•Если грань одна, то VARIANT заполняется как VT_DISPATH в автоматизации и VT_UNKNOVN в COM.
•Если граней несколько, то VARIANT заполняется как массив SafeArray типа VT_ARRAY | VT_DISPATH в автоматизации и VT_ARRAY | VT_UNKNOVN в COM.
Количество граней в массивах intersectionFaces1 и intersectionFaces2 совпадают и образуют пары, т.е. грань с индексом i из массива intersectionFaces1 пересекается с гранью i из массива intersectionFaces2.
Одна и та же грань может встречаться в массиве несколько раз, если она пересекается с несколькими гранями.
Так же заполняются и массивы connectedFaces1 и connectedFaces2.
Версия Компас v23


## CreateSpcObjects - Создавать объекты спецификации

Тип данных: BOOL
Синтаксис Automation:
```
CreateSpcObjects = Object.CreateSpcObjects    Получить свойство (* )
Object.CreateSpcObjects = CreateSpcObjects    Установить свойство (* )
CreateSpcObjects = Object.GetCreateSpcObjects()    Получить свойство (**)
Object.SetCreateSpcObjects( CreateSpcObjects )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_CreateSpcObjects( &CreateSpcObjects )    Получить свойство
Object.put_CreateSpcObjects( CreateSpcObjects )    Установить свойство
```


## CurveIntersection - Расчет пересечений c кривой

Синтаксис Automation:
```
BOOL CurveIntersection( IMathCurve3D * Curve, VARIANT * Faces, VARIANT * Points );
```
Синтаксис COM:
```
HRESULT CurveIntersection( IMathCurve3D * Curve, VARIANT * Faces, VARIANT * Points, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Curve    - Указатель на математическую кривую IMathCurve3D.
Выходные параметры:
Faces    - список граней, пересекаемых кривой VT_APPAY    VT_DISPATCH,
Points    - координаты точек пересечения VT_APPAY    VT_R8.
Версия Компас v23
```


## Editable - Признак редактирования

Тип данных: из перечисления ksEditableStateEnum
Синтаксис Automation:
```
Editable = Object.Editable    Получить свойство (* )
Object.Editable = Editable    Установить свойство (* )
Editable = Object.GetEditable()    Получить свойство (**)
Object.SetEditable( Editable )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Editable( &Editable )    Получить свойство
Object.put_Editable( Editable )    Установить свойство
```


## FinalBodyId - Идентификатор конечного тела

Тип данных: long
Синтаксис Automation:
```
FinalBodyId = Object. FinalBodyId    Получить свойство (* )
FinalBodyId = Object.GetFinalBodyId()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_FinalBodyId( &FinalBodyId )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## 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 );
Входные параметры:
X1, Y1, Z1, X2, Y2, Z2    - координаты габаритного прямоугольника.
Возвращаемое значение:
TRUE    - успешное завершение,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет установить габаритный прямоугольник Панели свойств. Точки задаются в относительных координатах окна КОМПАС.


## HatchParam - Параметры штриховки

Тип данных: Указатель на интерфейс IHatchParam
Синтаксис Automation:
```
HatchParam = Object.HatchParam    Получить свойство (* )
HatchParam = Object.GetHatchParam()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_HatchParam( &HatchParam )    Получить свойство
Свойство позволяет получать интерфейс параметров штриховки тела.
```
Примечание:
Свойство доступно только для чтения.


## Hidden - Состояние видимости объекта

Тип данных: BOOL
Синтаксис Automation:
```
Hidden = Object.Hidden    Получить свойство (* )
Object.Hidden = Hidden    Установить свойство (* )
Hidden = Object.GetHidden()    Получить свойство (**)
Object.SetHidden( Hidden )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Hidden( &Hidden )    Получить свойство
Object.put_Hidden( Hidden )    Установить свойство
```
Примечание:
Свойство позволяет устанавливать и получать обозначение компонента.


## HiddenEx - Состояние видимости объекта

Тип данных: из перечисления ksVisibleStateEnum
Синтаксис Automation:
```
HiddenEx = Object.HiddenEx    Получить свойство (* )
Object.HiddenEx = HiddenEx    Установить свойство (* )
HiddenEx = Object.GetHiddenEx()    Получить свойство (**)
Object.SetHiddenEx( HiddenEx )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_HiddenEx( &HiddenEx )    Получить свойство
Object.put_HiddenEx( HiddenEx )    Установить свойство
```


## IsSolid - Является ли тело твердым или оболочкой (TRUE - твердое тело, FALSE - оболочка)

Тип данных: BOOL
Синтаксис Automation:
```
IsSolid = Object.IsSolid    Получить свойство (* )
IsSolid = Object.GetIsSolid()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsSolid( &IsSolid )    Получить свойство
Возвращаемое значение:
TRUE    - объект является твердым телом,
FALSE    - объект является поверхностью или оболочкой.
```
Примечание:
Свойство доступно только для чтения.
Версия Компас v23


## LayerNumber - Номер слоя

Тип данных: long
Синтаксис Automation:
```
LayerNumber = Object.LayerNumber    Получить свойство (* )
Object.LayerNumber = LayerNumber    Установить свойство (* )
LayerNumber = Object.GetLayerNumber()    Получить свойство (**)
Object.SetLayerNumber( LayerNumber )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_LayerNumber( &LayerNumber )    Получить свойство
Object.put_LayerNumber( LayerNumber )    Установить свойство
```


## Marking - Обозначение компонента

Тип данных: строка
Синтаксис Automation:
```
Marking = iObject.Marking    Получить свойство (* )
iObject.Marking = Marking    Установить свойство (* )
Marking = iObject.GetMarking()    Получить свойство (**)
iObject.SetMarking ( Marking)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Marking ( &Marking)    Получить свойство
iObject->put_Marking ( Marking)    Установить свойство
```
Примечание:
Свойство позволяет устанавливать и получать обозначение компонента.


## MultiBodyParts - Признак того, что компонент состоит из нескольких частей

Тип данных: BOOL
Синтаксис Automation:
```
MultiBodyParts = Object.MultiBodyParts    Получить свойство (* )
MultiBodyParts = Object.GetMultiBodyParts()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_MultiBodyParts( &MultiBodyParts )    Получить свойство
Значения свойства:
TRUE    - компонент состоит из нескольких частей,
FALSE    - компонент не состоит из нескольких частей.
```
Примечание:
1.Свойство доступно только для чтения.
2.Свойство позволяет узнать состоит ли компонент их нескольких частей.  В результате работы свойства можно получить компонент (деталь), состоящую из нескольких частей. С точки зрения конструктора, деталь должна представлять нечто целое - частей быть не должно. Следовательно, нужно отыскать в компоненте операции, порождающие несколько частей, и выключить из расчета не нужные, чтобы образовалось целое тело.
Версия Компас v23


## Name - Имя тела

Тип данных: BSTR (строка)
Синтаксис Automation:
```
Name = iObject.Name    Получить свойство (* )
iObject.Name = Name    Установить свойство (* )
Name = iObject.GetName()    Получить свойство (**)
iObject.SetName (Name)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Name (&Name)    Получить свойство
iObject->put_Name (Name)    Установить свойство
```
Примечание:
Свойство позволяет устанавливать и получать имя трехмерной модели.


## OwnerBodyId - Идентификатор тела, которое поглотило это тело

Тип данных: long
Синтаксис Automation:
```
OwnerBodyId = Object. OwnerBodyId    Получить свойство (* )
OwnerBodyId = Object.GetOwnerBodyId()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_OwnerBodyId( &OwnerBodyId )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## Projected - Признак проецирования

Тип данных: из перечисления ksProjectionOptionEnum
Синтаксис Automation:
```
Projected = Object.Projected    Получить свойство (* )
Object.Projected = Projected    Установить свойство (* )
Projected = Object.GetProjected()    Получить свойство (**)
Object.SetProjected( Projected )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Projected( &Projected )    Получить свойство
Object.put_Projected( Projected )    Установить свойство
```


## Threads - Коллекция условных обозначений резьбы

Тип данных: Указатель на интерфейс IThreads
Синтаксис Automation:
```
Threads = Object.Threads    Получить свойство(* )
Threads = Object.GetThreads()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Threads( &Threads )    Получить свойство
```


## Update - Изменить свойства объекта

Синтаксис Automation:
```
BOOL Update( );
```
Синтаксис COM:
```
HRESULT Update ( VARIANT_BOOL* PVal );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
После вызова метода вступают в силу измененные свойства тела: имя, обозначение, свойства массово-центровочных характеристик.


## UserParameters - Получить интерфейс параметров

Тип данных: Указатель на интерфейс IUnknown
Синтаксис Automation:
```
UserParameters = Object.UserParameters( Val )    Получить свойство(* )
UserParameters = Object.GetUserParameters( Val )    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_UserParameters( Val, &UserParameters )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.
