Merge branch 'main' into belt/baseChanges

This commit is contained in:
Rodrigo Faselli
2026-06-04 17:32:35 -03:00
committed by GitHub
155 changed files with 26628 additions and 4804 deletions
+18 -2
View File
@@ -1289,7 +1289,9 @@ bool PrintObject::invalidate_state_by_config_options(
|| opt_key == "ensure_vertical_shell_thickness"
|| opt_key == "bridge_angle"
|| opt_key == "internal_bridge_angle" // ORCA: Internal bridge angle override
|| opt_key == "relative_bridge_angle" // ORCA: Relative bridge angle
//BBS
|| opt_key == "bridge_line_width"
|| opt_key == "bridge_density"
|| opt_key == "internal_bridge_density") {
steps.emplace_back(posPrepareInfill);
@@ -1314,6 +1316,9 @@ bool PrintObject::invalidate_state_by_config_options(
|| opt_key == "infill_shift_step"
|| opt_key == "sparse_infill_rotate_template"
|| opt_key == "solid_infill_rotate_template"
|| opt_key == "lightning_overhang_angle"
|| opt_key == "lightning_prune_angle"
|| opt_key == "lightning_straightening_angle"
|| opt_key == "skeleton_infill_density"
|| opt_key == "skin_infill_density"
|| opt_key == "infill_lock_depth"
@@ -3235,8 +3240,19 @@ void PrintObject::bridge_over_infill()
}
// ORCA: Internal bridge angle override
if (candidate.region->region().config().internal_bridge_angle > 0)
bridging_angle = candidate.region->region().config().internal_bridge_angle.value * PI / 180.0; // Convert degrees to radians
if (candidate.region->region().config().internal_bridge_angle.value > 0) {
const auto &region_config = candidate.region->region().config();
const double custom_angle_rad = Geometry::deg2rad(region_config.internal_bridge_angle.value);
if (region_config.relative_bridge_angle.value)
bridging_angle += custom_angle_rad;
else {
bridging_angle = custom_angle_rad;
if (region_config.align_infill_direction_to_model) {
auto m = po->trafo().matrix();
bridging_angle += std::atan2((double)m(1, 0), (double)m(0, 0));
}
}
}
boundary_plines.insert(boundary_plines.end(), anchors.begin(), anchors.end());
if (!lightning_area.empty() && !intersection(area_to_be_bridge, lightning_area).empty()) {