diff --git a/printer_mods/techprolet/2020_aplic_cam_mount/M3_CABLE_ANCHOR.STL b/printer_mods/techprolet/2020_aplic_cam_mount/M3_CABLE_ANCHOR.STL new file mode 100644 index 000000000..633b8c580 Binary files /dev/null and b/printer_mods/techprolet/2020_aplic_cam_mount/M3_CABLE_ANCHOR.STL differ diff --git a/printer_mods/techprolet/2020_aplic_cam_mount/README.md b/printer_mods/techprolet/2020_aplic_cam_mount/README.md new file mode 100644 index 000000000..3156629ba --- /dev/null +++ b/printer_mods/techprolet/2020_aplic_cam_mount/README.md @@ -0,0 +1,39 @@ +## 2020 Aplic Cam Mount + +![2020 Aplic Cam Mount installation example](img/2020_aplic_cam_mount.jpg) + +2020 Aplic Cam Mount is a 3D printed part that is used to mount a cheapo aplic hd camera to the 2020 frame at bed level. The mount is designed to be held in place with a M3 screw and a M3 nut. Additionaly, you need 4x M3 heat inserts, 4x M3 spacers and 4x M3x6 screws for mounting the camera on the mount (pun intended). + + +### Files +* `aplic_cam_mount_voron_2_4_300x300.stl` - The mount STL, angled for the Voron 2.4 300x300mm geometry. +* `aplic_cam_mount.scad` - The OpenSCAD file for the mount (you can play modify the parameters for your own printer's geometry). + +### Parts +The mount is designed to be used with the following parts: +``` +- 1x 3d printed 2020 Aplic Cam Mount +- 1x Aplic Webcam - 1920x1080P stripped from its plastic case +- 1x M3x10 screw +- 2x M3 nut +- 4x M3 heat insert +- 4x M3 spacer +- 4x M3x6 screws +``` +### Printing +The mount is printed in the orientation that it is in the STL file. The mount should be printed with the recommended Voron settings (40% infill and 4 perimeters) in ABS/ASA. That said, I've printed mine in PETG and it still holds. No supports or mount needed + + + +### Credits and license +The mount was designed around the **2020 Cable Clamp** by ed_419522 https://www.printables.com/model/307909-2020-cable-clamp + +Copyright 2024, Pavlos Iliopoulos. + + 2020 Aplic Cam Mount is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + 2020 Aplic Cam Mount is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with this program. If not, see . + +The author does not hold any copyright or has any affiliation with aplic and/or its products. diff --git a/printer_mods/techprolet/2020_aplic_cam_mount/aplic_cam_mount.scad b/printer_mods/techprolet/2020_aplic_cam_mount/aplic_cam_mount.scad new file mode 100644 index 000000000..44606075d --- /dev/null +++ b/printer_mods/techprolet/2020_aplic_cam_mount/aplic_cam_mount.scad @@ -0,0 +1,156 @@ +/* +Copyright 2024, Pavlos Iliopoulos. + + 2020 Aplic Cam Mount is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + 2020 Aplic Cam Mount is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with this program. If not, see . + +The author does not hold any copyright or has any affiliation with aplic and/or its products. + */ + + + +$fn = 64; + +// Wall thickness +wall_thickness = 3; + +// Dimensions of the anchor +anchor_l = 15; +anchor_w = 12; +anchor_h = 6; + +// Hole distances +hole_distance_x = 54; +hole_distance_y = 17; +corrective_hole_x_offset = 0.8; + +// Dimensions of the wall +wall_l = hole_distance_x + 3 * wall_thickness; +wall_w = hole_distance_y + 3 * wall_thickness; + +// Camera elevation +cam_elevation = 25; + +// Screw dimensions +screw_length = 10; +screw_receiver_d = 6; + +// Hex hole dimensions +hex_hole_y = -7; +hex_hole_d = 6; + +// Support dimensions +support_w = anchor_l - 2 * wall_thickness; +support_x_offset = (anchor_w - wall_thickness) / 2; + +// Heat insert dimensions +heat_insert_d = 4.4; +heat_insert_thickness = 13; + +// Calculate the camera viewing angle +cam_viewing_angle_x = atan(74 / 148); // arctan( (distance between 2 rods/2) / (distance from back + stage side/2) ) +echo("CAM VIEWING ANGLE x:", cam_viewing_angle_x); + +// Define the solid anchor module +module solid_anchor() { + anchor_l = 15; + anchor_w = 12; + anchor_h = 6; + + tie_w = 4; + tie_offset_y = 9; + border_w = 0.5; + + // Length is 15mm, width is 12mm + union() { + import("./M3_CABLE_ANCHOR.STL"); + translate([border_w, tie_offset_y, 0]) { + cube([anchor_w - 2 * border_w, tie_w, anchor_h]); + } + } +} + +// Define the back panel module +module back_panel() { + hull() { + translate([0, wall_thickness / 2, anchor_h / 2]) { + cube([anchor_w, wall_thickness, anchor_h], center = true); + } + translate([0, wall_thickness / 2, wall_w / 2 + anchor_h + cam_elevation]) { + cube([wall_l, wall_thickness, wall_w], center = true); + } + } +} + +// Define the inserts module +module inserts() { + translate([0, 0, wall_w / 2 + anchor_h + cam_elevation]) { + translate([wall_thickness, -(wall_l * sin(cam_viewing_angle_x) / 2), 0]) { + rotate([0, 0, cam_viewing_angle_x]) { + for (x = [-1, 1]) { + for (y = [-1, 1]) { + translate([corrective_hole_x_offset + x * hole_distance_x / 2, heat_insert_thickness / 2, y * hole_distance_y / 2]) { + rotate([90, 0, 0]) { + cylinder(h = heat_insert_thickness, d = heat_insert_d); + } + } + } + } + } + } + } +} + +module rotated_wall() { + translate([wall_thickness, -(wall_l * sin(cam_viewing_angle_x) / 2), 0]) { + rotate([0, 0, cam_viewing_angle_x]) { + cube([wall_l, wall_thickness, wall_w], center = true); + } + } +} + +module cam_mount() { + difference() { + translate([0, wall_thickness / 2, wall_w / 2 + anchor_h + cam_elevation]) { + hull() { + #cube([wall_l, wall_thickness, wall_w], center=true); + #rotated_wall(); + } + } + + #translate([0, hex_hole_y, 0]) { + cylinder(h = anchor_h + cam_elevation + wall_w, d = hex_hole_d); + } + } +} + +module supports() { + for (i = [-1, 1]) { + translate([i * support_x_offset, -support_w / 2, (cam_elevation + anchor_h) / 2]) { + cube([wall_thickness, support_w, cam_elevation + anchor_h], center = true); + } + } +} + +module aplic_complete_mount() { + translate([-anchor_w / 2, wall_thickness - anchor_l, 0]) { + solid_anchor(); + } + difference() { + union() { + back_panel(); + cam_mount(); + } + + #inserts (); + } + + supports(); +} + +rotate([270, 0, 0]){ + aplic_complete_mount(); +} \ No newline at end of file diff --git a/printer_mods/techprolet/2020_aplic_cam_mount/aplic_cam_mount_voron_2_4_300x300.stl b/printer_mods/techprolet/2020_aplic_cam_mount/aplic_cam_mount_voron_2_4_300x300.stl new file mode 100644 index 000000000..eb9c8e6c9 Binary files /dev/null and b/printer_mods/techprolet/2020_aplic_cam_mount/aplic_cam_mount_voron_2_4_300x300.stl differ diff --git a/printer_mods/techprolet/2020_aplic_cam_mount/img/2020_aplic_cam_mount.jpg b/printer_mods/techprolet/2020_aplic_cam_mount/img/2020_aplic_cam_mount.jpg new file mode 100644 index 000000000..d262a2802 Binary files /dev/null and b/printer_mods/techprolet/2020_aplic_cam_mount/img/2020_aplic_cam_mount.jpg differ diff --git a/printer_mods/techprolet/2020_aplic_cam_mount/metadata.yml b/printer_mods/techprolet/2020_aplic_cam_mount/metadata.yml new file mode 100644 index 000000000..9827a25a8 --- /dev/null +++ b/printer_mods/techprolet/2020_aplic_cam_mount/metadata.yml @@ -0,0 +1,28 @@ +--- +# The title of your mod. Choose a short and descriptive name +title: 2020 Aplic Cam Mount +# A short description of your mod. Try to describe your mod with 1-2 short sentences +description: Aplic HD camera to the 2020 frame at bed level. +# Mod version: Set this to 1 when you are submitting a new mod. When you make changes to your mod, you may increment this number +mod_version: 1 +# You may add your discord username here so people can contact you about your mod +discord_username: techprolet +# The CAD files for your mod. Please provide them as a list. +# Note that each mod must include at least one CAD file. +cad: +- aplic_cam_mount.scad +# The parts of your mod, exported and oriented ready to be sliced. Please provide them as a list. +# Note that each mod must include at least one STL or OBJ file. +stl: +- aplic_cam_mount_voron_2_4_300x300.stl +# The image files provided with your mod. These may be instructions you use in your README.md file, or other additional pictures. +# **Note that the first image specified here will be used as cover image on mods.vorondesign.com** +# All paths are relative to this .metadata.yml file. +images: +- img/2020_aplic_cam_mount.jpg +# Printer compatibility. Please specify all compatible printers as a list. The following values are accepted: +# "V0", "V0.1", "V0.2", "V0.2r1", "V1", "V1.6", "V1.8", "V1.8r1", "V2", "V2.1", "V2.2", "V2.4", "V2.4r1", "V2.4r2", "VSW", "VT", "VTr1", "VL" +# Please only specify printers that you have either tested your mod on yourself, or that someone else has tested for you. If you are unsure whether your +# mod is compatible with a certain printer, don't list it here! +printer_compatibility: +- V2.4r2 \ No newline at end of file