CAD/spdbt/wheel.scad
Michael Hope 93d98a10ca + ‘.gitignore’
+ ‘hab/’
+ ‘hab/18650.scad’
+ ‘hab/battery_holder.scad’
+ ‘hab/cr18650.scad’
+ ‘hab/debug.log’
+ ‘hab/libjuju.scad’
+ ‘hab/pigateway.scad’
+ ‘hab/sensemicro.scad’
+ ‘hab/thermo.scad’
...
2017-09-17 21:40:21 +02:00

91 lines
1.5 KiB
OpenSCAD

e = 0.1;
$fn = 60;
module motor() {
translate([0, 0, 18+21])
cylinder(3, d=6.5, d=6.5);
translate([0, 0, 18])
cylinder(18, d=23.5, d=23.5);
cylinder(21, d=25, d=25);
}
module wheel() {
spokes = 5;
r = 20; // Wheel radius
w = 2; // Spoke radius
rt = 4; // Rim thickness
module spokes() {
rotate([0, 90, 0])
for (i = [0:360/spokes:360]) {
rotate([i, 0, 0])
cylinder(r, w, w);
}
}
module hub() {
translate([0, 0, -w])
cylinder(w*2, d=19, d=19);
}
module slot(o) {
t = 1;
translate([0, 0, o])
difference() {
translate([0, 0, -w])
linear_extrude(t)
circle(r+rt+e);
translate([0, 0, -w-e])
linear_extrude(t+2*e)
circle(r+rt-t);
}
}
module rim() {
difference() {
translate([0, 0, -w])
linear_extrude(w*2)
circle(r+rt);
translate([0, 0, -w-e])
linear_extrude(w*2+2*e)
circle(r);
slot((rt-1)/2);
}
}
module cap() {
v = 6;
cylinder(v, 5, 5);
translate([0, 0, v])
sphere(5);
}
translate([0, 0, w])
union() {
// spokes();
hub();
// rim();
cap();
}
}
module shaft() {
h = 9.8+3;
r = 2 + 0.4;
difference() {
translate([0, 0, -2])
cylinder(h, r, r);
translate([2*2-2.5, -2*r, -2-e])
cube([4, 4*r, h+e*2]);
}
translate([0, 0, -e])
cylinder(0.6, r+1, r+1);
}
difference() {
wheel();
shaft();
}