---
title: "ksReadFragmentToGroup - Вставить фрагмент россыпью во временную группу"
type: guide
api: [api7]
tags: [guide, api7, ksreadfragmenttogroup]
sources:
  - ksreadfragmenttogroup.html
---

*API экспортных функций > Функции работы с графическим документом  > Функции работы с фрагментами и библиотеками фрагментов  > Функции работы с фрагментами  > Фрагменты *


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

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


## ksReadFragmentToGroup, ksChoiceFile - Пример использования

char frwName[250];
int j1;
do
{
//выберем фрагмент
if ((j1 = ksChoiceFile ("*.frw","фрагменты(*.frw)|*.frw|Все файлы (*.*)|*.*|",
frwName,128,1))!=0)
{
double x, y;
//подготовим структуры фантома и запросов для Placement
struct Phantom rub;
rub.type1.xBase = 0;
rub.type1.yBase = 0;
rub.type1.scale = 1;
rub.phType = 1;
//во временную группу положим вставку фрагмента,
//взятую из библиотеки фрагментов
PlacementParam par;
par.xBase = 0;
par.yBase = 0;
par.ang = 0;
par.scale = 1 ;
int j;
do
{
//если нужно вставить несколько фрагментов,
//группу лучше порождать новую,
//так как вместе с геометрией могут прийти атрибуты,
//объекты спецификации, стили, которые связаны с геометрией.
//При простом копировании группы эта связь будет потеряна.
rub.type1.gr = ksReadFragmentToGroup (frwName, // имя фрагмента
0, // на свои слои,
&par); //параметры привязки
if (rub.type1.gr && (j = Placement(NULL, &x, &y, &rub.type1.ang, &rub))!=0)
{
//сдвигаем группу
MoveObj(rub.type1.gr, x, y);
//поворачиваем группу
if (fabs(rub.type1.ang) > 0.001)
RotateObj (rub.type1.gr, x, y, rub.type1.ang);
//ставим группу в модель
StoreTmpGroup (rub.type1.gr);
ClearGroup (rub.type1.gr);
DeleteObj (rub.type1.gr);
}
else
{
if (rub.type1.gr)
DeleteObj(rub.type1.gr);
j = 0;
}
}
while (j);
}
}
while(j1);
