G-коды: циклы: различия между версиями

Материал из cnc-club
Перейти к навигации Перейти к поиску
Строка 23: Строка 23:
 
  #<y>=#<y-0>
 
  #<y>=#<y-0>
  
== НАЧАЛО. ОПИСАНИЕ EMC2 или EMC2 Integrators Manual ==
+
== 2. Организация цикла ==
Вместо предисловия.
+
Цикл прописывается, используя О-коды:
 +
о<номер цикла> REPEAT и o<номер цикла> ENDREPEAT
  
И почему электронщики не понимают программистов? А ведь учились в соседних группах...
+
Циклы можно вкладывать.
  
Обычно "чайники" начинают изучать LinuxCNC по мануалу: http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=150
+
Вернемся к нашей задаче: необходимо просверлить 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 на шаг)
 +
о100 ENDREPEAT              (после выполнения 100 шагов по Y выходим из цикла)
  
 
== НАЧАЛО. ОПИСАНИЕ EMC2 или EMC2 Integrators Manual ==
 
== НАЧАЛО. ОПИСАНИЕ EMC2 или EMC2 Integrators Manual ==

Версия 23:27, 29 мая 2014

Постановка задачи

Вместо предисловия.

Часто возникает необходимость на станке ЧПУ выполнять большое количество простых и РЕГУЛЯРНЫХ операций. Например, нужно просверлить 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 на шаг)
о100 ENDREPEAT               (после выполнения 100 шагов по Y выходим из цикла)

НАЧАЛО. ОПИСАНИЕ EMC2 или EMC2 Integrators Manual

Вместо предисловия.

И почему электронщики не понимают программистов? А ведь учились в соседних группах...

Обычно "чайники" начинают изучать LinuxCNC по мануалу: http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=150

Начнём разборку тоже с этого описания.