mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-17 00:26:14 +03:00
Add Repetier Gcode Flavor as option (#13126)
* Fixed PrintConfig.hpp order so Repetier outputs, updated ConfigWizard to use gcode_flavor value rather than static Add Repetier to enum values and labels Update to add Repetier base profile to the setup wizard Re-order gcode_flavors in PrintConfig.hpp and PrintConfig.cpp to match Revise ConfigWizard.cpp to use gcode_flavor rather than list order Add Repetier profiles and include in custom.json (profile disables m73 and stop emit machine limits which Repetier doesn't use) * Fix JSON formatting in Custom.json * Add support for pressure advance in Repetier flavor * Add Repetier flavor show motion ability tab is visible * Refactor jerk handling for Repetier flavor * Update resources/profiles/Custom/machine/MyRepetier 0.4 nozzle.json Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update resources/profiles/Custom/machine/fdm_repetier_common.json Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/libslic3r/PrintConfig.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add back localisation flag for Klipper * tidy up indentation and braces * Space indentation for Repetier profiles changed to tab * Fix space indentation in Custom.json file for Repetier profiles --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Ian Bassi <ian.bassi@outlook.com> Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
@@ -16,6 +16,10 @@
|
||||
"name": "Generic RRF Printer",
|
||||
"sub_path": "machine/MyRRF.json"
|
||||
},
|
||||
{
|
||||
"name": "Generic Repetier Printer",
|
||||
"sub_path": "machine/MyRepetier.json"
|
||||
},
|
||||
{
|
||||
"name": "Generic ToolChanger Printer",
|
||||
"sub_path": "machine/MyToolChanger.json"
|
||||
@@ -38,6 +42,11 @@
|
||||
"name": "fdm_process_rrf_common",
|
||||
"sub_path": "process/fdm_process_rrf_common.json"
|
||||
},
|
||||
{
|
||||
"name": "fdm_process_repetier_common",
|
||||
"sub_path": "process/fdm_process_repetier_common.json"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "0.08mm Extra Fine @MyKlipper",
|
||||
"sub_path": "process/0.08mm Extra Fine @MyKlipper.json"
|
||||
@@ -130,6 +139,10 @@
|
||||
"name": "0.28mm Extra Draft @MyRRF",
|
||||
"sub_path": "process/0.28mm Extra Draft @MyRRF.json"
|
||||
},
|
||||
{
|
||||
"name": "0.20mm Standard @MyRepetier",
|
||||
"sub_path": "process/0.20mm Standard @MyRepetier.json"
|
||||
},
|
||||
{
|
||||
"name": "0.08mm Extra Fine @MyToolChanger",
|
||||
"sub_path": "process/0.08mm Extra Fine @MyToolChanger.json"
|
||||
@@ -230,6 +243,10 @@
|
||||
"name": "fdm_rrf_common",
|
||||
"sub_path": "machine/fdm_rrf_common.json"
|
||||
},
|
||||
{
|
||||
"name": "fdm_repetier_common",
|
||||
"sub_path": "machine/fdm_repetier_common.json"
|
||||
},
|
||||
{
|
||||
"name": "MyKlipper 0.2 nozzle",
|
||||
"sub_path": "machine/MyKlipper 0.2 nozzle.json"
|
||||
@@ -254,6 +271,10 @@
|
||||
"name": "MyRRF 0.4 nozzle",
|
||||
"sub_path": "machine/MyRRF 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "MyRepetier 0.4 nozzle",
|
||||
"sub_path": "machine/MyRepetier 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "MyToolChanger 0.2 nozzle",
|
||||
"sub_path": "machine/MyToolChanger 0.2 nozzle.json"
|
||||
|
||||
BIN
resources/profiles/Custom/Generic Repetier Printer_cover.png
Normal file
BIN
resources/profiles/Custom/Generic Repetier Printer_cover.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
20
resources/profiles/Custom/machine/MyRepetier 0.4 nozzle.json
Normal file
20
resources/profiles/Custom/machine/MyRepetier 0.4 nozzle.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"type": "machine",
|
||||
"name": "MyRepetier 0.4 nozzle",
|
||||
"inherits": "fdm_repetier_common",
|
||||
"from": "system",
|
||||
"setting_id": "GM001",
|
||||
"instantiation": "true",
|
||||
"printer_model": "Generic Repetier Printer",
|
||||
"nozzle_diameter": [
|
||||
"0.4"
|
||||
],
|
||||
"printer_variant": "0.4",
|
||||
"printable_area": [
|
||||
"0x0",
|
||||
"250x0",
|
||||
"250x250",
|
||||
"0x250"
|
||||
],
|
||||
"printable_height": "250"
|
||||
}
|
||||
12
resources/profiles/Custom/machine/MyRepetier.json
Normal file
12
resources/profiles/Custom/machine/MyRepetier.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"type": "machine_model",
|
||||
"name": "Generic Repetier Printer",
|
||||
"model_id": "my_repetier_01",
|
||||
"nozzle_diameter": "0.4",
|
||||
"machine_tech": "FFF",
|
||||
"family": "MyPrinter",
|
||||
"bed_model": "",
|
||||
"bed_texture": "orcaslicer_bed_texture.svg",
|
||||
"hotend_model": "",
|
||||
"default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System"
|
||||
}
|
||||
143
resources/profiles/Custom/machine/fdm_repetier_common.json
Normal file
143
resources/profiles/Custom/machine/fdm_repetier_common.json
Normal file
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"type": "machine",
|
||||
"name": "fdm_repetier_common",
|
||||
"inherits": "fdm_machine_common",
|
||||
"from": "system",
|
||||
"instantiation": "false",
|
||||
"gcode_flavor": "repetier",
|
||||
"disable_m73": "1",
|
||||
"emit_machine_limits_to_gcode": "0",
|
||||
"machine_max_acceleration_e": [
|
||||
"5000",
|
||||
"5000"
|
||||
],
|
||||
"machine_max_acceleration_extruding": [
|
||||
"20000",
|
||||
"20000"
|
||||
],
|
||||
"machine_max_acceleration_retracting": [
|
||||
"5000",
|
||||
"5000"
|
||||
],
|
||||
"machine_max_acceleration_travel": [
|
||||
"20000",
|
||||
"20000"
|
||||
],
|
||||
"machine_max_acceleration_x": [
|
||||
"20000",
|
||||
"20000"
|
||||
],
|
||||
"machine_max_acceleration_y": [
|
||||
"20000",
|
||||
"20000"
|
||||
],
|
||||
"machine_max_acceleration_z": [
|
||||
"500",
|
||||
"200"
|
||||
],
|
||||
"machine_max_speed_e": [
|
||||
"25",
|
||||
"25"
|
||||
],
|
||||
"machine_max_speed_x": [
|
||||
"500",
|
||||
"200"
|
||||
],
|
||||
"machine_max_speed_y": [
|
||||
"500",
|
||||
"200"
|
||||
],
|
||||
"machine_max_speed_z": [
|
||||
"12",
|
||||
"12"
|
||||
],
|
||||
"machine_max_jerk_e": [
|
||||
"2.5",
|
||||
"2.5"
|
||||
],
|
||||
"machine_max_jerk_x": [
|
||||
"9",
|
||||
"9"
|
||||
],
|
||||
"machine_max_jerk_y": [
|
||||
"9",
|
||||
"9"
|
||||
],
|
||||
"machine_max_jerk_z": [
|
||||
"0.2",
|
||||
"0.4"
|
||||
],
|
||||
"machine_min_extruding_rate": [
|
||||
"0",
|
||||
"0"
|
||||
],
|
||||
"machine_min_travel_rate": [
|
||||
"0",
|
||||
"0"
|
||||
],
|
||||
"max_layer_height": [
|
||||
"0.32"
|
||||
],
|
||||
"min_layer_height": [
|
||||
"0.08"
|
||||
],
|
||||
"printable_height": "250",
|
||||
"extruder_clearance_radius": "65",
|
||||
"extruder_clearance_height_to_rod": "36",
|
||||
"extruder_clearance_height_to_lid": "140",
|
||||
"printer_settings_id": "",
|
||||
"printer_technology": "FFF",
|
||||
"printer_variant": "0.4",
|
||||
"retraction_minimum_travel": [
|
||||
"1"
|
||||
],
|
||||
"retract_before_wipe": [
|
||||
"70%"
|
||||
],
|
||||
"retract_when_changing_layer": [
|
||||
"1"
|
||||
],
|
||||
"retraction_length": [
|
||||
"0.8"
|
||||
],
|
||||
"retract_length_toolchange": [
|
||||
"2"
|
||||
],
|
||||
"z_hop": [
|
||||
"0.4"
|
||||
],
|
||||
"retract_restart_extra": [
|
||||
"0"
|
||||
],
|
||||
"retract_restart_extra_toolchange": [
|
||||
"0"
|
||||
],
|
||||
"retraction_speed": [
|
||||
"30"
|
||||
],
|
||||
"deretraction_speed": [
|
||||
"30"
|
||||
],
|
||||
"z_hop_types": "Normal Lift",
|
||||
"silent_mode": "0",
|
||||
"single_extruder_multi_material": "1",
|
||||
"change_filament_gcode": "",
|
||||
"wipe": [
|
||||
"1"
|
||||
],
|
||||
"default_filament_profile": [
|
||||
"Generic PLA @System"
|
||||
],
|
||||
"default_print_profile": "0.20mm Standard @MyRepetier",
|
||||
"bed_exclude_area": [
|
||||
"0x0"
|
||||
],
|
||||
"machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nG28\nG92 E0\n",
|
||||
"machine_end_gcode": "M104 S0\nM140 S0\nG92 E0\nM84\n",
|
||||
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
|
||||
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
|
||||
"machine_pause_gcode": "G91\nG1 Z10 F900\nG90\nG1 X0 Y0 F6000\n",
|
||||
"scan_first_layer": "0",
|
||||
"nozzle_type": "undefine",
|
||||
"auxiliary_fan": "0"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"type": "process",
|
||||
"name": "0.20mm Standard @MyRepetier",
|
||||
"inherits": "fdm_process_repetier_common",
|
||||
"from": "system",
|
||||
"setting_id": "GP004",
|
||||
"instantiation": "true",
|
||||
"layer_height": "0.2",
|
||||
"bottom_shell_layers": "3",
|
||||
"top_shell_layers": "4"
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"type": "process",
|
||||
"name": "fdm_process_repetier_common",
|
||||
"inherits": "fdm_process_common",
|
||||
"from": "system",
|
||||
"instantiation": "false",
|
||||
"adaptive_layer_height": "0",
|
||||
"reduce_crossing_wall": "0",
|
||||
"max_travel_detour_distance": "0",
|
||||
"bottom_surface_pattern": "monotonic",
|
||||
"bottom_shell_layers": "3",
|
||||
"bottom_shell_thickness": "0",
|
||||
"bridge_flow": "0.95",
|
||||
"bridge_speed": "50",
|
||||
"brim_width": "5",
|
||||
"brim_object_gap": "0.1",
|
||||
"compatible_printers_condition": "",
|
||||
"print_sequence": "by layer",
|
||||
"default_acceleration": "1000",
|
||||
"top_surface_acceleration": "1000",
|
||||
"travel_acceleration": "1000",
|
||||
"inner_wall_acceleration": "1000",
|
||||
"outer_wall_acceleration": "1000",
|
||||
"bridge_no_support": "0",
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0",
|
||||
"outer_wall_line_width": "0.4",
|
||||
"wall_infill_order": "inner wall/outer wall/infill",
|
||||
"line_width": "0.4",
|
||||
"infill_direction": "45",
|
||||
"sparse_infill_density": "15%",
|
||||
"sparse_infill_pattern": "crosshatch",
|
||||
"initial_layer_acceleration": "500",
|
||||
"initial_layer_line_width": "0.5",
|
||||
"initial_layer_print_height": "0.2",
|
||||
"infill_combination": "0",
|
||||
"sparse_infill_line_width": "0.45",
|
||||
"infill_wall_overlap": "25%",
|
||||
"interface_shells": "0",
|
||||
"ironing_flow": "10%",
|
||||
"ironing_spacing": "0.15",
|
||||
"ironing_speed": "30",
|
||||
"ironing_type": "no ironing",
|
||||
"layer_height": "0.2",
|
||||
"reduce_infill_retraction": "1",
|
||||
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
|
||||
"detect_overhang_wall": "1",
|
||||
"overhang_1_4_speed": "0",
|
||||
"overhang_2_4_speed": "50",
|
||||
"overhang_3_4_speed": "30",
|
||||
"overhang_4_4_speed": "10",
|
||||
"inner_wall_line_width": "0.45",
|
||||
"wall_loops": "3",
|
||||
"print_settings_id": "",
|
||||
"raft_layers": "0",
|
||||
"seam_position": "aligned",
|
||||
"skirt_distance": "2",
|
||||
"skirt_height": "1",
|
||||
"skirt_loops": "0",
|
||||
"minimum_sparse_infill_area": "15",
|
||||
"internal_solid_infill_line_width": "0.4",
|
||||
"spiral_mode": "0",
|
||||
"standby_temperature_delta": "-5",
|
||||
"enable_support": "0",
|
||||
"resolution": "0.012",
|
||||
"support_type": "normal(auto)",
|
||||
"support_style": "default",
|
||||
"support_on_build_plate_only": "0",
|
||||
"support_top_z_distance": "0.2",
|
||||
"support_filament": "0",
|
||||
"support_line_width": "0.4",
|
||||
"support_interface_loop_pattern": "0",
|
||||
"support_interface_filament": "0",
|
||||
"support_interface_top_layers": "2",
|
||||
"support_interface_bottom_layers": "2",
|
||||
"support_interface_spacing": "0.5",
|
||||
"support_interface_speed": "40",
|
||||
"support_base_pattern": "rectilinear",
|
||||
"support_base_pattern_spacing": "2.5",
|
||||
"support_speed": "60",
|
||||
"support_threshold_angle": "30",
|
||||
"support_object_xy_distance": "0.35",
|
||||
"tree_support_branch_angle": "45",
|
||||
"tree_support_wall_count": "0",
|
||||
"detect_thin_wall": "0",
|
||||
"top_surface_pattern": "monotonicline",
|
||||
"top_surface_line_width": "0.4",
|
||||
"top_shell_layers": "3",
|
||||
"top_shell_thickness": "0.8",
|
||||
"initial_layer_speed": "45",
|
||||
"initial_layer_infill_speed": "60",
|
||||
"outer_wall_speed": "60",
|
||||
"inner_wall_speed": "80",
|
||||
"internal_solid_infill_speed": "80",
|
||||
"top_surface_speed": "50",
|
||||
"gap_infill_speed": "80",
|
||||
"sparse_infill_speed": "80",
|
||||
"travel_speed": "150",
|
||||
"enable_prime_tower": "1",
|
||||
"wipe_tower_no_sparse_layers": "0",
|
||||
"prime_tower_width": "60",
|
||||
"xy_hole_compensation": "0",
|
||||
"xy_contour_compensation": "0",
|
||||
"enable_arc_fitting": "0",
|
||||
"compatible_printers": [
|
||||
"MyRepetier 0.4 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -267,6 +267,21 @@ std::string GCodeWriter::set_jerk_xy(double jerk)
|
||||
jerk = m_max_jerk_y;
|
||||
|
||||
gcode << "SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=" << jerk;
|
||||
|
||||
} else if (FLAVOR_IS(gcfRepetier)) {
|
||||
// Repetier uses M207 for temporary Jerk and combines X/Y into a single 'X' parameter.
|
||||
double jerk_xy = jerk;
|
||||
|
||||
// Clamp against the X machine limit
|
||||
if (m_max_jerk_x > 0 && jerk_xy > m_max_jerk_x)
|
||||
jerk_xy = m_max_jerk_x;
|
||||
|
||||
// Clamp against the Y machine limit as well to be safe
|
||||
if (m_max_jerk_y > 0 && jerk_xy > m_max_jerk_y)
|
||||
jerk_xy = m_max_jerk_y;
|
||||
|
||||
// Output the lowest safe limit using ONLY the X parameter
|
||||
gcode << "M207 X" << jerk_xy;
|
||||
} else {
|
||||
double jerk_x = jerk;
|
||||
double jerk_y = jerk;
|
||||
@@ -278,7 +293,7 @@ std::string GCodeWriter::set_jerk_xy(double jerk)
|
||||
|
||||
gcode << "M205 X" << jerk_x << " Y" << jerk_y;
|
||||
}
|
||||
|
||||
//the is_bbl check should be in the else statement above so that it doesn't inadverently added Z & E to klipper
|
||||
if (m_is_bbl_printers)
|
||||
gcode << std::setprecision(2) << " Z" << m_max_jerk_z << " E" << m_max_jerk_e;
|
||||
|
||||
@@ -365,6 +380,10 @@ std::string GCodeWriter::set_pressure_advance(double pa) const
|
||||
gcode << "SET_PRESSURE_ADVANCE ADVANCE=" << std::setprecision(4) << pa << "; Override pressure advance value\n";
|
||||
else if(FLAVOR_IS(gcfRepRapFirmware))
|
||||
gcode << ("M572 D0 S") << std::setprecision(4) << pa << "; Override pressure advance value\n";
|
||||
else if (FLAVOR_IS(gcfRepetier))
|
||||
// Repetier M233: X is quadratic (K), Y is linear (L).
|
||||
// Applying the value to both parameters simultaneously.
|
||||
gcode << "M233 X" << std::setprecision(4) << pa << " Y" << std::setprecision(4) << pa << " ; Override pressure advance value\n";
|
||||
else
|
||||
gcode << "M900 K" <<std::setprecision(4)<< pa << "; Override pressure advance value\n";
|
||||
}
|
||||
|
||||
@@ -141,14 +141,14 @@ CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(AuthorizationType)
|
||||
|
||||
static t_config_enum_values s_keys_map_GCodeFlavor {
|
||||
{ "marlin", gcfMarlinLegacy },
|
||||
{ "reprap", gcfRepRapSprinter },
|
||||
{ "klipper", gcfKlipper },
|
||||
{ "reprapfirmware", gcfRepRapFirmware },
|
||||
{ "repetier", gcfRepetier },
|
||||
{ "marlin2", gcfMarlinFirmware },
|
||||
{ "reprap", gcfRepRapSprinter },
|
||||
{ "teacup", gcfTeacup },
|
||||
{ "makerware", gcfMakerWare },
|
||||
{ "marlin2", gcfMarlinFirmware },
|
||||
{ "sailfish", gcfSailfish },
|
||||
{ "klipper", gcfKlipper },
|
||||
{ "smoothie", gcfSmoothie },
|
||||
{ "mach3", gcfMach3 },
|
||||
{ "machinekit", gcfMachinekit },
|
||||
@@ -3706,10 +3706,11 @@ void PrintConfigDef::init_fff_params()
|
||||
def->enum_values.push_back("marlin");
|
||||
def->enum_values.push_back("klipper");
|
||||
def->enum_values.push_back("reprapfirmware");
|
||||
//def->enum_values.push_back("repetier");
|
||||
def->enum_values.push_back("repetier");
|
||||
def->enum_values.push_back("marlin2");
|
||||
//def->enum_values.push_back("reprap");
|
||||
//def->enum_values.push_back("teacup");
|
||||
//def->enum_values.push_back("makerware");
|
||||
def->enum_values.push_back("marlin2");
|
||||
//def->enum_values.push_back("sailfish");
|
||||
//def->enum_values.push_back("mach3");
|
||||
//def->enum_values.push_back("machinekit");
|
||||
@@ -3718,11 +3719,11 @@ void PrintConfigDef::init_fff_params()
|
||||
def->enum_labels.push_back("Marlin(legacy)");
|
||||
def->enum_labels.push_back(L("Klipper"));
|
||||
def->enum_labels.push_back("RepRapFirmware");
|
||||
def->enum_labels.push_back("Repetier");
|
||||
def->enum_labels.push_back("Marlin 2");
|
||||
//def->enum_labels.push_back("RepRap/Sprinter");
|
||||
//def->enum_labels.push_back("Repetier");
|
||||
//def->enum_labels.push_back("Teacup");
|
||||
//def->enum_labels.push_back("MakerWare (MakerBot)");
|
||||
def->enum_labels.push_back("Marlin 2");
|
||||
//def->enum_labels.push_back("Sailfish (MakerBot)");
|
||||
//def->enum_labels.push_back("Mach3/LinuxCNC");
|
||||
//def->enum_labels.push_back("Machinekit");
|
||||
|
||||
@@ -31,8 +31,19 @@
|
||||
namespace Slic3r {
|
||||
|
||||
enum GCodeFlavor : unsigned char {
|
||||
gcfMarlinLegacy, gcfKlipper, gcfRepRapFirmware, gcfMarlinFirmware, gcfRepRapSprinter, gcfRepetier, gcfTeacup, gcfMakerWare, gcfSailfish, gcfMach3, gcfMachinekit,
|
||||
gcfSmoothie, gcfNoExtrusion
|
||||
gcfMarlinLegacy,
|
||||
gcfKlipper,
|
||||
gcfRepRapFirmware,
|
||||
gcfRepetier,
|
||||
gcfMarlinFirmware,
|
||||
gcfRepRapSprinter,
|
||||
gcfTeacup,
|
||||
gcfMakerWare,
|
||||
gcfSailfish,
|
||||
gcfMach3,
|
||||
gcfMachinekit,
|
||||
gcfSmoothie,
|
||||
gcfNoExtrusion
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1253,9 +1253,19 @@ PageFirmware::PageFirmware(ConfigWizard *parent)
|
||||
void PageFirmware::apply_custom_config(DynamicPrintConfig &config)
|
||||
{
|
||||
auto sel = gcode_picker->GetSelection();
|
||||
if (sel >= 0 && (size_t)sel < gcode_opt.enum_labels.size()) {
|
||||
auto *opt = new ConfigOptionEnum<GCodeFlavor>(static_cast<GCodeFlavor>(sel));
|
||||
config.set_key_value("gcode_flavor", opt);
|
||||
|
||||
// Safety check: ensure selection index is within bounds
|
||||
if (sel >= 0 && (size_t) sel < gcode_opt.enum_values.size()) {
|
||||
std::string selected_flavor_str = gcode_opt.enum_values[sel];
|
||||
// Ensure the default value exists to prevent null pointer crashes
|
||||
if (gcode_opt.default_value) {
|
||||
//Clone the fully initialized option (preserves the dictionary map)
|
||||
ConfigOption* opt = gcode_opt.default_value->clone();
|
||||
// Deserialize the string safely
|
||||
opt->deserialize(selected_flavor_str);
|
||||
// Save it to the printer configuration
|
||||
config.set_key_value("gcode_flavor", opt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4851,7 +4851,7 @@ void TabPrinter::build_unregular_pages(bool from_initial_build/* = false*/)
|
||||
{
|
||||
size_t n_before_extruders = 2; // Count of pages before Extruder pages
|
||||
auto flavor = m_config->option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value;
|
||||
bool is_marlin_flavor = (flavor == gcfMarlinLegacy || flavor == gcfMarlinFirmware || flavor == gcfKlipper || flavor == gcfRepRapFirmware);
|
||||
bool is_marlin_flavor = (flavor == gcfMarlinLegacy || flavor == gcfMarlinFirmware || flavor == gcfKlipper || flavor == gcfRepRapFirmware || flavor == gcfRepetier);
|
||||
|
||||
/* ! Freeze/Thaw in this function is needed to avoid call OnPaint() for erased pages
|
||||
* and be cause of application crash, when try to change Preset in moment,
|
||||
|
||||
Reference in New Issue
Block a user