Heart: 3D Printing/ 3D PDF view

Operating system: Windows 10
Slicer version: 4.11
Expected behavior:
Actual behavior:
I got two requests today from one of the cardiologists.

  1. One was if I can cut the heart into two halves and then keep them both into display monitor as on top of each other. This way when we print those models we can have two halves. Question: When i cut using scissor, that part is gone and i am left with remaining part. How to fix that.
  2. Second question was if I can export 3D files to be viewed in PDF (it’s a kind of 3d PDF viewer, where you can zoom, rotate and pan models: He showed me an example from 3D matic PDF: I think it’s MIMICS software.

Would appreciate thoughts on these two.

Thanks,
Sarv

You can use Scissors effect to move the cutout part to another segment as shown in this recipe: https://lassoan.github.io/SlicerSegmentationRecipes/Craniotomy/

There are so many alternatives to view 3D models that I’m not sure if PDF3D is worth the trouble (PDF3D is not easy to create and it is not usable for anything else than viewing in a PDF viewer - no 3D printable, not editable, not importable to any software).

  1. Several online file storage service can show 3D files in your web browser. For example, you can upload the STL file that Slicer exported to GitHub and view there: https://github.com/PlusToolkit/PlusModelCatalog/blob/master/Anatomy/HumanSimple.stl

  2. There are many STL and OBJ viewers on all platforms.

  3. You can save STL and OBJ files in Word documents and Powerpoint slides and you can view/rotate them around.

  4. If sometimes you do need PDF3D then you can use a converter such as https://www.pdf3d.com/

If many users requested direct 3D PDF export then we could add u3d file export to Slicer, which can be embedded into PDF documents (for developers: u3d library, more info).

1 Like

Thanks Andras

I will try those platforms to view 3D models. I haven’t tried importing Obj files in word or power point but if they work that will be good too.

Thanks again

Sarv

Thanks Andras.
Also when I export files as OBJ or STL, they lose their colour as well as all the labels. Is their way the label remains as then it is easy to view by others.

Thanks,

Sarv

If you save as OBJ then colors are preserved.

There is no standard way of storing color in STL (some software use some workarounds that we could easily adopt, but this has not been a commonly requested feature).

We are working with OpenAnatomy people to define an open, standard format for storing annotated models and add support for that in Slicer. We expect to have exporter/importer in Slicer in a couple of months. There is already an OpenAnatomy web viewer (see their website).

It should be really usefull, at least for me…

I still don’t understand the need for PDF3D. It is an old format that essentially failed (did not become popular). It is not easy to create and it is not usable for anything else than viewing in a PDF viewer - not 3D printable, not editable, not importable into any software. Is there any platform or environment or application where PDF3D is better than other widely used mesh formats?

In my particular case, it´s to generate reports to share. PDF viewer is something almost everyone have in every digital device under any OS. That´s the only porpose, but if you say PDF 3D view doesn´t work properly…
Thanks.

PDF3D works, it has just become largely irrrelevant.

  1. You can drop 3D models in standard file format (STL, OBJ, …) into Word or PowerPoint. Anybody can open the file and rotate the model around.

  2. Web browsers on your PC, tablet, phone, etc. have become so powerful that you don’t need apps for displaying objects in standard 3D file formats. There are lots of online viewers that just needs a URL of your model file and they can show it in your browser.

How to export a model from Slicer and create a link for viewing it in a web browser:

  • Export segmentation to OBJ format using OpenAnatomy Exporter module (provided by SlicerOpenAnatomy extension)
  • put them in a folder that has the same name as the .obj file and zip it
  • open this URL in your web browser (on your desktop, table, or phone) and open the zip file in it: https://kitware.github.io/vtk-js/examples/OBJViewer/OBJViewer.html

You can also create a direct “view in browser” link that you can send to anyone:

  • get a direct download link
    • for example, upload to Dropbox and replace the beginning of your default download URL by https://dl.dropboxusercontent.com/
  • create a viewer URL by adding this before your download URL: https://kitware.github.io/vtk-js/examples/OBJViewer/OBJViewer.html?fileURL=

Example URL for the SPL knee atlas: https://kitware.github.io/vtk-js/examples/OBJViewer/OBJViewer.html?fileURL=https://dl.dropboxusercontent.com/s/1ymrrdpy563w6jv/knee.zip

There are lots of other web viewers based on vtk.js, babylon.js, three.js that you can use instead of a proprietary PDF3D viewer.

Check out these examples just to see what’s possible:

3D object web viewers:

1 Like

I’ve figured that you can even embed these 3D viewers here. This might be useful for quickly sharing models or volumes here in the forum.

For example:

Click here to see the text to write in your post to show this viewer
<iframe width="480" height="373" frameborder="0" scrolling="no" marginheight="0"
 marginwidth="0" id="kitware-obj-viewer"
 title="Object viewer"
 src="https://kitware.github.io/vtk-js/examples/OBJViewer/OBJViewer.html?fileURL=https://dl.dropboxusercontent.com/s/1ymrrdpy563w6jv/knee.zip">
</iframe>
Click here to see the text to write in your post to show this viewer
<iframe width="480" height="373" frameborder="0" scrolling="no" marginheight="0"
 marginwidth="0" id="kitware-vol-viewer"
 title="Volume viewer"
 src="https://kitware.github.io/vtk-js/examples/VolumeViewer/VolumeViewer.html?fileURL=https://data.kitware.com/api/v1/item/59e12e988d777f31ac6455c5/download">
</iframe>
4 Likes

Woderfull!!! Nice way to share segmentataions and models with colleagues. Thanks a lot.

Just one question… How can I export my volumes in vti format?

I’ve added an “Image export” section in OpenAnatomy Exporter module (in SlicerOpenAnatomy). It’ll be available in tomorrow’s Slicer Preview Release.

Until then, you can export by typing this into the Python interactor (replace node name and output location):

volumeNode = getNode('CTACardio')
writer=vtk.vtkXMLImageDataWriter()
writer.SetFileName("c:/Users/andra/Dropbox/models/ctacardio.vti")
writer.SetInputData(volumeNode.GetImageData())
writer.SetCompressorTypeToZLib()
writer.Write()
1 Like

Wow… Amazing :slight_smile: Thanks for sharing this tip!

@lassoan Hi, Andras. Is there a way to convert many segmentationNode to a u3d file? Does it can implemented by python vtk lib?

Look forward to your reply.

PDF3D and the almost-never-heard-of u3d file format are so obsolete technology that you cannot expect any free, open-source developers to care about them. Adobe dissolved its PDF3D development team more than a decade ago, there have not been any improvement in the format since then, and there are many modern, more capable alternatives.

Development and licensing cost of a custom software implementation would cost several thousands of dollars, so if you really must create PDF3D files then it is much less expensive and less risky to buy a converter that can create PDF3D file from common mesh file formats that Slicer can write.

I see. Thank you for your enthusiastic answer.