Files
kompas3d-mcp/docs/Kompas3D_SDK/guides/kswritereadgroup.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

59 lines
2.4 KiB
Markdown

---
title: "ksWriteGroupToClip, ksReadGroupFromClip - пример использования"
type: guide
api: [api7]
tags: [guide, api7, kswritereadgroup]
sources:
- kswritereadgroup_clip_example.html
---
//делаем активным документ 1.cdw
OpenDocument("c:\\1.cdw", 0);
double x, y, x1,y1;
RequestInfo info;
memset(&info, 0, sizeof(info));
info.prompt = "Укажите начальную точку окна";
if (Cursor(&info, &x, &y, 0)) {
info.prompt = "Укажите конечную точку окна";
Phantom phantom; // ltdefine.h
memset(&phantom, 0, sizeof(phantom));
//Задаем тип резиноыой нити - прямоугольник и передаем в Cursor, чтобы ввести область выделения
phantom.phType = 3; //прямоугольник
phantom.type3.xBase = x;
phantom.type3.yBase = y;
if (Cursor(&info, &x1, &y1, &phantom)) {
//создадим пустую рабочую группу
reference gr = NewGroup(0);
EndGroup();
//помещаем в группу геометрию, которая попала в область выделения
if (SelectGroup(gr, 1, x, y, x1, y1)) {
// группу выделения записываем в буфер обмена
int rez = ksWriteGroupToClip(gr, // указатель на группу
1); // 1 - с копированием; 0 - с удалением из текущего документа
if (rez) {
//делаем активным другой документ, например 1.frw, куда нужно перенести геометрию из буфера обмена
OpenDocument("d:\\0\\1.frw", 0);
//обнулить структуру info;
memset(&info, 0, sizeof(info));
memset(&phantom, 0, sizeof(phantom));
int j = 1;
//группу считываем из буфера обмена
phantom.type1.gr = ksReadGroupFromClip();
phantom.phType = 1; //сдвиг группы
phantom.type1.scale = 1; //сдвиг группы
while (j) {
j = Cursor(&info, &x ,&y, &phantom);
if ( j == -1) {
MoveObj(phantom.type1.gr, x, y); //смещаем группу в новый цетр
StoreTmpGroup(phantom.type1.gr); //временную группу делаем постоянной
ClearGroup(phantom.type1.gr);
DeleteObj(phantom.type1.gr);
//группу считываем из буфера обмена
phantom.type1.gr = ksReadGroupFromClip(); //временная группа
}
}
}
}
}
}