Booleans and threads again

Hi All.

I have just found this forum and it had the best answer so far to the problem I am facing. BUT it still hasn’t solved the problem.
I’d appreciate it if anyone has some suggestions for a solution or where to go to find it.
I’m astounded by what Blender can do but my use appears benign as I’ve used it for a few years just for 3D modelling for printing.
I have always been able to find work arounds to problems unitl now.
I need to put “half a thread” on the external diameter of a cylinder. This thread needs to have an axis perpendicular to the vertical axis of the cylinder and tangential to the circumference of the cylinder. (see pics below)
It is for a rotational stage that needs to be able to move 360 degrees so this is an endless thread.
As a new user/member I am unable to upload a file but I have uploaded images here and we’ll see how it goes. AND when I tried to post it appears I can only upload one image.
I’ll use the first one which will hopefully give you an idea of my problem.


I am trying to use a Boolean Difference to cut the thread out of the circumference.
The thread is curved around a bezier circle.

Things that may be important.
1 I need to put the thread on the circumference which is about 175mm long.
Because of this I can’t use Bolt Factory because the max thread length is 50mm. I can stretch the bolt but the pitch varies.
2. I am using Precision Bolts/Fasteners to produce a 175mm threaded rod with no contours at either end.

I have also found the 3d-Print add-on, which helped tremendously in identifying issues.
The threaded rod had heaps of issues with non-manifold edges etc.
This is the current status from 3D-Print
NOTE I had to delete this image but it came up with no issues except 7100 overhang faces.
I don’t know if that is bad or not.
Please note this is for the threaded rod produced by Precision Bolt and before wrapping around the bezier curve.
I used the boolean modifier (which I think is the bool tool) as opposed to ctr+shft+Num minus).

This is how I wrapped the threaded rod around the bezier circle
NOTE Had to remove this image.

This is how I attempted to invoke the boolean on the cylinder. I have tried Fast and Exact. With exact I was left with only the curved threaded rod and no cylinder at all.
NOTE Had to remove this image.
If the picture is clear enough the boolean appears to cut into the cylinder but the curved rod is still there.
When I edit the cylinder I can see verticies only on the outside surface, but nothing cutting into the cylinder.
Also there appears to be some verticies missing on the lower side of the thread area.
NOTE Had to remove this image.

All the normals appear to be ok and facing the right way.

I have learned a lot trying to solve this problem but obviously not enough.

I would appreciate any suggestions.
TIA.

I can’t understand the whole thing due to language problems,
but I don’t think it’s a configuration that can’t be Boolean. :thinking:

Maybe it’s a problem with the mesh that’s not clean.
I’m not sure because I can’t check the modeling file.

You can upload the modeling file outside and leave a link.

sfsd.blend (2.2 MB)

Attached is the test file.

Welcome :tada:

…so you want to build a worm drive ?

Maybe have a look at some older suggestings like here:

or this:

https://www.otvinta.com/tutorial02.html

and of course with geometry nodes ( a bit weird on a “triangle”):

Thanks for your comments Kim.
Yes silly of me to not use a link.
Here it is,

Thanks for the reply Okidoki.
Yes it is technically a worm drive of sorts.
I have actually printed the otvinta worm.
I had a basic printer at the time and the gear was quite sloppy.
Also the pitch was too big so the adjustment was quite coarse.
I’m wanting to use a threaded M5 rod for the adjustment and I need the cylinder to mate with it.
I have left a link to the blender file above if you are interested and I would like to stay away from geometry nodes if possible.

The problem with this modeling is that

  1. The end of the cylinder is blocked. There is no reason to be blocked because it connects both ends, but rather causes problems

  2. The two ends of the connection do not fit together. This will be an open object

  3. Invalid location using object modification to create space for screws.

To improve this, use Solidify modifiers → Merge modifiers and separate internal and external modeling → Use Boolean modifiers using external modeling

Please check the attached file.

sfsfds.blend (3.0 MB)

Kim that is just fantastic.
I don’t have time to redo the part yet but this has certainly given me confidence I can do it.
Thank you to you and everyone that has read the post.
I’ll report back when I have a successful 3D print.

1 Like

Hi Kim, I am sending this to apologise for not having the time to fully review the methodology.
I will revert soon.

1 Like

This is frustrating because it just shows how slow I am.

I have tried to follow Kim’s methods but I am now running in to other problems and my brain hurts.

The link is to the latest version

The join is at -Y

I have the ring in edit mode and I can see some verticies but nor all when I zoom in.


I’ve obviously changed a setting but I don’t know which one.

Apologies and TIA,

You have to give access to the file to anyone with the link on Google Drive

If you temporarily disable the Solidify modifier, you can see it normally.
Currently, the Solidify modifier is extended outward, and in this case, if you use Edit mode, Vertex is behind the extended face of Solidify.

Sorry my bad.

This should be open

This object is a completely modified object.
And this object does not require a Solidify modifier.

Thank you Kim I can see that now.

Kim thank you for the comment but I do not understand what you mean about a “completely modified object”.
I don’t understand the significance of your screen shots.

It appears there are still issues with the geometry.
A boolean still does not work correctly and the 3D print shows these notices


I was trying to finesse the geometry with minimal overlap so I would not have a lot of repair work to do.

If I repair the Intersecting Faces and Thin Faces should I expect that the boolean will then work as expected?

How did you repair and do the boolean so that it worked?

TIA.

This part has not been modified.
You need to edit the modeling.

It doesn’t end well.

Hi all,

So, I’ve had a look at the file, and as Kim [ @oo_1942 ] mentions the geometry overlap is not accurate. This is actually because the number/pitch of the teeth is not mathematically a perfect division into the specific circle that you’re trying to match. It’s close, as the picture by Kim above shows, but if you’re making an actual mechanical print then close won’t be good enough.

I can show another approach, that I used to do this:

If you’re trying to boolean into a cylinder, then there’s no need to even attempt this. Delete the faces that would be on the ‘outer’ surface and simply extrude the edges [ shown in yellow]. This will give you a very clean piece of geometry with no clean up required.

On the issue of the overlap, I extended your original rod and delete the capping faces. Then with a Simple Deform set a Bend value over 360° ( 402.3° in my case ) until the teeth exactly aligned with a overall radius as close to the original one you had. The next best value was 404.13°.

I then collapsed the Modifier and used a weld by distance on the entire mesh. Since the teeth are accurately aligned with easily cleans up the result and gives a perfect match. Then I selected the outer most edge, grew this with [CTRL and +] until I had all the vertices just before half way, and deleted them.

Here’s a revised file. I’ve stripped out everything but your original rod for clarity.
It’s zipped as the file was over 7Mb and the limit is 5Mb on this forum.

External Thread _Dj_01.zip (2.1 MB)

Cheers,
Dj

1 Like

Thank you DJ and Kim for the effort in explaining.

I will review shortly.

All this help is greatly appreciated.

2 Likes