Merge remote-tracking branch 'upstream/main' into belt/baseChanges

Conflicts resolved in src/libslic3r/GCode.cpp and src/slic3r/GUI/GUI_Factories.cpp.

GCode.cpp: combined upstream's air-filtration per-extruder gating
(activate_air_filtration_during_print / _on_completion), the new
extrusion-role-change gcode lambda, ZAA's path.z_contoured arc-fit
disable, raft-aware slow_down_layers branch, and Vec3d/Line3 ZAA
plumbing with the local belt-printer changes (path_on_first_layer,
effective_layer_index_for_point, should_disable_arc_fitting). All
auto-merged m_writer.X() calls converted to m_writer->X() to match
the local unique_ptr<GCodeWriter> refactor.

GUI_Factories.cpp: inserted brim_flow_ratio in the Support category
list and renumbered around the local build_plate_tilt_x/y entries.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
harrierpigeon
2026-05-09 16:23:41 -05:00
1592 changed files with 98535 additions and 8652 deletions

View File

@@ -1182,12 +1182,17 @@ void TreeSupport::create_tree_support_layers()
// Layers between the raft contacts and bottom of the object.
double dist_to_go = m_slicing_params.object_print_z_min - raft_print_z;
auto nsteps = int(ceil(dist_to_go / m_slicing_params.max_suport_layer_height));
double height = dist_to_go / nsteps;
for (int i = 0; i < nsteps; ++i) {
raft_print_z += height;
raft_slice_z = raft_print_z - height / 2;
m_object->add_tree_support_layer(layer_id++, height, raft_print_z, raft_slice_z);
// ORCA: Guard tiny residual raft-to-object gaps so the EPSILON-biased ceil()
// below cannot turn them into zero steps after floating-point accumulation.
if (dist_to_go > EPSILON) {
// ORCA: Bias by EPSILON so near-equal gaps do not get an extra split from FP noise.
auto nsteps = int(ceil((dist_to_go - EPSILON) / m_slicing_params.max_suport_layer_height));
double height = dist_to_go / nsteps;
for (int i = 0; i < nsteps; ++i) {
raft_print_z += height;
raft_slice_z = raft_print_z - height / 2;
m_object->add_tree_support_layer(layer_id++, height, raft_print_z, raft_slice_z);
}
}
m_raft_layers = layer_id;
}