Equation-Driven Fasteners

M4, M6 and M8 screws and nuts all produced from fastener template files.


Typically, anyone can just use the smart fasteners that are available in SOLIDWORK's own toolbox library. However, I have a preference against them as they do not always have fasteners in the same dimensions that are available from retailers such as Accu or RS Components. Furthermore, when it comes to the job of producing renders, I lean towards having detailed geometric threads. This has caused to be frequently produce my own custom fastener models during large scale projects. But this have proved to be a time consuming process. Additionally, having the geometric threads has a negative impact on performance which becomes particularly noticeable once my project ends up using hundreds or thousands of these fasteners. 


So, to save time and produce higher quality fastener models, I produced my own custom, equation-driven fasteners, where all I had to do was adjust the input variables on a singular page and a new fastener would instantly be created. I based this system around Accu's fasteners. From previous work, I have found that Accu manufactures some of the highest quality fasteners in a large range of materials and sizes.


As a user, the process would be as follows, I would go to the site, and select the fastener I want, scrolling down to its dimensions.

Then, using the key dimensions from this, I would adjust the corresponding values in the "Manage Equations" section of the fastener template file:

And once you exit this window, the fastener would be automatically created to specification.

Everything in the feature tree is neatly organized and labelled correctly so the user can fully understand what each feature/sketch does. 



Another important feature is the two levels of detail that are available to the user which can be toggled using 0 or 1 in the equation folder as well as being used in any combination.

Lowest Level of Detail: "Basic Screw"

Simple screw.

This is the lowest detail, turning off the fully detailed thread and cosmetic features. This would be the mode that one would use when working on a project as it provides the best performance and simplicity. 

Intermediate Level of Detail: "Fully Detailed Thread"

Adds geometric detailing of the threads. 

These threads take the thread size and pitch from the input dimensions in order to create a fully ISO accurate thread. This was achieved by using official ISO documentation on ISO threads. Having the thread be visible like this can sometimes be helpful towards design. 


Highest Level of Detail: "Cosmetic Features"

Toggling this goes for full detail with the aim of making the component be as accurate to its real-life counterpart as possible. 

This provides a very smooth model that not only looks at its best but also produces the best render results due to the filleted edges. The size of fillets and other detailing adjust automatically with the other dimensions without the user having to manually do this, further easing the production of fasteners. The main purpose of this is that the user can run the all the fasteners in an assembly at basic detail but for screenshots or renders, one only has to toggle these detailed features back on. 

 However, threads can prove to be to heavy on performance and RAM usage, so it is possible to only enable the cosmetic features but have the detailed threads turned off, providing a compromise between performance and quality if needed.


Shank Feature:

There is also an option for the addition of a shank. 

The aim behind the creation of this fastener template is to provide ease and flexibility to the user.



Locknut:

I have also produced an equation-driven locknut template with two levels of detail. 



Moving Forward:

So far I have only produced the two main fasteners that I typically use: a socket head screw and a locknut. However, I ideally need to expand this to further forms of fasteners to make this system as useful as possible. For screws, I have the option to create a more complex system where I could have multiple head types within one singular template. However, whilst this provides convenience to the user, it may also create further performance impact. So the simpler alternative would be to simply create a different standalone template for each type of fastener. 

Whilst massively time consuming, I could produce my own full library by saving each individual fastener size, creating a large pool of fasteners for the user to choose from. This could be accelerated by finding a way to automate fastener production by tying it to a spreadsheet full of fastener dimensions.

I BUILT MY SITE FOR FREE USING