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>
144 lines
9.1 KiB
Markdown
144 lines
9.1 KiB
Markdown
---
|
||
title: "Интерфейс ISpecificationBaseObjects"
|
||
type: interface
|
||
api: [api7]
|
||
tags: [interface, api7, ispecificationbaseobjects]
|
||
sources:
|
||
- ispecificationbaseobjects.html
|
||
---
|
||
|
||
*API интерфейсов. Версия 7 > Работа со спецификацией *
|
||
|
||
|
||
## Интерфейс ISpecificationBaseObjects
|
||
|
||
Интерфейс коллекции базовых объектов спецификации.
|
||
Иерархия:
|
||
IKompasAPIObject
|
||
IKompasCollection
|
||
ISpecificationBaseObjects
|
||
Описание:
|
||
Позволяет получить список базовых объектов спецификации.
|
||
Примечание:
|
||
1. Управляет массивом интерфейсов ISpecificationBaseObject.
|
||
2. Коллекция позволяет создать новые базовые объекты спецификации. Для создания нового базового объекта спецификации используется метод Add. После вызова метода Add объект будет добавлен в коллекцию, но в документе не появится.
|
||
3. Для отображения объекта в документе нужно задать его параметры и вызвать метод ISpecificationObject::Update.
|
||
4. Данный интерфейс можно получить от интерфейса описания спецификации 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 базового объекта спецификации.
|
||
```
|
||
Примечание:
|
||
1. После вызова метода Add объект будет добавлен в коллекцию, но в документе не появится. Для отображения объекта в документе нужно задать его параметры и вызвать метод ISpecificationObject::Update.
|
||
2. Объект 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 - заполнить тексты колонок объекта спецификации по свойствам объекта.
|
||
```
|
||
Примечание:
|
||
1. При передаче в функцию указателя на объект PropertyObject объект спецификации и объект будут иметь общий ключ информационного объекта. Данные будут сохраняться в общем блоке свойств в метаданных.
|
||
2. При редактировании свойств объекта изменения будут передаваться в объект спецификации. Изменение текста объекта спецификации будет передаваться в свойства объекта.
|
||
Если объект не передается, то объект спецификации может иметь произвольную геометрию для подсветки, но тексты не будут связаны со свойствами какого-то из объектов.
|
||
|
||
|
||
## 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 объектов спецификации.
|
||
```
|
||
Примечание:
|
||
1. По присланной геометрии получить массив базовых объектов спецификации, содержащих эту геометрию. У базового объекта СП может быть установлена геометрия, которая ассоциируется с данным объектом.
|
||
Для 2D документа это массив IDrawingObject.
|
||
Для 3D документа это массив объектов:
|
||
•IPart7 (может быть один компонент),
|
||
•IBody7 (тела верхнего уровня сборки),
|
||
•IPositionLeader (обозначения позиций верхнего уровня сборки).
|
||
Получить массив объектов можно всегда.
|
||
2. Если геометрия должна совпадать полностью, нужно передать параметр Equal=TRUE.
|
||
3. Поиск можно ограничить объектами определенного раздела, если указать номер раздела объектов.
|
||
4. Поиск можно ограничить объектами определенного типа атрибута.
|
||
|
||
|
||
## Item - Базовый объект спецификации, заданный по индексу, по уникальному идентификатору или по уникальному номеру
|
||
|
||
Тип данных: Указатель на интерфейс ISpecificationBaseObject объекта спецификации
|
||
Синтаксис Automation:
|
||
```
|
||
spcObj = iObject.Item (Index) Получить свойство (* )
|
||
spcObj = iObject.GetItem (Index) Получить свойство (**)
|
||
```
|
||
Синтаксис COM:
|
||
```
|
||
iObject->get_Item (Index, &spcObj) Получить свойство
|
||
```
|
||
Примечание:
|
||
1. С помощью данного свойства можно получить базовый объект спецификации, заданный по индексу, по уникальному идентификатору IKompasAPIObject::Reference или уникальному номеру ISpecificationObject::UniqueNumber.
|
||
2. Свойство доступно только для чтения.
|