Preparing a surface for meshing

I am trying to prepare a surface mesh for use in a simulation. I need a surface with open ends that are perpendicular to the centerlines of the vessels.

I have a segmentation that looks like this:

I would like to cut the ends normal to the centrelines to obtain a model with open ends similar to this:

Is it possible to do this using VMTK within 3D Slicer?

Sounds like this might be helpful: Vmtk surface clipping contribution

1 Like

Thank you, this is exactly what I was looking for. I can get it to work when the vessels attached to the aneurysm are relatively long.

However, if I try to shorten the segments as required for our analysis the top of the aneurysm gets clipped as well. Is there any way to avoid this?

The issue here is that there is no centerline associated with the aneurysm so the logic does not recognize it as a separate region and hence exclude it from the clipping. It may work if you are able to add a centerline to the tip of the aneurysm. Otherwise I think you will have to clip it above the aneurysm.

Thanks @DavidM I got it to work by adding a few centerlines within the aneurysm.

1 Like

Are there any examples for how to use VMTK scripts from within 3D Slicer?

For example, I would like to do the following after I clip the geometry:

vmtksurfacenormals -ifile "../processed NRRDs/artery_cut_remesh_clip.stl" -ofile "artery_cut_remesh_clip_vmtksurfacenormals.stl" \
  --pipe vmtksurfaceremeshing -elementsizemode edgelength -edgelength 0.3 -ofile "artery_cut_remesh_clip_vmtksurfacenormals_remesh.stl"

The reason for computing the surface normals is that the normals on the extrusions were in the opposite direction to those on the artery and aneurysm wall which causes problems when trying to create a volume mesh.

The VMTK extension for Slicer (https://github.com/vmtk/SlicerExtension-VMTK) has several examples of using VMTK features from python. For example, https://github.com/vmtk/SlicerExtension-VMTK/blob/master/ExtractCenterline/ExtractCenterline.py shows how to extract a centerline using VMTK and is a python module. It will take a little work to unpack the code there, but it and the other modules of the VMTK Slicer extension are definitely working examples you could start from. Perhaps there are other more straightforward resources that others could point you to.