From 7d41b444e4925b854db6c71e085abdff2fa343c3 Mon Sep 17 00:00:00 2001 From: Ward Wouts Date: Sun, 26 Jan 2014 18:29:59 +0100 Subject: [PATCH] a variant of my cross coupling --- .../cross_bar_coupling_compatible.scad | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 Parametric_cross_bar_coupling_compatible/cross_bar_coupling_compatible.scad diff --git a/Parametric_cross_bar_coupling_compatible/cross_bar_coupling_compatible.scad b/Parametric_cross_bar_coupling_compatible/cross_bar_coupling_compatible.scad new file mode 100644 index 0000000..4e42089 --- /dev/null +++ b/Parametric_cross_bar_coupling_compatible/cross_bar_coupling_compatible.scad @@ -0,0 +1,112 @@ + +//------------------------------------------------------------ +// 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.5; + +open=1; +withswitchmount = 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+thickness),-(bar2_diameter+thickness)/2,0]){ + difference(){ + cube([bar1_diameter+2*thickness,bar2_diameter+thickness,height]); + union(){ + translate([thickness + bar1r,-thickness,thickness+bar1r]){ + rotate([-90,0,0]){ + cylinder(h=(bar2_diameter+thickness*4), r=bar1r, $fn=FN); + } + if (open ==1){ + translate([-bar1r,0,0]){ + cube([2*bar1r,bar2_diameter+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 switchmount(){ + translate([thickness+bar2_diameter-2,thickness,0]){ + difference(){ + cube([thickness,thickness+20,bar1_diameter+2*thickness]); + translate([-thickness/2,20-1.5,(bar1_diameter+2*thickness)/2]){ + rotate([0,90,0]){ + cylinder(h=2*thickness,r=1.7,$fn=FN); + } + // distance between the heart lines of the screw holes + translate([0,-9.5,0]){ + rotate([0,90,0]){ + cylinder(h=2*thickness,r=1.7,$fn=FN); + } + } + } + } + } +} + +module crossbar_coupling(){ + difference(){ + union(){ + bar1mount(); + bar2mount(); + screwmount(); + } + cutout(); + } + if (withswitchmount ==1){ + switchmount(); + } +} + +crossbar_coupling();