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>
9.1 KiB
9.1 KiB
title, type, api, tags, sources
| title | type | api | tags | sources | |||||
|---|---|---|---|---|---|---|---|---|---|
| Интерфейс ISpecificationBaseObjects | interface |
|
|
|
*API интерфейсов. Версия 7 > Работа со спецификацией *
Интерфейс ISpecificationBaseObjects
Интерфейс коллекции базовых объектов спецификации. Иерархия: IKompasAPIObject IKompasCollection ISpecificationBaseObjects Описание: Позволяет получить список базовых объектов спецификации. Примечание:
- Управляет массивом интерфейсов ISpecificationBaseObject.
- Коллекция позволяет создать новые базовые объекты спецификации. Для создания нового базового объекта спецификации используется метод Add. После вызова метода Add объект будет добавлен в коллекцию, но в документе не появится.
- Для отображения объекта в документе нужно задать его параметры и вызвать метод ISpecificationObject::Update.
- Данный интерфейс можно получить от интерфейса описания спецификации ISpecificationDescription с помощью свойства ISpecificationDescription::BaseObjects.
Add - Добавить новый базовый объект спецификации в коллекцию
Синтаксис Automation:
LPDISPATCH Add (long Section, double AttrNumb);
Синтаксис COM:
HRESULT Add ([in] long Section,
[in] double AttrNumb,
[out, retval] ISpecificationBaseObject** Result);
Входные параметры:
Section - номер раздела,
AttrNumb - номер атрибута.
Возвращаемое значение:
- Указатель на интерфейс ISpecificationBaseObject базового объекта спецификации.
Примечание:
- После вызова метода Add объект будет добавлен в коллекцию, но в документе не появится. Для отображения объекта в документе нужно задать его параметры и вызвать метод ISpecificationObject::Update.
- Объект c номером раздела 0.0. добавить нельзя. Нужно добавлять объект спецификации в существующий раздел. Затем с помощью ISpecificationObject::AdditionalSection переносить в дополнительный раздел.
AddWithParam - Добавить новый объект спецификации в коллекцию
Синтаксис Automation:
LPDISPATCH AddWithParam( ISpecificationObjectCreateParam * Param, IPropertyKeeper * PropertyObject, BOOL FillText, VARIANT Geometry );
Синтаксис COM:
HRESULT AddWithParam( ISpecificationObjectCreateParam * Param, IPropertyKeeper * PropertyObject, BOOL FillText, VARIANT Geometry, ISpecificationBaseObject * * Result );
Возвращаемое значение:
- указатель на интерфейс ISpecificationBaseObject.
Входные параметры:
Param - Указатель на интерфейс расширенных параметров создания объекта спецификации ISpecificationObjectCreateParam,
PropertyObject - Указатель на интерфейс объекта, связываемого с объектом спецификации IPropertyKeeper,
Geometry - Геометрия, используемая для подсветки в документе.
Выходные параметры:
FillText - TRUE - заполнить тексты колонок объекта спецификации по свойствам объекта.
Примечание:
- При передаче в функцию указателя на объект PropertyObject объект спецификации и объект будут иметь общий ключ информационного объекта. Данные будут сохраняться в общем блоке свойств в метаданных.
- При редактировании свойств объекта изменения будут передаваться в объект спецификации. Изменение текста объекта спецификации будет передаваться в свойства объекта. Если объект не передается, то объект спецификации может иметь произвольную геометрию для подсветки, но тексты не будут связаны со свойствами какого-то из объектов.
CopySpecificationObject - Копирование объекта спецификации
Синтаксис Automation:
LPDISPATCH CopySpecificationObject( ISpecificationBaseObject * SpcObj, VARIANT Geometry );
Синтаксис COM:
HRESULT CopySpecificationObject( ISpecificationBaseObject * SpcObj, VARIANT Geometry, ISpecificationBaseObject ** Result );
Возвращаемое значение:
- Указатель на интерфейс скопированного объекта.
Входные параметры:
SpcObj - копируемый объект,
Geometry - геометрия объекта спецификации (Объект VT_DISPATCH или список объектов VT_ARRAY VT_DISPATCH).
GetSpecificationObjectsForGeom - По геометрии получить массив объектов спецификации в виде SAFEARRAY'я DISPATCH - VT_ARRAY | VT_DISPATCH
Синтаксис Automation:
VARIANT GetSpecificationObjectsForGeom( VARIANT PGeom,
VARIANT_BOOL Equal,
long SectionNumb,
double AttrNumb );
Синтаксис COM:
HRESULT GetSpecificationObjectsForGeom( [in]VARIANT PGeom,
[in]VARIANT_BOOL Equal,
[in] long SectionNumb,
[in] double AttrNumb,
[out, retval] VARIANT* PVal );
Входные параметры:
PGeom - Массив SafeArray типа VT_ARRAY VT_DISPATCH объектов геометрии,
Equal - флаг типа BOOL TRUE - полное совпадение геометрии, FALSE - частичное совпадение геометрии,
SectionNumb - номер раздела объектов СП,
AttrNumb - номер типа атрибута объектов СП или 0.
Возвращаемое значение:
- Массив SafeArray типа VT_ARRAY VT_DISPATCH объектов спецификации.
Примечание:
- По присланной геометрии получить массив базовых объектов спецификации, содержащих эту геометрию. У базового объекта СП может быть установлена геометрия, которая ассоциируется с данным объектом. Для 2D документа это массив IDrawingObject. Для 3D документа это массив объектов: •IPart7 (может быть один компонент), •IBody7 (тела верхнего уровня сборки), •IPositionLeader (обозначения позиций верхнего уровня сборки). Получить массив объектов можно всегда.
- Если геометрия должна совпадать полностью, нужно передать параметр Equal=TRUE.
- Поиск можно ограничить объектами определенного раздела, если указать номер раздела объектов.
- Поиск можно ограничить объектами определенного типа атрибута.
Item - Базовый объект спецификации, заданный по индексу, по уникальному идентификатору или по уникальному номеру
Тип данных: Указатель на интерфейс ISpecificationBaseObject объекта спецификации Синтаксис Automation:
spcObj = iObject.Item (Index) Получить свойство (* )
spcObj = iObject.GetItem (Index) Получить свойство (**)
Синтаксис COM:
iObject->get_Item (Index, &spcObj) Получить свойство
Примечание:
- С помощью данного свойства можно получить базовый объект спецификации, заданный по индексу, по уникальному идентификатору IKompasAPIObject::Reference или уникальному номеру ISpecificationObject::UniqueNumber.
- Свойство доступно только для чтения.