|
|
|
box_x = 70;
|
|
|
|
box_y = 55;
|
|
|
|
box_z = 16+10+3;
|
|
|
|
wall_thickness=0.8;
|
|
|
|
inner_screw=1; // TODO!
|
|
|
|
gear_distance = 25.2;
|
|
|
|
gear_thickness = 5;
|
|
|
|
|
|
|
|
module outer_old() {
|
|
|
|
$fn=50;
|
|
|
|
minkowski() {
|
|
|
|
cube([box_x,box_y,box_z]);
|
|
|
|
cylinder(r=wall_thickness,h=1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module inner_old() {
|
|
|
|
$fn=50;
|
|
|
|
translate([wall_thickness,wall_thickness,wall_thickness])
|
|
|
|
minkowski() {
|
|
|
|
cube([box_x-2*wall_thickness,box_y-2*wall_thickness,box_z]);
|
|
|
|
cylinder(r=wall_thickness,h=1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module outer() {
|
|
|
|
$fn=50;
|
|
|
|
cylinder(r=40/2+wall_thickness,h=box_z);
|
|
|
|
translate([gear_distance,0,0]) cylinder(r=40/2+wall_thickness,h=box_z);
|
|
|
|
translate([0,-(40/2+wall_thickness),0]) cube([gear_distance,40+wall_thickness*2,box_z]);
|
|
|
|
}
|
|
|
|
|
|
|
|
module inner() {
|
|
|
|
$fn=50;
|
|
|
|
translate([0,0,wall_thickness]) cylinder(r=40/2,h=box_z);
|
|
|
|
translate([gear_distance,0,wall_thickness]) cylinder(r=40/2,h=box_z);
|
|
|
|
translate([0,-(40/2),box_z-wall_thickness]) cube([gear_distance,40,5]);
|
|
|
|
}
|
|
|
|
|
|
|
|
module servo() {
|
|
|
|
$fn=50;
|
|
|
|
translate([6,0,0])
|
|
|
|
{
|
|
|
|
cube([22.5+0.5,12+0.5,33.5-5.5],center=true); // body
|
|
|
|
translate([0,0,28/2-3]) cube([32.5,12.5,2.5],center=true); // bracket
|
|
|
|
translate([-6,0,-14]) cylinder(r=2.8,h=35.5); // bearing
|
|
|
|
translate([27.5/2,0,5]) cylinder(r=inner_screw,h=10); // screw
|
|
|
|
translate([-27.5/2,0,5]) cylinder(r=inner_screw,h=10); // screw
|
|
|
|
translate([-22.5/2-0.6,0,0]) cube([1.2,4,28],center=true); // cable
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module space() {
|
|
|
|
$fn=50;
|
|
|
|
translate([6,0,0])
|
|
|
|
//translate([27.5/2,0,28/2-3]) cylinder(r=inner_screw*2.2,h=9); // place to screw
|
|
|
|
translate([0,0,28/2-3+4.5+2.5]) cube([32.5-0.3,12.5,2.5+9],center=true); // place to screw
|
|
|
|
}
|
|
|
|
|
|
|
|
module servo_bracket() {
|
|
|
|
$fn=50;
|
|
|
|
minkowski() {
|
|
|
|
translate([6,0,3]) cube([22.5+0.5+9-wall_thickness*2,12+0.5-wall_thickness*2,6],center=true); // body
|
|
|
|
cylinder(r=wall_thickness,h=1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module gear_bearing() {
|
|
|
|
$fn = 50;
|
|
|
|
cylinder(r=10/2,h=6+2.5+1.5+gear_thickness+1.6);
|
|
|
|
cylinder(r=5/2,h=box_z-wall_thickness);
|
|
|
|
}
|
|
|
|
|
|
|
|
module lid_screws() {
|
|
|
|
$fn = 50;
|
|
|
|
translate([gear_distance/2,40/2-2,box_z-8]) cylinder(r=inner_screw,h=8);
|
|
|
|
translate([gear_distance/2,-(40/2-2),box_z-8]) cylinder(r=inner_screw,h=8);
|
|
|
|
}
|
|
|
|
|
|
|
|
module box() {
|
|
|
|
difference() {
|
|
|
|
outer();
|
|
|
|
inner();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module rod() {
|
|
|
|
translate([20-7.5-16,-100,6+2.5+1.5+gear_thickness*2+1.5]) cube([12+0.8,173.2+0.4,5+0.4+3]);
|
|
|
|
}
|
|
|
|
|
|
|
|
difference() {
|
|
|
|
union() {
|
|
|
|
box();
|
|
|
|
translate([0,0,0]) servo_bracket();
|
|
|
|
translate([gear_distance,0,0]) gear_bearing();
|
|
|
|
}
|
|
|
|
translate([0,0,-4]) servo();
|
|
|
|
translate([0,0,-4]) space();
|
|
|
|
lid_screws();
|
|
|
|
rod();
|
|
|
|
}
|
|
|
|
%translate([0,0,-4]) servo();
|
|
|
|
%rod();
|
|
|
|
//translate([20,0,box_z-10-wall_thickness]) cube([10,10,10]);
|