$fn=128; phi=$t*360; if (phi>=30&&phi<=330) {A=excentriciteit*cos(phi)+nokdia/2+nokroldia/2; // nokrol color ("red") translate ([A,0,0]) cylinder (6,nokroldia/2,nokroldia/2); // nokstoter translate ([A,-0.5,0]) cube ([drijfstang,1,1]); // zuiger translate ([2,0,0]) difference() { translate ([A+drijfstang,0,0]) cube ([10,16,1],true); translate ([-8+A+drijfstang,-6,-2]) cube ([10,12,4]); }; } if (phi>=0&&phi<30) {A=excentriciteit+nokdia/2+nokroldia/2-7+7*phi/30; // nokrol color ("red") translate ([A,0,0]) cylinder (6,nokroldia/2,nokroldia/2); // nokstoter translate ([A,-0.5,0]) cube ([drijfstang,1,1]); // zuiger translate ([2,0,0]) difference() { translate ([A+drijfstang,0,0]) cube ([10,16,1],true); translate ([-8+A+drijfstang,-6,-2]) cube ([10,12,4]); }; } if (phi>330&&phi<360) {A=excentriciteit+nokdia/2+nokroldia/2-7*(phi-330)/30; // nokrol color ("red") translate ([A,0,0]) cylinder (6,nokroldia/2,nokroldia/2); // nokstoter translate ([A,-0.5,0]) cube ([drijfstang,1,1]); // zuiger translate ([2,0,0]) difference() { translate ([A+drijfstang,0,0]) cube ([10,16,1],true); translate ([-8+A+drijfstang,-6,-2]) cube ([10,12,4]); }; } straal=40; nokdia=30; nokroldia=8; drijfstang=60; excentriciteit=5; // krukas color ("black") cylinder (7,5,5); // nok rotate ([0,0,phi]) difference() { translate ([excentriciteit,0,0]) cylinder (4,nokdia/2,nokdia/2); translate ([32,0,-1]) cylinder (6,18,18); }; // groene radialen elke 15 graden difference() { color ([0.5,1,0.5]) for (i=[0:1:23]) rotate ([0,0,i*15]) cube ([straal,0.3,1]); translate ([0,0,-1]) cylinder (4,1,1); }; // rode cirkel difference() { color ("red") cylinder (2,straal,straal); translate ([0,0,-1]) cylinder (4,straal-0.4,straal-0.4); };