Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
// More information: https://danielupshaw.com/openscad-rounded-corners/
module roundedcube_simple(size = [1, 1, 1], center = false, radius = 0.5) {
// If single value, convert to [x, y, z] vector
size = (size[0] == undef) ? [size, size, size] : size;
translate = (center == false) ?
[radius, radius, radius] :
[
radius - (size[0] / 2),
radius - (size[1] / 2),
radius - (size[2] / 2)
];
translate(v = translate)
minkowski() {
cube(size = [
size[0] - (radius * 2),
size[1] - (radius * 2),
size[2] - (radius * 2)
]);
sphere(r = radius);
}
}
@groovenectar
Copy link
Author

groovenectar commented Jul 23, 2015

Usage:

// A single integer creates a cube with the specified wall distance. Default [1, 1, 1]
size = 5;

// An [x, y, z] vector specifies distance on each axis. Default [1, 1, 1]
size = [2, 3, 5];

// Whether or not to place the object centered on the origin. Default false
center = true|false;

roundedcube_simple(size, center);

Examples:

color("Yellow")
roundedcube_simple(3, true, 0.9);

translate(v = [1, 0, 2])
color("Pink")
roundedcube_simple([4, 2, 2], false, 0.2);

translate(v = [-4, -1, 2])
color("Lightblue")
roundedcube_simple(2, false);

translate(v = [0, 0, 6])
color("Orange")
roundedcube_simple([3, 2, 2], true);

translate(v = [2.5, -0.5, 5])
color("Green")
roundedcube_simple([3, 2, 2], false, 0.09);

Output:

Output

@daSpud46
Copy link

daSpud46 commented Aug 1, 2021

I am wondering about how to convert this to roundedcylinder_simple.

Thoughts?

@groovenectar
Copy link
Author

groovenectar commented Aug 2, 2021

I am wondering about how to convert this to roundedcylinder_simple.

Thoughts?

It's been a long while since I've worked on this...

I would think that a rounded cylinder could also involve the minkowski transform:

https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#minkowski

So I guess you would take a cylinder, and then add another cylinder (or perhaps a sphere) on a perpendicular axis along the edge, then apply a minkowski transformation to the whole thing? Actually I wonder if I could have used a cylinder or two for this rather than a sphere, now that I'm digging back in a little bit... I hope/wish I can get back into printing and designing within the next few years!

@daSpud46
Copy link

daSpud46 commented Aug 2, 2021

@groovenectar
Copy link
Author

groovenectar commented Aug 5, 2021

Thank you for sharing!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment