a variant of my cross coupling
This commit is contained in:
parent
82ae610aa6
commit
7d41b444e4
1 changed files with 112 additions and 0 deletions
|
|
@ -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();
|
||||
Loading…
Add table
Add a link
Reference in a new issue