93d98a10ca
+ ‘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’ ...
91 lines
1.5 KiB
OpenSCAD
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();
|
|
}
|