Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/ksuserparam.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

203 lines
12 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Параметры, определяемые пользователем(Интерфейс ksUserParam)"
type: interface
api: [api7]
domain: [2d]
tags: [interface, api7, 2d, ksuserparam]
sources:
- 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