Hi. I've been doing threads as part of a set of
different projects for a while using FreeCAD. I've found a couple of different ways to make
mistakes. This is a video of how to avoid some basic mistakes in making threads
in FreeCAD. First of all, when you say FreeCAD, we always have to talk about what version. This is the 0.19 pre-release from February 14th. We're going to start with a empty file here. The first thing I want to do is... I'm going to do almost all my work in the Part Design
Workbench. The first thing I'm going to do is create a cylinder to hold the thread. I'm going to do a sketch in the XY plane, and that sketch is just going to be
the outside and inside walls of the cylinder. The outside wall I'm going to set to
20 millimeters and the inside wall I'm going to set to 18. So it's 2
millimeters thick. I am eventually going to print this from the file here. We've got a 20 millimeter cylinder basically. I like to rename things so Cylinder Wall
is what that's going to be, this sketch. I'm going to extrude that 25 millimeters to make
the cylinder. You can re-center a little there... Next I'm going to create the thread profile:
the cross section of the thread, and we're going to do that in the XZ plane: the side of the
cylinder basically. What i'm going to do is make a thread profile that a lot of people
make. It's just an equilateral triangle. This is vertical and then we have the two sides. We're going to make all three of those
equal so it's an equilateral triangle... if I can find it... I've been using FreeCAD 0.18,
so 0.19 is a little bit different for me. We're going to make that five
millimeters tall, that thread profile. Now we can drag it down and place it. I'm going to put this six millimeters from
the bottom, there, and this 20 millimeters from the vertical line. If
you have some experience with threads you're probably noticing the first
problem right now, but we'll get to that. I've completely constrained the sketch of the
equilateral triangle, that's the thread profile. Now you can see that profile. I'm
going to rename that to Thread Profile. The next thing I'm going to do is create the
helix that's going to be the path for sweeping this thread profile along... that'll become
clear later on. The first thing i'm going to do is... that's in the part workbench... I'm
going to create a primitive. I want a Helix. I'm going to make the pitch four millimeters
just for fun. The pitch is the distance between the bottom of one turn of the thread and the
bottom of the next turn of the thread. That's four millimeters. The height of the thread... I'm
going to say 8 mm; I want to make 2 turns for now. The radius I've found does or doesn't matter,
so I'm going to make it 21 millimeters so it's somewhere close to that thread profile. It's
a right-handed screw, a right-handed thread. Let's create that. Now you can see that.
We can close this. We have this helix now. One of the things we want to do is make the
bottom of it line up with the bottom of this thread profile. We've selected the helix and the property value here. That's it, in the data
tab... and we can look at the placement and change the position to six millimeters. Now you see that bottom is right
at the bottom of the triangle. Now we have the helix, we have the thread
profile, so we can naively try to do a sweep, but this isn't going to really work out
so well. But let's do it anyway. We have the thread profile and we're going to... first
of all go back to the Part Design workbench... We're going to make sure
that Body is the active body. Now we can do the thread profile and do a
sweep, here, through an Object which is this helix. The whole helix doesn't light
up but it does select the whole thing. That looks okay, except notice how
tilted everything is at the end. That's just an adjustment, here. I need to
change that from Standard to Frenet. I looked it up and it's pronounced
"Fruh-NAY" because the guy was French who cooked up this math. Now that I've done the
Frenet orientation the triangles look right. I should be able to now say Okay... and we get
this thing about 'Hey you're referencing something outside the body.' We don't want to do that, so
we'll cancel both of these things and start over. What I need to do is have something
that's basically this helix but inside this Body; part of this body.
Notice that the helix is a separate body. I have this body selected
and I want to select that helix and I want to say I want a Shape Binder. The Object is the helix that I'm going to
create a Shape Binder to. What this does is, it's kind of a cross-reference.
It lets this body refer to that helix. Changes I make to the helix change
in the shape binder as well. I can hide the helix for now and you can
still see the shape binder thread there. Now that I have that I can go
back and do my sweep again. Let's select the thread profile, do the sweep... ...select the shape binder of the helix, which doesn't light up.
It's tilted, so we have to do the Frenet. There it is. We click Okay and... oh, what happened here?
Like I said for those of you who have some experience with threads,
you already know what I did wrong. The problem is that the thread
doesn't intersect with the cylinder. I'm going to get rid of that sweep. I'm going to
go back to looking at my thread and my profile. If we look at the profile, it starts at 20 millimeters and the
cylinder is 20 millimeters radius. That means these two things are coincident. Freecad really doesn't like that sort of thing. This thread profile needs to overlap
with the cylinder a little bit. We're going to change that from 20 millimeters to 19.25 millimeters. (Oops,
it should have been 19.75 mm.) That way our thread sort of bites into, it
overlaps with, the wall of the cylinder. Now we can do our thread again. Again if
you've done threads before you probably can see another mistake I'm making at this
point, that I'm doing on purpose for now. We want to take the thread and we want to sweep it through this path the helix,
the shapefinder of the helix, Again we want to make sure
that we've got Frenet set here. Everything looks nice so let's say okay and... Ooh! it's wrong again! Here's our second way of doing it wrong. The first way of doing things wrong was to
have the thread not overlap the cylinder. The second way of doing it you can see here
we have what's called a self-intersecting feature, a self-intersecting body. What's happening is this thread is five
millimeters from the bottom to the top and the pitch, the distance the thread is going
to cover in one turn, is only four millimeters. Each turn of the thread
overlaps with the previous one, which FreeCAD again doesn't like,
and a lot of CAD packages... It's a poor practice to have those things overlap. You don't want a self-intersecting feature. We're going to back up a little more again. I'm going to delete that sweep... and we're going to change our thread profile
so its height is smaller than the pitch. Remember, the pitch is four millimeters, so we'll make the height three
millimeters so there's plenty of room. Now we can do the sweep again... I could have done these things without
deleting and recreating the sweep, but it helps, just for showing what's going on to show the creation every time. We're still doing the Frenet,
and we're doing the two turns. We're looking okay again, so
this ought to work, right? Let's see... It looks good, but is it really? Another thing this version of FreeCAD
doesn't like is a a thread that crosses this, the seam of the... or that's lined
up with the seam of the cylinder. But we don't see anything wrong yet, right? This is why what I like to do is, as the very
last step of designing a part...a body... I like to do a Refine Shape on it. That tends to show problems that
even Check Geometry doesn't find. We can do Part... oh, it's hiding
under a different place now... Refine Shape under Create a Copy. Watch what happens to the cylinder wall... The cylinder has only one
side now at the upper part. Everything looks good at the lower part, but the upper part is missing. What's wrong here? Well, one of the things that's wrong, is
starting the thread at the seam of the cylinder. FreeCAD doesn't like that. What we're going to do to take care of that... We're going to rotate the helix and the
profile of the thread just a little bit, so they're off that seam of the cylinder. So the first thing I'm going to do... Remember the
shape binder over here is a binder to this helix. I can change the helix and the shape
binder will reflect those changes. What i'm going to do is up here
at the placement of the helix... I have the helix selected...
placement of the helix, I'm going to change the angle from
zero to two degrees and recalculate... Other things happen but we'll take care of that. You'll notice now this doesn't start on a seam. We need to make a corresponding
change to the thread profile. Looking at the thread profile, looking at
the attachment, not the placement, here... The attachment, the upper one.. We're going to change this angle to 2 degrees. First we have to change the axis it's working on. So the axis it's rotating around is
the the z-axis of the the whole body. We can get rid of this old
error about being outside scope. Now we're going to move the... let's make that
thread profile visible so we can see it change... We're going to change its angle to
2 degrees like we changed the helix. Now the thread profile and the helix we're going to sweep it through start
at the same plane; we start at the same spot. Now our thread is more correct, but you'll notice
we still have this strange highlighting here of... the whole cylinder doesn't highlight. It stops
halfway through and then the other half lights up. I've found that that suggests that there's
something really wrong with the geometry. Again, if we go into the part
workbench and do a Refine Shape, under Create a Copy / Refine Shape, Again we've got this problem of the
cylinder has become one-sided at the top. It's still good at the bottom. How do we fix that? Well, it turns out in the tutorial I found... I'll put a link in the notes here... The tutorial I found, about
doing threads in FreeCAD, talks about not doing multiple turns of a thread. Those don't work very well. Let's see what we can get away with here. Change the height to 7.95, that's almost two
but not quite two turns. Now you see how the whole cylinder
lights up when I hover over it. That seems to suggest that it's working. If I do a a Refine Shape again, here... Let's Create a Copy / Refine
Shape... (oops, I have to select it) You see, it still lights up correctly,
and it still looks good, so we're good. You'll notice the one difference is that this
thread crosses the seam of the cylinder only once. If we change that helix back to an
eight millimeter height and recalculate, you see we have this problem again. I've found that just experimentally.
It's obviously a bug. It's obviously a bug, but this
is how to work around it for now, or how I've found to work around it. Let's say we did want three turns of this thread. How do you do that when you can't create a
helix with more than just under two turns? One way I figured out is to do just one turn of
the cylinder... sorry, one turn of the thread... and then use a linear pattern
in the Part Design Workbench, a linear pattern, over here, to duplicate that one
turn three times to make our three turn thread. I'm going to go back to the helix and I'm going
to say... it's a pitch of four millimeters so I want a height of four millimeters. I can recalculate that... and so we get one turn. You can see that here: we get one turn. This still isn't going to be right, but
let's go through what happens when I do this. We have this Additive Pipe feature,
which is the one turn of the thread. We want to do a Linear Pattern
feature to duplicate that. I want to select the z-axis... There we go. The distance is all wrong. That's okay. We want three turns so... I'm going to
calculate it incorrectly to begin with... We want three turns, so I'm
going to say three in here... We want that to be across... four times three turns, a four millimeter
pitch times three turns per pitch is 12 millimeters, so I'll put that in there... and that's going to be wrong because
of the way linear patterns work. There it goes. Okay. Now at least we have a transformation that worked. Let's get this in scale here. But you'll see that you know
things aren't lined up right. What we need to do here is three turns
minus the one turn that's already there, So it's two turns, times four millimeters,
would be two times four is eight millimeters. Once it's finished thinking you
can see we've got three turns here. I'm going to click okay. It looks pretty good, okay? One, two, three. I'm going to say okay. But notice we have this strange
thing going on again, here, of the whole cylinder not lighting up. I'll bet you if we go to Part Workbench
and Refine Shape again, it's going to... If we do Part Create a Copy again, Refine Shape, we get absolutely nothing. The linear pattern failed completely. Let's delete that, go back
to our linear pattern, here. What do you suppose is wrong? It turns out the problem has to do with, again,
things that are either right next to each other... What happened is because this is one
turn, it's right next to each other. The one turn and the next turn
are right next to each other... Or they overlap; that's also a problem. Let's show what happens when we do an overlap. Let's do a height of 4.1 millimeters to... Let it think there... Notice it's thinking a very long time. That seemed to work, but again you can
see this splitting of the cylinder. I'm not going to go to the trouble of creating
the the refined part to show that it doesn't work. Let's now back up a little
bit and go 3.95 millimeters, Just shy of one turn, and recalculate... It has to think a while... Now we have these slight
gaps in between the loops. I can make those smaller. You'll notice the whole cylinder lights
up, so we're in better shape now. Again I have to say that all this is kind of
working around bugs, so it's kind of quirky. Now you can see we have a pretty thin
gap between each turn and the next one, That probably won't present any problems
mechanically so we can live with that. I can show you again if we, in the
part workbench, here, Part Workbench, Select the object, do a Part Refine
through Create a Copy / Refine Shape, It's looking good. So we've found a couple of different
ways to make mistakes in FreeCAD, and how to work around them. The next thing I want to go through is
the shape: the profile of the thread. A lot of people like it,
equilateral triangles, for threads. Personally, I don't know why. But that's because I'm not a mechanical engineer. One thing to notice if we look
at the thread profile here, One thing to notice is the angle, here,
between the vertical and the side here. (if I can get the angle icon... there it is) It is 60 degrees because
it's an equilateral triangle. The trouble is, that might work on a small scale, you know it's only a millimeter... I'm sorry it's only a three, well
less than three, millimeter overhang, But if you were trying to do this on a
large cylinder with a large thread on it, it could be that your printer
couldn't print this overhang, because most printers can only do
an overhang of about 45 degrees. What I'm going to do is get rid of the
three millimeter constraint, here... if it'll let me... there it is... I can get rid of the
equilateral-ness of the triangle. That's constraint five, here. I'll get rid of that... Now i can change this angle to
be 45 degrees instead of 60. Now we have a thread that can print. Another thing I don't particularly like
about the triangle as a thread profile, when you 3d print it, it can
be kind of sharp... this point. and I don't like sharp points, like that anyway. What i'm going to do is change this to my
favorite thread profile, which is a trapezoid. These two lines are each vertical, and
this is going to be a 45 degree angle, because I like 45 degree angles, because you can print them
right side up or upside down. This one is going to be 45 degrees as well. ...as soon as FreeCAD is finished thinking... The reason FeeCAD is taking so long here is it's recalculating the whole thread, every time I change one constraint in this sketch. It's a little time consuming. What i'm going to do is change the
thickness to 1.25 millimeters... ...I didn't see the constraint I'd put in... That's one and a quarter millimeters. I'm going to make this one millimeter. The reason I like the one
and a quarter millimeters is it allows me to overlap with the
cylinder by a quarter millimeter, and have a one millimeter thread. See, it's giving all these
broken face errors here, that's because this somehow got changed to 19.25 so the thread doesn't fit anymore. I don't know how that happened... Now we have our our new thread profile, and there we have what it looks like. It's nice and smooth, and
it's certainly 3d printable. (Here is the printed result.)