Для уменьшения размера обрабатываемой текстовой программы были ведены такие функции как: удаление пустых строк, пробелов и для наглядности упорядоченная нумерация кадров.
Таким образом, задача обработки текста программ для станков с ЧПУ может быть разбита на несколько подзадач:
- разработка алгоритмов реализующих конвертирование исходных текстов программ;
- разработка алгоритма исправления ошибок программирования;
- разработка и реализация алгоритмов способствующих уменьшению объёма программы и одновременно увеличение читабельности текста.
Входной информацией для задачи является файл *.тхт полученный после обработки, либо в графической программе, либо набранный в ручную.
Выходной информацией задачи является файл *.тхт обработанный заданным методом обработки.
Следует отметить, что вся машинная арифметика основывается на декартовой системе координат, где X, Y, Z– основные программные координаты, I, J, K– дополнительные (при расчёте круговой интерполяции и заходов на эквидистанту обрабатываемого контура). Координата A – поворотное устройство.
Рис. 2.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_sled – Y_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
Алгоритм описывает метод выбора обработки пользователем в зависимости от назначения конечного результата.
В алгоритме используется графическая оболочка метода выбора обработки.
В результате реализации алгоритма программа настраивается для обработки заданным методом.
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. конец
Условные обозначения, используемые в описании алгоритма, приведены в табл. 4.
Таблица 4
Условные обозначения
Обозначение | Расшифровка |
bufer | Строка значение процедуры |
pc_mayak(bufer); | Процедура пересчёта заданным методом |
pc_vm(bufer); | Процедура пересчёта заданным методом |
vm_mayak(bufer); | Процедура пересчёта заданным методом |
mayak_vm(bufer); | Процедура пересчёта заданным методом |
Form2.MAYAK_VM.Checked | Свойства переключателя |
Bufer | Переменная хранения строки |
Inc() | Функция увеличения |
Рис 2.6
Алгоритм описывает дополнительные (вспомогательные) методы выбора обработки данных.В результате выбора подключаются дополнительные возможности (удаление пробелов, пустых строк и последовательная нумерация кадров).
В алгоритме используется графическая оболочка метода выбора обработки.
В результате реализации алгоритма программа настраивается для обработки дополнительными методами.