// This is a portable bicycle stand for graphite cycle // For some reason, those bikes do not support a stand // so you have to buy an autonomous one, which is heavy. // Here we try to replicate the autonomous one using a folding // design. // allviews base1 base2 side1 side2 post1 post2 yholder width=300; height=300; thick=50; include include <../cadlib.h> // base1 and 2 are just triangle extruded // base1 slide inside base2 module base (length,width,height){ path=[[0,0],[width/2,height],[width,0],[0,0]]; profile (path,length,1,0,0.5); } module base1(){ base(width/2,thick,20); } module base2(){ base(width/2,thick,20); } // side1 and 2 are just cylinders. side1 slides inside side2 module side1(){ } module side2(){ } module post1(){ } module post2(){ } module yholder(){ thick=5; ray=7.5; angle=30; difference(){ union(){ cube([50,50,5]); translate([ray,50,0]) cylinder(r=ray,h=5); translate([50-ray,50,0]) cylinder(r=ray,h=5); } union(){ ray2=(50-4*ray)/2; translate([50/2,25,0]) cylinder(r=ray2,h=5); translate([2*ray,25,0]) cube([2*ray2,26,5]); } } translate([0,0,5]) rotate([0,90,0]) quarter_cylinder(5,50,20,4); translate([0,0,5]) rotate([180-angle,0,0]){ cube([50,20,5]); } } if (view=="base1"){ base1(); }else if (view=="base2"){ base2(); }else if (view=="side1"){ side1(); }else if (view=="side2"){ side2(); }else if (view=="post1"){ post1(); }else if (view=="post2"){ post2(); }else if (view=="yholder"){ yholder(); }