$fn = 64; // Configuration Parameters hex_radius = 40; // Distance from center to outer corner hex_thickness = 10; // Total thickness of the tile cable_hole_dia = 12; // Diameter of the vertical cable hole channel_width = 12; // Width of the bottom routing channel channel_depth = 5; // Depth of the bottom routing channel chamfer_depth = 2; // Depth of the top edge chamfer difference() { // Main Hexagon Body // Rotated 30 degrees so flat edges align with the X axis rotate([0, 0, 30]) cylinder(h=hex_thickness, r=hex_radius, $fn=6); // Central Vertical Cable Passthrough translate([0, 0, -1]) cylinder(h=hex_thickness + 2, d=cable_hole_dia); // Top Chamfer (smooth edge for cable exit) translate([0, 0, hex_thickness - chamfer_depth]) cylinder(h=chamfer_depth + 0.1, d1=cable_hole_dia, d2=cable_hole_dia + chamfer_depth*2); // Bottom Routing Channel (from center out through one flat edge) // Starts slightly behind center to ensure full connection translate([-cable_hole_dia/2, -channel_width/2, -0.1]) cube([hex_radius + cable_hole_dia, channel_width, channel_depth + 0.1]); // Internal Chamfer (smooths the right-angle transition for the cable) translate([cable_hole_dia/2, 0, channel_depth]) rotate([0, 45, 0]) cube([channel_depth*1.5, channel_width + 0.2, channel_depth*1.5], center=true); }