Решение инженерно-технических задач с использованием средств визуального программирования
Расчет подшипников на долговечность. Решение инженерно-технических задач программными методами с использованием среды прикладного программирования 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 = Ф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 мм.
Принимаем по ГОСТ 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 |
||
Толщина фланцев и крышки Ф1+Ф2 |
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