$fn=128; R1=125; // hart op {0,0,o} R2=375; // hart op {HoH,0,0} HoH=700; B=13; N=5; K=3; // Het V profiel dat ik gebruik is Z, A, B, C, D // Voor deze profielen geldt: B = resp. 10, 13, 17, 22 en 32 mm // en verder: riemdikte = B/1.6 // Er zijn 3 typen riemschijven, naar de diameter ingedeeld // Type K=1 -- dicht lijf -- straal < 200 mm // Type K=2 -- ronde gaten in het lijf // Type K=3 -- spaken -- straal > 350 mm en N >= 2 rotate ([90,0,0]) { color ([0.5,0.5,0.5]) { V_riemschijf_velg (R1,B,N); rotate ([0,0,-$t*360*R2/R1]) V_riemschijf_naaf (R1,B,N,1); translate ([HoH,0,0]) V_riemschijf_velg (R2,B,N); translate ([HoH,0,0]) rotate ([0,0,-$t*360]) V_riemschijf_naaf (R2,B,N,K); }; color ("red") V_riem_compleet (R1,R2,HoH,B,N); }; module V_riemschijf_velg (R,B,N) { difference() { // maken van N velgen naast elkaar translate ([0,0,-(N-1)*0.7*B]) for (i=[0:1:N-1]) translate ([0,0,i*1.4*B]) // opbouwen van de V-groef difference() { union() { // snaarflank 1 translate ([0,0,-B/2]) cylinder ((B+1)*tan(18),R,R-B-1); // snaarflank 2 translate ([0,0,B/2-(B+1)*tan(18)]) cylinder ((B+1)*tan(18),R-B-1,R); // kerncilinder translate ([0,0,-B/2]) cylinder (B,R-B-1,R-B-1); // buitendiameter 1 translate ([0,0,-0.7*B]) cylinder (0.2*B,R,R); // buitendiameter 2 translate ([0,0,0.5*B]) cylinder (0.2*B,R,R); }; // einde union // verwijderen kerncilinder translate ([0,0,-B]) cylinder (4*B,R-B-7,R-B-7); }; // einde difference // conisch buitenprofiel translate ([0,0,-N*0.7*B-0.1]) cylinder (0.4*B,R,R-B-7); translate ([0,0,N*0.7*B-0.4*B+0.1]) cylinder (0.4*B,R-B-7,R); }; // einde difference }; // einde module V_riemschijf_velg module V_riemschijf_naaf (R,B,N,K) { if (K==1) { difference() { // naaf translate ([0,0,-(N+1)*0.65*B]) cylinder ((N+1)*1.3*B,0.4*R,0.4*R); // asgat translate ([0,0,-(N+2)*0.65*B]) cylinder ((N+2)*1.3*B,0.15*R,0.15*R); // spiebaan translate ([-0.04*R,0.1*R,-(N+2)*0.65*B]) cube ([0.08*R,0.08*R,(N+2)*1.3*B]); }; // lijf t.p.v. de kerncilinder, rond de naaf difference() { translate ([0,0,-0.3*B-(N-1)/2]) cylinder (0.6*B+(N-1),R-B-7,R-B-7); translate ([0,0,-B]) cylinder (2*B,0.4*R-1,0.4*R-1); }; }; // einde if K=1 if (K==2) { difference() { // naaf translate ([0,0,-(N+1)*0.65*B]) cylinder ((N+1)*1.3*B,0.3*R,0.3*R); // asgat translate ([0,0,-(N+2)*0.65*B]) cylinder ((N+2)*1.3*B,0.12*R,0.12*R); // spiebaan translate ([-0.025*R,0.09*R,-(N+2)*0.65*B]) cube ([0.05*R,0.06*R,(N+2)*1.3*B]); }; // lijf t.p.v. de kerncilinder, rond de naaf difference() { translate ([0,0,-0.3*B-(N-1)/2]) cylinder (0.6*B+(N-1),R-B-7,R-B-7); translate ([0,0,-B]) cylinder (2*B,0.3*R-1,0.3*R-1); for (i=[0:1:4]) rotate ([0,0,i*72]) translate ([0.6*R,0,-B]) cylinder (2*B,0.16*R,0.16*R); }; }; // einde if K=2 if (K==3) { difference() { // naaf translate ([0,0,-(N+1)*0.65*B]) cylinder ((N+1)*1.3*B,0.23*R,0.23*R); // asgat translate ([0,0,-(N+2)*0.65*B]) cylinder ((N+2)*1.3*B,0.1*R,0.1*R); // spiebaan translate ([-0.02*R,0.075*R,-(N+2)*0.65*B]) cube ([0.04*R,0.05*R,(N+2)*1.3*B]); }; // spaken for (i=[0:1:5]) rotate ([-90,0,i*60]) scale ([1,0.5,1]) translate ([0,0,0.2*R]) cylinder (0.8*R-B-6,R/12,R/15); }; // einde if K=3 }; // einde module V_riemschijf_naaf module V_riemprofiel (B) { delta=(B*tan(18))/1.6; polygon ([[-B/2+delta,-B/1.6],[-B/2,0],[-B/4,B/25],[0,B/20],[B/4,B/25],[B/2,0],[B/2-delta,-B/1.6]]); }; // einde module V_riemprofiel module V_riem_recht (L,B) { linear_extrude (height=L,convexity=10) V_riemprofiel (B); }; // einde module V-riem_recht module V_riem_compleet (R1,R2,HoH,B,N) { // berekening phi=asin((R2-R1)/HoH); len=HoH*cos(phi); // maken van N riemen naast elkaar translate ([0,0,-(N-1)*0.7*B]) for (i=[0:1:N-1]) translate ([0,0,i*1.4*B]) { // de 2 rechte parten for (i=[0,1]) mirror ([0,i,0]) { translate ([R1*cos(90+phi),R1*sin(90+phi),0]) rotate ([0,90,phi]) V_riem_recht (len,B); }; // einde mirror // de omspannen boog van wiel 1 boog1=180-2*phi; rotate ([0,0,90+phi]) rotate_extrude (angle=boog1,convexity=10) translate ([R1,0,0]) rotate ([0,0,-90]) V_riemprofiel (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 ([R2,0,0]) rotate ([0,0,-90]) V_riemprofiel (B); }; }; // einde module V_riem_compleet