русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Работа с AutoCAD по COM-технологии

Рассмотрим теперь работу с СОМ-сервером, который не знаком Delphi. Для примера возьмем AutoCAD. Прежде всего, в проект необходимо импортировать библиотеку типов – Delphi должен узнать, какие методы и свойства есть в искомом COM-сервере. Создаем новый проект, в меню Project выбираем пункт Import Type Library. Открывается окно импорта библиотеки типов (Рис. 22.7).

Рис. 26.7 Окно импорта библиотеки типов.

В списке в верхней части окна перечислены все установленные на компьютере СОМ-серверы. В этот список надо добавить библиотеку типов AutoCAD. Для версии 2004 она живет в файле acax16enu.tlb, который находится в директории Program Files\Common Files\Autodesk Shared. Щелкаем по кнопке Add… и открываем файл acax16enu.tlb. В раскрывающемся списке Palette Page можно выбратьту страницу палитры компонентов, на которую будут добавлены новые компоненты для работы с AutoCAD. Можно выбратьстраницу Servers или предварительно создать отдельную страницу (щелчок правой кнопкой мыши над палитрой).

Указав файл и страницу, щелкаем по кнопке Install. Появляется окно Install (Рис. 22.8). В нем просто щелкаем по кнопке ОК.

Рис. 26.8 Окно установки компонентов.

Затем выводится окно компиляции (Рис. 22.9). Щелкаем по кнопке Compile. В процессе компиляции обычно на одной-двух строчках выскакивают ошибка – эти ошибки допущены разработчиками AutoCAD. Просто закомментируйте эти строчки. После успешной компиляции щелкните по кнопке Install. В результате в палитре компонентов на выбранной странице будет добавлен ряд новых компонентов, отвечающих за связь с AutoCAD.

Рис. 26.9 Окно компиляции.

Закрываем проект, создаем новый проект и помещаем на форму компонент AcadDocument и кнопку. В обработчике нажатия кнопки подключаемся к AutoCAD и проводим отрезок из точки (0;0;0) в точку (10;10;0):

procedure TForm1.Button1Click(Sender: TObject);

var

v : OleVariant;

BeginPoint, EndPoint: OleVariant;

Line: IAcadLine;

par,par1:OLEVariant;

begin

Try

// пытаемся присоединиться к уже запущенной копии AutoCad

v := GetActiveOleObject('AutoCAD.Application');

AcadDocument1.ConnectTo((IDispatch(v) as IAcadApplication).ActiveDocument);

Except

// если не получилось, то запускаем новую копию AutoCad

AcadDocument1.Connect

end;

// задаём массив из трёх вещественных чисел

BeginPoint:= VarArrayCreate([0, 2], varDouble);

EndPoint:= VarArrayCreate([0, 2], varDouble);

BeginPoint[0]:= 0.0; // координата X

BeginPoint[1]:= 0.0; // координата Y

BeginPoint[2]:= 0.0; // координата Z

EndPoint[0]:= 10.0; // координата X

EndPoint[1]:= 10.0; // координата Y

EndPoint[2]:= 0.0; // координата Z

// функция AddLine добавляет отрезок в чертеж

Line:= AcadDocument1.ModelSpace.AddLine(BeginPoint, EndPoint);

// поменять цвет отрезка

Line.color:= acRed;

// поменять толщину линии

Line.Lineweight:= acLnWt040;

// сохраним файл

par:=ExtractFilePath(Application.ExeName)+'1.dwg';

par1:=ac2004_dwg;

AcadDocument1.SaveAs(par,par1);

AcadDocument1.Close;

AcadDocument1.Disconnect;

MessageDlg('Вывод в AutoCAD завершен', mtInformation, [mbOK],0)

end;

Цвет и толщина линии задаются специальными константами вида acRed, acLnWt40 и т.д. Полный список этих констант можно найти в файле AutoCAD_TLB.pas, который был создан при подключении библиотеки типов и находится в директории Delphi\Imports.

Для упрощения кода программы введем функцию GetPoint, которая преобразует три вещественных числа (координаты точки) в массив типа OLEVariant:

Function GetPoint(X, Y, Z: double): OleVariant;

begin

Result:= VarArrayCreate([0, 2], varDouble);

Result[0]:= x;

Result[1]:= y;

Result[2]:= z;

end;

Попробуем нарисовать окружность. Для этого введем переменную C типа IAcadCircle:

VAR c:IAcadCircle;

// зеленая окружность с центром в (20;20;20) радиусом 10

c:=AcadDocument1.ModelSpace.AddCircle(GetPoint(20,20,0),10);

c.color:=acGreen;

c.Lineweight:=acLnWt040;

Аналогичным образом можно подключаться к таким программам, как Visio, SolidWorks, Компас, что позволяет использовать их как основу для разработки специализированных САПР.

Просмотров: 1069


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.