Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/ksfragmentlibrary.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
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>
2026-05-26 20:00:05 +03:00

10 KiB

title, type, api, tags, sources
title type api tags sources
Библиотека фрагментов (Интерфейс ksFragmentLibrary) interface
api7
interface
api7
ksfragmentlibrary
ksfragmentlibrary.html

*API интерфейсов. Версия 5 > Интерфейсы работы с библиотеками *

Библиотека фрагментов (Интерфейс ksFragmentLibrary)

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

ksFragmentLibrary - Открыть библиотеку фрагментов

Функция не поддерживается Пример... Аналог данной функции при использовании Automation - метод ksFragmentLibrary::ksFragmentLibraryOperation. Синтаксис:

int ksFragmentLibrary (char * libName, int type);
Входные параметры:
libName    - имя файла библиотеки фрагментов,
type    - тип действия с библиотекой фрагментов.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.

Примечание:

  1. При выполнении операций типа -1, 0, 1, 4, 5 libName - полное имя файла библиотеки фрагментов. При выполнении операций типа 2, 3 libName - полное имя файла библиотеки фрагментов путь внутри библиотеки с именем редактируемого фрагмента.
  2. При использовании Unicode следует использовать функцию ksFragmentLibraryW.

ksFragmentLibraryW - Открыть библиотеку фрагментов (Unicode)

Функция не поддерживается Аналог данной функции при использовании Automation - метод ksFragmentLibrary::ksFragmentLibraryOperation. Синтаксис:

int LIB_FUNC ksFragmentLibraryW (LPWSTR libName, int type);
Входные параметры:
libName    - имя файла библиотеки фрагментов,
type    - тип действия с библиотекой фрагментов.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.

Примечание:

  1. При выполнении операций типа -1, 0, 1, 4, 5 libName - полное имя файла библиотеки фрагментов.
  2. При выполнении операций типа 2, 3 libName - полное имя файла библиотеки фрагментов путь внутри библиотеки с именем редактируемого фрагмента.
  3. При использовании ANSI следует использовать функцию ksFragmentLibrary.

ksFragmentLibrary - Пример использования

char libName[250]; int j1; //выберем библиотеку фрагментов if (ChoiceFile (".lfr","Библиотеки фрагментов(.lfr)|.lfr|Все файлы (.)|.*|", libName, 128)) { char buf[250]; do { //выбрать фрагмент в библиотеке фрагментов if ((j1 = ksChoiceFragmentFromLib(libName, buf, 250))!=0) { //выделим имя вставки char * insertName = strrchr (buf, '|'); if (insertName) { double x, y; //подготовим структуры фантома и запросов для Placement struct Phantom rub; rub.type1.xBase = 0; rub.type1.yBase = 0; rub.type1.scale = 1; rub.phType = 1; reference pDefFrg; // создадим описание вставки фрагментов pDefFrg = FragmentDefinition (buf, //имя файла фрагмента insertName1, //имя вставки 1); // внешней ссылкой if (pDefFrg) { //во временную группу положим вставку фрагмента, //взятую из библиотеки фрагментов rub.type1.gr = NewGroup (1); // временная группа PlacementParam par; par.xBase = 0; par.yBase = 0; par.ang = 0; par.scale = 1 ; //создаем объект "вставка фрагмента" reference p = InsertFragment (pDefFrg, // указатель определения //фрагмента 0, //на свои слои &par); //параметры привязки EndGroup(); int j; do { rub.type1.ang = 0; //запрос точки и угла поворота фрагмента if ((j = Placement(NULL, &x, &y, &rub.type1.ang, &rub))!=0) { CopyObj (p, // указатель на графический объект 0,0, // базовая точка объекта x, y, //точка, куда копировать 1, // масштаб rub.type1.ang);// угол поворота а градусах } } while (j); DeleteObj (rub.type1.gr); } else Error ("Ошибка создания описания вставки фрагмента"); } else Error("Имя вставки не определено"); } } while (j1); }

ksAddFragmentToLibrary - Добавить фрагмент в библиотеку

Функция не поддерживается Аналог данного метода при использовании API экспортных функций - ksAddFragmentToLibrary. Синтаксис Automation:

long ksAddFragmentToLibrary (BSTR libName,
BSTR frwName);
Входные параметры:
libName    - имя фрагмента в библиотеке,
libFile    - имя файла фрагмента.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.

Примечание: Допускается задание имени фрагмента следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец", где c:\gr\lib1.lfr - имя файла библиотеки фрагментов, |детали|литье| - разделы, подразделы внутри библиотеки фрагментов, фланец - имя фрагмента.

ksCheckFragmentLibrary - Проверить, открыта ли библиотека фрагментов

Функция не поддерживается Аналог данного метода при использовании API экспортных функций - ksCheckFragmentLibrary. Синтаксис Automation:

long ksCheckFragmentLibrary (BSTR libName,
BOOL possibleMessage);
Входные параметры:
libName    - имя файла библиотеки фрагментов,
possibleMessage    - признак выдачи сообщения: TRUE - выдать сообщение, FALSE - не выдавать сообщение.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.

ksChoiceFragmentFromLib - Выбрать имя фрагмента или папки в библиотеке фрагментов

Аналог данного метода при использовании API экспортных функций - ksChoiceFragmentFromLib. Синтаксис Automation:

BSTR ksChoiceFragmentFromLib (BSTR frwLibFile,
long* type);
Входные параметры:
frwLibFile    - имя файла библиотеки фрагментов,
type    - тип возвращаемого значения: 3 - имя фрагмента, 2 - имя папки, 1- корень библиотеки фрагментов, 0 - ошибка.
Возвращаемое значение:
имя фрагмента.

Примечание: Библиотека фрагментов открывается в режиме диалога. Ее редактирование запрещено. Enter - выбор имени фрагмента. Esc - отказ.

ksExistFragmentInLibrary - Проверить наличие указанного фрагмента или раздела в библиотеке фрагментов

Аналог данного метода при использовании API экспортных функций - ksExistFragmentInLibrary. Синтаксис Automation:

long ksExistFragmentInLibrary (BSTR frwName);
Входной параметр:
name    - имя файла библиотеки моделей.
Возвращаемое значение:
1    - указанный фрагмент или папка есть в библиотеке,
0    - указанного фрагмента или папки нет,
-1    - нет указанной библиотеки.

Примечание: Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец", где c:\gr\lib1.lfr - имя файла библиотеки фрагментов, |детали|литье| - разделы, подразделы внутри библиотеки фрагментов, фланец - имя фрагмента.

ksFragmentLibraryOperation - Открыть библиотеку фрагментов

Функция не поддерживается Аналог данного метода при использовании API экспортных функций - ksFragmentLibrary. Синтаксис Automation:

long ksFragmentLibraryOperation (LPCTSTR libName, long type);
Входные параметры:
libName    - имя файла библиотеки фрагментов,
type    - тип действия.
Типы действий с библиотекой фрагментов...
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.

Примечание: При выполнении операций типа -1, 0, 1, 4, 5 libName - полное имя файла библиотеки фрагментов. При выполнении операций типа 2, 3 libName - полное имя файла библиотеки фрагментов + путь внутри библиотеки с именем редактируемого фрагмента.