X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=hc-sr04.scad;h=2055eb414b4c4e8d8426445b29be25789d574504;hb=de6bb578c39b9d8e9ec1e6ba54026f6a2900da73;hp=13d9fa3e0d8c522e67ec071295aba59c21e4a895;hpb=d068819b13ceae87c575c5bb3a62eed3380f68c7;p=things.git diff --git a/hc-sr04.scad b/hc-sr04.scad index 13d9fa3..2055eb4 100644 --- a/hc-sr04.scad +++ b/hc-sr04.scad @@ -4,26 +4,30 @@ infty = 100; wall = 1.5; cyl_r = 8 + 0.5; -cyl_x = 27 / 2; +cyl_x = 26.6 / 2; cyl_h = 8; // above pcb, max 13.8; -pcb_x = 45 + 0.5; -pcb_y = 20 + 0.5; +pcb_x = 45.6 + 0.7; +pcb_y = 20.2 + 0.5; xtal_h = 5; pcb_supp = 3; // side support thickness pcb_h = 8; // 1.2 + space for connector etc -pcb_thick = 2; +pcb_thick = 2.5; cyl_base = pcb_x/2 + wall - cyl_x; -conn_x = 12.5; -conn_y = 12; +conn_x = 10 + 0.5; +conn_y = 15; cable_w = 7; -cable_h = 3; +cable_h = 4; -mount_h = 3; -screw_sp = 5; +screw_head = 7.5; +screw_d = 4; +screw_base = 2*wall; + +clip_r = 1; +clip_h = 8; module sensor() { hull() { @@ -63,41 +67,40 @@ module case_body() { // connector translate([-conn_x/2-wall, pcb_y/2-wall, 0]) - cube([conn_x+2*wall, conn_y+2*wall, pcb_h+wall]); - } - for (x = [0, 180]) rotate([0, 0, x]) hull() { - // eps-wide cube - translate([pcb_x/2-eps, -4/2-wall, pcb_h + cyl_h + wall -eps]) - cube([eps, 4+2*wall, eps]); - // bottom plate - translate([pcb_x/2+wall, -screw_sp/2-wall, 0]) - cube([screw_sp+wall, screw_sp+2*wall, wall]); + cube([conn_x+2*wall, conn_y+2*wall, pcb_h-pcb_thick+wall]); + // screw mounts + for (x = [1, -1]) scale([x, 1, 1]) + translate([pcb_x/2+wall, -screw_head/2-wall, 0]) + cube([screw_head, screw_head+2*wall, screw_base]); } } -rotate([180, 0, 0]) // rotate it for easier print -difference() { - case_body(); +module case() { difference() { - sensor(); - // pcb clip - translate([-8/2, -pcb_y/2, pcb_h-pcb_thick-wall/2]) - rotate([0, 90, 0]) - cylinder(r=wall/2, h = 8, $fn = 4); + case_body(); + difference() { + sensor(); + // pcb clip + translate([-clip_h/2, -pcb_y/2, pcb_h-pcb_thick-clip_r/2]) + rotate([0, 90, 0]) + cylinder(r=clip_r, h = clip_h, $fn = 4); + } + // mount holes + for (x = [-1, 1]) scale([x, 1, 1]) { + translate([pcb_x/2+wall, -screw_head/2, screw_base]) + cube([screw_head+eps, screw_head, infty]); + // screw hole + translate([pcb_x/2+wall+screw_head/2-screw_d/2, -screw_d/2, -eps]) + cube([screw_d, screw_d, infty]); + } + // text + translate([0, 3.5, pcb_h + cyl_h + eps]) + rotate([0, 0, 90]) + linear_extrude(height=wall) + text("CVT FI", font="DejaVu Sans:style=Bold", size=5, + halign="center", valign="center"); } - // mount holes - for (x = [0, 180]) rotate([0, 0, x]) { - translate([pcb_x/2+wall, -screw_sp/2, wall]) - cube([screw_sp +wall+eps, screw_sp, pcb_h + cyl_h + eps]); - translate([pcb_x/2+1+wall, -3/2, -eps]) - cube([3, 3, wall + 2*eps]); - } - // text - translate([0, 3.5, pcb_h + cyl_h + eps]) - rotate([0, 0, 90]) - linear_extrude(height=wall) - text("CVT FI", font="DejaVu Sans:style=Bold", size=5, - halign="center", valign="center"); - } +rotate([180, 0, 0]) // rotate it for easier print + case();