summaryrefslogtreecommitdiffstats
path: root/wheel.scad
diff options
context:
space:
mode:
authorRobert "ar" Gerus <ar@bash.org.pl>2013-06-06 02:45:50 +0200
committerRobert "ar" Gerus <ar@bash.org.pl>2013-06-06 02:45:50 +0200
commit9606e7364b63a782e25e66e7dd88921394137b29 (patch)
treee30cb7dd6f014d71017ae2f4f01d9230b2774706 /wheel.scad
download3dparts-9606e7364b63a782e25e66e7dd88921394137b29.tar.gz
3dparts-9606e7364b63a782e25e66e7dd88921394137b29.tar.bz2
3dparts-9606e7364b63a782e25e66e7dd88921394137b29.zip
My first object - a wheel with spokes
Diffstat (limited to 'wheel.scad')
-rw-r--r--wheel.scad29
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