Treppenlift-DIT-Vorschlag

aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Version vom 21. November 2024, 15:06 Uhr von Legba7 (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springenZur Suche springen

Animation eines Vorschlags für einen selbst gebauten Treppenlift. Entsprechend den Maßen von Metalab_Vorraumstufen.pdf. Darstellung mit OpenSCAD zur leichten weiterverarbeitung.

Animation eines Vorschlags für einen selbst gebauten Treppenlift. Entsprechend den Maßen von Datei: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();