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