Кремень КД Реклама
Кремень КМ Реклама

при загрузке филамента двигатель вращается в обратную сторону

artemka
Идет загрузка
Загрузка
30.12.2024
130
4
Вопросы и ответы

Уважаемые читатели вопроса. прошу не забрасывать камнями но столкнулся вроде с глупой проблемой но решить не получается. 

Если вкратце перевел принтер с Marlin на klipper и столкнулся с глупой проблемой.

В klippere нажимая на кнопку загрузить происходит выгрузка филамента а, при нажатии кнопки выгрузить его загрузка. Причем команда на загрузку Klipper прописывает отрицательное значение E=-10 (_CLIENT_LINEAR_MOVE E=-10 F=300). и проблема возникает только в данной команде при использовании интерфейса Klippera. Если через Gcode load/unload filament, то работает все отлично. Если поменять вращение двигателя, команда прежняя E=-10, то происходит загрузка, но при печати (команда E=10) он не загружает филамент а выгружает.

В итоге получается проблема в прошивке Klippera в команде load/unload (CLIENT_LINEAR_MOVE), но не понимаю где исправить. Помогите решить данную проблему.

команды CLIENT_LINEAR_MOVE не менял (mainsale.cfg стандартный) 

Gcode mainsali

[gcode_macro _CLIENT_EXTRUDE]

description: Extrudes, if the extruder is hot enough

gcode:

  ##### get user parameters or use default #####

  {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}

  {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}

  {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}

  {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}

  {% set absolute_extrude = printer.gcode_move.absolute_extrude %}

  ##### end of definitions #####

  {% if printer.toolhead.extruder != '' %}

    {% if printer[printer.toolhead.extruder].can_extrude %}

      {% if use_fw_retract %}

        {% if length 

[gcode_macro _CLIENT_RETRACT]

description: Retracts, if the extruder is hot enough

gcode:

  {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}

  {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}

  {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}

  _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[gcode_macro _CLIENT_LINEAR_MOVE]

description: Linear move with save and restore of the gcode state

gcode:

  {% set x_move = "X" ~ params.X if params.X is defined else "" %}

  {% set y_move = "Y" ~ params.Y if params.Y is defined else "" %}

  {% set z_move = "Z" ~ params.Z if params.Z is defined else "" %}

  {% set e_move = "E" ~ params.E if params.E is defined else "" %}

  {% set rate = "F" ~ params.F if params.F is defined else "" %}

  {% set ABSOLUTE = params.ABSOLUTE | default(0) | int != 0 %}

  {% set ABSOLUTE_E = params.ABSOLUTE_E | default(0) | int != 0 %}

  SAVE_GCODE_STATE NAME=_client_movement

  {% if x_move or y_move or z_move %}

    G9{ 0 if ABSOLUTE else 1 }

  {% endif %}

  {% if e_move %}

    M8{ 2 if ABSOLUTE_E else 3 }

  {% endif %}

  G1 { x_move } { y_move } { z_move } { e_move } { rate }

  RESTORE_GCODE_STATE NAME=_client_movement

Ответы на вопросы