This is related to, and sort of a follow-up to another question I posted about threads. This is a different set of issues, so it seems like it belongs in a separate thread (no pun intended).
I have a 50mm cylinder (hollow in the middle) and a isosceles right triangle, 3mm high. I’m putting the triangle flush up against the outside of the cylinder and using a screw modifier on it, with the cylinder as the axis object. I’m trying to make threads to go on the outside of the cylinder, so I can use it as the male threaded part (eventually I’ll be doing this with a fitting for a conduit) and so it can screw into a female counterpart.
I can, if needed, attach the thread to the cylinder by using Join. I’ve tried it using a boolean modifier set to union, but I get a mess.
The blend file is attached. I also have a lot of pictures to show what I’m doing and where things go bad. I’m using the 3D Print Toolbox since my goal is to print out what I design in Blender. If you’re using my blend file, my parts are on the right side of the X axis and the pieces I’m experimenting with are on the left side. I move from the Y axis toward the left.
Step 1:
The 1st test object group, immediately to the left of the Y axis, has the cylinder and the triangle with the array modifier before I apply it. The next (moving to the left) objects are the cylinder and the thread after I apply the modifier to the triangle.
I used screw modifier, as described above, to make a thread going around the cylinder. This left all the normals on the faces of the thread pointing inward and I had to create a triangle face on each end of the thread, then I flipped all the normals. The triangle that’s the base for this thread is 3mm high and I set the screw height as 3mm. I ran the test and get a report of 1,179 intersecting faces. The stats show 2,307 vertices. Thinking that it might help to remove duplicates, I do that. It leaves me with 1,666 vertices, so it’s combined a number of them. The intersecting face issue is solved, but now I have 640 non manifold egdes. When I click the button in the report, it shows a line between each thread iteration as the non manifold edges.
I’ve done a number of experiments and it seems that as long as I make the thread distance in the screw modifier the same as the height of the plane I’m using, I run into this:
When I click on “Make Manifold,” the thread vanishes from the display.
Apparently, making threads the same height as the object I’m using to make the threads is an issue. There seems to be a need for a gap in there to prevent issues with overlapping edges and vertices.
First issue/question: Is this true? Is it necessary to make the screw distance greater than the object used as a base for that modifier, or is there some way to make it work if the distance in the modifier is the same as the height of the base object?
As a solution to this, I changed the thread distance to 3.1mm. When I do that, I get 3 thin faces. (Ignore the overhang faces. I know the angles and I’ve printed those before and they’re not a concern here.)
I’m not worried about the thin edges, since, again, looking at the angles, I don’t see why the printer would have an issue with them. So this time, with a bit of distance between each iteration of the thread, it seems to work out okay.
So far, so good…
In the blend file, after those two objects (the cylinders and threads), there’s a gap, then three more cylinders, side by side, along the X axis and farther to the left on the Y axis. The first is the cylinder and the thread that’s a result of using the screw modifier. I tried to use a boolean modifier and union to join the threads to the cylinder. I’ve tried several ways and they all create objects that have issues. Just using the normal boolean modifier,
At first it looks okay, but on closer look there are what seem to be multiple overlapping faces and edges. There are also a lot of intersecting faces.
Move down to the next group of objects to the left and, to connect the threads to the cylinder, I used Join and it works. I might be misunderstanding things, but I thought I’ve seen people write that the boolean modifier works better. When I select the cylinder and then add a boolean modifier and add the thread as the object to use as a modifier, then use a boolean modifier and union, I see the threads disappear. Join seems to work, though.
So, using Join, I get the threads attached. It seems to work, but I don’t know what I did wrong with the boolean modifiers that they would not work with threads properly. (I tried them using both exact and fast matches.)
This leads to the next step, and next issue. Once I have the threads on the cylinder, I finally have a male connector that looks like threads on a pipe, which is the ultimate goal. I used a box that’s bigger than the male part and made a hole in the middle with a boolean modifier.
I take the square block I’m going to use for the female part and center it on the male cylinder with its threads. Then I click it, add a boolean modifier, and pick the male part as the modifier for it. The female block disappears:
I experiment with exact and fast modifiers and when I use Alt-Z so I can see the wireframes, I get this - again, like the female part I now want to modify seems gone:
In those last 2 pictures, I have the boolean modifiers visible, but the big square part I’m using to make the female isn’t even visible.
Here’s what I’m finding I can’t do or that just doesn’t seem to work:
- I can’t use the same thread height as the object that’s the base for the thread - the height has to be more so there’s a gap. I don’t know if there’s a way to fix that.
- I can’t join the threads and the cylinder without ending up with problem edges or faces that show up in the 3D Print Tool Box. The boolean modifiers do not work well for this and I have to use Join.
- Once I get an object with the cylinder and the thread joined, when I put something around it to try to make a female counterpart to the cylinder and thread, the modifier does not work. The object disappears or I run into other problems. I’ve seen threads show up, but not visible - they are there but behind faces that surround the inner, empty circular hole.
In earlier tests, I’ve managed to get these steps working, but I don’t see how I can rely on boolean modifiers, which I need, to create the female counterpart threads and it seems like only Join will put threads and the cylinder together.
ThreadTest-Examples.blend (416.6 KB)