Files
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

12 KiB
Raw Permalink Blame History

title, type, api, domain, tags, sources
title type api domain tags sources
Параметры, определяемые пользователем(Интерфейс ksUserParam) interface
api7
2d
interface
api7
2d
ksuserparam
ksuserparam.html

*API интерфейсов. Версия 5 > Графический документ (Интерфейсы - ksDocument2D и IDocument2D) *

Параметры, определяемые пользователем(Интерфейс ksUserParam)

Интерфейс пользовательских параметров. Примечания: Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct. Интерфейс используется для передачи массива пользовательских данных:

  1. Установить/получить массив значений ячеек таблицы атрибутов. Смотрите: ksAttributeParam::SetValues, ksAttributeParam::GetValues.
  2. Установить/получить значение ячейки в таблице атрибута. Смотрите: ksAttributeObject::ksSetAttrValue, ksAttributeObject::ksSetAttrValue.
  3. Установить/получить данные строки в таблице атрибута. Смотрите: ksAttributeObject::ksGetAttrRow, ksAttributeObject::ksSetAttrRow.
  4. Добавить строку к табличному атрибуту. Смотрите: ksAttributeObject::ksAddAttrRow.
  5. Установить/получить пользовательские параметры макроэлемента. Смотрите: ksDocument2D::ksSetMacroParam, ksDocument2D::ksGetMacroParam.
  6. Получить запись из базы данных. Смотрите: ksDataBaseObject::ksReadRecord.
  7. Изменить значение компоненты в колонке. Смотрите: ksSpecification::ksSpcChangeValue.
  8. Установить/получить пользовательские параметры компоненты (модели подсборки).
  9. Установить/получить пользовательские параметры макроэлемента 3D. Смотрите: ksMacro3DDefinition::SetUserParam, ksMacro3DDefinition::GetUserParam.
  10. Для поддержки Unicode в интерфейс ksLtVariant добавлено свойство ksLtVariant::wstrVal. В динамический массив для строковых данных требуется добавлять однотипные типы строковых параметров. Они должны быть или все типа ltv_WStr или все типа ltv_Str. Это критично при работе с атрибутами. При получении пользовательских параметров требуется использовать тот же тип, что и при записи параметров. При работе с базой данных при создании отношения с помощью функции ksDataBaseObject::ksRChar требуется в массив добавить ksLtVariant с типом ltv_Str. При использовании функции ksDataBaseObject::ksRCharW требуется добавить ksLtVariant с типом ltv_WStr.
  11. Одновременное использование методов ksUserParam::userParams и ksUserParam::GetUserArray и ksUserParam::SetUserArray не допускается. Смотрите также: KompasObject

fileName - Имя файла библиотеки, в которой находится функция редактирования макроэлемента

Пример... Интерфейс… Тип данных: строка Синтаксис Automation:

fileName = iUserParam.fileName    Получить свойство (* )
iUserParam.fileName = fileName    Установить свойство (* )
fileName = iUserParam.GetFileName()    Получить свойство (**)
iUserParam.SetFileName( fileName )    Установить свойство (**)

Примечание: Свойство используется для сохранения/получения пользовательских параметров макроэлемента. Смотрите также: ksDocument2D::ksSetMacroParam ksDocument2D::ksGetMacroParam

ksUserParam::fileName - пример использования

Получить имя файла пользовательской библиотеки, при помощи которой можно редактировать компонент. //получить интерфейс ksUserParam у KompasObject ksUserParam userParam(kompasObject.GetParamStruct(ko_UserParam)); userParam.Init(); //заполнить параметры интерфейса ksPart.GetUserParam(userParam); //Получить имя файла пользовательской библиотеки BSTR userLibraryFileName = userParam.fileName;

GetUserArray - Получить указатель на интерфейс динамического массива ksDynamicArray типа LTVARIANT_ARR

Интерфейс… Синтаксис Automation:

LPDISPATCH GetUserArray();
Возвращаемое значение:
- указатель на интерфейс динамического массива ksDynamicArray типа LTVARIANT_ARR.
Примечание.
Для поддержки Unicode в интерфейс ksLtVariant добавлено свойство ksLtVariant::wstrVal. В динамический массив для строковых данных требуется добавлять однотипные типы строковых параметров. Они должны быть или все типа ltv_WStr, или все типа ltv_Str. Это критично при работе с атрибутами.
При получении пользовательских параметров требуется использовать тот же тип, что и при записи параметров. При работе с базой данных при создании отношения с помощью функции ksDataBaseObject::ksRChar требуется в массив добавить ksLtVariant с типом ltv_Str. При использовании функции ksDataBaseObject::ksRCharW требуется добавить ksLtVariant с типом ltv_WStr.
Смотрите также: ksLtVariant

Init - Инициализировать параметры

Интерфейс… Синтаксис Automation:

BOOL Init();
Возвращаемое значение:
TRUE    - в случае удачного завершения.

Примечания:

  1. Метод обнуляет все пользовательские параметры.
  2. Динамический массив не создается.

libName - Имя библиотеки, в которой находится функция редактирования макроэлемента

Пример... Интерфейс… Тип данных: строка Синтаксис Automation:

libName = iUserParam.libName    Получить свойство (* )
iUserParam.libName = libName    Установить свойство (* )
libName = iUserParam.GetLibName()    Получить свойство (**)
iUserParam.SetLibName( libName )    Установить свойство (**)

Примечание: Свойство используется для сохранения/получения пользовательских параметров макроэлемента. Смотрите также: ksDocument2D::ksSetMacroParam ksDocument2D::ksGetMacroParam

GetUserLibraryCommand - Получить номер команды пользовательской библиотеки, при помощи которой можно редактировать компонент

Аналог данного метода при использовании Automation - ksUserParam::number. Пример... Синтаксис COM:

long GetUserLibraryCommand();
Возвращаемое значение:
Номер библиотечной команды    - в случае успешного завершения,
-1    - если библиотеки нет.

number - Номер функции редактирования

Пример... Интерфейс… Тип данных: long Синтаксис Automation:

number = iUserParam.number    Получить свойство (* )
iUserParam.number = number    Установить свойство (* )
number = iUserParam.GetNumber()    Получить свойство (**)
iUserParam.SetNumber( number )    Установить свойство (**)

Примечание: Свойство используется для сохранения/получения пользовательских параметров макроэлемента. Смотрите также: ksDocument2D::ksSetMacroParam ksDocument2D::ksGetMacroParam

ksUserParam::number - пример использования

Получить номер команды пользовательской библиотеки, при помощи которой можно редактировать компонент. //получить интерфейс ksUserParam у KompasObject ksUserParam userParam( kompasObject.GetParamStruct(ko_UserParam) ); userParam.Init(); //заполнить параметры интерфейса ksPart.GetUserParam( userParam ); //Получить номер команды long number = userParam.number;

SetUserArray - Установить динамический массив ksDynamicArray типа LTVARIANT_ARR

Интерфейс… Синтаксис Automation:

BOOL SetUserArray (LPDISPATCH Array);
Входной параметр:
Array    - указатель на интерфейс динамического массива ksDynamicArray типа LTVARIANT_ARR.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
Примечание.
Для поддержки Unicode в интерфейс ksLtVariant добавлено свойство ksLtVariant::wstrVal. В динамический массив для строковых данных требуется добавлять однотипные типы строковых параметров. Они должны быть или все типа ltv_WStr, или все типа ltv_Str. Это критично при работе с атрибутами.
При получении пользовательских параметров требуется использовать тот же тип, что и при записи параметров. При работе с базой данных при создании отношения с помощью функции ksDataBaseObject::ksRChar требуется в массив добавить ksLtVariant с типом ltv_Str. При использовании функции ksDataBaseObject::ksRCharW требуется добавить ksLtVariant с типом ltv_WStr.
Смотрите также: ksLtVariant

userParams - Безопасный массив SAFEARRAY байтов пользовательских параметров объекта

Интерфейс… Тип данных: VARIANT Синтаксис Automation:

userParams = iUserParam.UserParams    Получить свойство (* )
iUserParam.UserParams = userParams    Установить свойство (* )
userParams = iUserParam.GetUserParams()    Получить свойство (**)
iUserParam.SetUserParams    Установить свойство (**)
Значение свойства:
Принимает\возвращает безопасный массив SAFEARRAY типа VT_ARRAY    VT_UI1.

Примечание: Свойство используется для сохранения/получения пользовательских параметров макроэлемента в виде безопасного массива SAFEARRAY байтов. Смотрите также ksUserParam::GetUserArray ksUserParam::SetUserArray