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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Ну да, это либо через ngcgui или написать отдельную подрограмму o sub со всеми этими параметрами и вызывать ее. Хотя, на сколько я понимаю, ngcgui обычно делает тоже самое.

ЗЫ nkp, Спасибо за оперативную подмену :good:!
glaz
Кандидат
Сообщения: 57
Зарегистрирован: 06 фев 2012, 13:02
Репутация: 7
Контактная информация:

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

Сообщение glaz »

G83 - цикл глубокого сверления

G83 R Z Q F
/ R - высота начала сверления
/ Z - конечная высота окончания сверления
/ Q - сколько сверлить до начала дробления-подъема стружки
/ F - скорость

Пример:

G83 R10 Z0 Q0.5 F10
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

То ли я плохо искал, или же это не описано.
Как работает G00 X100 Y150?
Допустим надо проехать из точки А(100;100) в точку В (200;150)
Из точки А в точку В оси будут двигаться на бысром ходу одновременно?
по оси Х двжение закончится позже, чем по оси Y, верно, т.е. траектория движения будет ломаная?
Или же по оси Y скорость движения замедлится, дабы приехать в точку по прямой?
Я заню что в фануках этот момент настраивается параметрами, т.е. можно так, а можно иначе. Как это сделано в нашей чпушке?
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Поедет с максимальной скоростью станка, которая задается в
[TRAJ]
MAX_LINEAR_VELOCITY = 1.00
И не превышая максимальных скоростей осей.
При этом скорость оси Y будет замедленна. Поедет по прямой.

Настройки ломанного перемещения искали, но не нашли.
"Dog's leg" по G0 в LinuxCNC
Steel.ne
Почётный участник
Почётный участник
Сообщения: 112
Зарегистрирован: 21 апр 2012, 22:52
Репутация: 5
Контактная информация:

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

Сообщение Steel.ne »

Lexxa писал(а):...
Как работает G00 X100 Y150?
...
Или же по оси Y скорость движения замедлится, дабы приехать в точку по прямой?
Замедлится, по прямой. Потому что сложно контролировать - врежется ли при ломаном перемещении инструмент в крепление или нет.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

Просмотрел встроенную в 2.6 версию возможность переназначения ж-кодов(и не только "ж")
Всегда после нововведений причина их возникновения или сразу очевидна или доходит после второго-третьего (5-6 :hehehe: ) прочтения.Или....
Вот к примеру первый способ.
Прописываем в ини

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

[RS274NGC]
REMAP=M400  modalgroup=10 argspec=Pq ngc=name 
Теперь мы можем в программе писать М400 P1
а выполнятья будет файл name.ngc вида:

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

<name>sub
код
<name>endsub
параметр P обязательный и передает значение в процедуру ,например:

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

g1 x#<P>
Внимание-вопрос: чем данные действия отличаются от простой записи в коде

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

o<name> call [1]
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Можно Gкод не переписывать... Хотя от лукавого это все... потом привыкнешь и на другом станке напишешь это в MDI и привет...

-------------
Хотя... там вместо Gкода можно на питоне функцию прописывать... это может быть по интереснее...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

M19 - ориентация шпинделя (для Linuxcnc 2.6)
При использовании вспомогательной функции М19 представляется возможным осуществить остановку шпинделя с угловой ориентацией.
(для просмотра содержимого нажмите на ссылку)
Conceptually the spindle is in one of the following modes:
rotation mode (the default)
searching for desired orientation mode
orienation complete mode.
When an M19 is executed, the spindle changes to searching for desired orientation , and the spindle-orient HAL pin is asserted. The desired target position is specified by the spindle-orient-angle and spindle-orient-fwd pins and driven by the M19 R and P parameters.
The HAL support logic is expected to react to spindle-orient by moving the spindle to the desired position. When this is complete, the HAL logic is expected to acknowledge this by asserting the spindle-is-oriented pin.
Motion then acknowledges this by deasserting the spindle-orient pin and asserts the spindle-locked pin to indicate orientation complete mode. It also raises the spindle-brake pin. The spindle now is in orientation complete mode.
If, during spindle-orient being true, and spindle-is-oriented not yet asserted the spindle-orient-fault pin has a value other than zero, the M19 command is aborted, a message including the fault code is displayed, and the motion queue is flushed. The spindle reverts to rotation mode.
Also, any of the M3,M4 or M5 commands cancel either searching for desired orientation or orientation complete mode. This is indicated by deasserting both the spindle-orient and spindle-locked pins.
The spindle-orient-mode pin reflects the M19 P word and shall be interpreted as follows:
0: rotate clockwise or counterclockwise for smallest angular movement
1: always rotate clockwise
2: always rotate counterclockwise
It can be used with the orient HAL component which provides a PID command value based on spindle encoder positon, spindle-orient-angle and spindle-orient-mode.
Соответствующие пины:
(для просмотра содержимого нажмите на ссылку)
motion.spindle-orient-angle - (float,out) Desired spindle orientation for M19. Value of the M19 R word parameter plus the value of the [RS274NGC]ORIENT_OFFSET ini parameter.
motion.spindle-orient-mode - (s32,out) Desired spindle rotation mode M19. Default 0.
motion.spindle-orient - (out,bit) Indicates start of spindle orient cycle. Set by M19. Cleared by any of M3,M4,M5. If spindle-orient-fault is not zero during spindle-orient true, the M19 command fails with an error message.
motion.spindle-is-oriented - (in, bit) Acknowledge pin for spindle-orient. Completes orient cycle. If spindle-orient was true when spindle-is-oriented was asserted, the spindle-orient pin is cleared and the spindle-locked pin is asserted. Also, the spindle-brake pin is asserted.
motion.spindle-orient-fault - (s32, in) Fault code input for orient cycle. Any value other than zero will cause the orient cycle to abort.
motion.spindle-lock - (bit, out) Spindle orient complete pin. Cleared by any of M3,M4,M
-------
Компонент для использования этой функции - ORIENT
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

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

Сообщение aegis »

уважаемые, а это только у меня режим синхронизации движения (ж33) работает только с М3 и отказывается работть с м4? в мануалах такого не описано http://linuxcnc.org/docs/devel/html/gco ... indle-Sync может кто у себя попробует глюк это или так задумано
нікому нічого не нав'язую.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

А что говорит?
Проверь, срабатывает ли motion.spindle-at-speed
Аватара пользователя
Rafiq
Мастер
Сообщения: 1053
Зарегистрирован: 28 сен 2012, 18:11
Репутация: 6
Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
Контактная информация:

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

Сообщение Rafiq »

Интересует использование G41 и G42 (компенсация размера инструмента). В команде указывается номер инструмента, а не фактический диаметр, как сказать LinuxCNC, что, например, инструмент №1 имеет диаметр 2.8?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

1. Записать вручную в таблицу инструментов (Файл-Изменить таблицу инструментов).
2. Через код G10 L1 Set Tool Table http://www.linuxcnc.org/docs/html/gcode ... ec:G10-L1_
3. Можно вообще использовать коды G41.1 и G42.1 и назначать параметр радиуса прямо в строке кода
Например, G41.1 D10
http://www.linuxcnc.org/docs/html/gcode ... 41.1-G42.1
Аватара пользователя
Rafiq
Мастер
Сообщения: 1053
Зарегистрирован: 28 сен 2012, 18:11
Репутация: 6
Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
Контактная информация:

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

Сообщение Rafiq »

Понятно, самый "правильный" способ задать таблицу инструментов, так и сделаю.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

А есть способ сказать станку (c linuxcnc), чтобы он ехал в позицию HOME? Причём HOME - это не обязательно X0 Y0 Z0.

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

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

Сообщение Nick »

Можно запомнить положение G28.1 и потом туда приехать через G28. (Кстати, с G28 можно написать: G28 Z10, тогда он сначала поднимется на Z10, а потом поедет в запомненную точку)
Или через G53, но надо знать положение home.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

"G28 Z0" для этого подходит идеально. Только наверно "G28 G90 Z0".
Где-то читал, что положение G28 задаётся при настройке станка (при сборке). А linuxcnc можно как-то сконфигурить это положение?

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

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

Сообщение Nick »

UAVpilot писал(а):"G28 Z0" для этого подходит идеально. Только наверно "G28 G90 Z0".Где-то читал, что положение G28 задаётся при настройке станка (при сборке). А linuxcnc можно как-то сконфигурить это положение?
G28.1 - сохраняет текущее абсолютное положение в параметрах 5161-5166.

G28 axes - поедет (в режиме G0) в положение заданное осями включая любые оффсеты, и потом поедет в абсолютное положение запомненное в параметрах 5161-5166.
G28 без осей соответственно поедет сразу в запомненное положение.
Не уверен, что G28 G90 Z0 сработает, скорее надо
G90
G28 Z0

Таким же образом работает G30 и G30.1. Более того на это положение можно назначить перемещение для смены инструмента, но об этом ниже :)
UAVpilot писал(а):До кучи: а есть что-то подобное, чтобы при смене инструмента станок тоже ехал в некую заранее заданную (в конфиге станка) позицию, ну как-бы к автосменщику?
Есть несколько вариантов:
  1. в ini в разделе [EMCIO] добавляем строчку:
    TOOL_CHANGE_POSITION = 0 0 2
    Соответственно, можно использовать больше чисел, если у станка больше осей.
    Также пишут, что TOOL_CHANGE_POSITION можно комбинировать несколько движений, чтобы например сначала поднять станок на нужный уровень по Z, а потом ехать в нужную точку, правда не пишут как. В общем, надо пробовать. Возможно, надо дописать названия осей, и сделать несколько параметров TOOL_CHANGE_POSITION...
  2. TOOL_CHANGE_AT_G30 = 1
    Да, да, тот самый G30, таким образом перед сменой станок поедет в запомненную в G30.1 точку.
  3. TOOL_CHANGE_QUILL_UP = 1
    Еще одна настройка для перемещения - перед сменой станок поедет в станочную точку 0 по оси Z, это эквивалентно G53 G0 Z0. Возможно, в первом пункте имелось в виду комбинация именно с этой опцией.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Да, спасибо, я уже с утра на работе "поработал" и нашёл это. :)
G28 G90 Z0 работает как и задумывалось.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
hudoi
Кандидат
Сообщения: 55
Зарегистрирован: 21 янв 2012, 23:22
Репутация: 2
Контактная информация:

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

Сообщение hudoi »

почему команда G28 выполняется не корректно.

пример G28z0 ось сначала ныряет до нуля детали, а потом как положенно едет домой

проверил со всеми осями

емс 2.5 eng
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Всё правильно, так и положено. G28z0 и означает, что сначала в Z0, а потом туда, где G28. Это для того, чтоб сначала поднять инструмент в самый верх (обычно Z0 - это верх, а в низ отрицательные значения), чтоб чего-нибудь не зацепить им по пути в G28.
Просто по G28 сразу туда поедет.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

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