Where is the best thread making video featuring correct method?

Hi Helvetosaur,

Three points:
(1) Thanks for researching drill-pipe joints. I wasn’t able to look into it much.
(2) I analyzed your example files, and pretty much agree with your analysis of your specific examples.
(3) I disagree with your final conclusion, though. I think your conclusion is correct for your examples, but I think Sweep1 fails on my test cases. I invite you to re-create the following example from scratch, and see if you get the results I did. If you get different results, then maybe I did something wrong?

Here’s a thread specification, that is vaguely similar to a drill-pipe joint. The thread-pitch is larger than in your example, and the taper is 1:4. The fine grid lines are millimeters, so the major grid is in centimeters. The indicated lengths are in millimeters. In this example, the file’s tolerances are 0.001 mm (1 micron) for distance, and 0.1 degrees for angle. The 1 micron tolerance is the same as in your examples.

Initial radius is 60mm which tapers down to 35mm over a distance of 100mm. Thread pitch is 10mm. The thread-form is a 60-degree triangular profile (green polyline). I drew the thread-profile similarly to how you did in your examples.

Next, we use Rhino’s Curve->Spiral command to make a tapered-helix with the above specifications.

And we follow with a Sweep1-roadlike, where the tapered helix is the sweep-rail, and the green curve is the sweep-shape.

This Sweep1 surface looks okay at a glance, but I had lots of problems with it. Let me show you.

I slice this surface through the XZ-plane, and discard the front half. That leaves us with a bunch of half-thread surfaces. I’ve colored the top two half-threads brown and cyan.

When I to join the top two half-threads, Rhino refuses. Rhino says the two surfaces don’t align. So let’s zoom in.

The selected line-segment (yellow) is across the gap. We see a gap of around 5 microns, which is 5x the size of our tolerance of 1 micron. That’s too huge, so Rhino says it can’t join the surfaces.

I invite you, and anyone, to re-create this example. I would like to know if you also get a gap, and if so, how big is it? And if you don’t get a gap, then what did you do that is different from what I did?

Finally, we compare this to a lathe-cut version, to contrast it with Sweep1-roadlike. Here there is no gap.

So, I would say:
(1) Recreate this example of a tapered thread.
(2) See if you get similar or different results than me. Did I make a mistake?
(3) It can be worth discussing if this example is (a) realistic, and (b) if the error actually matters in practice.

i would suggest that this example is not too different than other thread-forms in photos of drill-pipe joints. But this is debatable.

This error mattered to me, in practice, because it prevented my Grasshopper script from generating a solid that was watertight to within my tolerance of 1 micron.

I think Rhino is doing double-precision floating point operations, so an error of 5 microns / 100 mm = 5e-5. For a simple example like this (no weird numerical instability), one would expect Rhino to achieve relative accuracies of better than 1e-6, if not much better. (In theory, double-precision floating-point, can represent numbers to a relative accuracy of 1e-16.) So, in my humble opinion, there is no reason Rhino shouldn’t get the geometry right to better than 1 micron, in this example.

So 5 micron errors, prevented my Grasshopper script from joining surfaces together. But how big is 5 microns in real-life? I’m not a machinist, but I hear that 0.0002 inches (0.2 mils) is considered very precise for objects of around 12 inches, and accuracies higher than that are very-high-precision. If you convert, 5 microns is just about 0.0002 inches (0.2 mils). Does that matter? I suppose it depends on the application. In drill-pipe joints, it might not?

Even if not, it’s still very annoying for scripting in Grasshopper. So I don’t use Sweep1-roadlike, and instead create the lathe-cut geometry in the way you described. (For me this was very fun and satisfying to figure out in terms of the math.)

Here are all the files for this example.
Sweep1-roadlike vs Lathe.zip (5.3 MB)

Sincerely,
–Anthony Yan

1 Like