![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,LDefin2D, ksConstTLB, ksAuto, ksTLB;
Type
TMainForm = class (TForm)
Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel;
Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit;
Button2: TButton; Button3: TButton;
procedure Button3Click(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
end;
Var
MainForm: TMainForm;
Implementation
uses main1;
{$R *.dfm}
//----------------------------------------------------------------------------
procedure DrawOtrezok1(x0,y0,x1,y1,x2,y2:double; nm:string);
//создание вида в текущем чертеже
procedure MakeView(x0,y0:DOUBLE; nm:STRING);
var par:ksViewParam; n:INTEGER;
Begin
par:= ksViewParam(kompas.GetParamStruct(ko_ViewParam));
with par do
Begin
Init;
// точка привязки вида
x:= x0;
y:= y0;
scale_:= 1;
Angle:= 0;
//цвет вида, когда он активен
Color:= clRed;
state:= stACTIVE;
name:= nm
end;
n:=0;
iDocument2D.ksCreateSheetView(par, n)
end;
//выполняем процедуру DrawOtrezok
Begin
// cоздаём вид
MakeView(x0,y0,nm);
// отрезок
iDocument2D.ksLineSeg(x1,y1,x2,y2,1);
end;
//начало работы библиотеки
procedure TMainForm.Button3Click(Sender: TObject);
var X0,Y0,X1,Y1,X2,Y2:double;
Begin
Try
X1:=StrToFloat(Edit1.Text);
Y1:=StrToFloat(Edit2.Text);
X2:=StrToFloat(Edit3.Text);
Y2:=StrToFloat(Edit4.Text);
X0:=StrToFloat(Edit5.Text);
Y0:=StrToFloat(Edit6.Text)
Except
Kompas.ksMessage(‘Неверные данные');
abort
end;
DrawOtrezok1(X0,Y0,X1,Y1,X2,Y2,'otrezok')
end;
end.
Поместим на форму четыре компонента типа TEdit для ввода координат точек отрезка и два компонента типа TEdit для ввода начала координат вида, компоненты типа TLabel для размещеня надписей, кнопку "Отрезок" и кнопку "Готово"(Рис. 5.1). Как и в любой другой библиотеке, форма не создается автоматически – ее надо вручную создать и отобразить.
Рис.5.1. Форма библиотеки Отрезок
На время работы с формой надо отключить доступ к элементам интерфейса КОМПАС, иначе неизбежны попытки одновременного рисования в документе пользователем и библиотекой. Процедура Run в модуле main1 все это выполняет. Форма будет выводиться в модальном режиме. Это означает, что она заблокирует все остальные формы и, пока мы ее не закроем, доступ к КОМПАСу будет запрещен, что и требовалось. Чтобы модальную форму корректно закрыть, не обязательно выполнять метод Close. Достаточно в свойствах кнопки "Закрыть" установить ModalResult в значение mrOK. Это равносильно закрытию формы при нажатии на данную кнопку.
Для рисования отрезка используем имеющиеся в API команды построения изображений. Все они являются методами объекта iDocument2D. Построим отрезок в procedure TMainForm.Button3Click (Sender: TObject) при помощи метода ksLineSeg. На рисунке 5.2. показан чертёж с результатами работы библиотеки Отрезок1.
Рис.5.2. Пример применения библиотеки Отрезок1
5.6.Содержание отчёта
1.Титульный лист.
2. Задание.
3. Краткая теоретическая часть.
4. Содержательное описание прикладной библиотеки.
5. Файлы библиотеки с программным кодом.
6. Пример работы с библиотекой.
7. - подготовить отчёт по проделанной работе в текстовом формате KDW с переходом через формат JPG в формат PDF.
Контрольные вопросы
1.Что такое прикладная библиотека?
2. Как подключить к Компасу прикладную библиотеку?
3. Каков порядок создания нового проекта библиотеки в Delphi?
4. Каково назначение файла проекта?
5. Каково назначение файла формы?
6. Каково назначение файла программного модуля?
7. Какие функции должна экспортировать прикладная библиотека для её подключения к Компасу?
8. Какие основные методы создания графических примитивов имеются в API Компас?
9.Как производится отладка библиотеки?
10. Какой порядок работы с библиотекой при создании чертежа?
Библиография
1. Богуславский А.А. Си++ и компьютерная графика. М.,Компьютер Пресс,2003,352стр.
2.Карпов Б. Delphi:специальный справочник. СПб, Питер, 2001, 688стр.
3.Троицкий Д.И. Разработка 2D-библиотек для Компас. Тула, ТГУ, 2007, 26стр.
Дата публикования: 2014-11-04; Прочитано: 512 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!