Operating system: Ubuntu 18.04
Slicer version: self-build, 4.13.0-2021-07-07
As the question topic: " How to create an open surface constrained by markup points，and split the current segment by this surface?" mentioned, @lassoan said, “we have implemented 3D open source editing that is very similar to the animation above …”.
Now exist a requiremet, I have to create a open surface, and edit the created open surface by some exist or added new control point, then use this surface to segment the 3d model in the 3d Viewer.
So I want to know, “3d open surface edit” existed in the 3d Slicer module or extension? If exist, how I can find it to load to use?
Any answer is appreciated from community.
A couple of relevant tools:
Baffle Planner: define open surface using boundary curve and surface points
- Dynamic modeler module (in recent Slicer Preview Releases): cut out arbitrary piece from a mesh using cutting plane(s) or a rectangular ROI
- Resect objects using warped plane (in LiverAnalysis extension): Unfortunately, this extension has not been submitted to the extension manager yet and therefore you need to build it. @RafaelPalomar is there a reason why this extension has not been submitted to the extension manager?
Thank you for your reply.
I will try these tools recent days.
Hello @lassoan. The extension is not finished yet. We have all the core components but need to connect them all and work on the Qt gui. We will try to push this during August.
I have installed “Baffle Planner” extension, and have defined an open surface model.
Then I want to use this surface to cut a loaded 3d stl model, How I will to do in the next?
You say in the “Dynamic modeler module”. Now I have download Preview Releases: Slice-4.13.0-2021-07-26-linux-amd64 version, and switch to “Dynamic Modeler” module, and there exist “Plane cut”, “Curve cut”, and so on.
When I choose “Plane cut” option, and load the original stl model to be cutted in the Model node, I can’t select the surface model I have created in the Baffle Planner model in the ROI node, so I can’t cut the stl model by the surface model.
How I could solve this problem?
The options that I described above are exclusive - you either use one approach or another. If you generate a surface using Baffle Planner then you need to use Combine Models module to cut with it. I don’t think Combine models work with open surfaces, so you probably need to make it a thick shell and subtract it from the vessel tree, then extract the largest component from the resulting model using the Surface Toolbox module.
Thank you for your reply, it sounds very complex.
Now I have found a open surface cut project, I will tried this project and transplant the open surface cut into the 3d Slicer.
You can also cut surfaces with each other using Combine Models module (in Sandbox extension).
Thank you for reply.
I finally realize the open surface cut func by the 3d Slicer module althrough the procedure is a little complex. The procedure are as follows:
- Load a stl model named ‘bronchus’ into the 3d view.
- Switch to “Markups” module, select Create ClosedCurve Markups button, then I draw a closed curve named “CC”, generated by some control point around the upper part of bronchus model.
- Swith to “Baffle Planner” module (in the SlicerHeart extension), select “CC” as Input curve, select “Create new model as” in the Baffle model, then default Baffle model named “Baffle” generat.
- Select “Surface points”, click fiducial button, then place some control point in the closed curve, and you can adjust control point position to adjust surface.
- Switch to “Combine Models” module (in the Sandbox extension), select “bronchus” as Input model A, select “Baffle” as Input model B.
- Select “Intersection (A&B)” operation, select “Create new model node” as Output model. Then click “Apply” button, and the output model, named “Model” will appear.
- Swith to “Data” module, hide the exist model except new “Model”, set the other color different from the bronchus model.
- Switch to “Combine Models” module, select “bronchus” as Input model A, select “Model” as Input model B, select “Difference (A-B)” as operation, then click Apply button. The new Model_1 will generate. Set other color for Model_1, and you will see the two models cut by open surface model.