- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 19
Small fastener improvements #25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Adjust AE nut size to match expected format for length
| There is a lot of content here. I'd like to break this PR into separate PRs, one for each feature which will help with review. However, I do have some comments: 
 Thanks for improving bd_warehouse! | 
| I've found that I have the opposite drill tip problem with a project I'm working on - how about we add  | 
| 
 @gumyr I note that this PR was 6 months ago. And you mentioned that you were porting the bearing generator from cq_warehouse. Is this port completed? In relation to the breaking the PR into multiple PRs, would it be possible to cherry-pick the commits, modify as you suggested, and merge the modified commits as new PR/feature? We have not heard from @infused-kim for quite a long while, yet we would love to see his work make it into bd_warehouse | 
| There are a few common bearings - here are the docs: https://bd-warehouse.readthedocs.io/en/latest/bearing.html Normally I like to have the person that create the PR get the credit for the code but it appears that this work has been abandoned so breaking it up and resubmitting the commits would be find by me. | 
| 
 @gumyr I just ported the commit about HexSetNuts and allowing more than three parts into a new PR #46 can you please have a look? | 
Hey guys,
As previously discussed in discord here are some small contributions to the fastener module.
I added multiple things in one PR, but separated each improvement in a separate commit to make review easier. But please let me know if you prefer separate PR for each thing or only want to merge some, but not all of the suggestions.
1. HeatSetNuts from AliExpress
They can be purchased here: https://www.aliexpress.com/item/1005005220632314.html
It seems like there are multiple stores / brands that sell the same nuts (same dimensions and images). I picked this one, because he has the largest selection, a large amount of sales and was fast to respond in the support chat.
You can also find the spreadsheet I used to edit the data here:
https://docs.google.com/spreadsheets/d/1ZpZ6ltspaA5y2Nw6DH-3abuv4ToLoAWX3zQu_ON2lfs/edit?gid=0#gid=0
2. Allow nut size to have more than 3 parts
Some of the AE nuts had the same size thread size and height, but different variations in the outer diameter, such as
M2-0.4-H2-D3.2andM2-0.4-H2-D3.5(outer diameter 3.2 vs 3.5).So, I added another
-to distinguish between them.But then the code stopped populating
length_size:So, I changed it to allow more than 3 parts.
Make drill tip optional in
_make_fastener_holeSomething that surprised be when working with the insert holes was that the holes ended up deeper than the
depthsetting I specified.The issue was that the
drill_tipwas added below thedepthand the size of it was dependent on the width of the drill, so difficult to compensate for with a shorter drill tip.I added a
drill_tip: boolparameter that lets you control whether you want to include it.You can test it with:
Add ability to print fastener size info in human readable format
Another challenge I faced was that the underlying data that is used to generate the fasteners was not easy to understand for humans, because it was using parameters like
s,dk,m, which were not documented and required reading of ISO specifications to understand.For screws that are strictly standardized that's fine, but for heat set nuts it would be useful to see the underlying sizes of supported nuts. That way users can easily compare the nuts in their collection or in a store to the ones that are supported in bd_warehouse.
I implemented it by adding a dictionary that describes the csv parameters:
You can access the info with...
Or print it as a table:
I am using this to allow users to select, which fastener they want to use in the 3d print using command line arguments.
It looks like this...
Conclusion
Let me know what you think. If you'd like to change anything, please let me know. Or just make changes in here.