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>
372 lines
16 KiB
Markdown
372 lines
16 KiB
Markdown
---
|
||
title: "Интерфейсы ksEntity и iEntity - Интерфейс элемента модели (оси, плоскости, формообразующего элемента)"
|
||
type: interface
|
||
api: [api7]
|
||
domain: [2d, assembly]
|
||
tags: [interface, api7, 2d, assembly, ksentity]
|
||
sources:
|
||
- ksentity.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D ) > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart > Объект модели (Интерфейсы ksEntity и IEntity) *
|
||
|
||
|
||
## Интерфейсы ksEntity и iEntity - Интерфейс элемента модели (оси, плоскости, формообразующего элемента)
|
||
|
||
| ksEntity | - интерфейс Automation |
|
||
| --- | --- |
|
||
| IEntity | - интерфейс COM |
|
||
Примечание:
|
||
Данный интерфейс можно получить от следующих интерфейсов:
|
||
•Интерфейс детали или подсборки в составе сборки ksPart или IPart.
|
||
•Методы интерфейса коллекции элементов модели ksEntityCollection, IEntityCollection.
|
||
•Метод интерфейса документа-модели ksDocument3D::UserSelectEntity или IDocument3D::UserSelectEntity.
|
||
•Интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.
|
||
•Интерфейс параметров вершины ломаной ksPolyLineVertexParam или IPolygonalLineVertexParam.
|
||
•Интерфейсы элементов модели
|
||
Интерфейсы пространственных кривых
|
||
Интерфейсы поверхностей
|
||
Интерфейсы копирования
|
||
Интерфейсы копирования компонентов сборки
|
||
Интерфейсы формообразующих операций
|
||
Интерфейсы дополнительных элементов
|
||
Интерфейсы вспомогательной геометрии
|
||
Массив ориентированных ребер (Интерфейсы ksOrientedEdgeCollection, IOrientedEdgeCollection)
|
||
Интерфейс массива трехмерных тел (Интерфейсы ksBodyCollection, IBodyCollection)
|
||
Интерфейс частей тела (Интерфейсы ksBodyParts, IBodyParts)
|
||
Интерфейс параметров вершины ломаной Интерфейсы ksPolyLineVertexParam, IPolygonalLineVertexParam)
|
||
Интерфейсы параметров умолчательного объекта (IDefaultObject, ksDefaultObject)
|
||
|
||
|
||
## BodyCollection - Получить указатель на интерфейс массива трехмерных тел
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH BodyCollection();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPBODYCOLLECTION BodyCollection();
|
||
Возвращаемое значение:
|
||
- указатель на интерфейс массива тел ksBodyCollection или IBodyCollection.
|
||
```
|
||
|
||
|
||
## ColorParam - Получить указатель на интерфейс параметров цвета и визуальных свойств объекта
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH ColorParam();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPCOLORPARAM ColorParam();
|
||
Возвращаемое значение:
|
||
- указатель на интерфейс ksColorParam или IColorParam.
|
||
```
|
||
|
||
|
||
## Create - Создать объект в модели
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Create();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL Create();
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения.
|
||
```
|
||
Примечание:
|
||
Данный метод необходимо вызвать для создания объекта в модели после создания интерфейса с помощью метода NewEntity и изменения параметров создаваемого объекта.
|
||
Если до вызова данного метода свойства объекта не изменены, то объект создается с параметрами, принятыми по умолчанию.
|
||
Если объект уже создан, то функция вызовет метод Update.
|
||
|
||
|
||
## Элементы, существующие в модели по умолчанию
|
||
|
||
| o3d_planeXOY | = 1 | плоскость XOY |
|
||
| --- | --- | --- |
|
||
| o3d_planeXOZ | = 2 | плоскость XOZ |
|
||
| o3d_planeYOZ | = 3 | плоскость YOZ |
|
||
| o3d_pointCS | = 4 | точка начала системы координат |
|
||
|
||
|
||
## excluded - Признак включения или выключения из расчета
|
||
|
||
Тип данных: BOOL
|
||
Значения свойства:
|
||
| TRUE | - исключить из расчёта, |
|
||
| --- | --- |
|
||
| FALSE | - включить в расчёт. |
|
||
Синтаксис Automation:
|
||
```
|
||
excluded = iEntity.excluded Получить свойство (* )
|
||
iEntity.excluded = excluded Установить свойство (* )
|
||
excluded = iEntity.GetExcluded() Получить свойство (**)
|
||
iEntity.SetExcluded(excluded) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
1. После установки признака Excluded в True исключение объекта из расчета происходит сразу, без вызова Update. Поэтому изменение объектов (и вызов Update) нужно делать до переключения Excluded в True.
|
||
2. Начиная с КОМПАС-3D V12, исключенные из расчета объекты считаются не валидными.
|
||
|
||
|
||
## GetAdvancedColor - Получить параметры цвета и визуальных свойств объекта
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL GetAdvancedColor (long* color,
|
||
double* ambient,
|
||
double* diffuse,
|
||
double* specularity,
|
||
double* shininess,
|
||
double* transparency,
|
||
double* emission);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL GetAdvancedColor (COLORREF* color,
|
||
double* ambient,
|
||
double* diffuse,
|
||
double* specularity,
|
||
double* shininess,
|
||
double* transparency,
|
||
double* emission);
|
||
Выходные параметры:
|
||
color - цвет,
|
||
ambient - общий свет,
|
||
diffuse - диффузия,
|
||
specularity - зеркальность,
|
||
shininess - блеск,
|
||
transparency - прозрачность,
|
||
emission - излучение.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения.
|
||
```
|
||
|
||
|
||
## GetBodyParts - Получить указатель на интерфейс частей тела
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
LPBODYPARTS GetBodyParts();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPDISPATCH GetBodyParts();
|
||
Возвращаемое значение:
|
||
указатель на интерфейс массива тел ksBodyParts или IBodyParts. - если объект состоит из частей,
|
||
NULL - если объект не имеет частей.
|
||
Примечание:o
|
||
Метод позволяет получить интерфейс частей тела. Если объект не имеет частей, то метод вернет NULL. Части тела могут быть у операций вырезания.
|
||
```
|
||
|
||
|
||
## GetDefinition - Получить указатель на интерфейс параметров объектов и элементов
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH GetDefinition();
|
||
Возвращаемое значение:
|
||
- указатель на интерфейс IDispatch.
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPUNKNOWN GetDefinition();
|
||
Возвращаемое значение:
|
||
- указатель на интерфейс IUnknown.
|
||
```
|
||
Примечание:
|
||
1. Для доступа к параметрам объекта полученный интерфейс необходимо привести к соответствующему типу.
|
||
Интерфейсы элементов модели...
|
||
2. Интерфейсы параметров объектов и элементов выбираются из перечня Obj3dType.
|
||
|
||
|
||
## GetFeature - Получить указатель на интерфейс объекта дерева, связанного с данным объектом
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH GetFeature();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPFEATURE GetFeature();
|
||
Возвращаемое значение:
|
||
- указатель на интерфейс ksFeature или IFeature - объект дерева, связанный с данным объектом.
|
||
```
|
||
|
||
|
||
## GetParent - Получить указатель на интерфейс компонента, владеющего элементом (например, интерфейс детали, владеющей указанной гранью)
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
LPDISPATCH GetParent()
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
LPPART GetParent();
|
||
Возвращаемое значение:
|
||
- указатель на интерфейс ksPart или IPart.
|
||
```
|
||
|
||
|
||
## hidden - Состояние видимости объекта
|
||
|
||
Тип данных: BOOL
|
||
Значения свойства:
|
||
| TRUE | - объект скрытый, |
|
||
| --- | --- |
|
||
| FALSE | - объект видимый. |
|
||
Синтаксис Automation:
|
||
```
|
||
hidden = iEntity.hidden Получить свойство (* )
|
||
iEntity.hidden = hidden Установить свойство (* )
|
||
hidden = iEntity.GetHidden() Получить свойство (**)
|
||
iEntity.SetHidden(hidden) Установить свойство (**)
|
||
```
|
||
|
||
|
||
## IsCreated - Получить признак существования объекта
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsCreated();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsCreated();
|
||
Возвращаемое значение:
|
||
TRUE - если объект уже создан,
|
||
FALSE - если объект удален или еще не создан.
|
||
```
|
||
|
||
|
||
## IsIt - Проверить объект на соответствие указанному типу
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL IsIt (short objType);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL IsIt (short objType)
|
||
Входной параметр:
|
||
objType - тип объекта.
|
||
Возвращаемое значение:
|
||
TRUE - если тип объекта указан правильно.
|
||
Типы объектов...
|
||
```
|
||
Примечание:
|
||
Числовой идентификатор типа объекта не должен превышать идентификатора объекта, всегда последнего из Entity.
|
||
|
||
|
||
## MultiBodyParts - Признак того, что компонент состоит из нескольких частей
|
||
|
||
Тип данных: BOOL
|
||
Значения свойства:
|
||
| TRUE | - компонент состоит из нескольких частей, |
|
||
| --- | --- |
|
||
| FALSE | - компонент не состоит из нескольких частей. |
|
||
Синтаксис Automation:
|
||
```
|
||
MultiBodyParts = iEntity.MultiBodyParts Получить свойство (* )
|
||
MultiBodyParts = iEntity.GetMultiBodyParts() Получить свойство (**)
|
||
```
|
||
Примечания:
|
||
Свойство позволяет узнать. состоит ли компонент их нескольких частей.
|
||
В результате работы метода можно получить компонент (деталь), состоящую из нескольких частей. С точки зрения конструктора, деталь должна представлять нечто целое. Частей быть не должно. Следовательно, нужно отыскать в компоненте операции, порождающие несколько частей, и выключить из расчета не нужные, чтобы образовалось целое тело.
|
||
|
||
|
||
## name - Имя элемента трехмерной модели (оси, плоскости, формообразующего элемента)
|
||
|
||
Тип данных: строка
|
||
Синтаксис Automation:
|
||
```
|
||
name = iEntity.name Получить свойство (* )
|
||
iEntity.name = name Установить свойство (* )
|
||
name = iEntity.GetName() Получить свойство (**)
|
||
iEntity.SetName(name) Установить свойство (**)
|
||
```
|
||
|
||
|
||
## SetAdvancedColor - Изменить параметры цвета и визуальных свойств объекта
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL SetAdvancedColor (long color,
|
||
double ambient,
|
||
double diffuse,
|
||
double specularity,
|
||
double shininess,
|
||
double transparency,
|
||
double emission);
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL SetAdvancedColor (COLORREF color,
|
||
double ambient,
|
||
double diffuse,
|
||
double specularity,
|
||
double shininess,
|
||
double transparency,
|
||
double emission);
|
||
Входные параметры:
|
||
color - цвет,
|
||
ambient - общий свет,
|
||
diffuse - диффузия,
|
||
specularity - зеркальность,
|
||
shininess - блеск,
|
||
transparency - прозрачность,
|
||
emission - излучение.
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения.
|
||
```
|
||
|
||
|
||
## type - Тип объекта трехмерной модели
|
||
|
||
Тип данных: short
|
||
Значения свойства...
|
||
Синтаксис Automation:
|
||
```
|
||
type = iEntity.type Получить свойство (* )
|
||
iEntity.type = type Установить свойство (* )
|
||
type = iEntity.GetType() Получить свойство (**)
|
||
iEntity.SetType(type) Установить свойство (**)
|
||
```
|
||
Примечание:
|
||
1. Числовой идентификатор типа объекта не должен превышать идентификатор объекта, всегда последнего из Entity.
|
||
2. Свойство только для чтения.
|
||
|
||
|
||
## Update - Изменить свойства объекта (используя ранее установленные свойства)
|
||
|
||
Синтаксис Automation:
|
||
```
|
||
BOOL Update();
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
BOOL Update();
|
||
Возвращаемое значение:
|
||
TRUE - в случае успешного завершения.
|
||
```
|
||
Примечание:
|
||
1. Изменение параметров объекта через интерфейс его параметров не приводит к перестроению модели.
|
||
2. Для перестроения объекта в модели (активизации текущих изменений) необходимо вызвать данный метод.
|
||
Если свойству ksPart::needRebuild компонента, которому принадлежит данный объект, установлено значение TRUE, то вызов данного метода приведет также к перестроению модели. Если свойству ksPart::needRebuild установлено значение FALSE, то данный метод только передаст изменения свойств модельному объекту, и для реального (визуального) изменения этих свойств нужно вызвать метод ksPart::RebuildModelEx, с параметром redraw равным TRUE.
|
||
3. Объект должен быть предварительно создан методом Create.
|
||
|
||
|
||
## useColor - Используемый цвет (цвет источника, цвет хозяина, цвет слоя, собственный цвет)
|
||
|
||
Тип данных: UseColor
|
||
Синтаксис Automation:
|
||
```
|
||
useColor = Object.useColor Получить свойство(* )
|
||
Object.useColor = useColor Установить свойство (* )
|
||
useColor = Object.GetUseColor() Получить свойство (**)
|
||
Object.SetUseColory( useColor ) Установить свойство (**)
|
||
```
|