X-Git-Url: http://challenge-bot.com/repos/?p=challenge-bot;a=blobdiff_plain;f=3d-printables%2Fsonar-binder-clip-holder-data.scad;h=d9b20eacb8f1bdedd5c9f924981c8456bfee764e;hp=0eff47d68a22dda0e2773def7b2a84a3010dd594;hb=ce941be740b45737d19eaa5c726b2f99efabe0b9;hpb=f62bc6eec344361c1c7938b6cf735f7659a50474 diff --git a/3d-printables/sonar-binder-clip-holder-data.scad b/3d-printables/sonar-binder-clip-holder-data.scad index 0eff47d..d9b20ea 100644 --- a/3d-printables/sonar-binder-clip-holder-data.scad +++ b/3d-printables/sonar-binder-clip-holder-data.scad @@ -16,10 +16,15 @@ of it. */ -$fn = 50; +/* + * * TODO make hole for thing between cans + * * TODO make hole for screws in corners of pcb + */ + +$fn = 150; sonar_diameter_measured = 15.82; -sonar_diameter_print_fudge = 0.5; +sonar_diameter_print_fudge = 0.4; sonar_diameter = sonar_diameter_measured + sonar_diameter_print_fudge; sonar_radius = sonar_diameter / 2; @@ -30,17 +35,28 @@ between_sonar_centers = sonar_diameter + between_sonar_cans; // from one sensor to the next, so this allows for that variance. between_sonar_centers_variation = 2; -wall_thickness = 3; +wall_thickness = 4; -screw_radius_measured = 2.8; -screw_radius_print_fudge = 0.3; +screw_diameter_measured = 3.45; +screw_radius_measured = screw_diameter_measured / 2; +screw_radius_print_fudge = 0.4; screw_radius = screw_radius_measured + screw_radius_print_fudge; -sonar_binder_clip_holder_height = 2; +sonar_binder_clip_holder_height = 3; -module sonar_sensors_2d(sonar_radius, - between_sonar_centers, - between_sonar_centers_variation) { +/* + sonar holder + sonar holder outline + sonar holder holes + binder clip holder + binder clip holder outline + binder clip holder holes + sonar binder clip joiner + */ + +module sonar_holder_holes_2d(sonar_radius, + between_sonar_centers, + between_sonar_centers_variation) { hull(){ circle(sonar_radius); translate([between_sonar_centers_variation, 0]){ @@ -48,89 +64,81 @@ module sonar_sensors_2d(sonar_radius, translate([between_sonar_centers, 0]) { circle(sonar_radius); } } -module sonar_holder_outline_2d(sonar_radius, - between_sonar_centers, - wall_thickness) { - holder_radius = sonar_radius + wall_thickness; - holder_diameter = holder_radius * 2; +module sonar_holder_outline_2d(holder_radius, + between_sonar_centers) { + smaller_radius = holder_radius / 4; + inside_radius = holder_radius - smaller_radius; hull() { - circle(holder_radius); + offset(r = smaller_radius){ + square([inside_radius * 2, inside_radius * 2], center=true); } translate([between_sonar_centers, 0]) { circle(holder_radius); } } } -module binder_clip_holder_outline_2d(holder_radius) { - circle(holder_radius); } - -module sonar_binder_clip_holder_outline_2d() { - hull(){ - sonar_holder_outline_2d(); - translate([0,0,0]) { - binder_clip_holder_outline_2d(); } } } - -module sonar_holder_holes_2d() { } +module sonar_holder_2d(holder_radius, + between_sonar_centers, + sonar_radius, + between_sonar_centers_variation) { + difference() { + sonar_holder_outline_2d(holder_radius, + between_sonar_centers); + sonar_holder_holes_2d(sonar_radius, + between_sonar_centers, + between_sonar_centers_variation); } } -module binder_clip_holder_holes_2d() { } +module binder_clip_holder_holes_2d(screw_radius) { + circle(screw_radius); } -module sonar_binder_clip_holder_holes_2d(){ } +module binder_clip_holder_outline_2d(holder_radius) { + smaller_radius = holder_radius / 4; + inside_radius = holder_radius - smaller_radius; + offset(r = smaller_radius){ + square([inside_radius * 2, inside_radius * 2], center=true); } } -module sonar_binder_clip_holder_2d() { +module binder_clip_holder_2d(holder_radius, + screw_radius) { difference() { - sonar_binder_clip_holder_outline_2d(); - sonar_binder_clip_holder_holes(); } } + binder_clip_holder_outline_2d(holder_radius); + binder_clip_holder_holes_2d(screw_radius); } } -module sonar_holder_2d(sonar_radius, - between_sonar_centers, - between_sonar_centers_variation, - wall_thickness) { - difference() { - sonar_holder_outline_2d(sonar_radius, - between_sonar_centers, - wall_thickness); - sonar_sensors_2d(sonar_radius, - between_sonar_centers, - between_sonar_centers_variation); } } - -module binder_clip_holder_2d(binder_clip_holder_length, - screw_radius, - holder_radius){ - difference() { - circle(holder_radius); - circle(screw_radius); } } +module binder_clip_holder(holder_radius, + screw_radius, + sonar_binder_clip_holder_height) { + linear_extrude(height = sonar_binder_clip_holder_height) { + binder_clip_holder_2d(holder_radius, + screw_radius); } } module sonar_binder_clip_holder_2d(sonar_radius, between_sonar_centers, between_sonar_centers_variation, + screw_radius, wall_thickness) { - sonar_holder_2d(sonar_radius, - between_sonar_centers, - between_sonar_centers_variation, - wall_thickness); - holder_radius = sonar_radius + wall_thickness; - binder_clip_holder_length = 2 * holder_radius; - translate([between_sonar_centers + holder_radius * 2, 0]){ - binder_clip_holder_2d(binder_clip_holder_length, - screw_radius, - holder_radius); } } + holder_radius = sonar_radius + wall_thickness; + sonar_holder_2d(holder_radius, + between_sonar_centers, + sonar_radius, + between_sonar_centers_variation); + arm_length = between_sonar_centers + 2 * holder_radius; + difference() { + translate([0, -holder_radius]) { + square([arm_length, holder_radius * 2]); } + sonar_holder_outline_2d(holder_radius, between_sonar_centers); + translate([arm_length, 0]) { + binder_clip_holder_outline_2d(holder_radius); } } + translate([arm_length, 0]) { + binder_clip_holder_2d(holder_radius, screw_radius); } } module sonar_binder_clip_holder(sonar_radius, between_sonar_centers, between_sonar_centers_variation, + screw_radius, wall_thickness, sonar_binder_clip_holder_height) { linear_extrude(height = sonar_binder_clip_holder_height) { sonar_binder_clip_holder_2d(sonar_radius, between_sonar_centers, between_sonar_centers_variation, - wall_thickness); } } - -module binder_clip_holder(binder_clip_holder_length, - screw_radius, - holder_radius, - binder_clip_holder_height) { - linear_extrude(height = binder_clip_holder_height) { - binder_clip_holder_2d(binder_clip_holder_length, screw_radius, - holder_radius); } } + wall_thickness); } } /* This file is part of challenge-bot.