Смекни!
smekni.com

Использование современного программного обеспечения для проектировании цепной передачи в металлорежущем станке (стр. 2 из 4)

В случае если данное условие не будет выполнятся, программа выдаст пользователю извещение об этом.

-условие долговечности:

Если данное условие не выполняется, то пользователь будет об этом информирован. И наконец, определив указанные выше параметры мы сможем посчитать ширину цепи:

Вторая часть расчетов посвящена геометрическому расчету звездочки. Программа рассчитывает и выводит на экран следующие параметры:

Половина углового шага τ, которая высчитывается по формуле:

Диаметр делительной окружности

:

Радиальный зазор, е:

Высота зуба, h

Диаметр окружности впадин

:

Расстояние между верхним краем рабочей грани звена и точкой, лежащей в плоскости измерения зуба, Р:

Радиус построения криволинейного профиля зуба R:

Наибольший зазор между рабочей гранью пластин и зубом, K:

Угол поворота звена на звездочке, φ:

Ширина зуба, b:

Расстояние от вершины зуба до линии центров

:

Радиус закругления торца зуба и направляющей проточки r:

Глубина проточки

Ширина проточки, s1

5. Принцип работы программы

Программа состоит из одного главного окна.

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


В левой стороне содержатся операторы, запоминающие данные вводимые пользователем. Диаметр ведущей звездочки вводится с клавиатуры путем нажатия кнопок несущих в себе числа (по умолчанию 69 мм). Число зубьев звездочки указывается в выпадающем спике при помощи левой кнопки мышки (по умолчаннию z=17). Передаточное отношения указывается также, как и число зубьев звездочки (по умолчанию u=1). Частота вращения звездочки заполняется вводом с клавиатуры, «не числовые» клавиши заблокированы (по умолчанию n=1500 об/мин). Характер работы цепи задается благодаря выпадающему списку по щелчку мыши. Температура окружающей среды вводится по средствам полосы прокрутки, правее полосы прокрутки указывается текущее значение температуры (по умолчанию 15 0 С). Максимально допустимая частота вращения ведущей звездочки (nmax) выбирается из выпадающего списка (по умолчанию nmax=3300 об/мин ). При помощи второй полосы прокрутки пользователь может задать передаваемую цепью мощность N в кВт (по умолчанию N=14 кВт). Далее после корректировки всех данных нужно нажать кнопку «Расчет».

Механизм программы обработает данные и окно программы примет следуюший вид:

Рисунок 2. Вид программы после нажатия кнопки «Расчет»


Как видно на картинке в правой части и в центре появились значения вычисленных геометрических величин. В центре, чуть ниже картинки располагается надпись «Типоразмер цепи З-12-2,4». Программа выдала нам стандартный типоразмер цепи, согласно указанным условиям.Далее пользователю необходимо нажать кнопку «Внести в базу». Окно изменится (см рисунок3)

Как видим на белом поле ниже кнопки «Внести в базу» появился ряд чисел. Каждое число соотвествует характеристике находящейся над ней. Соотвествие буквенных обозначений геометрическим параметрам можно найти на окне программы. Данная структура записи в этом поле не случайна. Дело в том, что впоследствии пользователь сможет сохранить результаты вычислений в файле «Цепь.txt» (путем нажатия из выпадающего главного меню «Файл» и выбора там функции «сохранить» ). Файл примет структуру аналогичную структуре записи окна. Данная структура является ничем иным как внешней базой, на которую можно сослаться при работе в программе T-Flex, с целью построения конкретного чертежа или 3D модели зубчатой цепи и звездочки. Для произведения указанных действий необходимо будет иметь уже готовый параметризованный чертеж цепи и звездочки, разработка которого находится в перспективе.

Рисунок 3 Окно программы после нажатия кнопки «Внести в базу»


Код программы содержит в себе механизмы предупреждения пользователя о его некорректной работе с программой. В коде прописаны условия предъявляемые к самой цепной передаче, невыполнение которых, из – за некорректно введенных данных ведет к появлению различного рода сообщений, информирующих пользователя и дающих ему совет.

6. Кодпрограммы

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, jpeg, Menus;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

ComboBox1: TComboBox;

Label2: TLabel;

Button1: TButton;

Label3: TLabel;

Label4: TLabel;

Edit2: TEdit;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Edit3: TEdit;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

ComboBox2: TComboBox;

RadioButton1: TRadioButton;

Label11: TLabel;

RadioButton2: TRadioButton;

Label12: TLabel;

ScrollBar1: TScrollBar;

Label13: TLabel;

Label14: TLabel;

ComboBox3: TComboBox;

Label15: TLabel;

Label16: TLabel;

ScrollBar2: TScrollBar;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label24: TLabel;

ComboBox4: TComboBox;

Label25: TLabel;

Image1: TImage;

Panel1: TPanel;

Memo1: TMemo;

Button2: TButton;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

Button3: TButton;

Label26: TLabel;

Label27: TLabel;

Label28: TLabel;

Label29: TLabel;

Label30: TLabel;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Label35: TLabel;

Label36: TLabel;

Label37: TLabel;

Label38: TLabel;

Label39: TLabel;

Label40: TLabel;

Label41: TLabel;

Label42: TLabel;

Label43: TLabel;

Label44: TLabel;

Label45: TLabel;

Label46: TLabel;

Label47: TLabel;

Label48: TLabel;

Label49: TLabel;

Label50: TLabel;

Label51: TLabel;

Label52: TLabel;

Label53: TLabel;

Label54: TLabel;

Label55: TLabel;

Label56: TLabel;

Label57: TLabel;

Label58: TLabel;

Label59: TLabel;

Label60: TLabel;

Label61: TLabel;

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Button1Click(Sender: TObject);

procedure Edit2Exit(Sender: TObject);

procedure Edit3KeyPress(Sender: TObject; var Key: Char);

procedure Edit4KeyPress(Sender: TObject; var Key: Char);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure ScrollBar1Change(Sender: TObject);

procedure ScrollBar2Change(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if not (Key in ['0'..'9']) then Key := #0;

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

if not (Key in ['0'..'9']) then Key := #0;

end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

if not (Key in ['0'..'9']) then Key := #0;

end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);

begin

if not (Key in ['0'..'9','-']) then Key := #0;

end;

procedure TForm1.Edit2Exit(Sender: TObject);

var De:real;

begin

De:=StrToFloat(Edit2.text);

if De<68 then ShowMessage('Значение диаметра ведущей звездочки введено некорректно')

else

end;

procedure TForm1.ScrollBar1Change(Sender: TObject);

begin

Label13.Caption:=IntToStr(ScrollBar1.Position);

end;

procedure TForm1.ScrollBar2Change(Sender: TObject);

begin

Label17.Caption:=IntToStr(ScrollBar2.Position);

end;

procedure TForm1.Button1Click(Sender: TObject);

var A,s,Dmax,u,u1,De,n,h,V,P,Talpha,klambda,kt,T,kv,e,shag,B,Bkon,z,Lt,L,b2,c1,r1,tau,dd,Dt,R,K,fi,beta,gamma,bzuba,cL,h1,s1,ty,y:real;

begin

A:=StrToFloat(Edit1.text);

De:=StrToFloat(Edit2.text);

u:=StrToFloat(ComboBox1.text);

if ComboBox1.Text='1..4'

then Dmax:=(1.66*A)/(u+1)

else Dmax:=A/(u+1);

if Dmax<69 then ShowMessage('Значение максимального диаметра ведущей звездочки при данных параметрах слишком мало. Перезадайте межосевое расстояние или передаточное отношение')

else

if De>Dmax then ShowMessage('Значение диаметра ведущей звездочки превышает максимальный. Перезадайте межосевое расстояние,передаточное отношение или уточните диаметр ведущей зведочки')

else

label3.Caption:=formatfloat('#.##',De);

n:=StrToFloat(Edit3.text);

V:=(3.14*De*n)/60000;

label8.Caption:=formatfloat('###.##',V);

if (combobox2.ItemIndex=0) and (RadioButton1.Checked) then klambda:=1;

if (combobox2.ItemIndex=1) and (RadioButton1.Checked) then klambda:=1.25;

if (combobox2.ItemIndex=2) and (RadioButton1.Checked) then klambda:=1.4;

if (combobox2.ItemIndex=3) and (RadioButton1.Checked) then klambda:=1.6;

if (combobox2.ItemIndex=4) and (RadioButton1.Checked) then klambda:=1.8;

if (combobox2.ItemIndex=5) and (RadioButton1.Checked) then klambda:=1.9;

if (combobox2.ItemIndex=0) and (RadioButton2.Checked) then klambda:=1;

if (combobox2.ItemIndex=1) and (RadioButton2.Checked) then klambda:=1;

if (combobox2.ItemIndex=2) and (RadioButton2.Checked) then klambda:=1.1;

if (combobox2.ItemIndex=3) and (RadioButton2.Checked) then klambda:=1.25;

if (combobox2.ItemIndex=4) and (RadioButton2.Checked) then klambda:=1.45;

if (combobox2.ItemIndex=5) and (RadioButton2.Checked) then klambda:=1.5;

T:=StrToFloat(Label13.Caption);

if (T>-80) and (T<-25) then kt:=2.5;

if (T>-25) and (T<150) then kt:=1;

if (T>150) and (T<250) then kt:=1.25;

kv:=1-1.1*0.001*V*V;

if ComboBox3.Text='3300' then shag:= 12.7;