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>
9.9 KiB
title, type, api, domain, tags, sources
| title | type | api | domain | tags | sources | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Трехмерное тело (Интерфейсы ksBody, Body) | interface |
|
|
|
|
*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D ) > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart > Объект модели (Интерфейсы ksEntity и IEntity) > Интерфейсы ksEntity и iEntity - Интерфейс элемента модели (оси, плоскости, формообразующего элемента) > Интерфейс массива трехмерных тел (Интерфейсы ksBodyCollection, IBodyCollection) *
Трехмерное тело (Интерфейсы ksBody, Body)
Интерфейс трехмерного тела.
| ksBody | - интерфейс Automation |
|---|---|
| IBody | - интерфейс COM |
| Примечание: |
- Твердое тело состоит из массива граней.
- Данный интерфейс может быть получен от интерфейса коллекции тел ksBodyCollection, IBodyCollection или от интерфейса компонента ksPart, IPart с помощью метода ksPart::GetMainBody, IPart::GetMainBody.
CheckIntersectionWithBody - Проверить наличия пересечений с другим телом
Интерфейс.. Синтаксис Automation:
LPDISPATCH CheckIntersectionWithBody (LPDISPATCH otherBody,
BOOL checkTangent);
Синтаксис COM:
LPINTERSECTIONRESULT CheckIntersectionWithBody (LPBODY otherBody,
BOOL checkTangent);
Входные параметры:
otherBody - тело, с которым проверяется пересечение,
checkTangent - считать касания пересечениями.
Возвращаемое значение:
Интерфейс ksIntersectionResult - в случае успеха,
NULL - если пересечений нет.
CurveIntersection - Рассчитать пересечения с кривой
Интерфейс.. Automation: BOOL CurveIntersection (LPDISPATCH curve, LPDISPATCH fases, LPDISPATCH points); Синтаксис COM:
BOOL CurveIntersection (LPCURVE3D curve,
LPFACECOLLECTION faces,
LPCOORDINATE3DCOLLECTION points);
Входные параметры:
curve - Указатель на интерфейс 3D кривой ksCurve3D.
Выходные параметры:
faces - Коллекция граней пересекаемых кривой ksFaceCollection,
points - Коллекция координат точек пересечений ksCoordinate3dCollection.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
Примечание:
- Координаты точек сортируются по параметру кривой t.
- Параметры faсes, points являются необязательными.
- Заполняются только присланные коллекции.
- Интерфейсы коллекций для заполнения нужно получить с помощью функций: •ksFaceCollection, ksD ocument3D::GetInterface с параметром o3dType = o3d_faceCollection; •ksCoordinate3dCollection, ksDocument3D::GetInterface с параметром o3dType = o3d_coordinate3dCollection.
FaceCollection - Получить указатель на интерфейс массива граней, образующих тело
Интерфейс.. Синтаксис Automation:
LPDISPATCH FaceCollection();
Синтаксис COM:
LPFACECOLLECTION FaceCollection();
Возвращаемое значение:
- указатель на интерфейс ksFaceCollection или IFaceCollection.
GetFeature - Получить объект дерева, связанный с данным телом
Интерфейс.. Синтаксис Automation:
LPDISPATCH GetFeature();
Синтаксис COM:
LPFEATURE GetFeature();
Возвращаемое значение:
- указатель на интерфейс ksFeature или IFeature.
GetGabarit - Получить габарит тела
Синтаксис Automation:
BOOL GetGabarit (double *x1,
double *y1,
double *z1,
double * x2,
double *y2,
double *z2);
Синтаксис COM:
BOOL GetGabarit (double *x1,
double *y1,
double *z1,
double * x2,
double *y2,
double *z2);
Выходные параметры:
x1, y1, z1 - координаты первой вершины габаритного куба,
x2, y2, z2 - координаты второй вершины габаритного куба.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
GetIntersectionFacesWithBody - Определить взаимодействующие грани при пересечении данного тела с другим
Интерфейс.. Синтаксис Automation:
BOOL GetIntersectionFacesWithBody (LPDISPATCH otherBody, VARIANT * intersectionFaces1,
VARIANT * intersectionFaces2,
VARIANT * connectedFaces1,
VARIANT * connectedFaces2);
Синтаксис COM:
BOOL GetIntersectionFacesWithBody (LPBODY otherBody, VARIANT * intersectionFaces1,
VARIANT * intersectionFaces2,
VARIANT * connectedFaces1,
VARIANT * connectedFaces2).
Входные параметры:
otherBody - второе тело.
Выходные параметры:
intersectionFaces1 - пересекаемые грани первого тела,
intersectionFaces2 - пересекаемые грани второго тела,
connectedFaces1 - совпадающие грани первого тела,
connectedFaces2 - совпадающие грани второго тела.
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Примечание: Пересекаемые и совпадающие грани возвращаются в 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.
IsSolid - Является ли объект твердым телом или поверхностью
Интерфейс.. Синтаксис Automation:
BOOL IsSolid();
Синтаксис COM:
BOOL IsSolid();
Возвращаемое значение:
TRUE - объект является твердым телом,
FALSE - объект является поверхностью.
Примечание: Твердое тело может состоять из набора поверхностей.
MassInertiaParam - Получить указатель на интерфейс массово-центровочных характеристик
Интерфейс.. Синтаксис Automation:
LPDISPATCH CalcMassInertiaProperties (long bitVector);
Синтаксис COM:
LPMASSINERTIAPARAM CalcMassInertiaProperties (unsigned int bitVector);
Входной параметр:
bitVector - определяет размерность длины, размерность массы.
Возвращаемое значение:
- указатель на интерфейс ksIMassInertiaParam или IMassInertiaParam.
Примечания: Варианты значений для задания значений bitVector находятся в интервале [ST_MIX_MM..ST_MIX_KG] Пример:
(метры|кг - ST_MIX_M|ST_MIX_KG).
MultiBodyParts - Признак того, что компонент состоит из нескольких частей
Тип данных: BOOL Значения свойства:
| TRUE | - компонент состоит из нескольких частей, |
|---|---|
| FALSE | - компонент не состоит из нескольких частей. |
| Синтаксис Automation: |
MultiBodyParts = iBody.MultiBodyParts Получить свойство (* )
MultiBodyParts = iBody.GetMultiBodyParts() Получить свойство (**)
Примечания: Свойство позволяет узнать состоит ли компонент их нескольких частей. В результате работы свойства можно получить компонент (деталь), состоящую из нескольких частей. С точки зрения конструктора, деталь должна представлять нечто целое. Частей быть не должно. Следовательно, нужно отыскать в компоненте операции, порождающие несколько частей, и выключить из расчета не нужные, чтобы образовалось целое тело.