Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Зубчатые зацепления предназначены для передачи вращательного движения от одного вала к другому и имеют широкое применение в редукторах, мультипликаторах и других механизмах. При параллельно расположенных валах используется цилиндрическая зубчатая передача, при пересекающихсяконическая, при скрещивающихсячервячная передача. Зубья на поверхности цилиндра или конуса нарезаются вдоль образующих… Читать ещё >

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

Министерство образования и науки Российской Федерации ФГАОУ ВПО «Уральский федеральный университет имени первого Президента России Б.Н.Ельцина»

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

Оценка за курсовую работу Члены комиссии

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

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

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

Выполнил

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

Группа: М — 120 203

Принял:

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

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

Содержание

  • введение
  • 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), динамической грузоподъемностью © и действующей нагрузкой (P) определяется формулой:
  • Эквивалентная динамическая нагрузка определяется по формуле:
  • 1.2 Обозначение переменных
  • p-показатель степени (для шариковых подшипников р=3; для роликовых р=10/3 или 3,33)
  • Fr — постоянная по величине и направлению радиальная нагрузка, Н;
  • Fa— постоянная по величине и направлению осевая нагрузка, Н;
  • X — коэффициент радиальной нагрузки;
  • Y — коэффициент осевой нагрузки;
  • V — коэффициент вращения (V=1);
  • Кб — коэффициент безопасности;
  • КT — температурный коэффициент
  • 1.3 Данные для расчетов
  • тип, серия подшипника: Радиально-упорный шариковый однорядный легкой серии № 36 204
  • режим работы: Средний равновероятный
  • Коэффициент эквивалентности: 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) резьбы ходовые (трапецеидальная, упорная прямоугольная), которые нарезаются на деталях механизмов, преобразующих вращательное движение в поступательное, например в домкратах, в ходовых винтах станков, навивочных приспособлениях и т. п.

Все резьбы, за исключением прямоугольной, стандартизованы. Стандарты на резьбы устанавливают профиль и основные размеры резьбы, а также условные их обозначения. Элементы резьбы: сбеги, проточки, фаски — устанавливает ГОСТ 11 706- 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 мм.

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

Шпилька М1645.58 ГОСТ 22 032;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)

Резьба по ГОСТ 24 705–81

М

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

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

Шпилечное

Шпилька ГОСТ

22 032;76

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

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

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

Резьба по ГОСТ 24 705–81

Шаг мелкий

М

Тип шпильки

Б

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

Винтовое

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

Резьба по ГОСТ 24 705–81

М10

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

1491−72

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

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

Показать весь текст
Заполнить форму текущей работой