It’s unfortunate that it’s not the shape I’m after
Simplifying yellow
After the previous partial success I examined yellow and noticed this extra edge on the rounded corner faces. I believe it’s there because I used the following face for sweeping. But to be honest I don’t understand why it’s generated at all especially because it’s not visible on the straight side faces.
The original face with multiple vertical lines on the right inner edge. I did it this way because my reference point was on the axis and I wanted to extrude the lower part a little bit below that.
The funny thing is that I was able to merge these bodies earlier but after undoing some stuff I accidentally exited from the project and when I reopened it I lost the redo steps. But before I exited I exported the body so I have a reference and proof that it worked earlier. It’s too bad I cannot reimport the .3mf file to compare the bodies.
Anyway, I attached the project and the earlier export (in .zip because i’m not allowed to upload .3mf files):
this is the simplified version of my original problem, you can find the sketches and bodies i used to create an intersection for the green and red elements. merging failed.
case 2
case 2/a: these are even more simple test cases consisting a cuboid and two cylinders cut in half. all elements are on the same vertical plane, front and back faces are aligned together. merging was successful.
case 2/b: the half cylinders are slid a bit outside of the vertical plane to the front. merging failed.
case 2/c: the half cylinders are skewed to the front but the bottom of the bodies are still aligned to the face of the cuboid. merging was successful.
case 2/d: same skewed cylinders as in 2/c but this time they’re moved to the front like in case 2/b. merging failed.
case 3
case 3/a: i was wondering what if the green and red bodies don’t touch each other so i added a space between them. this is the only change compared to 2/a. (and there is extra space on the two sides but i think it’s not connected to this problem). merging was successful.
case 3/b: half cylinders moved to the front. merging was successful.
case 3/c: added skewing like in 2/c. merging was successful.
case 3/d: moved the skewed elements to the front like in 2/d. merging was successful.
conclusion
feels like skewing doesn’t add anything to this case and since the space between my elements solved the issue i’m gonna leave these cases out from the following tests.
case 4
case 4/a: i wanted to try more shapes to see if the circle (case 2 & 3) or spline (case 1) is the problem. in this series i used rectangles/cuboids. merging was successful.
case 4/b: moved the elements to the front like in all “b” cases. merging was successful.
case 5
case 5/a: there was no space between the rectangles so i wanted to try triangles as well. merging was successful.
case 5/b: moved the elements to the front like in all “b” cases. merging failed.
case 6
case 6/a: i revisited the failing test cases but this time i used two separate lines at the bottom for the two sketches instead of one. you can check the floating sketches in front of all “a” cases. i did this because the only connection between the green and red shapes was using the same bottom line (apart from the joined corners of the extruded shapes). merging was successful.
case 6/b: merging failed.
case 7
case 7/a: same experiment with the sketch: splitting the bottom line into two to have a separate one for each shape. merging was successful.
case 7/b: merging failed.
results
aligned
moved out
skewed
moved out + skewed
circles
circles /w space between
rectangles
-
-
triangles
-
-
circles /w separate sketch lines
-
-
triangles /w separate sketch lines
-
-
results are the same in all three environments i have access to:
Hi @gex ,
This is not exactly what you want, but close
When I looked at your model, it seems to be an “edge case” (my term, not Sharp’s). I have had problems when doing Boolean ops on bodies that seem to have coincident edges. Like perhaps Shapr thinks it is making a body that is not “water tight.” (I don’t remember the correct term:-)
Anyway, I did the following:
merge the red into the yellow body
move the green .01mm down into the yellow
merge the green into the yellow gex.shapr (524.6 KB)
First of all, I love the amount of work you put into your investigation. Its always nice to see motivated people looking to learn more about the nature of their problem and putting in effort
The biggest clue as to what the issue is already in your experiments and initial problem statement:
I can even mix green and red bodies unless they’re not on the same side of yellow
I was wondering what if the green and red bodies don’t touch each other so i added a space between them. this is the only change compared to 2/a. (and there is extra space on the two sides but i think it’s not connected to this problem). merging was successful.
The problem with the original union, and subsequent smaller reproductions is that you are asking Shapr to create non manifold geometry by creating two solid regions which touch in a non-manifold edge:
If you were to merge these three bodies together the resulting solid would have an edge which has 4 neighbour faces, making in non-manifold. Such topology cannot exist in real life, thus Shapr refuses to do the merging for you.
My best guess is that the model used to work because you had the flat yellow surface on the screenshot slightly higher in the past, so that it would cover the problematic region like this:
You don’t need to raise the blue face so high: Making it so that it concides with the bottom flat faces of the green and red bodies would be sufficient too ahe planar red, green and blue faces touching would be deleted anyway as the three shapes are unioned together to represent a single volume. In this body the problematic edge would have only two neighbour faces once more.
one thing that could be improved is this boolean operation failed error message. it’s too generic and after reading this community forum for a few weeks i think i’m not the only one who is often confused by it. a little hint would be helpful, non-manifold edge found, overlapping faces found, etc. even just seeing the term non-manifold would have prevented this whole thread and i would have used google/chatgpt/whatever instead.
anyway, thank you @David_M very much for the detailed explanation, it was useful and it helped a lot!
i also opened my exported file with a slicer app and you were right, the model i exported earlier was slightly different and i didn’t have this edge with 4 faces.
I do agree that we could do better to surface some of the internal errors in a more digestible manner, but in particular boolean operations can go wrong in myriad of ways. Covering them all in a way that is understandable or results in a searchable term in all of the localised languages is a herculean task that we just cannot undertake right now with the heavy focus on HBPM.
While I cannot show/tell any specifics, I can probably share that we also feel the need for improved/more intuitive diagnostics with the additional complexity of HBPM, and will likely look into possible improvements in the future.