Страница 43 из 47

Re: Помогите настроить прошивку Klipper

Добавлено: 12 мар 2022, 06:05
Nik777
Соглашусь, что эта команда не создаёт , а меняет переменную . Тогда подскажите . Как можно выйти из цикла <For>. по условию , не дожидаясь его окончания. Оператор <break> здесь не работает. Все мои попытки изменить счётчик цикла не помогли.

Re: Помогите настроить прошивку Klipper

Добавлено: 12 мар 2022, 13:19
Avtonomys
Nik777 писал(а):
12 мар 2022, 06:05
Соглашусь, что эта команда не создаёт , а меняет переменную . Тогда подскажите . Как можно выйти из цикла <For>. по условию , не дожидаясь его окончания. Оператор <break> здесь не работает. Все мои попытки изменить счётчик цикла не помогли.
Вам типа такого нужно?

Код: Выделить всё

[gcode_macro QUERY_BMP280]
gcode:
    {% set num = params.N|default(5)|int %}

    {% for i in range(num) %}
        set_my_sensor
        print_my_sensor 
    {% endfor %}

[gcode_macro set_my_sensor]
variable_pressure: 1100.0
gcode:
    SET_GCODE_VARIABLE MACRO=set_my_sensor VARIABLE=pressure VALUE={printer["gcode_macro set_my_sensor"].pressure - 50.0}

[gcode_macro print_my_sensor]
variable_press_bmp280: 1008.99
gcode:
    {% set press = printer["gcode_macro set_my_sensor"].pressure %}
    {% if not press < press_bmp280 - 20.0 %}
        M118 print_my_sensor {printer["gcode_macro set_my_sensor"].pressure}
    {% endif %}

12345.png
12345.png (4.48 КБ) 2110 просмотров

Re: Помогите настроить прошивку Klipper

Добавлено: 13 мар 2022, 06:46
Nik777
Но ведь в этом цикле нет выхода по условию.Он всё равно выполнит его 5 раз .Если условие не истинно он просто не будет выводить на терминал.

Re: Помогите настроить прошивку Klipper

Добавлено: 13 мар 2022, 11:48
Avtonomys
Nik777 писал(а):
13 мар 2022, 06:46
Но ведь в этом цикле нет выхода по условию.Он всё равно выполнит его 5 раз .Если условие не истинно он просто не будет выводить на терминал.
Он у вас в любом случаи будет выполнено N раз.
Запись тот же if делает:
Nik777 писал(а):
10 мар 2022, 12:14
{% for i in range(n) if not printer["gcode_macro IF_PRESS"].flag|int == 1.0 %}
Только вместо того что бы проверять прям в момент вызова.... Вы запускаете "QUERY_BMP280" > "IF_PRESS", а в нем меняете переменную "variable_flag", которую в "TEST_LCD" проверяете. Если я правильно понял суть....

Re: Помогите настроить прошивку Klipper

Добавлено: 13 мар 2022, 15:08
Nik777
Avtonomys писал(а):
13 мар 2022, 11:48
if not printer["gcode_macro IF_PRESS"].flag|int == 1.0
Это была попытка выйти из цикла по условию , но она не сработала.

Re: Помогите настроить прошивку Klipper

Добавлено: 13 мар 2022, 16:40
Avtonomys
Nik777 писал(а):
13 мар 2022, 15:08
Это была попытка выйти из цикла по условию
В jinja2 нет такого.

Re: Помогите настроить прошивку Klipper

Добавлено: 13 мар 2022, 18:44
Nik777
Avtonomys писал(а):
13 мар 2022, 16:40
В jinja2 нет такого.
Да... похоже что это так .

Re: Помогите настроить прошивку Klipper

Добавлено: 13 мар 2022, 18:45
Nik777
Спасибо , что помогли и потратили на меня своё время.

Re: Помогите настроить прошивку Klipper

Добавлено: 15 мар 2022, 11:45
Avtonomys
Nik777 писал(а):
13 мар 2022, 18:44
Да... похоже что это так .
По идее, что-то такое можно сделать через Delayed Gcodes (https://www.klipper3d.org/Command_Templ ... yed-gcodes)
проверяя каждый раз условия и обновляя duration если условие было не выполнено.

Re: Помогите настроить прошивку Klipper

Добавлено: 17 мар 2022, 07:35
Nik777
Avtonomys писал(а):
15 мар 2022, 11:45
Nik777 писал(а):
13 мар 2022, 18:44
Да... похоже что это так .
По идее, что-то такое можно сделать через Delayed Gcodes (https://www.klipper3d.org/Command_Templ ... yed-gcodes)
проверяя каждый раз условия и обновляя duration если условие было не выполнено.
Не совсем понятно каким образом это будет работать . Ведь duration это вызов макроса через заданное время.

Re: Помогите настроить прошивку Klipper

Добавлено: 17 мар 2022, 10:02
Avtonomys
Nik777 писал(а):
17 мар 2022, 07:35
Не совсем понятно каким образом это будет работать . Ведь duration это вызов макроса через заданное время.
Это по сути бесконечный for, если постоянно обновлять duration. А не обновления duration будет выходом из цикла.

Re: Помогите настроить прошивку Klipper

Добавлено: 17 мар 2022, 11:26
Nik777
Avtonomys писал(а):
17 мар 2022, 10:02
Nik777 писал(а):
17 мар 2022, 07:35
Не совсем понятно каким образом это будет работать . Ведь duration это вызов макроса через заданное время.
Это по сути бесконечный for, если постоянно обновлять duration. А не обновления duration будет выходом из цикла.
А вот как .. Надо попробовать, только там время задаётся ,по моему, в секундах. И минимальное получится тогда 1сек.

Re: Помогите настроить прошивку Klipper

Добавлено: 17 мар 2022, 12:46
Avtonomys
Nik777 писал(а):
17 мар 2022, 11:26
А вот как .. Надо попробовать, только там время задаётся ,по моему, в секундах. И минимальное получится тогда 1сек.

Код: Выделить всё

[delayed_gcode welcome]
initial_duration: 1
gcode:
  M118 Welcome!
  UPDATE_DELAYED_GCODE ID=welcome DURATION=.25
Первый вызов welcome будет автоматический (initial_duration) - через 1 сек после того как запустится klipper.
Остальные каждые 0.25сек:
1234567890.png
1234567890.png (5.65 КБ) 2051 просмотр

Re: Помогите настроить прошивку Klipper

Добавлено: 08 апр 2022, 10:48
rafage
Всем привет! Собрал прошивку klipper для принтера anet et4. Все работает кроме одного момента, было перепутано направление оси z, убрал восклицательный знак в dir_pin:, все работает как надо паркуется в правильном направлении, но теперь при управлении через веб интерфейс при команде поднять он опускает, при опускании поднимает, где это можно настроить?

Re: Помогите настроить прошивку Klipper

Добавлено: 08 апр 2022, 11:35
Avtonomys
rafage писал(а):
08 апр 2022, 10:48
Всем привет! Собрал прошивку klipper для принтера anet et4. Все работает кроме одного момента, было перепутано направление оси z, убрал восклицательный знак в dir_pin:, все работает как надо паркуется в правильном направлении, но теперь при управлении через веб интерфейс при команде поднять он опускает, при опускании поднимает, где это можно настроить?
fluidd?
натсройки > инструмент > Инвертировать управление по оси Z (settings > Tool > Invert Z control)