Файл: Разработка программного модуля на языке высокого уровня для решения инженерных задач на примере расчёта и построения резьбовых соединений.docx
Добавлен: 09.11.2023
Просмотров: 249
Скачиваний: 18
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
| Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования «Уральский федеральный университет имени первого Президента России Б. Н. Ельцина» (УрФУ) | ||
Институт | | ||
Кафедра/департамент | |
Оценка
Руководитель курсовой
работы
Членыкомиссии
Дата защиты
ОТЧЕТ
о курсовой работе
по теме: «Разработка программного модуля на языке высокого уровня для решения инженерных задач на примере расчёта и построения резьбовых соединений».
Студент: _____________________________
(ФИО) (Подпись)
Группа: НМТ-_______
Екатеринбург
2022
| Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования «Уральский федеральный университет имени первого Президента России Б. Н. Ельцина» (УрФУ) Институт новых материалов и технологий Департамент машиностроения Кафедра Информационных технологий и автоматизации проектирования |
Задание
На курсовую работу
Студент _________________________
Группа НМТ-
Специальность/направление ___________________________________________________
Руководитель курсовой работы____________________
Срок проектирования с 4.04.2022 по 29.05.2022
1. Тема (курсовой работы)
Разработка программного модуля на языке высокого уровня для решения инженерных задач на примере расчёта и построения резьбовых соединений.
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. Оценка курсовой работы ______________
Руководитель _______________ /
/
Министерство образования и науки Российской Федерации
ФГАОУ ВО «Уральский федеральный университет
имени первого Президента России Б. Н. Ельцина»
РЕЦЕНЗИЯ
на курсовую работу
Студента__________________________ группы НМТ -________
(фамилия имя отчество)
Тема курсовой работы (проекта): Разработка программного модуля на языке высокого уровня для решения инженерных задач на примере расчёта и построения резьбовых соединений.
1. Соответствие результатов выполнения работы целям и задачам курсового проектирования результатам изучения по дисциплине/модулю (нужное подчеркнуть):
Соответствуют Частично соответствуют Не соответствуют
2. Оригинальность и самостоятельность выполнения работы (нужное подчеркнуть):
Выполнена самостоятельно Содержит признаки несамостоятельной работы
3. Полнота и глубина проработки разделов (нужное подчеркнуть):
Полная Частичная Отсутствует
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,6
D = 1,5d = 9
Алгоритм выполнения задач
1) Открытие работы программы
2) Присваиваем значения диаметра, значения размеров под ключ, значения размера шляпки, значений диаметра описанной окружности из текстового документа.
3) Создаем массив длины по ГОСТ из текстового документа.
4) Присваиваем значения длины.
5) Выполняем расчеты.
6) Строим изображение.
7) Завершение работы программы.
Код программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = 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;
var
Form1: 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);
var
i,k,q : integer;
DLINA_R, DLINA, M : real;
f : textfile;
s : string;
p : array of string;
begin
With Image1.Canvas do
Begin
pen.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 do
begin
// присвоение значения диаметра
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 //цикл для считывания каждой строки из текстового
документа
begin
i: = 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 do
begin
// присвоение значения диаметра
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 do
begin
// присвоение значения диаметра
SHAIBA_GOST_11371_78[i,1]: = strtofloat(Box1.Text);
// присвоение значений наружного диаметра