Treppenlift-DIT-Vorschlag
Animation eines Vorschlags für einen selbst gebauten Treppenlift. Entsprechend den Maßen von Metalab_Vorraumstufen.pdf. Darstellung mit OpenSCAD zur leichten weiterverarbeitung.
Quelle legba7
OpenSCAD
// length in mm width=500; angle=-117.5; length=800; radius=40; doorfloorlength=1215; // opposite/hypotenuse=sin(alpha) // adjacent/hypotenuse=cos(alpha) hypotenuse=-770/cos(angle); echo(hypotenuse=hypotenuse);
module schraege(angle=angle, hypotenuse=hypotenuse){ rotate([angle,0,0]) translate([0,0,hypotenuse/2])cube([10,10,hypotenuse],center=true); }
translate([0,doorfloorlength,0])schraege(); translate([width,doorfloorlength,0])schraege(); translate([0,doorfloorlength+length,0])schraege(); translate([width,doorfloorlength+length,0])schraege();
module guide(){ rotate([angle,0,0]) translate([0,0,-40/2]) cube([30,30,40],center=true); }
module platform(length=length){ translate([width/2,length/2,0]) cube([width,length,10],center=true);
guide(); translate([width,0,0])guide(); translate([0,length,0])guide(); translate([width,length,0])guide(); } // Animation $t from 0 to 1, minus last step, define FPS und steps in OpenSCAD translate([0,doorfloorlength,0])rotate([angle,0,0])translate([0,0,hypotenuse*$t])rotate([-angle,0,0])color("grey")platform(length=length);
module weight(){ translate([0,-hypotenuse*sin(angle)+length+200,hypotenuse*cos(angle)+300/2]) color("red")cube([200,300,300],center=true); }
// Animation $t from 0 to 1, minus last step, define FPS und steps in OpenSCAD // weight moves same distance as platform translate([0,doorfloorlength,hypotenuse*$t])weight();
module roller(radius=40){ rotate([0,90,0]) color("yellow")cylinder(h=50,r=radius,center=true); }
module roller1_pos(){ translate([0,doorfloorlength-hypotenuse*sin(angle)+length+200-radius,hypotenuse*cos(angle)+hypotenuse+400])children(); } roller1_pos(){roller(radius=radius);}
module roller2_pos(){ translate([0,doorfloorlength+length,radius])rotate([angle,0,0])translate([0,0,-70])rotate([-angle,0,0])children(); } roller2_pos(){roller(radius=radius);}
// rope weight - roller // animated translate([0,doorfloorlength-hypotenuse*sin(angle)+length+200,hypotenuse*cos(angle)+(hypotenuse)/2+300+hypotenuse*$t-(hypotenuse*$t)/2])color("orange")cube([10,10,200+hypotenuse-hypotenuse*$t],center=true);
// rope roller - roller color("orange")hull(){ translate([0,doorfloorlength-hypotenuse*sin(angle)+length+200-radius*2,hypotenuse*cos(angle)+hypotenuse+400])cube([10,10,10]); translate([0,doorfloorlength+length,radius])rotate([angle,0,0])translate([0,0,-70])rotate([-angle,0,0])translate([0,0,radius])cube([10,10,10]); }
// rope roller - platform // animated color("orange")hull(){ translate([0,doorfloorlength+length,radius])rotate([angle,0,0])translate([0,0,-70])rotate([-angle,0,0])translate([0,0,-radius])cube([10,10,10]); rotate([angle,0,0])translate([0,0,hypotenuse*$t])rotate([-angle,0,0])color("yellow")translate([0,doorfloorlength+length-1,1])cube([10,10,10]); //translate([0,-hypotenuse*sin(angle)+length+10-radius*2,hypotenuse*cos(angle)+hypotenuse+20])cube([1,1,1]); }
// stairs
// https://metalab.at/wiki/images/a/a1/Metalab_Vorraumstufen.pdf
module stairs(){
translate([width/2,-200/2,290/2])cube([width,200,290],center=true);
translate([width/2,315/2,150/2])cube([width,315,150],center=true);
translate([width/2,1215/2,770/2-770])cube([width,1215,770],center=true);
translate([width/2,1530/2,610/2-770])cube([width,1530,610],center=true);
translate([width/2,1840/2,450/2-770])cube([width,1840,450],center=true);
translate([width/2,2150/2,290/2-770])cube([width,2150,290],center=true);
translate([width/2,2460/2,125/2-770])cube([width,2460,125],center=true);
translate([width/2,4000/2,-125/2-770])cube([width,4000,125],center=true);
}
stairs();