//tapa para el chasis del robot (90,105,5) //altura tornillo hto=10; //radio tornillo rto=1.7; //altura cabeza tornillo hct=2; //radio cabeza tornillo rct=3; //altura tuerca htu=2.7; //radio tuerca rtu=3.4; //diferencia de encaje D=0.4; tapa(90,70,5,2,10); module tapa(x,y,z,grueso,radio) { difference() { //tapa base translate([radio, x/2,0]) union()color("red") { minkowski() { cube([x-2*radio,y-2*radio,z/2], center = false); cylinder(r=radio,h=z/2,$fn=100); } translate([x/2-radio, 0, 0]) cylinder(r=x/2,h=z,$fn=100); } //agujeros led translate([x/2,52.5,3]) color("green") cube([2.5,5,10], center = true); //agujero pulsador derecho translate([x/2-10,40,3]) color("green") cube([2.5,7.5,10], center = true); translate([x/2-15,40,3]) color("green") cube([2.5,7.5,10], center = true); //agujero pulsador izquierdo translate([x/2+10,40,3]) color("green") cube([2.5,7.5,10], center = true); translate([x/2+15,40,3]) color("green") cube([2.5,7.5,10], center = true); //agujero interruptor derecho translate([x/2-12.5,65,3]) color("green") cube([7.5,16,10], center = true); //agujero interruptor izquierdo translate([x/2+12.5,65,3]) color("green") cube([7.5,16,10], center = true); //agujeros tornillos sujeccion color("Gray") { translate([10,30,-3])cylinder(h =hto, r=rto,$fn=100); translate([10,30,5-hct])cylinder(h =hct+1, r=rct,$fn=100); translate([10,100,-3])cylinder(h =hto, r=rto,$fn=100); translate([10,100,5-hct])cylinder(h =hct+1, r=rct,$fn=100); translate([80,30,-3])cylinder(h =hto, r=rto,$fn=100); translate([80,30,5-hct])cylinder(h =hct+1, r=rct,$fn=100); translate([80,100,-3])cylinder(h =hto, r=rto,$fn=100); translate([80,100,5-hct])cylinder(h =hct+1, r=rct,$fn=100); } } }