diff options
Diffstat (limited to 'src/libslic3r/LayerRegion.cpp')
-rw-r--r-- | src/libslic3r/LayerRegion.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp index 2e7bc10c2..4f4177967 100644 --- a/src/libslic3r/LayerRegion.cpp +++ b/src/libslic3r/LayerRegion.cpp @@ -32,19 +32,20 @@ Flow LayerRegion::bridging_flow(FlowRole role) const const PrintRegionConfig ®ion_config = region.config(); const PrintObject &print_object = *this->layer()->object(); // Here this->extruder(role) - 1 may underflow to MAX_INT, but then the get_at() will follback to zero'th element, so everything is all right. - auto nozzle_diameter = float(print_object.print()->config().nozzle_diameter.get_at(region.extruder(role, *this->layer()->object()) - 1)); + float nozzle_diameter = float(print_object.print()->config().nozzle_diameter.get_at(region.extruder(role, *this->layer()->object()) - 1)); + double diameter = 0; if (region_config.bridge_type == BridgeType::btFromFlow) { Flow reference_flow = flow(role); - double diameter = sqrt(4 * reference_flow.mm3_per_mm() / PI); - return Flow::bridging_flow(float(diameter), nozzle_diameter); + diameter = sqrt(4 * reference_flow.mm3_per_mm() / PI); } else if (region_config.bridge_type == BridgeType::btFromHeight) { - return Flow::bridging_flow(float(m_layer->height), nozzle_diameter); + diameter = m_layer->height; } else /*if (region_config.bridge_type == BridgeType::btFromNozzle)*/ { // The good Slic3r way: Use rounded extrusions. // Get the configured nozzle_diameter for the extruder associated to the flow role requested. // Applies default bridge spacing. - return Flow::bridging_flow(float(sqrt(region_config.bridge_flow_ratio.get_abs_value(1.))) * nozzle_diameter, nozzle_diameter); + diameter = nozzle_diameter; } + return Flow::bridging_flow(float(sqrt(region_config.bridge_flow_ratio.get_abs_value(1.)) * diameter) , nozzle_diameter); /* else { // The same way as other slicers: Use normal extrusions. Apply bridge_flow_ratio while maintaining the original spacing. return this->flow(role).with_flow_ratio(region_config.bridge_flow_ratio, overlap_percent); |