Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/CuraEngine.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Kuipers <t.kuipers@ultimaker.com>2020-04-29 11:15:15 +0300
committerTim Kuipers <t.kuipers@ultimaker.com>2020-04-29 11:15:15 +0300
commit1de0c0ae041f6c0beeeb5be51e2decd05ba41248 (patch)
treed356261451942b83c24b265a76e6f8a9fd02eef8
parent446e96838e4d8b8f9a97f9363265e8b2b86b1bb8 (diff)
prevent reduced width beams where interlocking structure meets boundaryinterlocking_carving
-rw-r--r--src/multiVolumes.cpp8
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"))
{