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