Grasshopper

algorithmic modeling for Rhino

Good morning (from San Jose, CA :)

I was wondering if there was a script or some clever way of quickly removing extraneous geometry inside a solid to avoid problems slicing or 3D printing.  To better understand the problem i have attached an image, is-2_rightSize.jpg.  As you can see there are polygons inside the solid that i need to remove to provide a hollow shell to a program like Simplify 3D. Because of the complexity of the solid doing this programmatically is best.  Cinema 4d has a plugin called MagicMerge that does this, but only on it's primitives, eg. spheres, cylinders.  

Many thanks

-randy

Views: 1565

Attachments:

Replies to This Discussion

Have you tried the Netfabb software? The free version will do some mesh processing to get files ready for 3d printing. Netfabb Private

There is an online service for repairing files which you could try if your file is not too big... Netfabb Cloud

Materialise Magics can do this sort of thing too but it's expensive software. If you are using a 3d printing service then many do have the Magics software and might be able to do this for you.

If the bits inside your model are seperate shells then there might be a way of removing them with GH but it they are just protrusions then it will be hard to differentiate what should be removed and what should be kept.

Keeping the solution inside GH is desirable.  This is a GH forum and being new to the application, I would love to learn from the community.  You mention shells vs. protrusions. Being fractal-like the form is composed of smaller bits of itself.  The parent form can be seen as a shell with smaller shells of itself protruding from it's surface.  Perhaps one possible avenue is to use the known radius of the largest sphere to delete polygons about it's origin.

I will also look into Netfabb.  Thanks.

One way the Magics software deals with this kind of problem is a function called "Shrink Wrap" which shrinkwraps a new mesh around the original. I wonder whether Kangaroo could do something like this by starting with a sphere that encompasses the whole mesh and deflating it onto the mesh so it becomes the same as just the outer most surface? I am just thinking out loud here though!

I like the idea.  After a cursory look at kangaroo/shrinkwrap I don't think it will work.  It's very similar to Cinema 4d's metaball and probably won't provide a resolution high enough to emulate the bounded geometry faithfully enough...still, I could be wrong and this may work yet :)

Yeah, you might need to start off with a huge mesh that would take ages to compute the deflate (if it's even possible)

Did you try the Netfabb online file repair?

On my way to Netfabb i found and tried Meshlab.  It stopped working during computation.  So I played with Cinema4D's MagicMerge again and made it work.

I baked out the form in 6 parts and merged in Cinema piecewise. After a few bumps in the road, like Cinema not playing well with Rhino's normal and UVW tags, I had success.  3 merges later, from the smallest upward, did the trick.

I'll continue to look for a better solution as skills (being optimistic ;) and tools improve. Thanks for the advice.

Nice! So are you going to laser sinter this print?

You might need to hollow it out next and add holes to remove the material fromthe middle!

I plan on doing an investment cast in bronze of it's 3d printout.  To melt out the plastic from the cast, it's placed in an oven at 900 degrees F for more than 10 hours.  The result should be something like this...

Sounds great. I believe you can actually 3d print a type of sand to make moulds directly for casting too. The sand is stuck together layer by layer. This might work out cheaper than printing a master that gets melted.

Because your model is solid, a 3d print service may ask that you hollow it out and add holes to remove the unused print material from the centre. If it is printed solid it may warp and will use a huge amount of material.

However you do it, it would be great to see a photo of the finished piece!

The company that does ceramic investment mold 3D printing actually went public but then became a penny stock but seems to be still around:

http://www.soligen.com

Rhino/Grasshopper just sucks at Boolean unions, period, rather pathetically in that so many other programs can do huge arrays of casually placed solids indeed like Magics, or Geomagic Freeform that just fixes everything automatically upon importing as 3D pixel clay that you need lots of computer RAM for before you then smooth slightly to rid import artifacts (aliasing) and then Reduce For Export.

You also have symmetry on your side so fixing the Booleans at the beginning before arraying the parts around an icosahedron would also work.

The problem with Booleans is how Rhino freaks out from perfectly kissing surfaces where the tolerance settings has allowed an ill defined intersection between two solids, so if you create intersection curves you can usually see the problem as a crazy line instead of a very simple loop. Adding additional overlap is the hack you need, just moving the smaller pieces into the main body a bit, and 3D print services can demand that too, for the same reason, but mathematically, it's just the mathematical idealists behind Rhino not caring enough about us real users.

Given how each point in space is so terribly easily defined as being either YES inside solids or NO part of empty outside space, a slow but reliable Boolean union to create at least a final mesh should be included in Rhino, now one of the world's most popular workhorse programs. Maybe the algorithms are patented or are trade secrets? Certainly Geomagic won't likely release a Rhino plugin to undermine their $8500 Freeform niche, with most customers opting for the $30K version that includes NURBS.

I've been searching for a robust even rough mesh alternative to Rhino Booleans for a long time. I'd like to feed them into Kangaroo MeshMachine to then relax them slightly via physical tension. I tried arrays of points to fill each solid followed by some sort of culling or shrink wrapping but it is terribly slow and or includes some catch-22. Shrink wrap won't work for things with holes and tunnels, even for just a torus, I note. Marching cubes may help in some way but I don't know how to set it up not translate libraries into understandable Python scripts either.

Conversion to mesh then offsetting each one or scaling each up slightly might give you well defined overlap too. But that won't fix the general problem where solids only kiss at certain locations as curved surfaces become tangent briefly, causing the intersection curves to wig out.

Rhino Booleans are really just automated split and join operations that really do use intersection curves in the process, so that's where you can debug it visually, just by adding an intersection step in Grasshopper.

RSS

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service