Решение инженерно-технических задач с использованием средств визуального программирования

Расчет подшипников на долговечность. Решение инженерно-технических задач программными методами с использованием среды прикладного программирования Dephi. Расчет параметров зубчатого зацепления. Расчет шпилечного и винтового резьбового соединения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 04.06.2013
Размер файла 366,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

Министерство образования и науки Российской Федерации

ФГАОУ ВПО «Уральский федеральный университет

имени первого Президента России Б.Н.Ельцина»

Кафедра «Информационные технологии и автоматизация проектирования»

Оценка за курсовую работу

Члены комиссии

К У Р С О В А Я Р А Б О Т А

по дисциплине "Информатика"

Решение инженерно-технических задач с использованием средств визуального программирования

вариант №2

Выполнил

Студент: Зырянова К.И.

Группа: М - 120203

Принял:

Склярова Н.С.

Екатеринбург

2013

Содержание

  • введение
  • 1. задача №1. Расчет подшипников на долговечность
    • 1.1. постановка задачи
    • 1.2. обозначение переменных
    • 1.3. данные для расчетов
    • 1.4. текст программы
  • 2. Задача №2. Зубчатые зацепления
    • 2.1. постановка задачи
      • 2.2.основные уравнения
      • 3.3.обозначения переменных
      • 3.4. исходные данные
    • 3.5.текст программы
  • 3. Задача №3. Резьбовые соединения
    • 3.1. постановка задачи
    • 3.2. основные уравнения
    • 3.3. исходные данные
    • 3.4.текст программы
  • Заключение
  • Библиографический список
  • Введение
  • Целью данной курсовой работы является закрепление знаний, основ построения систем автоматизации проектных работ и умение решать типовые инженерно-технические задачи программными методами с использованием среды прикладного программирования Dephi.
  • Курсовая работа содержит в себе постановку, алгоритмизацию и разработку программного модуля для автоматизации трех задач из области машиностроительного конструирования.
  • Первая программа выполняет расчет номинальной долговечности подшипника.
  • Вторая программа позволяет рассчитать параметры зубчатого зацепления: число зубьев шестерни, передаточное число, диаметр окружности выступов/впадин, ширину зубчатого венца.
  • Третья программа проводит расчет резьбового соединения- болтового, шпилечного, винтового.
  • Все программы содержат расчетные формулы и пояснения.
  • Задача №1. Расчет подшипника на долговечность
  • 1.1 Постановка задачи
  • Написать программу, производящую расчет подшипника на долговечность.
  • Программа должна позволять вводить исходные данные и выводить долговечность работы подшипника.
  • Расчет подшипника на долговечность производится, исходя из его динамической грузоподъемности, характеризующую постоянную радиальную нагрузку, которую группа идентичных подшипников с неподвижным наружным кольцом сможет выдержать в течении расчетного срока службы, исчисляемого в часах.
  • Долговечность подшипника определяется как срок службы до появления признаков контактной усталости на любом из колец или тел тел качения.
  • Под расчетным сроком службы понимают срок службы партии подшипников, в которых не менее 90% одинаковых подшипников, при одинаковой нагрузке и частоте вращения должны отработать без появления на рабочих поверхностях раковин и отслаивания.
  • Зависимость м/у номинальной долговечности (L),динамической грузоподъемностью (C) и действующей нагрузкой (P) определяется формулой:
  • Эквивалентная динамическая нагрузка определяется по формуле:
  • 1.2 Обозначение переменных
  • p-показатель степени( для шариковых подшипников р=3; для роликовых р=10/3 или 3,33)
  • Fr - постоянная по величине и направлению радиальная нагрузка, Н;
  • Fa- постоянная по величине и направлению осевая нагрузка, Н;
  • X - коэффициент радиальной нагрузки;
  • Y - коэффициент осевой нагрузки;
  • V - коэффициент вращения (V=1);
  • Кб - коэффициент безопасности;
  • КT - температурный коэффициент
  • 1.3 Данные для расчетов
  • тип, серия подшипника: Радиально-упорный шариковый однорядный легкой серии № 36204
  • режим работы: Средний равновероятный
  • Коэффициент эквивалентности: 0,25
  • Fr =1,59
  • Fa=3,142
  • X =0,46
  • Y =1,421
  • V =1
  • Кб =1,3
  • КT =1
  • 1.4 Текст задачи
  • unit Unit1;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, ExtCtrls, StdCtrls;
  • type
  • TForm1 = class(TForm)
  • Label1: TLabel;
  • Edit1: TEdit;
  • Label2: TLabel;
  • Edit2: TEdit;
  • Label3: TLabel;
  • Label4: TLabel;
  • Edit3: TEdit;
  • Edit4: TEdit;
  • Label5: TLabel;
  • Edit5: TEdit;
  • Label6: TLabel;
  • Edit6: TEdit;
  • Label7: TLabel;
  • Edit7: TEdit;
  • Label8: TLabel;
  • Edit8: TEdit;
  • Label9: TLabel;
  • Label10: TLabel;
  • Button1: TButton;
  • Button2: TButton;
  • Image1: TImage;
  • Label11: TLabel;
  • Label12: TLabel;
  • Label13: TLabel;
  • Label14: TLabel;
  • procedure FormActivate(Sender: TObject);
  • procedure Button1Click(Sender: TObject);
  • private
  • { Private declarations }
  • public
  • { Public declarations }
  • end;
  • var
  • Form1: TForm1;
  • implementation
  • {$R *.dfm}
  • procedure TForm1.FormActivate(Sender: TObject);
  • var
  • pol: array [1..6] of TPoint;
  • a, b, i: integer;
  • begin
  • Image1.Canvas.Brush.Color := clWhite;
  • Image1.Canvas.Brush.Style := bsSolid;
  • a := 150; { Смещение по горизонтали }
  • b := 50; { Смещение по вертикали }
  • with Image1.Canvas do
  • begin
  • Pen.Color := clBlack;
  • FillRect(Rect(0, 0, Image1.Width-1, Image1.Height-1));
  • Brush.Style := bsBDiagonal;
  • Brush.Color := clPurple;
  • Pen.Width := 2;
  • { С помощью массива риcуем заштрихованные полигоны}
  • pol[1].X := a + 0;
  • pol[1].Y := b + 10;
  • pol[2].X := a + 0;
  • pol[2].Y := b + 20;
  • pol[3].X := a + 84;
  • pol[3].Y := b + 20;
  • pol[4].X := a + 84;
  • pol[4].Y := b + 10;
  • pol[5].X := a + 74;
  • pol[5].Y := b + 0;
  • pol[6].X := a + 10;
  • pol[6].Y := b + 0;
  • Polygon(pol);
  • for i := 1 to 6 do
  • begin
  • pol[i].Y := pol[i].Y + 180;
  • end;
  • Brush.Style := bsBDiagonal;
  • Polygon(pol);
  • pol[1].X := a + 0;
  • pol[1].Y := b + 60;
  • pol[2].X := a + 0;
  • pol[2].Y := b + 70;
  • pol[3].X := a + 10;
  • pol[3].Y := b + 80;
  • pol[4].X := a + 74;
  • pol[4].Y := b + 80;
  • pol[5].X := a + 84;
  • pol[5].Y := b + 70;
  • pol[6].X := a + 84;
  • pol[6].Y := b + 60;
  • Brush.Style := bsFDiagonal;
  • Polygon(pol);
  • for i := 1 to 6 do
  • begin
  • pol[i].Y := pol[i].Y + 180;
  • end;
  • Brush.Style := bsFDiagonal;
  • Polygon(pol);
  • Pen.Width := 1;
  • MoveTo(a+0, b+10);
  • LineTo(a+0, b+250);
  • MoveTo(a+10, b+80);
  • LineTo(a+10, b+80+100);
  • MoveTo(a+84, b+10);
  • LineTo(a+84, b+250);
  • MoveTo(a+74, b+80);
  • LineTo(a+74, b+80+100);
  • { Окружности }
  • Pen.Width := 2;
  • Brush.Style := bsSolid;
  • Brush.Color := clWhite;
  • Ellipse(a+12, b+10, a+12+60, b+10+60);
  • Ellipse(a+12, b+10+180, a+12+60, b+10+60+180);
  • { Осевая линия}
  • Pen.Width := 1;
  • Pen.Style := psDashDot;
  • MoveTo(a-20, b+130);
  • LineTo(a+84+20, b+130);
  • MoveTo(0,0);
  • //LineTo(50, 0);
  • //LineTo(60, 50);
  • //LineTo(0, 50);
  • //LineTo(0, 0);
  • end;
  • end;
  • procedure TForm1.Button1Click(Sender: TObject);
  • var
  • X,Y,Fa, Fr,K6,Kt,C,L,V, p:real;
  • begin
  • X:=strtofloat(edit1.Text);
  • V:=strtofloat(edit2.Text);
  • C:=strtofloat(edit3.Text);
  • Fr:=strtofloat(edit4.Text);
  • Y:=strtofloat(edit5.Text);
  • Fa:=strtofloat(edit6.Text);
  • K6:=strtofloat(edit7.Text);
  • Kt:=strtofloat(edit8.Text);
  • P:=(X*V*Fr+Y*Fa)*K6*Kt;
  • L:=(C/P)*(C/P)*(C/P);
  • Label9.Caption:='P='+floattostr(P);
  • Label10.Caption:='L='+floattostr(L);
  • end;
  • end.
  • Задача 2. Зубчатые зацепления
  • Постановка задачи:
  • Изучить условных изображений зубчатых колес и элементов зубчатых зацеплений по ГОСТ 2.402-68. Ознакомиться с параметрами зубчатого зацепления и расчетами зубчатого венца. Ознакомление с правилами выполнения рабочих чертежей зубчатых колес по ГОСТ 2.403-68. Ознакомиться с неподвижными разъемными соединениями вала и зубчатого колеса. Приобрести навыков в выполнении чертежа зубчатого колеса со шпоночным пазом у зубчатого зацепления.
  • Зубчатые зацепления предназначены для передачи вращательного движения от одного вала к другому и имеют широкое применение в редукторах, мультипликаторах и других механизмах. При параллельно расположенных валах используется цилиндрическая зубчатая передача, при пересекающихся- коническая, при скрещивающихся- червячная передача. Зубья на поверхности цилиндра или конуса нарезаются вдоль образующих ( прямые зубья), под углом к образующим( косые), под углом с изломом ( шевронные). Рабочая поверхность зуба- боковая. Направляющая этой поверхности ( профиль зуба) в большинстве случаев- эвольвента. Зубья, нарезанные на колесе, образуют зубчатый венец.
  • 2.2 Основные уравнения
  • Диметр начальной окружности d= mz
  • Диметр окружности выступов da= d + ha = m(z+2)
  • Диметр окружности впадин df =d- 2hf = m(z-2.5)
  • Передаточное число зубчатой передачи u - отношение числа зубьев колеса z2 к числу зубьев шестерни z1, u=z2/z1
  • расстояние между осями валов aw=(dw1+dw2)/2.
  • 2.3 Обозначение переменных
  • Z1-число зубьев колеса
  • Z2-число зубьев шестерни
  • u- передаточное отношение
  • m-модуль
  • aw-межосевое расстояние
  • Da-диаметр окружности выступов
  • Df-диаметр окружности впадин
  • Bw-ширина зубчатого венца
  • 2.4 Исходные данные
  • Z1=125
  • m=2
  • Aw=112
  • D=24
  • Расположение зубьев:
  • 2.5 Текст программы
  • unit Unit1;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, StdCtrls, Buttons, ExtCtrls;
  • type
  • TForm1 = class(TForm)
  • BitBtn1: TBitBtn;
  • BitBtn2: TBitBtn;
  • Label1: TLabel;
  • Label2: TLabel;
  • Label3: TLabel;
  • Label4: TLabel;
  • Label5: TLabel;
  • Label6: TLabel;
  • Edit1: TEdit;
  • Edit2: TEdit;
  • Edit3: TEdit;
  • Label7: TLabel;
  • Edit4: TEdit;
  • Edit5: TEdit;
  • Label8: TLabel;
  • Image1: TImage;
  • Label9: TLabel;
  • Label10: TLabel;
  • Label11: TLabel;
  • Label12: TLabel;
  • Label13: TLabel;
  • procedure BitBtn1Click(Sender: TObject);
  • procedure BitBtn2Click(Sender: TObject);
  • private
  • { Private declarations }
  • public
  • { Public declarations }
  • end;
  • var
  • Form1: TForm1;
  • implementation
  • {$R *.dfm}
  • procedure TForm1.BitBtn1Click(Sender: TObject);
  • var
  • z: array[1..10] of tpoint;
  • v: array[1..6] of tpoint;
  • q: array[1..4] of tpoint;
  • b: array[1..4] of tpoint;
  • l: array[1..4] of tpoint;
  • j: array[1..12] of tpoint;
  • i: array[1..6] of tpoint;
  • p1: array[1..6] of tpoint;
  • z1, z2, m, Aw, fba, k, df, da, hf, ha, d, dw, dw1, dw2, c ,c3, lc, dc, r, t2, u: real;
  • begin
  • z1:= StrToFloat(Edit2.Text);
  • m := StrToFloat(Edit1.Text);
  • aw := StrToFloat(Edit5.Text);
  • d := 2*StrToFloat(Edit4.Text);
  • fba := StrToFloat(Edit3.Text);
  • dw := Z1*m;
  • df := (z1-2.5)*m;
  • da := m*(z1+2);
  • hf := 1.25*m;
  • ha := m;
  • z2 := (2*aw)/m - z1;
  • U := z1/z2;
  • label13.Caption := FloatToStr(da);
  • Label10.Caption := FloatToStr(dF);
  • Label12.Caption := FloatToStr(ha);
  • Label11.Caption := FloatToStr(hf);
  • Image1.Canvas.Brush.Color := clWhite;
  • Image1.Canvas.Brush.Style := bsSolid;
  • with Image1.Canvas do
  • begin
  • Pen.Color := clBlack;
  • FillRect(Rect(0, 0, Image1.Width-1, Image1.Height-1))
  • end;
  • with Image1.Picture.Bitmap.Canvas do
  • begin
  • brush.Color:= clwhite;
  • brush.Style:= bsfdiagonal;
  • brush.Color:= clwhite;
  • v[1].X := 30;
  • v[1].Y := 125;
  • v[2].X := 30;
  • v[2].Y := 128;
  • v[3].X := 35;
  • v[3].Y := 133;
  • v[4].X := 100;
  • v[4].Y := 133;
  • v[5].X := 105;
  • v[5].Y := 128;
  • v[6].X := 105;
  • v[6].Y := 125;
  • polygon(v);
  • p1[1].X := 45;
  • p1[1].Y := 18;
  • p1[2].X := 45;
  • p1[2].Y := 20;
  • p1[3].X := 90;
  • p1[3].Y := 20;
  • p1[4].X := 90;
  • p1[4].Y := 18;
  • p1[5].X := 85;
  • p1[5].Y := 14;
  • p1[6].X := 50;
  • p1[6].Y := 14;
  • polygon(p1);
  • brush.Color := clBlack;
  • z[1].X := 45;
  • z[1].Y := 20;
  • z[2].X := 45;
  • z[2].Y := 90;
  • z[3].X := 40;
  • z[3].Y := 95;
  • z[4].X := 30;
  • z[4].Y := 95;
  • z[5].X := 30;
  • z[5].Y := 125;
  • z[6].X := 105;
  • z[6].Y := 125;
  • z[7].X := 105;
  • z[7].Y := 95;
  • z[8].X := 95;
  • z[8].Y := 95;
  • z[9].X := 90;
  • z[9].Y := 90;
  • z[10].X := 90;
  • z[10].Y := 20;
  • polygon(z);
  • brush.Color:= clwhite;
  • q[1].X := 100;
  • q[1].Y := 133;
  • q[2].X := 100;
  • q[2].Y := 193;
  • q[3].X := 105;
  • q[3].Y := 198;
  • q[4].X := 105;
  • q[4].Y := 128;
  • polygon(q);
  • brush.Color:= clwhite;
  • b[1].X := 30;
  • b[1].Y := 128;
  • b[2].X := 30;
  • b[2].Y := 198;
  • b[3].X := 35;
  • b[3].Y := 193;
  • b[4].X := 35;
  • b[4].Y := 133;
  • polygon(b);
  • brush.Color := clBlack;
  • j[1].X := 35;
  • j[1].Y := 193;
  • j[2].X := 30;
  • j[2].Y := 198;
  • j[3].X := 30;
  • j[3].Y := 228;
  • j[4].X := 40;
  • j[4].Y := 228;
  • j[5].X := 45;
  • j[5].Y := 233;
  • j[6].X := 45;
  • j[6].Y := 303;
  • j[7].X := 90;
  • j[7].Y := 303;
  • j[8].X := 90;
  • j[8].Y := 233;
  • j[9].X := 95;
  • j[9].Y := 228;
  • j[10].X := 105;
  • j[10].Y := 228;
  • j[11].X := 105;
  • j[11].Y := 198;
  • j[12].X := 100;
  • j[12].Y := 193;
  • polygon(j);
  • brush.Color:= clwhite;
  • i[1].X := 45;
  • i[1].Y := 303;
  • i[2].X := 45;
  • i[2].Y := 305;
  • i[3].X := 50;
  • i[3].Y := 309;
  • i[4].X := 85;
  • i[4].Y := 309;
  • i[5].X := 90;
  • i[5].Y := 305;
  • i[6].X := 90;
  • i[6].Y := 303;
  • polygon(i);
  • pen.Style := psDash;
  • MoveTo(23, 163);
  • LineTo(115, 163);
  • MoveTo(38, 306);
  • LineTo(97, 306);
  • MoveTo(39, 17);
  • LineTo(96, 17);
  • MoveTo(125, 163);
  • LineTo(455, 163);
  • MoveTo(273, 10);
  • LineTo(273, 315);
  • pen.Style := psSolid;
  • ellipse(125, 15, 421, 311);
  • ellipse(131, 21, 415, 305);
  • ellipse(206, 96, 340, 230);
  • ellipse(236, 126, 310, 200);
  • ellipse(241, 131, 305, 195);
  • brush.Style := bsClear;
  • brush.Color := clWhite;
  • pen.Style := psSolid;
  • l[1].X := 266;
  • l[1].Y := 122;
  • l[2].X := 266;
  • l[2].Y := 132;
  • l[3].X := 280;
  • l[3].Y := 132;
  • l[4].X := 280;
  • l[4].Y := 122;
  • polygon(l);
  • end;
  • end;
  • procedure TForm1.BitBtn2Click(Sender: TObject);
  • begin
  • close;
  • end;
  • end.
  • Задача 3. Резьбовые соединения
  • 3.1 Постановка задачи
  • Расчет резьбовых соединений- болтового, винтового, шпилечного.

В машиностроении применяются в основном два вида резьбы:

a) резьбы крепежные (метрическая, трубная цилиндрическая, дюймовая и дюймовая коническая с углом профиля 600) , которые нарезаются на стандартных крепёжных и деталях, подлежащих скреплению резьбой;

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

Все резьбы, за исключением прямоугольной, стандартизованы. Стандарты на резьбы устанавливают профиль и основные размеры резьбы, а также условные их обозначения. Элементы резьбы: сбеги, проточки, фаски - устанавливает ГОСТ 11706- 82.

В технике для соединений деталей широко применяют болты, шпильки, винты, гайки, шайбы, штифты, шплинты и т. д. Все перечисленные детали стандартизованы. С их помощью осуществляются разъёмные соединения: болтовое, шпилечное, винтовое, штифтовое и т.д.

На сборочном чертеже и чертежах общих видов соединения крепёжными деталями изображают упрощенно или условно. Крепёжные детали, у которых на чертеже диаметры стержней равны 2 мм и менее, изображают условно. подшипник программный резьбовой dephi

При упрощенном изображении крепёжных деталей и соединений крепёжными деталями не показывают фаски на головках болтов, гайках, на стержнях болтов, шпилек, винтов, шайб.

3.2 Основные уравнения

Болтовое соединение

Длину болта рассчитываем по формуле:

l = Ф12+S+m+a+c,

где: Ф1 и Ф2 - толщина соединенных фланцев (см. задание)

S - толщина шайбы, (прил. 7 и 9)

m - высота гайки, (прил. 7)

a+c0,3d

а - запас резьбы,

с - величина фаски

d - диаметр болта

l - длина болта, после расчёта подбирается по ГОСТу ближайшее большее стандартное значение lст. в зависимости от диаметра болта d (прил. 2)

l = 17+13+4+15+0,318 = 54,4 мм.

Принимаем па ГОСТ 7798-70 длину болта 55мм.

Болт М181,555.58 ГОСТ 7798-70.

Гайка М181,5.5 ГОСТ 5915-70.

Шайба 18 ГОСТ 6402-70.

Шпилечное соединение

Длину шпильки рассчитываем по формуле:

l = Ф1+S+m+a+c

l - длина шпильки, после расчёта подбирается по ГОСТу ближайшее большее стандартное значение lст. в зависимости от диаметра шпильки d (прил. 5 и 6 )

l = 20+7+13+0,316 = 44,8 мм.

Принимаем по ГОСТ 22032-76 длину шпильки 45мм.

Шпилька М1645.58 ГОСТ 22032-76

Гайка М16.5 ГОСТ 5915-70.

Винтовое соединение

Длину винта рассчитываем по формуле:

l = Ф+1,5d,

где: Ф - толщина фланца,

d - диаметр резьбы,

l - длина винта, после расчёта подбирается по ГОСТу ближайшее большее стандартное значение lст. (прил. 3 )

l = 9+1,56=18 мм.

Данное значение соответствует стандартному по ГОСТ 1491-80.

Винт М618.58 ГОСТ 1491-80.

3.3 Исходные данные

Вид соединения

Общие данные

значения

Болтовое

Болт ГОСТ 7798-70

Гайка ГОСТ 5915-70

Шайба ГОСТ 6402-70

(исполнение 1)

Резьба по ГОСТ 24705-81

М

16

Количество болтов

10

Толщина фланцев и крышки Ф12

14

Шпилечное

Шпилька ГОСТ

22032-76

Гайка ГОСТ 5915-70

Шайба ГОСТ 6402-70

Материал корпуса-сталь

Резьба по ГОСТ 24705-81

Шаг мелкий

М

12

Тип шпильки

Б

Количество шпилек

6

Винтовое

Количество винтов для всех вариантов постоянно - четыре

Резьба по ГОСТ 24705-81

М10

Винт по ГОСТ (исполнение 1)

1491-72

Толщина фланца Ф

10

3.4 Текст программы

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Button1: TButton;

Button2: TButton;

RadioGroup1: TRadioGroup;

Label8: TLabel;

Label9: TLabel;

procedure RadioGroup1Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.RadioGroup1Click(Sender: TObject);

begin

case RadioGroup1.ItemIndex of

0: begin

Label1.Caption := 'Толщина фланцев, сумм.';

Edit1.Text := '14';

Label2.Caption := 'Толщина шайбы';

Edit2.Text := '3';

Edit3.Text := '13';

Edit4.Text := '0';

end;

1: begin

Label1.Caption := 'Толщина фланцев, сумм.';

Edit1.Text := '14';

Label2.Caption := 'Толщина шайбы';

Edit2.Text := '2,5';

Edit3.Text := '10';

Edit4.Text := '0';

end;

2: begin

Label1.Caption := 'Толщина фланца';

Edit1.Text := '10';

Label2.Caption := 'Диаметр резьбы';

Edit2.Text := '10';

Edit3.Text := 'x';

Edit4.Text := 'x';

end;

end;

Button2.Click;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

l: real;

a, b, i: integer;

bolt: array [1..31] of integer;

vint: array [1..18] of integer;

shpilka: array [1..34] of integer;

begin

case RadioGroup1.ItemIndex of

0: begin // Болтовое

l := StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text)+StrToFloat(Edit3.Text)+

StrToFloat(Edit4.Text)+StrToFloat(Edit5.Text);

bolt[1] := 14;

for i:=2 to 5 do

bolt[i] := bolt[i-1]+2;

bolt[6] := 28;

bolt[7] := 30;

bolt[8] := 32;

bolt[9] := 35;

bolt[10] := 38;

bolt[11] := 40;

for i:= 12 to 31 do

bolt[i] := bolt[i-1] + 5;

// Поиск стандартной длины болта, большей или равной заданному

for i := 2 to 31 do

if (l >= (bolt[i-1])) then

begin

if ( (l <= bolt[i]) and (l > bolt[i-1]) ) then

begin

Label9.Caption := IntToStr(bolt[i]);

break;

end

else

if (l < bolt[i]) then

begin

Label9.Caption := IntToStr(bolt[i-1]);

break;

end;

end;

//Label9.Caption := FloatToStr(l);

with Image1.Canvas do

begin

Brush.Style := bsSolid;

Brush.Color := clWhite;

FillRect(Rect(0, 0, Image1.Width, Image1.Height));

a := 250; // Базовая точка по Х

b := 200; // Базовая точка по Y

Brush.Style := bsClear;

Pen.Width := 1;

Pen.Color := clBlack;

Pen.Style := psDashDot;

MoveTo(0, b); LineTo(Image1.Width, b);

Pen.Width := 2;

Pen.Style := psSolid;

Brush.Style := bsFDiagonal;

Brush.Color := clBlack;

Rectangle(a-7*10, b-17*10, a, b-8*10);

Rectangle(a-7*10, b+8*10, a, b+17*10);

Brush.Style := bsBDiagonal;

Rectangle(a-1, b-17*10, a+7*10, b-8*10);

Rectangle(a-1, b+8*10, a+7*10, b+17*10);

Brush.Style:= bsClear;

Rectangle(a-7*10, b-17*10, a+7*10, b+17*10);

// Головная часть болта

Rectangle(a+7*10-1, b-135, a+7*10+10*10, b+135);

MoveTo(a+7*10-1, b-8*10-1); LineTo(a+7*10+10*10-1, b-8*10-1);

MoveTo(a+7*10-1, b+8*10); LineTo(a+7*10+10*10-1, b+8*10);

// Шайба

Rectangle(a-70-30, b-140, a-70+1, b+140);

// Гайка

Rectangle(a-70-160, b-131, a-70-30+1, b+131);

// Запас резьбы

Rectangle(a-70-160-10, b-80, a-70-30+1, b+80);

Pen.Width := 1;

MoveTo(a-70-160-10, b-7*10); LineTo(a-7*10-160, b-7*10);

MoveTo(a-70-160-10, b+7*10); LineTo(a-7*10-160, b+7*10);

// Резьба

Pen.Width := 1;

MoveTo(a-7*10, b+7*10); LineTo(a+7*10, b+7*10);

MoveTo(a-7*10-1, b-7*10); LineTo(a+7*10, b-7*10);

// Другой вид

Pen.Width := 2;

a := a+250;

Rectangle(a, b-170, a+260, b+170);

Ellipse(a+130-8*10, b-8*10, a+130+8*10, b+8*10);

a := a+130;

MoveTo(a-120, b-69); LineTo(a, b-133);

LineTo(a+120, b-69);

LineTo(a+120, b+69);

LineTo(a, b+133);

LineTo(a-120, b+69);

LineTo(a-120, b-69);

Pen.Width := 1;

Pen.Color := clBlack;

Pen.Style := psDashDot;

MoveTo(a, 0); LineTo(a, Image1.Height);

Pen.Style := psSolid;

end;

end;

1: begin // Шпилечное

l := StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text)+StrToFloat(Edit3.Text)+

StrToFloat(Edit4.Text)+StrToFloat(Edit5.Text);

shpilka[1] := 16;

for i:=2 to 4 do

shpilka[i] := shpilka[i-1]+2;

shpilka[5] := 25;

shpilka[6] := 28;

shpilka[7] := 30;

shpilka[8] := 32;

shpilka[9] := 35;

shpilka[10] := 38;

shpilka[11] := 40;

for i:= 12 to 34 do

shpilka[i] :=shpilka[i-1] + 5;

// Поиск стандартной длины болта, большей или равной заданному

for i := 2 to 34 do

if (l >= (shpilka[i-1])) then

begin

if ( (l <= shpilka[i]) and (l > shpilka[i-1]) ) then

begin

Label9.Caption := IntToStr(shpilka[i]);

break;

end

else

if (l < shpilka[i]) then

begin

Label9.Caption := IntToStr(shpilka[i-1]);

break;

end;

end;

with Image1.Canvas do

begin

Brush.Color := clWhite;

Brush.Style := bsSolid;

FillRect(Rect(0, 0, Image1.Width, Image1.Height));

Brush.Style := bsClear;

Pen.Width := 1;

Pen.Color := clBlack;

a := 250; // Базовая точка по Х

b := 200; // Базовая точка по Y

Pen.Width := 2;

Pen.Style := psSolid;

Brush.Style := bsFDiagonal;

Brush.Color := clBlack;

Rectangle(a-7*10, b-17*10, a, b+17*10);

Brush.Style := bsBDiagonal;

Rectangle(a-1, b-17*10, a+7*10+80, b+17*10);

Brush.Color := clWhite;

Brush.Style:= bsSolid;

Rectangle(a-7*10, b-8*10, a+7*10, b+8*10);

Brush.Style:= bsClear;

// Осевая линия

Pen.Width := 1;

Pen.Color := clBlack;

Pen.Style := psDashDot;

MoveTo(0, b); LineTo(Image1.Width, b);

Pen.Style := psSolid;

Pen.Width := 2;

// Шайба

Rectangle(a-70-30, b-140, a-70+1, b+140);

// Гайка

Rectangle(a-70-160, b-131, a-70-30+1, b+131);

// Запас резьбы

Rectangle(a-70-160-10, b-80, a-70-30+1, b+80);

Pen.Width := 1;

MoveTo(a-70-160-10, b-7*10); LineTo(a-7*10-160, b-7*10);

MoveTo(a-70-160-10, b+7*10); LineTo(a-7*10-160, b+7*10);

// Резьба

Pen.Width := 1;

MoveTo(a-7*10, b+7*10); LineTo(a+7*10, b+7*10);

MoveTo(a-7*10-1, b-7*10); LineTo(a+7*10, b-7*10);

// Другой вид

Pen.Width := 2;

a := a+250;

Rectangle(a, b-170, a+260, b+170);

Ellipse(a+130-8*10, b-8*10, a+130+8*10, b+8*10);

a := a+130;

MoveTo(a-120, b-69); LineTo(a, b-133);

LineTo(a+120, b-69);

LineTo(a+120, b+69);

LineTo(a, b+133);

LineTo(a-120, b+69);

LineTo(a-120, b-69);

Pen.Width := 1;

Pen.Color := clBlack;

Pen.Style := psDashDot;

MoveTo(a, 0); LineTo(a, Image1.Height);

Pen.Style := psSolid;

end;

end;

2: begin // Винтовое

l := StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text)*1.5+StrToFloat(Edit5.Text);

vint[1] := 16;

for i:=2 to 4 do

vint[i] := vint[i-1]+2;

vint[5] := 25;

vint[6] := 28;

vint[7] := 30;

vint[8] := 32;

vint[9] := 35;

vint[10] := 38;

vint[11] := 40;

for i:= 12 to 18 do

vint[i] := vint[i-1] + 5;

// Поиск стандартной длины болта, большей или равной заданному

for i := 2 to 31 do

if (l >= (vint[i-1])) then

begin

if ( (l <= vint[i]) and (l > vint[i-1]) ) then

begin

Label9.Caption := IntToStr(vint[i]);

break;

end

else

if (l < vint[i]) then

begin

Label9.Caption := IntToStr(vint[i-1]);

break;

end;

end;

with Image1.Canvas do

begin

Brush.Color := clWhite;

Brush.Style := bsSolid;

FillRect(Rect(0, 0, Image1.Width, Image1.Height));

Brush.Style := bsClear;

Pen.Width := 1;

Pen.Color := clBlack;

a := 250; // Базовая точка по Х

b := 200; // Базовая точка по Y

Pen.Width := 2;

Pen.Style := psSolid;

Brush.Style := bsFDiagonal;

Brush.Color := clBlack;

Rectangle(a-7*10, b-17*10, a, b+17*10);

Brush.Style := bsBDiagonal;

Rectangle(a-1, b-17*10, a+7*10+80, b+17*10);

Brush.Color := clWhite;

Brush.Style:= bsSolid;

Rectangle(a-7*10, b-8*10, a+7*10, b+8*10);

Brush.Style:= bsClear;

// Осевая линия

Pen.Width := 1;

Pen.Color := clBlack;

Pen.Style := psDashDot;

MoveTo(0, b); LineTo(Image1.Width, b);

Pen.Style := psSolid;

Pen.Width := 2;

// Головная часть винта

Rectangle(a-9*10-50, b-130, a-7*10+1, b+130);

Pen.Width := 5;

MoveTo(a-90-50+1, b); LineTo(a-7*10-50+1, b);

// Резьба

Pen.Width := 1;

MoveTo(a-7*10, b+7*10); LineTo(a+7*10, b+7*10);

MoveTo(a-7*10-1, b-7*10); LineTo(a+7*10, b-7*10);

// Другой вид

Pen.Width := 2;

a := a+250;

Rectangle(a, b-170, a+260, b+170);

Ellipse(a+130-8*10, b-8*10, a+130+8*10, b+8*10);

a := a+130;

Pen.Width := 6;

MoveTo(a+55, b-55); LineTo(a-55, b+55);

Pen.Width := 1;

Pen.Color := clBlack;

Pen.Style := psDashDot;

MoveTo(a, 0); LineTo(a, Image1.Height);

Pen.Style := psSolid;

end;

end;

end;

end;

end.

Заключение

При выполнении курсовой работы я приобрела навыки программирования в сфере разработки Delphi, а также ознакомилась с такими темами , как “детали машин”, “инженерная графика”.

В ходе решения трех поставленных задач я ознакомилась с некоторыми ГОСТами, видами и методами расчетов, таких как: долговечность подшипника, зубчатых зацеплений и резьбовых соединений.

Библиографический список

1. Партин А.С. Программирование на языке Паскаль. Конспект лекций.- Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2003, 77с.

2. Чекмарев А.А., Осипов В.К. Справочник по машиностроительному черчению.- М.: Высшая школа, 1994. - 671с.; ил.

3. Инженерная графика и машиностроительное черчение. Ч. II. Методические указания и контрольные задания для студентов всех технических специальностей и форм обучения. - Свердловск, изд. УПИ им. С.М. Кирова, 1977, с.28. Под редакцией канд. тех. наук Мальцева В.И.

4. Соединения разъёмные и неразъёмные: Методические указания по курсу «Инженерная графика» / В.А. Белоусова, О.В. Железнова, Е.Я. Жигалова, Э.Э. Истомина, Т.И. Кириллова. Екатеринбург: УГТУ-УПИ, 1994. 51с.

5. Проектирование одноступенчатого цилиндрического редуктора: Методические указания по курсам «Детали машин и основы конструирования» и «Механика» / Г.Л. Баранов. Екатеринбург: ГОУ ВПО УГТУ - УПИ, 2005. 47с.

6. Детали машин и основы конструирования: учебник / Г.Л. Баранов - Екатеринбург: УГТУ_УПИ, 2008, 288с.

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [1,2 M], добавлен 17.08.2013

  • Расчет трансформатора питания по приближенным зависимостям. Численное решение нелинейных уравнений с заданной точностью. Расчет числовых значений и построение графиков амплитудно-частотной характеристики колебательного контура по координатам точек.

    курсовая работа [120,2 K], добавлен 08.01.2016

  • Практические навыки моделирования задач линейного программирования и их решения графическим и симплекс-методом с использованием прикладной программы SIMC. Моделирование транспортных задач и их решение методом потенциалов с помощью программы TRAN2.

    контрольная работа [199,8 K], добавлен 15.06.2009

  • Решение оптимизационных задач и задач с размерными переменными с использованием итерационного цикла при помощи прикладного пакета Mathcad. Проведение исследования на непрерывность составной функции. Решение задач на обработку двухмерных массивов.

    контрольная работа [467,2 K], добавлен 08.06.2014

  • Анализ решения задачи линейного программирования. Симплексный метод с использованием симплекс-таблиц. Моделирование и решение задач ЛП на ЭВМ. Экономическая интерпретация оптимального решения задачи. Математическая формулировка транспортной задачи.

    контрольная работа [196,1 K], добавлен 15.01.2009

  • Решение задачи нелинейного программирования с определением экстремумов функции. Этапы процесса нахождения решения задачи нелинейного программирования с использованием ее геометрической интерпретации. Определение гиперповерхности уровней функции.

    курсовая работа [1,5 M], добавлен 25.09.2010

  • Решение задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях. Компьютерная реализация выбранных задач нелинейного программирования в среде пакетов Excel и Matlab.

    дипломная работа [2,9 M], добавлен 25.01.2013

  • Пример решения задач и построения диаграмм с использованием функции "Подбор параметра". Анализ суммы выплат по вкладу и расчет размера пенсионных накоплений с помощью MS Excel. Вычисление радиуса описанной окружности по трем сторонам треугольника.

    реферат [958,2 K], добавлен 19.08.2010

  • Решение задач прикладного программирования. Оформление разработанных алгоритмов в виде графических схем. Написание программ с использованием подпрограмм, их отладка. Блок-схемы и листинг программ. Наборы тестов для отладки разработанных программ.

    курсовая работа [575,8 K], добавлен 06.12.2013

  • Особенности решения задач нелинейного программирования различными методами для проведения анализа поведения этих методов на выбранных математических моделях нелинейного программирования. Общая характеристика классических и числовых методов решения.

    дипломная работа [2,4 M], добавлен 20.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.