Большая благодарность за труд человеку под ником nkpSONIC300077 писал(а): ↑22 янв 2020, 12:11 Не могу найти где внести изменения что бы вернуть управление осями а именно скоростями, деле в том что я работал на версии Linuxcnc 2,5,4. и привык к тому что подача и скорости ручных перемещений задается кнопками ("`, 1..9, 0", _("Set Feed Override from 0% to 100%") для меня это очень удобно по каждой цифрой определеная скорость, особенно мне это нужно для привязке инструмента да и когда работаешь в ручном режиме,
А в новых версиях Linuxcnc 2.7.15 разделили подачу и ручные ускоренные перемещения и когда двигаешь осями в ручную скорость приходится задавать кнопками "<Б" "Ю>" это очень неудобно, мне нежно хотя бы 3-4 горячии клавиши с конкретно заданными скоростями!
Сечас ковыряю вот этот файл /usr/bin/axis путем сровнения с версией 2,5,4
Моежт кто знает как решить это? Зарание благодарю
Вот инструкция для возвращения настроек как все работало до версии 2,6,13 после эти параметры работают по другому, может кому еще удобно по старому, ну или тема продолжит развиваться !
И еще прикрепляю два файла axisrc.txt и axisrc_V2.txt может кому тоже пригодится там работает ползунок ручных перемешений кнопками "0 -9) и можно на каждую задать свой процент!
Да эта инструкция работает на версию Linuxcnc 2.8
Код: Выделить всё
требуется отредактировать 2 файла:
1. файл axis.tcl
если емс установлен в системе ,то ищем его командой в терминале
locate axis.tcl
у меня это /usr/share/axis/tcl/axis.tcl
если емс установлен из исходников,то
папка_установки/share/axis/tcl/axis.tcl
там находим вот эту функцию update_jog_slider_vel
и изменяем ее вот так:
proc update_jog_slider_vel {newval} {
global pane_top
global feedrate
global nkpjog_speed
global jog_speed max_speed
set max_speed_units [to_internal_linear_unit $max_speed]
if {$max_speed_units == {None}} return
if {$::metric} { set max_speed_units [expr {25.4 * $max_speed_units}] }
set speed [val2vel_show $newval $max_speed_units];
set jog_speed $speed
${pane_top}.feedoverride.foscale configure -variable feedrate
set nkpjog_speed [expr {$jog_speed * $feedrate * .01}]
}
##################################
2. файл axis
если емс установлен в системе ,то ищем его командой в терминале
locate axis
у меня это /usr/bin/axis
если емс установлен из исходников,то
папка_установки/bin/axis
там находим вот эту функцию def set_feedrate(newval):
и изменяем ее вот так:
def set_feedrate(newval):
global feedrate_blackout
try:
value = int(newval)
except ValueError: return
value = value / 100.
c.feedrate(value)
feedrate_blackout = time.time() + 1
sj = vars.jog_speed.get()
jj = (value * sj)
vars.nkpjog_speed.set(jj)
добавляем в список переменных внизу строку ("nkpjog_speed", DoubleVar),
vars = nf.Variables(root_window,
("linuxcnctop_command", StringVar),
("emcini", StringVar),
("mdi_command", StringVar),
("taskfile", StringVar),
("interp_pause", IntVar),
("exec_state", IntVar),
("task_state", IntVar),
("task_paused", IntVar),
("interp_state", IntVar),
("task_mode", IntVar),
("has_ladder", IntVar),
("has_editor", IntVar),
("ja_rbutton", StringVar),
("tto_g11", BooleanVar),
("mist", BooleanVar),
("flood", BooleanVar),
("brake", BooleanVar),
("spindledir", IntVar),
("running_line", IntVar),
("highlight_line", IntVar),
("show_program", IntVar),
("program_alpha", IntVar),
("show_live_plot", IntVar),
("show_tool", IntVar),
("show_extents", IntVar),
("show_offsets", IntVar),
("grid_size", DoubleVar),
("show_machine_limits", IntVar),
("show_machine_speed", IntVar),
("show_distance_to_go", IntVar),
("dro_large_font", IntVar),
("show_pyvcppanel", IntVar),
("show_rapids", IntVar),
("feedrate", IntVar),
("rapidrate", IntVar),
("spindlerate", IntVar),
("tool", StringVar),
("active_codes", StringVar),
("metric", IntVar),
("coord_type", IntVar),
("display_type", IntVar),
("override_limits", BooleanVar),
("view_type", IntVar),
("jog_speed", DoubleVar),
("jog_aspeed", DoubleVar),
("max_speed", DoubleVar),
("max_aspeed", DoubleVar),
("maxvel_speed", DoubleVar),
("max_maxvel", DoubleVar),
("teleop_mode", IntVar),
("motion_mode", IntVar),
("kinematics_type", IntVar),
("optional_stop", BooleanVar),
("block_delete", BooleanVar),
("rotate_mode", BooleanVar),
("touch_off_system", StringVar),
("machine", StringVar),
("on_any_limit", BooleanVar),
("queued_mdi_commands", IntVar),
("max_queued_mdi_commands", IntVar),
("trajcoordinates", StringVar),
("nkpjog_speed", DoubleVar),
)
функцию bind_axis редактируем вот так:
def bind_axis(a, b, d):
root_window.bind("<KeyPress-%s>" % a, kp_wrap(lambda e: jog_on_map(d, -vars.nkpjog_speed.get()/60 ), "KeyPress"))
root_window.bind("<KeyPress-%s>" % b, kp_wrap(lambda e: jog_on_map(d, vars.nkpjog_speed.get()/60 ), "KeyPress"))
root_window.bind("<Shift-KeyPress-%s>" % a, lambda e: jog_on_map(d, -get_max_jog_speed_map(d)))
root_window.bind("<Shift-KeyPress-%s>" % b, lambda e: jog_on_map(d, get_max_jog_speed_map(d)))
root_window.bind("<KeyRelease-%s>" % a, lambda e: jog_off_map(d))
root_window.bind("<KeyRelease-%s>" % b, lambda e: jog_off_map(d))
то есть
в файле axis.tcl 1 изменение
в файле axis 3 изменения
######################