XoTT@6bI4
Posts: 20
Joined: Mon May 27, 2019 4:02 am

Re: Documentation for Script variables

Thu Jun 11, 2020 5:13 am

I'm sorry. I took this post from some Russian site without translation. You can use a translator. Here is a complete list of variables that can be used in scripts.
  • Starting Script
    [spoiler="Старт"]Пользовательский G-код, который будет вставлен в самом начале. Все скорости должны вводиться в мм/мин.
    Можно использовать предустановленные переменные:
    - [extruder#_temperature] - темперетура сопла, где #є[0..5] (подставляются только определенные, c 4.1 - '-1');
    - [bed#_temperature] - темперетура стола, где #є[0..5] (подставляются только определенные, c 4.1 - '-1');
    - [fan_speed_percentage] - скорость вентилятора в процентах [0..100];
    - [fan_speed_pwm] - скорость вентилятора [0..255];
    - [progress] - процент печати (вроде всегда 0).

    С версии 4.1 добавили переменные:
    - [current_feature_type] - тип элемента, одним из (travel,outer_perimeter,inner_perimeter,external_single_extrusion,internal_single_extrusion,gap_fill,
    solid_layer,infill,bridge,support,dense_support,raft,skirt,prime_pillar,ooze_shield);
    - [current_layer] - текущий слой;
    - [current_layer_height] текущая высота слоя;
    - [current_position_$] - текущие координаты оси $, где $є[xyze];
    - [current_position_e#] - текущие координаты оси экструдера, где #є[0..5];
    - [next_position_$] - следующие координаты оси $, где $є[xyz];
    - [current_tool] - текущее сопло;
    - [first_tool] - не понятно;
    - [last_tool] - не понятно;
    - [prime_distance] - дистанция выдавливания после втягивания;
    - [prime_speed] - скорость выдавливания после втягивания, мм/мин;
    - [retract_distance] - дистанция втягивания;
    - [retract_speed] - скорость втягивания, мм/мин;
    - [retract_vertical_lift] - подъём сопла после втягивания;
    - [toolchange_prime_distance] - дистанция выдавливания после втягивания при смене сопла;
    - [toolchange_prime_speed] - скорость выдавливания после втягивания при смене сопла, мм/мин;
    - [toolchange_retract_distance] - дистанция втягивания при смене сопла;
    - [toolchange_retract_speed] - скорость втягивания при смене сопла, мм/мин;
    - [xy_travel_speed] - скорость перемещения по осям xy, мм/мин;
    - [z_travel_speed] - скорость перемещения по оси z, мм/мин;
    - [travel_speed] - скорость перемещения, мм/мин;
    - [chamber#_temperature] - не понятно, где #є[0..5];
    - [fan#_speed_percentage] - не понятно, где #є[0..5];
    - [fan#_speed_pwm] - не понятно, где #є[0..5];
    - [total_filament_used] - длинна используемого прутка;
    - [total_filament_weight] - вес используемого прутка;
    - [total_filament_cost] - стоимость используемого прутка;
    - [total_filament_volume] - объем используемого прутка;
    - [total_print_time_min] - время печати в минутах;
    - [total_print_time_sec] - время печати в секундах;
    - [total_layer_count] - количество слоёв;
    - [build_min_$] - минимальная координата детали по оси, где $є[xyz];
    - [build_max_$] - максимальная координата детали по оси, где $є[xyz];
    - [build_size_$] - размер детали по оси, где $є[xyz];
    - [extruder#_filament_used] - длинна используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_weight] - вес используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_cost] - стоимость используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_volume] - объем используемого прутка для экструдера, где #є[0..5].

    С версии 4.1 добавили операторы:
    - {EVAL "xxx"} - у числа xxx уберает последние 0 и потом последнюю '.'. Например, от 10.000 останется 10, где
    xxx выражение (используется QJSEngine.toNumber(), интерпретатор кода JavaScript);
    - {IF "xxx"}zzz - при выполнения условия xxx выводится zzz, где
    xxx выражение (используется QJSEngine.toBool(), интерпретатор кода JavaScript).[/spoiler]
  • Ending Script
    [spoiler="Стоп"]Пользовательский G-код, который будет вставлен при завершении печати детали. Все скорости должны вводиться в мм/мин.
    Можно использовать предустановленные переменные:
    - [current_Z_position] - координаты Z;
    - [progress] - процент печати (вроде всегда 100).

    С версии 4.1 добавили переменные:
    - [extruder#_temperature] - темперетура сопла или -1, где #є[0..5];
    - [bed#_temperature] - темперетура стола или -1, где #є[0..5];
    - [chamber#_temperature] - не понятно или -1, где #є[0..5];
    - [fan_speed_percentage] - скорость вентилятора в процентах [0..100];
    - [fan_speed_pwm] - скорость вентилятора [0..255];
    - [fan#_speed_percentage] - не понятно, где #є[0..5];
    - [fan#_speed_pwm] - не понятно, где #є[0..5];
    - [current_feature_type] - тип элемента, одним из (travel,outer_perimeter,inner_perimeter,external_single_extrusion,internal_single_extrusion,gap_fill,
    solid_layer,infill,bridge,support,dense_support,raft,skirt,prime_pillar,ooze_shield);
    - [current_layer] - текущий слой;
    - [current_layer_height] текущая высота слоя;
    - [current_position_$] - текущие координаты оси $, где $є[xyze];
    - [current_position_e#] - текущие координаты оси экструдера, где #є[0..5];
    - [next_position_$] - следующие координаты оси $, где $є[xyz];
    - [current_tool] - текущее сопло;
    - [first_tool] - не понятно;
    - [last_tool] - не понятно;
    - [prime_distance] - дистанция выдавливания после втягивания;
    - [prime_speed] - скорость выдавливания после втягивания, мм/мин;
    - [retract_distance] - дистанция втягивания;
    - [retract_speed] - скорость втягивания, мм/мин;
    - [retract_vertical_lift] - подъём сопла после втягивания;
    - [toolchange_prime_distance] - дистанция выдавливания после втягивания при смене сопла;
    - [toolchange_prime_speed] - скорость выдавливания после втягивания при смене сопла, мм/мин;
    - [toolchange_retract_distance] - дистанция втягивания при смене сопла;
    - [toolchange_retract_speed] - скорость втягивания при смене сопла, мм/мин;
    - [xy_travel_speed] - скорость перемещения по осям xy, мм/мин;
    - [z_travel_speed] - скорость перемещения по оси z, мм/мин;
    - [travel_speed] - скорость перемещения, мм/мин;
    - [total_filament_used] - длинна используемого прутка;
    - [total_filament_weight] - вес используемого прутка;
    - [total_filament_cost] - стоимость используемого прутка;
    - [total_filament_volume] - объем используемого прутка;
    - [total_print_time_min] - время печати в минутах;
    - [total_print_time_sec] - время печати в секундах;
    - [total_layer_count] - количество слоёв;
    - [build_min_$] - минимальная координата детали по оси, где $є[xyz];
    - [build_max_$] - максимальная координата детали по оси, где $є[xyz];
    - [build_size_$] - размер детали по оси, где $є[xyz];
    - [extruder#_filament_used] - длинна используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_weight] - вес используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_cost] - стоимость используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_volume] - объем используемого прутка для экструдера, где #є[0..5].

    С версии 4.1 добавили операторы:
    - {EVAL "xxx"} - у числа xxx уберает последние 0 и потом последнюю '.'. Например, от 10.000 останется 10, где
    xxx выражение (используется QJSEngine.toNumber(), интерпретатор кода JavaScript);
    - {IF "xxx"}zzz - при выполнения условия xxx выводится zzz, где
    xxx выражение (используется QJSEngine.toBool(), интерпретатор кода JavaScript).[/spoiler]
  • Layer Change Script
    [spoiler="Новый слой"]Пользовательский G-код, который будет вставлен при переходе на новый слой после команды втягивания. Все скорости должны вводиться в мм/мин.
    Можно использовать предустановленные переменные:
    - [next_position_$] - следующие координаты оси $, где $є[XYZ];
    - [previous_Z_position] - предыдущие координаты Z;
    - [current_Z_position] - следующие координаты Z;
    - [current_layer] - номер следующего слоя;
    - [progress] - процент печати.

    С версии 4.1 добавили переменные:
    - [extruder#_temperature] - темперетура сопла или -1, где #є[0..5];
    - [bed#_temperature] - темперетура стола или -1, где #є[0..5];
    - [chamber#_temperature] - не понятно или -1, где #є[0..5];
    - [fan_speed_percentage] - скорость вентилятора в процентах [0..100];
    - [fan_speed_pwm] - скорость вентилятора [0..255];
    - [fan#_speed_percentage] - не понятно, где #є[0..5];
    - [fan#_speed_pwm] - не понятно, где #є[0..5];
    - [current_feature_type] - тип элемента, одним из (travel,outer_perimeter,inner_perimeter,external_single_extrusion,internal_single_extrusion,gap_fill,
    solid_layer,infill,bridge,support,dense_support,raft,skirt,prime_pillar,ooze_shield);
    - [current_layer_height] текущая высота слоя;
    - [current_position_$] - текущие координаты оси $, где $є[xyze];
    - [current_position_e#] - текущие координаты оси экструдера, где #є[0..5];
    - [current_tool] - текущее сопло;
    - [first_tool] - не понятно;
    - [last_tool] - не понятно;
    - [prime_distance] - дистанция выдавливания после втягивания;
    - [prime_speed] - скорость выдавливания после втягивания, мм/мин;
    - [retract_distance] - дистанция втягивания;
    - [retract_speed] - скорость втягивания, мм/мин;
    - [retract_vertical_lift] - подъём сопла после втягивания;
    - [toolchange_prime_distance] - дистанция выдавливания после втягивания при смене сопла;
    - [toolchange_prime_speed] - скорость выдавливания после втягивания при смене сопла, мм/мин;
    - [toolchange_retract_distance] - дистанция втягивания при смене сопла;
    - [toolchange_retract_speed] - скорость втягивания при смене сопла, мм/мин;
    - [xy_travel_speed] - скорость перемещения по осям xy, мм/мин;
    - [z_travel_speed] - скорость перемещения по оси z, мм/мин;
    - [travel_speed] - скорость перемещения, мм/мин;
    - [total_filament_used] - длинна используемого прутка;
    - [total_filament_weight] - вес используемого прутка;
    - [total_filament_cost] - стоимость используемого прутка;
    - [total_filament_volume] - объем используемого прутка;
    - [total_print_time_min] - время печати в минутах;
    - [total_print_time_sec] - время печати в секундах;
    - [total_layer_count] - количество слоёв;
    - [build_min_$] - минимальная координата детали по оси, где $є[xyz];
    - [build_max_$] - максимальная координата детали по оси, где $є[xyz];
    - [build_size_$] - размер детали по оси, где $є[xyz];
    - [extruder#_filament_used] - длинна используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_weight] - вес используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_cost] - стоимость используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_volume] - объем используемого прутка для экструдера, где #є[0..5].

    С версии 4.1 добавили операторы:
    - {EVAL "xxx"} - у числа xxx уберает последние 0 и потом последнюю '.'. Например, от 10.000 останется 10, где
    xxx выражение (используется QJSEngine.toNumber(), интерпретатор кода JavaScript);
    - {IF "xxx"}zzz - при выполнения условия xxx выводится zzz, где
    xxx выражение (используется QJSEngine.toBool(), интерпретатор кода JavaScript).[/spoiler]
  • Retraction Script
    [spoiler="Втягивание"]Пользовательский G-код, который будет вставлен перед каждым втягиванием. Все скорости должны вводиться в мм/мин.
    Поддерживаются операторы:
    {EVAL "xxx"} - у числа xxx уберает последние 0 и потом последнюю '.'. Например, от 10.000 останется 10 (обновлено с версии 4.1);
    {IF xxxOPyyy}zzz - при выполнения условия выводится zzz (обновлено с версии 4.1), где
    - OP - операция, одна из (==,!=,<,<=,>,>=,=);
    - xxx может быть:
    - TOOL - № сопла, тогда yyy должно быть числом [0..5]
    - FEATURETYPE - тип элемента, тогда yyy должно быть одним из (travel,outer_perimeter,inner_perimeter,external_single_extrusion,internal_single_extrusion,
    gap_fill,solid_layer,infill,bridge,support,dense_support,raft,skirt,prime_pillar,ooze_shield)
    Можно использовать предустановленные переменные:
    - [retract_distance] - дистанция втягивания;
    - [prime_distance] - дистанция выдавливания после втягивания;
    - [retract_speed] - скорость втягивания;
    - [travel_speed] - скорость перемещения;
    - [current_position_$] - текущие координаты оси $, где $є[xyz];
    - [next_position_$] - следующие координаты оси $, где $є[xyz];
    - [previous_direction_$] - предыдущее смещение оси $, где $є[xyz] (с версии 4.1 удалено);
    - [next_direction_$] - следующее смещение оси $, где $є[xyz] (с версии 4.1 удалено);
    - [average_direction_$] - не понятно (с версии 4.1 удалено).

    С версии 4.1 добавили переменные:
    - [extruder#_temperature] - темперетура сопла или -1, где #є[0..5];
    - [bed#_temperature] - темперетура стола или -1, где #є[0..5];
    - [chamber#_temperature] - не понятно или -1, где #є[0..5];
    - [fan_speed_percentage] - скорость вентилятора в процентах [0..100];
    - [fan_speed_pwm] - скорость вентилятора [0..255];
    - [fan#_speed_percentage] - не понятно, где #є[0..5];
    - [fan#_speed_pwm] - не понятно, где #є[0..5];
    - [current_feature_type] - тип элемента, одним из (travel,outer_perimeter,inner_perimeter,external_single_extrusion,internal_single_extrusion,gap_fill,
    solid_layer,infill,bridge,support,dense_support,raft,skirt,prime_pillar,ooze_shield);
    - [current_layer] - текущий слой;
    - [current_layer_height] текущая высота слоя;
    - [current_position_e#] - текущие координаты оси экструдера, где #є[0..5];
    - [current_tool] - текущее сопло;
    - [first_tool] - не понятно;
    - [last_tool] - не понятно;
    - [prime_speed] - скорость выдавливания после втягивания, мм/мин;
    - [retract_vertical_lift] - подъём сопла после втягивания;
    - [toolchange_prime_distance] - дистанция выдавливания после втягивания при смене сопла;
    - [toolchange_prime_speed] - скорость выдавливания после втягивания при смене сопла, мм/мин;
    - [toolchange_retract_distance] - дистанция втягивания при смене сопла;
    - [toolchange_retract_speed] - скорость втягивания при смене сопла, мм/мин;
    - [xy_travel_speed] - скорость перемещения по осям xy, мм/мин;
    - [z_travel_speed] - скорость перемещения по оси z, мм/мин;
    - [progress] - процент печати;
    - [total_filament_used] - длинна используемого прутка;
    - [total_filament_weight] - вес используемого прутка;
    - [total_filament_cost] - стоимость используемого прутка;
    - [total_filament_volume] - объем используемого прутка;
    - [total_print_time_min] - время печати в минутах;
    - [total_print_time_sec] - время печати в секундах;
    - [total_layer_count] - количество слоёв;
    - [build_min_$] - минимальная координата детали по оси, где $є[xyz];
    - [build_max_$] - максимальная координата детали по оси, где $є[xyz];
    - [build_size_$] - размер детали по оси, где $є[xyz];
    - [extruder#_filament_used] - длинна используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_weight] - вес используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_cost] - стоимость используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_volume] - объем используемого прутка для экструдера, где #є[0..5].

    С версии 4.1 добавили операторы:
    - {EVAL "xxx"} - у числа xxx уберает последние 0 и потом последнюю '.'. Например, от 10.000 останется 10, где
    xxx выражение (используется QJSEngine.toNumber(), интерпретатор кода JavaScript);
    - {IF "xxx"}zzz - при выполнения условия xxx выводится zzz, где
    xxx выражение (используется QJSEngine.toBool(), интерпретатор кода JavaScript).[/spoiler]
  • Tool Change Script
    [spoiler="Смена сопла"]Пользовательский G-код, который будет вставлен перед каждой командой смены сопла. Все скорости должны вводиться в мм/мин.
    Поддерживаются операторы:
    {IF xxxOPyyy}zzz - при выполнения условия выводится zzz (обновлено с версии 4.1), где
    - OP - операция, одна из (==,!=,<,<=,>,>=,=);
    - xxx может быть:
    - OLDTOOL - № предыдущего сопла, тогда yyy должно быть числом [0..5]
    - NEWTOOL - № нового сопла, тогда yyy должно быть числом [0..5]
    - FEATURETYPE - тип элемента, тогда yyy должно быть одним из (travel,outer_perimeter,inner_perimeter,external_single_extrusion,internal_single_extrusion,
    gap_fill,solid_layer,infill,bridge,support,dense_support,raft,skirt,prime_pillar,ooze_shield)
    Можно использовать предустановленные переменные:
    - [new_tool] - № нового сопла;
    - [old_tool] - № предыдущего сопла;
    - [travel_speed] - скорость перемещения;
    - [toolchange_retract_speed] - скорость втягивания при смене сопла;
    - [toolchange_retract_distance] - дистанция втягивания при смене сопла;
    - [toolchange_prime_distance] - дистанция выдавливания после втягивания при смене сопла;
    - [extruder#_temperature] - темперетура сопла, где #є[0..5];
    - [bed#_temperature] - темперетура стола, где #є[0..5];
    - [current_position_$] - текущие координаты оси $, где $є[XYZ];
    - [next_position_$] - следующие координаты оси $, где $є[XYZ];
    - [previous_direction_$] - предыдущее смещение оси $, где $є[XYZ] (с версии 4.1 удалено);
    - [next_direction_$] - следующее смещение оси $, где $є[XYZ] (с версии 4.1 удалено);
    - [average_direction_$] - не понятно (с версии 4.1 удалено).

    С версии 4.1 добавили переменные:
    - [chamber#_temperature] - не понятно или -1, где #є[0..5];
    - [fan_speed_percentage] - скорость вентилятора в процентах [0..100];
    - [fan_speed_pwm] - скорость вентилятора [0..255];
    - [fan#_speed_percentage] - не понятно, где #є[0..5];
    - [fan#_speed_pwm] - не понятно, где #є[0..5];
    - [current_feature_type] - тип элемента, одним из (travel,outer_perimeter,inner_perimeter,external_single_extrusion,internal_single_extrusion,gap_fill,
    solid_layer,infill,bridge,support,dense_support,raft,skirt,prime_pillar,ooze_shield);
    - [current_layer] - текущий слой;
    - [current_layer_height] текущая высота слоя;
    - [current_position_e#] - текущие координаты оси экструдера, где #є[0..5];
    - [current_tool] - текущее сопло;
    - [first_tool] - не понятно;
    - [first_tool_use] - не понятно;
    - [last_tool] - не понятно;
    - [prime_distance] - дистанция выдавливания после втягивания;
    - [prime_speed] - скорость выдавливания после втягивания, мм/мин;
    - [retract_distance] - дистанция втягивания;
    - [retract_speed] - скорость втягивания, мм/мин;
    - [retract_vertical_lift] - подъём сопла после втягивания;
    - [toolchange_prime_speed] - скорость выдавливания после втягивания при смене сопла, мм/мин;
    - [xy_travel_speed] - скорость перемещения по осям xy, мм/мин;
    - [z_travel_speed] - скорость перемещения по оси z, мм/мин;
    - [progress] - процент печати;
    - [total_filament_used] - длинна используемого прутка;
    - [total_filament_weight] - вес используемого прутка;
    - [total_filament_cost] - стоимость используемого прутка;
    - [total_filament_volume] - объем используемого прутка;
    - [total_print_time_min] - время печати в минутах;
    - [total_print_time_sec] - время печати в секундах;
    - [total_layer_count] - количество слоёв;
    - [build_min_$] - минимальная координата детали по оси, где $є[xyz];
    - [build_max_$] - максимальная координата детали по оси, где $є[xyz];
    - [build_size_$] - размер детали по оси, где $є[xyz];
    - [extruder#_filament_used] - длинна используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_weight] - вес используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_cost] - стоимость используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_volume] - объем используемого прутка для экструдера, где #є[0..5].

    С версии 4.1 добавили операторы:
    - {EVAL "xxx"} - у числа xxx уберает последние 0 и потом последнюю '.'. Например, от 10.000 останется 10, где
    xxx выражение (используется QJSEngine.toNumber(), интерпретатор кода JavaScript);
    - {IF "xxx"}zzz - при выполнения условия xxx выводится zzz, где
    xxx выражение (используется QJSEngine.toBool(), интерпретатор кода JavaScript).[/spoiler]
  • Post Processing
    [spoiler="Постобработка"]Запуск скриптов после создания файла G-кода. Например,
    "notepad.exe" "[output_filepath]"
    Можно использовать системные переменные (%programfiles%, %windir% и др.) и предустановленные:
    - [output_filename] - имя файла без расширения;
    - [output_filepath] - имя файла с директорией;
    - [output_dir] - директория файла;
    - [install_dir] - директория установки ПО;
    - [total_filament_used] - длинна используемого прутка;
    - [total_filament_weight] - вес используемого прутка;
    - [total_filament_cost] - стоимость используемого прутка;
    - [total_print_time_min] - время печати в минутах;
    - [total_print_time_sec] - время печати в секундах;
    - [total_layer_count] - количество слоёв;
    - [build_size_$] - размер детали по оси, где $є[xyz];
    - [extruder#_filament_used] - длинна используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_weight] - вес используемого прутка для экструдера, где #є[0..5];
    - [extruder#_filament_cost] - стоимость используемого прутка для экструдера, где #є[0..5].
    С версии 4.1 добавлены:
    - [total_filament_volume] - объем используемого прутка;
    - [extruder#_filament_volume] - объем используемого прутка для экструдера, где #є[0..5];
    - [build_min_$] - минимальная координата детали по оси, где $є[xyz];
    - [build_max_$] - максимальная координата детали по оси, где $є[xyz].

    Встроенные сценарии:
    - {PREPEND "G28\n"} - добавляет строку в начало;
    - {APPEND "G28\n"} - добавляет строку в конец;
    - {REPLACE "; layer" "M117 line ="} - заменяет одну строку на другую. В примере - вывод слоев на экран;
    - {DELETE "G28 X0 Y0\n"} - удаляет последовательность символов;
    - {STRIP ";"} - удаляет строку, если она с этого начинается;
    - {TOOL#REPLACE "xxx" "yyy"} - тоже, что и {REPLACE "xxx" "yyy"}, но для определенной головы, где #є[0..5] - номер головы,
    с 4.1 заменен на {REPLACEIFTOOL "#" "xxx" "yyy"}
    - {EXTENSION "gcode"} - устанавливает расширение файла.[/spoiler]

Return to “General Discussion and Tips”