Hi! sorry if i repost my question but i wanna add the images of my model. I'm trying to build a 3D scaffold for trabecular bone. My question: How can measure the porosity of the scaffold? thank you so much!!!!
Solved! Go to Solution.
Hi! sorry if i repost my question but i wanna add the images of my model. I'm trying to build a 3D scaffold for trabecular bone. My question: How can measure the porosity of the scaffold? thank you so much!!!!
Solved! Go to Solution.
Solved by MagWeb. Go to Solution.
Your question is way too vague.
What does 'measure the porosity' mean? And of the whole model, or just of one trabecular column? What units are you expecting this to be in?
Your question is way too vague.
What does 'measure the porosity' mean? And of the whole model, or just of one trabecular column? What units are you expecting this to be in?
Sorry for the vague question. My goal is to build two type of scaffold for trabecular bone: both are parallelepipeds (10x10x3) mm but the first one must have a porosity of 70% and the second one 90% (for porosity i mean the percentage that characterizises the volume of pores within the entire volume to the detriment of the volume occupied by the trabeculae). I wanna Know if there is a method to check if my scaffold really had this porosity. I hope that this time i can explain my question. THANK YOU VERY VERY MUCH!!!!!
Sorry for the vague question. My goal is to build two type of scaffold for trabecular bone: both are parallelepipeds (10x10x3) mm but the first one must have a porosity of 70% and the second one 90% (for porosity i mean the percentage that characterizises the volume of pores within the entire volume to the detriment of the volume occupied by the trabeculae). I wanna Know if there is a method to check if my scaffold really had this porosity. I hope that this time i can explain my question. THANK YOU VERY VERY MUCH!!!!!
You can get the volume of an object using ANALYSIS/Stability.
Now if you got the volume of the bounding object (in the upper example: the bounding cuboid) and the volume of the porous object you can calculate the ratio porous/bounding object.
If you don't have the bounding object but only the porous object you might get it that way:
Gunter Weber
Triangle Artisan
You can get the volume of an object using ANALYSIS/Stability.
Now if you got the volume of the bounding object (in the upper example: the bounding cuboid) and the volume of the porous object you can calculate the ratio porous/bounding object.
If you don't have the bounding object but only the porous object you might get it that way:
Gunter Weber
Triangle Artisan
Thank you so much for your precious help! I haven't any volumes because i build the scaffold trough this steps:
1) import the cube with meshmix and then set the sizes of parallelepiped equal X=10mm, Z=10mm, Y=3mm.
2) the parameters that i must respect are the pores' diameter=0.5 mm and trabeculaes' thickness=0.2mm; to obtain the porosity i used the pattern "random primitive volumes" -->the element dimens (0.5mm) --> "subctract" -->"clip to surface". For the trabeculae i used the pattern "mesh+delaunay+duals edges"--> element dimens (0.2mm)--> Intersect--> clip to surface.
So i can obtain the volume of the bounding object with analysis/stability before use the patterns and then measure the volume of porous object with analysis/stability and in the end calculate percentage porosity trough ratio porous/bounding object?
Or i can first obtain the volume of bounding object trough analysis/stability before starting with the patterns. Then trough the step 1) in your message (set offset distance equal 0.6 right?) i can get the volume of porous object and calculate it with analysis/stability and in the end with the ratio porous/bounding object and get the effective porosity?
p.s= sorry a last question: because i have build two scaffolds with 70% and 90% of porosity, keeping the same pores and trabeculaes' size, can i change the percentage of porosiy trough REMESH--> RELATIVE DENSITY? THANKS A LOT AGAIN!!!!!!!
Thank you so much for your precious help! I haven't any volumes because i build the scaffold trough this steps:
1) import the cube with meshmix and then set the sizes of parallelepiped equal X=10mm, Z=10mm, Y=3mm.
2) the parameters that i must respect are the pores' diameter=0.5 mm and trabeculaes' thickness=0.2mm; to obtain the porosity i used the pattern "random primitive volumes" -->the element dimens (0.5mm) --> "subctract" -->"clip to surface". For the trabeculae i used the pattern "mesh+delaunay+duals edges"--> element dimens (0.2mm)--> Intersect--> clip to surface.
So i can obtain the volume of the bounding object with analysis/stability before use the patterns and then measure the volume of porous object with analysis/stability and in the end calculate percentage porosity trough ratio porous/bounding object?
Or i can first obtain the volume of bounding object trough analysis/stability before starting with the patterns. Then trough the step 1) in your message (set offset distance equal 0.6 right?) i can get the volume of porous object and calculate it with analysis/stability and in the end with the ratio porous/bounding object and get the effective porosity?
p.s= sorry a last question: because i have build two scaffolds with 70% and 90% of porosity, keeping the same pores and trabeculaes' size, can i change the percentage of porosiy trough REMESH--> RELATIVE DENSITY? THANKS A LOT AGAIN!!!!!!!
The workflow using MakeSolid was meant to reconstruct a bounding volume for complex shapes as you might get from scanning a realworld object (e.g. via CT reconstruction). In your case the bounding volume is a known one: It is 300 mm^3 (10x10x3). You do not need to call ANALYSIS/Stability to get it 😉
I can follow you in your first step using MakePattern to create the pores. But how to get a meanigfull ElementSpacing? Well you might go the trial and error route to get the target porosity of a certain percentage of pores/bounding volume
If I got you right you're using the first step's pattern result to run MakePattern on Mesh+DelaunayDualEdges. This builds a loop around each vertex of the source mesh like this:
If your source mesh is a MakePattern result, which is pretty dense , it will need long computation or even cause a crash. So you're right: reducing the number of vertices on the source mesh will reduce the number of rods. Think the best way four you might be to use Remesh at RemeshMode = TargetEdgeLength
Gunter Weber
Triangle Artisan
The workflow using MakeSolid was meant to reconstruct a bounding volume for complex shapes as you might get from scanning a realworld object (e.g. via CT reconstruction). In your case the bounding volume is a known one: It is 300 mm^3 (10x10x3). You do not need to call ANALYSIS/Stability to get it 😉
I can follow you in your first step using MakePattern to create the pores. But how to get a meanigfull ElementSpacing? Well you might go the trial and error route to get the target porosity of a certain percentage of pores/bounding volume
If I got you right you're using the first step's pattern result to run MakePattern on Mesh+DelaunayDualEdges. This builds a loop around each vertex of the source mesh like this:
If your source mesh is a MakePattern result, which is pretty dense , it will need long computation or even cause a crash. So you're right: reducing the number of vertices on the source mesh will reduce the number of rods. Think the best way four you might be to use Remesh at RemeshMode = TargetEdgeLength
Gunter Weber
Triangle Artisan
Oh you're right... i'm an idiot! i didn't think about it!! 😅
I'm using "Random Primitive (volume)" pattern to run "Mesh+Delaunay Dual Edges".
Can i also change percentage of porosity trough the Remesh tool? Or whit this i can only reduce the computation and then i can only try to change many times the element spacing in "Mesh+Delaunay Dual Edges"? Sorry for my many questions and thank you so much for your patience!!!!
Oh you're right... i'm an idiot! i didn't think about it!! 😅
I'm using "Random Primitive (volume)" pattern to run "Mesh+Delaunay Dual Edges".
Can i also change percentage of porosity trough the Remesh tool? Or whit this i can only reduce the computation and then i can only try to change many times the element spacing in "Mesh+Delaunay Dual Edges"? Sorry for my many questions and thank you so much for your patience!!!!
No, you can't change the number of pores via a change of mesh density. RandomPrimitive(volume) works with the volume only. The only way to change pores' density is to generate a new pattern with a different ElementSpacing.
In ordered patterns, as TiledSpheres: If ElementSpacing = ElementDimen >>> There's no gap between the spheres. I'm not sure about its effect on RandomPrimitive(volume) but it changes the number of spheres here too while ElementSpacing = ElementDimen allows the sphere's to intersect another. So this is much trial and error.
BTW: Does a porosity percentage of 70% mean that there are 70% occupied by pores while the resulting volume is 30%
or
does it mean that the resulting volume is 70% while 30% are occupied by pores?
Gunter Weber
Triangle Artisan
No, you can't change the number of pores via a change of mesh density. RandomPrimitive(volume) works with the volume only. The only way to change pores' density is to generate a new pattern with a different ElementSpacing.
In ordered patterns, as TiledSpheres: If ElementSpacing = ElementDimen >>> There's no gap between the spheres. I'm not sure about its effect on RandomPrimitive(volume) but it changes the number of spheres here too while ElementSpacing = ElementDimen allows the sphere's to intersect another. So this is much trial and error.
BTW: Does a porosity percentage of 70% mean that there are 70% occupied by pores while the resulting volume is 30%
or
does it mean that the resulting volume is 70% while 30% are occupied by pores?
Gunter Weber
Triangle Artisan
Ok! i will try changing the element spacing, even if i have the constraint of maintaining a distance between the pores around 0.6-0.7 mm; that's why i asked if there were other ways! With 70% of porosity i mean that the volume occupied by the pores is 70% while the resulting volume is 30%. Thank you so much!!!!!
Ok! i will try changing the element spacing, even if i have the constraint of maintaining a distance between the pores around 0.6-0.7 mm; that's why i asked if there were other ways! With 70% of porosity i mean that the volume occupied by the pores is 70% while the resulting volume is 30%. Thank you so much!!!!!
If you have a certain pores' diameter and a certain distance between there's no parameter which changes the porosity ratio in the RandomPrimitives step. Isn't it?
Gunter Weber
Triangle Artisan
If you have a certain pores' diameter and a certain distance between there's no parameter which changes the porosity ratio in the RandomPrimitives step. Isn't it?
Gunter Weber
Triangle Artisan
yes, infact i was thinking to change remesh-->relative density before run pattern "mesh+ delaunay dual edges" to change the "network of trabeculae" or i can change the parameter in this pattern; i can change only the element spacin, but this parameter can help me to change the % of porosity, right? thanks for your patience!!!! 🙂
yes, infact i was thinking to change remesh-->relative density before run pattern "mesh+ delaunay dual edges" to change the "network of trabeculae" or i can change the parameter in this pattern; i can change only the element spacin, but this parameter can help me to change the % of porosity, right? thanks for your patience!!!! 🙂
i'm sorry i didn't specify that the porosity i'm talking about is the total one given by the sum of the closed and open porosity.
i'm sorry i didn't specify that the porosity i'm talking about is the total one given by the sum of the closed and open porosity.
Yep, this is why you need the bounding volume.
Also: It might be better to generate the pattern on some slightly bigger volume and to crop it to the target volume using EDIT/PlaneCut six times. You might Edit/GenerateFaceGroups on your source volume so each side gets a group. Now do EDIT/CreatePivot with PlacementMode = SnapToGroupCenter. Now drop pivots by double clicking each side.
After you did your pattern a bit bigger: Run PlaneCut and click on a pivot to make the cut snap to it...
This way you get nicer edges and a better volume comparison.
Gunter Weber
Triangle Artisan
Yep, this is why you need the bounding volume.
Also: It might be better to generate the pattern on some slightly bigger volume and to crop it to the target volume using EDIT/PlaneCut six times. You might Edit/GenerateFaceGroups on your source volume so each side gets a group. Now do EDIT/CreatePivot with PlacementMode = SnapToGroupCenter. Now drop pivots by double clicking each side.
After you did your pattern a bit bigger: Run PlaneCut and click on a pivot to make the cut snap to it...
This way you get nicer edges and a better volume comparison.
Gunter Weber
Triangle Artisan
Can't find what you're looking for? Ask the community or share your knowledge.