Thread Maker v4.1

Show off your FreeCAD projects here!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
KurtF
Posts: 161
Joined: Fri Mar 04, 2022 7:36 pm
Location: North Carolina, US
Contact:

Re: Thread Maker v4

Post by KurtF »

Finally, I've had a chance to do a "deep-dive" into the Fasteners Workbench (FW), after having initially dismissed it as not able to create mating Int/Ext threads with a clearance. This clearance is needed in 3d printed threads, because without it, after the curing process, mating printed threads will generate a mean interference fit during tightening, which turns much of the surface material into powder. I've found 0.1 - 0.2 mm radial clearance between mating thread surfaces gives a tight fit at first, but after one run-in fit, they tighten normally and survive lots of re-tightening afterwards (esp. using "coarse" pitch standards not available in the FW objects).

But I still wanted to come back to FW to discover all of it's functionality, and made note of 4 basic differences between ThreadMaker (TM) and FW.

Wide variety of bolt heads, washers, nut profiles. FW is rich with standardized bolt styles, nuts, washers which are threaded. TM has none of this, generating only Ext thread shafts and mating Int thread inserts.

Variable pitch. FW fasteners are created without user-selectable pitch, except for the "Threaded Rod" object. And that is only available for Ext thread. Also, setting a custom pitch for Threaded Rod will not adjust the diameter if using an alternate standard pitch from the ISO table. TM will generate any pitch entered, on or off the ISO chart; and you pick the diameter to use for it from the chart, rather than entering a "size" such as M10.

Filleted concavities. FW threads are filleted along the concave edges between threads, as allowed in ISO thread standard. This makes for a mechanically stronger thread bolt (or insert). TM threads can be filleted separately (select 1 upper and 1 lower arc edge, then PartDesign->Fillet).

Mating clearance. All FW threads are 0 clearance between Int. and Ext. As mentioned, TM allows user-specified clearance for generating 3d-printable, mating threads.

Clearly there are valuable benefits in both tools for us 3d printer owners trying to break the bonds of our brick-sized max print volume. From the above differences, and in the interest of getting the most out of FreeCAD in it's current form, I suggest and am following these guidelines for printing threads:

** Do it all in FW if you are printing threads to fit non-printed counterparts, and the "standard" pitch for each thread size meets your needs.

** Do it all in TM if you don't require fully formed nuts and bolts, AND [[[ you are printing mating threads (needing clearance); or you are printing threads to fit non-printed counterparts with pitch size not avial. in FW ]]].

** Use both FW and TM to generate complete nuts and bolts with 3d print capability or alternate/non-standard pitch. For example, to make a 3d M10 nut/bolt pair, use FW to generate a threadless bolt head and nut; use TM to generate the mating pair "Ext Chamfer Base" / "Int Bevel Base"; fuse the Ext threads to bolt head; fuse the Int thread insert into the nut.

I wonder if TM and FW could get 'hitched' someday. Just think of all the wonderful children we could have. Awww!


EDIT: Oh, I forgot to mention taper! NPT. If you need to print to fit NPT, you''ll need TM.
May whatever Higher Power you believe in bless the Ukrainians. They are a decent people who never hurt anybody.
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: Thread Maker v4

Post by Kunda1 »

KurtF wrote: Thu Apr 28, 2022 9:19 pm I wonder if TM and FW could get 'hitched' someday. Just think of all the wonderful children we could have. Awww!
Perhaps x-posting to the main Fasteners forum thread and bringing more FastenerWB fans to this thread for discussion?
shaise wrote:ping
@shaise is the dev for fasteners.
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
User avatar
shaise
Posts: 470
Joined: Thu Jun 11, 2015 8:11 am

Re: Thread Maker v4

Post by shaise »

KurtF wrote: Thu Apr 28, 2022 9:19 pm
Mating clearance. All FW threads are 0 clearance between Int. and Ext. As mentioned, TM allows user-specified clearance for generating 3d-printable, mating threads.
FW have configurable mating clearance special for 3D printed parts in the FW general settings.
User avatar
KurtF
Posts: 161
Joined: Fri Mar 04, 2022 7:36 pm
Location: North Carolina, US
Contact:

Re: Thread Maker v4

Post by KurtF »

Hi Shaise. I stand corrected then. This is undocumented feature, since FW wiki shows a preference only for grouping icons on the toolbar. Maybe you could add some text for this? I'll even offer some text, if you want to use or edit this:

========================================================
Preferences
...
Thread Generation Standard thread generation or 3D Printer Compatible threads. The 3D setting allows user
to set a clearance value, for diametric clearance between internal and external threads. In Standard mode, no clearance is applied.

For 3D Printer setting: Scale A is a diametric multiplier, Scale B is an additive clearance amount. NewDia. = OldDia. * ScaleA + ScaleB. Scale values are set independently for internal and external threads.

Changes in 3D scaling will be applied to all threaded objects already created in FW. (But you must first either move the FW object or regenerate threads by setting thread property to false, then back to true. Refresh does not work here)
========================================================End sample

First thing I did with this newly discovered feature was to apply max clearance Scale A to an M10 nut. It broke the model (is potato). More testing revealed that the model breaks when Scale A > 1.060 or Scale B > 0.600. In my first year 3D printing experience, a fixed radial clearance of around 0.2 mm proved correct for printing threads in M6 through M22. So FW passes testing for diametric clearance = 0.4 mm, and the model errors don't seem to affect real-world printing use cases. At most I can foresee using 0.5mm diametric clearance, for mating threads designed to be loose, like those found in a C-clamp, or the clamp model I showed in earlier post.

So... what does all this mean for the overall thread-printing workflow? I'll give that some more thought.
Last edited by KurtF on Fri Apr 29, 2022 10:48 pm, edited 4 times in total.
May whatever Higher Power you believe in bless the Ukrainians. They are a decent people who never hurt anybody.
User avatar
KurtF
Posts: 161
Joined: Fri Mar 04, 2022 7:36 pm
Location: North Carolina, US
Contact:

Re: Thread Maker v4

Post by KurtF »

Just noticed I haven't posted this yet.

Code: Select all

OS: Windows 10 (10.0)
Word size of FreeCAD: 64-bit
Version: 0.20.28671 (Git)
Build type: Release
Python 3.8.13, Qt 5.12.9, Coin 4.0.0, OCC 7.5.3
Locale: English/United States (en_US)
Installed mods: 
  * fasteners 0.3.40
May whatever Higher Power you believe in bless the Ukrainians. They are a decent people who never hurt anybody.
User avatar
KurtF
Posts: 161
Joined: Fri Mar 04, 2022 7:36 pm
Location: North Carolina, US
Contact:

Re: Thread Maker v4

Post by KurtF »

Hello again, Shaise. After a good night's sleep, I've been doing some of that thinking I mentioned. Are you interested in merging our tools together? Or perhaps I should ask if you are interested in absorbing ThreadMaker into Fasteners WB? Wanna get hitched and make beautiful, threaded children together? :-)

What I had in mind was replacing Fasteners WB Threaded Shaft with the 4 bodies in ThreadMaker (Int/Ext) * (Bevel Base/Chamfer Base). In current form, TM exposes these properties to the user: Diameter (Ext I.D.), Pitch, Length, Clearance, Left-Handed, and Taper Angle. This is different from the properties list in FW. I think you'd have to add a boolean for left-handed, and real# for taper angle.

I like the way you implement clearance, giving options for both multiplier and additive clearance. It makes sense that clearance would increase/decrease as a function of diameter in some print materials, so a multiplier works better than additive in this case. But I'm not sure the clearance property should be in Preferences. I think FW Clearance would be more useful as a new button on the toolbar. This is because not all threads in 3D print projects will want that. Another issue here is that just one clearance specification is applied to all FW fasteners together, and does not allow having a per-fastener clearance. So I guess you'd have to do some redesign to add clearance as a property to everything in FW. Perhaps it would be enough to only apply clearance property to the 4 TM bodies, and not the rest.

Please let me know if you like any of this. I don't know Python or FCAPI (yet), but I am a retired developer who last worked in Java, so I can probably help do at least some of the work. And I'd be glad to.
May whatever Higher Power you believe in bless the Ukrainians. They are a decent people who never hurt anybody.
User avatar
KurtF
Posts: 161
Joined: Fri Mar 04, 2022 7:36 pm
Location: North Carolina, US
Contact:

Re: Thread Maker v4

Post by KurtF »

Kunda1 wrote: Fri Apr 29, 2022 12:33 am Perhaps x-posting to the main Fasteners forum thread and bringing more FastenerWB fans to this thread for discussion?
Just finished doing that. Thanks.
May whatever Higher Power you believe in bless the Ukrainians. They are a decent people who never hurt anybody.
greentree
Posts: 4
Joined: Sat Apr 30, 2022 6:49 pm

Re: Thread Maker v4

Post by greentree »

This is a very useful tool -- thanks for working on it and sharing!

I'm getting an error trying to use it though:

The AdditiveLoft items in both Ext Bevel Base and Int Bevel Base show a red exclamation mark and the error message

Loft: At least one section is needed, internal name: AdditiveLoft

This occurs even when trying to recompute with the original parameters, e.g. by entering 4.0 for 4 as the length.

I've tested on ubuntu linux (both 20.04 and 22.04) with v0.19. I see you're using v0.2 so maybe that is part of the issue.

Do you have any suggestions for how to proceed?
User avatar
KurtF
Posts: 161
Joined: Fri Mar 04, 2022 7:36 pm
Location: North Carolina, US
Contact:

Re: Thread Maker v4

Post by KurtF »

20220429_120439.jpg
20220429_120439.jpg (476.62 KiB) Viewed 2053 times

This is the first prototype of a 3d-printed, universal swivel clamp portion of a smarthphone holder. It is the reason I created ThreadMaker. This CAD project started in DesignSpark Mechanical (aka Spaceclaim) CAD software, was imported into FC, and about half of the solid parts re-designed. Prototype 2 is in progress, but all the thread work is done. I still need to add ribs to the back of the plate to prevent all that warpage (is potato).
May whatever Higher Power you believe in bless the Ukrainians. They are a decent people who never hurt anybody.
User avatar
KurtF
Posts: 161
Joined: Fri Mar 04, 2022 7:36 pm
Location: North Carolina, US
Contact:

Re: Thread Maker v4

Post by KurtF »

greentree wrote: Sat Apr 30, 2022 7:00 pm ...This occurs even when trying to recompute with the original parameters, e.g. by entering 4.0 for 4 as the length.
...Do you have any suggestions for how to proceed?
Hello, Greentree, and thanks, I'm glad to hear it's useful. Can you please share all the inputs you have specified in your spreadsheet blue boxes? I'll see if I can re-create here in Winders.

I never had a problem entering either integers (4) or real numbers (4.0), and I expect your error is related to diameter, or maybe extreme taper angle.
May whatever Higher Power you believe in bless the Ukrainians. They are a decent people who never hurt anybody.
Post Reply