Merge branch 'main' into dev/ams-heat

This commit is contained in:
SoftFever
2026-07-15 19:45:27 +08:00
committed by GitHub
95 changed files with 18718 additions and 6505 deletions

View File

@@ -79,6 +79,9 @@ const std::vector<std::string> filament_extruder_override_keys = {
"filament_wipe",
// percents
"filament_retract_before_wipe",
// Orca
"filament_retract_after_wipe",
// BBS
"filament_long_retractions_when_cut",
"filament_retraction_distances_when_cut"
};
@@ -310,6 +313,14 @@ static t_config_enum_values s_keys_map_WallDirection{
};
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(WallDirection)
//Orca
static t_config_enum_values s_keys_map_SurfaceFillOrder{
{ "default", int(SurfaceFillOrder::Default) },
{ "outward", int(SurfaceFillOrder::Outward) },
{ "inward", int(SurfaceFillOrder::Inward) },
};
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(SurfaceFillOrder)
//BBS
static t_config_enum_values s_keys_map_PrintSequence {
{ "by layer", int(PrintSequence::ByLayer) },
@@ -2319,6 +2330,40 @@ void PrintConfigDef::init_fff_params()
def->max = 100;
def->set_default_value(new ConfigOptionPercent(100));
auto def_top_fill_order = def = this->add("top_surface_fill_order", coEnum);
def->label = L("Top surface fill order");
def->category = L("Strength");
def->tooltip = L("Direction in which top surfaces are filled when using a center-based pattern "
"(Concentric, Archimedean Chords, Octagram Spiral).\n"
"Outward starts at the center of the surface, so any excess material is pushed "
"towards the edge where it is least visible. Inward starts at the edge and ends "
"with the tight curves at the center.\n"
"Default uses shortest-path ordering, which may run in either direction.");
def->enum_keys_map = &ConfigOptionEnum<SurfaceFillOrder>::get_enum_values();
def->enum_values.push_back("default");
def->enum_values.push_back("outward");
def->enum_values.push_back("inward");
def->enum_labels.push_back(L("Default"));
def->enum_labels.push_back(L("Outward"));
def->enum_labels.push_back(L("Inward"));
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionEnum<SurfaceFillOrder>(SurfaceFillOrder::Default));
def = this->add("bottom_surface_fill_order", coEnum);
def->label = L("Bottom surface fill order");
def->category = L("Strength");
def->tooltip = L("Direction in which bottom surfaces are filled when using a center-based pattern "
"(Concentric, Archimedean Chords, Octagram Spiral).\n"
"Inward starts each surface with the wider outer curves, which improves first layer "
"adhesion on build plates where the tight curves at the center may not stick. "
"Outward starts at the center, pushing any excess material towards the edge.\n"
"Default uses shortest-path ordering, which may run in either direction.");
def->enum_keys_map = &ConfigOptionEnum<SurfaceFillOrder>::get_enum_values();
def->enum_values = def_top_fill_order->enum_values;
def->enum_labels = def_top_fill_order->enum_labels;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionEnum<SurfaceFillOrder>(SurfaceFillOrder::Default));
def = this->add("internal_solid_infill_pattern", coEnum);
def->label = L("Internal solid infill pattern");
def->category = L("Strength");
@@ -4602,11 +4647,6 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionInt(2));
// ORCA: special flag for flow rate calibration
def = this->add("calib_flowrate_topinfill_special_order", coBool);
def->mode = comDevelop;
def->set_default_value(new ConfigOptionBool(false));
def = this->add("ironing_type", coEnum);
def->label = L("Ironing type");
def->category = L("Quality");
@@ -5546,6 +5586,15 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionPercents { 100 });
// Orca:
def = this->add("retract_after_wipe", coPercents);
def->label = L("Retract amount after wipe");
def->tooltip = L("The length of fast retraction after wipe, relative to retraction length.\n"
"The value will be clamped by 100% minus the retract amount before the wipe value.");
def->sidetext = "%";
def->mode = comExpert;
def->set_default_value(new ConfigOptionPercents { 0 });
def = this->add("retract_when_changing_layer", coBools);
def->label = L("Retract on layer change");
def->tooltip = L("This forces a retraction on layer changes.");
@@ -7186,17 +7235,6 @@ void PrintConfigDef::init_fff_params()
def->min = 0;
def->set_default_value(new ConfigOptionFloat(0.6));
def = this->add("anisotropic_surfaces", coBool);
def->label = L("Anisotropic surfaces");
def->category = L("Strength");
def->tooltip = L("Anisotropic patterns on the top and bottom surfaces.\n"
"Co-directional printing mode will be applied. For certain patterns, omni-directional filling provides color "
"dispersion when using multi-colored or silk plastics.\n"
"This option disable the gap fill.\n"
"This option can increase a printing time.");
def->mode = comExpert;
def->set_default_value(new ConfigOptionBool(false));
def = this->add("separated_infills", coBool);
def->label = L("Separated infills");
def->category = L("Strength");
@@ -7987,17 +8025,44 @@ void PrintConfigDef::init_extruder_option_keys()
{
// ConfigOptionFloats, ConfigOptionPercents, ConfigOptionBools, ConfigOptionStrings
m_extruder_option_keys = {
"extruder_type", "nozzle_diameter", "default_nozzle_volume_type", "min_layer_height", "max_layer_height", "extruder_offset",
"extruder_printable_height", "nozzle_volume", "nozzle_type", "nozzle_flush_dataset",
"retraction_length", "z_hop", "z_hop_types", "travel_slope", "retract_lift_above", "retract_lift_below", "retract_lift_enforce", "retraction_speed", "deretraction_speed",
"retract_before_wipe", "retract_restart_extra", "retraction_minimum_travel", "wipe", "wipe_distance",
"retract_when_changing_layer", "retract_length_toolchange", "retract_restart_extra_toolchange", "extruder_colour",
"default_filament_profile","retraction_distances_when_cut","long_retractions_when_cut"
"default_filament_profile",
"default_nozzle_volume_type",
"deretraction_speed",
"extruder_colour",
"extruder_offset",
"extruder_printable_height",
"extruder_type",
"long_retractions_when_cut",
"max_layer_height",
"min_layer_height",
"nozzle_diameter",
"nozzle_flush_dataset",
"nozzle_type",
"nozzle_volume",
"retract_after_wipe",
"retract_before_wipe",
"retract_length_toolchange",
"retract_lift_above",
"retract_lift_below",
"retract_lift_enforce",
"retract_restart_extra",
"retract_restart_extra_toolchange",
"retract_when_changing_layer",
"retraction_distances_when_cut",
"retraction_length",
"retraction_minimum_travel",
"retraction_speed",
"travel_slope",
"wipe",
"wipe_distance",
"z_hop",
"z_hop_types"
};
m_extruder_retract_keys = {
"deretraction_speed",
"long_retractions_when_cut",
"retract_after_wipe",
"retract_before_wipe",
"retract_lift_above",
"retract_lift_below",
@@ -8020,17 +8085,40 @@ void PrintConfigDef::init_extruder_option_keys()
void PrintConfigDef::init_filament_option_keys()
{
m_filament_option_keys = {
"filament_diameter", "min_layer_height", "max_layer_height","volumetric_speed_coefficients",
"retraction_length", "z_hop", "z_hop_types", "retract_lift_above", "retract_lift_below", "retract_lift_enforce", "retraction_speed", "deretraction_speed",
"retract_before_wipe", "filament_retract_length_nc", "retract_restart_extra", "retraction_minimum_travel", "wipe", "wipe_distance",
"retract_when_changing_layer", "retract_length_toolchange", "retract_restart_extra_toolchange", "filament_colour",
"default_filament_profile","retraction_distances_when_cut","long_retractions_when_cut"/*,"filament_seam_gap"*/
"default_filament_profile",
"deretraction_speed",
"filament_colour",
"filament_diameter",
"filament_retract_length_nc",
// "filament_seam_gap",
"long_retractions_when_cut",
"max_layer_height",
"min_layer_height",
"retract_after_wipe",
"retract_before_wipe",
"retract_length_toolchange",
"retract_lift_above",
"retract_lift_below",
"retract_lift_enforce",
"retract_restart_extra",
"retract_restart_extra_toolchange",
"retract_when_changing_layer",
"retraction_distances_when_cut",
"retraction_length",
"retraction_minimum_travel",
"retraction_speed",
"volumetric_speed_coefficients",
"wipe",
"wipe_distance",
"z_hop",
"z_hop_types",
};
m_filament_retract_keys = {
"deretraction_speed",
"filament_retract_length_nc",
"long_retractions_when_cut",
"retract_after_wipe",
"retract_before_wipe",
"retract_lift_above",
"retract_lift_below",
@@ -8928,6 +9016,8 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
"internal_bridge_support_thickness", "top_area_threshold", "reduce_wall_solid_infill","filament_load_time","filament_unload_time",
"smooth_coefficient", "overhang_totally_speed", "silent_mode",
"overhang_speed_classic", "filament_prime_volume",
"calib_flowrate_topinfill_special_order",
"anisotropic_surfaces", // superseded by top_surface_fill_order / bottom_surface_fill_order
};
if (ignore.find(opt_key) != ignore.end()) {
@@ -9074,6 +9164,9 @@ std::set<std::string> filament_options_with_variant = {
//BBS
"filament_wipe_distance",
"filament_retract_before_wipe",
// Orca
"filament_retract_after_wipe",
//BBS
"filament_long_retractions_when_cut",
"filament_retraction_distances_when_cut",
"long_retractions_when_ec",
@@ -9124,6 +9217,8 @@ std::set<std::string> printer_options_with_variant_1 = {
"wipe",
"wipe_distance",
"retract_before_wipe",
// Orca:
"retract_after_wipe",
"retract_length_toolchange",
"retract_restart_extra",
"retract_restart_extra_toolchange",