$fn=128; phi=$t*360; krukstraal=40; drijfstang=100; // berekening drijfstanghoek phi2= asin((krukstraal*sin(phi))/drijfstang); // drijfstang translate ([krukstraal*cos(phi),krukstraal*sin(phi),0]) rotate ([0,0,-phi2]) translate ([0,-0.5,0]) cube ([drijfstang,1,1]); // krukpen rotate ([0,0,phi]) translate ([krukstraal,0,1]) cylinder (1,4,4); // zuiger difference() { translate ([krukstraal*cos(phi)+drijfstang*cos(phi2),0,0]) cube ([10,16,1],true); translate ([-8+krukstraal*cos(phi)+drijfstang*cos(phi2),-6,-2]) cube ([10,12,4]); }; // groene radialen elke 15 graden color ([0.5,1,0.5]) difference() { for (i=[0:1:23]) rotate ([0,0,i*15]) cube ([krukstraal-0.1,0.3,1]); translate ([0,0,-1]) cylinder (4,2,2); }; // rode krukcirkel difference() { color ("red") cylinder (1.2,krukstraal,krukstraal); translate ([0,0,-1]) cylinder (4,krukstraal-0.4,krukstraal-0.4); };