Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по КНИР 2011.doc
Скачиваний:
16
Добавлен:
22.12.2018
Размер:
922 Кб
Скачать
☆

Описание программы

Основные функции

int main(void) – отвечает за переход в графический режим и вызывает функцию make_a_window() построения первого окна. При закрытии всех окон завершает работу программы и возвращает 0.

void make_a_window(void) – отвечает за создание первого окна, содержащего кнопки «NewPrj»(вызывает функцию make_a_canvas_window отрисовывающую окно для работы с новым проектом), «Tehn param», «Cycle», «Single», «Save», «Close» и «Exit». Помимо них окно содержит элементы: AddList(для вывода кода УП) и MkCanvas(для вывода графического изображения контура движения резца). Функция использует глобальную переменную mcanv.

void make_a_canvas_window(void) – отвечает за создание нового окна, позволяющего работать с новым проектом. Окно содержит кнопки «Set start point»(вызывает функцию asc_start_point), «Sopr»(вызывает функцию asc_sopr_form), «Line»(вызывает функцию asc_line_form), «Arc»(вызывает функцию asc_arc_form), «Close» и некоторые другие. Помимо них окно содержит элемент: MkCanvas(для вывода графического изображения контура движения резца). Функция использует глобальную переменную mcanv.

Функции отвечающие за ввод пользователем данных

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

void asc_start_point(int t) – окно отвечает за ввод начальных координат (использует функцию Proc_setpoint для отображения введенных координат)

void asc_line_form(void *data) – окно отвечает за ввод конечных координат линии

void asc_arc_form(void *data) – окно отвечает за ввод радиуса, координат центра и начального/конечного углов дуги окружности

void asc_line_arc_form(void *data) – окно отвечает за ввод данных, необходимых для построения линии по заданному углу наклона и сопряжения её с окружностью

void asc_sopr_form(void) – окно отвечает за ввод информации о сопряжении и введение радиуса и параметров сопряжения

void asc_2point_line_form(int *srad) – окно отвечает за ввод начальных и конечных координат линии, используется при построении сопряжения дуги с прямой

void asc_1point_form(int *srad) – окно отвечает за ввод конечных координат дуги сопряжения

void asc_2line_sopr_form(void) – окно отвечает за ввод информации о сопряжении 2 прямых и введение радиуса и параметров сопряжения

void asc_cilindr_param_form(void *data) – окно отвечающее за ввод параметров цилиндрической заготовки: длины и диаметра

void asc_zagot_form(void *data) – окно отвечает за выбор одной из стандартных заготовок

void asc_Yline_form(void *data) – окно отвечающее за ввод угла наклона к оси 0Х и конечной координаты по Y

void asc_Xline_form(void *data) – окно отвечающее за ввод угла наклона к оси 0Х и конечной координаты по Х

void asc_skor_shpind_form(void) – форма для выбора скорости шпинделя

void asc_skor_poda4_form(void) – форма для выбора скорости подачи

void asc_nomer_instr_form(void) – форма для выбора скорости подачи

void asc_nomer_korr_form(void) – форма для выбора скорости подачи

void asc_tehn_param_form(void) –форма для выбора, какой технологический параметр надо изменить

void asc_cycle_toch_form(void) – создаёт окно для ввода параметров цикла точения

void asc_cycle_rezb_form(void) – создаёт окно для ввода параметров цикла резьбонарезания

void asc_cycle_copir_form(void) – создаёт окно для ввода параметров цикла копирования

void asc_cycle_param_form(void) – окно отвечающее за выбор типа цикла обработки (точение/копирование/резьбонарезание/...)

Функции отвечающие за операции над данными

void GetXRYR12(int x1, int y1, int r1, int x2, int y2, int r2, int *xr1, int *yr1, int *xr2, int *yr2) – решает систему вида:

(x-x1)^2 +(y-y1)^2=r1^2,

(x-x2)^2 +(y-y2)^2=r2^2;

Возвращает 2 возможных координаты центра в виде (xr1;yr1) и (xr2;yr2).

void GetXPYP2(float k, int b0, int x2, int y2, int r, int *xr1, int *yr1, int *xr2, int *yr2) – решает систему вида:

y=kx+b0,

(x-x2)^2 +(y-y2)^2=r^2;

Возвращает 2 возможных координаты точек пересечения в виде (xr1;yr1) и (xr2;yr2).

void GetYP2(float x, float xr, float yr, float r, float *y1, float *y2) – функция ищет координаты точек пересечения вертикальной прямой и окружности. Решает систему вида:

x=n,

(x-x2)^2 +(y-y2)^2=r^2;

Возвращает 2 возможных координаты точек пересечения в виде y1 и y2.

void GetKB(float x1, float y1, float x2, float y2, float *k, float *b) – функция ищет коэффициенты k и b прямой y=kx+b по координатам двух точек, принадлежащих данной прямой

void GetXYl(float x11,float y11,float x12,float y12, float x21,float y21,float x22,float y22, float *xr,float *yr) – функция ищет координаты точки пересечения 2 прямых. Прямые задаются 2 точками, лежащими на них. Решает систему вида:

y=k1x+b1,

y=k2x+b2;

Возвращает координату точки пересечения в виде (xr;yr)

int fromAtoB(int a, int b) – вычисляет длину дуги в градусах от угла a до угла b против часовой стрелки.

int NumLength(int i) – вычисляет количество символов в числе i.

void IntToStr(int i, char *str) – преобразует переменную i типа int в строку символов на которую указывает str.

Функции отвечающие за отрисовку данных и генерирование управляющей программы для УЧПУ

Все функции, начинающиеся с «draw_» предназначены для рисования элементов контура заготовки и генерирование управляющей программы. Для всех этих функций есть дополнительные функции со схожими именами к которым дописано «_close». Такие функции закрывают активное окно (в котором пользователь вводил данные) после своего выполнения.

Все функции, начинающиеся с «Use» предназначены для изменения глобальных переменных, используемых при выборе способа построения. Также эти функции изменяют текст в TextBox’е, чтобы пользователь заранее имел графическое представление о том, как будет происходить построение.

void Draw_line(void *data) – рисует линию используя 2 координаты

void Draw_Xline_close(void *data) – рисует линию используя угол наклона к оси 0X и конечную координату по X и закрывает окно

void Draw_Yline_close(void *data) – рисует линию используя угол наклона к оси 0X и конечную координату по Y и закрывает окно

void Draw_arc(void *data) – рисует дугу

void Draw_arc_close_spin_modify(void *data) – модификация void Draw_arc(void *data), для случаев по и против часовой стрелки

void draw_sopr(void *data) – сопрягает последнюю точку графика с заданной одним из 4 способов

void Draw_sopr_line(void *data) – рисует дугу, сопрягающую последнюю точку со следующей прямой

void Draw_line_arc_close(void *data) – чертит линию по заданному углу наклона и сопрягает её с окружностью

void draw_sopr_arc_line(void *data) – сопрягает последнюю начерченную прямую с следующей (у новой прямой задаётся точка и угол)