|
|
@ -28,6 +28,8 @@ module outer() { |
|
|
|
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]); |
|
|
|
fastening(); |
|
|
|
translate([gear_distance,0,0])mirror([1,0,0])fastening(); |
|
|
|
} |
|
|
|
|
|
|
|
module inner() { |
|
|
@ -35,6 +37,7 @@ module inner() { |
|
|
|
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]); |
|
|
|
fastening_cut(); |
|
|
|
} |
|
|
|
|
|
|
|
module servo() { |
|
|
@ -87,7 +90,7 @@ module lid_screws() { |
|
|
|
} |
|
|
|
|
|
|
|
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]); |
|
|
|
translate([20-7.5-16,-100,6+2.5+1.5+gear_thickness*2+1.7]) cube([12+0.8,173.2+0.4,5+0.4+3]); |
|
|
|
} |
|
|
|
|
|
|
|
module lid() { |
|
|
@ -99,7 +102,7 @@ module lid_screws() { |
|
|
|
translate([0,-(40/2)+0.2,box_z-wall_thickness]) cube([gear_distance,40-0.4,wall_thickness]); // mid |
|
|
|
translate([gear_distance,0,box_z-wall_thickness*2]) difference() { |
|
|
|
cylinder(r=7,h=wall_thickness); // bearing outer |
|
|
|
cylinder(r=5/2+0.2,h=wall_thickness*2); // bearing inner |
|
|
|
cylinder(r=5/2+0.3,h=wall_thickness*2); // bearing inner |
|
|
|
} |
|
|
|
} |
|
|
|
translate([gear_distance/2,40/2-2,box_z-1]) cylinder(r=inner_screw,h=3); |
|
|
@ -107,8 +110,32 @@ module lid_screws() { |
|
|
|
// translate([-gear_distance/2-3,0,box_z-1]) cylinder(r=inner_screw,h=3); |
|
|
|
// translate([gear_distance*1.5+3,0,box_z-1]) cylinder(r=inner_screw,h=3); |
|
|
|
} |
|
|
|
translate([(20-7.5-16)-2,-(40/2)+2,box_z-wall_thickness-5]) cube([2,40-4,5+wall_thickness]); // rod guide |
|
|
|
translate([(20-7.5-16)-2+0.4,-(40/2)+2,box_z-wall_thickness-5]) cube([2,40-4,5+wall_thickness]); // rod guide |
|
|
|
difference() { |
|
|
|
translate([gear_distance/2,0,box_z-wall_thickness])cube([79,7,wall_thickness],center=true); // fastening |
|
|
|
translate([gear_distance+40/2+4,0,box_z-2*wall_thickness]) cylinder(r=1.4,h=8); |
|
|
|
translate([-40/2-4,0,box_z-2*wall_thickness]) cylinder(r=1.4,h=8); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
module fastening() { |
|
|
|
$fn=50; |
|
|
|
translate([gear_distance+40/2,0,box_z-2*wall_thickness]) { |
|
|
|
difference() { |
|
|
|
minkowski() { |
|
|
|
translate([0,-7/2+0.5,0])rotate([-90,0,0])linear_extrude(7-1)polygon(points=[[0,0],[6,0],[0,6]]); |
|
|
|
cylinder(r=1,h=wall_thickness); |
|
|
|
} |
|
|
|
translate([4,0,-5])cylinder(r=1.2,h=8); |
|
|
|
translate([4,0,-5.6])cylinder(r=2,h=4); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
module fastening_cut() { |
|
|
|
$fn = 50; |
|
|
|
translate([-30,-4,box_z-wall_thickness])cube([90,8,5]); |
|
|
|
} |
|
|
|
|
|
|
|
difference() { |
|
|
|
union() { |
|
|
|