Файл: Разработка программного модуля на языке высокого уровня для решения инженерных задач на примере расчёта и построения резьбовых соединений.docx
Добавлен: 09.11.2023
Просмотров: 1050
Скачиваний: 37
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
| Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования «Уральский федеральный университет имени первого Президента России Б. Н. Ельцина» (УрФУ) | ||
| Институт | | ||
| Кафедра/департамент | | ||
работы Членыкомиссии Дата защитыОТЧЕТо курсовой работепо теме: «Разработка программного модуля на языке высокого уровня для решения инженерных задач на примере расчёта и построения резьбовых соединений».Студент: _____________________________ (ФИО) (Подпись)Группа: НМТ-_______Екатеринбург
2022
| Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования «Уральский федеральный университет имени первого Президента России Б. Н. Ельцина» (УрФУ) Институт новых материалов и технологий Департамент машиностроения Кафедра Информационных технологий и автоматизации проектирования |
Разработка программного модуля на языке высокого уровня для решения инженерных задач на примере расчёта и построения резьбовых соединений. 2. Содержание проекта (какие графические работы и расчеты должны быть выполнены) Введение, разработка программного модуля для расчета и построение разъемных резьбовых соединений, заключение.3. План выполнения курсового проекта/работы
| Наименование элементов проектной работы | Сроки | Примечание | Отметка о выполнении |
| Расчет болтового, шпилечного соединений. | 04.04.2022 – 11.04.2022 | | |
| Разработка программного модуля для расчета шпилечного, болтового соединений. | 11.04.2022 – 25.04.2022 | | |
| Разработка программного модуля для построения винтового, болтового, шпилечного соединений | 25.04.2022 – 15.05.2022 | | |
| Оформление пояснительной записки | 15.05.2022 – 22.05.2022 | | |
Полная Частичная Отсутствует4. Общая грамотность и качество оформления текстового документа и графических материалов (нужное подчеркнуть): Отличное Хорошее Удовлетворительное Неудовлетворительное5. Вопросы и замечания ______________________________________________________ _______________________________________________________________________________________________________________________________________________________________________________________________________________________________________6. Общая оценка работы: Считаю, что курсовая работа заслуживает оценки ___________Сведения о рецензенте:Ф.И.О _________________________Должность _____________________Место работы «Кафедра информационных технологий и автоматизации проектирования», ИНМТ, УрФУ Подпись ____________________ Дата__________________
Оглавление
Введение 5
Постановка задачи 6
Математическая модель 6
Алгоритм выполнения задач 9
Код программы 9
Результаты работы: 31
Библиографический список 33
Введение
Delphi - объектно-ориентированный язык программирования, который был разработан Borland в 1995 году и предназначен для создания приложений для Windows, macOS, iOS, Android и Linux. Он также используется при разработке баз данных и интернет-приложений и имеет интегрированную среду разработки (IDE), обеспечивающую множество функций для программирования и отладки. Delphi поддерживает многопоточность, имеет расширенные библиотеки для визуального проектирования пользовательского интерфейса и оснащен жесткой статической типизацией переменных для облегчения процесса отладки кода.В этой работе необходимо создать программу для вычисления резьбовых соединений с помощью визуального программирования в соответствии с заданными требованиями.Постановка задачи
Для расчета разъемных резьбовых соединений необходимо использовать предоставленные таблицы, в которых содержатся конкретные данные для каждого варианта. Требуется произвести расчет длины и написать программу для построения резьбовых соединений.Математическая модель
1. Болтовое соединение (M14) Длину болта рассчитываем по формуле:l = Ф1 + Ф2 + S + m + a + c, где:a + c0,3dФ1 и Ф2 – толщина соединенных фланцев,S – толщина шайбы, m – высота гайки,а – запас резьбы,с – величина фаски,d – диаметр болта,l – длина болта, после расчёта подбирается по ГОСТу ближайшее большее стандартное значение lст. в зависимости от диаметра болта d.l = 14+0.3*14+11+2.5 =31,7Принимаем по ГОСТ 7798–70 длину болта lст. = 32 мм.Болт М141,532 ГОСТ 7798–70Гайка М141,5.5 ГОСТ 5915–70Шайба 14 ГОСТ 6402-70Расчет геометрических характеристик:D = 2d = 28 ммDш = 2,2d = 30,8 ммm = 0,8d = 11,2 ммS = 0,15d = 2,1 ммh = 0,7d = 9,8 мм2. Шпилечное соединение (М12)Длину шпильки рассчитываем по формуле:l = Ф1+S+m+a+c, где:l – длина шпильки, после расчёта подбирается по ГОСТу ближайшее большее стандартное значение lст. в зависимости от диаметра шпильки d.l = 7+10+2,5+0,312= 23,1 ммПринимаем по ГОСТ 22032–76 длину шпильки lст. = 19 мм.Шпилька М1240.58 ГОСТ 22032–76Гайка М12.5 ГОСТ 5915-70Расчет геометрических характеристик:D = 2d = 24 ммDш = 2,2d = 26,4 ммm = 0,8d = 9,6 ммS = 0,15d = 1,8 мм3. Винтовое соединение (М6)Длину винта рассчитываем по формуле:l = Ф+1,5d, где:Ф – толщина фланца,d – диаметр резьбы,l – длина винта, после расчёта подбирается по ГОСТу ближайшее большее стандартное значение lст.l = 12+9 = 21 ммПринимаем по ГОСТ 1491-80 длину винта lст. = 21 мм.Расчет геометрических характеристик:H = 0,6d = 3,6D = 1,5d = 9
Алгоритм выполнения задач
1) Открытие работы программы2) Присваиваем значения диаметра, значения размеров под ключ, значения размера шляпки, значений диаметра описанной окружности из текстового документа.3) Создаем массив длины по ГОСТ из текстового документа.4) Присваиваем значения длины.5) Выполняем расчеты.6) Строим изображение.7) Завершение работы программы.Код программы
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls;typeTForm1 = class(TForm)Button1: TButton;Figure: TRadioGroup;GroupBox1: TGroupBox;Box1: TComboBox;Label1: TLabel;Label2: TLabel;Label3: TLabel;Edit1: TEdit;Edit2: TEdit;Edit3: TEdit;GroupBox2: TGroupBox;Label5: TLabel;Label6: TLabel;Label7: TLabel;Edit4: TEdit;Edit5: TEdit;Edit6: TEdit;GroupBox3: TGroupBox;Label9: TLabel;Label10: TLabel;Label11: TLabel;Edit8: TEdit;Edit9: TEdit;Edit10: TEdit;GroupBox4: TGroupBox;Label12: TLabel;Label13: TLabel;Edit11: TEdit;Edit12: TEdit;Label8: TLabel;Label14: TLabel;Label15: TLabel;Label16: TLabel;Image1: TImage;Label17: TLabel;Label18: TLabel;Label19: TLabel;Image2: TImage;Label4: TLabel;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;BOLT_GOST_7798_70 : array [1..12,1..4] of real;GOST_DLINA : array [1..30] of real;GAIKA_GOST_5915_70 : array [1..12,1..4] of real;SHAIBA_GOST_11371_78 : array [1..12,1..3] of real;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);vari,k,q : integer;DLINA_R, DLINA, M : real;f : textfile;s : string;p : array of string;beginWith Image1.Canvas doBeginpen.Width: = 2; {}Brush.Color: = clWhite; {!}pen.Color: = clWhite; Rectangle(0 ,0, 633, 305);{!}pen.Color: = clGray; MoveTo(10,17);Lineto(18, 17);Lineto(18, 25);Lineto(10, 30);Lineto(20, 30);Lineto(20, 50);Lineto(10, 50);Lineto(10, 17);MoveTo(25, 50);Lineto(35, 30);Lineto(35, 51);MoveTo(35, 44);Lineto(27, 44);MoveTo(40, 60);Lineto(40, 30);Lineto(50, 30);Lineto(50, 50);Lineto(40, 50);MoveTo(55, 30);Lineto(55, 51);MoveTo(65, 30);Lineto(65, 51);MoveTo(55, 47);Lineto(65, 34);MoveTo(70, 50);Lineto(80, 30);Lineto(80, 51);MoveTo(80, 44);Lineto(72, 44);MoveTo(85, 30);Lineto(85, 51);MoveTo(95, 30);Lineto(95, 51);MoveTo(85, 40);Lineto(95, 40);MoveTo(100, 30);Lineto(110, 30);MoveTo(105, 30);Lineto(105, 51);MoveTo(140, 30);Lineto(130, 50);MoveTo(140, 30);Lineto(130, 30);For i: = 1 to 12 dobegin// присвоение значения диаметраBOLT_GOST_7798_70[i,1]: = strtofloat(Box1.Text);// присвоение значений размеров под ключBOLT_GOST_7798_70[i,2]: = strtofloat(Box1.Text)*1.73;// присвоение значений размера шляпкиBOLT_GOST_7798_70[i,3]: = strtofloat(Box1.Text)*0.7;// присвоение значений диаметра описанной окружностиBOLT_GOST_7798_70[i,4]: = strtofloat(Box1.Text)*2;end;//Создания массива ГОСТ Длина из текстового документаassignfile(f,'ГОСТ_ДЛИНА.txt'); //открытие текстового документа из корневой папкиreset(f);i: = 0;while not eof(f) do //цикл для считывания каждой строки из текстовогодокументаbegini: = i+1;SetLength(p,i); //задание длины динамического массиваreadln(f,s);p[i-1]: = s;end;CloseFile (f); // закрытие текстового документаFor i: = 1 to 30 do// присвоение значения длиныGOST_DLINA[i]: =strtofloat(p[i*2+2,3]+p[i*2+2,4]+p[i*2+2,5]+p[i*2+2,6]+p[i*2+2,7]);For i: = 1 to 12 dobegin// присвоение значения диаметраGAIKA_GOST_5915_70[i,1]: = strtofloat(Box1.Text);// присвоение значений размеров под ключGAIKA_GOST_5915_70[i,2]: = strtofloat(Box1.Text)*2;// присвоение значений высоты гайкиGAIKA_GOST_5915_70[i,3]: = strtofloat(Box1.Text)*0.7;// присвоение значений диаметра описанной окружностиGAIKA_GOST_5915_70[i,4]: = strtofloat(Box1.Text)*2;end;For i: = 1 to 12 dobegin// присвоение значения диаметраSHAIBA_GOST_11371_78[i,1]: = strtofloat(Box1.Text);// присвоение значений наружного диаметра