Первая библиотека к КОМПАС-3D
Первая библиотека к КОМПАС-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 FilesASCONKOMPAS-3D V10BinkAPI5.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 и сохраните проект.
4. Закройте окно, в котором был открыт файл Kompas6API5-TLB.pas, в редакторе кода Delphi и измените имя файла на ksTLB.pas. Сгенерированный файл Kompas6API5-TLB.pas с интерфейсами размещается в каталоге Imports папки, в которой установлен Delphi, например C:Program FilesBorlandDelphi7Imports.
5. Скопируйте переименованный файл в каталог FirstLibdcu вашего проекта.
6. Перейдите в главное окно проекта. В разделе uses замените следующую строку: Kompas6API5-TLB in “C:Program FilesBorlandDelphi7ImportsKompas6API5-TLB.pas” на ksTLB. Напомню вам о том, что путь к Kompas6API5-TLB.pas может быть другим (он зависит от того, где установлен Delphi). Однако это не имеет значения, поскольку запись генерируется системой автоматически при компиляции файла библиотек типов. Указывать путь к модулю ksTLB, который был скопирован в папку dcu проекта, нет необходимости.
7. При компиляции прикладной библиотеки будут использованы множество различных файлов с описаниями интерфейсов, констант и пр. В принципе, они могут быть размещены где угодно (при этом в разделе uses следовало бы задавать каждый путь явно), но для удобства работы с проектом рекомендую хранить их в папке dcu, где уже находится файл ksTLB.pas. Где бы все эти файлы ни находились, в Delphi необходимо указать путь к ним. Для этого выполните команду Project ? Options, после чего на вкладке Directories/Conditionals открывшегося окна настроек проекта (рис. 6.22) задайте пути к файлам проекта:
• Output directory – путь, по которому Delphi будет сохранять скомпилированный файл прикладной библиотеки (в нашем примере подойдет каталог FirstLib);
• Unit output directory и Search path – полный путь к каталогу FirstLibdcu. По этим путям система будет искать необходимые файлы библиотек КОМПАСа, а также сохранять скомпилированные DCU-файлы.
Рис. 6.22. Задание путей к файлам проекта прикладной библиотеки
8. Перейдите на вкладку Application диалогового окна настроек проекта. В поле Target file extension введите расширение, которое будет применяться для файла будущей библиотеки – RTW. Нажмите OK, чтобы сохранить настройки.
Теперь можете сохранить проект и выполнить компиляцию (для этого воспользуйтесь командой Project ? Compile Hello_KOMPAS или сочетанием клавиш Ctrl+F9). В результате в папке FirstLib должна появиться пока еще пустая и бесполезная библиотека, файл которой назван системой Hello_KOMPAS.rtw.
Чтобы RTW-библиотека, написанная на Delphi, могла взаимодействовать с КОМПАС, в ней обязательно должны присутствовать как минимум три функции (для сред программирования на базе языка C или C++ достаточно двух, так как функции LibraryName и LibraryId объединены в одну – unsigned int WINAPI LIBRARYID()):
• LibraryEntry – точка входа в библиотеку;
• LibraryName – возвращает имя библиотеки, отображаемое в менеджере библиотек;
• LibraryId – возвращает идентификатор библиотеки (позже его можно использовать при работе с самой библиотекой, для подключения списка меню ее команд и пр.).
Все эти функции обязательно должны быть экспортными, то есть экспортируемыми из данной DLL, чтобы система КОМПАС могла их видеть и вызывать. По этой причине их обязательно нужно вынести в раздел exports прикладной библиотеки.
Добавьте описание этих функций в вашу библиотеку (листинг 6.8).
Листинг 6.8. Три базовых функции RTW-библиотеки
library Hello_KOMPAS;
uses
SysUtils, Classes, ksTLB;
{$E rtw}
{$R *.res}
function LibraryName: PChar; pascal;
begin
Result := “Первая библиотека”;
end;
function LibraryId: integer; pascal;
begin
Result := 100;
end;
procedure LibraryEntry(command: WORD); pascal;
begin
end;
exports
LibraryName name “LIBRARYNAME”,
LibraryId name “LIBRARYID”,
LibraryEntry name “LIBRARYENTRY”;
begin
end.
Скомпилируйте полученный код и подключите файл библиотеки к КОМПАС. Убедитесь, что в окне менеджера отобразилось заданное в функции LibraryName имя библиотеки. Запускать приложение не нужно, поскольку все равно ничего не произойдет – будет вызываться пустая функция точки входа в библиотеку LibraryEntry.
Совет
Любая создаваемая вами на Delphi библиотека будет иметь три указанные функции. Вы можете сохранить проект на данном этапе в какую-либо другую папку и в дальнейшем при разработках новых библиотек использовать его как заготовку.
Теперь нужно сделать так, чтобы библиотека стала рабочей.
Сначала необходимо в раздел uses добавить еще один подключаемый модуль – ksAuto, а сам файл этого модуля (ksAuto.pas) перенести в каталог FirstLibdcu. Файл ksAuto.pas вместе с другими файлами библиотек API системы КОМПАС находится в каталоге SDKInclude папки, в которой установлена текущая версия КОМПАС-3D.
Внутри ksAuto.pas есть многочисленные ссылки на другие файлы с определением классов КОМПАС API. Явно подключать их в разделе uses не нужно, но следует перенести в один каталог с файлом ksAuto.pas. Для данного проекта достаточно всего четыре файла (для более сложных понадобятся, конечно, и другие): ks2DCOM-TLB.pas, LDefin2D.pas, LibTool.pas и LtDefine.pas. Просто скопируйте эти файлы из SDKInclude в папку FirstLibdcu вашего проекта.
В файле проекта объявите глобальную переменную kompas типа KompasObject, а в процедуру входа в библиотеку добавьте следующий код (листинг 6.9).
Листинг 6.9. Вывод текстового сообщения
uses
SysUtils, Classes, ksTLB, ksAuto;
{$E rtw}
{$R *.res}
// глобальная переменная приложения КОМПАС API
var kompas : KompasObject;
// код пропущен
procedure LibraryEntry(command: WORD); pascal;
begin
// инициализация объекта KompasObject
// с помощью функции CreateKompasObject
kompas := KompasObject(CreateKompasObject);
// если все прошло успешно
if (kompas = nil) then exit;
// выводим первое сообщение
kompas.ksMessage(“Привет из КОМПАСа!”);
// обнуляем переменную kompas
kompas := nil;
end;
Сохраните и скомпилируйте проект, после чего запустите библиотеку и выполните ее единственную команду. В результате библиотека выдаст первое приветственное сообщение (рис. 6.23).
Рис. 6.23. Сообщение, посланное библиотекой
Внимание!
При компиляции проекта прикладная библиотека должна быть обязательно отключена в менеджере библиотек, иначе компилятор сообщит об ошибке.
Исходные файлы этой простейшей библиотеки, а также сам исполняемый файл приложения Hello_KOMPAS.rtw находятся на прилагаемом к книге компакт-диске в папке ExamplesГлава 6Delphi ProgrammingFirstLib. При попытке компиляции исходных файлов на своем компьютере вы должны учитывать, что куда бы ни были скопированы исходники с диска, пути к файлам библиотек КОМПАС, указанные в настройках проекта, будут отличаться. По этой причине перед компиляцией обязательно отредактируйте эти пути (см. рис. 6.22) и лишь после этого выполняйте сборку библиотеки.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
КОМПАС-3D V10: первое знакомство
КОМПАС-3D V10: первое знакомство Любой современный графический редактор обладает достаточно сложным интерфейсом. Как правило, конструкторские системы, представленные сегодня на рынке САПР, развиваются уже не один год. Они успели за это время накопить множество различных
Главное меню КОМПАС-3D V10
Главное меню КОМПАС-3D V10 Как уже отмечалось, главное меню программы динамически изменяет свой состав в зависимости от типа активного в данный момент документа (в основном это зависит от того, является ли этот документ трехмерным или графическим). Более того, даже для
Азбука КОМПАС
Азбука КОМПАС В версии V9 появилось специальное встроенное интерактивное учебное пособие – Азбука КОМПАС (рис. 1.71). Рис. 1.71. Интерактивное учебное пособие Азбука КОМПАСОткрыть Азбуку КОМПАС можно, используя команду меню Справка-Азбука КОМПАС.Азбука КОМПАС содержит
Новое в версии КОМПАС-3D V10
Новое в версии КОМПАС-3D V10 Одним из главных общих усовершенствований в версии системы КОМПАС-3D V10 является полная поддержка формата Юникод – международного стандарта кодирования символов, позволяющего отображать символы и знаки практически всех возможных языковых
Работа с документом КОМПАС-Чертеж
Работа с документом КОМПАС-Чертеж Все, что мы делали в КОМПАС до сих пор, не имело большого практического значения, а описанные команды касались только создания изображений на чертеже.Из вышеизложенного вы могли только узнать о возможностях рассматриваемого
КОМПАС-SHAFT 3D
КОМПАС-SHAFT 3D Система проектирования и трехмерного твердотельного моделирования тел вращения и механических передач КОМПАС-SHAFT 3D – без сомнения, самый мощный вспомогательный модуль, предоставленный компанией «АСКОН» для работы с трехмерными моделями. Простой и удобный
КОМПАС-SHAFT 2D
КОМПАС-SHAFT 2D Аналогом КОМПАС-SHAFT 3D для двухмерного проектирования служит библиотека КОМПАС-SHAFT 2D (хотя не совсем двухмерного – с помощью КОМПАС-SHAFT 2D также можно генерировать и трехмерные модели). Модуль КОМПАС-SHAFT 2D обеспечивает параметрическое построение чертежей
КОМПАС-SPRING
КОМПАС-SPRING Еще одним мощным и многофункциональным расчетным приложением системы КОМПАС-3D является модуль проектирования пружин КОМПАС-SPRING (рис. 5.17). Рис. 5.17. Библиотека КОМПАС-SPRINGСогласитесь, что создание сборочных чертежей или трехмерных сборок высокой сложности,
КОМПАС-Мастер
КОМПАС-Мастер Во многих случаях одних средств параметризации для автоматизации тех или иных действий в процессе проектирования недостаточно, и новые проектируемые 3D-модели или чертежи хоть и схожи с эталоном, но имеют различия, не позволяющие использовать
Трехгранник осей и компас
Трехгранник осей и компас Еще одно средство установки нужного вида – трехгранник осей и компас. Чтобы воспользоваться данной возможностью, выполните команду меню View ? 3D Views ? Viewpoint (Вид ? Трехмерные виды ? Точка зрения). Можете также ввести команду VPOINT с клавиатуры. При этом
Трехгранник осей и компас
Трехгранник осей и компас Еще одно средство установки нужного вида – трехгранник осей и компас. Чтобы воспользоваться данной возможностью, выполните команду меню View ? 3D Views ? Viewpoint (Вид ? Трехмерные виды ? Точка зрения). Можете также ввести команду VPOINT с клавиатуры. При этом
3.7. Учебное пособие «Азбука КОМПАС»
3.7. Учебное пособие «Азбука КОМПАС» В заключительном разделе части, посвященной работе с системой КОМПАС -3D LT, следует упомянуть о встроенном электронном учебном пособии «Азбука КОМПАС».«Азбука КОМПАС» — это интерактивное учебное пособие, реализованное в виде
Часть II Черчение с КОМПАС-3D
Часть II Черчение с КОМПАС-3D
Часть III Информатика с КОМПАС-3D
Часть III Информатика с КОМПАС-3D
Часть IV Геометрия с КОМПАС-3D
Часть IV Геометрия с КОМПАС-3D