Чтение онлайн

на главную

Жанры

Шрифт:

5. На вкладке Тонкая стенка пользователь может управлять параметрами толщины и способа формирования тонкой стенки или установить режим выдавливания сплошного тела (рис. 6.18).

Рис. 6.18. Выбор режима построения тонкой стенки

В программе это задается следующим образом (листинг 6.5). В примере выполняется операция выдавливания без тонкой стенки.

Листинг 6.5. Задание параметров тонкой стенки

iBossExtrusion := ksEntity(iPart.NewEntity(o3d_bossExtrusion));

if (iBossExtrusion <> nil) then

begin

iBossDef := ksBossExtrusionDefinition(iBossExtrusion.GetDefinition);

if (iBossDef <> nil) then

begin

iBossDef.directionType := dtNormal;

iBossDef.SetSideParam(true, etBlind, 25, false, 10);

//

первый параметр false указывает на то,

// надо ли строить тонкую стенку

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

// третий и четвертый параметры определяют толщину стенки

// в прямом и обратном направлениях соответственно

iBossDef.SetThinParam(false, dtNormal, 0, 0);

// устанавливаем эскиз операции

iBossDef.SetSketch(iSketch);

end;

end;

В этом фрагменте кода также был задан эскиз операции с помощью метода ksBossExtrusіonDefіnіtіon::SetSketch. Мы приняли, что сам эскиз, как и упоминалось ранее, был создан до начала выполнения операции выдавливания.

На вкладке Свойства можно также настроить цвет и оптические свойства создаваемого элемента. При программном построении элемента для этого сначала необходимо инициализировать еще один дополнительный интерфейс – ksColorParam. С помощью его свойств можно управлять визуальными характеристиками трехмерного элемента. Внесенные в функцию построения изменения показаны в листинге 6.6.

Листинг 6.6. Установка визуальных свойств

iBossExtrusion := ksEntity(iPart.NewEntity(o3d_bossExtrusion));

if (iBossExtrusion <> nil) then

begin

// присваиваем имя трехмерной операции,

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

iBossExtrusion.name := “Программная операция выдавливания”;

// получаем указатель на интерфейс параметров цвета

// и оптических свойств

color := ksColorParam(iBossExtrusion.ColorParam);

// с помощью макроса RGB задаем цвет – красный

color.color := RGB(255, 0, 0);

// задаем уровень зеркальности (в долях единицы)

color.specularity := 0.8;

// и блеск

color.shininess := 1;

iBossDef := ksBossExtrusionDefinition(iBossExtrusion.GetDefinition);

if (iBossDef <> nil) then

begin

iBossDef.directionType := dtNormal;

iBossDef.SetSideParam(true, etBlind, 25, false, 10);

iBossDef.SetThinParam(false, dtNormal, 0, 0);

iBossDef.SetSketch(iSketch);

end;

end;

Теперь все свойства настроены нужным образом, и можно создавать саму трехмерную операцию выдавливания. В КОМПАС для этого необходимо нажать кнопку Создать объект, в программе – вызвать метод Create объекта интерфейса ksEntity. Окончательный вид функции приведен в листинге 6.7.

Листинг 6.7. Операция выдавливания

iBossExtrusion := ksEntity(iPart.NewEntity(o3d_bossExtrusion));

if (iBossExtrusion <> nil) then

begin

iBossExtrusion.name := “Программная операция выдавливания”;

color := ksColorParam(iBossExtrusion.ColorParam);

color.color := RGB(255, 0, 0);

color.specularity := 0.8;

color.shininess := 1;

iBossDef := ksBossExtrusionDefinition(iBossExtrusion.GetDefinition);

if (iBossDef <> nil) then

begin

iBossDef.directionType := dtNormal;

iBossDef.SetSideParam(true, etBlind, 25, false, 10);

iBossDef.SetThinParam(false, dtNormal, 0, 0);

iBossDef.SetSketch(iSketch);

iBossExtrusion.Create; // создаем операцию

end;

end;

Результат проделанной работы, как «вручную», так и с помощью подключаемого модуля, показан на рис. 6.19. Изображенный трехмерный

элемент, как вы только что сами убедились, вполне может быть создан без какого-либо вмешательства пользователя, с помощью API КОМПАС.

Рис. 6.19. Трехмерный элемент, созданный программно

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

Первая библиотека к КОМПАС-3D

Приведенный выше пример, демонстрирующий общий принцип программного выполнения трехмерных операций из внешнего приложения (плагина), вряд ли объяснил, как все-таки создать прикладную библиотеку для КОМПАС-3D. В этом разделе подробно рассмотрим разработку простейшей библиотеки, выводящей в среде КОМПАС сообщение «Привет из КОМПАСа!». Структура всех приложений для КОМПАС практически не отличается, поэтому такую библиотеку можно будет в дальнейшем использовать как заготовку для других более сложных утилит.

Прикладная библиотека для КОМПАС-3D представляет собой обычную DLL (Dynamic Link Library – динамически подключаемая библиотека Windows), только с расширением RTW. Такая библиотека подключается к КОМПАС, как и любая другая, уже известным нам способом: через менеджер библиотек посредством команды контекстного меню Добавить описание -> прикладной библиотеки.

Для выполнения примера создайте на жестком диске папку FirstLib, а в ней папку dcu, в которой будут храниться файлы библиотек КОМПАС.

Теперь можно приступить к выполнению проекта.

1. Запустите Delphi и создайте шаблон DLL-библиотеки, который предлагается по умолчанию. Для этого выполните команду File -> New -> Other. Появится окно New Items (рис. 6.20) со всевозможными шаблонами Windows-приложений и файлами Delphi (исполняемый EXE-файл, консольное приложение, форма или компонент Delphi и пр.). На вкладке New этого окна выберите пункт DLL Wizard и нажмите кнопку OK.

Рис. 6.20. Диалоговое окно New Items

Если вы хорошо знакомы с Delphi, например не раз выполняли в этой среде динамически подключаемые библиотеки, то для вас будет привычным созданный файл-заготовка проекта, начинающийся со служебного слова library. Сохраните его на жесткий диск в папку FirstLib под именем Hello_KOMPAS.dpr.

2. Теперь нужно связать этот файл с библиотеками типов КОМПАС, чтобы можно было пользоваться интерфейсами API. Выполните команду Project -> Import Type Library, затем из списка Import Type Library появившегося окна выберите пункт Kompas6API5 (Version 1.0). При этом в текстовом поле под списком должен отобразиться путь к файлу библиотек типов КОМПАС (например, C:\Program Files\ASCON\KOMPAS-3D V10\Bin\kAPI5.TLB). Выбрав указанный пункт, нажмите кнопку Create Unit (рис. 6.21).

Рис. 6.21. Подключение библиотеки типов КОМПАС к Delphi

Примечание

Если в списке Import Type Library нет необходимого пункта, вы можете добавить его вручную, нажав кнопку Add и отыскав файл kAPI5.TLB (он находится в каталоге Bin папки, в которой установлен КОМПАС).

3. За несколько секунд Delphi сгенерирует PAS-файл с именем Kompas6API5-TLB, который будет иметь описание всех интерфейсов API 5. Измените имя (заголовок) скомпилированного модуля (автоматически добавленного в проект библиотеки), с Kompas6API5-TLB на ksTLB и сохраните проект.

Поделиться:
Популярные книги

Повелитель механического легиона. Том VI

Лисицин Евгений
6. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VI

Ваше Сиятельство 6

Моури Эрли
6. Ваше Сиятельство
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 6

Имя нам Легион. Том 5

Дорничев Дмитрий
5. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 5

Начальник милиции. Книга 4

Дамиров Рафаэль
4. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 4

Полководец поневоле

Распопов Дмитрий Викторович
3. Фараон
Фантастика:
попаданцы
5.00
рейтинг книги
Полководец поневоле

Я же бать, или Как найти мать

Юнина Наталья
Любовные романы:
современные любовные романы
6.44
рейтинг книги
Я же бать, или Как найти мать

Маршал Советского Союза. Трилогия

Ланцов Михаил Алексеевич
Маршал Советского Союза
Фантастика:
альтернативная история
8.37
рейтинг книги
Маршал Советского Союза. Трилогия

Боги, пиво и дурак. Том 4

Горина Юлия Николаевна
4. Боги, пиво и дурак
Фантастика:
фэнтези
героическая фантастика
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 4

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Возвращение Безумного Бога 3

Тесленок Кирилл Геннадьевич
3. Возвращение Безумного Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Возвращение Безумного Бога 3

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9

Темный Лекарь 7

Токсик Саша
7. Темный Лекарь
Фантастика:
попаданцы
аниме
фэнтези
5.75
рейтинг книги
Темный Лекарь 7

Александр Агренев. Трилогия

Кулаков Алексей Иванович
Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Александр Агренев. Трилогия

Курсант: Назад в СССР 13

Дамиров Рафаэль
13. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 13