e1337e4016
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>
203 lines
12 KiB
Markdown
203 lines
12 KiB
Markdown
---
|
||
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
|