Die and mold design tools

I’m working on some scripts useful in tool designing. I’m going to try to sell these on Food4Rhino, maybe 2 or 3 designers would be interested :rofl::rofl::rofl:, but I’ll be happy starting something with this new hobby.
I’m not good writing english so short videos would show the behavior of these.
The truth is that I’m not computer programmer :sweat_smile::sweat_smile:, but I enjoy learning and solving problems, so I just found python and for me is a big puzzle :yum::yum:.

This is a progressive die, lower side, it’s not finished, so I’m starting doing all test.


Sometimes I feel sad :unamused: because the designer doesn’t take into account the diameter of the drill to tap a thread.
As an example:
In real life, if you are going to tap a M6x1 thread , then you should use a 5mm drill. But sometimes somebody :shushing_face::shushing_face::shushing_face: sends models with 6mm or any other diameter for tapping causing mistakes in cnc machining and wasting cnc programmer time, even more difficult is when the model has many holes in many different sizes and a plain color for the entire plate :disappointed_relieved::disappointed_relieved::disappointed_relieved:.

So, in this video I’ll show you what I wrote to make standardized holes.
In a list of taps I select M12 and this create holes of 10.2mm diameter and with yellow color indicating that these are metric threaded hole.

It could be done even around the body.

If selecting each point is a boring task, maybe you could use a cloud of points to make many counter bored holes at the same time.

Sometimes I have a plate above other and need to make a counter bored hole in upper and a thread in lower. We are going to try on many lowers :yum::yum:


It’s better to include each fastener and other hardware with correct dimensions. As everybody knows, even better if blocks instead of polysurfaces, because of performance.

Why? Well, once the design is complete, we could need a BOM including all components, material, sizes, standard parts, etc. That’s another command I’m working on.




It could be used even at different heights😋, just need to work in the cloud of points and use these once I’m sure I want the holes


And 3 plates with a specific direction. :yum::yum:
Well, I’ll change the way I have to select among options. :thinking::thinking::thinking:.

And will correct some issues.
But for hole making, is most of its capabilities.


That would be very helpful in many situations. Currently, I do all of these operations manually and using a tap/drill chart to check the recommended diameter for each thread, which is both slow and may lead to accidental mistakes with using an improper diameter. :slight_smile:

For the screws, I use the “BoltGen” plug-in, however, it generates geometry with a rendering mesh consisting thousands of polygons, so I had to export and save in separate files my most often used screws and applied a rough custom render mesh to them to reduce the amount of polygons (which is still huge due to the thread). Also, I have to orient each screw manually with the ! _Orient3Pt, which takes some more time. Your automated approach is a real time saver.


@Rhino_Bulgaria Thank you so much for your point of view. Then, each screw you are using is a mesh?
Could you write how much kb is file with an allen M12x90 for you (or any allen screw, preferably big and long) ? It would helpful for me, because I’m analyzing the kb of my files.

I’m doing besides these scripts a gallery with most of the hardware that I’m using often.
Trying to make it the most simpler way, because any user of this script could make their own components too, adding their owns to the existing library.

“BoltGen” generated an M12x90 crew with 55 662 triangular polygons with the default render mesh “Jagged and faster” (Rhino options > Mesh). If I change the render mesh to be “Smooth and slower”, the polygon count jumps to a massive 209 ᅠ444 polygons for just one screw. However, when I apply a custom render mesh to it with the settings from the screen-shot below, it reduces to 16 352 triangular polygons (still a huge number).

M12x90 (smooth and slower render mesh) (1).3dm (7.0 MB)
M12x90 (jagged and faster render mesh).3dm (3.5 MB)
M12x90 (custom render mesh).3dm (2.5 MB)

M12x90 (custom model).3dm (115.3 KB)
M12x90 (custom model, partial thread).3dm (119.1 KB)

209 ᅠ444 polygons = 7,04 MB
55 662 triangular polygons = 3,49 MB
16 352 triangular polygons = 2,46 MB

Not to mention that having a thousand of those screws in the viewport will tank the performance. This is why for some projects in the past I made my custom models of the most used screws that I needed. They lack the thread to reduce the rendering polygons to something like 200-300. :sweat_smile:

In this example, I made a simplified version of the same screw by retaining the head but replacing the thread with a basic cylinder. That resulted into 1 221 triangle polygons when using the “Smooth and slower” rendering mesh option, but once I apply a custom mesh to it the polygon count reduces to just 261. :slight_smile: I always group my screws, nuts and washers with a central line and 2 or 3 points to make it easier to snap and orient them in the 3d space. And a circle at the tip of the screw shows the inner diameter of the thread (10,2 mm for M12).

If I want to have a partial thread, lets say starting 30 mm from the head, I just split the cylinder and use a different material (light grey) to mark the thread. That results into a model consisting 296 triangle polygons.

261 triangular polygons = 115 KB (full thread)
296 triangular polygons = 119 KB (partial thread)


@Rhino_Bulgaria thank you for writing about your method and the entire analysis you’ve done. I’m going to look at each file to learn more.
One question. Have you ever seen a farm? :yum::yum::yum:. Well because I’m going to show you my bolts farm :sweat_smile::sweat_smile::sweat_smile:. I know you’ll like it.

The speed of video is 10X. The reason of doing this way is because I’m doing many tests and is easier to update the files and have control.

1 Like

That’s a pretty quick automated generation of a library with screws. :slight_smile: I usually only work with M5, M6, M8, M10, M12 and M14 screws of various lengths, but it still takes time to make them manually. :slight_smile:

I’m not sure if it will help you but FreeCad has got also a generator for Fasteners/Bolts/Nuts/Washers. So it would be possible to do own library quite fast. I’m not sure if it’s better but it’s free to try and use. It`s also easy to export/import to Rhino.


1 Like

In my case I have to make it this way because what I’m doing is each component with its own properties like name, material to calculate mass, specific layer, making it a block, etc. And each time I make a test I have to update the entire list of files.

I’ve seen the files, don’t you use blocks? That could help on computers performance.
Let’s suppose that you have 200 bolts in your assembly, if you have these as polysurfaces, megabytes of the file will increase so much, but if these 200 bolts are block of the same object, the file size will not increase too much.
I think that file size is helping on ram and making these blocks is helping on ram and video card.

1 Like

Does your script create all bolts as block instances?

Yes it does. That’s one of the reasons I needed make it by script, it is supposed that in gh could be done , but I have had no much free time :sweat_smile:. I’m doing this and other components to control the behavior when I use with my tools.

Thanks to your script and blocks it is more near to procedural solutions like Solidworks. And I love the idea to push Rhino into that area. Very wise and well done. I hope you will sell it someday as the final product. I`m sure it will be useful in many areas (f.e. to design electronic shells, 3d print etc.)


Yes, I’d like the idea of doing something to push rhino into mechanical area, for what I’ve been reading here, Rhino staff is working so hard on other areas to be more competitive on its main markets. And I really appreciate that effort.
When I’m at job, I work on other softwares, but while doing freelance or something for me, I always try to do entire job in Rhino. And that helps me on thinking on better ways to make a job and ideas for scripts :yum::yum: that is what I’m learning. Thanks for your wishes.


I’m going to be working on “Barley” (Hole making) adding more ideas, by the moment, I introduce you “Rice” (material and mass).

With this tool, is possible to assign materials, I ve just captured the most usable for me, mold and die steel. But with time I will capture more.


BoltGen can also make ones without threads.

I once made this tool while learning python that also allows to directly align the inserted bolt at the position/orientation you need:

saves you from orient3pt manually


You may be interested to know that since 10 days there is a new version of the “Peter’s tools” plug-in set that has the capabilities to apply real material properties to objects in Rhino 7, as well as a BOM funtion to export those properties to a spreadsheet program. :slight_smile:

1 Like