КАТЕГОРИИ: Архитектура-(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; Просмотров: 1825; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |