$fn = 64; // --- Parameters --- // Hex wall mount settings (Default fits Honeycomb Storage Wall) hex_flat_to_flat = 14.2; hex_depth = 10; // Stand arm settings wall_clearance = 30; // Distance from wall to display arm_diameter = 16; tilt_angle = 45; // Viewing angle of the watch // Watch holder settings holder_diameter = 44; holder_thickness = 16; // Charger settings (Default fits standard Apple Watch charger) charger_diameter = 28.5; charger_depth = 6.5; cable_channel = 5; push_hole_dia = 10; // --- Modules --- module hex_peg() { // Hexagon circumradius = flat_to_flat / sqrt(3) cylinder(h=hex_depth, r=hex_flat_to_flat/sqrt(3), $fn=6); // Wall flange to sit flush against the grid translate([0, 0, hex_depth]) cylinder(h=2, d=hex_flat_to_flat + 10); } module stand_body() { // Wall mount peg and flange hex_peg(); // Standoff arm (embeds slightly into flange for manifoldness) translate([0, 0, hex_depth + 1.9]) cylinder(h=wall_clearance + 0.2, d=arm_diameter); // Elbow joint (sphere creates a smooth, strong transition) translate([0, 0, hex_depth + 2 + wall_clearance]) sphere(d=arm_diameter); // Angled watch holder body translate([0, 0, hex_depth + 2 + wall_clearance]) rotate([tilt_angle, 0, 0]) translate([0, 0, -2]) // Overlap into the sphere cylinder(h=holder_thickness, d=holder_diameter); } module cutouts() { // Align with the angled watch holder translate([0, 0, hex_depth + 2 + wall_clearance]) rotate([tilt_angle, 0, 0]) translate([0, 0, -2]) { // Magnetic charger recess translate([0, 0, holder_thickness - charger_depth]) cylinder(h=charger_depth + 0.1, d=charger_diameter); // Cable routing channel (runs downwards to the edge) translate([-cable_channel/2, -holder_diameter/2 - 1, holder_thickness - charger_depth]) cube([cable_channel, holder_diameter/2 + 1, charger_depth + 0.1]); // Push-out hole to easily remove the charger from the back translate([0, 0, -1]) cylinder(h=holder_thickness + 2, d=push_hole_dia); } } // --- Final Assembly --- // Designed to be printed upright (hex peg on the build plate) // The 45-degree angle allows printing without supports. difference() { stand_body(); cutouts(); }