Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions src/libslic3r/Support/SupportCommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1918,15 +1918,17 @@ void generate_support_toolpaths(
// support interface ironing related generation from Orca: Generate iron toolpath for contact layer
if (!layer_cache.polys_to_iron.empty() && support_params.enable_support_ironing) {
auto ironing_fill = std::unique_ptr<Fill>(Fill::new_from_type(support_params.ironing_pattern));
ironing_fill->set_bounding_box(bbox_object);

ExPolygons polys_to_iron = union_safety_offset_ex(layer_cache.polys_to_iron);
// Calculate bounding box from actual support interface polygons instead of using hardcoded tiny bbox
BoundingBox actual_bbox = get_extents(polys_to_iron);
ironing_fill->set_bounding_box(actual_bbox);
ironing_fill->layer_id = support_layer.id();
ironing_fill->z = support_layer.print_z;
ironing_fill->overlap = 0;
ironing_fill->angle = support_params.ironing_angle;
ironing_fill->spacing = support_params.ironing_line_spacing;
ironing_fill->link_max_length = (coord_t) scale_(3. * ironing_fill->spacing);

ExPolygons polys_to_iron = union_safety_offset_ex(layer_cache.polys_to_iron);
layer_cache.polys_to_iron.clear();

// Find the layer above that directly overlaps current layer, clip the overlapped part
Expand Down
4 changes: 3 additions & 1 deletion src/libslic3r/Support/TreeSupport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1529,7 +1529,9 @@ void TreeSupport::generate_toolpaths()
// support interface ironing related generation, tree support logic
if (m_support_params.enable_support_ironing && !unioned_expolygons.empty()) {
auto ironing_fill = std::unique_ptr<Fill>(Fill::new_from_type(m_support_params.ironing_pattern));
ironing_fill->set_bounding_box(bbox_object);
// Calculate bounding box from actual support interface polygons instead of using hardcoded tiny bbox
BoundingBox actual_bbox = get_extents(unioned_expolygons);
ironing_fill->set_bounding_box(actual_bbox);
ironing_fill->layer_id = ts_layer->id();
ironing_fill->z = ts_layer->print_z;
ironing_fill->overlap = 0;
Expand Down
Loading