include down(7.3) left(20) back(0.35) import("/home/sasza/Pobrane/1.stl", center=true); t = 1.5; frame_dist = 0.4; thumb_size = [12,14,t]; thumb_fwd = 10; thumb_up = 2; chain_hull() { cyl(d=8.5, h=2.22, anchor=TOP, $fn=36); down(t - frame_dist) right(thumb_fwd) fwd(thumb_up) zrot(180+45) cuboid([t,thumb_size[1],t], anchor=LEFT+BOTTOM); } hinge_d = 2; hinge_num = 4; hinge_h = 3; down(t - frame_dist) right(thumb_fwd) fwd(thumb_up) zrot(180+45) xrot(-90) difference() { down(thumb_size[1]/2) right(hinge_d/2) fwd(hinge_d/2 + t + 0.1) for(i=[0 : hinge_num]) { up(i * thumb_size[1] / hinge_num) if(i%2==0) { back(0.25) cuboid([hinge_d,hinge_d+0.5,hinge_h], rounding=1, edges="Z"); } else { left(0.25) cuboid([hinge_d+0.5,hinge_d,hinge_h], rounding=1, edges="Z"); } } up(0) right(hinge_d/2) fwd(hinge_d/2 + t + 0.1) cyl(d=1, h=thumb_size[1]*2, $fn=36); } right(thumb_fwd) fwd(thumb_up) zrot(180+45) down(t - frame_dist) yrot(-90) down(t) up(hinge_d/2 + t/2) cuboid(thumb_size, anchor=LEFT+BOTTOM, rounding=t/2, edges=["X","Z", RIGHT]);