About a week ago I saw Daniel Piker’s GH file for changing a smooth surface into one with lots of wrinkles. I thought that would be a nice way to enhance the outside surface of one of the bowl shapes I printed years ago. So after some tweaking I was able to print this:
To make the print I used Orca slicer’s Split feature to trim off the wrinkle parts that extended above and below the plain bowl shape. Naturally that resulted in non-manifold edges that normally cause printing problems. But for some reason unknown to me the result printed OK. My guess is the open spaces were small enough to be below the slicer’s minimum resolution, so the were effectively invisible.
I’ve tried all sorts of things to fix the problem of the protruding spaces, and none of them have worked. (I even found the Rhino command to “fill mesh spaces” - but it didn’t fix these.) So I’m posting a very simple GH file that has the bowl shape and the wrinkles with the hope that someone can point me in the direction of method that will work without requiring tricks outside of GH/Rhino.
This is my GH file. Lock solver before you open it. The Kangaroo Solver is disabled, but even so the file takes some time to open. I’ve commented several groups to help you understand what’s going on. The righthand components are just my latest attempt to get something that works - but didn’t.
I tried that approach for trimming both the top and bottom edges of the mesh to coincide with the bowl’s top and bottom surfaces, but there were still tiny gaps due to the mesh wrinkles that resulted in very small naked edges.
This might incur a brief, perhaps not-so-painful wait:
For your plain bowl (it seems you have a closed nurbs solid), remove only the exterior face/wall.
For your wrinkly mesh, convert to SubD and then to nurbs with faces packed (do the conversion in rhino not grasshopper). This is where you take a short break
Trim a bit of the top so top naked edges are on the same plane. Then trim the bottoms, with a little more on the interior shape (bowl) to account for thickness.
Use PlanarSrf between the top pair of naked edges, then once for each of the bottom naked edges.
Join everything. If nothing was self-intersecting to begin with, you should be good to go.
I am happy to try if you share those two objects (bowl/wrinkly mesh) by themselves
Maybe with dendro plugin. You need refine the borders and those have to be flat , try to anchoring all the points to your borders first in the simulation to avoid the problematic result in the mesh and that could make ir easier.
If not cut in rhino.
This is only my second attempt at using Kangaroo, so I was unaware of an option to anchor points before the solver starts. Anchoring sounds like it will solve the problem. Thanks for letting me know about that.
You saved me several hours understanding how to use anchor points. Doing that helps a lot - but it’s still not a complete solution. Rhino still shows a bunch of naked edges on both top and bottom surfaces:
When my slicer corrects these it also closers the top, which of course makes the whole thing completely useless. But I’ve got some ideas about how to deal with this - so here’s hoping one of them will get things resolved. I’ll post again soon (I hope.)
Here’s another attempt: mesh the inner part of the Brep, trim the outside to have flat edges at the top and at the bottom (you can skip this part if you use plane constraints in Kangaroo during the simulation), and then make the remaining faces by connecting the naked edges. The tricky part is that inner and outer naked edges have different topologies, so you need to get clever. I devised a solution that uses the froGH plugin (because of a few components, including one for mesh report on naked and non-manifold edges).
I couldn’t get rid of a few naked and manifold edges, but I believe they can be easily fixed with MeshRepair in Rhino. There are self-intersecting faces I could not get rid of though.
PS: internalizing a lot of data (i.e. a mesh with lots of vertices) makes the definition sluggish, this is why I baked the geometries to a Rhino file.
Good grief! That works. I was beginning to think this was an impossible problem to solve. It looks like I’ve got a lot of learning to do about the intricacies of meshes and the software that is available to deal with them.
Up to this time I’ve tried really hard to avoid meshes for my 3D printing designs - basically because (1) the standard GH components have worked quite well for me, and (2) whenever I tried dealing with meshes I got results that were often confusing and counter-intuitive.
You used a big bunch of GH components I’ve never used before (or even knew about), so it looks like a fair amount of time before I can get one my more complex base shapes that I really want to do this with.
It does seem a bit odd to me that this problem exists at all. I find it had to imagine that what I’m trying to do here is so unique that no one at McNeel has ever fixed it - even though I don’t know exactly what the it is.
Thanks again for taking the time and effort to resolve this.
Thanks - that’s an interesting solution I don’t completely understand yet. The inside is supposed to be smooth, but I think I can figure out how to make that happen.
I’d say Yes if the final print was not going to be used for anything, but for use as a planter or a container for things like chips, nuts, or candy a smooth interior is better for cleaning.
I spent a fair amount of time dissecting the prior 2 solutions so I could understand them. I made several discoveries that I’ll describe below; I think both of them contributed to the result I’m printing now.
Trimesh really makes a difference. Here’s a pic of what the bare bowl looks like after meshing it with GH Mesh:
Notice the angular shapes at the curvy end - you can also see these in my first post above. Needless to say I wasn’t too happy with this result. But after I saw the post that used Trimesh as input to the Kangaroo solver it occurred to me to use that for the entire base shape as well. This was the results:
That will take about 10.5 hours to print due to all the tiny print moves to make the wrinkles.
Even though the final result looks good it still contains 2919 non-manifold edges. This is the case even though my GH file uses the mesh Weld function. From what I can tell Rhino just can’t fix all the mesh issues with this geometry. But Orca slicer can - almost. Orca has a built-in mesh repair tool that can fix most any kind of mesh error, and it does fix the above 2919 non-manifold edges.
Almost.
What actually happens is the bottom of the sliced result is about 1.2 mm above what Z=0 should be. I think this is caused by some of the bumps at the bottom protruding below Z=0, even though Kangaroo has a constraint to maintain points along the bottom edge. At any rate the resulting GCode works OK.
Here’s the final GH file I came up with. I’ll be using it to print a few more bowl shapes that are a bit more interesting. And of course thanks to everyone who contributed to this post - I would have given up without that help.