---
title: "Интерфейс операции вычитания компонентов (ksMoldCavityDefinition, IMoldCavityDefinition)"
type: interface
api: [api7]
domain: [2d, assembly, feature]
tags: [interface, api7, 2d, assembly, feature, ksmoldcavitydefinition]
sources:
  - ksmoldcavitydefinition.html
---

*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart  > Объект модели (Интерфейсы ksEntity и IEntity)  > Интерфейсы ksEntity и iEntity - Интерфейс элемента модели (оси, плоскости, формообразующего элемента)  > Интерфейсы поверхностей *


## Интерфейс операции вычитания компонентов (ksMoldCavityDefinition, IMoldCavityDefinition)

Интерфейс операции вычитания компонентов.
| ksMoldCavityDefinition | - интерфейс Automation |
| --- | --- |
| IMoldCavityDefinition | - интерфейс COM |
Примечания.
1. Позволяет создать полость, имеющую форму другой детали.
2. Операция доступна в режиме редактирования детали в контексте сборки.
3. Для входа в режим редактирования детали в контексте сборки используется функция ksPart::BeginEdit.
4. В операции вычитания могут участвовать только детали. Вычесть из детали подсборку невозможно.
5. Если необходимо, чтобы размеры создаваемой полости отличались от размеров вычитаемой детали, нужно задать коэффициент масштабирования в процентах scale.
6. Данный интерфейс можно получить, используя метод интерфейса элемента модели ksEntity::GetDefinition или IEntity::GetDefinition.


## GetScaleCentre - Получить вершину, относительно которой выполняется масштабирование

Синтаксис Automation:
```
LPDISPATCH GetScaleCentre();
```
Синтаксис COM:
```
LPENTITY GetScaleCentre();
Возвращаемое значение:
- указатель на интерфейс коллекции компонентов ksEntity или IEntity,
NULL    - если вершина не задана.
Примечания.
В качестве вершины могут использоваться характерные точки графических объектов в эскизах, (например, конец отрезка, центр окружности и т.п.) или начала координат. Если вершина не указана, то используется точка, являющаяся центром масс деталей.
```


## PartArray - Получить массив вычитаемых компонентов

Синтаксис Automation:
```
LPDISPATCH PartArray();
```
Синтаксис COM:
```
LPPARTCOLLECTION PartArray();
Возвращаемое значение:
- Указатель на интерфейс коллекции компонентов ksPartCollection или IPartCollection.
```


## scale - Коэффициент маcштабирования в %

Тип данных: double
Синтаксис Automation:
```
scale = iObject.scale    Получить свойство (* )
iObject.scale = scale    Установить свойство(* )
scale = iObject.GetScale()    Получить свойство (**)
iObject.SetScale (scale)    Установить свойство (**)
```


## SetScaleCentre - Установить вершину, относительно которой выполняется масштабирование

Синтаксис Automation:
```
VARIANT_BOOL SetScaleCentre( LPDISPATCH vert );
```
Синтаксис COM:
```
BOOL SetScaleCentre( LPENTITY vert );
Входные параметры:
vert    - Указатель на интерфейс коллекции компонентов ksEntity или IEntity.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи
Примечания.
В качестве вершины могут использоваться характерные точки графических объектов в эскизах (например, конец отрезка, центр окружности и т.п.) или начала координат. Если вершина не указана, то используется точка, являющаяся центром масс деталей.
```
