Смекни!
smekni.com

Конвертирование исходного текста программ для станков с ЧПУ из одной системы программирования в другую (стр. 3 из 14)

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

Таким образом, задача обработки текста программ для станков с ЧПУ может быть разбита на несколько подзадач:

- разработка алгоритмов реализующих конвертирование исходных текстов программ;

- разработка алгоритма исправления ошибок программирования;

- разработка и реализация алгоритмов способствующих уменьшению объёма программы и одновременно увеличение читабельности текста.

2.1.2. Входная информация

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

2.1.3. Выходная информация

Выходной информацией задачи является файл *.тхт обработанный заданным методом обработки.

2.1.4. Математическая простановка задачи

Следует отметить, что вся машинная арифметика основывается на декартовой системе координат, где X, Y, Z– основные программные координаты, I, J, K– дополнительные (при расчёте круговой интерполяции и заходов на эквидистанту обрабатываемого контура). Координата A – поворотное устройство.

Рис. 2.1

2.1.4.1. Математическая постановка задачи ПК – Маяк

Расчёт радиусов по G2, G3 (круговой интерполяции)

Эта задача предназначена для пересчёта круговой интерполяции и заходов на эквидистанту контура детали.

Алгоритм расчёта радиусов основан на расстоянии удаления точки центра радиуса от начальной точки радиуса (в относительной системе исчисления) и от ноля детали до центра радиуса (в абсолютной системе исчисления).

На рис. 2.2 изображен эскиз обрабатываемой детали (контура).

Рис. 2.2

Линии aи bотображают разницу расчётов радиусов при программировании системы Вм и Маяк.

Линия со стрелкой aсистема Маяк (абсолютная система).

Линия со стрелкой bсистема Вм (относительная система).

Формула пересчёта радиусов.

I – значение Iкоординаты в обрабатываемом кадре.

J – значение Jкоординаты в обрабатываемом кадре.

X_pred – значение координаты Xв предыдущем кадре.

Y_pred – значение координаты Yв предыдущем кадре.

I = X_pred + I;

J = Y_pred + J

Результаты приведены в таблице 2.

Таблица 2

Результаты обработки

Входные данные Выходные данные
N1 G0 X0 Y0N1 X10 Y10 F100N1 G42 D30 X17.59 Y18.83N1 G1 X47.59N1 G3 X47.59 Y40.83 I0 J11N1 G1 X17.59 N1G0X0Y0N2X10.Y10.F100N3G42D30X17.59Y18.83I30.J0N4G1X47.59N5G3X47.59Y40.83I47.59J29.83N6G1X17.59

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

В кадре N2 расставлены пропущенные точки (таков синтаксис программы обработки для станков с ЧПУ).

В кадре N3 рассчитаны и добавлены недостающие координаты захода.

В кадре N5 пересчитаны координаты Iи Jв соответствии с заданным методом обработки.

Расчёт линейных заходов на эквидистанту контура детали по G41 G42 рис 2.3.

Рис 2.3

Точка захода находится на линейном участке контура.

Находится по формуле:

I – значение Iкоординаты в обрабатываемом кадре.

J – значение Jкоординаты в обрабатываемом кадре.

X_sled – значение Х в следующем кадре.

X_nast – значение Х в настоящем кадре.

Y_sled - значение Y в следующем кадре.

Y_nast – значение Yв настоящем кадре.

I = X_sled – X_nast;

J = Y_sledY_nast

Результаты приведены в таблице 3.

Таблица 3

Результаты обработки

Входные данные Выходные данные
N1G0X0Y0N2X40Y10N3G42D30X47.59Y18.83N4G3X47.59Y40.83I0J11N1X17.59N1Y18.83N1X47.59 N1G0X0Y0N2X40.Y10.N3G42D30X47.59Y18.83I29.83J47.59N4G3X47.59Y40.83I47.59J29.83N5X17.59N6Y18.83N7X47.59

Как видно из таблицы кадры №2, 3, 4 изменились в результате обработки

Расчёт заходов по радиусу на эквидистанту контура детали по G41 G42

Рис 2.4

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

Формулы:

J_nast – значение Jв обрабатываемом кадре.

J_sled – значение Jв следующем кадре.

I_nast – значение Iв настоящем кадре.

I_sled – значение Iв следующем кадре.

Y_nast – значение Yв настоящем кадре.

X_nast – значение Xв настоящем кадре.

Iи J – служат для определения знака в выражении.

С начала рассчитываем значение (Iи J) из следующего кадра.

Логическое решение задачи

Если G3, то проверяем значение заданных координат:

Если I_sled > 0 и J_sled >= 0, то I = 1, J = -1;

Если I_sled < 0 и J_sled <= 0, то I = -1, J = 1;

Если I_sled < 0 и J_sled >= 0, то I = 1, J = 1;

Если I_sled > 0 и J_sled <= 0, то I = -1, J = -1

Если G2, то проверяем значение заданных координат:

Если I_sled > 0 и J_sled >= 0, то I = -1, J = 1;

Если I_sled < 0 и J_sled <= 0, то I = 1, J = -1;

Если I_sled < 0 и J_sled >= 0, то I = -1, J = -1;

Если I_sled > 0 и J_sled <= 0, то I = 1, J = 1

Следующее операция описана формулами:

I_nast= Y_nast + J_sled

J_nast = X_nast + I_sled

Заключительные вычисления:

если I = -1 и J > 0, то J_nast:= -J_nast;

если I = 1 и J < 0, то J_nast:= -J_nast;

еслиJ = -1 иI > 0, то I_nast:= -I_nast;

еслиJ = 1 иI < 0, то I_nast:= -I_nast

Рис 2.5

2.2. Описание алгоритма метода выбора обработки

2.2.1. Назначение и характеристика алгоритма

Алгоритм описывает метод выбора обработки пользователем в зависимости от назначения конечного результата.

2.2.2. Используемая информация

В алгоритме используется графическая оболочка метода выбора обработки.

2.2.3. Результаты решения

В результате реализации алгоритма программа настраивается для обработки заданным методом.

2.2.4. Алгоритм решения

1. Если Form2.PC_MAYAK.Checked, то переход к п. 2

2. pc_mayak(bufer);

3. Если Form2.PC_VM.Checked, то переход к п. 4

4. pc_vm(bufer);

5. Если Form2.VM_MAYAK.Checked, то переход к п. 6

6. vm_mayak(bufer);

7. Если Form2.MAYAK_VM.Checked, то переход к п.8

8. mayak_vm(bufer);

9. Bufer:= '';

10. Inc(m);

11. конец

2.2.5. Список условных обозначений

Условные обозначения, используемые в описании алгоритма, приведены в табл. 4.

Таблица 4

Условные обозначения

Обозначение Расшифровка
bufer Строка значение процедуры
pc_mayak(bufer); Процедура пересчёта заданным методом
pc_vm(bufer); Процедура пересчёта заданным методом
vm_mayak(bufer); Процедура пересчёта заданным методом
mayak_vm(bufer); Процедура пересчёта заданным методом
Form2.MAYAK_VM.Checked Свойства переключателя
Bufer Переменная хранения строки
Inc() Функция увеличения

Схема алгоритма метода выбора обработки

Рис 2.6

2.3 Описание алгоритма выбора вспомогательных методов обработки

2.3.1. Назначение и характеристика алгоритма

Алгоритм описывает дополнительные (вспомогательные) методы выбора обработки данных.В результате выбора подключаются дополнительные возможности (удаление пробелов, пустых строк и последовательная нумерация кадров).

2.3.2. Используемая информация

В алгоритме используется графическая оболочка метода выбора обработки.

2.3.3. Результаты решения

В результате реализации алгоритма программа настраивается для обработки дополнительными методами.