diff options
author | Tim Kuipers <t.kuipers@ultimaker.com> | 2020-04-29 11:15:15 +0300 |
---|---|---|
committer | Tim Kuipers <t.kuipers@ultimaker.com> | 2020-04-29 11:15:15 +0300 |
commit | 1de0c0ae041f6c0beeeb5be51e2decd05ba41248 (patch) | |
tree | d356261451942b83c24b265a76e6f8a9fd02eef8 | |
parent | 446e96838e4d8b8f9a97f9363265e8b2b86b1bb8 (diff) |
prevent reduced width beams where interlocking structure meets boundaryinterlocking_carving
-rw-r--r-- | src/multiVolumes.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/multiVolumes.cpp b/src/multiVolumes.cpp index 640908dfb..e33804d5a 100644 --- a/src/multiVolumes.cpp +++ b/src/multiVolumes.cpp @@ -93,8 +93,12 @@ void carveMultipleVolumes(std::vector<Slicer*> &volumes) layer1_lines.applyMatrix(rotation_matrix.inverse()); } - layer2.polygons = layer2.polygons.difference(layer1_lines); - layer1.polygons = layer1.polygons.difference(layer2.polygons); + coord_t half_min_width = MM2INT(0.6) / 2; + layer1_lines = layer1_lines.offset(-half_min_width).offset(half_min_width); + Polygons layer2_safe_polygons = layer2.polygons.difference(layer1_lines); + layer2_safe_polygons = layer2_safe_polygons.offset(-half_min_width).offset(half_min_width); + layer1.polygons = layer1.polygons.difference(layer2_safe_polygons); + layer2.polygons = layer2.polygons.difference(layer1.polygons); } else if (alternate_carve_order && layerNr % 2 == 0 && volume_1.mesh->settings.get<int>("infill_mesh_order") == volume_2.mesh->settings.get<int>("infill_mesh_order")) { |