summaryrefslogtreecommitdiff
path: root/body
diff options
context:
space:
mode:
authorNikita Kostovsky <nikita@kostovsky.me>2026-01-08 00:48:12 +0100
committerNikita Kostovsky <nikita@kostovsky.me>2026-01-08 00:48:12 +0100
commitc4e2507f9c8a2884c7d8a8bf68bfb85a5448920f (patch)
tree530296a35f101505b32c30660c0e21990d6b5452 /body
parent7d3798f2a7c28d558d975d1844bb729fe8de0923 (diff)
add m12 connectors
Diffstat (limited to 'body')
-rw-r--r--body/body.scad31
-rw-r--r--body/m12_connectors.scad124
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