G-коды: циклы
Содержание
Постановка задачи
Вместо предисловия.
Часто возникает необходимость на станке ЧПУ выполнять большое количество простых и РЕГУЛЯРНЫХ операций. Например, нужно просверлить 10 000 отверстий в заготовке. Расписывать ВСЕ КООРДИНАТЫ отверстий вручную или начертить их в графическом редакторе, а затем преобразовать в G-код раймет весьма много времени. Что же делать в таких случаях?
Использовать возможность с помощью G-кодов организовать в программе ЦИКЛЫ.
1. Исходные данные
Для начала определимся с исходными данными нашей задачи. Допустим, что нам нужно просверлить в заготовке 10 000 отверстий: 100 отверстий по X в 100 рядах по Y. Шаг отверстий по X - 10мм. Шаг отверстий по Y - 25мм. Глубина сверления - 7мм. Координаты начального отверстия: X15.5 Y0.5
Пропишем эти начальные условия в G-кодах:
#<x-num>=100 (количество отверстий в ряду) #<y-num>=100 (количество рядов) #<x-0>=15.5 (начальная координата по X) #<y-0>=0.5 (начальная координата по Y) #<x-step>=10 (шаг по X) #<y-step>=25 (шаг по Y)
Далее присваиваем переменной x и y их начальные значения:
#<x>=#<x-0> #<y>=#<y-0>
2. Организация цикла
Цикл прописывается, используя О-коды: о<номер цикла> REPEAT и o<номер цикла> ENDREPEAT
Циклы можно вкладывать.
Вернемся к нашей задаче: необходимо просверлить 10 000 отверстий (100 х 100). Допустим, что нам нужно, чтобы отверстия сверлились рядами вдоль X. Значит, мы должны сначала встать на первую координату по Y и "пробежать" отверстия по координате X. Затем встать на следующую координату по Y и опять пробежать все отверстия по X.
В G-кодах это будет выглядеть так:
o100 REPEAT [#<y-num>] o101 REPEAT [#<x-num>] G0 X#<x> Y#<y> (переместились в координату с текущими значениями X и Y) G1 Z-7.0 F400 (опустились по Z до координаты -7,0 со скоростью 400 - сверление) G0 Z5.0 (быстро поднялись по Z на безопасную высоту для перемещения) #<x>=[#<x>+#<x-step>] (изменили текущее значение X на шаг o101 ENDREPEAT (вернулись на начало цикла о101 пока количество итераций не станет равным #<x-num> #<y>=[#<y>+#<y-step>] (после выполнения 100 шагов по X переходим в эту строку и делаем приращение по Y на шаг) #<x>=#<x-0> (присваиваем X начальное значение) о100 ENDREPEAT (после выполнения 100 шагов по Y выходим из цикла)
Окончательный вид программы
Что не хватает нашей программе? Только начальных и заключительных команд:
G21 (Все размеры в мм) G0 Z5.0 (Выйти на безопасную высоту перемещения над заготовкой) S2000 M3 (Включить шпиндель по часовой стрелки с частотой S)
далее наши циклы сверления и в заключении:
M5 (Выключить вращение шпинделя) G0 X0 Y0 (Вернуться в начальную точку) M2 (Окончание программы)
В целом программа будет выглядеть так:
G21 G0 Z5.0 S2000 M3 #<x-num>=100 #<y-num>=100 #<x-0>=15.5 #<y-0>=0.5 #<x-step>=10 #<y-step>=25 #<x>=#<x-0> #<y>=#<y-0> o100 REPEAT [#<y-num>] o101 REPEAT [#<x-num>] G0 X#<x> Y#<y> G1 Z-7.0 F400 G0 Z5.0 #<x>=[#<x>+#<x-step>] o101 ENDREPEAT #<y>=[#<y>+#<y-step>] #<x>=#<x-0> о100 ENDREPEAT M5 G0 X0 Y0 M2
Всего 23 строки и сверление 10 000 отверстий!!!