How do I create a knurl?

Hi all,

I am new to Rhino and looking to get some help creating a knurl. I have done them on TurboCad for MAC bye creating a rail sweep down a helix such as seen in the attached document. I am not looking to actually draw a full knurl but more just to learn how to cut a shape from a solid to produce handles with various spiral patterns carved down the length.

Any help would be greatly appreciated!


No attachment included.

This might help, it’s for Rhino for Windows but I believe all the same commands should work on Mac too.

If you want to place the flat 3D texture on a surface after that, use FlowAlongSrf.


Great tutorial, thank you

Sorry about that attached now!TC7Knurl (1).pdf (2.0 MB)

Thanks that’s a great video! Some good things I now want to try out but not exactly the thing I was hoping to do. Im looking to do one single knurl like cut which spirals down a tapering shaft sort of like a screw thread. Im wondering if there is a similar procedure as seen in the attached TurboCAD tutorial?

I remember someone posting a script for doing this but I cannot find it now.
I’m not sure if it was in pyton so that it would run on Mac as well. I’ll dig some more…

I’d follow the same principal.

  • Draw a circle 100mm diam
  • extrude a cylinder 100mm
  • Helix - 1 rotation - 100 pitch
  • Pipe the helix curve at 1mm with rounded ends
  • Polar array from the centre of the circle
  • Boolean subtract pipes from the cylinder

I guess the other way would be to use panelling tools to do this, which would be quicker.

  • Set points on the cylinder so that they are equidistant/square
  • offset the points by the height you want the knurl detail
  • create a texture, make sure it’s square
  • Panelcutom3D

I’ve only done it quickly but you could offset the texture or many other ways by rotating and copying, arraying. (5.5 MB)



P.S. I was just thinking as I reread my post… You could array or panel a pyramid so the tip is facing toward the cylinder and then Boolean subtract so you’re left with a solid. With the pyramids facing out you need to ensure the first set of points are slightly inset from the surface of the cylinder if you want to Boolean all the items together.

P.P.S I don’t know if panelling tools are available on Mac… Sorry if they’re not. Just use FlowAlongSurf as Brian suggested or polar array the pyramid as one ring, group and rotate the ring and keep copying it down the cylinder.

P.P.P.S Create a helix and then ArrayCrv the shape you want. Group that first set and then ArrayPolar to get different version.

The script was for Grasshopper so that won’t work.
But re-reading your initial post, you don’t really want a full knurl surface anyway. You should be able to do just what you say in that first post. Could you perhaps post a file with an example where you get stuck?

Thanks 2D! Thats exactly what I needed! Just while people are reading this topic. How would I go about preparing a file for CNC with the cylinder and pipe extracted from surface?

Just to add, on TC I basically made the shape I wanted at the end of the helix and extruded it along the curve but when I attempt that on Rhino it only creates repeating 2D shapes all the way long the curve. How can i produce a 3D extrusion along the helix?

If you’re still having problems with this, please post a file for people to look at. I’m not sure what you are seeing.

Sorry here is a screen shot of what I am trying to achieve. I am using boolean difference to inlay the helical shape. Here I am using a pipe where the top two worked but the other two failed, maybe control points or faces occupying the same area? What I would like is it to be a square pipe cutting a V-shape but this always fails on the tapered shaft. Are there any other ways of cutting the pipe from the solid?

The other problem that i am having is the helical square when tapered starts and finishes at the correct depth but towards the midpoint it begins to drop under the surface of the shaft.

Make sure that you have clean intersections between surfaces.
I’ve attached one way of doing what you are after.
cutting a cone-rh5.3dm (858.9 KB)

Thanks wim, can I ask how you achieved that? And by clean intersections do you mean making sure the helical shape is uniform all the way along its length? When I have been tapering the helix of the pipe, the pipe itself has been tapering too. I see yours is uniform all the way.

ps: thank you so much for your help! It is a lot of trial and error for me at the moment as I get more competent with rhino.

The file includes all the steps in layers that are turned off. Best to go through them one by one. I’ve updated the file using a spiral instead of an helix - simplifying things a bit.
cutting a cone-rh5.3dm (938.2 KB)

What I mean by clean intersections is that if you run intersect on the spiral and the cone, you will see that there are only a few points that actually intersect within the document tolerance. You always have to keep in mind that there are tolerances we have to deal with. If you make sure that the surfaces extend through each other with a comfortable margin (in this case by making the cross section extend well beyond the surface), you will end up with clean intersections. When things fail, especially when using booleans, it is because the intersections are not complete.