Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Лабораторная работа №6




Библиография

Контрольные вопросы

Except

Try

Begin

Begin

Begin

Begin

Implementation

Var

Public

Private

Type

Uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,LDefin2D, ksConstTLB, ksAuto, ksTLB;

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 declarations }

{ Public declarations }

end;

 

MainForm: TMainForm;

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;

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;

//выполняем процедуру DrawOtrezok

// 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;

X1:=StrToFloat(Edit1.Text);

Y1:=StrToFloat(Edit2.Text);

X2:=StrToFloat(Edit3.Text);

Y2:=StrToFloat(Edit4.Text);

X0:=StrToFloat(Edit5.Text);

Y0:=StrToFloat(Edit6.Text)

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стр.

 

 


Приложение 5.1. Стили точек

0 - точка

1 - крестик

2 - х-точка

3 - квадрат

4 - треугольник

5 - окружность

6 - звезда

7 - перечеркнутый квадрат

8 - утолщенный плюс

 

Приложение 5.2. Коды стилей линий

1 - основная линия

2 - тонкая линия

3 - осевая линия

4 - штриховая линия

5 - для линии обрыва

6 - вспомогательная линия

7 - утолщенная

8 - штрихпунктирная линия с двумя точками

9 - штриховая толстая линия

10 - осевая толстая линия

11 - тонкая линия, включаемая в штриховку

12 - ISO штриховая линия

13 - ISO штриховая линия (дл. пробел)

14 - ISO штрихпунктирная линия (дл. штрих)

15 - ISO штрихпунктирная линия (дл. штрих 2 пунктира)

16 - ISO штрихпунктирная линия (дл. штрих 3 пунктира)

17 - ISO пунктирная линия

18 - ISO штрихпунктирная линия (дл. и кор. штрихи)

19 - ISO штрихпунктирная линия (дл. и 2 кор. штриха)

20 - ISO штрихпунктирная линия

21 - ISO штрихпунктирная линия (2 штриха)

22 - ISO штрихпунктирная линия (2 пунктира)

23 - ISO штрихпунктирная линия (3пунктира)

24 - ISO штрихпунктирная линия (2 штриха 2 пунктира)

25 - ISO штрихпунктирная линия (2 штриха 3 пунктира)

 


«Разработка прикладной библиотеки чертежей»

6.1. Цель работы

Целью работы является приобретение навыков создания 2D-прикладных библиотек и подключения их к САПР «Компас».

6.2. Задание

Разработать прикладную библиотеку для построения следующих деталей:

Варианты заданий Таблица 6.1

№ п/п Название чертежа Число видов
  Ось  
  Вал  
  Стакан  
  Фланец  
  Трубопровод  
  Корпус  
  Цилиндр  
  Поршень  
  Опора  
  Шток  

 

6.3. Порядок выполнения работы

1. - Получить задание у преподавателя,

2. - изучить теоретическую часть,

3. - ответить на контрольные вопросы,

4. - проделать пример выполнения работы,

5. - разработать прикладную библиотеку,

6. - подключить библиотеку к САПР «Компас»,

7. - сделать чертеж при помощи разработанной библиотеки,

8. - подготовить отчёт по проделанной работе в текстовом формате KDW с переходом через формат JPG в формат PDF.

6.4. Теоретическая часть

Сложные построения графических элементов чертежа(эллипс, текст, размеры) требуют так много параметров, что передавать их через заголовок метода просто неудобно. Поэтому используется следующий прием: создается переменная (аналог типа RECORD), ее поля заполняются требуемыми значениями и эта переменная подается на вход соответствующему методу. Разумеется, при частом использовании таких объектов в программе разумно вынести код их построения в отдельные процедуры с соответствующими параметрами.

Эллипс. Эллипс строится следующим кодом:

var par:ksEllipseParam;




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


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


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



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




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