From 239eea4b9bc8358491f2f9bb21863cfef887768d Mon Sep 17 00:00:00 2001 From: daniel watson Date: Mon, 29 Aug 2016 18:02:47 -0700 Subject: [PATCH] make sonar holder have rounded corners --- .../sonar-binder-clip-holder-data.scad | 84 +++++++++---------- 3d-printables/sonar-binder-clip-holder.scad | 21 ++--- 2 files changed, 50 insertions(+), 55 deletions(-) diff --git a/3d-printables/sonar-binder-clip-holder-data.scad b/3d-printables/sonar-binder-clip-holder-data.scad index 8fde64f..d9b20ea 100644 --- a/3d-printables/sonar-binder-clip-holder-data.scad +++ b/3d-printables/sonar-binder-clip-holder-data.scad @@ -66,30 +66,39 @@ module sonar_holder_holes_2d(sonar_radius, 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(holder_radius, - between_sonar_centers) { - sonar_holder_length = between_sonar_centers + 2 * holder_radius; - hull(){ - sonar_holder_outline_2d(holder_radius, between_sonar_centers); - translate([sonar_holder_length, 0]) { - binder_clip_holder_outline_2d(holder_radius); } } } +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(screw_radius) { circle(screw_radius); } +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 binder_clip_holder_2d(holder_radius, screw_radius) { difference() { - binder_clip_holder_outline_2d(holder_radius); - binder_clip_holder_holes_2d(screw_radius); } } + binder_clip_holder_outline_2d(holder_radius); + binder_clip_holder_holes_2d(screw_radius); } } module binder_clip_holder(holder_radius, screw_radius, @@ -98,34 +107,25 @@ module binder_clip_holder(holder_radius, binder_clip_holder_2d(holder_radius, screw_radius); } } -module sonar_binder_clip_holder_holes_2d(sonar_radius, - between_sonar_centers, - between_sonar_centers_variation, - screw_radius, - wall_thickness) { - holder_radius = sonar_radius + wall_thickness; - holder_diameter = holder_radius * 2; - holder_length = between_sonar_centers + holder_diameter; - sonar_sensor_holes_2d(sonar_radius, - between_sonar_centers, - between_sonar_centers_variation); - translate([holder_length, 0]){ - binder_clip_holder_holes_2d(screw_radius); } } - module sonar_binder_clip_holder_2d(sonar_radius, between_sonar_centers, between_sonar_centers_variation, screw_radius, wall_thickness) { - holder_radius = sonar_radius + wall_thickness; - difference() { - sonar_binder_clip_holder_outline_2d(holder_radius, - between_sonar_centers); - sonar_binder_clip_holder_holes_2d(sonar_radius, - between_sonar_centers, - between_sonar_centers_variation, - screw_radius, - wall_thickness); } } + 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, @@ -133,12 +133,12 @@ module sonar_binder_clip_holder(sonar_radius, 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, - screw_radius, - wall_thickness); } } + linear_extrude(height = sonar_binder_clip_holder_height) { + sonar_binder_clip_holder_2d(sonar_radius, + between_sonar_centers, + between_sonar_centers_variation, + screw_radius, + wall_thickness); } } /* This file is part of challenge-bot. diff --git a/3d-printables/sonar-binder-clip-holder.scad b/3d-printables/sonar-binder-clip-holder.scad index 6890d0a..46a9659 100644 --- a/3d-printables/sonar-binder-clip-holder.scad +++ b/3d-printables/sonar-binder-clip-holder.scad @@ -18,19 +18,14 @@ include -sonar_binder_clip_holder(sonar_radius, - between_sonar_centers, - between_sonar_centers_variation, - screw_radius, - wall_thickness, - sonar_binder_clip_holder_height); - -holder_radius = sonar_radius + wall_thickness; - -translate([0, holder_radius * 2 + 2]) { - binder_clip_holder(holder_radius, - screw_radius, - sonar_binder_clip_holder_height); } +for(ii = [0:1], jj = [0:5]) { + translate([ii * sonar_radius * 10, jj * sonar_radius * 3.5]) { + sonar_binder_clip_holder(sonar_radius, + between_sonar_centers, + between_sonar_centers_variation, + screw_radius, + wall_thickness, + sonar_binder_clip_holder_height); } } /* This file is part of challenge-bot. -- 2.30.2