Grasshopper

algorithmic modeling for Rhino

bone microstructure and voronoi diagram... need help

Hello,

I would like to generate the TRABECULAR area in bone (on the picture) using Voronoi diagram (or cell, whatever) in the Grasshopper software.

I have a solid part file generated from micro CT data. 

Can I have your comments on how to generate trabecular-like Voronoi structure ? 

Views: 25199

Replies to This Discussion

Correction: those are not cuboctahedrons above, damn you Google, and no, they don't fill space themselves either, but create octahedrons between them, just like regular tetrahedra do, and thus I'm rather confused, since all Delaunay mesh bodies are tetrahedrons with no octahedrons.

No wonder they have more lines per strut than my Kangaroo system that seems to emulate Bucky Fuller's "Octet Truss."

That's why they are usually so uneven looking and often ugly, when I see finite element analysis cross sections: it's not just using random points but the nature of the topology! Tetrahdrons simply do not regularly fill 3D space in an equilateral edge manner.

I'm now a bit confused, since the closest packing of spheres relies on hard surfaces, but the repulsion of point charge particles doesn't have that, so what geometry do they give when stuffed into a hard surface volume and why? They can't all end up on the inner surface since they then are too close together, energetically. If the enclosing surface had a real charge too, could it be adjusted to afford adaptive packing of particles in high curvature tight surface areas?

In your post above you have images of both cuboctahedra (6 square faces, 8 triangular faces) and truncated octahedra (6 square faces, 8 hexagonal faces).

Truncated octahedra are space-filling on their own. Lord Kelvin proposed this packing as the most efficient foam (in the sense of least surface area for cells of equal volume), but we now know it is not.

and as for this:

"Tetrahedrons simply do not regularly fill 3D space in an equilateral edge manner"

You are of course correct. Something I've long been fascinated by though is just how close they are to allowing a regular packing. This was one of the very first things I ever used computer 3-d modeling to investigate, and I wrote about it here : https://spacesymmetrystructure.wordpress.com/2007/07/20/an-unexpect...

(also, tetrahedra do actually pack neatly if you let the 3-d space curve a bit, just like you can fit 5 equilateral triangles around a vertex on a sphere to get an icosahedron. These ideas are used in Regge calculus in general relativity)

I can see Monsieur Yan,Wang,Levy, Lui take their math very very seriously!

Here's what the bunny would look like if I did obtain the Voronoi dual of what Tetgen already gave, including being surface feature adaptive to have smaller faces where's it's more curvy and tight:

http://forum.jotero.com/viewtopic.php?p=2759#2759

Then I would turn the lines into tree branches. Too uniform to be bone-like though, all the while also being a bit ugly in not having much accidental order or uniform units.

WOW ! .....that is so cool Nik!

You definitely deserve the CBA  (Coolest Bunny Award) :)
I don't know how do you find time to do all this math, and still find time to sleep?

When BoneStructureE.gh had finally loaded. The Screens Flipped several times between Rhino and Grasshopper, took about 5 min to load, And I presume Shelling was disabled, since we what to see the geometry inside the Bunny, Unfortunately there is nothing showing on the Rhino Screen.  I also tried the Command Line Program Running C.gh , and I get an Python error 

Kim:

The first glitch just requires some everyday debugging on your end but the second one is trickier since the script inside is hard wired to an STL file I believe I included a mesh generator of over to the side, and the Tetgen.exe location on my PC. Not exactly plug and play.

At least test if Python itself is working by replacing the whole contents with:

print "Hello"

...and pushing the Test button in the same editor window.

clearly the script can't find the .STL fileI don't know how to react to the 1st everyday debugging glitch :)

wow the bunny truly awesome

but where did you import the outer shape (contour) of bunny? 

can I import a 3D image like a rigid body made from SolidWorks and generate a set of random point within the volume of the rigid body ? 

Anything with a nice single mesh that incorporates a shell too instead of just curves just means I've used the surface component of Cocoon to include a NURBS polysurface as yet another meta-object to be included in the volume being surfaced.

To import from SolidWorks should be easy enough to get NURBS from it into Rhino and then you can do a bounding box around it and generate random points inside that, yes, then you can test which ones are inside the NURBS surface (assigned to a Brep in Grasshopper) and use the True/False result of that test to get rid of the others using list components.

Oh, but I would rather prefer without meshing around the surface of the object, because Hypermesh would be applied to do Finite Element Method on ABAQUS. 

Can I once generate COCOON mesh and then make the mesh undone for the final object ? 

Draw a picture of what you want and don't want. Hypermesh? ABAQUS? I don't know what they are or need. A mesh is a mesh, so are you asking for NURBS instead? Such a complex system as NURBS polysurfaces would be very burdensome for memory and speed. You can always just convert each mesh face to a NURBS surface using Rhino MeshToNurbs, for smaller models.

That's right. 

Eventully, COCOON is somehow mesh, as NURBS is. But I want the polygons (whether generated from COCOON or NURBS) to be small enough to make smoother surface. 

It is good to use NURBS, instead of COCOON, to generate small mesh around the surface?

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service