From c4c133475f555b42c8af0ff8f0fd3c8fe2514ed8 Mon Sep 17 00:00:00 2001 From: yogihybo Date: Sun, 10 May 2026 23:27:09 +1000 Subject: [PATCH] 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 Co-authored-by: SoftFever --- resources/profiles/Custom.json | 21 +++ .../Custom/Generic Repetier Printer_cover.png | Bin 0 -> 20443 bytes .../Custom/machine/MyRepetier 0.4 nozzle.json | 20 +++ .../profiles/Custom/machine/MyRepetier.json | 12 ++ .../Custom/machine/fdm_repetier_common.json | 143 ++++++++++++++++++ .../process/0.20mm Standard @MyRepetier.json | 11 ++ .../process/fdm_process_repetier_common.json | 108 +++++++++++++ src/libslic3r/GCodeWriter.cpp | 21 ++- src/libslic3r/PrintConfig.cpp | 15 +- src/libslic3r/PrintConfig.hpp | 15 +- src/slic3r/GUI/ConfigWizard.cpp | 16 +- src/slic3r/GUI/Tab.cpp | 2 +- 12 files changed, 370 insertions(+), 14 deletions(-) create mode 100644 resources/profiles/Custom/Generic Repetier Printer_cover.png create mode 100644 resources/profiles/Custom/machine/MyRepetier 0.4 nozzle.json create mode 100644 resources/profiles/Custom/machine/MyRepetier.json create mode 100644 resources/profiles/Custom/machine/fdm_repetier_common.json create mode 100644 resources/profiles/Custom/process/0.20mm Standard @MyRepetier.json create mode 100644 resources/profiles/Custom/process/fdm_process_repetier_common.json diff --git a/resources/profiles/Custom.json b/resources/profiles/Custom.json index e81049df69..de265beb0d 100644 --- a/resources/profiles/Custom.json +++ b/resources/profiles/Custom.json @@ -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" diff --git a/resources/profiles/Custom/Generic Repetier Printer_cover.png b/resources/profiles/Custom/Generic Repetier Printer_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..0cd571dce788112167163ad3f86863dd726ad6b1 GIT binary patch literal 20443 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 bw8dgycrDtz^u)34ggsLu3&Rrhg{c1lJ)<4T literal 0 HcmV?d00001 diff --git a/resources/profiles/Custom/machine/MyRepetier 0.4 nozzle.json b/resources/profiles/Custom/machine/MyRepetier 0.4 nozzle.json new file mode 100644 index 0000000000..c75ed0fd71 --- /dev/null +++ b/resources/profiles/Custom/machine/MyRepetier 0.4 nozzle.json @@ -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" +} \ No newline at end of file diff --git a/resources/profiles/Custom/machine/MyRepetier.json b/resources/profiles/Custom/machine/MyRepetier.json new file mode 100644 index 0000000000..7b5a291c72 --- /dev/null +++ b/resources/profiles/Custom/machine/MyRepetier.json @@ -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" +} \ No newline at end of file diff --git a/resources/profiles/Custom/machine/fdm_repetier_common.json b/resources/profiles/Custom/machine/fdm_repetier_common.json new file mode 100644 index 0000000000..1171559086 --- /dev/null +++ b/resources/profiles/Custom/machine/fdm_repetier_common.json @@ -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" +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/0.20mm Standard @MyRepetier.json b/resources/profiles/Custom/process/0.20mm Standard @MyRepetier.json new file mode 100644 index 0000000000..bdffd3b647 --- /dev/null +++ b/resources/profiles/Custom/process/0.20mm Standard @MyRepetier.json @@ -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" +} \ No newline at end of file diff --git a/resources/profiles/Custom/process/fdm_process_repetier_common.json b/resources/profiles/Custom/process/fdm_process_repetier_common.json new file mode 100644 index 0000000000..3a9bc23306 --- /dev/null +++ b/resources/profiles/Custom/process/fdm_process_repetier_common.json @@ -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" + ] +} \ No newline at end of file diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index a5e1c6abf1..2d18a9d5b1 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -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" <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"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 6d6377cc30..2b62000c1a 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -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 }; diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index e9767fd866..be2f7278ee 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -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(static_cast(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); + } } } diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 206a83eab5..ae428b4970 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -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>("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,