2
$\begingroup$

tl;dr: I have a mesh with a vertex that looks like it's on a face; how can I verify that it's actually on the face? And if it's not, how can I put it on the face?

enter image description here

Full explanation for context:

I'm new to Blender and using it for 3D printing. I know this isn't a 3D printing stack exchange, but I think I've done something wrong in Blender.

I've been using BoolTool, and I've noticed when I use the Difference action, faces that I think are coplanar turn out not to be. The result is a face covering up a hollow area and a sprinkling of vertices that feel arbitrary but I'm sure are where they are because maths. This will happen, say, if I've rotated a mesh, done some other transforms on it, then duplicated it, scaled the duplicate down, aligned the two with minimum Z, and use Difference. (I'm guessing this is because computers don't store floats to infinite precision.) I will also get two vertices that have the same exact global X, Y, and Z on top of each other.

So now I try not to use BoolTool for differences, or I make the negative space mesh slightly bigger or lower that it needs to be.

Am I have the same problem with BoolTool Union actions? Namely that boolean actions aren't happening the way I expect because faces aren't coplanar? I had assumed things were good because they looked good, but now I'm not sure.

Recently, I printed the model above, and when printed, the vertices highlighted did not get printed attached to the face. Basically, I ended up with a hinge -- though not one that I'm inclined to stress test! I'm impressed that the slicer and printer managed to make that gap, but it's also not what I wanted.

So did I mess this up in Blender?

edit: Does the question even make sense? Does a vertex being geometrically "on" a face automatically make it "connected" to the face?

$\endgroup$
1
  • 2
    $\begingroup$ I think your last question is the key to your problem - because the answer is no. A vertex being "on" a face does not connect it. In order to be connected to the face properly it needs to be a part of the face, i.e. one of the vertices that builds the face. $\endgroup$ Commented Dec 28, 2022 at 16:33

1 Answer 1

2
$\begingroup$

As Gordon commented, just because a vertex is technically located within the plane of a face doesn't mean that it's connected.

You can check whether a vertex is connected by entering Face Select mode, selecting the face, and switching back to Vertex Select mode. If your vertex of interest is selected, good news - it's part of the face.

Another useful checking tool is to hover over one part of your mesh and press L. This will select all of the linked geometry within the object.

To address your broader question - from on your description, you are using BoolTools (and booleans in general) incorrectly. In the case of union, for instance, the bodies to be joined should have some overlapping volume - otherwise you can run into undefined behavior. It sounds like you're trying to line up the faces on both sides of the boolean exactly.

enter image description here

enter image description here

$\endgroup$
3
  • $\begingroup$ Thank you so much @RayLennon. "Undefined behavior" does sound about right! Does this sound like the way to do what I want to do? 1. Use align to make the faces coplaner (or use some other way of moving a mesh to make the faces coplanar). 2. Ctrl-J them together. 3. Select the vertices that define both faces. 4. Ctrl-F them. 5. Delete spurious edges. 6. Delete the "inner" face. It seems correct in that moving one of the vertices of the square donut hole changes the donut face. It seems incorrect in that the L trick doesn't highlight more than one boxes at a time. $\endgroup$
    – Becca
    Commented Dec 28, 2022 at 21:15
  • $\begingroup$ Okay. I think I'm making extra vertices that I'm not disposing of. I found "merge vertices" and that seems to fix the L problem. (See youtube.com/watch?v=Aclg2unKbyY.) $\endgroup$
    – Becca
    Commented Dec 29, 2022 at 1:06
  • 1
    $\begingroup$ No - this still isn't quite the right way to go about this. A usual fill won't suffice in this case because you're trying to link two perimeters rather than a single one. If you don't want to use Booleans, try deleting both faces that you're trying to join, selecting both of edge loops (e.g. with Alt-Select), and using Alt-F to span the gap. $\endgroup$
    – Ray
    Commented Dec 29, 2022 at 14:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .