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

4.1 KiB
Raw Blame History

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

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

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

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

int ksGetSpcTableColumn (char * nameLib,
unsigned int numb,
unsigned char additioanalCol);
Входные параметры:
nameLib    - имя библиотеки стилей спецификаций,
numb    - номер стиля в библиотеке,
additioanalCol    - признак колонок: 0 - колонки таблицы спецификации, 1 - дополнительные колонки.
Возвращаемое значение:
количество колонок для стиля спецификации в текущем документе.    - в случае успеха,
0    - в случае неудачи.

Примечания:

  1. Если документ - спецификация, то параметры nameLib и numb не используются.
  2. Если количество исполнений больше числа колонок "количество" в бланке спецификации, то количество колонок выдается с учетом всех исполнений.

ksGetSpcTableColumn, ksGetSpcColumnType, ksGetSpcColumnNumb - пример использования

char spwName[250]; int j1; //выберем спецификацию if((j1 = ksChoiceFile(".spw","спецификации(.spw)|.spw|Все файлы (.)|.*|", spwName, 250, 1)) != 0){ //открыть документ reference pDoc = OpenDocument (spwName, 0); //создать итератор по объектам СП reference iter = CreateSpcIterator(0, 0, 0); //встаем на первый объект спецификации reference spcObj = MoveIterator(iter, 'F'); if (spcObj && ExistObj(spcObj)) { do { //узнаем количество колонок у базового объекта спецификации int count = ksGetSpcTableColumn(0, 0, 0); // пройдем по всем колонкам for (uint i = 1; i <= count; i) { unsigned int columnType, typeNumb, block; //для текущего номера определим тип колонки, номер исполнения и блок if (ksGetSpcColumnType(spcObj, //объект спецификации i, // номер колонки, начиная с 1 &columnType, //тип колонки SPC_CLM_FORMAT...SPC_CLM_USER &typeNumb, //номер колонки данного типа &block)) { //номер блока char buf[250]; //возьмем текст ksGetSpcObjectColumnText (spcObj, //объект спецификации columnType, //тип колонки SPC_CLM_FORMAT...SPC_CLM_USER typeNumb, //номер колонки данного типа block, buf, //указатель 250); //длина строки s char buf1 [128]; sprintf (buf1, "\ntype = %d номер =%d block = %d", columnType,typeNumb,block); strcat (buf, buf1); Message(buf); //по типу колонки, номеру исполнения и блоку определим номер колонки int colNumb = ksGetSpcColumnNumb( spcObj, //объект спецификации columnType, //тип колонки SPC_CLM_FORMAT...SPC_CLM_USER typeNumb, //номер колонки данного типа начиная block); //номер блока sprintf (buf, "i = %d colNumb =%d", i, colNumb); Message(buf); } } //встаем на следующий объект спецификации spcObj = MoveIterator(iter, 'N'); } while(spcObj && ExistObj(spcObj)); } DeleteIterator(iter); CloseDocument(pDoc); }