Расчет диаметра поддерживающего катка, в зависимости от общего количества поддерживающих катков и базы трактора

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,36 Мб
  • Опубликовано:
    2013-12-06
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Расчет диаметра поддерживающего катка, в зависимости от общего количества поддерживающих катков и базы трактора

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ










Курсовая работа

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

Тема: Расчет диаметра поддерживающего катка, в зависимости от общего количества поддерживающих катков и базы трактора

РЕФЕРАТ

ПОДДЕРЖИВАЮЩИЙ КАТОК ГУСЕНИЧНОГО ТРАКТОРА, БАЗА ТРАКТОРА, DELPHI, СПРАВКА

Программа расчета диаметра поддерживающего катка гусеничного трактора. Расчет значения ведется в зависимости от общего количества поддерживающих катков и базы трактора. Дополнительными параметрами являются: момент сопротивления проворачиванию уплотнений, шаг гусеницы, вес единицы длины гусеницы, коэффициент трения гусеницы о ролик, коэффициент сопротивления вращению катка.

Программа разработана в среде Delphi. К программе прилагается справка.

ВВЕДЕНИЕ

В современном мире с высоким уровнем развития науки и техники идет повсеместное использование ЭВМ. С ее помощью успешно решаются технические задачи: от стадии проектирования и разработки до создания действующих образцов и их практического использования. ЭВМ позволяет проводить компьютерное моделирование и расчет, что снижает экономические, материальные и временные затраты, повышает точность и качество совершенной работы.

Целью данной работы является закрепление и развитие навыков программирования, полученных во время изучения дисциплины «Информатика», развить умение творческого решения практических инженерных задач.

Задача курсовой работы - создание законченного программного приложения прикладного технического характера, выполненного по индивидуальному заданию.

В данной работе необходимо рассчитать требуемый диаметр поддерживающего катка, в зависимости от общего количества поддерживающих катков и базы трактора. Катки являются элементом ходовой части трактора, которая должна обеспечивать поддержку верхней ветви гусеницы трактора. При этом поддерживающий каток должен иметь достаточные запас прочности, высокую износостойкость и долговечность и малую массу, быть простым и удобным в обслуживании.

1. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ

Необходимо рассчитать требуемый диаметр поддерживающего катка Dp, в зависимости от общего количества поддерживающих катков z и базы трактора L.

Расчет значения ведется по формуле:

,

где Dp - требуемый диаметр поддерживающего катка, м;общее количество поддерживающих катков;база трактора, м;момент сопротивления проворачиванию уплотнений, Нм;шаг гусеницы, м;вес единицы длины гусеницы, Н;

- коэффициент трения гусеницы о ролик;

- коэффициент сопротивления вращению катка;

Расположение поддерживающих катков на гусенице трактора показано на рисунке [1]:

Рисунок 1

Сводные данные по расчетным параметрам примем для модели гусеничного трактора «Беларус 2102», изображение которого показано на рисунке [2]:

Рисунок 2 - Трактор “Беларус 2102”.

Строение поддерживающего катка изображено на рисунке [3]:

Рисунок 3 - Строение поддерживающего катка: 1 - ступица катка, 2 - кронштейн, 3 - резинометаллическое торцовое уплотнение, 4 - корпус уплотнения, 5 - ось, 6 - резиновый бандаж, 7 - крышка

Сводные данные по расчетным параметрам представлены в таблице [1].

Примем коэффициент сопротивления вращению катка для летних условий эксплуатации, который равен 0,01...0,02.

Таблица 1 - Сводные данные по расчетным параметрам

Обозначение в формуле

Диапазон изменения

Примечание

z

1..10

Варьируемая величина

L

2..2,5

Варьируемая величина

My

1,5..5,5

Постоянная величина

tg

0,125

Постоянная величина

qg

100..800

Постоянная величина

µ

0,15

Постоянная величина

f

0,01..0,02

Постоянная величина


2. АЛГОРИТМИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ

Блок-схема алгоритма решения математической модели представлена на рисунке [4]:



Рисунок 4 - Блок-схема алгоритма решения математической модели

3. ТАБЛИЦА ИДЕНТИФИКАТОРОВ

Таблица идентификаторов, используемых в программе, представлена в таблице [2]:

Таблица 2 - Идентификаторы используемые в программе

Переменная в формуле

Обозначение в программе

Тип данных

Область Видимости

-

zMin

Вещественный

Глобальная

Минимальное количетво поддерживающих катков

-

zMax

Вещественный

Глобальная

Максимальное количетво поддерживающих катков

-

LMin

Вещественный

Глобальная

Начальное значение базы трактора

-

LMax

Вещественный

Глобальная

Конечное значение базы трактора

­M

My

Вещественный

Глобальная

Момент сопротивления проворачиванию уплотнений

-

tg

Вещественный

Глобальная

Шаг гусеницы

fп

f

Вещественный

Глобальная

Коэффициент сопротивления

-

v

Целый

Глобальная

Количество расчётных точек

_

u

Целый

Глобальная

Текущее значение веса подрессоренных частей трактора

-

i

Целый

Локальная

Параметр цикла

-

j

Целый

Локальная

Параметр цикла

-

Fw

Текстовый файл

Локальная

Файловая переменная для записи

-

Fr

Текстовый файл

Локальная

Файловая переменная для записи

-

FrPY

Текстовый файл

Локальная

Файловая переменная для записи


При запуске программы появляется главное окно, представленное на рисунке [5]:

Рисунок 5 - Главное окно программы

Для ввода исходных данных существует три блока: Общее количество катков, База трактора и Дополнительные параметры. Для проведения расчетов необходимо нажать кнопку Расчет. Если требуется выполнить дополнительные вычисления, то можно воспользоваться калькулятором, который вызывается нажатием кнопки Калькулятор. Для вызова справки существует кнопка Справка.

Программа содержит падающее меню (рисунок 6) и контекстное меню (рисунок 7), из которых можно выполнить основные действия с программой.

а)                          б)                       в)

Рисунок 6 - Главное падающее меню программы: а) меню файл; б) меню расчет; в) меню справка

Рисунок 7 - Контекстное меню программы

Для удобства пользователя программой существует статусная строка, в которую выводится справочная информация о любом объекте формы, к которому подводится курсор.

После выполнения расчетов результаты отображаются на новой форме в виде таблицы (рисунок 8).

Рисунок 8 - Результаты расчета

На данной форме имеются кнопки позволяющие провести постобработку полученных результатов. Можно сохранить результаты в MS Excel, MS Word. Есть возможность показать графические зависимости. Возможен вызов Справки при нажатии на соответствующую кнопку. Так же есть контекстное меню (рисунок 9), из которого можно выполнить основные действия с программой.

Рисунок 9 - Контекстное меню окна «Результаты расчета»

При нажатии на кнопку Графики загружается новая форма (рисунок 10), на которой представлены графические зависимости требуемого диаметра катка трактора: от общего количества поддерживающих катков; от базы трактора. Также предусмотрена возможность построения трехмерного графика - зависимость диаметра катка трактора при одновременном изменении сразу двух параметров: базы трактора и общего количества поддерживающих катков.

Рисунок 10 - Окно представления графических зависимостей

Если необходимо получить информацию о программном продукте, то следует выбрать пункт меню О программе на главной форме (рисунок 11).

Рисунок 11 - Окно «О программе»

На данной форме находятся краткие сведения о программе, авторе и анимация, схематически отображающая описываемую задачу.

5. СТРУКТУРА ПРОГРАММНОГО ПРИЛОЖЕНИЯ

5.1 Падающее и контекстное меню

Большинство программ содержат меню, так как именно оно дает наиболее удобный и быстрый доступ к основным функциям программы.

Существует несколько различных типов меню. В программе использовались два типа меню: падающее (см. рисунок 6) и контекстное (см. рисунок 7).

Каждый раздел меню снабжен соответствующей пиктограммой. Некоторые пункты меню соответствуют кнопкам на форме.

5.2 Статусная строка

Статусная строка представляет собой панель, отображающую полосу состояния в стиле Windows. Она создается с использованием компонента StatusBar. Используется для вывода подсказок к каждому элементу программы.

Подсказки для каждого компонента, задаваемые свойством Hint выводятся в статусную строку при наведении курсора на конкретный объект.

Применение статусной строки выгодно облегчает работу с программой, если нет желания вызывать файл справки, но требуется получить информацию об объекте.

5.3 Обработка исключительных ситуаций

Некоторые пользователи программы по своей невнимательности допускают ошибки ещё на начальном этапе работы с программой, при вводе данных. Чтобы избежать таких недоразумений в программе используется система защиты от ввода и использования некорректно введенных данных.

На первом этапе осуществляется блокирование ввода заранее неверной информации в labeledEdit. Это осуществляется путем создания двух процедур:

. Первая процедура позволяет вводить только вещественный тип данных, т.е. блокируется ввод всех символов, кроме цифр и запятой.2. Вторая процедура позволяет вводить только целый тип данных, т.е. блокируется ввод всех символов, кроме цифр (см. Приложение, с.26-30).

На втором этапе осуществляется контроль данных при помощи обработки исключительных ситуаций. При введении неверной информации программа автоматически выдаёт сообщение об ошибке и выделяет объект, в который были введены неверные данные (см. Приложение, с с.26-30).

В случае возникновения ошибки будет выдано соответствующее сообщение, при этом будет установлен фокус в тот LabeledEdit, где находятся некорректные данные.

Необходимо учитывать, что, например, введенные данные не приводят к возникновению исключительной ситуации, но тем не менее, препятствуют нормальной работе приложения. Для исключения подобных ситуаций на третьем этапе обработки данных в программе введена дополнительная обработка корректности введенных данных (см. Приложение, с.26-30).

В случае неправильного ввода данных будет выдано соответствующее сообщение, при этом будет установлен фокус в тот LabeledEdit, где находятся некорректные данные.

5.4 Построение графических зависимостей

Для подтверждения расчетных данных в программе используется построение графиков. Если расчётные данные совпадают с результатами на графической зависимости, то можно сделать вывод, что программа написана верно, без искажения реальных фактов (см. Приложение, с.32-33).

5.5 Создание анимации

В данной курсовой работе анимация предоставляет минимальную информацию о создателе программы и схематически показывает исследуемый объект (Приложение, с.34-35).

Вызов внешнего приложения

Для уточнения полученных результатов или для каких-то предварительных расчетов можно воспользоваться системным калькулятором Windows.

В программе есть такая возможность (Приложение, с.29).

Данная процедура позволяет вызывать внешнее приложение из программного продукта, не закрывая программу.

Преимущество этой функции в том, что не надо прописывать калькулятор в программном коде, т.к. он есть в любой версии операционной системы Windows.

5.6 Динамически подключаемые библиотеки

Динамически подключаемые библиотеки (DLL - Dynamic Link Library) являются ключевым компонентом при написании любого современного приложения Windows.

Они представляют собой программные модули, содержащие процедуры и функции, данные или ресурсы, которые могут совместно использоваться несколькими различными приложениями Windows.

Одно из основных и, пожалуй, главных назначений библиотек DLL - позволить загружать процедуры и функции в память только в случае необходимости во время выполнения приложения, а не компилировать их в само приложение и таким образом загружать в память всякий раз при запуске, независимо от того понадобятся они либо нет.

Кроме того, несколько приложений могут использовать одни и те же процедуры и функции, хранящиеся в DLL, одновременно.

И самое главное, библиотеки DLL являются универсальными относительно языка программирования. Текст библиотеки представлен в приложении, с.35.

6. РАЗРАБОТКА СПРАВОЧНОЙ СИСТЕМЫ

Файл справочной системы был создан при помощи Help&Manual версии 5.

Итоговый файл справки и файл содержания располагаются в подпапке Hlp папки с программой. Вызвать файл справки можно, нажав клавишу F1, соответствующую кнопку на форме либо соответствующий пункт в падающем и контекстном меню.

Для каждой формы есть своя страница файла справки.

На каждом диалоговом окне есть кнопка Справка, на которой пишется программный текст вызова справки конкретного раздела, который представлен в приложении, с.33.

Разработанная справочная система представлена на рисунках, приведенных ниже (рисунок 12,13,14.15,16):

Рисунок 12 - Справка

Рисунок 13 - Справка «О программе»

Рисунок 14 - Справка «Главная форма»

Рисунок 15 - Справка «Форма с результатами расчетов»

Рисунок 16 - Справка «Форма с графическими зависимостями»

7. РАСЧЁТ КОНТРОЛЬНОГО ПРИМЕРА

Исходные данные для расчета:

Трактор «Беларус 2102»

- момент сопротивления проворачиванию уплотнений

(=3.5 Н*м);

- шаг гусеницы; (0,125 м);число поддерживающих катков (на одной стороне) (z=1-5);

- вес единицы длины гусеницы(100 H);- база трактора; (2,1-2,5 м)

µ - коэффициент трения гусеницы о ролик (µ = 0,15);- коэффициент сопротивлению вращению катка (f =0,02).

Таблица 3 - Результаты требуемого диаметра катка, м

L\z

1.00

2.00

3.00

4.00

5.00

2.10 м

0.0801

0.0962

0.1122

0.1282

0.1442

2.14 м

0.0785

0.0942

0.1099

0.1255

0.1412

2.19 м

0.0769

0.0922

0.1076

0.1230

0.1384

2.23 м

0.0753

0.0904

0.1055

0.1206

0.1356

2.28 м

0.0739

0.0886

0.1034

0.1182

0.1330

2.32 м

0.0725

0.0870

0.1014

0.1159

0.1304

2.37 м

0.0711

0.0853

0.0995

0.1138

0.1280

2.41 м

0.0698

0.0837

0.0977

0.1117

0.1256

2.46 м

0.0685

0.0822

0.0959

0.1096

0.1233

0.0673

0.0808

0.0942

0.1077

0.1212


Рисунок 17 - Зависимость требуемого диаметра катка от базы трактора

Рисунок 18 - Зависимость требуемого диаметра катка от общего количества катков

Рисунок 19 -Трехмерная зависимость

идентификатор алгоритмизация библиотека интерфейс

Таким образом, был проведен расчет диаметра поддерживающего катка гусеничного трактора в зависимости от общего количества поддерживающих катков и базы трактора. Результаты были представлены в виде таблицы и графиков.

Проведенный расчет подтверждает возможность использования данного программного продукта для решения поставленной задачи.

ЗАКЛЮЧЕНИЕ

В результате проделанной работы было получено законченное программное приложение технического характера, с помощью которого можно рассчитать требуемый диаметр поддерживающего катка трактора.

Данную программу можно в дальнейшем использовать при проектировании поддерживающих катков. Меняя параметры трактора, можно подобрать наиболее подходящий под данную модель трактора поддерживающий каток или найти компромиссное решение.

Был произведен расчет диаметра поддерживающего катка гусеничного трактора БЕЛАРУС 2102, который прямо пропорционально увеличивается с увеличением количества поддерживающих катков от 1 до 5 и уменьшается с увеличением базы трактора от 2,1м до 2,5м. При количестве поддерживающих катков равному 3 и базе трактора равной 2,1м получаем диаметр поддерживающего катка равный 0,1122м, что подтверждает возможность прикладного использования программы.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1.   Тракторы. Проектирование, конструирование и расчет / Под общ. ред. И.П. Ксеневича. - М.: Машиностроение, 1991. - 418 с.

2.      Барский И.Б. Конструирование и расчет тракторов. Третье издание. - М.: Машиностроение, 1980. - 367 с.

.        Методическое пособие по выполнению курсовой работы по дисциплине «Информатика» для студентов специальностей «Тракторостроение», «Многоцелевые гусеничные и колесные машины», «Городской электрический транспорт». В.В. Равино, Ю.Е. Атаманов

ПРИЛОЖЕНИЕ

Текст программы

Unit1;

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ComCtrls, StdCtrls, Buttons, Menus, ExtCtrls ,ComObj, Math;= class(TForm): TGroupBox;: TGroupBox;: TGroupBox;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TPopupMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TLabel;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TStatusBar;: TMenuItem;: TLabeledEdit;: TLabeledEdit;: TLabel;: TLabel;: TPopupMenu;: TMenuItem;: TMenuItem;: TBitBtn;FormCreate(Sender: TObject);ShowHint(Sender: TObject);BitBtn1Click(Sender: TObject);N14Click(Sender: TObject);BitBtn2Click(Sender: TObject);N6Click(Sender: TObject);N10Click(Sender: TObject);BitBtn4Click(Sender: TObject);N4Click(Sender: TObject);N9Click(Sender: TObject);N5Click(Sender: TObject);N13Click(Sender: TObject);N12Click(Sender: TObject);N8Click(Sender: TObject);BitBtn5Click(Sender: TObject);N7Click(Sender: TObject);BitBtn3Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;,zMax,LMin,LMax,My,tg,qg,m,f:Real;,u:Integer;,Fw,FrPY:TextFile;Unit2, Unit4;

{$R *.dfm}massive1=array[1..100] of real;massive2=array[1..100,1..100] of real;Diametr(zMin,zMax,LMin,LMax,My,tg,qg,m,f:real;v,u:integer;var Dp,DpZ,DpL:massive2;var DpVer,DpGor,zMass,LMass:massive1); external

'DLL\Traktor.dll';TForm1.FormCreate(Sender: TObject);:=BorderIcons-

[biSystemMenu];:='.';.OnHint:=ShowHint;(Fr, 'Данные.txt');(Fr);(Fr, zMin);(Fr, zMax);(Fr, v);(Fr, LMin);(Fr, LMax);(Fr, u);(Fr, My);(Fr, tg);(Fr, qg);(Fr, m);(Fr, f);(Fr);.LabeledEdit1.Text:=FloatToStr(zMin);.LabeledEdit2.Text:=FloatToStr(zMax);.LabeledEdit3.Text:=IntToStr(v);.LabeledEdit4.Text:=FloatToStr(LMin);.LabeledEdit5.Text:=FloatToStr(LMax);.LabeledEdit6.Text:=IntToStr(u);.LabeledEdit7.Text:=FloatToStr(My);.LabeledEdit8.Text:=FloatToStr(tg);.LabeledEdit9.Text:=FloatToStr(qg);.LabeledEdit10.Text:=FloatToStr(m);.LabeledEdit11.Text:=FloatToStr(f);;TForm1.ShowHint(Sender: TObject);.StatusBar1.SimpleText:=Application.Hint;;TForm1.BitBtn1Click(Sender: TObject);Dp,DpZ,DpL:massive2;,DpGor,zMass,LMass:massive1;,j:Integer;:=StrToFloat(Form1.LabeledEdit1.Text);

exceptEConvertError Do('Неправильно введено начальное значение количества катков',

mtWarning,[mbOK],0);.LabeledEdit1.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit2.Text);

exceptEConvertError Do('Неправильно введено конечное значение количества катков',

mtWarning,[mbOK],0);.LabeledEdit2.SetFocus;;;;:=StrToInt(Form1.LabeledEdit3.Text);EConvertError Do('Неправильно введено количество расчётных точек',,[mbOK],0);.LabeledEdit3.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit4.Text);EConvertError Do('Неправильно введено начальное значение базы трактора',,[mbOK],0);.LabeledEdit4.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit5.Text);EConvertError Do('Неправильно конечное конечное значение базы трактора',,[mbOK],0);.LabeledEdit5.SetFocus;;;;

:=StrToInt(Form1.LabeledEdit6.Text);EConvertError Do('Неправильно введено количество расчётных точек',,[mbOK],0);.LabeledEdit6.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit7.Text);EConvertError Do('Неправильно введено значение момента сопротивления',,[mbOK],0);.LabeledEdit7.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit8.Text);EConvertError Do('Неправильно введено значение шага гусеницы',,[mbOK],0);.LabeledEdit8.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit9.Text);EConvertError Do('Неправильно введено значение веса гусеницы',,[mbOK],0);.LabeledEdit9.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit10.Text);EConvertError Do('Неправильно введено значение коэффициента трения',,[mbOK],0);.LabeledEdit10.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit11.Text);EConvertError Do('Неправильно введено значение коэффициента сопротивления',,[mbOK],0);.LabeledEdit11.SetFocus;;;;(zMin<1) or (zMin>9) then

begin('Неправильно введено начальное значение количества катков',

mtWarning,[mbOK],0);.LabeledEdit1.SetFocus;;;(zMax<2) or (zMax>10) then

begin('Неправильно введено конечное значение количества катков',

mtWarning,[mbOK],0);.LabeledEdit2.SetFocus;;;(LMin<2) then

MessageDlg('Неправильно введено начальное значение базы трактора',

mtWarning,[mbOK],0);.LabeledEdit4.SetFocus;;;(LMax<2.1) or (LMax>2.5) then

begin('Неправильно конечное конечное значение базы трактора',

mtWarning,[mbOK],0);.LabeledEdit5.SetFocus;;;(My<1.5) or (My>5.5) then

begin('Неправильно введено значение момента сопротивления',

mtWarning,[mbOK],0);.LabeledEdit7.SetFocus;;;(tg<0.124) or (tg>0.126) then

begin('Неправильно введено значение шага гусеницы',

mtWarning,[mbOK],0);.LabeledEdit8.SetFocus;;;(qg<50) or (qg>800) then

begin('Неправильно введено значение веса гусеницу',

mtWarning,[mbOK],0);.LabeledEdit9.SetFocus;;;(m<0.14) or (m>0.16) then

begin('Неправильно введено значение коэффициента трения',

mtWarning,[mbOK],0);.LabeledEdit10.SetFocus;;;(f<0.01) or (f>0.03) then

begin('Неправильно введено значение коэффициента сопротивления',

mtWarning,[mbOK],0);.LabeledEdit11.SetFocus;;;(v<1) or (v>1000000) then

begin('количество расчётных точек',

mtWarning,[mbOK],0);.LabeledEdit3.SetFocus;;;(u<1) or (u>10000000) then

begin('количество расчётных точек',

mtWarning,[mbOK],0);.LabeledEdit6.SetFocus;;;m=f then('Неправильно введены данные',mtWarning,[mbOK],0);.LabeledEdit10.SetFocus;.LabeledEdit11.SetFocus;;;(zMin,zMax,LMin,LMax,My,tg,qg,m,f,v,u,Dp,DpZ,DpL,DpVer,DpGor,zMass,LMass);.StringGrid1.ColCount:=v+1;.StringGrid1.RowCount:=u+1;i:=1 to v doj:=1 to u do.StringGrid1.Cells[i,j]:=FloatToStrF(Dp[i,j],ffFixed,8,4);.StringGrid1.Cells[i,0]:=FloatToStrF(DpVer[i],ffFixed,3,2);.StringGrid1.Cells[0,j]:=FloatToStrF(DpGor[j],ffFixed,3,2)+' м';;;.ShowModal;;TForm1.N14Click(Sender: TObject);(FrPY, 'По умолчанию.txt');(FrPY);(FrPY,zMin);(FrPY,zMax);(FrPY,v);(FrPY,LMin);(FrPY,LMax);(FrPY,u);(FrPY,My);(FrPY,tg);(FrPY,qg);(FrPY,m);(FrPY,f);(FrPY);.LabeledEdit1.Text:=FloatToStr(zMin);.LabeledEdit2.Text:=FloatToStr(zMax);.LabeledEdit3.Text:=IntToStr(v);.LabeledEdit4.Text:=FloatToStr(LMin);.LabeledEdit5.Text:=FloatToStr(LMax);.LabeledEdit6.Text:=IntToStr(u);.LabeledEdit7.Text:=FloatToStr(My);.LabeledEdit8.Text:=FloatToStr(tg);.LabeledEdit9.Text:=FloatToStr(qg);.LabeledEdit10.Text:=FloatToStr(m);.LabeledEdit11.Text:=FloatToStr(f);;;TForm1.BitBtn2Click(Sender: TObject);('Calc\calc.exe', SW_RESTORE);;TForm1.N6Click(Sender: TObject);.BitBtn2.Click;;TForm1.N10Click(Sender: TObject);.BitBtn2.Click;;TForm1.BitBtn4Click(Sender: TObject);:=StrToFloat(Form1.LabeledEdit1.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit1.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit2.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit2.SetFocus;;;;:=StrToInt(Form1.LabeledEdit3.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit3.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit4.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit4.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit5.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit5.SetFocus;;;;:=StrToInt(Form1.LabeledEdit6.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit6.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit7.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit7.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit8.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit8.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit9.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit9.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit9.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit9.SetFocus;;;;:=StrToFloat(Form1.LabeledEdit9.Text);EConvertError Do('Некорректно введены данные',,[mbOK],0);.LabeledEdit9.SetFocus;;;;(Fw, 'Данные.txt');(Fw);(Fw,StrToFloat(Form1.LabeledEdit1.Text));(Fw,StrToFloat(Form1.LabeledEdit2.Text));(Fw,StrToInt(Form1.LabeledEdit3.Text));(Fw,StrToFloat(Form1.LabeledEdit4.Text));(Fw,StrToFloat(Form1.LabeledEdit5.Text));(Fw,StrToInt(Form1.LabeledEdit6.Text));(Fw,StrToFloat(Form1.LabeledEdit7.Text));(Fw,StrToFloat(Form1.LabeledEdit8.Text));(Fw,StrToFloat(Form1.LabeledEdit9.Text));(Fw,StrToFloat(Form1.LabeledEdit10.Text));(Fw,StrToFloat(Form1.LabeledEdit11.Text));(Fw);;;TForm1.N4Click(Sender: TObject);.BitBtn4.Click;;TForm1.N9Click(Sender: TObject);.BitBtn1.Click;;TForm1.N5Click(Sender: TObject);.BitBtn1.Click;;TForm1.N13Click(Sender: TObject);.N14.Click;;TForm1.N12Click(Sender: TObject);.BitBtn4.Click;;TForm1.N8Click(Sender: TObject);.ShowModal;;TForm1.BitBtn5Click(Sender: TObject);.ShowModal;;TForm1.N7Click(Sender: TObject);(Handle,'Help.hlp',sw_restore,1);;TForm1.BitBtn3Click(Sender: TObject);(Handle,'Help.hlp',sw_restore,2);;.Unit2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, Grids ,ComObj, Menus, ComCtrls, Math;= class(TForm): TGroupBox;: TStringGrid;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TSaveDialog;: TPopupMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TPrintDialog;: TLabel;: TSaveDialog;BitBtn1Click(Sender: TObject);BitBtn4Click(Sender: TObject);N1Click(Sender: TObject);N2Click(Sender: TObject);FormCreate(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn3Click(Sender: TObject);MSWord1Click(Sender: TObject);MSExcel1Click(Sender: TObject);BitBtn6Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm2;,zMax,LMin,LMax,My,tg,qg,m,f:Real;,u:Integer;,Fw,FrPY:TextFile;Unit1, Unit3;

{$R *.dfm}massive1=array[1..100] of real;massive2=array[1..100,1..100] of real;Diametr(zMin,zMax,LMin,LMax,My,tg,qg,m,f:real;v,u:integer;var Dp,DpZ,DpL:massive2;var DpVer,DpGor,zMass,LMass:massive1); external

'DLL\Traktor.dll';TForm2.BitBtn1Click(Sender: TObject);;;TForm2.BitBtn4Click(Sender: TObject);i,j:integer;,DpZ,DpL:massive2;,DpGor,LMass,zMass:massive1;:=StrToFloat(Form1.LabeledEdit1.Text);:=StrToFloat(Form1.LabeledEdit2.Text);:=50;:=StrToFloat(Form1.LabeledEdit4.Text);:=StrToFloat(Form1.LabeledEdit5.Text);:=50;:=StrToFloat(Form1.LabeledEdit7.Text);:=StrToFloat(Form1.LabeledEdit8.Text);:=StrToFloat(Form1.LabeledEdit9.Text);:=StrToFloat(Form1.LabeledEdit10.Text);:=StrToFloat(Form1.LabeledEdit11.Text);(zMin,zMax,LMin,LMax,My,tg,qg,m,f,v,u,Dp,DpZ,DpL,DpVer,DpGor,zMass,LMass);i:=1 to v doj:=1 to u do.Series7.AddXYZ(DpVer[i],Dp[i,j],DpGor[j]);.Series4.AddXY(DpVer[i],DpL[i,1]);.Series5.AddXY(DpVer[i],DpL[i,2]);.Series6.AddXY(DpVer[i],DpL[i,3]);.Series1.AddXY(DpGor[j],DpZ[1,j]);.Series2.AddXY(DpGor[j],DpZ[2,j]);.Series3.AddXY(DpGor[j],DpZ[3,j]);;;.Series1.Title:='Знач. кол-ва катков: '+FloatToStr(zMass[1]);.Series2.Title:='Знач. кол-ва катков: '+FloatToStr(zMass[2]);.Series3.Title:='Знач. кол-ва катков: '+FloatToStr(zMass[3]);.Series4.Title:='Знач. базы трактора: '+FloatToStr(LMass[1])+' м';.Series5.Title:='Знач. базы трактора: '+FloatToStr(LMass[2])+' м';.Series6.Title:='Знач. базы трактора: '+FloatToStr(LMass[3])+' м';.ShowModal;;TForm2.N1Click(Sender: TObject);.BitBtn1.Click;;TForm2.N2Click(Sender: TObject);.BitBtn4.Click;;TForm2.FormCreate(Sender: TObject);:=BorderIcons-

[biSystemMenu];StringGrid1 do[0,0]:='L\z';;TForm2.BitBtn2Click(Sender: TObject);WordApp,NewDoc,WordTable:OLEVariant;,iCols,iGridRows,jGridCols:integer;Form2.SaveDialog1.Execute=false then exit;:=CreateOleObject('Word.Application');;:=WordApp.Documents.Add;:=Stringgrid1.ColCount;:=Stringgrid1.RowCount;:=NewDoc.Tables.Add(WordApp.Selection.Range,iRows,iCols);.Range.Font.Size:=8;iGridRows:=1 to iRows dojGridCols:=1 to iCols do.Cell(iGridRows,jGridCols).Range.Text:=Form2.Stringgrid1.Cells[jGridCols-1,iGridRows-1];.ActiveDocument.SaveAs(Form2.SaveDialog1.FileName);.Quit;:=Unassigned;:=Unassigned;:=Unassigned;;TForm2.BitBtn3Click(Sender: TObject);XLApp,sheet,colum:variant;,j:integer;Form2.SaveDialog2.Execute=false then exit;:=CreateOleObject('Excel.Application');;.Workbooks.Add(-4167);.Workbooks[1].WorkSheets[1].Name:='Результат';:=XLApp.Workbooks[1].WorkSheets['Результат'].Columns;:=StrToInt(Form1.LabeledEdit3.Text);:=StrToInt(Form1.LabeledEdit6.Text);i:=1 to v+1 do:=XLApp.Workbooks[1].WorkSheets['Результат'].Rows;.columns[1].Font.Bold:=true;.Rows[1].Font.Bold:=true;.Rows[1].Font.italic:=true;.Rows[2].Font.Bold:=true;:=XLApp.Workbooks[1].WorkSheets['Результат'];i:=0 to v doj:=0 to u do.Cells[j+2,i+1]:=Form2.Stringgrid1.Cells[i,j];

sheet.Cells[1,2]:='Требуемый диаметр поддерживающего катка, м.';

XLApp.ActiveWorkbook.SaveAs(Form2.SaveDialog2.FileName);.Quit;;TForm2.MSWord1Click(Sender: TObject);.BitBtn2.Click;;TForm2.MSExcel1Click(Sender: TObject);.BitBtn3.Click;;TForm2.BitBtn6Click(Sender: TObject);(Handle,'Help.hlp',sw_restore,3);;.Unit3;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, TeeSurfa, TeEngine, Series, ExtCtrls,, Chart, ComCtrls, Menus, ComObj, TeeTools, TeeComma;= class(TForm): TPageControl;: TTabSheet;: TTabSheet;: TTabSheet;: TChart;: TSurfaceSeries;: TBitBtn;: TBitBtn;: TPopupMenu;: TMenuItem;: TMenuItem;: TChart;: TLineSeries;: TLineSeries;: TLineSeries;: TChart;: TLineSeries;: TLineSeries;: TLineSeries;: TRotateTool;: TTeeCommander;: TTeeCommander;: TTeeCommander;BitBtn1Click(Sender: TObject);N1Click(Sender: TObject);FormCreate(Sender: TObject);BitBtn2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm3;Unit2;

{$R *.dfm}TForm3.BitBtn1Click(Sender: TObject);.Series1.Clear;.Series2.Clear;.Series3.Clear;.Series4.Clear;.Series5.Clear;.Series6.Clear;.Series7.Clear;;;TForm3.N1Click(Sender: TObject);.BitBtn1.Click;;TForm3.FormCreate(Sender: TObject);:=BorderIcons-

[biSystemMenu];;TForm3.BitBtn2Click(Sender: TObject);(Handle,'Help.hlp',sw_restore,4);;.Unit4;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, ExtCtrls, Math, Menus;= class(TForm): TBitBtn;: TBitBtn;: TImage;: TTimer;: TGroupBox;: TGroupBox;: TPopupMenu;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;BitBtn1Click(Sender: TObject);Timer1Timer(Sender: TObject);FormCreate(Sender: TObject);ShowHint(Sender: TObject);BitBtn2Click(Sender: TObject);N1Click(Sender: TObject);N2Click(Sender: TObject);

{ Private declarations }

{$R *.dfm}TForm4.BitBtn1Click(Sender: TObject);;;TForm4.Timer1Timer(Sender: TObject);;;;:=R2*cos(f*Pi/180);:=R2*sin(f*Pi/180);:=R3*sin(a*Pi/180);:=R3*cos(a*Pi/180);:=a+30;:=f+10;f=1200 then f:=0;;TForm4.FormCreate(Sender: TObject);.OnHint:=ShowHint;:=0;;TForm4.ShowHint(Sender: TObject);.StatusBar1.SimpleText:=Application.Hint;;TForm4.BitBtn2Click(Sender: TObject);(Handle,'Help.hlp',sw_restore,5);;TForm4.N1Click(Sender: TObject);.Click;;TForm4.N2Click(Sender: TObject);.Click;;.Traktor; /DLL библиотека,;massive1=array[1..100] of real;massive2=array[1..100,1..100] of real;Diametr(zMin,zMax,LMin,LMax,My,tg,qg,m,f:real;v,u:integer;var Dp,DpZ,DpL:massive2;var DpVer,DpGor,zMass,LMass:massive1);dz,dL,z,L,dz1,dL1:real;,j:integer;:=(zMax-zMin)/(v-1);:=(LMax-LMin)/(u-1);:=zMin;i:=1 to v do[i]:=z;:=LMin;j:=1 to u do[j]:=L;[i,j]:=(2*My*tg*(2+0.5*z))/(qg*L*(m-f));:=L+dL;;:=z+dz;;:=(zMax-zMin)/2;:=zMin;i:=1 to 3 do:=LMin;j:=1 to u do[i]:=z;[i,j]:=(2*My*tg*(2+0.5*z))/(qg*L*(m-f));:=L+dL;;:=z+dz1;;:=(LMax-LMin)/2;:=zMin;i:=1 to v do:=LMin;j:=1 to 3 do[j]:=L;[i,j]:=(2*My*tg*(2+0.5*z))/(qg*L*(m-f));:=L+dL1;;:=z+dz;;;Diametr;

{$R *.res}

begin.

Похожие работы на - Расчет диаметра поддерживающего катка, в зависимости от общего количества поддерживающих катков и базы трактора

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!