Community
Meshmixer
Welcome to Autodesk’s Meshmixer Forums. Share your knowledge, ask questions, and explore popular Meshmixer topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

3D scaffold with images

12 REPLIES 12
SOLVED
Reply
Message 1 of 13
eleonora.zen
1043 Views, 12 Replies

3D scaffold with images

eleonora.zen
Explorer
Explorer

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!!!!Screenshot (649).pngScreenshot (650).png

 

 

0 Likes

3D scaffold with images

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!!!!Screenshot (649).pngScreenshot (650).png

 

 

12 REPLIES 12
Message 2 of 13
hfcandrew
in reply to: eleonora.zen

hfcandrew
Advisor
Advisor

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? 

Message 3 of 13
eleonora.zen
in reply to: hfcandrew

eleonora.zen
Explorer
Explorer

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!!!!!

0 Likes

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!!!!!

Message 4 of 13
MagWeb
in reply to: eleonora.zen

MagWeb
Advisor
Advisor

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:

  1. Run MakeSolid on the porous object. Switch the tool's mode to SolidType = Accurate. Now set an OffsetDistance a bit bigger than the pores' diameter ( say : 3 mm) . Hit Update and Accept.
  2. Take this solid result and run MakeSolid on it again. Again at SolidType = Accurate. Now set OffsetDistance to the negative value you used in the first step ( say: - 3mm) . Hit Update and Accept.

 

 



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:

  1. Run MakeSolid on the porous object. Switch the tool's mode to SolidType = Accurate. Now set an OffsetDistance a bit bigger than the pores' diameter ( say : 3 mm) . Hit Update and Accept.
  2. Take this solid result and run MakeSolid on it again. Again at SolidType = Accurate. Now set OffsetDistance to the negative value you used in the first step ( say: - 3mm) . Hit Update and Accept.

 

 



Gunter Weber
Triangle Artisan

Message 5 of 13
eleonora.zen
in reply to: eleonora.zen

eleonora.zen
Explorer
Explorer

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!!!!!!!

0 Likes

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!!!!!!!

Message 6 of 13
MagWeb
in reply to: eleonora.zen

MagWeb
Advisor
Advisor

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:Delauney.PNG

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:Delauney.PNG

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

Message 7 of 13
eleonora.zen
in reply to: eleonora.zen

eleonora.zen
Explorer
Explorer

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!!!!

0 Likes

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!!!!

Message 8 of 13
MagWeb
in reply to: eleonora.zen

MagWeb
Advisor
Advisor

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

Message 9 of 13
eleonora.zen
in reply to: eleonora.zen

eleonora.zen
Explorer
Explorer

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!!!!!

0 Likes

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!!!!!

Message 10 of 13
MagWeb
in reply to: eleonora.zen

MagWeb
Advisor
Advisor

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

Message 11 of 13
eleonora.zen
in reply to: eleonora.zen

eleonora.zen
Explorer
Explorer

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!!!! 🙂

0 Likes

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!!!! 🙂

Message 12 of 13
eleonora.zen
in reply to: eleonora.zen

eleonora.zen
Explorer
Explorer

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.

0 Likes

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.

Message 13 of 13
MagWeb
in reply to: eleonora.zen

MagWeb
Advisor
Advisor
Accepted solution

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

0 Likes

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.

Post to forums  

Autodesk Design & Make Report