The camera mount was created in OpenSCAD by combining/subtracting cubes and cylinders programmatically.
// Created by Christian A. Weber <chris@gna.ch> on 2017-01-07
// http://www.kinety.org/adding-a-monitor-camera-to-the-bq-hephestos-2-3d-printer/
$fa=1; $fs=0.25; // global resolution
$plate_size = 6;
$r_fillet = 2.5;
$r_inner = 10;
$arm_width = 25;
// mounting plate. Fits into mounting holes on Hephestos 2's arm that moves along the z-axis
translate([0, 0, 0]) {
difference() {
union() {
translate([1 + $r_fillet, $r_fillet, 0]) minkowski() {
cube([98 - $r_fillet * 2, 75 - $r_fillet * 2, $plate_size-1]);
cylinder(r=$r_fillet, h=1);
}
translate([0, 11, 0]) cube([1, 55, $plate_size]);
translate([99, 55, 0]) cube([1, 13, $plate_size]);
}
// save some material
translate([60, -1, -1]) cube([40, 51, $plate_size + 2]);
hull() {
// make room for the camera and allow it to tilt
translate([20 + $r_inner, 10, -1]) cube([64 - $r_inner, 59 - $r_inner, $plate_size + 2]);
translate([20 + $r_inner, 68 - $r_inner, -1]) cylinder(r=$r_inner, h=$plate_size + 2);
translate([84 - $r_inner, 68 - $r_inner, -1]) cylinder(r=$r_inner, h=$plate_size + 2);
translate([20 + $r_inner, 10 + $r_inner, -1]) cylinder(r=$r_inner, h=$plate_size + 2);
}
}
}
// camera support arm
translate([47.5 + $arm_width/2, 0, $plate_size-.001]) rotate([90, 0, 180]) {
difference() {
hull() {
translate([0, 0, 0]) cube([$arm_width, 5, 6]);
translate([$arm_width/2, 20, 0]) cylinder(r=6, h=6);
}
translate([$arm_width/2, 20, 0]) union() {
// hole for camera's mounting screw: 2mm diameter
translate([0, 0, -1]) cylinder(r=1, h=8);
// camera's mounting inset is 4mm in diameter and 1.5mm high
translate([0, 0, 6-1.5]) cylinder(r=2.2, h=2.5);
// countersink camera's mounting screw by 2mm
translate([0, 0, -1]) cylinder(r=3, h=3);
}
}
}