Last active
June 16, 2023 08:55
-
-
Save groovenectar/292db1688b79efd6ce11 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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); | |
} | |
} |
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!
I got what I needed by changing a few lines:
module roundedcylinder_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() {
cylinder(h =
size[0] - (radius * 2),
r1= size[1] - (radius * 2),
r2 = size[2] - (radius * 2)
);
sphere(r = radius);
}
}
roundedcylinder_simple(size=[8,15,15],center=true,radius=2);
Thank you for sharing!!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I am wondering about how to convert this to roundedcylinder_simple.
Thoughts?