Введение 2
1 Постановка задачи 3
1.1 Математическая модель задачи 3
1.2 Входные данные 7
1.3 Выходные данные 7
1.4 Обработка ошибок 8
2 Разработка программного модуля 9
2.1 Разработка структурной схемы программного модуля 9
2.2Разработка программного модуля и ее описание 10
2.3Разработка пользовательского интерфейса 18
3 Реализация программного модуля 21
3.1Код программы 21
3.2 Описание используемых операторов и функций 28
4 Тестирование программного модуля 32
Заключение 34
Список использованной литературы 35
Целью данной курсовой работы является разработка программного модуля, позволяющего построение механизма и воспроизведение его движения, начиная с заданного начального положения, построение диаграммы перемещения, скорости и ускорения выходного звена. Проект необходимо выполнить в программе Microsoft Office Excel, используя язык программирования - Visual Basic for Application.
Структурная схема механизма представленная на рисунке 1.1.

Рисунок 1.1 – Структурная схема механизма
Определение количества звеньев и кинематических пар:
В данном механизме 5 подвижных звеньев:
1 – кривошип, вращательное движение;
2 – кулисный камень, сложное движение;
3 – кулиса, вращательное движение;
4 – кулисный камень, сложное движение;
5 – ползун, поступательное движение.
1 – входное звено, 5 – выходное звено.
В данном механизме 7 одноподвижных кинематических пар:
О1 (0,1) – вращательная;
О2 (0,3) – вращательная;
А (1,2) – вращательная;
С (4,5) – вращательная;
D (5,0) – вращательная;
A′(2,3) – поступательная;
C′(5,0) – поступательная.
Определяем число степеней свободы данного механизма:
???? = 3 ∙ ???? – 2 ∙ ????1 – ????2, (1)
где k – число подвижных звеньев, входящих в состав механизма;
p1 и p2 – число одноподвижных и двух подвижных кинематических пар механизма.
В данном механизме k = 5, p1 = 7, p2 = 0.
???? = 3 ∙ 5 – 2 ∙ 7 – 0 = 15 – 14 = 1
Разложение механизма на структурные группы и определение их класса и порядка.
Для данного механизма структурные группы изображены на рисунках 1.2 – 1.4.

Рисунок 1.2 – Кривошип (0,1) Ι
Рисунок 1.3 – Диада (2,3) ΙΙ,2
Рисунок 1.4 – Диада (4,5) ΙΙ,2
Исходные данные для построение математической модели механизма:
длина кривошипа
=
12 мм;
межосевое расстояние
=
36 мм;
длина кулисы
= 54 мм;
длина кулисы
= 36 мм;
расстояние до кулисного камня
=
28.8 мм.
Расчётная схема для определения координат точек изображена на рисунке 1.5.

Рисунок 1.5 – Расчетная схема для определения координат всех точек
Определяем координаты кочки А:
, (2)
. (3)
Определяем координаты кочки O2:
, (4)
. (5)
В треугольнике
найдем угол
, рассчитаем угол
:
, (6)
. (7)
В прямоугольном треугольнике
определяем длину
по теореме Пифагора и
определяем координаты точки B:
, (8)
, (9)
. (10)
Определяем угол
в
треугольнике
,
рассчитываем длину
по теореме Пифагора и определяем
координаты точки C:
, (11)
, (12)
, (13)
, (14)
. (15)
Определяем угол
в
треугольнике
,
рассчитываем длину
по теореме Пифагора и определяем
координаты точки D:
, (16)
, (17)
, (18)
. (19)
длина кривошипа;
начальный угол поворота кривошипа.
Требования к входным данным:
предусмотреть проверку на допустимость исходных данных и повторение ввода при ошибочных данных;
ввод исходных данных осуществлять в соответствующие поля ввода пользовательской формы;
ограничения на значения входных данных:
длина кривошипа должна быть только положительным числом;
длина кривошипа и начальный угол поворота кривошипа должны быть только цифрами.
длины звеньев механизма;
диаграммы перемещения, скорости и ускорения выходного звена механизма;
анимация движения механизма.
Требования к выходным данным:
длины звеньев механизма выводятся на пользовательскую форму;
ко всем выходным данным должен быть запрещен доступ со стороны пользователя;
анимация движения выводится на лист Excel.
В проекте курсовой работы при вводе входных данных могут возникать сообщения такие как:
если при вводе начальных данных не было введено число или были введены вместо цифры буквы, то появится диалоговое окно и уведомит о неверном вводе данных;
если же при вводе начальных данных было введено отрицательное значение для длины кривошипа, также появится диалоговое окно, информирующее об ошибке.

Рисунок 1.6 - Сообщение некорректности ввода

Рисунок 2.1 – Структурная схема программного модуля
На структурной диаграмме представленной на рисунке 2.1 используются след элементы управления:
Userform_initialize() – процедура начальной инициализации пользовательской формы. Этот модуль используется для установки заголовков пользовательской формы и элементов управления, установки фокуса в поле ввода, задания начальных значений и пр.
Compare _Click() – процедура, срабатывающая при нажатии кнопки «Рассчитать длину» и выполняющая заданные вычисления.
Run_Click() – процедура, срабатывающая при нажатии кнопки «Механизм» и выполняющая построение механизма на листе Excel.
BuildDiagram_Click() – процедура, срабатывающая при нажатии кнопки «Построить диаграммы» и выполняющая построение диаграммы на форме.
Cancel_Click()– процедура, срабатывающая при нажатии кнопки «Выход» для закрытия приложения.
Clock(PauseTime) – функция, реализующая задержку механизма на листе Excel.
Frame – элемент управления, отображает группу заданных объектов (текстовых блоков) и создаёт визуальное оформление.
Image – элемент управления, отвечает за добавление на поверхность формы изображения.
Схема алгоритма процедуры Compare_click() - «Расчет» представлена на рисунке 2.2.

Рисунок 2.2 – Блок-схема для кнопки «Расчет»
Блок 1 – ввод исходных данных в текстовые поля формы.
Блок 2 – вызов процедуры проверки данных.
Блок 3 – присвоение переменной значения из полученного результата.
Блок 4 – проверка введенных данных: если данные неверны, то выполняются блок 5 и выход из процедуры, иначе – выполняются блоки 6,7.
Блок 6 – вызов процедуры расчета данных.
Блок 7 – вывод результата расчета в текстовое поле.
Схема алгоритма процедуры Clear_click() - «Очистка» представлена на рисунке 2.3.

Рисунок 2.3 – Блок-схема для кнопки «Очистка»
Блок 1 – удаление выделенных объектов с рабочего листа.
Блок 2 – удаление изображений с пользовательской формы.
Блок 3 – удаление текста с пользовательской формы.
Схема алгоритма процедуры Cancel_click() - «Выход» представлена на рисунке 2.4.

Рисунок 2.4 – Блок-схема для кнопки «Выход»
Блок 1 – выполнение операции по закрытию пользовательской формы
Схема алгоритма процедуры Run_click() - «Механизм» представлена на рисунке 2.5.

Рисунок 2.5 – Блок-схема для кнопки «Механизм»
Блок 1 – ввод исходных данных в текстовые поля формы.
Блок 2 – вызов процедуры проверки данных.
Блок 3 – присвоение переменной значения из полученного результата.
Блок 4 – проверка введенных данных: если данные неверны, то выполняются блок 5 и выход из процедуры, иначе – выполняются блоки 6,11.
Блок 6 – задание угла поворота новой переменной.
Блоки 7-11 – цикл отрисовки механизма.
Блок 8 – удаление выделенных объектов с рабочего листа.
Блок 9 – вызов процедуры расчета данных.
Блок 10 – отрисовка механизма.
Блок 11 – вызов процедуры задержки механизма.
Схема алгоритма функции WriteDataOnList () представлена на рисунке 2.6.

Рисунок 2.6 – Блок-схема для к функции WriteDataOnList
Блок 1 – вывод на лист Excel номер порядка значений перемещения, скорости и ускорения.
Блок 2 – вызов процедуры расчета данных.
Схема алгоритма функции UserForm_Initialize представлена на рисунке 2.7.

Рисунок 2.7 – Блок-схема для к функции UserForm_Initialize
Блок 1 – Задание начальных настроек для объектов: изображения,рамки
Схема алгоритма процедуры BuildDiagram_click() - «Построить диаграммы» представлена на рисунке 2.8.

Рисунок 2.8. – Блок-схема для кнопки «Построить диаграммы»
Блок 1 – ввод исходных данных в текстовые поля формы.
Блок 2 – вызов процедуры проверки данных.
Блок 3 – присвоение переменной значения из полученного результата.
Блок 4 – проверка введенных данных: если данные неверны, то выполняются блок 5 и выход из процедуры, иначе – выполняются блоки 6,11.
Блок 6 – задание угла поворота новой переменной.
Блоки 7-11 – цикл построения диаграмм.
Блок 8 – вызов функции вычисление значений для диаграмм.
Блок 9 – выполнение расчетов.
Блок 10 – вызов функции построения диаграмм.
Блок 11 – удаление выделенных объектов с рабочего листа.
Схема алгоритма функции DrawGraphic представлена на рисунке 2.9.

Рисунок 2.9. – Блок-схема функции DrawGraphics
Блок 1 – присвоение переменной количества строк
Блок 2 – вызов функции построения диаграмм перемещения.
Блок 3 – вызов функции построения диаграмм скорости.
Блок 4 – вызов функции построения диаграмм ускорения.
Блок 5 – вывод изображений на пользовательскую форму.
Схема алгоритма функции CheckInputData представлена на рисунке 2.10.