FIX: simple way to avoid collision of seq printing

A simple way to avoid collision of seq printing by object of A1 series
printers, at the cost of reduced area of sequential printing.
Add new option extruder_clearance_dist_to_rod.

jira: STUDIO-8137
Change-Id: I033220e090b071c76f5c5be0d0b471e428d807ec
This commit is contained in:
Arthur 2024-11-02 20:45:59 +08:00 committed by Lane.Wei
parent 5b7cc2495c
commit 1656cf084b
51 changed files with 80 additions and 58 deletions

View File

@ -87,7 +87,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [

View File

@ -20,7 +20,7 @@
"extruder_clearance_height_to_lid": "256",
"extruder_clearance_height_to_rod": "25",
"extruder_clearance_max_radius": "73",
"extruder_clearance_radius": "73",
"extruder_clearance_dist_to_rod": "56.5",
"head_wrap_detect_zone": [
"226x224",
"256x224",

View File

@ -21,7 +21,7 @@
"extruder_clearance_height_to_lid": "180",
"extruder_clearance_height_to_rod": "25",
"extruder_clearance_max_radius": "73",
"extruder_clearance_radius": "73",
"extruder_clearance_dist_to_rod": "56.5",
"head_wrap_detect_zone": [
"156x152",
"180x152",

View File

@ -79,9 +79,10 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_height_to_rod": "34",
"extruder_clearance_height_to_lid": "140",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"printer_settings_id": "",
"retraction_minimum_travel": [
"2"

View File

@ -111,7 +111,8 @@
],
"extruder_clearance_height_to_lid": "250",
"extruder_clearance_height_to_rod": "14",
"extruder_clearance_radius": "70",
"extruder_clearance_max_radius": "70",
"extruder_clearance_dist_to_rod": "35",
"z_hop": [
"0.2"
],

View File

@ -111,7 +111,8 @@
],
"extruder_clearance_height_to_lid": "250",
"extruder_clearance_height_to_rod": "14",
"extruder_clearance_radius": "70",
"extruder_clearance_max_radius": "70",
"extruder_clearance_dist_to_rod": "35",
"z_hop": [
"0.2"
],

View File

@ -12,7 +12,7 @@
"default_print_profile": "0.20mm Standard @Creality Ender3V3KE",
"extruder_clearance_height_to_rod": "47",
"extruder_clearance_max_radius": "90",
"extruder_clearance_radius": "90",
"extruder_clearance_dist_to_rod": "90",
"machine_load_filament_time": "11",
"nozzle_diameter": [
"0.4"

View File

@ -111,7 +111,7 @@
],
"extruder_clearance_height_to_lid": "101",
"extruder_clearance_height_to_rod": "45",
"extruder_clearance_radius": "45",
"extruder_clearance_dist_to_rod": "45",
"z_hop": [
"0.12"
],

View File

@ -111,7 +111,7 @@
],
"extruder_clearance_height_to_lid": "101",
"extruder_clearance_height_to_rod": "45",
"extruder_clearance_radius": "45",
"extruder_clearance_dist_to_rod": "45",
"z_hop": [
"0.12"
],

View File

@ -109,7 +109,7 @@
],
"extruder_clearance_height_to_lid": "101",
"extruder_clearance_height_to_rod": "45",
"extruder_clearance_radius": "45",
"extruder_clearance_dist_to_rod": "45",
"z_hop": [
"0.2"
],

View File

@ -110,7 +110,7 @@
],
"extruder_clearance_height_to_lid": "101",
"extruder_clearance_height_to_rod": "45",
"extruder_clearance_radius": "45",
"extruder_clearance_dist_to_rod": "45",
"z_hop": [
"0.2"
],

View File

@ -110,7 +110,7 @@
],
"extruder_clearance_height_to_lid": "101",
"extruder_clearance_height_to_rod": "45",
"extruder_clearance_radius": "45",
"extruder_clearance_dist_to_rod": "45",
"z_hop": [
"0.2"
],

View File

@ -110,7 +110,7 @@
],
"extruder_clearance_height_to_lid": "101",
"extruder_clearance_height_to_rod": "45",
"extruder_clearance_radius": "45",
"extruder_clearance_dist_to_rod": "45",
"z_hop": [
"0.2"
],

View File

@ -110,7 +110,7 @@
],
"extruder_clearance_height_to_lid": "101",
"extruder_clearance_height_to_rod": "45",
"extruder_clearance_radius": "45",
"extruder_clearance_dist_to_rod": "45",
"z_hop": [
"0.2"
],

View File

@ -110,7 +110,7 @@
],
"extruder_clearance_height_to_lid": "101",
"extruder_clearance_height_to_rod": "45",
"extruder_clearance_radius": "45",
"extruder_clearance_dist_to_rod": "45",
"z_hop": [
"0.2"
],

View File

@ -110,7 +110,7 @@
],
"extruder_clearance_height_to_lid": "101",
"extruder_clearance_height_to_rod": "45",
"extruder_clearance_radius": "45",
"extruder_clearance_dist_to_rod": "45",
"z_hop": [
"0.2"
],

View File

@ -76,7 +76,7 @@
"max_layer_height": [
"0.32"
],
"extruder_clearance_radius": "47",
"extruder_clearance_dist_to_rod": "47",
"extruder_clearance_height_to_rod": "34",
"extruder_clearance_height_to_lid": "34",
"retract_length_toolchange": [

View File

@ -74,7 +74,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"printer_settings_id": "",

View File

@ -38,7 +38,7 @@
"extra_loading_move": "-2",
"extruder_clearance_height_to_lid": "34",
"extruder_clearance_height_to_rod": "34",
"extruder_clearance_radius": "47",
"extruder_clearance_dist_to_rod": "47",
"extruder_colour": ["#FCE94F"],
"extruder_offset": ["0x0"],
"fan_kickstart": "0",

View File

@ -30,7 +30,7 @@
"extra_loading_move": "-2",
"extruder_clearance_height_to_lid": "34",
"extruder_clearance_height_to_rod": "34",
"extruder_clearance_radius": "47",
"extruder_clearance_dist_to_rod": "47",
"extruder_colour": ["#FCE94F"],
"extruder_offset": ["0x0"],
"fan_kickstart": "0",

View File

@ -38,7 +38,7 @@
"extra_loading_move": "-2",
"extruder_clearance_height_to_lid": "34",
"extruder_clearance_height_to_rod": "34",
"extruder_clearance_radius": "47",
"extruder_clearance_dist_to_rod": "47",
"extruder_colour": ["#FCE94F"],
"extruder_offset": ["0x0"],
"fan_kickstart": "0",

View File

@ -30,7 +30,7 @@
"extra_loading_move": "-2",
"extruder_clearance_height_to_lid": "34",
"extruder_clearance_height_to_rod": "34",
"extruder_clearance_radius": "47",
"extruder_clearance_dist_to_rod": "47",
"extruder_colour": ["#FCE94F"],
"extruder_offset": ["0x0"],
"fan_kickstart": "0",

View File

@ -30,7 +30,7 @@
"extra_loading_move": "-2",
"extruder_clearance_height_to_lid": "380",
"extruder_clearance_height_to_rod": "10",
"extruder_clearance_radius": "60",
"extruder_clearance_dist_to_rod": "60",
"extruder_colour": ["#FCE94F"],
"extruder_offset": ["0x0"],
"fan_kickstart": "0",

View File

@ -30,7 +30,7 @@
"extra_loading_move": "-2",
"extruder_clearance_height_to_lid": "380",
"extruder_clearance_height_to_rod": "10",
"extruder_clearance_radius": "60",
"extruder_clearance_dist_to_rod": "60",
"extruder_colour": ["#FCE94F"],
"extruder_offset": ["0x0"],
"fan_kickstart": "0",

View File

@ -30,7 +30,7 @@
"extra_loading_move": "-2",
"extruder_clearance_height_to_lid": "380",
"extruder_clearance_height_to_rod": "10",
"extruder_clearance_radius": "60",
"extruder_clearance_dist_to_rod": "60",
"extruder_colour": ["#FCE94F"],
"extruder_offset": ["0x0"],
"fan_kickstart": "0",

View File

@ -30,7 +30,7 @@
"extra_loading_move": "-2",
"extruder_clearance_height_to_lid": "380",
"extruder_clearance_height_to_rod": "10",
"extruder_clearance_radius": "60",
"extruder_clearance_dist_to_rod": "60",
"extruder_colour": ["#FCE94F"],
"extruder_offset": ["0x0"],
"fan_kickstart": "0",

View File

@ -80,7 +80,7 @@
"0.08"
],
"printable_height": "280",
"extruder_clearance_radius": "47",
"extruder_clearance_dist_to_rod": "47",
"extruder_clearance_height_to_rod": "34",
"extruder_clearance_height_to_lid": "34",
"printer_settings_id": "",

View File

@ -70,7 +70,8 @@
"0.07"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [

View File

@ -80,7 +80,8 @@
"0.08"
],
"printable_height": "280",
"extruder_clearance_radius": "47",
"extruder_clearance_max_radius": "47",
"extruder_clearance_dist_to_rod": "24",
"extruder_clearance_height_to_rod": "34",
"extruder_clearance_height_to_lid": "34",
"printer_settings_id": "",

View File

@ -80,7 +80,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "47",
"extruder_clearance_max_radius": "47",
"extruder_clearance_dist_to_rod": "24",
"extruder_clearance_height_to_rod": "34",
"extruder_clearance_height_to_lid": "34",
"printer_settings_id": "",

View File

@ -70,7 +70,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [

View File

@ -87,7 +87,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [

View File

@ -41,7 +41,8 @@
"retract_lift_below": [
"269"
],
"extruder_clearance_radius": "60",
"extruder_clearance_max_radius": "60",
"extruder_clearance_dist_to_rod": "30",
"extruder_clearance_height_to_rod": "38",
"extruder_clearance_height_to_lid": "110",
"single_extruder_multi_material": "1",

View File

@ -70,7 +70,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [

View File

@ -80,7 +80,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "47",
"extruder_clearance_max_radius": "47",
"extruder_clearance_dist_to_rod": "24",
"extruder_clearance_height_to_rod": "34",
"extruder_clearance_height_to_lid": "34",
"printer_settings_id": "",

View File

@ -26,9 +26,10 @@
"retract_lift_below": [
"239"
],
"extruder_clearance_radius": "56",
"extruder_clearance_max_radius": "56",
"extruder_clearance_dist_to_rod": "28",
"extruder_clearance_height_to_rod": "33",
"extruder_clearance_height_to_lid": "110",
"extruder_clearance_height_to_lid": "110",
"support_air_filtration": "1",
"machine_start_gcode": "PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[hot_plate_temp_initial_layer]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM191 S{overall_chamber_temperature}\nM109 S[nozzle_temperature_initial_layer]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\n",
"machine_end_gcode": "M141 S0\nM104 S0\nM140 S0\nG1 E-3 F1800\nG0 Z{min(max_print_height, max_layer_z + 3)} F600\nG0 X0 Y0 F12000\n{if max_layer_z < max_print_height / 2}G1 Z{max_print_height / 2 + 10} F600{else}G1 Z{min(max_print_height, max_layer_z + 3)}{endif}",

View File

@ -70,7 +70,8 @@
"0.08"
],
"printable_height": "400",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [

View File

@ -80,7 +80,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"printer_settings_id": "",

View File

@ -70,7 +70,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [

View File

@ -80,7 +80,8 @@
"0.08"
],
"printable_height": "330",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"printer_settings_id": "",

View File

@ -80,7 +80,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"printer_settings_id": "",

View File

@ -70,7 +70,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [

View File

@ -70,7 +70,8 @@
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_max_radius": "65",
"extruder_clearance_dist_to_rod": "33",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [

View File

@ -894,7 +894,7 @@ static std::vector<std::string> s_Preset_printer_options {
"printer_technology",
"printable_area", "bed_exclude_area","bed_custom_texture", "bed_custom_model", "gcode_flavor",
"single_extruder_multi_material", "machine_start_gcode", "machine_end_gcode","printing_by_object_gcode","before_layer_change_gcode", "layer_change_gcode", "time_lapse_gcode", "change_filament_gcode",
"printer_model", "printer_variant", "printable_height", "extruder_clearance_radius", "extruder_clearance_max_radius","extruder_clearance_height_to_lid", "extruder_clearance_height_to_rod",
"printer_model", "printer_variant", "printable_height", "extruder_clearance_dist_to_rod", "extruder_clearance_max_radius","extruder_clearance_height_to_lid", "extruder_clearance_height_to_rod",
"nozzle_height",
"default_print_profile", "inherits",
"silent_mode",
@ -2519,7 +2519,7 @@ const std::string& PresetCollection::get_preset_name_by_alias(const std::string&
it_preset->is_visible && (it_preset->is_compatible || size_t(it_preset - m_presets.begin()) == m_idx_selected))
return it_preset->name;
}
return alias;
}

View File

@ -101,7 +101,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
"post_process",
"extruder_clearance_height_to_rod",
"extruder_clearance_height_to_lid",
"extruder_clearance_radius",
"extruder_clearance_dist_to_rod",
"nozzle_height",
"extruder_clearance_max_radius",
"extruder_colour",
@ -768,7 +768,7 @@ StringObjectException Print::sequential_print_clearance_valid(const Print &print
{
auto inst = print_instance_with_bounding_box[k].print_instance;
// 只需要考虑喷嘴到滑杆的偏移量,这个比整个工具头的碰撞半径要小得多
auto bbox = print_instance_with_bounding_box[k].bounding_box.inflated(-scale_(0.5 * print.config().extruder_clearance_max_radius.value));
auto bbox = print_instance_with_bounding_box[k].bounding_box.inflated(-scale_(print_config.extruder_clearance_dist_to_rod.value - print_config.extruder_clearance_max_radius.value));
auto iy1 = bbox.min.y();
auto iy2 = bbox.max.y();
(const_cast<ModelInstance*>(inst->model_instance))->arrange_order = k+1;
@ -1163,7 +1163,7 @@ StringObjectException Print::validate(StringObjectException *warning, Polygons*
if (has_custom_layering) {
std::vector<std::vector<coordf_t>> layer_z_series;
layer_z_series.assign(m_objects.size(), std::vector<coordf_t>());
for (size_t idx_object = 0; idx_object < m_objects.size(); ++idx_object) {
layer_z_series[idx_object] = generate_object_layers(m_objects[idx_object]->slicing_parameters(), layer_height_profiles[idx_object], m_objects[idx_object]->config().precise_z_height.value);
}
@ -1683,7 +1683,7 @@ void Print::process(std::unordered_map<std::string, long long>* slice_time, bool
if (slice_time) {
start_time = (long long)Slic3r::Utils::get_current_milliseconds_time_utc();
}
for (PrintObject* obj : m_objects) {
if (need_slicing_objects.count(obj) != 0) {

View File

@ -1352,8 +1352,8 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(120));
def = this->add("extruder_clearance_radius", coFloat);
def->label = L("Radius");
def = this->add("extruder_clearance_dist_to_rod", coFloat);
def->label = L("Distance to rod");
def->tooltip = L("Clearance radius around extruder. Used for collision avoidance in by-object printing.");
def->sidetext = L("mm");
def->min = 0;

View File

@ -1035,7 +1035,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
((ConfigOptionEnum<DraftShield>, draft_shield))
((ConfigOptionFloat, extruder_clearance_height_to_rod))//BBs
((ConfigOptionFloat, extruder_clearance_height_to_lid))//BBS
((ConfigOptionFloat, extruder_clearance_radius))
((ConfigOptionFloat, extruder_clearance_dist_to_rod))
((ConfigOptionFloat, nozzle_height))
((ConfigOptionFloat, extruder_clearance_max_radius))
((ConfigOptionStrings, extruder_colour))

View File

@ -658,7 +658,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
toggle_line(el, has_ironing);
// bool have_sequential_printing = (config->opt_enum<PrintSequence>("print_sequence") == PrintSequence::ByObject);
// for (auto el : { "extruder_clearance_radius", "extruder_clearance_height_to_rod", "extruder_clearance_height_to_lid" })
// for (auto el : { "extruder_clearance_dist_to_rod", "extruder_clearance_height_to_rod", "extruder_clearance_height_to_lid" })
// toggle_field(el, have_sequential_printing);
bool have_ooze_prevention = config->opt_bool("ooze_prevention");

View File

@ -5332,8 +5332,8 @@ void GLCanvas3D::update_sequential_clearance()
Polygon hull_no_offset = model_object->convex_hull_2d(Geometry::assemble_transform({ 0.0, 0.0, model_instance0->get_offset().z() }, model_instance0->get_rotation(),
model_instance0->get_scaling_factor(), model_instance0->get_mirror()));
auto tmp = offset(hull_no_offset,
// Shrink the extruder_clearance_radius a tiny bit, so that if the object arrangement algorithm placed the objects
// exactly by satisfying the extruder_clearance_radius, this test will not trigger collision.
// Shrink the extruder_clearance_max_radius a tiny bit, so that if the object arrangement algorithm placed the objects
// exactly by satisfying the extruder_clearance_max_radius, this test will not trigger collision.
shrink_factor,
jtRound, mitter_limit);
Polygon hull_2d = !tmp.empty() ? tmp.front() : hull_no_offset;// tmp may be empty due to clipper's bug, see STUDIO-2452

View File

@ -2742,7 +2742,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
//BBS: add bed_exclude_area
, config(Slic3r::DynamicPrintConfig::new_from_defaults_keys({
"printable_area", "bed_exclude_area", "bed_custom_texture", "bed_custom_model", "print_sequence",
"extruder_clearance_radius", "extruder_clearance_max_radius",
"extruder_clearance_dist_to_rod", "extruder_clearance_max_radius",
"extruder_clearance_height_to_lid", "extruder_clearance_height_to_rod",
"nozzle_height", "skirt_loops", "skirt_distance",
"brim_width", "brim_object_gap", "brim_type", "nozzle_diameter", "single_extruder_multi_material",

View File

@ -3517,6 +3517,7 @@ void TabPrinter::build_fff()
optgroup = page->new_optgroup(L("Extruder Clearance"));
optgroup->append_single_option_line("extruder_clearance_max_radius");
optgroup->append_single_option_line("extruder_clearance_dist_to_rod");
optgroup->append_single_option_line("extruder_clearance_height_to_rod");
optgroup->append_single_option_line("extruder_clearance_height_to_lid");
@ -4126,7 +4127,7 @@ void TabPrinter::toggle_options()
// Disable silent mode for non-marlin firmwares.
toggle_option("silent_mode", is_marlin_flavor);
//BBS: extruder clearance of BBL printer can't be edited.
for (auto el : { "extruder_clearance_max_radius", "extruder_clearance_height_to_rod", "extruder_clearance_height_to_lid" })
for (auto el : {"extruder_clearance_max_radius", "extruder_clearance_dist_to_rod", "extruder_clearance_height_to_rod", "extruder_clearance_height_to_lid"})
toggle_option(el, !is_BBL_printer);
}