Студопедия

КАТЕГОРИИ:


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

Описание работы и интерфейс программы




После запуска программы пользователь видит главное окно приложения.

Рис.14 Главное окно программы

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

Под блоком исходных данных присутствует чертеж выбранного типа цепной передачи.

Рис.15 Панель для ввода исходных данных

В середине сверху в окне приложения находится блок выбора условий работы цепной передачи. В этом блоке можно указать нагрузку, которая может быть постоянная или переменная и угол наклона линий звездочек по отношению к горизонтали (до 60 градусов или больше 60 градусов). Способ регулирования натяжения цепи может быть с передвигающейся опорой, нажимным роликом или оттяжным роликом либо отсутствие регулирования натяжения цепи. Тип смазывания: непрерывное, капельное или прериодическое. Также можно указать тип работы цепной передачи: односменная, двусменная или трехсменная.

 

Рис.16 Блок выбора условий работы

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

Рис.17 Группа кнопок

 

В случае если введенные исходные данные не являются корректными появляется соответствующее окно об ошибке.

Рис.18 Сообщение об ошибке

Если в результате выбранных параметров подобрать цепь среди стандартных типоразмеров не удалось то таблица доступных вариантов будет пуста

Рис.19 Отображение пустой таблицы данных

Если же мы смогли выбрать какую-то цепь то ее параметры будут представлены в таблице находящиеся в нижнем правом углу приложения.

Рис.20 Отображение таблицы данных

Сразу после запуска в этой таблице отображаются варианты стандартных цепей, которые могут применяться при проектировании цепной передачи.

 

Рис.21 Таблица ГОСТов

Информация о стандартных параметрах цепных передач хранится в отдельной базе данных, разработанной в системе управления базами данных MS Access. После процедуры расчета мы можем сбросить параметры на начальные, нажав кнопку «Очистить». Результаты расчета можно просмотреть в окне находящемся в верхнем правом углу приложения

Рис.21 Результаты расчета

При нажатии кнопки «Сохранить в файл» появляется окно выбора месторасположения сохраняемого файла и после кнопки «Сохранить» он будет сохранен.

Рис.22 Сохранение файла

Заключение

В данной выпускной квалифицированной работе были решены следующие задачи:

1. Создана и заполнена база данных параметров стандартных цепных передач.

2.Разработана автоматизированная система расчета и проектирования цепных передач.

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

 

Список используемой литературы

1. Формулы для расчета параметров цепных передач – http://www.metiz-krepej.ru/peredachi/raschet_cepnyh_peredach.html

2. Цепные передачи по ГОСТ 13568-97 – http://mc.ru/gost/gost13568-97.pdf

3. Пособие по MS Access – http://www.taurion.ru/access

4. Пособие по Delphi 7 – http://delphi.support.uz/

5. Работа c ADO в Delphi – http://devdelphi.ru/?p=16

6. А.А. Бобцов, В.В. Шиегин Основы работы с MS Access.

7. Н. Н. Гринченко, Е. В. Гусев, Н. П. Макаров. Проектирование баз данных. СУБД Microsoft Access. Учебное пособие

 

 

Приложение 1

unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Math, DBCtrls, Grids, DBGrids, DB, ADODB;

 

type

TForm1 = class(TForm)

LabeledEdit1: TLabeledEdit;

LabeledEdit2: TLabeledEdit;

ComboBox1: TComboBox;

Label1: TLabel;

Button1: TButton;

Memo1: TMemo;

Image1: TImage;

Button2: TButton;

ComboBox2: TComboBox;

Label2: TLabel;

GroupBox1: TGroupBox;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

ComboBox5: TComboBox;

ComboBox6: TComboBox;

ComboBox7: TComboBox;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

LabeledEdit3: TLabeledEdit;

LabeledEdit4: TLabeledEdit;

GroupBox2: TGroupBox;

Button3: TButton;

SaveDialog1: TSaveDialog;

DBGrid1: TDBGrid;

ADOConnection1: TADOConnection;

ADOQuery1: TADOQuery;

DataSource1: TDataSource;

ADOQuery1DSDesigner: TIntegerField;

ADOQuery1DSDesigner2: TWideStringField;

ADOQuery1t: TFloatField;

ADOQuery1b1: TFloatField;

ADOQuery1d1: TFloatField;

ADOQuery1d2d4: TFloatField;

ADOQuery1h: TFloatField;

ADOQuery1b7: TFloatField;

ADOQuery1b: TFloatField;

ADOQuery1DSDesigner3: TFloatField;

ADOQuery1DSDesigner1: TFloatField;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure ComboBox1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.FormCreate(Sender: TObject);

begin

memo1.Lines.Clear;

 

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT * FROM gost');

ADOQuery1.Active:=True;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

const t: array [1..11] of real = (8, 9.525, 12.7, 15.875, 19.05, 25.4, 31.75, 38.1, 44.45, 50.8, 63.5);

var a, u, x, t_real, Lp, Lp1, a_t,t_p: real;

z1,z2, i,j, rad: integer;

d1,d2, da1, da2, T1, n1, s, p, dp: real;

ke, k1, k2,k3,k4,k5, Ft, v, w:real;

s1, tipo:string;

begin

a:=strtofloat(LabeledEdit1.Text); //межосевое расстояние

u:=strtofloat(LabeledEdit2.Text); //передаточное число

T1:=strtofloat(LabeledEdit3.Text);

n1:=strtofloat(LabeledEdit4.Text);

if u>7 then memo1.Lines.Add('Передаточное число должно быть меньше 7')

else begin

//числа зубьев ведущей и ведомой звездочки

if u<=5 then z1:=trunc(29-2*u);

if u>5 then z1:=trunc(29-1.5*u);

if frac(z1/2)=0 then z1:=z1+1;

z2:=round(u*z1);

if frac(z2/2)=0 then z2:=z2+1;

if ((combobox1.ItemIndex=0) and (z2<=90)) or ((combobox1.ItemIndex=1) and (z2<=120)) or((combobox1.ItemIndex=2) and (z2<=140))

then begin

memo1.Lines.Add('Число зубьев ведущей звездочки '+inttostr(z1));

memo1.Lines.Add('Число зубьев ведомой звездочки '+inttostr(z2));

end

else MessageDlg('Исходные данные не корректны', mtError, [mbOK],0);

 

rad:=combobox2.ItemIndex+1;

case rad of

1: i:=1;

2: i:=2;

3: i:=3;

4: i:=4;

end;

//шаг цепи

for j:=i to 11 do

begin

x:=a/t[j];

if (x>=30) and (x<=50) then begin

t_real:=t[j];

memo1.Lines.Add('Шаг цепи '+Floattostrf(t_real, fffixed, 10,3));

break;

end

else

continue;

 

if (x<30) or (x>50) then begin

MessageDlg('Исходные данные не корректны', mtError, [mbOK],0);

exit

end;

end;

 

case combobox1.ItemIndex of

0: tipo:='%ПВ%';

1: tipo:= '%ПР%';

2: tipo:= '%ПЗ%';

end;

 

//фильтр

DecimalSeparator:= '.';

ADOQuery1.SQL.Clear;

if (combobox1.ItemIndex=0) or (combobox1.ItemIndex=1) then

ADOQuery1.SQL.Add('SELECT * FROM gost WHERE kol='+inttostr(rad)+ ' AND t='+ Floattostrf(t_real, fffixed, 10,3)+

' AND Tip LIKE "'+tipo+'"');

if (combobox1.ItemIndex=2) then

ADOQuery1.SQL.Add('SELECT * FROM gost WHERE t='+ Floattostrf(t_real, fffixed, 10,3)+

' AND Tip LIKE "'+tipo+'"');

ADOQuery1.Active:=True;

DecimalSeparator:= ',';

 

//число звеньев

Lp1:=2*a/t_real+(z1+z2)/2+sqr(z2-z1)*t_real/(4*Pi*pi*a);

if frac(int(Lp1)/2)=0 then

Lp:=trunc(Lp1)

else Lp:=trunc(Lp1)+1;

memo1.Lines.Add('Число звеньев '+Floattostrf(Lp, fffixed, 10,0));

 

//уточняем межосевое расстояние

a_t:=t_real/4*(Lp-(z1+z2)/2+sqrt(sqr(Lp-(z1+z2)/2)-8*sqr((z2-z1)/2/pi)));

a_t:=a_t-0.003;

memo1.Lines.Add('Межосевое расстояние '+floattostrf(a_t, fffixed, 10,3)+'мм');

 

//диаметры

d1:=abs(t_real/sin(180/z1));

d2:=abs(t_real/sin(180/z2));

memo1.Lines.Add('Делительный диаметр ведущей звездочки '+Floattostrf(d1, fffixed, 10,3)+ 'мм');

memo1.Lines.Add('Делительный диаметр ведомой звездочки '+Floattostrf(d2, fffixed, 10,3)+ 'мм');

if (combobox1.ItemIndex=0) or (combobox1.ItemIndex=1) then

begin

Da1:=abs(t_real*(cotan(180/z1)+0.5));

Da2:=abs(t_real*(cotan(180/z2)+0.5));

 

end;

 

if (combobox1.ItemIndex=2) then

begin

Da1:=abs(t_real*cotan(180/z1));

Da2:=abs(t_real*cotan(180/z2));

end;

 

memo1.Lines.Add('Диаметр вершин зубьев ведущей звездочки '+Floattostrf(da1, fffixed, 10,3)+ 'мм');

memo1.Lines.Add('Диаметр вершин зубьев ведомой звездочки '+Floattostrf(da2, fffixed, 10,3)+ 'мм');

end;

 

//коэффициент эксплуатации

if combobox3.ItemIndex=0 then k1:=1 else k1:=1.3;

if combobox4.ItemIndex=0 then k2:=1 else k2:=1.25;

case combobox5.ItemIndex of

0: k3:=1;

1: k3:=1.1;

2: k3:=1.25;

end;

case combobox7.ItemIndex of

0: k4:=0.8;

1: k4:=1;

2: k4:=1.5;

end;

 

case combobox6.ItemIndex of

0: k5:=1;

1: k5:=1.25;

2: k5:=1.45;

end;

 

ke:=k1*k2*k3*k4*k5;

//окружная сила

Ft:=2*T1/d1;

//cкорость цепи

v:=z1*n1*t_real/60000;

if v>10 then begin MessageDlg('Скорость цепи превышает допустимую', mtError, [mbOK],0);

exit

end

else memo1.Lines.Add('Скорость цепи '+floattostrf(v, fffixed, 10,3)+'м/c');

//давление в шарнирах

S:=0.25*sqr(t_real);

p:=ke*Ft/S;

 

if v<0.1 then dp:=32;

if (v>=0.1) and (v<0.4) then dp:=28;

if (v>=0.4) and (v<1) then dp:=25;

if (v>=1) and (v<2) then dp:=21;

if (v>=2) and (v<4) then dp:=17;

if (v>=4) and (v<6) then dp:=14;

if (v>=6) and (v<8) then dp:=12;

if (v>=8) and (v<10) then dp:=10;

 

if p>dp then begin

MessageDlg('Давление в шарнире превышает допустимое', mtError, [mbOK],0);

exit

end

else memo1.Lines.Add('Давление в шарнире ' +floattostrf(p, fffixed, 10,3)+'Hм');

 

//число ударов в секунду

w:=4*z1*n1/(60*Lp);

if w>=(508/t_real) then begin

MessageDlg('Число ударов цепи в секунду слишком большое', mtError, [mbOK],0);

exit

end

else memo1.Lines.Add('Число ударов цепи в секунду ' +floattostrf(w, fffixed, 10,3));

 

//тип цепи

case combobox1.ItemIndex of

0: s1:=inttostr(combobox2.itemindex+1)+'ПВ';

1: s1:=inttostr(combobox2.itemindex+1)+'ПР';

2: s1:='ПЗ';

end;

 

//Memo1.Lines.Add('Тип цепи - '+s1+'-'+floattostrf(t_real,fffixed,10,3)+'-'+floattostrf(dp, fffixed, 10,3))

 

end;

 

 

procedure TForm1.ComboBox1Click(Sender: TObject);

var path:string;

begin

path:=ExtractFilePath(Application.ExeName);

if combobox1.ItemIndex=0 then

Image1.Picture.LoadFromFile(path+'втулочная.bmp');

if combobox1.ItemIndex=1 then

Image1.Picture.LoadFromFile(path+'роликовая.bmp');

if combobox1.ItemIndex=2 then

Image1.Picture.LoadFromFile(path+'зубчатая.bmp');

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

combobox1.ItemIndex:=-1;

memo1.Lines.Clear;

LabeledEdit1.Text:='';

LabeledEdit2.Text:='';

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT * FROM gost');

ADOQuery1.Active:=True;

 

end;

 

procedure TForm1.Button3Click(Sender: TObject);

var f:textfile; i,j,f_c, r_c:integer;Str:string;

sline: string;

begin

 

ADOQuery1.First;

 

str:= '';

for i:= 0 to DBGrid1.FieldCount-1 do begin

str:= str + DBGrid1.Columns.Items[i].DisplayName+' '+ DBgrid1.Fields[i].AsString+ #9;

end;

memo1.Lines.Add(str);

 

WITH SaveDialog1 DO

IF Execute THEN Memo1.Lines.SaveToFile(filename);

end;

end.

Приложение 2

Графическая часть




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


Дата добавления: 2015-06-28; Просмотров: 1761; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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