From 97f0b49a1eb930f82ef7c8665fa03fc44ed82d1a Mon Sep 17 00:00:00 2001 From: harrierpigeon Date: Tue, 6 Oct 2026 00:56:52 -0500 Subject: [PATCH] Belt printer: link every belt option to its wiki page Every option in the Belt printer and Machine frame transforms groups, the build plate tilt, the belt purge tower enable and the belt purge tower width get a wiki link, matching the pages added in OrcaSlicer/OrcaSlicer_WIKI#374. The two purge tower links that pointed at a page now point at their section. Co-Authored-By: Claude Fable 5.1 --- src/slic3r/GUI/Tab.cpp | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index fb2086c457..c64b4c8807 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -3113,7 +3113,7 @@ void TabPrint::build() optgroup->append_single_option_line("enable_tower_interface_cooldown_during_tower", "multimaterial_settings_prime_tower"); optgroup->append_single_option_line("prime_tower_enable_framework", "multimaterial_settings_prime_tower"); optgroup->append_single_option_line("prime_tower_width", "multimaterial_settings_prime_tower#width"); - optgroup->append_single_option_line("belt_purge_tower_width", "multimaterial_settings_prime_tower"); + optgroup->append_single_option_line("belt_purge_tower_width", "multimaterial_settings_prime_tower#belt-purge-tower-width"); optgroup->append_single_option_line("prime_volume", "multimaterial_settings_prime_tower"); optgroup->append_single_option_line("prime_tower_brim_width", "multimaterial_settings_prime_tower#brim-width"); optgroup->append_single_option_line("prime_tower_infill_gap", "multimaterial_settings_prime_tower"); @@ -5245,8 +5245,8 @@ void TabPrinter::build_fff() // Belt printer: dedicated section. Everything except the "Enable belt printing" // checkbox is hidden when belt_printer is off (see TabPrinter::toggle_options). auto belt_og = page->new_optgroup(L("Belt printer"), L"param_advanced"); - belt_og->append_single_option_line("belt_printer"); - belt_og->append_single_option_line("belt_printer_infinite_y"); + belt_og->append_single_option_line("belt_printer", "printer_basic_information_belt_printer#enable-belt-printing"); + belt_og->append_single_option_line("belt_printer_infinite_y", "printer_basic_information_belt_printer#infinite-y-axis"); // Belt tilt: the sole mesh-side transform and the single source of truth for // the physical tilt (drives bed rendering and support gravity tilt too). // Isometric rotation, no distortion; the back-transform inverts it before the @@ -5257,6 +5257,7 @@ void TabPrinter::build_fff() "slicing. Also drives bed rendering and support gravity tilt. " "Isometric (no distortion); the back-transform inverts it before " "the machine-frame remap.") }; + line.label_path = "printer_basic_information_belt_printer#belt-tilt"; line.append_option(belt_og->get_option("belt_slice_rotation")); line.append_option(belt_og->get_option("belt_slice_rotation_angle")); line.append_option(belt_og->get_option("belt_slice_rotation_global")); @@ -5267,14 +5268,15 @@ void TabPrinter::build_fff() L("Remap model axes before slicing so the slicer's coordinate system matches " "the physical bed orientation. For belt printers whose bed is NOT in the XY plane, " "use this to swap axes so layers are stacked in the correct physical direction.") }; + line.label_path = "printer_basic_information_belt_printer#pre-slice-axis-remap"; line.append_option(belt_og->get_option("preslice_remap_x")); line.append_option(belt_og->get_option("preslice_remap_y")); line.append_option(belt_og->get_option("preslice_remap_z")); line.append_option(belt_og->get_option("preslice_remap_global")); belt_og->append_line(line); } - belt_og->append_single_option_line("belt_preslice_global"); - belt_og->append_single_option_line("gcode_back_transform"); + belt_og->append_single_option_line("belt_preslice_global", "printer_basic_information_belt_printer#global-mesh-transforms"); + belt_og->append_single_option_line("gcode_back_transform", "printer_basic_information_belt_printer#g-code-back-transform"); { Line line = { L("First layer plane"), L("Reference plane used to decide which extrusions get first-layer " @@ -5282,6 +5284,7 @@ void TabPrinter::build_fff() "printers, Auto resolves to the tilted belt-shear plane so that " "first-layer treatment follows perpendicular distance from the belt " "surface, not slicing layer index.") }; + line.label_path = "printer_basic_information_belt_printer#first-layer-plane"; line.append_option(belt_og->get_option("first_layer_plane")); line.append_option(belt_og->get_option("first_layer_plane_offset")); line.append_option(belt_og->get_option("first_layer_plane_thickness")); @@ -5289,9 +5292,9 @@ void TabPrinter::build_fff() } // Support floor: split across lines so each setting's own mode controls // its visibility (floor_mode = Develop, floor_offset = Advanced, z_offset_mode = Expert). - belt_og->append_single_option_line("belt_support_floor_offset"); - belt_og->append_single_option_line("belt_support_z_offset_mode"); - belt_og->append_single_option_line("belt_support_floor_mode"); + belt_og->append_single_option_line("belt_support_floor_offset", "printer_basic_information_belt_printer#support-floor-z-offset"); + belt_og->append_single_option_line("belt_support_z_offset_mode", "printer_basic_information_belt_printer#z-offset-mode"); + belt_og->append_single_option_line("belt_support_floor_mode", "printer_basic_information_belt_printer#floor-mode"); // Machine-frame transform: the shear (tan) + scale (1/cos) that map // Cartesian G-code into the printer's physical machine frame are derived @@ -5301,6 +5304,7 @@ void TabPrinter::build_fff() auto mf = page->new_optgroup(L("Machine frame transforms"), L"param_advanced"); { Line line = { L("G-code axis remap (post-slice)"), L("Remap slicing-frame axes to machine axes in G-code output. Applied AFTER slicing, during G-code generation.") }; + line.label_path = "printer_basic_information_machine_frame_transforms#g-code-axis-remap"; line.append_option(mf->get_option("gcode_remap_x")); line.append_option(mf->get_option("gcode_remap_y")); line.append_option(mf->get_option("gcode_remap_z")); @@ -5312,6 +5316,7 @@ void TabPrinter::build_fff() "the belt tilt angle. Enable 'Decouple' to set an independent " "machine-frame angle when the physical gantry tilt differs from " "the slicing rotation.") }; + line.label_path = "printer_basic_information_machine_frame_transforms#machine-frame-tilt"; line.append_option(mf->get_option("belt_frame_tilt_decouple")); line.append_option(mf->get_option("belt_frame_tilt_angle")); mf->append_line(line); @@ -5362,8 +5367,8 @@ void TabPrinter::build_fff() optgroup->append_single_option_line("use_firmware_retraction", "printer_basic_information_advanced#use-firmware-retraction"); // optgroup->append_single_option_line("spaghetti_detector"); optgroup->append_single_option_line("time_cost", "printer_basic_information_advanced#time-cost"); - optgroup->append_single_option_line("build_plate_tilt_x"); - optgroup->append_single_option_line("build_plate_tilt_y"); + optgroup->append_single_option_line("build_plate_tilt_x", "printer_basic_information_advanced#build-plate-tilt"); + optgroup->append_single_option_line("build_plate_tilt_y", "printer_basic_information_advanced#build-plate-tilt"); optgroup = page->new_optgroup(L("Plugin Configuration"), L"param_gcode"); optgroup->append_single_option_line("printer_plugin_config_overrides"); @@ -5883,7 +5888,7 @@ if (is_marlin_flavor) // auto-generated purge prism; this is its enable (gated to belt printers // in toggle_options()). optgroup = page->new_optgroup(L("Belt purge tower"), "param_tower"); - optgroup->append_single_option_line("enable_belt_purge_tower", "printer_multimaterial_wipe_tower"); + optgroup->append_single_option_line("enable_belt_purge_tower", "printer_multimaterial_wipe_tower#belt-purge-tower"); optgroup = page->new_optgroup(L("Single extruder multi-material parameters"), "param_settings");