Re: FAQ по Gcode, примеры
Добавлено: 15 апр 2018, 22:50
http://linuxcnc.org/docs/2.7/html/confi ... gc_section
можно попробовать прописать:
RS274NGC_STARTUP_CODE = G61
можно попробовать прописать:
RS274NGC_STARTUP_CODE = G61
Статьи, обзоры, цены на станки и комплектующие.
https://www.cnc-club.ru/forum/
"нарезай резьбу"evgenymcp писал(а):Подскажите каким образом реализовать перемещение по X на определенное растояние при каждом повороте оси A. Задача использовать 4-х осевой фрезер для намотки катушек.
G0 A 360*n X c*n , где n количество витков, c - шаг намоткиevgenymcp писал(а):Подскажите каким образом реализовать перемещение по X на определенное растояние при каждом повороте оси A. Задача использовать 4-х осевой фрезер для намотки катушек.
Спасибо. Работает.Лодочник писал(а):G0 A 360*n X c*n , где n количество витков, c - шаг намотки
Код: Выделить всё
%
#1=3600
o100 repeat [3]
G0 A[#1] X[10]
G0 A[#1*2] X[0]
o100 endrepeat
%
Нужно! G0 не надо использовать - не гарантируется, что оси будут двигаться равномерно всё время.Лодочник писал(а):Понятно, что вместо G0 можно использовать и G1 с кодом скорости подачи F***
зависит от настроек оси.evgenymcp писал(а):Одна итерация цикла отрабатывает как положено, следующая начинает вращать ось A в обратном направлении.
А где удвоение? Ты похоже забыл его дописать.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 %
Пробовал через G1 и F, так жеUAVpilot писал(а):Нужно! G0 не надо использовать - не гарантируется, что оси будут двигаться равномерно всё время.
G0 A[#1*2]Nick писал(а):А где удвоение?
Можно подробнее как через Wrapped rotary? Если ставлю в настройках оси Wrapped rotary=1, тогда больше 359.9 градусов вылазит ошибка лимитов.Nick писал(а):И ещё лучше ось А сделать. Wrapped rotary
Код: Выделить всё
%
g91
#1=3600
o100 repeat [2]
G1 A[#1] X[100] F 1000
G1 A[#1] X[-100] F 1000
o100 endrepeat
%
Код: Выделить всё
%
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
%
Код: Выделить всё
#!/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