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>
4.1 KiB
title, type, api, tags, sources
| title | type | api | tags | sources | |||||
|---|---|---|---|---|---|---|---|---|---|
| ksGetSpcTableColumn - Получить количество колонок для стиля спецификации в текущем документе | guide |
|
|
|
*API экспортных функций > Функции работы с документом-спецификацией *
ksGetSpcTableColumn - Получить количество колонок для стиля спецификации в текущем документе
Пример... Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcTableColumn. Синтаксис:
int ksGetSpcTableColumn (char * nameLib,
unsigned int numb,
unsigned char additioanalCol);
Входные параметры:
nameLib - имя библиотеки стилей спецификаций,
numb - номер стиля в библиотеке,
additioanalCol - признак колонок: 0 - колонки таблицы спецификации, 1 - дополнительные колонки.
Возвращаемое значение:
количество колонок для стиля спецификации в текущем документе. - в случае успеха,
0 - в случае неудачи.
Примечания:
- Если документ - спецификация, то параметры nameLib и numb не используются.
- Если количество исполнений больше числа колонок "количество" в бланке спецификации, то количество колонок выдается с учетом всех исполнений.
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); }