You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

104 lines
2.8 KiB

box_x = 70;
box_y = 55;
box_z = 16+10;
wall_thickness=0.8;
inner_screw=1; // TODO!
gear_distance = 24.6;
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);
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]) cube([12+0.4,173.2+0.4,5+0.4+1]);
}
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]);