3d Print Toolkit flags a mesh as non-manifold #105193

Open
opened 2024-02-22 17:55:26 +01:00 by Jonathan Wells · 3 comments
Contributor

System Information
Operating system: Windows-10-10.0.19045-SP0 64 Bits
Graphics card: AMD Radeon RX 6600 ATI Technologies Inc. 4.6.0 Core Profile Context 23.10.2.231013

Blender Version
Broken: version: 4.0.2, branch: blender-v4.0-release, commit date: 2023-12-05 07:41, hash: 9be62e85b727
Worked: (newest version of Blender that worked as expected)

Addon Information
Name: 3D-Print Toolbox ()
Author: Campbell Barton

Short description of error
3d Print Toolkit flags a mesh as non-manifold when there is an extraneous vertex on an edge. The clean-up function will try to fix this by creating a zero face.

Exact steps for others to reproduce the error
I reproduced the bug with an ico sphere in the screenshots below. Select an edge and subdivide it once. Select a face adjacent to that edge and delete it. Then select three points of the missing face and press F. This fills the gap, but creates a bad edge that the toolbox will flag as non-manifold.

Not sure if this is intended behavior or not. It's bad geometry, but it will probably print just fine. What makes it annoying is that the Make Manifold function will create a zero face to fix it. So if you do another check, it flags another error, and the Distorted clean up function can't fix it.

The solution is to either dissolve the extra vertex. Not sure how hard it would be to get the make manifold function detect this particular case.

**System Information** Operating system: Windows-10-10.0.19045-SP0 64 Bits Graphics card: AMD Radeon RX 6600 ATI Technologies Inc. 4.6.0 Core Profile Context 23.10.2.231013 **Blender Version** Broken: version: 4.0.2, branch: blender-v4.0-release, commit date: 2023-12-05 07:41, hash: `9be62e85b727` Worked: (newest version of Blender that worked as expected) **Addon Information** Name: 3D-Print Toolbox () Author: Campbell Barton **Short description of error** 3d Print Toolkit flags a mesh as non-manifold when there is an extraneous vertex on an edge. The clean-up function will try to fix this by creating a zero face. **Exact steps for others to reproduce the error** I reproduced the bug with an ico sphere in the screenshots below. Select an edge and subdivide it once. Select a face adjacent to that edge and delete it. Then select three points of the missing face and press F. This fills the gap, but creates a bad edge that the toolbox will flag as non-manifold. Not sure if this is intended behavior or not. It's bad geometry, but it will probably print just fine. What makes it annoying is that the Make Manifold function will create a zero face to fix it. So if you do another check, it flags another error, and the Distorted clean up function can't fix it. The solution is to either dissolve the extra vertex. Not sure how hard it would be to get the make manifold function detect this particular case.
Jonathan Wells added the
Status
Needs Triage
Priority
Normal
Type
Report
labels 2024-02-22 17:55:26 +01:00
Contributor

Hi!

I think this is intended behavior, not a bug. To be manifold, it is necessary for an edge to be part of exactly two faces. The operations you've made create three edges that have one face each. The Solid test correctly mark these edges as non-manifold. Topologically, the mesh now has a hole, albeit a zero-area one. I agree it will probably print OK, but note the edges are marked Non Manifold, not Non Printable 😉

The zero face created by Make Manifold will be marked by the Degenerate test. It can be cleaned afterwards by Mesh -> Clean Up -> Degenerate Dissolve in Edit mode, fixing the remaining problem.

Hi! I think this is intended behavior, not a bug. To be manifold, it is necessary for an edge to be part of exactly two faces. The operations you've made create three edges that have one face each. The `Solid` test correctly mark these edges as non-manifold. Topologically, the mesh now has a hole, albeit a zero-area one. I agree it will probably print OK, but note the edges are marked _Non Manifold_, not _Non Printable_ 😉 The zero face created by `Make Manifold` will be marked by the `Degenerate` test. It can be cleaned afterwards by `Mesh -> Clean Up -> Degenerate Dissolve` in Edit mode, fixing the remaining problem.
Author
Contributor

I guess what's at issue is whether manifold-ness is useful as a test for a model being printable. I don't have enough experience to know what printer software & hardware can handle.

I guess what's at issue is whether manifold-ness is useful as a test for a model being printable. I don't have enough experience to know what printer software & hardware can handle.
Contributor

I think manifold-ness is in general a useful test for 3d printing. While the case with zero-area holes would probably print alright, larger holes would almost certainly require repairing, and the Solid test will find those as well. To be useful, a test does not need to be always perfect. It just needs to be good enough.

Moreover, being manifold is also important in other cases, besides 3D printing. For instance, while a mesh with zero-area holes may print, it will probably face problems with boolean operations.

I think manifold-ness is in general a useful test for 3d printing. While the case with zero-area holes would probably print alright, larger holes would almost certainly require repairing, and the `Solid` test will find those as well. To be useful, a test does not need to be always perfect. It just needs to be good enough. Moreover, being manifold is also important in other cases, besides 3D printing. For instance, while a mesh with zero-area holes may print, it will probably face problems with boolean operations.
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#105193
No description provided.