diff options
| -rw-r--r-- | body/body.scad | 31 | ||||
| -rw-r--r-- | body/m12_connectors.scad | 124 |
2 files changed, 145 insertions, 10 deletions
diff --git a/body/body.scad b/body/body.scad index 2863d99..632e8cf 100644 --- a/body/body.scad +++ b/body/body.scad @@ -1,23 +1,28 @@ include <design.scad> include <helpers.scad> +include <m12_connectors.scad> include <m12_lense_holder.scad> include <m12_lense_holder_adapter.scad> include <noctua_nf_a4x20.scad> include <radxa_zero_3e.scad> include <veye_imx287.scad> -// cam + lense -translate([0, 0, $lenseYPosMm]) -rotate([-$opticalAxisAngleDegrees, 0, 0]) +module cam_and_lense() { - m12_lense_holder(); - %m12_lense(); + translate([0, 0, $lenseYPosMm]) + rotate([-$opticalAxisAngleDegrees, 0, 0]) + { + m12_lense_holder(); + %m12_lense(); - translate([0, -$lenseSensorDistanceMm, 0]) - rotate([$sensorLenseAngleDegrees, 0, 0]) - veye_imx287_natural(); + translate([0, -$lenseSensorDistanceMm, 0]) + rotate([$sensorLenseAngleDegrees, 0, 0]) + veye_imx287_natural(); + } } +cam_and_lense(); + // laser translate([0, -$laserZOffsetMm, 0]) { @@ -88,7 +93,6 @@ module scanner_main_frame() // now try to cut body with rounded corners to simplify // cnc manufacturing - difference() { hull() @@ -120,9 +124,16 @@ module scanner_main_frame() } } - // and now add some stands for screwing left/right covers + // TODO: and now add some stands for screwing left/right covers // TODO: simplify inner cut cube after implementing this: // rounded corners won't be needed anymore + + // add outer m12 connectors + translate([0, -wzo - id, 20 + m12_male_conn_body_thick_part_d + 5]) + m12_female_connector(); + + translate([0, -wzo - id, 20]) + m12_male_connector(); } %scanner_main_frame();
\ No newline at end of file diff --git a/body/m12_connectors.scad b/body/m12_connectors.scad new file mode 100644 index 0000000..9d28e1d --- /dev/null +++ b/body/m12_connectors.scad @@ -0,0 +1,124 @@ +include <helpers.scad> + +// 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 + ); +}
\ No newline at end of file |
