Merge cylinder vertices to a quad, by slecting via bpy.ops.mesh.select_non_manifold


i wonder if there is a way to “fix” a non manifold mesh if one merge f.e. vertices of a cylinder onto the top of a face.

See example:

The bottom vertices of the cylindrical mesh part could be selected with


I don’t know if this is manually doable in blender-trunk with BMesh now. If not are there any plans for this?

I read some bmesh suggestions which look like similar to this problem here: BMesh Drop Tool Suggestion is this only an idea or are there concret implementations=

A couple things going on, here.

First, you’re showing code but saying manual. The manual way to get those verts is Ctl+Alt+Shift+m. I like it because it trains you for combat - if you get good at it you are ready to perform the Vulcan Neck Bench.

Second, Bmesh faces cannot have holes. You will have to either pretend by butting two nonmanifold edges together, or else make two faces.

And finally, I wonder if you really need to combine the geometry. If you are not Catmull-Clarking then I say float that. Possibly even Parent - depending on your plans. If on the other hand you are going to Subsurf, then by all means give yourself an edge extrusion on that circle first. Hit e then Esc then s it out a bit first. If you don’t you’ll have no control over the face rounding.

Some thoughts.


Sorry if I wasn’t clear enough.
I mean by manually, that neither I don’t know a way to do ist manually in the Blender UI, nor via Pythonb API. At the end I will do this in Python api.
And I know how to select the non manifold vertices either by CTRL+ALT+SHIFT+M or by the operator function “bpy.ops.mesh.select_non_manifold()”. But I want to achieve the merge in python.

Anyway thanks for the hint.

Are you aware if the Bridge functionality? Select a pair of loops with the sane number of edges and Ctrl+e,b.

The tricky part will be setting up the cube to have the same number if edges in it’s top ring. Then again we are talking about bmesh so you can fill in faces instead of bridging if you want.

Or is this not in the right track, either?