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>
12 KiB
title, type, api, domain, tags, sources
| title | type | api | domain | tags | sources | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Параметры, определяемые пользователем(Интерфейс ksUserParam) | interface |
|
|
|
|
*API интерфейсов. Версия 5 > Графический документ (Интерфейсы - ksDocument2D и IDocument2D) *
Параметры, определяемые пользователем(Интерфейс ksUserParam)
Интерфейс пользовательских параметров. Примечания: Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct. Интерфейс используется для передачи массива пользовательских данных:
- Установить/получить массив значений ячеек таблицы атрибутов. Смотрите: ksAttributeParam::SetValues, ksAttributeParam::GetValues.
- Установить/получить значение ячейки в таблице атрибута. Смотрите: ksAttributeObject::ksSetAttrValue, ksAttributeObject::ksSetAttrValue.
- Установить/получить данные строки в таблице атрибута. Смотрите: ksAttributeObject::ksGetAttrRow, ksAttributeObject::ksSetAttrRow.
- Добавить строку к табличному атрибуту. Смотрите: ksAttributeObject::ksAddAttrRow.
- Установить/получить пользовательские параметры макроэлемента. Смотрите: ksDocument2D::ksSetMacroParam, ksDocument2D::ksGetMacroParam.
- Получить запись из базы данных. Смотрите: ksDataBaseObject::ksReadRecord.
- Изменить значение компоненты в колонке. Смотрите: ksSpecification::ksSpcChangeValue.
- Установить/получить пользовательские параметры компоненты (модели подсборки).
- Установить/получить пользовательские параметры макроэлемента 3D. Смотрите: ksMacro3DDefinition::SetUserParam, ksMacro3DDefinition::GetUserParam.
- Для поддержки Unicode в интерфейс ksLtVariant добавлено свойство ksLtVariant::wstrVal. В динамический массив для строковых данных требуется добавлять однотипные типы строковых параметров. Они должны быть или все типа ltv_WStr или все типа ltv_Str. Это критично при работе с атрибутами. При получении пользовательских параметров требуется использовать тот же тип, что и при записи параметров. При работе с базой данных при создании отношения с помощью функции ksDataBaseObject::ksRChar требуется в массив добавить ksLtVariant с типом ltv_Str. При использовании функции ksDataBaseObject::ksRCharW требуется добавить ksLtVariant с типом ltv_WStr.
- Одновременное использование методов 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 - в случае удачного завершения.
Примечания:
- Метод обнуляет все пользовательские параметры.
- Динамический массив не создается.
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