3d-printing/tapo-ceiling-mount/tapo_ceiling_camera_adapter_tapo_original_base.scad

46 lines
2 KiB
OpenSCAD

// ============================================
// Tapo Ceiling Mount - Adapter for the ORIGINAL Tapo Base
// ============================================
// The reliable option. Its top is a cup that locks onto the collar bottom
// ring. Its bottom is a flat surface that carries the genuine factory Tapo
// base with two screws. It reuses the project camera-mount parameters, so no
// unverified twist-lock geometry is needed.
//
// Bosses hold the base screws. They straddle the central cable hole and leave
// the center open for the RJ45 and DC cables. Each boss rises from the base
// plate to the rim plane, so it prints from the bed.
//
// Print orientation: rim on the bed. The lugs and the latch beam print on the
// bed. No support.
parameters_only = false;
include <tapo_ceiling_mount_parameters.scad>;
// Longest base screw that fits: base plate + pilot depth.
echo(str("Original base screws: ST3.5 up to ",
floor(tapo_base_plate_t + adapter_rim_z - (adapter_top_z - adapter_plate_t) - 1),
" mm long (the 20 mm factory screws are too long)"));
module tapo_camera_adapter_original_base() {
zb = adapter_top_z - adapter_plate_t; // base plate, camera side
difference() {
union() {
adapter_core();
// Solid bosses for the factory base screws, kept inside the inner wall.
intersection() {
union()
for (p = tapo_base_screw_xy())
translate([p[0], p[1], zb])
cylinder(d = camera_boss_d, h = adapter_rim_z - zb);
translate([0, 0, zb]) cylinder(r = adapter_spigot_r, h = adapter_rim_z - zb);
}
}
// Pilot holes from the camera side, through the whole boss but the last
// 1 mm, so longer base screws do not bottom out.
for (p = tapo_base_screw_xy())
translate([p[0], p[1], zb - 0.01])
cylinder(d = camera_mount_hole_diameter, h = adapter_rim_z - zb - 1);
}
}
tapo_camera_adapter_original_base();