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>
11 KiB
title, type, api, tags, sources
| title | type | api | tags | sources | |||||
|---|---|---|---|---|---|---|---|---|---|
| Интерфейс IUserDataStorage | interface |
|
|
|
*API интерфейсов. Версия 7 > Документ > Хранилища *
Интерфейс IUserDataStorage
Интерфейс пользовательского хранилища. Иерархия: IKompasAPIObject IUserDataStorage Описание: Хранилище представляет собой именованную «закладку» в коллекции. Для хранилища могут задаваться версии. Хранилище может быть защищено от изменений паролем. Парольная защита не препятствует просмотру содержания хранилища. Данные в хранилище представлены в виде таблицы, состоящей из двух столбцов – данных различных типов и комментария. Примечание: Интерфейс можно получить у коллекции хранилищ, используя свойство IUserDataStorages::Item. Интерфейс IUserDataStorages Интерфейс IUserDataStoragesMng
AddObject - Добавить объект и комментарий в пользовательское хранилище
Синтаксис Automation:
long AddObject( LPCTSTR pass,
const VARIANT & object,
LPCTSTR comment );
Синтаксис COM:
HRESULT AddObject( [in] BSTR Pass,
[in] VARIANT Object,
[in] BSTR Comment,
[out, retval] long* pVal);
Входные параметры:
Pass - пароль,
Object - указатель на объект,
comment - комментарий.
Возвращаемое значение:
- индекс объекта,
Примечание:
- Объект может быть variant'ом с типом VT_INT, VT_I2, VT_I4, VT_R4, VT_R8, VT_DATE, VT_UI1, VT_UINT, VT_BOOL, VT_BSTR, VT_DISPATCH, а также VT_ARRAY с этими типами данных. Индекс массива начинается с нуля.
- Если задан интерфейс VT_DISPATCH и массив объектов VT_ARRAY | VT_DISPATCH, то под объектом подразумевается указатель на IDispatch от объектов API. Они также будут сохранены вместе с документом и при следующем запросе найдены.
- Индексация массивов должна начинаться с нуля.
- Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.
- Под объектом API следует понимать объекты: для 3D хранилища - наследник от IModelObject, для 2D хранилища - наследник от IDrawingObject (кроме ILayer).
AddObjects - Добавить объекты пользовательского хранилища и комментарии к ним
Синтаксис Automation:
BOOL AddObjects( BSTR Pass, VARIANT Objects, VARIANT Comments );
Синтаксис COM:
HRESULT AddObjects( BSTR Pass, VARIANT Objects, VARIANT Comments, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
Входные параметры:
Pass - пароль,
Objects - список данных в виде массива VT_ARRAY VT_VARIANT,
comments - список комментариев в виде массива VT_ARRAY VT_BSTR.
Версия Компас v21
Clear - Очистить хранилище, удалив все объекты
Синтаксис Automation:
BOOL Clear ( LPCTSTR Pass );
Синтаксис COM:
HRESULT Clear( [in] BSTR Pass,
[out, retval] VARIANT_BOOL* Result);
Входные параметры:
Pass - пароль.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
Примечание: Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.
Delete - Удалить объект, заданный по индексу или по комментарию
Синтаксис Automation:
BOOL Delete( LPCTSTR pass,
const VARIANT & index );
Синтаксис COM:
HRESULT Delete( [in] BSTR Pass,
[in] VARIANT Index,
[out, retval] VARIANT_BOOL* PVal );
Входные параметры:
Pass - пароль,
Index - индекс объекта или комментарий.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
Примечание:
- В качестве индекса можно задать число или комментарий к объекту.
- Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.
GetObject - Получить объект пользовательского хранилища и комментарий к нему по комментарию или индексу
Синтаксис Automation:
BSTR GetObject( const VARIANT & index, VARIANT * object, long * numb );
Синтаксис COM:
HRESULT GetObject( [in] VARIANT Index,
[out] VARIANT * Object,
[out] long* numb,
[out, retval] BSTR * Comment );
Входные параметры:
Index - индекс объекта или комментарий.
Выходные параметры:
Object - указатель на объект хранилища,
numb - указатель на номер объекта.
Возвращаемое значение:
Comment (BSTR) - комментарий.
Примечание:
- В качестве индекса можно задать число или комментарий к объекту.
- Объект может быть variant'ом с типом VT_INT, VT_I2, VT_I4, VT_R4, VT_R8, VT_DATE, VT_UI1, VT_UINT, VT_BOOL, VT_BSTR, VT_DISPATCH, а также VT_ARRAY с этими типами данных.
- Если задан интерфейс VT_DISPATCH и массив объектов VT_ARRAY | VT_DISPATCH, то под объектом подразумевается указатель на IDispatch от объектов API. Они также будут сохранены вместе с документом и при следующем запросе найдены.
Name - Имя хранилища
Синтаксис Automation:
Тип данных: LPSTR
Name = StorageObj.Name(Pass) Получить свойство (* )
StorageObj.Name(Pass) = Name Установить свойство (* )
Name = StorageObj.GetName(Pass) Получить свойство (**)
StorageObj.SetName (Name, Pass) Установить свойство (**)
Входные параметры:
Pass (LPSTR) - пароль хранилища.
Синтаксис COM:
Тип данных:BSTR.
StorageObj>get_Name (Pass, &Name) Получить свойство
StorageObj>put_Name (Pass, Name) Установить свойство
Входные параметры:
Pass (BSTR) - пароль хранилища.
Примечание: Если хранилище защищено паролем, то изменить свойство можно, только указав правильный пароль.
SetObject - Установить объект пользовательского хранилища и комментарий к нему по комментарию или индексу
Синтаксис Automation:
long SetObject( LPCTSTR pass,
const VARIANT index,
const VARIANT & object,
LPCTSTR comment );
Синтаксис COM:
HRESULT SetObject( [in] BSTR Pass,
[in] VARIANT Index,
[in] VARIANT Object,
[in] BSTR Comment,
[out, retval] long* pVal);
Входные параметры:
Pass - пароль,
Index - индекс объекта или комментарий,
Object - указатель на объект,
comment - комментарий.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
Примечание:
- В качестве индекса можно задать число или комментарий к объекту.
- Объект может быть variant'ом с типом VT_INT, VT_I2, VT_I4, VT_R4, VT_R8, VT_DATE, VT_UI1, VT_UINT, VT_BOOL, VT_BSTR, VT_DISPATCH, а также VT_ARRAY с этими типами данных.
- Если задан интерфейс VT_DISPATCH и массив объектов VT_ARRAY | VT_DISPATCH, то под объектом подразумевается указатель на IDispatch от объектов API. Они также будут сохранены вместе с документом и при следующем запросе найдены.
- Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.
SetPassword - Установить пароль на изменение данных в хранилище
Синтаксис Automation:
BOOL SetPassword( LPCTSTR oldPass, LPCTSTR newPass );
Синтаксис COM:
HRESULT SetPassword( [in] BSTR OldPass,
[in] BSTR NewPass,
[out, retval] VARIANT_BOOL* Result);
Входные параметры:
OldPass - старый пароль,
NewPass - новый пароль.
Примечание:
- Если хранилище защищено паролем от изменений, то изменить пароль можно, только указав текущий пароль.
- По умолчанию пароль представляет собой пустую строку или нулевой указатель.
Version - Версия хранилища
Синтаксис Automation:
Тип данных: long
Version = StorageObj.Version(Pass) Получить свойство (* )
StorageObj.Version(Pass) = Version Установить свойство (* )
Version = StorageObj.GetVersion(Pass) Получить свойство (**)
StorageObj.SetVersion (Version, Pass) Установить свойство (**)
Входные параметры:
Pass (LPSTR) - пароль хранилища.
Синтаксис COM:
Тип данных: long
StorageObj->get_Version (Pass, &Version) Получить свойство
StorageObj->put_Version (Pass, Version) Установить свойство
Входные параметры:
Pass (BSTR) - пароль хранилища.
Примечание: Если хранилище защищено паролем, то изменить свойство можно, только указав пароль.