Страница 1 из 1
Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 18 ноя 2019, 13:52
bberkhin
Хочу поделиться и услышать критику.
Предыстория:
Первым полезным изделием которое я захотел сделать на самодельном ЧПУ фрезерном была подставка под сверла - прямоугольник с большим количеством отверстий разного диаметра.
Про G-Code на тот момент ничего не знал и думал что УП будет выглядеть как-то так:
Код: Выделить всё
for( x = startx, i =min_diameter; i < max_diameter; x+= stepx,i++)
{
for( y = starty, j = 0; j < 10; y+= stepy, j++)
{
cut_hole( x, y, i +j/10 ); // i +j/10 - diameter
}
}
В реальности оказалось, что нужно сначала нарисовать 100 окружностей разного диаметра в CAD, потом выбирать их и задавать вручную кучу параметров в САМ. (Я знаю что в G-Code есть подпрограммы и возможность передавать параметры через регистры, но все это выглядело очень неудобно). Кроме того, не нашел удобного и недорогого, а лучше бесплатного редактора G-code.
Здесь на форуме наткнулся на упоминание о GCMC(
http://www.vagrearg.org/content/gcmc), связался с автором и через полгода родился редактор для создания, редактирования и эмуляции выполнения УП на G-Code и GCMC
Работает под Windows, денег не просит, выглядит так:
Почитать подробнее и скачать здесь
https://matildacnc.com/ru
Re: Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 18 ноя 2019, 18:10
SVP
По-моему враги украли они сделали кибер-технолога...
Надо попробовать, возможно и вполне юзабельная весчь.
Re: Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 18 ноя 2019, 18:16
selenur
Предварительный просмотр может работать в такой ситуации?
Или программа как я понял накладывает свои ограничения, которые нужно выполнить.
Re: Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 18 ноя 2019, 19:38
bberkhin
Предварительный просмотр может работать в такой ситуации?
Не очень понял в какой ситуации.
В 3 и 4 строке, насколько я знаю G-code, у вас ошибки. Не задан ни один код перемещения(G0, G1, G2.. ) для координат в этих строках. Но остальная часть должна работать.
Каких-то специальных ограничений я не устанавливал. Теоретически должно работать для фалов LinuxCNC, Match и точно работает на китайском контроллере который на моем станке

Все файлы из дистрибутива kflop тоже работают. Для промышленных стоек у меня нет возможности проверить, там наверняка будут проблемы
Но программа наверняка очень сырая, поэтому я буду благодарен за любые найденные проблемы и постараюсь их оперативно устранять.
Если вышлите этот файл (на
bberkhin@matildacnc.com) я посмотрю.
Re: Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 18 ноя 2019, 19:44
MaksSavchuk
навскидку она в g2/g3 параметр p вообще игнорирует, проверку проходит программа в которой есть перемещения и нет указания feed rate, в linuxcnc это вывалит ошибку например
Re: Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 19 ноя 2019, 08:18
selenur
bberkhin писал(а):Не очень понял в какой ситуации.
Программа при проверке ругается на отсутствие завещающих команд.
Некоторые контроллеры требуют например что-бы в начале и в конце G- код начинался и заканчивался символом "%", некоторым нужно M2 указывать а некоторым ненужно.
И в случае ошибки у тебя программа всё равно будет показывать траекторию, или только если будут устранены все ошибки, вот про это я имел в виду
bberkhin писал(а):В 3 и 4 строке, насколько я знаю G-code, у вас ошибки. Не задан ни один код перемещения(G0, G1, G2.. ) для координат в этих строках. Но остальная часть должна работать.
В используемом контроллере, считается что если не указано G0, G1, G2, то подразумевается применение G0, в нем примерно так-же как и в GRBL контролере есть значения режимов по умолчанию, вот пример от GRBL:
Re: Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 19 ноя 2019, 13:36
Serg
selenur писал(а):В используемом контроллере, считается что если не указано G0, G1, G2, то подразумевается применение G0
Это плохой, негодный контроллер.

Re: Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 19 ноя 2019, 13:44
bberkhin
selenur писал(а):Программа при проверке ругается на отсутствие завещающих команд.
Для этого случая она нежно ругается (желтым): то есть выдает предупреждение и траекторию будет показывать
Если ругается грубо(красным) то ошибка и рисоваться не будет
selenur писал(а):
Некоторые контроллеры требуют например что-бы в начале и в конце G- код начинался и заканчивался символом "%", некоторым нужно M2 указывать а некоторым ненужно.
Нет таких ограничений нет. Минимальная программа выглядит так:
selenur писал(а):
В используемом контроллере, считается что если не указано G0, G1, G2, то подразумевается применение G0, в нем примерно так-же как и в GRBL контролере есть значения режимов по умолчанию, вот пример от GRBL:
Нет G0 по умолчанию не ставится ( как и в LinuxCNC ) . Все остальные значения по умолчанию ставятся.
Я обновил версию. Исправил несколько досадных моментов. Скачать можно там же
Re: Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 19 ноя 2019, 13:55
bberkhin
MaksSavchuk писал(а): проверку проходит программа в которой есть перемещения и нет указания feed rate, в linuxcnc это вывалит ошибку например
Спасибо, за замечания.
Исправил отсутствие проверки на установленный feed rate g2/g3. Для g1 проверка была
MaksSavchuk писал(а):навскидку она в g2/g3 параметр p вообще игнорирует
Не очень понял. Параметра p для g2/g3 я не знаю. Что это? Есть IJK метод задания дуги и R метод - оба поддерживаются см
https://www.cnccookbook.com/cnc-g-code- ... e-g02-g03/
Re: Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 19 ноя 2019, 15:39
MaksSavchuk
bberkhin писал(а):Не очень понял. Параметра p для g2/g3 я не знаю
стандартный по крайней мере в linuxcnc параметр, для задания спиральной траектории
вот например результат выполнения двух команд
g2 i20 z-10 p10
g2 i-20 z-20 p3
Re: Редактор G-codа с поддержкой высокоуровневого языка GCMC
Добавлено: 19 ноя 2019, 19:59
bberkhin
MaksSavchuk писал(а):стандартный по крайней мере в linuxcnc параметр, для задания спиральной траектории
вот например результат выполнения двух команд
Действительно, спасибо, почему-то не обратил на это внимания
Исправил.
Пока не обновлял, может еще что-нибудь всплывет.