eps = 0.01; // Q6 lens dimensions black_ring_d = 18.5 + 0.5; yellow_ring_d = 19.5 + 1; yellow_ring_d2 = 20.5; black_ring_h = 3.5; yellow_ring_h = 3.5; lens_overhang = 2; clip_h = 0.5; clip_w = 1; wall = 1; body_h = wall + lens_overhang + black_ring_h + yellow_ring_h; body_d = 2*wall + yellow_ring_d2; $fn = 128; difference() { cylinder(r = body_d/2, h = body_h); translate([0, 0, wall]) cylinder(r = black_ring_d/2-wall, h = lens_overhang+eps); translate([0, 0, wall + lens_overhang]) cylinder(r = black_ring_d/2, h = black_ring_h+eps); translate([0, 0, wall + lens_overhang + black_ring_h]) difference() { cylinder(r = yellow_ring_d/2, h = yellow_ring_h+eps); for (angle = [0:90:360]) rotate ([0, 0, angle]) translate([yellow_ring_d/2 - clip_w, -yellow_ring_d/2, yellow_ring_h - clip_h]) cube([clip_w + eps, yellow_ring_d, clip_h + 2*eps]); } }