FAQ по Gcode, примеры
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
Теперь работает?
M67 (Analog Output Synchronized with Motion) в 2.4 еще не был реализован.
M67 (Analog Output Synchronized with Motion) в 2.4 еще не был реализован.
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: FAQ по Gcode, примеры
Пытаюсь разобраться с различными координатами в CNC и как ими управлять в G-кодах?
Например,
Вот запускаю я станок на поиск HOME. HOME найден, а станок отъезжает в рабочую зону (пусть это будут координаты X100 Y200 Z5). Нужно сказать, что это место и есть - X0 Y0 Z0.
А после отработки детали - переезжаю на другое место и опять определяю его как X0 Y0 Z0.
Какими командами в G-кодах это делается?
G92 X0 Y0 Z0 ???
А перемещатьс я в ноль -
G53 X0 Y0 Z0 ???
или, все таки
G0 X0 Y0 Z0 ???
Например,
Вот запускаю я станок на поиск HOME. HOME найден, а станок отъезжает в рабочую зону (пусть это будут координаты X100 Y200 Z5). Нужно сказать, что это место и есть - X0 Y0 Z0.
А после отработки детали - переезжаю на другое место и опять определяю его как X0 Y0 Z0.
Какими командами в G-кодах это делается?
G92 X0 Y0 Z0 ???
А перемещатьс я в ноль -
G53 X0 Y0 Z0 ???
или, все таки
G0 X0 Y0 Z0 ???
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
посмотри в сторону G10 L2 Pxx
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
G92 X0 Y... назначит текущие координаты равными указанным.
Также есть еще различные системы координат, со своими смещениями G54-G59, они назначаются или вручную или через G10 или G20.
G53 это ехать в 0 станка, игнорируя все смещения: по G92, по G54 и отступы инструмента - эта команда полезна например при смене инструмента, которая всегда происходит в определенном месте.
Вот есть картинка которая показывает очередность применения различных отступов:
И полезные ссылочки, правда на английском.
http://wiki.linuxcnc.org/cgi-bin/wiki.p ... ateSystems
http://linuxcnc.org/docs/html/gcode/coordinates.html
Также есть еще различные системы координат, со своими смещениями G54-G59, они назначаются или вручную или через G10 или G20.
G53 это ехать в 0 станка, игнорируя все смещения: по G92, по G54 и отступы инструмента - эта команда полезна например при смене инструмента, которая всегда происходит в определенном месте.
Вот есть картинка которая показывает очередность применения различных отступов:
И полезные ссылочки, правда на английском.
http://wiki.linuxcnc.org/cgi-bin/wiki.p ... ateSystems
http://linuxcnc.org/docs/html/gcode/coordinates.html
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: FAQ по Gcode, примеры
Осталась проблемка:
Как при кодировке в G-кодах вычислять дистанцию до конца контура?
motion.distance-to-go (float,out) Дистанция до окончания текущего перемещения. Но ведь текущее перемещение может быть длиной и 2 мм, а если необходимо узнать когда наступит расстояние до конца КОНТУРА - 10 мм, например?
Нет ли соображений по этой проблеме?
Как при кодировке в G-кодах вычислять дистанцию до конца контура?
motion.distance-to-go (float,out) Дистанция до окончания текущего перемещения. Но ведь текущее перемещение может быть длиной и 2 мм, а если необходимо узнать когда наступит расстояние до конца КОНТУРА - 10 мм, например?
Нет ли соображений по этой проблеме?
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
или в кам прикрутить такую функцию
или постпроцессировать код и вставлять коды-сигналы ...
или постпроцессировать код и вставлять коды-сигналы ...
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: FAQ по Gcode, примеры
Так я пока не могу представить саму процедуру вычисления дистанции до конца контура...
Хочешь быть счастливым? Будь им!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
Во-во, я же говорилВорон226 писал(а):motion.distance-to-go (float,out) Дистанция до окончания текущего перемещения.

В gcodetools была возможность подрезать углы и концы контуров. - в dev версии в Path preparations - есть штука prepare for box.
Вот тут кое что про это есть: Подготовка станка для производства подарочных коробок #203
Может поможет...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
значения из HAL прямо в G-код:
https://www.youtube.com/watch?v=5yUDILQn9z8
===============
точно также можно брать значения из INI:
#<_ini[section]name>
https://www.youtube.com/watch?v=5yUDILQn9z8
===============
точно также можно брать значения из INI:
#<_ini[section]name>
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
Только для версии 2.6+, а то сейчас набегут с вопросами, почему у них не работает
ЗЫ ИМХО одна из самых класных вещей тут это возможность динамической компенсации длинны инструмента на потоковом производстве, о котором уже давно спрашивали, но решения так и не нашли.
Теперь берем этот параметр и вставляем в G10 L1 или G10 L10 и делаем компенсацию износа инструмента по мере необходимости!
Хотя... это еще вопрос, будет ли эта зараза обновляться во время выполнения программы, хотя по идее должна

ЗЫ ИМХО одна из самых класных вещей тут это возможность динамической компенсации длинны инструмента на потоковом производстве, о котором уже давно спрашивали, но решения так и не нашли.
Теперь берем этот параметр и вставляем в G10 L1 или G10 L10 и делаем компенсацию износа инструмента по мере необходимости!
Хотя... это еще вопрос, будет ли эта зараза обновляться во время выполнения программы, хотя по идее должна

-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
дааа!Nick писал(а):Хотя... это еще вопрос,
я уже тоже успел обрадоваться и огорчиться!
так оно не работает

- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
Да ладно!
Т.е.
(DEBUG,#<_hal[]> ) не выдаст текущего значения?
может она просто preview не обновит, а так сработает. И может там еще что-то с движением завязано...
Кстати, а ведь все это можно через analog-in сделать...
M66 E1 L0
и потом берем доп. компенсацию отсюда: #5399
Так точно сработает.
Т.е.
(DEBUG,#<_hal[]> ) не выдаст текущего значения?
может она просто preview не обновит, а так сработает. И может там еще что-то с движением завязано...
Кстати, а ведь все это можно через analog-in сделать...

M66 E1 L0
и потом берем доп. компенсацию отсюда: #5399
Так точно сработает.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
берем код:
O<test> sub
G91
o103 repeat [5]
F30 G1 X #<_hal[pyvcp.vscale-f]> Y #<_hal[pyvcp.vscale-f]>
o103 endrepeat
O<test> endsub
O <test> call
m2
запускаем как на видео - с ползунком
===========
ну как ты думаешь - если после начала выполнения кода двигать ползунок - что нибудь изменится???
O<test> sub
G91
o103 repeat [5]
F30 G1 X #<_hal[pyvcp.vscale-f]> Y #<_hal[pyvcp.vscale-f]>
o103 endrepeat
O<test> endsub
O <test> call
m2
запускаем как на видео - с ползунком
===========
ну как ты думаешь - если после начала выполнения кода двигать ползунок - что нибудь изменится???
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
А если добавить (DEBUG, )
И какую нибудь остановку, может он буфер движения забивает, для скруглений. попробуй G4 добавить, или тот же debug.
И какую нибудь остановку, может он буфер движения забивает, для скруглений. попробуй G4 добавить, или тот же debug.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
все равно так не работаетNick писал(а):попробуй G4 добавить
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
Странно... тогда зачем это все? Особенно пины хал? Или может не дописали что-то еще?
-
- Новичок
- Сообщения: 17
- Зарегистрирован: 21 июл 2013, 21:33
- Репутация: 0
- Контактная информация:
Re: FAQ по Gcode, примеры
Как можно остановить исполнение Gкода на несколько секунд и начать со следующей строки? внутри самого Gкода есть какие-то G или M команды для этого??
-
- Новичок
- Сообщения: 17
- Зарегистрирован: 21 июл 2013, 21:33
- Репутация: 0
- Контактная информация:
Re: FAQ по Gcode, примеры
спасибо очень долго и безуспешно искал сам...)
-
- Новичок
- Сообщения: 17
- Зарегистрирован: 21 июл 2013, 21:33
- Репутация: 0
- Контактная информация:
Re: FAQ по Gcode, примеры
Есть какая-нибудь команда G кода "идти пока не коснешься концевика"? Вообщем мне нужно поведение аналогичное выставлению 0 по оси но через G код. Или может быть это возможно сделать через o коды?