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’ ...
81 lines
1.5 KiB
OpenSCAD
81 lines
1.5 KiB
OpenSCAD
// The servo mount bracket.
|
|
module bracket(d=36) {
|
|
t = 3;
|
|
w = 30;
|
|
h = 50;
|
|
sd = 25;
|
|
|
|
$fn = 40;
|
|
|
|
// Main arm.
|
|
module arm() {
|
|
hull () {
|
|
cube([t, w, w]);
|
|
translate([0, d, w/2])
|
|
rotate(90, [0, 1, 0])
|
|
cylinder(t, w/2, w/2);
|
|
}
|
|
}
|
|
|
|
// Holes in the left arm.
|
|
module servo_holes() {
|
|
// Servo hole.
|
|
translate([0, d, w/2])
|
|
rotate(90, [0,1,0])
|
|
{
|
|
// Servo horn indent.
|
|
translate([0, 0, -1])
|
|
cylinder(1+1, sd/2, sd/2);
|
|
// Screw hole.
|
|
translate([0, 0, -1])
|
|
cylinder(t+2, 8/2, 8/2);
|
|
// Outer screw holes.
|
|
for (i = [0:90:360]) {
|
|
rotate(i)
|
|
translate([0, 8, -1])
|
|
cylinder(t+2, 2.5/2, 2.5/2);
|
|
}
|
|
}
|
|
}
|
|
|
|
module left_arm() {
|
|
difference () {
|
|
arm();
|
|
servo_holes();
|
|
}
|
|
}
|
|
|
|
module right_arm() {
|
|
difference () {
|
|
union () {
|
|
arm();
|
|
|
|
translate([2, d, w/2])
|
|
rotate(90, [0,1,0])
|
|
cylinder(2, sd/3, sd/3);
|
|
}
|
|
// Bolt hole.
|
|
translate([2-3, d, w/2])
|
|
rotate(90, [0,1,0])
|
|
cylinder(t+2+2, 3/2, 3/2);
|
|
}
|
|
}
|
|
|
|
// Bracket made of two arms and a joiner.
|
|
union () {
|
|
translate([h, 0, 0])
|
|
left_arm();
|
|
|
|
translate([0, 0, 0])
|
|
right_arm();
|
|
|
|
cube([h, t, w]);
|
|
|
|
// Fill in the corners.
|
|
translate([0+t/2, t, 0])
|
|
cylinder(w, t, t);
|
|
translate([h+t/2, t, 0])
|
|
cylinder(w, t, t);
|
|
}
|
|
}
|