Читаем КОМПАС-3D V10 на 100 % полностью

Для программной реализации всех трехмерных операций, которые пользователи выполняют в трехмерных документах системы КОМПАС-3D, в API реализован единый интерфейс ksEntity – интерфейс элемента модели. Этот интерфейс можно получить с помощью метода ksPart::NewEntity, которому необходимо передать тип создаваемого элемента. Типов элементов в системе, как и в API системы, большое множество. Каждому из них отвечает своя целочисленная константа и свой собственный интерфейс параметров. Именно с помощью настроек (свойств и методов) этих интерфейсов и создаются любые возможные объекты в деталях и сборках КОМПАС-3D. Некоторые константы с описанием типа элемента и интерфейса, к которому они относятся, приведены в табл. 6.6. Сведения об остальных вы можете почерпнуть из файла справки SDK.hlp, поставляемого вместе с системой КОМПАС.

Таблица 6.5. Методы интерфейса ksPartТаблица 6.6. Типы объектов трехмерного документа

Члены данных интерфейса ksEntity соответствуют свойствам трехмерных элементов модели (о свойствах трехмерной модели читайте в подразд. «Свойства трехмерных объектов» разд. «Твердотельное моделирование в КОМПАС-3D» гл. 3).

Среди методов наиболее важными являются три следующих:

• Create – создает трехмерную операцию или объект вспомогательной геометрии по заданным настройкам;

• ColorParam – возвращает указатель на интерфейс настроек цвета и оптических свойств элемента;

• GetDefinition – получает указатель на интерфейс параметров объекта определенного типа (параметры данного трехмерного элемента). Именно с помощью этого метода можно получить указатель на любой интерфейс, приведенный в столбце «Интерфейс параметров» табл. 6.6.

Таким образом, создание какой-либо трехмерной операции пользовательской программой сводится к такой последовательности шагов.

1. Инициализация главного интерфейса приложения API – KompasObject. Он инициализируется один раз для всего сеанса работы программы.

2. Инициализация интерфейса трехмерного документ ksDocument3D, с последующим созданием нового документа или получением указателя на активный документ.

3. Создание компонента и получение на него указателя (интерфейс ksPart). Для сборки это может быть готовый компонент, компонент, вставленный из файла или созданный «на месте». Для детали необходимо получить указатель на компонент типа pTop_Part.

4. Создание с помощью метода ksPart::NewEntity интерфейса нужной нам операции. При этом в метод передается соответствующий идентификатор (например, для выдавливания – o3d_bossExtrusion).

5. Получение с помощью метода ksEntity::GetDefinition указателя на интерфейс параметров конкретной операции (для выдавливания этим интерфейсом является ksBossExtrusionDefinition). Настройка этих параметров необходимым пользователю образом.

6. Создание операции с помощью метода ksEntity::Create.

Кроме перечисленных, в API системы КОМПАС существует еще большое множество различных интерфейсов, отвечающих за тот или иной аспект работы с программой. Небольшая их часть описана в табл. 6.7.

Таблица 6.7. Некоторые дополнительные интерфейсы API КОМПАС<p>Пример программной реализации трехмерной операции</p>

Рассмотрим выполнение трехмерной формообразующей операции вручную (то есть в самом КОМПАС) и с помощью воображаемого подключаемого модуля. В качестве примера выберем обычную операцию выдавливания на основе несложного эскиза, содержащего изображение окружности. Раздел var функции, реализующей выполнение операции, должен выглядеть подобно листингу 6.1.

Листинг 6.1. Раздел объявлений функции построения операции выдавливания

var

doc3 : ksDocument3D;

// интерфейс трехмерного документа

doc2 : ksDocument2D;

// интерфейс графического документа

// используется для создания изображения в эскизе

iPart : ksPart;

// интерфейс детали

planeXOY : ksEntity;

// интерфейс плоскости, на которой будет размещен эскиз

iSketch : ksEntity;

// интерфейс эскиза

iSketchDef : ksSketchDefinition;

// интерфейс параметров эскиза

iBossExtrusion : ksEntity;

// интерфейс операции выдавливания

iBossDef : ksCutExtrusionDefinition;

// интерфейс параметров операции выдавливания

color : ksColorParam;

// интерфейс параметров цвета операции выдавливания

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже