Возврат ошибки_скорость подачи

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
SONIC300077
Опытный
Сообщения: 131
Зарегистрирован: 07 апр 2013, 18:17
Репутация: 0
Настоящее имя: Сергей
Контактная информация:

Возврат ошибки_скорость подачи

Сообщение SONIC300077 »

Вот тут обсуждали этот момент viewtopic.php?f=15&t=1849&p=548481#p548481
SONIC300077 писал(а): 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

Моежт кто знает как решить это? Зарание благодарю
Большая благодарность за труд человеку под ником nkp

Вот инструкция для возвращения настроек как все работало до версии 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 изменения

######################






Вложения
axisrc.txt
Первая версия проверено на версии 2.7
(4.89 КБ) 64 скачивания
axisrc_V2.txt
Первая версия проверено на версии 2.7
(4.84 КБ) 63 скачивания
SONIC300077
Опытный
Сообщения: 131
Зарегистрирован: 07 апр 2013, 18:17
Репутация: 0
Настоящее имя: Сергей
Контактная информация:

Re: Возврат ошибки_скорость подачи

Сообщение SONIC300077 »

SONIC300077 писал(а): Да эта инструкция работает на версию Linuxcnc 2.8
Помогите подправить для версии Linuxcnc 2.7
Ответить

Вернуться в «LinuxCNC»