I’ve built a plugin with help with AI called FastenWorks and wanted to share it with the community. It generates real, watertight NURBS solids for fasteners and hardware (not meshes) so they render cleanly, boolean reliably, and 3D printing.
In my line of work I need to create product assembly instructions and concepts designs. I created a crude version for my furniture hardware assembles. I thought I would let Claude help me develop it further. It turned into something more than I could have done on my own. Having a hardware generator has been really helpful as I find it annoying to download a mesh of parts or maintain a fastener library. I used BoltGen for years but was needing more types of fasteners than it offered. For my work, it’s more than enough to get the job done. Hope someone can find this useful in their work. This is free plugin, so don’t expect it to be industrial strength. I would consider adding requested parts if you have fasteners you are missing.
What it makes:
• Bolts, screws, nuts, and washers — lots of head and drive styles
• Real internal threads cut into your own solids
• A deep “Other Hardware” set: casters, furniture levelers, grease fittings, dowel & cotter pins, shelf pins, rivets, cam/furniture connectors, anchor shackles, and more
Features:
• Metric and imperial standard sizes, or enter your own dimensions
• Level-of-detail control, from a lightweight schematic to full render detail
• Place hardware straight onto a surface or solid, with optional matching thread or clearance holes cut for you
• Bill-of-Materials (BOM) report for all the hardware in a model
• Repeat-last-part for quick duplicates
• Block Support
Gives you the option of making matching washers and nuts when creating bolts.
It’s far from perfect, but hopefully it will get better with each update. I will do my best to keep it up to date. I would love to hear what you like and don’t like so I can make improvements.
Once installed and restart rhino, you should just need to type Fastenworks and it should pull up ( might want to give it second to load). There should also be a toolbar rui loaded too. Let me know if that’s not the case and I will look more into it. This is my first shared plugin so having other people loading it with their configuration might be a learning curve for me.
@cian Can you tell me your configuration and rhino version so maybe I can pinpoint what is going on.
Are you getting an error or are you not getting anything when you type fastenworks? Is there a toolbar? Just need more info so i can troubleshoot it on my end. Apologize for the trouble.
Hi Jason, I’m running Rhino V8 on Windows 11 pro and just installed python 3.12
No error message at installation, package manager shows it as being installed, but when restarting rhino there there is no plugin loaded. Typing ‘fastenworks’ at command doesn’t yield any results.
No apologises needed your plugin looks great and would assist me & other colleagues when working within rhino.
Ok. I got to get this package manager thing figured out on my end. I developed the YAK on my mac, so that might be the issue. This should work. I will post the YAK file here. Just drag and drop it on your rhino window to install. You might what to uninstall it from the package manager first before installing this. I seen what the problem you all were having when testing from my PC. I have an update to this version in the works. At least this way you can try it out to see if you like it.
Just a quick heads-up: after installing it via the Package Manager, typing the command returned an “unknown command” error. I managed to fix it by manually dragging and dropping the .yak file into Rhino.
Here’s how I resolved it:
Installed via Package Manager and restarted Rhino.
Added square drive to screws. Lightened geometry and clean up the self drilling tip (much cleaner) Self drilling screws how have different head options and Drive types. Added drive types to truss head screws. Minor adjustment to heat set nut. General bug fixes and UI fixes.
I will post these here until I get the Foof4Rhino issue worked out. I think it was because you can’t just upload your YAK to the F4R project page. I was zipping the YAK to upload the file, which is like double zipping the file . I think that is why you were seeing the YAK file in your windows directory.
I just uploaded V1.3.1 folder contents in a zip file and uploaded it to F4R. We will see how it goes.
Tested on Mac and Windows and got it fixed in the package manager. Everything should be good now. Update to v1.3.1 via package manager and let me know if you have any problems.
@jason thanks, the new version starts as expected.
I’ve found a thing:
If I make bolt, washer and nut (as block) out of any srf the pieces would not lie in the right position.
This is a bug that will be fix in the next update. The way its suppose to work is if you select to make a matching washer and nut for your bolt:
Place bolts on surface or freely
The nuts will be placed freely where you pick to place it on the work plane.
The washers will be placed freely where you pick to place it on the work plane.
Worth noting: that if you make it the bolt as a block with a matching bolt and nut, then 3 different block definitions are created. One for each.
The whole point of making a matching nut and washer was to save steps of going the menus for each part. Placement was of these components was something I did think about a lot.
The decision to not make it an assembly ( where the nut and washer are created fitting the bolt) was made based on how I thought it might be more universally used. Having to place it freely allow you place it on any position on the bolt when created. I first had it placed one the bolts, but I found I ended up adjusting them anyway to fit the material. This is something I went back and forth on how to aline the matching parts.
If you disagree with the freely placed nuts and washers, I would love to hear from you. Feedback is always welcome. The problem when a developing a plugin for myself was I alway right , which is not the case for others using it for different scenarios than my own.
@skysurfer Thanks for reporting this. I will get that bug fixed. I should have things wrapped up the new build soon so you can try it out.
Thanks for reading my message and to consider it.
For me an aligned placement would be better even if not matching the material thickness.
As you said you end up moving it in both situations.
To me, having them aligned, better if the gumball also align ( or the block placement point) speed up the positioning because you have only to change the height ( one direction)
Ok, I’ll put that fix in the latest update and I’ll post tomorrow. I have a few more improvements and other bugs I found. What I will do is line up the nut and washer if you selected the matching nut, washer or both. It would be a good compromise to matching components and placing them freely when you have just a bolt only selection.
Im trying to work on the alignment of a nut to an already placed bolt. Typically is would just look at the C plane for placement… but I’m trying to get it snap to them end of the selected thread with the correct nut orientation. Not an easy thing to automate considering the view you are placing the nut. It might end up being a “good enough” scenario. Trying to keep things simple without over complicating the process.
I’ll do my best and get some more feedback. I’ll post the updates and improvements I had added here once I published it. Thanks for your feedback. Hopefully these changes will be useful for most users.