diff --git a/servo_pusher/servo_enclosure.scad b/servo_pusher/servo_enclosure.scad index 35d7db1..c8fd26c 100644 --- a/servo_pusher/servo_enclosure.scad +++ b/servo_pusher/servo_enclosure.scad @@ -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,9 +110,33 @@ 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() { box();