Influence of spacing on quality

Hello Mr. Lasso,

I was looking for a suitable example to explain the Dynamic Modeler a bit more precisely. I came across this video:

Do I need to put MarkupsPlane as in this video? In your screenshot you have Plane node [1]: Red.
How exactly does that work?

Yes, you need to specify a cutting plane to cut the mesh. I would recommend to use a markups plane, defined by clicking 3 points around the vessel tip (you can adjust position/orientation by enabling interaction handles).

I have now added a markups plane on both ends but only the model can be hidden.

Can you please tell me how to save the new model as STL. Do I need to convert it first?

See how to save data in the documentation: https://slicer.readthedocs.io/en/latest/user_guide/data_loading_and_saving.html#non-dicom-data

Dear Mr Lasso,

I have tried to apply the principle with the Markup Planes to more complex vessel models with several openings, but I have the problem that the cut plane is not limited to the red field/window, but runs completely through the axis and cuts out other segments I need. ( see figure)

You can choose how to combine multiple cutting planes (union/intersect) and thereby limit what is cut by a plane by adding more planes. In this case, you need to use a separate cut plane tool and set of planes for cutting off each tip.

We will add a markups ROI widget within a few months, which will make cutting with a finite plane easier.

You can also use other cutting tools in Dynamic modeler, but they don’t generate a straight cut but instead cut along the mesh edges.

Dear Mr Lasso,

Unfortunately, the cutting tool “Curve Cut” in the Dynamic Modeler did not work and the “Portal”/Curve can not really be aligned well in three-dimensional space. ( probably a matter of practice). With the “Boundary Cut” cutting tool, the same thing happens as with “Plane Cut”, here too the cut runs along the entire axis and segments are removed. I haven’t tested the functions Mirror and Append yet. (I don’t want to mirror anything)

I would prefer the solution with MarkUp Planes, but I don’t know how to implement your solution proposal. Operation type Union did not help (single problem) and nothing happens with Operation type: Intersection.

create
union

With a single plane, tip of the other vessel segment is clipped:

By adding a second plane and choosing intersection operation, we can prevent second clipping:

1 Like

Dear Mr Lasso,

Thank you very much for the illustration. Adding the second level and selecting the intersection operation worked very well. ( see figure)

My problem is to make several openings. As soon as I make a new plane Cut, the previous opening is closed/deleted again. I have already tried to add the plane Cuts to a folder, but then the program crashes. Another question is, is it possible to fix placed plane markups so that they can’t move accidentally? Even if I have hidden this has happened to me many times and measurements have then not been correct.

To make multiple cuts, use result of the previous cut as input for the next cut.

Dear Mr Lasso,

I am very enthusiastic about the result with this thin wall thickness and thank you again for your support and patience.

I have the feeling that with this variant (Option C) the spacing has been removed or is the impression deceiving?

Why is the computing power required when using the graphical user interface (GUI) and why is it not when using a Phyton code? Do you have an explanation for this?

Model (surface mesh) representation can easily represent thin walls, but it is not robust when the surface is very complex (e.g., result of thresholding a noisy image). Compared to labelmaps, meshes are very hard to edit (we currently only a few different operations, such as cuts, mirroring, appending).

3D printers use surface meshes as inputs.

Finite element solvers use volumetric meshes, which are easier to generate from labelmaps.

Both representations (surface mesh, labelmap) have advantages and disadvantages. You need to use the representation that works the best for the specific task.

1 Like

I still have two questions on the subject:

Why does a shadow regularly appear on the cutting planes? I noticed that this shadow does not appear on the last cut plane.

The second question would be, if I have to create many cutting planes and thus also create many models, it can quickly become confusing. Is there any way to make this a little clearer?

Thanks for the help

You don’t need to worry about those shadows, they are just visualization artifacts. If you have very sharp edges in a surface then you may prefer to recompute surface normals with splitting enabled, for example using Surface Toolbox module:

image

If you are willing to learn some Python scripting then you can implement some helper scripts that automate this. For example, you could create cutting planes automatically from 6 planes of a ROI node. Otherwise you probably need to wait for the new markups ROI widget to be added to Slicer (expected within a few months).

1 Like

Hello everybody,

I still have questions about binary labelmap (green color) and closed surface (blue color). ( see pictures)

  1. Is the previously segmented vascular lumen always a binary label map? ( Threshold + Segment Editor)

  2. Does the “Hollow” effect in the Segment Editor module always belong to the binary label map and can it only be edited with the scissors?

  3. Surface mesh representation (with Python code) for very thin vessel walls (without spacing) always belongs to the closed surface. Can this only be edited with the cutting planes?

I’m all about understanding.