Knurled Surface Library v2

by aubenc, published

Knurled Surface Library v2 by aubenc Oct 9, 2012
2 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Liked By

View All

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

15710Views 6667Downloads Found in Parts


A new version of the knurled finishing library with some added refinements, information, new modules and features.
(Everything detailed in the Instructions section)
Did my best to keep this backwards compatible with the previous knurl library.
Unfortunatelly, this thing keeps on finding it hard to render (as from example 06 you'll need to compile to see the output).
Hope you enjoy it.


Refinements: Changed the way the final shape of the knurled cylinder is made.
Information: Console ECHO for the knurled cylinder final diameters (top and bottom of the knurl)
More Info: Added the module "knurl_help()" that echoes available modules and parameters.
New module: "knurl()" parameters supported but not required, will generate a knurled cylinder with some "default" parameters.
Updated "Ends Smoothing" functionality: In the previous version this was "carving a bevel" to the knurled cylinder, now it can also "emboss that bevel". This can be of some use when substracting the cylinder from another cylinder.
Set "e_smooth" parameter to a positive value to carve, set it to a negative value to emboss, set it to zero for no bevel at all. The value is for the height of the bevel.
Browse the examples in the OpenSCAD and play a little bit with them!
Please do check the PDF available in thing:9095 if you need more information.

More from Parts

view more

All Apps

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

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

A basic flat knurled surface, for anyone's need:

module knurl_flat(size=[10,10],knurl=[4,2,1])
    module knurl1(size)

    translate([0,0,-.001]) { // To get a simple object
        intersection() {
            for (xx=[0:knurl.x:size.x+knurl.x]) {
                for (yy=[0:knurl.y:size.y+knurl.y]) {

Hi, I have used your knurled library in my MoneySpinner fidget toy: http://www.thingiverse.com/thing:1937473

I intend to upload my OpenSCAD script to Thingiverse Customizer so individuals can make spinners relevant to their country and the size of their coins.

As you may know, the Customizer only allows once SCAD file and minimal access to the 'use' function for libraries. I have therefore incorporated your library file (including attribution) in my SCAD file for uploading. I hope you don't mind :)

by GeoffB

Thanks for using the library and doing the best thing to do so others can also use it!
Nice thing btw

Thank you. I have managed to get the Customizer going now, so you can see how I dealt with your code. Thank you for your efforts with the library.

OpenScad is depreciating the assign module... this is the error that appears

DEPRECATED: The assign() module will be removed in future releases. Use a regular assignment instead.

I read some info in a OpenScad forum and there was talk of using for instead. Do you have a view as to what would work? Or... till it really stops working in OpenScad, should we just ignore the warning.

Thanks for the cool tool. I am using it to make repair for a portable sprlinkler right now... Will post when I finish my guess and test of the measurements. =)

Yes, you're right, OpenSCAD doesn't support variables, in the past, the "assign" trick was the only way to "assign" different values to a constant. Now you can do a direct assignment just using the equal sign.
I don't use the assign module any more in my new OpenSCAD scripts which often call (use/include) my old libraries with assigns without any problem but the warning message in the console.
I can live with that.
One day it will not work any more and I will have to do something about it unless someone else takes the time to post a derivative without those assigns ;)
Thanks for the comment!

Wow, I was looking to make a knob for the Z axis screw on my Printrbot Simple Metal and I like knurled knobs. Google turned up your library. I have made a flat plate of knurling but was wondering how to do it on a Cylinder. Thanks!!

You're welcome, thanks!

Do you have a source repository where we can follow the history/fork?

Sorry for the late answer, I'm finding some little technical issues with the Thingiverse's comments system.

No, I don't have such a thing, sometimes I think I should but I know I wouldn't be able to maintain it, I'm constantly jumping from one design back to an old one and suddenly starting something new... I never ever get to finish anything, what I upload here is that small portion of designs that are close to completion, or at least, functional enough to be published.

There wouldn't be any need to maintain it, just to make sure people can always find the latest version without having to search for the latest related thing. With version control it would also be very easy for others to help out with expanding the code.

would there be a way to make a flat piece for an anti-slip surface?

I did this by rotating a long cube 45 degrees and making a bunch of them in a for loop, then do it again at -45 degrees.
Probably a better way to do this (I am new at OpenSCAD) but here is what I have:
module cross_hatching() {
intersection() {
for(i = [1:110]) {
translate([1.5i,-L/4,0])rotate([45,90,0])rotate([0,0,45])cube([1,1,5W], center=true);
translate([1.5i,L/4,0])rotate([-45,90,0])rotate([0,0,45])cube([1,1,5W], center=true);
translate([L/2,0,0])cube([0.9L,0.9W, 10], center = true);
module to

No, not with this library (sorry) it only works for cylinders :(