diff options
Diffstat (limited to 'wheel.scad')
-rw-r--r-- | wheel.scad | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/wheel.scad b/wheel.scad new file mode 100644 index 0000000..f3b4a19 --- /dev/null +++ b/wheel.scad @@ -0,0 +1,29 @@ +$fn=100; + +module wheel(radius, width, thickness, spokes) { + union() { + difference() { + // basis for our wheel - a sphere + sphere(radius); + // upper cut-out + translate([0,0,width/2]) + cylinder(radius-(width/2) +1, radius, radius, 0); + // lower cut-out + translate([0,0,-radius -1]) + cylinder(radius-(width/2) +1, radius, radius, 0); + /* + inner cut-out + removing 1 from z on translate and making the cylinder + higher by two to generate slightly more valid objects + */ + translate([0,0,-width/2 -1]) + cylinder(width+2, radius-thickness, radius-thickness, 0); + } + // spokes + for (i = [0:(360/spokes):360]) { + rotate([0,0,i]) + translate([-(radius-thickness),-(radius-thickness)/(spokes*2), -(width/2)]) + cube([(radius-thickness), (radius-thickness)/(spokes), width]); + } + } +}
\ No newline at end of file |