include // m12 female body connector for soldering // female // inner thick part length includes rubber o-ring, // outer does not m12_female_conn_body_thick_part_length = 3.6; m12_female_conn_body_thick_part_d = 18; m12_female_conn_body_outer_part_length = 16; m12_female_conn_body_outer_part_d = 15.1; m12_female_conn_body_outer_part_flat_w = 13.4; m12_female_conn_body_wires_length = 20; m12_female_conn_body_wires_d = 8; // male m12_male_conn_body_thick_part_length = 3.6; m12_male_conn_body_thick_part_d = 18; m12_male_conn_body_outer_part_length = 16; m12_male_conn_body_outer_part_d = 12; m12_male_conn_body_outer_part_flat_w = 10.6; m12_male_conn_body_wires_length = 20; m12_male_conn_body_wires_d = 8; // wl - wires length // wd - wires diameter // tcl - inner (thick) part length // tcd - inner (thick) part diameter // ocl - outer connector length // ocd - outer connector diameter // ocfw - outer connector flat width module m12_connector( wl, wd, tcl, tcd, ocl, ocd, ocfw, ) { rotate([90, 0, 0]) { // thick connector part inside scanner body translate([0, 0, -tcl]) cylinder($fn = dToFn(tcd), d = tcd, h = tcl); // outer connector part going outside through // scanned body cylinder($fn = dToFn(ocd), d = ocd, h = ocl); // soldered wires translate([0, 0, -wl - tcl + wd / 2]) cylinder($fn = dToFn(wd), d = wd, h = wl); translate([0, 0, -wl -tcl + wd / 2]) sphere($fn = dToFn(wd), d = wd); } } module m12_female_conn_body() { wl = m12_female_conn_body_wires_length; wd = m12_female_conn_body_wires_d; tcl = m12_female_conn_body_thick_part_length; tcd = m12_female_conn_body_thick_part_d; ocl = m12_female_conn_body_outer_part_length; ocd = m12_female_conn_body_outer_part_d; ocfw = m12_female_conn_body_outer_part_flat_w; rotate([90, 0, 0]) { // thick connector part inside scanner body translate([0, 0, -tcl]) cylinder($fn = dToFn(tcd), d = tcd, h = tcl); // outer connector part going outside through // scanned body cylinder($fn = dToFn(ocd), d = ocd, h = ocl); // soldered wires translate([0, 0, -wl - tcl + wd / 2]) cylinder($fn = dToFn(wd), d = wd, h = wl); translate([0, 0, -wl -tcl + wd / 2]) sphere($fn = dToFn(wd), d = wd); } } module m12_female_connector() { m12_connector( m12_female_conn_body_wires_length, m12_female_conn_body_wires_d, m12_female_conn_body_thick_part_length, m12_female_conn_body_thick_part_d, m12_female_conn_body_outer_part_length, m12_female_conn_body_outer_part_d, m12_female_conn_body_outer_part_flat_w ); } module m12_male_connector() { m12_connector( m12_male_conn_body_wires_length, m12_male_conn_body_wires_d, m12_male_conn_body_thick_part_length, m12_male_conn_body_thick_part_d, m12_male_conn_body_outer_part_length, m12_male_conn_body_outer_part_d, m12_male_conn_body_outer_part_flat_w ); }