diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index e44ae633977..5f341cf7e6f 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -10175,8 +10175,8 @@ std::optional GCode::texture_mapping_seam_hiding_hint(const const float max_local_edge_tangent_delta_mm = std::max(0.75f, base_outer_width_mm * 1.5f); const float max_local_edge_normal_delta_mm = std::max(1.25f, base_outer_width_mm * 3.f + 2.f * max_allowed_distance_mm); - const Point &a = points[segment_index - 1]; - const Point &b = points[segment_index]; + const Point3 &a = points[segment_index - 1]; + const Point3 &b = points[segment_index]; const double ax = double(a.x()); const double ay = double(a.y()); const double bx = double(b.x()); diff --git a/src/libslic3r/GCode/ToolOrdering.cpp b/src/libslic3r/GCode/ToolOrdering.cpp index aae5cc3bd7e..b32e4233e13 100644 --- a/src/libslic3r/GCode/ToolOrdering.cpp +++ b/src/libslic3r/GCode/ToolOrdering.cpp @@ -870,7 +870,9 @@ void ToolOrdering::collect_extruders(const PrintObject &object, const std::vecto } bool has_infill = false; - bool has_solid_infill = false; + bool has_internal_solid = false; + bool has_top_solid_surface = false; + bool has_bottom_surface = false; bool has_texture_override_fill = false; bool something_nonoverriddable = false; for (const ExtrusionEntity *ee : layerm->fills.entities) { @@ -909,14 +911,18 @@ void ToolOrdering::collect_extruders(const PrintObject &object, const std::vecto if (something_nonoverriddable || !m_print_config_ptr) { if (extruder_override == 0) { - if (has_solid_infill) - append_layer_filament(region.config().internal_solid_filament_id); + if (has_internal_solid) + append_layer_filament(region.config().internal_solid_filament_id); + if (has_top_solid_surface) + append_layer_filament(region.config().top_surface_filament_id); + if (has_bottom_surface) + append_layer_filament(region.config().bottom_surface_filament_id); if (has_infill) append_layer_filament(region.config().sparse_infill_filament_id); - } else if (has_solid_infill || has_infill) + } else if (has_internal_solid || has_top_solid_surface || has_bottom_surface || has_infill) append_layer_filament(extruder_override); } - if (has_solid_infill || has_infill || has_texture_override_fill) + if (has_internal_solid || has_top_solid_surface || has_bottom_surface || has_infill || has_texture_override_fill) layer_tools.has_object = true; } layerCount++;