/* Ball Caster modificado*/ DiametroBola =16.5; DiametroTaladros = 3; DiametroCabeza =5.5; /*Diámetro de la cabeza del tornillo*/ EspesorParedes = 2.5; AnchoRanura = 5; EspesorBase = 3; AnchoBase = DiametroBola+EspesorParedes*2; LargoBase = DiametroBola+EspesorParedes*2+DiametroCabeza; /*Distancia entre taladros*/ difference(){ Principal(); Hueco(); Agujeros(); } module Principal() { union() { hull() { translate([LargoBase/2,0,0]) cylinder( h=EspesorBase, r=DiametroTaladros/2+EspesorParedes, $fn=40); translate([-LargoBase/2,0,0]) cylinder( h=EspesorBase, r= DiametroTaladros/2+EspesorParedes, $fn=40); } cylinder(h=EspesorBase+DiametroBola*0.7, r=AnchoBase/2, $fn=50); } } module Hueco() { translate([0,0,DiametroBola/2+EspesorBase]) sphere(DiametroBola/2, $fn=50); translate([-LargoBase/2,-AnchoRanura/2,EspesorBase]) cube([LargoBase,AnchoRanura,DiametroBola]); translate([-LargoBase/2,0,EspesorBase+DiametroBola*0.6]) rotate([0,90]) cylinder(h=LargoBase,r=DiametroBola*0.3,$fn=6); //translate([0,0,EspesorBase]) cylinder(h=DiametroBola/4, r=DiametroBola/2, $fn=40); translate([0,0,EspesorBase]) cylinder(h=DiametroBola, r1=DiametroBola/2,r2=0, $fn=40); } module Agujeros() { translate([LargoBase/2,0,-1]) cylinder(h=EspesorBase+2, r=DiametroTaladros/2, $fn=30); translate([-LargoBase/2,0,-1]) cylinder(h=EspesorBase+2, r=DiametroTaladros/2, $fn=30); }