// this is an approximation of a wheel; all measurements are *guessed* module wheel() { r_rim=150; r_tire=15; r_hub=30; r_axis=5; // tire (modelled as torus) color([0.1, 0.1, 0.1]) rotate_extrude(convexity=4) translate([r_rim,0]) circle(r_tire); // hub for (side = [-1,1]) translate([0, 0, side * (r_tire - 1/2)]) cylinder(r=r_hub, h=1, center=true); cylinder(r=r_axis, h=125, center=true); // spokes angular_step=360/8; for (angle = [0:angular_step:360]) for (side = [-1,1]) for (dir = [-1,1]) rotate(angle + side * angular_step/4) translate([r_hub - 1, -dir*4, side*r_tire]) rotate([0, 90 + side*8, dir*20]) cylinder(r=1, h=r_rim - r_hub); } wheel();