Решение инженерно-технических задач с использованием средств визуального программирования
Зубчатые зацепления предназначены для передачи вращательного движения от одного вала к другому и имеют широкое применение в редукторах, мультипликаторах и других механизмах. При параллельно расположенных валах используется цилиндрическая зубчатая передача, при пересекающихсяконическая, при скрещивающихсячервячная передача. Зубья на поверхности цилиндра или конуса нарезаются вдоль образующих… Читать ещё >
Решение инженерно-технических задач с использованием средств визуального программирования (реферат, курсовая, диплом, контрольная)
Министерство образования и науки Российской Федерации ФГАОУ ВПО «Уральский федеральный университет имени первого Президента России Б.Н.Ельцина»
Кафедра «Информационные технологии и автоматизация проектирования»
Оценка за курсовую работу Члены комиссии
К У Р С О В, А Я Р, А Б О Т А
по дисциплине «Информатика»
Решение инженерно-технических задач с использованием средств визуального программирования вариант № 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 = Ф1+Ф2+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 | М | |
Количество болтов | |||
Толщина фланцев и крышки Ф1+Ф2 | |||
Шпилечное Шпилька ГОСТ 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с.