FAQ по Gcode, примеры

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение verser »

Lexxa писал(а):Подскажите, как запустить цикл типа "for" внутри g кода?

Т.е. хочу выполнять кусок g кода n раз.
http://linuxcnc.org/docs/html/gcode/o-c ... ec:looping
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

verser писал(а):Т.е. хочу выполнять кусок g кода n раз.
Если только для повоторения n раз то проще всего repeat:
(там по ссылке от verser все есть)

Код: Выделить всё

(Mill 5 diagonal shapes)
G91 (Incremental mode)
o103 repeat [5]
... (insert milling code here)
G0 X1 Y1 (diagonal move to next position)
o103 endrepeat
G90 (Absolute mode)
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение alexandr1988 »

Добрый день! нужен совет по коду G33. Wiki по g-кодам и Integrators manual читал.
Есть энкодер на шпинделе, подключены фаза A и ноль метка как индекс шпинделя.
Необходимо, чтобы движение по осям было таким, например, за четверть оборота шпинделя перемещение по координатам на 3 мм, остальные 3/4 оборота перемещения нет.
Пробую код

Код: Выделить всё

G33 X0 Z3 K12
G33 X0 Z6 K12
G33 X0 Z9 K12
..
Такой вариант не работает, остановки перемещения не происходит. В чем здесь ошибка? Или может я неправильно понимаю саму суть кода G33?
Чуть позже выложу hal, в котором подключен энкодер, если необходимо.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

alexandr1988 писал(а):Необходимо, чтобы движение по осям было таким, например, за четверть оборота шпинделя перемещение по координатам на 3 мм, остальные 3/4 оборота перемещения нет.
В том то и смысл синхронизованного перемещения, что перемещение должно быть.
Можно его сделать маленьким.
Например,

Код: Выделить всё

G33 X0 Z3 K12
G33 X0 Z3.01 K0.0075
Или сделать перемещение по несуществующией оси, но придется править конфиг

Код: Выделить всё

G33 X0 Z3 K12
G33 X0 Y9 K12
ЗЫ А что ты такое интересное делаешь?
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение alexandr1988 »

Довожу до ума машину, что обсуждали в теме http://www.cnc-club.ru/forum/viewtopic. ... 5&start=40.
Просто ищу другие способы сделать остановку перемещения, кроме как c помощью команды M66 и высоких значений ускорений.
В этом варианте:

Код: Выделить всё

G33 X0 Z3 K12
G33 X0 Z3.01 K0.0075 
Первая строка дает перемещение, которое мне необходимо, а вторая перемещает на 0.01 мм за оставишиеся 3/4 оборота?
Если это так, то буду пробовать, спасибо!

Попробовал, работает! Оказывается все гениальное и вправду просто.
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение alexandr1988 »

пробую использовать в gcode переменные из hal, как на 9 странице темы, но не получется, ошибка, что переменная не объявлена.
linuxcnc 2.6.1, все остальное на скриншоте.
Вложения
3.png (4366 просмотров) <a class='original' href='./download/file.php?id=45511&mode=view' target=_blank>Загрузить оригинал (117.45 КБ)</a>
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение verser »

alexandr1988 писал(а):пробую использовать в gcode переменные из hal, как на 9 странице темы, но не получется...
Убедитесь, что такая возможность у Вас включена

Код: Выделить всё

  [RS274NGC]
  FEATURES = 12
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение verser »

Разобрался для себя как работают циклы сверления G83 - сверление с периодическим выводом сверла из отверстия для сброса стружки и для смазки сож, поделюсь здесь примером на три отверстия с пояснениями

Код: Выделить всё

S12000  M03 
G00 X0 Y0
Z16 (начальная позиция)
G98 G83 X10 Y10 Z0 R+12 Q4. F50 (быстро опустились до Z12, медленно сверлим  на глубину до Z0 при этом быстро вынимаем сверло на Z12 через каждые 4мм (Q4.))
X20 Y10 R+10 (быстро переехали на высоте Z16 в новую точку, быстро опустились до Z10, медленно сверлим  на глубину до Z0 при этом быстро вынимаем сверло на Z10 через каждые 4мм)
X30 Y10 R+8 L2(быстро переехали на высоте Z16 в новую точку, быстро опустились до Z8, медленно сверлим  на глубину до Z0 при этом быстро вынимаем сверло на Z8 через каждые 4мм, добравшись до Z0 поднялись на Z16, повторили эту строчку еще раз целиком(L2))
G80 (отключили циклы сверления)
M05 
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение verser »

Столкнулся с такой засадой,

Код: Выделить всё

G02 X-3.132 Y0. Z4. I3.132 J0. F1080 
    X-3.132 Y0. Z3. I3.132 J0. 
    X-3.132 Y0. Z2. I3.132 J0. 
    X-3.132 Y0. Z1. I3.132 J0. 
    X-3.132 Y0. Z0. I3.132 J0. 
    X-3.132 Y0. I3.132 J0. 
если во время такой вот обработки по спирали нажать "стоп программа", то вместо стопа станок еще проезжает немного в деталь, причем не по траектории обработки, а в произвольном направлении. Это только у меня такое или , может, кто-то еще с таким сталкивался? Непорядок. Замечено именно при спиральной (одновременной по трем координатам) обработке G02, G03.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Serg »

А на симуляторе тоже? А траекторию при этом рисует?

P.S. Недавно растачивал отверстие ровно таким-же кодом и несколько раз проверял "в воздухе" и останавливал прогу, чтоб до конца не ждать - на замечал, чтоб куда-то уезжало...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

Этот код можно записать 1 строчкой:

Код: Выделить всё

G02 X-3.132 Y0. Z4. I3.132 J0. P7 F1080 
хотя нет - двумя:

Код: Выделить всё

G02 X-3.132 Y0. Z0. I3.132 J0. P6 F1080
G02 X-3.132 Y0. I3.132 J0. 
 
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

И немного это сколько?
Стоп это естоп или просто стоп?
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение verser »

Nick писал(а):И немного это сколько?
Стоп это естоп или просто стоп?
5-15мм
просто стоп
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение verser »

UAVpilot писал(а):А на симуляторе тоже? А траекторию при этом рисует?
не обратил внимания, гляну..
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение verser »

UAVpilot писал(а):А на симуляторе тоже? А траекторию при этом рисует?
Рисует несанкционированную траекторию:
косяк.png (4011 просмотров) <a class='original' href='./download/file.php?id=50692&mode=view' target=_blank>Загрузить оригинал (294.5 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение Nick »

Скинь ngc посмотреть...
Там у тебя каких-нибудь хитрых оффсетов нету?
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение verser »

Nick писал(а):Скинь ngc посмотреть...
Там у тебя каких-нибудь хитрых оффсетов нету?
Там, вроде, все просто, но много :)
LID_NEW.ngc
(1.44 МБ) 721 скачивание
Аватара пользователя
verser
Мастер
Сообщения: 1903
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение verser »

О, только что обратил внимание, что "незапланированный" переезд прошел в ту точку на которой стоИт указатель в окне gcode программы. Т. е. вывод - это не какая-то случайная позиция! а та, что подгружена вперед паровоза! Я нажал стоп, когда выполнялась где-то 45854 строчка, после чего, программа не остановилась, а перескочила на 48983 строчку и там остановилась. Это, может, gmoccapy так косячит? В axis не пробовал, не настроен толком.
Аватара пользователя
vovafed
Мастер
Сообщения: 1822
Зарегистрирован: 08 фев 2013, 16:19
Репутация: 325
Настоящее имя: Владимир
Откуда: башкортостан
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение vovafed »

гдето на форуме попадался G для обработки круглого отверстия по спирали
не могу найти очень нужен :wik:
http://www.cnc-club.ru/forum/viewtopic. ... 58#p185558 нашел :)
Аватара пользователя
raddd
Почётный участник
Почётный участник
Сообщения: 1564
Зарегистрирован: 10 фев 2015, 08:50
Репутация: 540
Настоящее имя: Alexey Rodionov
Откуда: Беларусь Минский р-н
Контактная информация:

Re: FAQ по Gcode, примеры

Сообщение raddd »

вопрос знатокам!
как масштабировать G код?

исходное:
есть точечная гравировка с переменной глубиной (растр наверное называется)
программа умеет создавать код с максимальным шагом 1мм. а надо скажем 2мм

что надо получить:
мне надо размер изображния 600х600 с шагом 2мм
я делаю 300х300 с шагом 1мм

есть G51 но в емс2 он неработает(((
||||||||||||
||||||||||||
Ответить

Вернуться в «LinuxCNC»