Last active
November 3, 2019 20:50
-
-
Save thehans/2c96601af4e5c8c2d232e50252dd37b1 to your computer and use it in GitHub Desktop.
Rounded cube implementation
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
use <functional.scad> | |
$fa = 0.1; | |
$fs = 0.1; | |
module rounded_cube(size, r=0, center=false) { | |
s = is_array(size) ? size : [size,size,size]; | |
c = is_array(center) ? | |
[center.x ? 0 : s.x, center.y ? 0: s.y, center.z ? 0 : s.z]/2 : | |
(center ? 0 : s/2); | |
echo(c); | |
if (r > 0) { | |
translate(c) hull() | |
for(i=[0,1],j=[0,1],k=[0,1]) | |
mirror([i,0,0]) mirror([0,j,0]) mirror([0,0,k]) | |
translate([0.5*s.x-r,0.5*s.y-r,0.5*s.z-r]) | |
rotate_extrude(angle=90) | |
polygon(concat( | |
[[0,0]], | |
arc(r=r, angle=90) | |
)); | |
} else { | |
cube(size, center); | |
} | |
} | |
rounded_cube([4,6,8], r=1, center=false); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Rounded cube has some particular symmetries... This ended up taking way too much effort, but it does make a very nice rounded cube.