Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Exports




Begin

Begin

Вид

Окружность

Дуга

Прямая

Отрезок

Точка

Примитив «Точка» реализуется методом ksPoint(x,y,style) и ставит точку с координатами x,y и стилем style. Стили точек приведены в приложении 5.1.

Метод «Отрезок» ksLineSeg(x1,y1,x2,y2,type) проводит отрезок стилем линии type из точки (x1,y1) в точку (x2,y2).

Метод «Прямая» ksLine(x,y,angle) проводит бесконечную прямую через точку x,y под углом angle в градусах к положительному направлению оси ОХ.

Метод «Дуга1» ksArcBy3Points (x1, y1, x2,y2, x3, y3, type) строит дугу по трем точкам стилем линии type.

Метод «Дуга2» ksArcByAngle (xc, yc, rad, f1, f2, direction, type) строит дугу: xc, yc - координаты центра дуги, rad - радиус дуги, f1, f2 - начальный и конечный угол дуги в градусах, direction – направление отрисовки дуги:1 - против часовой стрелки, (-1) - по часовой стрелке, type - стиль линии.

Метод «Дуга3» ksArcByPoint (xc, yc, rad, x1, y1, x2, y2, direction, type) строит дугу: xc, yc - координаты центра дуги, rad - радиус дуги, x1, y1 – координаты начальной точки дуги, x2, y2 - координаты конечной точки дуги, direction -направление отрисовки дуги:1 - против часовой стрелки,(-1) - по часовой стрелке, type - стиль линии.

Метод «Окружность» ksCircle(xc, yc, rad, type) строит окружность с центром в точке xc,yc, радиусом rad и стилем линии type.

 

 

Чертеж в КОМПАСе делится на виды. По умолчанию все отрисовываемые объекты оказываются на системном виде, что в общем-то неудобно. Элементы чертежа надо группировать по видам. Кроме того, каждый вид имеет свою систему координат и свой масштаб, что позволит пользователю библиотеки легко перемещать и масштабировать построенное программой изображение. Поэтому все построения будут делаться на новом виде. Процедуру создания вида необходимо запустить до начала рисования графических изображений. Начало координат вида (точка привязки) устанавливается в точке x0 и y0. В строку параметров также передаётся масштаб, угол поворота, цвет, статус и имя вида. Приведем пример процедуры создания вида.

procedure MakeView(x0,y0:DOUBLE; nm:STRING);

var par:ksViewParam; n:INTEGER;

par:= ksViewParam(kompas.GetParamStruct(ko_ViewParam));

with par do

Init;

// точка привязки вида

x:= x0;

y:= y0;

scale_:= 1;

Angle:= 0;

//цвет вида, когда он активен

Color:= clRed;

state:= stACTIVE;

name:= nm

end;

n:=0;

iDocument2D.ksCreateSheetView(par, n)

end;

 

5.5. Пример разработки 2D-библиотеки «Отрезок1»

Поставим задачу создания простейшей 2D библиотеки, которая выполняла бы следующие действия: создавала бы в чертеже вид с началом координат в точке x0, y0, выводила бы на экран форму для ввода координат (x0,y0,x1,y1,x2,y2) и в текущем чертеже проводила бы отрезок из точки x1,y1 в точку x2,y2. В Delphi создаем новый проект типа "DLL library" (вспоминаем курс "Информатика"). В файле.dpr такого проекта содержится заголовок библиотеки со списком экспортируемых процедур. Для того, чтобы КОМПАС подключил нашу библиотеку, она должна экспортировать следующие процедуры и функции:

LibraryName - функция, возвращающая текстовое название библиотеки;

LibraryId – функция, возвращающая целый идентификатор библиотеки;

LibraryEntry – точка входа в библиотеку, или, проще говоря, процедура,выполняемая при запуске библиотеки.

Чтобы создаваемая библиотека автоматически получила расширение rtw, а не dll, надо использовать директиву компилятора {$E rtw}. Тогда dpr-файл нашего проекта будет иметь вид:

library OTREZOK1;

{$E rtw}

uses SysUtils, Classes, KsTLB,main1 in ‘main1.pas’,former1 in ‘former1.pas;

LibraryName name 'LIBRARYNAME',

LibraryId name 'LIBRARYID',

LibraryEntry name 'LIBRARYENTRY';




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 432; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.