Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом (Записка) 100611.doc
Скачиваний:
18
Добавлен:
27.10.2018
Размер:
6.75 Mб
Скачать

2.6 Создание прикладной библиотеки для компас-3d

Прикладная библиотека для КОМПАС-3D представляет собой обычную DLL (Dynamic Link Library – динамически подключаемая библиотека Windows), только с расширением RTW (Рисунок 8). В разработанной программе файл готовой библиотеки хранится в папке «Редуктор_RTW».

Для того чтобы создать библиотеку, нужно выполнить последовательно несколько этапов. Рассмотрим их:

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

Рисунок 9 – Диалоговое окно New Items.

После нажатия на кнопку «ок» создастся файл-заготовка проекта, начинающийся со служебного слова library (обычные модули, с которыми обычно работает программист, начинаются со служебного слова unit).

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

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

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

  1. Закрываем окно, в котором был открыт файл Kompas6API5-TLB.pas, в редакторе кода Delphi и изменяем имя файла на ksTLB.pas. Сгенерированный файл Kompas6API5-TLB.pas с интерфейсами размещается в каталоге Imports папки, в которой установлен Delphi, например C:\Program Files\Borland\Delphi7\Imports. Копируем переименованный файл в каталог Редуктор_RTW\dcu.

  2. Переходим в главное окно проекта. В разделе uses заменяем следующую строку: Kompas6API5_TLB in '..\Imports\Kompas6API5_TLB.pas' на ksTLB. 

  3. Переходим в окно настроек проекта (Project → options) на вкладку Application (рисунок 11). В поле Target file extension вводим расширение, которое будет применяться для файла будущей библиотеки – RTW. Нажимаем OK, чтобы сохранить настройки.

Рисунок 11 – Диалоговое окно настроек свойств проекта.

Далее сохраняем проект и выполняем компиляцию (для этого воспользуемся командой Project → Compile Reductor или сочетанием клавиш Ctrl+F9). В результате в папке Редуктор_RTW появилась пока еще пустая и бесполезная библиотека, файл которой назван системой Reductor.rtw.

Чтобы RTW-библиотека, написанная на Delphi, могла взаимодействовать с КОМПАС, в ней обязательно должны присутствовать как минимум три функции:

• LibraryEntry – точка входа в библиотеку;

• LibraryName – возвращает имя библиотеки, отображаемое в менеджере библиотек;

• LibraryId – возвращает идентификатор библиотеки (позже его можно использовать при работе с самой библиотекой, для подключения списка меню ее команд и пр.).

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

Добавим описание этих функций в файл библиотеки:

library Reductor;

uses

SysUtils,

Classes,

Windows,

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;

exports

LibraryName name 'LIBRARYNAME',

LibraryId name 'LIBRARYID',

LibraryEntry name 'LIBRARYENTRY';

begin

end.

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

Рисунок 12 – Библиотеки КОМПАС

В итоге мы получили готовую для работы библиотеку компас (рисунок 12), с помощью которой ведется построение чертежей.