Skip to content

Instantly share code, notes, and snippets.

@pulsar256
Created December 5, 2016 09:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pulsar256/d739dc6d9797edcdb52ca118d6ed6616 to your computer and use it in GitHub Desktop.
Save pulsar256/d739dc6d9797edcdb52ca118d6ed6616 to your computer and use it in GitHub Desktop.
$fn=200;
module tube(h, d, wall){
difference(){
cylinder(h=h, d=d);
translate([0,0,-1]) cylinder(h=h+2, d=d-wall);
}
}
module body(interlock, height, wall, od){
height = (height+interlock)/2;
ilw = wall*2; // interlock height
rw = 3; // rail width
difference() {
union() {
tube(h=wall-1, d=od, wall=wall*2); // base
tube(h=height, d=od, wall=wall); // shell
tube(h=height/3, d=od-(wall+2), wall=rw); // inner rail
}
for (a=[0 : 90: 360]) {
rotate([0,0,a]) {
translate([wall+2,wall+2,wall-1]) cube(height); // tube cutouts
translate([-od/2,0,height-interlock/2]) cube([ilw,ilw,ilw]); // interlocks
}
}
}
// canal
translate([0,0,2]) tube(h=wall+2, d=od-(wall+2), wall=rw); // inner rail
translate([0,0,2]) tube(h=wall, d=od, wall=wall); // outer rail
}
body(interlock = 15, height=78, od=79.5, wall=4);
// #translate([0,0,90]) rotate([180,0,0]) body(interlock = 15, height=78, od=79.5, wall=4);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment