FAQ по Gcode, примеры
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
http://linuxcnc.org/docs/2.7/html/confi ... gc_section
можно попробовать прописать:
RS274NGC_STARTUP_CODE = G61
можно попробовать прописать:
RS274NGC_STARTUP_CODE = G61
- mantra
- Кандидат
- Сообщения: 71
- Зарегистрирован: 07 апр 2018, 15:11
- Репутация: 4
- Настоящее имя: Дмитрий
- Контактная информация:
Re: FAQ по Gcode, примеры
Подходит, благодарю.
Re: FAQ по Gcode, примеры
Подскажите какой командой можно отправить ось(конкретно поворотную ) в парковку. После выполнения программы наматывает условно 90000 градусов. G28 не подходит, матает все 90000 назад
- vovafed
- Мастер
- Сообщения: 1822
- Зарегистрирован: 08 фев 2013, 16:19
- Репутация: 325
- Настоящее имя: Владимир
- Откуда: башкортостан
- Контактная информация:
Re: FAQ по Gcode, примеры
http://www.cnc-club.ru/forum/viewtopic. ... 03#p490303
часть программы автосмены так выглядит
O200 IF [#<selected_tool> GT 0]
прграмма
O200 ENDIF
получается программа срабатывает при значении выбираемого инструмента от 1 до бесконечности
как можно ограничить значения от одного до восьми
чтобы можно было прописать присадочную голову в виде инструмента с отступами
часть программы автосмены так выглядит
O200 IF [#<selected_tool> GT 0]
прграмма
O200 ENDIF
получается программа срабатывает при значении выбираемого инструмента от 1 до бесконечности
как можно ограничить значения от одного до восьми
чтобы можно было прописать присадочную голову в виде инструмента с отступами
- vovafed
- Мастер
- Сообщения: 1822
- Зарегистрирован: 08 фев 2013, 16:19
- Репутация: 325
- Настоящее имя: Владимир
- Откуда: башкортостан
- Контактная информация:
Re: FAQ по Gcode, примеры
O200 IF [ [#<selected_tool> GT 0]LE 8]
утро вечера мудренее
сделаю так должно сработать
пдф здесь скачана может кому пригодится
утро вечера мудренее
сделаю так должно сработать
пдф здесь скачана может кому пригодится
- Вложения
-
- G_code_LinuxCNC.pdf
- (1.36 МБ) 3712 скачиваний
- evgenymcp
- Мастер
- Сообщения: 1418
- Зарегистрирован: 23 апр 2017, 05:37
- Репутация: 326
- Настоящее имя: Евгений
- Откуда: Абакан,Хакасия
- Контактная информация:
Re: FAQ по Gcode, примеры
Подскажите каким образом реализовать перемещение по X на определенное растояние при каждом повороте оси A. Задача использовать 4-х осевой фрезер для намотки катушек.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
"нарезай резьбу"evgenymcp писал(а):Подскажите каким образом реализовать перемещение по X на определенное растояние при каждом повороте оси A. Задача использовать 4-х осевой фрезер для намотки катушек.
- Лодочник
- Мастер
- Сообщения: 2158
- Зарегистрирован: 10 авг 2012, 05:24
- Репутация: 1832
- Настоящее имя: Олег
- Откуда: г.Королев
- Контактная информация:
Re: FAQ по Gcode, примеры
G0 A 360*n X c*n , где n количество витков, c - шаг намоткиevgenymcp писал(а):Подскажите каким образом реализовать перемещение по X на определенное растояние при каждом повороте оси A. Задача использовать 4-х осевой фрезер для намотки катушек.
Понятно, что вместо G0 можно использовать и G1 с кодом скорости подачи F***
Последний раз редактировалось Лодочник 10 мар 2019, 11:17, всего редактировалось 2 раза.
- evgenymcp
- Мастер
- Сообщения: 1418
- Зарегистрирован: 23 апр 2017, 05:37
- Репутация: 326
- Настоящее имя: Евгений
- Откуда: Абакан,Хакасия
- Контактная информация:
Re: FAQ по Gcode, примеры
Спасибо. Работает.Лодочник писал(а):G0 A 360*n X c*n , где n количество витков, c - шаг намотки
- evgenymcp
- Мастер
- Сообщения: 1418
- Зарегистрирован: 23 апр 2017, 05:37
- Репутация: 326
- Настоящее имя: Евгений
- Откуда: Абакан,Хакасия
- Контактная информация:
Re: FAQ по Gcode, примеры
Теперь соображаю как автоматизировать процесс. Вот и настал момент когда понадобилось изучить параметрическое программирование в linuxcnc
Нужно сделать цикл где в каждой итерации возвращать X на 0 и прибавлять кол-во витков для оси A
Нужно сделать цикл где в каждой итерации возвращать X на 0 и прибавлять кол-во витков для оси A
- evgenymcp
- Мастер
- Сообщения: 1418
- Зарегистрирован: 23 апр 2017, 05:37
- Репутация: 326
- Настоящее имя: Евгений
- Откуда: Абакан,Хакасия
- Контактная информация:
Re: FAQ по Gcode, примеры
Почему не работает следующий код в lcnc? Одна итерация цикла отрабатывает как положено, следующая начинает вращать ось A в обратном направлении. Переменная #1 должна удваиваться, вместо этого она вновь приобретает значение 3600. Пробовал циклы while вместо repeat.
Код: Выделить всё
%
#1=3600
o100 repeat [3]
G0 A[#1] X[10]
G0 A[#1*2] X[0]
o100 endrepeat
%
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: FAQ по Gcode, примеры
Нужно! G0 не надо использовать - не гарантируется, что оси будут двигаться равномерно всё время.Лодочник писал(а):Понятно, что вместо G0 можно использовать и G1 с кодом скорости подачи F***
зависит от настроек оси.evgenymcp писал(а):Одна итерация цикла отрабатывает как положено, следующая начинает вращать ось A в обратном направлении.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: FAQ по Gcode, примеры
А где удвоение? Ты похоже забыл его дописать.evgenymcp писал(а):Почему не работает следующий код в lcnc? Одна итерация цикла отрабатывает как положено, следующая начинает вращать ось A в обратном направлении. Переменная #1 должна удваиваться, вместо этого она вновь приобретает значение 3600. Пробовал циклы while вместо repeat.Код: Выделить всё
% #1=3600 o100 repeat [3] G0 A[#1] X[10] G0 A[#1*2] X[0] o100 endrepeat %
А вообще это лучше через относительные координаты делать.
И ещё лучше ось А сделать. Wrapped rotary
- evgenymcp
- Мастер
- Сообщения: 1418
- Зарегистрирован: 23 апр 2017, 05:37
- Репутация: 326
- Настоящее имя: Евгений
- Откуда: Абакан,Хакасия
- Контактная информация:
Re: FAQ по Gcode, примеры
Пробовал через G1 и F, так жеUAVpilot писал(а):Нужно! G0 не надо использовать - не гарантируется, что оси будут двигаться равномерно всё время.
G0 A[#1*2]Nick писал(а):А где удвоение?
Можно подробнее как через Wrapped rotary? Если ставлю в настройках оси Wrapped rotary=1, тогда больше 359.9 градусов вылазит ошибка лимитов.Nick писал(а):И ещё лучше ось А сделать. Wrapped rotary
- evgenymcp
- Мастер
- Сообщения: 1418
- Зарегистрирован: 23 апр 2017, 05:37
- Репутация: 326
- Настоящее имя: Евгений
- Откуда: Абакан,Хакасия
- Контактная информация:
Re: FAQ по Gcode, примеры
Прописал в настройках оси wrapped_rotary=1
Этот код работает. Наматывает 40 витков в 4 слоя с шагом 10мм
Код: Выделить всё
%
g91
#1=3600
o100 repeat [2]
G1 A[#1] X[100] F 1000
G1 A[#1] X[-100] F 1000
o100 endrepeat
%
- evgenymcp
- Мастер
- Сообщения: 1418
- Зарегистрирован: 23 апр 2017, 05:37
- Репутация: 326
- Настоящее имя: Евгений
- Откуда: Абакан,Хакасия
- Контактная информация:
Re: FAQ по Gcode, примеры
Требуется фрезернуть резьбу 1 1/2 в фанере дисковой фрезой с помощью винтовой интерполяции. Потерял заготовку. Есть у кого-нибудь рабочая, чтобы выставиться в центр отверстия и указать радиус и глубину. Знаю, что делается через G02 G03.
- evgenymcp
- Мастер
- Сообщения: 1418
- Зарегистрирован: 23 апр 2017, 05:37
- Репутация: 326
- Настоящее имя: Евгений
- Откуда: Абакан,Хакасия
- Контактная информация:
Re: FAQ по Gcode, примеры
Нашел пример. Но уже разобрался как сделать в Aspire
Код: Выделить всё
%
G90 G21 G40 G49 M6 T1 G17
G0Z5.000
G0X0.000Y0.000
G0 X0 Y3.571 Z0 F100
G2 X3.571 Y0.000 Z-6.3 I0.000 J-3.571 P9 F100
G0 X5
G0 Z5
G0 X0 Y0
M2
%
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: FAQ по Gcode, примеры
подскажите пж
существует ли возможность в LinuxCNC выполнение двух независимых Ж кодов по внешним сигналам , как только с пина пришло так ж код и зажужал не зависимо друг от друга
так чтобы при пи приходе сигнала с motion.digital -in-00 выполнялся Ж код управления осями (XYZ), а при сигнале с motion.digital -in-01 выполнялся Ж код управления осями (ABC)
существует ли возможность в LinuxCNC выполнение двух независимых Ж кодов по внешним сигналам , как только с пина пришло так ж код и зажужал не зависимо друг от друга
так чтобы при пи приходе сигнала с motion.digital -in-00 выполнялся Ж код управления осями (XYZ), а при сигнале с motion.digital -in-01 выполнялся Ж код управления осями (ABC)
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
какой gui ? (Axis ? Gmoccapy?)
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: FAQ по Gcode, примеры
https://youtu.be/ARusi0aoEc4
hal
loadusr python togglegcode.py
loadusr sim_pin togglegcode.in0 togglegcode.in1
Код: Выделить всё
#!/usr/bin/python
import hal, time
import Tkinter, linuxcnc
h = hal.component("togglegcode")
h.newpin("in0", hal.HAL_BIT, hal.HAL_IN)
h.newpin("in1", hal.HAL_BIT, hal.HAL_IN)
h.ready()
status = linuxcnc.stat()
cmd = linuxcnc.command()
f0 = "/home/nkp/git/linuxcnc/nc_files/lathe_pawn.ngc"
f1 = "/home/nkp/git/linuxcnc/nc_files/2.ngc"
try:
while 1:
time.sleep(1)
if h['in0']:
try:
status.poll()
if status.file == f0:
continue
if status.interp_state == linuxcnc.INTERP_IDLE :
try :
Tkinter.Tk().tk.call("send", "axis", ("remote","clear_live_plot"))
Tkinter.Tk().tk.call("send", "axis", ("remote", "open_file_name", f0))
except Tkinter.TclError as detail:
cmd.reset_interpreter()
time.sleep(0.05)
cmd.mode(linuxcnc.MODE_AUTO)
cmd.program_open(f0)
time.sleep(0.05)
cmd.auto(linuxcnc.AUTO_RUN, program_start_line)
except Exception as e:
pass
if h['in1']:
try:
status.poll()
if status.file == f1:
continue
if status.interp_state == linuxcnc.INTERP_IDLE :
try :
Tkinter.Tk().tk.call("send", "axis", ("remote","clear_live_plot"))
Tkinter.Tk().tk.call("send", "axis", ("remote", "open_file_name", f1))
except Tkinter.TclError as detail:
cmd.reset_interpreter()
time.sleep(0.05)
cmd.mode(linuxcnc.MODE_AUTO)
cmd.program_open(f1)
time.sleep(0.05)
cmd.auto(linuxcnc.AUTO_RUN, program_start_line)
except Exception as e:
pass
try:
if status.interp_state == linuxcnc.INTERP_IDLE :
time.sleep(0.05)
cmd.mode(linuxcnc.MODE_AUTO)
time.sleep(0.05)
cmd.auto(linuxcnc.AUTO_RUN, 0)
except Exception as e:
pass
except KeyboardInterrupt:
raise SystemExit
loadusr python togglegcode.py
loadusr sim_pin togglegcode.in0 togglegcode.in1