I have CT scans of a vertebra and I’m trying to export a 3D solid model from Slicer so I can import in Abaqus. I have already segmented and created the model, but once on Abaqus I realised it was just a surface model and just a shell.
How can I export a 3D solid model?
I know that this can be fixed by creating a mesh, but I just want to export from Slicer the geometry.
How can I do this?
You can create a volumetric mesh (tetrahedral and wedge elements) using SegmentMesher extension.
Hi Andras, thank you for your reply. What if I don’t want to mesh it? I just need its solid geometry exported.
“Don’t mesh it” is not an option. “Solid geometry” concept only exists in CAD software - it refers to parametric representation of a shape, obtained from combining simple parametric primitives and can be characterized with a few hundred or maybe a few thousand parameters. In contrast, in medical image computing you generate shapes from images, which consists of tens or hundreds of millions of voxels, so the resulting object cannot be practically stored with a parametric representation (you would need thousands of times faster CPU and thousands of times more RAM).
Image segmentation results therefore typically stored either as a 3D array of voxels or as a polygonal mesh. In rare cases, when the shape is very simple, you can reverse-engineer a parametric shape (“solid geometry”) from the segmented shape in your CAD software, but in general you need to use different tools to deal with these complex free-form shapes. For example, for finite-element analysis you generate a volumetric mesh; for Boolean operations, you need to use special algorithms that work on polygonal meshes (or use voxel array representation); …
Ok, I get it.
But a few years ago I had the model of a femur which I could mesh on Abaqus for example.
If I do a volumetric mesh with slicer in order to create a 3d solid model, will I be able to mesh it again on Abaqus?
It is up to what you want to do and what Abaqus can do. If Abaqus can import a surface mesh (from PLY, STL, OBJ, …) and create a solid model then it is great, but you can expect to run into difficulties if the surface mesh is complex or has many points.
I wonder if @leelhan simply wants a model that has no internal space (e.g., in femur). Wouldn’t WrapSurfaceSolidfy work for that?
The first post suggests that the issue is the surface mesh, but maybe @Leelhan uses a different nomenclature. For reference here is Slicer’s glossary of terms here.
Wrap Solidify effect can fill internal holes in general, but since vertebrae have holes (spinal canal), surface wrapping cannot be used on them.
However, we worked out a very good protocol for spine segmentation at the last project week. See more information here.
I think I need to work the surface mesh into some kind of CAD software and create the solid from there and then import it on Abaqus.
I tried using SegmentMesher extension, but as I suspected it doesn’t create the geometry of the segmentation, which is what I need.
And yes, I need a 3D solid model, which is not hollow inside. And yes, I need to leave a hole where the spinal canal should be.
Thank you anyway for the suggestions.
SegmentMesher creates a volumetric mesh of the segmentation, made up of tetrahedral and wedge elements, that can be used directly for finite-element analysis. Users reported to use these meshes successfully in FEBio and Abaqus.
Anything that appears inside the segmentation will be inside the generated volumetric mesh, too. If you segment the vertebrae using simple thresholding then holes will appear inside the cortical regions of the spine, which you can fill using the Python code snippet I referred to above.