---
title: "Фрагмент (Интерфейс ksFragment)"
type: interface
api: [api7]
domain: [2d]
tags: [interface, api7, 2d, ksfragment]
sources:
  - ksfragment.html
---

*API интерфейсов. Версия 5 > Графический документ (Интерфейсы - ksDocument2D и IDocument2D) *


## Фрагмент (Интерфейс ksFragment)

Интерфейс фрагмента.
Примечание:
Указатель на интерфейс можно получить при помощи метода ksDocument2D::GetFragment.
Смотрите также: KompasObject


## ksCloseLocalFragmentDefinition - Закончить определение локального фрагмента

Аналог данного метода при использовании API экспортных функций - CloseLocalFragmentDefinition.
ИС: оборванная ссылка. раздела "Закончить определение локального фрагмента" в Экспортных функциях больше нет.
Синтаксис Automation:
```
long ksCloseLocalFragmentDefinition();
Возвращаемое значение:
указатель на определение фрагмента    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Все объекты вида, вводимые между операторами ksLocalFragmentDefinition и ksCloseLocalFragmentDefinition, принадлежат локальному фрагменту.
Возвращаемый указатель используется в функциях ksInsertFragment, ksDeleteObj.


## ksFragmentDefinition - Определить фрагмент для вставки

Аналог данного метода при использовании API экспортных функций - FragmentDefinition.
Синтаксис Automation:
```
long ksFragmentDefinition (LPCTSTR fileName,
LPCTSTR comment,
short insertType);
Входные параметры:
fileName    - имя файла фрагмента,
comment    - имя вставки,
insertType    - тип вставки (действителен для внешнего фрагмента): 0 - взять в документ, 1 - внешней ссылкой.
Возвращаемое значение:
указатель на определение фрагмента    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Функция определяет данные для вставки фрагмента (внешнего или находящегося непосредственно в документе) с указанным именем по ссылке.
2. Непосредственно вставка фрагмента (вставка ссылки) производится
с помощью метода ksFragment::ksInsertFragment.
3. Допускается задание имени фрагмента следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец", где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,
|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,
фланец - имя фрагмента.
В этом случае определение создается для фрагмента из библиотеки фрагментов.
4. Определение для данного фрагмента одно - вставок может быть сколько угодно.


## ksInsertFragment - Вставить фрагмент в документ

Аналог данного метода при использовании API экспортных функций - InsertFragment.
Замечание:
Данный метод устарел. Рекомендуется использовать вместо него метод ksInsertFragmentEx.
Синтаксис Automation:
```
long ksInsertFragment (long p,
BOOL curentLayer,
LPDISPATCH par);
Входные параметры:
p    - указатель на фрагмент,
curentLayer    - тип размещения объектов фрагмента по слоям: 0 - на "свои" слои, 1- на текущий слой,
par    - указатель на интерфейс ksPlacementParam.
Возвращаемое значение:
указатель на вставку фрагмента    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksInsertFragmentEx - Вставить фрагмент в документ

Аналог данного метода при использовании API экспортных функций - ksInsertFragmentEx.
Синтаксис Automation:
```
long ksInsertFragmentEx (long p,
BOOL curentLayer,
LPDISPATCH par,
BOOL scaleProjLinesSize);
Входные параметры:
p    - указатель на фрагмент,
curentLayer    - тип размещения объектов фрагмента по слоям: 0 - на "свои" слои, 1- на текущий слой,
par    - указатель на интерфейс ksPlacementParam,
scaleProjLinesSize    - признак масштабирования длины выносных линий размеров: TRUE - выносные линии масштабируются, FALSE - выносные линии не масштабируются.
Возвращаемое значение:
указатель на вставку фрагмента    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksLocalFragmentDefinition - Определить данные для последующей вставки локального фрагмента по ссылке

Аналог данного метода при использовании API экспортных функций - LocalFragmentDefinition.
Синтаксис Automation:
```
long ksLocalFragmentDefinition (LPCTSTR comment);
Входной параметр:
comment    - имя вставки.
Возвращаемое значение:
указатель на определение фрагмента    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Вставка ссылки на фрагмент производится с помощью функции ksInsertFragment. Указатель на определение фрагмента возвращается при окончании описания - функцией ksCloseLocalFragmentDefinition.
Отдельного файла фрагмента нет; "тело" фрагмента хранится в документе.


## ksReadFragment - Вставить фрагмент россыпью в документ

Аналог данного метода при использовании API экспортных функций - ReadFragment.
Синтаксис Automation:
```
long ksReadFragment (LPCTSTR fileName,
BOOL curentLayer,
LPDISPATCH par);
Входные параметры:
fileName    - имя фрагмента,
curentLayer    - тип размещения объектов фрагмента по слоям: 0 - на "свои" слои, 1- на текущий слой,
par    - указатель на интерфейс ksPlacementParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,
|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,
фланец - имя фрагмента.
В этом случае фрагмент берется из библиотеки фрагментов.


## ksReadFragmentToGroup - Вставить фрагмент россыпью во временную группу

Аналог данного метода при использовании API экспортных функций - ksReadFragmentToGroup.
Замечание:
Данный метод устарел. Рекомендуется использовать вместо него метод ksReadFragmentToGroupEx.
Синтаксис Automation:
```
long ksReadFragmentToGroup (LPCTSTR fileName,
BOOL curentLayer,
LPDISPATCH par);
Входные параметры:
fileName    - имя фрагмента,
curentLayer    - тип размещения объектов фрагмента по слоям: 0 - на "свои" слои, 1- на текущий слой,
par    - указатель на интерфейс ksPlacementParam.
Возвращаемое значение:
указатель на временную группу    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,
|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,
фланец - имя фрагмента.
В этом случае фрагмент берется из библиотеки фрагментов.


## ksReadFragmentToGroupEx - Вставить фрагмент россыпью во временную группу

Аналог данного метода при использовании API экспортных функций - ksReadFragmentToGroupEx.
Синтаксис Automation:
```
long ksReadFragmentToGroup (LPCTSTR fileName,
BOOL curentLayer,
LPDISPATCH par
BOOL scaleProjLinesSize);
Входные параметры:
fileName    - имя фрагмента,
curentLayer    - тип размещения объектов фрагмента по слоям: 0 - на "свои" слои, 1- на текущий слой,
par    - указатель на интерфейс ksPlacementParam,
scaleProjLinesSize    - признак масштабирования длины выносных линий размеров: TRUE - выносные линии масштабируются, FALSE - выносные линии не масштабируются.
Возвращаемое значение:
указатель на временную группу    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,
|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,
фланец - имя фрагмента.
В этом случае фрагмент берется из библиотеки фрагментов.


## ksWriteFragment - Записать группу во фрагмент

Аналог данного метода при использовании API экспортных функций - WriteFragment.
Синтаксис Automation:
```
long ksWriteFragment (long gr,
LPCTSTR fileName,
LPCTSTR comment,
double xb,
double yb);
Входные параметры:
gr    - указатель на группу (0 - записывается группа селектирования),
filename    - имя файла фрагмента,
comment    - комментарий для фрагмента,
xb, yb    - координаты точки привязки.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
