Make solid from a surface

Hi all!

I have a new problem with the model for my masterproject.
I want to try something else with my grasshopper script but I need a solid in stead of a surface now.

The 2 snake shapes should be solids. Tried different things but nothing worked untill now…
Anyone knows a solution?
3D model.3dm (649.9 KB)

things I already tried:

  • cap
  • trim
  • boolean
  • write a script to make the shape in grashopper in stead of in rhino

Normally something like Cap should work to close the bottom of the surfaces, but they are not perfectly flat and planar. This is because although your rails are flat and on the 0 plane, the ends of your profile sections are not. Perhaps you could fix them so they are, in that case the bottom edge of your surface should also be flat and the surface objects will cap into solids.

Otherwise I suppose you could create a plane surface high enough above 0 (in this case at least 0.6 units) to be able to cleanly trim the bottom off flat, then you could use the BoundaryVolume component with the plane and the “snake” surfaces to create a solid in GH.

HTH, --Mitch

thank you for your help ! The cap works now.
Now I want to generate points IN the snake volume, when I start writing the grasshopper script it always generates points outside the volume…Any suggestions here?3D model_2.3dm (387.6 KB)

Well, the PopulateGeometry component only puts points ON the Brep surface. I’m not an expert on how to do this, but if you want points inside, one way would be to get the bounding box of the object, Populate3D the bounding box, then from the result choose only the points which are inside with the BrepInclusion component. The disadvantage with this method is that you don’t know exactly how many points you will end up with. There are some workarounds to this I can think of, but perhaps someone with more experience in this area has a better way to get an exact number of random points inside an arbitrary volume.


Thanks for your help! it seems that I can use this script. What is the Breplnc ? can’t find it :slight_smile:

BrepInc is “Point in Brep” under Surface>Analysis. That returns a list of True/False values which correspond with whether the point is inside or outside the Brep. That plugs into a Dispatch component (Sets>List) which takes the original list of all points and the list of True/False values and separates the point list into two lists, “in” and “out” which are returned in outputs “A” and “B”.


Thank you !! it worked :slight_smile: