diff options
| -rw-r--r-- | body/body.scad | 194 | ||||
| -rw-r--r-- | body/holes.scad | 2 | ||||
| -rw-r--r-- | body/m12_lense_holder.scad | 38 | ||||
| -rw-r--r-- | body/veye_imx287.scad | 37 |
4 files changed, 204 insertions, 67 deletions
diff --git a/body/body.scad b/body/body.scad index 15faa18..a3ec753 100644 --- a/body/body.scad +++ b/body/body.scad @@ -42,79 +42,94 @@ module cam_and_lense_new() //tpw = $m12_lense_holder_size; tpw = veye_imx287_pcb_w; - color("pink", 0.6) - union() + //color("pink", 0.6) + difference() { - //color("green", 0.3) - difference() + union() { - //color("blue", 0.3) - hull() + //color("green", 0.3) + difference() { - translate([0, 0, $lenseYPosMm]) - rotate([-$opticalAxisAngleDegrees, 0, 0]) - translate([0, -$lenseSensorDistanceMm, 0]) - rotate([$sensorLenseAngleDegrees, 0, 0]) - veye_imx287_mount_plate_outer(); - - translate([0, 0, $lenseYPosMm]) - rotate([-$opticalAxisAngleDegrees, 0, 0]) + //color("blue", 0.3) + hull() { - //color("blue", 0.3) + translate([0, 0, $lenseYPosMm]) + rotate([-$opticalAxisAngleDegrees, 0, 0]) + translate([0, -$lenseSensorDistanceMm, 0]) + rotate([$sensorLenseAngleDegrees, 0, 0]) + veye_imx287_mount_plate_outer(); + + translate([0, 0, $lenseYPosMm]) + rotate([-$opticalAxisAngleDegrees, 0, 0]) { - - m12_lense_holder_base(); - color("blue", 0.3) - %m12_lense_holder(); + //color("blue", 0.3) + { + + m12_lense_holder_base(); + //color("blue", 0.3) + *%m12_lense_holder(); + } } } - } - - hull() - translate([0, 0, $lenseYPosMm]) - rotate([-$opticalAxisAngleDegrees, 0, 0]) - { - m12_lense_circle(); - translate([0, -$lenseSensorDistanceMm, 0]) - rotate([$sensorLenseAngleDegrees, 0, 0]) - veye_imx287_mount_plate_inner(); - } - } - - // top part - hull() - { - // lense holder helper - { - //color("red", 0.3) + + hull() translate([0, 0, $lenseYPosMm]) rotate([-$opticalAxisAngleDegrees, 0, 0]) - //translate([0, -$lenseSensorDistanceMm, 0]) - //rotate([$sensorLenseAngleDegrees, 0, 0]) - m12_lense_holder_top(); - } - - // cam holder helper - { - pcb_w = veye_imx287_pcb_w; - pcb_h = veye_imx287_pcb_h; - //color("yellow", 0.5) + { + m12_lense_circle(); + translate([0, -$lenseSensorDistanceMm, 0]) + rotate([$sensorLenseAngleDegrees, 0, 0]) + veye_imx287_mount_plate_inner(); + } + translate([0, 0, $lenseYPosMm]) rotate([-$opticalAxisAngleDegrees, 0, 0]) - translate([0, -$lenseSensorDistanceMm, 0]) - rotate([$sensorLenseAngleDegrees, 0, 0]) - //cube([pcb_w + $tiny_padding * 2, 1, 1]); - veye_imx287_mount_plate_outer_top(); + scale([1, 2, 1]) + m12_lense_holder_screw_holes(); } - // wall near body + // top part + hull() { - //color("orange", 0.3) - translate([-pcb_w / 2, -$sbfwo, 116]) - rotate([90, 0, 0]) - cube([pcb_w, 14, 1]); + // lense holder helper + { + //color("red", 0.3) + translate([0, 0, $lenseYPosMm]) + rotate([-$opticalAxisAngleDegrees, 0, 0]) + //translate([0, -$lenseSensorDistanceMm, 0]) + //rotate([$sensorLenseAngleDegrees, 0, 0]) + m12_lense_holder_top(); + } + + // cam holder helper + { + pcb_w = veye_imx287_pcb_w; + pcb_h = veye_imx287_pcb_h; + //color("yellow", 0.5) + translate([0, 0, $lenseYPosMm]) + rotate([-$opticalAxisAngleDegrees, 0, 0]) + translate([0, -$lenseSensorDistanceMm, 0]) + rotate([$sensorLenseAngleDegrees, 0, 0]) + //cube([pcb_w + $tiny_padding * 2, 1, 1]); + veye_imx287_mount_plate_outer_top(); + } + + // wall near body + { + //color("orange", 0.3) + translate([-pcb_w / 2, -$sbfwo, 116]) + rotate([90, 0, 0]) + cube([pcb_w, 14, 1]); + } } } + + + translate([0, 0, $lenseYPosMm]) + rotate([-$opticalAxisAngleDegrees, 0, 0]) + translate([0, -$lenseSensorDistanceMm, 0]) + rotate([$sensorLenseAngleDegrees, 0, 0]) + veye_imx287_mount_holes(); } } @@ -397,6 +412,27 @@ module laser_holder_screw_holes() } } +module cam_lense_holder_screw_holes() +{ + id = 4; + // scanner coords + x_offset = 10; + y_center = 123; + y_offset = 3; + + for (x = [x_offset, -x_offset], yo = [y_offset, -y_offset]) + { + translate([x, -wzo, y_center + yo]) + screw_hole( + m = m2, + id = id, + il = hole_insert_height, + hd = m2_head_diameter, + hh = m2_head_height, + hs = hole_side_front); + } +} + module visualize_yz_range() { lenseY = $lenseYPosMm; @@ -573,19 +609,55 @@ module radxa() module other() { //cam_and_lense(); - cam_and_lense_new(); + difference() + { + cam_and_lense_new(); + //translate([-$tiny_padding*100, 0, 0]) + translate([0, $tiny_padding, 0]) + cam_lense_holder_screw_holes(); + } //visualize_yz_range(); //visualize_xz_range(); visualize_range(); laser_with_holder(); - radxa(); + %radxa(); } -*other(); +// visual block + +union() +{ + *other(); + + *cam_lense_holder_screw_holes(); + + difference() + { + scanner_main_frame(); + camera_hole(); + laser_glass_hole(); + laser_holder_screw_holes(); + m12_connectors(); + cam_lense_holder_screw_holes(); + } +} + +// printing cam/lense holder +*union() +{ + difference() + { + cam_and_lense_new(); + //translate([-$tiny_padding*100, 0, 0]) + translate([0, $tiny_padding, 0]) + cam_lense_holder_screw_holes(); + } +} -difference() +// printing body +*difference() { scanner_main_frame(); camera_hole(); diff --git a/body/holes.scad b/body/holes.scad index f464570..83d3777 100644 --- a/body/holes.scad +++ b/body/holes.scad @@ -130,7 +130,7 @@ module screw_hole(m, id, il, hd, hh, hs, wt = $scannerBodyWallThicknessMm) // full screw diameter fsd = m + sdd; translate([0, 0, -$tiny_padding]) - %cylinder($fn = dToFn(fsd), d = fsd, h = wt + $tiny_padding * 2); + cylinder($fn = dToFn(fsd), d = fsd, h = wt + $tiny_padding * 2); // screw head cutter // full head diameter diff --git a/body/m12_lense_holder.scad b/body/m12_lense_holder.scad index 5907720..26a4a10 100644 --- a/body/m12_lense_holder.scad +++ b/body/m12_lense_holder.scad @@ -1,4 +1,5 @@ use <helpers.scad> +include <helpers.scad> include <veye_imx287.scad> // m12 cam holder size @@ -64,7 +65,8 @@ module m12_lense_holder_base() //m12_lense_holder_wo_holes(th = 0.001, bh = 0.001); $S = $m12_lense_holder_size; //$cube_size = [$S, $S, 1]; - $cube_size = [veye_imx287_pcb_w, $S, 1]; + padding = 2; + $cube_size = [veye_imx287_pcb_w + padding * 2, $S, 1]; rotate([-90, 0, 0]) { @@ -87,6 +89,28 @@ module m12_lense_holder_top() } } +module m12_lense_holder_screw_holes() +{ + rotate([-90, 0, 0]) + { + // left screw hole + translate($m12_lense_holder_l_hole_offset) + cylinder( + $fn = diameterToFn($m12_lense_holder_sh_inner_d), + h = $m12_lense_holder_bottom_h * 3, + d = $m12_lense_holder_sh_inner_d, + center = true); + + // right screw hole + translate($m12_lense_holder_r_hole_offset) + cylinder( + $fn = diameterToFn($m12_lense_holder_sh_inner_d), + h = $m12_lense_holder_bottom_h * 3, + d = $m12_lense_holder_sh_inner_d, + center = true); + } +} + module m12_lense_holder_holes() { rotate([-90, 0, 0]) @@ -126,7 +150,19 @@ module m12_lense_holder() } } +module m12_lense_holder_mount_holes() +{ + m = 2; + h = 4; + + rotate([90, 0, 0]) + cylinder($fn = dToFn(m), h = h * 2, d = m, center = true); +} + *m12_lense_holder(); +*m12_lense_holder_holes(); +*m12_lense_holder_screw_holes(); +*m12_lense_holder_mount_holes(); *m12_lense_holder_wo_holes(); *m12_lense_holder_base(); *m12_lense_holder_top();
\ No newline at end of file diff --git a/body/veye_imx287.scad b/body/veye_imx287.scad index dd08c0b..aed7db0 100644 --- a/body/veye_imx287.scad +++ b/body/veye_imx287.scad @@ -1,5 +1,6 @@ include <design.scad> include <helpers.scad> +include <holes.scad> veye_imx287_pcb_w = 29; veye_imx287_pcb_h = 29; @@ -113,8 +114,9 @@ module veye_imx287_natural() module veye_imx287_mount_plate_outer() { - w = veye_imx287_pcb_w; - h = veye_imx287_pcb_h; + padding = 2; + w = veye_imx287_pcb_w + padding * 2; + h = veye_imx287_pcb_h + padding * 2; t = veye_imx287_mount_plate_thickness; cr = veye_imx287_mount_plate_corner_radius; @@ -229,16 +231,43 @@ module veye_imx287_mount_plate() } } -color("yellow", 0.4) + +module veye_imx287_mount_holes() +{ + id = 4; + m2 = 2; + + // distance between holes + h_delta = 25; + + translate([0, -imx287_thickness - $tiny_padding, 0]) + for ( + dx = [h_delta / 2, -h_delta / 2], + dy = [h_delta / 2, -h_delta / 2]) + { + translate([dx, 0, dy]) + screw_hole( + m = m2, + id = id, + il = hole_insert_height, + hd = m2_head_diameter, + hh = m2_head_height, + hs = hole_side_back); + } +} + +color("green", 0.1) *veye_imx287_natural(); color("green", 0.4) *veye_imx287_mount_plate(); -color("red", 0.4) +color("red", 0.1) *veye_imx287_mount_plate_outer(); color("green", 0.3) *veye_imx287_mount_plate_inner(); +*veye_imx287_mount_holes(); + *difference() { //color("brown", 0.4) |
