Knurled surface finishing library

by aubenc, published

Knurled surface finishing library by aubenc Jun 6, 2011

Featured Thing!

104 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps



Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

64354Views 31260Downloads


YAPML yet another poor man's library that makes things finding it hard to render and taking its time to compile.

In this case the self-replicating polyhedron is intended to give a mechanical touch to your freshly (or not) designed cylindrical surfaces. Hmmmm... you can also thing that those things all-around the cylinder are diamonds and use it for jewelry.

The examples scad provided uses OpenSCAD MakerBot Font Module by grokbeer licensed under BY-SA-NC license (link in the instructions section)

Photos... http://aubenc.imgur.com/knurled_finish_surface

(Just in case you don't read the comments bellow)
Video by sirmakesalot (thank you very much!!)... http://www.youtube.com/watch?v=uz8h--NsX7E

Things using this library :-)

Bowden Clamp for Ultimaker by owen

Spindle for 5lb spool by mikeq

Knurled "topper" for stepper motors by Pazu

Ultimaker Hobbed Bolt Release by bkubicek

Hobbed bolt holder by coffeeMaker

Shane's Coral Frag Plugs by sgraber

Bowden Clamp for Ultimaker (Feeder End) by pit3k


Go to http://www.thingiverse.com/thing:6844, grab the Font Module, follow that thing's own instructions to be able to use it and come back.

Go to http://www.thingiverse.com/thing:8796 to get the screw library, follow that thing's own instructions to be able to use it and come back.

Download 'knurledFinishLib.scad' and drop it into your OpenSCAD library folder or the folder where you are writing your OpenSCAD script.

Use 'knurledFinishExamples.scad' to start playing with this library.

Knurl things.
Print them.
Share them.

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

this nut and bolt set were the very first thing i ever made! it has started a long adventure with makerbot

This bolt is about perfect for something I use at work, the diameter is spot on, but I need a higher thread count. Is that something easily done. Thanks, great design.

the source code is there, things have change a lot those last 5 years and you may find some troubles with the "M", other than that, the OpenSCAD scripts available to download should allow you to make the screw with the dimensions you like.

May 23, 2016 - Modified May 23, 2016
turnerr - in reply to aubenc

I'm getting close to getting it right.

Thanks for your work.

It's a lot of work to get this libraries to work specially if you haven't done anything with OpenScad
The things linked to this item need some work to get going and some other problems will show when start tinkering with the libraries.

Other than that Good job!

I am still having issues with a couple of procedures on this but I am sure I can figure it out. if not you will be hearing from me >:]

Thanks for your comment,
this thing was published some 5 years ago from now, everything has changed a lot since then, OpenSCAD and thingiverse included.
The OpenSCAD script available here was also using another library from someone else (to be able to use the font for the M in some of the parts) and I remember having some troubles also trying to use all this.
For that reason I published a second version ( http://www.thingiverse.com/thing:32122 ) without the font and with some extra features.
I would encourage you to check out that v2 library and, in the case you'd like to add some text, use the text features that are included into OpenSCAD itself, much more powerful and easy.
Thanks again!

Knurled Surface Library v2
by aubenc
Comments deleted.

I would never dare to say someone else's work is junk, thanks for the comment anyway.

Printed nice, but did have to scale the nut up 1.02 to get it to fit.
Idk if its just my kossel or not. Ill try on my prusa i3


I have the replicator2 and this design is as demo in the sd card (x3g form).
The printing is perfectly but i want to know the settings that you have used because i want to use them at other designs.

Can you inform me about the settings? Infill , number of sells , layer height , extruded speed , traveling speed because i can not read them from the file.

Thank you.

Mar 1, 2015 - Modified Mar 1, 2015
aubenc - in reply to petros

Hi, well... not so easy to answer here. Sorry for the long tale I'm afraid I'm gonna write.

The bundled file was sliced by Makerbot and I have no idea about the settings they used for your printer.
My printer was a Cupcake CNC with a very different extruder (DC motor instead of stepper) and a home made hot end and nozzle (which ended up being a 0.5+ nozzle).

Provided your printer is well setup for the material you use (*), two or three shells, 0.20mm or even 0.25mm layer height, 35mm/s feedrate, 10% to 15% infill should do the trick, there's room for more shells if you like to add them (then you could also decrease the infill to speed up the print) and, finally, I usually set the number of solid bottom/top layers in a way that gives me a solid thickness of around 0.5mm.

(*) One of the recursive comments here is "the nut doesn't fit", I don't remember what tolerances I used for those parts but I'm pretty sure it has to be something in the 0.6 to 0.8mm range. Some people tend to resize (X and Y) the nut, that fixes the non-fit issue but then nut and bolt head have a different OD (may be not noticeable but...)

My advice is not to resize but spend some time adjusting extrusion temp and flowrate for the specific roll of filament you intend to use. Yes, per roll of filament, even if it is exactly the same material, color, manufacturer and provider, there may (most probably will) be differences.

In my experience, a couple or more degrees up or down can make a huge difference in the fitting of interlocking parts, also, you may, I mean should, take a sample of measurements of your filament and use an average value as the filament diameter and then you may end up with a flow rate that's fine for most your prints but again, that setting may be a source of issues for interlocking parts because of the density of the material which is hard to know/adjust, at least for me.

I normally cheat in the value for the filament diameter, most of the times I start with a value that's 0.05mm thicker than measured, that will result in less material being extruded, I print something small with 3 or 4 bottom and top layers and take a close look to those layers (**)

  • Are the first bottom layers way thicker than the next ones? Then I still have to use a higher filament diameter value to extrude even less material.
  • Is the infill of the solid layers overlapping or not reaching the inner perimeter/shell? Then I have to increase (for overlapping) or decrease (when they don't reach each other) the diameter again.
  • Is the top solid layer showing too much or not enough material? The same than above...

(**) Yes, that's true, this is not the proper way to tune your printer and, also, you have to be sure that everything else in your slicer profile and printer is set to the right values. Z has to be well "zeroed" and, depending on the slicer, there's a number of different parameters that will have an impact on how perimeters will meet other perimeters and infill.

Hope it helps and, again, sorry for the long answer. Good luck!

The nut is not printing correctly... It looks like the threads are all rings, and the tollerances are so tight you can't get the bolt to fit.

What printer? Setup (nozzle size,...)? Material (ABS, PLA, Nylon,...)? Settings?
Sounds like the issue is one or many of these: Extruder temp too high, printing speed too fast, layer height too high.
Try to decrease the extruder temp a few degrees, external (active) cooling may also help, set the printing speed at around 30mm/s and layer height not higher than 0.20mm.
If you get to print the threads without issues but still, the fit is too tight you may try (to decrease a little bit more the temp and/or) scale up the nut in the X and Y dimensions (do not scale Z !).
Hope it helps.

if you want these to work from the supplied (defective) .stl files make sure to Scale the Nut 1.05 for X and Y and 1.02 for Z axis. I know because I have this model printed and sent to me as a sample from Makerbot HQ and I measured my prints against the sample. The bolt is the same size, no scaling needed. The nut in the sample was larger than the .stl model by the factors I suggested.

Don't take me wrong, every comment is very welcome, specially when it's meant to help people to successfully print one of my designs however... this sounds weird. Did you try to download and print the files from this page?
Scaling up the nut may still be required depending (on many things, mostly) on how fine tuned (hardware and software) is the printer. What it doesn't make much sense to me is having to apply a different amount of scaling on X and Y. Apparently that would suggest an issue in the tensioning of the corresponding belts, being the issue worse in the belts from one axis than the other. This being said, then it doesn't make sense that the bolt doesn't show this deformation.
The "supplier" from this STL has been printing thousands of those, not only to send as a sample but also to give away at numerous events. Again, it doesn't make much sense that they bother to scale them to print or that they modified the bundled STL.
I would really appreciate if you could mail me the "defective" STL files at my thingiverse name (gmail dot com) so I can check them, thanks!

Jan 17, 2015 - Modified Jan 17, 2015
briankb - in reply to aubenc

First let me apologize for calling it defective. What I should have said was it was too perfect or something to that effect. That said I actually measured with a digital dial caliper the sample of this design that MakerBot Industries sent to me. I've printed this on several machines with no changes and none of them would work, most of them would start and go down about the height of the nut and get stuck. The sample print from Makerbot would start and go and tighten up completely against the bolt shoulder, as you would hope or expect.

So last night, after dialing in my Orion delta printer, I printed your nut and bolt as a calibration experiment and it did the same thing as all the previous prints I had made. I knew my Orion was dialed in to almost perfection from printing a step cube and a few other pieces and measuring it. So that gave me the idea to dig out the Makerbot sample print and measure it. Sure enough the bolt they provided and my freshly printed (but cooled) PLA print were within a thou of each other so I moved on to measuring the nut. And yes the nut they provided as a sample was actually adjusted as I described. I used the standard calibration method to determine how much scale was needed for each. Below are the measurements for each and the calculation for scale factor.

Makerbot provided sample print "Nut" OD 23.53mm ID 13.88 Z 10.40
My Orion printed "Nut" (no scaling just as STL) OD 22.80mm ID 13.34 Z 10.18
formula: (orig/printed)*orig = scale
XY (ID) Scale Calc: (13.88/13.34) = 1.05 (rounded up/fudged)
Z Scale Calc: (10.40/10.18) = 1.03 (rounded up/fudged)

So I printed the nut by itself but scaled XY to 1.05 and Z to 1.02 and measurements
OD 24mm ID 13.75 Z 10 which are a bit larger than the sample I have but this scaled nut worked just like the nut from Makerbot. And it worked on previously printed bolts as well.

Again I apologize for using the term defective, it implies your awesome work making this model was in error. And thanks for creating and putting this design online for all of us to use and enjoy when showing something 3D printed to others. A working 3D printed nut and bolt is always impressive to people who are new to 3D printing.

Dec 30, 2015 - Modified Dec 30, 2015
energywave - in reply to briankb

I'm just now starting to print this model to understand clearances and printing precision of my NewMatter Mod-t using PLA. However, having read your comment, I've checked the STL models of the screw and the bolt using 123D desing: I overlapped them as you would do to insert it by hands, and found that the fillet is perfectly aligned with a certain clearance (that I've not measured). So the scaling question is gone, without empirical measures. If there is a problem it's about printing parameters, IMHO.
I'll see how will be the finished object...
EDIT: after printing dimensions was perfect and I screwed the bolt on the screw. It was only needed some force and I detached some mm of a layer that was loose but after that it's working perfectly without any modifications!

aubenc, any way to replicate this set in SolidWorks? I'm trying to change the letter on the end, and I was wondering if there is an original .sldprt or even a .step file available.

Thanks in advance,

Unfortunately.... the only thing I know about SolidWorks is "that it exists", I'm afraid that I will not be able to be of much help here :(

This thing was made with OpenSCAD (the sources are available to download) and as far as I know, OpenSCAD cannot generate SolidWorks files.

Dunno if there's any STL to SLDPRT (or STEP) converter.


No worries, thanks for the quick response! All I'm really trying to do is change the letter engraved on the end. If it's not possible, that's fine. Meanwhile, back to trying to rebuild it manually.

Thanks again,

Printed! I was surprised that multiple could print on the replicator mini at one time. Some of the rafts didn't hold and had to reprint a few times, but they look awesome and include way more detail then expected! +1

The shape and size of this thing shouldn't be too demanding for the raft to hold on, your printer may need little adjustment or cleaning the build surface.

Glad to hear that you liked it, thanks for the comment !

I can never get a nut to fit... I'm just using Slic3r. Using a test print from Makerbot and my bolts fit in their nuts but not the other way around... can't figure it out and my work area is covered in nuts.

Looks like "your" bolts&nuts are smaller than theirs. You could try to scale them a tiny bit only in the X&Y but not Z.

Successfully printed Today:) Thanks for sharing.

Cool! Thanks for printing it!

Is it a W, E, M, or 3?

My Philips head screwdriver inst fitting into it, do I need to scale it up or down?

A real masterpiece ! i received the sample from makerbot ! Incredible ! Great work !

Glad you like it, thanks a lot !

is it possible to make longer ones of these as need a long nut and bolt for my new invention. thanks!

aubenc - in reply to

it is possible to make them any size you like. It is also really easy to do if you are used to OpenSCAD, it should work just changing a couple of parameters in the script.

i'll try this openscad what parameters/ axis should I change and what should I replace the code with. Also how do you access this alteration in openscad thanks for your continued help.

aubenc - in reply to

Just follow the instructions. Unless you really like to include the Makerbot M in your design, you may skip everything related to the fonts library.

As a side note, the way that OpenSCAD calls the libraries has changed since I did this so you'll probably need to replace the word "include" by "use" in the examples OpenSCAD, as well as remove everything using the fonts library.

Take a look to the "Makerbolt()" module, you'll see what parameter is used to change what dimension. Also to be take in account, I did the threads library a long time ago to be easy to print in those old times printers. Now printers perform much better and you may like to consider using other libraries (there are some in Thingiverse) to produce standrd size threads.

if you could make a bolt the same diameter as this one 10cm long including handle that would be absolutely great thanks! Then publish it and comment again with link. Thanks

aubenc - in reply to

Done you'll find it available to download as "100mm_Kbolt.stl" (or something like). Btw, there's no "M" in the head.

i couldn't find it sorry aha

aubenc - in reply to


what should i search in the searchbar as nothing showed up with them other words

aubenc - in reply to

Oh, sorry!!! I understood that you finally found it!
You don't need to look for it, it's "here", I just added to the "thing files" section in this thing, it should be the last file in the list named "100mm_Kbolt.STL" if I'm not wrong.
If you don't find it send me a mail with an addres where I can send it directly to you.

oh right silly me Thanks !!

Hey can you post the actual dimensions of the files pl......I'm comparing some prototypes

Well, I guess I could :)

There's a lot of "dimensions" here: Diameters, lengths, tolerances, for bolt, nut, knurls and also the dimension for the knurl's pattern...

You'll find them all into "knurledFinishExamples.scad", there's no need to know anything about OpenSCAD, it's just a text file and all the dimensions are easy to find.

Hope it helps!

Mine didn't fit together, but I fixed it! They weren't perfectly round, and jammed. So I dropped the nut (made of PLA) in a cup of boiling water, then ran it on the bolt. Better, but still stiff. Then I heated the bolt, and used the improved nut to ease the thread. When the bolt cooled, it fitted perfectly!
A useful way to get PLA things to fit.

Yeah, that's how mine turned out too. Thanks for the tip, boiling water works wonders for reshaping pla.

Cool! Nice tip!! However, wait... they weren't perfectly round??? I'd would check the tension of the belts and grease/oil the rods!

Can you knurl interior surfaces too, like the inside of a pipe?


Well, it should be as easy as extracting the knurl cylinder from another cylinder. The only thing is...

...right now I cannot tell what are exactly the inner/outer diameters for the knurl.

I guess that it shouldn't be difficult to find out by taking a look to the library. Hopefully I can find some time in the following 2 days if you are not in a hurry ?

 Cool, thanks for looking into it! I'm in no rush.

 Sorry for the delay, I did took a look and the (not so) short answer is: if you let the surface smoothing parameter to 0 (very pointy knurls) the outer diameter is the one passed in the parameters plus half of the knurl depth and the inner diameter is the outer diameter less the half of the knurl depth. However, if you specify a surface smoothing value... pfff... it's a little bit more complex :-P

I ended up making a new version of this library (couldn't help it), it took me a couple of hours to make the changes but I'm still busy polishing some examples... I should be able to upload it any time in (hopefully) less than 3 days.

I don't see how to attach a picture in this new comments system. I wanted to add a snapshot of some renderings from the new lib version... coming soon!

Very nicely done. Thanks for teaching me the End cap trick!

You're welcome! Thanks for the comment :)

Wow. Instantly my favourite show-off piece, and printed perfectly first time :)

Thanks! Is very rewarding to hear that printed well !!

(threads that match can be a little bit tricky)

Great design!

Printed first try with no modifications necessary (or cleanup required)

Awesome! I tried this when I first got my TOM and it didn't quite work. Now I have learned a few things and have my machine dialed! worked on the first try no cleanup! Video to come later tonight, Sweeeeet!

I can't wait to see that video!

Next step: Use the libraries to make your custom bolts, nuts... "whatevers" and post the pictures/videos of them :-D :-D :-D

:-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D

Link to the video added into the details of this thing, hope you don't mind :-P

Not a problem. Nice to contribute!

I made a set at 1.00 scale, but I could not quite get the nut to fit. I reprinted the nut at 1.05 scale and it threaded on, but maybe a bit looser than I would have liked. So probably scale of 1.02 or 1.03 is right. Did this work fine for everyone else at 1.00 scale for both?

Sorry to hear that :( In fact, this set is not meant to be scaled.

Because every printer is different, there is a little tunning to get this working fine. Printing the bolts at higher feedrate and the nuts at lower speed helps with the quality of the print but may make the fit to tight or impossible.

There are parameters in "knurledFinishExamples.scad" to help.
In your case I would set n_gp in nut_4_Makerbolt() module to 0.25 and see what happens...

I also encourage everyone to play a little bit with the screw library (http://thingiverse.com/thing:8796)thingiverse.com/thing:8796) to find out what are the profiles and scad (gap) parameters for bolts
amp; nuts gaps. I've successfully print threads that work from 7mm to 95mm.

Once you find the right parameters for, let's say the little threads, finding the right ones for the larger ones ins much easier and everything in the middle is quite straight forward :-D

Poor man's openscad screw library
by aubenc

Yes, for the design. I have found very few things that will Skein right off and print VERY well. I've gone nut
amp; bolt crazy. The picture is 2X because I was having problems with another small print. The 2X came out beautiful. I can't put it down. So, I'm not making about a dozen for some Boy Scouts to play with. The regular size also prints amazingly well.

One suggestion/request - knock the knurls down to about .75 and fillet/radius them a little more. They are authentic but, man they hurt. :-D

Yeah, the parameters I used were intended to give a nice result for the size I was uploading the examples here but can be too wild when you scale it up :-D

Well that's the magic of OpenSCAD, just change the parameters to taste (to make it even more aggressive :-P )

Actually, I have printed to scale as you submitted and the knurles are too aggressive. They could be tempered and refined. They look cool - but, they hurt.

To clarify. The knurls to be .25 smaller or .75 of their present values. Here is a picture of the differing sizes I'd printed.

I like printing good designs. It makes the bot look more than its normal amazing and sure brings the childish joys back. I just make a few calculated SF settings, generate gcode, print and watch magic happen. The tolerances are right on.


...making one of those :) and what an awesome print!!

...uploading the photo

...the comment.

I was adding a surface smoothing parameter which I thought it was ridiculous because bot1334 does already this job :-P Now that I see your print I'm also happy that I did it.

This could be modified to be the handle of a double edge safety razor.

aubenc - in reply to Guest

I'll love to see the designs using these libraries!

(so don't forget to share them!!!)

I saw that someone had previously printed the handle to a disposable razor. I was thinking that it would be much better if someone designed pieces to a three piece safety razor. Here is a picture I found on Amazon that reflects my idea.

Do you think that this could be possible?

I see some potential issues... just a matter of find the solution/turnaround.

I don't know but I guess the blade don't lays flat if that's the case, the "plates" should have a semi-cylindrical shape and be quite thick enough to be able to bend the blade (and not the blade bending the plastic plates).

If the blade lays flat makes everything much easier to design and print.

Ideally, we should design some sort of clip
amp; alignment system to replace the screw
amp; pins, otherwise we would need non-printed bolts
amp;nuts and we don't want to have rust in a device that can be in contact with blood (I wouldn't use inox/whatever hardware neither). This clip system should be something we can trust it will not "unclip" while using the razor.

The smallest bolt I've print has a diameter of 10mm for the threaded section. I gave a try to a 8mm one but it ended up in the form of a blob of melted plastic, so size could be also a constraint. May be some of the awesome cooling systems available in thingiverse could fix this.

Finally, what I
say above it's just my 1sts thoughts but I don't really know what I talking about :-D

The reason I suggested the safety razor design is because it cuts the cost of blades tremendously. Gillette sells a pack of an 8 pack of cartridges for at most $30 on amazon and at least 10 for $20. You can get 100 safety razor blades on Amazon for $8.

Pay $3.75 per blade for a Gillette cartridge or pay 8 cents per blade.

You're correct. In safety razors the blades don't lay flat they bend slightly when pressing against the semi-cylindrical piece on the top. This happens when the handle is screwed into the top piece. When the handle is not completely screwed in the blade takes on more of a flat shape.

What is mo
st important in this design is that it functions with existing blades which have the pattern in the picture above.

I like your suggestion of a clipping mechanism. Sadly I can't really conceptualize what you're thinking about. I keep thinking of a miniaturized plastic belt buckle type mechanism. How
would the clipping mechanism hold the blade in place? Would part of it go through the three holes in the blade and lock into a faster in the top?

:-D :-D

belt buckle, clip, whatever... as far as it secures the blade it's ok

my 1st attempt would be something like this...

This looks like a good first draft to me. I am excited to see what the digital design looks like.

Oh sorry, there's not digital design at all. Just this quick sketch.

Where is your Flattr button? =-O

What? It's not there?? ;)

Damn, I just finished printing 8 bolts and 12 nuts before I saw this :'(

aubenc - in reply to caru

Yeah... I was keeping this thing on-hold till you finish to print them :-P :-P :-P