include include $fn = 36*5; t = 1; rounding = 1; // base to connect to the printer base_hole_distance = 40; base_frame_hole_d = 4.5; base_dim = [61,23,12]; // pivot pivot_dist = 6; pivot_d = 6; pivot_t = 2; pivot_h = 8; // PTFE tube holder tube_dist = 15 + 27; tube_d0 = 2.5; tube_d1 = 5; tube_d2 = 7; tube_h = base_dim[2]; diff("R", "K") { // base cuboid(base_dim, rounding=rounding, anchor=FWD); // holes for screws tag("R") back(base_dim[1]/2) left(base_hole_distance/2) cyl(d=base_frame_hole_d, h=base_dim[2], chamfer=-1); tag("R") back(base_dim[1]/2) right(base_hole_distance/2) cyl(d=base_frame_hole_d, h=base_dim[2], chamfer=-1); // connector chain_hull() { cuboid([base_dim[2], 3, base_dim[2]], rounding=rounding, anchor=FWD); fwd(tube_dist - pivot_dist - t) ycyl(d=pivot_d, anchor=FWD); } chain_hull() { fwd(tube_dist - pivot_dist) ycyl(d=pivot_d, anchor=BACK); down(pivot_h) fwd(tube_dist) difference() { cyl(d=tube_d2, h=tube_h); back(2) cuboid(tube_h, anchor=BACK); } } tag("R") fwd(tube_dist - pivot_dist + t) screw_hole("M3,30", "socket", thread=true, orient=FWD, $slop=0.1, anchor="head_bot", teardrop=true); // PTFE holder fwd(tube_dist) down(pivot_h) union() { cyl(d=tube_d2, h=tube_h); tag("R") cyl(d=tube_d0, h=tube_h, rounding=-rounding); tag("R") cyl(d=tube_d1, h=tube_h, anchor=BOTTOM); } }