inner_diameter_min = 18; // the minimum inner diameter of the connector inner_diameter_max = 19; // the maximum inner diameter of the connector, // the connector is tapered so it can slide on, but fit snugly once pushed all the way on // 18 and 19 work well for EMT conduit on my printer, adjust accordingly! outer_diameter = 23; // the outer diameter of the connector connector_height = 25; // height of the connector mouth_piece_height = 20; // height of the mouth piece mouth_piece_diameter = 35; // the diameter of the end of the mouth piece mouth_piece_inner_diameter = 32; // the inner diameter of the end of the mouth piece $fs = 1; // level of detail settings $fa = 1; // make these smaller to get a less faceted model, at the cost of rendering time difference() { union() { translate([0,0,mouth_piece_height]) { cylinder(h=connector_height,r=outer_diameter/2); } cylinder(h=mouth_piece_height, r1= mouth_piece_diameter/2, r2=outer_diameter/2,center=false); } #translate([0,0,-1]) cylinder(h=mouth_piece_height+2, r1= mouth_piece_inner_diameter/2, r2=inner_diameter_min/2,center=false); #translate([0,0,mouth_piece_height]) { cylinder(h=connector_height+1, r1=inner_diameter_min/2, r2=inner_diameter_max/2); } }