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

3.0 KiB

title, type, api, tags, sources
title type api tags sources
ksGetSpcDocumentPagesCount - Получить количество листов документа-спецификации guide
api7
guide
api7
ksgetspcdocumentpagescount
ksgetspcdocumentpagescount.html

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

ksGetSpcDocumentPagesCount - Получить количество листов документа-спецификации

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

int ksGetSpcDocumentPagesCount (reference spcDoc);
Входные параметры:
spcDoc    - указатель на документ-спецификацию (если spcDoc = 0, функция работает для текущей спецификации).
Возвращаемое значение:
количество листов документа-спецификации.

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

//функция для декомпозирования текущей спецификации и помещения ее во фрагмент //найдем текущий документ спецификацию reference iDoc = CreateIterator (SPC_DOCUMENT_OBJ , 0); if (iDoc) { reference pDoc = MoveIterator (iDoc, 'F'); if (pDoc) { do { int state; if (GetObjParam (pDoc, &state, sizeof (state), DOCUMENT_STATE) && state == stACTIVE) break; pDoc = MoveIterator(iDoc, 'N'); } while (pDoc); } DeleteIterator(iDoc); //указатель на итератор if (pDoc) { //найдем количество листов спецификации int pageCount = ksGetSpcDocumentPagesCount (pDoc); //найдем габариты одного листа спецификации RectParam spcGabarit; GetObjGabaritRect (pDoc, &spcGabarit); //создадим фрагмент DocumentParam doc; memset (&doc, 0, sizeof (doc)); doc.regim = 0; doc.type = 3; CreateDocument (&doc); for (int i = 0; i < pageCount; i) { //получили временную группу i-го листа спецификации reference group = DecomposeObj (pDoc, //указатель на объект 0, //уровень разбиения: //отрезки,дуги,тексты,точки; 0.4, //стрелка прогиба uint8(i1));// 0 - разбиение объекта // в СК вида, // 1- в СК листа if (group) { int column=i%3; double x = (spcGabarit.pTop.x-spcGabarit.pBot.x 5)*column; int row = i/3; double y = (spcGabarit.pTop.y-spcGabarit.pBot.y 5)*row; //сдвинули группу MoveObj (group, x, -y); //поставили в модель StoreTmpGroup (group); //указатель группы ClearGroup (group); DeleteObj(group); } } char buf[128]; sprintf (buf, "Преобразовано %d листов СП", pageCount); Message (buf); } else Error("Спецификация должна быть текущей"); }