Hello! This is my first post onto these forums, and I am quite new to rhino as well so please forgive my errors! I’m currently trying to deform some meshes using kangaroo within grasshopper and I’m having trouble applying material constants (such as Young’s Modulus) to certain portions of the mesh. I’m familiar with the edgelenths constraints, but I need different portions of the mesh to have different compression and elastic qualities as this is supposed to be modelling a biological system. Additionally, if anyone would know the answer to this that would be amazing: I’m having trouble using softbodycollide; I have a mesh inside of another that’s supposed to be applying an internal force, but it just explodes the larger, external mesh instantly, even if I set the force to 0. I assume you cannot put meshes internal to one another using softbodycollide; is there another method I can use to do this? I apologize for all the questions, but any assistance would be greatly appreciated! Thank you!
Hi Caleb,
Some image or file of what you are trying to do/where you’ve got to so far might be helpful.
Yes, SoftBodyCollide only allows for meshes which are the exterior of a solid.
One way you could still use this to simulate one body fully contained in another would be to make the outer body a solid with an interior void:
contained_softbody.gh (40.1 KB)
Daniel,
Thanks so much for the reply! The external solid and internal void would be a great way to go about this I believe. Do you have any advice as to how to transform a given mesh into a solid external only structure? I have attached snippets of the files of the work I have done below. I am quite new to the program still so I’m a bit stuck on what I need to do. Basically, I am trying to deform the stomach meshes with a mesh internal to the stomach; OR using a point external is another route I have tried, but I can’t seem to get the material properties correct around the application of the force or the proper force falloff. If you’re able to give any guidance in this regard, that would be super helpful. Thank you!
Stomach Smoothed with Kangaroo.3dm (404.4 KB)
Better Stomach Testing.gh (9.9 KB)
To turn a mesh into a void within a larger solid, you flip the mesh so it is inside-out, make a mesh box enclosing the shape, then do a Mesh Join
on the inside-out mesh and the box mesh. This is shown in the top left part of the file in my last post.
Here it is connected to your file:
Better Stomach Testing.gh (187.8 KB)
There’s a lot that’s still unclear here though. Does the small object also need to deform, or could it be a simpler rigid capsule? This would be faster to simulate. What sort of resistance to movement and deformation does the stomach mesh need to have? Length constraints alone will make it act like a net floating in space, free to move and stretch with the only limitation being that the edges stay the same length. In the file above I included some weak anchors, loosely holding the mesh in the shape and position it starts in.
@Caleb_Smith is this a stomach?
Daniel,
I cannot thank you enough for your help with this! This instance works much better than what I had been doing before. The capsule itself indeed can be a rigid body, and I was about to make that change myself. The next mentioning of the resistances to deformation was one of my original problems. I have literature for the resistances needed at different points within the stomach via its connections to other organs. The only problem is that it varies across the mesh itself due to different biological makeup at different sections. Is it possible within grasshopper/rhino to make different parts of the same mesh have different resistances and deformation properties?
Again, your help in this matter is much appreciated and I’m glad to have some guidance as I’ve been quite stuck and this isn’t much my area of expertise.
Martin,
Hello! Yes, this is a mesh of a stomach I imported into rhino using 3D Slicer based on real data.