$fn=64; // --- Parameters --- hex_radius = 50; // Radius of the hexagonal base (center to corner) base_height = 12; // Total height of the base pad_diameter = 62; // Diameter of the wireless charging pad recess (e.g., standard Qi/MagSafe) pad_depth = 7; // Depth of the charging pad recess cable_width = 6.5; // Width of the cable routing channel cable_depth = 5; // Depth of the cable routing channel push_hole_diameter = 25; // Diameter of bottom hole to push the charger out // --- Module --- module hex_charging_base() { difference() { // Main Hexagon Base cylinder(h=base_height, r=hex_radius, $fn=6); // Charging Pad Recess translate([0, 0, base_height - pad_depth]) cylinder(h=pad_depth + 1, d=pad_diameter); // Cable Routing Channel (runs from center to one flat edge) // Rotated 30 degrees to exit through the flat side of the hexagon rotate([0, 0, 30]) translate([0, -cable_width / 2, base_height - cable_depth]) cube([hex_radius + 5, cable_width, cable_depth + 1]); // Finger hole through the bottom to easily remove the charging pad translate([0, 0, -1]) cylinder(h=base_height + 2, d=push_hole_diameter); } } // --- Render --- hex_charging_base();