$fn=128; dia1=100; // hart op {0,0,o} dia2=100; // hart op {HoH,0,0} HoH=250; wielbreedte=25; B=22; // riembreedte delta=1; // riemdikte phi=$t*360; rotate ([90,0,0]) { rotate ([0,0,phi]) Riemschijf (wielbreedte,dia1,18,8,3.4,6,152); translate ([HoH,0,0]) rotate ([0,0,phi]) Riemschijf (wielbreedte,dia2,20,8,3.6,6,12); color ("SaddleBrown") Vlakke_riem (dia1,dia2,HoH,B,delta); }; module Vlakke_riem (dia1,dia2,HoH,B,delta) { // berekening phi=asin((dia2-dia1)/(2*HoH)); len=HoH*cos(phi); // de 2 rechte parten for (i=[0,1]) mirror ([0,i,0]) { translate ([dia1*cos(90+phi)/2,dia1*sin(90+phi)/2,0]) rotate ([0,90,phi]) translate ([-B/2,0,0]) cube ([B,delta,len]); }; // einde mirror // de omspannen boog van wiel 1 boog1=180-2*phi; rotate ([0,0,90+phi]) rotate_extrude (angle=boog1,convexity=10) translate ([dia1/2,-B/2,0]) square ([delta,B]); // de omspannen boog van wiel 2 boog2=180+2*phi; translate ([HoH,0,0]) rotate ([0,0,-90-phi]) rotate_extrude (angle=boog2,convexity=10) translate ([dia2/2,-B/2,0]) square ([delta,B]); }; // einde module Vlalle_riem module Riemschijf (wielbreedte,wieldia,naafdia,asdia,spaakdikte,spaakaantal,stand) { // velg color ([0.6,0.63,0.67]) rotate_extrude (angle=360,convexity=10) { translate ([wieldia/2-1,-wielbreedte/2,0]) square ([1.2,wielbreedte]); translate ([wieldia/2-1.3,0,0]) circle (1.2); }; // naaf met asgat color ([0.4,0.4,0.4,1]) difference() { union() { translate ([0,0,-wielbreedte/2]) cylinder (wielbreedte,naafdia/2,naafdia/2); // spaken for (i=[0:1:spaakaantal-1]) rotate ([0,0,i*(360/spaakaantal)+stand]) scale ([1,1,0.6]) rotate ([0,90,0]) cylinder ((wieldia/2-0.4),spaakdikte,0.85*spaakdikte); }; translate ([0,0,-wielbreedte]) cylinder (2*wielbreedte,asdia/2,asdia/2); }; }; // einde module Riemschijf