X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=blobdiff_plain;f=earring-stand.scad;h=976a83f9babacf4e94ec1274a2f42345d0d91cea;hp=7c44031eb10e2d1beddde7da01abcf5f1209f9eb;hb=914da8f1701aedc590aaa542f59ac92e2d9c3bfb;hpb=04c7181325dc5ab5fba4d8778034b13912b322cd diff --git a/earring-stand.scad b/earring-stand.scad index 7c44031..976a83f 100644 --- a/earring-stand.scad +++ b/earring-stand.scad @@ -7,7 +7,11 @@ front_width = 120; front_setback = 30; front_thick = 2; -back_thick = 2; +front_hex_stride = 20; +front_hex_dia = 10; + +back_thick = 3; +back_pillarw = 6; base_thick = 2; @@ -51,6 +55,8 @@ eclip_wall_offset = -ppxl; eclip_ra_offset = r2 - 0.1; +eclip_recept_height = r2; + eclip_rhs_offset = ppxl + rgap + eclip_prong_th; // does not include main_th @@ -228,14 +234,32 @@ module Base(){ thicks[0]]); } +module FrontPattern(){ + totalh = front_height - eclip_wall_offset + thicks[1]; + + ystride = front_hex_stride; + xstride = front_hex_stride * cos(30) * 2; + difference(){ + square([front_width, totalh]); + for (xi=[ 0 : 10 ]) + translate([xi * xstride, 0]) + for (yi=[ 0 : 10 ]) + translate([0, yi * ystride]) + for (dv=[ [0,0], + [xstride/2, ystride/2] + ]) + translate(dv) + circle(r= front_hex_dia/2, $fn=6); + } +} + module Front(){ ObjectJoins(1); rotate([0, 90-beta, 0]) translate([0, 0, ppxl]) rotate([0,0,90]) { - cube([front_width, - front_height - eclip_wall_offset + thicks[1], - thicks[1]]); + linear_extrude(height=thicks[1]) + FrontPattern(); } } @@ -250,9 +274,17 @@ module Back(){ 0, 0]) rotate([0,90,0]) rotate([0,0,90]) { - cube([front_width, - height, - thicks[2]]); + difference(){ + cube([front_width, + height, + thicks[2]]); + translate([back_pillarw, + eclip_recept_height, + -10]) + cube([front_width - back_pillarw*2, + height - eclip_recept_height*2 - eclip_prong_th, + 20]); + } } }