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?
“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); …
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.
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.
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.