From 2c414fcf23ac17bb9ccceb4142edd8e662ee0395 Mon Sep 17 00:00:00 2001 From: Ward Wouts Date: Sun, 19 Jan 2014 23:40:56 +0100 Subject: [PATCH] a cross bar smooth rod coupling that can be fitted without taking apart the whole frame --- .../cross_bar_coupling.scad | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 Parametric_cross_bar_coupling/cross_bar_coupling.scad diff --git a/Parametric_cross_bar_coupling/cross_bar_coupling.scad b/Parametric_cross_bar_coupling/cross_bar_coupling.scad new file mode 100644 index 0000000..a635be4 --- /dev/null +++ b/Parametric_cross_bar_coupling/cross_bar_coupling.scad @@ -0,0 +1,87 @@ + +//------------------------------------------------------------ +// Parametric pendulum rod coupling to increase frame stiffness +// +// http://www.thingiverse.com/wardwouts +// +//------------------------------------------------------------ + +bar1_diameter = 6.5; +bar2_diameter = 6.5; + +M3 = 3.2; + +thickness = 3; +spacing = 1; + + +FN=80*1; // 80 for nice prints; 16 for speed + +bar1r = bar1_diameter/2; +bar2r = bar2_diameter/2; + +height=bar1_diameter+2*thickness; + +// I really need nut or rivetsize to make bar1mount the right size +module bar1mount(){ + translate([-(bar1_diameter+3*thickness),-thickness/2,0]){ + difference(){ + cube([bar1_diameter+3*thickness+1,thickness,height]); + union(){ + translate([thickness + bar1r,-thickness,thickness+bar1r]){ + rotate([-90,0,0]){ + cylinder(h=(thickness*4), r=bar1r, $fn=FN); + } + translate([-bar1r,0,0]){ + rotate([0,10,0]){ + cube([2*bar1r,thickness*4,30]); + } + } + } + } + } + } +} + +module bar2mount(){ + translate([bar2r+thickness,0,0]){ + difference(){ + cylinder(h=height, r=bar2r+thickness, $fn=FN); + translate([0,0,-height]){ + cylinder(h=height*3, r=bar2r, $fn=FN); + } + } + } +} + +module screwmount(){ + translate([bar2_diameter+2*thickness-1,-(thickness+spacing/2),0]){ + difference(){ + cube([thickness*2+M3, thickness*2+spacing, height]); + translate([thickness+M3/2, -thickness, height/2]){ + rotate([-90,0,0]){ + cylinder(h=thickness*5+spacing, r=M3/2, $fn=FN); + } + } + } + } +} + +module cutout(){ + translate([bar2r+thickness,-spacing/2,-height]){ + cube([thickness*5+M3*2, spacing, height*3]); + } +} + +module crossbar_coupling(){ + difference(){ + union(){ + bar1mount(); + bar2mount(); + screwmount(); + } + cutout(); + } +} + +crossbar_coupling();