Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/ibody7.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
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>
2026-05-26 20:00:05 +03:00

439 lines
18 KiB
Markdown

---
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 ) Получить свойство
```
Примечание:
Свойство доступно только для чтения.