FAQ по Gcode, примеры
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
Сейчас проверять буду.
А на счет полярных координат вариантов нет?
А на счет полярных координат вариантов нет?
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
Это нормально сработает если подпрограмма в относительных координатах, а если в абсолюте то нифига не получится.nkp писал(а):это я от лени так пишу-сорри(по аналогии с геометрией)
Или если в начале подпрограммы написать что-то типа
Код: Выделить всё
G10 L2 P0 X0 Y0
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
Лучше их менять через G10 L2, а читать можно через #1234 (это относится к параметрам которые задают систему координат).xentaur писал(а):Nick, а параметры #5330 из G-кода можно менять, тогда это хоть какой-то вариант! Я тогда находясь в G53 в #5330 запищу первый центр, потом G54 (или что там соответствует) и т.д. Вот это да! Вариант!
по поводу твоей задачи, я бы сделал так:
Код: Выделить всё
#<num> = 9
#<r-step> = 40
#<mach> = 123 (номер подпрограммы)
O100 repeat [#<num>]
G10 L2 R[#5330+#<r-step>]
O<#mach> call
O100 endrepeat
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
Спасибо. Идея понятна, но не нова. К сожалению точность деталюшек высокая. И поэтому из-за корявости изготовления кондуктора для крепления заготовок, приходится координаты центров задавать индивидуально для каждой позиции.
По документации для G10 L2 параметр P обязательный.
По документации для G10 L2 параметр P обязательный.
Последний раз редактировалось xentaur 10 июн 2012, 03:24, всего редактировалось 1 раз.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
Ну можно его тоже в функцию передавать...xentaur писал(а):По документации для G10 L2 параметр P обязательный.
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
Не нужно мне в подпрограмму его передавать. В моем случае подпрограмма делает фигурные отверстия вокруг текущего X0 Y0 Z0 используя текущую абсолютную систему координат. Вот X0 Y0 Z0 R0 Я и хочу менять в основной проге.
Я кондуктор на столе выставил, забазировал первую заготовку в G54, например, и всё! Дальше мне просто нужны смещения и повороты. Координаты остальных заготовок мне известны.
Я кондуктор на столе выставил, забазировал первую заготовку в G54, например, и всё! Дальше мне просто нужны смещения и повороты. Координаты остальных заготовок мне известны.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
И повороты и смещения -все есть.В чем сейчас трудность?
- Вложения
-
- 4.ngc
- (170 байт) 1191 скачивание
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
Трудность в адаптации. Пример мне не подходит - подпрограмма в G91 работает.
Есть предложения? Как сделать матрицу таких? Желательно задавать координаты относительно первой заготовки.
Код: Выделить всё
g54 g17 g40 g90 g90.1
o103 sub
#<a>=40
o133 repeat [6]
g10 l2 p0 r[#<a>]
/старый код подпрограммы
g0 x10 y0
z0.2
G02 I7.5 J0 z-5 p10
g0 x7.5 y0
z5
/---------------------------
#<a>=[#<a>+60]
o133endrepeat
o103 endsub
/Основная программа
f600
g0 z50
x0 y0
o103call
m2
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
что это значит?xentaur писал(а):Пример мне не подходит - подпрограмма в G91 работает.
мой код из о103 выбрасывается полностью.Туда суем код подпрограммы настоящей
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
G10 L2 без P- точно не работает. Неудобно получается.
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
моя подпрограмма работает только в G90 и X0 Y0 должен быть в центре заготовки. В моем примере (твоём переделанном ) в подпрограмме режется резьба, только для одного отверстия - остальные обрабатываются при помощи поворота координат.nkp писал(а):что это значит?
мой код из о103 выбрасывается полностью.Туда суем код подпрограммы настоящей
Большое спасибо. Но я никак не допру как мне остальные заготовки обработать?
Заготовок 24 штуки в матрице 6х4. Нужно обработать все.
Просто хочу задать координаты всех следующих заготовок относительно первой
Типа G10 L2 P0 X50, но у меня какой-то бред начинается.
Вот вроде что то начало получаться.
Код: Выделить всё
g54 g17 g40 g90 g90.1
o103 sub
#<a>=0
o133 repeat [6]
g10 l2 p0 r[#<a>]
/старый код подпрограммы
g90
g0 x10 y0
z0.2
G02 I7.5 J0 z-2 p4
g0 x7.5 y0
z5
/---------------------------
#<a>=[#<a>+60]
o133endrepeat
g10 l2 p0 r0
o103 endsub
/Основная программа
f1500
g0 z50
g10 l2 p0 x0
o103call
g10 l2 p0 x25
o103call
g10 l2 p0 x50
o103call
g10 l2 p0 x0 y25
o103call
g10 l2 p0 x25 y25
o103call
g10 l2 p0 x50 y25
o103call
m2
Пока так сойдет.
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
Спасибо за помощь, скоро и на станке попробую.
Облом G10 L2 не сбрасывает координаты при перезапуске программы. Что делать?
Облом G10 L2 не сбрасывает координаты при перезапуске программы. Что делать?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
xentaur писал(а):Что делать?
Код: Выделить всё
g54 g17 g40 g90 g90.1
o103 sub
#<a>=0
o133 repeat [6]
g10 l2 p0 r[#<a>]
/старый код подпрограммы
g90
g0 x10 y0
z0.2
G02 I7.5 J0 z-2 p4
g0 x7.5 y0
z5
/---------------------------
#<a>=[#<a>+60]
o133endrepeat
g10 l2 p0 r0
o103 endsub
/Основная программа
f1500
g0 z50
g10 l2 p1 x0
o103call
g55
g10 l2 p2 x25
o103call
g56
g10 l2 p3 x50
o103call
g57
g10 l2 p4 x0 y25
o103call
g58
g10 l2 p5 x25 y25
o103call
g59
g10 l2 p6 x50 y25
o103call
g54
g10 l2 p1 r0
g0 x0 y0
m2
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
Первый раз работает как надо, а второй и дальше пилит только дальний ряд дважды (даже если станок выключить авостом, включить, хоум, пуск).
Но если перезапустить LinuxCNC, то опять первый раз ОК, а остальные только второй ряд дважды.
Так вроде получилось, опять же криво, но работает.
А вот я код переделал с бесконечным циклом, Я так часто делаю, но LinuxCNC тошнит. Точнее загрузку прервать можно по [Esc], и даже прогу запустить, потом если остановить, то опять [Esc] или полный повисон.
P.S. Потом заменил while на repeat [1000] и не дождался окончания трассировки. Поставил [100]. Но так не годится, хочу while[1].
Но если перезапустить LinuxCNC, то опять первый раз ОК, а остальные только второй ряд дважды.
Так вроде получилось, опять же криво, но работает.
А вот я код переделал с бесконечным циклом, Я так часто делаю, но LinuxCNC тошнит. Точнее загрузку прервать можно по [Esc], и даже прогу запустить, потом если остановить, то опять [Esc] или полный повисон.
Код: Выделить всё
%
g54 g17 g40 g90 g90.1
g10 l2 p0 x0 y0 z0 r0
o103 sub
#<a>=0
o133 repeat [6]
g10 l2 p0 r[#<a>]
(старый код подпрограммы)
g90
g0 x10 y0
z0.2
G02 I7.5 J0 z-2 p4
g0 x7.5 y0
z5
(-----------------------)
#<a>=[#<a>+60]
o133endrepeat
g10 l2 p0 r0
o103 endsub
(Основная программа)
f1500
g0 z50
o555 while [1]
m3
g10 l2 p0 x0
o103call
g10 l2 p0 x25
o103call
g10 l2 p0 x50
o103call
g10 l2 p0 x0 y25
o103call
g10 l2 p0 x25 y25
o103call
g10 l2 p0 x50 y25
o103call
z50 m5
m0
o555 endwhile
m2
%
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
Нашел способ. block_delete должен быть отключен перед загрузкой программы.
Но нифига, только block_delete включаешь и можно пить кофе...Решил оставить repeat [100].
Код: Выделить всё
%
g54 g17 g40 g90 g90.1
g10 l2 p0 x0 y0 z0 r0
o103 sub
#<a>=0
o133 repeat [6]
g10 l2 p0 r[#<a>]
(старый код подпрограммы)
g90
g0 x10 y0
z0.2
G02 I7.5 J0 z-2 p4
g0 x7.5 y0
z5
(-----------------------)
#<a>=[#<a>+60]
o133endrepeat
g10 l2 p0 r0
o103 endsub
(Основная программа)
f1500
g0 z50
o555 repeat [100]
m3
g10 l2 p0 x0
o103call
g10 l2 p0 x25
o103call
g10 l2 p0 x50
o103call
g10 l2 p0 x0 y25
o103call
g10 l2 p0 x25 y25
o103call
g10 l2 p0 x50 y25
o103call
z50 m5
m0
/m2 (чтобы не ждать долго загрузки)
o555 endrepeat
m2
%
-
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
Оказалось что проблема в оболочке axis, под tklinuxcnc бесконечный while работает похоже без проблем. Нужно с axis разбираться.
33 минуты полёт нормальный!
33 минуты полёт нормальный!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
Скорее всего потому, что tk не строит визуализацию всей обработки, а axis пытается это сделать и нарывается на бесконечный цикл.xentaur писал(а):Оказалось что проблема в оболочке axis, под tklinuxcnc бесконечный while работает похоже без проблем. Нужно с axis разбираться.33 минуты полёт нормальный!
ЗЫ что такое block_delete?
ЗЫЫ тему позже отделю...
- sr480
- Мастер
- Сообщения: 1295
- Зарегистрирован: 08 янв 2012, 20:48
- Репутация: 139
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: FAQ по Gcode, примеры
Подскажите как правильно задать начало заготовки?
Сейчас я подъезжаю в начало заготовки, в MDI вызываю G92 X0 Y0 Z0. Но приэтом загруженная программа фрезеровки не смещается в этот ноль - нужно переоткрыть файл.
Фрезеровка идет двумя разными инструментами, при смене инструмента нужно заново выставлять высоту - приходится останавливать программу, ехать в ноль, вызывать G92 Z0, перезагружать файл, и запускать с места остановки.
Как-то это неправильно. Еще хочу поставить один концевик, чтоб он работал как Prob-In
Сейчас я подъезжаю в начало заготовки, в MDI вызываю G92 X0 Y0 Z0. Но приэтом загруженная программа фрезеровки не смещается в этот ноль - нужно переоткрыть файл.
Фрезеровка идет двумя разными инструментами, при смене инструмента нужно заново выставлять высоту - приходится останавливать программу, ехать в ноль, вызывать G92 Z0, перезагружать файл, и запускать с места остановки.
Как-то это неправильно. Еще хочу поставить один концевик, чтоб он работал как Prob-In
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
Смещается не рисунок предпросмотра, а смещается нулевая точка системы координат.
На скриншоте даже отображается какие коды на нее повлияли.
На скриншоте даже отображается какие коды на нее повлияли.
Не вопрос, ставь Кстати, можешь автоматом настроить обнуление второй фрезы. (Через G38)sr480 писал(а):Как-то это неправильно. Еще хочу поставить один концевик, чтоб он работал как Prob-In
- sr480
- Мастер
- Сообщения: 1295
- Зарегистрирован: 08 янв 2012, 20:48
- Репутация: 139
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: FAQ по Gcode, примеры
Ну вот открыл я свой GCode - LinuxCNC мне пишет: невозможно выполнить, так как превышает минимум оси Х, тогда я отъезжаю влево вызываю G92 X0, пробую снова и тожесамое, а вот если переоткрыть GCode то рисунок в просмотре перемещается и исполняется тоже без проблем.