mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-15 23:12:08 +00:00
Merge branch 'main' into dev/extruder-toggle
This commit is contained in:
@@ -5734,6 +5734,9 @@ std::string GCode::extrude_loop(const ExtrusionLoop& loop_ref,
|
||||
// if polyline was shorter than the clipping distance we'd get a null polyline, so
|
||||
// we discard it in that case
|
||||
const double seam_gap = scale_(m_config.seam_gap.get_abs_value(nozzle_diameter));
|
||||
const bool seam_gap_applied = enable_seam_slope || m_enable_loop_clipping;
|
||||
const double seam_gap_distance_mm = seam_gap_applied ? unscale_(seam_gap) : 0.0;
|
||||
double seam_scarf_distance_mm = 0.0;
|
||||
const double clip_length = m_enable_loop_clipping && !enable_seam_slope ? seam_gap : 0;
|
||||
|
||||
// get paths
|
||||
@@ -5882,6 +5885,7 @@ std::string GCode::extrude_loop(const ExtrusionLoop& loop_ref,
|
||||
const double slope_min_length = slope_entire_loop ? loop_length : std::min(m_config.seam_slope_min_length.value, loop_length);
|
||||
const int slope_steps = m_config.seam_slope_steps;
|
||||
const double slope_max_segment_length = scale_(slope_min_length / slope_steps);
|
||||
seam_scarf_distance_mm = slope_min_length;
|
||||
|
||||
// Calculate the sloped loop
|
||||
ExtrusionLoopSloped new_loop(paths, seam_gap, slope_min_length, slope_max_segment_length, start_slope_ratio, loop.loop_role());
|
||||
@@ -5906,6 +5910,11 @@ std::string GCode::extrude_loop(const ExtrusionLoop& loop_ref,
|
||||
}
|
||||
}
|
||||
|
||||
if (description == "perimeter") {
|
||||
m_processor.result().print_statistics.total_seam_gap_distance += static_cast<float>(seam_gap_distance_mm);
|
||||
m_processor.result().print_statistics.total_seam_scarf_distance += static_cast<float>(seam_scarf_distance_mm);
|
||||
}
|
||||
|
||||
// BBS
|
||||
if (m_wipe.enable && FILAMENT_CONFIG(wipe)) {
|
||||
m_wipe.path = Polyline();
|
||||
|
||||
Reference in New Issue
Block a user